geenii 0.4.0.dev4__tar.gz
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.
- geenii-0.4.0.dev4/.aiignore +18 -0
- geenii-0.4.0.dev4/.dockerignore +16 -0
- geenii-0.4.0.dev4/.github/workflows/ci.yml +35 -0
- geenii-0.4.0.dev4/.github/workflows/publish_image_multiarch.yml +111 -0
- geenii-0.4.0.dev4/.github/workflows/release.yml +101 -0
- geenii-0.4.0.dev4/.github/workflows/release_pypi.yml +158 -0
- geenii-0.4.0.dev4/.github/workflows/reposcan.yml +47 -0
- geenii-0.4.0.dev4/.gitignore +20 -0
- geenii-0.4.0.dev4/.python-version +1 -0
- geenii-0.4.0.dev4/DEVELOPER.md +58 -0
- geenii-0.4.0.dev4/Dockerfile +84 -0
- geenii-0.4.0.dev4/LICENSE +21 -0
- geenii-0.4.0.dev4/PKG-INFO +97 -0
- geenii-0.4.0.dev4/README.md +65 -0
- geenii-0.4.0.dev4/VERSION +1 -0
- geenii-0.4.0.dev4/build_bin.sh +12 -0
- geenii-0.4.0.dev4/build_image.sh +4 -0
- geenii-0.4.0.dev4/build_nuitka.sh +32 -0
- geenii-0.4.0.dev4/build_od.sh +12 -0
- geenii-0.4.0.dev4/build_wheel.sh +8 -0
- geenii-0.4.0.dev4/bump_version.py +93 -0
- geenii-0.4.0.dev4/container/entrypoint.sh +7 -0
- geenii-0.4.0.dev4/docs/cheatsheet.md +154 -0
- geenii-0.4.0.dev4/docs/cli-reference/agent.md +58 -0
- geenii-0.4.0.dev4/docs/cli-reference/agents.md +36 -0
- geenii-0.4.0.dev4/docs/cli-reference/apps.md +140 -0
- geenii-0.4.0.dev4/docs/cli-reference/daemon.md +84 -0
- geenii-0.4.0.dev4/docs/cli-reference/flow.md +178 -0
- geenii-0.4.0.dev4/docs/cli-reference/index.md +120 -0
- geenii-0.4.0.dev4/docs/cli-reference/info.md +14 -0
- geenii-0.4.0.dev4/docs/cli-reference/mcp.md +100 -0
- geenii-0.4.0.dev4/docs/cli-reference/models.md +40 -0
- geenii-0.4.0.dev4/docs/cli-reference/pm.md +143 -0
- geenii-0.4.0.dev4/docs/cli-reference/projects.md +26 -0
- geenii-0.4.0.dev4/docs/cli-reference/scheduler.md +137 -0
- geenii-0.4.0.dev4/docs/cli-reference/skills.md +57 -0
- geenii-0.4.0.dev4/docs/cli-reference/supervisor.md +183 -0
- geenii-0.4.0.dev4/docs/cli-reference/tools.md +53 -0
- geenii-0.4.0.dev4/docs/developer-guide/agents.md +209 -0
- geenii-0.4.0.dev4/docs/developer-guide/apps.md +173 -0
- geenii-0.4.0.dev4/docs/developer-guide/architecture.md +147 -0
- geenii-0.4.0.dev4/docs/developer-guide/building.md +176 -0
- geenii-0.4.0.dev4/docs/developer-guide/caching.md +199 -0
- geenii-0.4.0.dev4/docs/developer-guide/flow.md +655 -0
- geenii-0.4.0.dev4/docs/developer-guide/mcp.md +340 -0
- geenii-0.4.0.dev4/docs/developer-guide/memory.md +170 -0
- geenii-0.4.0.dev4/docs/developer-guide/messages.md +205 -0
- geenii-0.4.0.dev4/docs/developer-guide/processes.md +571 -0
- geenii-0.4.0.dev4/docs/developer-guide/providers.md +150 -0
- geenii-0.4.0.dev4/docs/developer-guide/sandbox.md +243 -0
- geenii-0.4.0.dev4/docs/developer-guide/server.md +190 -0
- geenii-0.4.0.dev4/docs/developer-guide/skills.md +141 -0
- geenii-0.4.0.dev4/docs/developer-guide/tools.md +310 -0
- geenii-0.4.0.dev4/docs/developer-guide/usage-tracking.md +286 -0
- geenii-0.4.0.dev4/docs/developer-guide/web-ui.md +207 -0
- geenii-0.4.0.dev4/docs/developer-guide/widgets.md +313 -0
- geenii-0.4.0.dev4/docs/index.md +81 -0
- geenii-0.4.0.dev4/docs/user-guide/agents.md +94 -0
- geenii-0.4.0.dev4/docs/user-guide/configuration.md +207 -0
- geenii-0.4.0.dev4/docs/user-guide/docker.md +88 -0
- geenii-0.4.0.dev4/docs/user-guide/installation.md +65 -0
- geenii-0.4.0.dev4/docs/user-guide/scheduler.md +175 -0
- geenii-0.4.0.dev4/examples/flow_example.yaml +36 -0
- geenii-0.4.0.dev4/examples/pm_flow_example.yaml +53 -0
- geenii-0.4.0.dev4/geenii-ui/.dockerignore +6 -0
- geenii-0.4.0.dev4/geenii-ui/.gitignore +32 -0
- geenii-0.4.0.dev4/geenii-ui/.prettierrc.json +10 -0
- geenii-0.4.0.dev4/geenii-ui/Dockerfile +24 -0
- geenii-0.4.0.dev4/geenii-ui/README.md +30 -0
- geenii-0.4.0.dev4/geenii-ui/components.json +22 -0
- geenii-0.4.0.dev4/geenii-ui/container/nginx.conf +36 -0
- geenii-0.4.0.dev4/geenii-ui/index.html +13 -0
- geenii-0.4.0.dev4/geenii-ui/package.json +56 -0
- geenii-0.4.0.dev4/geenii-ui/pnpm-lock.yaml +5816 -0
- geenii-0.4.0.dev4/geenii-ui/pnpm-workspace.yaml +3 -0
- geenii-0.4.0.dev4/geenii-ui/public/bot.svg +9 -0
- geenii-0.4.0.dev4/geenii-ui/public/bot_white.svg +9 -0
- geenii-0.4.0.dev4/geenii-ui/public/create-task.html +162 -0
- geenii-0.4.0.dev4/geenii-ui/public/placeholder.svg +6 -0
- geenii-0.4.0.dev4/geenii-ui/public/pm/index.html +497 -0
- geenii-0.4.0.dev4/geenii-ui/public/tauri.svg +6 -0
- geenii-0.4.0.dev4/geenii-ui/public/vite.svg +1 -0
- geenii-0.4.0.dev4/geenii-ui/shadcn_add.sh +4 -0
- geenii-0.4.0.dev4/geenii-ui/src/Animate.scss +60 -0
- geenii-0.4.0.dev4/geenii-ui/src/App.scss +167 -0
- geenii-0.4.0.dev4/geenii-ui/src/App.tsx +41 -0
- geenii-0.4.0.dev4/geenii-ui/src/api/api-error.ts +35 -0
- geenii-0.4.0.dev4/geenii-ui/src/api/ollama-api.ts +24 -0
- geenii-0.4.0.dev4/geenii-ui/src/api/openai.types.ts +565 -0
- geenii-0.4.0.dev4/geenii-ui/src/api/xai-tauri.ts +91 -0
- geenii-0.4.0.dev4/geenii-ui/src/api/xai-web.ts +254 -0
- geenii-0.4.0.dev4/geenii-ui/src/api/xai.types.ts +146 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/agents/agent-chat.tsx +76 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/agents/agent-page.tsx +43 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/agents/agent-types.ts +49 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/agents/agent.view.tsx +361 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/agents/agents-page.tsx +16 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/agents/agents.view.tsx +247 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/agents/components/agent-config-editor.tsx +878 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/agents/components/agent-env-editor.tsx +216 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/aiassist/AiAssist.scss +16 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/aiassist/AiAssistPanel.tsx +22 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/aiassist/AiAssistVoicePrompt.tsx +104 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/aiassist/AudioFileImporter.tsx +62 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/aiassist/AudioPlayerWithWaveform.tsx +50 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/aiassist/AudioRecorder.tsx +189 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/aiassist/audio-page.tsx +12 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/apps/app-page.tsx +42 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/apps/apps-page.tsx +18 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/apps/apps-view.tsx +59 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/apps/tauri-app-viewer.tsx +115 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/catalog/catalog-page.tsx +29 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/catalog/components/docker-mcp-catalog-config-builder.tsx +137 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/catalog/components/docker-mcp-catalog-oci.tsx +961 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/catalog/components/docker-mcp-catalog-provider.tsx +88 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/catalog/components/docker-mcp-catalog-v3-config-builder.tsx +144 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/catalog/components/docker-mcp-catalog-v3-provider.tsx +71 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/catalog/components/docker-mcp-catalog-v3.tsx +324 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/catalog/docker-mcp-catalog-page.tsx +28 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/catalog/docker-mcp-catalog-view.tsx +20 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/Chat.scss +226 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/completion-chat-page.tsx +34 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/completion-chat.tsx +140 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/components/ChatContext.tsx +23 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/components/ChatContextProvider.tsx +68 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/components/ChatFiles.tsx +54 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/components/ChatFilesUploaderPopup.tsx +103 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/components/ChatInput.tsx +86 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/components/ChatMessages.tsx +127 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/components/ChatModelSelector.tsx +74 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/components/ChatPopup.tsx +28 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/components/ChatPromptSuggestions.tsx +25 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/components/ModelThinkingIndicator.tsx +23 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/chat/components/chat.types.ts +45 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/completion/completions-page.tsx +24 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/completion/components/QuickAudioGenerationPopupButton.tsx +108 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/completion/components/QuickCompletion.tsx +43 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/completion/components/QuickImageGenerationPopupButton.tsx +106 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/completion/components/QuickOllamaTextGenerationPopupButton.tsx +67 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/completion/components/QuickTextGenerationPopupButton.tsx +68 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/agents-settings-view.tsx +413 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/ai-model-settings-view.tsx +12 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/apps-settings.tsx +74 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/audio-settings.tsx +34 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/mcp-servers-settings-view.tsx +164 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/models-settings-view.tsx +298 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/ollama-models.tsx +431 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/process-manager-view.tsx +384 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/process-output.tsx +159 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/process-start-dialog.tsx +146 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/scheduler-config-view.tsx +372 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/scheduler-task-dialog.tsx +396 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/settings-form-view.tsx +25 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/skills-settings-view.tsx +241 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/system-info-view.tsx +367 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/components/usage-stats-view.tsx +433 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/configure-page.tsx +37 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/console-page.tsx +14 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/settings-forms.ts +118 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/settings-navdata.tsx +36 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/settings-view.tsx +139 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/console/system-page.tsx +40 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/dashboard/dashboard.page.tsx +59 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/flows/components/flowgraph-background.tsx +26 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/flows/components/flowgraph-canvas.tsx +88 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/flows/components/flowgraph-edges.tsx +124 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/flows/components/flowgraph-editor-panel.tsx +78 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/flows/components/flowgraph-editor.tsx +72 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/flows/components/flowgraph-nodes.tsx +312 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/flows/components/flowgraph-provider.tsx +148 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/flows/components/flowgraph-selected-node.tsx +29 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/flows/components/flowgraph-types.ts +21 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/flows/components/flowgraph.scss +120 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/flows/components/svgutil.ts +135 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/flows/flows-page.tsx +63 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/launcher/launcher-page.tsx +16 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/launcher/launcher.view.tsx +429 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/mcp-servers/components/mcp-server-actions.tsx +80 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/mcp-servers/components/mcp-server-config-editor.tsx +567 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/mcp-servers/components/mcp-server-provider.tsx +72 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/mcp-servers/components/mcp-server-tool-form.tsx +85 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/mcp-servers/components/mcp-server-view-head.tsx +48 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/mcp-servers/components/mcp-server.tsx +50 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/mcp-servers/components/mcp-servers-provider.tsx +92 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/mcp-servers/types.ts +41 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/tools/tool-types.ts +9 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/tools/tools.page.tsx +21 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/tools/tools.view.tsx +262 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/xchat/xchat-demo-page-1.tsx +68 -0
- geenii-0.4.0.dev4/geenii-ui/src/app/xchat/xchat-provider.tsx +49 -0
- geenii-0.4.0.dev4/geenii-ui/src/app-router.tsx +226 -0
- geenii-0.4.0.dev4/geenii-ui/src/app-socket.tsx +251 -0
- geenii-0.4.0.dev4/geenii-ui/src/assets/react.svg +1 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/Popup.tsx +113 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/TypewriterText.tsx +78 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/file-list/FileList.tsx +389 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/file-list/FileListDemo.tsx +138 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/file-list/README.md +163 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/file-list/index.ts +2 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/filterable-select.tsx +226 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/form/schema-form-dialog.tsx +81 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/header.tsx +28 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/json-debug-view.tsx +25 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/json-view.tsx +51 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/layout/console-layout.tsx +46 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/layout/console-navdata.tsx +110 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/layout/console-sidebar.tsx +67 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/layout/headerbar.tsx +62 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/layout/layout.tsx +16 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/layout/main-content.tsx +15 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/layout/main-layout.tsx +62 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/layout/main-sidebar.tsx +261 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/layout/message-inbox.tsx +445 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/layout/xchat-layout.tsx +65 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/layout/xchat-sidebar.tsx +85 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/nav-user.tsx +116 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/output-data-markdown.tsx +41 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/search-form.tsx +28 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/split-layout-h.tsx +27 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/split-layout-v.tsx +25 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/tauri/TauriCommandButton.tsx +53 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/tauri/TauriCommands.tsx +28 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/tauri/TauriPanel.tsx +41 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/tauri/TauriPanelContext.tsx +32 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/tauri/TauriSettingsPanelItem.tsx +29 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/tauri/TauriUpdaterPanelItem.tsx +155 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/tauri/TauriWrapper.tsx +96 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/tauri/tauri-docker-api.ts +53 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/tauri/tauri.types.ts +6 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/tauri/useTauri.ts +25 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/theme-provider.tsx +73 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/alert-dialog.tsx +194 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/avatar.tsx +106 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/badge.tsx +47 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/breadcrumb.tsx +108 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/button.tsx +63 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/card.tsx +91 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/collapsible.tsx +33 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/command.tsx +184 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/dialog.tsx +156 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/dropdown-menu.tsx +256 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/input.tsx +20 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/label.tsx +21 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/popover.tsx +88 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/scroll-area.tsx +55 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/separator.tsx +27 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/sheet.tsx +140 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/sidebar.tsx +724 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/skeleton.tsx +13 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/switch.tsx +32 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/textarea.tsx +17 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/ui/tooltip.tsx +56 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/uploader/FileUploader.tsx +236 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/uploader/FileUploaderExample.tsx +26 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/voice-recorder/VoiceRecorder.tsx +84 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/voice-recorder/useMicrophone.ts +100 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/backend-switcher.tsx +81 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/backends/agent-backend.ts +159 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/backends/echo-backend.ts +266 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/backends/echo-examples.ts +966 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-command-menu.tsx +139 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-content-part.tsx +28 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-context-provider.tsx +70 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-context.tsx +65 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-error.tsx +26 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-input.tsx +124 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-message-usage.tsx +51 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-message.tsx +94 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-messages.tsx +71 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-model-selector.tsx +44 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-session-list.tsx +112 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-session.ts +285 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-status.tsx +33 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-tool-calls.ts +30 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat-voice-input.tsx +30 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat.tsx +53 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/chat.types.ts +354 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/index.ts +19 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/index.ts +30 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/media-parts.tsx +97 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/tool-parts.tsx +137 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widget-parts.tsx +69 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/accordion.tsx +58 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/barchart.tsx +27 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/child-content.tsx +28 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/choices.tsx +40 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/clock.tsx +22 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/code.tsx +13 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/copy-button.tsx +18 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/countdown.tsx +25 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/csv.tsx +45 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/dice.tsx +61 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/diff.tsx +33 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/donut.tsx +60 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/errorboundarytest.tsx +21 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/filetree.tsx +75 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/form.tsx +112 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/fortune.tsx +64 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/funnel.tsx +59 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/gauge.tsx +51 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/grid.tsx +35 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/heatmap.tsx +89 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/html.tsx +15 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/iframe.tsx +62 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/index.ts +113 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/json.tsx +38 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/keyvalue.tsx +30 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/linechart.tsx +80 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/links.tsx +45 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/list.tsx +21 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/matrix.tsx +73 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/postbutton.tsx +99 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/progress.tsx +25 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/rating.tsx +82 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/safe-url.ts +9 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/scatter.tsx +97 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/snake.tsx +107 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/sparklines.tsx +73 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/stat.tsx +25 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/status.tsx +86 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/steps.tsx +39 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/table.tsx +31 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/tabs.tsx +49 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/terminal.tsx +42 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/timeline.tsx +34 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/treemap.tsx +133 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/use-chat-reply.ts +40 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/use-now.ts +12 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/use-reduced-motion.ts +16 -0
- geenii-0.4.0.dev4/geenii-ui/src/components/xchat/parts/widgets/weather.tsx +88 -0
- geenii-0.4.0.dev4/geenii-ui/src/constants.ts +50 -0
- geenii-0.4.0.dev4/geenii-ui/src/context/api-context.tsx +113 -0
- geenii-0.4.0.dev4/geenii-ui/src/context/app-context-provider.tsx +126 -0
- geenii-0.4.0.dev4/geenii-ui/src/context/app-context.tsx +13 -0
- geenii-0.4.0.dev4/geenii-ui/src/context/server-context-provider.tsx +43 -0
- geenii-0.4.0.dev4/geenii-ui/src/context/server-context.tsx +11 -0
- geenii-0.4.0.dev4/geenii-ui/src/convo.ts +76 -0
- geenii-0.4.0.dev4/geenii-ui/src/features/errors/forbidden.tsx +22 -0
- geenii-0.4.0.dev4/geenii-ui/src/features/errors/general-error.tsx +34 -0
- geenii-0.4.0.dev4/geenii-ui/src/features/errors/maintenance-error.tsx +19 -0
- geenii-0.4.0.dev4/geenii-ui/src/features/errors/not-found-error.tsx +22 -0
- geenii-0.4.0.dev4/geenii-ui/src/features/errors/unauthorized-error.tsx +25 -0
- geenii-0.4.0.dev4/geenii-ui/src/hooks/use-mobile.ts +19 -0
- geenii-0.4.0.dev4/geenii-ui/src/hooks/use-models.ts +56 -0
- geenii-0.4.0.dev4/geenii-ui/src/hooks/useNotification.ts +68 -0
- geenii-0.4.0.dev4/geenii-ui/src/init.ts +30 -0
- geenii-0.4.0.dev4/geenii-ui/src/lib/utils.ts +4 -0
- geenii-0.4.0.dev4/geenii-ui/src/main.tsx +9 -0
- geenii-0.4.0.dev4/geenii-ui/src/tailwind.css +193 -0
- geenii-0.4.0.dev4/geenii-ui/src/vite-env.d.ts +1 -0
- geenii-0.4.0.dev4/geenii-ui/tsconfig.json +30 -0
- geenii-0.4.0.dev4/geenii-ui/tsconfig.node.json +15 -0
- geenii-0.4.0.dev4/geenii-ui/vite.config.ts +39 -0
- geenii-0.4.0.dev4/hooks/hook-geenii.provider.py +3 -0
- geenii-0.4.0.dev4/pyproject.toml +96 -0
- geenii-0.4.0.dev4/run.sh +8 -0
- geenii-0.4.0.dev4/scripts/gen_homebrew_formula_od.py +117 -0
- geenii-0.4.0.dev4/scripts/gen_homebrew_formula_of.py +112 -0
- geenii-0.4.0.dev4/src/geenii/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/agent/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/agent/base.py +68 -0
- geenii-0.4.0.dev4/src/geenii/agent/base_agent.py +340 -0
- geenii-0.4.0.dev4/src/geenii/agent/env.py +129 -0
- geenii-0.4.0.dev4/src/geenii/agent/info_commands.py +313 -0
- geenii-0.4.0.dev4/src/geenii/agent/registry.py +165 -0
- geenii-0.4.0.dev4/src/geenii/agent/tasks.py +1120 -0
- geenii-0.4.0.dev4/src/geenii/agent/utils.py +43 -0
- geenii-0.4.0.dev4/src/geenii/agents.py +179 -0
- geenii-0.4.0.dev4/src/geenii/ai.py +469 -0
- geenii-0.4.0.dev4/src/geenii/apps.py +277 -0
- geenii-0.4.0.dev4/src/geenii/bots.py +25 -0
- geenii-0.4.0.dev4/src/geenii/chat_models.py +168 -0
- geenii-0.4.0.dev4/src/geenii/cli/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/cli/agent_cli.py +218 -0
- geenii-0.4.0.dev4/src/geenii/cli/agents_cli.py +142 -0
- geenii-0.4.0.dev4/src/geenii/cli/ai_cli.py +145 -0
- geenii-0.4.0.dev4/src/geenii/cli/apps_cli.py +241 -0
- geenii-0.4.0.dev4/src/geenii/cli/cli_runner.py +83 -0
- geenii-0.4.0.dev4/src/geenii/cli/click_helper.py +17 -0
- geenii-0.4.0.dev4/src/geenii/cli/daemon_cli.py +113 -0
- geenii-0.4.0.dev4/src/geenii/cli/flow_cli.py +316 -0
- geenii-0.4.0.dev4/src/geenii/cli/info_cli.py +35 -0
- geenii-0.4.0.dev4/src/geenii/cli/main.py +134 -0
- geenii-0.4.0.dev4/src/geenii/cli/mcp_cli.py +199 -0
- geenii-0.4.0.dev4/src/geenii/cli/models_cli.py +35 -0
- geenii-0.4.0.dev4/src/geenii/cli/pm_cli.py +196 -0
- geenii-0.4.0.dev4/src/geenii/cli/projects_cli.py +39 -0
- geenii-0.4.0.dev4/src/geenii/cli/scheduler_cli.py +384 -0
- geenii-0.4.0.dev4/src/geenii/cli/skills_cli.py +90 -0
- geenii-0.4.0.dev4/src/geenii/cli/supervisor_cli.py +327 -0
- geenii-0.4.0.dev4/src/geenii/cli/tools_cli.py +78 -0
- geenii-0.4.0.dev4/src/geenii/config.py +250 -0
- geenii-0.4.0.dev4/src/geenii/console/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/core/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/core/process_tools.py +103 -0
- geenii-0.4.0.dev4/src/geenii/core/tasks.py +13 -0
- geenii-0.4.0.dev4/src/geenii/core/tools.py +108 -0
- geenii-0.4.0.dev4/src/geenii/daemon/__init__.py +11 -0
- geenii-0.4.0.dev4/src/geenii/daemon/client.py +76 -0
- geenii-0.4.0.dev4/src/geenii/daemon/host.py +218 -0
- geenii-0.4.0.dev4/src/geenii/daemon/server.py +237 -0
- geenii-0.4.0.dev4/src/geenii/datamodels.py +360 -0
- geenii-0.4.0.dev4/src/geenii/example_bots.py +112 -0
- geenii-0.4.0.dev4/src/geenii/flow/__init__.py +33 -0
- geenii-0.4.0.dev4/src/geenii/flow/flow.py +727 -0
- geenii-0.4.0.dev4/src/geenii/flow/processor/__init__.py +9 -0
- geenii-0.4.0.dev4/src/geenii/flow/processor/echo.py +27 -0
- geenii-0.4.0.dev4/src/geenii/flow/processor/execute_command.py +132 -0
- geenii-0.4.0.dev4/src/geenii/flow/processor/execute_pm_command.py +177 -0
- geenii-0.4.0.dev4/src/geenii/flow/processor/execute_script.py +55 -0
- geenii-0.4.0.dev4/src/geenii/flow/processor/read_file.py +53 -0
- geenii-0.4.0.dev4/src/geenii/flow/processor/read_http.py +58 -0
- geenii-0.4.0.dev4/src/geenii/flows.py +32 -0
- geenii-0.4.0.dev4/src/geenii/g.py +260 -0
- geenii-0.4.0.dev4/src/geenii/hitl.py +210 -0
- geenii-0.4.0.dev4/src/geenii/logs.py +65 -0
- geenii-0.4.0.dev4/src/geenii/mcp_client.py +203 -0
- geenii-0.4.0.dev4/src/geenii/mcp_config.py +184 -0
- geenii-0.4.0.dev4/src/geenii/memory.py +157 -0
- geenii-0.4.0.dev4/src/geenii/pm/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/pm/process_manager.py +534 -0
- geenii-0.4.0.dev4/src/geenii/pm/process_manager_client.py +78 -0
- geenii-0.4.0.dev4/src/geenii/pm/process_manager_service.py +39 -0
- geenii-0.4.0.dev4/src/geenii/proc.py +143 -0
- geenii-0.4.0.dev4/src/geenii/provider/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/provider/anthropic/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/provider/anthropic/provider.py +292 -0
- geenii-0.4.0.dev4/src/geenii/provider/fake/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/provider/fake/provider.py +121 -0
- geenii-0.4.0.dev4/src/geenii/provider/geenii/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/provider/geenii/provider.py +42 -0
- geenii-0.4.0.dev4/src/geenii/provider/hf/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/provider/hf/provider.py +66 -0
- geenii-0.4.0.dev4/src/geenii/provider/interfaces.py +116 -0
- geenii-0.4.0.dev4/src/geenii/provider/kokoro/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/provider/kokoro/provider.py +25 -0
- geenii-0.4.0.dev4/src/geenii/provider/ollama/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/provider/ollama/provider.py +591 -0
- geenii-0.4.0.dev4/src/geenii/provider/openai/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/provider/openai/provider.py +515 -0
- geenii-0.4.0.dev4/src/geenii/provider/whisper/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/provider/whisper/provider.py +21 -0
- geenii-0.4.0.dev4/src/geenii/provider/whisper/whispercpp_ext.py +143 -0
- geenii-0.4.0.dev4/src/geenii/sandbox.py +329 -0
- geenii-0.4.0.dev4/src/geenii/scheduler.py +575 -0
- geenii-0.4.0.dev4/src/geenii/server/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/server/agents_routes.py +334 -0
- geenii-0.4.0.dev4/src/geenii/server/ai_routes.py +283 -0
- geenii-0.4.0.dev4/src/geenii/server/chat_routes.py +221 -0
- geenii-0.4.0.dev4/src/geenii/server/chat_sessions.py +168 -0
- geenii-0.4.0.dev4/src/geenii/server/daemon_routes.py +37 -0
- geenii-0.4.0.dev4/src/geenii/server/flow_routes.py +3 -0
- geenii-0.4.0.dev4/src/geenii/server/mcp_routes.py +179 -0
- geenii-0.4.0.dev4/src/geenii/server/pm_routes.py +150 -0
- geenii-0.4.0.dev4/src/geenii/server/projects_routes.py +23 -0
- geenii-0.4.0.dev4/src/geenii/server/public_routes.py +16 -0
- geenii-0.4.0.dev4/src/geenii/server/router.py +52 -0
- geenii-0.4.0.dev4/src/geenii/server/scheduler_routes.py +312 -0
- geenii-0.4.0.dev4/src/geenii/server/security.py +10 -0
- geenii-0.4.0.dev4/src/geenii/server/server.py +315 -0
- geenii-0.4.0.dev4/src/geenii/server/skills_routes.py +70 -0
- geenii-0.4.0.dev4/src/geenii/server/stats_routes.py +33 -0
- geenii-0.4.0.dev4/src/geenii/server/tools_routes.py +29 -0
- geenii-0.4.0.dev4/src/geenii/server/web_runner.py +119 -0
- geenii-0.4.0.dev4/src/geenii/skills.py +223 -0
- geenii-0.4.0.dev4/src/geenii/supervisor.py +668 -0
- geenii-0.4.0.dev4/src/geenii/tool/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/tool/common.py +113 -0
- geenii-0.4.0.dev4/src/geenii/tool/computer.py +226 -0
- geenii-0.4.0.dev4/src/geenii/tool/mcp_tool.py +68 -0
- geenii-0.4.0.dev4/src/geenii/tool/python.py +122 -0
- geenii-0.4.0.dev4/src/geenii/tool/registry.py +197 -0
- geenii-0.4.0.dev4/src/geenii/tool/sandbox.py +111 -0
- geenii-0.4.0.dev4/src/geenii/tool/script.py +66 -0
- geenii-0.4.0.dev4/src/geenii/tool/tool_filter.py +144 -0
- geenii-0.4.0.dev4/src/geenii/tools.py +199 -0
- geenii-0.4.0.dev4/src/geenii/usage_stats.py +280 -0
- geenii-0.4.0.dev4/src/geenii/utils/__init__.py +0 -0
- geenii-0.4.0.dev4/src/geenii/utils/async_bridge.py +90 -0
- geenii-0.4.0.dev4/src/geenii/utils/asyncify.py +10 -0
- geenii-0.4.0.dev4/src/geenii/utils/cached.py +351 -0
- geenii-0.4.0.dev4/src/geenii/utils/json_util.py +43 -0
- geenii-0.4.0.dev4/src/geenii/utils/mdfile.py +81 -0
- geenii-0.4.0.dev4/src/geenii/utils/modelstore.py +258 -0
- geenii-0.4.0.dev4/src/geenii/utils/mongodb.py +55 -0
- geenii-0.4.0.dev4/src/geenii/utils/os_util.py +39 -0
- geenii-0.4.0.dev4/src/geenii/utils/redis.py +34 -0
- geenii-0.4.0.dev4/src/geenii/utils/system_util.py +183 -0
- geenii-0.4.0.dev4/src/geenii/utils/terminal_util.py +102 -0
- geenii-0.4.0.dev4/src/geenii/utils/toml_util.py +41 -0
- geenii-0.4.0.dev4/src/geenii/utils/tts_util.py +80 -0
- geenii-0.4.0.dev4/tests/geenii/conftest.py +32 -0
- geenii-0.4.0.dev4/tests/geenii/flow/test_execute_pm_command.py +139 -0
- geenii-0.4.0.dev4/tests/geenii/flow/test_flow.py +777 -0
- geenii-0.4.0.dev4/tests/geenii/flow/test_flow_cli.py +297 -0
- geenii-0.4.0.dev4/tests/geenii/test_agent_env.py +159 -0
- geenii-0.4.0.dev4/tests/geenii/test_agents_routes.py +190 -0
- geenii-0.4.0.dev4/tests/geenii/test_ai_routes.py +261 -0
- geenii-0.4.0.dev4/tests/geenii/test_async_bridge.py +107 -0
- geenii-0.4.0.dev4/tests/geenii/test_base_agent.py +183 -0
- geenii-0.4.0.dev4/tests/geenii/test_chat_routes.py +417 -0
- geenii-0.4.0.dev4/tests/geenii/test_computer_tool.py +208 -0
- geenii-0.4.0.dev4/tests/geenii/test_daemon.py +474 -0
- geenii-0.4.0.dev4/tests/geenii/test_daemon_routes.py +54 -0
- geenii-0.4.0.dev4/tests/geenii/test_fake_provider.py +90 -0
- geenii-0.4.0.dev4/tests/geenii/test_file_tools.py +202 -0
- geenii-0.4.0.dev4/tests/geenii/test_info_commands.py +278 -0
- geenii-0.4.0.dev4/tests/geenii/test_mcp_config.py +234 -0
- geenii-0.4.0.dev4/tests/geenii/test_mcp_routes.py +256 -0
- geenii-0.4.0.dev4/tests/geenii/test_memory.py +104 -0
- geenii-0.4.0.dev4/tests/geenii/test_message_usage.py +220 -0
- geenii-0.4.0.dev4/tests/geenii/test_modelstore.py +129 -0
- geenii-0.4.0.dev4/tests/geenii/test_modelstore_mongo.py +75 -0
- geenii-0.4.0.dev4/tests/geenii/test_modelstore_redis.py +44 -0
- geenii-0.4.0.dev4/tests/geenii/test_proc.py +153 -0
- geenii-0.4.0.dev4/tests/geenii/test_process_manager.py +541 -0
- geenii-0.4.0.dev4/tests/geenii/test_python_tool.py +65 -0
- geenii-0.4.0.dev4/tests/geenii/test_scheduler.py +331 -0
- geenii-0.4.0.dev4/tests/geenii/test_scheduler_routes.py +289 -0
- geenii-0.4.0.dev4/tests/geenii/test_sqlite_memory.py +92 -0
- geenii-0.4.0.dev4/tests/geenii/test_supervisor.py +329 -0
- geenii-0.4.0.dev4/tests/geenii/test_task_context_id.py +92 -0
- geenii-0.4.0.dev4/tests/geenii/test_tool_filter.py +124 -0
- geenii-0.4.0.dev4/tests/geenii/test_usage_log.py +302 -0
- geenii-0.4.0.dev4/tests/geenii/test_usage_stats.py +210 -0
- geenii-0.4.0.dev4/uv.lock +1919 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
# Lets the release workflow run the full CI before publishing.
|
|
10
|
+
workflow_call:
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
lint:
|
|
14
|
+
name: Lint
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v7
|
|
18
|
+
- uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
19
|
+
- uses: astral-sh/ruff-action@v4.0.0
|
|
20
|
+
with:
|
|
21
|
+
src: src/
|
|
22
|
+
|
|
23
|
+
test:
|
|
24
|
+
name: Test (Python ${{ matrix.python-version }})
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
strategy:
|
|
27
|
+
matrix:
|
|
28
|
+
python-version: ["3.14"]
|
|
29
|
+
steps:
|
|
30
|
+
- uses: actions/checkout@v7
|
|
31
|
+
- uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
32
|
+
with:
|
|
33
|
+
python-version: ${{ matrix.python-version }}
|
|
34
|
+
- run: uv sync --locked --group dev
|
|
35
|
+
- run: uv run pytest tests/ -v
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
name: Publish image
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions: {}
|
|
10
|
+
|
|
11
|
+
env:
|
|
12
|
+
IMAGE_TAG: ${{ github.ref_name }}
|
|
13
|
+
REPO_NAME: ${{ vars.DOCKERHUB_REPONAME }}
|
|
14
|
+
DOCKER_NAMESPACE: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
validate:
|
|
18
|
+
name: Validate inputs
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- name: Check required variables
|
|
22
|
+
run: |
|
|
23
|
+
set -eu
|
|
24
|
+
: "${REPO_NAME:?DOCKERHUB_REPONAME variable is not set}"
|
|
25
|
+
: "${DOCKER_NAMESPACE:?DOCKERHUB_USERNAME secret is not set}"
|
|
26
|
+
: "${IMAGE_TAG:?github.ref_name is empty}"
|
|
27
|
+
env:
|
|
28
|
+
REPO_NAME: ${{ vars.DOCKERHUB_REPONAME }}
|
|
29
|
+
DOCKER_NAMESPACE: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
30
|
+
IMAGE_TAG: ${{ github.ref_name }}
|
|
31
|
+
|
|
32
|
+
build:
|
|
33
|
+
name: Build ${{ matrix.platform }}
|
|
34
|
+
needs: validate
|
|
35
|
+
strategy:
|
|
36
|
+
fail-fast: false
|
|
37
|
+
matrix:
|
|
38
|
+
include:
|
|
39
|
+
- platform: linux/amd64
|
|
40
|
+
runner: ubuntu-latest
|
|
41
|
+
arch_tag: amd64
|
|
42
|
+
- platform: linux/arm64
|
|
43
|
+
runner: ubuntu-24.04-arm
|
|
44
|
+
arch_tag: arm64
|
|
45
|
+
|
|
46
|
+
runs-on: ${{ matrix.runner }}
|
|
47
|
+
environment: production
|
|
48
|
+
|
|
49
|
+
steps:
|
|
50
|
+
- name: Checkout repo
|
|
51
|
+
uses: actions/checkout@v5
|
|
52
|
+
|
|
53
|
+
- name: Login to Docker Hub
|
|
54
|
+
uses: docker/login-action@v4
|
|
55
|
+
with:
|
|
56
|
+
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
57
|
+
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
58
|
+
|
|
59
|
+
- name: Set up Docker Buildx
|
|
60
|
+
uses: docker/setup-buildx-action@v4
|
|
61
|
+
|
|
62
|
+
- name: Build and push arch image
|
|
63
|
+
uses: docker/build-push-action@v7
|
|
64
|
+
with:
|
|
65
|
+
context: .
|
|
66
|
+
file: ./Dockerfile
|
|
67
|
+
platforms: ${{ matrix.platform }}
|
|
68
|
+
push: true
|
|
69
|
+
provenance: true
|
|
70
|
+
sbom: true
|
|
71
|
+
tags: |
|
|
72
|
+
${{ env.DOCKER_NAMESPACE }}/${{ env.REPO_NAME }}:${{ env.IMAGE_TAG }}-${{ matrix.arch_tag }}
|
|
73
|
+
cache-from: type=gha,scope=${{ github.workflow }}-${{ matrix.arch_tag }}
|
|
74
|
+
cache-to: type=gha,mode=max,scope=${{ github.workflow }}-${{ matrix.arch_tag }}
|
|
75
|
+
|
|
76
|
+
manifest:
|
|
77
|
+
name: Create multi-arch manifest
|
|
78
|
+
needs: [validate, build]
|
|
79
|
+
runs-on: ubuntu-latest
|
|
80
|
+
environment: production
|
|
81
|
+
|
|
82
|
+
steps:
|
|
83
|
+
- name: Login to Docker Hub
|
|
84
|
+
uses: docker/login-action@v4
|
|
85
|
+
with:
|
|
86
|
+
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
87
|
+
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
88
|
+
|
|
89
|
+
- name: Create and push manifest
|
|
90
|
+
run: |
|
|
91
|
+
set -eux
|
|
92
|
+
|
|
93
|
+
docker buildx imagetools create \
|
|
94
|
+
-t $DOCKER_NAMESPACE/$REPO_NAME:$IMAGE_TAG \
|
|
95
|
+
-t $DOCKER_NAMESPACE/$REPO_NAME:latest \
|
|
96
|
+
$DOCKER_NAMESPACE/$REPO_NAME:$IMAGE_TAG-amd64 \
|
|
97
|
+
$DOCKER_NAMESPACE/$REPO_NAME:$IMAGE_TAG-arm64
|
|
98
|
+
|
|
99
|
+
- name: Inspect manifest
|
|
100
|
+
run: |
|
|
101
|
+
docker buildx imagetools inspect $DOCKER_NAMESPACE/$REPO_NAME:$IMAGE_TAG
|
|
102
|
+
|
|
103
|
+
smoke-test:
|
|
104
|
+
name: Smoke test
|
|
105
|
+
needs: manifest
|
|
106
|
+
runs-on: ubuntu-latest
|
|
107
|
+
steps:
|
|
108
|
+
- name: Pull and run image
|
|
109
|
+
run: |
|
|
110
|
+
set -eux
|
|
111
|
+
docker run --rm $DOCKER_NAMESPACE/$REPO_NAME:$IMAGE_TAG geenii --version
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
name: Publish release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions: {}
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
build:
|
|
13
|
+
name: Build ${{ matrix.platform }}
|
|
14
|
+
strategy:
|
|
15
|
+
fail-fast: false
|
|
16
|
+
matrix:
|
|
17
|
+
include:
|
|
18
|
+
- platform: linux/amd64
|
|
19
|
+
runner: ubuntu-latest
|
|
20
|
+
arch_tag: linux-amd64
|
|
21
|
+
- platform: linux/arm64
|
|
22
|
+
runner: ubuntu-24.04-arm
|
|
23
|
+
arch_tag: linux-arm64
|
|
24
|
+
- platform: darwin/amd64
|
|
25
|
+
runner: macos-latest
|
|
26
|
+
arch_tag: darwin-amd64
|
|
27
|
+
- platform: darwin/arm64
|
|
28
|
+
runner: macos-latest
|
|
29
|
+
arch_tag: darwin-arm64
|
|
30
|
+
|
|
31
|
+
runs-on: ${{ matrix.runner }}
|
|
32
|
+
|
|
33
|
+
steps:
|
|
34
|
+
- name: Checkout repo
|
|
35
|
+
uses: actions/checkout@v7
|
|
36
|
+
|
|
37
|
+
- name: Setup Python
|
|
38
|
+
uses: actions/setup-python@v6
|
|
39
|
+
with:
|
|
40
|
+
python-version: '3.14'
|
|
41
|
+
|
|
42
|
+
- name: Install uv
|
|
43
|
+
#run: pip install uv
|
|
44
|
+
uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
45
|
+
|
|
46
|
+
# - name: Build
|
|
47
|
+
# run: |
|
|
48
|
+
# ./build_bin.sh
|
|
49
|
+
# cp README.md LICENSE dist/
|
|
50
|
+
# TARBALL="geenii-${{ matrix.arch_tag }}.tar.gz"
|
|
51
|
+
# tar -czvf "$TARBALL" -C dist .
|
|
52
|
+
# if command -v sha256sum &>/dev/null; then
|
|
53
|
+
# sha256sum "$TARBALL" > "$TARBALL.sha256"
|
|
54
|
+
# else
|
|
55
|
+
# shasum -a 256 "$TARBALL" > "$TARBALL.sha256"
|
|
56
|
+
# fi
|
|
57
|
+
|
|
58
|
+
- name: Build
|
|
59
|
+
run: |
|
|
60
|
+
./build_od.sh
|
|
61
|
+
cp README.md LICENSE dist/
|
|
62
|
+
TARBALL="geenii-${{ matrix.arch_tag }}-${{ github.ref_name }}.tar.gz"
|
|
63
|
+
tar -czvf "$TARBALL" -C dist .
|
|
64
|
+
if command -v sha256sum &>/dev/null; then
|
|
65
|
+
sha256sum "$TARBALL" > "$TARBALL.sha256"
|
|
66
|
+
else
|
|
67
|
+
shasum -a 256 "$TARBALL" > "$TARBALL.sha256"
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
- name: Upload artifact
|
|
71
|
+
uses: actions/upload-artifact@v6
|
|
72
|
+
with:
|
|
73
|
+
name: geenii-${{ matrix.arch_tag }}
|
|
74
|
+
path: |
|
|
75
|
+
geenii-${{ matrix.arch_tag }}-${{ github.ref_name }}.tar.gz
|
|
76
|
+
geenii-${{ matrix.arch_tag }}-${{ github.ref_name }}.tar.gz.sha256
|
|
77
|
+
|
|
78
|
+
release:
|
|
79
|
+
name: Create GitHub Release
|
|
80
|
+
needs: build
|
|
81
|
+
runs-on: ubuntu-latest
|
|
82
|
+
permissions:
|
|
83
|
+
contents: write
|
|
84
|
+
steps:
|
|
85
|
+
- name: Download all artifacts
|
|
86
|
+
uses: actions/download-artifact@v6
|
|
87
|
+
with:
|
|
88
|
+
path: artifacts
|
|
89
|
+
merge-multiple: true
|
|
90
|
+
|
|
91
|
+
- name: Create release
|
|
92
|
+
env:
|
|
93
|
+
GH_TOKEN: ${{ github.token }}
|
|
94
|
+
TAG: ${{ github.ref_name }}
|
|
95
|
+
run: |
|
|
96
|
+
set -eux
|
|
97
|
+
ls -la artifacts/
|
|
98
|
+
gh release create "$TAG" artifacts/* \
|
|
99
|
+
--repo "$GITHUB_REPOSITORY" \
|
|
100
|
+
--title "$TAG" \
|
|
101
|
+
--generate-notes
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
name: Release Python SDK
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags: ["python-v*"]
|
|
6
|
+
|
|
7
|
+
# Actions are pinned to commit SHAs (updated by Dependabot).
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
check-version:
|
|
13
|
+
name: Check tag matches package version
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
outputs:
|
|
16
|
+
version: ${{ steps.version.outputs.version }}
|
|
17
|
+
prerelease: ${{ steps.version.outputs.prerelease }}
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
20
|
+
- uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
21
|
+
- name: Compare tag with pyproject.toml version
|
|
22
|
+
id: version
|
|
23
|
+
env:
|
|
24
|
+
TAG: ${{ github.ref_name }}
|
|
25
|
+
run: |
|
|
26
|
+
version=$(uv version --short)
|
|
27
|
+
if [[ "${TAG}" != "python-v${version}" ]]; then
|
|
28
|
+
echo "::error::Tag ${TAG} does not match the package version ${version} in pyproject.toml (expected v${version})."
|
|
29
|
+
exit 1
|
|
30
|
+
fi
|
|
31
|
+
echo "version=${version}" >> "$GITHUB_OUTPUT"
|
|
32
|
+
# PEP 440 pre-releases (e.g. 1.0.0a1, 1.0.0b2, 1.0.0rc1, 1.0.0.dev1)
|
|
33
|
+
if [[ "${version}" =~ (a|b|rc|\.dev)[0-9]+$ ]]; then
|
|
34
|
+
echo "prerelease=true" >> "$GITHUB_OUTPUT"
|
|
35
|
+
else
|
|
36
|
+
echo "prerelease=false" >> "$GITHUB_OUTPUT"
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# ci:
|
|
40
|
+
# name: CI
|
|
41
|
+
# needs: check-version
|
|
42
|
+
# uses: ./.github/workflows/ci.yml
|
|
43
|
+
|
|
44
|
+
build:
|
|
45
|
+
name: Build distributions
|
|
46
|
+
needs: [check-version]
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@v7
|
|
50
|
+
with:
|
|
51
|
+
persist-credentials: false
|
|
52
|
+
- uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
53
|
+
with:
|
|
54
|
+
enable-cache: false # never build release artifacts from a cache
|
|
55
|
+
python-version: '3.14'
|
|
56
|
+
- name: Build sdist and wheel
|
|
57
|
+
run: uv build --no-sources
|
|
58
|
+
- name: Check wheel
|
|
59
|
+
run: |
|
|
60
|
+
# -I keeps the current directory off sys.path
|
|
61
|
+
# --isolated uses a fresh environment, with nothing reused from a previous run.
|
|
62
|
+
uv run --isolated --no-project --with dist/*.whl \
|
|
63
|
+
python -I -c "import geenii, importlib.metadata as m; print(m.version('geenii'))"
|
|
64
|
+
- name: Check distribution metadata
|
|
65
|
+
run: uvx twine check --strict dist/*
|
|
66
|
+
- uses: actions/upload-artifact@v7
|
|
67
|
+
with:
|
|
68
|
+
name: dist
|
|
69
|
+
path: dist/
|
|
70
|
+
if-no-files-found: error
|
|
71
|
+
|
|
72
|
+
github-release:
|
|
73
|
+
name: Create GitHub release
|
|
74
|
+
needs: [check-version, build]
|
|
75
|
+
runs-on: ubuntu-latest
|
|
76
|
+
permissions:
|
|
77
|
+
contents: write
|
|
78
|
+
steps:
|
|
79
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
80
|
+
with:
|
|
81
|
+
name: dist
|
|
82
|
+
path: dist/
|
|
83
|
+
- name: Create release with distributions attached
|
|
84
|
+
env:
|
|
85
|
+
GH_TOKEN: ${{ github.token }}
|
|
86
|
+
TAG: ${{ github.ref_name }}
|
|
87
|
+
PRERELEASE: ${{ needs.check-version.outputs.prerelease }}
|
|
88
|
+
TITLE: "Geenii Python SDK"
|
|
89
|
+
run: |
|
|
90
|
+
flags=()
|
|
91
|
+
if [[ "${PRERELEASE}" == "true" ]]; then
|
|
92
|
+
flags+=(--prerelease)
|
|
93
|
+
fi
|
|
94
|
+
gh release create "${TAG}" dist/* \
|
|
95
|
+
--repo "${GITHUB_REPOSITORY}" \
|
|
96
|
+
--title "${TITLE} ${TAG}" \
|
|
97
|
+
--generate-notes \
|
|
98
|
+
--verify-tag \
|
|
99
|
+
"${flags[@]}"
|
|
100
|
+
|
|
101
|
+
# A dry run on TestPyPI; if the upload or the install check fails, nothing is published to PyPI.
|
|
102
|
+
publish-testpypi:
|
|
103
|
+
name: Publish to TestPyPI
|
|
104
|
+
needs: [check-version, build]
|
|
105
|
+
runs-on: ubuntu-latest
|
|
106
|
+
# Trusted publishing, like PyPI below, but configured on test.pypi.org.
|
|
107
|
+
environment:
|
|
108
|
+
name: testpypi
|
|
109
|
+
url: https://test.pypi.org/project/geenii/${{ needs.check-version.outputs.version }}/
|
|
110
|
+
permissions:
|
|
111
|
+
id-token: write
|
|
112
|
+
steps:
|
|
113
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
114
|
+
with:
|
|
115
|
+
name: dist
|
|
116
|
+
path: dist/
|
|
117
|
+
- uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
118
|
+
with:
|
|
119
|
+
repository-url: https://test.pypi.org/legacy/
|
|
120
|
+
# TestPyPI rejects re-uploads, so re-running a release whose PyPI step failed would fail here.
|
|
121
|
+
skip-existing: true
|
|
122
|
+
# - uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
123
|
+
# with:
|
|
124
|
+
# enable-cache: false
|
|
125
|
+
# python-version: "3.14"
|
|
126
|
+
# - name: Install from TestPyPI
|
|
127
|
+
# env:
|
|
128
|
+
# VERSION: ${{ needs.check-version.outputs.version }}
|
|
129
|
+
# # Only TestPyPI is used as the index, which works because the package has no
|
|
130
|
+
# # required dependencies. New uploads can take a minute to appear, so retry.
|
|
131
|
+
# run: |
|
|
132
|
+
# for i in 1 2 3; do
|
|
133
|
+
# uv run --no-project --refresh \
|
|
134
|
+
# --index https://test.pypi.org/simple/ \
|
|
135
|
+
# --index-strategy unsafe-best-match \
|
|
136
|
+
# --with "geenii==${VERSION}" \
|
|
137
|
+
# python -c "import geenii; print(geenii.__version__)" && exit 0
|
|
138
|
+
# echo "Not available yet, retrying..."; sleep 20
|
|
139
|
+
# done
|
|
140
|
+
# exit 1
|
|
141
|
+
|
|
142
|
+
publish-pypi:
|
|
143
|
+
name: Publish to PyPI
|
|
144
|
+
needs: [check-version, publish-testpypi]
|
|
145
|
+
runs-on: ubuntu-latest
|
|
146
|
+
environment:
|
|
147
|
+
name: pypi
|
|
148
|
+
url: https://pypi.org/project/geenii/${{ needs.check-version.outputs.version }}/
|
|
149
|
+
permissions:
|
|
150
|
+
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
|
|
151
|
+
steps:
|
|
152
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
153
|
+
with:
|
|
154
|
+
name: dist
|
|
155
|
+
path: dist/
|
|
156
|
+
- uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
157
|
+
with:
|
|
158
|
+
skip-existing: true
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
name: Repo Scan
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
scan:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout code
|
|
15
|
+
uses: actions/checkout@v7
|
|
16
|
+
|
|
17
|
+
- name: Run Repo Scan
|
|
18
|
+
id: repo-scan
|
|
19
|
+
uses: fm-labs/action-repo-scan@v1.0.3
|
|
20
|
+
with:
|
|
21
|
+
path: '.' # Optional: defaults to '.'
|
|
22
|
+
continue-on-error: true # so the upload still runs if the scan exits non-zero
|
|
23
|
+
|
|
24
|
+
- name: Upload scan result
|
|
25
|
+
if: always()
|
|
26
|
+
uses: actions/upload-artifact@v7
|
|
27
|
+
with:
|
|
28
|
+
name: repo-scan-result
|
|
29
|
+
path: ${{ steps.scan.outputs.scan-file || '.repo-scan/scan-result.json' }}
|
|
30
|
+
if-no-files-found: warn
|
|
31
|
+
archive: 'false'
|
|
32
|
+
|
|
33
|
+
- name: Check scan status
|
|
34
|
+
run: |
|
|
35
|
+
if [ "${{ steps.repo-scan.outputs.exit-code }}" != "0" ]; then
|
|
36
|
+
echo "Repo scan failed!"
|
|
37
|
+
exit 1
|
|
38
|
+
else
|
|
39
|
+
echo "Repo scan passed successfully!"
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
# - name: Display scan results
|
|
43
|
+
# run: |
|
|
44
|
+
# echo "Repo scan completed with exit code: ${{ steps.repo-scan.outputs.exit-code }}"
|
|
45
|
+
# echo "Scan output:"
|
|
46
|
+
# echo "${{ steps.repo-scan.outputs.scan-output }}" || echo "No scan output"
|
|
47
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.14
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# geenii Developer Guide
|
|
2
|
+
|
|
3
|
+
The geenii has a web service daemon that provides an API for managing agents, tools and skills.
|
|
4
|
+
It is one of the core component of the OpenGeenii platform, responsible for executing AI agents and handling interactions.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Full developer docs: [docs/index.md](docs/index.md#developer-guide). The server's API is described in
|
|
8
|
+
[docs/developer-guide/server.md](docs/developer-guide/server.md), the web UI in
|
|
9
|
+
[docs/developer-guide/web-ui.md](docs/developer-guide/web-ui.md).
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## Webserver
|
|
13
|
+
|
|
14
|
+
### Run geenii web server
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
uvicorn --app-dir ./src geenii.server.server:app --port 33311
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Run geenii web server in dev mode
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
uvicorn --app-dir ./src geenii.server.server:app --port 33311 --reload
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## Docker
|
|
28
|
+
|
|
29
|
+
### Build the image
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
docker build -f ./Dockerfile -t geenii:latest --progress plain .
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
or using the helper script
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
./build_image.sh
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Run the container
|
|
42
|
+
|
|
43
|
+
Example:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
docker run --rm -it \
|
|
47
|
+
--env-file=.env.docker \
|
|
48
|
+
-e OLLAMA_HOST=host.docker.internal:11434 \
|
|
49
|
+
--add-host=host.docker.internal:host-gateway \
|
|
50
|
+
geenii:latest \
|
|
51
|
+
$@
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
or using the helper script:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
./run.sh
|
|
58
|
+
```
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
FROM python:3.14-alpine AS builder
|
|
2
|
+
WORKDIR /builder
|
|
3
|
+
|
|
4
|
+
# Install build dependencies for pyinstaller
|
|
5
|
+
RUN apk add --no-cache \
|
|
6
|
+
bash \
|
|
7
|
+
build-base \
|
|
8
|
+
python3-dev \
|
|
9
|
+
libffi-dev zlib-dev curl ccache zstd-dev
|
|
10
|
+
# Install uv
|
|
11
|
+
COPY --from=docker.io/astral/uv:latest /uv /uvx /bin/
|
|
12
|
+
#COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
13
|
+
#RUN pip install uv
|
|
14
|
+
# Install python dependencies
|
|
15
|
+
COPY ./pyproject.toml ./uv.lock /builder/
|
|
16
|
+
RUN uv sync --no-cache-dir --frozen --no-install-project
|
|
17
|
+
|
|
18
|
+
COPY ./src/geenii /builder/src/geenii
|
|
19
|
+
COPY ./README.md /builder/
|
|
20
|
+
|
|
21
|
+
# build using pyinstaller
|
|
22
|
+
COPY ./hooks /builder/hooks
|
|
23
|
+
#COPY ./build_bin.sh /builder/build.sh
|
|
24
|
+
COPY ./build_od.sh /builder/build.sh
|
|
25
|
+
RUN mkdir -p ./build && mkdir -p ./dist && \
|
|
26
|
+
chmod +x /builder/build.sh && \
|
|
27
|
+
bash /builder/build.sh
|
|
28
|
+
|
|
29
|
+
#RUN mkdir -p ./build && mkdir -p ./dist && \
|
|
30
|
+
# uv run pyinstaller --clean --onedir --distpath ./dist --workpath ./build --specpath ./build \
|
|
31
|
+
# --copy-metadata fastmcp \
|
|
32
|
+
# --additional-hooks-dir=hooks \
|
|
33
|
+
# --name geenii \
|
|
34
|
+
# ./src/geenii/cli/main.py || exit 1
|
|
35
|
+
|
|
36
|
+
## build using nuitka
|
|
37
|
+
#RUN uv run pip install "patchelf==0.17.2.1" zstandard ordered-set
|
|
38
|
+
#RUN uv run python -m nuitka \
|
|
39
|
+
# --include-package=geenii \
|
|
40
|
+
# --include-package=mcp \
|
|
41
|
+
# --include-package=fastmcp \
|
|
42
|
+
# --include-distribution-metadata=fastmcp \
|
|
43
|
+
# --standalone \
|
|
44
|
+
# --onefile \
|
|
45
|
+
# --output-filename=geenii \
|
|
46
|
+
# --output-dir=dist \
|
|
47
|
+
# ./src/geenii/cli/main.py
|
|
48
|
+
|
|
49
|
+
FROM python:3.14-alpine
|
|
50
|
+
|
|
51
|
+
# Install system dependencies
|
|
52
|
+
RUN apk add --no-cache \
|
|
53
|
+
bash \
|
|
54
|
+
curl \
|
|
55
|
+
git \
|
|
56
|
+
nodejs \
|
|
57
|
+
npm \
|
|
58
|
+
docker-cli \
|
|
59
|
+
openssl \
|
|
60
|
+
openssh-client \
|
|
61
|
+
&& rm -rf /var/cache/apk/* \
|
|
62
|
+
&& npm i -g pnpm
|
|
63
|
+
|
|
64
|
+
# Create non-root user and group, set permissions for geenii and home directory
|
|
65
|
+
RUN addgroup --gid 33311 -S geenii && adduser --uid 33311 -S geenii -G geenii && \
|
|
66
|
+
mkdir -p /geenii && \
|
|
67
|
+
chown -R geenii:geenii /geenii && \
|
|
68
|
+
mkdir -p /home/geenii && \
|
|
69
|
+
chown -R geenii:geenii /home/geenii
|
|
70
|
+
|
|
71
|
+
# Binaries
|
|
72
|
+
#COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
73
|
+
COPY --from=docker.io/astral/uv:latest /uv /uvx /bin/
|
|
74
|
+
#COPY --from=builder /builder/dist/geenii /usr/bin/geenii
|
|
75
|
+
COPY --from=builder /builder/dist/geenii /opt/geenii/bin/
|
|
76
|
+
RUN chmod +x /opt/geenii/bin/geenii && ln -sf /opt/geenii/bin/geenii /usr/bin/geenii
|
|
77
|
+
|
|
78
|
+
#COPY ./container/entrypoint.sh /usr/bin/entrypoint
|
|
79
|
+
#RUN chmod +x /usr/bin/entrypoint
|
|
80
|
+
#ENTRYPOINT ["/usr/bin/entrypoint"]
|
|
81
|
+
|
|
82
|
+
WORKDIR /workspace
|
|
83
|
+
USER geenii
|
|
84
|
+
CMD ["geenii", "--help"]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 fm-labs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|