task-agent 1.3.0__tar.gz → 1.3.2__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.
- {task_agent-1.3.0 → task_agent-1.3.2}/PKG-INFO +1 -1
- {task_agent-1.3.0 → task_agent-1.3.2}/pyproject.toml +1 -1
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/chat/last_used.py +39 -39
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/cli.py +8 -9
- {task_agent-1.3.0 → task_agent-1.3.2}/uv.lock +1 -1
- {task_agent-1.3.0 → task_agent-1.3.2}/.agents/skills/next/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.env +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.gemini/settings.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.github/workflows/ci.yml +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.github/workflows/publish.yml +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.gitignore +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.mise.toml +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.pre-commit-config.yaml +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.python-version +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.ta/agents/agy-cli/meta.toml +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.ta/agents/antigravity/meta.toml +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.ta/agents/gh/meta.toml +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.ta/agents/minimal/meta.toml +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.ta/agents/uat-aws/meta.toml +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.ta/worker +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/.ta-config.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/CLAUDE.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/GEMINI.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/Makefile +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/agent.env +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/docs/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/docs/STATION-MAP.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/docs/architecture/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/docs/chats/gemini-conversation-1773283034591.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/docs/chats/project-init-to-v0.1.46.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/docs/cli/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/docs/development/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/docs/task-agents.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/docs/workflow/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/docs/workflow/trivial_worker_policy.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/opencode.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/.gemini-plugin/plugin.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/.mcp.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/hooks/hooks.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/hooks/session_start.sh +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/rules/task_agent.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/scripts/statusline.sh +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/skills/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/skills/agent-import/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/skills/complete-task/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/skills/mission-workflow/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/skills/next/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/antigravity/skills/next-task/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/claude-code/.mcp.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/claude-code/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/claude-code/hooks/hooks.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/claude-code/hooks/session_start.sh +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/claude-code/scripts/statusline.sh +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/claude-code/skills/agent-import/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/claude-code/skills/complete-task/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/claude-code/skills/mission-workflow/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/claude-code/skills/next-task/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/codex/.mcp.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/codex/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/copilot/.mcp.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/copilot/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/grok/.mcp.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/plugins/grok/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/scripts/clean_duplicates.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/scripts/migrate_tasks.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/scripts/recover_dates.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/sidecars/adk-worker/.env.example +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/sidecars/adk-worker/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/sidecars/adk-worker/instructions/manager.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/sidecars/adk-worker/instructions/validator.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/sidecars/adk-worker/instructions/worker.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/sidecars/adk-worker/profiles/default.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/sidecars/adk-worker/pyproject.toml +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/sidecars/adk-worker/uv.lock +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/sidecars/adk-worker/worker.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/skills/README.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/skills/agent-import/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/skills/complete-task/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/skills/mission-workflow/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/skills/next/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/skills/next-task/SKILL.md +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/__init__.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/__main__.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/agent.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/agent_registry.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/audit.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/chat/__init__.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/chat/config.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/chat/discovery.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/config.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/discovery.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/importers/__init__.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/importers/antigravity.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/importers/base.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/importers/claude_code.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/importers/generic.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/inbox.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/manager.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/mcp.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/models/__init__.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/models/issue.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/models/metric.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/perf.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/plugins/__init__.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/plugins/github.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/runner.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/store_registry.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/templates.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/src/taskagent/theme.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/test-dir/opencode.json +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/conftest.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/e2e/test_agent_sandboxing.sh +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_agent.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_agent_registry.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_agy_cli_worker.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_atomic_mutations.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_auto_commit.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_chat_config.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_chat_discovery.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_chat_last_used.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_cli.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_cli_windows.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_discovery.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_github_token.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_importers.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_inbox.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_inbox_watch.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_lease.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_manager.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_manager_git.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_mcp.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_metrics.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_migration.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_perf.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_plugin_antigravity.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_plugin_claude.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_project_host_root.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_rebind.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_remote_attach.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_remote_create.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_repo_resolve.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_runner.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_store_registry.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_store_symlink.py +0 -0
- {task_agent-1.3.0 → task_agent-1.3.2}/tests/test_templates.py +0 -0
|
@@ -4,7 +4,7 @@ import json
|
|
|
4
4
|
from dataclasses import dataclass
|
|
5
5
|
from datetime import datetime, timezone
|
|
6
6
|
from pathlib import Path
|
|
7
|
-
from typing import List, Optional, Tuple
|
|
7
|
+
from typing import Any, List, Optional, Tuple
|
|
8
8
|
|
|
9
9
|
from agent_registry import (
|
|
10
10
|
AgentCLIInfo,
|
|
@@ -27,6 +27,30 @@ class AgentLastUsedInfo:
|
|
|
27
27
|
log_path: Path
|
|
28
28
|
|
|
29
29
|
|
|
30
|
+
def _extract_text(node: Any) -> str:
|
|
31
|
+
"""Recursively extract string content from dicts, lists, or primitive strings."""
|
|
32
|
+
if isinstance(node, str):
|
|
33
|
+
return node
|
|
34
|
+
elif isinstance(node, dict):
|
|
35
|
+
if "text" in node and isinstance(node["text"], str):
|
|
36
|
+
return node["text"]
|
|
37
|
+
if "content" in node:
|
|
38
|
+
return _extract_text(node["content"])
|
|
39
|
+
if "message" in node:
|
|
40
|
+
return _extract_text(node["message"])
|
|
41
|
+
elif isinstance(node, list):
|
|
42
|
+
parts = [_extract_text(item) for item in node]
|
|
43
|
+
return " ".join(p for p in parts if p)
|
|
44
|
+
return ""
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _is_user_role(role_val: Any) -> bool:
|
|
48
|
+
if isinstance(role_val, str):
|
|
49
|
+
r = role_val.lower()
|
|
50
|
+
return r in ("user", "say", "user_input", "user_explicit", "human", "user_feedback")
|
|
51
|
+
return False
|
|
52
|
+
|
|
53
|
+
|
|
30
54
|
def _parse_last_user_comment_and_timestamp(
|
|
31
55
|
discovered: DiscoveredChat,
|
|
32
56
|
) -> Tuple[datetime, str]:
|
|
@@ -48,35 +72,21 @@ def _parse_last_user_comment_and_timestamp(
|
|
|
48
72
|
try:
|
|
49
73
|
data = json.loads(line)
|
|
50
74
|
if isinstance(data, dict):
|
|
75
|
+
msg = data.get("message")
|
|
51
76
|
role = (
|
|
52
77
|
data.get("type")
|
|
53
78
|
or data.get("role")
|
|
54
79
|
or data.get("source")
|
|
80
|
+
or (msg.get("role") if isinstance(msg, dict) else None)
|
|
55
81
|
)
|
|
56
|
-
if role
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
or data.get("text")
|
|
65
|
-
or data.get("message")
|
|
66
|
-
)
|
|
67
|
-
if isinstance(content, list):
|
|
68
|
-
text_parts = []
|
|
69
|
-
for part in content:
|
|
70
|
-
if (
|
|
71
|
-
isinstance(part, dict)
|
|
72
|
-
and part.get("type") == "text"
|
|
73
|
-
):
|
|
74
|
-
text_parts.append(part.get("text", ""))
|
|
75
|
-
elif isinstance(part, str):
|
|
76
|
-
text_parts.append(part)
|
|
77
|
-
content = " ".join(text_parts)
|
|
78
|
-
if isinstance(content, str) and content.strip():
|
|
79
|
-
user_comment = content.strip()
|
|
82
|
+
if _is_user_role(role):
|
|
83
|
+
raw_comment = _extract_text(msg if msg else data).strip()
|
|
84
|
+
if (
|
|
85
|
+
raw_comment
|
|
86
|
+
and not raw_comment.startswith("<local-command-")
|
|
87
|
+
and not raw_comment.startswith("<command-name>")
|
|
88
|
+
):
|
|
89
|
+
user_comment = raw_comment
|
|
80
90
|
break
|
|
81
91
|
except Exception:
|
|
82
92
|
continue
|
|
@@ -104,20 +114,10 @@ def _parse_last_user_comment_and_timestamp(
|
|
|
104
114
|
or msg.get("type")
|
|
105
115
|
or msg.get("source")
|
|
106
116
|
)
|
|
107
|
-
if role
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
"USER_INPUT",
|
|
112
|
-
"human",
|
|
113
|
-
):
|
|
114
|
-
content = (
|
|
115
|
-
msg.get("text")
|
|
116
|
-
or msg.get("content")
|
|
117
|
-
or msg.get("message")
|
|
118
|
-
)
|
|
119
|
-
if isinstance(content, str) and content.strip():
|
|
120
|
-
user_comment = content.strip()
|
|
117
|
+
if _is_user_role(role):
|
|
118
|
+
raw_comment = _extract_text(msg).strip()
|
|
119
|
+
if raw_comment:
|
|
120
|
+
user_comment = raw_comment
|
|
121
121
|
break
|
|
122
122
|
|
|
123
123
|
elif discovered.parser_type == "markdown":
|
|
@@ -4273,7 +4273,6 @@ def cmd_agent_last_used(
|
|
|
4273
4273
|
table = Table(box=box.ROUNDED, show_header=True, header_style="bold cyan")
|
|
4274
4274
|
table.add_column("#", style="dim", width=3)
|
|
4275
4275
|
table.add_column("Agent CLI", style="bold yellow")
|
|
4276
|
-
table.add_column("Description", style="white")
|
|
4277
4276
|
table.add_column("Last Active", style="green")
|
|
4278
4277
|
table.add_column("Last Comment Snippet", style="dim white")
|
|
4279
4278
|
|
|
@@ -4283,7 +4282,6 @@ def cmd_agent_last_used(
|
|
|
4283
4282
|
table.add_row(
|
|
4284
4283
|
str(idx),
|
|
4285
4284
|
item.agent_name,
|
|
4286
|
-
item.description,
|
|
4287
4285
|
rel_time,
|
|
4288
4286
|
comment_snippet,
|
|
4289
4287
|
)
|
|
@@ -6114,23 +6112,24 @@ Start working on a task. This command automates the following workflow:
|
|
|
6114
6112
|
action="store_true",
|
|
6115
6113
|
help="Output result as JSON",
|
|
6116
6114
|
)
|
|
6117
|
-
|
|
6118
|
-
"
|
|
6115
|
+
agent_recent_p = agent_sub.add_parser(
|
|
6116
|
+
"recent",
|
|
6117
|
+
aliases=["last-used"],
|
|
6119
6118
|
help="List AI coding agents recently active in this repository",
|
|
6120
6119
|
)
|
|
6121
|
-
|
|
6120
|
+
agent_recent_p.add_argument(
|
|
6122
6121
|
"path",
|
|
6123
6122
|
nargs="?",
|
|
6124
6123
|
default=None,
|
|
6125
6124
|
help="Target repository directory (defaults to cwd)",
|
|
6126
6125
|
)
|
|
6127
|
-
|
|
6126
|
+
agent_recent_p.add_argument(
|
|
6128
6127
|
"--limit",
|
|
6129
6128
|
type=int,
|
|
6130
6129
|
default=5,
|
|
6131
6130
|
help="Maximum number of active agents to return (default: 5)",
|
|
6132
6131
|
)
|
|
6133
|
-
|
|
6132
|
+
agent_recent_p.add_argument(
|
|
6134
6133
|
"--json",
|
|
6135
6134
|
action="store_true",
|
|
6136
6135
|
help="Output result as JSON",
|
|
@@ -6818,7 +6817,7 @@ TA_STRATEGY_COOLDOWN_HOURS environment variable.
|
|
|
6818
6817
|
file_path=args.file,
|
|
6819
6818
|
json_format=args.json,
|
|
6820
6819
|
)
|
|
6821
|
-
elif args.agent_subcommand
|
|
6820
|
+
elif args.agent_subcommand in ("recent", "last-used"):
|
|
6822
6821
|
cmd_agent_last_used(
|
|
6823
6822
|
console,
|
|
6824
6823
|
path_arg=args.path,
|
|
@@ -6827,7 +6826,7 @@ TA_STRATEGY_COOLDOWN_HOURS environment variable.
|
|
|
6827
6826
|
)
|
|
6828
6827
|
else:
|
|
6829
6828
|
console.print(
|
|
6830
|
-
"[yellow]Unknown agent subcommand. Use 'ta agent import' or 'ta agent
|
|
6829
|
+
"[yellow]Unknown agent subcommand. Use 'ta agent import' or 'ta agent recent'.[/yellow]"
|
|
6831
6830
|
)
|
|
6832
6831
|
elif args.command == "push":
|
|
6833
6832
|
cmd_push(console, manager)
|
|
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
|
|
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
|