crca 1.4.0__py3-none-any.whl
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.
- .github/ISSUE_TEMPLATE/bug_report.md +65 -0
- .github/ISSUE_TEMPLATE/feature_request.md +41 -0
- .github/PULL_REQUEST_TEMPLATE.md +20 -0
- .github/workflows/publish-manual.yml +61 -0
- .github/workflows/publish.yml +64 -0
- .gitignore +214 -0
- CRCA.py +4156 -0
- LICENSE +201 -0
- MANIFEST.in +43 -0
- PKG-INFO +5035 -0
- README.md +4959 -0
- __init__.py +17 -0
- branches/CRCA-Q.py +2728 -0
- branches/crca_cg/corposwarm.py +9065 -0
- branches/crca_cg/fix_rancher_docker_creds.ps1 +155 -0
- branches/crca_cg/package.json +5 -0
- branches/crca_cg/test_bolt_integration.py +446 -0
- branches/crca_cg/test_corposwarm_comprehensive.py +773 -0
- branches/crca_cg/test_new_features.py +163 -0
- branches/crca_sd/__init__.py +149 -0
- branches/crca_sd/crca_sd_core.py +770 -0
- branches/crca_sd/crca_sd_governance.py +1325 -0
- branches/crca_sd/crca_sd_mpc.py +1130 -0
- branches/crca_sd/crca_sd_realtime.py +1844 -0
- branches/crca_sd/crca_sd_tui.py +1133 -0
- crca-1.4.0.dist-info/METADATA +5035 -0
- crca-1.4.0.dist-info/RECORD +501 -0
- crca-1.4.0.dist-info/WHEEL +4 -0
- crca-1.4.0.dist-info/licenses/LICENSE +201 -0
- docs/CRCA-Q.md +2333 -0
- examples/config.yaml.example +25 -0
- examples/crca_sd_example.py +513 -0
- examples/data_broker_example.py +294 -0
- examples/logistics_corporation.py +861 -0
- examples/palantir_example.py +299 -0
- examples/policy_bench.py +934 -0
- examples/pridnestrovia-sd.py +705 -0
- examples/pridnestrovia_realtime.py +1902 -0
- prompts/__init__.py +10 -0
- prompts/default_crca.py +101 -0
- pyproject.toml +151 -0
- requirements.txt +76 -0
- schemas/__init__.py +43 -0
- schemas/mcpSchemas.py +51 -0
- schemas/policy.py +458 -0
- templates/__init__.py +38 -0
- templates/base_specialized_agent.py +195 -0
- templates/drift_detection.py +325 -0
- templates/examples/causal_agent_template.py +309 -0
- templates/examples/drag_drop_example.py +213 -0
- templates/examples/logistics_agent_template.py +207 -0
- templates/examples/trading_agent_template.py +206 -0
- templates/feature_mixins.py +253 -0
- templates/graph_management.py +442 -0
- templates/llm_integration.py +194 -0
- templates/module_registry.py +276 -0
- templates/mpc_planner.py +280 -0
- templates/policy_loop.py +1168 -0
- templates/prediction_framework.py +448 -0
- templates/statistical_methods.py +778 -0
- tests/sanity.yml +31 -0
- tests/sanity_check +406 -0
- tests/test_core.py +47 -0
- tests/test_crca_excel.py +166 -0
- tests/test_crca_sd.py +780 -0
- tests/test_data_broker.py +424 -0
- tests/test_palantir.py +349 -0
- tools/__init__.py +38 -0
- tools/actuators.py +437 -0
- tools/bolt.diy/Dockerfile +103 -0
- tools/bolt.diy/app/components/@settings/core/AvatarDropdown.tsx +175 -0
- tools/bolt.diy/app/components/@settings/core/ControlPanel.tsx +345 -0
- tools/bolt.diy/app/components/@settings/core/constants.tsx +108 -0
- tools/bolt.diy/app/components/@settings/core/types.ts +114 -0
- tools/bolt.diy/app/components/@settings/index.ts +12 -0
- tools/bolt.diy/app/components/@settings/shared/components/TabTile.tsx +151 -0
- tools/bolt.diy/app/components/@settings/shared/service-integration/ConnectionForm.tsx +193 -0
- tools/bolt.diy/app/components/@settings/shared/service-integration/ConnectionTestIndicator.tsx +60 -0
- tools/bolt.diy/app/components/@settings/shared/service-integration/ErrorState.tsx +102 -0
- tools/bolt.diy/app/components/@settings/shared/service-integration/LoadingState.tsx +94 -0
- tools/bolt.diy/app/components/@settings/shared/service-integration/ServiceHeader.tsx +72 -0
- tools/bolt.diy/app/components/@settings/shared/service-integration/index.ts +6 -0
- tools/bolt.diy/app/components/@settings/tabs/data/DataTab.tsx +721 -0
- tools/bolt.diy/app/components/@settings/tabs/data/DataVisualization.tsx +384 -0
- tools/bolt.diy/app/components/@settings/tabs/event-logs/EventLogsTab.tsx +1013 -0
- tools/bolt.diy/app/components/@settings/tabs/features/FeaturesTab.tsx +295 -0
- tools/bolt.diy/app/components/@settings/tabs/github/GitHubTab.tsx +281 -0
- tools/bolt.diy/app/components/@settings/tabs/github/components/GitHubAuthDialog.tsx +173 -0
- tools/bolt.diy/app/components/@settings/tabs/github/components/GitHubCacheManager.tsx +367 -0
- tools/bolt.diy/app/components/@settings/tabs/github/components/GitHubConnection.tsx +233 -0
- tools/bolt.diy/app/components/@settings/tabs/github/components/GitHubErrorBoundary.tsx +105 -0
- tools/bolt.diy/app/components/@settings/tabs/github/components/GitHubProgressiveLoader.tsx +266 -0
- tools/bolt.diy/app/components/@settings/tabs/github/components/GitHubRepositoryCard.tsx +121 -0
- tools/bolt.diy/app/components/@settings/tabs/github/components/GitHubRepositorySelector.tsx +312 -0
- tools/bolt.diy/app/components/@settings/tabs/github/components/GitHubStats.tsx +291 -0
- tools/bolt.diy/app/components/@settings/tabs/github/components/GitHubUserProfile.tsx +46 -0
- tools/bolt.diy/app/components/@settings/tabs/github/components/shared/GitHubStateIndicators.tsx +264 -0
- tools/bolt.diy/app/components/@settings/tabs/github/components/shared/RepositoryCard.tsx +361 -0
- tools/bolt.diy/app/components/@settings/tabs/github/components/shared/index.ts +11 -0
- tools/bolt.diy/app/components/@settings/tabs/gitlab/GitLabTab.tsx +305 -0
- tools/bolt.diy/app/components/@settings/tabs/gitlab/components/GitLabAuthDialog.tsx +186 -0
- tools/bolt.diy/app/components/@settings/tabs/gitlab/components/GitLabConnection.tsx +253 -0
- tools/bolt.diy/app/components/@settings/tabs/gitlab/components/GitLabRepositorySelector.tsx +358 -0
- tools/bolt.diy/app/components/@settings/tabs/gitlab/components/RepositoryCard.tsx +79 -0
- tools/bolt.diy/app/components/@settings/tabs/gitlab/components/RepositoryList.tsx +142 -0
- tools/bolt.diy/app/components/@settings/tabs/gitlab/components/StatsDisplay.tsx +91 -0
- tools/bolt.diy/app/components/@settings/tabs/gitlab/components/index.ts +4 -0
- tools/bolt.diy/app/components/@settings/tabs/mcp/McpServerList.tsx +99 -0
- tools/bolt.diy/app/components/@settings/tabs/mcp/McpServerListItem.tsx +70 -0
- tools/bolt.diy/app/components/@settings/tabs/mcp/McpStatusBadge.tsx +37 -0
- tools/bolt.diy/app/components/@settings/tabs/mcp/McpTab.tsx +239 -0
- tools/bolt.diy/app/components/@settings/tabs/netlify/NetlifyTab.tsx +1393 -0
- tools/bolt.diy/app/components/@settings/tabs/netlify/components/NetlifyConnection.tsx +990 -0
- tools/bolt.diy/app/components/@settings/tabs/netlify/components/index.ts +1 -0
- tools/bolt.diy/app/components/@settings/tabs/notifications/NotificationsTab.tsx +300 -0
- tools/bolt.diy/app/components/@settings/tabs/profile/ProfileTab.tsx +181 -0
- tools/bolt.diy/app/components/@settings/tabs/providers/cloud/CloudProvidersTab.tsx +308 -0
- tools/bolt.diy/app/components/@settings/tabs/providers/local/ErrorBoundary.tsx +68 -0
- tools/bolt.diy/app/components/@settings/tabs/providers/local/HealthStatusBadge.tsx +64 -0
- tools/bolt.diy/app/components/@settings/tabs/providers/local/LoadingSkeleton.tsx +107 -0
- tools/bolt.diy/app/components/@settings/tabs/providers/local/LocalProvidersTab.tsx +556 -0
- tools/bolt.diy/app/components/@settings/tabs/providers/local/ModelCard.tsx +106 -0
- tools/bolt.diy/app/components/@settings/tabs/providers/local/ProviderCard.tsx +120 -0
- tools/bolt.diy/app/components/@settings/tabs/providers/local/SetupGuide.tsx +671 -0
- tools/bolt.diy/app/components/@settings/tabs/providers/local/StatusDashboard.tsx +91 -0
- tools/bolt.diy/app/components/@settings/tabs/providers/local/types.ts +44 -0
- tools/bolt.diy/app/components/@settings/tabs/settings/SettingsTab.tsx +215 -0
- tools/bolt.diy/app/components/@settings/tabs/supabase/SupabaseTab.tsx +1089 -0
- tools/bolt.diy/app/components/@settings/tabs/vercel/VercelTab.tsx +909 -0
- tools/bolt.diy/app/components/@settings/tabs/vercel/components/VercelConnection.tsx +368 -0
- tools/bolt.diy/app/components/@settings/tabs/vercel/components/index.ts +1 -0
- tools/bolt.diy/app/components/@settings/utils/tab-helpers.ts +54 -0
- tools/bolt.diy/app/components/chat/APIKeyManager.tsx +169 -0
- tools/bolt.diy/app/components/chat/Artifact.tsx +296 -0
- tools/bolt.diy/app/components/chat/AssistantMessage.tsx +192 -0
- tools/bolt.diy/app/components/chat/BaseChat.module.scss +47 -0
- tools/bolt.diy/app/components/chat/BaseChat.tsx +522 -0
- tools/bolt.diy/app/components/chat/Chat.client.tsx +670 -0
- tools/bolt.diy/app/components/chat/ChatAlert.tsx +108 -0
- tools/bolt.diy/app/components/chat/ChatBox.tsx +334 -0
- tools/bolt.diy/app/components/chat/CodeBlock.module.scss +10 -0
- tools/bolt.diy/app/components/chat/CodeBlock.tsx +85 -0
- tools/bolt.diy/app/components/chat/DicussMode.tsx +17 -0
- tools/bolt.diy/app/components/chat/ExamplePrompts.tsx +37 -0
- tools/bolt.diy/app/components/chat/FilePreview.tsx +38 -0
- tools/bolt.diy/app/components/chat/GitCloneButton.tsx +327 -0
- tools/bolt.diy/app/components/chat/ImportFolderButton.tsx +141 -0
- tools/bolt.diy/app/components/chat/LLMApiAlert.tsx +109 -0
- tools/bolt.diy/app/components/chat/MCPTools.tsx +129 -0
- tools/bolt.diy/app/components/chat/Markdown.module.scss +171 -0
- tools/bolt.diy/app/components/chat/Markdown.spec.ts +48 -0
- tools/bolt.diy/app/components/chat/Markdown.tsx +252 -0
- tools/bolt.diy/app/components/chat/Messages.client.tsx +102 -0
- tools/bolt.diy/app/components/chat/ModelSelector.tsx +797 -0
- tools/bolt.diy/app/components/chat/NetlifyDeploymentLink.client.tsx +51 -0
- tools/bolt.diy/app/components/chat/ProgressCompilation.tsx +110 -0
- tools/bolt.diy/app/components/chat/ScreenshotStateManager.tsx +33 -0
- tools/bolt.diy/app/components/chat/SendButton.client.tsx +39 -0
- tools/bolt.diy/app/components/chat/SpeechRecognition.tsx +28 -0
- tools/bolt.diy/app/components/chat/StarterTemplates.tsx +38 -0
- tools/bolt.diy/app/components/chat/SupabaseAlert.tsx +199 -0
- tools/bolt.diy/app/components/chat/SupabaseConnection.tsx +339 -0
- tools/bolt.diy/app/components/chat/ThoughtBox.tsx +43 -0
- tools/bolt.diy/app/components/chat/ToolInvocations.tsx +409 -0
- tools/bolt.diy/app/components/chat/UserMessage.tsx +101 -0
- tools/bolt.diy/app/components/chat/VercelDeploymentLink.client.tsx +158 -0
- tools/bolt.diy/app/components/chat/chatExportAndImport/ExportChatButton.tsx +49 -0
- tools/bolt.diy/app/components/chat/chatExportAndImport/ImportButtons.tsx +96 -0
- tools/bolt.diy/app/components/deploy/DeployAlert.tsx +197 -0
- tools/bolt.diy/app/components/deploy/DeployButton.tsx +277 -0
- tools/bolt.diy/app/components/deploy/GitHubDeploy.client.tsx +171 -0
- tools/bolt.diy/app/components/deploy/GitHubDeploymentDialog.tsx +1041 -0
- tools/bolt.diy/app/components/deploy/GitLabDeploy.client.tsx +171 -0
- tools/bolt.diy/app/components/deploy/GitLabDeploymentDialog.tsx +764 -0
- tools/bolt.diy/app/components/deploy/NetlifyDeploy.client.tsx +246 -0
- tools/bolt.diy/app/components/deploy/VercelDeploy.client.tsx +235 -0
- tools/bolt.diy/app/components/editor/codemirror/BinaryContent.tsx +7 -0
- tools/bolt.diy/app/components/editor/codemirror/CodeMirrorEditor.tsx +555 -0
- tools/bolt.diy/app/components/editor/codemirror/EnvMasking.ts +80 -0
- tools/bolt.diy/app/components/editor/codemirror/cm-theme.ts +192 -0
- tools/bolt.diy/app/components/editor/codemirror/indent.ts +68 -0
- tools/bolt.diy/app/components/editor/codemirror/languages.ts +112 -0
- tools/bolt.diy/app/components/git/GitUrlImport.client.tsx +147 -0
- tools/bolt.diy/app/components/header/Header.tsx +42 -0
- tools/bolt.diy/app/components/header/HeaderActionButtons.client.tsx +54 -0
- tools/bolt.diy/app/components/mandate/MandateSubmission.tsx +167 -0
- tools/bolt.diy/app/components/observability/DeploymentStatus.tsx +168 -0
- tools/bolt.diy/app/components/observability/EventTimeline.tsx +119 -0
- tools/bolt.diy/app/components/observability/FileDiffViewer.tsx +121 -0
- tools/bolt.diy/app/components/observability/GovernanceStatus.tsx +197 -0
- tools/bolt.diy/app/components/observability/GovernorMetrics.tsx +246 -0
- tools/bolt.diy/app/components/observability/LogStream.tsx +244 -0
- tools/bolt.diy/app/components/observability/MandateDetails.tsx +201 -0
- tools/bolt.diy/app/components/observability/ObservabilityDashboard.tsx +200 -0
- tools/bolt.diy/app/components/sidebar/HistoryItem.tsx +187 -0
- tools/bolt.diy/app/components/sidebar/Menu.client.tsx +536 -0
- tools/bolt.diy/app/components/sidebar/date-binning.ts +59 -0
- tools/bolt.diy/app/components/txt +1 -0
- tools/bolt.diy/app/components/ui/BackgroundRays/index.tsx +18 -0
- tools/bolt.diy/app/components/ui/BackgroundRays/styles.module.scss +246 -0
- tools/bolt.diy/app/components/ui/Badge.tsx +53 -0
- tools/bolt.diy/app/components/ui/BranchSelector.tsx +270 -0
- tools/bolt.diy/app/components/ui/Breadcrumbs.tsx +101 -0
- tools/bolt.diy/app/components/ui/Button.tsx +46 -0
- tools/bolt.diy/app/components/ui/Card.tsx +55 -0
- tools/bolt.diy/app/components/ui/Checkbox.tsx +32 -0
- tools/bolt.diy/app/components/ui/CloseButton.tsx +49 -0
- tools/bolt.diy/app/components/ui/CodeBlock.tsx +103 -0
- tools/bolt.diy/app/components/ui/Collapsible.tsx +9 -0
- tools/bolt.diy/app/components/ui/ColorSchemeDialog.tsx +378 -0
- tools/bolt.diy/app/components/ui/Dialog.tsx +449 -0
- tools/bolt.diy/app/components/ui/Dropdown.tsx +63 -0
- tools/bolt.diy/app/components/ui/EmptyState.tsx +154 -0
- tools/bolt.diy/app/components/ui/FileIcon.tsx +346 -0
- tools/bolt.diy/app/components/ui/FilterChip.tsx +92 -0
- tools/bolt.diy/app/components/ui/GlowingEffect.tsx +192 -0
- tools/bolt.diy/app/components/ui/GradientCard.tsx +100 -0
- tools/bolt.diy/app/components/ui/IconButton.tsx +84 -0
- tools/bolt.diy/app/components/ui/Input.tsx +22 -0
- tools/bolt.diy/app/components/ui/Label.tsx +20 -0
- tools/bolt.diy/app/components/ui/LoadingDots.tsx +27 -0
- tools/bolt.diy/app/components/ui/LoadingOverlay.tsx +32 -0
- tools/bolt.diy/app/components/ui/PanelHeader.tsx +20 -0
- tools/bolt.diy/app/components/ui/PanelHeaderButton.tsx +36 -0
- tools/bolt.diy/app/components/ui/Popover.tsx +29 -0
- tools/bolt.diy/app/components/ui/Progress.tsx +22 -0
- tools/bolt.diy/app/components/ui/RepositoryStats.tsx +87 -0
- tools/bolt.diy/app/components/ui/ScrollArea.tsx +41 -0
- tools/bolt.diy/app/components/ui/SearchInput.tsx +80 -0
- tools/bolt.diy/app/components/ui/SearchResultItem.tsx +134 -0
- tools/bolt.diy/app/components/ui/Separator.tsx +22 -0
- tools/bolt.diy/app/components/ui/SettingsButton.tsx +35 -0
- tools/bolt.diy/app/components/ui/Slider.tsx +73 -0
- tools/bolt.diy/app/components/ui/StatusIndicator.tsx +90 -0
- tools/bolt.diy/app/components/ui/Switch.tsx +37 -0
- tools/bolt.diy/app/components/ui/Tabs.tsx +52 -0
- tools/bolt.diy/app/components/ui/TabsWithSlider.tsx +112 -0
- tools/bolt.diy/app/components/ui/ThemeSwitch.tsx +29 -0
- tools/bolt.diy/app/components/ui/Tooltip.tsx +122 -0
- tools/bolt.diy/app/components/ui/index.ts +38 -0
- tools/bolt.diy/app/components/ui/use-toast.ts +66 -0
- tools/bolt.diy/app/components/workbench/DiffView.tsx +796 -0
- tools/bolt.diy/app/components/workbench/EditorPanel.tsx +174 -0
- tools/bolt.diy/app/components/workbench/ExpoQrModal.tsx +55 -0
- tools/bolt.diy/app/components/workbench/FileBreadcrumb.tsx +150 -0
- tools/bolt.diy/app/components/workbench/FileTree.tsx +565 -0
- tools/bolt.diy/app/components/workbench/Inspector.tsx +126 -0
- tools/bolt.diy/app/components/workbench/InspectorPanel.tsx +146 -0
- tools/bolt.diy/app/components/workbench/LockManager.tsx +262 -0
- tools/bolt.diy/app/components/workbench/PortDropdown.tsx +91 -0
- tools/bolt.diy/app/components/workbench/Preview.tsx +1049 -0
- tools/bolt.diy/app/components/workbench/ScreenshotSelector.tsx +293 -0
- tools/bolt.diy/app/components/workbench/Search.tsx +257 -0
- tools/bolt.diy/app/components/workbench/Workbench.client.tsx +506 -0
- tools/bolt.diy/app/components/workbench/terminal/Terminal.tsx +131 -0
- tools/bolt.diy/app/components/workbench/terminal/TerminalManager.tsx +68 -0
- tools/bolt.diy/app/components/workbench/terminal/TerminalTabs.tsx +277 -0
- tools/bolt.diy/app/components/workbench/terminal/theme.ts +36 -0
- tools/bolt.diy/app/components/workflow/WorkflowPhase.tsx +109 -0
- tools/bolt.diy/app/components/workflow/WorkflowStatus.tsx +60 -0
- tools/bolt.diy/app/components/workflow/WorkflowTimeline.tsx +150 -0
- tools/bolt.diy/app/entry.client.tsx +7 -0
- tools/bolt.diy/app/entry.server.tsx +80 -0
- tools/bolt.diy/app/root.tsx +156 -0
- tools/bolt.diy/app/routes/_index.tsx +175 -0
- tools/bolt.diy/app/routes/api.bug-report.ts +254 -0
- tools/bolt.diy/app/routes/api.chat.ts +463 -0
- tools/bolt.diy/app/routes/api.check-env-key.ts +41 -0
- tools/bolt.diy/app/routes/api.configured-providers.ts +110 -0
- tools/bolt.diy/app/routes/api.corporate-swarm-status.ts +55 -0
- tools/bolt.diy/app/routes/api.enhancer.ts +137 -0
- tools/bolt.diy/app/routes/api.export-api-keys.ts +44 -0
- tools/bolt.diy/app/routes/api.git-info.ts +69 -0
- tools/bolt.diy/app/routes/api.git-proxy.$.ts +178 -0
- tools/bolt.diy/app/routes/api.github-branches.ts +166 -0
- tools/bolt.diy/app/routes/api.github-deploy.ts +67 -0
- tools/bolt.diy/app/routes/api.github-stats.ts +198 -0
- tools/bolt.diy/app/routes/api.github-template.ts +242 -0
- tools/bolt.diy/app/routes/api.github-user.ts +287 -0
- tools/bolt.diy/app/routes/api.gitlab-branches.ts +143 -0
- tools/bolt.diy/app/routes/api.gitlab-deploy.ts +67 -0
- tools/bolt.diy/app/routes/api.gitlab-projects.ts +105 -0
- tools/bolt.diy/app/routes/api.health.ts +8 -0
- tools/bolt.diy/app/routes/api.llmcall.ts +298 -0
- tools/bolt.diy/app/routes/api.mandate.ts +351 -0
- tools/bolt.diy/app/routes/api.mcp-check.ts +16 -0
- tools/bolt.diy/app/routes/api.mcp-update-config.ts +23 -0
- tools/bolt.diy/app/routes/api.models.$provider.ts +2 -0
- tools/bolt.diy/app/routes/api.models.ts +90 -0
- tools/bolt.diy/app/routes/api.netlify-deploy.ts +240 -0
- tools/bolt.diy/app/routes/api.netlify-user.ts +142 -0
- tools/bolt.diy/app/routes/api.supabase-user.ts +199 -0
- tools/bolt.diy/app/routes/api.supabase.query.ts +92 -0
- tools/bolt.diy/app/routes/api.supabase.ts +56 -0
- tools/bolt.diy/app/routes/api.supabase.variables.ts +32 -0
- tools/bolt.diy/app/routes/api.system.diagnostics.ts +142 -0
- tools/bolt.diy/app/routes/api.system.disk-info.ts +311 -0
- tools/bolt.diy/app/routes/api.system.git-info.ts +332 -0
- tools/bolt.diy/app/routes/api.update.ts +21 -0
- tools/bolt.diy/app/routes/api.vercel-deploy.ts +497 -0
- tools/bolt.diy/app/routes/api.vercel-user.ts +161 -0
- tools/bolt.diy/app/routes/api.workflow-status.$proposalId.ts +309 -0
- tools/bolt.diy/app/routes/chat.$id.tsx +8 -0
- tools/bolt.diy/app/routes/execute.$mandateId.tsx +432 -0
- tools/bolt.diy/app/routes/git.tsx +25 -0
- tools/bolt.diy/app/routes/observability.$mandateId.tsx +50 -0
- tools/bolt.diy/app/routes/webcontainer.connect.$id.tsx +32 -0
- tools/bolt.diy/app/routes/webcontainer.preview.$id.tsx +97 -0
- tools/bolt.diy/app/routes/workflow.$proposalId.tsx +170 -0
- tools/bolt.diy/app/styles/animations.scss +49 -0
- tools/bolt.diy/app/styles/components/code.scss +9 -0
- tools/bolt.diy/app/styles/components/editor.scss +135 -0
- tools/bolt.diy/app/styles/components/resize-handle.scss +30 -0
- tools/bolt.diy/app/styles/components/terminal.scss +3 -0
- tools/bolt.diy/app/styles/components/toast.scss +23 -0
- tools/bolt.diy/app/styles/diff-view.css +72 -0
- tools/bolt.diy/app/styles/index.scss +73 -0
- tools/bolt.diy/app/styles/variables.scss +255 -0
- tools/bolt.diy/app/styles/z-index.scss +37 -0
- tools/bolt.diy/app/types/GitHub.ts +182 -0
- tools/bolt.diy/app/types/GitLab.ts +103 -0
- tools/bolt.diy/app/types/actions.ts +85 -0
- tools/bolt.diy/app/types/artifact.ts +5 -0
- tools/bolt.diy/app/types/context.ts +26 -0
- tools/bolt.diy/app/types/design-scheme.ts +93 -0
- tools/bolt.diy/app/types/global.d.ts +13 -0
- tools/bolt.diy/app/types/mandate.ts +333 -0
- tools/bolt.diy/app/types/model.ts +25 -0
- tools/bolt.diy/app/types/netlify.ts +94 -0
- tools/bolt.diy/app/types/supabase.ts +54 -0
- tools/bolt.diy/app/types/template.ts +8 -0
- tools/bolt.diy/app/types/terminal.ts +9 -0
- tools/bolt.diy/app/types/theme.ts +1 -0
- tools/bolt.diy/app/types/vercel.ts +67 -0
- tools/bolt.diy/app/utils/buffer.ts +29 -0
- tools/bolt.diy/app/utils/classNames.ts +65 -0
- tools/bolt.diy/app/utils/constants.ts +147 -0
- tools/bolt.diy/app/utils/debounce.ts +13 -0
- tools/bolt.diy/app/utils/debugLogger.ts +1284 -0
- tools/bolt.diy/app/utils/diff.spec.ts +11 -0
- tools/bolt.diy/app/utils/diff.ts +117 -0
- tools/bolt.diy/app/utils/easings.ts +3 -0
- tools/bolt.diy/app/utils/fileLocks.ts +96 -0
- tools/bolt.diy/app/utils/fileUtils.ts +121 -0
- tools/bolt.diy/app/utils/folderImport.ts +73 -0
- tools/bolt.diy/app/utils/formatSize.ts +12 -0
- tools/bolt.diy/app/utils/getLanguageFromExtension.ts +24 -0
- tools/bolt.diy/app/utils/githubStats.ts +9 -0
- tools/bolt.diy/app/utils/gitlabStats.ts +54 -0
- tools/bolt.diy/app/utils/logger.ts +162 -0
- tools/bolt.diy/app/utils/markdown.ts +155 -0
- tools/bolt.diy/app/utils/mobile.ts +4 -0
- tools/bolt.diy/app/utils/os.ts +4 -0
- tools/bolt.diy/app/utils/path.ts +19 -0
- tools/bolt.diy/app/utils/projectCommands.ts +197 -0
- tools/bolt.diy/app/utils/promises.ts +19 -0
- tools/bolt.diy/app/utils/react.ts +6 -0
- tools/bolt.diy/app/utils/sampler.ts +49 -0
- tools/bolt.diy/app/utils/selectStarterTemplate.ts +255 -0
- tools/bolt.diy/app/utils/shell.ts +384 -0
- tools/bolt.diy/app/utils/stacktrace.ts +27 -0
- tools/bolt.diy/app/utils/stripIndent.ts +23 -0
- tools/bolt.diy/app/utils/terminal.ts +11 -0
- tools/bolt.diy/app/utils/unreachable.ts +3 -0
- tools/bolt.diy/app/vite-env.d.ts +2 -0
- tools/bolt.diy/assets/entitlements.mac.plist +25 -0
- tools/bolt.diy/assets/icons/icon.icns +0 -0
- tools/bolt.diy/assets/icons/icon.ico +0 -0
- tools/bolt.diy/assets/icons/icon.png +0 -0
- tools/bolt.diy/bindings.js +78 -0
- tools/bolt.diy/bindings.sh +33 -0
- tools/bolt.diy/docker-compose.yaml +145 -0
- tools/bolt.diy/electron/main/index.ts +201 -0
- tools/bolt.diy/electron/main/tsconfig.json +30 -0
- tools/bolt.diy/electron/main/ui/menu.ts +29 -0
- tools/bolt.diy/electron/main/ui/window.ts +54 -0
- tools/bolt.diy/electron/main/utils/auto-update.ts +110 -0
- tools/bolt.diy/electron/main/utils/constants.ts +4 -0
- tools/bolt.diy/electron/main/utils/cookie.ts +40 -0
- tools/bolt.diy/electron/main/utils/reload.ts +35 -0
- tools/bolt.diy/electron/main/utils/serve.ts +71 -0
- tools/bolt.diy/electron/main/utils/store.ts +3 -0
- tools/bolt.diy/electron/main/utils/vite-server.ts +44 -0
- tools/bolt.diy/electron/main/vite.config.ts +44 -0
- tools/bolt.diy/electron/preload/index.ts +22 -0
- tools/bolt.diy/electron/preload/tsconfig.json +7 -0
- tools/bolt.diy/electron/preload/vite.config.ts +31 -0
- tools/bolt.diy/electron-builder.yml +64 -0
- tools/bolt.diy/electron-update.yml +4 -0
- tools/bolt.diy/eslint.config.mjs +57 -0
- tools/bolt.diy/functions/[[path]].ts +12 -0
- tools/bolt.diy/icons/angular.svg +1 -0
- tools/bolt.diy/icons/astro.svg +8 -0
- tools/bolt.diy/icons/chat.svg +1 -0
- tools/bolt.diy/icons/expo-brand.svg +1 -0
- tools/bolt.diy/icons/expo.svg +4 -0
- tools/bolt.diy/icons/logo-text.svg +1 -0
- tools/bolt.diy/icons/logo.svg +4 -0
- tools/bolt.diy/icons/mcp.svg +1 -0
- tools/bolt.diy/icons/nativescript.svg +1 -0
- tools/bolt.diy/icons/netlify.svg +10 -0
- tools/bolt.diy/icons/nextjs.svg +1 -0
- tools/bolt.diy/icons/nuxt.svg +1 -0
- tools/bolt.diy/icons/qwik.svg +1 -0
- tools/bolt.diy/icons/react.svg +1 -0
- tools/bolt.diy/icons/remix.svg +24 -0
- tools/bolt.diy/icons/remotion.svg +1 -0
- tools/bolt.diy/icons/shadcn.svg +21 -0
- tools/bolt.diy/icons/slidev.svg +60 -0
- tools/bolt.diy/icons/solidjs.svg +1 -0
- tools/bolt.diy/icons/stars.svg +1 -0
- tools/bolt.diy/icons/svelte.svg +1 -0
- tools/bolt.diy/icons/typescript.svg +1 -0
- tools/bolt.diy/icons/vite.svg +1 -0
- tools/bolt.diy/icons/vue.svg +1 -0
- tools/bolt.diy/load-context.ts +9 -0
- tools/bolt.diy/notarize.cjs +31 -0
- tools/bolt.diy/package.json +218 -0
- tools/bolt.diy/playwright.config.preview.ts +35 -0
- tools/bolt.diy/pre-start.cjs +26 -0
- tools/bolt.diy/public/apple-touch-icon-precomposed.png +0 -0
- tools/bolt.diy/public/apple-touch-icon.png +0 -0
- tools/bolt.diy/public/favicon.ico +0 -0
- tools/bolt.diy/public/favicon.svg +4 -0
- tools/bolt.diy/public/icons/AmazonBedrock.svg +1 -0
- tools/bolt.diy/public/icons/Anthropic.svg +4 -0
- tools/bolt.diy/public/icons/Cohere.svg +4 -0
- tools/bolt.diy/public/icons/Deepseek.svg +5 -0
- tools/bolt.diy/public/icons/Default.svg +4 -0
- tools/bolt.diy/public/icons/Google.svg +4 -0
- tools/bolt.diy/public/icons/Groq.svg +4 -0
- tools/bolt.diy/public/icons/HuggingFace.svg +4 -0
- tools/bolt.diy/public/icons/Hyperbolic.svg +3 -0
- tools/bolt.diy/public/icons/LMStudio.svg +5 -0
- tools/bolt.diy/public/icons/Mistral.svg +4 -0
- tools/bolt.diy/public/icons/Ollama.svg +4 -0
- tools/bolt.diy/public/icons/OpenAI.svg +4 -0
- tools/bolt.diy/public/icons/OpenAILike.svg +4 -0
- tools/bolt.diy/public/icons/OpenRouter.svg +4 -0
- tools/bolt.diy/public/icons/Perplexity.svg +4 -0
- tools/bolt.diy/public/icons/Together.svg +4 -0
- tools/bolt.diy/public/icons/xAI.svg +5 -0
- tools/bolt.diy/public/inspector-script.js +292 -0
- tools/bolt.diy/public/logo-dark-styled.png +0 -0
- tools/bolt.diy/public/logo-dark.png +0 -0
- tools/bolt.diy/public/logo-light-styled.png +0 -0
- tools/bolt.diy/public/logo-light.png +0 -0
- tools/bolt.diy/public/logo.svg +15 -0
- tools/bolt.diy/public/social_preview_index.jpg +0 -0
- tools/bolt.diy/scripts/clean.js +45 -0
- tools/bolt.diy/scripts/electron-dev.mjs +181 -0
- tools/bolt.diy/scripts/setup-env.sh +41 -0
- tools/bolt.diy/scripts/update-imports.sh +7 -0
- tools/bolt.diy/scripts/update.sh +52 -0
- tools/bolt.diy/services/execution-governor/Dockerfile +41 -0
- tools/bolt.diy/services/execution-governor/config.ts +42 -0
- tools/bolt.diy/services/execution-governor/index.ts +683 -0
- tools/bolt.diy/services/execution-governor/metrics.ts +141 -0
- tools/bolt.diy/services/execution-governor/package.json +31 -0
- tools/bolt.diy/services/execution-governor/priority-queue.ts +139 -0
- tools/bolt.diy/services/execution-governor/tsconfig.json +21 -0
- tools/bolt.diy/services/execution-governor/types.ts +145 -0
- tools/bolt.diy/services/headless-executor/Dockerfile +43 -0
- tools/bolt.diy/services/headless-executor/executor.ts +210 -0
- tools/bolt.diy/services/headless-executor/index.ts +323 -0
- tools/bolt.diy/services/headless-executor/package.json +27 -0
- tools/bolt.diy/services/headless-executor/tsconfig.json +21 -0
- tools/bolt.diy/services/headless-executor/types.ts +38 -0
- tools/bolt.diy/test-workflows.sh +240 -0
- tools/bolt.diy/tests/integration/corporate-swarm.test.ts +208 -0
- tools/bolt.diy/tests/mandates/budget-limited.json +34 -0
- tools/bolt.diy/tests/mandates/complex.json +53 -0
- tools/bolt.diy/tests/mandates/constraint-enforced.json +36 -0
- tools/bolt.diy/tests/mandates/simple.json +35 -0
- tools/bolt.diy/tsconfig.json +37 -0
- tools/bolt.diy/types/istextorbinary.d.ts +15 -0
- tools/bolt.diy/uno.config.ts +279 -0
- tools/bolt.diy/vite-electron.config.ts +76 -0
- tools/bolt.diy/vite.config.ts +112 -0
- tools/bolt.diy/worker-configuration.d.ts +22 -0
- tools/bolt.diy/wrangler.toml +6 -0
- tools/code_generator.py +461 -0
- tools/file_operations.py +465 -0
- tools/mandate_generator.py +337 -0
- tools/mcpClientUtils.py +1216 -0
- tools/sensors.py +285 -0
- utils/Agent_types.py +15 -0
- utils/AnyToStr.py +0 -0
- utils/HHCS.py +277 -0
- utils/__init__.py +30 -0
- utils/agent.py +3627 -0
- utils/aop.py +2948 -0
- utils/canonical.py +143 -0
- utils/conversation.py +1195 -0
- utils/doctrine_versioning +230 -0
- utils/formatter.py +474 -0
- utils/ledger.py +311 -0
- utils/out_types.py +16 -0
- utils/rollback.py +339 -0
- utils/router.py +929 -0
- utils/tui.py +1908 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import logger from 'electron-log';
|
|
2
|
+
import type { MessageBoxOptions } from 'electron';
|
|
3
|
+
import { app, dialog } from 'electron';
|
|
4
|
+
import type { AppUpdater, UpdateDownloadedEvent, UpdateInfo } from 'electron-updater';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
|
|
7
|
+
// NOTE: workaround to use electron-updater.
|
|
8
|
+
import * as electronUpdater from 'electron-updater';
|
|
9
|
+
import { isDev } from './constants';
|
|
10
|
+
|
|
11
|
+
const autoUpdater: AppUpdater = (electronUpdater as any).default.autoUpdater;
|
|
12
|
+
|
|
13
|
+
export async function setupAutoUpdater() {
|
|
14
|
+
// Configure logger
|
|
15
|
+
logger.transports.file.level = 'debug';
|
|
16
|
+
autoUpdater.logger = logger;
|
|
17
|
+
|
|
18
|
+
// Configure custom update config file
|
|
19
|
+
const resourcePath = isDev
|
|
20
|
+
? path.join(process.cwd(), 'electron-update.yml')
|
|
21
|
+
: path.join(app.getAppPath(), 'electron-update.yml');
|
|
22
|
+
logger.info('Update config path:', resourcePath);
|
|
23
|
+
autoUpdater.updateConfigPath = resourcePath;
|
|
24
|
+
|
|
25
|
+
// Disable auto download - we want to ask user first
|
|
26
|
+
autoUpdater.autoDownload = false;
|
|
27
|
+
autoUpdater.autoInstallOnAppQuit = true;
|
|
28
|
+
|
|
29
|
+
autoUpdater.on('checking-for-update', () => {
|
|
30
|
+
logger.info('checking-for-update...');
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
autoUpdater.on('update-available', async (info: UpdateInfo) => {
|
|
34
|
+
logger.info('Update available.', info);
|
|
35
|
+
|
|
36
|
+
const dialogOpts: MessageBoxOptions = {
|
|
37
|
+
type: 'info' as const,
|
|
38
|
+
buttons: ['Update', 'Later'],
|
|
39
|
+
title: 'Application Update',
|
|
40
|
+
message: `Version ${info.version} is available.`,
|
|
41
|
+
detail: 'A new version is available. Would you like to update now?',
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const response = await dialog.showMessageBox(dialogOpts);
|
|
45
|
+
|
|
46
|
+
if (response.response === 0) {
|
|
47
|
+
autoUpdater.downloadUpdate();
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
autoUpdater.on('update-not-available', () => {
|
|
52
|
+
logger.info('Update not available.');
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
/*
|
|
56
|
+
* Uncomment this before we have any published updates on github releases.
|
|
57
|
+
* autoUpdater.on('error', (err) => {
|
|
58
|
+
* logger.error('Error in auto-updater:', err);
|
|
59
|
+
* dialog.showErrorBox('Error: ', err.message);
|
|
60
|
+
* });
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
autoUpdater.on('download-progress', (progressObj) => {
|
|
64
|
+
logger.info('Download progress:', progressObj);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
autoUpdater.on('update-downloaded', async (event: UpdateDownloadedEvent) => {
|
|
68
|
+
logger.info('Update downloaded:', formatUpdateDownloadedEvent(event));
|
|
69
|
+
|
|
70
|
+
const dialogOpts: MessageBoxOptions = {
|
|
71
|
+
type: 'info' as const,
|
|
72
|
+
buttons: ['Restart', 'Later'],
|
|
73
|
+
title: 'Application Update',
|
|
74
|
+
message: 'Update Downloaded',
|
|
75
|
+
detail: 'A new version has been downloaded. Restart the application to apply the updates.',
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const response = await dialog.showMessageBox(dialogOpts);
|
|
79
|
+
|
|
80
|
+
if (response.response === 0) {
|
|
81
|
+
autoUpdater.quitAndInstall(false);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
// Check for updates
|
|
86
|
+
try {
|
|
87
|
+
logger.info('Checking for updates. Current version:', app.getVersion());
|
|
88
|
+
await autoUpdater.checkForUpdates();
|
|
89
|
+
} catch (err) {
|
|
90
|
+
logger.error('Failed to check for updates:', err);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Set up periodic update checks (every 4 hours)
|
|
94
|
+
setInterval(
|
|
95
|
+
() => {
|
|
96
|
+
autoUpdater.checkForUpdates().catch((err) => {
|
|
97
|
+
logger.error('Periodic update check failed:', err);
|
|
98
|
+
});
|
|
99
|
+
},
|
|
100
|
+
4 * 60 * 60 * 1000,
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function formatUpdateDownloadedEvent(event: UpdateDownloadedEvent): string {
|
|
105
|
+
return JSON.stringify({
|
|
106
|
+
version: event.version,
|
|
107
|
+
downloadedFile: event.downloadedFile,
|
|
108
|
+
files: event.files.map((e) => ({ files: { url: e.url, size: e.size } })),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { session } from 'electron';
|
|
2
|
+
import { DEFAULT_PORT } from './constants';
|
|
3
|
+
import { store } from './store';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* On app startup: read any existing cookies from store and set it as a cookie.
|
|
7
|
+
*/
|
|
8
|
+
export async function initCookies() {
|
|
9
|
+
await loadStoredCookies();
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// Function to store all cookies
|
|
13
|
+
export async function storeCookies(cookies: Electron.Cookie[]) {
|
|
14
|
+
for (const cookie of cookies) {
|
|
15
|
+
store.set(`cookie:${cookie.name}`, cookie);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Function to load stored cookies
|
|
20
|
+
async function loadStoredCookies() {
|
|
21
|
+
// Get all keys that start with 'cookie:'
|
|
22
|
+
const cookieKeys = store.store ? Object.keys(store.store).filter((key) => key.startsWith('cookie:')) : [];
|
|
23
|
+
|
|
24
|
+
for (const key of cookieKeys) {
|
|
25
|
+
const cookie = store.get(key);
|
|
26
|
+
|
|
27
|
+
if (cookie) {
|
|
28
|
+
try {
|
|
29
|
+
// Add default URL if not present
|
|
30
|
+
const cookieWithUrl = {
|
|
31
|
+
...cookie,
|
|
32
|
+
url: cookie.url || `http://localhost:${DEFAULT_PORT}`,
|
|
33
|
+
};
|
|
34
|
+
await session.defaultSession.cookies.set(cookieWithUrl);
|
|
35
|
+
} catch (error) {
|
|
36
|
+
console.error(`Failed to set cookie ${key}:`, error);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { app } from 'electron';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { promises as fs } from 'node:fs';
|
|
4
|
+
|
|
5
|
+
// Reload on change.
|
|
6
|
+
let isQuited = false;
|
|
7
|
+
|
|
8
|
+
const abort = new AbortController();
|
|
9
|
+
const { signal } = abort;
|
|
10
|
+
|
|
11
|
+
export async function reloadOnChange() {
|
|
12
|
+
const dir = path.join(app.getAppPath(), 'build', 'electron');
|
|
13
|
+
|
|
14
|
+
try {
|
|
15
|
+
const watcher = fs.watch(dir, { signal, recursive: true });
|
|
16
|
+
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
|
+
for await (const _event of watcher) {
|
|
19
|
+
if (!isQuited) {
|
|
20
|
+
isQuited = true;
|
|
21
|
+
app.relaunch();
|
|
22
|
+
app.quit();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
} catch (err) {
|
|
26
|
+
if (!(err instanceof Error)) {
|
|
27
|
+
throw err;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (err.name === 'AbortError') {
|
|
31
|
+
console.log('abort watching:', dir);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { createReadableStreamFromReadable } from '@remix-run/node';
|
|
2
|
+
import type { ServerBuild } from '@remix-run/node';
|
|
3
|
+
import mime from 'mime';
|
|
4
|
+
import { createReadStream, promises as fs } from 'node:fs';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { pathToFileURL } from 'node:url';
|
|
7
|
+
import { app } from 'electron';
|
|
8
|
+
import { isDev } from './constants';
|
|
9
|
+
|
|
10
|
+
export async function loadServerBuild(): Promise<any> {
|
|
11
|
+
if (isDev) {
|
|
12
|
+
console.log('Dev mode: server build not loaded');
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const serverBuildPath = path.join(app.getAppPath(), 'build', 'server', 'index.js');
|
|
17
|
+
console.log(`Loading server build... path is ${serverBuildPath}`);
|
|
18
|
+
|
|
19
|
+
try {
|
|
20
|
+
const fileUrl = pathToFileURL(serverBuildPath).href;
|
|
21
|
+
const serverBuild: ServerBuild = /** @type {ServerBuild} */ await import(fileUrl);
|
|
22
|
+
console.log('Server build loaded successfully');
|
|
23
|
+
|
|
24
|
+
// eslint-disable-next-line consistent-return
|
|
25
|
+
return serverBuild;
|
|
26
|
+
} catch (buildError) {
|
|
27
|
+
console.log('Failed to load server build:', {
|
|
28
|
+
message: (buildError as Error)?.message,
|
|
29
|
+
stack: (buildError as Error)?.stack,
|
|
30
|
+
error: JSON.stringify(buildError, Object.getOwnPropertyNames(buildError as object)),
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// serve assets built by vite.
|
|
38
|
+
export async function serveAsset(req: Request, assetsPath: string): Promise<Response | undefined> {
|
|
39
|
+
const url = new URL(req.url);
|
|
40
|
+
const fullPath = path.join(assetsPath, decodeURIComponent(url.pathname));
|
|
41
|
+
console.log('Serving asset, path:', fullPath);
|
|
42
|
+
|
|
43
|
+
if (!fullPath.startsWith(assetsPath)) {
|
|
44
|
+
console.log('Path is outside assets directory:', fullPath);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const stat = await fs.stat(fullPath).catch((err) => {
|
|
49
|
+
console.log('Failed to stat file:', fullPath, err);
|
|
50
|
+
return undefined;
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
if (!stat?.isFile()) {
|
|
54
|
+
console.log('Not a file:', fullPath);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const headers = new Headers();
|
|
59
|
+
const mimeType = mime.getType(fullPath);
|
|
60
|
+
|
|
61
|
+
if (mimeType) {
|
|
62
|
+
headers.set('Content-Type', mimeType);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
console.log('Serving file with mime type:', mimeType);
|
|
66
|
+
|
|
67
|
+
const body = createReadableStreamFromReadable(createReadStream(fullPath));
|
|
68
|
+
|
|
69
|
+
// eslint-disable-next-line consistent-return
|
|
70
|
+
return new Response(body, { headers });
|
|
71
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { app } from 'electron';
|
|
2
|
+
import type { ViteDevServer } from 'vite';
|
|
3
|
+
|
|
4
|
+
let viteServer: ViteDevServer | undefined;
|
|
5
|
+
|
|
6
|
+
// Conditionally import Vite only in development
|
|
7
|
+
export async function initViteServer() {
|
|
8
|
+
if (!(global.process.env.NODE_ENV === 'production' || app.isPackaged)) {
|
|
9
|
+
const vite = await import('vite');
|
|
10
|
+
viteServer = await vite.createServer({
|
|
11
|
+
root: '.',
|
|
12
|
+
envDir: process.cwd(), // load .env files from the root directory.
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
*
|
|
19
|
+
* take care of vite-dev-server.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
app.on('before-quit', async (_event) => {
|
|
23
|
+
if (!viteServer) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/*
|
|
28
|
+
* ref: https://stackoverflow.com/questions/68750716/electron-app-throwing-quit-unexpectedly-error-message-on-mac-when-quitting-the-a
|
|
29
|
+
* event.preventDefault();
|
|
30
|
+
*/
|
|
31
|
+
try {
|
|
32
|
+
console.log('will close vite-dev-server.');
|
|
33
|
+
await viteServer.close();
|
|
34
|
+
console.log('closed vite-dev-server.');
|
|
35
|
+
|
|
36
|
+
// app.quit(); // Not working. causes recursively 'before-quit' events.
|
|
37
|
+
app.exit(); // Not working expectedly SOMETIMES. Still throws exception and macOS shows dialog.
|
|
38
|
+
// global.process.exit(0); // Not working well... I still see exceptional dialog.
|
|
39
|
+
} catch (err) {
|
|
40
|
+
console.log('failed to close Vite server:', err);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
export { viteServer };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { resolve } from 'path';
|
|
2
|
+
import { defineConfig } from 'vite';
|
|
3
|
+
|
|
4
|
+
export default defineConfig({
|
|
5
|
+
build: {
|
|
6
|
+
lib: {
|
|
7
|
+
entry: resolve('electron/main/index.ts'),
|
|
8
|
+
formats: ['es'],
|
|
9
|
+
},
|
|
10
|
+
rollupOptions: {
|
|
11
|
+
external: [
|
|
12
|
+
'vite',
|
|
13
|
+
'electron',
|
|
14
|
+
...[
|
|
15
|
+
'electron-log',
|
|
16
|
+
|
|
17
|
+
// electron-log uses fs internally
|
|
18
|
+
'fs',
|
|
19
|
+
'util',
|
|
20
|
+
],
|
|
21
|
+
|
|
22
|
+
// Add all Node.js built-in modules as external
|
|
23
|
+
'node:fs',
|
|
24
|
+
'node:path',
|
|
25
|
+
'node:url',
|
|
26
|
+
'node:util',
|
|
27
|
+
'node:stream',
|
|
28
|
+
'node:events',
|
|
29
|
+
'electron-store',
|
|
30
|
+
'@remix-run/node',
|
|
31
|
+
|
|
32
|
+
// "mime", // NOTE: don't enable. not working if it's external.
|
|
33
|
+
'electron-updater',
|
|
34
|
+
],
|
|
35
|
+
output: {
|
|
36
|
+
dir: 'build/electron',
|
|
37
|
+
entryFileNames: 'main/[name].mjs',
|
|
38
|
+
format: 'esm',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
minify: false,
|
|
42
|
+
emptyOutDir: false,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ipcRenderer, contextBridge, type IpcRendererEvent } from 'electron';
|
|
2
|
+
|
|
3
|
+
console.debug('start preload.', ipcRenderer);
|
|
4
|
+
|
|
5
|
+
const ipc = {
|
|
6
|
+
invoke(...args: any[]) {
|
|
7
|
+
return ipcRenderer.invoke('ipcTest', ...args);
|
|
8
|
+
},
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
10
|
+
on(channel: string, func: Function) {
|
|
11
|
+
const f = (event: IpcRendererEvent, ...args: any[]) => func(...[event, ...args]);
|
|
12
|
+
console.debug('register listener', channel, f);
|
|
13
|
+
ipcRenderer.on(channel, f);
|
|
14
|
+
|
|
15
|
+
return () => {
|
|
16
|
+
console.debug('remove listener', channel, f);
|
|
17
|
+
ipcRenderer.removeListener(channel, f);
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
contextBridge.exposeInMainWorld('ipc', ipc);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { resolve } from 'path';
|
|
2
|
+
import { defineConfig } from 'vite';
|
|
3
|
+
|
|
4
|
+
export default defineConfig({
|
|
5
|
+
build: {
|
|
6
|
+
lib: {
|
|
7
|
+
entry: resolve('electron/preload/index.ts'),
|
|
8
|
+
formats: ['cjs'],
|
|
9
|
+
},
|
|
10
|
+
rollupOptions: {
|
|
11
|
+
external: ['electron'],
|
|
12
|
+
output: {
|
|
13
|
+
dir: 'build/electron',
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
* preload must be cjs format.
|
|
17
|
+
* if mjs, it will be error:
|
|
18
|
+
* - Unable to load preload script.
|
|
19
|
+
* - SyntaxError: Cannot use import statement outside a module.
|
|
20
|
+
*/
|
|
21
|
+
entryFileNames: 'preload/[name].cjs',
|
|
22
|
+
format: 'cjs',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
minify: false,
|
|
26
|
+
emptyOutDir: false,
|
|
27
|
+
},
|
|
28
|
+
esbuild: {
|
|
29
|
+
platform: 'node',
|
|
30
|
+
},
|
|
31
|
+
});
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
appId: com.stackblitz.bolt.diy
|
|
2
|
+
productName: Bolt Local
|
|
3
|
+
directories:
|
|
4
|
+
buildResources: build
|
|
5
|
+
output: dist
|
|
6
|
+
files:
|
|
7
|
+
- build/**/*
|
|
8
|
+
- package.json
|
|
9
|
+
- node_modules/**/*
|
|
10
|
+
- icons/**
|
|
11
|
+
- electron-update.yml
|
|
12
|
+
extraMetadata:
|
|
13
|
+
main: build/electron/main/index.mjs
|
|
14
|
+
asarUnpack:
|
|
15
|
+
- resources/**
|
|
16
|
+
- build/client/**/*
|
|
17
|
+
- build/server/**/*
|
|
18
|
+
- electron-update.yml
|
|
19
|
+
|
|
20
|
+
mac:
|
|
21
|
+
icon: assets/icons/icon.icns
|
|
22
|
+
target:
|
|
23
|
+
- dmg
|
|
24
|
+
identity: null
|
|
25
|
+
category: "public.app-category.developer-tools"
|
|
26
|
+
type: "distribution"
|
|
27
|
+
hardenedRuntime: true
|
|
28
|
+
entitlements: "assets/entitlements.mac.plist"
|
|
29
|
+
entitlementsInherit: "assets/entitlements.mac.plist"
|
|
30
|
+
gatekeeperAssess: false
|
|
31
|
+
|
|
32
|
+
win:
|
|
33
|
+
icon: assets/icons/icon.ico
|
|
34
|
+
target:
|
|
35
|
+
- nsis
|
|
36
|
+
artifactName: ${name}-${version}-${os}-${arch}.${ext}
|
|
37
|
+
|
|
38
|
+
linux:
|
|
39
|
+
icon: assets/icons/icon.png
|
|
40
|
+
target:
|
|
41
|
+
- AppImage
|
|
42
|
+
- deb
|
|
43
|
+
artifactName: ${name}-${version}-${os}-${arch}.${ext}
|
|
44
|
+
category: Development
|
|
45
|
+
|
|
46
|
+
nsis:
|
|
47
|
+
oneClick: false
|
|
48
|
+
allowToChangeInstallationDirectory: true
|
|
49
|
+
createDesktopShortcut: true
|
|
50
|
+
createStartMenuShortcut: true
|
|
51
|
+
shortcutName: ${productName}
|
|
52
|
+
artifactName: ${name}-${version}-${os}-${arch}-setup.${ext}
|
|
53
|
+
|
|
54
|
+
npmRebuild: false
|
|
55
|
+
|
|
56
|
+
publish:
|
|
57
|
+
provider: github
|
|
58
|
+
owner: Derek-X-Wang
|
|
59
|
+
repo: bolt.local
|
|
60
|
+
private: true
|
|
61
|
+
releaseType: release
|
|
62
|
+
|
|
63
|
+
electronDownload:
|
|
64
|
+
mirror: https://npmmirror.com/mirrors/electron/
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import blitzPlugin from '@blitz/eslint-plugin';
|
|
2
|
+
import { jsFileExtensions } from '@blitz/eslint-plugin/dist/configs/javascript.js';
|
|
3
|
+
import { getNamingConventionRule, tsFileExtensions } from '@blitz/eslint-plugin/dist/configs/typescript.js';
|
|
4
|
+
|
|
5
|
+
export default [
|
|
6
|
+
{
|
|
7
|
+
ignores: ['**/dist', '**/node_modules', '**/.wrangler', '**/bolt/build', '**/.history'],
|
|
8
|
+
},
|
|
9
|
+
...blitzPlugin.configs.recommended(),
|
|
10
|
+
{
|
|
11
|
+
rules: {
|
|
12
|
+
'@blitz/catch-error-name': 'off',
|
|
13
|
+
'@typescript-eslint/no-this-alias': 'off',
|
|
14
|
+
'@typescript-eslint/no-empty-object-type': 'off',
|
|
15
|
+
'@blitz/comment-syntax': 'off',
|
|
16
|
+
'@blitz/block-scope-case': 'off',
|
|
17
|
+
'array-bracket-spacing': ['error', 'never'],
|
|
18
|
+
'object-curly-newline': ['error', { consistent: true }],
|
|
19
|
+
'keyword-spacing': ['error', { before: true, after: true }],
|
|
20
|
+
'consistent-return': 'error',
|
|
21
|
+
semi: ['error', 'always'],
|
|
22
|
+
curly: ['error'],
|
|
23
|
+
'no-eval': ['error'],
|
|
24
|
+
'linebreak-style': ['error', 'unix'],
|
|
25
|
+
'arrow-spacing': ['error', { before: true, after: true }],
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
files: ['**/*.tsx'],
|
|
30
|
+
rules: {
|
|
31
|
+
...getNamingConventionRule({}, true),
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
files: ['**/*.d.ts'],
|
|
36
|
+
rules: {
|
|
37
|
+
'@typescript-eslint/no-empty-object-type': 'off',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
files: [...tsFileExtensions, ...jsFileExtensions, '**/*.tsx'],
|
|
42
|
+
ignores: ['functions/*', 'electron/**/*'],
|
|
43
|
+
rules: {
|
|
44
|
+
'no-restricted-imports': [
|
|
45
|
+
'error',
|
|
46
|
+
{
|
|
47
|
+
patterns: [
|
|
48
|
+
{
|
|
49
|
+
group: ['../'],
|
|
50
|
+
message: "Relative imports are not allowed. Please use '~/' instead.",
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ServerBuild } from '@remix-run/cloudflare';
|
|
2
|
+
import { createPagesFunctionHandler } from '@remix-run/cloudflare-pages';
|
|
3
|
+
|
|
4
|
+
export const onRequest: PagesFunction = async (context) => {
|
|
5
|
+
const serverBuild = (await import('../build/server')) as unknown as ServerBuild;
|
|
6
|
+
|
|
7
|
+
const handler = createPagesFunctionHandler({
|
|
8
|
+
build: serverBuild,
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
return handler(context);
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill="#B3B3B3" d="M63.81 1.026L4.553 21.88l9.363 77.637 49.957 27.457 50.214-27.828 9.36-77.635z"/><path fill="#A6120D" d="M117.536 25.998L63.672 7.629v112.785l45.141-24.983z"/><path fill="#DD1B16" d="M11.201 26.329l8.026 69.434 44.444 24.651V7.627z"/><path fill="#F2F2F2" d="M78.499 67.67l-14.827 6.934H48.044l-7.347 18.374-13.663.254 36.638-81.508L78.499 67.67zm-1.434-3.491L63.77 37.858 52.864 63.726h10.807l13.394.453z"/><path fill="#B3B3B3" d="M63.671 11.724l.098 26.134 12.375 25.888H63.698l-.027 10.841 17.209.017 8.042 18.63 13.074.242z"/></svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="256px" height="366px" viewBox="0 0 256 366" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
|
|
3
|
+
<title>astro</title>
|
|
4
|
+
<g>
|
|
5
|
+
<path d="M182.021899,9.14729513 C185.003554,12.8489818 186.524039,17.8439599 189.565008,27.8338751 L256,246.07324 C231.437035,233.330949 204.734675,224.140955 176.574007,219.182711 L133.318122,73.008385 C132.610445,70.6165977 130.413371,68.9758488 127.919318,68.9758488 C125.41872,68.9758488 123.217965,70.625188 122.515605,73.0251566 L79.7837287,219.10908 C51.4921611,224.044826 24.6679819,233.251591 0,246.040106 L66.760821,27.7833559 C69.8111986,17.8106213 71.336592,12.8241926 74.3186562,9.1293373 C76.9509722,5.86739262 80.3752328,3.334082 84.2645972,1.77078902 C88.6701983,0 93.8845156,0 104.313559,0 L151.997135,0 C162.439677,0 167.660949,0 172.07064,1.77448285 C175.963277,3.34101561 179.389583,5.87945996 182.021899,9.14729513 Z" fill="#7B7B7B"></path>
|
|
6
|
+
<path d="M189.971616,256.459332 C179.019791,265.824405 157.15991,272.211095 131.980489,272.211095 C101.075831,272.211095 75.1731874,262.589949 68.2997134,249.65049 C65.8424761,257.066381 65.2914691,265.553606 65.2914691,270.975318 C65.2914691,270.975318 63.6724005,297.597911 82.1890151,316.114934 C82.1890151,306.499925 89.9836974,298.705652 99.598298,298.705652 C116.078191,298.705652 116.059783,313.083374 116.044648,324.748195 C116.044239,325.097534 116.04383,325.444828 116.04383,325.789258 C116.04383,343.494293 126.864755,358.671732 142.253679,365.069057 C139.955158,360.341524 138.665794,355.032714 138.665794,349.422424 C138.665794,332.536332 148.579419,326.249044 160.101068,318.941555 C169.268154,313.127552 179.453806,306.668049 186.473315,293.709774 C190.13565,286.948792 192.215323,279.204833 192.215323,270.975318 C192.215323,265.914399 191.429105,261.037149 189.971616,256.459332 Z" fill="#FF5D01"></path>
|
|
7
|
+
</g>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="none"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m9.73 8.856-.015-.04-.009-.022.024.062Zm0 0c-.05.115-.104.223-.175.323a1.6 1.6 0 0 1-.377.377c-.1.07-.207.125-.323.175l-.04-.016-.022-.008s0 0 0 0L8.75 9.69l-.22-.085-.06-.023h0l-.127-.049-.18.467L9.73 8.856Zm-.98 1.454h0Zm0 0 .043-.017s0 0 0 0l-.044.017Zm-7.462-.567a.5.5 0 0 0-.027-.256A6.233 6.233 0 0 1 .75 7a6.25 6.25 0 1 1 12.459.724l-.483-.188A5.75 5.75 0 1 0 1.67 9.162v.001l.012.03h0c.044.107.078.193.093.263l.488-.11-.488.11c.016.07.023.127.023.2 0 .072-.013.153-.03.25h0l-.004.026h0l-.345 2.073a.5.5 0 0 0 .575.576l2.073-.346h0l.027-.004h0c.096-.017.177-.03.25-.03a.85.85 0 0 1 .2.023c.07.016.156.05.262.093h0l.03.012h.001a5.734 5.734 0 0 0 2.698.396l.188.484a6.233 6.233 0 0 1-3.074-.416l-.136-.055a.5.5 0 0 0-.257-.027l-.027.004h0l-.004.001-.075.012h-.001l-2.392.4h0a3.565 3.565 0 0 1-.293.04.605.605 0 0 1-.289-.037.583.583 0 0 1-.306-.307.604.604 0 0 1-.038-.289c.006-.08.023-.18.041-.292h0l.399-2.393h0l.013-.076h0V9.77l.004-.027Zm9.178-1.76a.5.5 0 0 0-.933 0l-.157.408.206.079-.206-.08-.017.046s0 0 0 0c-.084.218-.136.348-.211.453a1.1 1.1 0 0 1-.26.26c-.105.074-.234.127-.453.21h0l-.045.018h0l-.407.156a.5.5 0 0 0 0 .934l.407.156.079-.205-.079.205.045.018h0c.219.083.348.136.454.21.1.072.187.16.259.26.075.105.127.235.211.453l.246-.094-.246.094.017.045.157.407a.5.5 0 0 0 .933 0l.157-.407h0l.017-.045h0c.084-.218.136-.348.211-.453a1.1 1.1 0 0 1 .26-.26c.105-.074.234-.127.452-.21 0 0 0 0 0 0l.046-.018.407-.156a.5.5 0 0 0 0-.934l-.407-.156-.079.205.079-.205-.045-.018h0c-.219-.083-.348-.136-.454-.21a1.1 1.1 0 0 1-.259-.26c-.075-.105-.127-.235-.21-.453h0l-.018-.045h0l-.157-.407ZM10 6.5c.03 0 .056.018.066.046l.69 1.793c.096.249.142.37.212.467a.957.957 0 0 0 .225.226c.098.07.219.116.467.212l1.794.69a.071.071 0 0 1 0 .133l-1.794.69c-.248.095-.369.142-.467.211a.957.957 0 0 0-.225.226c-.07.097-.116.218-.212.467l-.69 1.793a.071.071 0 0 1-.133 0l-.69-1.793c-.096-.249-.142-.37-.212-.467a.957.957 0 0 0-.225-.226c-.098-.07-.219-.116-.467-.211l-1.794-.69a.071.071 0 0 1 0-.134l1.794-.69c.248-.095.369-.142.467-.211a.957.957 0 0 0 .225-.226c.07-.098.116-.218.212-.467l.69-1.793A.071.071 0 0 1 10 6.5Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="114" height="32" viewBox="0 0 114 32"><path fill="#FFF" d="M14.805 10.334c.256-.377.535-.425.762-.425.227 0 .605.048.86.425 2.015 2.766 5.34 8.277 7.791 12.342 1.6 2.65 2.828 4.687 3.08 4.946.946.972 2.243.366 2.997-.737.742-1.086.948-1.849.948-2.663 0-.554-10.752-20.552-11.835-22.217C18.366.405 18.028 0 16.245 0H14.91c-1.777 0-2.034.404-3.075 2.005C10.753 3.67 0 23.668 0 24.222c0 .814.206 1.577.948 2.663.754 1.103 2.052 1.71 2.998.737.252-.26 1.48-2.295 3.08-4.946 2.451-4.065 5.765-9.576 7.78-12.342Zm23.913-8.566v24.55h14.96v-4.98h-9.799v-5.19h8.718v-4.98h-8.718v-4.42h9.799v-4.98h-14.96Zm34.922 24.55-6.208-8.908 5.789-8.312h-5.859l-2.859 4.068-2.825-4.068H55.75l5.789 8.347-6.172 8.873h5.858l3.243-4.664 3.243 4.664h5.928ZM86.115 8.747c-2.37 0-4.22.982-5.405 2.77v-2.42h-4.916V32h4.916v-8.102c1.186 1.789 3.034 2.771 5.405 2.771 4.429 0 7.95-4.033 7.95-8.979 0-4.945-3.521-8.943-7.95-8.943ZM85 21.934c-2.407 0-4.29-1.824-4.29-4.244 0-2.384 1.883-4.243 4.29-4.243 2.37 0 4.289 1.894 4.289 4.244 0 2.384-1.918 4.243-4.29 4.243Zm19.791-13.187c-5.056 0-8.892 3.858-8.892 8.979 0 5.12 3.835 8.943 8.892 8.943 5.021 0 8.892-3.823 8.892-8.943 0-5.121-3.871-8.979-8.892-8.979Zm0 4.735c2.301 0 4.08 1.789 4.08 4.244 0 2.384-1.779 4.208-4.08 4.208-2.337 0-4.08-1.824-4.08-4.208 0-2.455 1.743-4.244 4.08-4.244Z"></path></svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
2
|
+
<svg fill="none" width="800px" height="800px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path fill='#7B7B7B' d="M24.292 15.547c1.968 0.131 3.729-1.213 4.115-3.145-0.475-0.735-1.287-1.177-2.161-1.177-2.272-0.052-3.491 2.651-1.953 4.323zM15.115 4.697l5.359-3.104-1.708-0.963-7.391 4.281 0.589 0.328 1.119 0.629 2.032-1.176zM21.161 1.307c0.089 0.027 0.161 0.1 0.188 0.188l2.484 7.593c0.047 0.131-0.005 0.272-0.125 0.344-1.968 1.156-2.916 3.489-2.317 5.693 0.656 2.391 2.937 3.953 5.401 3.703 0.135-0.011 0.265 0.073 0.307 0.203l2.563 7.803c0.041 0.131-0.011 0.271-0.125 0.344l-7.859 4.771c-0.037 0.021-0.084 0.036-0.131 0.036-0.068 0.016-0.14 0-0.203-0.041l-2.765-1.797c-0.048-0.031-0.084-0.077-0.109-0.129l-5.396-12.896-8.219 4.875c-0.016 0.011-0.037 0.021-0.052 0.032-0.084 0.036-0.183 0.025-0.261-0.021l-1.859-1.093c-0.136-0.073-0.188-0.245-0.115-0.381l7.953-15.749c0.025-0.057 0.077-0.104 0.135-0.131l7.959-4.609c0.088-0.052 0.197-0.057 0.292-0.005zM12.839 6.407l-1.932-1.089-7.693 15.229 1.396 0.823 6.631-9.015c0.063-0.089 0.167-0.136 0.271-0.12 0.104 0.011 0.192 0.077 0.235 0.177l7.228 17.296 1.933 1.251-8.063-24.552zM26.245 16.964c-2.256 0-3.787-2.292-2.923-4.376 0.86-2.083 3.563-2.619 5.156-1.025 0.595 0.593 0.928 1.396 0.928 2.235 0.005 1.749-1.412 3.167-3.161 3.167z"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 51 21.9"><path d="M24.1 19.3c-4.7 0-7-2.7-7-6.1s3.2-7.7 7.9-7.7 7 2.7 7 6.1-3.2 7.7-7.9 7.7Zm.2-4.3c1.6 0 2.7-1.5 2.7-3.1s-.8-2-2.2-2-2.7 1.5-2.7 3.1.8 2 2.2 2ZM37 19h-4.9l4-18.2H41l-4 18.1Z"/><path d="M9.6 19.3c-1.5 0-3-.5-3.8-1.7L5.5 19 0 21.9.6 19 4.6.8h4.9L8.1 7.2c1.1-1.2 2.2-1.7 3.6-1.7 3 0 4.9 1.9 4.9 5.5s-2.3 8.3-7 8.3Zm1.9-7.3c0 1.7-1.2 3-2.8 3s-1.7-.3-2.2-.9l.8-3.3c.6-.6 1.2-.9 2-.9 1.2 0 2.2.9 2.2 2.2Z" style="fill-rule:evenodd"/><path d="M46.1 19.3c-2.8 0-4.9-1-4.9-3.3s0-.7.1-1l1.1-4.9h-2.2l1-4.2h2.2l.8-3.6L49.7 0l-.6 2.3-.8 3.6H51l-1 4.2h-2.7l-.7 3.2v.6c0 .6.4 1.1 1.2 1.1s.6 0 .7-.1v3.9c-.5.4-1.4.5-2.3.5Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>ModelContextProtocol</title><path d="M15.688 2.343a2.588 2.588 0 00-3.61 0l-9.626 9.44a.863.863 0 01-1.203 0 .823.823 0 010-1.18l9.626-9.44a4.313 4.313 0 016.016 0 4.116 4.116 0 011.204 3.54 4.3 4.3 0 013.609 1.18l.05.05a4.115 4.115 0 010 5.9l-8.706 8.537a.274.274 0 000 .393l1.788 1.754a.823.823 0 010 1.18.863.863 0 01-1.203 0l-1.788-1.753a1.92 1.92 0 010-2.754l8.706-8.538a2.47 2.47 0 000-3.54l-.05-.049a2.588 2.588 0 00-3.607-.003l-7.172 7.034-.002.002-.098.097a.863.863 0 01-1.204 0 .823.823 0 010-1.18l7.273-7.133a2.47 2.47 0 00-.003-3.537z"></path><path d="M14.485 4.703a.823.823 0 000-1.18.863.863 0 00-1.204 0l-7.119 6.982a4.115 4.115 0 000 5.9 4.314 4.314 0 006.016 0l7.12-6.982a.823.823 0 000-1.18.863.863 0 00-1.204 0l-7.119 6.982a2.588 2.588 0 01-3.61 0 2.47 2.47 0 010-3.54l7.12-6.982z"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns='http://www.w3.org/2000/svg' width='29' height='28' fill='none'><g clip-path='url(#a)'><path fill='#7B7B7B' d='M26.523 2.051c1.317 1.317 2 2.966 2.05 4.949v14c-.05 1.982-.733 3.632-2.05 4.949-1.317 1.317-2.967 2-4.95 2.05h-14c-1.982-.05-3.631-.733-4.948-2.05C1.308 24.632.624 22.982.574 21V7c.05-1.982.734-3.632 2.05-4.949C3.943.734 5.592.051 7.575 0h14c1.982.05 3.632.734 4.949 2.051Zm-1.931 11.266c-.44-.438-.669-.987-.687-1.648V7c-.014-.66-.241-1.211-.68-1.65-.44-.44-.99-.667-1.652-.68h-2.33V16.33L9.904 4.67H7.574c-.661.014-1.211.24-1.651.68-.44.44-.666.99-.68 1.65v4.67c-.019.66-.247 1.21-.687 1.648-.44.437-.99.665-1.65.683.66.018 1.21.246 1.65.683.44.438.668.987.687 1.648V21c.014.66.24 1.211.68 1.65.44.44.99.667 1.65.68h2.332V11.67l9.337 11.662h2.331c.661-.014 1.212-.24 1.651-.68.44-.44.667-.99.68-1.65v-4.67c.019-.66.248-1.21.688-1.647.44-.438.99-.665 1.65-.684-.66-.018-1.21-.246-1.65-.683Z'/></g><defs><clipPath id='a'><path fill='#fff' d='M.574 0h28v28h-28z'/></clipPath></defs></svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
2
|
+
<svg width="800px" height="800px" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<defs>
|
|
4
|
+
<radialGradient id="a" cy="0%" r="100.11%" fx="50%" fy="0%" gradientTransform="matrix(0 .9989 -1.152 0 .5 -.5)">
|
|
5
|
+
<stop offset="0%" stop-color="#20C6B7"/>
|
|
6
|
+
<stop offset="100%" stop-color="#4D9ABF"/>
|
|
7
|
+
</radialGradient>
|
|
8
|
+
</defs>
|
|
9
|
+
<path fill="url(#a)" d="M28.589 14.135l-.014-.006c-.008-.003-.016-.006-.023-.013a.11.11 0 0 1-.028-.093l.773-4.726 3.625 3.626-3.77 1.604a.083.083 0 0 1-.033.006h-.015c-.005-.003-.01-.007-.02-.017a1.716 1.716 0 0 0-.495-.381zm5.258-.288l3.876 3.876c.805.806 1.208 1.208 1.355 1.674.022.069.04.138.054.209l-9.263-3.923a.728.728 0 0 0-.015-.006c-.037-.015-.08-.032-.08-.07 0-.038.044-.056.081-.071l.012-.005 3.98-1.684zm5.127 7.003c-.2.376-.59.766-1.25 1.427l-4.37 4.369-5.652-1.177-.03-.006c-.05-.008-.103-.017-.103-.062a1.706 1.706 0 0 0-.655-1.193c-.023-.023-.017-.059-.01-.092 0-.005 0-.01.002-.014l1.063-6.526.004-.022c.006-.05.015-.108.06-.108a1.73 1.73 0 0 0 1.16-.665c.009-.01.015-.021.027-.027.032-.015.07 0 .103.014l9.65 4.082zm-6.625 6.801l-7.186 7.186 1.23-7.56.002-.01c.001-.01.003-.02.006-.029.01-.024.036-.034.061-.044l.012-.005a1.85 1.85 0 0 0 .695-.517c.024-.028.053-.055.09-.06a.09.09 0 0 1 .029 0l5.06 1.04zm-8.707 8.707l-.81.81-8.955-12.942a.424.424 0 0 0-.01-.014c-.014-.019-.029-.038-.026-.06.001-.016.011-.03.022-.042l.01-.013c.027-.04.05-.08.075-.123l.02-.035.003-.003c.014-.024.027-.047.051-.06.021-.01.05-.006.073-.001l9.921 2.046a.164.164 0 0 1 .076.033c.013.013.016.027.019.043a1.757 1.757 0 0 0 1.028 1.175c.028.014.016.045.003.078a.238.238 0 0 0-.015.045c-.125.76-1.197 7.298-1.485 9.063zm-1.692 1.691c-.597.591-.949.904-1.347 1.03a2 2 0 0 1-1.206 0c-.466-.148-.869-.55-1.674-1.356L8.73 28.73l2.349-3.643c.011-.018.022-.034.04-.047.025-.018.061-.01.091 0a2.434 2.434 0 0 0 1.638-.083c.027-.01.054-.017.075.002a.19.19 0 0 1 .028.032L21.95 38.05zM7.863 27.863L5.8 25.8l4.074-1.738a.084.084 0 0 1 .033-.007c.034 0 .054.034.072.065a2.91 2.91 0 0 0 .13.184l.013.016c.012.017.004.034-.008.05l-2.25 3.493zm-2.976-2.976l-2.61-2.61c-.444-.444-.766-.766-.99-1.043l7.936 1.646a.84.84 0 0 0 .03.005c.049.008.103.017.103.063 0 .05-.059.073-.109.092l-.023.01-4.337 1.837zM.831 19.892a2 2 0 0 1 .09-.495c.148-.466.55-.868 1.356-1.674l3.34-3.34a2175.525 2175.525 0 0 0 4.626 6.687c.027.036.057.076.026.106-.146.161-.292.337-.395.528a.16.16 0 0 1-.05.062c-.013.008-.027.005-.042.002H9.78L.831 19.891zm5.68-6.403l4.491-4.491c.422.185 1.958.834 3.332 1.414 1.04.44 1.988.84 2.286.97.03.012.057.024.07.054.008.018.004.041 0 .06a2.003 2.003 0 0 0 .523 1.828c.03.03 0 .073-.026.11l-.014.021-4.56 7.063c-.012.02-.023.037-.043.05-.024.015-.058.008-.086.001a2.274 2.274 0 0 0-.543-.074c-.164 0-.342.03-.522.063h-.001c-.02.003-.038.007-.054-.005a.21.21 0 0 1-.045-.051l-4.808-7.013zm5.398-5.398l5.814-5.814c.805-.805 1.208-1.208 1.674-1.355a2 2 0 0 1 1.206 0c.466.147.869.55 1.674 1.355l1.26 1.26-4.135 6.404a.155.155 0 0 1-.041.048c-.025.017-.06.01-.09 0a2.097 2.097 0 0 0-1.92.37c-.027.028-.067.012-.101-.003-.54-.235-4.74-2.01-5.341-2.265zm12.506-3.676l3.818 3.818-.92 5.698v.015a.135.135 0 0 1-.008.038c-.01.02-.03.024-.05.03a1.83 1.83 0 0 0-.548.273.154.154 0 0 0-.02.017c-.011.012-.022.023-.04.025a.114.114 0 0 1-.043-.007l-5.818-2.472-.011-.005c-.037-.015-.081-.033-.081-.071a2.198 2.198 0 0 0-.31-.915c-.028-.046-.059-.094-.035-.141l4.066-6.303zm-3.932 8.606l5.454 2.31c.03.014.063.027.076.058a.106.106 0 0 1 0 .057c-.016.08-.03.171-.03.263v.153c0 .038-.039.054-.075.069l-.011.004c-.864.369-12.13 5.173-12.147 5.173-.017 0-.035 0-.052-.017-.03-.03 0-.072.027-.11a.76.76 0 0 0 .014-.02l4.482-6.94.008-.012c.026-.042.056-.089.104-.089l.045.007c.102.014.192.027.283.027.68 0 1.31-.331 1.69-.897a.16.16 0 0 1 .034-.04c.027-.02.067-.01.098.004zm-6.246 9.185l12.28-5.237s.018 0 .035.017c.067.067.124.112.179.154l.027.017c.025.014.05.03.052.056 0 .01 0 .016-.002.025L25.756 23.7l-.004.026c-.007.05-.014.107-.061.107a1.729 1.729 0 0 0-1.373.847l-.005.008c-.014.023-.027.045-.05.057-.021.01-.048.006-.07.001l-9.793-2.02c-.01-.002-.152-.519-.163-.52z"/>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns='http://www.w3.org/2000/svg' width='29' height='28' fill='none'><g clip-path='url(#a)'><mask id='b' width='29' height='28' x='0' y='0' maskUnits='userSpaceOnUse' style='mask-type:alpha'><path fill='#000' d='M14.573 28c7.732 0 14-6.268 14-14s-6.268-14-14-14-14 6.268-14 14 6.268 14 14 14Z'/></mask><g mask='url(#b)'><path fill='#7B7B7B' d='M14.573 28c7.732 0 14-6.268 14-14s-6.268-14-14-14-14 6.268-14 14 6.268 14 14 14Z'/><path fill='#fff' d='M23.83 24.503 11.33 8.4H8.973v11.196h1.884v-8.803l11.493 14.85a14.047 14.047 0 0 0 1.48-1.14Z'/><path fill='#fff' d='M20.33 8.4h-1.867v11.2l1.866.526V8.4Z'/></g></g><defs><clipPath id='a'><path fill='#fff' d='M.574 0h28v28h-28z'/></clipPath></defs></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' fill='none'><path fill='#7B7B7B' d='M15.68 23.667h10.36c.33 0 .647-.116.933-.28.287-.164.582-.37.747-.654.165-.284.28-.605.28-.933 0-.328-.114-.65-.28-.933l-7-12.04a1.702 1.702 0 0 0-.653-.654 2.256 2.256 0 0 0-1.027-.28c-.33 0-.647.117-.933.28-.287.164-.488.37-.654.654l-1.773 3.08-3.547-5.974c-.165-.284-.367-.583-.653-.746-.286-.164-.603-.187-.933-.187-.33 0-.647.023-.934.187a2.213 2.213 0 0 0-.746.746L.187 20.867C.02 21.15 0 21.472 0 21.8c0 .328.021.65.187.933.165.284.46.49.746.654.287.164.603.28.934.28H8.4c2.589 0 4.473-1.162 5.787-3.36L17.36 14.8l1.68-2.893 5.133 8.773H17.36l-1.68 2.987ZM8.307 20.68H3.733l6.814-11.76L14 14.8l-2.287 3.988c-.873 1.426-1.867 1.892-3.406 1.892Z'/></svg>
|