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.
Files changed (759) hide show
  1. adk/AGENT_PROMPT.md +236 -0
  2. adk/LANDMARK_MAP_INTEGRATION.md +286 -0
  3. adk/__init__.py +464 -0
  4. adk/__main__.py +10 -0
  5. adk/_tls.py +96 -0
  6. adk/a2a.py +819 -0
  7. adk/a2a_adapter.py +408 -0
  8. adk/a2a_client.py +498 -0
  9. adk/a2a_dispatch.py +323 -0
  10. adk/a2a_identity.py +141 -0
  11. adk/a2a_trust.py +323 -0
  12. adk/acp.py +963 -0
  13. adk/acp_common.py +385 -0
  14. adk/acp_server.py +833 -0
  15. adk/addon_compose.py +314 -0
  16. adk/addon_docker.py +149 -0
  17. adk/addon_manager.py +468 -0
  18. adk/addon_quadlet.py +203 -0
  19. adk/admin_api.py +1113 -0
  20. adk/admin_factory.py +149 -0
  21. adk/aeon.py +482 -0
  22. adk/agent.py +3052 -0
  23. adk/agent_daemon.py +370 -0
  24. adk/agent_pack.py +487 -0
  25. adk/agent_prompt.py +41 -0
  26. adk/agent_registry.py +193 -0
  27. adk/agentdoc/NOTICE +19 -0
  28. adk/agentdoc/__init__.py +185 -0
  29. adk/agentdoc/_discover.py +361 -0
  30. adk/agentdoc/_docs.py +270 -0
  31. adk/agentdoc/_info.py +70 -0
  32. adk/agentdoc/_metadata.py +63 -0
  33. adk/agentdoc/_pformat.py +1977 -0
  34. adk/agentdoc/_structured.py +1685 -0
  35. adk/agentdoc/_truncating_stream.py +261 -0
  36. adk/agentdoc/_visibility.py +304 -0
  37. adk/agentdoc/core.py +478 -0
  38. adk/agentdoc/doc_config.py +38 -0
  39. adk/agentdoc/ext.py +88 -0
  40. adk/agentdoc/format.py +60 -0
  41. adk/agentdoc/introspect.py +31 -0
  42. adk/agentdoc/protocols.py +107 -0
  43. adk/agentdoc/registry.py +192 -0
  44. adk/agentdoc/tests/test_builtins_structured_instance.py +88 -0
  45. adk/agentdoc/tests/test_event_max_string_override.py +88 -0
  46. adk/agentdoc/visibility.py +41 -0
  47. adk/aither_bridge.py +506 -0
  48. adk/aither_events_generated.py +214 -0
  49. adk/ambient.py +326 -0
  50. adk/app_proxy_tools.py +182 -0
  51. adk/approval.py +146 -0
  52. adk/artifacts.py +142 -0
  53. adk/auth.py +649 -0
  54. adk/authmd/__init__.py +46 -0
  55. adk/authmd/client.py +596 -0
  56. adk/authmd/consent.py +224 -0
  57. adk/authmd/store.py +228 -0
  58. adk/bootstrap/__init__.py +12 -0
  59. adk/bootstrap/generic_agent.py +172 -0
  60. adk/bootstrap_cli.py +214 -0
  61. adk/bugreport.py +194 -0
  62. adk/builtin_tools.py +2329 -0
  63. adk/builtin_tools_voice.py +222 -0
  64. adk/channel_auth.py +63 -0
  65. adk/channels.py +401 -0
  66. adk/chat.py +1635 -0
  67. adk/chronicle.py +386 -0
  68. adk/claude_account_usage.py +398 -0
  69. adk/claude_accounts.py +650 -0
  70. adk/claude_model.py +392 -0
  71. adk/claude_runner.py +1997 -0
  72. adk/cli.py +14963 -0
  73. adk/client/__init__.py +65 -0
  74. adk/client/_base.py +53 -0
  75. adk/client/_client.py +609 -0
  76. adk/client/_gateway.py +178 -0
  77. adk/client/_gateway_mcp.py +380 -0
  78. adk/client/_models.py +100 -0
  79. adk/client/services/__init__.py +21 -0
  80. adk/client/services/a2a.py +74 -0
  81. adk/client/services/capabilities.py +80 -0
  82. adk/client/services/context.py +76 -0
  83. adk/client/services/conversations.py +80 -0
  84. adk/client/services/data_plane.py +60 -0
  85. adk/client/services/expeditions.py +58 -0
  86. adk/client/services/strata.py +66 -0
  87. adk/client/services/voice.py +32 -0
  88. adk/code_locator.py +229 -0
  89. adk/coherence.py +169 -0
  90. adk/commands/approvals.py +172 -0
  91. adk/commands/join.py +432 -0
  92. adk/commands/wm.py +299 -0
  93. adk/compliance/__init__.py +30 -0
  94. adk/compliance/air_gap.py +373 -0
  95. adk/compliance/attestation.py +273 -0
  96. adk/compliance/model_licenses.py +161 -0
  97. adk/compliance/pdf_report.py +205 -0
  98. adk/compression.py +109 -0
  99. adk/config.py +609 -0
  100. adk/connect/__init__.py +65 -0
  101. adk/connect/templates/deer_flow.yaml.tmpl +21 -0
  102. adk/connect/templates/hermes.yaml.tmpl +22 -0
  103. adk/connect/templates/nooa.yaml.tmpl +16 -0
  104. adk/connect/templates/openclaw.yaml.tmpl +17 -0
  105. adk/context.py +200 -0
  106. adk/context_budget.py +612 -0
  107. adk/conversations.py +643 -0
  108. adk/core/VALIDATOR_NOTICE +28 -0
  109. adk/core/__init__.py +156 -0
  110. adk/core/agent.py +605 -0
  111. adk/core/backends/__init__.py +25 -0
  112. adk/core/backends/anthropic.py +142 -0
  113. adk/core/backends/ollama.py +88 -0
  114. adk/core/backends/openai_compat.py +146 -0
  115. adk/core/capability.py +137 -0
  116. adk/core/cell_executors.py +207 -0
  117. adk/core/codeact.py +667 -0
  118. adk/core/loader.py +239 -0
  119. adk/core/logging.py +72 -0
  120. adk/core/mcp.py +179 -0
  121. adk/core/memory.py +88 -0
  122. adk/core/model.py +184 -0
  123. adk/core/oo.py +415 -0
  124. adk/core/otel.py +188 -0
  125. adk/core/persistence.py +124 -0
  126. adk/core/sandbox.py +229 -0
  127. adk/core/scaffold.py +282 -0
  128. adk/core/secrets.py +263 -0
  129. adk/core/server.py +191 -0
  130. adk/core/spawn.py +149 -0
  131. adk/core/tool.py +186 -0
  132. adk/core/trace.py +123 -0
  133. adk/core/typed_memory.py +634 -0
  134. adk/core/validator.py +295 -0
  135. adk/core/vector_memory.py +274 -0
  136. adk/cron.py +305 -0
  137. adk/daemon_endpoint.py +145 -0
  138. adk/data/model_licenses.yaml +144 -0
  139. adk/data/packs_catalog.json +1093 -0
  140. adk/decisions/__init__.py +55 -0
  141. adk/decisions/agent_tools.py +449 -0
  142. adk/decisions/channels.py +567 -0
  143. adk/decisions/cli.py +699 -0
  144. adk/decisions/context.py +499 -0
  145. adk/decisions/notify.py +372 -0
  146. adk/decisions/popup.py +1707 -0
  147. adk/decisions/render.py +301 -0
  148. adk/decisions/steerback.py +217 -0
  149. adk/decisions/store.py +800 -0
  150. adk/decisions/terminal.py +518 -0
  151. adk/decisions/winproc.py +363 -0
  152. adk/deploy/compose/docker-compose.node-adk.yml +299 -0
  153. adk/deploy/compose/docker-compose.node.yml +754 -0
  154. adk/deploy.py +3753 -0
  155. adk/dispatch.py +447 -0
  156. adk/doc.py +413 -0
  157. adk/docker-compose.adk-vllm.yml +98 -0
  158. adk/doctor.py +449 -0
  159. adk/ellipsis.py +167 -0
  160. adk/elysium.py +544 -0
  161. adk/elysium_connect.py +377 -0
  162. adk/embeddings.py +561 -0
  163. adk/enrollment.py +316 -0
  164. adk/evalharness/__init__.py +47 -0
  165. adk/evalharness/classify.py +139 -0
  166. adk/evalharness/cli.py +372 -0
  167. adk/evalharness/enumerate.py +140 -0
  168. adk/evalharness/invoke.py +175 -0
  169. adk/evalharness/report.py +252 -0
  170. adk/events.py +191 -0
  171. adk/faculties/__init__.py +44 -0
  172. adk/faculties/base.py +276 -0
  173. adk/faculties/code_graph.py +193 -0
  174. adk/faculties/embeddings.py +252 -0
  175. adk/federation.py +767 -0
  176. adk/federation_lite.py +254 -0
  177. adk/fleet.py +212 -0
  178. adk/fleet_enroll.py +695 -0
  179. adk/fleet_manager.py +534 -0
  180. adk/forge.py +354 -0
  181. adk/forkd_client.py +378 -0
  182. adk/gate.py +310 -0
  183. adk/gateway_process.py +136 -0
  184. adk/graph_memory.py +2340 -0
  185. adk/graph_rag/README.md +194 -0
  186. adk/graph_rag/__init__.py +116 -0
  187. adk/graph_rag/activation_scoring.py +455 -0
  188. adk/graph_rag/bounded_retriever.py +145 -0
  189. adk/graph_rag/config.py +85 -0
  190. adk/graph_rag/corpus_loader.py +66 -0
  191. adk/graph_rag/governance.py +444 -0
  192. adk/graph_rag/graph_builder.py +135 -0
  193. adk/graph_rag/graph_store.py +104 -0
  194. adk/graph_rag/parsers/__init__.py +72 -0
  195. adk/graph_rag/parsers/markdown_parser.py +178 -0
  196. adk/graph_rag/parsers/sql_parser.py +125 -0
  197. adk/graph_rag/parsers/symbol_extractor.py +44 -0
  198. adk/graph_rag/parsers/typescript_parser.py +66 -0
  199. adk/graph_retriever.py +230 -0
  200. adk/grounding.py +120 -0
  201. adk/hardware_probe.py +249 -0
  202. adk/harness.py +322 -0
  203. adk/harnesses/__init__.py +41 -0
  204. adk/harnesses/adapters.py +208 -0
  205. adk/harnesses/agents.py +405 -0
  206. adk/harnesses/cli.py +268 -0
  207. adk/harnesses/daemon.py +1288 -0
  208. adk/harnesses/discovery.py +283 -0
  209. adk/harnesses/events.py +143 -0
  210. adk/harnesses/fs.py +198 -0
  211. adk/harnesses/manager.py +193 -0
  212. adk/harnesses/models.py +249 -0
  213. adk/harnesses/pty_session.py +335 -0
  214. adk/harnesses/registry.py +382 -0
  215. adk/harnesses/rooms.py +392 -0
  216. adk/harnesses/sandbox.py +155 -0
  217. adk/harnesses/session.py +623 -0
  218. adk/harnesses/session_directory.py +403 -0
  219. adk/harnesses/spool.py +189 -0
  220. adk/harnesses/transcript_bridge.py +292 -0
  221. adk/harnesses/well.py +540 -0
  222. adk/harnesses/wrap.py +343 -0
  223. adk/identities/aither.yaml +53 -0
  224. adk/identity.py +570 -0
  225. adk/importers/__init__.py +10 -0
  226. adk/importers/eve.py +431 -0
  227. adk/ingest.py +564 -0
  228. adk/intent.py +241 -0
  229. adk/kimi_coordinator.py +361 -0
  230. adk/license_startup.py +120 -0
  231. adk/licensing.py +424 -0
  232. adk/llamacpp_setup.py +1014 -0
  233. adk/llm/__init__.py +1406 -0
  234. adk/llm/acp_provider.py +213 -0
  235. adk/llm/advisor.py +192 -0
  236. adk/llm/anthropic.py +564 -0
  237. adk/llm/base.py +517 -0
  238. adk/llm/batch_runner.py +139 -0
  239. adk/llm/cache.py +271 -0
  240. adk/llm/continuation.py +170 -0
  241. adk/llm/gemini.py +364 -0
  242. adk/llm/multimodal.py +81 -0
  243. adk/llm/ollama.py +209 -0
  244. adk/llm/onboarding.py +236 -0
  245. adk/llm/openai_compat.py +584 -0
  246. adk/llm/picolm.py +242 -0
  247. adk/llmfit.py +764 -0
  248. adk/local_backends.py +137 -0
  249. adk/local_jobs.py +424 -0
  250. adk/loop_guard.py +312 -0
  251. adk/managed_identity.py +520 -0
  252. adk/mcp.py +773 -0
  253. adk/mcp_endpoint_tools.py +149 -0
  254. adk/mcp_server.py +324 -0
  255. adk/mcp_setup.py +348 -0
  256. adk/mcp_stdio.py +164 -0
  257. adk/memory.py +653 -0
  258. adk/memory_wiki.py +860 -0
  259. adk/mesh.py +574 -0
  260. adk/mesh_discovery.py +262 -0
  261. adk/mesh_provider.py +873 -0
  262. adk/mesh_serve.py +313 -0
  263. adk/metering.py +447 -0
  264. adk/metrics.py +288 -0
  265. adk/microscheduler_heartbeat.py +272 -0
  266. adk/model_capabilities.py +346 -0
  267. adk/neurons.py +509 -0
  268. adk/node/__init__.py +16 -0
  269. adk/node/local_tools.py +445 -0
  270. adk/node/server.py +344 -0
  271. adk/node_pairing.py +117 -0
  272. adk/notebook_tools.py +268 -0
  273. adk/object_registry.py +313 -0
  274. adk/ods/.gitattributes +14 -0
  275. adk/ods/LICENSE.apache2.txt +86 -0
  276. adk/ods/NOTICE +137 -0
  277. adk/ods/README.md +519 -0
  278. adk/ods/__init__.py +84 -0
  279. adk/ods/_upstream_classify.sh +241 -0
  280. adk/ods/_upstream_select.py +562 -0
  281. adk/ods/adk_integration.md +461 -0
  282. adk/ods/data.py +300 -0
  283. adk/ods/gpu-database.json +505 -0
  284. adk/ods/hardware-classes.json +246 -0
  285. adk/ods/hardware.py +371 -0
  286. adk/ods/model-library.json +1700 -0
  287. adk/ods/model_types.py +133 -0
  288. adk/ods/resolver.py +497 -0
  289. adk/ods/tests/__init__.py +1 -0
  290. adk/ods/tests/conftest.py +242 -0
  291. adk/ods/tests/test_classify_differential.py +188 -0
  292. adk/ods/tests/test_differential.py +97 -0
  293. adk/ods/tests/test_hardware_and_roles.py +334 -0
  294. adk/ods/tests/test_integration.py +491 -0
  295. adk/ods/tests/test_resolver.py +607 -0
  296. adk/ods/tools/__init__.py +1 -0
  297. adk/ods/tools/sweep_differential.py +194 -0
  298. adk/ods/tools/validate_catalog.py +348 -0
  299. adk/ollama_setup.py +272 -0
  300. adk/onboard_discord.py +283 -0
  301. adk/oo_bridge.py +146 -0
  302. adk/pack_credentials.py +433 -0
  303. adk/pack_discovery.py +334 -0
  304. adk/pack_drivers.py +535 -0
  305. adk/pack_registry.py +667 -0
  306. adk/pack_scope.py +79 -0
  307. adk/pack_verifier.py +147 -0
  308. adk/packs/__init__.py +12 -0
  309. adk/packs/activator.py +102 -0
  310. adk/packs/aither/brain_pack.yaml +82 -0
  311. adk/packs/aither/skills/coordination.md +28 -0
  312. adk/packs/aither/skills/memory-recall.md +85 -0
  313. adk/packs/analyst/agent.yaml +33 -0
  314. adk/packs/analyst/brain_pack.yaml +88 -0
  315. adk/packs/analyst/skills/anomaly-detection.md +60 -0
  316. adk/packs/analyst/skills/structured-inference.md +56 -0
  317. adk/packs/arc_world/__init__.py +27 -0
  318. adk/packs/arc_world/adapter.py +267 -0
  319. adk/packs/arc_world/measure_policy.py +215 -0
  320. adk/packs/arc_world/smart_policy.py +219 -0
  321. adk/packs/arc_world/test_smart_policy.py +178 -0
  322. adk/packs/claude-code/agent.yaml +31 -0
  323. adk/packs/claude-code/brain_pack.yaml +79 -0
  324. adk/packs/claude-code/skills/debugging.md +63 -0
  325. adk/packs/claude-code/skills/feature-development.md +66 -0
  326. adk/packs/code-discipline/tools/check_checker_hygiene.py +941 -0
  327. adk/packs/code-discipline/tools/next_debt_id.py +262 -0
  328. adk/packs/deepseek_coder/NOTICE +46 -0
  329. adk/packs/deepseek_coder/__init__.py +311 -0
  330. adk/packs/deepseek_coder/formats.py +347 -0
  331. adk/packs/hermes/agent.yaml +32 -0
  332. adk/packs/hermes/brain_pack.yaml +79 -0
  333. adk/packs/hermes/skills/architecture-review.md +47 -0
  334. adk/packs/hermes/skills/trade-off-analysis.md +49 -0
  335. adk/packs/iris/brain_pack.yaml +88 -0
  336. adk/packs/iris/skills/character-consistency.md +89 -0
  337. adk/packs/iris/skills/deploy-image-gen.md +122 -0
  338. adk/packs/iris/skills/image-generation.md +89 -0
  339. adk/packs/omp_interop/NOTICE +23 -0
  340. adk/packs/omp_interop/__init__.py +270 -0
  341. adk/packs/omp_thinking/NOTICE +28 -0
  342. adk/packs/omp_thinking/__init__.py +264 -0
  343. adk/packs/openclaw/agent.yaml +30 -0
  344. adk/packs/openclaw/brain_pack.yaml +99 -0
  345. adk/packs/openclaw/skills/source-verification.md +48 -0
  346. adk/packs/openclaw/skills/web-research.md +45 -0
  347. adk/packs/world_model/.toolpack.yaml +40 -0
  348. adk/packs/world_model/__init__.py +65 -0
  349. adk/packs/world_model/env_enroll.py +178 -0
  350. adk/packs/world_model/safe_explore.py +286 -0
  351. adk/packs/world_model/tools.py +490 -0
  352. adk/pairing.py +435 -0
  353. adk/persona.py +192 -0
  354. adk/portal.py +290 -0
  355. adk/ports.py +90 -0
  356. adk/preflight/__init__.py +193 -0
  357. adk/preflight/policy.py +55 -0
  358. adk/preflight/probe.py +496 -0
  359. adk/preflight/report.py +185 -0
  360. adk/private_companion.py +713 -0
  361. adk/process_supervisor.py +378 -0
  362. adk/prompts/__init__.py +13 -0
  363. adk/prompts/bridge.py +125 -0
  364. adk/proton_setup.py +189 -0
  365. adk/pulse.py +294 -0
  366. adk/reasoning/__init__.py +69 -0
  367. adk/reasoning/cem.py +315 -0
  368. adk/reasoning/mcts/__init__.py +46 -0
  369. adk/reasoning/mcts/adapters/__init__.py +7 -0
  370. adk/reasoning/mcts/adapters/observed_transition.py +155 -0
  371. adk/reasoning/mcts/core.py +955 -0
  372. adk/reasoning/mcts/env.py +55 -0
  373. adk/reasoning/mcts/loop.py +145 -0
  374. adk/reasoning/mcts/models.py +70 -0
  375. adk/reasoning/planner.py +408 -0
  376. adk/reasoning/speculative.py +256 -0
  377. adk/reasoning/tiers.py +392 -0
  378. adk/reasoning_session.py +287 -0
  379. adk/registration.py +190 -0
  380. adk/registry.py +113 -0
  381. adk/relay.py +860 -0
  382. adk/relay_client.py +279 -0
  383. adk/responder.py +360 -0
  384. adk/room_launcher.py +377 -0
  385. adk/routines.py +514 -0
  386. adk/safety.py +351 -0
  387. adk/sandbox.py +451 -0
  388. adk/selfgraph/__init__.py +105 -0
  389. adk/selfgraph/cli.py +528 -0
  390. adk/selfgraph/drainer.py +282 -0
  391. adk/selfgraph/publisher.py +546 -0
  392. adk/selfgraph/recorder.py +976 -0
  393. adk/selfgraph/schema.py +332 -0
  394. adk/selfgraph/spool.py +612 -0
  395. adk/server.py +5327 -0
  396. adk/services.py +318 -0
  397. adk/setup.py +1096 -0
  398. adk/setup_cli.py +1818 -0
  399. adk/shell/__init__.py +77 -0
  400. adk/shell/__main__.py +3 -0
  401. adk/shell/_repo_roots.py +94 -0
  402. adk/shell/assistant.py +228 -0
  403. adk/shell/assistant_ext.py +224 -0
  404. adk/shell/auth.py +321 -0
  405. adk/shell/claude_ingest.py +295 -0
  406. adk/shell/claude_sessions.py +810 -0
  407. adk/shell/cli.py +5407 -0
  408. adk/shell/command_center/__init__.py +4 -0
  409. adk/shell/command_center/agents_console.py +210 -0
  410. adk/shell/command_center/brief.py +73 -0
  411. adk/shell/command_center/fleet_client.py +299 -0
  412. adk/shell/command_center/hq.py +322 -0
  413. adk/shell/command_center/inbox.py +230 -0
  414. adk/shell/command_center/palette.py +234 -0
  415. adk/shell/command_center/watchtower.py +117 -0
  416. adk/shell/commands.py +524 -0
  417. adk/shell/completions.py +109 -0
  418. adk/shell/config.py +263 -0
  419. adk/shell/crash_reporter.py +228 -0
  420. adk/shell/data/__init__.py +2 -0
  421. adk/shell/data/deploy_profiles.yaml +144 -0
  422. adk/shell/data/image_map.yaml +231 -0
  423. adk/shell/deployer.py +879 -0
  424. adk/shell/entitlement.py +498 -0
  425. adk/shell/events.py +554 -0
  426. adk/shell/genesis_client.py +412 -0
  427. adk/shell/gui_wizard.py +614 -0
  428. adk/shell/heartbeat.py +114 -0
  429. adk/shell/image_setup.py +372 -0
  430. adk/shell/llm_client.py +227 -0
  431. adk/shell/mcp_bridge.py +396 -0
  432. adk/shell/mcp_setup.py +349 -0
  433. adk/shell/metrics.py +419 -0
  434. adk/shell/node/__init__.py +16 -0
  435. adk/shell/node/local_tools.py +445 -0
  436. adk/shell/node/server.py +344 -0
  437. adk/shell/onboarding.py +766 -0
  438. adk/shell/output.py +70 -0
  439. adk/shell/plugins/__init__.py +220 -0
  440. adk/shell/plugins/builtins/__init__.py +1 -0
  441. adk/shell/plugins/builtins/addon.py +301 -0
  442. adk/shell/plugins/builtins/admin.py +351 -0
  443. adk/shell/plugins/builtins/agents.py +756 -0
  444. adk/shell/plugins/builtins/aitherzero.py +283 -0
  445. adk/shell/plugins/builtins/app.py +838 -0
  446. adk/shell/plugins/builtins/appforge.py +320 -0
  447. adk/shell/plugins/builtins/bundle.py +339 -0
  448. adk/shell/plugins/builtins/capture.py +249 -0
  449. adk/shell/plugins/builtins/cloud.py +416 -0
  450. adk/shell/plugins/builtins/commerce.py +356 -0
  451. adk/shell/plugins/builtins/companion.py +550 -0
  452. adk/shell/plugins/builtins/decisions.py +131 -0
  453. adk/shell/plugins/builtins/deploy.py +390 -0
  454. adk/shell/plugins/builtins/durability.py +143 -0
  455. adk/shell/plugins/builtins/enroll.py +143 -0
  456. adk/shell/plugins/builtins/escalation.py +199 -0
  457. adk/shell/plugins/builtins/expedition.py +418 -0
  458. adk/shell/plugins/builtins/finetune.py +201 -0
  459. adk/shell/plugins/builtins/gaming.py +231 -0
  460. adk/shell/plugins/builtins/github_app.py +373 -0
  461. adk/shell/plugins/builtins/graph.py +421 -0
  462. adk/shell/plugins/builtins/inference.py +557 -0
  463. adk/shell/plugins/builtins/knowledge.py +296 -0
  464. adk/shell/plugins/builtins/marketplace.py +311 -0
  465. adk/shell/plugins/builtins/mcp_workstation.py +159 -0
  466. adk/shell/plugins/builtins/onboard_flow.py +218 -0
  467. adk/shell/plugins/builtins/pack_customize.py +203 -0
  468. adk/shell/plugins/builtins/packs.py +909 -0
  469. adk/shell/plugins/builtins/project.py +652 -0
  470. adk/shell/plugins/builtins/quiesce.py +130 -0
  471. adk/shell/plugins/builtins/saga.py +1098 -0
  472. adk/shell/plugins/builtins/scope.py +433 -0
  473. adk/shell/plugins/builtins/secret.py +313 -0
  474. adk/shell/plugins/builtins/setup.py +909 -0
  475. adk/shell/plugins/builtins/sprite.py +304 -0
  476. adk/shell/plugins/builtins/storefront.py +198 -0
  477. adk/shell/plugins/builtins/sync.py +190 -0
  478. adk/shell/plugins/builtins/test_secret.py +70 -0
  479. adk/shell/plugins/builtins/tunnel.py +328 -0
  480. adk/shell/plugins/builtins/wiki.py +295 -0
  481. adk/shell/plugins.py +445 -0
  482. adk/shell/registry_auth.py +148 -0
  483. adk/shell/repl.py +596 -0
  484. adk/shell/script.py +280 -0
  485. adk/shell/session_browser.py +365 -0
  486. adk/shell/shell_integration.py +213 -0
  487. adk/shell/telemetry/__init__.py +1 -0
  488. adk/shell/telemetry/config.py +272 -0
  489. adk/shell/telemetry/examples.py +398 -0
  490. adk/shell/telemetry/test_telemetry.py +557 -0
  491. adk/shell/tui/__init__.py +1 -0
  492. adk/shell/tui/saga_writer.py +560 -0
  493. adk/shell/update_check.py +138 -0
  494. adk/shell/usage.py +106 -0
  495. adk/shell_launcher.py +529 -0
  496. adk/skills.py +365 -0
  497. adk/smtp.py +832 -0
  498. adk/stdio_compat.py +50 -0
  499. adk/steering.py +189 -0
  500. adk/strata.py +936 -0
  501. adk/supervisor.py +199 -0
  502. adk/sync/__init__.py +28 -0
  503. adk/sync/adk_sync_engine.py +384 -0
  504. adk/sync/brain.py +384 -0
  505. adk/sync/device_identity.py +107 -0
  506. adk/sync/drive_client.py +243 -0
  507. adk/sync/files.py +540 -0
  508. adk/sync/lockbox.py +510 -0
  509. adk/sync/secrets.py +301 -0
  510. adk/sync/sessions.py +599 -0
  511. adk/sync/settings.py +274 -0
  512. adk/sync/test_brain_sync.py +352 -0
  513. adk/sync/watermark.py +226 -0
  514. adk/templates/agent-package/agent.yaml +41 -0
  515. adk/templates/agent-package/identity.yaml +13 -0
  516. adk/templates/deep-research/.env.example +27 -0
  517. adk/templates/deep-research/engine/__init__.py +1 -0
  518. adk/templates/deep-research/engine/aithersearch.py +131 -0
  519. adk/templates/deep-research/engine/codex_oauth.py +119 -0
  520. adk/templates/deep-research/engine/ledger.py +214 -0
  521. adk/templates/deep-research/engine/tools.py +472 -0
  522. adk/templates/deep-research/pack/deep-research/agent.yaml +27 -0
  523. adk/templates/deep-research/pack/deep-research/brain_pack.yaml +105 -0
  524. adk/templates/deep-research/pack/deep-research/skills/deep-research.md +33 -0
  525. adk/templates/deep-research/pack/deep-research/skills/mirror-website.md +49 -0
  526. adk/templates/deep-research/pack/deep-research/skills/report-writing.md +29 -0
  527. adk/templates/deep-research/requirements.txt +21 -0
  528. adk/templates/deep-research/serve.py +485 -0
  529. adk/templates/deep-research/web/index.html +333 -0
  530. adk/templates/site-ingest/.env.example +27 -0
  531. adk/templates/site-ingest/README.md +276 -0
  532. adk/templates/site-ingest/engine/__init__.py +1 -0
  533. adk/templates/site-ingest/engine/tools.py +448 -0
  534. adk/templates/site-ingest/pack/site-ingest/agent.yaml +26 -0
  535. adk/templates/site-ingest/pack/site-ingest/brain_pack.yaml +139 -0
  536. adk/templates/site-ingest/pack/site-ingest/skills/site-ingest.md +75 -0
  537. adk/templates/site-ingest/requirements.txt +7 -0
  538. adk/templates/site-ingest/serve.py +486 -0
  539. adk/templates/site-ingest/tests/test_tools.py +170 -0
  540. adk/templates/site-ingest/web/index.html +65 -0
  541. adk/templates/sovereign/.env.example.j2 +40 -0
  542. adk/templates/sovereign/Caddyfile.j2 +6 -0
  543. adk/templates/sovereign/agent.yaml.j2 +49 -0
  544. adk/templates/sovereign/backend/Dockerfile.j2 +15 -0
  545. adk/templates/sovereign/backend/app/__init__.py +0 -0
  546. adk/templates/sovereign/backend/app/agent_core/__init__.py +74 -0
  547. adk/templates/sovereign/backend/app/agent_core/admin.py +142 -0
  548. adk/templates/sovereign/backend/app/agent_core/bridge.py +197 -0
  549. adk/templates/sovereign/backend/app/agent_core/client.py +209 -0
  550. adk/templates/sovereign/backend/app/agent_core/consolidation.py +110 -0
  551. adk/templates/sovereign/backend/app/agent_core/eviction.py +110 -0
  552. adk/templates/sovereign/backend/app/agent_core/integration.py +116 -0
  553. adk/templates/sovereign/backend/app/agent_core/migrations/0001_memory_tables.sql +48 -0
  554. adk/templates/sovereign/backend/app/agent_core/pillars.py +294 -0
  555. adk/templates/sovereign/backend/app/agent_core/reinforcement.py +156 -0
  556. adk/templates/sovereign/backend/app/agent_core/store.py +354 -0
  557. adk/templates/sovereign/backend/app/agent_core/tests/__init__.py +0 -0
  558. adk/templates/sovereign/backend/app/agent_core/tests/conftest.py +41 -0
  559. adk/templates/sovereign/backend/app/agent_core/tests/test_smoke.py +226 -0
  560. adk/templates/sovereign/backend/app/agent_core/tiers.py +100 -0
  561. adk/templates/sovereign/backend/app/agent_memory.py.j2 +129 -0
  562. adk/templates/sovereign/backend/app/auth.py +41 -0
  563. adk/templates/sovereign/backend/app/brain_pack.py +155 -0
  564. adk/templates/sovereign/backend/app/config.py.j2 +133 -0
  565. adk/templates/sovereign/backend/app/database.py +24 -0
  566. adk/templates/sovereign/backend/app/main.py.j2 +187 -0
  567. adk/templates/sovereign/backend/app/models.py +109 -0
  568. adk/templates/sovereign/backend/app/packs/__init__.py +0 -0
  569. adk/templates/sovereign/backend/app/routers/__init__.py +0 -0
  570. adk/templates/sovereign/backend/app/routers/auth.py.j2 +64 -0
  571. adk/templates/sovereign/backend/app/routers/chat.py.j2 +187 -0
  572. adk/templates/sovereign/backend/app/routers/documents.py.j2 +134 -0
  573. adk/templates/sovereign/backend/app/routers/feedback.py +55 -0
  574. adk/templates/sovereign/backend/app/services/__init__.py +0 -0
  575. adk/templates/sovereign/backend/app/services/llm.py.j2 +184 -0
  576. adk/templates/sovereign/backend/app/services/portal_registration.py.j2 +173 -0
  577. adk/templates/sovereign/backend/app/services/rag.py.j2 +184 -0
  578. adk/templates/sovereign/backend/app/tools/__init__.py +0 -0
  579. adk/templates/sovereign/backend/app/tools/custom_tools.py.j2 +11 -0
  580. adk/templates/sovereign/backend/requirements.txt +18 -0
  581. adk/templates/sovereign/brain_pack.yaml.j2 +81 -0
  582. adk/templates/sovereign/docker-compose.aitheros.yml.j2 +26 -0
  583. adk/templates/sovereign/docker-compose.yml.j2 +100 -0
  584. adk/templates/sovereign/frontend/index.html +12 -0
  585. adk/templates/sovereign/frontend/package.json.j2 +22 -0
  586. adk/templates/sovereign/frontend/src/App.tsx +93 -0
  587. adk/templates/sovereign/frontend/src/components/ChatPanel.tsx +91 -0
  588. adk/templates/sovereign/frontend/src/components/DocumentPanel.tsx +88 -0
  589. adk/templates/sovereign/frontend/src/components/LoginPage.tsx +27 -0
  590. adk/templates/sovereign/frontend/src/hooks/useAuth.ts +55 -0
  591. adk/templates/sovereign/frontend/src/hooks/useConfig.ts +34 -0
  592. adk/templates/sovereign/frontend/src/index.css +43 -0
  593. adk/templates/sovereign/frontend/src/main.tsx +10 -0
  594. adk/templates/sovereign/frontend/src/vite-env.d.ts +1 -0
  595. adk/templates/sovereign/frontend/tsconfig.json +20 -0
  596. adk/templates/sovereign/frontend/vite.config.ts.j2 +15 -0
  597. adk/templates/sovereign/manifest.yaml.j2 +45 -0
  598. adk/tests/test_a2a_durability.py +223 -0
  599. adk/tests/test_a2a_trust.py +382 -0
  600. adk/tests/test_a2a_trust_registry.py +98 -0
  601. adk/tests/test_bonsai_local_backend.py +88 -0
  602. adk/tests/test_enrollment_cert.py +186 -0
  603. adk/tests/test_fleet_enroll_gateway_key.py +319 -0
  604. adk/tests/test_gateway_mcp_client.py +492 -0
  605. adk/tests/test_harness_daemon.py +219 -0
  606. adk/tests/test_harness_fs.py +144 -0
  607. adk/tests/test_harnesses.py +355 -0
  608. adk/tests/test_kimi_coordinator.py +391 -0
  609. adk/tests/test_mesh_cli.py +191 -0
  610. adk/tests/test_mesh_serve.py +239 -0
  611. adk/tests/test_planb_ledger.py +363 -0
  612. adk/tests/test_session_discovery.py +647 -0
  613. adk/tests/test_session_sync_pull.py +504 -0
  614. adk/tests/test_structured_ml_tools.py +178 -0
  615. adk/tests/test_sync_adk_engine.py +355 -0
  616. adk/tests/test_sync_device_identity.py +116 -0
  617. adk/tests/test_sync_drive_client.py +199 -0
  618. adk/tests/test_unsloth_gguf_download.py +361 -0
  619. adk/tests/test_unsloth_llamacpp_setup.py +339 -0
  620. adk/tool_guards.py +243 -0
  621. adk/tool_pack_loader.py +418 -0
  622. adk/tool_readiness.py +188 -0
  623. adk/toolpacks/acp/.toolpack.yaml +37 -0
  624. adk/toolpacks/acp/__init__.py +212 -0
  625. adk/toolpacks/acp/agents/awdk.yaml +23 -0
  626. adk/toolpacks/acp/agents/claude-agent-acp.yaml +20 -0
  627. adk/toolpacks/acp/agents/codex-acp.yaml +20 -0
  628. adk/toolpacks/acp/agents/gemini-cli.yaml +21 -0
  629. adk/toolpacks/acp/ui/index.html +77 -0
  630. adk/toolpacks/aitherbench/.toolpack.yaml +55 -0
  631. adk/toolpacks/aitherbench/bench.py +1128 -0
  632. adk/toolpacks/aitherzero/.toolpack.yaml +42 -0
  633. adk/toolpacks/aitherzero/__init__.py +52 -0
  634. adk/toolpacks/aitherzero/__main__.py +79 -0
  635. adk/toolpacks/aitherzero/tools.py +649 -0
  636. adk/toolpacks/arc-brainpack/.toolpack.yaml +60 -0
  637. adk/toolpacks/arc-brainpack/README.md +70 -0
  638. adk/toolpacks/arc-brainpack/__init__.py +64 -0
  639. adk/toolpacks/arc-brainpack/agent.yaml +72 -0
  640. adk/toolpacks/arc-brainpack/tools.py +622 -0
  641. adk/toolpacks/arc-brainpack/ui/index.html +146 -0
  642. adk/toolpacks/box-master/.toolpack.yaml +32 -0
  643. adk/toolpacks/box-master/__init__.py +56 -0
  644. adk/toolpacks/box-master/tools.py +394 -0
  645. adk/toolpacks/cloudflare/.toolpack.yaml +56 -0
  646. adk/toolpacks/cloudflare/__init__.py +58 -0
  647. adk/toolpacks/cloudflare/config.py +215 -0
  648. adk/toolpacks/cloudflare/tools.py +797 -0
  649. adk/toolpacks/deep_research/.toolpack.yaml +44 -0
  650. adk/toolpacks/deep_research/__init__.py +99 -0
  651. adk/toolpacks/deep_research/ui/index.html +157 -0
  652. adk/toolpacks/finetune/.toolpack.yaml +65 -0
  653. adk/toolpacks/github_runners/.toolpack.yaml +37 -0
  654. adk/toolpacks/github_runners/__init__.py +65 -0
  655. adk/toolpacks/github_runners/tools.py +272 -0
  656. adk/toolpacks/graphrag/.toolpack.yaml +35 -0
  657. adk/toolpacks/graphrag/__init__.py +46 -0
  658. adk/toolpacks/graphrag/__main__.py +69 -0
  659. adk/toolpacks/graphrag/recipes/coderank-embed.yaml +44 -0
  660. adk/toolpacks/graphrag/recipes/nomic-text-embed.yaml +48 -0
  661. adk/toolpacks/graphrag/recipes.py +49 -0
  662. adk/toolpacks/graphrag/tools.py +372 -0
  663. adk/toolpacks/image_bootstrap/.toolpack.yaml +43 -0
  664. adk/toolpacks/image_bootstrap/__init__.py +53 -0
  665. adk/toolpacks/image_bootstrap/__main__.py +158 -0
  666. adk/toolpacks/image_bootstrap/recipes/cloud-burst-vast.yaml +76 -0
  667. adk/toolpacks/image_bootstrap/recipes/cpu-sdxl-turbo.yaml +75 -0
  668. adk/toolpacks/image_bootstrap/recipes/cuda-bonsai-image.yaml +86 -0
  669. adk/toolpacks/image_bootstrap/recipes/cuda-comfyui-12gb.yaml +71 -0
  670. adk/toolpacks/image_bootstrap/recipes/cuda-comfyui-24gb.yaml +76 -0
  671. adk/toolpacks/image_bootstrap/recipes/cuda-comfyui-6gb.yaml +64 -0
  672. adk/toolpacks/image_bootstrap/recipes/cuda-sana-sprint.yaml +76 -0
  673. adk/toolpacks/image_bootstrap/recipes/metal-comfyui.yaml +68 -0
  674. adk/toolpacks/image_bootstrap/recipes.py +286 -0
  675. adk/toolpacks/image_bootstrap/tools.py +871 -0
  676. adk/toolpacks/llm_serving/.toolpack.yaml +36 -0
  677. adk/toolpacks/llm_serving/__init__.py +48 -0
  678. adk/toolpacks/llm_serving/__main__.py +87 -0
  679. adk/toolpacks/llm_serving/quant.py +163 -0
  680. adk/toolpacks/llm_serving/recipes/deepseek-r1-14b.yaml +46 -0
  681. adk/toolpacks/llm_serving/recipes/gemma4-12b.yaml +50 -0
  682. adk/toolpacks/llm_serving/recipes/nemotron-orchestrator-8b.yaml +55 -0
  683. adk/toolpacks/llm_serving/recipes/qwen-27b-reason.yaml +74 -0
  684. adk/toolpacks/llm_serving/recipes.py +89 -0
  685. adk/toolpacks/llm_serving/tools.py +430 -0
  686. adk/toolpacks/mesh_ops/.toolpack.yaml +35 -0
  687. adk/toolpacks/mesh_ops/__init__.py +54 -0
  688. adk/toolpacks/mesh_ops/tools.py +268 -0
  689. adk/toolpacks/node_bootstrap/.toolpack.yaml +46 -0
  690. adk/toolpacks/node_bootstrap/__init__.py +53 -0
  691. adk/toolpacks/node_bootstrap/__main__.py +247 -0
  692. adk/toolpacks/node_bootstrap/recipes/bonsai-selfhost.yaml +196 -0
  693. adk/toolpacks/node_bootstrap/recipes/cloud-api.yaml +72 -0
  694. adk/toolpacks/node_bootstrap/recipes/cpu-1bit-llamacpp.yaml +98 -0
  695. adk/toolpacks/node_bootstrap/recipes/cpu-ollama.yaml +66 -0
  696. adk/toolpacks/node_bootstrap/recipes/cuda-dual-stack-32gb.yaml +74 -0
  697. adk/toolpacks/node_bootstrap/recipes/cuda-vllm-24gb.yaml +71 -0
  698. adk/toolpacks/node_bootstrap/recipes/cuda-vllm-40gb.yaml +71 -0
  699. adk/toolpacks/node_bootstrap/recipes/cuda-vllm-8gb.yaml +66 -0
  700. adk/toolpacks/node_bootstrap/recipes/metal-ollama.yaml +71 -0
  701. adk/toolpacks/node_bootstrap/recipes/unified-memory-vllm.yaml +81 -0
  702. adk/toolpacks/node_bootstrap/recipes.py +292 -0
  703. adk/toolpacks/node_bootstrap/tools.py +908 -0
  704. adk/toolpacks/planb_ledger/.toolpack.yaml +54 -0
  705. adk/toolpacks/planb_ledger/__init__.py +48 -0
  706. adk/toolpacks/planb_ledger/bootstrap.py +283 -0
  707. adk/toolpacks/planb_ledger/bot.py +223 -0
  708. adk/toolpacks/planb_ledger/brain.py +172 -0
  709. adk/toolpacks/planb_ledger/build_zip.py +36 -0
  710. adk/toolpacks/planb_ledger/cli.py +108 -0
  711. adk/toolpacks/planb_ledger/dist_kit/README.md +55 -0
  712. adk/toolpacks/planb_ledger/dist_kit/install.ps1 +109 -0
  713. adk/toolpacks/planb_ledger/dist_kit/install.sh +108 -0
  714. adk/toolpacks/planb_ledger/dist_kit/requirements.txt +2 -0
  715. adk/toolpacks/planb_ledger/engine.py +327 -0
  716. adk/toolpacks/planb_ledger/ledger.py +65 -0
  717. adk/toolpacks/planb_ledger/sheet.py +16 -0
  718. adk/toolpacks/planb_ledger/sheet_render.py +129 -0
  719. adk/toolpacks/planb_ledger/sync_vendored.py +81 -0
  720. adk/toolpacks/planb_ledger/tools.py +180 -0
  721. adk/toolpacks/selfimprove/selfimprove.py +378 -0
  722. adk/toolpacks/split_inference/.toolpack.yaml +37 -0
  723. adk/toolpacks/split_inference/__init__.py +47 -0
  724. adk/toolpacks/split_inference/__main__.py +103 -0
  725. adk/toolpacks/split_inference/recipes/bonsai-27b-5090-dgx-rpc.yaml +102 -0
  726. adk/toolpacks/split_inference/recipes/kimi-k3-mesh-rpc.yaml +104 -0
  727. adk/toolpacks/split_inference/recipes/multi-node-rpc-generic.yaml +85 -0
  728. adk/toolpacks/split_inference/recipes/single-node-cuda.yaml +73 -0
  729. adk/toolpacks/split_inference/recipes.py +181 -0
  730. adk/toolpacks/split_inference/tools.py +496 -0
  731. adk/toolpacks/vault/.toolpack.yaml +38 -0
  732. adk/toolpacks/vault/__init__.py +167 -0
  733. adk/toolpacks/vault/scope_map.json +3 -0
  734. adk/toolpacks/vault/ui/index.html +254 -0
  735. adk/tools.py +405 -0
  736. adk/tools_meta.py +157 -0
  737. adk/trace.py +101 -0
  738. adk/typed_memory.py +635 -0
  739. adk/unified_contract.py +659 -0
  740. adk/unsloth_gguf_download.py +285 -0
  741. adk/unsloth_llamacpp_setup.py +307 -0
  742. adk/vault_lockbox.py +789 -0
  743. adk/voice.py +602 -0
  744. adk/voice_agent.py +182 -0
  745. adk/voice_http.py +143 -0
  746. adk/watch.py +266 -0
  747. adk/webui/index.html +1679 -0
  748. adk/webui/pack_sdk.js +62 -0
  749. adk/webui/packs/aeon/index.html +267 -0
  750. adk/webui/packs/llamacpp/index.html +420 -0
  751. adk/webui/packs/mesh-console/index.html +330 -0
  752. adk/workspace-agent.yaml +55 -0
  753. adk/workspace-frontend/index.html +282 -0
  754. adk/worldmodel.py +716 -0
  755. awdk-3.6.0.dist-info/METADATA +1113 -0
  756. awdk-3.6.0.dist-info/RECORD +759 -0
  757. awdk-3.6.0.dist-info/WHEEL +4 -0
  758. awdk-3.6.0.dist-info/entry_points.txt +8 -0
  759. 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.