spine-framework 0.1.0
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/README.md +129 -0
- package/.framework/cli/bin.cjs +14 -0
- package/.framework/cli/commands/agents.ts +153 -0
- package/.framework/cli/commands/auth.ts +94 -0
- package/.framework/cli/commands/create-app.ts +185 -0
- package/.framework/cli/commands/dev.ts +295 -0
- package/.framework/cli/commands/doctor.ts +442 -0
- package/.framework/cli/commands/generate.ts +332 -0
- package/.framework/cli/commands/init.ts +272 -0
- package/.framework/cli/commands/install-app.ts +391 -0
- package/.framework/cli/commands/items.ts +253 -0
- package/.framework/cli/commands/migrations.ts +141 -0
- package/.framework/cli/commands/pipelines.ts +166 -0
- package/.framework/cli/commands/status.ts +197 -0
- package/.framework/cli/commands/system.ts +184 -0
- package/.framework/cli/commands/test.ts +227 -0
- package/.framework/cli/commands/uninstall-app.ts +166 -0
- package/.framework/cli/context.ts +268 -0
- package/.framework/cli/env-loader.ts +36 -0
- package/.framework/cli/index.ts +106 -0
- package/.framework/cli/welcome.cjs +45 -0
- package/.framework/docs/API.md +384 -0
- package/.framework/docs/STABILITY.md +52 -0
- package/.framework/docs/admin-routes.md +76 -0
- package/.framework/docs/api-docs-progress.md +38 -0
- package/.framework/docs/api-governance.md +146 -0
- package/.framework/docs/api-testing-results.md +212 -0
- package/.framework/docs/apis/admin-configs.md +567 -0
- package/.framework/docs/apis/admin-data.md +272 -0
- package/.framework/docs/apis/index.md +231 -0
- package/.framework/docs/apis/internal.md +295 -0
- package/.framework/docs/apis/runtime.md +537 -0
- package/.framework/docs/assembly-launch-guide.md +138 -0
- package/.framework/docs/audit-results.md +590 -0
- package/.framework/docs/authorization-model.md +170 -0
- package/.framework/docs/db-api-inventory.md +95 -0
- package/.framework/docs/examples/custom-app/README.md +77 -0
- package/.framework/docs/examples/custom-function/README.md +27 -0
- package/.framework/docs/examples/custom-function/handler.ts +48 -0
- package/.framework/docs/examples/custom-webhook/README.md +68 -0
- package/.framework/docs/gap-remediation-backlog.md +103 -0
- package/.framework/docs/guides/cli-guide.md +224 -0
- package/.framework/docs/guides/getting-started.md +103 -0
- package/.framework/docs/guides/import-guide.md +193 -0
- package/.framework/docs/guides/testing-guide.md +229 -0
- package/.framework/docs/permission-examples.md +326 -0
- package/.framework/docs/ui-adoption-verification.md +111 -0
- package/.framework/docs/ui-api-coverage.md +84 -0
- package/.framework/docs/v2-compatibility-audit.md +228 -0
- package/.framework/functions/.gitkeep +1 -0
- package/.framework/functions/_shared/agent-runner.ts +1097 -0
- package/.framework/functions/_shared/app-manifest.ts +184 -0
- package/.framework/functions/_shared/audit.ts +150 -0
- package/.framework/functions/_shared/db.ts +174 -0
- package/.framework/functions/_shared/index.ts +382 -0
- package/.framework/functions/_shared/middleware.ts +490 -0
- package/.framework/functions/_shared/permissions.ts +1325 -0
- package/.framework/functions/_shared/pipeline-runner.ts +731 -0
- package/.framework/functions/_shared/principal.ts +760 -0
- package/.framework/functions/_shared/schema-utils.ts +967 -0
- package/.framework/functions/_shared/testing.ts +258 -0
- package/.framework/functions/_shared/trigger-engine.ts +425 -0
- package/.framework/functions/_shared/webhook-registration.ts +168 -0
- package/.framework/functions/_shared/webhook-registry.ts +129 -0
- package/.framework/functions/account-nodes.ts +111 -0
- package/.framework/functions/admin-data.ts +606 -0
- package/.framework/functions/ai-agents.ts +323 -0
- package/.framework/functions/api-keys.ts +376 -0
- package/.framework/functions/apps.ts +483 -0
- package/.framework/functions/auth.ts +196 -0
- package/.framework/functions/debug-auth.ts +107 -0
- package/.framework/functions/embeddings.ts +556 -0
- package/.framework/functions/integration-routes.ts +523 -0
- package/.framework/functions/integrations.ts +319 -0
- package/.framework/functions/item-progress.ts +272 -0
- package/.framework/functions/logs.ts +438 -0
- package/.framework/functions/observability.ts +275 -0
- package/.framework/functions/pipeline-executions.ts +494 -0
- package/.framework/functions/pipelines.ts +485 -0
- package/.framework/functions/prompt-configs.ts +339 -0
- package/.framework/functions/roles.ts +387 -0
- package/.framework/functions/system-cron.ts +742 -0
- package/.framework/functions/system.ts +323 -0
- package/.framework/functions/tests.ts +119 -0
- package/.framework/functions/timers.ts +357 -0
- package/.framework/functions/triggers.ts +563 -0
- package/.framework/functions/types.ts +604 -0
- package/.framework/migrations/000_foundation.sql +1256 -0
- package/.framework/migrations/001_seed.sql +92 -0
- package/.framework/migrations/002_seed_constraints.sql +13 -0
- package/.framework/migrations/003_auth_user_trigger.sql +59 -0
- package/.framework/src/App.tsx +126 -0
- package/.framework/src/apps/admin/index.tsx +173 -0
- package/.framework/src/components/AppWrapper.tsx +56 -0
- package/.framework/src/components/CustomAppLoader.tsx +116 -0
- package/.framework/src/components/admin/AdminListPage.tsx +151 -0
- package/.framework/src/components/admin/AdminSidebar.tsx +166 -0
- package/.framework/src/components/admin/AdminStatsCard.tsx +62 -0
- package/.framework/src/components/admin/SortableTableHeader.tsx +42 -0
- package/.framework/src/components/app-shell/GenericAppShell.tsx +181 -0
- package/.framework/src/components/app-shell/GenericDetailPage.tsx +200 -0
- package/.framework/src/components/app-shell/GenericListPage.tsx +116 -0
- package/.framework/src/components/app-sidebar.tsx +228 -0
- package/.framework/src/components/auth/ProtectedRoute.tsx +88 -0
- package/.framework/src/components/layout/AppShell.tsx +91 -0
- package/.framework/src/components/layout/Header.tsx +88 -0
- package/.framework/src/components/layout/Layout.tsx +95 -0
- package/.framework/src/components/layout/Sidebar.tsx +329 -0
- package/.framework/src/components/runtime/DataDetailHeader.tsx +77 -0
- package/.framework/src/components/runtime/DataDetailPage.tsx +171 -0
- package/.framework/src/components/runtime/DataFilters.tsx +91 -0
- package/.framework/src/components/runtime/DataHeader.tsx +68 -0
- package/.framework/src/components/runtime/DataListPage.tsx +124 -0
- package/.framework/src/components/runtime/DataStats.tsx +70 -0
- package/.framework/src/components/runtime/DataTable.tsx +174 -0
- package/.framework/src/components/runtime/SchemaDetailForm.tsx +134 -0
- package/.framework/src/components/runtime/index.ts +18 -0
- package/.framework/src/components/search-form.tsx +29 -0
- package/.framework/src/components/shared/AgentView.tsx +213 -0
- package/.framework/src/components/shared/FieldRenderer.tsx +478 -0
- package/.framework/src/components/shared/SchemaFields.tsx +226 -0
- package/.framework/src/components/ui/DataTable.tsx +343 -0
- package/.framework/src/components/ui/Form.tsx +281 -0
- package/.framework/src/components/ui/ItemCard.tsx +296 -0
- package/.framework/src/components/ui/ItemListView.tsx +308 -0
- package/.framework/src/components/ui/LoadingSpinner.tsx +52 -0
- package/.framework/src/components/ui/Modal.tsx +61 -0
- package/.framework/src/components/ui/RichTextEditor.tsx +210 -0
- package/.framework/src/components/ui/accordion.tsx +82 -0
- package/.framework/src/components/ui/alert-dialog.tsx +197 -0
- package/.framework/src/components/ui/alert.tsx +76 -0
- package/.framework/src/components/ui/aspect-ratio.tsx +11 -0
- package/.framework/src/components/ui/avatar.tsx +110 -0
- package/.framework/src/components/ui/badge.tsx +49 -0
- package/.framework/src/components/ui/breadcrumb.tsx +122 -0
- package/.framework/src/components/ui/button-group.tsx +83 -0
- package/.framework/src/components/ui/button.tsx +65 -0
- package/.framework/src/components/ui/calendar.tsx +222 -0
- package/.framework/src/components/ui/card.tsx +100 -0
- package/.framework/src/components/ui/carousel.tsx +240 -0
- package/.framework/src/components/ui/chart.tsx +373 -0
- package/.framework/src/components/ui/checkbox.tsx +31 -0
- package/.framework/src/components/ui/collapsible.tsx +33 -0
- package/.framework/src/components/ui/combobox.tsx +299 -0
- package/.framework/src/components/ui/command.tsx +193 -0
- package/.framework/src/components/ui/context-menu.tsx +261 -0
- package/.framework/src/components/ui/dialog.tsx +165 -0
- package/.framework/src/components/ui/direction.tsx +22 -0
- package/.framework/src/components/ui/drawer.tsx +132 -0
- package/.framework/src/components/ui/dropdown-menu.tsx +269 -0
- package/.framework/src/components/ui/empty.tsx +104 -0
- package/.framework/src/components/ui/field.tsx +238 -0
- package/.framework/src/components/ui/hover-card.tsx +42 -0
- package/.framework/src/components/ui/input-group.tsx +153 -0
- package/.framework/src/components/ui/input-otp.tsx +87 -0
- package/.framework/src/components/ui/input.tsx +19 -0
- package/.framework/src/components/ui/item.tsx +196 -0
- package/.framework/src/components/ui/kbd.tsx +26 -0
- package/.framework/src/components/ui/label.tsx +22 -0
- package/.framework/src/components/ui/menubar.tsx +277 -0
- package/.framework/src/components/ui/native-select.tsx +61 -0
- package/.framework/src/components/ui/navigation-menu.tsx +164 -0
- package/.framework/src/components/ui/pagination.tsx +129 -0
- package/.framework/src/components/ui/popover.tsx +87 -0
- package/.framework/src/components/ui/progress.tsx +31 -0
- package/.framework/src/components/ui/radio-group.tsx +42 -0
- package/.framework/src/components/ui/resizable.tsx +50 -0
- package/.framework/src/components/ui/scroll-area.tsx +53 -0
- package/.framework/src/components/ui/select.tsx +195 -0
- package/.framework/src/components/ui/separator.tsx +26 -0
- package/.framework/src/components/ui/sheet.tsx +145 -0
- package/.framework/src/components/ui/sidebar.tsx +706 -0
- package/.framework/src/components/ui/skeleton.tsx +13 -0
- package/.framework/src/components/ui/slider.tsx +59 -0
- package/.framework/src/components/ui/sonner.tsx +47 -0
- package/.framework/src/components/ui/spinner.tsx +10 -0
- package/.framework/src/components/ui/switch.tsx +33 -0
- package/.framework/src/components/ui/table-primitives.tsx +141 -0
- package/.framework/src/components/ui/table.tsx +114 -0
- package/.framework/src/components/ui/tabs.tsx +90 -0
- package/.framework/src/components/ui/textarea.tsx +18 -0
- package/.framework/src/components/ui/toggle-group.tsx +89 -0
- package/.framework/src/components/ui/toggle.tsx +45 -0
- package/.framework/src/components/ui/tooltip.tsx +57 -0
- package/.framework/src/contexts/AppContext.tsx +133 -0
- package/.framework/src/contexts/AuthContext.tsx +371 -0
- package/.framework/src/hooks/use-mobile.ts +19 -0
- package/.framework/src/hooks/useApi.ts +526 -0
- package/.framework/src/hooks/useApps.ts +114 -0
- package/.framework/src/hooks/useEntityList.ts +190 -0
- package/.framework/src/hooks/useEntityRecord.ts +308 -0
- package/.framework/src/hooks/useForm.ts +307 -0
- package/.framework/src/hooks/useListSchema.ts +264 -0
- package/.framework/src/hooks/useSchemaRecord.ts +223 -0
- package/.framework/src/index.css +128 -0
- package/.framework/src/lib/api.ts +156 -0
- package/.framework/src/lib/supabase.ts +94 -0
- package/.framework/src/lib/utils.ts +317 -0
- package/.framework/src/main.tsx +27 -0
- package/.framework/src/pages/DashboardPage.tsx +181 -0
- package/.framework/src/pages/NotFoundPage.tsx +39 -0
- package/.framework/src/pages/admin/AIAgentDetailPage.tsx +161 -0
- package/.framework/src/pages/admin/AIAgentsPage.tsx +318 -0
- package/.framework/src/pages/admin/APIKeyDetailPage.tsx +199 -0
- package/.framework/src/pages/admin/APIKeysPage.tsx +303 -0
- package/.framework/src/pages/admin/AlertsConfigPage.tsx +523 -0
- package/.framework/src/pages/admin/AppDetailPage.tsx +493 -0
- package/.framework/src/pages/admin/AppsPage.tsx +355 -0
- package/.framework/src/pages/admin/DesignedPage.tsx +491 -0
- package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +534 -0
- package/.framework/src/pages/admin/EmbeddingsPage.tsx +424 -0
- package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +176 -0
- package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +109 -0
- package/.framework/src/pages/admin/IntegratedDashboard.tsx +402 -0
- package/.framework/src/pages/admin/IntegrationDetailPage.tsx +187 -0
- package/.framework/src/pages/admin/IntegrationsPage.tsx +301 -0
- package/.framework/src/pages/admin/LogsPage.tsx +283 -0
- package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +85 -0
- package/.framework/src/pages/admin/ObservabilityDashboard.tsx +470 -0
- package/.framework/src/pages/admin/PipelineDetailPage.tsx +183 -0
- package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +279 -0
- package/.framework/src/pages/admin/PipelinesPage.tsx +390 -0
- package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +299 -0
- package/.framework/src/pages/admin/PromptConfigsPage.tsx +292 -0
- package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +434 -0
- package/.framework/src/pages/admin/RoleDetailPage.tsx +273 -0
- package/.framework/src/pages/admin/RolesPage.tsx +292 -0
- package/.framework/src/pages/admin/SelectTestPage.tsx +61 -0
- package/.framework/src/pages/admin/ShadcnTestPage.tsx +588 -0
- package/.framework/src/pages/admin/SimpleDashboard.tsx +387 -0
- package/.framework/src/pages/admin/TestRunDetailPage.tsx +172 -0
- package/.framework/src/pages/admin/TestingDashboard.tsx +257 -0
- package/.framework/src/pages/admin/TimerDetailPage.tsx +151 -0
- package/.framework/src/pages/admin/TimersPage.tsx +376 -0
- package/.framework/src/pages/admin/TriggerDetailPage.tsx +149 -0
- package/.framework/src/pages/admin/TriggersPage.tsx +381 -0
- package/.framework/src/pages/admin/TypeDetailPage.tsx +694 -0
- package/.framework/src/pages/admin/TypesPage.tsx +295 -0
- package/.framework/src/pages/auth/LoginPage.tsx +188 -0
- package/.framework/src/pages/auth/RegisterPage.tsx +163 -0
- package/.framework/src/pages/spine-framework/APIPage.tsx +17 -0
- package/.framework/src/pages/spine-framework/CLIPage.tsx +25 -0
- package/.framework/src/types/auth.ts +125 -0
- package/.framework/src/types/types.ts +407 -0
- package/STRUCTURE.md +150 -0
- package/config/components.json +25 -0
- package/config/deno.lock +108 -0
- package/config/package-lock.json +17183 -0
- package/config/postcss.config.cjs +10 -0
- package/config/tailwind.config.cjs +78 -0
- package/config/tsconfig.build.json +32 -0
- package/config/tsconfig.cli.json +18 -0
- package/config/tsconfig.json +41 -0
- package/config/tsconfig.node.json +17 -0
- package/config/tsconfig.node.tsbuildinfo +1 -0
- package/config/tsconfig.tsbuildinfo +1 -0
- package/config/typedoc.json +16 -0
- package/config/vite.config.d.ts +2 -0
- package/config/vite.config.ts +72 -0
- package/dist/cli/commands/agents.d.ts +39 -0
- package/dist/cli/commands/agents.d.ts.map +1 -0
- package/dist/cli/commands/auth.d.ts +36 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/create-app.d.ts +23 -0
- package/dist/cli/commands/create-app.d.ts.map +1 -0
- package/dist/cli/commands/dev.d.ts +39 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/doctor.d.ts +42 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/generate.d.ts +36 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/init.d.ts +30 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/install-app.d.ts +30 -0
- package/dist/cli/commands/install-app.d.ts.map +1 -0
- package/dist/cli/commands/items.d.ts +45 -0
- package/dist/cli/commands/items.d.ts.map +1 -0
- package/dist/cli/commands/migrations.d.ts +41 -0
- package/dist/cli/commands/migrations.d.ts.map +1 -0
- package/dist/cli/commands/pipelines.d.ts +40 -0
- package/dist/cli/commands/pipelines.d.ts.map +1 -0
- package/dist/cli/commands/status.d.ts +23 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/system.d.ts +29 -0
- package/dist/cli/commands/system.d.ts.map +1 -0
- package/dist/cli/commands/test.d.ts +46 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/uninstall-app.d.ts +23 -0
- package/dist/cli/commands/uninstall-app.d.ts.map +1 -0
- package/dist/cli/context.d.ts +88 -0
- package/dist/cli/context.d.ts.map +1 -0
- package/dist/cli/env-loader.d.ts +14 -0
- package/dist/cli/env-loader.d.ts.map +1 -0
- package/dist/cli/index.d.ts +41 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/functions/_shared/agent-runner.d.ts +156 -0
- package/dist/functions/_shared/agent-runner.d.ts.map +1 -0
- package/dist/functions/_shared/app-manifest.d.ts +68 -0
- package/dist/functions/_shared/app-manifest.d.ts.map +1 -0
- package/dist/functions/_shared/audit.d.ts +91 -0
- package/dist/functions/_shared/audit.d.ts.map +1 -0
- package/dist/functions/_shared/db.d.ts +125 -0
- package/dist/functions/_shared/db.d.ts.map +1 -0
- package/dist/functions/_shared/index.d.ts +298 -0
- package/dist/functions/_shared/index.d.ts.map +1 -0
- package/dist/functions/_shared/middleware.d.ts +315 -0
- package/dist/functions/_shared/middleware.d.ts.map +1 -0
- package/dist/functions/_shared/permissions.d.ts +626 -0
- package/dist/functions/_shared/permissions.d.ts.map +1 -0
- package/dist/functions/_shared/pipeline-runner.d.ts +124 -0
- package/dist/functions/_shared/pipeline-runner.d.ts.map +1 -0
- package/dist/functions/_shared/principal.d.ts +284 -0
- package/dist/functions/_shared/principal.d.ts.map +1 -0
- package/dist/functions/_shared/schema-utils.d.ts +181 -0
- package/dist/functions/_shared/schema-utils.d.ts.map +1 -0
- package/dist/functions/_shared/testing.d.ts +172 -0
- package/dist/functions/_shared/testing.d.ts.map +1 -0
- package/dist/functions/_shared/trigger-engine.d.ts +140 -0
- package/dist/functions/_shared/trigger-engine.d.ts.map +1 -0
- package/dist/functions/_shared/webhook-registration.d.ts +81 -0
- package/dist/functions/_shared/webhook-registration.d.ts.map +1 -0
- package/dist/functions/_shared/webhook-registry.d.ts +57 -0
- package/dist/functions/_shared/webhook-registry.d.ts.map +1 -0
- package/dist/functions/account-nodes.d.ts +48 -0
- package/dist/functions/account-nodes.d.ts.map +1 -0
- package/dist/functions/admin-data.d.ts +178 -0
- package/dist/functions/admin-data.d.ts.map +1 -0
- package/dist/functions/ai-agents.d.ts +125 -0
- package/dist/functions/ai-agents.d.ts.map +1 -0
- package/dist/functions/api-keys.d.ts +140 -0
- package/dist/functions/api-keys.d.ts.map +1 -0
- package/dist/functions/apps.d.ts +163 -0
- package/dist/functions/apps.d.ts.map +1 -0
- package/dist/functions/auth.d.ts +74 -0
- package/dist/functions/auth.d.ts.map +1 -0
- package/dist/functions/debug-auth.d.ts +33 -0
- package/dist/functions/debug-auth.d.ts.map +1 -0
- package/dist/functions/embeddings.d.ts +205 -0
- package/dist/functions/embeddings.d.ts.map +1 -0
- package/dist/functions/integration-routes.d.ts +45 -0
- package/dist/functions/integration-routes.d.ts.map +1 -0
- package/dist/functions/integrations.d.ts +124 -0
- package/dist/functions/integrations.d.ts.map +1 -0
- package/dist/functions/item-progress.d.ts +41 -0
- package/dist/functions/item-progress.d.ts.map +1 -0
- package/dist/functions/logs.d.ts +162 -0
- package/dist/functions/logs.d.ts.map +1 -0
- package/dist/functions/observability.d.ts +123 -0
- package/dist/functions/observability.d.ts.map +1 -0
- package/dist/functions/pipeline-executions.d.ts +190 -0
- package/dist/functions/pipeline-executions.d.ts.map +1 -0
- package/dist/functions/pipelines.d.ts +171 -0
- package/dist/functions/pipelines.d.ts.map +1 -0
- package/dist/functions/prompt-configs.d.ts +125 -0
- package/dist/functions/prompt-configs.d.ts.map +1 -0
- package/dist/functions/roles.d.ts +118 -0
- package/dist/functions/roles.d.ts.map +1 -0
- package/dist/functions/system-cron.d.ts +65 -0
- package/dist/functions/system-cron.d.ts.map +1 -0
- package/dist/functions/system.d.ts +29 -0
- package/dist/functions/system.d.ts.map +1 -0
- package/dist/functions/tests.d.ts +28 -0
- package/dist/functions/tests.d.ts.map +1 -0
- package/dist/functions/timers.d.ts +139 -0
- package/dist/functions/timers.d.ts.map +1 -0
- package/dist/functions/triggers.d.ts +203 -0
- package/dist/functions/triggers.d.ts.map +1 -0
- package/dist/functions/types.d.ts +151 -0
- package/dist/functions/types.d.ts.map +1 -0
- package/dist/src/types/types.d.ts +364 -0
- package/dist/src/types/types.d.ts.map +1 -0
- package/package.json +192 -0
- package/scripts/app-install-cli.ts +286 -0
- package/scripts/assemble-frontend.sh +79 -0
- package/scripts/assemble-functions.sh +62 -0
- package/scripts/assemble.sh +35 -0
- package/scripts/boundary-check.sh +106 -0
- package/scripts/build-manifest.sh +80 -0
- package/scripts/check-core-integrity.sh +82 -0
- package/scripts/ingest-chunks.cjs +202 -0
- package/scripts/kb-chunk-parser.cjs +312 -0
- package/scripts/kb-chunk-parser.ts +330 -0
- package/scripts/load-test-app-install.ts +484 -0
- package/scripts/netlify-dev-wrapper.sh +22 -0
- package/scripts/verify-integrity.sh +69 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/commands/doctor
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* `spine doctor` command — comprehensive system validation for agentic IDE setup.
|
|
8
|
+
* Checks environment, database, migrations, integrity, and custom code.
|
|
9
|
+
*
|
|
10
|
+
* **Commands:**
|
|
11
|
+
* | Subcommand | Description |
|
|
12
|
+
* |-------------------|-------------------------------------------------------|
|
|
13
|
+
* | `doctor` | Run all checks and report status |
|
|
14
|
+
* | `doctor --json` | Output structured JSON for agent consumption |
|
|
15
|
+
* | `doctor --fix` | Attempt automatic remediation where possible |
|
|
16
|
+
*
|
|
17
|
+
* **Checks performed:**
|
|
18
|
+
* 1. Environment variables (SUPABASE_URL, SERVICE_ROLE_KEY)
|
|
19
|
+
* 2. Database connectivity and latency
|
|
20
|
+
* 3. Migration status (local vs applied)
|
|
21
|
+
* 4. Core integrity (manifest hash verification)
|
|
22
|
+
* 5. Custom code TypeScript compilation
|
|
23
|
+
* 6. Test suite status (last run results)
|
|
24
|
+
*
|
|
25
|
+
* **Exit codes:**
|
|
26
|
+
* - 0: All checks passed (healthy)
|
|
27
|
+
* - 1: One or more checks failed
|
|
28
|
+
* - 2: Check passed but warnings present (degraded)
|
|
29
|
+
*
|
|
30
|
+
* **Usage:**
|
|
31
|
+
* ```bash
|
|
32
|
+
* spine doctor
|
|
33
|
+
* spine doctor --json
|
|
34
|
+
* spine doctor --fix
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @seeAlso cli/context.ts (buildCliContext)
|
|
38
|
+
* @seeAlso functions/system.ts (health endpoint)
|
|
39
|
+
*/
|
|
40
|
+
import type { Command } from 'commander';
|
|
41
|
+
export declare function registerDoctorCommands(program: Command): void;
|
|
42
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/doctor.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA0QxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAsItD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/commands/generate
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* `spine generate` command — code scaffolding for extending Spine safely.
|
|
8
|
+
* Generates type definitions, handlers, and UI pages in v2-custom/ only.
|
|
9
|
+
*
|
|
10
|
+
* **Commands:**
|
|
11
|
+
* | Subcommand | Description |
|
|
12
|
+
* |-------------------------|-------------------------------------------------------|
|
|
13
|
+
* | `generate type <slug>` | Create new type with handler and UI stubs |
|
|
14
|
+
* | `generate function <name>` | Create new Netlify function stub |
|
|
15
|
+
*
|
|
16
|
+
* **What gets generated for `type`:**
|
|
17
|
+
* 1. Type record in database (item type by default)
|
|
18
|
+
* 2. Handler stub: `v2-custom/functions/{slug}.ts`
|
|
19
|
+
* 3. UI page stub: `v2-custom/src/pages/{slug}/index.tsx`
|
|
20
|
+
*
|
|
21
|
+
* **What gets generated for `function`:**
|
|
22
|
+
* 1. Netlify function stub: `v2-custom/functions/{name}.ts`
|
|
23
|
+
* 2. Basic handler structure with middleware imports
|
|
24
|
+
*
|
|
25
|
+
* **Usage:**
|
|
26
|
+
* ```bash
|
|
27
|
+
* spine generate type ticket-v2
|
|
28
|
+
* spine generate function webhook-handler
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @seeAlso functions/types.ts (type CRUD API)
|
|
32
|
+
* @seeAlso functions/_shared/middleware.ts (handler structure)
|
|
33
|
+
*/
|
|
34
|
+
import type { Command } from 'commander';
|
|
35
|
+
export declare function registerGenerateCommands(program: Command): void;
|
|
36
|
+
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/generate.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuQxC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,QAiCxD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/commands/init
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* `spine-framework init` — Bootstrap a fresh Spine installation.
|
|
8
|
+
*
|
|
9
|
+
* Runs the foundation schema (000_foundation.sql) and seed data (001_seed.sql)
|
|
10
|
+
* against the configured Supabase project, then scaffolds the custom/ workspace
|
|
11
|
+
* if it doesn't already exist.
|
|
12
|
+
*
|
|
13
|
+
* **Usage:**
|
|
14
|
+
* ```bash
|
|
15
|
+
* # Fresh install (agent provides credentials from Supabase dashboard)
|
|
16
|
+
* spine-framework init --url https://xyz.supabase.co --anon-key eyJ... --service-role-key eyJ...
|
|
17
|
+
*
|
|
18
|
+
* # Already have .env configured
|
|
19
|
+
* spine-framework init
|
|
20
|
+
*
|
|
21
|
+
* # DB only, no filesystem changes
|
|
22
|
+
* spine-framework init --skip-scaffold
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* When --url/--anon-key/--service-role-key are provided, init writes .env before
|
|
26
|
+
* running migrations — so it works on a completely fresh checkout with no prior config.
|
|
27
|
+
*/
|
|
28
|
+
import type { Command } from 'commander';
|
|
29
|
+
export declare function registerInitCommands(program: Command): void;
|
|
30
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/init.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAgOxC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAkBpD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/commands/install-app
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* `spine-framework install-app <slug>` — Install an app into the current Spine instance.
|
|
8
|
+
*
|
|
9
|
+
* Reads seed/*.json files from the app package directory and upserts their
|
|
10
|
+
* contents into the database. Also registers the app in `app_installations`.
|
|
11
|
+
*
|
|
12
|
+
* **Seed file conventions:**
|
|
13
|
+
* - `types.json` → upsert into `types` table
|
|
14
|
+
* - `link-types.json` → upsert into `link_types` table
|
|
15
|
+
* - `triggers.json` → upsert into `triggers` table
|
|
16
|
+
* - `accounts.json` → upsert into `accounts` table
|
|
17
|
+
* - `pipelines.json` → upsert into `pipelines` table
|
|
18
|
+
*
|
|
19
|
+
* All upserts keyed on `(app_id, slug)` — idempotent and safe to re-run.
|
|
20
|
+
*
|
|
21
|
+
* **Usage:**
|
|
22
|
+
* ```bash
|
|
23
|
+
* spine-framework install-app cortex
|
|
24
|
+
* spine-framework install-app customer-portal
|
|
25
|
+
* spine-framework install-app cortex --account <account-id>
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
import type { Command } from 'commander';
|
|
29
|
+
export declare function registerInstallAppCommands(program: Command): void;
|
|
30
|
+
//# sourceMappingURL=install-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-app.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/install-app.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAyVxC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,QAgB1D"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/commands/items
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* `spine items` command group. Direct CRUD access to the `items` table via
|
|
8
|
+
* `adminDb` (service-role, bypasses RLS). Use only in controlled environments;
|
|
9
|
+
* does NOT enforce field-level permissions or RLS for the principal.
|
|
10
|
+
*
|
|
11
|
+
* **Commands:**
|
|
12
|
+
* | Subcommand | Description |
|
|
13
|
+
* |------------------------------------------------|--------------------------------|
|
|
14
|
+
* | `items list [--type <slug>] [--account <id>]` | List items, filtered by type |
|
|
15
|
+
* | `items get <id>` | Fetch a single item by UUID |
|
|
16
|
+
* | `items create --type <slug> --data <json>` | Insert a new item |
|
|
17
|
+
* | `items update <id> --data <json>` | Patch item data fields |
|
|
18
|
+
* | `items delete <id> [--hard]` | Soft-delete or hard-delete |
|
|
19
|
+
*
|
|
20
|
+
* **Authorization note:** All commands use `adminDb` — no RLS enforcement.
|
|
21
|
+
* Account scoping is applied as a filter only; it does not restrict access.
|
|
22
|
+
*
|
|
23
|
+
* **Usage:**
|
|
24
|
+
* ```bash
|
|
25
|
+
* spine items list --type support_ticket --account <id> --limit 50
|
|
26
|
+
* spine items get <uuid>
|
|
27
|
+
* spine items create --type support_ticket --title "Bug report" --data '{"priority":"high"}'
|
|
28
|
+
* spine items update <uuid> --data '{"status":"resolved"}'
|
|
29
|
+
* spine items delete <uuid>
|
|
30
|
+
* spine items delete <uuid> --hard
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @seeAlso cli/context.ts (buildCliContext)
|
|
34
|
+
* @seeAlso functions/admin-data.ts (API equivalent with RLS)
|
|
35
|
+
*/
|
|
36
|
+
import type { Command } from 'commander';
|
|
37
|
+
/**
|
|
38
|
+
* Registers the `items` subcommand group on the root Commander program.
|
|
39
|
+
*
|
|
40
|
+
* @param program - The root `spine` Commander instance
|
|
41
|
+
* @sideEffects Adds `items list/get/create/update/delete` subcommands to `program`
|
|
42
|
+
* @calledBy cli/index.ts
|
|
43
|
+
*/
|
|
44
|
+
export declare function registerItemCommands(program: Command): void;
|
|
45
|
+
//# sourceMappingURL=items.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/items.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QA4MpD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/commands/migrations
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* `spine migrations` command group. Read-only inspection of the migration
|
|
8
|
+
* state. Does NOT apply or roll back migrations — use the Supabase CLI for
|
|
9
|
+
* that. These commands are intended for verifying the state of a deployed
|
|
10
|
+
* instance during setup or debugging.
|
|
11
|
+
*
|
|
12
|
+
* **Commands:**
|
|
13
|
+
* | Subcommand | Description |
|
|
14
|
+
* |-----------------------|-----------------------------------------------------|
|
|
15
|
+
* | `migrations list` | Show all applied migrations from `schema_migrations`|
|
|
16
|
+
* | `migrations status` | Diff local `.sql` files against applied migrations |
|
|
17
|
+
*
|
|
18
|
+
* **Authorization:** Uses `adminDb` (service-role) with an explicit
|
|
19
|
+
* `.schema('public')` override to reach `schema_migrations`. Requires
|
|
20
|
+
* `SUPABASE_SERVICE_ROLE_KEY` with public schema access.
|
|
21
|
+
*
|
|
22
|
+
* **Usage:**
|
|
23
|
+
* ```bash
|
|
24
|
+
* spine migrations list
|
|
25
|
+
* spine migrations status
|
|
26
|
+
* spine migrations status --json
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @seeAlso v2-core/migrations/ (local .sql migration files)
|
|
30
|
+
* @seeAlso cli/context.ts (buildCliContext)
|
|
31
|
+
*/
|
|
32
|
+
import type { Command } from 'commander';
|
|
33
|
+
/**
|
|
34
|
+
* Registers the `migrations` subcommand group on the root Commander program.
|
|
35
|
+
*
|
|
36
|
+
* @param program - The root `spine` Commander instance
|
|
37
|
+
* @sideEffects Adds `migrations list` and `migrations status` subcommands to `program`
|
|
38
|
+
* @calledBy cli/index.ts
|
|
39
|
+
*/
|
|
40
|
+
export declare function registerMigrationCommands(program: Command): void;
|
|
41
|
+
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/migrations.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUxC;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,QA0FzD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/commands/pipelines
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* `spine pipelines` command group. Lists, inspects, and triggers pipeline
|
|
8
|
+
* execution directly from the terminal or an agentic IDE. `pipelines run`
|
|
9
|
+
* calls `runPipeline` — the same function used by API handlers and timers —
|
|
10
|
+
* so CLI executions are fully recorded in `pipeline_executions`.
|
|
11
|
+
*
|
|
12
|
+
* **Commands:**
|
|
13
|
+
* | Subcommand | Description |
|
|
14
|
+
* |---------------------------------------|------------------------------------------|
|
|
15
|
+
* | `pipelines list [--account] [--all]` | List active (or all) pipelines |
|
|
16
|
+
* | `pipelines get <id>` | Show pipeline details |
|
|
17
|
+
* | `pipelines run <id> [--data <json>]` | Execute a pipeline and show stage output |
|
|
18
|
+
* | `pipelines executions <id>` | List recent executions for a pipeline |
|
|
19
|
+
*
|
|
20
|
+
* **Usage:**
|
|
21
|
+
* ```bash
|
|
22
|
+
* spine pipelines list --account <id>
|
|
23
|
+
* spine pipelines run <uuid> --data '{"key":"value"}' --json
|
|
24
|
+
* spine pipelines executions <uuid> --limit 20
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @seeAlso cli/context.ts (buildCliContext)
|
|
28
|
+
* @seeAlso functions/_shared/pipeline-runner.ts (runPipeline)
|
|
29
|
+
* @seeAlso functions/pipeline-executions.ts (API query endpoint)
|
|
30
|
+
*/
|
|
31
|
+
import type { Command } from 'commander';
|
|
32
|
+
/**
|
|
33
|
+
* Registers the `pipelines` subcommand group on the root Commander program.
|
|
34
|
+
*
|
|
35
|
+
* @param program - The root `spine` Commander instance
|
|
36
|
+
* @sideEffects Adds `pipelines list/get/run/executions` subcommands to `program`
|
|
37
|
+
* @calledBy cli/index.ts
|
|
38
|
+
*/
|
|
39
|
+
export declare function registerPipelineCommands(program: Command): void;
|
|
40
|
+
//# sourceMappingURL=pipelines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/pipelines.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,QA0HxD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/commands/status
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* `spine-framework status` — Show the current state of the Spine installation.
|
|
8
|
+
*
|
|
9
|
+
* Displays:
|
|
10
|
+
* - Database connection status
|
|
11
|
+
* - Installed apps and their seed state
|
|
12
|
+
* - Migration history
|
|
13
|
+
* - Webhook handler registrations
|
|
14
|
+
*
|
|
15
|
+
* **Usage:**
|
|
16
|
+
* ```bash
|
|
17
|
+
* spine-framework status
|
|
18
|
+
* spine-framework status --json
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import type { Command } from 'commander';
|
|
22
|
+
export declare function registerStatusCommands(program: Command): void;
|
|
23
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/status.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2JxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAmBtD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/commands/system
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* `spine system` command — CLI interface to system discovery endpoints.
|
|
8
|
+
* Queries the running Spine instance for manifest, health, and OpenAPI spec.
|
|
9
|
+
*
|
|
10
|
+
* **Commands:**
|
|
11
|
+
* | Subcommand | Description |
|
|
12
|
+
* |-------------------------|-------------------------------------------------------|
|
|
13
|
+
* | `system manifest` | Fetch and display system manifest |
|
|
14
|
+
* | `system health` | Fetch and display health check results |
|
|
15
|
+
* | `system openapi` | Fetch OpenAPI spec (outputs JSON) |
|
|
16
|
+
* | `system --json` | Output as JSON for all subcommands |
|
|
17
|
+
*
|
|
18
|
+
* **Usage:**
|
|
19
|
+
* ```bash
|
|
20
|
+
* spine system manifest
|
|
21
|
+
* spine system health --json
|
|
22
|
+
* spine system openapi > openapi.json
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @seeAlso functions/system.ts (HTTP endpoints this CLI consumes)
|
|
26
|
+
*/
|
|
27
|
+
import type { Command } from 'commander';
|
|
28
|
+
export declare function registerSystemCommands(program: Command): void;
|
|
29
|
+
//# sourceMappingURL=system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/system.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA8CxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QA6GtD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/commands/test
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* `spine test` command — unified test runner for all 4 test surfaces.
|
|
8
|
+
* Runs Vitest tests and persists results to Supabase via the custom reporter.
|
|
9
|
+
*
|
|
10
|
+
* **Commands:**
|
|
11
|
+
* | Subcommand | Description |
|
|
12
|
+
* |-------------------------|-------------------------------------------------------|
|
|
13
|
+
* | `test` | Run all test suites |
|
|
14
|
+
* | `test unit` | Run unit tests only |
|
|
15
|
+
* | `test integration` | Run integration tests only |
|
|
16
|
+
* | `test api` | Run API tests only |
|
|
17
|
+
* | `test ui` | Run UI/Playwright tests only |
|
|
18
|
+
* | `test --json` | Output structured JSON summary |
|
|
19
|
+
* | `test --watch` | Run in watch mode (for unit/integration) |
|
|
20
|
+
*
|
|
21
|
+
* **Test surfaces:**
|
|
22
|
+
* - **unit**: Fast tests, no DB (v2-core/tests/unit/)
|
|
23
|
+
* - **integration**: DB tests with fixtures (v2-core/tests/integration/)
|
|
24
|
+
* - **api**: HTTP fetch tests against localhost:8888 (v2-core/tests/api/)
|
|
25
|
+
* - **ui**: Playwright browser tests (v2-core/tests/ui/)
|
|
26
|
+
*
|
|
27
|
+
* **Results:**
|
|
28
|
+
* All test runs are persisted to `public.test_runs` and `public.test_results`
|
|
29
|
+
* via the custom Vitest reporter (v2-core/tests/reporter.ts).
|
|
30
|
+
*
|
|
31
|
+
* **Usage:**
|
|
32
|
+
* ```bash
|
|
33
|
+
* spine test
|
|
34
|
+
* spine test unit --watch
|
|
35
|
+
* spine test integration --json
|
|
36
|
+
* spine test api
|
|
37
|
+
* spine test ui
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @seeAlso tests/reporter.ts (custom Vitest reporter)
|
|
41
|
+
* @seeAlso functions/tests.ts (API endpoint for querying results)
|
|
42
|
+
* @seeAlso pages/admin/TestingDashboard.tsx (UI for viewing results)
|
|
43
|
+
*/
|
|
44
|
+
import type { Command } from 'commander';
|
|
45
|
+
export declare function registerTestCommands(program: Command): void;
|
|
46
|
+
//# sourceMappingURL=test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/test.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAwBxC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QA6FpD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/commands/uninstall-app
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* `spine-framework uninstall-app <slug>` — Soft-uninstall an app.
|
|
8
|
+
*
|
|
9
|
+
* Deactivates the app's types, link types, and triggers in the database.
|
|
10
|
+
* Does NOT delete data (items, threads, etc.) — those remain for audit.
|
|
11
|
+
* Does NOT remove filesystem files — the app code stays in custom/apps/.
|
|
12
|
+
*
|
|
13
|
+
* To fully remove: manually delete the app directory after uninstall.
|
|
14
|
+
*
|
|
15
|
+
* **Usage:**
|
|
16
|
+
* ```bash
|
|
17
|
+
* spine-framework uninstall-app cortex
|
|
18
|
+
* spine-framework uninstall-app cortex --hard # Also deactivate items
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import type { Command } from 'commander';
|
|
22
|
+
export declare function registerUninstallAppCommands(program: Command): void;
|
|
23
|
+
//# sourceMappingURL=uninstall-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall-app.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/uninstall-app.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAgIxC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,QAe5D"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/context
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* CLI context builder and output utilities. This is the CLI equivalent of
|
|
8
|
+
* `createHandler()` in `middleware.ts` — it resolves the principal, picks the
|
|
9
|
+
* correct Supabase client, and returns a `CoreContext` that every CLI command
|
|
10
|
+
* passes directly to core functions.
|
|
11
|
+
*
|
|
12
|
+
* **Environment variables read from `.xenv` or `process.env`:**
|
|
13
|
+
* | Variable | Required | Purpose |
|
|
14
|
+
* |---------------------------|----------|------------------------------------|
|
|
15
|
+
* | `SUPABASE_URL` | yes | Project API URL |
|
|
16
|
+
* | `SUPABASE_SERVICE_ROLE_KEY` | yes | Service-role client (admin ops) |
|
|
17
|
+
* | `SUPABASE_ANON_KEY` | yes | User-scoped client (JWT mode) |
|
|
18
|
+
* | `SPINE_CLI_ACCOUNT_ID` | no | Default account scope |
|
|
19
|
+
* | `SPINE_CLI_JWT` | no | Human principal (Supabase JWT) |
|
|
20
|
+
* | `SPINE_CLI_API_KEY` | no | Machine principal (hashed key) |
|
|
21
|
+
* | `SPINE_CLI_DEBUG` | no | Print stack traces on error |
|
|
22
|
+
*
|
|
23
|
+
* **Principal resolution priority** (first match wins):
|
|
24
|
+
* 1. `SPINE_CLI_JWT` → human principal (RLS-scoped `getUserDb`)
|
|
25
|
+
* 2. `SPINE_CLI_API_KEY` → machine principal (`adminDb`)
|
|
26
|
+
* 3. Fallback → `SYSTEM_PRINCIPAL` (`adminDb` — admin ops only)
|
|
27
|
+
*
|
|
28
|
+
* @seeAlso functions/_shared/middleware.ts (createHandler — server-side equivalent)
|
|
29
|
+
* @seeAlso functions/_shared/principal.ts (Principal type and SYSTEM_PRINCIPAL)
|
|
30
|
+
* @seeAlso cli/index.ts (entry point that imports all commands)
|
|
31
|
+
*/
|
|
32
|
+
import { CoreContext } from '../functions/_shared/index.ts';
|
|
33
|
+
/**
|
|
34
|
+
* Options passed from CLI command `.action()` callbacks to `buildCliContext`.
|
|
35
|
+
*
|
|
36
|
+
* @inputSpec account: string | undefined — UUID of the target account; overrides
|
|
37
|
+
* `SPINE_CLI_ACCOUNT_ID` if both are present.
|
|
38
|
+
* @calledBy All `registerXxxCommands` functions before calling core functions
|
|
39
|
+
*/
|
|
40
|
+
export interface CliOptions {
|
|
41
|
+
account?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @chunk-id CLI_CONTEXT_BUILD_1_0_0
|
|
45
|
+
* @version 1.0.0
|
|
46
|
+
* @hash 501162983b1b24e9a15267ca7b8398b3733f540b2a65a96d8277ec3d780f2003
|
|
47
|
+
* @macro CLI Context Builder
|
|
48
|
+
* @micro Constructs CoreContext with principal resolution and Supabase client
|
|
49
|
+
* @inputs opts: CliOptions — Optional overrides including account ID
|
|
50
|
+
* @outputs CoreContext — Fully resolved context with principal, DB client, and request ID
|
|
51
|
+
* @depends-on [loadEnv, adminDb, getUserDb, SYSTEM_PRINCIPAL]
|
|
52
|
+
* @depended-by [All CLI command handlers]
|
|
53
|
+
* @side-effects [DB queries, environment reads, crypto.randomUUID]
|
|
54
|
+
* @tags cli, authentication, principal-resolution, context
|
|
55
|
+
*/
|
|
56
|
+
export declare function buildCliContext(opts?: CliOptions): Promise<CoreContext>;
|
|
57
|
+
/**
|
|
58
|
+
* @chunk-id CLI_CONTEXT_PRINT_RESULT_1_0_0
|
|
59
|
+
* @version 1.0.0
|
|
60
|
+
* @hash 06e492defa9012290a5c8b2d4fca27f01df11bdc194ffbdf4f4b4518aa683c2b
|
|
61
|
+
* @macro CLI Output Formatter
|
|
62
|
+
* @micro Pretty-prints query results as JSON or ASCII tables
|
|
63
|
+
* @inputs data: any — Result data to display (array or single value)
|
|
64
|
+
* @inputs opts: { json?: boolean } — Output format options
|
|
65
|
+
* @outputs void — Console output only
|
|
66
|
+
* @depends-on [console, JSON]
|
|
67
|
+
* @depended-by [All CLI command list/get handlers]
|
|
68
|
+
* @side-effects [console.log output]
|
|
69
|
+
* @tags cli, output, formatting, tables, json
|
|
70
|
+
*/
|
|
71
|
+
export declare function printResult(data: any, opts?: {
|
|
72
|
+
json?: boolean;
|
|
73
|
+
}): void;
|
|
74
|
+
/**
|
|
75
|
+
* @chunk-id CLI_CONTEXT_HANDLE_ERROR_1_0_0
|
|
76
|
+
* @version 1.0.0
|
|
77
|
+
* @hash 61aca7e4bce61b5b790e8f27ef3f505a6a6fe9a8cd6643e577f610d9dd15b1cd
|
|
78
|
+
* @macro CLI Error Handler
|
|
79
|
+
* @micro Prints formatted error and exits with proper debug information
|
|
80
|
+
* @inputs err: any — Error object or string message
|
|
81
|
+
* @outputs void — Process termination (exit code 1)
|
|
82
|
+
* @depends-on [console, process]
|
|
83
|
+
* @depended-by [All CLI command action handlers]
|
|
84
|
+
* @side-effects [console.error output, process.exit]
|
|
85
|
+
* @tags cli, error-handling, debug, process-exit
|
|
86
|
+
*/
|
|
87
|
+
export declare function handleError(err: any): void;
|
|
88
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../.framework/cli/context.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAKH,OAAO,EAAE,WAAW,EAAmD,MAAM,+BAA+B,CAAA;AA0C5G;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAKD;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAgGjF;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,QAsBnE;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,QAMnC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/env-loader
|
|
3
|
+
* @audience installer
|
|
4
|
+
* @layer cli
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* Side-effect module: loads `v2-core/.xenv` into `process.env` before any
|
|
8
|
+
* other CLI module is imported. Must be the first import in `cli/index.ts`
|
|
9
|
+
* so that `db.ts` (which reads env vars at module-load time) sees the values.
|
|
10
|
+
*
|
|
11
|
+
* @sideEffects Mutates process.env — only sets keys not already present
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=env-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-loader.d.ts","sourceRoot":"","sources":["../../.framework/cli/env-loader.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @module cli/index
|
|
4
|
+
* @audience installer
|
|
5
|
+
* @layer cli
|
|
6
|
+
* @stability stable
|
|
7
|
+
*
|
|
8
|
+
* Spine CLI entry point (`npx spine-framework`). Registers all command groups via
|
|
9
|
+
* Commander and delegates each subcommand to the same core logic used by
|
|
10
|
+
* API handlers and direct imports. No business logic lives here — only
|
|
11
|
+
* command registration and top-level error handling.
|
|
12
|
+
*
|
|
13
|
+
* **Command groups registered:**
|
|
14
|
+
* | Group | File |
|
|
15
|
+
* |-------------|----------------------------|
|
|
16
|
+
* | auth | commands/auth.ts |
|
|
17
|
+
* | pipelines | commands/pipelines.ts |
|
|
18
|
+
* | items | commands/items.ts |
|
|
19
|
+
* | agents | commands/agents.ts |
|
|
20
|
+
* | migrations | commands/migrations.ts |
|
|
21
|
+
* | init | commands/init.ts |
|
|
22
|
+
* | install-app | commands/install-app.ts |
|
|
23
|
+
* | status | commands/status.ts |
|
|
24
|
+
* | uninstall | commands/uninstall-app.ts |
|
|
25
|
+
*
|
|
26
|
+
* **Usage:**
|
|
27
|
+
* ```bash
|
|
28
|
+
* npx spine-framework --help
|
|
29
|
+
* npx spine-framework auth whoami
|
|
30
|
+
* npx spine-framework pipelines run <id> --data '{"key":"value"}'
|
|
31
|
+
* npx spine-framework items list --type support_ticket
|
|
32
|
+
* npx spine-framework items get <id>
|
|
33
|
+
* npx spine-framework agents run <thread-id> --message "Hello"
|
|
34
|
+
* npx spine-framework migrations list
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @seeAlso cli/context.ts (buildCliContext — constructs CoreContext for every command)
|
|
38
|
+
* @seeAlso functions/_shared/index.ts (core functions exposed to CLI)
|
|
39
|
+
*/
|
|
40
|
+
import './env-loader.ts';
|
|
41
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../.framework/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,iBAAiB,CAAA"}
|