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,45 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
* | `agents threads get <id> [--limit <n>]` | Show thread + recent messages |
|
|
19
|
-
*
|
|
20
|
-
* **Usage:**
|
|
21
|
-
* ```bash
|
|
22
|
-
* spine agents run <uuid> --message "Summarize the last 10 tickets" --json
|
|
23
|
-
* spine agents threads list --account <id> --limit 10
|
|
24
|
-
* spine agents threads get <uuid>
|
|
25
|
-
* ```
|
|
26
|
-
*
|
|
27
|
-
* @seeAlso cli/context.ts (buildCliContext)
|
|
28
|
-
* @seeAlso functions/_shared/agent-runner.ts (runAgent)
|
|
29
|
-
* @seeAlso functions/ai-agents.ts (agent configuration CRUD)
|
|
30
|
-
*/
|
|
1
|
+
// CIL[BEGIN chunk_id="agents_module_header_1784183721" type="module_header" identity="module_header" parent="none"]
|
|
2
|
+
// CIL[DOC-MACRO purpose="Preamble and imports for agents"]
|
|
3
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provides imports and top-level types/constants used by the rest of the module"]
|
|
4
|
+
// CIL[DOC-CONTEXT module=".framework/cli/commands/agents" layer="cli" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
|
|
5
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="imports, types, constants" errors="none" side_effects="none"]
|
|
6
|
+
// CIL[DOC-MICRO logic_summary="Imports external dependencies and declares shared types or constants" notable_decisions="[]"]
|
|
7
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
8
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
9
|
+
// CIL[DOC-AUDIENCE audience="developer"]
|
|
10
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/schema-utils.ts, \."]
|
|
11
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
12
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
13
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
14
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
15
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
16
|
+
|
|
17
|
+
|
|
31
18
|
|
|
32
19
|
import type { Command } from 'commander'
|
|
33
20
|
import { buildCliContext, printResult, handleError } from '../context.ts'
|
|
34
21
|
import { runAgent, adminDb } from '../../functions/_shared/index.ts'
|
|
35
22
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
23
|
+
|
|
24
|
+
// CIL[END chunk_id="agents_module_header_1784183721"]
|
|
25
|
+
// CIL[BEGIN chunk_id="agents_registeragentcommands_1784183721" type="function" identity="registerAgentCommands" parent="none"]
|
|
26
|
+
// CIL[DOC-MACRO purpose="Implement the registerAgentCommands helper function"]
|
|
27
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Owns the registerAgentCommands computation and return value"]
|
|
28
|
+
// CIL[DOC-CONTEXT module=".framework/cli/commands/agents" layer="cli" related_files="[\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
|
|
29
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="void" errors="Error" side_effects="logs to console, queries database, builds CLI context"]
|
|
30
|
+
// CIL[DOC-MICRO logic_summary="Computes and returns void" notable_decisions="[]"]
|
|
31
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
|
|
32
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
33
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/functions/custom_cil-embeddings.ts, .framework/functions/_shared/principal.ts, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, \."]
|
|
34
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
35
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
36
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
37
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
38
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
43
39
|
export function registerAgentCommands(program: Command) {
|
|
44
40
|
const agents = program
|
|
45
41
|
.command('agents')
|
|
@@ -151,3 +147,5 @@ export function registerAgentCommands(program: Command) {
|
|
|
151
147
|
}
|
|
152
148
|
})
|
|
153
149
|
}
|
|
150
|
+
|
|
151
|
+
// CIL[END chunk_id="agents_registeragentcommands_1784183721"]
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module cli/commands/auth
|
|
3
|
-
* @audience installer
|
|
4
|
-
* @layer cli
|
|
5
|
-
* @stability stable
|
|
6
|
-
*
|
|
7
|
-
* `spine auth` command group. Exposes two subcommands for verifying and
|
|
8
|
-
* inspecting the currently configured CLI credentials without performing
|
|
9
|
-
* any data operations.
|
|
10
|
-
*
|
|
11
|
-
* **Commands:**
|
|
12
|
-
* | Subcommand | Description |
|
|
13
|
-
* |-------------------|-------------------------------------------------------|
|
|
14
|
-
* | `auth whoami` | Print the resolved principal for the current env |
|
|
15
|
-
* | `auth check` | Validate credentials; exit 0 on success, 1 on failure |
|
|
16
|
-
*
|
|
17
|
-
* **Usage:**
|
|
18
|
-
* ```bash
|
|
19
|
-
* spine auth whoami
|
|
20
|
-
* spine auth whoami --json
|
|
21
|
-
* spine auth check
|
|
22
|
-
* ```
|
|
23
|
-
*
|
|
24
|
-
* @seeAlso cli/context.ts (buildCliContext — principal resolution)
|
|
25
|
-
* @seeAlso functions/auth.ts (API equivalent)
|
|
26
|
-
*/
|
|
27
1
|
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
// CIL[BEGIN chunk_id="auth_module_header_1784071456" type="module_header" identity="module_header" parent="none"]
|
|
7
|
+
// CIL[DOC-MACRO purpose="Import dependencies for auth CLI commands"]
|
|
8
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide imports for auth command registration"]
|
|
9
|
+
// CIL[DOC-CONTEXT module="auth-cli" layer="cli" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"\\\"]"]
|
|
10
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="imports" errors="none" side_effects="none"]
|
|
11
|
+
// CIL[DOC-MICRO logic_summary="Imports Command type and CLI context utilities" notable_decisions="[]"]
|
|
12
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
13
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
14
|
+
// CIL[DOC-AUDIENCE audience="developer"]
|
|
15
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx, \."]
|
|
16
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
17
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
18
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
19
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
20
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
28
21
|
import type { Command } from 'commander'
|
|
29
22
|
import { buildCliContext, handleError } from '../context.js'
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
23
|
+
// CIL[END chunk_id="auth_module_header_1784071456"]
|
|
24
|
+
// CIL[BEGIN chunk_id="auth_registerauthcommands_1784071456" type="function" identity="registerAuthCommands" parent="none"]
|
|
25
|
+
// CIL[DOC-MACRO purpose="Register auth commands with CLI framework"]
|
|
26
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide whoami and check subcommands for auth"]
|
|
27
|
+
// CIL[DOC-CONTEXT module="auth-cli" layer="cli" related_files="[\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
28
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="auth command registration" errors="CLI context errors" side_effects="outputs identity info"]
|
|
29
|
+
// CIL[DOC-MICRO logic_summary="Registers whoami and check commands for identity validation" notable_decisions="[]"]
|
|
30
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
|
|
31
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
32
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/principal.ts, .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
33
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
34
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
35
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
36
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
37
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
38
38
|
export function registerAuthCommands(program: Command) {
|
|
39
39
|
const auth = program
|
|
40
40
|
.command('auth')
|
|
@@ -92,3 +92,4 @@ export function registerAuthCommands(program: Command) {
|
|
|
92
92
|
}
|
|
93
93
|
})
|
|
94
94
|
}
|
|
95
|
+
// CIL[END chunk_id="auth_registerauthcommands_1784071456"]
|
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/**
|
|
3
|
-
* @module cli/commands/create-app
|
|
4
|
-
* @audience installer
|
|
5
|
-
* @layer cli
|
|
6
|
-
* @stability stable
|
|
7
|
-
*
|
|
8
|
-
* `spine-framework create-app <slug>` — scaffold a new custom app.
|
|
9
|
-
*
|
|
10
|
-
* Creates the full directory structure under `custom/apps/{slug}/`:
|
|
11
|
-
* - manifest.json (app metadata, roles, routes, nav_items)
|
|
12
|
-
* - index.tsx (React entry point)
|
|
13
|
-
* - components/ (empty dir with .gitkeep)
|
|
14
|
-
*
|
|
15
|
-
* **Usage:**
|
|
16
|
-
* ```bash
|
|
17
|
-
* npm run spine-framework create-app my-app
|
|
18
|
-
* npm run spine-framework create-app my-app --name "My App" --role member
|
|
19
|
-
* npm run spine-framework create-app my-app --force
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
1
|
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
// CIL[BEGIN chunk_id="create-app_module_header_1784071456" type="module_header" identity="module_header" parent="none"]
|
|
10
|
+
// CIL[DOC-MACRO purpose="Import dependencies for create-app CLI command"]
|
|
11
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide imports and utilities for app scaffolding"]
|
|
12
|
+
// CIL[DOC-CONTEXT module="create-app-cli" layer="cli" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"\\\"]"]
|
|
13
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="imports" errors="none" side_effects="none"]
|
|
14
|
+
// CIL[DOC-MICRO logic_summary="Imports Command type, file system, path, and database modules" notable_decisions="[]"]
|
|
15
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
16
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
17
|
+
// CIL[DOC-AUDIENCE audience="developer"]
|
|
18
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx, \."]
|
|
19
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
20
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
21
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
22
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
23
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
23
24
|
import type { Command } from 'commander'
|
|
24
25
|
import { existsSync, mkdirSync, writeFileSync } from 'fs'
|
|
25
26
|
import { resolve, dirname } from 'path'
|
|
@@ -29,11 +30,39 @@ import { adminDb } from '../../functions/_shared/index.ts'
|
|
|
29
30
|
const __filename = fileURLToPath(import.meta.url)
|
|
30
31
|
const __dirname = dirname(__filename)
|
|
31
32
|
const PROJECT_ROOT = resolve(__dirname, '../../../')
|
|
32
|
-
|
|
33
|
+
// CIL[END chunk_id="create-app_module_header_1784071456"]
|
|
34
|
+
// CIL[BEGIN chunk_id="create-app_totitlecase_1784071456" type="function" identity="toTitleCase" parent="none"]
|
|
35
|
+
// CIL[DOC-MACRO purpose="Convert slug to title case format"]
|
|
36
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Format slugs as readable display names"]
|
|
37
|
+
// CIL[DOC-CONTEXT module="create-app-cli" layer="cli" related_files="[\".framework/src/components/ui/dialog.tsx\",\"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\",\"\\\"]"]
|
|
38
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="string" errors="none" side_effects="none"]
|
|
39
|
+
// CIL[DOC-MICRO logic_summary="Converts kebab-case to Title Case for display names" notable_decisions="[]"]
|
|
40
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
41
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
42
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, 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, \."]
|
|
43
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
44
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
45
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
46
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
47
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
33
48
|
function toTitleCase(slug: string): string {
|
|
34
49
|
return slug.split('-').map(s => s.charAt(0).toUpperCase() + s.slice(1)).join(' ')
|
|
35
50
|
}
|
|
36
|
-
|
|
51
|
+
// CIL[END chunk_id="create-app_totitlecase_1784071456"]
|
|
52
|
+
// CIL[BEGIN chunk_id="create-app_generatemanifest_1784071456" type="function" identity="generateManifest" parent="none"]
|
|
53
|
+
// CIL[DOC-MACRO purpose="Generate app manifest JSON content"]
|
|
54
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Create default manifest configuration for new apps"]
|
|
55
|
+
// CIL[DOC-CONTEXT module="create-app-cli" layer="cli" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/migrations/015_simplify_apps_table.sql\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
|
|
56
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="string" errors="none" side_effects="none"]
|
|
57
|
+
// CIL[DOC-MICRO logic_summary="Creates JSON manifest with routes, nav items, and metadata" notable_decisions="[]"]
|
|
58
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
59
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
60
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/migrations/015_simplify_apps_table.sql, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
|
|
61
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
62
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
63
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
64
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
65
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
37
66
|
function generateManifest(slug: string, name: string, role: string): string {
|
|
38
67
|
return JSON.stringify({
|
|
39
68
|
name,
|
|
@@ -58,18 +87,24 @@ function generateManifest(slug: string, name: string, role: string): string {
|
|
|
58
87
|
entry_point: "./index.tsx"
|
|
59
88
|
}, null, 2) + '\n'
|
|
60
89
|
}
|
|
61
|
-
|
|
90
|
+
// CIL[END chunk_id="create-app_generatemanifest_1784071456"]
|
|
91
|
+
// CIL[BEGIN chunk_id="create-app_generateindextsx_1784071456" type="function" identity="generateIndexTsx" parent="none"]
|
|
92
|
+
// CIL[DOC-MACRO purpose="Generate React component index file"]
|
|
93
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Create default React app component with routing"]
|
|
94
|
+
// CIL[DOC-CONTEXT module="create-app-cli" layer="cli" related_files="[\".framework/src/components/ui/dialog.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
95
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="string" errors="none" side_effects="none"]
|
|
96
|
+
// CIL[DOC-MICRO logic_summary="Generates TSX file with React Router and dashboard component" notable_decisions="[]"]
|
|
97
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
98
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
99
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/table-primitives.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
100
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
101
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
102
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
103
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
104
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
62
105
|
function generateIndexTsx(slug: string, name: string): string {
|
|
63
106
|
const componentName = slug.split('-').map(s => s.charAt(0).toUpperCase() + s.slice(1)).join('')
|
|
64
|
-
return
|
|
65
|
-
* @module custom/apps/${slug}
|
|
66
|
-
* @audience custom
|
|
67
|
-
* @layer frontend-app
|
|
68
|
-
* @stability experimental
|
|
69
|
-
*
|
|
70
|
-
* Entry point for the ${name} app.
|
|
71
|
-
* Generated by spine-framework CLI on ${new Date().toISOString().split('T')[0]}.
|
|
72
|
-
*/
|
|
107
|
+
return `
|
|
73
108
|
|
|
74
109
|
import * as React from 'react'
|
|
75
110
|
import { Routes, Route, Navigate } from 'react-router-dom'
|
|
@@ -93,7 +128,21 @@ export default function ${componentName}App() {
|
|
|
93
128
|
}
|
|
94
129
|
`
|
|
95
130
|
}
|
|
96
|
-
|
|
131
|
+
// CIL[END chunk_id="create-app_generateindextsx_1784071456"]
|
|
132
|
+
// CIL[BEGIN chunk_id="create-app_createapp_1784071456" type="function" identity="createApp" parent="none"]
|
|
133
|
+
// CIL[DOC-MACRO purpose="Create new app directory and database entry"]
|
|
134
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Scaffold app files and register in database"]
|
|
135
|
+
// CIL[DOC-CONTEXT module="create-app-cli" layer="cli" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/migrations/015_simplify_apps_table.sql\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/db.ts\"]"]
|
|
136
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="void" errors="file system and database errors" side_effects="creates files, inserts database records"]
|
|
137
|
+
// CIL[DOC-MICRO logic_summary="Creates app structure, generates files, and registers app in database" notable_decisions="[]"]
|
|
138
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
|
|
139
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
140
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/migrations/015_simplify_apps_table.sql, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/db.ts."]
|
|
141
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
142
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
143
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
144
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
145
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
97
146
|
async function createApp(slug: string, options: { name?: string; role: string; force: boolean }): Promise<void> {
|
|
98
147
|
const name = options.name || toTitleCase(slug)
|
|
99
148
|
const appDir = resolve(PROJECT_ROOT, `custom/apps/${slug}`)
|
|
@@ -106,29 +155,29 @@ async function createApp(slug: string, options: { name?: string; role: string; f
|
|
|
106
155
|
process.exit(1)
|
|
107
156
|
}
|
|
108
157
|
|
|
109
|
-
|
|
158
|
+
|
|
110
159
|
mkdirSync(resolve(appDir, 'components'), { recursive: true })
|
|
111
160
|
console.log(` ✓ Created custom/apps/${slug}/`)
|
|
112
161
|
console.log(` ✓ Created custom/apps/${slug}/components/`)
|
|
113
162
|
|
|
114
|
-
|
|
163
|
+
|
|
115
164
|
writeFileSync(
|
|
116
165
|
resolve(appDir, 'manifest.json'),
|
|
117
166
|
generateManifest(slug, name, options.role)
|
|
118
167
|
)
|
|
119
168
|
console.log(` ✓ Created custom/apps/${slug}/manifest.json`)
|
|
120
169
|
|
|
121
|
-
|
|
170
|
+
|
|
122
171
|
writeFileSync(
|
|
123
172
|
resolve(appDir, 'index.tsx'),
|
|
124
173
|
generateIndexTsx(slug, name)
|
|
125
174
|
)
|
|
126
175
|
console.log(` ✓ Created custom/apps/${slug}/index.tsx`)
|
|
127
176
|
|
|
128
|
-
|
|
177
|
+
|
|
129
178
|
writeFileSync(resolve(appDir, 'components', '.gitkeep'), '')
|
|
130
179
|
|
|
131
|
-
|
|
180
|
+
|
|
132
181
|
console.log(` Registering app in database...`)
|
|
133
182
|
const { data: existing } = await adminDb
|
|
134
183
|
.from('apps')
|
|
@@ -166,7 +215,21 @@ async function createApp(slug: string, options: { name?: string; role: string; f
|
|
|
166
215
|
console.log(` 2. Edit custom/apps/${slug}/index.tsx to build your app`)
|
|
167
216
|
console.log(` 3. npm run assemble && netlify dev`)
|
|
168
217
|
}
|
|
169
|
-
|
|
218
|
+
// CIL[END chunk_id="create-app_createapp_1784071456"]
|
|
219
|
+
// CIL[BEGIN chunk_id="create-app_registercreateappcommands_1784071456" type="function" identity="registerCreateAppCommands" parent="none"]
|
|
220
|
+
// CIL[DOC-MACRO purpose="Register create-app command with CLI framework"]
|
|
221
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide app scaffolding command interface"]
|
|
222
|
+
// CIL[DOC-CONTEXT module="create-app-cli" layer="cli" related_files="[]"]
|
|
223
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="create-app command registration" errors="app creation errors" side_effects="creates app files and database entries"]
|
|
224
|
+
// CIL[DOC-MICRO logic_summary="Registers create-app command with options for name, role, and force" notable_decisions="[]"]
|
|
225
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
226
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
227
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
228
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
229
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
230
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
231
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
232
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
170
233
|
export function registerCreateAppCommands(program: Command) {
|
|
171
234
|
program
|
|
172
235
|
.command('create-app <slug>')
|
|
@@ -183,3 +246,4 @@ export function registerCreateAppCommands(program: Command) {
|
|
|
183
246
|
}
|
|
184
247
|
})
|
|
185
248
|
}
|
|
249
|
+
// CIL[END chunk_id="create-app_registercreateappcommands_1784071456"]
|