yee88 0.6.1__tar.gz → 0.6.3__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.
- {yee88-0.6.1 → yee88-0.6.3}/PKG-INFO +1 -1
- {yee88-0.6.1 → yee88-0.6.3}/changelog.md +6 -0
- {yee88-0.6.1 → yee88-0.6.3}/pyproject.toml +1 -1
- yee88-0.6.3/src/yee88/__init__.py +1 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/runners/claude.py +3 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/runners/codex.py +14 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/runners/opencode.py +3 -3
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/runners/pi.py +3 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/model.py +42 -1
- yee88-0.6.1/src/yee88/__init__.py +0 -1
- {yee88-0.6.1 → yee88-0.6.3}/.codex/AGENTS.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/.github/workflows/ci.yml +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/.github/workflows/release.yml +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/.gitignore +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/.sisyphus/plans/yee88-architecture-review.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/Justfile +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/LICENSE +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/README.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/assets/favicon.svg +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/assets/logo.svg +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/assets/og-image.jpg +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/assets/takopi.svg +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/developing.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/explanation/architecture.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/explanation/index.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/explanation/module-map.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/explanation/plugin-system.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/explanation/routing-and-sessions.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/add-a-runner.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/chat-sessions.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/dev-setup.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/file-transfer.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/index.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/projects.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/route-by-chat.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/schedule-tasks.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/switch-engines.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/topics.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/troubleshooting.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/voice-notes.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/worktrees.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/how-to/write-a-plugin.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/index.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/javascripts/hero-chat.js +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/overrides/.icons/takopi/takopi.svg +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/overrides/main.html +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/plugins.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/agents/index.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/agents/invariants.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/agents/repo-map.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/commands-and-directives.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/config.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/context-resolution.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/env-vars.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/index.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/plugin-api.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/plugins.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/runners/claude/runner.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/runners/claude/stream-json-cheatsheet.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/runners/claude/takopi-events.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/runners/codex/exec-json-cheatsheet.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/runners/codex/takopi-events.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/runners/index.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/runners/opencode/runner.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/runners/opencode/stream-json-cheatsheet.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/runners/opencode/takopi-events.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/runners/pi/runner.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/runners/pi/stream-json-cheatsheet.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/runners/pi/takopi-events.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/specification.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/reference/transports/telegram.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/stylesheets/admonitions.css +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/stylesheets/hero-chat.css +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/stylesheets/workflow-preview.css +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/tutorials/conversation-modes.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/tutorials/first-run.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/tutorials/index.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/tutorials/install.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/tutorials/multi-engine.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/tutorials/projects-and-branches.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/user-guide-zh.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/docs/user-guide.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/readme.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/scripts/commit_notify.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/scripts/docs_build_cf.sh +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/scripts/docs_prebuild.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/scripts/onboarding_preview.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/scripts/release_notify.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/api.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/backends.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/backends_helpers.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cli/__init__.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cli/config.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cli/cron.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cli/doctor.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cli/init.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cli/onboarding_cmd.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cli/plugins.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cli/reload.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cli/run.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cli/topic.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/commands.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/config.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/config_migrations.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/config_watch.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/context.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cron/__init__.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cron/manager.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cron/models.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/cron/scheduler.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/directives.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/engines.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/events.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/ids.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/lockfile.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/logging.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/markdown.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/model.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/plugins.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/presenter.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/progress.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/router.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/runner.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/runner_bridge.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/runners/__init__.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/runners/mock.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/runners/run_options.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/runners/tool_actions.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/runtime_loader.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/scheduler.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/schemas/__init__.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/schemas/claude.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/schemas/codex.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/schemas/opencode.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/schemas/pi.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/settings.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/skills/yee88/SKILL.md +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/__init__.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/api_models.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/api_schemas.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/backend.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/bridge.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/chat_prefs.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/chat_sessions.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/client.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/client_api.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/__init__.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/agent.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/cancel.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/dispatch.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/executor.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/file_transfer.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/handlers.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/media.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/menu.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/overrides.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/parse.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/plan.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/reasoning.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/reply.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/topics.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/commands/trigger.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/context.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/engine_defaults.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/engine_overrides.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/files.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/loop.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/onboarding.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/outbox.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/parsing.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/render.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/state_store.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/topic_state.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/topics.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/trigger_mode.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/types.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/telegram/voice.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/transport.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/transport_runtime.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/transports.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/utils/__init__.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/utils/git.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/utils/json_state.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/utils/paths.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/utils/streams.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/utils/subprocess.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/src/yee88/worktrees.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/__init__.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/conftest.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/factories.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/fixtures/claude_stream_json_session.jsonl +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/fixtures/codex_exec_json_all_formats.jsonl +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/fixtures/codex_exec_json_all_formats.txt +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/fixtures/opencode_run_json.jsonl +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/fixtures/opencode_stream_error.jsonl +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/fixtures/opencode_stream_success.jsonl +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/fixtures/opencode_stream_success_no_reason.jsonl +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/fixtures/pi_print_mode_events.jsonl +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/fixtures/pi_stream_error.jsonl +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/fixtures/pi_stream_success.jsonl +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/plugin_fixtures.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/telegram_fakes.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_api_exports.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_auto_router.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_claude_runner.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_claude_schema.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_cli_auto_router.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_cli_chat_id.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_cli_commands.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_cli_config.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_cli_doctor.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_cli_helpers.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_codex_runner_helpers.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_codex_schema.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_codex_tool_result_summary.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_command_registry.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_config_store.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_config_watch.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_engine_discovery.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_exec_bridge.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_exec_render.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_exec_runner.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_git_utils.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_lockfile.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_onboarding.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_onboarding_helpers.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_onboarding_interactive.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_opencode_runner.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_opencode_schema.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_paths.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_pi_runner.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_pi_schema.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_plugins.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_projects_config.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_rendering.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_runner_contract.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_runner_run_options.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_runner_utils.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_runtime_loader.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_settings.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_settings_contract.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_subprocess.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_agent_trigger_commands.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_backend.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_bridge.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_chat_prefs.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_chat_sessions.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_client.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_client_api.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_context_helpers.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_engine_defaults.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_engine_overrides.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_file_transfer_helpers.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_files.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_incoming.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_media_command.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_polling.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_queue.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_topic_state.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_topics_command.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_topics_helpers.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_trigger_mode.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_telegram_voice.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_tool_actions.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_transport.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_transport_registry.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_transport_runtime.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/tests/test_worktrees.py +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/uv.lock +0 -0
- {yee88-0.6.1 → yee88-0.6.3}/zensical.toml +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.6.2"
|
|
@@ -311,6 +311,9 @@ class ClaudeRunner(ResumeTokenMixin, JsonlSubprocessRunner):
|
|
|
311
311
|
args.extend(["--allowedTools", allowed_tools])
|
|
312
312
|
if self.dangerously_skip_permissions is True:
|
|
313
313
|
args.append("--dangerously-skip-permissions")
|
|
314
|
+
# Apply system prompt as prefix only on first run (when resume is None)
|
|
315
|
+
if resume is None and run_options is not None and run_options.system:
|
|
316
|
+
prompt = f"{run_options.system}\n\n---\n\n{prompt}"
|
|
314
317
|
args.append("--")
|
|
315
318
|
args.append(prompt)
|
|
316
319
|
return args
|
|
@@ -405,6 +405,7 @@ class CodexRunner(ResumeTokenMixin, JsonlSubprocessRunner):
|
|
|
405
405
|
engine: EngineId = ENGINE
|
|
406
406
|
resume_re = _RESUME_RE
|
|
407
407
|
logger = logger
|
|
408
|
+
model: str | None = None
|
|
408
409
|
|
|
409
410
|
def __init__(
|
|
410
411
|
self,
|
|
@@ -453,6 +454,19 @@ class CodexRunner(ResumeTokenMixin, JsonlSubprocessRunner):
|
|
|
453
454
|
args.append("-")
|
|
454
455
|
return args
|
|
455
456
|
|
|
457
|
+
def stdin_payload(
|
|
458
|
+
self,
|
|
459
|
+
prompt: str,
|
|
460
|
+
resume: ResumeToken | None,
|
|
461
|
+
*,
|
|
462
|
+
state: Any,
|
|
463
|
+
) -> bytes | None:
|
|
464
|
+
run_options = get_run_options()
|
|
465
|
+
# Apply system prompt as prefix only on first run (when resume is None)
|
|
466
|
+
if resume is None and run_options is not None and run_options.system:
|
|
467
|
+
prompt = f"{run_options.system}\n\n---\n\n{prompt}"
|
|
468
|
+
return prompt.encode()
|
|
469
|
+
|
|
456
470
|
def new_state(self, prompt: str, resume: ResumeToken | None) -> CodexRunState:
|
|
457
471
|
return CodexRunState(factory=EventFactory(ENGINE))
|
|
458
472
|
|
|
@@ -335,9 +335,9 @@ class OpenCodeRunner(ResumeTokenMixin, JsonlSubprocessRunner):
|
|
|
335
335
|
model = run_options.model
|
|
336
336
|
if model is not None:
|
|
337
337
|
args.extend(["--model", str(model)])
|
|
338
|
-
# Apply system prompt as prefix
|
|
339
|
-
if run_options is not None and run_options.system:
|
|
340
|
-
prompt = f"{run_options.system}\n\n{prompt}"
|
|
338
|
+
# Apply system prompt as prefix only on first run (when resume is None)
|
|
339
|
+
if resume is None and run_options is not None and run_options.system:
|
|
340
|
+
prompt = f"{run_options.system}\n\n---\n\n{prompt}"
|
|
341
341
|
args.extend(["--", prompt])
|
|
342
342
|
return args
|
|
343
343
|
|
|
@@ -333,6 +333,9 @@ class PiRunner(ResumeTokenMixin, JsonlSubprocessRunner):
|
|
|
333
333
|
if model:
|
|
334
334
|
args.extend(["--model", model])
|
|
335
335
|
args.extend(["--session", state.resume.value])
|
|
336
|
+
# Apply system prompt as prefix only on first run (when resume is None)
|
|
337
|
+
if resume is None and run_options is not None and run_options.system:
|
|
338
|
+
prompt = f"{run_options.system}\n\n---\n\n{prompt}"
|
|
336
339
|
args.append(self._sanitize_prompt(prompt))
|
|
337
340
|
return args
|
|
338
341
|
|
|
@@ -29,7 +29,7 @@ MODEL_SELECT_CALLBACK_PREFIX = "yee88:model_select:"
|
|
|
29
29
|
|
|
30
30
|
MODEL_USAGE = (
|
|
31
31
|
"usage: `/model`, `/model status`, `/model set <model>`, "
|
|
32
|
-
"`/model set <engine> <model>`,
|
|
32
|
+
"`/model set <engine> <model>`, `/model clear [engine]`, or `/model reset`"
|
|
33
33
|
)
|
|
34
34
|
|
|
35
35
|
|
|
@@ -339,4 +339,45 @@ async def _handle_model_command(
|
|
|
339
339
|
await reply(text="chat model override cleared.")
|
|
340
340
|
return
|
|
341
341
|
|
|
342
|
+
if action == "reset":
|
|
343
|
+
if len(tokens) > 1:
|
|
344
|
+
await reply(text=MODEL_USAGE)
|
|
345
|
+
return
|
|
346
|
+
if not await require_admin_or_private(
|
|
347
|
+
cfg,
|
|
348
|
+
msg,
|
|
349
|
+
missing_sender="cannot verify sender for model overrides.",
|
|
350
|
+
failed_member="failed to verify model override permissions.",
|
|
351
|
+
denied="changing model overrides is restricted to group admins.",
|
|
352
|
+
):
|
|
353
|
+
return
|
|
354
|
+
|
|
355
|
+
cleared_engines = []
|
|
356
|
+
for engine in engine_ids:
|
|
357
|
+
scope = await apply_engine_override(
|
|
358
|
+
reply=reply,
|
|
359
|
+
tkey=tkey,
|
|
360
|
+
topic_store=topic_store,
|
|
361
|
+
chat_prefs=chat_prefs,
|
|
362
|
+
chat_id=msg.chat_id,
|
|
363
|
+
engine=engine,
|
|
364
|
+
update=lambda current: EngineOverrides(
|
|
365
|
+
model=None,
|
|
366
|
+
reasoning=current.reasoning if current is not None else None,
|
|
367
|
+
),
|
|
368
|
+
topic_unavailable="topic model overrides are unavailable.",
|
|
369
|
+
chat_unavailable="chat model overrides are unavailable (no config path).",
|
|
370
|
+
)
|
|
371
|
+
if scope is not None:
|
|
372
|
+
cleared_engines.append(engine)
|
|
373
|
+
|
|
374
|
+
if cleared_engines:
|
|
375
|
+
engines_list = ", ".join(cleared_engines)
|
|
376
|
+
await reply(
|
|
377
|
+
text=f"all model overrides reset to default for engines: {engines_list}"
|
|
378
|
+
)
|
|
379
|
+
else:
|
|
380
|
+
await reply(text="no model overrides to reset.")
|
|
381
|
+
return
|
|
382
|
+
|
|
342
383
|
await reply(text=MODEL_USAGE)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.6.1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|