direct-cli 0.3.16__tar.gz → 0.4.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.
- {direct_cli-0.3.16 → direct_cli-0.4.0}/CHANGELOG.md +42 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/PKG-INFO +1 -1
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli.egg-info/PKG-INFO +1 -1
- {direct_cli-0.3.16 → direct_cli-0.4.0}/pyproject.toml +1 -1
- {direct_cli-0.3.16 → direct_cli-0.4.0}/.env.example +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/.github/copilot-instructions.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/.github/workflows/api-coverage.yml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/.github/workflows/claude.yml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/.github/workflows/quality.yml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/.gitignore +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/AGENTS.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/CLAUDE.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/MANIFEST.in +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/README.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/__init__.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_bidding_strategy.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_deprecated.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_smoke_probes.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/__init__.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/__init__.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/endpoints.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/exceptions.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/resource_mapping.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/tapi_yandex_direct.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/tapi_yandex_direct.pyi +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/v4/__init__.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/v4/adapter.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/v4/adapter.pyi +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/v4/resource_mapping.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/api.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/auth.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/cli.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/__init__.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/adextensions.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/adgroups.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/adimages.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/ads.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/advideos.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/agencyclients.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/audiencetargets.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/auth.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/balance.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/bidmodifiers.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/bids.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/businesses.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/campaigns.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/changes.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/clients.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/creatives.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/dictionaries.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/dynamicads.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/dynamicfeedadtargets.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/feeds.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/keywordbids.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/keywords.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/keywordsresearch.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/leads.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/negativekeywordsharedsets.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/reports.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/retargeting.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/sitelinks.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/smartadtargets.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/strategies.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/turbopages.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/v4account.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/v4events.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/v4finance.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/v4forecast.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/v4goals.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/v4shells.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/v4tags.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/v4wordstat.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/commands/vcards.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/i18n.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/output.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/reports_coverage.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/smoke_matrix.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/utils.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/v4/__init__.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/v4/money.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/v4_contracts.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/wsdl_coverage.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli.egg-info/SOURCES.txt +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli.egg-info/dependency_links.txt +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli.egg-info/entry_points.txt +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli.egg-info/requires.txt +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli.egg-info/top_level.txt +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/docs/audits/API_COVERAGE.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/docs/audits/PROJECT_WIRE_SHAPE_AUDIT_2026-05-29.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/docs/audits/issue-198-mutating-wsdl-audit.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/docs/audits/wire_shape.json +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/docs/superpowers/plans/2026-04-12-issue-32-completion.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/docs/superpowers/specs/2026-04-23-vendor-tapi-yandex-direct-design.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/anonymize_cassettes.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/audit_wire_shape.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/build_api_coverage_checklist.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/build_api_coverage_report.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/build_wsdl_optional_field_audit.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/check_all_docs_urls.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/check_reports_drift.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/check_wsdl_drift.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/patch_vendor_imports.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/preflight_check.sh +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/refresh_reports_cache.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/refresh_wsdl_cache.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/release_pypi.sh +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/sandbox_write_audit.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/sandbox_write_live.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/test_dangerous_commands.sh +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/test_safe_commands.sh +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/test_sandbox_write.sh +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/scripts/update_vendor.sh +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/setup.cfg +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/setup.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/API_COVERAGE.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/API_ISSUE_AUDIT.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/MANUAL_COVERAGE.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/WSDL_OPTIONAL_FIELD_AUDIT.md +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/__init__.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/_orphan_store.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/api_coverage_payloads.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteAdExtensions.test_add_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteAdGroups.test_add_update_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteAdImages.test_add_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteAds.test_add_text_ad_update_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteAudienceTargets.test_add_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteBidModifiersAdd.test_add_delete_mobile.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteBidModifiersSet.test_set_without_id_is_rejected.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteBids.test_set_bid.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteBidsRead.test_bids_get.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteBidsRead.test_bids_set_auto.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteCampaignDraftLifecycle.test_draft_create_get_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteCampaigns.test_campaign_lifecycle.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteDynamicAds.test_add_update_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteFeeds.test_add_update_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteKeywordBids.test_set_keyword_bid.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteKeywords.test_add_update_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteNegativeKeywordSharedSets.test_add_update_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteRetargeting.test_add_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteRetargetingUpdate.test_retargeting_update.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteSitelinks.test_add_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteSmartAdTargets.test_add_update_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteStrategies.test_strategies_lifecycle.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_integration_write/TestWriteVCards.test_add_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[adextensions_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[adgroups_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[adimages_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[ads_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[advideos_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[audiencetargets_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[bidmodifiers_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[bids_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[businesses_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[campaigns_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[changes_check].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[changes_check_campaigns].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[changes_check_dictionaries].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[clients_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[creatives_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[dictionaries_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[dynamicads_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[dynamicfeedadtargets_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[feeds_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[keywordbids_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[keywords_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[keywordsresearch_deduplicate].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[keywordsresearch_has_search_volume].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[leads_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[negativekeywordsharedsets_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[reports_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[retargeting_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[sitelinks_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[smartadtargets_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[strategies_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[turbopages_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[v4events_get_events_log].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[v4finance_get_clients_units].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[v4forecast_list].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[v4goals_get_stat_goals].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[v4tags_get_campaigns].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[v4wordstat_list_reports].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_read_command[vcards_get].yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_read_cassettes/test_v4finance_check_payment_unknown_transaction.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_adgroups_add_update_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_adimages_add_get_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_ads_add_update_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_ads_suspend_resume_archive_unarchive.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_advideos_add_get.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_audiencetargets_add_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_audiencetargets_suspend_resume.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_bids_set.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_campaign_create_get_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_creatives_chain_advideo_to_creative.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_dynamicads_add_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_dynamicads_suspend_resume.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_keywordbids_set.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_keywords_add_update_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_keywords_suspend_resume.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_sitelinks_add_get_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_smartadtargets_add_update_delete.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/cassettes/test_v5_live_write/test_v5_live_draft_smartadtargets_suspend_resume.yaml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/conftest.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/fixtures/test-video.mp4 +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/reports_cache/raw/fields-list.html +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/reports_cache/raw/headers.html +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/reports_cache/raw/period.html +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/reports_cache/raw/spec.html +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/reports_cache/raw/type.html +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/reports_cache/spec.json +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_api_coverage.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_audit_wire_shape.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_auth_bw.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_auth_oauth.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_auth_op.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_auth_write_json.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_balance.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_changes.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_cli.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_cli_contract.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_comprehensive.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_dry_run.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_env_loading.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_i18n.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_integration.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_integration_write.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_low_coverage_payloads.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_read_cassettes.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_reports_drift.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_reports_parsing.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_sandbox_write_audit.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_smoke_matrix.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_transport_contract.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_unknown_option_hints.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4_contracts.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4_exit_codes.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4_foundation.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4_live_contracts.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4_runtime_shape.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4_safety.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4account.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4events.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4finance_money.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4finance_read.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4forecast.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4goals.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4tags.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v4wordstat.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_v5_live_write.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_vendor_imports.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/test_wsdl_parity_gate.py +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/adextensions.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/adgroups.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/adimages.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/ads.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/advideos.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/agencyclients.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/audiencetargets.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/bidmodifiers.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/bids.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/businesses.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/campaigns.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/changes.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/clients.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/creatives.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/dictionaries.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/dynamicfeedadtargets.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/dynamictextadtargets.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/feeds.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/imports/adextensiontypes.xsd +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/imports/general.xsd +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/imports/generalclients.xsd +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/keywordbids.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/keywords.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/keywordsresearch.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/leads.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/negativekeywordsharedsets.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/retargetinglists.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/sitelinks.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/smartadtargets.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/strategies.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/turbopages.xml +0 -0
- {direct_cli-0.3.16 → direct_cli-0.4.0}/tests/wsdl_cache/vcards.xml +0 -0
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
Milestone release closing the 0.4.0 roadmap (#123): typed Yandex Direct
|
|
6
|
+
API **v4 Live** CLI support and completion of the post-0.3.0 write-command
|
|
7
|
+
coverage gates. All public v4 input stays typed and canonical — no `--json`
|
|
8
|
+
passthrough — and mirrors `dg-v4/live/*` wire shapes 1:1.
|
|
9
|
+
|
|
10
|
+
**Added — typed v4 Live CLI:**
|
|
11
|
+
|
|
12
|
+
- v4 Live command foundation with typed Click groups and a `--dry-run`
|
|
13
|
+
seam that prints the `{method, param}` body before token/locale
|
|
14
|
+
enrichment (#124, closes #111 — typed CLI, not raw JSON passthrough).
|
|
15
|
+
- `v4finance` and `v4account` typed finance and shared-account commands
|
|
16
|
+
(#125).
|
|
17
|
+
- `v4goals`, `v4events`, `v4wordstat`, and `v4forecast` typed commands
|
|
18
|
+
(#126).
|
|
19
|
+
- `v4events get-events-log` and `v4forecast create-new-forecast` now expose
|
|
20
|
+
every documented input field (#456).
|
|
21
|
+
- Russian-default CLI help with English opt-in, starting with `v4finance`
|
|
22
|
+
(#458).
|
|
23
|
+
|
|
24
|
+
**Changed — write-command coverage gates:**
|
|
25
|
+
|
|
26
|
+
- Extended the WSDL schema gate to mutating operations; `keywordbids.set`
|
|
27
|
+
is now enum-validated against its WSDL `*FieldEnum` (#118).
|
|
28
|
+
- Per-method `WRITE_SANDBOX` integration coverage completed — zero
|
|
29
|
+
unexplained `NOT_COVERED` commands in `direct_cli/smoke_matrix.py`
|
|
30
|
+
(#122).
|
|
31
|
+
- Closed the remaining mutating `DRY_RUN_PAYLOAD_EXCLUSIONS`; every
|
|
32
|
+
declared WSDL operation now has a `PAYLOAD_CASES` fixture or a
|
|
33
|
+
documented technical exclusion (#127).
|
|
34
|
+
|
|
35
|
+
**Tests / tooling:**
|
|
36
|
+
|
|
37
|
+
- Offline VCR cassettes for all v5 read-only commands (#455).
|
|
38
|
+
- v4 Live read cassettes and a fix for an unbounded retry-loop (#457,
|
|
39
|
+
closes #454).
|
|
40
|
+
- Docs/wire-shape scanner with the 2026-05-29 sweep (#451).
|
|
41
|
+
|
|
42
|
+
`strict_parity_ok`, `live_model_parity_ok`, and `schema_parity_ok` all
|
|
43
|
+
report `true` in `scripts/build_api_coverage_report.py`.
|
|
44
|
+
|
|
3
45
|
## 0.3.16
|
|
4
46
|
|
|
5
47
|
**BREAKING CHANGES (regression fix — reverts 0.3.15 wire-shape 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
|
{direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/resource_mapping.py
RENAMED
|
File without changes
|
{direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/tapi_yandex_direct.py
RENAMED
|
File without changes
|
{direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/tapi_yandex_direct.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{direct_cli-0.3.16 → direct_cli-0.4.0}/direct_cli/_vendor/tapi_yandex_direct/v4/resource_mapping.py
RENAMED
|
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
|
{direct_cli-0.3.16 → direct_cli-0.4.0}/docs/superpowers/plans/2026-04-12-issue-32-completion.md
RENAMED
|
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
|