claude-code-tools 1.23.1__tar.gz → 1.24.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.
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/PKG-INFO +1 -1
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/__init__.py +1 -1
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/aichat.py +48 -1
- claude_code_tools-1.24.0/claude_code_tools/move_account.py +721 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/port_claude_to_codex.py +47 -2
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/pyproject.toml +2 -2
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/.gitignore +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/LICENSE +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/README.md +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/action_rpc.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/__init__.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/backends.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/cli.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/config.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/convert.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/discord_bot.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/locking.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/paths.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/registry.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/session.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/store.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/tmux.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/agent_tunnel/trust.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/claude_continue.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_continue.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_cli.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_fingerprint.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_generation.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_legacy.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_models.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_process.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_reservation.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_retry.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_reuse.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_state.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_supervisor.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/codex_server_worker.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/config.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/csv2gsheet.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/delete_session.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/dotenv_vault.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/env_safe.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/export_all.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/export_claude_session.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/export_codex_session.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/export_session.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/find_claude_session.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/find_codex_session.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/find_original_session.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/find_session.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/find_trimmed_sessions.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/fix_session.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/gdoc2docx.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/gdoc2md.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/gsheet2csv.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/md2gdoc.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/__init__.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/cli.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/hooks.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/models.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/prompt_detect.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/store.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/msg/watcher.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/node_menu_ui.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/port_claude_noise.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/port_codex_flatten.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/port_codex_to_claude.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/port_render.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/port_service.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/resolve_session.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/resolve_session_names.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/resolve_session_render.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/search_index.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/session_lineage.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/session_menu.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/session_menu_cli.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/session_resolution.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/session_utils.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/smart_trim.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/smart_trim_core.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/tmux_cli_controller.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/tmux_execution_helpers.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/tmux_remote_controller.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/trim_in_place.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/trim_session.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/trim_session_claude.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/trim_session_codex.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_contract.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_formatting.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_identity_policy.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_manifest.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_projection.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_rendering.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_snapshots.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_cli_store_backends.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_processes.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_runs.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_store_io.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/claude_code_tools/workflow_validation.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/agent-tunnel-spec.md +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/claude-code-tmux-tutorials.md +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/dot-zshrc.md +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/find-claude-session.md +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/intercom-spec.md +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/lmsh.md +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/local-llm-setup.md +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/msg-phase-a-plan.md +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/msg-plan-v2.md +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/tmux-cli-instructions.md +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/docs/vault-documentation.md +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/hatch_build.py +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/node_ui/action_config.js +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/node_ui/menu.js +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/node_ui/package-lock.json +0 -0
- {claude_code_tools-1.23.1 → claude_code_tools-1.24.0}/node_ui/package.json +0 -0
|
@@ -226,9 +226,15 @@ def main(ctx, claude_home, codex_home):
|
|
|
226
226
|
# 'port' is also skipped: its contract requires the detected
|
|
227
227
|
# direction line to be the FIRST output, so the indexer's progress
|
|
228
228
|
# bar must never print before it.
|
|
229
|
+
# 'trim-in-place' is skipped because it never queries the index
|
|
230
|
+
# (it resolves a path directly) and it runs under the >trim hook's
|
|
231
|
+
# time budget: indexing ~13.6k session files took 2-30s depending
|
|
232
|
+
# on the backlog, against a ~0.3s trim, which is what made >trim
|
|
233
|
+
# time out. Trimming also rewrites the file, so indexing its
|
|
234
|
+
# pre-trim content first is wasted work twice over.
|
|
229
235
|
skip_auto_index_cmds = ['build-index', 'clear-index', 'index-stats']
|
|
230
236
|
should_skip = (
|
|
231
|
-
ctx.invoked_subcommand in ('port', 'resolve')
|
|
237
|
+
ctx.invoked_subcommand in ('port', 'resolve', 'trim-in-place')
|
|
232
238
|
or ctx.invoked_subcommand in skip_auto_index_cmds
|
|
233
239
|
or any(cmd in sys.argv for cmd in skip_auto_index_cmds)
|
|
234
240
|
)
|
|
@@ -1639,6 +1645,47 @@ def move_session(
|
|
|
1639
1645
|
console.print(f" [cyan]{resume_cmd}[/cyan]")
|
|
1640
1646
|
|
|
1641
1647
|
|
|
1648
|
+
@main.command("move-account")
|
|
1649
|
+
@click.argument("session", required=True)
|
|
1650
|
+
@click.option("--to", "to_home", required=True,
|
|
1651
|
+
help="Target config dir (account), e.g. ~/.claude or ~/.codex")
|
|
1652
|
+
@click.option("--from", "from_home", default=None,
|
|
1653
|
+
help="Source config dir (default: search all local homes — "
|
|
1654
|
+
"env-var home, ~/.claude / ~/.codex, and "
|
|
1655
|
+
"~/.claude-* / ~/.codex-* siblings)")
|
|
1656
|
+
@click.option("--agent",
|
|
1657
|
+
type=click.Choice(["claude", "codex"], case_sensitive=False),
|
|
1658
|
+
default=None,
|
|
1659
|
+
help="Agent type (auto-detected from the config dirs "
|
|
1660
|
+
"if not specified)")
|
|
1661
|
+
@click.option("--keep", is_flag=True,
|
|
1662
|
+
help="Copy instead of move (leave source account untouched)")
|
|
1663
|
+
def move_account(session, to_home, from_home, agent, keep):
|
|
1664
|
+
"""Move a session to a different account (config dir).
|
|
1665
|
+
|
|
1666
|
+
Accounts are config dirs like ~/.claude vs ~/.claude-rja (or
|
|
1667
|
+
~/.codex vs ~/.codex-rja), normally selected via CLAUDE_CONFIG_DIR
|
|
1668
|
+
/ CODEX_HOME. The session stays in the same project. Claude moves
|
|
1669
|
+
relocate the transcript and its sidecar dir (subagents,
|
|
1670
|
+
tool-results, workflows); Codex moves relocate the rollout file
|
|
1671
|
+
and its thread-name entries in session_index.jsonl.
|
|
1672
|
+
|
|
1673
|
+
SESSION may be a session UUID (full or partial), a Claude session
|
|
1674
|
+
name assigned with /rename, or a Codex thread name.
|
|
1675
|
+
|
|
1676
|
+
\b
|
|
1677
|
+
Examples:
|
|
1678
|
+
aichat move-account cowrite-fable-21jul2026 \\
|
|
1679
|
+
--from ~/.claude-rja --to ~/.claude
|
|
1680
|
+
aichat move-account af574e84 --to ~/.claude-rja --keep
|
|
1681
|
+
aichat move-account my-codex-thread \\
|
|
1682
|
+
--from ~/.codex-rja --to ~/.codex
|
|
1683
|
+
"""
|
|
1684
|
+
from claude_code_tools.move_account import run_move_account
|
|
1685
|
+
|
|
1686
|
+
run_move_account(session, to_home, from_home, keep, agent)
|
|
1687
|
+
|
|
1688
|
+
|
|
1642
1689
|
def _protect_surrogateescape_bytes(
|
|
1643
1690
|
line: str,
|
|
1644
1691
|
*,
|