claude-team-mcp 0.6.1__py3-none-any.whl → 0.8.0__py3-none-any.whl
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_team/__init__.py +11 -0
- claude_team/events.py +501 -0
- claude_team/idle_detection.py +173 -0
- claude_team/poller.py +245 -0
- claude_team_mcp/cli_backends/__init__.py +4 -2
- claude_team_mcp/cli_backends/claude.py +45 -5
- claude_team_mcp/cli_backends/codex.py +44 -3
- claude_team_mcp/config.py +350 -0
- claude_team_mcp/config_cli.py +263 -0
- claude_team_mcp/idle_detection.py +16 -3
- claude_team_mcp/issue_tracker/__init__.py +68 -3
- claude_team_mcp/iterm_utils.py +5 -73
- claude_team_mcp/registry.py +43 -26
- claude_team_mcp/server.py +164 -61
- claude_team_mcp/session_state.py +364 -2
- claude_team_mcp/terminal_backends/__init__.py +49 -0
- claude_team_mcp/terminal_backends/base.py +106 -0
- claude_team_mcp/terminal_backends/iterm.py +251 -0
- claude_team_mcp/terminal_backends/tmux.py +683 -0
- claude_team_mcp/tools/__init__.py +4 -2
- claude_team_mcp/tools/adopt_worker.py +89 -32
- claude_team_mcp/tools/close_workers.py +39 -10
- claude_team_mcp/tools/discover_workers.py +176 -32
- claude_team_mcp/tools/list_workers.py +29 -0
- claude_team_mcp/tools/message_workers.py +35 -5
- claude_team_mcp/tools/poll_worker_changes.py +227 -0
- claude_team_mcp/tools/spawn_workers.py +254 -153
- claude_team_mcp/tools/wait_idle_workers.py +1 -0
- claude_team_mcp/utils/errors.py +7 -3
- claude_team_mcp/worktree.py +73 -12
- {claude_team_mcp-0.6.1.dist-info → claude_team_mcp-0.8.0.dist-info}/METADATA +1 -1
- claude_team_mcp-0.8.0.dist-info/RECORD +54 -0
- claude_team_mcp-0.6.1.dist-info/RECORD +0 -43
- {claude_team_mcp-0.6.1.dist-info → claude_team_mcp-0.8.0.dist-info}/WHEEL +0 -0
- {claude_team_mcp-0.6.1.dist-info → claude_team_mcp-0.8.0.dist-info}/entry_points.txt +0 -0
claude_team_mcp/utils/errors.py
CHANGED
|
@@ -34,7 +34,7 @@ def error_response(
|
|
|
34
34
|
HINTS = {
|
|
35
35
|
"session_not_found": (
|
|
36
36
|
"Run list_workers to see available workers, or discover_workers "
|
|
37
|
-
"to find orphaned
|
|
37
|
+
"to find orphaned terminal sessions that can be adopted"
|
|
38
38
|
),
|
|
39
39
|
"project_path_missing": (
|
|
40
40
|
"Verify the path exists. For git worktrees, check 'git worktree list'. "
|
|
@@ -44,9 +44,13 @@ HINTS = {
|
|
|
44
44
|
"Ensure iTerm2 is running and Python API is enabled: "
|
|
45
45
|
"iTerm2 → Preferences → General → Magic → Enable Python API"
|
|
46
46
|
),
|
|
47
|
+
"terminal_backend_required": (
|
|
48
|
+
"This tool only supports the iTerm2 or tmux backends. "
|
|
49
|
+
"Set CLAUDE_TEAM_TERMINAL_BACKEND=iterm or tmux, or run inside a supported terminal."
|
|
50
|
+
),
|
|
47
51
|
"registry_empty": (
|
|
48
52
|
"No workers are being managed. Use spawn_workers to create new workers, "
|
|
49
|
-
"or discover_workers to find existing Claude sessions in
|
|
53
|
+
"or discover_workers to find existing Claude sessions in a supported terminal"
|
|
50
54
|
),
|
|
51
55
|
"no_jsonl_file": (
|
|
52
56
|
"Claude may not have started yet or the session file doesn't exist. "
|
|
@@ -73,7 +77,7 @@ def get_session_or_error(
|
|
|
73
77
|
|
|
74
78
|
Args:
|
|
75
79
|
registry: The session registry to search
|
|
76
|
-
session_id: ID to resolve (supports session_id,
|
|
80
|
+
session_id: ID to resolve (supports session_id, terminal_id, or name)
|
|
77
81
|
|
|
78
82
|
Returns:
|
|
79
83
|
ManagedSession if found, or error dict with hint if not found
|
claude_team_mcp/worktree.py
CHANGED
|
@@ -64,6 +64,20 @@ def slugify(text: str) -> str:
|
|
|
64
64
|
return text
|
|
65
65
|
|
|
66
66
|
|
|
67
|
+
def short_slug(text: str, max_length: int = 30) -> str:
|
|
68
|
+
"""
|
|
69
|
+
Create a slug suitable for compact identifiers.
|
|
70
|
+
|
|
71
|
+
Truncates long slugs to keep branch and directory names short,
|
|
72
|
+
while preserving the leading portion of the slug.
|
|
73
|
+
"""
|
|
74
|
+
slug = slugify(text)
|
|
75
|
+
if len(slug) <= max_length:
|
|
76
|
+
return slug
|
|
77
|
+
return slug[:max_length].rstrip("-")
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
67
81
|
def ensure_gitignore_entry(repo_path: Path, entry: str) -> bool:
|
|
68
82
|
"""
|
|
69
83
|
Ensure an entry exists in the repository's .gitignore file.
|
|
@@ -224,11 +238,42 @@ def create_worktree(
|
|
|
224
238
|
return worktree_path
|
|
225
239
|
|
|
226
240
|
|
|
241
|
+
def _resolve_worktree_base(repo_path: Path, base: str) -> str:
|
|
242
|
+
# Resolve base ref to a commit hash to avoid worktree-locked branch refs.
|
|
243
|
+
def _rev_parse(ref: str) -> Optional[str]:
|
|
244
|
+
result = subprocess.run(
|
|
245
|
+
["git", "-C", str(repo_path), "rev-parse", "--verify", ref],
|
|
246
|
+
capture_output=True,
|
|
247
|
+
text=True,
|
|
248
|
+
)
|
|
249
|
+
if result.returncode == 0:
|
|
250
|
+
return result.stdout.strip()
|
|
251
|
+
return None
|
|
252
|
+
|
|
253
|
+
commit = _rev_parse(f"{base}^{{commit}}")
|
|
254
|
+
if commit:
|
|
255
|
+
return commit
|
|
256
|
+
|
|
257
|
+
normalized_base = base.removeprefix("refs/heads/")
|
|
258
|
+
try:
|
|
259
|
+
for worktree in list_git_worktrees(repo_path):
|
|
260
|
+
if worktree.get("branch") == normalized_base and worktree.get("commit"):
|
|
261
|
+
return worktree["commit"]
|
|
262
|
+
except WorktreeError:
|
|
263
|
+
pass
|
|
264
|
+
|
|
265
|
+
raise WorktreeError(
|
|
266
|
+
f"Base ref not found: {base}. Ensure it exists locally or fetch it."
|
|
267
|
+
)
|
|
268
|
+
|
|
269
|
+
|
|
227
270
|
def create_local_worktree(
|
|
228
271
|
repo_path: Path,
|
|
229
272
|
worker_name: str,
|
|
230
273
|
bead_id: Optional[str] = None,
|
|
231
274
|
annotation: Optional[str] = None,
|
|
275
|
+
branch: Optional[str] = None,
|
|
276
|
+
base: Optional[str] = None,
|
|
232
277
|
) -> Path:
|
|
233
278
|
"""
|
|
234
279
|
Create a git worktree in the repo's .worktrees/ directory.
|
|
@@ -237,18 +282,23 @@ def create_local_worktree(
|
|
|
237
282
|
{repo}/.worktrees/{bead_id}-{annotation}/ (if bead_id provided)
|
|
238
283
|
{repo}/.worktrees/{worker_name}-{uuid}-{annotation}/ (otherwise)
|
|
239
284
|
|
|
240
|
-
The branch name matches the worktree directory name for consistency
|
|
285
|
+
The branch name matches the worktree directory name for consistency unless
|
|
286
|
+
an explicit branch is provided.
|
|
241
287
|
Automatically adds .worktrees to .gitignore if not present.
|
|
242
288
|
|
|
243
|
-
If a worktree path or branch already exists, appends an
|
|
244
|
-
suffix (-1, -2, etc.) until an available name is found.
|
|
245
|
-
multiple workers to work on the same bead in parallel.
|
|
289
|
+
If a generated worktree path or branch already exists, appends an
|
|
290
|
+
incrementing suffix (-1, -2, etc.) until an available name is found.
|
|
291
|
+
This allows multiple workers to work on the same bead in parallel.
|
|
292
|
+
When an explicit branch is provided, pre-existing branches are treated
|
|
293
|
+
as an error.
|
|
246
294
|
|
|
247
295
|
Args:
|
|
248
296
|
repo_path: Path to the main repository
|
|
249
297
|
worker_name: Name of the worker (used in fallback naming)
|
|
250
298
|
bead_id: Optional bead issue ID (e.g., "cic-abc123")
|
|
251
299
|
annotation: Optional annotation for the worktree
|
|
300
|
+
branch: Optional branch name to create for the worktree
|
|
301
|
+
base: Optional base ref/branch for the new branch
|
|
252
302
|
|
|
253
303
|
Returns:
|
|
254
304
|
Path to the created worktree
|
|
@@ -319,17 +369,30 @@ def create_local_worktree(
|
|
|
319
369
|
worktree_path = worktrees_dir / dir_name
|
|
320
370
|
suffix = 0
|
|
321
371
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
worktree_path
|
|
372
|
+
if branch:
|
|
373
|
+
if branch_exists(branch):
|
|
374
|
+
raise WorktreeError(f"Branch already exists: {branch}")
|
|
375
|
+
while worktree_path.exists():
|
|
376
|
+
suffix += 1
|
|
377
|
+
dir_name = f"{base_dir_name}-{suffix}"
|
|
378
|
+
worktree_path = worktrees_dir / dir_name
|
|
379
|
+
branch_name = branch
|
|
380
|
+
else:
|
|
381
|
+
while worktree_path.exists() or branch_exists(dir_name):
|
|
382
|
+
suffix += 1
|
|
383
|
+
dir_name = f"{base_dir_name}-{suffix}"
|
|
384
|
+
worktree_path = worktrees_dir / dir_name
|
|
385
|
+
branch_name = dir_name
|
|
326
386
|
|
|
327
|
-
|
|
328
|
-
|
|
387
|
+
resolved_base = None
|
|
388
|
+
if base:
|
|
389
|
+
resolved_base = _resolve_worktree_base(repo_path, base)
|
|
329
390
|
|
|
330
391
|
# Build the git worktree add command.
|
|
331
392
|
# Branch is guaranteed not to exist (collision loop checked for it).
|
|
332
393
|
cmd = ["git", "-C", str(repo_path), "worktree", "add", "-b", branch_name, str(worktree_path)]
|
|
394
|
+
if resolved_base:
|
|
395
|
+
cmd.append(resolved_base)
|
|
333
396
|
|
|
334
397
|
result = subprocess.run(cmd, capture_output=True, text=True)
|
|
335
398
|
|
|
@@ -537,5 +600,3 @@ def list_local_worktrees(repo_path: Path) -> list[dict]:
|
|
|
537
600
|
})
|
|
538
601
|
|
|
539
602
|
return worktrees
|
|
540
|
-
|
|
541
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-team-mcp
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.0
|
|
4
4
|
Summary: MCP server for managing multiple Claude Code sessions via iTerm2
|
|
5
5
|
Project-URL: Homepage, https://github.com/Martian-Engineering/claude-team
|
|
6
6
|
Project-URL: Repository, https://github.com/Martian-Engineering/claude-team
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
claude_team/__init__.py,sha256=vDgDXeillUkQr0QDv-wcscJIuSgA6lctbMQrWfxhGJ0,293
|
|
2
|
+
claude_team/events.py,sha256=u-IHZm35J6P_2040CvPQI1b32X79OvHwAlNp4-RJ3oY,15757
|
|
3
|
+
claude_team/idle_detection.py,sha256=x91HZdbp01gizTYMAY2SpMFnkJBMomgi8lSafFmRoao,5627
|
|
4
|
+
claude_team/poller.py,sha256=C4A6Rr_ABTC5suCGPuBhLn_-e_z5tSzSKwSYl-SERlk,8363
|
|
5
|
+
claude_team_mcp/__init__.py,sha256=HnGWRX1P2CxUafElaxq6zXvXznQeUF5XiQBqu9eJU0Q,481
|
|
6
|
+
claude_team_mcp/__main__.py,sha256=JOG9n8ZCjy3JN96T0n97Ro-ZWtOU-RTJks7ahz81NRM,134
|
|
7
|
+
claude_team_mcp/colors.py,sha256=f-PcPep9WkZ7zbt-IF0Ey4OXfZeiY-y2uXERFtiY8Pk,3270
|
|
8
|
+
claude_team_mcp/config.py,sha256=1-aJ6cYLQfEzu52CMFvUEVa3k9xOSFSAQHhQfAKB3M4,10099
|
|
9
|
+
claude_team_mcp/config_cli.py,sha256=2v2kXyK81p5CvBoclivSO9cmq2kQQt6H3PYOdirxwUA,8209
|
|
10
|
+
claude_team_mcp/formatting.py,sha256=tcBmKyaZm15nkeJfssuIMkoFQTlmwDllf7ulZvWkcv4,3831
|
|
11
|
+
claude_team_mcp/idle_detection.py,sha256=KRnhObbVM--S8HPowWq7UkjXxq5AMpGdVHY5UUv3Z0o,16331
|
|
12
|
+
claude_team_mcp/iterm_utils.py,sha256=Imp4yUwq06avwdEw3bOSaO168DpCUveazc71Q8AZOFw,37621
|
|
13
|
+
claude_team_mcp/names.py,sha256=qUJlO2WlFjxB4Q1vLLTcEjTvKA63fJ3i2QBz80ABgnQ,15978
|
|
14
|
+
claude_team_mcp/profile.py,sha256=yqytAE0dIe6NQ6FodldSepO-ZIeR7-C0UfK3FsO7Pn4,12326
|
|
15
|
+
claude_team_mcp/registry.py,sha256=LWOoXxZ2VUhY-qZbKM0riCGrDdC1EbIKrKNprafUZNY,14945
|
|
16
|
+
claude_team_mcp/server.py,sha256=Yblf5W2VpYcNitWN-iacF_zHcF35_7DZ-z-bg0MJtbQ,16363
|
|
17
|
+
claude_team_mcp/session_state.py,sha256=DFNPWog7yyc5yF1_lMhDMcBMpCRGi22YRI6IdoIEf0o,46814
|
|
18
|
+
claude_team_mcp/subprocess_cache.py,sha256=6Q1NIMn2X5_75S4s_a9iPBka-UCz6RW0EMxPSPEaLxo,3612
|
|
19
|
+
claude_team_mcp/worker_prompt.py,sha256=NvzUrR6Zqjp8HuL-xOeAncdvACHbyN7O0nISWyySHq4,15771
|
|
20
|
+
claude_team_mcp/worktree.py,sha256=DWC4wOb6JH278wCdDE1-UKnIt6zpuHNsbUx8HSyLl1w,19096
|
|
21
|
+
claude_team_mcp/cli_backends/__init__.py,sha256=uPIiZ0nxzhtunMfdwfWoNmLIUb7YMaWzoaFaECChKFU,1128
|
|
22
|
+
claude_team_mcp/cli_backends/base.py,sha256=dArm2Yqjzs3smN0JpSGR79e9I_kQYJFgQ8gYpNrmS-o,3923
|
|
23
|
+
claude_team_mcp/cli_backends/claude.py,sha256=r9CW-JHZ3nVEadjf6W0AQ2Ypt4wGCvqSKczl3cRu0MY,4312
|
|
24
|
+
claude_team_mcp/cli_backends/codex.py,sha256=bQvHZFfivF8Oe92gX_3qHDeaHfABDYTjqNg_6aSMido,4479
|
|
25
|
+
claude_team_mcp/issue_tracker/__init__.py,sha256=88wN3ZUUZcSh_lK2jncWH546dYXATY0FShRpAczjAQs,6101
|
|
26
|
+
claude_team_mcp/schemas/__init__.py,sha256=IingbdgdQx9C0ZLBOhZ-doqIJRbO7aeAQjuCHMuVA84,99
|
|
27
|
+
claude_team_mcp/schemas/codex.py,sha256=KwUkTmD70kQLZvzl366tHAsuwKbtsk86ySTOW6b9wDk,5949
|
|
28
|
+
claude_team_mcp/terminal_backends/__init__.py,sha256=qH8JHQPiyisO1LPOLq6aHxGMJv_TU04uR_88k6CZw20,1351
|
|
29
|
+
claude_team_mcp/terminal_backends/base.py,sha256=9GrFDm-Jah8y6DALQrq8dei9UgWeZkWXYbbcrfkFAHA,3202
|
|
30
|
+
claude_team_mcp/terminal_backends/iterm.py,sha256=A5klhOpzDrZ-636aN1Hlnnfxk4OA-Rz_OuaQi1ABz0Y,9317
|
|
31
|
+
claude_team_mcp/terminal_backends/tmux.py,sha256=2wZmKbJOYoAx2AwdA9iWoVrP17i9nDfrznSTGrsq0g4,24546
|
|
32
|
+
claude_team_mcp/tools/__init__.py,sha256=YPKaGC81WDHouee6MQlVOhk2teI0adYvbo949LCCKd0,1593
|
|
33
|
+
claude_team_mcp/tools/adopt_worker.py,sha256=P4HlUaKqS5piOh-0Or27h935WRtkfEXtznCZ_cQF1j4,6897
|
|
34
|
+
claude_team_mcp/tools/annotate_worker.py,sha256=mBo4YMaaaNQxQBduYK1DPA-Ioift-ZQ9tYlBM6S15t8,1639
|
|
35
|
+
claude_team_mcp/tools/check_idle_workers.py,sha256=IjDNDeal9M7lTONWjKZrt8bXu7O277ossHz_2oyLRcY,3374
|
|
36
|
+
claude_team_mcp/tools/close_workers.py,sha256=MlxyEKkDBJEP3FXY8ESQ1x7cjulzJi-fVNCsC4Z2Aig,7878
|
|
37
|
+
claude_team_mcp/tools/discover_workers.py,sha256=wR2wEPRG1jggYuWJhEqC1Sw5ZrOrm9gwgOxEY4HFTD8,11830
|
|
38
|
+
claude_team_mcp/tools/examine_worker.py,sha256=7Nd3EOdsGVDjMJ8ov9NhmcrjN8K9IE4i_noXHOP1uI8,1620
|
|
39
|
+
claude_team_mcp/tools/issue_tracker_help.py,sha256=KxgjFhXp3NCUDjqTl3UnIiFV-Y5DM80C1EoZXfA82QM,1668
|
|
40
|
+
claude_team_mcp/tools/list_workers.py,sha256=EqKXNsVH-eOmmE6YpVwgXacA7sf3nqarKETKDcdcomg,3710
|
|
41
|
+
claude_team_mcp/tools/list_worktrees.py,sha256=_EIwpwoCMLaQh4dHws-jO53MS-E-L7hC7oPT7xC26lw,3665
|
|
42
|
+
claude_team_mcp/tools/message_workers.py,sha256=pWZYcbDyezrNeWrkmFcLHROWtJqKmKaXgvd7aj8-h3Y,13260
|
|
43
|
+
claude_team_mcp/tools/poll_worker_changes.py,sha256=xR2yeSPnM7fjKxst-DFfF4sec6wBcy_Q-V-A8iTElYQ,7770
|
|
44
|
+
claude_team_mcp/tools/read_worker_logs.py,sha256=9gccM6MSaoxu97Xjsk7nUalLEU8XHV7r3SKggBRpNww,5913
|
|
45
|
+
claude_team_mcp/tools/spawn_workers.py,sha256=Md5EsEq5rhXx1WweabX8lPN-em2_s3h1C1xmYezrqS8,37723
|
|
46
|
+
claude_team_mcp/tools/wait_idle_workers.py,sha256=EAPBinBsrRtisADQJZQGPHR8CAIB6lYrXMe5DmeMciM,5279
|
|
47
|
+
claude_team_mcp/utils/__init__.py,sha256=Jyc-N1RXZnMdXLjSgRBB2ih04v-h0woUzZcVYYfc7wQ,647
|
|
48
|
+
claude_team_mcp/utils/constants.py,sha256=FGDHeo0reZ89365fuXJGIl2Y5MFQAoKfWtmYr7UQzhQ,5815
|
|
49
|
+
claude_team_mcp/utils/errors.py,sha256=kP0MPjLIpEOZkbGAzDxonMFERbsjwfID5VVY5qAR2II,2949
|
|
50
|
+
claude_team_mcp/utils/worktree_detection.py,sha256=oMGcb7p1jvr7qWs06sxUMTAV8jRialcVqziCTCdW7XU,3251
|
|
51
|
+
claude_team_mcp-0.8.0.dist-info/METADATA,sha256=q3pjXtrqgdBpasJSMSEvOimny_-D5rNd6xZu33R-VsY,16020
|
|
52
|
+
claude_team_mcp-0.8.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
53
|
+
claude_team_mcp-0.8.0.dist-info/entry_points.txt,sha256=cmk5dmK50RVquExT-k_J72akl3qKIerPpVqfit7kQtQ,53
|
|
54
|
+
claude_team_mcp-0.8.0.dist-info/RECORD,,
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
claude_team_mcp/__init__.py,sha256=HnGWRX1P2CxUafElaxq6zXvXznQeUF5XiQBqu9eJU0Q,481
|
|
2
|
-
claude_team_mcp/__main__.py,sha256=JOG9n8ZCjy3JN96T0n97Ro-ZWtOU-RTJks7ahz81NRM,134
|
|
3
|
-
claude_team_mcp/colors.py,sha256=f-PcPep9WkZ7zbt-IF0Ey4OXfZeiY-y2uXERFtiY8Pk,3270
|
|
4
|
-
claude_team_mcp/formatting.py,sha256=tcBmKyaZm15nkeJfssuIMkoFQTlmwDllf7ulZvWkcv4,3831
|
|
5
|
-
claude_team_mcp/idle_detection.py,sha256=_bYN6-43q0Klt64oOPQWY2QCtGOCdeD5j4_c3L0nf20,15869
|
|
6
|
-
claude_team_mcp/iterm_utils.py,sha256=XeCVogj5kf8pBLhPtWb7nHaPKJ3R6-adND_rXf7ccmI,40248
|
|
7
|
-
claude_team_mcp/names.py,sha256=qUJlO2WlFjxB4Q1vLLTcEjTvKA63fJ3i2QBz80ABgnQ,15978
|
|
8
|
-
claude_team_mcp/profile.py,sha256=yqytAE0dIe6NQ6FodldSepO-ZIeR7-C0UfK3FsO7Pn4,12326
|
|
9
|
-
claude_team_mcp/registry.py,sha256=y14ggF7qCia-xYYWJZhTsUAnBn5fFEkS7LspfEwhGQI,14399
|
|
10
|
-
claude_team_mcp/server.py,sha256=oOYWVJo0-P0izs1wyxeouK1MJP16-P5djRZH8trSrqM,12726
|
|
11
|
-
claude_team_mcp/session_state.py,sha256=OcViByS05afdiCrBNRLR9qKrAn77H-2ALTe7yHfUUDs,34837
|
|
12
|
-
claude_team_mcp/subprocess_cache.py,sha256=6Q1NIMn2X5_75S4s_a9iPBka-UCz6RW0EMxPSPEaLxo,3612
|
|
13
|
-
claude_team_mcp/worker_prompt.py,sha256=NvzUrR6Zqjp8HuL-xOeAncdvACHbyN7O0nISWyySHq4,15771
|
|
14
|
-
claude_team_mcp/worktree.py,sha256=s5X4mePVb4AlPzYsTklLGKgLD-4GJX1iokpsF6WwrdU,17015
|
|
15
|
-
claude_team_mcp/cli_backends/__init__.py,sha256=9lpklc5lGWn-AdHoVqFMHau3UgzsN276grC1istHI2k,1038
|
|
16
|
-
claude_team_mcp/cli_backends/base.py,sha256=dArm2Yqjzs3smN0JpSGR79e9I_kQYJFgQ8gYpNrmS-o,3923
|
|
17
|
-
claude_team_mcp/cli_backends/claude.py,sha256=5axMph_IX-wX-DMulq0B_xQ3mVbhlwZjIi_WqjQwyL4,3268
|
|
18
|
-
claude_team_mcp/cli_backends/codex.py,sha256=OTTAw9P4EKBggGmKK32-BYQkF7jpfZSOiIfa77wxG1Q,3408
|
|
19
|
-
claude_team_mcp/issue_tracker/__init__.py,sha256=JYcVEdXkqDKXd9BAUoz3emYyZ9bvVRsuTB7Vxfw3jhU,3792
|
|
20
|
-
claude_team_mcp/schemas/__init__.py,sha256=IingbdgdQx9C0ZLBOhZ-doqIJRbO7aeAQjuCHMuVA84,99
|
|
21
|
-
claude_team_mcp/schemas/codex.py,sha256=KwUkTmD70kQLZvzl366tHAsuwKbtsk86ySTOW6b9wDk,5949
|
|
22
|
-
claude_team_mcp/tools/__init__.py,sha256=qILDACyNju45dX19QOmtCnVlRWCfGx7y96h5aJ_J5OU,1506
|
|
23
|
-
claude_team_mcp/tools/adopt_worker.py,sha256=oWSamOzOqnLPWADWb4tk7qSPHroxIhQXkFDnhy_EOkw,4560
|
|
24
|
-
claude_team_mcp/tools/annotate_worker.py,sha256=mBo4YMaaaNQxQBduYK1DPA-Ioift-ZQ9tYlBM6S15t8,1639
|
|
25
|
-
claude_team_mcp/tools/check_idle_workers.py,sha256=IjDNDeal9M7lTONWjKZrt8bXu7O277ossHz_2oyLRcY,3374
|
|
26
|
-
claude_team_mcp/tools/close_workers.py,sha256=glVUNM5Q32z8DyzvNKpxExN9pDR16rzjuyzEjI-eInM,6633
|
|
27
|
-
claude_team_mcp/tools/discover_workers.py,sha256=PkdnURZBex_y0kFx_pv-EgWrEbtQtsg5TjqycNs7BJI,5437
|
|
28
|
-
claude_team_mcp/tools/examine_worker.py,sha256=7Nd3EOdsGVDjMJ8ov9NhmcrjN8K9IE4i_noXHOP1uI8,1620
|
|
29
|
-
claude_team_mcp/tools/issue_tracker_help.py,sha256=KxgjFhXp3NCUDjqTl3UnIiFV-Y5DM80C1EoZXfA82QM,1668
|
|
30
|
-
claude_team_mcp/tools/list_workers.py,sha256=6cvsgHOYtakkSgoZdYez4VEQ3I8aWAKaGWhfiZyPf2c,2390
|
|
31
|
-
claude_team_mcp/tools/list_worktrees.py,sha256=_EIwpwoCMLaQh4dHws-jO53MS-E-L7hC7oPT7xC26lw,3665
|
|
32
|
-
claude_team_mcp/tools/message_workers.py,sha256=02XAE2EsJkkcZdmjaxQRiyUhAFTN4uB8kYzSkOwbxk0,12220
|
|
33
|
-
claude_team_mcp/tools/read_worker_logs.py,sha256=9gccM6MSaoxu97Xjsk7nUalLEU8XHV7r3SKggBRpNww,5913
|
|
34
|
-
claude_team_mcp/tools/spawn_workers.py,sha256=A08erciMM-q0TCPaFeVn6KvtVerIWdlbm6bH7P_E5G8,32366
|
|
35
|
-
claude_team_mcp/tools/wait_idle_workers.py,sha256=ITnhBiJYCgkz-DGJaYouAyTDh6cPIL_9RrptqC_xHu0,5232
|
|
36
|
-
claude_team_mcp/utils/__init__.py,sha256=Jyc-N1RXZnMdXLjSgRBB2ih04v-h0woUzZcVYYfc7wQ,647
|
|
37
|
-
claude_team_mcp/utils/constants.py,sha256=FGDHeo0reZ89365fuXJGIl2Y5MFQAoKfWtmYr7UQzhQ,5815
|
|
38
|
-
claude_team_mcp/utils/errors.py,sha256=9uPFHp7UJYB5t3p7P_5Sh3PVpYh4_vj_RLzX5GcJPEU,2738
|
|
39
|
-
claude_team_mcp/utils/worktree_detection.py,sha256=oMGcb7p1jvr7qWs06sxUMTAV8jRialcVqziCTCdW7XU,3251
|
|
40
|
-
claude_team_mcp-0.6.1.dist-info/METADATA,sha256=Au4mhF7eDsGIyGSCerEJUjPPR3fSj_1brDFL9CoC4O8,16020
|
|
41
|
-
claude_team_mcp-0.6.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
42
|
-
claude_team_mcp-0.6.1.dist-info/entry_points.txt,sha256=cmk5dmK50RVquExT-k_J72akl3qKIerPpVqfit7kQtQ,53
|
|
43
|
-
claude_team_mcp-0.6.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|