code-context-control 2.60.0__tar.gz → 2.61.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.
- {code_context_control-2.60.0 → code_context_control-2.61.0}/PKG-INFO +25 -7
- {code_context_control-2.60.0 → code_context_control-2.61.0}/README.md +24 -6
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/c3.py +23 -12
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/guide/bitbucket.html +1 -0
- code_context_control-2.61.0/cli/guide/credentials.html +554 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/guide/getting-started.html +37 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/guide/index.html +10 -1
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/guide/oracle.html +1 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/guide/tools.html +4 -1
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/guide/workflow.html +1 -0
- code_context_control-2.61.0/cli/hub_ui/components/hub_credentials.js +1546 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/components/credentials.js +3 -3
- {code_context_control-2.60.0 → code_context_control-2.61.0}/code_context_control.egg-info/PKG-INFO +25 -7
- {code_context_control-2.60.0 → code_context_control-2.61.0}/code_context_control.egg-info/SOURCES.txt +1 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/pyproject.toml +1 -1
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_install_mcp_entrypoint.py +34 -0
- code_context_control-2.60.0/cli/hub_ui/components/hub_credentials.js +0 -516
- {code_context_control-2.60.0 → code_context_control-2.61.0}/LICENSE +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/__init__.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/_hook_utils.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/commands/__init__.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/commands/common.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/commands/parser.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/docs.html +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/edits.html +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/guide/shared.css +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_artifact.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_auto_snapshot.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_c3_signal.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_c3read.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_dispatch.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_edit_ledger.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_edit_unlock.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_filter.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_ghost_files.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_pretool_enforce.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_prompt_recall.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_read.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_session_stats.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hook_terse_advisor.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub.html +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_server.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/app.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/add_project.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/config_editor.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/drill_artifacts.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/drill_health.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/drill_panel.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/drill_subprojects.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/drill_tasks.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/drill_views.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/global_search.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/mcp_manager.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/modals.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/project_card.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/project_tree.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/session_drawer.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/settings_modal.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/sidebar.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/summary_bar.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/task_board.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/toasts.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/components/topbar.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui/state.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/hub_ui.html +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/mcp_proxy.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/mcp_server.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/progress.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/server.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/__init__.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/_helpers.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/agent.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/artifacts.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/bitbucket.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/compress.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/credentials.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/delegate.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/edit.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/edits.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/federate.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/filter.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/impact.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/jira.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/memory.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/project.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/read.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/search.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/session.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/shell.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/status.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/tasks.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/tools/validate.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/api.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/app.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/components/bitbucket.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/components/chat.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/components/dashboard.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/components/edits.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/components/instructions.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/components/jira.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/components/memory.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/components/sessions.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/components/settings.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/components/sidebar.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/components/tasks.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/icons.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/pm_shared.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/shared.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui/theme.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui.html +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui_legacy.html +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/cli/ui_nano.html +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/code_context_control.egg-info/dependency_links.txt +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/code_context_control.egg-info/entry_points.txt +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/code_context_control.egg-info/requires.txt +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/code_context_control.egg-info/top_level.txt +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/core/__init__.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/core/config.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/core/ide.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/core/mcp_toml.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/core/web_security.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/__init__.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/config.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/mcp_oracle.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/oracle_server.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/oracle_ui.html +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/__init__.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/activity_reporter.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/api_auth.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/c3_bridge.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/chat_engine.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/chat_store.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/cross_memory.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/federated_graph.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/health_checker.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/insight_engine.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/local_session.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/memory_reader.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/memory_writer.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/project_scanner.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/review_agent.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/tool_executor.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/services/tool_registry.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/activity.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/agents.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/app.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/busy.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/chat/conversations.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/chat/input.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/chat/markdown.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/chat/send.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/chat/stream_renderer.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/chat/toolbar.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/core.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/crossgraph.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/header.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/insights.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/projects.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/settings.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/suggestions.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/oracle/ui/theme_tabs.js +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/__init__.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/activity_log.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/agent_base.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/agents.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/artifact_defs.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/artifact_store.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/auto_memory.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/bench/__init__.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/bench/external/__init__.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/bench/external/aider_polyglot.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/bench/external/swe_bench.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/benchmark_dashboard.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/bitbucket_client.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/bitbucket_credentials.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/circuit_breaker.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/claude_md.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/compressor.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/context_snapshot.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/conversation_store.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/credential_store.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/doc_index.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/e2e_benchmark.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/e2e_evaluator.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/e2e_tasks.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/edit_ledger.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/embedding_index.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/error_reporting.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/file_memory.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/git_context.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/hub_service.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/indexer.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/jira_client.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/jira_cloud.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/jira_credentials.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/jira_data_center.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/jira_links.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/memory.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/memory_consolidator.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/memory_distiller.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/memory_graph.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/memory_grounder.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/memory_queue.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/memory_scorer.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/metrics.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/notifications.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/ollama_bridge.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/ollama_client.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/ollama_credentials.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/output_filter.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/parser.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/project_manager.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/project_runtime.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/protocol.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/proxy_state.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/repo_map.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/retention.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/retrieval_broker.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/router.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/runtime.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/scanner.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/session_benchmark.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/session_manager.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/session_preloader.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/subprojects.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/task_store.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/telemetry.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/text_index.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/time_tracker.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/tool_classifier.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/transcript_index.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/validation_cache.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/vector_store.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/watcher.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/services/win_subprocess.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/setup.cfg +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_activity_reporter.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_aider_polyglot.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_antigravity_transition.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_artifact_store.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_artifact_tool.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_bitbucket_cli_smoke.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_bitbucket_client.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_bitbucket_config_fallback.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_bitbucket_credentials.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_bitbucket_tool.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_c3_bridge_project_artifacts.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_c3_shell.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_circuit_breaker.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_claude_md_merge.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_cli_smoke.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_compressor_large_file.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_credential_store.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_credentials_routes.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_credentials_tool.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_creds_cli_smoke.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_delegate_cascade.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_e2e_benchmark.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_edit_ledger_hook.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_edit_normalization.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_enforcement_flip.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_federated_graph.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_filter_backoff.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_ghost_files.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_ghost_generation.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_git_branch_awareness.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_hook_dispatch.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_hook_pretool_enforce.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_hook_prompt_recall.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_hook_smoke.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_hook_state.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_hook_utf8_stdio.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_hub_credentials_route.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_hub_credentials_routes_write.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_hub_inspect_api.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_hub_server_smoke.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_hub_subproject_links.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_init_scan.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_jira_cli_smoke.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_jira_client.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_jira_config_fallback.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_jira_credentials.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_jira_links.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_jira_routes.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_jira_tool.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_lazy_store_init.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_mcp_host_guard.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_mcp_memory_timeout.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_mcp_server_smoke.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_mcp_toml.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_memory_distiller.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_memory_graph_api.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_memory_queue.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_memory_system.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_no_stale_model_pins.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_notification_dedup.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_notification_discipline.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_ollama_credentials.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_oracle_api_auth.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_oracle_apikey_api.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_oracle_c3_bridge.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_oracle_chat_engine.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_oracle_discovery_api.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_oracle_local_auth.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_oracle_ollama_bridge.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_oracle_scanner_cache.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_oracle_security_fixes.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_oracle_subproject_awareness.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_oracle_ui_bundle.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_output_filter.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_permissions.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_pm_api.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_project_manager.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_project_manager_merge.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_project_tool.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_read_coercion.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_read_edit_parity.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_related_facts.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_repo_map.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_response_boilerplate.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_retention.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_review_digest.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_service_durability.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_session_benchmark.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_session_budget.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_shell_creds.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_shell_robustness.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_subproject_exclusion.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_subproject_federation.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_subprojects.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_swe_bench.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_task_store.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_task_tool.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_time_tracker.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_token_telemetry.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_tool_registry.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_upgrade_and_version.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_validate.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_version_sync.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_web_security.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tests/test_windows_reliability.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/__init__.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/backend.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/main.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/__init__.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/benchmark_view.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/claudemd_view.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/compress_view.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/index_view.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/init_view.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/mcp_view.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/optimize_view.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/pipe_view.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/projects_view.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/search_view.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/session_view.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/stats.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/screens/ui_view.py +0 -0
- {code_context_control-2.60.0 → code_context_control-2.61.0}/tui/theme.tcss +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-context-control
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.61.0
|
|
4
4
|
Summary: Local code-intelligence layer for AI coding tools (Claude Code, Codex, Copilot, Cursor, Antigravity). Retrieve less, read less, edit safer — version the configs that shape your agent (CLAUDE.md, skills, hooks, MCP), and manage multi-project + sub-project hierarchies from a local hub.
|
|
5
5
|
Author-email: Dimitri Tselenchuk <dtselenc@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -361,12 +361,30 @@ with credentials disabled, and the vault is hard-excluded from the Oracle
|
|
|
361
361
|
Discovery API.
|
|
362
362
|
|
|
363
363
|
Since **v2.59.0** the Hub has a top-level **Credentials** view: manage the
|
|
364
|
-
global vault (`~/.c3`) and every registered project's entries from one place
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
364
|
+
global vault (`~/.c3`) and every registered project's entries from one place,
|
|
365
|
+
with overriding shown both ways ("overrides global" on project entries,
|
|
366
|
+
"overridden ×N" on globals). **v2.61.0** makes it navigable at scale:
|
|
367
|
+
|
|
368
|
+
- **Cross-project search** — <kbd>/</kbd> or <kbd>Ctrl/⌘-K</kbd>. Free words
|
|
369
|
+
match name / description / env var / project; `project:` `scope:` `type:`
|
|
370
|
+
`storage:` `name:` `env:` `inject:` `agent:` `shadow:` qualifiers narrow
|
|
371
|
+
further. Results are **grouped by credential name**, so "where is
|
|
372
|
+
`STRIPE_KEY` defined and which one wins?" is one glance instead of forty
|
|
373
|
+
accordions. `agent:true` and `inject:true` are one-key exposure audits.
|
|
374
|
+
- **Per-credential settings drawer** — metadata, the two exposure switches
|
|
375
|
+
with their blast radius written out, an on-demand resolution check +
|
|
376
|
+
fingerprint, write-only value replacement, usage and override
|
|
377
|
+
relationships, and a separated danger zone.
|
|
378
|
+
- **Right-click context menu** on any row (also `⋯` and <kbd>Shift</kbd>+<kbd>F10</kbd>),
|
|
379
|
+
with typed confirmations replacing `window.confirm`: deleting or granting
|
|
380
|
+
agent-read access requires typing the credential's name.
|
|
381
|
+
|
|
382
|
+
The write-only wire contract extends to the hub: values are submitted
|
|
383
|
+
inbound-only, **no hub route ever returns a stored value** (there is no
|
|
384
|
+
`reveal` on the hub at all), and search indexes metadata only.
|
|
385
|
+
|
|
386
|
+
Full documentation: [`cli/guide/credentials.html`](cli/guide/credentials.html)
|
|
387
|
+
— open it in the app at `/guide/credentials.html`.
|
|
370
388
|
|
|
371
389
|
### Jira — Cloud + Data Center (v2.56.0)
|
|
372
390
|
|
|
@@ -298,12 +298,30 @@ with credentials disabled, and the vault is hard-excluded from the Oracle
|
|
|
298
298
|
Discovery API.
|
|
299
299
|
|
|
300
300
|
Since **v2.59.0** the Hub has a top-level **Credentials** view: manage the
|
|
301
|
-
global vault (`~/.c3`) and every registered project's entries from one place
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
301
|
+
global vault (`~/.c3`) and every registered project's entries from one place,
|
|
302
|
+
with overriding shown both ways ("overrides global" on project entries,
|
|
303
|
+
"overridden ×N" on globals). **v2.61.0** makes it navigable at scale:
|
|
304
|
+
|
|
305
|
+
- **Cross-project search** — <kbd>/</kbd> or <kbd>Ctrl/⌘-K</kbd>. Free words
|
|
306
|
+
match name / description / env var / project; `project:` `scope:` `type:`
|
|
307
|
+
`storage:` `name:` `env:` `inject:` `agent:` `shadow:` qualifiers narrow
|
|
308
|
+
further. Results are **grouped by credential name**, so "where is
|
|
309
|
+
`STRIPE_KEY` defined and which one wins?" is one glance instead of forty
|
|
310
|
+
accordions. `agent:true` and `inject:true` are one-key exposure audits.
|
|
311
|
+
- **Per-credential settings drawer** — metadata, the two exposure switches
|
|
312
|
+
with their blast radius written out, an on-demand resolution check +
|
|
313
|
+
fingerprint, write-only value replacement, usage and override
|
|
314
|
+
relationships, and a separated danger zone.
|
|
315
|
+
- **Right-click context menu** on any row (also `⋯` and <kbd>Shift</kbd>+<kbd>F10</kbd>),
|
|
316
|
+
with typed confirmations replacing `window.confirm`: deleting or granting
|
|
317
|
+
agent-read access requires typing the credential's name.
|
|
318
|
+
|
|
319
|
+
The write-only wire contract extends to the hub: values are submitted
|
|
320
|
+
inbound-only, **no hub route ever returns a stored value** (there is no
|
|
321
|
+
`reveal` on the hub at all), and search indexes metadata only.
|
|
322
|
+
|
|
323
|
+
Full documentation: [`cli/guide/credentials.html`](cli/guide/credentials.html)
|
|
324
|
+
— open it in the app at `/guide/credentials.html`.
|
|
307
325
|
|
|
308
326
|
### Jira — Cloud + Data Center (v2.56.0)
|
|
309
327
|
|
|
@@ -92,7 +92,7 @@ console = Console() if HAS_RICH else None
|
|
|
92
92
|
# Config
|
|
93
93
|
CONFIG_DIR = ".c3"
|
|
94
94
|
CONFIG_FILE = ".c3/config.json"
|
|
95
|
-
__version__ = "2.
|
|
95
|
+
__version__ = "2.61.0"
|
|
96
96
|
|
|
97
97
|
|
|
98
98
|
def _command_deps() -> CommandDeps:
|
|
@@ -5128,22 +5128,33 @@ def cmd_install_mcp(args):
|
|
|
5128
5128
|
settings = _safe_read_json(settings_path, str(settings_path))
|
|
5129
5129
|
|
|
5130
5130
|
# Build hook commands using the Python executable that runs c3.
|
|
5131
|
-
# On Windows, Claude Code executes hooks via /usr/bin/bash (Git Bash), which cannot
|
|
5132
|
-
# parse Windows absolute paths containing parentheses (e.g. "(C3)"). Prefix with
|
|
5133
|
-
# cmd.exe so it handles path resolution instead of bash.
|
|
5134
5131
|
#
|
|
5135
|
-
#
|
|
5136
|
-
#
|
|
5137
|
-
#
|
|
5138
|
-
#
|
|
5139
|
-
#
|
|
5140
|
-
|
|
5132
|
+
# Windows: do NOT wrap in cmd.exe. Claude Code runs hooks through Git Bash,
|
|
5133
|
+
# whose MSYS argument conversion rewrites a standalone "/c" into "C:/" before
|
|
5134
|
+
# cmd.exe ever sees it — so cmd.exe starts INTERACTIVELY, prints its banner,
|
|
5135
|
+
# and reads the hook's stdin JSON payload as console commands. The hook never
|
|
5136
|
+
# runs, and any ">" token in the payload becomes a shell redirect that silently
|
|
5137
|
+
# creates junk files in the repo root.
|
|
5138
|
+
#
|
|
5139
|
+
# Verified 2026-07-26 under Git Bash on Windows 11:
|
|
5140
|
+
# python -c "import sys;print(sys.argv)" /c foo -> ['-c', 'C:/', 'foo']
|
|
5141
|
+
# cmd.exe /c '<py>' -c "print('x')" -> banner, no execution
|
|
5142
|
+
# '<py>' '<hook>' posttool -> runs, stdin intact
|
|
5143
|
+
# Both "cmd /c" (bash cannot resolve bare "cmd") and "cmd.exe /c" are broken;
|
|
5144
|
+
# the wrapper was never needed. A double-quoted forward-slash path is parsed
|
|
5145
|
+
# correctly by bash AND cmd, including paths containing spaces or parentheses
|
|
5146
|
+
# (e.g. "Claude Code Companion (C3)"), which is why the wrapper was added.
|
|
5147
|
+
def _hook_arg(raw: str) -> str:
|
|
5148
|
+
if sys.platform == "win32":
|
|
5149
|
+
return '"' + str(raw).replace("\\", "/") + '"'
|
|
5150
|
+
return shlex.quote(str(raw))
|
|
5151
|
+
|
|
5141
5152
|
# v2.42: single dispatcher script per hook event instead of N separate
|
|
5142
5153
|
# per-hook commands. One interpreter spawn per event; the dispatcher
|
|
5143
5154
|
# (cli/hook_dispatch.py) runs all applicable sub-hooks in-process.
|
|
5144
5155
|
_dispatch_base = (
|
|
5145
|
-
f"{
|
|
5146
|
-
f"{
|
|
5156
|
+
f"{_hook_arg(sys.executable)} "
|
|
5157
|
+
f"{_hook_arg(str(cli_dir / 'hook_dispatch.py'))}"
|
|
5147
5158
|
)
|
|
5148
5159
|
hook_pretool_cmd = f"{_dispatch_base} pretool"
|
|
5149
5160
|
hook_posttool_cmd = f"{_dispatch_base} posttool"
|
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
<a href="getting-started.html">Get Started</a>
|
|
78
78
|
<a href="workflow.html">Workflow</a>
|
|
79
79
|
<a href="tools.html">Tools</a>
|
|
80
|
+
<a href="credentials.html">Credentials</a>
|
|
80
81
|
<a href="bitbucket.html" class="active">Bitbucket</a>
|
|
81
82
|
<a href="oracle.html">Oracle</a>
|
|
82
83
|
<a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">♥ Sponsor</a>
|