kimix 0.1.0__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.
- kimix-0.1.0/.agents/skills/api/SKILL.md +393 -0
- kimix-0.1.0/.agents/skills/tool/SKILL.md +281 -0
- kimix-0.1.0/.gitignore +11 -0
- kimix-0.1.0/.gitmodules +6 -0
- kimix-0.1.0/.pre-commit-config.yaml +7 -0
- kimix-0.1.0/AGENTS.md +8 -0
- kimix-0.1.0/ChangeLog.md +15 -0
- kimix-0.1.0/PKG-INFO +141 -0
- kimix-0.1.0/README.md +92 -0
- kimix-0.1.0/docs/config.json +52 -0
- kimix-0.1.0/docs/tutorials/1_quick_start.md +219 -0
- kimix-0.1.0/docs/tutorials/2_manager.md +423 -0
- kimix-0.1.0/docs/tutorials/3_builtin_tools.md +293 -0
- kimix-0.1.0/docs/tutorials/4_skills.md +329 -0
- kimix-0.1.0/docs/tutorials/5_server.md +112 -0
- kimix-0.1.0/kimi-agent-sdk/.git +1 -0
- kimix-0.1.0/kimi-agent-sdk/.github/workflows/go.yml +80 -0
- kimix-0.1.0/kimi-agent-sdk/.github/workflows/kimi-review.yml +70 -0
- kimix-0.1.0/kimi-agent-sdk/.github/workflows/node.yml +88 -0
- kimix-0.1.0/kimi-agent-sdk/.github/workflows/python-release.yml +58 -0
- kimix-0.1.0/kimi-agent-sdk/.github/workflows/python.yml +51 -0
- kimix-0.1.0/kimi-agent-sdk/.github/workflows/vscode.yml +111 -0
- kimix-0.1.0/kimi-agent-sdk/.vscode/launch.json +33 -0
- kimix-0.1.0/kimi-agent-sdk/.vscode/tasks.json +38 -0
- kimix-0.1.0/kimi-agent-sdk/LICENSE +202 -0
- kimix-0.1.0/kimi-agent-sdk/NOTICE +5 -0
- kimix-0.1.0/kimi-agent-sdk/README.md +58 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/anime-recognizer/README.md +93 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/anime-recognizer/go.mod +17 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/anime-recognizer/go.sum +10 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/anime-recognizer/main.go +352 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/anime-recognizer/prompts/recognize-anime.md +49 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/contributor-hunter/README.md +93 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/contributor-hunter/go.mod +14 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/contributor-hunter/go.sum +8 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/contributor-hunter/main.go +83 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/contributor-hunter/prompts/analyze-contributor.md +65 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/ralph-loop/README.md +116 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/ralph-loop/go.mod +14 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/ralph-loop/go.sum +8 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/ralph-loop/main.go +120 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/ralph-loop/prompts/lint-fix.md +21 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/ralph-loop/prompts/test-coverage.md +22 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/rumor-buster/README.md +156 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/rumor-buster/go.mod +14 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/rumor-buster/go.sum +8 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/rumor-buster/main.go +221 -0
- kimix-0.1.0/kimi-agent-sdk/examples/go/rumor-buster/prompts/verify-claims.md +32 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/customized-tools/README.md +21 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/customized-tools/main.py +19 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/customized-tools/my_tools/__init__.py +0 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/customized-tools/my_tools/ls.py +29 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/customized-tools/myagent.yaml +15 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/customized-tools/pyproject.toml +10 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/message-logger/README.md +25 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/message-logger/main.py +67 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/message-logger/pyproject.toml +10 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/message-logger/utils.py +69 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/project-tracker/README.md +19 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/project-tracker/main.py +84 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/project-tracker/pyproject.toml +10 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/quick-start/README.md +21 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/quick-start/main.py +18 -0
- kimix-0.1.0/kimi-agent-sdk/examples/python/quick-start/pyproject.toml +10 -0
- kimix-0.1.0/kimi-agent-sdk/go/.gitignore +1 -0
- kimix-0.1.0/kimi-agent-sdk/go/.golangci.yml +20 -0
- kimix-0.1.0/kimi-agent-sdk/go/README.md +166 -0
- kimix-0.1.0/kimi-agent-sdk/go/config.go +75 -0
- kimix-0.1.0/kimi-agent-sdk/go/config_test.go +217 -0
- kimix-0.1.0/kimi-agent-sdk/go/go.mod +24 -0
- kimix-0.1.0/kimi-agent-sdk/go/go.sum +35 -0
- kimix-0.1.0/kimi-agent-sdk/go/option.go +112 -0
- kimix-0.1.0/kimi-agent-sdk/go/option_test.go +257 -0
- kimix-0.1.0/kimi-agent-sdk/go/prompt.go +43 -0
- kimix-0.1.0/kimi-agent-sdk/go/session.go +479 -0
- kimix-0.1.0/kimi-agent-sdk/go/session_test.go +202 -0
- kimix-0.1.0/kimi-agent-sdk/go/test/e2e/session_test.go +185 -0
- kimix-0.1.0/kimi-agent-sdk/go/test/integration/session_test.go +569 -0
- kimix-0.1.0/kimi-agent-sdk/go/test/integration/testdata/mock_kimi.go +357 -0
- kimix-0.1.0/kimi-agent-sdk/go/tool.go +277 -0
- kimix-0.1.0/kimi-agent-sdk/go/tool_test.go +760 -0
- kimix-0.1.0/kimi-agent-sdk/go/turn.go +202 -0
- kimix-0.1.0/kimi-agent-sdk/go/turn_test.go +469 -0
- kimix-0.1.0/kimi-agent-sdk/go/wire/jsonrpc2/README.md +165 -0
- kimix-0.1.0/kimi-agent-sdk/go/wire/jsonrpc2/codec.go +753 -0
- kimix-0.1.0/kimi-agent-sdk/go/wire/jsonrpc2/codec_test.go +1359 -0
- kimix-0.1.0/kimi-agent-sdk/go/wire/jsonrpc2/error.go +52 -0
- kimix-0.1.0/kimi-agent-sdk/go/wire/message.go +562 -0
- kimix-0.1.0/kimi-agent-sdk/go/wire/message_test.go +333 -0
- kimix-0.1.0/kimi-agent-sdk/go/wire/transport/transport.go +15 -0
- kimix-0.1.0/kimi-agent-sdk/go/wire/transport/transport_impl.go +137 -0
- kimix-0.1.0/kimi-agent-sdk/go/wire/transport/transport_mock.go +116 -0
- kimix-0.1.0/kimi-agent-sdk/go/wire/transport/transport_test.go +212 -0
- kimix-0.1.0/kimi-agent-sdk/guides/go/approval-requests.md +243 -0
- kimix-0.1.0/kimi-agent-sdk/guides/go/configuration.md +330 -0
- kimix-0.1.0/kimi-agent-sdk/guides/go/costs-and-usage.md +208 -0
- kimix-0.1.0/kimi-agent-sdk/guides/go/external-tools.md +349 -0
- kimix-0.1.0/kimi-agent-sdk/guides/go/quickstart.md +192 -0
- kimix-0.1.0/kimi-agent-sdk/guides/go/thinking.md +150 -0
- kimix-0.1.0/kimi-agent-sdk/guides/go/turn-cancellation.md +248 -0
- kimix-0.1.0/kimi-agent-sdk/guides/python/customized-tools.md +112 -0
- kimix-0.1.0/kimi-agent-sdk/guides/python/examples.md +12 -0
- kimix-0.1.0/kimi-agent-sdk/guides/python/prompt.md +249 -0
- kimix-0.1.0/kimi-agent-sdk/guides/python/quickstart.md +169 -0
- kimix-0.1.0/kimi-agent-sdk/guides/python/session.md +343 -0
- kimix-0.1.0/kimi-agent-sdk/node/.editorconfig +13 -0
- kimix-0.1.0/kimi-agent-sdk/node/.gitignore +7 -0
- kimix-0.1.0/kimi-agent-sdk/node/.prettierignore +6 -0
- kimix-0.1.0/kimi-agent-sdk/node/.prettierrc +7 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/.npmignore +26 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/LICENSE +202 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/README.md +571 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/cli/commands.ts +129 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/config.ts +237 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/errors.ts +153 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/external-tool.ts +34 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/history/context-extract.ts +68 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/index.ts +155 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/logger.ts +44 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/package.json +80 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/paths.ts +38 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/protocol.ts +631 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/schema.ts +839 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/session.ts +396 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/storage.ts +448 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/tests/config.test.ts +289 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/tests/errors.test.ts +227 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/tests/protocol.test.ts +648 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/tests/schema.test.ts +736 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/tests/session.test.ts +1406 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/tests/storage.test.ts +201 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/tests/utils.test.ts +276 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/tsconfig.json +27 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/tsup.config.ts +39 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/utils.ts +48 -0
- kimix-0.1.0/kimi-agent-sdk/node/agent_sdk/vitest.config.ts +15 -0
- kimix-0.1.0/kimi-agent-sdk/node/eslint.config.mjs +35 -0
- kimix-0.1.0/kimi-agent-sdk/node/package.json +23 -0
- kimix-0.1.0/kimi-agent-sdk/node/pnpm-lock.yaml +10711 -0
- kimix-0.1.0/kimi-agent-sdk/node/pnpm-workspace.yaml +4 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/.vscode-test.mjs +5 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/.vscodeignore +29 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/LICENSE +202 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/README.md +29 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/bin/uv-wrapper/kimi +7 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/bin/uv-wrapper/kimi.bat +7 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/dev.js +38 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/esbuild.js +95 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/package.json +272 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/resources/kimi-icon-storefront.png +0 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/resources/kimi-icon.svg +33 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/scripts/download-cli.js +106 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/scripts/ovsx-publish.js +43 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/scripts/vsix-package.js +42 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/scripts/vsix-publish.js +43 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/shared/bridge.ts +80 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/shared/errors.ts +59 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/shared/package.json +13 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/shared/types.ts +86 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/shared/utils.ts +3 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/KimiWebviewProvider.ts +140 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/bridge-handler.ts +201 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/config/vscode-settings.ts +74 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/extension.ts +149 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/handlers/auth.handler.ts +41 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/handlers/chat.handler.ts +330 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/handlers/cli.handler.ts +17 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/handlers/config.handler.ts +46 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/handlers/file.handler.ts +377 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/handlers/index.ts +22 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/handlers/mcp.handler.ts +50 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/handlers/session.handler.ts +149 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/handlers/types.ts +32 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/handlers/workspace.handler.ts +60 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/managers/baseline.manager.ts +191 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/managers/cli-downloader.ts +224 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/managers/cli.manager.ts +181 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/managers/file.manager.ts +163 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/managers/index.ts +18 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/managers/mcp.manager.ts +180 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/repositories/index.ts +0 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/utils/context.ts +7 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/src/utils/string.ts +17 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/tsconfig.json +22 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/components.json +24 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/index.html +12 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/package-lock.json +7996 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/package.json +54 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/public/kimi-banner-dark.svg +6 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/public/kimi-banner-light.svg +6 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/public/kimi-logo.png +0 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/App.tsx +133 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ActionMenu.tsx +136 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ApprovalDialog.tsx +80 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/BottomToolbar.tsx +96 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ChatArea.tsx +73 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ChatMessage.tsx +343 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ChatStatus.tsx +102 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/CompactionCard.tsx +23 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ConfigErrorScreen.tsx +241 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/CopyButton.tsx +43 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/DisplayBlocks.tsx +227 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/FileChangesPanel.tsx +158 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/FilePickerMenu.tsx +173 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/Header.tsx +99 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/InlineError.tsx +36 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/KimiLogo.tsx +11 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/KimiMascot.tsx +29 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/LoginScreen.tsx +169 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/MCPServersModal.tsx +463 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/Markdown.tsx +270 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/MediaPreviewModal.tsx +94 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/MediaThumbnail.tsx +64 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/PlanCard.tsx +30 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/PlanModeButton.tsx +32 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/QuestionDialog.tsx +101 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/QueuedMessagesPanel.tsx +99 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/SessionList.tsx +220 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/SlashCommandMenu.tsx +74 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/StreamingConfirmDialog.tsx +59 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ThinkingBlock.tsx +65 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ThinkingButton.tsx +45 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ToolRenderers.tsx +447 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/WelcomeScreen.tsx +20 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/WorkDirModal.tsx +111 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/hooks/useExtensionImageUrl.ts +14 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/index.ts +26 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/inputarea/InputArea.tsx +437 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/inputarea/hooks/useClickOutside.ts +20 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/inputarea/hooks/useFilePicker.tsx +214 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/inputarea/hooks/useInputHistory.ts +64 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/inputarea/hooks/useMediaUpload.ts +160 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/inputarea/hooks/useSlashMenu.ts +113 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/inputarea/utils.ts +28 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/accordion.tsx +49 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/alert-dialog.tsx +153 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/badge.tsx +33 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/button.tsx +54 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/card.tsx +52 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/checkbox.tsx +24 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/combobox.tsx +216 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/command.tsx +109 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/context-menu.tsx +201 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/dialog.tsx +110 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/dropdown-menu.tsx +196 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/field.tsx +153 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/input-group.tsx +114 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/input.tsx +19 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/label.tsx +21 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/popover.tsx +47 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/scroll-area.tsx +40 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/select.tsx +129 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/separator.tsx +21 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/sonner.tsx +23 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/switch.tsx +38 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/tabs.tsx +54 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/textarea.tsx +18 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/components/ui/tooltip.tsx +41 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/hooks/useAppInit.ts +118 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/hooks/useWelcomeHint.tsx +131 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/lib/content.ts +59 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/lib/media-utils.ts +186 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/lib/text-enrichment.ts +148 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/lib/utils.ts +6 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/main.tsx +26 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/services/bridge.ts +297 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/services/config.ts +26 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/services/index.ts +3 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/services/recommended-mcp.ts +46 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/stores/approval.store.ts +41 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/stores/chat.store.ts +464 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/stores/event-handlers.ts +558 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/stores/index.ts +9 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/stores/settings.store.ts +207 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/src/styles/index.css +200 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/tsconfig.json +28 -0
- kimix-0.1.0/kimi-agent-sdk/node/vscode_extension/webview-ui/vite.config.ts +36 -0
- kimix-0.1.0/kimi-agent-sdk/python/.gitignore +18 -0
- kimix-0.1.0/kimi-agent-sdk/python/CHANGELOG.md +25 -0
- kimix-0.1.0/kimi-agent-sdk/python/Makefile +25 -0
- kimix-0.1.0/kimi-agent-sdk/python/README.md +5 -0
- kimix-0.1.0/kimi-agent-sdk/python/pyproject.toml +80 -0
- kimix-0.1.0/kimi-agent-sdk/python/tests/test_aggregator.py +49 -0
- kimix-0.1.0/kimi-agent-sdk/python/tests/test_customized_tools.py +137 -0
- kimix-0.1.0/kimi-agent-sdk/python/tests/test_exceptions.py +121 -0
- kimix-0.1.0/kimi-agent-sdk/python/tests/test_paths.py +55 -0
- kimix-0.1.0/kimi-agent-sdk/scripts/check_version_tag.py +51 -0
- kimix-0.1.0/kimi-cli/.agents/skills/codex-worker/SKILL.md +167 -0
- kimix-0.1.0/kimi-cli/.agents/skills/feature-smoke-test/SKILL.md +185 -0
- kimix-0.1.0/kimi-cli/.agents/skills/feature-smoke-test/references/prompt-patterns.md +85 -0
- kimix-0.1.0/kimi-cli/.agents/skills/feature-smoke-test/scripts/inspect_session.py +324 -0
- kimix-0.1.0/kimi-cli/.agents/skills/gen-changelog/SKILL.md +20 -0
- kimix-0.1.0/kimi-cli/.agents/skills/gen-docs/SKILL.md +10 -0
- kimix-0.1.0/kimi-cli/.agents/skills/gen-rust/SKILL.md +92 -0
- kimix-0.1.0/kimi-cli/.agents/skills/pull-request/SKILL.md +14 -0
- kimix-0.1.0/kimi-cli/.agents/skills/release/SKILL.md +64 -0
- kimix-0.1.0/kimi-cli/.agents/skills/translate-docs/SKILL.md +19 -0
- kimix-0.1.0/kimi-cli/.agents/skills/worktree-status/SKILL.md +136 -0
- kimix-0.1.0/kimi-cli/.github/ISSUE_TEMPLATE/1-bug-report.yml +67 -0
- kimix-0.1.0/kimi-cli/.github/ISSUE_TEMPLATE/2-feature-request.yml +25 -0
- kimix-0.1.0/kimi-cli/.github/ISSUE_TEMPLATE/config.yml +5 -0
- kimix-0.1.0/kimi-cli/.github/actions/macos-code-sign/action.yml +163 -0
- kimix-0.1.0/kimi-cli/.github/dependabot.yml +11 -0
- kimix-0.1.0/kimi-cli/.github/pr-title-checker-config.json +12 -0
- kimix-0.1.0/kimi-cli/.github/pull_request_template.md +25 -0
- kimix-0.1.0/kimi-cli/.github/workflows/ci-docs.yml +45 -0
- kimix-0.1.0/kimi-cli/.github/workflows/ci-kimi-cli.yml +282 -0
- kimix-0.1.0/kimi-cli/.github/workflows/ci-kimi-sdk.yml +93 -0
- kimix-0.1.0/kimi-cli/.github/workflows/ci-kosong.yml +93 -0
- kimix-0.1.0/kimi-cli/.github/workflows/ci-pykaos.yml +103 -0
- kimix-0.1.0/kimi-cli/.github/workflows/docs-pages.yml +75 -0
- kimix-0.1.0/kimi-cli/.github/workflows/pr-title-checker.yml +15 -0
- kimix-0.1.0/kimi-cli/.github/workflows/release-kimi-cli.yml +508 -0
- kimix-0.1.0/kimi-cli/.github/workflows/release-kimi-sdk.yml +57 -0
- kimix-0.1.0/kimi-cli/.github/workflows/release-kosong.yml +114 -0
- kimix-0.1.0/kimi-cli/.github/workflows/release-pykaos.yml +57 -0
- kimix-0.1.0/kimi-cli/.github/workflows/translator.yml +29 -0
- kimix-0.1.0/kimi-cli/.github/workflows/typos.yml +13 -0
- kimix-0.1.0/kimi-cli/.gitignore +47 -0
- kimix-0.1.0/kimi-cli/.pre-commit-config.yaml +16 -0
- kimix-0.1.0/kimi-cli/.python-version +1 -0
- kimix-0.1.0/kimi-cli/AGENTS.md +145 -0
- kimix-0.1.0/kimi-cli/CHANGELOG.md +1205 -0
- kimix-0.1.0/kimi-cli/CONTRIBUTING.md +27 -0
- kimix-0.1.0/kimi-cli/LICENSE +202 -0
- kimix-0.1.0/kimi-cli/Makefile +160 -0
- kimix-0.1.0/kimi-cli/NOTICE +14 -0
- kimix-0.1.0/kimi-cli/README.md +174 -0
- kimix-0.1.0/kimi-cli/SECURITY.md +9 -0
- kimix-0.1.0/kimi-cli/docs/.gitignore +3 -0
- kimix-0.1.0/kimi-cli/docs/.pre-commit-config.yaml +4 -0
- kimix-0.1.0/kimi-cli/docs/.vitepress/config.ts +197 -0
- kimix-0.1.0/kimi-cli/docs/.vitepress/theme/index.ts +4 -0
- kimix-0.1.0/kimi-cli/docs/.vitepress/theme/style.css +13 -0
- kimix-0.1.0/kimi-cli/docs/AGENTS.md +190 -0
- kimix-0.1.0/kimi-cli/docs/bun.lock +790 -0
- kimix-0.1.0/kimi-cli/docs/en/configuration/config-files.md +236 -0
- kimix-0.1.0/kimi-cli/docs/en/configuration/data-locations.md +157 -0
- kimix-0.1.0/kimi-cli/docs/en/configuration/env-vars.md +174 -0
- kimix-0.1.0/kimi-cli/docs/en/configuration/overrides.md +92 -0
- kimix-0.1.0/kimi-cli/docs/en/configuration/providers.md +153 -0
- kimix-0.1.0/kimi-cli/docs/en/customization/agents.md +397 -0
- kimix-0.1.0/kimi-cli/docs/en/customization/hooks.md +218 -0
- kimix-0.1.0/kimi-cli/docs/en/customization/mcp.md +133 -0
- kimix-0.1.0/kimi-cli/docs/en/customization/plugins.md +311 -0
- kimix-0.1.0/kimi-cli/docs/en/customization/print-mode.md +183 -0
- kimix-0.1.0/kimi-cli/docs/en/customization/skills.md +297 -0
- kimix-0.1.0/kimi-cli/docs/en/customization/wire-mode.md +1189 -0
- kimix-0.1.0/kimi-cli/docs/en/faq.md +158 -0
- kimix-0.1.0/kimi-cli/docs/en/guides/getting-started.md +100 -0
- kimix-0.1.0/kimi-cli/docs/en/guides/ides.md +57 -0
- kimix-0.1.0/kimi-cli/docs/en/guides/integrations.md +36 -0
- kimix-0.1.0/kimi-cli/docs/en/guides/interaction.md +200 -0
- kimix-0.1.0/kimi-cli/docs/en/guides/sessions.md +145 -0
- kimix-0.1.0/kimi-cli/docs/en/guides/use-cases.md +112 -0
- kimix-0.1.0/kimi-cli/docs/en/index.md +14 -0
- kimix-0.1.0/kimi-cli/docs/en/reference/keyboard.md +163 -0
- kimix-0.1.0/kimi-cli/docs/en/reference/kimi-acp.md +25 -0
- kimix-0.1.0/kimi-cli/docs/en/reference/kimi-command.md +261 -0
- kimix-0.1.0/kimi-cli/docs/en/reference/kimi-info.md +41 -0
- kimix-0.1.0/kimi-cli/docs/en/reference/kimi-mcp.md +113 -0
- kimix-0.1.0/kimi-cli/docs/en/reference/kimi-term.md +41 -0
- kimix-0.1.0/kimi-cli/docs/en/reference/kimi-vis.md +79 -0
- kimix-0.1.0/kimi-cli/docs/en/reference/kimi-web.md +369 -0
- kimix-0.1.0/kimi-cli/docs/en/reference/slash-commands.md +325 -0
- kimix-0.1.0/kimi-cli/docs/en/release-notes/breaking-changes.md +191 -0
- kimix-0.1.0/kimi-cli/docs/en/release-notes/changelog.md +1066 -0
- kimix-0.1.0/kimi-cli/docs/index.md +28 -0
- kimix-0.1.0/kimi-cli/docs/media/acp-integration.gif +0 -0
- kimix-0.1.0/kimi-cli/docs/media/setup.jpg +0 -0
- kimix-0.1.0/kimi-cli/docs/media/shell-mode.gif +0 -0
- kimix-0.1.0/kimi-cli/docs/media/vscode.png +0 -0
- kimix-0.1.0/kimi-cli/docs/package.json +19 -0
- kimix-0.1.0/kimi-cli/docs/scripts/sync-changelog.mjs +49 -0
- kimix-0.1.0/kimi-cli/docs/zh/configuration/config-files.md +236 -0
- kimix-0.1.0/kimi-cli/docs/zh/configuration/data-locations.md +158 -0
- kimix-0.1.0/kimi-cli/docs/zh/configuration/env-vars.md +175 -0
- kimix-0.1.0/kimi-cli/docs/zh/configuration/overrides.md +93 -0
- kimix-0.1.0/kimi-cli/docs/zh/configuration/providers.md +154 -0
- kimix-0.1.0/kimi-cli/docs/zh/customization/agents.md +397 -0
- kimix-0.1.0/kimi-cli/docs/zh/customization/hooks.md +218 -0
- kimix-0.1.0/kimi-cli/docs/zh/customization/mcp.md +133 -0
- kimix-0.1.0/kimi-cli/docs/zh/customization/plugins.md +311 -0
- kimix-0.1.0/kimi-cli/docs/zh/customization/print-mode.md +183 -0
- kimix-0.1.0/kimi-cli/docs/zh/customization/skills.md +297 -0
- kimix-0.1.0/kimi-cli/docs/zh/customization/wire-mode.md +1189 -0
- kimix-0.1.0/kimi-cli/docs/zh/faq.md +158 -0
- kimix-0.1.0/kimi-cli/docs/zh/guides/getting-started.md +100 -0
- kimix-0.1.0/kimi-cli/docs/zh/guides/ides.md +57 -0
- kimix-0.1.0/kimi-cli/docs/zh/guides/integrations.md +36 -0
- kimix-0.1.0/kimi-cli/docs/zh/guides/interaction.md +201 -0
- kimix-0.1.0/kimi-cli/docs/zh/guides/sessions.md +145 -0
- kimix-0.1.0/kimi-cli/docs/zh/guides/use-cases.md +113 -0
- kimix-0.1.0/kimi-cli/docs/zh/index.md +14 -0
- kimix-0.1.0/kimi-cli/docs/zh/reference/keyboard.md +163 -0
- kimix-0.1.0/kimi-cli/docs/zh/reference/kimi-acp.md +25 -0
- kimix-0.1.0/kimi-cli/docs/zh/reference/kimi-command.md +261 -0
- kimix-0.1.0/kimi-cli/docs/zh/reference/kimi-info.md +41 -0
- kimix-0.1.0/kimi-cli/docs/zh/reference/kimi-mcp.md +113 -0
- kimix-0.1.0/kimi-cli/docs/zh/reference/kimi-term.md +41 -0
- kimix-0.1.0/kimi-cli/docs/zh/reference/kimi-vis.md +79 -0
- kimix-0.1.0/kimi-cli/docs/zh/reference/kimi-web.md +369 -0
- kimix-0.1.0/kimi-cli/docs/zh/reference/slash-commands.md +325 -0
- kimix-0.1.0/kimi-cli/docs/zh/release-notes/breaking-changes.md +191 -0
- kimix-0.1.0/kimi-cli/docs/zh/release-notes/changelog.md +1066 -0
- kimix-0.1.0/kimi-cli/examples/.gitignore +1 -0
- kimix-0.1.0/kimi-cli/examples/custom-echo-soul/README.md +9 -0
- kimix-0.1.0/kimi-cli/examples/custom-echo-soul/main.py +55 -0
- kimix-0.1.0/kimi-cli/examples/custom-echo-soul/pyproject.toml +10 -0
- kimix-0.1.0/kimi-cli/examples/custom-kimi-soul/README.md +9 -0
- kimix-0.1.0/kimi-cli/examples/custom-kimi-soul/main.py +114 -0
- kimix-0.1.0/kimi-cli/examples/custom-kimi-soul/pyproject.toml +10 -0
- kimix-0.1.0/kimi-cli/examples/custom-tools/README.md +9 -0
- kimix-0.1.0/kimi-cli/examples/custom-tools/main.py +23 -0
- kimix-0.1.0/kimi-cli/examples/custom-tools/my_tools/__init__.py +0 -0
- kimix-0.1.0/kimi-cli/examples/custom-tools/my_tools/ls.py +26 -0
- kimix-0.1.0/kimi-cli/examples/custom-tools/myagent.yaml +15 -0
- kimix-0.1.0/kimi-cli/examples/custom-tools/pyproject.toml +10 -0
- kimix-0.1.0/kimi-cli/examples/kimi-cli-stream-json/README.md +8 -0
- kimix-0.1.0/kimi-cli/examples/kimi-cli-stream-json/main.py +41 -0
- kimix-0.1.0/kimi-cli/examples/kimi-cli-stream-json/pyproject.toml +7 -0
- kimix-0.1.0/kimi-cli/examples/kimi-cli-wire-messages/README.md +9 -0
- kimix-0.1.0/kimi-cli/examples/kimi-cli-wire-messages/main.py +28 -0
- kimix-0.1.0/kimi-cli/examples/kimi-cli-wire-messages/pyproject.toml +13 -0
- kimix-0.1.0/kimi-cli/examples/kimi-psql/README.md +37 -0
- kimix-0.1.0/kimi-cli/examples/kimi-psql/agent.yaml +33 -0
- kimix-0.1.0/kimi-cli/examples/kimi-psql/main.py +631 -0
- kimix-0.1.0/kimi-cli/examples/kimi-psql/pyproject.toml +10 -0
- kimix-0.1.0/kimi-cli/examples/sample-plugin/SKILL.md +22 -0
- kimix-0.1.0/kimi-cli/examples/sample-plugin/plugin.json +42 -0
- kimix-0.1.0/kimi-cli/examples/sample-plugin/scripts/calc.ts +24 -0
- kimix-0.1.0/kimi-cli/examples/sample-plugin/scripts/greet.py +18 -0
- kimix-0.1.0/kimi-cli/flake.lock +115 -0
- kimix-0.1.0/kimi-cli/flake.nix +134 -0
- kimix-0.1.0/kimi-cli/kimi.spec +78 -0
- kimix-0.1.0/kimi-cli/klips/.pre-commit-config.yaml +4 -0
- kimix-0.1.0/kimi-cli/klips/klip-0-klip.md +48 -0
- kimix-0.1.0/kimi-cli/klips/klip-1-kimi-cli-monorepo.md +142 -0
- kimix-0.1.0/kimi-cli/klips/klip-10-agent-flow.md +319 -0
- kimix-0.1.0/kimi-cli/klips/klip-11-kimi-code-rename.md +67 -0
- kimix-0.1.0/kimi-cli/klips/klip-12-wire-initialize-external-tools.md +334 -0
- kimix-0.1.0/kimi-cli/klips/klip-14-kimi-code-oauth-login.md +205 -0
- kimix-0.1.0/kimi-cli/klips/klip-15-kagent-sidecar-integration.md +134 -0
- kimix-0.1.0/kimi-cli/klips/klip-2-acpkaos.md +129 -0
- kimix-0.1.0/kimi-cli/klips/klip-3-kimi-cli-user-docs.md +417 -0
- kimix-0.1.0/kimi-cli/klips/klip-6-setup-auto-refresh-models.md +123 -0
- kimix-0.1.0/kimi-cli/klips/klip-7-kimi-sdk.md +205 -0
- kimix-0.1.0/kimi-cli/klips/klip-8-config-and-skills-layout.md +49 -0
- kimix-0.1.0/kimi-cli/klips/klip-9-shell-ui-flicker-mitigation.md +294 -0
- kimix-0.1.0/kimi-cli/packages/kimi-code/README.md +1 -0
- kimix-0.1.0/kimi-cli/packages/kimi-code/pyproject.toml +17 -0
- kimix-0.1.0/kimi-cli/packages/kimi-code/src/kimi_code/__init__.py +7 -0
- kimix-0.1.0/kimi-cli/pyproject.toml +117 -0
- kimix-0.1.0/kimi-cli/pytest.ini +2 -0
- kimix-0.1.0/kimi-cli/scripts/build_vis.py +106 -0
- kimix-0.1.0/kimi-cli/scripts/build_web.py +124 -0
- kimix-0.1.0/kimi-cli/scripts/check_kimi_dependency_versions.py +96 -0
- kimix-0.1.0/kimi-cli/scripts/check_version_tag.py +66 -0
- kimix-0.1.0/kimi-cli/scripts/cleanup_tmp_sessions.py +145 -0
- kimix-0.1.0/kimi-cli/scripts/install.ps1 +19 -0
- kimix-0.1.0/kimi-cli/scripts/install.sh +31 -0
- kimix-0.1.0/kimi-cli/sdks/kimi-sdk/CHANGELOG.md +23 -0
- kimix-0.1.0/kimi-cli/sdks/kimi-sdk/LICENSE +202 -0
- kimix-0.1.0/kimi-cli/sdks/kimi-sdk/NOTICE +5 -0
- kimix-0.1.0/kimi-cli/sdks/kimi-sdk/README.md +187 -0
- kimix-0.1.0/kimi-cli/sdks/kimi-sdk/pyproject.toml +51 -0
- kimix-0.1.0/kimi-cli/sdks/kimi-sdk/src/kimi_sdk/__init__.py +158 -0
- kimix-0.1.0/kimi-cli/sdks/kimi-sdk/src/kimi_sdk/py.typed +0 -0
- kimix-0.1.0/kimi-cli/sdks/kimi-sdk/tests/test_smoke.py +51 -0
- kimix-0.1.0/kimi-cli/tests/__init__.py +0 -0
- kimix-0.1.0/kimi-cli/tests/acp/__init__.py +0 -0
- kimix-0.1.0/kimi-cli/tests/acp/conftest.py +180 -0
- kimix-0.1.0/kimi-cli/tests/acp/test_protocol_v1.py +164 -0
- kimix-0.1.0/kimi-cli/tests/acp/test_server_initialize.py +48 -0
- kimix-0.1.0/kimi-cli/tests/acp/test_session_notifications.py +54 -0
- kimix-0.1.0/kimi-cli/tests/acp/test_version.py +56 -0
- kimix-0.1.0/kimi-cli/tests/auth/test_ascii_header.py +42 -0
- kimix-0.1.0/kimi-cli/tests/auth/test_oauth_cross_process.py +167 -0
- kimix-0.1.0/kimi-cli/tests/auth/test_oauth_refresh.py +426 -0
- kimix-0.1.0/kimi-cli/tests/auth/test_platforms.py +205 -0
- kimix-0.1.0/kimi-cli/tests/auth/test_resolve_api_key.py +168 -0
- kimix-0.1.0/kimi-cli/tests/background/test_agent_timeout.py +155 -0
- kimix-0.1.0/kimi-cli/tests/background/test_ids.py +40 -0
- kimix-0.1.0/kimi-cli/tests/background/test_manager.py +1157 -0
- kimix-0.1.0/kimi-cli/tests/background/test_models.py +42 -0
- kimix-0.1.0/kimi-cli/tests/background/test_store.py +208 -0
- kimix-0.1.0/kimi-cli/tests/background/test_worker.py +130 -0
- kimix-0.1.0/kimi-cli/tests/conftest.py +339 -0
- kimix-0.1.0/kimi-cli/tests/core/test_agent_cutover.py +18 -0
- kimix-0.1.0/kimi-cli/tests/core/test_agent_flow.py +378 -0
- kimix-0.1.0/kimi-cli/tests/core/test_agent_spec.py +542 -0
- kimix-0.1.0/kimi-cli/tests/core/test_approval_runtime.py +233 -0
- kimix-0.1.0/kimi-cli/tests/core/test_ask_user_plan_mode.py +39 -0
- kimix-0.1.0/kimi-cli/tests/core/test_auth_error_handling.py +560 -0
- kimix-0.1.0/kimi-cli/tests/core/test_background_agent_kill.py +467 -0
- kimix-0.1.0/kimi-cli/tests/core/test_config.py +136 -0
- kimix-0.1.0/kimi-cli/tests/core/test_context.py +441 -0
- kimix-0.1.0/kimi-cli/tests/core/test_context_pending_tokens.py +428 -0
- kimix-0.1.0/kimi-cli/tests/core/test_create_llm.py +331 -0
- kimix-0.1.0/kimi-cli/tests/core/test_default_agent.py +370 -0
- kimix-0.1.0/kimi-cli/tests/core/test_exceptions.py +24 -0
- kimix-0.1.0/kimi-cli/tests/core/test_export_cli.py +180 -0
- kimix-0.1.0/kimi-cli/tests/core/test_inspect_plan_edit_target.py +67 -0
- kimix-0.1.0/kimi-cli/tests/core/test_kimisoul_background_wait.py +1463 -0
- kimix-0.1.0/kimi-cli/tests/core/test_kimisoul_ralph_loop.py +387 -0
- kimix-0.1.0/kimi-cli/tests/core/test_kimisoul_retry_recovery.py +301 -0
- kimix-0.1.0/kimi-cli/tests/core/test_kimisoul_slash_commands.py +50 -0
- kimix-0.1.0/kimi-cli/tests/core/test_kimisoul_steer.py +482 -0
- kimix-0.1.0/kimi-cli/tests/core/test_kimisoul_think_only.py +20 -0
- kimix-0.1.0/kimi-cli/tests/core/test_kimisoul_turn_balance.py +115 -0
- kimix-0.1.0/kimi-cli/tests/core/test_load_agent.py +298 -0
- kimix-0.1.0/kimi-cli/tests/core/test_load_agents_md.py +176 -0
- kimix-0.1.0/kimi-cli/tests/core/test_normalize_history.py +125 -0
- kimix-0.1.0/kimi-cli/tests/core/test_notifications.py +482 -0
- kimix-0.1.0/kimi-cli/tests/core/test_plan_flag.py +360 -0
- kimix-0.1.0/kimi-cli/tests/core/test_plan_mode.py +891 -0
- kimix-0.1.0/kimi-cli/tests/core/test_plan_mode_injection_provider.py +130 -0
- kimix-0.1.0/kimi-cli/tests/core/test_plan_mode_reminder.py +142 -0
- kimix-0.1.0/kimi-cli/tests/core/test_plan_slash.py +175 -0
- kimix-0.1.0/kimi-cli/tests/core/test_plugin.py +545 -0
- kimix-0.1.0/kimi-cli/tests/core/test_plugin_manager.py +282 -0
- kimix-0.1.0/kimi-cli/tests/core/test_plugin_tool.py +196 -0
- kimix-0.1.0/kimi-cli/tests/core/test_prepare_soul.py +146 -0
- kimix-0.1.0/kimi-cli/tests/core/test_print_background_integration.py +339 -0
- kimix-0.1.0/kimi-cli/tests/core/test_resume_protocol.py +70 -0
- kimix-0.1.0/kimi-cli/tests/core/test_runtime_roles.py +12 -0
- kimix-0.1.0/kimi-cli/tests/core/test_session.py +713 -0
- kimix-0.1.0/kimi-cli/tests/core/test_session_fork.py +423 -0
- kimix-0.1.0/kimi-cli/tests/core/test_session_logging.py +385 -0
- kimix-0.1.0/kimi-cli/tests/core/test_session_state.py +454 -0
- kimix-0.1.0/kimi-cli/tests/core/test_shell_mcp_status.py +78 -0
- kimix-0.1.0/kimi-cli/tests/core/test_shutdown_background_tasks.py +380 -0
- kimix-0.1.0/kimi-cli/tests/core/test_simple_compaction.py +276 -0
- kimix-0.1.0/kimi-cli/tests/core/test_skill.py +616 -0
- kimix-0.1.0/kimi-cli/tests/core/test_soul_import_command.py +116 -0
- kimix-0.1.0/kimi-cli/tests/core/test_soul_message.py +333 -0
- kimix-0.1.0/kimi-cli/tests/core/test_startup_imports.py +179 -0
- kimix-0.1.0/kimi-cli/tests/core/test_startup_progress.py +172 -0
- kimix-0.1.0/kimi-cli/tests/core/test_status_formatting.py +18 -0
- kimix-0.1.0/kimi-cli/tests/core/test_str_replace_file_plan_mode.py +121 -0
- kimix-0.1.0/kimi-cli/tests/core/test_subagent_builder.py +150 -0
- kimix-0.1.0/kimi-cli/tests/core/test_subagent_resume_e2e.py +252 -0
- kimix-0.1.0/kimi-cli/tests/core/test_subagent_store.py +198 -0
- kimix-0.1.0/kimi-cli/tests/core/test_toolset.py +188 -0
- kimix-0.1.0/kimi-cli/tests/core/test_wire_message.py +703 -0
- kimix-0.1.0/kimi-cli/tests/core/test_wire_plan_mode.py +78 -0
- kimix-0.1.0/kimi-cli/tests/core/test_wire_server_steer.py +211 -0
- kimix-0.1.0/kimi-cli/tests/core/test_write_file_plan_mode.py +227 -0
- kimix-0.1.0/kimi-cli/tests/core/test_yolo_injection.py +54 -0
- kimix-0.1.0/kimi-cli/tests/e2e/__init__.py +1 -0
- kimix-0.1.0/kimi-cli/tests/e2e/shell_pty_helpers.py +374 -0
- kimix-0.1.0/kimi-cli/tests/e2e/test_basic_e2e.py +331 -0
- kimix-0.1.0/kimi-cli/tests/e2e/test_cli_error_output.py +193 -0
- kimix-0.1.0/kimi-cli/tests/e2e/test_file_mention_e2e.py +184 -0
- kimix-0.1.0/kimi-cli/tests/e2e/test_hooks_wire_e2e.py +450 -0
- kimix-0.1.0/kimi-cli/tests/e2e/test_media_e2e.py +330 -0
- kimix-0.1.0/kimi-cli/tests/e2e/test_shell_modal_e2e.py +946 -0
- kimix-0.1.0/kimi-cli/tests/e2e/test_shell_pty_e2e.py +940 -0
- kimix-0.1.0/kimi-cli/tests/e2e/test_slash_completion_enter_tmux.py +136 -0
- kimix-0.1.0/kimi-cli/tests/e2e/test_subagent_smoke_e2e.py +789 -0
- kimix-0.1.0/kimi-cli/tests/hooks/__init__.py +0 -0
- kimix-0.1.0/kimi-cli/tests/hooks/test_config.py +54 -0
- kimix-0.1.0/kimi-cli/tests/hooks/test_engine.py +70 -0
- kimix-0.1.0/kimi-cli/tests/hooks/test_integration.py +315 -0
- kimix-0.1.0/kimi-cli/tests/hooks/test_runner.py +45 -0
- kimix-0.1.0/kimi-cli/tests/notifications/test_notification_manager.py +293 -0
- kimix-0.1.0/kimi-cli/tests/test_additional_dirs_state.py +46 -0
- kimix-0.1.0/kimi-cli/tests/test_attachment_cache.py +53 -0
- kimix-0.1.0/kimi-cli/tests/test_clipboard.py +176 -0
- kimix-0.1.0/kimi-cli/tests/test_git_context.py +338 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_additional_dirs.py +290 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_agent_tool.py +1611 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_ask_user.py +252 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_background_tools.py +481 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_extract_key_argument.py +49 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_fetch_url.py +287 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_glob.py +364 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_grep.py +960 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_mcp_tool_result.py +193 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_plan_yolo.py +260 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_read_file.py +602 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_read_media_file.py +150 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_read_media_file_desc.py +98 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_shell_bash.py +275 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_shell_powershell.py +59 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_str_replace_file.py +248 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_todo.py +248 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_tool_descriptions.py +355 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_tool_schemas.py +524 -0
- kimix-0.1.0/kimi-cli/tests/tools/test_write_file.py +174 -0
- kimix-0.1.0/kimi-cli/tests/ui/__init__.py +0 -0
- kimix-0.1.0/kimi-cli/tests/ui/test_console_pager.py +81 -0
- kimix-0.1.0/kimi-cli/tests/ui/test_console_theme.py +53 -0
- kimix-0.1.0/kimi-cli/tests/ui/test_update_gate.py +428 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_acp_convert.py +82 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_acp_server_auth.py +151 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_background_completion_watcher.py +267 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_btw.py +1076 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_empty_think_part_indicator.py +331 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_export_import.py +1304 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_file_completer.py +219 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_live_view_notifications.py +78 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_modal_lifecycle.py +1277 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_print_exit_code.py +212 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_print_final_only.py +35 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_print_notifications.py +143 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_prompt_clipboard.py +393 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_prompt_external_editor.py +175 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_prompt_history.py +68 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_prompt_placeholders.py +223 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_prompt_tips.py +893 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_question_panel.py +680 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_render_to_ansi.py +225 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_replay.py +248 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_root_hub_watcher_resilience.py +128 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_sanitize_surrogates.py +59 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_shell_editor_slash.py +79 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_shell_export_import_commands.py +130 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_shell_feedback_slash.py +299 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_shell_prompt_echo.py +154 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_shell_prompt_router.py +266 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_shell_run_placeholders.py +231 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_shell_slash_commands.py +266 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_shell_switch_slash.py +302 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_shell_task_slash.py +947 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_slash_completer.py +178 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_status_block.py +70 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_streaming_content_block.py +420 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_task_browser.py +284 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_theme.py +325 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_tool_call_block.py +37 -0
- kimix-0.1.0/kimi-cli/tests/ui_and_conv/test_visualize_running_prompt.py +1114 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_aiohttp_timeout.py +52 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_atomic_json_write.py +110 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_broadcast_queue.py +77 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_changelog.py +40 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_datetime.py +33 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_diff_nonblocking.py +188 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_diff_render.py +582 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_diff_utils.py +426 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_editor.py +303 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_file_filter.py +360 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_file_utils.py +33 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_frontmatter.py +49 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_is_within_workspace.py +145 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_list_directory.py +150 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_message_utils.py +106 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_proxy.py +76 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_pyinstaller_utils.py +195 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_result_builder.py +157 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_rich_markdown.py +11 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_sensitive.py +96 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_server.py +121 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_shorten.py +72 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_slash_command.py +215 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_subprocess_env.py +34 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_typing_utils.py +28 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_utils_environment.py +74 -0
- kimix-0.1.0/kimi-cli/tests/utils/test_utils_path.py +255 -0
- kimix-0.1.0/kimi-cli/tests/vis/test_app.py +55 -0
- kimix-0.1.0/kimi-cli/tests/web/test_open_in.py +64 -0
- kimix-0.1.0/kimi-cli/tests/web/test_session_error_recovery.py +164 -0
- kimix-0.1.0/kimi-cli/tests/web/test_static_cache_headers.py +70 -0
- kimix-0.1.0/kimi-cli/tests_ai/scripts/main.yaml +48 -0
- kimix-0.1.0/kimi-cli/tests_ai/scripts/run.py +159 -0
- kimix-0.1.0/kimi-cli/tests_ai/scripts/worker.yaml +31 -0
- kimix-0.1.0/kimi-cli/tests_ai/test_cli_loading_time.md +56 -0
- kimix-0.1.0/kimi-cli/tests_ai/test_encoding_error_handling.md +20 -0
- kimix-0.1.0/kimi-cli/tests_ai/test_utf8_encoding.md +21 -0
- kimix-0.1.0/kimi-cli/tests_e2e/AGENTS.md +78 -0
- kimix-0.1.0/kimi-cli/tests_e2e/__init__.py +0 -0
- kimix-0.1.0/kimi-cli/tests_e2e/test_mcp_cli.py +292 -0
- kimix-0.1.0/kimi-cli/tests_e2e/test_wire_approvals_tools.py +1273 -0
- kimix-0.1.0/kimi-cli/tests_e2e/test_wire_auth.py +115 -0
- kimix-0.1.0/kimi-cli/tests_e2e/test_wire_config.py +180 -0
- kimix-0.1.0/kimi-cli/tests_e2e/test_wire_errors.py +259 -0
- kimix-0.1.0/kimi-cli/tests_e2e/test_wire_prompt.py +539 -0
- kimix-0.1.0/kimi-cli/tests_e2e/test_wire_protocol.py +429 -0
- kimix-0.1.0/kimi-cli/tests_e2e/test_wire_question.py +280 -0
- kimix-0.1.0/kimi-cli/tests_e2e/test_wire_real_llm.py +23 -0
- kimix-0.1.0/kimi-cli/tests_e2e/test_wire_sessions.py +507 -0
- kimix-0.1.0/kimi-cli/tests_e2e/test_wire_skills_mcp.py +427 -0
- kimix-0.1.0/kimi-cli/tests_e2e/test_wire_steer.py +150 -0
- kimix-0.1.0/kimi-cli/tests_e2e/wire_helpers.py +600 -0
- kimix-0.1.0/kimi-cli/vis/components.json +21 -0
- kimix-0.1.0/kimi-cli/vis/index.html +16 -0
- kimix-0.1.0/kimi-cli/vis/package-lock.json +9640 -0
- kimix-0.1.0/kimi-cli/vis/package.json +42 -0
- kimix-0.1.0/kimi-cli/vis/src/App.tsx +623 -0
- kimix-0.1.0/kimi-cli/vis/src/components/markdown.tsx +167 -0
- kimix-0.1.0/kimi-cli/vis/src/components/ui/alert-dialog.tsx +158 -0
- kimix-0.1.0/kimi-cli/vis/src/components/ui/select.tsx +188 -0
- kimix-0.1.0/kimi-cli/vis/src/components/ui/tooltip.tsx +55 -0
- kimix-0.1.0/kimi-cli/vis/src/features/agents-panel/agent-scope-bar.tsx +159 -0
- kimix-0.1.0/kimi-cli/vis/src/features/agents-panel/agents-panel.tsx +281 -0
- kimix-0.1.0/kimi-cli/vis/src/features/context-viewer/assistant-message.tsx +255 -0
- kimix-0.1.0/kimi-cli/vis/src/features/context-viewer/context-space-map.tsx +283 -0
- kimix-0.1.0/kimi-cli/vis/src/features/context-viewer/context-viewer.tsx +473 -0
- kimix-0.1.0/kimi-cli/vis/src/features/context-viewer/tool-call-block.tsx +89 -0
- kimix-0.1.0/kimi-cli/vis/src/features/context-viewer/user-message.tsx +125 -0
- kimix-0.1.0/kimi-cli/vis/src/features/dual-view/dual-view.tsx +397 -0
- kimix-0.1.0/kimi-cli/vis/src/features/session-picker/session-picker.tsx +144 -0
- kimix-0.1.0/kimi-cli/vis/src/features/sessions-explorer/explorer-toolbar.tsx +184 -0
- kimix-0.1.0/kimi-cli/vis/src/features/sessions-explorer/project-group.tsx +76 -0
- kimix-0.1.0/kimi-cli/vis/src/features/sessions-explorer/session-card.tsx +397 -0
- kimix-0.1.0/kimi-cli/vis/src/features/sessions-explorer/sessions-explorer.tsx +364 -0
- kimix-0.1.0/kimi-cli/vis/src/features/state-viewer/state-viewer.tsx +253 -0
- kimix-0.1.0/kimi-cli/vis/src/features/statistics/statistics-view.tsx +395 -0
- kimix-0.1.0/kimi-cli/vis/src/features/wire-viewer/decision-path.tsx +375 -0
- kimix-0.1.0/kimi-cli/vis/src/features/wire-viewer/integrity-check.tsx +209 -0
- kimix-0.1.0/kimi-cli/vis/src/features/wire-viewer/timeline-view.tsx +1230 -0
- kimix-0.1.0/kimi-cli/vis/src/features/wire-viewer/tool-call-detail.tsx +240 -0
- kimix-0.1.0/kimi-cli/vis/src/features/wire-viewer/tool-stats-dashboard.tsx +238 -0
- kimix-0.1.0/kimi-cli/vis/src/features/wire-viewer/turn-efficiency.tsx +256 -0
- kimix-0.1.0/kimi-cli/vis/src/features/wire-viewer/turn-tree.tsx +376 -0
- kimix-0.1.0/kimi-cli/vis/src/features/wire-viewer/usage-chart.tsx +386 -0
- kimix-0.1.0/kimi-cli/vis/src/features/wire-viewer/wire-event-card.tsx +814 -0
- kimix-0.1.0/kimi-cli/vis/src/features/wire-viewer/wire-filters.tsx +339 -0
- kimix-0.1.0/kimi-cli/vis/src/features/wire-viewer/wire-viewer.tsx +548 -0
- kimix-0.1.0/kimi-cli/vis/src/hooks/use-theme.ts +27 -0
- kimix-0.1.0/kimi-cli/vis/src/index.css +180 -0
- kimix-0.1.0/kimi-cli/vis/src/lib/api.ts +376 -0
- kimix-0.1.0/kimi-cli/vis/src/lib/cache.ts +83 -0
- kimix-0.1.0/kimi-cli/vis/src/lib/utils.ts +6 -0
- kimix-0.1.0/kimi-cli/vis/src/main.tsx +52 -0
- kimix-0.1.0/kimi-cli/vis/tsconfig.app.json +28 -0
- kimix-0.1.0/kimi-cli/vis/tsconfig.json +13 -0
- kimix-0.1.0/kimi-cli/vis/tsconfig.node.json +22 -0
- kimix-0.1.0/kimi-cli/vis/vite.config.ts +23 -0
- kimix-0.1.0/kimi-cli/web/.gitignore +25 -0
- kimix-0.1.0/kimi-cli/web/biome.jsonc +66 -0
- kimix-0.1.0/kimi-cli/web/components.json +24 -0
- kimix-0.1.0/kimi-cli/web/index.html +13 -0
- kimix-0.1.0/kimi-cli/web/openapi.json +1149 -0
- kimix-0.1.0/kimi-cli/web/openapitools.json +7 -0
- kimix-0.1.0/kimi-cli/web/package-lock.json +15004 -0
- kimix-0.1.0/kimi-cli/web/package.json +88 -0
- kimix-0.1.0/kimi-cli/web/public/logo.png +0 -0
- kimix-0.1.0/kimi-cli/web/scripts/generate-api.sh +59 -0
- kimix-0.1.0/kimi-cli/web/src/App.tsx +569 -0
- kimix-0.1.0/kimi-cli/web/src/bootstrap.tsx +62 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/chain-of-thought.tsx +229 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/code-block.tsx +652 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/confirmation.tsx +158 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/context.tsx +525 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/conversation.tsx +100 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/index.ts +13 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/loader.tsx +96 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/message.tsx +710 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/model-selector.tsx +205 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/prompt-input.tsx +1556 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/reasoning.tsx +227 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/shimmer.tsx +64 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/streamdown.tsx +183 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/subagent-steps.tsx +228 -0
- kimix-0.1.0/kimi-cli/web/src/components/ai-elements/tool.tsx +681 -0
- kimix-0.1.0/kimi-cli/web/src/components/error-boundary.tsx +71 -0
- kimix-0.1.0/kimi-cli/web/src/components/kimi-cli-brand.tsx +48 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/alert-dialog.tsx +194 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/alert.tsx +66 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/badge.tsx +46 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/button-group.tsx +83 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/button.tsx +64 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/card.tsx +92 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/carousel.tsx +241 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/checkbox.tsx +30 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/collapsible.tsx +35 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/command.tsx +184 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/context-menu.tsx +250 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/dialog.tsx +156 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/diff/index.tsx +187 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/diff/lazy.tsx +31 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/diff/theme.css +926 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/diff/utils/guess-lang.ts +122 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/diff/utils/index.ts +11 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/diff/utils/parse.ts +449 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/dropdown-menu.tsx +255 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/hover-card.tsx +44 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/input-group.tsx +170 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/input.tsx +21 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/kbd.tsx +28 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/progress.tsx +29 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/resizable.tsx +59 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/scroll-area.tsx +56 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/select.tsx +187 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/separator.tsx +26 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/sonner.tsx +32 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/switch.tsx +40 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/textarea.tsx +18 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/theme-toggle.tsx +37 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/toggle-group.tsx +83 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/toggle.tsx +45 -0
- kimix-0.1.0/kimi-cli/web/src/components/ui/tooltip.tsx +59 -0
- kimix-0.1.0/kimi-cli/web/src/config/media.ts +21 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/chat-workspace-container.tsx +394 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/chat.tsx +386 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/activity-status-indicator.tsx +332 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/approval-dialog.tsx +343 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/assistant-message.tsx +455 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/attachment-button.tsx +12 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/chat-conversation.tsx +216 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/chat-prompt-composer.tsx +356 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/chat-workspace-header.tsx +229 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/open-in-menu.tsx +230 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/prompt-toolbar/index.tsx +142 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/prompt-toolbar/open-in-button.tsx +126 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/prompt-toolbar/toolbar-changes.tsx +116 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/prompt-toolbar/toolbar-context.tsx +158 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/prompt-toolbar/toolbar-queue.tsx +160 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/prompt-toolbar/toolbar-todo.tsx +94 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/question-dialog.tsx +642 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/session-files-panel.tsx +319 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/session-info-popover.tsx +126 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/components/virtualized-message-list.tsx +347 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/file-mention-menu.tsx +240 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/global-config-controls.tsx +343 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/message-search-dialog.tsx +349 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/message-search-utils.ts +95 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/open-in-shared.ts +96 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/queue-store.ts +46 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/slash-command-menu.tsx +95 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/useFileMentions.ts +541 -0
- kimix-0.1.0/kimi-cli/web/src/features/chat/useSlashCommands.ts +303 -0
- kimix-0.1.0/kimi-cli/web/src/features/sessions/create-session-dialog.tsx +384 -0
- kimix-0.1.0/kimi-cli/web/src/features/sessions/sessions.tsx +1262 -0
- kimix-0.1.0/kimi-cli/web/src/features/tool/components/display-content.tsx +1253 -0
- kimix-0.1.0/kimi-cli/web/src/features/tool/store.ts +74 -0
- kimix-0.1.0/kimi-cli/web/src/hooks/types.ts +186 -0
- kimix-0.1.0/kimi-cli/web/src/hooks/use-theme.ts +187 -0
- kimix-0.1.0/kimi-cli/web/src/hooks/useGitDiffStats.ts +126 -0
- kimix-0.1.0/kimi-cli/web/src/hooks/useGlobalConfig.ts +106 -0
- kimix-0.1.0/kimi-cli/web/src/hooks/useSessionStream.ts +2916 -0
- kimix-0.1.0/kimi-cli/web/src/hooks/useSessions.ts +1092 -0
- kimix-0.1.0/kimi-cli/web/src/hooks/useVideoThumbnail.ts +83 -0
- kimix-0.1.0/kimi-cli/web/src/hooks/utils.ts +66 -0
- kimix-0.1.0/kimi-cli/web/src/hooks/wireTypes.ts +448 -0
- kimix-0.1.0/kimi-cli/web/src/index.css +437 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/.openapi-generator/FILES +61 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/.openapi-generator/VERSION +1 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/.openapi-generator-ignore +23 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/apis/ConfigApi.ts +200 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/apis/DefaultApi.ts +54 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/apis/OpenInApi.ts +79 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/apis/SessionsApi.ts +561 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/apis/WorkDirsApi.ts +89 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/apis/index.ts +7 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/ConfigApi.md +266 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/ConfigModel.md +45 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/ConfigToml.md +37 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/CreateSessionRequest.md +37 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/DefaultApi.md +68 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/GenerateTitleRequest.md +37 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/GenerateTitleResponse.md +35 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/GitDiffStats.md +45 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/GitFileDiff.md +41 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/GlobalConfig.md +39 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/HTTPValidationError.md +34 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/ModelCapability.md +32 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/OpenInApi.md +75 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/OpenInRequest.md +37 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/OpenInResponse.md +37 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/ProviderType.md +32 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/Session.md +49 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/SessionStatus.md +47 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/SessionsApi.md +722 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/UpdateConfigTomlRequest.md +35 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/UpdateConfigTomlResponse.md +37 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/UpdateGlobalConfigRequest.md +41 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/UpdateGlobalConfigResponse.md +39 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/UpdateSessionRequest.md +37 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/UploadSessionFileResponse.md +39 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/ValidationError.md +38 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/ValidationErrorLocInner.md +32 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/docs/WorkDirsApi.md +128 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/index.ts +5 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/ConfigModel.ts +127 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/ConfigToml.ts +75 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/CreateSessionRequest.ts +73 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/GenerateTitleRequest.ts +76 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/GenerateTitleResponse.ts +66 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/GitDiffStats.ts +114 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/GitFileDiff.ts +106 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/GlobalConfig.ts +92 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/HTTPValidationError.ts +73 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/ModelCapability.ts +55 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/OpenInRequest.ts +90 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/OpenInResponse.ts +74 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/ProviderType.ts +61 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/Session.ts +132 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/SessionStatus.ts +131 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/UpdateConfigTomlRequest.ts +66 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/UpdateConfigTomlResponse.ts +74 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/UpdateGlobalConfigRequest.ts +89 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/UpdateGlobalConfigResponse.ts +90 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/UpdateSessionRequest.ts +73 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/UploadSessionFileResponse.ts +84 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/ValidationError.ts +92 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/ValidationErrorLocInner.ts +46 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/models/index.ts +25 -0
- kimix-0.1.0/kimi-cli/web/src/lib/api/runtime.ts +432 -0
- kimix-0.1.0/kimi-cli/web/src/lib/apiClient.ts +99 -0
- kimix-0.1.0/kimi-cli/web/src/lib/auth.ts +63 -0
- kimix-0.1.0/kimi-cli/web/src/lib/utils.ts +29 -0
- kimix-0.1.0/kimi-cli/web/src/lib/version.ts +6 -0
- kimix-0.1.0/kimi-cli/web/src/main.tsx +16 -0
- kimix-0.1.0/kimi-cli/web/src/react-scan.d.ts +3 -0
- kimix-0.1.0/kimi-cli/web/tsconfig.app.json +37 -0
- kimix-0.1.0/kimi-cli/web/tsconfig.json +15 -0
- kimix-0.1.0/kimi-cli/web/tsconfig.node.json +26 -0
- kimix-0.1.0/kimi-cli/web/vite.config.ts +72 -0
- kimix-0.1.0/pyproject.toml +147 -0
- kimix-0.1.0/src/kimix/__init__.py +1 -0
- kimix-0.1.0/src/kimix/agent_boss.yaml +19 -0
- kimix-0.1.0/src/kimix/agent_subagent.yaml +14 -0
- kimix-0.1.0/src/kimix/agent_tools.py +45 -0
- kimix-0.1.0/src/kimix/agent_utils.py +354 -0
- kimix-0.1.0/src/kimix/agent_worker.yaml +39 -0
- kimix-0.1.0/src/kimix/cli.py +3 -0
- kimix-0.1.0/src/kimix/cli_impl/args.py +106 -0
- kimix-0.1.0/src/kimix/cli_impl/client.py +55 -0
- kimix-0.1.0/src/kimix/cli_impl/commands.py +201 -0
- kimix-0.1.0/src/kimix/cli_impl/constants.py +47 -0
- kimix-0.1.0/src/kimix/cli_impl/core.py +104 -0
- kimix-0.1.0/src/kimix/cli_impl/main.py +11 -0
- kimix-0.1.0/src/kimix/cli_impl/server.py +236 -0
- kimix-0.1.0/src/kimix/cli_impl/server_cmds.py +205 -0
- kimix-0.1.0/src/kimix/cli_impl/utils.py +32 -0
- kimix-0.1.0/src/kimix/default_config.json +33 -0
- kimix-0.1.0/src/kimix/kimi_utils.py +2 -0
- kimix-0.1.0/src/kimix/kimi_utils_impl/__init__.py +74 -0
- kimix-0.1.0/src/kimix/kimi_utils_impl/_globals.py +17 -0
- kimix-0.1.0/src/kimix/kimi_utils_impl/config.py +135 -0
- kimix-0.1.0/src/kimix/kimi_utils_impl/fix_error.py +62 -0
- kimix-0.1.0/src/kimix/kimi_utils_impl/prompt.py +153 -0
- kimix-0.1.0/src/kimix/kimi_utils_impl/rag.py +139 -0
- kimix-0.1.0/src/kimix/kimi_utils_impl/session.py +222 -0
- kimix-0.1.0/src/kimix/kimi_utils_impl/system_prompt.py +99 -0
- kimix-0.1.0/src/kimix/kimi_utils_impl/utils.py +24 -0
- kimix-0.1.0/src/kimix/network/rpc_client.py +103 -0
- kimix-0.1.0/src/kimix/network/rpc_server.py +271 -0
- kimix-0.1.0/src/kimix/network/tcp_client.py +244 -0
- kimix-0.1.0/src/kimix/network/tcp_group_server.py +370 -0
- kimix-0.1.0/src/kimix/network/tcp_server.py +307 -0
- kimix-0.1.0/src/kimix/summarize.py +92 -0
- kimix-0.1.0/src/kimix_manager/base.py +326 -0
- kimix-0.1.0/src/kimix_manager/company.py +62 -0
- kimix-0.1.0/src/kimix_manager/designer.py +176 -0
- kimix-0.1.0/src/my_tools/agent/__init__.py +179 -0
- kimix-0.1.0/src/my_tools/background/__init__.py +162 -0
- kimix-0.1.0/src/my_tools/background/utils.py +185 -0
- kimix-0.1.0/src/my_tools/check_fmt.py +94 -0
- kimix-0.1.0/src/my_tools/common.py +370 -0
- kimix-0.1.0/src/my_tools/file/__init__.py +63 -0
- kimix-0.1.0/src/my_tools/file/chdir.py +45 -0
- kimix-0.1.0/src/my_tools/file/find_str.py +169 -0
- kimix-0.1.0/src/my_tools/file/input.py +37 -0
- kimix-0.1.0/src/my_tools/file/read.md +15 -0
- kimix-0.1.0/src/my_tools/file/run.py +119 -0
- kimix-0.1.0/src/my_tools/flag/__init__.py +30 -0
- kimix-0.1.0/src/my_tools/img/__init__.py +132 -0
- kimix-0.1.0/src/my_tools/lint/__init__.py +124 -0
- kimix-0.1.0/src/my_tools/lint/cpp_lint.py +459 -0
- kimix-0.1.0/src/my_tools/lint/js_lint.py +182 -0
- kimix-0.1.0/src/my_tools/lint/py_lint.py +161 -0
- kimix-0.1.0/src/my_tools/note/__init__.py +143 -0
- kimix-0.1.0/src/my_tools/office/__init__.py +215 -0
- kimix-0.1.0/src/my_tools/pdf/__init__.py +117 -0
- kimix-0.1.0/src/my_tools/pdf/pdf_to_md.py +488 -0
- kimix-0.1.0/src/my_tools/py/__init__.py +112 -0
- kimix-0.1.0/src/my_tools/py/check.py +112 -0
- kimix-0.1.0/src/my_tools/session/__init__.py +1 -0
- kimix-0.1.0/src/my_tools/session/compact.py +155 -0
- kimix-0.1.0/src/my_tools/shell/__init__.py +217 -0
- kimix-0.1.0/src/my_tools/shell/bash.md +30 -0
- kimix-0.1.0/src/my_tools/shell/bash_to_pwsh.py +249 -0
- kimix-0.1.0/src/my_tools/shell/powershell.md +25 -0
- kimix-0.1.0/src/my_tools/shell/to_powershell_cmd.py +24894 -0
- kimix-0.1.0/src/my_tools/skill/__init__.py +196 -0
- kimix-0.1.0/src/my_tools/skill/faiss/simple_test.py +103 -0
- kimix-0.1.0/src/my_tools/skill/faiss/text_search.py +929 -0
- kimix-0.1.0/src/my_tools/web/__init__.py +3 -0
- kimix-0.1.0/src/my_tools/web/fetch_url.py +56 -0
- kimix-0.1.0/src/my_tools/web/web_fetcher/__init__.py +3 -0
- kimix-0.1.0/src/my_tools/web/web_fetcher/fetcher.py +121 -0
- kimix-0.1.0/src/my_tools/zip/__init__.py +336 -0
- kimix-0.1.0/tools/git_add.py +36 -0
- kimix-0.1.0/tools/git_diff.py +27 -0
- kimix-0.1.0/tools/syntax_check.py +64 -0
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api
|
|
3
|
+
description: Guide for using Kimi API utilities (session management, prompts, RAG, colorful printing, threading)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Kimi API Utilities Guide
|
|
7
|
+
|
|
8
|
+
This guide explains how to use the utility functions from `kimi_utils.py` and `agent_utils.py` for session management, prompting, RAG search, colorful printing, and threading.
|
|
9
|
+
|
|
10
|
+
## Session Management (kimi_utils.py)
|
|
11
|
+
|
|
12
|
+
### create_session
|
|
13
|
+
|
|
14
|
+
Create a new or resume an existing Kimi session.
|
|
15
|
+
|
|
16
|
+
```python
|
|
17
|
+
from kimi_utils import create_session
|
|
18
|
+
from kaos.path import KaosPath
|
|
19
|
+
|
|
20
|
+
# Create a new session
|
|
21
|
+
session = create_session(
|
|
22
|
+
session_id="my_session", # Optional: unique session identifier
|
|
23
|
+
work_dir=KaosPath("./workspace"), # Optional: working directory
|
|
24
|
+
skills_dir=None, # Optional: KaosPath to skills directory
|
|
25
|
+
ralph_loop=None, # Optional: True/-1=unlimited, False/0=disabled
|
|
26
|
+
thinking=True, # Optional: enable deep thinking
|
|
27
|
+
yolo=True, # Optional: enable yolo mode (auto-approve)
|
|
28
|
+
plan_mode=False, # Optional: enable plan mode
|
|
29
|
+
resume=False, # Optional: resume existing session
|
|
30
|
+
agent_file=None, # Optional: Path to custom agent_worker.yaml
|
|
31
|
+
provider_dict=None # Optional: custom LLM provider config dict
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
# Close session when done
|
|
35
|
+
from kimi_utils import close_session
|
|
36
|
+
close_session(session)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Default Session
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
from kimi_utils import get_default_session, _create_default_session
|
|
43
|
+
|
|
44
|
+
# Get or create the global default session (session_id="default")
|
|
45
|
+
session = _create_default_session(resume=True)
|
|
46
|
+
|
|
47
|
+
# Get existing default session without creating
|
|
48
|
+
session = get_default_session()
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### prompt / prompt_async
|
|
52
|
+
|
|
53
|
+
Send a prompt to the Kimi agent and get a response.
|
|
54
|
+
|
|
55
|
+
```python
|
|
56
|
+
from kimi_utils import prompt, prompt_async
|
|
57
|
+
|
|
58
|
+
# Simple prompt
|
|
59
|
+
prompt("What is the capital of France?")
|
|
60
|
+
|
|
61
|
+
# With options
|
|
62
|
+
prompt(
|
|
63
|
+
"Analyze this code",
|
|
64
|
+
session=session, # Optional: use specific session (False=temp session)
|
|
65
|
+
read_agents_md=True, # Optional: read AGENTS.md first if context is fresh
|
|
66
|
+
skill_name="python", # Optional: enable skill (str or list of str)
|
|
67
|
+
output_function=custom_print, # Optional: custom output handler for text chunks
|
|
68
|
+
info_print=True # Optional: print context usage after completion
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
# Async version (coroutine)
|
|
72
|
+
await prompt_async("Analyze this code", session=session)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### validate
|
|
76
|
+
|
|
77
|
+
Validate a condition using the agent. Appends "If the condition is true, run `Setflag` tool." internally.
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
from kimi_utils import validate
|
|
81
|
+
|
|
82
|
+
# Returns True if agent calls Setflag, False otherwise
|
|
83
|
+
result = validate("Check if the file exists and contains 'TODO'")
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Context Management
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
from kimi_utils import clear_context, print_usage, delete_session_dir
|
|
90
|
+
|
|
91
|
+
# Clear current context and start fresh
|
|
92
|
+
clear_context(force_create=True, resume=True, print_info=True)
|
|
93
|
+
|
|
94
|
+
# Print current context usage
|
|
95
|
+
print_usage(session)
|
|
96
|
+
|
|
97
|
+
# Delete all session directories (~/.kimi/sessions)
|
|
98
|
+
delete_session_dir()
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Tool Call Errors
|
|
102
|
+
|
|
103
|
+
```python
|
|
104
|
+
from kimi_utils import get_tool_call_errors
|
|
105
|
+
|
|
106
|
+
# Get and clear failed tool calls for a session
|
|
107
|
+
errors = get_tool_call_errors(session) # or session_id string
|
|
108
|
+
# Returns formatted string: function, arguments, output, message
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Session Settings
|
|
112
|
+
|
|
113
|
+
```python
|
|
114
|
+
from kimi_utils import set_plan_mode, clear_context
|
|
115
|
+
|
|
116
|
+
# Toggle plan mode (clears context automatically)
|
|
117
|
+
set_plan_mode(True)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## RAG Search (kimi_utils.py)
|
|
121
|
+
|
|
122
|
+
Perform semantic search on files using `TextSearchIndex` with an LRU cache (max 3 indices).
|
|
123
|
+
|
|
124
|
+
```python
|
|
125
|
+
from kimi_utils import rag
|
|
126
|
+
|
|
127
|
+
# Basic search
|
|
128
|
+
results = rag(
|
|
129
|
+
query="authentication middleware",
|
|
130
|
+
file_path="./src", # Optional: path to search (default: current dir)
|
|
131
|
+
top_k=5, # Optional: number of results (default: 5)
|
|
132
|
+
content=False, # Optional: include full file content in results
|
|
133
|
+
refresh=False, # Optional: force re-index
|
|
134
|
+
hybrid_search=True, # Optional: hybrid semantic + keyword search
|
|
135
|
+
negative="deprecated" # Optional: keywords to penalize
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
# Process results
|
|
139
|
+
for result in results:
|
|
140
|
+
print(f"File: {result.file_path}")
|
|
141
|
+
print(f"Score: {result.score}")
|
|
142
|
+
if hasattr(result, 'full_content'):
|
|
143
|
+
print(f"Content: {result.full_content[:200]}...")
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Colorful Printing (agent_utils.py)
|
|
147
|
+
|
|
148
|
+
### Basic Print Functions
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
from agent_utils import (
|
|
152
|
+
print_success, # Green bold - success messages
|
|
153
|
+
print_error, # Red bold - error messages
|
|
154
|
+
print_warning, # Yellow bold - warning messages
|
|
155
|
+
print_info, # Magenta - info messages
|
|
156
|
+
print_debug, # Cyan - debug messages (silent if _quiet=True)
|
|
157
|
+
print_string, # Plain text (respects _print_func)
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
# Usage
|
|
161
|
+
print_success("Operation completed successfully!")
|
|
162
|
+
print_error("File not found: config.yaml")
|
|
163
|
+
print_warning("This feature is deprecated.")
|
|
164
|
+
print_info("Processing step 3 of 5...")
|
|
165
|
+
print_debug("Variable x = 42")
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Advanced Color Printing
|
|
169
|
+
|
|
170
|
+
```python
|
|
171
|
+
from agent_utils import colorful_print, Color, BgColor, Style
|
|
172
|
+
|
|
173
|
+
# Full control over colors and styles
|
|
174
|
+
colorful_print(
|
|
175
|
+
"Important message!",
|
|
176
|
+
fg=Color.BRIGHT_RED,
|
|
177
|
+
bg=BgColor.YELLOW,
|
|
178
|
+
styles=[Style.BOLD, Style.UNDERLINE]
|
|
179
|
+
)
|
|
180
|
+
|
|
181
|
+
# Available colors
|
|
182
|
+
# Foreground: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE
|
|
183
|
+
# BRIGHT_BLACK, BRIGHT_RED, BRIGHT_GREEN, BRIGHT_YELLOW
|
|
184
|
+
# BRIGHT_BLUE, BRIGHT_MAGENTA, BRIGHT_CYAN, BRIGHT_WHITE
|
|
185
|
+
# Background: Same pattern with BgColor
|
|
186
|
+
# Styles: RESET, BOLD, DIM, ITALIC, UNDERLINE, BLINK, REVERSE, HIDDEN, STRIKETHROUGH
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Print Agent JSON
|
|
190
|
+
|
|
191
|
+
```python
|
|
192
|
+
from agent_utils import print_agent_json
|
|
193
|
+
|
|
194
|
+
# Pretty-print streaming messages from the agent session
|
|
195
|
+
print_agent_json(
|
|
196
|
+
get_message=lambda: message.model_dump_json(),
|
|
197
|
+
output_function=custom_handler # Optional: callback for text content
|
|
198
|
+
)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Threading (agent_utils.py)
|
|
202
|
+
|
|
203
|
+
### Running Functions in Background
|
|
204
|
+
|
|
205
|
+
```python
|
|
206
|
+
from agent_utils import run_thread, sync_all
|
|
207
|
+
|
|
208
|
+
# Run function in background thread (max 4 concurrent)
|
|
209
|
+
def my_task(data):
|
|
210
|
+
# Long running operation
|
|
211
|
+
process(data)
|
|
212
|
+
|
|
213
|
+
thread = run_thread(my_task, (data,))
|
|
214
|
+
|
|
215
|
+
# Wait for all threads to complete
|
|
216
|
+
sync_all()
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Async Prompt Helpers
|
|
220
|
+
|
|
221
|
+
```python
|
|
222
|
+
from kimi_utils import async_prompt, async_fix_error
|
|
223
|
+
|
|
224
|
+
# Run prompt in background thread
|
|
225
|
+
thread = async_prompt("Analyze this file", session=False)
|
|
226
|
+
|
|
227
|
+
# Run fix_error in background thread
|
|
228
|
+
thread = async_fix_error("python main.py", extra_prompt="Handle edge cases")
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Process Execution
|
|
232
|
+
|
|
233
|
+
```python
|
|
234
|
+
from agent_utils import _run_process_with_log, run_process_with_error, run_script
|
|
235
|
+
|
|
236
|
+
# Run command and capture output
|
|
237
|
+
output, returncode = _run_process_with_log("ls -la")
|
|
238
|
+
|
|
239
|
+
# Run command and capture only errors
|
|
240
|
+
error_output = run_process_with_error(
|
|
241
|
+
command="npm run build",
|
|
242
|
+
keycode=("error", "failed"), # Keywords to look for in output
|
|
243
|
+
skip_success=True # Return None if no error keywords found and code==0
|
|
244
|
+
)
|
|
245
|
+
|
|
246
|
+
# Run a Python script in a new console window
|
|
247
|
+
proc = run_script("./script.py")
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
## File Operations (kimi_utils.py)
|
|
251
|
+
|
|
252
|
+
```python
|
|
253
|
+
from kimi_utils import read_file, prompt_path
|
|
254
|
+
from pathlib import Path
|
|
255
|
+
|
|
256
|
+
# Read file content
|
|
257
|
+
content = read_file(Path("config.yaml"))
|
|
258
|
+
|
|
259
|
+
# Read and split by delimiter
|
|
260
|
+
sections = read_file(Path("docs.txt"), split_word="===SECTION===")
|
|
261
|
+
|
|
262
|
+
# Prompt with file content
|
|
263
|
+
prompt_path(Path("instructions.txt"))
|
|
264
|
+
|
|
265
|
+
# Prompt with split content and optional coroutine callback
|
|
266
|
+
prompt_path(
|
|
267
|
+
Path("tasks.txt"),
|
|
268
|
+
split_word="---",
|
|
269
|
+
after_prompt_coro=generator_func # Optional: generator called after each chunk
|
|
270
|
+
)
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Error Fix Loop (kimi_utils.py)
|
|
274
|
+
|
|
275
|
+
```python
|
|
276
|
+
from kimi_utils import fix_error
|
|
277
|
+
|
|
278
|
+
# Automatically detect and fix errors from a command
|
|
279
|
+
fix_error(
|
|
280
|
+
command="python main.py",
|
|
281
|
+
extra_prompt="Make sure to handle edge cases", # Optional: extra instructions
|
|
282
|
+
keycode=("error", "exception"), # Optional: keywords to detect
|
|
283
|
+
skip_success=True, # Optional: skip if return code is 0
|
|
284
|
+
session=None, # Optional: session to use
|
|
285
|
+
max_loop=4 # Optional: max fix attempts
|
|
286
|
+
)
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
## Configuration Variables (agent_utils.py)
|
|
290
|
+
|
|
291
|
+
Default configuration values you can import and modify:
|
|
292
|
+
|
|
293
|
+
```python
|
|
294
|
+
from agent_utils import (
|
|
295
|
+
_default_thinking, # Deep thinking mode (default: True)
|
|
296
|
+
_default_plan_mode, # Plan mode (default: False)
|
|
297
|
+
_default_yolo, # Yolo mode (default: True)
|
|
298
|
+
_default_agent_file, # Path to agent_worker.yaml
|
|
299
|
+
_default_skill_dirs, # List of skill directories
|
|
300
|
+
_default_provider, # Custom provider dict or None
|
|
301
|
+
_quiet, # If True, suppresses print_debug
|
|
302
|
+
_colorful_print, # If False, disables ANSI colors
|
|
303
|
+
_print_func, # Optional custom print handler (text, end) -> None
|
|
304
|
+
)
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### Skill Directories
|
|
308
|
+
|
|
309
|
+
```python
|
|
310
|
+
from agent_utils import get_skill_dirs
|
|
311
|
+
|
|
312
|
+
# Auto-discover skill directories (checked paths: .agents/skills, .config/.agents/skills, .opencode/skills)
|
|
313
|
+
dirs = get_skill_dirs(use_kaos_path=True)
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
## Complete Example
|
|
317
|
+
|
|
318
|
+
```python
|
|
319
|
+
"""Example script using Kimi API utilities."""
|
|
320
|
+
from pathlib import Path
|
|
321
|
+
from kimi_utils import create_session, prompt, rag, close_session, clear_context
|
|
322
|
+
from agent_utils import print_success, print_error, print_info
|
|
323
|
+
|
|
324
|
+
# Create session
|
|
325
|
+
session = create_session(
|
|
326
|
+
session_id="example",
|
|
327
|
+
thinking=True,
|
|
328
|
+
yolo=True
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
try:
|
|
332
|
+
# Search for relevant code
|
|
333
|
+
print_info("Searching for authentication code...")
|
|
334
|
+
results = rag(
|
|
335
|
+
query="auth middleware",
|
|
336
|
+
file_path="./src",
|
|
337
|
+
top_k=3,
|
|
338
|
+
content=True
|
|
339
|
+
)
|
|
340
|
+
|
|
341
|
+
# Build context from results
|
|
342
|
+
context = "\n\n".join([r.full_content for r in results if hasattr(r, 'full_content')])
|
|
343
|
+
|
|
344
|
+
# Prompt with context
|
|
345
|
+
prompt(
|
|
346
|
+
f"Review this authentication code:\n\n{context}",
|
|
347
|
+
session=session
|
|
348
|
+
)
|
|
349
|
+
|
|
350
|
+
print_success("Analysis complete!")
|
|
351
|
+
|
|
352
|
+
except Exception as e:
|
|
353
|
+
print_error(f"Error: {e}")
|
|
354
|
+
|
|
355
|
+
finally:
|
|
356
|
+
close_session(session)
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
## Best Practices
|
|
360
|
+
|
|
361
|
+
1. **Always close sessions** - Use `close_session()` when done to free resources
|
|
362
|
+
2. **Use colorful prints** - Makes output more readable and organized
|
|
363
|
+
3. **Handle errors** - Wrap prompts in try/except blocks
|
|
364
|
+
4. **Leverage RAG** - Use `rag()` for finding relevant code/context
|
|
365
|
+
5. **Background tasks** - Use `run_thread()` for long-running operations
|
|
366
|
+
6. **Session reuse** - Reuse sessions for related prompts to save context
|
|
367
|
+
7. **Clear context** - Call `clear_context()` when switching topics
|
|
368
|
+
8. **Validate conditions** - Use `validate()` for yes/no checks via the agent
|
|
369
|
+
9. **Fix errors automatically** - Use `fix_error()` for iterative debugging
|
|
370
|
+
10. **Skill directories** - Place skills in `.agents/skills/` for auto-discovery
|
|
371
|
+
|
|
372
|
+
## Common Imports
|
|
373
|
+
|
|
374
|
+
```python
|
|
375
|
+
# Core utilities
|
|
376
|
+
from kimi_utils import (
|
|
377
|
+
create_session, close_session, prompt, prompt_async,
|
|
378
|
+
validate, rag, clear_context, print_usage,
|
|
379
|
+
get_default_session, get_tool_call_errors,
|
|
380
|
+
set_plan_mode,
|
|
381
|
+
read_file, prompt_path, fix_error, async_prompt
|
|
382
|
+
)
|
|
383
|
+
from agent_utils import (
|
|
384
|
+
print_success, print_error, print_warning,
|
|
385
|
+
print_info, print_debug, colorful_print,
|
|
386
|
+
Color, BgColor, Style, run_thread, sync_all,
|
|
387
|
+
run_process_with_error, get_skill_dirs
|
|
388
|
+
)
|
|
389
|
+
|
|
390
|
+
# Standard library
|
|
391
|
+
from pathlib import Path
|
|
392
|
+
import asyncio
|
|
393
|
+
```
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tool
|
|
3
|
+
description: Guide for creating tools using CallableTool2 and Params pattern
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Tool Development Guide
|
|
7
|
+
|
|
8
|
+
This guide explains how to create custom tools using the `CallableTool2` and `Params` pattern.
|
|
9
|
+
|
|
10
|
+
## Quick Template
|
|
11
|
+
|
|
12
|
+
```python
|
|
13
|
+
"""Brief description of what this tool does."""
|
|
14
|
+
from kimi_agent_sdk import CallableTool2, ToolError, ToolOk, ToolReturnValue
|
|
15
|
+
from pydantic import BaseModel, Field
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Params(BaseModel):
|
|
19
|
+
"""Define tool parameters here."""
|
|
20
|
+
required_param: str = Field(
|
|
21
|
+
description="Description of this parameter for the LLM."
|
|
22
|
+
)
|
|
23
|
+
optional_param: str | None = Field(
|
|
24
|
+
default=None,
|
|
25
|
+
description="Optional parameter with default value."
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class MyTool(CallableTool2):
|
|
30
|
+
name: str = "MyTool" # Tool identifier
|
|
31
|
+
description: str = "What this tool does." # For LLM to understand usage
|
|
32
|
+
params: type[Params] = Params # Link to Params class
|
|
33
|
+
|
|
34
|
+
async def __call__(self, params: Params) -> ToolReturnValue:
|
|
35
|
+
"""Execute the tool logic."""
|
|
36
|
+
try:
|
|
37
|
+
# Your tool logic here
|
|
38
|
+
result = f"Processed: {params.required_param}"
|
|
39
|
+
return ToolOk(output=result)
|
|
40
|
+
except Exception as e:
|
|
41
|
+
return ToolError(
|
|
42
|
+
message=str(e),
|
|
43
|
+
output="Partial output if available",
|
|
44
|
+
brief="Short error summary"
|
|
45
|
+
)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Complete Example
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
"""Fetch and process web content."""
|
|
52
|
+
import asyncio
|
|
53
|
+
import aiohttp
|
|
54
|
+
from kimi_agent_sdk import CallableTool2, ToolError, ToolOk, ToolReturnValue
|
|
55
|
+
from pydantic import BaseModel, Field
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class Params(BaseModel):
|
|
59
|
+
"""Parameters for web fetch tool."""
|
|
60
|
+
url: str = Field(
|
|
61
|
+
description="URL to fetch content from."
|
|
62
|
+
)
|
|
63
|
+
timeout: float | None = Field(
|
|
64
|
+
default=30.0,
|
|
65
|
+
ge=1,
|
|
66
|
+
le=300,
|
|
67
|
+
description="Request timeout in seconds (1-300)."
|
|
68
|
+
)
|
|
69
|
+
max_length: int | None = Field(
|
|
70
|
+
default=10000,
|
|
71
|
+
description="Maximum content length to return."
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class WebFetch(CallableTool2):
|
|
76
|
+
"""Fetch web page content."""
|
|
77
|
+
name: str = "WebFetch"
|
|
78
|
+
description: str = "Fetch content from a URL with optional timeout and length limits."
|
|
79
|
+
params: type[Params] = Params
|
|
80
|
+
|
|
81
|
+
async def __call__(self, params: Params) -> ToolReturnValue:
|
|
82
|
+
"""Fetch URL content asynchronously."""
|
|
83
|
+
try:
|
|
84
|
+
async with aiohttp.ClientSession() as session:
|
|
85
|
+
async with session.get(
|
|
86
|
+
params.url,
|
|
87
|
+
timeout=aiohttp.ClientTimeout(total=params.timeout)
|
|
88
|
+
) as response:
|
|
89
|
+
content = await response.text()
|
|
90
|
+
|
|
91
|
+
# Apply length limit
|
|
92
|
+
if len(content) > params.max_length:
|
|
93
|
+
content = content[:params.max_length] + "\n... (truncated)"
|
|
94
|
+
|
|
95
|
+
return ToolOk(output=content)
|
|
96
|
+
|
|
97
|
+
except asyncio.TimeoutError:
|
|
98
|
+
return ToolError(
|
|
99
|
+
message=f"Request timed out after {params.timeout}s",
|
|
100
|
+
output="",
|
|
101
|
+
brief="Timeout error"
|
|
102
|
+
)
|
|
103
|
+
except Exception as e:
|
|
104
|
+
return ToolError(
|
|
105
|
+
message=str(e),
|
|
106
|
+
output="",
|
|
107
|
+
brief="Fetch failed"
|
|
108
|
+
)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Params Class Reference
|
|
112
|
+
|
|
113
|
+
### Field Types
|
|
114
|
+
|
|
115
|
+
| Pattern | Description | Example |
|
|
116
|
+
|---------|-------------|---------|
|
|
117
|
+
| `param: str` | Required string | `path: str = Field(description="File path.")` |
|
|
118
|
+
| `param: str \| None` | Optional string | `cwd: str \| None = Field(default=None, ...)` |
|
|
119
|
+
| `param: list[str]` | List of strings | `args: list[str] = Field(default_factory=list, ...)` |
|
|
120
|
+
| `param: bool` | Boolean flag | `force: bool = Field(default=False, ...)` |
|
|
121
|
+
| `param: int \| float` | Numeric | `timeout: float = Field(default=30, ge=0)` |
|
|
122
|
+
|
|
123
|
+
### Field Validators
|
|
124
|
+
|
|
125
|
+
Use these in `Field()` for validation:
|
|
126
|
+
|
|
127
|
+
```python
|
|
128
|
+
# Numeric constraints
|
|
129
|
+
ge=0 # Greater than or equal to 0
|
|
130
|
+
le=100 # Less than or equal to 100
|
|
131
|
+
gt=0 # Greater than 0
|
|
132
|
+
lt=100 # Less than 100
|
|
133
|
+
|
|
134
|
+
# String constraints
|
|
135
|
+
min_length=1 # Minimum string length
|
|
136
|
+
max_length=255 # Maximum string length
|
|
137
|
+
pattern=r"^\d+$" # Regex pattern
|
|
138
|
+
|
|
139
|
+
# Collection constraints
|
|
140
|
+
min_length=1 # Minimum list/dict items
|
|
141
|
+
max_length=10 # Maximum list/dict items
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Default Values
|
|
145
|
+
|
|
146
|
+
```python
|
|
147
|
+
# Simple default
|
|
148
|
+
timeout: int = Field(default=30, ...)
|
|
149
|
+
|
|
150
|
+
# Factory default (for mutable types like list, dict)
|
|
151
|
+
args: list[str] = Field(default_factory=list, ...)
|
|
152
|
+
env: dict[str, str] = Field(default_factory=dict, ...)
|
|
153
|
+
|
|
154
|
+
# Optional with None default
|
|
155
|
+
output_path: str | None = Field(default=None, ...)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## CallableTool2 Class Rules
|
|
159
|
+
|
|
160
|
+
### Required Attributes
|
|
161
|
+
|
|
162
|
+
```python
|
|
163
|
+
class MyTool(CallableTool2):
|
|
164
|
+
name: str = "MyTool" # Unique identifier
|
|
165
|
+
description: str = "Does something." # LLM-visible description
|
|
166
|
+
params: type[Params] = Params # Must reference Params class
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### The __call__ Method
|
|
170
|
+
|
|
171
|
+
```python
|
|
172
|
+
async def __call__(self, params: Params) -> ToolReturnValue:
|
|
173
|
+
"""
|
|
174
|
+
Args:
|
|
175
|
+
params: Instance of your Params class with validated values
|
|
176
|
+
|
|
177
|
+
Returns:
|
|
178
|
+
ToolOk(output="success result") on success
|
|
179
|
+
ToolError(message="...", output="...", brief="...") on failure
|
|
180
|
+
"""
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Return Values
|
|
184
|
+
|
|
185
|
+
**Success:**
|
|
186
|
+
```python
|
|
187
|
+
return ToolOk(output="Your result here")
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Error:**
|
|
191
|
+
```python
|
|
192
|
+
return ToolError(
|
|
193
|
+
message="Full error details for debugging",
|
|
194
|
+
output="Partial output if any was produced",
|
|
195
|
+
brief="Short error summary for display"
|
|
196
|
+
)
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Best Practices
|
|
200
|
+
|
|
201
|
+
1. **Always use type hints** - Both for Params fields and __call__ return type
|
|
202
|
+
2. **Write clear descriptions** - LLM uses Field descriptions to understand parameters
|
|
203
|
+
3. **Use proper defaults** - `default_factory=list` for lists, `default=None` for optionals
|
|
204
|
+
4. **Handle exceptions** - Wrap logic in try/except and return ToolError
|
|
205
|
+
5. **Make it async** - __call__ should always be async for consistency
|
|
206
|
+
6. **Validate inputs** - Use Field validators (ge, le, min_length, etc.)
|
|
207
|
+
7. **Keep it focused** - One tool should do one thing well
|
|
208
|
+
8. **Document with docstrings** - Module, class, and method docstrings
|
|
209
|
+
|
|
210
|
+
## Common Imports
|
|
211
|
+
|
|
212
|
+
```python
|
|
213
|
+
# Core imports (always needed)
|
|
214
|
+
from kimi_agent_sdk import CallableTool2, ToolError, ToolOk, ToolReturnValue
|
|
215
|
+
from pydantic import BaseModel, Field
|
|
216
|
+
|
|
217
|
+
# Common stdlib imports
|
|
218
|
+
import asyncio
|
|
219
|
+
import os
|
|
220
|
+
from pathlib import Path
|
|
221
|
+
from typing import Any
|
|
222
|
+
|
|
223
|
+
# For subprocess tools
|
|
224
|
+
import subprocess
|
|
225
|
+
import threading
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## File Naming
|
|
229
|
+
|
|
230
|
+
Place your tool in the appropriate module:
|
|
231
|
+
- `my_tools/py/__init__.py` - Python execution tools
|
|
232
|
+
- `my_tools/file/run.py` - File/process tools
|
|
233
|
+
- `my_tools/<category>/<tool_name>.py` - Organize by category
|
|
234
|
+
|
|
235
|
+
## Background Task Tools Reference
|
|
236
|
+
|
|
237
|
+
The `my_tools/background/` module provides tools for managing background tasks:
|
|
238
|
+
|
|
239
|
+
### Tool Classes
|
|
240
|
+
|
|
241
|
+
| Tool | Description | Parameters |
|
|
242
|
+
|------|-------------|------------|
|
|
243
|
+
| `TaskList` | List all background tasks with their status | None |
|
|
244
|
+
| `TaskOutput` | Get accumulated output from a background task | `task_id: str` |
|
|
245
|
+
| `TaskWait` | Wait for a background task to complete | `task_id: str` |
|
|
246
|
+
|
|
247
|
+
### Utility Classes and Functions
|
|
248
|
+
|
|
249
|
+
**BackgroundStream** (`utils.py`)
|
|
250
|
+
A wrapper for background thread execution with a thread-safe queue:
|
|
251
|
+
- `start(function)` - Start the background thread with a given function that accepts a `queue.Queue[str]`
|
|
252
|
+
- `wait()` - Wait for the background thread to complete
|
|
253
|
+
- `pop_output()` - Retrieve and clear all output from the queue
|
|
254
|
+
- `get_output()` - Retrieve all output from the queue without clearing
|
|
255
|
+
- `get_queue()` - Get the thread-safe queue for retrieving messages
|
|
256
|
+
- `is_started()` - Check if the stream has been started
|
|
257
|
+
|
|
258
|
+
**Task Management Functions** (`utils.py`)
|
|
259
|
+
- `generate_task_id(kind, name=None)` - Generate a unique task ID
|
|
260
|
+
- `add_task(task_id, stream)` - Register a task with its BackgroundStream
|
|
261
|
+
- `remove_task_id(task_id)` - Remove a task ID from the global registry
|
|
262
|
+
- `get_all_tasks()` - Get all registered tasks as a dict
|
|
263
|
+
|
|
264
|
+
### Usage Example
|
|
265
|
+
|
|
266
|
+
```python
|
|
267
|
+
from my_tools.background.utils import (
|
|
268
|
+
generate_task_id, add_task, BackgroundStream
|
|
269
|
+
)
|
|
270
|
+
|
|
271
|
+
# Create and start a background task
|
|
272
|
+
stream = BackgroundStream()
|
|
273
|
+
task_id = generate_task_id("download", "file1")
|
|
274
|
+
stream.start(my_background_function, stop_function)
|
|
275
|
+
add_task(task_id, stream)
|
|
276
|
+
|
|
277
|
+
# Later, use tools to interact with the task:
|
|
278
|
+
# - TaskList: List all running tasks
|
|
279
|
+
# - TaskOutput: Get output from a specific task
|
|
280
|
+
# - TaskWait: Wait for a task to complete
|
|
281
|
+
```
|
kimix-0.1.0/.gitignore
ADDED
kimix-0.1.0/.gitmodules
ADDED