task-agent 1.3.3__tar.gz → 1.3.8__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.
Files changed (161) hide show
  1. task_agent-1.3.8/.github/workflows/ci.yml +54 -0
  2. task_agent-1.3.8/.github/workflows/publish.yml +62 -0
  3. {task_agent-1.3.3 → task_agent-1.3.8}/.gitignore +2 -0
  4. task_agent-1.3.8/PKG-INFO +96 -0
  5. task_agent-1.3.3/PKG-INFO → task_agent-1.3.8/README.md +63 -64
  6. {task_agent-1.3.3 → task_agent-1.3.8}/pyproject.toml +30 -5
  7. task_agent-1.3.8/sidecars/keet-bridge/README.md +51 -0
  8. task_agent-1.3.8/sidecars/keet-bridge/bridge.js +313 -0
  9. task_agent-1.3.8/sidecars/keet-bridge/package-lock.json +923 -0
  10. task_agent-1.3.8/sidecars/keet-bridge/package.json +17 -0
  11. task_agent-1.3.8/sidecars/keet-bridge/run.sh +17 -0
  12. task_agent-1.3.8/sidecars/keet-bridge/test-e2e.js +126 -0
  13. task_agent-1.3.8/sidecars/matrix-bridge/README.md +67 -0
  14. task_agent-1.3.8/sidecars/matrix-bridge/matrix_bridge.py +570 -0
  15. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/agent_registry.py +2 -2
  16. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/chat/discovery.py +2 -2
  17. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/chat/last_used.py +60 -5
  18. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/cli.py +603 -8
  19. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/manager.py +377 -10
  20. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/mcp.py +96 -0
  21. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/store_registry.py +107 -11
  22. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_chat_discovery.py +1 -1
  23. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_chat_last_used.py +7 -2
  24. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_cli.py +311 -0
  25. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_manager.py +21 -0
  26. task_agent-1.3.8/tests/test_manager_git.py +253 -0
  27. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_mcp.py +17 -0
  28. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_store_registry.py +9 -4
  29. task_agent-1.3.8/tests/test_yazi.py +48 -0
  30. {task_agent-1.3.3 → task_agent-1.3.8}/uv.lock +22 -20
  31. task_agent-1.3.3/.env +0 -3
  32. task_agent-1.3.3/.github/workflows/ci.yml +0 -36
  33. task_agent-1.3.3/.github/workflows/publish.yml +0 -41
  34. task_agent-1.3.3/README.md +0 -42
  35. task_agent-1.3.3/tests/test_manager_git.py +0 -131
  36. {task_agent-1.3.3 → task_agent-1.3.8}/.agents/skills/next/SKILL.md +0 -0
  37. {task_agent-1.3.3 → task_agent-1.3.8}/.gemini/settings.json +0 -0
  38. {task_agent-1.3.3 → task_agent-1.3.8}/.mise.toml +0 -0
  39. {task_agent-1.3.3 → task_agent-1.3.8}/.pre-commit-config.yaml +0 -0
  40. {task_agent-1.3.3 → task_agent-1.3.8}/.python-version +0 -0
  41. {task_agent-1.3.3 → task_agent-1.3.8}/.ta/agents/agy-cli/meta.toml +0 -0
  42. {task_agent-1.3.3 → task_agent-1.3.8}/.ta/agents/antigravity/meta.toml +0 -0
  43. {task_agent-1.3.3 → task_agent-1.3.8}/.ta/agents/gh/meta.toml +0 -0
  44. {task_agent-1.3.3 → task_agent-1.3.8}/.ta/agents/minimal/meta.toml +0 -0
  45. {task_agent-1.3.3 → task_agent-1.3.8}/.ta/agents/uat-aws/meta.toml +0 -0
  46. {task_agent-1.3.3 → task_agent-1.3.8}/.ta/worker +0 -0
  47. {task_agent-1.3.3 → task_agent-1.3.8}/.ta-config.json +0 -0
  48. {task_agent-1.3.3 → task_agent-1.3.8}/CLAUDE.md +0 -0
  49. {task_agent-1.3.3 → task_agent-1.3.8}/GEMINI.md +0 -0
  50. {task_agent-1.3.3 → task_agent-1.3.8}/Makefile +0 -0
  51. {task_agent-1.3.3 → task_agent-1.3.8}/agent.env +0 -0
  52. {task_agent-1.3.3 → task_agent-1.3.8}/docs/README.md +0 -0
  53. {task_agent-1.3.3 → task_agent-1.3.8}/docs/STATION-MAP.md +0 -0
  54. {task_agent-1.3.3 → task_agent-1.3.8}/docs/architecture/README.md +0 -0
  55. {task_agent-1.3.3 → task_agent-1.3.8}/docs/chats/gemini-conversation-1773283034591.json +0 -0
  56. {task_agent-1.3.3 → task_agent-1.3.8}/docs/chats/project-init-to-v0.1.46.md +0 -0
  57. {task_agent-1.3.3 → task_agent-1.3.8}/docs/cli/README.md +0 -0
  58. {task_agent-1.3.3 → task_agent-1.3.8}/docs/development/README.md +0 -0
  59. {task_agent-1.3.3 → task_agent-1.3.8}/docs/task-agents.md +0 -0
  60. {task_agent-1.3.3 → task_agent-1.3.8}/docs/workflow/README.md +0 -0
  61. {task_agent-1.3.3 → task_agent-1.3.8}/docs/workflow/trivial_worker_policy.md +0 -0
  62. {task_agent-1.3.3 → task_agent-1.3.8}/opencode.json +0 -0
  63. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/.gemini-plugin/plugin.json +0 -0
  64. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/.mcp.json +0 -0
  65. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/README.md +0 -0
  66. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/hooks/hooks.json +0 -0
  67. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/hooks/session_start.sh +0 -0
  68. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/rules/task_agent.md +0 -0
  69. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/scripts/statusline.sh +0 -0
  70. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/skills/README.md +0 -0
  71. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/skills/agent-import/SKILL.md +0 -0
  72. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/skills/complete-task/SKILL.md +0 -0
  73. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/skills/mission-workflow/SKILL.md +0 -0
  74. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/skills/next/SKILL.md +0 -0
  75. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/antigravity/skills/next-task/SKILL.md +0 -0
  76. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
  77. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/claude-code/.mcp.json +0 -0
  78. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/claude-code/README.md +0 -0
  79. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/claude-code/hooks/hooks.json +0 -0
  80. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/claude-code/hooks/session_start.sh +0 -0
  81. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/claude-code/scripts/statusline.sh +0 -0
  82. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/claude-code/skills/agent-import/SKILL.md +0 -0
  83. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/claude-code/skills/complete-task/SKILL.md +0 -0
  84. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/claude-code/skills/mission-workflow/SKILL.md +0 -0
  85. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/claude-code/skills/next-task/SKILL.md +0 -0
  86. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/codex/.mcp.json +0 -0
  87. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/codex/README.md +0 -0
  88. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/copilot/.mcp.json +0 -0
  89. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/copilot/README.md +0 -0
  90. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/grok/.mcp.json +0 -0
  91. {task_agent-1.3.3 → task_agent-1.3.8}/plugins/grok/README.md +0 -0
  92. {task_agent-1.3.3 → task_agent-1.3.8}/scripts/clean_duplicates.py +0 -0
  93. {task_agent-1.3.3 → task_agent-1.3.8}/scripts/migrate_tasks.py +0 -0
  94. {task_agent-1.3.3 → task_agent-1.3.8}/scripts/recover_dates.py +0 -0
  95. {task_agent-1.3.3 → task_agent-1.3.8}/sidecars/adk-worker/.env.example +0 -0
  96. {task_agent-1.3.3 → task_agent-1.3.8}/sidecars/adk-worker/README.md +0 -0
  97. {task_agent-1.3.3 → task_agent-1.3.8}/sidecars/adk-worker/instructions/manager.md +0 -0
  98. {task_agent-1.3.3 → task_agent-1.3.8}/sidecars/adk-worker/instructions/validator.md +0 -0
  99. {task_agent-1.3.3 → task_agent-1.3.8}/sidecars/adk-worker/instructions/worker.md +0 -0
  100. {task_agent-1.3.3 → task_agent-1.3.8}/sidecars/adk-worker/profiles/default.json +0 -0
  101. {task_agent-1.3.3 → task_agent-1.3.8}/sidecars/adk-worker/pyproject.toml +0 -0
  102. {task_agent-1.3.3 → task_agent-1.3.8}/sidecars/adk-worker/uv.lock +0 -0
  103. {task_agent-1.3.3 → task_agent-1.3.8}/sidecars/adk-worker/worker.py +0 -0
  104. {task_agent-1.3.3 → task_agent-1.3.8}/skills/README.md +0 -0
  105. {task_agent-1.3.3 → task_agent-1.3.8}/skills/agent-import/SKILL.md +0 -0
  106. {task_agent-1.3.3 → task_agent-1.3.8}/skills/complete-task/SKILL.md +0 -0
  107. {task_agent-1.3.3 → task_agent-1.3.8}/skills/mission-workflow/SKILL.md +0 -0
  108. {task_agent-1.3.3 → task_agent-1.3.8}/skills/next/SKILL.md +0 -0
  109. {task_agent-1.3.3 → task_agent-1.3.8}/skills/next-task/SKILL.md +0 -0
  110. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/__init__.py +0 -0
  111. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/__main__.py +0 -0
  112. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/agent.py +0 -0
  113. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/audit.py +0 -0
  114. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/chat/__init__.py +0 -0
  115. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/chat/config.py +0 -0
  116. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/config.py +0 -0
  117. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/discovery.py +0 -0
  118. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/importers/__init__.py +0 -0
  119. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/importers/antigravity.py +0 -0
  120. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/importers/base.py +0 -0
  121. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/importers/claude_code.py +0 -0
  122. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/importers/generic.py +0 -0
  123. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/inbox.py +0 -0
  124. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/models/__init__.py +0 -0
  125. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/models/issue.py +0 -0
  126. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/models/metric.py +0 -0
  127. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/perf.py +0 -0
  128. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/plugins/__init__.py +0 -0
  129. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/plugins/github.py +0 -0
  130. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/runner.py +0 -0
  131. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/templates.py +0 -0
  132. {task_agent-1.3.3 → task_agent-1.3.8}/src/taskagent/theme.py +0 -0
  133. {task_agent-1.3.3 → task_agent-1.3.8}/test-dir/opencode.json +0 -0
  134. {task_agent-1.3.3 → task_agent-1.3.8}/tests/conftest.py +0 -0
  135. {task_agent-1.3.3 → task_agent-1.3.8}/tests/e2e/test_agent_sandboxing.sh +0 -0
  136. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_agent.py +0 -0
  137. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_agent_registry.py +0 -0
  138. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_agy_cli_worker.py +0 -0
  139. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_atomic_mutations.py +0 -0
  140. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_auto_commit.py +0 -0
  141. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_chat_config.py +0 -0
  142. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_cli_windows.py +0 -0
  143. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_discovery.py +0 -0
  144. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_github_token.py +0 -0
  145. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_importers.py +0 -0
  146. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_inbox.py +0 -0
  147. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_inbox_watch.py +0 -0
  148. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_lease.py +0 -0
  149. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_metrics.py +0 -0
  150. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_migration.py +0 -0
  151. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_perf.py +0 -0
  152. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_plugin_antigravity.py +0 -0
  153. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_plugin_claude.py +0 -0
  154. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_project_host_root.py +0 -0
  155. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_rebind.py +0 -0
  156. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_remote_attach.py +0 -0
  157. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_remote_create.py +0 -0
  158. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_repo_resolve.py +0 -0
  159. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_runner.py +0 -0
  160. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_store_symlink.py +0 -0
  161. {task_agent-1.3.3 → task_agent-1.3.8}/tests/test_templates.py +0 -0
@@ -0,0 +1,54 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - main
10
+
11
+ env:
12
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
13
+
14
+ jobs:
15
+ lint:
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ # https://github.com/actions/checkout
19
+ - uses: actions/checkout@v6
20
+ with:
21
+ fetch-depth: 0
22
+
23
+ # The committed .env carries this developer's local ejected-store
24
+ # path (see .env, and _handle_ejected_symlink in discovery.py). A
25
+ # legacy migration branch there reloads .env with override=True,
26
+ # so an env var can't reliably countermand it — remove the file
27
+ # itself so discover() falls back to its safe in-repo default.
28
+ - name: Remove developer-local .env
29
+ run: rm -f .env
30
+
31
+ # Several tests create real git repos (auto-commit, store migration)
32
+ # and need a committer identity; the runner has none by default.
33
+ - name: Configure git identity for tests
34
+ run: |
35
+ git config --global user.name "CI Runner"
36
+ git config --global user.email "ci@task-agent.invalid"
37
+
38
+ # https://github.com/astral-sh/setup-uv
39
+ - name: Install uv
40
+ uses: astral-sh/setup-uv@v7
41
+ with:
42
+ enable-cache: true
43
+
44
+ - name: Set up Python
45
+ run: uv python install
46
+
47
+ - name: Run ruff
48
+ run: uv run ruff check .
49
+
50
+ - name: Run mypy
51
+ run: uv run mypy src
52
+
53
+ - name: Run pytest
54
+ run: uv run pytest
@@ -0,0 +1,62 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ env:
9
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
10
+
11
+ jobs:
12
+ publish:
13
+ name: Build and publish
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ id-token: write
17
+ contents: write
18
+ attestations: write
19
+
20
+ steps:
21
+ # https://github.com/actions/checkout
22
+ - uses: actions/checkout@v6
23
+ with:
24
+ fetch-depth: 0
25
+
26
+ # The committed .env carries this developer's local ejected-store
27
+ # path (see .env, and _handle_ejected_symlink in discovery.py). A
28
+ # legacy migration branch there reloads .env with override=True,
29
+ # so an env var can't reliably countermand it — remove the file
30
+ # itself so discover() falls back to its safe in-repo default.
31
+ - name: Remove developer-local .env
32
+ run: rm -f .env
33
+
34
+ # Several tests create real git repos (auto-commit, store migration)
35
+ # and need a committer identity; the runner has none by default.
36
+ - name: Configure git identity for tests
37
+ run: |
38
+ git config --global user.name "CI Runner"
39
+ git config --global user.email "ci@task-agent.invalid"
40
+
41
+ # https://github.com/astral-sh/setup-uv
42
+ - name: Install uv
43
+ uses: astral-sh/setup-uv@v7
44
+ with:
45
+ enable-cache: true
46
+
47
+ - name: Set up Python
48
+ run: uv python install
49
+
50
+ - name: Install dependencies
51
+ run: uv sync
52
+
53
+ - name: Run test suite
54
+ run: uv run pytest
55
+
56
+ - name: Build package
57
+ run: uv build
58
+
59
+ - name: Publish to PyPI
60
+ uses: pypa/gh-action-pypi-publish@release/v1
61
+ with:
62
+ verbose: true
@@ -11,6 +11,8 @@ taskhash
11
11
  .task-agent
12
12
  .pytest_cache/
13
13
  pytest-of-*/
14
+ node_modules/
15
+ .venv/
14
16
 
15
17
 
16
18
  # task-agent: human-facing store symlink
@@ -0,0 +1,96 @@
1
+ Metadata-Version: 2.5
2
+ Name: task-agent
3
+ Version: 1.3.8
4
+ Summary: A prioritized, file-based task queue for autonomous agentic workers
5
+ Project-URL: Homepage, https://github.com/InTEGr8or/task-agent
6
+ Project-URL: Repository, https://github.com/InTEGr8or/task-agent.git
7
+ Project-URL: Issues, https://github.com/InTEGr8or/task-agent/issues
8
+ Project-URL: Documentation, https://github.com/InTEGr8or/task-agent/blob/main/README.md
9
+ Author-email: Mark Stouffer <1802850+InTEGr8or@users.noreply.github.com>
10
+ License: MIT
11
+ Keywords: agentic-workflow,ai-agent,antigravity,claude-code,grok,matrix-bridge,mcp,model-context-protocol,multi-agent,opencode,task-agent
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Topic :: Software Development :: Build Tools
18
+ Requires-Python: >=3.12
19
+ Requires-Dist: boto3>=1.34.0
20
+ Requires-Dist: githubkit>=0.15.5
21
+ Requires-Dist: google-genai>=0.1.0
22
+ Requires-Dist: mcp<2.0.0,>=1.26.0
23
+ Requires-Dist: multi-agent-registry>=0.1.0
24
+ Requires-Dist: pydantic>=2.10.6
25
+ Requires-Dist: pyperclip>=1.9.0
26
+ Requires-Dist: python-dotenv>=1.2.2
27
+ Requires-Dist: pyyaml>=6.0
28
+ Requires-Dist: questionary>=2.1.1
29
+ Requires-Dist: rich>=13.9.4
30
+ Requires-Dist: transitions>=0.9.2
31
+ Requires-Dist: verkit>=0.1.4
32
+ Description-Content-Type: text/markdown
33
+
34
+ # Task Agent 🤖
35
+
36
+ A prioritized, file-based task queue for autonomous agentic workers. This system uses a "Mission Control" approach to manage multiple agents working on git-tracked improvements across various branches and worktrees.
37
+
38
+ ## 📂 System Architecture
39
+
40
+ The project follows a specific folder structure to manage the lifecycle of an improvement:
41
+
42
+ - `docs/issues/`: The core queue.
43
+ - `mission.usv`: A prioritized list of issues using Unit Separator Value (`\x1f`) format. This serves as the source of truth for task priority.
44
+ - `datapackage.json`: Frictionless Data metadata for the `mission.usv` schema.
45
+ - `pending/`: New issues awaiting triage or assignment.
46
+ - `draft/`: Issues currently being refined or planned.
47
+ - `active/`: Issues actively being worked on by an agent.
48
+ - `completed/{year}/`: Successfully implemented and verified improvements.
49
+ - `.gwt/`: Git Worktree directory where active branches are checked out for isolated agent execution.
50
+
51
+ ## 🛠️ Tooling: `ta` (Task Agent CLI)
52
+
53
+ The `ta` tool automates the transition of issues through the queue and manages the underlying git infrastructure.
54
+
55
+ ### Commands
56
+
57
+ | Command | Action |
58
+ | :--- | :--- |
59
+ | `ta next` | Displays the top prioritized issue from `mission.usv`. |
60
+ | `ta new` | Creates a new issue file and adds it to the queue. |
61
+ | `ta done` | Moves issue to `completed/`, removes it from the queue, and auto-commits the result. |
62
+ | `ta start <slug>` | Moves issue to `active/`, creates a git branch, and sets up a `.gwt/` worktree. |
63
+ | `ta run <slug>` | Invokes the sidecar worker defined at `.ta/worker` to process an active issue. |
64
+
65
+ ## 🚀 Workflow
66
+
67
+ 1. **Prioritize**: Use `ta new -t "Title"` to add a task.
68
+ 2. **Review**: Run `ta next` to see what is currently at the top of the queue.
69
+ 3. **Dispatch**: (Planned) Run `ta start <slug>` to prepare the workspace.
70
+ 4. **Execute**: (Planned) The agent (Gemini CLI) processes the task in its isolated worktree via `ta run <slug>`.
71
+ 5. **Finalize**: Once verified, `ta done` moves the task to the finished state.
72
+
73
+ ## 🤖 Multi-Agent CLI Portfolio (`multi-agent-registry`)
74
+
75
+ `task-agent` integrates with [`multi-agent-registry`](https://github.com/InTEGr8or/multi-agent-registry) (`multi_agent_registry`) to automatically detect, configure, and inspect AI agent CLIs across your developer workstation:
76
+
77
+ - **Supported Agent CLIs**: Claude Code (`claude`), Antigravity CLI (`agy`), OpenCode (`opencode`), Grok Build (`grok`), GitHub Copilot CLI (`copilot`), Cursor (`cursor`), Windsurf (`windsurf`), Aider (`aider`), Continue (`continue`), Cline (`cline`), Roo Code (`roo`).
78
+ - **Features**: Automatic CLI detection, MCP configuration generation (`ta init-mcp`), session discovery, recent agent activity tracking (`ta agent recent`), and plugin management.
79
+
80
+ ---
81
+
82
+ ## 💬 Matrix Messaging Integration & Sidecar Daemon
83
+
84
+ `task-agent` includes a zero-dependency Matrix sidecar bridge daemon ([`sidecars/matrix-bridge/`](file:///home/mstouffer/repos/task-agent/sidecars/matrix-bridge/)) for real-time remote notification and task chat bridging:
85
+
86
+ - **Global Space & Store Binding**:
87
+ ```bash
88
+ # Configure machine-wide Matrix Space link
89
+ ta store matrix space set 'https://matrix.to/#/!space_id:matrix.org'
90
+
91
+ # Configure secret token reference (1Password op://, Linux keyring secret-tool://, or pass://)
92
+ ta store matrix token set 'op://Private/6pcab3dt5sml3sslfh6xffqit4/Saved on account.matrix.org/access-token'
93
+ ```
94
+ - **Automated Space & Child Room Provisioning**:
95
+ When launched, the sidecar daemon (`python3 sidecars/matrix-bridge/matrix_bridge.py`) auto-discovers or provisions unencrypted child rooms inside your Space for each repository store and delivers real-time inbox comments.
96
+
@@ -1,64 +1,63 @@
1
- Metadata-Version: 2.5
2
- Name: task-agent
3
- Version: 1.3.3
4
- Summary: A prioritized, file-based task queue for autonomous agentic workers
5
- Author-email: Mark Stouffer <1802850+InTEGr8or@users.noreply.github.com>
6
- License: MIT
7
- Requires-Python: >=3.12
8
- Requires-Dist: agent-cli-registry>=0.1.1
9
- Requires-Dist: boto3>=1.34.0
10
- Requires-Dist: githubkit>=0.15.5
11
- Requires-Dist: google-genai>=0.1.0
12
- Requires-Dist: mcp<2.0.0,>=1.26.0
13
- Requires-Dist: pydantic>=2.10.6
14
- Requires-Dist: pyperclip>=1.9.0
15
- Requires-Dist: python-dotenv>=1.2.2
16
- Requires-Dist: pyyaml>=6.0
17
- Requires-Dist: questionary>=2.1.1
18
- Requires-Dist: rich>=13.9.4
19
- Requires-Dist: transitions>=0.9.2
20
- Requires-Dist: verkit>=0.1.4
21
- Description-Content-Type: text/markdown
22
-
23
- # Task Agent 🤖
24
-
25
- A prioritized, file-based task queue for autonomous agentic workers. This system uses a "Mission Control" approach to manage multiple agents working on git-tracked improvements across various branches and worktrees.
26
-
27
- ## 📂 System Architecture
28
-
29
- The project follows a specific folder structure to manage the lifecycle of an improvement:
30
-
31
- - `docs/issues/`: The core queue.
32
- - `mission.usv`: A prioritized list of issues using Unit Separator Value (`\x1f`) format. This serves as the source of truth for task priority.
33
- - `datapackage.json`: Frictionless Data metadata for the `mission.usv` schema.
34
- - `pending/`: New issues awaiting triage or assignment.
35
- - `draft/`: Issues currently being refined or planned.
36
- - `active/`: Issues actively being worked on by an agent.
37
- - `completed/{year}/`: Successfully implemented and verified improvements.
38
- - `.gwt/`: Git Worktree directory where active branches are checked out for isolated agent execution.
39
-
40
- ## 🛠️ Tooling: `ta` (Task Agent CLI)
41
-
42
- The `ta` tool automates the transition of issues through the queue and manages the underlying git infrastructure.
43
-
44
- ### Commands
45
-
46
- | Command | Action |
47
- | :--- | :--- |
48
- | `ta next` | Displays the top prioritized issue from `mission.usv`. |
49
- | `ta new` | Creates a new issue file and adds it to the queue. |
50
- | `ta done` | Moves issue to `completed/`, removes it from the queue, and auto-commits the result. |
51
- | `ta start <slug>` | Moves issue to `active/`, creates a git branch, and sets up a `.gwt/` worktree. |
52
- | `ta run <slug>` | Invokes the sidecar worker defined at `.ta/worker` to process an active issue. |
53
-
54
- ## 🚀 Workflow
55
-
56
- 1. **Prioritize**: Use `ta new -t "Title"` to add a task.
57
- 2. **Review**: Run `ta next` to see what is currently at the top of the queue.
58
- 3. **Dispatch**: (Planned) Run `ta start <slug>` to prepare the workspace.
59
- 4. **Execute**: (Planned) The agent (Gemini CLI) processes the task in its isolated worktree via `ta run <slug>`.
60
- 5. **Finalize**: Once verified, `ta done` moves the task to the finished state.
61
-
62
- ## 🤖 Gemini CLI Integration
63
-
64
- By utilizing the Gemini CLI's headless mode, this system can orchestrate multiple agents simultaneously without requiring manual terminal management, significantly improving portability and scalability between Windows and WSL environments.
1
+ # Task Agent 🤖
2
+
3
+ A prioritized, file-based task queue for autonomous agentic workers. This system uses a "Mission Control" approach to manage multiple agents working on git-tracked improvements across various branches and worktrees.
4
+
5
+ ## 📂 System Architecture
6
+
7
+ The project follows a specific folder structure to manage the lifecycle of an improvement:
8
+
9
+ - `docs/issues/`: The core queue.
10
+ - `mission.usv`: A prioritized list of issues using Unit Separator Value (`\x1f`) format. This serves as the source of truth for task priority.
11
+ - `datapackage.json`: Frictionless Data metadata for the `mission.usv` schema.
12
+ - `pending/`: New issues awaiting triage or assignment.
13
+ - `draft/`: Issues currently being refined or planned.
14
+ - `active/`: Issues actively being worked on by an agent.
15
+ - `completed/{year}/`: Successfully implemented and verified improvements.
16
+ - `.gwt/`: Git Worktree directory where active branches are checked out for isolated agent execution.
17
+
18
+ ## 🛠️ Tooling: `ta` (Task Agent CLI)
19
+
20
+ The `ta` tool automates the transition of issues through the queue and manages the underlying git infrastructure.
21
+
22
+ ### Commands
23
+
24
+ | Command | Action |
25
+ | :--- | :--- |
26
+ | `ta next` | Displays the top prioritized issue from `mission.usv`. |
27
+ | `ta new` | Creates a new issue file and adds it to the queue. |
28
+ | `ta done` | Moves issue to `completed/`, removes it from the queue, and auto-commits the result. |
29
+ | `ta start <slug>` | Moves issue to `active/`, creates a git branch, and sets up a `.gwt/` worktree. |
30
+ | `ta run <slug>` | Invokes the sidecar worker defined at `.ta/worker` to process an active issue. |
31
+
32
+ ## 🚀 Workflow
33
+
34
+ 1. **Prioritize**: Use `ta new -t "Title"` to add a task.
35
+ 2. **Review**: Run `ta next` to see what is currently at the top of the queue.
36
+ 3. **Dispatch**: (Planned) Run `ta start <slug>` to prepare the workspace.
37
+ 4. **Execute**: (Planned) The agent (Gemini CLI) processes the task in its isolated worktree via `ta run <slug>`.
38
+ 5. **Finalize**: Once verified, `ta done` moves the task to the finished state.
39
+
40
+ ## 🤖 Multi-Agent CLI Portfolio (`multi-agent-registry`)
41
+
42
+ `task-agent` integrates with [`multi-agent-registry`](https://github.com/InTEGr8or/multi-agent-registry) (`multi_agent_registry`) to automatically detect, configure, and inspect AI agent CLIs across your developer workstation:
43
+
44
+ - **Supported Agent CLIs**: Claude Code (`claude`), Antigravity CLI (`agy`), OpenCode (`opencode`), Grok Build (`grok`), GitHub Copilot CLI (`copilot`), Cursor (`cursor`), Windsurf (`windsurf`), Aider (`aider`), Continue (`continue`), Cline (`cline`), Roo Code (`roo`).
45
+ - **Features**: Automatic CLI detection, MCP configuration generation (`ta init-mcp`), session discovery, recent agent activity tracking (`ta agent recent`), and plugin management.
46
+
47
+ ---
48
+
49
+ ## 💬 Matrix Messaging Integration & Sidecar Daemon
50
+
51
+ `task-agent` includes a zero-dependency Matrix sidecar bridge daemon ([`sidecars/matrix-bridge/`](file:///home/mstouffer/repos/task-agent/sidecars/matrix-bridge/)) for real-time remote notification and task chat bridging:
52
+
53
+ - **Global Space & Store Binding**:
54
+ ```bash
55
+ # Configure machine-wide Matrix Space link
56
+ ta store matrix space set 'https://matrix.to/#/!space_id:matrix.org'
57
+
58
+ # Configure secret token reference (1Password op://, Linux keyring secret-tool://, or pass://)
59
+ ta store matrix token set 'op://Private/6pcab3dt5sml3sslfh6xffqit4/Saved on account.matrix.org/access-token'
60
+ ```
61
+ - **Automated Space & Child Room Provisioning**:
62
+ When launched, the sidecar daemon (`python3 sidecars/matrix-bridge/matrix_bridge.py`) auto-discovers or provisions unencrypted child rooms inside your Space for each repository store and delivers real-time inbox comments.
63
+
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "task-agent"
3
- version = "1.3.3"
3
+ version = "1.3.8"
4
4
  description = "A prioritized, file-based task queue for autonomous agentic workers"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -8,6 +8,28 @@ authors = [
8
8
  { name = "Mark Stouffer", email = "1802850+InTEGr8or@users.noreply.github.com" }
9
9
  ]
10
10
  license = { text = "MIT" }
11
+ keywords = [
12
+ "task-agent",
13
+ "ai-agent",
14
+ "multi-agent",
15
+ "mcp",
16
+ "model-context-protocol",
17
+ "agentic-workflow",
18
+ "claude-code",
19
+ "antigravity",
20
+ "opencode",
21
+ "grok",
22
+ "matrix-bridge",
23
+ ]
24
+ classifiers = [
25
+ "Development Status :: 4 - Beta",
26
+ "Intended Audience :: Developers",
27
+ "License :: OSI Approved :: MIT License",
28
+ "Programming Language :: Python :: 3",
29
+ "Programming Language :: Python :: 3.12",
30
+ "Topic :: Software Development :: Build Tools",
31
+ ]
32
+
11
33
  dependencies = [
12
34
  "mcp>=1.26.0,<2.0.0",
13
35
  "pydantic>=2.10.6",
@@ -17,13 +39,19 @@ dependencies = [
17
39
  "rich>=13.9.4",
18
40
  "githubkit>=0.15.5",
19
41
  "verkit>=0.1.4",
20
- "agent-cli-registry>=0.1.1",
42
+ "multi-agent-registry>=0.1.0",
21
43
  "transitions>=0.9.2",
22
44
  "boto3>=1.34.0",
23
45
  "google-genai>=0.1.0",
24
46
  "pyyaml>=6.0",
25
47
  ]
26
48
 
49
+ [project.urls]
50
+ Homepage = "https://github.com/InTEGr8or/task-agent"
51
+ Repository = "https://github.com/InTEGr8or/task-agent.git"
52
+ Issues = "https://github.com/InTEGr8or/task-agent/issues"
53
+ Documentation = "https://github.com/InTEGr8or/task-agent/blob/main/README.md"
54
+
27
55
 
28
56
  [project.scripts]
29
57
  ta = "taskagent.cli:main"
@@ -64,7 +92,4 @@ replace = "version = \"{new_version}\""
64
92
  [tool.pytest.ini_options]
65
93
  testpaths = ["tests"]
66
94
 
67
- [tool.uv.sources]
68
- verkit = { path = "/home/mstouffer/repos/verkit" }
69
-
70
95
 
@@ -0,0 +1,51 @@
1
+ # Task Agent <-> Keet Bridge Sidecar
2
+
3
+ This sidecar daemon bridges **Task Agent (`ta`)** store inbox messages (`.task-agent/inbox/unread/`) with **Keet** P2P chat rooms using the **Hyperswarm** DHT protocol.
4
+
5
+ ## Architecture
6
+
7
+ - **Outbound (Agent → Keet)**: Monitors `.task-agent/inbox/unread/` in real time. When an agent posts a question (`kind="question"` or `kind="ack-request"`), the bridge formats and broadcasts the payload to connected peers in the Keet room.
8
+ - **Inbound (Keet → Agent)**: Listens for incoming P2P chat responses from Keet room participants, writing them as `.msg.md` files into `.task-agent/inbox/unread/`. This immediately unblocks agents waiting on `watch_inbox_mcp` or `watch_inbox`.
9
+
10
+ ## Installation
11
+
12
+ ```bash
13
+ cd sidecars/keet-bridge
14
+ npm install
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ Run the bridge daemon by pointing it to your Keet room invite URI and task-agent store root:
20
+
21
+ ```bash
22
+ node bridge.js --room "keet://chat/<your-room-secret-key>" --repo /path/to/repo
23
+ ```
24
+
25
+ ### Options
26
+
27
+ | Flag | Environment Variable | Default | Description |
28
+ |------|----------------------|---------|-------------|
29
+ | `--room` | `KEET_ROOM_URI` | *(required)* | Keet room URI (`keet://chat/...`) or topic key |
30
+ | `--repo` | `TA_STORE_PATH` | Current Directory (`.`) | Path to target task-agent store root |
31
+ | `--interval` | - | `1000` | Polling frequency in milliseconds for inbox changes |
32
+ | `--moniker` | `TA_STORE_MONIKER` | `keet-bridge` | Moniker identifier for this sidecar node |
33
+
34
+ ## Testing
35
+
36
+ You can test the flow by running the bridge in one terminal window and using the `ta` CLI in another:
37
+
38
+ 1. **Start the bridge**:
39
+ ```bash
40
+ node sidecars/keet-bridge/bridge.js --room "keet://chat/gfouuoztj3z59..." --repo .
41
+ ```
42
+
43
+ 2. **Send a test question from an agent**:
44
+ ```bash
45
+ ta inbox send --repo . --kind question --thread my-task --body "Should we proceed with Option A or B?"
46
+ ```
47
+
48
+ 3. **Verify unread messages or response delivery**:
49
+ ```bash
50
+ ta inbox list
51
+ ```