spine-framework 0.3.125 → 0.3.127
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 +169 -97
- package/.framework/cli/commands/generate.ts +82 -161
- 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} +147 -54
- package/.framework/functions/_shared/db.ts +80 -126
- package/.framework/functions/_shared/hash-api-key.ts +63 -0
- package/.framework/functions/_shared/index.ts +222 -347
- 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 +162 -14
- 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 +687 -533
- 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 +173 -145
- 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 +192 -115
- 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 +3 -3
- 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,12 +1,38 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
// CIL[BEGIN chunk_id="doctor_module_header_1784071456" type="module_header" identity="module_header" parent="none"]
|
|
22
|
+
// CIL[DOC-MACRO purpose="Import dependencies for doctor CLI commands"]
|
|
23
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide imports and utilities for health checks"]
|
|
24
|
+
// CIL[DOC-CONTEXT module="doctor-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\",\"\\\"]"]
|
|
25
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="imports" errors="none" side_effects="none"]
|
|
26
|
+
// CIL[DOC-MICRO logic_summary="Imports Command type, context, database, and file system modules" notable_decisions="[]"]
|
|
27
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
28
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
29
|
+
// CIL[DOC-AUDIENCE audience="developer"]
|
|
30
|
+
// 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, \."]
|
|
31
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
32
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
33
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
34
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
35
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
10
36
|
import type { Command } from 'commander'
|
|
11
37
|
import { buildCliContext, handleError } from '../context.ts'
|
|
12
38
|
import { adminDb } from '../../functions/_shared/index.ts'
|
|
@@ -16,17 +42,21 @@ import { fileURLToPath } from 'url'
|
|
|
16
42
|
|
|
17
43
|
const __filename = fileURLToPath(import.meta.url)
|
|
18
44
|
const __dirname = dirname(__filename)
|
|
19
|
-
// CIL[END chunk_id="
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
// CIL[
|
|
24
|
-
// CIL[DOC-
|
|
25
|
-
// CIL[DOC-
|
|
26
|
-
// CIL[DOC-
|
|
27
|
-
// CIL[DOC-
|
|
28
|
-
// CIL[DOC-
|
|
29
|
-
// CIL[DOC-
|
|
45
|
+
// CIL[END chunk_id="doctor_module_header_1784071456"]
|
|
46
|
+
// CIL[BEGIN chunk_id="doctor_checkresult_1784071456" type="interface" identity="CheckResult" parent="none"]
|
|
47
|
+
// CIL[DOC-MACRO purpose="Define structure for health check results"]
|
|
48
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide standardized check result format"]
|
|
49
|
+
// CIL[DOC-CONTEXT module="doctor-cli" layer="cli" related_files="[\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
50
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="interface definition" errors="none" side_effects="none"]
|
|
51
|
+
// CIL[DOC-MICRO logic_summary="Defines check result with status, message, and optional details" notable_decisions="[]"]
|
|
52
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
53
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
54
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
55
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
56
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
57
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
58
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
59
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
30
60
|
interface CheckResult {
|
|
31
61
|
name: string
|
|
32
62
|
status: 'pass' | 'fail' | 'warn'
|
|
@@ -34,15 +64,21 @@ interface CheckResult {
|
|
|
34
64
|
details?: Record<string, any>
|
|
35
65
|
fixable?: boolean
|
|
36
66
|
}
|
|
37
|
-
// CIL[END chunk_id="
|
|
38
|
-
|
|
39
|
-
// CIL[
|
|
40
|
-
// CIL[DOC-
|
|
41
|
-
// CIL[DOC-
|
|
42
|
-
// CIL[DOC-
|
|
43
|
-
// CIL[DOC-
|
|
44
|
-
// CIL[DOC-
|
|
45
|
-
// CIL[DOC-
|
|
67
|
+
// CIL[END chunk_id="doctor_checkresult_1784071456"]
|
|
68
|
+
// CIL[BEGIN chunk_id="doctor_doctorreport_1784071456" type="interface" identity="DoctorReport" parent="none"]
|
|
69
|
+
// CIL[DOC-MACRO purpose="Define structure for comprehensive doctor report"]
|
|
70
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Provide complete health check summary format"]
|
|
71
|
+
// CIL[DOC-CONTEXT module="doctor-cli" layer="cli" related_files="[\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
|
|
72
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="interface definition" errors="none" side_effects="none"]
|
|
73
|
+
// CIL[DOC-MICRO logic_summary="Defines report with overall status and check summaries" notable_decisions="[]"]
|
|
74
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
75
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
76
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
|
|
77
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
78
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
79
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
80
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
81
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
46
82
|
interface DoctorReport {
|
|
47
83
|
overall: 'healthy' | 'degraded' | 'unhealthy'
|
|
48
84
|
checks: CheckResult[]
|
|
@@ -53,17 +89,21 @@ interface DoctorReport {
|
|
|
53
89
|
fixable: number
|
|
54
90
|
}
|
|
55
91
|
}
|
|
56
|
-
// CIL[END chunk_id="
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
// CIL[
|
|
61
|
-
// CIL[DOC-
|
|
62
|
-
// CIL[DOC-
|
|
63
|
-
// CIL[DOC-
|
|
64
|
-
// CIL[DOC-
|
|
65
|
-
// CIL[DOC-
|
|
66
|
-
// CIL[DOC-
|
|
92
|
+
// CIL[END chunk_id="doctor_doctorreport_1784071456"]
|
|
93
|
+
// CIL[BEGIN chunk_id="doctor_checkenvironment_1784071456" type="function" identity="checkEnvironment" parent="none"]
|
|
94
|
+
// CIL[DOC-MACRO purpose="Check required environment variables"]
|
|
95
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Validate Supabase environment configuration"]
|
|
96
|
+
// CIL[DOC-CONTEXT module="doctor-cli" layer="cli" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
|
|
97
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CheckResult" errors="none" side_effects="reads environment variables"]
|
|
98
|
+
// CIL[DOC-MICRO logic_summary="Validates required env vars and checks for .xenv file" notable_decisions="[]"]
|
|
99
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
100
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
101
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, \."]
|
|
102
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
103
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
104
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
105
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
106
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
67
107
|
async function checkEnvironment(): Promise<CheckResult> {
|
|
68
108
|
const required = ['SUPABASE_URL', 'SUPABASE_SERVICE_ROLE_KEY']
|
|
69
109
|
const missing = required.filter(v => !process.env[v])
|
|
@@ -89,15 +129,21 @@ async function checkEnvironment(): Promise<CheckResult> {
|
|
|
89
129
|
details: { has_xenv: hasXenv, vars_present: required.length }
|
|
90
130
|
}
|
|
91
131
|
}
|
|
92
|
-
// CIL[END chunk_id="
|
|
93
|
-
|
|
94
|
-
// CIL[
|
|
95
|
-
// CIL[DOC-
|
|
96
|
-
// CIL[DOC-
|
|
97
|
-
// CIL[DOC-
|
|
98
|
-
// CIL[DOC-
|
|
99
|
-
// CIL[DOC-
|
|
100
|
-
// CIL[DOC-
|
|
132
|
+
// CIL[END chunk_id="doctor_checkenvironment_1784071456"]
|
|
133
|
+
// CIL[BEGIN chunk_id="doctor_checkdatabase_1784071456" type="function" identity="checkDatabase" parent="none"]
|
|
134
|
+
// CIL[DOC-MACRO purpose="Check database connectivity and performance"]
|
|
135
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Validate database connection and measure latency"]
|
|
136
|
+
// CIL[DOC-CONTEXT module="doctor-cli" layer="cli" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\"\\\"]"]
|
|
137
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CheckResult" errors="database connection errors" side_effects="queries database"]
|
|
138
|
+
// CIL[DOC-MICRO logic_summary="Tests database connection with simple query and measures latency" notable_decisions="[]"]
|
|
139
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
|
|
140
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
141
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/src/components/ui/dialog.tsx, \."]
|
|
142
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
143
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
144
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
145
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
146
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
101
147
|
async function checkDatabase(): Promise<CheckResult> {
|
|
102
148
|
const start = Date.now()
|
|
103
149
|
try {
|
|
@@ -129,15 +175,21 @@ async function checkDatabase(): Promise<CheckResult> {
|
|
|
129
175
|
}
|
|
130
176
|
}
|
|
131
177
|
}
|
|
132
|
-
// CIL[END chunk_id="
|
|
133
|
-
|
|
134
|
-
// CIL[
|
|
135
|
-
// CIL[DOC-
|
|
136
|
-
// CIL[DOC-
|
|
137
|
-
// CIL[DOC-
|
|
138
|
-
// CIL[DOC-
|
|
139
|
-
// CIL[DOC-
|
|
140
|
-
// CIL[DOC-
|
|
178
|
+
// CIL[END chunk_id="doctor_checkdatabase_1784071456"]
|
|
179
|
+
// CIL[BEGIN chunk_id="doctor_checkmigrations_1784071456" type="function" identity="checkMigrations" parent="none"]
|
|
180
|
+
// CIL[DOC-MACRO purpose="Check migration status and pending migrations"]
|
|
181
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Compare local migration files with applied migrations"]
|
|
182
|
+
// CIL[DOC-CONTEXT module="doctor-cli" layer="cli" related_files="[]"]
|
|
183
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CheckResult" errors="database query errors" side_effects="queries database, reads filesystem"]
|
|
184
|
+
// CIL[DOC-MICRO logic_summary="Compares local SQL files with database migration records" notable_decisions="[]"]
|
|
185
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
|
|
186
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
187
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
188
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
189
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
190
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
191
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
192
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
141
193
|
async function checkMigrations(): Promise<CheckResult> {
|
|
142
194
|
const migrationsDir = resolve(__dirname, '../../migrations_dayzero')
|
|
143
195
|
|
|
@@ -199,15 +251,21 @@ async function checkMigrations(): Promise<CheckResult> {
|
|
|
199
251
|
}
|
|
200
252
|
}
|
|
201
253
|
}
|
|
202
|
-
// CIL[END chunk_id="
|
|
203
|
-
|
|
204
|
-
// CIL[
|
|
205
|
-
// CIL[DOC-
|
|
206
|
-
// CIL[DOC-
|
|
207
|
-
// CIL[DOC-
|
|
208
|
-
// CIL[DOC-
|
|
209
|
-
// CIL[DOC-
|
|
210
|
-
// CIL[DOC-
|
|
254
|
+
// CIL[END chunk_id="doctor_checkmigrations_1784071456"]
|
|
255
|
+
// CIL[BEGIN chunk_id="doctor_checkintegrity_1784071456" type="function" identity="checkIntegrity" parent="none"]
|
|
256
|
+
// CIL[DOC-MACRO purpose="Check core integrity manifest"]
|
|
257
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Validate spine manifest and integrity hash"]
|
|
258
|
+
// CIL[DOC-CONTEXT module="doctor-cli" layer="cli" related_files="[]"]
|
|
259
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CheckResult" errors="file system errors" side_effects="reads manifest file"]
|
|
260
|
+
// CIL[DOC-MICRO logic_summary="Checks for manifest file and validates integrity hash presence" notable_decisions="[]"]
|
|
261
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
262
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
263
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
264
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
265
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
266
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
267
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
268
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
211
269
|
async function checkIntegrity(): Promise<CheckResult> {
|
|
212
270
|
const manifestPath = resolve(__dirname, '../../.spine-manifest.json')
|
|
213
271
|
|
|
@@ -250,15 +308,21 @@ async function checkIntegrity(): Promise<CheckResult> {
|
|
|
250
308
|
}
|
|
251
309
|
}
|
|
252
310
|
}
|
|
253
|
-
// CIL[END chunk_id="
|
|
254
|
-
|
|
255
|
-
// CIL[
|
|
256
|
-
// CIL[DOC-
|
|
257
|
-
// CIL[DOC-
|
|
258
|
-
// CIL[DOC-
|
|
259
|
-
// CIL[DOC-
|
|
260
|
-
// CIL[DOC-
|
|
261
|
-
// CIL[DOC-
|
|
311
|
+
// CIL[END chunk_id="doctor_checkintegrity_1784071456"]
|
|
312
|
+
// CIL[BEGIN chunk_id="doctor_checktestruns_1784071456" type="function" identity="checkTestRuns" parent="none"]
|
|
313
|
+
// CIL[DOC-MACRO purpose="Check recent test run status"]
|
|
314
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Query latest test run and report status"]
|
|
315
|
+
// CIL[DOC-CONTEXT module="doctor-cli" layer="cli" related_files="[]"]
|
|
316
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="CheckResult" errors="database query errors" side_effects="queries test_runs table"]
|
|
317
|
+
// CIL[DOC-MICRO logic_summary="Retrieves most recent test run and reports its status" notable_decisions="[]"]
|
|
318
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
|
|
319
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
320
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
321
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
322
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
323
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
324
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
325
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
262
326
|
async function checkTestRuns(): Promise<CheckResult> {
|
|
263
327
|
try {
|
|
264
328
|
const { data, error } = await adminDb
|
|
@@ -303,17 +367,21 @@ async function checkTestRuns(): Promise<CheckResult> {
|
|
|
303
367
|
}
|
|
304
368
|
}
|
|
305
369
|
}
|
|
306
|
-
// CIL[END chunk_id="
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
// CIL[
|
|
311
|
-
// CIL[DOC-
|
|
312
|
-
// CIL[DOC-
|
|
313
|
-
// CIL[DOC-
|
|
314
|
-
// CIL[DOC-
|
|
315
|
-
// CIL[DOC-
|
|
316
|
-
// CIL[DOC-
|
|
370
|
+
// CIL[END chunk_id="doctor_checktestruns_1784071456"]
|
|
371
|
+
// CIL[BEGIN chunk_id="doctor_tryfix_1784071456" type="function" identity="tryFix" parent="none"]
|
|
372
|
+
// CIL[DOC-MACRO purpose="Provide fix suggestions for failed checks"]
|
|
373
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Generate remediation instructions for common issues"]
|
|
374
|
+
// CIL[DOC-CONTEXT module="doctor-cli" layer="cli" related_files="[]"]
|
|
375
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="string" errors="none" side_effects="none"]
|
|
376
|
+
// CIL[DOC-MICRO logic_summary="Maps check names to specific fix commands and instructions" notable_decisions="[]"]
|
|
377
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
378
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
379
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
380
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
381
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
382
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
383
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
384
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
317
385
|
async function tryFix(check: CheckResult): Promise<string> {
|
|
318
386
|
switch (check.name) {
|
|
319
387
|
case 'environment':
|
|
@@ -332,17 +400,21 @@ async function tryFix(check: CheckResult): Promise<string> {
|
|
|
332
400
|
return 'No automatic fix available'
|
|
333
401
|
}
|
|
334
402
|
}
|
|
335
|
-
// CIL[END chunk_id="
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
// CIL[
|
|
340
|
-
// CIL[DOC-
|
|
341
|
-
// CIL[DOC-
|
|
342
|
-
// CIL[DOC-
|
|
343
|
-
// CIL[DOC-
|
|
344
|
-
// CIL[DOC-
|
|
345
|
-
// CIL[DOC-
|
|
403
|
+
// CIL[END chunk_id="doctor_tryfix_1784071456"]
|
|
404
|
+
// CIL[BEGIN chunk_id="doctor_registerdoctorcommands_1784071456" type="function" identity="registerDoctorCommands" parent="none"]
|
|
405
|
+
// CIL[DOC-MACRO purpose="Register doctor command with CLI framework"]
|
|
406
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Orchestrate all health checks and generate report"]
|
|
407
|
+
// CIL[DOC-CONTEXT module="doctor-cli" layer="cli" related_files="[]"]
|
|
408
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="doctor command registration" errors="CLI context errors" side_effects="outputs health report"]
|
|
409
|
+
// CIL[DOC-MICRO logic_summary="Runs all checks in dependency order and formats results" notable_decisions="[]"]
|
|
410
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="external_symbols_unknown"]
|
|
411
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
412
|
+
// CIL[DOC-VECTOR type="context" content="Layer: cli. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
413
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
414
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
415
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
416
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
417
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
346
418
|
export function registerDoctorCommands(program: Command) {
|
|
347
419
|
program
|
|
348
420
|
.command('doctor')
|
|
@@ -477,4 +549,4 @@ export function registerDoctorCommands(program: Command) {
|
|
|
477
549
|
}
|
|
478
550
|
})
|
|
479
551
|
}
|
|
480
|
-
// CIL[END chunk_id="
|
|
552
|
+
// CIL[END chunk_id="doctor_registerdoctorcommands_1784071456"]
|