kaiten-cli 0.3.3__tar.gz → 0.3.4__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.
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/.gitignore +1 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/AGENTS.md +5 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/API_BEHAVIOR_MATRIX.md +10 -3
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/ARCHITECTURE.md +26 -1
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/LIVE_VALIDATION.md +9 -5
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/PKG-INFO +83 -23
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/README.md +82 -22
- kaiten_cli-0.3.4/docs/DOCUMENT_YJS_VERIFICATION.md +199 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/docs/LOCALIZATION_VERIFICATION.md +4 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/docs/PYPI_PUBLISHING.md +47 -21
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/docs/RESTRICTIONS_VERIFICATION.md +4 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/docs/public-api/README.md +5 -1
- kaiten_cli-0.3.4/js/document-yjs/README.md +51 -0
- kaiten_cli-0.3.4/js/document-yjs/build.mjs +25 -0
- kaiten_cli-0.3.4/js/document-yjs/cli.mjs +30 -0
- kaiten_cli-0.3.4/js/document-yjs/core.mjs +171 -0
- kaiten_cli-0.3.4/js/document-yjs/export-schemas.cjs +37 -0
- kaiten_cli-0.3.4/js/document-yjs/package-lock.json +957 -0
- kaiten_cli-0.3.4/js/document-yjs/package.json +19 -0
- kaiten_cli-0.3.4/js/document-yjs/schemas.json +1 -0
- kaiten_cli-0.3.4/js/document-yjs/test/live-holder.mjs +64 -0
- kaiten_cli-0.3.4/js/document-yjs/test/sync.test.mjs +221 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/pyproject.toml +1 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/scripts/check_locales.py +1 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/skills/kaiten-cli-mutations/SKILL.md +17 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/__init__.py +1 -1
- kaiten_cli-0.3.4/src/kaiten_cli/assets/document_yjs.cjs +16 -0
- kaiten_cli-0.3.4/src/kaiten_cli/assets/document_yjs.cjs.LEGAL.txt +15 -0
- kaiten_cli-0.3.4/src/kaiten_cli/assets/document_yjs.cjs.LICENSES.txt +323 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/locales/ru.json +27 -1
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/documents.py +35 -4
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/behaviors.py +4 -1
- kaiten_cli-0.3.4/src/kaiten_cli/runtime/support/document_sync.py +252 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/documents.py +36 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/trace.py +3 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/live/test_sandbox_live_full.py +1 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_cli_smoke.py +2 -2
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_docs_structure.py +3 -1
- kaiten_cli-0.3.4/tests/test_document_sync.py +444 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_documents_and_tree.py +1 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/SECURITY.md +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/docs/public-api/automation-tables.json +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/docs/public-api/contracts.json +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/docs/public-api/coverage.json +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/docs/public-api/decisions.json +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/scripts/audit_public_api.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/scripts/benchmark_reference_workflows.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/scripts/check_release.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/scripts/extract_automation_docs.cjs +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/scripts/generate_reference_docs.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/scripts/normalize_automation_docs.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/skills/kaiten-cli-heavy-data/SKILL.md +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/skills/kaiten-cli-metrics/SKILL.md +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/__main__.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/agent_gateway.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/app.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/completion.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/discovery.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/errors.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/i18n.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/localized_click.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/models.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/profiles.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/__init__.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/addons.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/audit_and_analytics.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/automation_schema.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/automation_schemas.json +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/automations.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/base.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/blockers.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/boards.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/card_relations.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/card_types.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/cards.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/charts.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/checklists.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/columns.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/comments.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/custom_directories.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/custom_properties.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/dashboards.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/external_links.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/files.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/github_addon.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/iterations.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/lanes.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/live_contracts.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/members.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/module_docs.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/projects.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/query.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/restrictions.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/roles_and_groups.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/scim.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/service_desk.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/snapshot.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/spaces.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/subscribers.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/tags.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/time_logs.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/tree.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/utilities.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/registry/webhooks.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/__init__.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/automation_validation.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/cache.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/client.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/endpoints.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/executor.py +1 -1
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/fs_security.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/input.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/output.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/public_validation.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/snapshot_build.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/snapshot_common.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/snapshot_query.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/snapshot_store.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/snapshots.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/sqlite_errors.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/__init__.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/addons.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/audit.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/batch.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/card_move_url.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/cards.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/checklists.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/company_users.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/dashboards.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/files.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/markdown_export.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/pagination.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/projects.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/relations.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/restrictions.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/spaces.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/time_logs.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/tree.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/support/tree_sharing.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/runtime/transforms.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/schema_docs.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/src/kaiten_cli/update_check.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/conftest.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/data/mcp_aliases.txt +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/live/conftest.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/live/test_automation_contract.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/live/test_restrictions_live.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_addons_and_github_addon.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_agent_gateway.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_audit_and_analytics.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_automation_schemas.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_card_types_and_custom_properties.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_cards_move_by_url.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_charts.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_column_settings.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_command_resolution.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_completion_tail.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_dashboards.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_developer_parity_gaps.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_discovery.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_domain_expansion.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_entrypoints.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_executor_architecture.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_executor_http.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_file_downloads.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_file_uploads.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_fs_security.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_generated_docs.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_input_parsing.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_investigation_workflows.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_iterations.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_live_contracts.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_local_snapshots.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_localization.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_markdown_export.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_narrow_list_fields.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_output_human.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_output_json.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_pagination.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_private_files.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_profiles.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_public_api_cutover.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_public_contract_parity.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_public_input_transport.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_rate_limit_policy.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_registry_examples.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_release.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_restrictions.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_roles_groups_and_subscribers.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_runtime_cache.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_service_desk.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_shell_completion.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_skills_structure.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_timeout_policy.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_transforms.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_tree_entity_sharing.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_update_check.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_utilities_remainder.py +0 -0
- {kaiten_cli-0.3.3 → kaiten_cli-0.3.4}/tests/test_webhooks_and_automations.py +0 -0
|
@@ -5,6 +5,10 @@ This file only captures agent-specific guidance.
|
|
|
5
5
|
For install, human-oriented usage, and the full docs map, start with [README.md](README.md).
|
|
6
6
|
For the full command catalog, use [COMMAND_REFERENCE.md](COMMAND_REFERENCE.md).
|
|
7
7
|
For the system map, use [ARCHITECTURE.md](ARCHITECTURE.md).
|
|
8
|
+
For the PyPI publishing process, use [docs/PYPI_PUBLISHING.md](docs/PYPI_PUBLISHING.md).
|
|
9
|
+
For a stable install, start with `pip install kaiten-cli`; pipx and uv are alternatives.
|
|
10
|
+
Use a Git install when the requested source is a branch or tag. Check the installed
|
|
11
|
+
version separately from the checkout: they can differ.
|
|
8
12
|
For optimized LLM workflows, start with:
|
|
9
13
|
|
|
10
14
|
- [skills/kaiten-cli-heavy-data/SKILL.md](skills/kaiten-cli-heavy-data/SKILL.md)
|
|
@@ -95,3 +99,4 @@ kaiten profile add main --domain <company-subdomain-or-url> --token <api-token>
|
|
|
95
99
|
- Attaching a PR to a card usually means the GitHub addon, not `external-links create`; check both sources when looking for every PR a card references.
|
|
96
100
|
- The GitHub addon UUID is derived from its mount path only on on-premises Kaiten; elsewhere it is random. `addons uid` returns the derived guess, `space-addons list` and `company-addons list` return the real one, and the `github-addon` commands re-resolve it from the card's space when the guess finds no data.
|
|
97
101
|
- Live validation is opt-in and documented in [LIVE_VALIDATION.md](LIVE_VALIDATION.md).
|
|
102
|
+
- For installations without the verified server-side API fix, document content updates should use the explicitly selected temporary compatibility fallback `documents update --content-mode yjs` (requires an existing Node.js 20+). It is a future removal candidate, not deprecated; see the retirement criteria in `docs/DOCUMENT_YJS_VERIFICATION.md`. API replacement of `data`/`text` is blocked without `--allow-unsafe-content-replace` because synchronization with an open editor may duplicate the entire document. Never treat this flag as an automatic fallback after a failed Yjs update; an unacknowledged write may already have been saved.
|
|
@@ -8,18 +8,25 @@
|
|
|
8
8
|
|
|
9
9
|
| Поле | Значение |
|
|
10
10
|
|------|----------|
|
|
11
|
-
|
|
|
11
|
+
| Исторический contract baseline | `kaiten-cli v0.1.23` |
|
|
12
12
|
| Tenant class | Kaiten sandbox test tenant |
|
|
13
|
-
|
|
|
13
|
+
| Последний зафиксированный аудит | `2026-07-09`; live suite **не запускался** |
|
|
14
14
|
| Последняя полная live campaign | `TBD`: дата и commit не подтверждены в репозитории |
|
|
15
|
-
| Источник до следующего live run | checked-in contracts и `tests/live/`; записи ниже
|
|
15
|
+
| Источник до следующего live run | checked-in contracts и `tests/live/`; записи ниже не являются свежей live-проверкой текущего выпуска |
|
|
16
16
|
|
|
17
17
|
После следующей полной live campaign эту таблицу нужно обновить точными датой, commit SHA, версией CLI и tenant class. Secrets, tenant URL и идентификаторы тестовых сущностей сюда не записываются.
|
|
18
18
|
|
|
19
|
+
Публикация новой версии CLI и успешный offline CI не меняют дату или статус
|
|
20
|
+
исторической live-проверки. Текущий command surface задаёт реестр CLI.
|
|
21
|
+
|
|
19
22
|
## Default rule
|
|
20
23
|
|
|
21
24
|
Все canonical команды из registry, которые не перечислены ниже, считаются `live_passed`: они должны проходить по normal success-path в полном live suite.
|
|
22
25
|
|
|
26
|
+
Это правило интерпретации закодированной матрицы и ожидаемого success-path,
|
|
27
|
+
а не свидетельство нового прогона каждой команды. Для добавленных позднее команд
|
|
28
|
+
сохраняется явный статус `live_not_validated` до фактической live-проверки.
|
|
29
|
+
|
|
23
30
|
## Validated success-path contracts with special notes
|
|
24
31
|
|
|
25
32
|
| Command | Verb / Path | Status | Notes |
|
|
@@ -111,6 +111,30 @@ Git URL, and installer commands are passed directly to `subprocess` without a
|
|
|
111
111
|
shell. A confirmed update is a separate local side effect and does not alter the
|
|
112
112
|
already completed Kaiten command.
|
|
113
113
|
|
|
114
|
+
PyPI installations do not use this post-command check. They are updated manually
|
|
115
|
+
through the same installer: pip, pipx, or uv. Git installations retain their Git
|
|
116
|
+
source; the updater does not migrate them to PyPI.
|
|
117
|
+
|
|
118
|
+
## Packaging and Releases
|
|
119
|
+
|
|
120
|
+
Hatchling builds the Python 3.11+ wheel and sdist from `pyproject.toml`; the package
|
|
121
|
+
version comes from `src/kaiten_cli/__init__.py`. Stable installations use PyPI;
|
|
122
|
+
Git installations can follow a branch or a specific tag.
|
|
123
|
+
|
|
124
|
+
Pushing a stable `vX.Y.Z` tag runs release preflight, the full reusable CI and then
|
|
125
|
+
the PyPI upload. Preflight checks the tag/version, triggering commit, ancestry in
|
|
126
|
+
`origin/master` and absence of the version on PyPI. CI checks both archives and
|
|
127
|
+
their installation; the upload job publishes those same artifacts without a rebuild.
|
|
128
|
+
PRs and ordinary `master` pushes run CI without uploading.
|
|
129
|
+
|
|
130
|
+
The upload uses Trusted Publishing through the GitHub environment `pypi`, which
|
|
131
|
+
allows only tags matching `v*`. Only the upload job has `id-token: write`; no
|
|
132
|
+
long-lived PyPI API token is stored in the repository. See the
|
|
133
|
+
[publishing guide](docs/PYPI_PUBLISHING.md) for setup, release and readback steps.
|
|
134
|
+
|
|
135
|
+
The PyPI project description is packaged from README at build time. Updating the
|
|
136
|
+
repository docs does not replace metadata in an already published release.
|
|
137
|
+
|
|
114
138
|
## Mutation Safety
|
|
115
139
|
|
|
116
140
|
- Transport retries are limited to safe HTTP methods. An ambiguous timeout, connection failure, HTTP 5xx, or malformed successful response for a remote mutation is returned without retry and explicitly tells the caller to verify remote state.
|
|
@@ -164,6 +188,7 @@ Primary docs:
|
|
|
164
188
|
- [README.md](README.md) for install, usage, config, and operator guidance
|
|
165
189
|
- [COMMAND_REFERENCE.md](COMMAND_REFERENCE.md) for the full generated command catalog
|
|
166
190
|
- [AGENTS.md](AGENTS.md) for agent-specific usage and safety shortcuts
|
|
191
|
+
- [docs/PYPI_PUBLISHING.md](docs/PYPI_PUBLISHING.md) for PyPI setup, release and verification
|
|
167
192
|
- `skills/` for repo-local LLM workflows in `SKILL.md` format
|
|
168
193
|
- [LIVE_VALIDATION.md](LIVE_VALIDATION.md) for live test process
|
|
169
194
|
- [API_BEHAVIOR_MATRIX.md](API_BEHAVIOR_MATRIX.md) for documented sandbox contracts
|
|
@@ -175,7 +200,7 @@ Primary docs:
|
|
|
175
200
|
|
|
176
201
|
- The manual registry is easy to inspect, but large and maintenance-heavy.
|
|
177
202
|
- Runtime behaviors are now explicit, but still centralized in one behavior module.
|
|
178
|
-
- Request-scoped cache is built in
|
|
203
|
+
- Request-scoped cache is built in; persistent cache defaults to `auto` with adaptive TTLs. Freshness overrides remain explicit.
|
|
179
204
|
- Snapshot refresh is still rebuild-oriented in v1; there is no incremental sync yet.
|
|
180
205
|
- Local metric semantics are still generic; tenant-specific flow profiles are intentionally deferred.
|
|
181
206
|
- The default local card path is intentionally summary-first to reduce token and payload cost before LLM involvement.
|
|
@@ -6,11 +6,14 @@
|
|
|
6
6
|
|
|
7
7
|
## Статус проверки
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
9
|
+
- В последнем зафиксированном аудите от `2026-07-09` live suite **не запускался**.
|
|
10
|
+
- Исторический contract baseline — `kaiten-cli v0.1.23`; tenant class ранее зафиксированных контрактов — Kaiten sandbox test tenant.
|
|
11
11
|
- Дата и commit последней полной live campaign не подтверждены в репозитории и остаются `TBD`.
|
|
12
12
|
- До нового запуска [API_BEHAVIOR_MATRIX.md](API_BEHAVIOR_MATRIX.md) описывает ранее наблюдавшиеся и закодированные контракты, а не свежую проверку production или sandbox API.
|
|
13
13
|
|
|
14
|
+
Версия baseline и дата аудита относятся к истории live-проверок, а не к текущему
|
|
15
|
+
выпуску CLI. Успешный CI и публикация пакета в PyPI не обновляют эти свидетельства.
|
|
16
|
+
|
|
14
17
|
После каждой полной campaign нужно записать в оба документа дату, commit SHA, версию CLI и tenant class, не сохраняя credentials, tenant URL и идентификаторы временных сущностей.
|
|
15
18
|
|
|
16
19
|
## Ограничения пространства
|
|
@@ -108,11 +111,12 @@ Harness делает следующее:
|
|
|
108
111
|
- если live API отвечает `405`, CLI делает `GET /projects/{project_id}?with_cards_data=true`
|
|
109
112
|
- затем извлекает embedded cards list из project payload
|
|
110
113
|
- `checklists.list`
|
|
111
|
-
- direct `GET /cards/{card_id}/checklists`
|
|
114
|
+
- direct `GET /cards/{card_id}/checklists` ранее возвращал `405` на проверенном tenant
|
|
112
115
|
- CLI делает `GET /cards/{card_id}` и извлекает embedded `checklists`
|
|
113
116
|
- `checklist-items.list`
|
|
114
|
-
- direct `GET /cards/{card_id}/checklists/{checklist_id}/items`
|
|
115
|
-
- CLI делает `GET /cards/{card_id}` и извлекает `items` из
|
|
117
|
+
- direct `GET /cards/{card_id}/checklists/{checklist_id}/items` ранее возвращал `405` на проверенных экземплярах
|
|
118
|
+
- CLI делает `GET /cards/{card_id}/checklists/{checklist_id}` и извлекает `items` из отдельного чеклиста
|
|
119
|
+
- ошибки API, включая отсутствие чеклиста, сохраняются; чтения всей карточки как fallback нет
|
|
116
120
|
|
|
117
121
|
## Expected-error contracts
|
|
118
122
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: kaiten-cli
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.4
|
|
4
4
|
Summary: LLM-oriented CLI for Kaiten
|
|
5
5
|
Project-URL: Homepage, https://github.com/ViktorOgnev/kaiten-cli
|
|
6
6
|
Project-URL: Repository, https://github.com/ViktorOgnev/kaiten-cli
|
|
@@ -55,50 +55,108 @@ Description-Content-Type: text/markdown
|
|
|
55
55
|
|
|
56
56
|
Источник истины для CLI — локальный реестр `src/kaiten_cli/registry/`.
|
|
57
57
|
|
|
58
|
+
## Обновление содержимого документов
|
|
59
|
+
|
|
60
|
+
**Временный резервный механизм совместимости.** Режим `--content-mode yjs`
|
|
61
|
+
предназначен для установок, где исправленный серверный API ещё не выпущен или
|
|
62
|
+
не включён. Он сохраняет историю совместного редактирования и остаётся нужен
|
|
63
|
+
для поддержки старых облачных и on-premise установок.
|
|
64
|
+
|
|
65
|
+
Этот fallback выбирается только явно; CLI не переключается на него автоматически
|
|
66
|
+
при ошибках API. Механизм — кандидат на последующее удаление, но пока не объявлен
|
|
67
|
+
deprecated и даты удаления нет.
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
kaiten --locale ru --json --profile main documents update \
|
|
71
|
+
--document-uid <uid> --content-mode yjs --data @document.json
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Можно передать `--text` вместо `--data`. В этом режиме метаданные, например
|
|
75
|
+
`--title`, обновляются отдельной командой. Если Socket.IO работает на отдельном
|
|
76
|
+
сервере, укажите его origin через `--socket-url https://socket.example.com`.
|
|
77
|
+
По умолчанию используется origin выбранного профиля, путь Socket.IO — `/socket.io`.
|
|
78
|
+
Режим использует внутренний протокол Kaiten, а не гарантированный Public API;
|
|
79
|
+
совместимость конкретной установки требует проверки на тестовом документе.
|
|
80
|
+
|
|
81
|
+
Для Yjs нужен заранее установленный **Node.js 20+**. JavaScript-помощник,
|
|
82
|
+
библиотеки и схемы документов уже входят в пакет CLI. CLI не устанавливает Node,
|
|
83
|
+
не запускает npm и не скачивает зависимости. Без Node остальные команды работают;
|
|
84
|
+
Yjs-обновление завершится до записи с `config_error` и кодом выхода `3`.
|
|
85
|
+
|
|
86
|
+
**Полная API-запись может создать дубль всего документа при синхронизации
|
|
87
|
+
с открытым редактором.** Поэтому `documents update` с `data` или `text` без
|
|
88
|
+
Yjs-режима заблокирован (`mutation_blocked`, код `6`). Для осознанного разрешения
|
|
89
|
+
старого PATCH укажите `--allow-unsafe-content-replace`; предупреждение о риске
|
|
90
|
+
будет выведено в stderr, JSON в stdout сохранит прежний формат.
|
|
91
|
+
|
|
92
|
+
Автоматического перехода с Yjs на PATCH и автоматических повторов записи нет.
|
|
93
|
+
Успех Yjs означает подтверждение и проверку сохранённого состояния через повторную
|
|
94
|
+
синхронизацию. При обрыве после отправки CLI сообщает, что результат записи
|
|
95
|
+
неизвестен. При параллельных правках возможен конфликт проверки: CLI не
|
|
96
|
+
перезаписывает чужие изменения повторной попыткой. Результат Yjs содержит
|
|
97
|
+
`document_uid`, `content_mode`, `schema_version`, `data` и `status`
|
|
98
|
+
(`verified` или `unchanged`); это результат синхронизации, а не REST-снимок метаданных.
|
|
99
|
+
Сокетные попытки отражаются в `stats.document_sync` отдельно от HTTP-запросов.
|
|
100
|
+
|
|
101
|
+
Серверные исправления уже смержены, но это не подтверждает их rollout на конкретной
|
|
102
|
+
установке. Удалить резервный путь можно после проверки обычного PATCH с сохранением
|
|
103
|
+
старого состояния редактора, включения исправления на поддерживаемых установках
|
|
104
|
+
и пересмотра минимальной поддерживаемой версии сервера. Подробности и состав
|
|
105
|
+
удаляемого слоя — в [протоколе проверки](docs/DOCUMENT_YJS_VERIFICATION.md#temporary-fallback-and-retirement).
|
|
106
|
+
|
|
58
107
|
## Быстрый старт
|
|
59
108
|
|
|
60
109
|
### Установка из PyPI
|
|
61
110
|
|
|
62
|
-
Требуется Python 3.11 или новее.
|
|
63
|
-
|
|
111
|
+
Требуется Python 3.11 или новее. Стабильные версии доступны в
|
|
112
|
+
[PyPI](https://pypi.org/project/kaiten-cli/), начиная с выпуска `0.3.3`.
|
|
64
113
|
|
|
65
114
|
Рекомендуемый путь:
|
|
66
115
|
|
|
67
116
|
```bash
|
|
68
|
-
|
|
117
|
+
pip install kaiten-cli
|
|
69
118
|
```
|
|
70
119
|
|
|
71
|
-
|
|
120
|
+
Установка CLI в отдельное окружение через pipx:
|
|
72
121
|
|
|
73
122
|
```bash
|
|
74
123
|
pipx install kaiten-cli
|
|
75
124
|
```
|
|
76
125
|
|
|
77
|
-
|
|
126
|
+
Альтернатива через uv:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
uv tool install kaiten-cli
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Для установки через pip можно предварительно создать и активировать виртуальное
|
|
133
|
+
окружение. На macOS и Linux:
|
|
78
134
|
|
|
79
135
|
```bash
|
|
80
136
|
python3 -m venv .venv
|
|
81
|
-
.venv/bin/
|
|
137
|
+
source .venv/bin/activate
|
|
138
|
+
pip install kaiten-cli
|
|
82
139
|
```
|
|
83
140
|
|
|
84
|
-
В
|
|
141
|
+
В Windows PowerShell окружение активируется командой `.\.venv\Scripts\Activate.ps1`.
|
|
85
142
|
|
|
86
143
|
### Установка из Git
|
|
87
144
|
|
|
88
|
-
Для установки текущего состояния
|
|
145
|
+
PyPI устанавливает опубликованный выпуск. Для установки текущего состояния
|
|
146
|
+
`master`, которое может содержать ещё не выпущенные изменения, используйте Git:
|
|
89
147
|
|
|
90
148
|
```bash
|
|
91
|
-
|
|
149
|
+
pip install git+https://github.com/ViktorOgnev/kaiten-cli.git
|
|
92
150
|
```
|
|
93
151
|
|
|
94
152
|
Для установки конкретного выпуска:
|
|
95
153
|
|
|
96
154
|
```bash
|
|
97
|
-
|
|
155
|
+
pip install "git+https://github.com/ViktorOgnev/kaiten-cli.git@v0.3.4"
|
|
98
156
|
```
|
|
99
157
|
|
|
100
|
-
Вместо `
|
|
101
|
-
`python -m pip install
|
|
158
|
+
Вместо `pip install` можно использовать `pipx install` или `uv tool install`.
|
|
159
|
+
Чтобы выбрать конкретный Python для pip, используйте `python -m pip install`.
|
|
102
160
|
|
|
103
161
|
### Проверка установки
|
|
104
162
|
|
|
@@ -239,39 +297,41 @@ PowerShell необходимо использовать отдельную ру
|
|
|
239
297
|
Для установки из PyPI обновление выполняется вручную тем же менеджером:
|
|
240
298
|
|
|
241
299
|
```bash
|
|
242
|
-
uv tool upgrade kaiten-cli
|
|
243
|
-
pipx upgrade kaiten-cli
|
|
244
300
|
python -m pip install --upgrade kaiten-cli
|
|
301
|
+
pipx upgrade kaiten-cli
|
|
302
|
+
uv tool upgrade kaiten-cli
|
|
245
303
|
```
|
|
246
304
|
|
|
247
305
|
Выберите команду своего менеджера; для pip используйте Python того окружения,
|
|
248
306
|
куда установлен пакет. Встроенное предложение обновиться для установок из PyPI
|
|
249
307
|
пока не поддерживается.
|
|
250
308
|
|
|
251
|
-
|
|
309
|
+
Для установки из Git-ветки `master` обновление выполняется вручную:
|
|
252
310
|
|
|
253
311
|
```bash
|
|
254
|
-
|
|
312
|
+
python -m pip install --upgrade git+https://github.com/ViktorOgnev/kaiten-cli.git
|
|
255
313
|
pipx upgrade kaiten-cli
|
|
314
|
+
uv tool upgrade kaiten-cli
|
|
256
315
|
```
|
|
257
316
|
|
|
258
317
|
Установка из Git без тега использует текущую версию из ветки `master`.
|
|
259
318
|
Установку можно закрепить на конкретном выпуске с помощью тега:
|
|
260
319
|
|
|
261
320
|
```bash
|
|
262
|
-
|
|
321
|
+
pip install "git+https://github.com/ViktorOgnev/kaiten-cli.git@v0.3.4"
|
|
263
322
|
```
|
|
264
323
|
|
|
265
|
-
|
|
266
|
-
проверяет стабильные теги `vX.Y.Z` в том же
|
|
267
|
-
релиз, появляется вопрос `Update now ...? [y/N]`.
|
|
324
|
+
При установке из Git CLI после успешной команды в интерактивном терминале
|
|
325
|
+
не чаще одного раза в сутки проверяет стабильные теги `vX.Y.Z` в том же
|
|
326
|
+
Git-репозитории. Если найден новый релиз, появляется вопрос `Update now ...? [y/N]`.
|
|
327
|
+
Основная команда к этому
|
|
268
328
|
моменту уже завершена; подтверждённое обновление применяется со следующего запуска.
|
|
269
329
|
|
|
270
330
|
Способ обновления соответствует способу установки:
|
|
271
331
|
|
|
272
|
-
-
|
|
332
|
+
- виртуальное окружение и pip → текущий `python -m pip install --upgrade <git-source>`;
|
|
273
333
|
- `pipx` → `pipx upgrade kaiten-cli`;
|
|
274
|
-
-
|
|
334
|
+
- `uv tool` → `uv tool upgrade kaiten-cli`.
|
|
275
335
|
|
|
276
336
|
Для установки, закреплённой на `@vX.Y.Z`, подтверждение заменяет текущий тег на
|
|
277
337
|
новый с помощью того же менеджера. Проверка не запускается в режиме `--json`,
|
|
@@ -10,50 +10,108 @@
|
|
|
10
10
|
|
|
11
11
|
Источник истины для CLI — локальный реестр `src/kaiten_cli/registry/`.
|
|
12
12
|
|
|
13
|
+
## Обновление содержимого документов
|
|
14
|
+
|
|
15
|
+
**Временный резервный механизм совместимости.** Режим `--content-mode yjs`
|
|
16
|
+
предназначен для установок, где исправленный серверный API ещё не выпущен или
|
|
17
|
+
не включён. Он сохраняет историю совместного редактирования и остаётся нужен
|
|
18
|
+
для поддержки старых облачных и on-premise установок.
|
|
19
|
+
|
|
20
|
+
Этот fallback выбирается только явно; CLI не переключается на него автоматически
|
|
21
|
+
при ошибках API. Механизм — кандидат на последующее удаление, но пока не объявлен
|
|
22
|
+
deprecated и даты удаления нет.
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
kaiten --locale ru --json --profile main documents update \
|
|
26
|
+
--document-uid <uid> --content-mode yjs --data @document.json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Можно передать `--text` вместо `--data`. В этом режиме метаданные, например
|
|
30
|
+
`--title`, обновляются отдельной командой. Если Socket.IO работает на отдельном
|
|
31
|
+
сервере, укажите его origin через `--socket-url https://socket.example.com`.
|
|
32
|
+
По умолчанию используется origin выбранного профиля, путь Socket.IO — `/socket.io`.
|
|
33
|
+
Режим использует внутренний протокол Kaiten, а не гарантированный Public API;
|
|
34
|
+
совместимость конкретной установки требует проверки на тестовом документе.
|
|
35
|
+
|
|
36
|
+
Для Yjs нужен заранее установленный **Node.js 20+**. JavaScript-помощник,
|
|
37
|
+
библиотеки и схемы документов уже входят в пакет CLI. CLI не устанавливает Node,
|
|
38
|
+
не запускает npm и не скачивает зависимости. Без Node остальные команды работают;
|
|
39
|
+
Yjs-обновление завершится до записи с `config_error` и кодом выхода `3`.
|
|
40
|
+
|
|
41
|
+
**Полная API-запись может создать дубль всего документа при синхронизации
|
|
42
|
+
с открытым редактором.** Поэтому `documents update` с `data` или `text` без
|
|
43
|
+
Yjs-режима заблокирован (`mutation_blocked`, код `6`). Для осознанного разрешения
|
|
44
|
+
старого PATCH укажите `--allow-unsafe-content-replace`; предупреждение о риске
|
|
45
|
+
будет выведено в stderr, JSON в stdout сохранит прежний формат.
|
|
46
|
+
|
|
47
|
+
Автоматического перехода с Yjs на PATCH и автоматических повторов записи нет.
|
|
48
|
+
Успех Yjs означает подтверждение и проверку сохранённого состояния через повторную
|
|
49
|
+
синхронизацию. При обрыве после отправки CLI сообщает, что результат записи
|
|
50
|
+
неизвестен. При параллельных правках возможен конфликт проверки: CLI не
|
|
51
|
+
перезаписывает чужие изменения повторной попыткой. Результат Yjs содержит
|
|
52
|
+
`document_uid`, `content_mode`, `schema_version`, `data` и `status`
|
|
53
|
+
(`verified` или `unchanged`); это результат синхронизации, а не REST-снимок метаданных.
|
|
54
|
+
Сокетные попытки отражаются в `stats.document_sync` отдельно от HTTP-запросов.
|
|
55
|
+
|
|
56
|
+
Серверные исправления уже смержены, но это не подтверждает их rollout на конкретной
|
|
57
|
+
установке. Удалить резервный путь можно после проверки обычного PATCH с сохранением
|
|
58
|
+
старого состояния редактора, включения исправления на поддерживаемых установках
|
|
59
|
+
и пересмотра минимальной поддерживаемой версии сервера. Подробности и состав
|
|
60
|
+
удаляемого слоя — в [протоколе проверки](docs/DOCUMENT_YJS_VERIFICATION.md#temporary-fallback-and-retirement).
|
|
61
|
+
|
|
13
62
|
## Быстрый старт
|
|
14
63
|
|
|
15
64
|
### Установка из PyPI
|
|
16
65
|
|
|
17
|
-
Требуется Python 3.11 или новее.
|
|
18
|
-
|
|
66
|
+
Требуется Python 3.11 или новее. Стабильные версии доступны в
|
|
67
|
+
[PyPI](https://pypi.org/project/kaiten-cli/), начиная с выпуска `0.3.3`.
|
|
19
68
|
|
|
20
69
|
Рекомендуемый путь:
|
|
21
70
|
|
|
22
71
|
```bash
|
|
23
|
-
|
|
72
|
+
pip install kaiten-cli
|
|
24
73
|
```
|
|
25
74
|
|
|
26
|
-
|
|
75
|
+
Установка CLI в отдельное окружение через pipx:
|
|
27
76
|
|
|
28
77
|
```bash
|
|
29
78
|
pipx install kaiten-cli
|
|
30
79
|
```
|
|
31
80
|
|
|
32
|
-
|
|
81
|
+
Альтернатива через uv:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
uv tool install kaiten-cli
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Для установки через pip можно предварительно создать и активировать виртуальное
|
|
88
|
+
окружение. На macOS и Linux:
|
|
33
89
|
|
|
34
90
|
```bash
|
|
35
91
|
python3 -m venv .venv
|
|
36
|
-
.venv/bin/
|
|
92
|
+
source .venv/bin/activate
|
|
93
|
+
pip install kaiten-cli
|
|
37
94
|
```
|
|
38
95
|
|
|
39
|
-
В
|
|
96
|
+
В Windows PowerShell окружение активируется командой `.\.venv\Scripts\Activate.ps1`.
|
|
40
97
|
|
|
41
98
|
### Установка из Git
|
|
42
99
|
|
|
43
|
-
Для установки текущего состояния
|
|
100
|
+
PyPI устанавливает опубликованный выпуск. Для установки текущего состояния
|
|
101
|
+
`master`, которое может содержать ещё не выпущенные изменения, используйте Git:
|
|
44
102
|
|
|
45
103
|
```bash
|
|
46
|
-
|
|
104
|
+
pip install git+https://github.com/ViktorOgnev/kaiten-cli.git
|
|
47
105
|
```
|
|
48
106
|
|
|
49
107
|
Для установки конкретного выпуска:
|
|
50
108
|
|
|
51
109
|
```bash
|
|
52
|
-
|
|
110
|
+
pip install "git+https://github.com/ViktorOgnev/kaiten-cli.git@v0.3.4"
|
|
53
111
|
```
|
|
54
112
|
|
|
55
|
-
Вместо `
|
|
56
|
-
`python -m pip install
|
|
113
|
+
Вместо `pip install` можно использовать `pipx install` или `uv tool install`.
|
|
114
|
+
Чтобы выбрать конкретный Python для pip, используйте `python -m pip install`.
|
|
57
115
|
|
|
58
116
|
### Проверка установки
|
|
59
117
|
|
|
@@ -194,39 +252,41 @@ PowerShell необходимо использовать отдельную ру
|
|
|
194
252
|
Для установки из PyPI обновление выполняется вручную тем же менеджером:
|
|
195
253
|
|
|
196
254
|
```bash
|
|
197
|
-
uv tool upgrade kaiten-cli
|
|
198
|
-
pipx upgrade kaiten-cli
|
|
199
255
|
python -m pip install --upgrade kaiten-cli
|
|
256
|
+
pipx upgrade kaiten-cli
|
|
257
|
+
uv tool upgrade kaiten-cli
|
|
200
258
|
```
|
|
201
259
|
|
|
202
260
|
Выберите команду своего менеджера; для pip используйте Python того окружения,
|
|
203
261
|
куда установлен пакет. Встроенное предложение обновиться для установок из PyPI
|
|
204
262
|
пока не поддерживается.
|
|
205
263
|
|
|
206
|
-
|
|
264
|
+
Для установки из Git-ветки `master` обновление выполняется вручную:
|
|
207
265
|
|
|
208
266
|
```bash
|
|
209
|
-
|
|
267
|
+
python -m pip install --upgrade git+https://github.com/ViktorOgnev/kaiten-cli.git
|
|
210
268
|
pipx upgrade kaiten-cli
|
|
269
|
+
uv tool upgrade kaiten-cli
|
|
211
270
|
```
|
|
212
271
|
|
|
213
272
|
Установка из Git без тега использует текущую версию из ветки `master`.
|
|
214
273
|
Установку можно закрепить на конкретном выпуске с помощью тега:
|
|
215
274
|
|
|
216
275
|
```bash
|
|
217
|
-
|
|
276
|
+
pip install "git+https://github.com/ViktorOgnev/kaiten-cli.git@v0.3.4"
|
|
218
277
|
```
|
|
219
278
|
|
|
220
|
-
|
|
221
|
-
проверяет стабильные теги `vX.Y.Z` в том же
|
|
222
|
-
релиз, появляется вопрос `Update now ...? [y/N]`.
|
|
279
|
+
При установке из Git CLI после успешной команды в интерактивном терминале
|
|
280
|
+
не чаще одного раза в сутки проверяет стабильные теги `vX.Y.Z` в том же
|
|
281
|
+
Git-репозитории. Если найден новый релиз, появляется вопрос `Update now ...? [y/N]`.
|
|
282
|
+
Основная команда к этому
|
|
223
283
|
моменту уже завершена; подтверждённое обновление применяется со следующего запуска.
|
|
224
284
|
|
|
225
285
|
Способ обновления соответствует способу установки:
|
|
226
286
|
|
|
227
|
-
-
|
|
287
|
+
- виртуальное окружение и pip → текущий `python -m pip install --upgrade <git-source>`;
|
|
228
288
|
- `pipx` → `pipx upgrade kaiten-cli`;
|
|
229
|
-
-
|
|
289
|
+
- `uv tool` → `uv tool upgrade kaiten-cli`.
|
|
230
290
|
|
|
231
291
|
Для установки, закреплённой на `@vX.Y.Z`, подтверждение заменяет текущий тег на
|
|
232
292
|
новый с помощью того же менеджера. Проверка не запускается в режиме `--json`,
|