awdk 3.6.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.
- adk/AGENT_PROMPT.md +236 -0
- adk/LANDMARK_MAP_INTEGRATION.md +286 -0
- adk/__init__.py +464 -0
- adk/__main__.py +10 -0
- adk/_tls.py +96 -0
- adk/a2a.py +819 -0
- adk/a2a_adapter.py +408 -0
- adk/a2a_client.py +498 -0
- adk/a2a_dispatch.py +323 -0
- adk/a2a_identity.py +141 -0
- adk/a2a_trust.py +323 -0
- adk/acp.py +963 -0
- adk/acp_common.py +385 -0
- adk/acp_server.py +833 -0
- adk/addon_compose.py +314 -0
- adk/addon_docker.py +149 -0
- adk/addon_manager.py +468 -0
- adk/addon_quadlet.py +203 -0
- adk/admin_api.py +1113 -0
- adk/admin_factory.py +149 -0
- adk/aeon.py +482 -0
- adk/agent.py +3052 -0
- adk/agent_daemon.py +370 -0
- adk/agent_pack.py +487 -0
- adk/agent_prompt.py +41 -0
- adk/agent_registry.py +193 -0
- adk/agentdoc/NOTICE +19 -0
- adk/agentdoc/__init__.py +185 -0
- adk/agentdoc/_discover.py +361 -0
- adk/agentdoc/_docs.py +270 -0
- adk/agentdoc/_info.py +70 -0
- adk/agentdoc/_metadata.py +63 -0
- adk/agentdoc/_pformat.py +1977 -0
- adk/agentdoc/_structured.py +1685 -0
- adk/agentdoc/_truncating_stream.py +261 -0
- adk/agentdoc/_visibility.py +304 -0
- adk/agentdoc/core.py +478 -0
- adk/agentdoc/doc_config.py +38 -0
- adk/agentdoc/ext.py +88 -0
- adk/agentdoc/format.py +60 -0
- adk/agentdoc/introspect.py +31 -0
- adk/agentdoc/protocols.py +107 -0
- adk/agentdoc/registry.py +192 -0
- adk/agentdoc/tests/test_builtins_structured_instance.py +88 -0
- adk/agentdoc/tests/test_event_max_string_override.py +88 -0
- adk/agentdoc/visibility.py +41 -0
- adk/aither_bridge.py +506 -0
- adk/aither_events_generated.py +214 -0
- adk/ambient.py +326 -0
- adk/app_proxy_tools.py +182 -0
- adk/approval.py +146 -0
- adk/artifacts.py +142 -0
- adk/auth.py +649 -0
- adk/authmd/__init__.py +46 -0
- adk/authmd/client.py +596 -0
- adk/authmd/consent.py +224 -0
- adk/authmd/store.py +228 -0
- adk/bootstrap/__init__.py +12 -0
- adk/bootstrap/generic_agent.py +172 -0
- adk/bootstrap_cli.py +214 -0
- adk/bugreport.py +194 -0
- adk/builtin_tools.py +2329 -0
- adk/builtin_tools_voice.py +222 -0
- adk/channel_auth.py +63 -0
- adk/channels.py +401 -0
- adk/chat.py +1635 -0
- adk/chronicle.py +386 -0
- adk/claude_account_usage.py +398 -0
- adk/claude_accounts.py +650 -0
- adk/claude_model.py +392 -0
- adk/claude_runner.py +1997 -0
- adk/cli.py +14963 -0
- adk/client/__init__.py +65 -0
- adk/client/_base.py +53 -0
- adk/client/_client.py +609 -0
- adk/client/_gateway.py +178 -0
- adk/client/_gateway_mcp.py +380 -0
- adk/client/_models.py +100 -0
- adk/client/services/__init__.py +21 -0
- adk/client/services/a2a.py +74 -0
- adk/client/services/capabilities.py +80 -0
- adk/client/services/context.py +76 -0
- adk/client/services/conversations.py +80 -0
- adk/client/services/data_plane.py +60 -0
- adk/client/services/expeditions.py +58 -0
- adk/client/services/strata.py +66 -0
- adk/client/services/voice.py +32 -0
- adk/code_locator.py +229 -0
- adk/coherence.py +169 -0
- adk/commands/approvals.py +172 -0
- adk/commands/join.py +432 -0
- adk/commands/wm.py +299 -0
- adk/compliance/__init__.py +30 -0
- adk/compliance/air_gap.py +373 -0
- adk/compliance/attestation.py +273 -0
- adk/compliance/model_licenses.py +161 -0
- adk/compliance/pdf_report.py +205 -0
- adk/compression.py +109 -0
- adk/config.py +609 -0
- adk/connect/__init__.py +65 -0
- adk/connect/templates/deer_flow.yaml.tmpl +21 -0
- adk/connect/templates/hermes.yaml.tmpl +22 -0
- adk/connect/templates/nooa.yaml.tmpl +16 -0
- adk/connect/templates/openclaw.yaml.tmpl +17 -0
- adk/context.py +200 -0
- adk/context_budget.py +612 -0
- adk/conversations.py +643 -0
- adk/core/VALIDATOR_NOTICE +28 -0
- adk/core/__init__.py +156 -0
- adk/core/agent.py +605 -0
- adk/core/backends/__init__.py +25 -0
- adk/core/backends/anthropic.py +142 -0
- adk/core/backends/ollama.py +88 -0
- adk/core/backends/openai_compat.py +146 -0
- adk/core/capability.py +137 -0
- adk/core/cell_executors.py +207 -0
- adk/core/codeact.py +667 -0
- adk/core/loader.py +239 -0
- adk/core/logging.py +72 -0
- adk/core/mcp.py +179 -0
- adk/core/memory.py +88 -0
- adk/core/model.py +184 -0
- adk/core/oo.py +415 -0
- adk/core/otel.py +188 -0
- adk/core/persistence.py +124 -0
- adk/core/sandbox.py +229 -0
- adk/core/scaffold.py +282 -0
- adk/core/secrets.py +263 -0
- adk/core/server.py +191 -0
- adk/core/spawn.py +149 -0
- adk/core/tool.py +186 -0
- adk/core/trace.py +123 -0
- adk/core/typed_memory.py +634 -0
- adk/core/validator.py +295 -0
- adk/core/vector_memory.py +274 -0
- adk/cron.py +305 -0
- adk/daemon_endpoint.py +145 -0
- adk/data/model_licenses.yaml +144 -0
- adk/data/packs_catalog.json +1093 -0
- adk/decisions/__init__.py +55 -0
- adk/decisions/agent_tools.py +449 -0
- adk/decisions/channels.py +567 -0
- adk/decisions/cli.py +699 -0
- adk/decisions/context.py +499 -0
- adk/decisions/notify.py +372 -0
- adk/decisions/popup.py +1707 -0
- adk/decisions/render.py +301 -0
- adk/decisions/steerback.py +217 -0
- adk/decisions/store.py +800 -0
- adk/decisions/terminal.py +518 -0
- adk/decisions/winproc.py +363 -0
- adk/deploy/compose/docker-compose.node-adk.yml +299 -0
- adk/deploy/compose/docker-compose.node.yml +754 -0
- adk/deploy.py +3753 -0
- adk/dispatch.py +447 -0
- adk/doc.py +413 -0
- adk/docker-compose.adk-vllm.yml +98 -0
- adk/doctor.py +449 -0
- adk/ellipsis.py +167 -0
- adk/elysium.py +544 -0
- adk/elysium_connect.py +377 -0
- adk/embeddings.py +561 -0
- adk/enrollment.py +316 -0
- adk/evalharness/__init__.py +47 -0
- adk/evalharness/classify.py +139 -0
- adk/evalharness/cli.py +372 -0
- adk/evalharness/enumerate.py +140 -0
- adk/evalharness/invoke.py +175 -0
- adk/evalharness/report.py +252 -0
- adk/events.py +191 -0
- adk/faculties/__init__.py +44 -0
- adk/faculties/base.py +276 -0
- adk/faculties/code_graph.py +193 -0
- adk/faculties/embeddings.py +252 -0
- adk/federation.py +767 -0
- adk/federation_lite.py +254 -0
- adk/fleet.py +212 -0
- adk/fleet_enroll.py +695 -0
- adk/fleet_manager.py +534 -0
- adk/forge.py +354 -0
- adk/forkd_client.py +378 -0
- adk/gate.py +310 -0
- adk/gateway_process.py +136 -0
- adk/graph_memory.py +2340 -0
- adk/graph_rag/README.md +194 -0
- adk/graph_rag/__init__.py +116 -0
- adk/graph_rag/activation_scoring.py +455 -0
- adk/graph_rag/bounded_retriever.py +145 -0
- adk/graph_rag/config.py +85 -0
- adk/graph_rag/corpus_loader.py +66 -0
- adk/graph_rag/governance.py +444 -0
- adk/graph_rag/graph_builder.py +135 -0
- adk/graph_rag/graph_store.py +104 -0
- adk/graph_rag/parsers/__init__.py +72 -0
- adk/graph_rag/parsers/markdown_parser.py +178 -0
- adk/graph_rag/parsers/sql_parser.py +125 -0
- adk/graph_rag/parsers/symbol_extractor.py +44 -0
- adk/graph_rag/parsers/typescript_parser.py +66 -0
- adk/graph_retriever.py +230 -0
- adk/grounding.py +120 -0
- adk/hardware_probe.py +249 -0
- adk/harness.py +322 -0
- adk/harnesses/__init__.py +41 -0
- adk/harnesses/adapters.py +208 -0
- adk/harnesses/agents.py +405 -0
- adk/harnesses/cli.py +268 -0
- adk/harnesses/daemon.py +1288 -0
- adk/harnesses/discovery.py +283 -0
- adk/harnesses/events.py +143 -0
- adk/harnesses/fs.py +198 -0
- adk/harnesses/manager.py +193 -0
- adk/harnesses/models.py +249 -0
- adk/harnesses/pty_session.py +335 -0
- adk/harnesses/registry.py +382 -0
- adk/harnesses/rooms.py +392 -0
- adk/harnesses/sandbox.py +155 -0
- adk/harnesses/session.py +623 -0
- adk/harnesses/session_directory.py +403 -0
- adk/harnesses/spool.py +189 -0
- adk/harnesses/transcript_bridge.py +292 -0
- adk/harnesses/well.py +540 -0
- adk/harnesses/wrap.py +343 -0
- adk/identities/aither.yaml +53 -0
- adk/identity.py +570 -0
- adk/importers/__init__.py +10 -0
- adk/importers/eve.py +431 -0
- adk/ingest.py +564 -0
- adk/intent.py +241 -0
- adk/kimi_coordinator.py +361 -0
- adk/license_startup.py +120 -0
- adk/licensing.py +424 -0
- adk/llamacpp_setup.py +1014 -0
- adk/llm/__init__.py +1406 -0
- adk/llm/acp_provider.py +213 -0
- adk/llm/advisor.py +192 -0
- adk/llm/anthropic.py +564 -0
- adk/llm/base.py +517 -0
- adk/llm/batch_runner.py +139 -0
- adk/llm/cache.py +271 -0
- adk/llm/continuation.py +170 -0
- adk/llm/gemini.py +364 -0
- adk/llm/multimodal.py +81 -0
- adk/llm/ollama.py +209 -0
- adk/llm/onboarding.py +236 -0
- adk/llm/openai_compat.py +584 -0
- adk/llm/picolm.py +242 -0
- adk/llmfit.py +764 -0
- adk/local_backends.py +137 -0
- adk/local_jobs.py +424 -0
- adk/loop_guard.py +312 -0
- adk/managed_identity.py +520 -0
- adk/mcp.py +773 -0
- adk/mcp_endpoint_tools.py +149 -0
- adk/mcp_server.py +324 -0
- adk/mcp_setup.py +348 -0
- adk/mcp_stdio.py +164 -0
- adk/memory.py +653 -0
- adk/memory_wiki.py +860 -0
- adk/mesh.py +574 -0
- adk/mesh_discovery.py +262 -0
- adk/mesh_provider.py +873 -0
- adk/mesh_serve.py +313 -0
- adk/metering.py +447 -0
- adk/metrics.py +288 -0
- adk/microscheduler_heartbeat.py +272 -0
- adk/model_capabilities.py +346 -0
- adk/neurons.py +509 -0
- adk/node/__init__.py +16 -0
- adk/node/local_tools.py +445 -0
- adk/node/server.py +344 -0
- adk/node_pairing.py +117 -0
- adk/notebook_tools.py +268 -0
- adk/object_registry.py +313 -0
- adk/ods/.gitattributes +14 -0
- adk/ods/LICENSE.apache2.txt +86 -0
- adk/ods/NOTICE +137 -0
- adk/ods/README.md +519 -0
- adk/ods/__init__.py +84 -0
- adk/ods/_upstream_classify.sh +241 -0
- adk/ods/_upstream_select.py +562 -0
- adk/ods/adk_integration.md +461 -0
- adk/ods/data.py +300 -0
- adk/ods/gpu-database.json +505 -0
- adk/ods/hardware-classes.json +246 -0
- adk/ods/hardware.py +371 -0
- adk/ods/model-library.json +1700 -0
- adk/ods/model_types.py +133 -0
- adk/ods/resolver.py +497 -0
- adk/ods/tests/__init__.py +1 -0
- adk/ods/tests/conftest.py +242 -0
- adk/ods/tests/test_classify_differential.py +188 -0
- adk/ods/tests/test_differential.py +97 -0
- adk/ods/tests/test_hardware_and_roles.py +334 -0
- adk/ods/tests/test_integration.py +491 -0
- adk/ods/tests/test_resolver.py +607 -0
- adk/ods/tools/__init__.py +1 -0
- adk/ods/tools/sweep_differential.py +194 -0
- adk/ods/tools/validate_catalog.py +348 -0
- adk/ollama_setup.py +272 -0
- adk/onboard_discord.py +283 -0
- adk/oo_bridge.py +146 -0
- adk/pack_credentials.py +433 -0
- adk/pack_discovery.py +334 -0
- adk/pack_drivers.py +535 -0
- adk/pack_registry.py +667 -0
- adk/pack_scope.py +79 -0
- adk/pack_verifier.py +147 -0
- adk/packs/__init__.py +12 -0
- adk/packs/activator.py +102 -0
- adk/packs/aither/brain_pack.yaml +82 -0
- adk/packs/aither/skills/coordination.md +28 -0
- adk/packs/aither/skills/memory-recall.md +85 -0
- adk/packs/analyst/agent.yaml +33 -0
- adk/packs/analyst/brain_pack.yaml +88 -0
- adk/packs/analyst/skills/anomaly-detection.md +60 -0
- adk/packs/analyst/skills/structured-inference.md +56 -0
- adk/packs/arc_world/__init__.py +27 -0
- adk/packs/arc_world/adapter.py +267 -0
- adk/packs/arc_world/measure_policy.py +215 -0
- adk/packs/arc_world/smart_policy.py +219 -0
- adk/packs/arc_world/test_smart_policy.py +178 -0
- adk/packs/claude-code/agent.yaml +31 -0
- adk/packs/claude-code/brain_pack.yaml +79 -0
- adk/packs/claude-code/skills/debugging.md +63 -0
- adk/packs/claude-code/skills/feature-development.md +66 -0
- adk/packs/code-discipline/tools/check_checker_hygiene.py +941 -0
- adk/packs/code-discipline/tools/next_debt_id.py +262 -0
- adk/packs/deepseek_coder/NOTICE +46 -0
- adk/packs/deepseek_coder/__init__.py +311 -0
- adk/packs/deepseek_coder/formats.py +347 -0
- adk/packs/hermes/agent.yaml +32 -0
- adk/packs/hermes/brain_pack.yaml +79 -0
- adk/packs/hermes/skills/architecture-review.md +47 -0
- adk/packs/hermes/skills/trade-off-analysis.md +49 -0
- adk/packs/iris/brain_pack.yaml +88 -0
- adk/packs/iris/skills/character-consistency.md +89 -0
- adk/packs/iris/skills/deploy-image-gen.md +122 -0
- adk/packs/iris/skills/image-generation.md +89 -0
- adk/packs/omp_interop/NOTICE +23 -0
- adk/packs/omp_interop/__init__.py +270 -0
- adk/packs/omp_thinking/NOTICE +28 -0
- adk/packs/omp_thinking/__init__.py +264 -0
- adk/packs/openclaw/agent.yaml +30 -0
- adk/packs/openclaw/brain_pack.yaml +99 -0
- adk/packs/openclaw/skills/source-verification.md +48 -0
- adk/packs/openclaw/skills/web-research.md +45 -0
- adk/packs/world_model/.toolpack.yaml +40 -0
- adk/packs/world_model/__init__.py +65 -0
- adk/packs/world_model/env_enroll.py +178 -0
- adk/packs/world_model/safe_explore.py +286 -0
- adk/packs/world_model/tools.py +490 -0
- adk/pairing.py +435 -0
- adk/persona.py +192 -0
- adk/portal.py +290 -0
- adk/ports.py +90 -0
- adk/preflight/__init__.py +193 -0
- adk/preflight/policy.py +55 -0
- adk/preflight/probe.py +496 -0
- adk/preflight/report.py +185 -0
- adk/private_companion.py +713 -0
- adk/process_supervisor.py +378 -0
- adk/prompts/__init__.py +13 -0
- adk/prompts/bridge.py +125 -0
- adk/proton_setup.py +189 -0
- adk/pulse.py +294 -0
- adk/reasoning/__init__.py +69 -0
- adk/reasoning/cem.py +315 -0
- adk/reasoning/mcts/__init__.py +46 -0
- adk/reasoning/mcts/adapters/__init__.py +7 -0
- adk/reasoning/mcts/adapters/observed_transition.py +155 -0
- adk/reasoning/mcts/core.py +955 -0
- adk/reasoning/mcts/env.py +55 -0
- adk/reasoning/mcts/loop.py +145 -0
- adk/reasoning/mcts/models.py +70 -0
- adk/reasoning/planner.py +408 -0
- adk/reasoning/speculative.py +256 -0
- adk/reasoning/tiers.py +392 -0
- adk/reasoning_session.py +287 -0
- adk/registration.py +190 -0
- adk/registry.py +113 -0
- adk/relay.py +860 -0
- adk/relay_client.py +279 -0
- adk/responder.py +360 -0
- adk/room_launcher.py +377 -0
- adk/routines.py +514 -0
- adk/safety.py +351 -0
- adk/sandbox.py +451 -0
- adk/selfgraph/__init__.py +105 -0
- adk/selfgraph/cli.py +528 -0
- adk/selfgraph/drainer.py +282 -0
- adk/selfgraph/publisher.py +546 -0
- adk/selfgraph/recorder.py +976 -0
- adk/selfgraph/schema.py +332 -0
- adk/selfgraph/spool.py +612 -0
- adk/server.py +5327 -0
- adk/services.py +318 -0
- adk/setup.py +1096 -0
- adk/setup_cli.py +1818 -0
- adk/shell/__init__.py +77 -0
- adk/shell/__main__.py +3 -0
- adk/shell/_repo_roots.py +94 -0
- adk/shell/assistant.py +228 -0
- adk/shell/assistant_ext.py +224 -0
- adk/shell/auth.py +321 -0
- adk/shell/claude_ingest.py +295 -0
- adk/shell/claude_sessions.py +810 -0
- adk/shell/cli.py +5407 -0
- adk/shell/command_center/__init__.py +4 -0
- adk/shell/command_center/agents_console.py +210 -0
- adk/shell/command_center/brief.py +73 -0
- adk/shell/command_center/fleet_client.py +299 -0
- adk/shell/command_center/hq.py +322 -0
- adk/shell/command_center/inbox.py +230 -0
- adk/shell/command_center/palette.py +234 -0
- adk/shell/command_center/watchtower.py +117 -0
- adk/shell/commands.py +524 -0
- adk/shell/completions.py +109 -0
- adk/shell/config.py +263 -0
- adk/shell/crash_reporter.py +228 -0
- adk/shell/data/__init__.py +2 -0
- adk/shell/data/deploy_profiles.yaml +144 -0
- adk/shell/data/image_map.yaml +231 -0
- adk/shell/deployer.py +879 -0
- adk/shell/entitlement.py +498 -0
- adk/shell/events.py +554 -0
- adk/shell/genesis_client.py +412 -0
- adk/shell/gui_wizard.py +614 -0
- adk/shell/heartbeat.py +114 -0
- adk/shell/image_setup.py +372 -0
- adk/shell/llm_client.py +227 -0
- adk/shell/mcp_bridge.py +396 -0
- adk/shell/mcp_setup.py +349 -0
- adk/shell/metrics.py +419 -0
- adk/shell/node/__init__.py +16 -0
- adk/shell/node/local_tools.py +445 -0
- adk/shell/node/server.py +344 -0
- adk/shell/onboarding.py +766 -0
- adk/shell/output.py +70 -0
- adk/shell/plugins/__init__.py +220 -0
- adk/shell/plugins/builtins/__init__.py +1 -0
- adk/shell/plugins/builtins/addon.py +301 -0
- adk/shell/plugins/builtins/admin.py +351 -0
- adk/shell/plugins/builtins/agents.py +756 -0
- adk/shell/plugins/builtins/aitherzero.py +283 -0
- adk/shell/plugins/builtins/app.py +838 -0
- adk/shell/plugins/builtins/appforge.py +320 -0
- adk/shell/plugins/builtins/bundle.py +339 -0
- adk/shell/plugins/builtins/capture.py +249 -0
- adk/shell/plugins/builtins/cloud.py +416 -0
- adk/shell/plugins/builtins/commerce.py +356 -0
- adk/shell/plugins/builtins/companion.py +550 -0
- adk/shell/plugins/builtins/decisions.py +131 -0
- adk/shell/plugins/builtins/deploy.py +390 -0
- adk/shell/plugins/builtins/durability.py +143 -0
- adk/shell/plugins/builtins/enroll.py +143 -0
- adk/shell/plugins/builtins/escalation.py +199 -0
- adk/shell/plugins/builtins/expedition.py +418 -0
- adk/shell/plugins/builtins/finetune.py +201 -0
- adk/shell/plugins/builtins/gaming.py +231 -0
- adk/shell/plugins/builtins/github_app.py +373 -0
- adk/shell/plugins/builtins/graph.py +421 -0
- adk/shell/plugins/builtins/inference.py +557 -0
- adk/shell/plugins/builtins/knowledge.py +296 -0
- adk/shell/plugins/builtins/marketplace.py +311 -0
- adk/shell/plugins/builtins/mcp_workstation.py +159 -0
- adk/shell/plugins/builtins/onboard_flow.py +218 -0
- adk/shell/plugins/builtins/pack_customize.py +203 -0
- adk/shell/plugins/builtins/packs.py +909 -0
- adk/shell/plugins/builtins/project.py +652 -0
- adk/shell/plugins/builtins/quiesce.py +130 -0
- adk/shell/plugins/builtins/saga.py +1098 -0
- adk/shell/plugins/builtins/scope.py +433 -0
- adk/shell/plugins/builtins/secret.py +313 -0
- adk/shell/plugins/builtins/setup.py +909 -0
- adk/shell/plugins/builtins/sprite.py +304 -0
- adk/shell/plugins/builtins/storefront.py +198 -0
- adk/shell/plugins/builtins/sync.py +190 -0
- adk/shell/plugins/builtins/test_secret.py +70 -0
- adk/shell/plugins/builtins/tunnel.py +328 -0
- adk/shell/plugins/builtins/wiki.py +295 -0
- adk/shell/plugins.py +445 -0
- adk/shell/registry_auth.py +148 -0
- adk/shell/repl.py +596 -0
- adk/shell/script.py +280 -0
- adk/shell/session_browser.py +365 -0
- adk/shell/shell_integration.py +213 -0
- adk/shell/telemetry/__init__.py +1 -0
- adk/shell/telemetry/config.py +272 -0
- adk/shell/telemetry/examples.py +398 -0
- adk/shell/telemetry/test_telemetry.py +557 -0
- adk/shell/tui/__init__.py +1 -0
- adk/shell/tui/saga_writer.py +560 -0
- adk/shell/update_check.py +138 -0
- adk/shell/usage.py +106 -0
- adk/shell_launcher.py +529 -0
- adk/skills.py +365 -0
- adk/smtp.py +832 -0
- adk/stdio_compat.py +50 -0
- adk/steering.py +189 -0
- adk/strata.py +936 -0
- adk/supervisor.py +199 -0
- adk/sync/__init__.py +28 -0
- adk/sync/adk_sync_engine.py +384 -0
- adk/sync/brain.py +384 -0
- adk/sync/device_identity.py +107 -0
- adk/sync/drive_client.py +243 -0
- adk/sync/files.py +540 -0
- adk/sync/lockbox.py +510 -0
- adk/sync/secrets.py +301 -0
- adk/sync/sessions.py +599 -0
- adk/sync/settings.py +274 -0
- adk/sync/test_brain_sync.py +352 -0
- adk/sync/watermark.py +226 -0
- adk/templates/agent-package/agent.yaml +41 -0
- adk/templates/agent-package/identity.yaml +13 -0
- adk/templates/deep-research/.env.example +27 -0
- adk/templates/deep-research/engine/__init__.py +1 -0
- adk/templates/deep-research/engine/aithersearch.py +131 -0
- adk/templates/deep-research/engine/codex_oauth.py +119 -0
- adk/templates/deep-research/engine/ledger.py +214 -0
- adk/templates/deep-research/engine/tools.py +472 -0
- adk/templates/deep-research/pack/deep-research/agent.yaml +27 -0
- adk/templates/deep-research/pack/deep-research/brain_pack.yaml +105 -0
- adk/templates/deep-research/pack/deep-research/skills/deep-research.md +33 -0
- adk/templates/deep-research/pack/deep-research/skills/mirror-website.md +49 -0
- adk/templates/deep-research/pack/deep-research/skills/report-writing.md +29 -0
- adk/templates/deep-research/requirements.txt +21 -0
- adk/templates/deep-research/serve.py +485 -0
- adk/templates/deep-research/web/index.html +333 -0
- adk/templates/site-ingest/.env.example +27 -0
- adk/templates/site-ingest/README.md +276 -0
- adk/templates/site-ingest/engine/__init__.py +1 -0
- adk/templates/site-ingest/engine/tools.py +448 -0
- adk/templates/site-ingest/pack/site-ingest/agent.yaml +26 -0
- adk/templates/site-ingest/pack/site-ingest/brain_pack.yaml +139 -0
- adk/templates/site-ingest/pack/site-ingest/skills/site-ingest.md +75 -0
- adk/templates/site-ingest/requirements.txt +7 -0
- adk/templates/site-ingest/serve.py +486 -0
- adk/templates/site-ingest/tests/test_tools.py +170 -0
- adk/templates/site-ingest/web/index.html +65 -0
- adk/templates/sovereign/.env.example.j2 +40 -0
- adk/templates/sovereign/Caddyfile.j2 +6 -0
- adk/templates/sovereign/agent.yaml.j2 +49 -0
- adk/templates/sovereign/backend/Dockerfile.j2 +15 -0
- adk/templates/sovereign/backend/app/__init__.py +0 -0
- adk/templates/sovereign/backend/app/agent_core/__init__.py +74 -0
- adk/templates/sovereign/backend/app/agent_core/admin.py +142 -0
- adk/templates/sovereign/backend/app/agent_core/bridge.py +197 -0
- adk/templates/sovereign/backend/app/agent_core/client.py +209 -0
- adk/templates/sovereign/backend/app/agent_core/consolidation.py +110 -0
- adk/templates/sovereign/backend/app/agent_core/eviction.py +110 -0
- adk/templates/sovereign/backend/app/agent_core/integration.py +116 -0
- adk/templates/sovereign/backend/app/agent_core/migrations/0001_memory_tables.sql +48 -0
- adk/templates/sovereign/backend/app/agent_core/pillars.py +294 -0
- adk/templates/sovereign/backend/app/agent_core/reinforcement.py +156 -0
- adk/templates/sovereign/backend/app/agent_core/store.py +354 -0
- adk/templates/sovereign/backend/app/agent_core/tests/__init__.py +0 -0
- adk/templates/sovereign/backend/app/agent_core/tests/conftest.py +41 -0
- adk/templates/sovereign/backend/app/agent_core/tests/test_smoke.py +226 -0
- adk/templates/sovereign/backend/app/agent_core/tiers.py +100 -0
- adk/templates/sovereign/backend/app/agent_memory.py.j2 +129 -0
- adk/templates/sovereign/backend/app/auth.py +41 -0
- adk/templates/sovereign/backend/app/brain_pack.py +155 -0
- adk/templates/sovereign/backend/app/config.py.j2 +133 -0
- adk/templates/sovereign/backend/app/database.py +24 -0
- adk/templates/sovereign/backend/app/main.py.j2 +187 -0
- adk/templates/sovereign/backend/app/models.py +109 -0
- adk/templates/sovereign/backend/app/packs/__init__.py +0 -0
- adk/templates/sovereign/backend/app/routers/__init__.py +0 -0
- adk/templates/sovereign/backend/app/routers/auth.py.j2 +64 -0
- adk/templates/sovereign/backend/app/routers/chat.py.j2 +187 -0
- adk/templates/sovereign/backend/app/routers/documents.py.j2 +134 -0
- adk/templates/sovereign/backend/app/routers/feedback.py +55 -0
- adk/templates/sovereign/backend/app/services/__init__.py +0 -0
- adk/templates/sovereign/backend/app/services/llm.py.j2 +184 -0
- adk/templates/sovereign/backend/app/services/portal_registration.py.j2 +173 -0
- adk/templates/sovereign/backend/app/services/rag.py.j2 +184 -0
- adk/templates/sovereign/backend/app/tools/__init__.py +0 -0
- adk/templates/sovereign/backend/app/tools/custom_tools.py.j2 +11 -0
- adk/templates/sovereign/backend/requirements.txt +18 -0
- adk/templates/sovereign/brain_pack.yaml.j2 +81 -0
- adk/templates/sovereign/docker-compose.aitheros.yml.j2 +26 -0
- adk/templates/sovereign/docker-compose.yml.j2 +100 -0
- adk/templates/sovereign/frontend/index.html +12 -0
- adk/templates/sovereign/frontend/package.json.j2 +22 -0
- adk/templates/sovereign/frontend/src/App.tsx +93 -0
- adk/templates/sovereign/frontend/src/components/ChatPanel.tsx +91 -0
- adk/templates/sovereign/frontend/src/components/DocumentPanel.tsx +88 -0
- adk/templates/sovereign/frontend/src/components/LoginPage.tsx +27 -0
- adk/templates/sovereign/frontend/src/hooks/useAuth.ts +55 -0
- adk/templates/sovereign/frontend/src/hooks/useConfig.ts +34 -0
- adk/templates/sovereign/frontend/src/index.css +43 -0
- adk/templates/sovereign/frontend/src/main.tsx +10 -0
- adk/templates/sovereign/frontend/src/vite-env.d.ts +1 -0
- adk/templates/sovereign/frontend/tsconfig.json +20 -0
- adk/templates/sovereign/frontend/vite.config.ts.j2 +15 -0
- adk/templates/sovereign/manifest.yaml.j2 +45 -0
- adk/tests/test_a2a_durability.py +223 -0
- adk/tests/test_a2a_trust.py +382 -0
- adk/tests/test_a2a_trust_registry.py +98 -0
- adk/tests/test_bonsai_local_backend.py +88 -0
- adk/tests/test_enrollment_cert.py +186 -0
- adk/tests/test_fleet_enroll_gateway_key.py +319 -0
- adk/tests/test_gateway_mcp_client.py +492 -0
- adk/tests/test_harness_daemon.py +219 -0
- adk/tests/test_harness_fs.py +144 -0
- adk/tests/test_harnesses.py +355 -0
- adk/tests/test_kimi_coordinator.py +391 -0
- adk/tests/test_mesh_cli.py +191 -0
- adk/tests/test_mesh_serve.py +239 -0
- adk/tests/test_planb_ledger.py +363 -0
- adk/tests/test_session_discovery.py +647 -0
- adk/tests/test_session_sync_pull.py +504 -0
- adk/tests/test_structured_ml_tools.py +178 -0
- adk/tests/test_sync_adk_engine.py +355 -0
- adk/tests/test_sync_device_identity.py +116 -0
- adk/tests/test_sync_drive_client.py +199 -0
- adk/tests/test_unsloth_gguf_download.py +361 -0
- adk/tests/test_unsloth_llamacpp_setup.py +339 -0
- adk/tool_guards.py +243 -0
- adk/tool_pack_loader.py +418 -0
- adk/tool_readiness.py +188 -0
- adk/toolpacks/acp/.toolpack.yaml +37 -0
- adk/toolpacks/acp/__init__.py +212 -0
- adk/toolpacks/acp/agents/awdk.yaml +23 -0
- adk/toolpacks/acp/agents/claude-agent-acp.yaml +20 -0
- adk/toolpacks/acp/agents/codex-acp.yaml +20 -0
- adk/toolpacks/acp/agents/gemini-cli.yaml +21 -0
- adk/toolpacks/acp/ui/index.html +77 -0
- adk/toolpacks/aitherbench/.toolpack.yaml +55 -0
- adk/toolpacks/aitherbench/bench.py +1128 -0
- adk/toolpacks/aitherzero/.toolpack.yaml +42 -0
- adk/toolpacks/aitherzero/__init__.py +52 -0
- adk/toolpacks/aitherzero/__main__.py +79 -0
- adk/toolpacks/aitherzero/tools.py +649 -0
- adk/toolpacks/arc-brainpack/.toolpack.yaml +60 -0
- adk/toolpacks/arc-brainpack/README.md +70 -0
- adk/toolpacks/arc-brainpack/__init__.py +64 -0
- adk/toolpacks/arc-brainpack/agent.yaml +72 -0
- adk/toolpacks/arc-brainpack/tools.py +622 -0
- adk/toolpacks/arc-brainpack/ui/index.html +146 -0
- adk/toolpacks/box-master/.toolpack.yaml +32 -0
- adk/toolpacks/box-master/__init__.py +56 -0
- adk/toolpacks/box-master/tools.py +394 -0
- adk/toolpacks/cloudflare/.toolpack.yaml +56 -0
- adk/toolpacks/cloudflare/__init__.py +58 -0
- adk/toolpacks/cloudflare/config.py +215 -0
- adk/toolpacks/cloudflare/tools.py +797 -0
- adk/toolpacks/deep_research/.toolpack.yaml +44 -0
- adk/toolpacks/deep_research/__init__.py +99 -0
- adk/toolpacks/deep_research/ui/index.html +157 -0
- adk/toolpacks/finetune/.toolpack.yaml +65 -0
- adk/toolpacks/github_runners/.toolpack.yaml +37 -0
- adk/toolpacks/github_runners/__init__.py +65 -0
- adk/toolpacks/github_runners/tools.py +272 -0
- adk/toolpacks/graphrag/.toolpack.yaml +35 -0
- adk/toolpacks/graphrag/__init__.py +46 -0
- adk/toolpacks/graphrag/__main__.py +69 -0
- adk/toolpacks/graphrag/recipes/coderank-embed.yaml +44 -0
- adk/toolpacks/graphrag/recipes/nomic-text-embed.yaml +48 -0
- adk/toolpacks/graphrag/recipes.py +49 -0
- adk/toolpacks/graphrag/tools.py +372 -0
- adk/toolpacks/image_bootstrap/.toolpack.yaml +43 -0
- adk/toolpacks/image_bootstrap/__init__.py +53 -0
- adk/toolpacks/image_bootstrap/__main__.py +158 -0
- adk/toolpacks/image_bootstrap/recipes/cloud-burst-vast.yaml +76 -0
- adk/toolpacks/image_bootstrap/recipes/cpu-sdxl-turbo.yaml +75 -0
- adk/toolpacks/image_bootstrap/recipes/cuda-bonsai-image.yaml +86 -0
- adk/toolpacks/image_bootstrap/recipes/cuda-comfyui-12gb.yaml +71 -0
- adk/toolpacks/image_bootstrap/recipes/cuda-comfyui-24gb.yaml +76 -0
- adk/toolpacks/image_bootstrap/recipes/cuda-comfyui-6gb.yaml +64 -0
- adk/toolpacks/image_bootstrap/recipes/cuda-sana-sprint.yaml +76 -0
- adk/toolpacks/image_bootstrap/recipes/metal-comfyui.yaml +68 -0
- adk/toolpacks/image_bootstrap/recipes.py +286 -0
- adk/toolpacks/image_bootstrap/tools.py +871 -0
- adk/toolpacks/llm_serving/.toolpack.yaml +36 -0
- adk/toolpacks/llm_serving/__init__.py +48 -0
- adk/toolpacks/llm_serving/__main__.py +87 -0
- adk/toolpacks/llm_serving/quant.py +163 -0
- adk/toolpacks/llm_serving/recipes/deepseek-r1-14b.yaml +46 -0
- adk/toolpacks/llm_serving/recipes/gemma4-12b.yaml +50 -0
- adk/toolpacks/llm_serving/recipes/nemotron-orchestrator-8b.yaml +55 -0
- adk/toolpacks/llm_serving/recipes/qwen-27b-reason.yaml +74 -0
- adk/toolpacks/llm_serving/recipes.py +89 -0
- adk/toolpacks/llm_serving/tools.py +430 -0
- adk/toolpacks/mesh_ops/.toolpack.yaml +35 -0
- adk/toolpacks/mesh_ops/__init__.py +54 -0
- adk/toolpacks/mesh_ops/tools.py +268 -0
- adk/toolpacks/node_bootstrap/.toolpack.yaml +46 -0
- adk/toolpacks/node_bootstrap/__init__.py +53 -0
- adk/toolpacks/node_bootstrap/__main__.py +247 -0
- adk/toolpacks/node_bootstrap/recipes/bonsai-selfhost.yaml +196 -0
- adk/toolpacks/node_bootstrap/recipes/cloud-api.yaml +72 -0
- adk/toolpacks/node_bootstrap/recipes/cpu-1bit-llamacpp.yaml +98 -0
- adk/toolpacks/node_bootstrap/recipes/cpu-ollama.yaml +66 -0
- adk/toolpacks/node_bootstrap/recipes/cuda-dual-stack-32gb.yaml +74 -0
- adk/toolpacks/node_bootstrap/recipes/cuda-vllm-24gb.yaml +71 -0
- adk/toolpacks/node_bootstrap/recipes/cuda-vllm-40gb.yaml +71 -0
- adk/toolpacks/node_bootstrap/recipes/cuda-vllm-8gb.yaml +66 -0
- adk/toolpacks/node_bootstrap/recipes/metal-ollama.yaml +71 -0
- adk/toolpacks/node_bootstrap/recipes/unified-memory-vllm.yaml +81 -0
- adk/toolpacks/node_bootstrap/recipes.py +292 -0
- adk/toolpacks/node_bootstrap/tools.py +908 -0
- adk/toolpacks/planb_ledger/.toolpack.yaml +54 -0
- adk/toolpacks/planb_ledger/__init__.py +48 -0
- adk/toolpacks/planb_ledger/bootstrap.py +283 -0
- adk/toolpacks/planb_ledger/bot.py +223 -0
- adk/toolpacks/planb_ledger/brain.py +172 -0
- adk/toolpacks/planb_ledger/build_zip.py +36 -0
- adk/toolpacks/planb_ledger/cli.py +108 -0
- adk/toolpacks/planb_ledger/dist_kit/README.md +55 -0
- adk/toolpacks/planb_ledger/dist_kit/install.ps1 +109 -0
- adk/toolpacks/planb_ledger/dist_kit/install.sh +108 -0
- adk/toolpacks/planb_ledger/dist_kit/requirements.txt +2 -0
- adk/toolpacks/planb_ledger/engine.py +327 -0
- adk/toolpacks/planb_ledger/ledger.py +65 -0
- adk/toolpacks/planb_ledger/sheet.py +16 -0
- adk/toolpacks/planb_ledger/sheet_render.py +129 -0
- adk/toolpacks/planb_ledger/sync_vendored.py +81 -0
- adk/toolpacks/planb_ledger/tools.py +180 -0
- adk/toolpacks/selfimprove/selfimprove.py +378 -0
- adk/toolpacks/split_inference/.toolpack.yaml +37 -0
- adk/toolpacks/split_inference/__init__.py +47 -0
- adk/toolpacks/split_inference/__main__.py +103 -0
- adk/toolpacks/split_inference/recipes/bonsai-27b-5090-dgx-rpc.yaml +102 -0
- adk/toolpacks/split_inference/recipes/kimi-k3-mesh-rpc.yaml +104 -0
- adk/toolpacks/split_inference/recipes/multi-node-rpc-generic.yaml +85 -0
- adk/toolpacks/split_inference/recipes/single-node-cuda.yaml +73 -0
- adk/toolpacks/split_inference/recipes.py +181 -0
- adk/toolpacks/split_inference/tools.py +496 -0
- adk/toolpacks/vault/.toolpack.yaml +38 -0
- adk/toolpacks/vault/__init__.py +167 -0
- adk/toolpacks/vault/scope_map.json +3 -0
- adk/toolpacks/vault/ui/index.html +254 -0
- adk/tools.py +405 -0
- adk/tools_meta.py +157 -0
- adk/trace.py +101 -0
- adk/typed_memory.py +635 -0
- adk/unified_contract.py +659 -0
- adk/unsloth_gguf_download.py +285 -0
- adk/unsloth_llamacpp_setup.py +307 -0
- adk/vault_lockbox.py +789 -0
- adk/voice.py +602 -0
- adk/voice_agent.py +182 -0
- adk/voice_http.py +143 -0
- adk/watch.py +266 -0
- adk/webui/index.html +1679 -0
- adk/webui/pack_sdk.js +62 -0
- adk/webui/packs/aeon/index.html +267 -0
- adk/webui/packs/llamacpp/index.html +420 -0
- adk/webui/packs/mesh-console/index.html +330 -0
- adk/workspace-agent.yaml +55 -0
- adk/workspace-frontend/index.html +282 -0
- adk/worldmodel.py +716 -0
- awdk-3.6.0.dist-info/METADATA +1113 -0
- awdk-3.6.0.dist-info/RECORD +759 -0
- awdk-3.6.0.dist-info/WHEEL +4 -0
- awdk-3.6.0.dist-info/entry_points.txt +8 -0
- awdk-3.6.0.dist-info/licenses/LICENSE +81 -0
adk/AGENT_PROMPT.md
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# AitherADK Agent Setup Prompt
|
|
2
|
+
# Copy this entire block into Claude Code, Cursor, Copilot, or any AI coding agent.
|
|
3
|
+
# Version: 1.5.0 | Updated: 2026-05-23
|
|
4
|
+
|
|
5
|
+
You are setting up the AitherADK agent development kit. Follow these steps exactly.
|
|
6
|
+
Do NOT deviate from these instructions -- they encode solutions to real failure modes.
|
|
7
|
+
|
|
8
|
+
## Critical Facts
|
|
9
|
+
|
|
10
|
+
- The CLI command is `adk`, NOT `aither`. The `aither` command is a separate REPL.
|
|
11
|
+
- The pip package is `awdk`. Install: `pip install awdk`
|
|
12
|
+
- Auto-detection works. `LLMRouter()` with no args finds vLLM, Ollama, or cloud backends.
|
|
13
|
+
- All config lives in `~/.aither/` -- never set env vars manually unless told to.
|
|
14
|
+
|
|
15
|
+
## Step 1: Install
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pip install "awdk"
|
|
19
|
+
adk --help
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Verify `adk --help` shows subcommands: init, setup, login, connect, run, status, whoami.
|
|
23
|
+
If `adk` is not found, check `pip show awdk` and ensure your PATH includes pip scripts.
|
|
24
|
+
|
|
25
|
+
## Step 2: Check existing infrastructure
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
adk status
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Read the output carefully:
|
|
32
|
+
- **vLLM UP on :8200** -> You already have inference. DO NOT run `adk setup`. Go to Step 4.
|
|
33
|
+
- **Ollama UP** -> You have inference. Go to Step 4.
|
|
34
|
+
- **Genesis UP on :8001** -> Full AitherOS is running. Go to Step 4.
|
|
35
|
+
- **Everything DOWN** -> You need inference. Go to Step 3.
|
|
36
|
+
|
|
37
|
+
## Step 3: Set up inference (ONLY if nothing is running)
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
adk setup
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
This is an interactive wizard. It auto-detects your GPU and recommends a tier.
|
|
44
|
+
|
|
45
|
+
- NVIDIA GPU with 8GB+ VRAM -> vLLM containers (parallel inference, recommended)
|
|
46
|
+
- AMD/Apple/No GPU -> Ollama (serialized, but works everywhere)
|
|
47
|
+
- First run downloads 16-30GB of model weights. Takes 10-15 minutes. Be patient.
|
|
48
|
+
- For CI/automation: `adk setup --non-interactive`
|
|
49
|
+
- For dry run: `adk setup --dry-run`
|
|
50
|
+
|
|
51
|
+
**WARNING: NEVER run `adk setup` if vLLM is already running on your GPU.**
|
|
52
|
+
It will start a competing container that fights for VRAM and crash with OOM.
|
|
53
|
+
v1.1.2+ detects this and offers "connect to existing" automatically.
|
|
54
|
+
|
|
55
|
+
After setup completes, verify: `adk status` should show vLLM or Ollama as UP.
|
|
56
|
+
|
|
57
|
+
## Step 4: Authenticate
|
|
58
|
+
|
|
59
|
+
Check current auth status:
|
|
60
|
+
```bash
|
|
61
|
+
adk whoami
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
If not logged in, choose one:
|
|
65
|
+
```bash
|
|
66
|
+
adk login # Opens browser -- approve on portal (recommended)
|
|
67
|
+
adk login --email you@example.com # Email/password flow
|
|
68
|
+
adk login --api-key aither_pat_... # Direct API key (from portal)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
To generate a key manually: portal.aitherium.com → Settings → API Keys → "+ New Token".
|
|
72
|
+
|
|
73
|
+
Auth is optional for local-only usage. Required for cloud inference, sovereign deploy, and fleet sync.
|
|
74
|
+
|
|
75
|
+
## Step 5: Create an agent project
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
adk init my-agent
|
|
79
|
+
cd my-agent
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
This creates:
|
|
83
|
+
- `agent.py` -- Agent definition with a sample tool
|
|
84
|
+
- `config.yaml` -- Backend, model, port configuration
|
|
85
|
+
- `tools.py` -- Custom tool definitions
|
|
86
|
+
|
|
87
|
+
## Step 6: Test basic chat
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
import asyncio
|
|
91
|
+
from adk import AitherAgent
|
|
92
|
+
|
|
93
|
+
async def main():
|
|
94
|
+
agent = AitherAgent("my-agent")
|
|
95
|
+
response = await agent.chat("Hello! What can you help me with?")
|
|
96
|
+
print(response.content)
|
|
97
|
+
|
|
98
|
+
asyncio.run(main())
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
The LLMRouter auto-detects backends in this priority order:
|
|
102
|
+
1. vLLM on port 8200 (highest priority -- continuous batching)
|
|
103
|
+
2. Desktop AitherOS MicroScheduler
|
|
104
|
+
3. Ollama on port 11434
|
|
105
|
+
4. Aitherium Gateway (cloud, needs auth)
|
|
106
|
+
5. OpenAI/Anthropic API keys (if set)
|
|
107
|
+
|
|
108
|
+
## Step 7: Add custom tools
|
|
109
|
+
|
|
110
|
+
```python
|
|
111
|
+
import asyncio
|
|
112
|
+
from adk import AitherAgent
|
|
113
|
+
|
|
114
|
+
agent = AitherAgent("my-agent")
|
|
115
|
+
|
|
116
|
+
@agent.tool
|
|
117
|
+
def get_weather(city: str) -> str:
|
|
118
|
+
"""Get the current weather for a city."""
|
|
119
|
+
return f"Weather in {city}: 72F, sunny"
|
|
120
|
+
|
|
121
|
+
@agent.tool
|
|
122
|
+
def search_docs(query: str) -> str:
|
|
123
|
+
"""Search project documentation."""
|
|
124
|
+
return f"Found 3 results for: {query}"
|
|
125
|
+
|
|
126
|
+
async def main():
|
|
127
|
+
response = await agent.chat("What's the weather in Tokyo?")
|
|
128
|
+
print(response.content)
|
|
129
|
+
|
|
130
|
+
asyncio.run(main())
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
The agent has 7 built-in tools enabled by default:
|
|
134
|
+
`file_read`, `file_write`, `file_edit`, `file_list`, `file_search`, `web_search`, `web_fetch`
|
|
135
|
+
|
|
136
|
+
## Step 8: Run the API server
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
adk run # Single agent, reads config.yaml
|
|
140
|
+
adk run --identity lyra --port 9000 # Specific identity + port
|
|
141
|
+
adk run --agents lyra,atlas,demiurge # Fleet mode (parallel agents)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
This starts a FastAPI server with an OpenAI-compatible endpoint at `/v1/chat/completions`.
|
|
145
|
+
|
|
146
|
+
## Step 9: Fleet mode (multi-agent)
|
|
147
|
+
|
|
148
|
+
```python
|
|
149
|
+
import asyncio
|
|
150
|
+
from adk.fleet import FleetConfig
|
|
151
|
+
|
|
152
|
+
async def main():
|
|
153
|
+
fleet = FleetConfig(agent_names=["aither", "lyra", "atlas"])
|
|
154
|
+
# Each agent gets its own personality, tools, and conversation state
|
|
155
|
+
# All share the same LLM backend via continuous batching
|
|
156
|
+
|
|
157
|
+
asyncio.run(main())
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
17 bundled identities: aither, apollo, athena, atlas, chaos, demiurge, hera,
|
|
161
|
+
hydra, iris, lyra, morgana, muse, prometheus, saga, themis, vera, viviane.
|
|
162
|
+
|
|
163
|
+
## Step 10: Graph memory (optional)
|
|
164
|
+
|
|
165
|
+
```python
|
|
166
|
+
# Store knowledge
|
|
167
|
+
await agent.graph_remember("user", "prefers", "dark mode")
|
|
168
|
+
await agent.graph_remember("project", "uses", "FastAPI")
|
|
169
|
+
|
|
170
|
+
# Query knowledge
|
|
171
|
+
results = await agent.graph_query("What does the user prefer?")
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Graph memory is SQLite-backed, works offline, persisted at `~/.aither/graph/`.
|
|
175
|
+
|
|
176
|
+
## Step 11: Deploy sovereign node (optional)
|
|
177
|
+
|
|
178
|
+
Deploy a full AitherOS instance on your own hardware that federates with the hub.
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
# Full node with GPU, dashboard, and mesh + register with hub
|
|
182
|
+
adk deploy node --gpu --dashboard --mesh --sovereign
|
|
183
|
+
|
|
184
|
+
# Lighter: core services only + federation
|
|
185
|
+
adk deploy core --sovereign
|
|
186
|
+
|
|
187
|
+
# Specify tenant and hub URL
|
|
188
|
+
adk deploy node --sovereign --tenant my-org --hub https://portal.aitherium.com
|
|
189
|
+
|
|
190
|
+
# Dry run (show what would happen)
|
|
191
|
+
adk deploy node --sovereign --dry-run
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
After deployment:
|
|
195
|
+
- Node auto-registers with `portal.aitherium.com/federation/register`
|
|
196
|
+
- Federation credentials saved to `~/.aither/.env.federation`
|
|
197
|
+
- Node appears in your fleet dashboard at `/workspace/fleet`
|
|
198
|
+
- Heartbeats keep the hub updated with status and metrics
|
|
199
|
+
|
|
200
|
+
Check federation status: `adk connect`
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Common Mistakes (avoid these)
|
|
205
|
+
|
|
206
|
+
1. **Wrong CLI**: `aither` is NOT `adk`. Use `adk init`, `adk setup`, `adk run`.
|
|
207
|
+
2. **Double vLLM**: Never run `adk setup` when vLLM is already on your GPU.
|
|
208
|
+
Always check `adk status` first.
|
|
209
|
+
3. **Wrong env var**: Don't set `AITHER_API_KEY`. Run `adk login` instead --
|
|
210
|
+
it saves the token to `~/.aither/config.yaml` automatically.
|
|
211
|
+
4. **Wrong tool names**: Built-in tools are `file_read`, `file_write`,
|
|
212
|
+
`file_edit` -- NOT `read_file`, `write_file`.
|
|
213
|
+
5. **Wrong memory API**: Use `agent.graph_remember()` and `agent.graph_query()`,
|
|
214
|
+
NOT `GraphMemory.add_triple()`.
|
|
215
|
+
6. **Elysium no-key**: `Elysium()` without args works -- it reads from saved config.
|
|
216
|
+
Don't pass `api_key=""` explicitly.
|
|
217
|
+
7. **IRC noise**: `adk run` starts an IRC bridge on port 6667. This is normal,
|
|
218
|
+
not an error.
|
|
219
|
+
|
|
220
|
+
## Quick Reference
|
|
221
|
+
|
|
222
|
+
| I want to... | Command / Code |
|
|
223
|
+
|---------------------------|---------------------------------------------------|
|
|
224
|
+
| Install | `pip install awdk` |
|
|
225
|
+
| Check system | `adk status` |
|
|
226
|
+
| Set up GPU inference | `adk setup` |
|
|
227
|
+
| Login | `adk login` |
|
|
228
|
+
| Check auth | `adk whoami` |
|
|
229
|
+
| Create project | `adk init my-agent` |
|
|
230
|
+
| Run agent | `adk run` |
|
|
231
|
+
| Run fleet | `adk run --agents lyra,atlas` |
|
|
232
|
+
| Start API server | `adk run --port 8080` |
|
|
233
|
+
| Diagnose issues | `adk doctor` |
|
|
234
|
+
| Connect to cloud | `adk connect --api-key KEY` |
|
|
235
|
+
| Deploy sovereign node | `adk deploy node --sovereign` |
|
|
236
|
+
| Register with hub | `adk register` |
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
# Landmark Map Integration Guide
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
`landmark_map.py` implements Prospector Phase 1's semantic region indexing. It:
|
|
6
|
+
|
|
7
|
+
1. **Extends project_map** with landmark metadata (tools, skills, intent hints)
|
|
8
|
+
2. **Persists snapshots** with HMAC integrity (CodeGraph pattern)
|
|
9
|
+
3. **Ranks landmarks** by keyword + intent multiplier
|
|
10
|
+
4. **Fails open** — empty snapshot returns [], never crashes
|
|
11
|
+
5. **Reuses proven patterns** — no core-service edits needed
|
|
12
|
+
|
|
13
|
+
## Architecture
|
|
14
|
+
|
|
15
|
+
### Dataclasses
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
@dataclass
|
|
19
|
+
class LandmarkNode:
|
|
20
|
+
id: str # "landmark_0", "landmark_auth", etc.
|
|
21
|
+
name: str # "Authentication", "Routing", etc.
|
|
22
|
+
rank: int # 0=highest importance
|
|
23
|
+
purpose: str # "auth", "routing", "api", etc.
|
|
24
|
+
files: List[str] # absolute paths in this landmark
|
|
25
|
+
tools: List[str] # tool names defined here (Phase 2+)
|
|
26
|
+
skills: List[str]] # skills available here (Phase 2+)
|
|
27
|
+
intent_hints: Dict[str, float] # {"CODE": 1.3, "DEBUG": 1.1, ...}
|
|
28
|
+
|
|
29
|
+
@dataclass
|
|
30
|
+
class LandmarkSnapshot:
|
|
31
|
+
root: str # project root
|
|
32
|
+
n_landmarks: int # from project_map
|
|
33
|
+
landmarks: List[LandmarkNode] # indexed semantic regions
|
|
34
|
+
edges: List[LandmarkEdge] # cross-landmark dependencies
|
|
35
|
+
built_at: str # ISO timestamp
|
|
36
|
+
hint_quality: Dict # surprise_events, precision_metrics, etc.
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Persistence (HMAC Pattern)
|
|
40
|
+
|
|
41
|
+
Files are stored in `$AITHER_DATA_DIR/Library/Data/`:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
{root-sha8}_landmark_snapshot.pkl # pickle object
|
|
45
|
+
{root-sha8}_landmark_snapshot.pkl.hmac # HMAC-SHA256 sidecar
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**HMAC key** comes from `$AITHER_INTERNAL_SECRET` env var (or default).
|
|
49
|
+
|
|
50
|
+
**Verification**: missing/corrupt HMAC → refuse load, return `None` (fail-open).
|
|
51
|
+
|
|
52
|
+
## Public APIs
|
|
53
|
+
|
|
54
|
+
### Load & Query
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
from adk.landmark_map import load_landmark_snapshot, hints_for
|
|
58
|
+
|
|
59
|
+
# Load snapshot (returns None if missing or corrupt)
|
|
60
|
+
snapshot = load_landmark_snapshot(root="/path/to/project")
|
|
61
|
+
|
|
62
|
+
# Query with intent scaling
|
|
63
|
+
if snapshot:
|
|
64
|
+
dirs = snapshot.hints_for(
|
|
65
|
+
"where is tool ranking decided?",
|
|
66
|
+
intent_type="CODE", # optional: "CODE", "DEBUG", "CONVERSATION", etc.
|
|
67
|
+
k=3
|
|
68
|
+
)
|
|
69
|
+
else:
|
|
70
|
+
# Graceful fallback to project_map
|
|
71
|
+
from lib.cognitive.project_map import hints_for as pm_hints
|
|
72
|
+
dirs = pm_hints("where is tool ranking?", root)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Build from project_map
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
from lib.cognitive.project_map import load_map
|
|
79
|
+
from adk.landmark_map import LandmarkSnapshot, save_landmark_snapshot
|
|
80
|
+
|
|
81
|
+
# Load project_map (from arc-agi-3 builder)
|
|
82
|
+
pm = load_map(root="/path/to/project")
|
|
83
|
+
|
|
84
|
+
# Enrich into snapshot (Phase 1: synthetic landmarks from purpose grouping)
|
|
85
|
+
snapshot = LandmarkSnapshot.from_project_map(pm)
|
|
86
|
+
|
|
87
|
+
# Persist with HMAC
|
|
88
|
+
save_landmark_snapshot(snapshot, root_path=pm["root"])
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Export for Embedding
|
|
92
|
+
|
|
93
|
+
```python
|
|
94
|
+
# Export deterministic JSONL for vLLM embedding (concept_card style)
|
|
95
|
+
result = snapshot.export_jsonl("/tmp/landmarks.jsonl")
|
|
96
|
+
# {"exported": 42, "output_path": "...", "generated_at": "2026-07-15T..."}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Status
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
from adk.landmark_map import landmark_status
|
|
103
|
+
|
|
104
|
+
status = landmark_status(root="/project")
|
|
105
|
+
# {
|
|
106
|
+
# "available": true,
|
|
107
|
+
# "root": "/project",
|
|
108
|
+
# "n_landmarks": 42,
|
|
109
|
+
# "built_at": "2026-07-15T...",
|
|
110
|
+
# "landmarks": ["Auth", "Routing", ...],
|
|
111
|
+
# "edges": 156
|
|
112
|
+
# }
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Ranking Algorithm
|
|
116
|
+
|
|
117
|
+
For each landmark, compute:
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
keyword_score = 4 * distinct_terms + name_hits*3 + purpose_hits*2 + file_hits
|
|
121
|
+
intent_boost = landmark.intent_hints[intent_type] * INTENT_RELEVANCE_SCALE[intent_type]
|
|
122
|
+
final_score = keyword_score * intent_boost
|
|
123
|
+
|
|
124
|
+
sorted by final_score (descending)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Where:
|
|
128
|
+
- `distinct_terms` = number of unique query terms matched (not repetition count)
|
|
129
|
+
- `intent_type` defaults to `"DEFAULT"` (scale = 1.0)
|
|
130
|
+
- Returns top-k **files** (not landmarks), sorted by score
|
|
131
|
+
|
|
132
|
+
## Fail-Open Behavior
|
|
133
|
+
|
|
134
|
+
**Never crashes.** Returns empty results on:
|
|
135
|
+
|
|
136
|
+
- Missing snapshot
|
|
137
|
+
- Corrupt HMAC
|
|
138
|
+
- Empty query
|
|
139
|
+
- No matching landmarks
|
|
140
|
+
- Unparseable pickle
|
|
141
|
+
|
|
142
|
+
All error paths log and return `[]` or `None` gracefully.
|
|
143
|
+
|
|
144
|
+
## Integration Points (Zero Core Edits)
|
|
145
|
+
|
|
146
|
+
### Read-Only Reuse
|
|
147
|
+
|
|
148
|
+
| Component | Lines | Usage |
|
|
149
|
+
|-----------|-------|-------|
|
|
150
|
+
| `project_map.load_map()` | 52-85 | Load base map for enrichment |
|
|
151
|
+
| `project_map._keyword_rank()` | 108-131 | Stopword set (reused) |
|
|
152
|
+
| `CodeGraph.concept_card()` | 368-393 | Deterministic JSON format pattern |
|
|
153
|
+
| `CodeGraph._verify_pickle_hmac()` | 246-265 | Exact HMAC verification logic |
|
|
154
|
+
| `CodeGraph._compute_file_hmac()` | 237-243 | Exact HMAC computation logic |
|
|
155
|
+
| `CodeGraph._write_pickle_hmac()` | 268-275 | Exact sidecar writing logic |
|
|
156
|
+
| `ContextPipeline._INTENT_RELEVANCE_SCALE` | 4257-4277 | Intent → score mapping |
|
|
157
|
+
| `ContextPipeline._coarse_code_intent()` | 263-277 | Fallback classifier (not used yet) |
|
|
158
|
+
|
|
159
|
+
### Subscribe-Only (Phase 2+)
|
|
160
|
+
|
|
161
|
+
- `SurpriseDetector.observe()` — feed surprise signals for training
|
|
162
|
+
- `LearnedWorldModel.TransitionDataset.record()` — persist training data for fine-tuning
|
|
163
|
+
- `CodeGraph.hybrid_query()` — semantic rank (when enriching from arc-agi-3)
|
|
164
|
+
|
|
165
|
+
## Phase Roadmap
|
|
166
|
+
|
|
167
|
+
**Phase 1 (NOW):**
|
|
168
|
+
- [x] LandmarkNode + LandmarkSnapshot dataclasses
|
|
169
|
+
- [x] Persistence with HMAC (atomic tmp+replace)
|
|
170
|
+
- [x] Keyword ranking from purpose grouping
|
|
171
|
+
- [x] Export to deterministic JSONL
|
|
172
|
+
- [x] Fail-open behavior (no crashes)
|
|
173
|
+
|
|
174
|
+
**Phase 2 (next):**
|
|
175
|
+
- [ ] Enrich from arc-agi-3 builder (tools[], skills[], edges[])
|
|
176
|
+
- [ ] Semantic rank (CodeGraph.hybrid_query integration)
|
|
177
|
+
- [ ] MCP tool `map_localize()` in Genesis
|
|
178
|
+
- [ ] Integrate `hints_for()` into ContextPipeline context seams
|
|
179
|
+
|
|
180
|
+
**Phase 3 (research):**
|
|
181
|
+
- [ ] Subscribe to SurpriseDetector for training signals
|
|
182
|
+
- [ ] Regret tracking (when hint was used but unhelpful)
|
|
183
|
+
- [ ] Fine-tune intent_hints via LearnedWorldModel
|
|
184
|
+
- [ ] Concept-card embedding (vLLM prompt cache reuse)
|
|
185
|
+
|
|
186
|
+
## Example: Full Workflow
|
|
187
|
+
|
|
188
|
+
```python
|
|
189
|
+
#!/usr/bin/env python3
|
|
190
|
+
"""Complete Prospector Phase 1 workflow."""
|
|
191
|
+
|
|
192
|
+
from lib.cognitive.project_map import load_map
|
|
193
|
+
from adk.landmark_map import (
|
|
194
|
+
LandmarkSnapshot,
|
|
195
|
+
save_landmark_snapshot,
|
|
196
|
+
load_landmark_snapshot,
|
|
197
|
+
hints_for,
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
# Step 1: Load project_map from arc-agi-3
|
|
201
|
+
root = "/path/to/project"
|
|
202
|
+
pm = load_map(root)
|
|
203
|
+
if not pm:
|
|
204
|
+
print("No project_map found — run arc-agi-3 builder first")
|
|
205
|
+
exit(1)
|
|
206
|
+
|
|
207
|
+
# Step 2: Enrich into snapshot (Phase 1: synthetic from purpose)
|
|
208
|
+
snapshot = LandmarkSnapshot.from_project_map(pm)
|
|
209
|
+
print(f"Created {len(snapshot.landmarks)} landmarks")
|
|
210
|
+
|
|
211
|
+
# Step 3: Persist with HMAC
|
|
212
|
+
if save_landmark_snapshot(snapshot, root_path=root):
|
|
213
|
+
print(f"Saved snapshot to Library/Data/")
|
|
214
|
+
|
|
215
|
+
# Step 4: Query with intent scaling
|
|
216
|
+
hints = hints_for(
|
|
217
|
+
"where is rate limiting enforced?",
|
|
218
|
+
root=root,
|
|
219
|
+
intent_type="CODE",
|
|
220
|
+
k=3
|
|
221
|
+
)
|
|
222
|
+
print(f"Top-3 directories to search:\n{chr(10).join(hints)}")
|
|
223
|
+
|
|
224
|
+
# Step 5: Export for embedding (Phase 2+)
|
|
225
|
+
snapshot = load_landmark_snapshot(root)
|
|
226
|
+
if snapshot:
|
|
227
|
+
result = snapshot.export_jsonl("/tmp/landmarks.jsonl")
|
|
228
|
+
print(f"Exported {result['exported']} landmarks to JSONL")
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Testing
|
|
232
|
+
|
|
233
|
+
All 9 core tests pass:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
pytest adk/test_landmark_map.py -v
|
|
237
|
+
|
|
238
|
+
✓ test_terms_of
|
|
239
|
+
✓ test_landmark_node_to_dict
|
|
240
|
+
✓ test_landmark_snapshot_from_project_map
|
|
241
|
+
✓ test_snapshot_hints_for_code_intent
|
|
242
|
+
✓ test_snapshot_hints_for_conversation_intent
|
|
243
|
+
✓ test_snapshot_fail_open_empty
|
|
244
|
+
✓ test_save_and_load_snapshot
|
|
245
|
+
✓ test_export_jsonl
|
|
246
|
+
✓ test_hints_for_public_api
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Lint Status
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
ruff check adk/landmark_map.py
|
|
253
|
+
ruff check adk/test_landmark_map.py
|
|
254
|
+
|
|
255
|
+
# Result: All checks passed!
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
## Key Design Decisions
|
|
259
|
+
|
|
260
|
+
1. **Fail-open**: Returns `[]` or `None`, never crashes. Users can always fall back to `project_map.hints_for()`.
|
|
261
|
+
|
|
262
|
+
2. **HMAC integrity**: Exact CodeGraph pattern. Any deviation breaks cache validation.
|
|
263
|
+
|
|
264
|
+
3. **Deterministic output**: JSON with `sort_keys=True, ensure_ascii=True`, sorted edge lists. Same state → byte-identical JSONL.
|
|
265
|
+
|
|
266
|
+
4. **Lazy imports**: Core deps (CodeGraph, ContextPipeline) imported in functions, not at module level. Allows fallback if unavailable.
|
|
267
|
+
|
|
268
|
+
5. **Intent scaling**: Reads `_INTENT_RELEVANCE_SCALE` read-only; never edits ContextPipeline.
|
|
269
|
+
|
|
270
|
+
6. **Standalone**: Zero core-service edits. Lives in awdk, importable as `from adk.landmark_map import ...`.
|
|
271
|
+
|
|
272
|
+
## Future: Moving to Core
|
|
273
|
+
|
|
274
|
+
When Phase 2/3 integrate into Genesis. This describes a change inside the
|
|
275
|
+
AitherOS server-side core, not anything you run from this package — the import
|
|
276
|
+
below is server-side and will not resolve in an `awdk` install.
|
|
277
|
+
|
|
278
|
+
```python
|
|
279
|
+
# Before (Phase 1 — awdk, what this package ships)
|
|
280
|
+
from adk.landmark_map import hints_for
|
|
281
|
+
|
|
282
|
+
# After (Phase 2+ — AitherOS core library, server-side; same code)
|
|
283
|
+
from lib.cognitive.landmark_map import hints_for
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Zero API changes needed — just move the file.
|