Open-source, local-first control plane for multi-model AI coding agents in VS Code and MCP: task DAGs, source intelligence, durable context and evidence-based review.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 86 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
aiworkhub_agent_accept_review
-
aiworkhub_agent_cancel_task
-
aiworkhub_agent_collect_result
-
aiworkhub_agent_launch_task
-
aiworkhub_agent_list_processes
-
aiworkhub_agent_task_status
-
aiworkhub_claude_callback_ack
-
aiworkhub_claude_callback_wait
-
aiworkhub_completion_inbox
-
aiworkhub_dispatcher_ensure_started
-
aiworkhub_dispatcher_health
-
aiworkhub_dispatcher_stop
-
aiworkhub_dispatcher_watchdog
-
aiworkhub_environment_preflight
-
aiworkhub_launch_queue_audit_summary_readonly
-
aiworkhub_launch_queue_describe_readonly
-
aiworkhub_launch_queue_evaluate_readonly
-
aiworkhub_manager_ai_memory_get
-
aiworkhub_manager_ai_memory_related
-
aiworkhub_manager_ai_memory_search
-
aiworkhub_manager_ai_memory_write
-
aiworkhub_manager_bootstrap
-
aiworkhub_manager_context_import
-
aiworkhub_manager_context_write_intent_dispose
-
aiworkhub_manager_context_write_intents
-
aiworkhub_manager_kb_get
-
aiworkhub_manager_kb_related
-
aiworkhub_manager_kb_search
-
aiworkhub_manager_kb_write
-
aiworkhub_manager_session_current_state
-
aiworkhub_manager_session_write
-
aiworkhub_manager_source_graph_query
-
aiworkhub_manager_task_archive
-
aiworkhub_manager_task_supersede
-
aiworkhub_manager_workforce_catalog
-
aiworkhub_manager_workforce_rank
-
aiworkhub_manager_workforce_upsert
-
aiworkhub_quality_evidence_packet
-
aiworkhub_quality_profile
-
aiworkhub_quality_run_checks
-
aiworkhub_repo_current
-
aiworkhub_repo_list
-
aiworkhub_repo_switch
-
aiworkhub_router_known_repositories
-
aiworkhub_source_graph_ensure_started
-
aiworkhub_source_graph_health
-
aiworkhub_source_graph_refresh_now
-
aiworkhub_source_graph_stop
-
aiworkhub_supervisor_loop_status
-
aiworkhub_task_archive
-
aiworkhub_task_audit_log_read
-
aiworkhub_task_auto_pickup
-
aiworkhub_task_auto_pickup_dryrun
-
aiworkhub_task_codex_handoff
-
aiworkhub_task_codex_handoff_markdown
-
aiworkhub_task_collision_guard
-
aiworkhub_task_cost_ledger
-
aiworkhub_task_create
-
aiworkhub_task_dependency_autolaunch_reconcile
-
aiworkhub_task_export_jsonl
-
aiworkhub_task_health
-
aiworkhub_task_list
-
aiworkhub_task_mark_done
-
aiworkhub_task_mark_review
-
aiworkhub_task_pending_for_runner
-
aiworkhub_task_plan_snapshot
-
aiworkhub_task_queue_request
-
aiworkhub_task_reject_review
-
aiworkhub_task_review_queue
-
aiworkhub_task_review_summarize
-
aiworkhub_task_show
-
aiworkhub_task_stale_recovery_recommend
-
aiworkhub_task_supersede
-
aiworkhub_task_usage_report
-
aiworkhub_vscode_lm_worker_tool
-
aiworkhub_worker_ai_memory_get
-
aiworkhub_worker_ai_memory_related
-
aiworkhub_worker_ai_memory_search
-
aiworkhub_worker_ai_memory_write_intent
-
aiworkhub_worker_kb_get
-
aiworkhub_worker_kb_related
-
aiworkhub_worker_kb_search
-
aiworkhub_worker_kb_write_intent
-
aiworkhub_worker_session_current_state
-
aiworkhub_worker_session_write_intent
-
aiworkhub_worker_source_graph_query
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 253dcd8 · analyzer v28 · 2w ago
skills & prompt files 3
- agent-rules shrec-AIWorkHub-253dcd8/.github/copilot-instructions.md
- agent-rules shrec-AIWorkHub-253dcd8/AGENTS.md
- agent-rules shrec-AIWorkHub-253dcd8/CLAUDE.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 329
filesystem 48
- fs shrec-AIWorkHub-253dcd8/src/aiworkhub/agent_tool_instruction_mcp.py :22
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/app_server_mux.py :104
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/callback_bridge.py :61
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/callback_store.py :26
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/cli_adapter_readonly_tool.py :53
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/context_cache.py :18
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/context_importer.py :17
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/context_write_intents.py :21
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/context_writes.py :16
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/core.py :16
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/dashboard.py :19
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/deepseek_credentials.py :32
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/dependency_autolaunch.py :7
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/fresh_task_store.py :18
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/glm_credentials.py :18
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/launch_queue_persist.py :53
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/manager_ai_tools.py :12
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/process_launcher.py :30
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/project_context.py :14
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/provider_tool_guards.py :8
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/quality_evidence.py :5
import shutil - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/repo_policy.py :16
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/repository_bootstrap.py :24
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/repository_mux.py :17
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/repository_state.py :19
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/route_identity.py :27
from pathlib import Path, PurePosixPath - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/runtime_adapters.py :11
import shutil - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1109
the log file (plain ``open(..., "r")``, and reports ``log_exists=False`` - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/shared_router.py :15
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/source_graph.py :42
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/source_graph_ast.py :37
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/source_graph_daemon.py :37
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/source_graph_migration.py :32
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/storage_observability.py :12
import shutil - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/storage_registry.py :18
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/storage_retention.py :16
import shutil - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/task_engine.py :29
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/task_reconciler.py :37
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/task_store.py :34
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/task_store_migration.py :11
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/terminal_log_retention.py :16
import shutil - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/vscode_lm_bridge.py :20
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/vscode_lm_worker.py :11
from pathlib import Path, PurePosixPath - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :88
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_supervisor.py :15
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_workspace.py :22
import shutil - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/workforce_catalog.py :17
from pathlib import Path - fs shrec-AIWorkHub-253dcd8/src/aiworkhub/worktree_storage.py :39
import shutil
shell / exec 8
- shell shrec-AIWorkHub-253dcd8/src/aiworkhub/app_server_mux.py :98
import subprocess - shell shrec-AIWorkHub-253dcd8/src/aiworkhub/callback_bridge.py :55
import subprocess - shell shrec-AIWorkHub-253dcd8/src/aiworkhub/core.py :9
import subprocess - shell shrec-AIWorkHub-253dcd8/src/aiworkhub/process_launcher.py :22
import subprocess - shell shrec-AIWorkHub-253dcd8/src/aiworkhub/quality_evidence.py :6
import subprocess - shell shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_supervisor.py :11
import subprocess - shell shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_workspace.py :25
import subprocess - shell shrec-AIWorkHub-253dcd8/src/aiworkhub/worktree_storage.py :40
import subprocess
network 4
- net shrec-AIWorkHub-253dcd8/src/aiworkhub/app_server_mux.py :95
import socket - net shrec-AIWorkHub-253dcd8/src/aiworkhub/callback_bridge.py :54
import socket as _socket - net shrec-AIWorkHub-253dcd8/src/aiworkhub/deepseek_credentials.py :34
from urllib.parse import urlsplit - net shrec-AIWorkHub-253dcd8/src/aiworkhub/glm_credentials.py :20
from urllib.parse import urlsplit
secrets 2
- secrets shrec-AIWorkHub-253dcd8/src/aiworkhub/deepseek_credentials.py :26
import getpass - secrets shrec-AIWorkHub-253dcd8/src/aiworkhub/glm_credentials.py :12
import getpass
database 15
- db shrec-AIWorkHub-253dcd8/src/aiworkhub/callback_store.py :22
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/context_importer.py :15
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/context_write_intents.py :18
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/context_writes.py :14
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/core.py :7
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/dashboard_mcp_app.py :19
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/dependency_autolaunch.py :4
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/fresh_task_store.py :14
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/manager_ai_tools.py :11
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/process_launcher.py :20
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/source_graph.py :36
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/source_graph_migration.py :28
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/task_store.py :30
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/task_store_migration.py :8
import sqlite3 - db shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :84
import sqlite3
tool registrations 86
- aiworkhub_manager_bootstrap shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :278
- aiworkhub_manager_source_graph_query shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :285
- aiworkhub_manager_session_current_state shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :300
- aiworkhub_manager_ai_memory_search shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :309
- aiworkhub_manager_ai_memory_get shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :316
- aiworkhub_manager_ai_memory_related shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :323
- aiworkhub_manager_kb_search shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :330
- aiworkhub_manager_kb_get shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :337
- aiworkhub_manager_kb_related shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :344
- aiworkhub_manager_workforce_catalog shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :351
- aiworkhub_manager_workforce_rank shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :358
- aiworkhub_manager_session_write shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :379
- aiworkhub_manager_ai_memory_write shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :395
- aiworkhub_manager_kb_write shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :413
- aiworkhub_manager_workforce_upsert shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :435
- aiworkhub_manager_context_import shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :466
- aiworkhub_manager_context_write_intents shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :489
- aiworkhub_manager_context_write_intent_dispose shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :496
- aiworkhub_vscode_lm_worker_tool shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :510
- aiworkhub_router_known_repositories shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :525
- aiworkhub_repo_list shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :540
- aiworkhub_repo_current shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :549
- aiworkhub_repo_switch shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :556
- aiworkhub_task_create shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :563
- aiworkhub_task_plan_snapshot shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :606
- aiworkhub_task_health shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :621
- aiworkhub_task_review_queue shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :630
- aiworkhub_task_list shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :637
- aiworkhub_task_show shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :644
- aiworkhub_task_pending_for_runner shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :651
- aiworkhub_task_auto_pickup shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :658
- aiworkhub_task_auto_pickup_dryrun shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :692
- aiworkhub_task_mark_review shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :707
- aiworkhub_task_mark_done shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :714
- aiworkhub_task_dependency_autolaunch_reconcile shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :721
- aiworkhub_task_reject_review shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :732
- aiworkhub_task_archive shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :746
- aiworkhub_task_supersede shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :759
- aiworkhub_manager_task_archive shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :773
- aiworkhub_manager_task_supersede shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :791
- aiworkhub_task_collision_guard shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :809
- aiworkhub_task_usage_report shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :816
- aiworkhub_task_export_jsonl shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :827
- aiworkhub_task_audit_log_read shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :834
- aiworkhub_task_review_summarize shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :846
- aiworkhub_task_codex_handoff shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :880
- aiworkhub_task_codex_handoff_markdown shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :906
- aiworkhub_supervisor_loop_status shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :932
- aiworkhub_launch_queue_describe_readonly shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1029
- aiworkhub_launch_queue_evaluate_readonly shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1068
- aiworkhub_launch_queue_audit_summary_readonly shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1104
- aiworkhub_task_queue_request shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1128
- aiworkhub_task_stale_recovery_recommend shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1167
- aiworkhub_task_cost_ledger shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1181
- aiworkhub_completion_inbox shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1207
- aiworkhub_agent_launch_task shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1253
- aiworkhub_agent_task_status shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1283
- aiworkhub_agent_collect_result shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1290
- aiworkhub_agent_cancel_task shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1300
- aiworkhub_agent_accept_review shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1310
- aiworkhub_agent_list_processes shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1334
- aiworkhub_dispatcher_ensure_started shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1341
- aiworkhub_dispatcher_health shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1353
- aiworkhub_dispatcher_stop shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1361
- aiworkhub_dispatcher_watchdog shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1370
- aiworkhub_source_graph_ensure_started shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1394
- aiworkhub_source_graph_health shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1405
- aiworkhub_source_graph_refresh_now shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1413
- aiworkhub_source_graph_stop shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1421
- aiworkhub_claude_callback_wait shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1430
- aiworkhub_claude_callback_ack shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1439
- aiworkhub_quality_profile shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1455
- aiworkhub_quality_run_checks shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1462
- aiworkhub_quality_evidence_packet shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1476
- aiworkhub_environment_preflight shrec-AIWorkHub-253dcd8/src/aiworkhub/server.py :1485
- aiworkhub_worker_source_graph_query shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :1456
- aiworkhub_worker_session_current_state shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :1464
- aiworkhub_worker_ai_memory_search shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :1469
- aiworkhub_worker_ai_memory_get shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :1474
- aiworkhub_worker_ai_memory_related shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :1479
- aiworkhub_worker_kb_search shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :1484
- aiworkhub_worker_kb_get shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :1489
- aiworkhub_worker_kb_related shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :1494
- aiworkhub_worker_session_write_intent shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :1499
- aiworkhub_worker_ai_memory_write_intent shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :1509
- aiworkhub_worker_kb_write_intent shrec-AIWorkHub-253dcd8/src/aiworkhub/worker_ai_tools_mcp.py :1520
declared dependencies 1
- mcp@>=1.0.0,<2
ide-extension 1
- eager-activation (medium) shrec-AIWorkHub-253dcd8/vscode-extension/package.json
activationEvents includes "*" — runs on every window load