audiagentic 0.2.1__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 (935) hide show
  1. audiagentic/__init__.py +11 -0
  2. audiagentic/commands/__init__.py +4 -0
  3. audiagentic/commands/bootstrap.py +199 -0
  4. audiagentic/commands/component.py +115 -0
  5. audiagentic/commands/gateway.py +204 -0
  6. audiagentic/commands/internal.py +36 -0
  7. audiagentic/commands/launch.py +183 -0
  8. audiagentic/commands/update.py +11 -0
  9. audiagentic/commands/workflow.py +62 -0
  10. audiagentic/components/__init__.py +1 -0
  11. audiagentic/components/agent_jobs/__init__.py +7 -0
  12. audiagentic/components/agent_jobs/approvals.py +345 -0
  13. audiagentic/components/agent_jobs/dead_letter.py +115 -0
  14. audiagentic/components/agent_jobs/event_observer.py +13 -0
  15. audiagentic/components/agent_jobs/event_triggers.py +224 -0
  16. audiagentic/components/agent_jobs/packet_runner.py +59 -0
  17. audiagentic/components/agent_jobs/prompt_aliases.py +53 -0
  18. audiagentic/components/agent_jobs/prompt_context.py +447 -0
  19. audiagentic/components/agent_jobs/prompt_launch.py +311 -0
  20. audiagentic/components/agent_jobs/prompt_parser.py +337 -0
  21. audiagentic/components/agent_jobs/prompt_syntax.py +41 -0
  22. audiagentic/components/agent_jobs/prompt_targets.py +62 -0
  23. audiagentic/components/agent_jobs/prompt_templates.py +165 -0
  24. audiagentic/components/agent_jobs/session_input_store.py +138 -0
  25. audiagentic/components/agent_jobs/workflows.yaml +23 -0
  26. audiagentic/components/agents/__init__.py +2 -0
  27. audiagentic/components/agents/agents_paths.py +217 -0
  28. audiagentic/components/agents/capabilities/__init__.py +5 -0
  29. audiagentic/components/agents/capabilities/contracts.py +31 -0
  30. audiagentic/components/agents/capabilities/resolver.py +61 -0
  31. audiagentic/components/agents/capabilities/source_filter.py +9 -0
  32. audiagentic/components/agents/capabilities/vocabulary.py +20 -0
  33. audiagentic/components/agents/configuration/__init__.py +15 -0
  34. audiagentic/components/agents/configuration/configuration_api.py +48 -0
  35. audiagentic/components/agents/configuration/contracts.py +112 -0
  36. audiagentic/components/agents/configuration/global_catalog.py +134 -0
  37. audiagentic/components/agents/configuration/management.py +332 -0
  38. audiagentic/components/agents/configuration/migration.py +68 -0
  39. audiagentic/components/agents/configuration/repository.py +165 -0
  40. audiagentic/components/agents/configuration/resolution.py +155 -0
  41. audiagentic/components/agents/configuration/validation.py +50 -0
  42. audiagentic/components/agents/context/__init__.py +1 -0
  43. audiagentic/components/agents/context/contracts.py +26 -0
  44. audiagentic/components/agents/context/service.py +33 -0
  45. audiagentic/components/agents/context/store.py +62 -0
  46. audiagentic/components/agents/contracts/__init__.py +1 -0
  47. audiagentic/components/agents/contracts/_worker_protocol_validation.py +231 -0
  48. audiagentic/components/agents/contracts/execution_context.py +644 -0
  49. audiagentic/components/agents/contracts/worker_protocol.py +425 -0
  50. audiagentic/components/agents/export/__init__.py +1 -0
  51. audiagentic/components/agents/export/standard_agents/__init__.py +6 -0
  52. audiagentic/components/agents/export/standard_agents/projector.py +34 -0
  53. audiagentic/components/agents/export/standard_agents/typescript.py +9 -0
  54. audiagentic/components/agents/gateway/__init__.py +0 -0
  55. audiagentic/components/agents/gateway/activity.py +123 -0
  56. audiagentic/components/agents/gateway/admission/__init__.py +1 -0
  57. audiagentic/components/agents/gateway/admission/context.py +38 -0
  58. audiagentic/components/agents/gateway/admission/instructions.py +77 -0
  59. audiagentic/components/agents/gateway/api.py +1762 -0
  60. audiagentic/components/agents/gateway/application.py +268 -0
  61. audiagentic/components/agents/gateway/client.py +444 -0
  62. audiagentic/components/agents/gateway/diagnostics.py +472 -0
  63. audiagentic/components/agents/gateway/event_topics.py +35 -0
  64. audiagentic/components/agents/gateway/events.py +175 -0
  65. audiagentic/components/agents/gateway/ingress.py +159 -0
  66. audiagentic/components/agents/gateway/instances.py +53 -0
  67. audiagentic/components/agents/gateway/management_api.py +290 -0
  68. audiagentic/components/agents/gateway/mapping.py +34 -0
  69. audiagentic/components/agents/gateway/operations/__init__.py +35 -0
  70. audiagentic/components/agents/gateway/operations/application.py +77 -0
  71. audiagentic/components/agents/gateway/operations/archive.py +189 -0
  72. audiagentic/components/agents/gateway/operations/contracts.py +72 -0
  73. audiagentic/components/agents/gateway/operations/evidence.py +62 -0
  74. audiagentic/components/agents/gateway/operations/executor.py +69 -0
  75. audiagentic/components/agents/gateway/operations/notifier.py +24 -0
  76. audiagentic/components/agents/gateway/operations/operation_store.py +348 -0
  77. audiagentic/components/agents/gateway/operations/pump.py +39 -0
  78. audiagentic/components/agents/gateway/operations/reconcile.py +106 -0
  79. audiagentic/components/agents/gateway/operations/retention_policy.py +71 -0
  80. audiagentic/components/agents/gateway/output.py +737 -0
  81. audiagentic/components/agents/gateway/profiles.py +563 -0
  82. audiagentic/components/agents/gateway/queue/__init__.py +19 -0
  83. audiagentic/components/agents/gateway/queue/backend.py +223 -0
  84. audiagentic/components/agents/gateway/queue/backend_factory.py +30 -0
  85. audiagentic/components/agents/gateway/queue/capacity.py +245 -0
  86. audiagentic/components/agents/gateway/queue/capacity_policy.py +88 -0
  87. audiagentic/components/agents/gateway/queue/contention.py +231 -0
  88. audiagentic/components/agents/gateway/queue/dispatch.py +698 -0
  89. audiagentic/components/agents/gateway/queue/outbox.py +89 -0
  90. audiagentic/components/agents/gateway/queue/pending.py +146 -0
  91. audiagentic/components/agents/gateway/queue/progress.py +343 -0
  92. audiagentic/components/agents/gateway/queue/queue.py +1340 -0
  93. audiagentic/components/agents/gateway/queue/recovery.py +233 -0
  94. audiagentic/components/agents/gateway/queue/watchdog_policy.py +75 -0
  95. audiagentic/components/agents/gateway/queue/watchdog_registry.py +55 -0
  96. audiagentic/components/agents/gateway/queue/work_index.py +480 -0
  97. audiagentic/components/agents/gateway/queue/worker.py +348 -0
  98. audiagentic/components/agents/gateway/queue/worker_host.py +309 -0
  99. audiagentic/components/agents/gateway/remote_client.py +563 -0
  100. audiagentic/components/agents/gateway/service/__init__.py +0 -0
  101. audiagentic/components/agents/gateway/service/application.py +725 -0
  102. audiagentic/components/agents/gateway/service/bootstrap.py +121 -0
  103. audiagentic/components/agents/gateway/service/client_icons/01_robot.png +0 -0
  104. audiagentic/components/agents/gateway/service/client_icons/02_sparkle.png +0 -0
  105. audiagentic/components/agents/gateway/service/client_icons/03_compass.png +0 -0
  106. audiagentic/components/agents/gateway/service/client_icons/04_paper_plane.png +0 -0
  107. audiagentic/components/agents/gateway/service/client_icons/05_cube.png +0 -0
  108. audiagentic/components/agents/gateway/service/client_icons/06_shield.png +0 -0
  109. audiagentic/components/agents/gateway/service/client_icons/07_chat.png +0 -0
  110. audiagentic/components/agents/gateway/service/client_icons/08_user.png +0 -0
  111. audiagentic/components/agents/gateway/service/client_icons/09_wave.png +0 -0
  112. audiagentic/components/agents/gateway/service/client_icons/10_network.png +0 -0
  113. audiagentic/components/agents/gateway/service/client_icons/11_lightning.png +0 -0
  114. audiagentic/components/agents/gateway/service/client_icons/12_antenna.png +0 -0
  115. audiagentic/components/agents/gateway/service/client_icons/13_wrench.png +0 -0
  116. audiagentic/components/agents/gateway/service/client_icons/14_eye.png +0 -0
  117. audiagentic/components/agents/gateway/service/client_icons/15_puzzle.png +0 -0
  118. audiagentic/components/agents/gateway/service/client_icons/16_key.png +0 -0
  119. audiagentic/components/agents/gateway/service/client_icons/17_planet.png +0 -0
  120. audiagentic/components/agents/gateway/service/client_icons/18_terminal.png +0 -0
  121. audiagentic/components/agents/gateway/service/client_icons/19_beacon.png +0 -0
  122. audiagentic/components/agents/gateway/service/client_icons/20_chip.png +0 -0
  123. audiagentic/components/agents/gateway/service/client_icons/21_satellite.png +0 -0
  124. audiagentic/components/agents/gateway/service/client_icons/22_pin.png +0 -0
  125. audiagentic/components/agents/gateway/service/client_icons/23_crown.png +0 -0
  126. audiagentic/components/agents/gateway/service/client_icons/24_diamond.png +0 -0
  127. audiagentic/components/agents/gateway/service/client_icons.py +29 -0
  128. audiagentic/components/agents/gateway/service/contract.py +21 -0
  129. audiagentic/components/agents/gateway/service/dashboard.py +679 -0
  130. audiagentic/components/agents/gateway/service/dashboard_images.py +81 -0
  131. audiagentic/components/agents/gateway/service/host.py +385 -0
  132. audiagentic/components/agents/gateway/service/http_transport.py +301 -0
  133. audiagentic/components/agents/gateway/service/known_projects.py +368 -0
  134. audiagentic/components/agents/gateway/service/lifecycle.py +376 -0
  135. audiagentic/components/agents/gateway/service/process.py +56 -0
  136. audiagentic/components/agents/gateway/session/__init__.py +3 -0
  137. audiagentic/components/agents/gateway/session/bindings.py +682 -0
  138. audiagentic/components/agents/gateway/session/client_defaults.py +292 -0
  139. audiagentic/components/agents/gateway/session/console_trace.py +220 -0
  140. audiagentic/components/agents/gateway/session/controls.py +69 -0
  141. audiagentic/components/agents/gateway/session/conversation_owner.py +32 -0
  142. audiagentic/components/agents/gateway/session/dispatch.py +1167 -0
  143. audiagentic/components/agents/gateway/session/idle_grace.py +14 -0
  144. audiagentic/components/agents/gateway/session/orphan.py +68 -0
  145. audiagentic/components/agents/gateway/session/relocation.py +63 -0
  146. audiagentic/components/agents/gateway/session/resume.py +250 -0
  147. audiagentic/components/agents/gateway/session/retention.py +66 -0
  148. audiagentic/components/agents/gateway/session/root_registry.py +51 -0
  149. audiagentic/components/agents/gateway/session/sessions.py +3036 -0
  150. audiagentic/components/agents/gateway/session/sessions_store.py +1002 -0
  151. audiagentic/components/agents/gateway/session/turn_events.py +292 -0
  152. audiagentic/components/agents/gateway/store/__init__.py +117 -0
  153. audiagentic/components/agents/gateway/store/_admission.py +249 -0
  154. audiagentic/components/agents/gateway/store/_records.py +788 -0
  155. audiagentic/components/agents/gateway/store/_shared.py +177 -0
  156. audiagentic/components/agents/gateway/store/_transitions.py +1622 -0
  157. audiagentic/components/agents/mcp/__init__.py +0 -0
  158. audiagentic/components/agents/mcp/admin_mcp.py +92 -0
  159. audiagentic/components/agents/mcp/config_mcp.py +187 -0
  160. audiagentic/components/agents/mcp/gateway_mcp.py +409 -0
  161. audiagentic/components/agents/mcp/runtime_mcp.py +156 -0
  162. audiagentic/components/agents/models/__init__.py +0 -0
  163. audiagentic/components/agents/models/agent_definition.py +243 -0
  164. audiagentic/components/agents/models/execution_profile.py +210 -0
  165. audiagentic/components/agents/models/prompt_definition.py +100 -0
  166. audiagentic/components/agents/models/role.py +178 -0
  167. audiagentic/components/agents/protocols/__init__.py +1 -0
  168. audiagentic/components/agents/protocols/a2a/__init__.py +5 -0
  169. audiagentic/components/agents/protocols/a2a/agent_card.py +14 -0
  170. audiagentic/components/agents/protocols/a2a/mapping.py +19 -0
  171. audiagentic/components/agents/protocols/a2a/server.py +79 -0
  172. audiagentic/components/agents/protocols/acp/__init__.py +5 -0
  173. audiagentic/components/agents/protocols/acp/agent.py +127 -0
  174. audiagentic/components/agents/protocols/acp/mapping.py +40 -0
  175. audiagentic/components/agents/protocols/acp/server.py +8 -0
  176. audiagentic/components/agents/status/__init__.py +0 -0
  177. audiagentic/components/agents/status/diagnostics_projection.py +129 -0
  178. audiagentic/components/agents/status/harness_status_evidence.py +326 -0
  179. audiagentic/components/agents/status/harness_status_observer_ingress.py +343 -0
  180. audiagentic/components/agents/status/session_lifecycle_projection.py +769 -0
  181. audiagentic/components/agents/status/status_projection.py +158 -0
  182. audiagentic/components/agents/status/task_status_v4.py +217 -0
  183. audiagentic/components/agents/status/terminal_quality.py +517 -0
  184. audiagentic/components/agents/work/__init__.py +24 -0
  185. audiagentic/components/agents/work/contracts.py +50 -0
  186. audiagentic/components/agents/work/delegation.py +41 -0
  187. audiagentic/components/agents/work/event_adapter.py +69 -0
  188. audiagentic/components/agents/work/event_failures.py +51 -0
  189. audiagentic/components/agents/work/event_ingress.py +124 -0
  190. audiagentic/components/agents/work/event_observer.py +147 -0
  191. audiagentic/components/agents/work/ingress.py +39 -0
  192. audiagentic/components/agents/work/inputs.py +41 -0
  193. audiagentic/components/agents/work/interactions.py +51 -0
  194. audiagentic/components/agents/work/reconcile.py +82 -0
  195. audiagentic/components/agents/work/reviews.py +35 -0
  196. audiagentic/components/agents/work/service.py +136 -0
  197. audiagentic/components/agents/work/store.py +114 -0
  198. audiagentic/components/agents/work/triggers.py +46 -0
  199. audiagentic/components/agents/work/work_api.py +170 -0
  200. audiagentic/components/agents/workflows.yaml +90 -0
  201. audiagentic/components/coding_lsp/__init__.py +1 -0
  202. audiagentic/components/coding_lsp/coding_lsp_bootstrap.py +267 -0
  203. audiagentic/components/coding_lsp/coding_lsp_config.py +221 -0
  204. audiagentic/components/coding_lsp/file_matching.py +24 -0
  205. audiagentic/components/coding_lsp/git_hooks_sync.py +267 -0
  206. audiagentic/components/coding_lsp/language_registry.py +261 -0
  207. audiagentic/components/coding_lsp/language_servers_sync.py +394 -0
  208. audiagentic/components/coding_lsp/lint_projection.py +292 -0
  209. audiagentic/components/coding_lsp/lsp_api.py +212 -0
  210. audiagentic/components/coding_lsp/lsp_bridge.py +391 -0
  211. audiagentic/components/coding_lsp/lsp_config_api.py +526 -0
  212. audiagentic/components/coding_lsp/lsp_constants.py +162 -0
  213. audiagentic/components/coding_lsp/lsp_diagnostics.py +343 -0
  214. audiagentic/components/coding_lsp/lsp_edit_ops.py +155 -0
  215. audiagentic/components/coding_lsp/lsp_lifecycle.py +379 -0
  216. audiagentic/components/coding_lsp/lsp_manage_mcp.py +129 -0
  217. audiagentic/components/coding_lsp/lsp_mcp.py +146 -0
  218. audiagentic/components/coding_lsp/lsp_protocol_ops.py +337 -0
  219. audiagentic/components/coding_lsp/lsp_session_manager.py +201 -0
  220. audiagentic/components/coding_lsp/lsp_session_resolution.py +369 -0
  221. audiagentic/components/coding_lsp/lsp_status_ops.py +120 -0
  222. audiagentic/components/coding_lsp/runtime_resolver.py +87 -0
  223. audiagentic/components/coding_lsp/uri_utils.py +149 -0
  224. audiagentic/components/ledger/__init__.py +2 -0
  225. audiagentic/components/ledger/archive.py +93 -0
  226. audiagentic/components/ledger/audit.py +37 -0
  227. audiagentic/components/ledger/current_summary.py +36 -0
  228. audiagentic/components/ledger/event_outbox.py +133 -0
  229. audiagentic/components/ledger/events.py +63 -0
  230. audiagentic/components/ledger/fragments.py +121 -0
  231. audiagentic/components/ledger/ledger_api.py +256 -0
  232. audiagentic/components/ledger/ledger_bootstrap.py +61 -0
  233. audiagentic/components/ledger/ledger_events.py +36 -0
  234. audiagentic/components/ledger/ledger_manage_mcp.py +27 -0
  235. audiagentic/components/ledger/ledger_mcp.py +77 -0
  236. audiagentic/components/ledger/paths.py +112 -0
  237. audiagentic/components/ledger/sync.py +208 -0
  238. audiagentic/components/memory/__init__.py +1 -0
  239. audiagentic/components/memory/hindsight/__init__.py +7 -0
  240. audiagentic/components/memory/hindsight/export.py +107 -0
  241. audiagentic/components/memory/hindsight/mcp_recipe.py +52 -0
  242. audiagentic/components/memory/hindsight/provision.py +502 -0
  243. audiagentic/components/memory/memory_api.py +226 -0
  244. audiagentic/components/memory/memory_mcp.py +88 -0
  245. audiagentic/components/memory/memory_observer.py +67 -0
  246. audiagentic/components/planning/__init__.py +0 -0
  247. audiagentic/components/planning/contracts.py +128 -0
  248. audiagentic/components/planning/durability.py +258 -0
  249. audiagentic/components/planning/events.py +298 -0
  250. audiagentic/components/planning/identity.py +42 -0
  251. audiagentic/components/planning/integrity.py +270 -0
  252. audiagentic/components/planning/item_store.py +896 -0
  253. audiagentic/components/planning/items.py +678 -0
  254. audiagentic/components/planning/planning_api.py +294 -0
  255. audiagentic/components/planning/planning_manage_mcp.py +94 -0
  256. audiagentic/components/planning/planning_mcp.py +193 -0
  257. audiagentic/components/planning/planning_paths.py +79 -0
  258. audiagentic/components/planning/reviews.py +554 -0
  259. audiagentic/components/planning/workflows.yaml +43 -0
  260. audiagentic/components/project/__init__.py +1 -0
  261. audiagentic/components/project/project_api.py +202 -0
  262. audiagentic/components/project/project_components.py +167 -0
  263. audiagentic/components/project/project_files.py +71 -0
  264. audiagentic/components/project/project_mcp.py +149 -0
  265. audiagentic/components/project/project_surfaces.py +178 -0
  266. audiagentic/components/providers/__init__.py +13 -0
  267. audiagentic/components/providers/adapters/README.md +21 -0
  268. audiagentic/components/providers/adapters/__init__.py +124 -0
  269. audiagentic/components/providers/adapters/_stubs.py +55 -0
  270. audiagentic/components/providers/adapters/activity_rig/__init__.py +1 -0
  271. audiagentic/components/providers/adapters/activity_rig/adapter.py +20 -0
  272. audiagentic/components/providers/adapters/activity_rig.py +20 -0
  273. audiagentic/components/providers/adapters/aider/README.md +5 -0
  274. audiagentic/components/providers/adapters/aider/__init__.py +1 -0
  275. audiagentic/components/providers/adapters/aider/surface.py +35 -0
  276. audiagentic/components/providers/adapters/antigravity/README.md +3 -0
  277. audiagentic/components/providers/adapters/antigravity/__init__.py +1 -0
  278. audiagentic/components/providers/adapters/antigravity/config.py +18 -0
  279. audiagentic/components/providers/adapters/antigravity/instruction.md +11 -0
  280. audiagentic/components/providers/adapters/base_runner.py +520 -0
  281. audiagentic/components/providers/adapters/claude/README.md +5 -0
  282. audiagentic/components/providers/adapters/claude/__init__.py +2 -0
  283. audiagentic/components/providers/adapters/claude/adapter.py +255 -0
  284. audiagentic/components/providers/adapters/claude/catalog.py +38 -0
  285. audiagentic/components/providers/adapters/claude/config.py +17 -0
  286. audiagentic/components/providers/adapters/claude/hooks.py +186 -0
  287. audiagentic/components/providers/adapters/claude/instruction.md +11 -0
  288. audiagentic/components/providers/adapters/claude/restrictions.py +37 -0
  289. audiagentic/components/providers/adapters/claude/restrictions_loader.py +74 -0
  290. audiagentic/components/providers/adapters/claude/surface.py +66 -0
  291. audiagentic/components/providers/adapters/cli.py +25 -0
  292. audiagentic/components/providers/adapters/cline/README.md +5 -0
  293. audiagentic/components/providers/adapters/cline/__init__.py +2 -0
  294. audiagentic/components/providers/adapters/cline/adapter.py +194 -0
  295. audiagentic/components/providers/adapters/cline/surface.py +61 -0
  296. audiagentic/components/providers/adapters/codex/README.md +14 -0
  297. audiagentic/components/providers/adapters/codex/__init__.py +2 -0
  298. audiagentic/components/providers/adapters/codex/acp.py +99 -0
  299. audiagentic/components/providers/adapters/codex/acp_install.py +91 -0
  300. audiagentic/components/providers/adapters/codex/adapter.py +252 -0
  301. audiagentic/components/providers/adapters/codex/hooks_format.py +251 -0
  302. audiagentic/components/providers/adapters/codex/instruction.md +11 -0
  303. audiagentic/components/providers/adapters/codex/language_servers.py +142 -0
  304. audiagentic/components/providers/adapters/codex/mcp_format.py +161 -0
  305. audiagentic/components/providers/adapters/codex/model_selection.py +42 -0
  306. audiagentic/components/providers/adapters/codex/surface.py +50 -0
  307. audiagentic/components/providers/adapters/continue_/README.md +5 -0
  308. audiagentic/components/providers/adapters/continue_/__init__.py +1 -0
  309. audiagentic/components/providers/adapters/continue_/adapter.py +7 -0
  310. audiagentic/components/providers/adapters/continue_/hooks.py +26 -0
  311. audiagentic/components/providers/adapters/continue_/mcp_format.py +107 -0
  312. audiagentic/components/providers/adapters/copilot/README.md +5 -0
  313. audiagentic/components/providers/adapters/copilot/__init__.py +0 -0
  314. audiagentic/components/providers/adapters/copilot/hooks.py +48 -0
  315. audiagentic/components/providers/adapters/copilot/instruction.md +11 -0
  316. audiagentic/components/providers/adapters/gemini/README.md +5 -0
  317. audiagentic/components/providers/adapters/gemini/__init__.py +2 -0
  318. audiagentic/components/providers/adapters/gemini/adapter.py +142 -0
  319. audiagentic/components/providers/adapters/gemini/instruction.md +11 -0
  320. audiagentic/components/providers/adapters/goose/README.md +5 -0
  321. audiagentic/components/providers/adapters/goose/__init__.py +1 -0
  322. audiagentic/components/providers/adapters/goose/mcp_format.py +148 -0
  323. audiagentic/components/providers/adapters/gpt_auto/README.md +63 -0
  324. audiagentic/components/providers/adapters/gpt_auto/__init__.py +6 -0
  325. audiagentic/components/providers/adapters/gpt_auto/browser_process.py +124 -0
  326. audiagentic/components/providers/adapters/gpt_auto/cdp/__init__.py +14 -0
  327. audiagentic/components/providers/adapters/gpt_auto/cdp/bridge.py +518 -0
  328. audiagentic/components/providers/adapters/gpt_auto/cdp/cdp_browser.py +169 -0
  329. audiagentic/components/providers/adapters/gpt_auto/cdp/client.py +339 -0
  330. audiagentic/components/providers/adapters/gpt_auto/chat.py +2033 -0
  331. audiagentic/components/providers/adapters/gpt_auto/config.py +804 -0
  332. audiagentic/components/providers/adapters/gpt_auto/conversation_focus.py +176 -0
  333. audiagentic/components/providers/adapters/gpt_auto/gpt_auto_cdp.py +760 -0
  334. audiagentic/components/providers/adapters/gpt_auto/observation_engine.py +233 -0
  335. audiagentic/components/providers/adapters/gpt_auto/prompt_fingerprint.py +132 -0
  336. audiagentic/components/providers/adapters/gpt_auto/runtime.py +608 -0
  337. audiagentic/components/providers/adapters/gpt_auto/runtime_registry.py +72 -0
  338. audiagentic/components/providers/adapters/gpt_auto/session_transport.py +259 -0
  339. audiagentic/components/providers/adapters/gpt_auto/snapshot.py +351 -0
  340. audiagentic/components/providers/adapters/gpt_auto/turn.py +2341 -0
  341. audiagentic/components/providers/adapters/gpt_auto/urls.py +89 -0
  342. audiagentic/components/providers/adapters/gpt_auto/window_anchor.py +63 -0
  343. audiagentic/components/providers/adapters/gpt_auto_t1/__init__.py +14 -0
  344. audiagentic/components/providers/adapters/gpt_auto_t1/session_transport.py +11 -0
  345. audiagentic/components/providers/adapters/gpt_auto_t2/__init__.py +14 -0
  346. audiagentic/components/providers/adapters/gpt_auto_t2/session_transport.py +11 -0
  347. audiagentic/components/providers/adapters/local_openai/README.md +5 -0
  348. audiagentic/components/providers/adapters/local_openai/__init__.py +2 -0
  349. audiagentic/components/providers/adapters/local_openai/adapter.py +376 -0
  350. audiagentic/components/providers/adapters/local_openai/catalog.py +128 -0
  351. audiagentic/components/providers/adapters/local_openai/surface.py +53 -0
  352. audiagentic/components/providers/adapters/mcp_json.py +10 -0
  353. audiagentic/components/providers/adapters/opencode/README.md +21 -0
  354. audiagentic/components/providers/adapters/opencode/__init__.py +2 -0
  355. audiagentic/components/providers/adapters/opencode/acp.py +91 -0
  356. audiagentic/components/providers/adapters/opencode/adapter.py +197 -0
  357. audiagentic/components/providers/adapters/opencode/catalog.py +61 -0
  358. audiagentic/components/providers/adapters/opencode/execution_environment.py +71 -0
  359. audiagentic/components/providers/adapters/opencode/install.py +78 -0
  360. audiagentic/components/providers/adapters/opencode/language_servers.py +112 -0
  361. audiagentic/components/providers/adapters/opencode/mcp_format.py +85 -0
  362. audiagentic/components/providers/adapters/opencode/mcp_surface.py +85 -0
  363. audiagentic/components/providers/adapters/opencode/model_config.py +126 -0
  364. audiagentic/components/providers/adapters/opencode/model_entry.py +38 -0
  365. audiagentic/components/providers/adapters/opencode/plugin_array.py +77 -0
  366. audiagentic/components/providers/adapters/opencode/surface.py +34 -0
  367. audiagentic/components/providers/adapters/opencode/templates/AGENTS.md +13 -0
  368. audiagentic/components/providers/adapters/openhands/README.md +14 -0
  369. audiagentic/components/providers/adapters/openhands/__init__.py +0 -0
  370. audiagentic/components/providers/adapters/openhands/hooks.py +7 -0
  371. audiagentic/components/providers/adapters/openhands/toml_format.py +104 -0
  372. audiagentic/components/providers/adapters/pi/README.md +16 -0
  373. audiagentic/components/providers/adapters/pi/__init__.py +5 -0
  374. audiagentic/components/providers/adapters/pi/acp.py +246 -0
  375. audiagentic/components/providers/adapters/pi/adapter.py +37 -0
  376. audiagentic/components/providers/adapters/pi/hooks.py +152 -0
  377. audiagentic/components/providers/adapters/pi/install.py +168 -0
  378. audiagentic/components/providers/adapters/pi/interactive.py +121 -0
  379. audiagentic/components/providers/adapters/pi/mcp_exclusive_patch.py +219 -0
  380. audiagentic/components/providers/adapters/pi/mcp_surface.py +122 -0
  381. audiagentic/components/providers/adapters/pi/model_config.py +97 -0
  382. audiagentic/components/providers/adapters/pi/model_entry.py +39 -0
  383. audiagentic/components/providers/adapters/pi/print_activity.py +92 -0
  384. audiagentic/components/providers/adapters/pi/rpc_tap.py +130 -0
  385. audiagentic/components/providers/adapters/pi/rpc_tap_evidence.py +159 -0
  386. audiagentic/components/providers/adapters/pi/rpc_tap_receiver.py +81 -0
  387. audiagentic/components/providers/adapters/pi/rpc_tap_shim.py +256 -0
  388. audiagentic/components/providers/adapters/pi/rpc_tap_transport.py +72 -0
  389. audiagentic/components/providers/adapters/pi/surface.py +36 -0
  390. audiagentic/components/providers/adapters/pi/system.py +84 -0
  391. audiagentic/components/providers/adapters/pi/templates/agent/APPEND_SYSTEM.md +9 -0
  392. audiagentic/components/providers/adapters/pi/templates/agent/SYSTEM.md +38 -0
  393. audiagentic/components/providers/adapters/plandex/README.md +5 -0
  394. audiagentic/components/providers/adapters/plandex/__init__.py +0 -0
  395. audiagentic/components/providers/adapters/probe.py +74 -0
  396. audiagentic/components/providers/adapters/qwen/README.md +14 -0
  397. audiagentic/components/providers/adapters/qwen/__init__.py +1 -0
  398. audiagentic/components/providers/adapters/qwen/config.py +17 -0
  399. audiagentic/components/providers/adapters/qwen/hooks.py +48 -0
  400. audiagentic/components/providers/adapters/qwen/language_servers.py +70 -0
  401. audiagentic/components/providers/adapters/recipe_launch.py +147 -0
  402. audiagentic/components/providers/adapters/roo/README.md +5 -0
  403. audiagentic/components/providers/adapters/roo/__init__.py +1 -0
  404. audiagentic/components/providers/adapters/roo/hooks.py +36 -0
  405. audiagentic/components/providers/adapters/roo/surface.py +37 -0
  406. audiagentic/components/providers/contracts/__init__.py +43 -0
  407. audiagentic/components/providers/contracts/automation_vocabulary.py +25 -0
  408. audiagentic/components/providers/contracts/cli_lifecycle.py +78 -0
  409. audiagentic/components/providers/contracts/conversation_focus.py +58 -0
  410. audiagentic/components/providers/contracts/generated_surface.py +83 -0
  411. audiagentic/components/providers/contracts/harness_status_observer.py +175 -0
  412. audiagentic/components/providers/contracts/language_server_projection.py +91 -0
  413. audiagentic/components/providers/contracts/lifecycle_modes.py +52 -0
  414. audiagentic/components/providers/contracts/managed_hooks.py +102 -0
  415. audiagentic/components/providers/contracts/managed_mcp.py +109 -0
  416. audiagentic/components/providers/contracts/managed_reconcile_schema.py +147 -0
  417. audiagentic/components/providers/contracts/mcp_launch_surface.py +101 -0
  418. audiagentic/components/providers/contracts/model-source-catalog.schema.json +45 -0
  419. audiagentic/components/providers/contracts/model-sources.schema.json +134 -0
  420. audiagentic/components/providers/contracts/model_projection.py +129 -0
  421. audiagentic/components/providers/contracts/plugin_entry.py +76 -0
  422. audiagentic/components/providers/contracts/provider-cli-lifecycle-payload.schema.json +10 -0
  423. audiagentic/components/providers/contracts/provider-cli-lifecycle-result.schema.json +20 -0
  424. audiagentic/components/providers/contracts/provider-completion.schema.json +153 -0
  425. audiagentic/components/providers/contracts/provider-config.schema.json +252 -0
  426. audiagentic/components/providers/contracts/provider-descriptor.schema.json +102 -0
  427. audiagentic/components/providers/contracts/provider-generated-surface-payload.schema.json +17 -0
  428. audiagentic/components/providers/contracts/provider-generated-surface-result.schema.json +20 -0
  429. audiagentic/components/providers/contracts/provider-health.schema.json +45 -0
  430. audiagentic/components/providers/contracts/provider-language-server-projection-payload.schema.json +30 -0
  431. audiagentic/components/providers/contracts/provider-language-server-projection-result.schema.json +16 -0
  432. audiagentic/components/providers/contracts/provider-lsp-mcp-projection-payload.schema.json +1 -0
  433. audiagentic/components/providers/contracts/provider-lsp-mcp-projection-result.schema.json +1 -0
  434. audiagentic/components/providers/contracts/provider-managed-hooks-payload.schema.json +45 -0
  435. audiagentic/components/providers/contracts/provider-managed-hooks-result.schema.json +60 -0
  436. audiagentic/components/providers/contracts/provider-managed-mcp-payload.schema.json +91 -0
  437. audiagentic/components/providers/contracts/provider-managed-mcp-result.schema.json +64 -0
  438. audiagentic/components/providers/contracts/provider-model-catalog.schema.json +71 -0
  439. audiagentic/components/providers/contracts/provider-model-projection-payload.schema.json +33 -0
  440. audiagentic/components/providers/contracts/provider-model-projection-result.schema.json +35 -0
  441. audiagentic/components/providers/contracts/provider-plugin-entry-payload.schema.json +16 -0
  442. audiagentic/components/providers/contracts/provider-plugin-entry-result.schema.json +17 -0
  443. audiagentic/components/providers/contracts/provider-recipe.schema.json +62 -0
  444. audiagentic/components/providers/contracts/provider-self-provided-lsp-payload.schema.json +1 -0
  445. audiagentic/components/providers/contracts/provider-self-provided-lsp-result.schema.json +1 -0
  446. audiagentic/components/providers/contracts/provider-session-input.schema.json +71 -0
  447. audiagentic/components/providers/contracts/provider-session-manifest.schema.json +57 -0
  448. audiagentic/components/providers/contracts/provider-stream-event.schema.json +45 -0
  449. audiagentic/components/providers/contracts/provider-stream-manifest.schema.json +33 -0
  450. audiagentic/components/providers/contracts/provider-telemetry.schema.json +1 -0
  451. audiagentic/components/providers/contracts/provider_execution.py +200 -0
  452. audiagentic/components/providers/contracts/self_provided_lsp.py +59 -0
  453. audiagentic/components/providers/contracts/session_binding.py +73 -0
  454. audiagentic/components/providers/contracts/session_status.py +49 -0
  455. audiagentic/components/providers/contracts/session_surface.py +61 -0
  456. audiagentic/components/providers/descriptors/__init__.py +33 -0
  457. audiagentic/components/providers/descriptors/automation_capabilities.py +138 -0
  458. audiagentic/components/providers/descriptors/base.py +484 -0
  459. audiagentic/components/providers/descriptors/capability_catalogue.py +322 -0
  460. audiagentic/components/providers/descriptors/capability_facts.py +232 -0
  461. audiagentic/components/providers/descriptors/feature_mapping.py +82 -0
  462. audiagentic/components/providers/descriptors/loader.py +935 -0
  463. audiagentic/components/providers/descriptors/registry.py +170 -0
  464. audiagentic/components/providers/descriptors/session_surface_declarations.py +215 -0
  465. audiagentic/components/providers/descriptors/spec.py +208 -0
  466. audiagentic/components/providers/descriptors/taxonomy_doc_generator.py +144 -0
  467. audiagentic/components/providers/prompt_tags.py +47 -0
  468. audiagentic/components/providers/protocols/__init__.py +0 -0
  469. audiagentic/components/providers/protocols/streaming/__init__.py +51 -0
  470. audiagentic/components/providers/protocols/streaming/base_extractor.py +61 -0
  471. audiagentic/components/providers/protocols/streaming/completion.py +302 -0
  472. audiagentic/components/providers/protocols/streaming/provider_streaming.py +338 -0
  473. audiagentic/components/providers/protocols/streaming/sinks.py +263 -0
  474. audiagentic/components/providers/providers_api.py +2110 -0
  475. audiagentic/components/providers/providers_mcp.py +243 -0
  476. audiagentic/components/providers/services/__init__.py +1 -0
  477. audiagentic/components/providers/services/capabilities/__init__.py +1 -0
  478. audiagentic/components/providers/services/capabilities/automation_registry.py +136 -0
  479. audiagentic/components/providers/services/capabilities/cli_lifecycle_family.py +11 -0
  480. audiagentic/components/providers/services/capabilities/cli_lifecycle_handler.py +228 -0
  481. audiagentic/components/providers/services/capabilities/declarative_recipe_handler.py +198 -0
  482. audiagentic/components/providers/services/capabilities/generated_surface_family.py +110 -0
  483. audiagentic/components/providers/services/capabilities/language_server_family.py +98 -0
  484. audiagentic/components/providers/services/capabilities/managed_hooks_family.py +127 -0
  485. audiagentic/components/providers/services/capabilities/managed_mcp_family.py +171 -0
  486. audiagentic/components/providers/services/capabilities/model_projection_family.py +11 -0
  487. audiagentic/components/providers/services/capabilities/model_projection_handler.py +203 -0
  488. audiagentic/components/providers/services/capabilities/plugin_entries.py +98 -0
  489. audiagentic/components/providers/services/capabilities/recipe_definitions.py +288 -0
  490. audiagentic/components/providers/services/capabilities/recipe_steps.py +404 -0
  491. audiagentic/components/providers/services/capabilities/self_provided_lsp_family.py +11 -0
  492. audiagentic/components/providers/services/capabilities/self_provided_lsp_handler.py +100 -0
  493. audiagentic/components/providers/services/catalog/__init__.py +1 -0
  494. audiagentic/components/providers/services/catalog/catalog.py +121 -0
  495. audiagentic/components/providers/services/catalog/models.py +461 -0
  496. audiagentic/components/providers/services/catalog/overview.py +207 -0
  497. audiagentic/components/providers/services/catalog/source_catalog.py +461 -0
  498. audiagentic/components/providers/services/config/__init__.py +1 -0
  499. audiagentic/components/providers/services/config/feature_resolution.py +92 -0
  500. audiagentic/components/providers/services/config/model_source_config.py +189 -0
  501. audiagentic/components/providers/services/config/provider_catalog.py +107 -0
  502. audiagentic/components/providers/services/config/provider_config.py +333 -0
  503. audiagentic/components/providers/services/execution/__init__.py +1 -0
  504. audiagentic/components/providers/services/execution/execution.py +329 -0
  505. audiagentic/components/providers/services/execution/launch_env.py +128 -0
  506. audiagentic/components/providers/services/execution/prompt_syntax.py +80 -0
  507. audiagentic/components/providers/services/execution/public_execution.py +871 -0
  508. audiagentic/components/providers/services/execution/public_prompt_operations.py +167 -0
  509. audiagentic/components/providers/services/host/__init__.py +1 -0
  510. audiagentic/components/providers/services/host/host_adapter.py +128 -0
  511. audiagentic/components/providers/services/host/host_capabilities.py +83 -0
  512. audiagentic/components/providers/services/host/system_probe.py +36 -0
  513. audiagentic/components/providers/services/lifecycle/__init__.py +1 -0
  514. audiagentic/components/providers/services/lifecycle/health.py +41 -0
  515. audiagentic/components/providers/services/lifecycle/lifecycle.py +313 -0
  516. audiagentic/components/providers/services/lifecycle/project_purge.py +101 -0
  517. audiagentic/components/providers/services/lifecycle/public_materialize.py +120 -0
  518. audiagentic/components/providers/services/lifecycle/status.py +295 -0
  519. audiagentic/components/providers/services/mcp/__init__.py +1 -0
  520. audiagentic/components/providers/services/mcp/managed_mcp_registry.py +27 -0
  521. audiagentic/components/providers/services/mcp/mcp.py +357 -0
  522. audiagentic/components/providers/services/mcp/mcp_projection.py +75 -0
  523. audiagentic/components/providers/services/mcp/mcp_sync.py +48 -0
  524. audiagentic/components/providers/services/reconcile.py +426 -0
  525. audiagentic/components/providers/services/secrets.py +93 -0
  526. audiagentic/components/providers/services/session/__init__.py +1 -0
  527. audiagentic/components/providers/services/session/harness_observability_inventory.py +374 -0
  528. audiagentic/components/providers/services/session/harness_status_observer_resolution.py +111 -0
  529. audiagentic/components/providers/services/session/session_surface_resolution.py +617 -0
  530. audiagentic/components/providers/skill_surfaces.py +307 -0
  531. audiagentic/components/providers/surfaces/__init__.py +3 -0
  532. audiagentic/components/providers/surfaces/base.py +428 -0
  533. audiagentic/components/providers/surfaces/contributions.py +204 -0
  534. audiagentic/components/providers/surfaces/extensions_json.py +156 -0
  535. audiagentic/components/providers/surfaces/host_settings.py +45 -0
  536. audiagentic/components/providers/surfaces/manager.py +251 -0
  537. audiagentic/components/providers/surfaces/observer.py +66 -0
  538. audiagentic/components/providers/surfaces/registry.py +78 -0
  539. audiagentic/components/providers/surfaces/templates/default_instruction.md +11 -0
  540. audiagentic/components/providers/surfaces/templates/default_prompt_tags.md +9 -0
  541. audiagentic/components/providers/tags/__init__.py +5 -0
  542. audiagentic/components/providers/tags/base.py +63 -0
  543. audiagentic/components/providers/tags/loader.py +254 -0
  544. audiagentic/components/providers/tags/registry.py +59 -0
  545. audiagentic/components/providers/validate_ids.py +38 -0
  546. audiagentic/components/providers/workflow/__init__.py +11 -0
  547. audiagentic/components/providers/workflow/provider_cli.py +268 -0
  548. audiagentic/components/release/__init__.py +1 -0
  549. audiagentic/components/release/events.py +3 -0
  550. audiagentic/components/release/github_auth.py +298 -0
  551. audiagentic/components/release/local_release.py +363 -0
  552. audiagentic/components/release/release_api.py +241 -0
  553. audiagentic/components/release/release_mcp.py +33 -0
  554. audiagentic/components/release/release_please/__init__.py +1 -0
  555. audiagentic/components/release/release_please/finalize.py +69 -0
  556. audiagentic/components/release/release_please/install.py +126 -0
  557. audiagentic/components/release/release_please/manage.py +132 -0
  558. audiagentic/components/release/release_please/release_please_mcp.py +94 -0
  559. audiagentic/components/release/release_please/templates/baseline.yml +107 -0
  560. audiagentic/components/release/release_please/templates/release-please-config.json +16 -0
  561. audiagentic/components/release/release_please/templates/release.yml +107 -0
  562. audiagentic/components/release/release_please/utils.py +14 -0
  563. audiagentic/components/session/__init__.py +1 -0
  564. audiagentic/components/session/session_api.py +151 -0
  565. audiagentic/components/session/session_embedded_rig.py +160 -0
  566. audiagentic/components/session/session_mcp.py +84 -0
  567. audiagentic/components/session/session_runtime_status.py +122 -0
  568. audiagentic/components/source_control/__init__.py +1 -0
  569. audiagentic/components/source_control/git_commits.py +83 -0
  570. audiagentic/components/source_control/source_control_api.py +132 -0
  571. audiagentic/components/source_control/source_control_bootstrap.py +482 -0
  572. audiagentic/components/source_control/source_control_mcp.py +38 -0
  573. audiagentic/config/components/README.md +14 -0
  574. audiagentic/config/components/agent-jobs/error-resolutions.yaml +63 -0
  575. audiagentic/config/components/agent-jobs.yaml +31 -0
  576. audiagentic/config/components/agent-ledger/error-resolutions.yaml +1 -0
  577. audiagentic/config/components/agent-ledger/skills/ag-ledger/skill.md +18 -0
  578. audiagentic/config/components/agent-ledger.yaml +72 -0
  579. audiagentic/config/components/agents/error-resolutions.yaml +231 -0
  580. audiagentic/config/components/agents/events.yaml +204 -0
  581. audiagentic/config/components/agents/implementations/automatic.yaml +25 -0
  582. audiagentic/config/components/agents/implementations/embedded.yaml +20 -0
  583. audiagentic/config/components/agents/implementations/standalone.yaml +19 -0
  584. audiagentic/config/components/agents.yaml +436 -0
  585. audiagentic/config/components/coding-lsp/bindings/ag-lsp/cpp.yaml +8 -0
  586. audiagentic/config/components/coding-lsp/bindings/ag-lsp/json.yaml +8 -0
  587. audiagentic/config/components/coding-lsp/bindings/ag-lsp/make.yaml +8 -0
  588. audiagentic/config/components/coding-lsp/bindings/ag-lsp/markdown.yaml +8 -0
  589. audiagentic/config/components/coding-lsp/bindings/ag-lsp/python-ruff.yaml +8 -0
  590. audiagentic/config/components/coding-lsp/bindings/ag-lsp/python.yaml +8 -0
  591. audiagentic/config/components/coding-lsp/bindings/ag-lsp/rust.yaml +8 -0
  592. audiagentic/config/components/coding-lsp/bindings/ag-lsp/toml.yaml +8 -0
  593. audiagentic/config/components/coding-lsp/bindings/ag-lsp/typescript.yaml +8 -0
  594. audiagentic/config/components/coding-lsp/bindings/ag-lsp/yaml.yaml +8 -0
  595. audiagentic/config/components/coding-lsp/bindings/blackwell-agent-lsp/cpp.yaml +8 -0
  596. audiagentic/config/components/coding-lsp/bindings/blackwell-agent-lsp/json.yaml +8 -0
  597. audiagentic/config/components/coding-lsp/bindings/blackwell-agent-lsp/make.yaml +8 -0
  598. audiagentic/config/components/coding-lsp/bindings/blackwell-agent-lsp/markdown.yaml +8 -0
  599. audiagentic/config/components/coding-lsp/bindings/blackwell-agent-lsp/python.yaml +8 -0
  600. audiagentic/config/components/coding-lsp/bindings/blackwell-agent-lsp/rust.yaml +8 -0
  601. audiagentic/config/components/coding-lsp/bindings/blackwell-agent-lsp/toml.yaml +8 -0
  602. audiagentic/config/components/coding-lsp/bindings/blackwell-agent-lsp/typescript.yaml +8 -0
  603. audiagentic/config/components/coding-lsp/bindings/blackwell-agent-lsp/yaml.yaml +8 -0
  604. audiagentic/config/components/coding-lsp/features/cpp.yaml +33 -0
  605. audiagentic/config/components/coding-lsp/features/json.yaml +22 -0
  606. audiagentic/config/components/coding-lsp/features/make.yaml +22 -0
  607. audiagentic/config/components/coding-lsp/features/markdown.yaml +28 -0
  608. audiagentic/config/components/coding-lsp/features/python-ruff.yaml +31 -0
  609. audiagentic/config/components/coding-lsp/features/python.yaml +28 -0
  610. audiagentic/config/components/coding-lsp/features/rust.yaml +23 -0
  611. audiagentic/config/components/coding-lsp/features/toml.yaml +29 -0
  612. audiagentic/config/components/coding-lsp/features/typescript.yaml +26 -0
  613. audiagentic/config/components/coding-lsp/features/yaml-language.yaml +22 -0
  614. audiagentic/config/components/coding-lsp/implementations/ag-lsp.yaml +18 -0
  615. audiagentic/config/components/coding-lsp/implementations/blackwell-agent-lsp.yaml +24 -0
  616. audiagentic/config/components/coding-lsp.yaml +296 -0
  617. audiagentic/config/components/foundation/error-resolutions.yaml +192 -0
  618. audiagentic/config/components/foundation/events.yaml +65 -0
  619. audiagentic/config/components/harness/error-resolutions.yaml +11 -0
  620. audiagentic/config/components/ledger/events.yaml +8 -0
  621. audiagentic/config/components/locales/planning/de.yaml +6 -0
  622. audiagentic/config/components/locales/planning/en.yaml +16 -0
  623. audiagentic/config/components/memory/error-resolutions.yaml +7 -0
  624. audiagentic/config/components/memory/hindsight-plugin-definition.schema.json +62 -0
  625. audiagentic/config/components/memory/hindsight.yaml +52 -0
  626. audiagentic/config/components/memory/recipes/hindsight-aider.yaml +57 -0
  627. audiagentic/config/components/memory/recipes/hindsight-codex.yaml +104 -0
  628. audiagentic/config/components/memory/recipes/hindsight-copilot.yaml +53 -0
  629. audiagentic/config/components/memory/recipes/hindsight-managed-mcp-stdio.yaml +45 -0
  630. audiagentic/config/components/memory/recipes/hindsight-managed-mcp.yaml +44 -0
  631. audiagentic/config/components/memory/recipes/hindsight-openhands.yaml +53 -0
  632. audiagentic/config/components/memory/recipes/hindsight-pi.yaml +87 -0
  633. audiagentic/config/components/memory/recipes/hindsight-plugin.yaml +41 -0
  634. audiagentic/config/components/memory/recipes/hindsight-roo.yaml +53 -0
  635. audiagentic/config/components/memory.yaml +67 -0
  636. audiagentic/config/components/planning/error-resolutions.yaml +37 -0
  637. audiagentic/config/components/planning/events.yaml +67 -0
  638. audiagentic/config/components/planning/planning-local-docs.yaml +40 -0
  639. audiagentic/config/components/planning.yaml +183 -0
  640. audiagentic/config/components/project/config/project.yaml +7 -0
  641. audiagentic/config/components/project/error-resolutions.yaml +6 -0
  642. audiagentic/config/components/project.yaml +53 -0
  643. audiagentic/config/components/providers/claude-restrictions.yaml +20 -0
  644. audiagentic/config/components/providers/error-resolutions.yaml +202 -0
  645. audiagentic/config/components/providers/hosts.yaml +11 -0
  646. audiagentic/config/components/providers.yaml +85 -0
  647. audiagentic/config/components/release/.github/workflows/release.yml +107 -0
  648. audiagentic/config/components/release/error-resolutions.yaml +23 -0
  649. audiagentic/config/components/release/events.yaml +8 -0
  650. audiagentic/config/components/release.yaml +59 -0
  651. audiagentic/config/components/rig/error-resolutions.yaml +5 -0
  652. audiagentic/config/components/rig/llama-cpp-release.yaml +20 -0
  653. audiagentic/config/components/session/error-resolutions.yaml +5 -0
  654. audiagentic/config/components/session.yaml +25 -0
  655. audiagentic/config/components/source-control/skills/ag-check-in-prep/skill.md +25 -0
  656. audiagentic/config/components/source-control.yaml +121 -0
  657. audiagentic/config/providers/_capabilities.yaml +221 -0
  658. audiagentic/config/providers/activity_rig.yaml +5 -0
  659. audiagentic/config/providers/aider.yaml +59 -0
  660. audiagentic/config/providers/antigravity.yaml +96 -0
  661. audiagentic/config/providers/claude.yaml +82 -0
  662. audiagentic/config/providers/cline.yaml +94 -0
  663. audiagentic/config/providers/codex.yaml +199 -0
  664. audiagentic/config/providers/continue.yaml +73 -0
  665. audiagentic/config/providers/copilot.yaml +94 -0
  666. audiagentic/config/providers/crush.yaml +31 -0
  667. audiagentic/config/providers/gemini.yaml +86 -0
  668. audiagentic/config/providers/goose.yaml +83 -0
  669. audiagentic/config/providers/gpt_auto.yaml +107 -0
  670. audiagentic/config/providers/gpt_auto_t1.yaml +100 -0
  671. audiagentic/config/providers/gpt_auto_t2.yaml +100 -0
  672. audiagentic/config/providers/kilo.yaml +32 -0
  673. audiagentic/config/providers/local_openai.yaml +37 -0
  674. audiagentic/config/providers/opencode.yaml +318 -0
  675. audiagentic/config/providers/openhands.yaml +87 -0
  676. audiagentic/config/providers/pi.yaml +249 -0
  677. audiagentic/config/providers/plandex.yaml +58 -0
  678. audiagentic/config/providers/qwen.yaml +114 -0
  679. audiagentic/config/providers/roo.yaml +70 -0
  680. audiagentic/config/providers/zed.yaml +37 -0
  681. audiagentic/config/provisioning/foundation/composition.yaml +20 -0
  682. audiagentic/config/provisioning/foundation/gateway-service-composition.yaml +27 -0
  683. audiagentic/config/provisioning/foundation/logging.yaml +50 -0
  684. audiagentic/config/provisioning/harness/ag.yaml +44 -0
  685. audiagentic/config/provisioning/harness/opencode.yaml +17 -0
  686. audiagentic/config/provisioning/harness/pi.yaml +62 -0
  687. audiagentic/config/provisioning/rig/rig.yaml +75 -0
  688. audiagentic/config/recipes/codex-acp-bridge.yaml +42 -0
  689. audiagentic/foundation/__init__.py +16 -0
  690. audiagentic/foundation/capabilities/__init__.py +45 -0
  691. audiagentic/foundation/cli_io.py +44 -0
  692. audiagentic/foundation/components/__init__.py +49 -0
  693. audiagentic/foundation/components/base.py +116 -0
  694. audiagentic/foundation/components/context.py +62 -0
  695. audiagentic/foundation/components/dependencies.py +361 -0
  696. audiagentic/foundation/components/hooks.py +197 -0
  697. audiagentic/foundation/components/ids.py +19 -0
  698. audiagentic/foundation/components/loader.py +429 -0
  699. audiagentic/foundation/components/registry.py +167 -0
  700. audiagentic/foundation/composition/__init__.py +33 -0
  701. audiagentic/foundation/composition/builder.py +168 -0
  702. audiagentic/foundation/composition/config.py +183 -0
  703. audiagentic/foundation/composition/contracts.py +61 -0
  704. audiagentic/foundation/composition/graph.py +70 -0
  705. audiagentic/foundation/config/__init__.py +4 -0
  706. audiagentic/foundation/config/harness.py +49 -0
  707. audiagentic/foundation/config/layers.py +39 -0
  708. audiagentic/foundation/config/merge.py +16 -0
  709. audiagentic/foundation/config/refs.py +71 -0
  710. audiagentic/foundation/contracts/__init__.py +0 -0
  711. audiagentic/foundation/contracts/canonical_ids.py +75 -0
  712. audiagentic/foundation/contracts/error_resolutions.py +76 -0
  713. audiagentic/foundation/contracts/errors.py +222 -0
  714. audiagentic/foundation/contracts/output.py +58 -0
  715. audiagentic/foundation/contracts/schema_registry.py +37 -0
  716. audiagentic/foundation/contracts/schemas/agent-execution-record.schema.json +468 -0
  717. audiagentic/foundation/contracts/schemas/agent-execution-session.schema.json +151 -0
  718. audiagentic/foundation/contracts/schemas/agent-output-event.schema.json +52 -0
  719. audiagentic/foundation/contracts/schemas/agent-status-snapshot.schema.json +38 -0
  720. audiagentic/foundation/contracts/schemas/agents-config.schema.json +23 -0
  721. audiagentic/foundation/contracts/schemas/approval-request.schema.json +58 -0
  722. audiagentic/foundation/contracts/schemas/change-event.schema.json +65 -0
  723. audiagentic/foundation/contracts/schemas/component-config.schema.json +69 -0
  724. audiagentic/foundation/contracts/schemas/error-envelope.schema.json +23 -0
  725. audiagentic/foundation/contracts/schemas/event-envelope.schema.json +38 -0
  726. audiagentic/foundation/contracts/schemas/event-topics.schema.json +59 -0
  727. audiagentic/foundation/contracts/schemas/interaction-request.schema.json +52 -0
  728. audiagentic/foundation/contracts/schemas/job-record.schema.json +212 -0
  729. audiagentic/foundation/contracts/schemas/lifecycle-plan.schema.json +41 -0
  730. audiagentic/foundation/contracts/schemas/lifecycle-result.schema.json +44 -0
  731. audiagentic/foundation/contracts/schemas/project-config.schema.json +182 -0
  732. audiagentic/foundation/contracts/schemas/prompt-launch-request.schema.json +334 -0
  733. audiagentic/foundation/contracts/schemas/prompt-syntax.schema.json +73 -0
  734. audiagentic/foundation/contracts/schemas/provider-completion.schema.json +153 -0
  735. audiagentic/foundation/contracts/schemas/provider-config.schema.json +252 -0
  736. audiagentic/foundation/contracts/schemas/provider-descriptor.schema.json +102 -0
  737. audiagentic/foundation/contracts/schemas/provider-health.schema.json +45 -0
  738. audiagentic/foundation/contracts/schemas/provider-model-catalog.schema.json +71 -0
  739. audiagentic/foundation/contracts/schemas/provider-session-input.schema.json +71 -0
  740. audiagentic/foundation/contracts/schemas/provider-session-manifest.schema.json +57 -0
  741. audiagentic/foundation/contracts/schemas/provider-stream-event.schema.json +45 -0
  742. audiagentic/foundation/contracts/schemas/provider-stream-manifest.schema.json +33 -0
  743. audiagentic/foundation/contracts/schemas/resolved-execution-profile.schema.json +43 -0
  744. audiagentic/foundation/contracts/schemas/review-bundle.schema.json +117 -0
  745. audiagentic/foundation/contracts/schemas/review-report.schema.json +153 -0
  746. audiagentic/foundation/contracts/schemas/stage-result.schema.json +33 -0
  747. audiagentic/foundation/contracts/schemas/status-evidence.schema.json +49 -0
  748. audiagentic/foundation/contracts/schemas/task-status-v4.schema.json +75 -0
  749. audiagentic/foundation/contracts/schemas/validation-report.schema.json +34 -0
  750. audiagentic/foundation/contracts/validate_ids.py +134 -0
  751. audiagentic/foundation/contracts/validate_schemas.py +113 -0
  752. audiagentic/foundation/event/__init__.py +73 -0
  753. audiagentic/foundation/event/durable_spool.py +216 -0
  754. audiagentic/foundation/event/envelope.py +85 -0
  755. audiagentic/foundation/event/event_bus.py +460 -0
  756. audiagentic/foundation/event/event_config.py +107 -0
  757. audiagentic/foundation/event/event_exceptions.py +95 -0
  758. audiagentic/foundation/event/event_log.py +84 -0
  759. audiagentic/foundation/event/event_store.py +166 -0
  760. audiagentic/foundation/event/lifecycle_observer.py +94 -0
  761. audiagentic/foundation/event/patterns.py +38 -0
  762. audiagentic/foundation/event/topic_registry.py +272 -0
  763. audiagentic/foundation/features/__init__.py +43 -0
  764. audiagentic/foundation/features/base.py +132 -0
  765. audiagentic/foundation/features/config_status.py +158 -0
  766. audiagentic/foundation/features/lifecycle.py +202 -0
  767. audiagentic/foundation/features/loader.py +219 -0
  768. audiagentic/foundation/features/options.py +173 -0
  769. audiagentic/foundation/features/registry.py +238 -0
  770. audiagentic/foundation/features/resolver.py +74 -0
  771. audiagentic/foundation/features/state.py +398 -0
  772. audiagentic/foundation/i18n.py +354 -0
  773. audiagentic/foundation/interaction/__init__.py +57 -0
  774. audiagentic/foundation/interaction/api.py +230 -0
  775. audiagentic/foundation/interaction/backend.py +133 -0
  776. audiagentic/foundation/interaction/mcp.py +147 -0
  777. audiagentic/foundation/interaction/models.py +44 -0
  778. audiagentic/foundation/interaction/store.py +69 -0
  779. audiagentic/foundation/io.py +231 -0
  780. audiagentic/foundation/lifecycle/__init__.py +2 -0
  781. audiagentic/foundation/lifecycle/baseline_sync.py +274 -0
  782. audiagentic/foundation/lifecycle/components.py +243 -0
  783. audiagentic/foundation/lifecycle/detector.py +54 -0
  784. audiagentic/foundation/lifecycle/fresh_install.py +60 -0
  785. audiagentic/foundation/lifecycle/observers.py +49 -0
  786. audiagentic/foundation/lifecycle/uninstall.py +58 -0
  787. audiagentic/foundation/logging/__init__.py +64 -0
  788. audiagentic/foundation/logging/audit.py +195 -0
  789. audiagentic/foundation/logging/config.py +356 -0
  790. audiagentic/foundation/logging/context.py +47 -0
  791. audiagentic/foundation/logging/formatters.py +130 -0
  792. audiagentic/foundation/logging/redaction.py +240 -0
  793. audiagentic/foundation/mcp/__init__.py +28 -0
  794. audiagentic/foundation/mcp/component_builder.py +45 -0
  795. audiagentic/foundation/mcp/component_server.py +423 -0
  796. audiagentic/foundation/mcp/json_format.py +113 -0
  797. audiagentic/foundation/mcp/launch.py +47 -0
  798. audiagentic/foundation/mcp/projection.py +94 -0
  799. audiagentic/foundation/observability/__init__.py +4 -0
  800. audiagentic/foundation/observability/operational_records.py +71 -0
  801. audiagentic/foundation/observability/timeline.py +81 -0
  802. audiagentic/foundation/paths/__init__.py +35 -0
  803. audiagentic/foundation/paths/component_paths.py +104 -0
  804. audiagentic/foundation/paths/home.py +41 -0
  805. audiagentic/foundation/paths/names.py +180 -0
  806. audiagentic/foundation/paths/package.py +55 -0
  807. audiagentic/foundation/paths/project.py +34 -0
  808. audiagentic/foundation/paths/resolution.py +148 -0
  809. audiagentic/foundation/paths/safety.py +129 -0
  810. audiagentic/foundation/registry_utils.py +202 -0
  811. audiagentic/foundation/steps/__init__.py +60 -0
  812. audiagentic/foundation/steps/callable.py +34 -0
  813. audiagentic/foundation/steps/control.py +153 -0
  814. audiagentic/foundation/steps/factory.py +750 -0
  815. audiagentic/foundation/steps/protocol.py +26 -0
  816. audiagentic/foundation/steps/results.py +31 -0
  817. audiagentic/foundation/steps/sequence.py +140 -0
  818. audiagentic/foundation/steps/shell.py +150 -0
  819. audiagentic/foundation/steps/structured.py +449 -0
  820. audiagentic/foundation/system/__init__.py +0 -0
  821. audiagentic/foundation/system/adopted_process.py +376 -0
  822. audiagentic/foundation/system/browser_manager.py +494 -0
  823. audiagentic/foundation/system/managed_process.py +371 -0
  824. audiagentic/foundation/system/managed_service.py +390 -0
  825. audiagentic/foundation/system/managed_service_contracts.py +274 -0
  826. audiagentic/foundation/system/managed_service_lifecycle.py +72 -0
  827. audiagentic/foundation/system/managed_service_lifecycle_contracts.py +88 -0
  828. audiagentic/foundation/system/managed_service_owner.py +121 -0
  829. audiagentic/foundation/system/managed_service_shutdown.py +157 -0
  830. audiagentic/foundation/system/managed_service_start.py +306 -0
  831. audiagentic/foundation/system/probe.py +39 -0
  832. audiagentic/foundation/system/process.py +356 -0
  833. audiagentic/foundation/system/supervised_process.py +331 -0
  834. audiagentic/foundation/templates.py +128 -0
  835. audiagentic/foundation/time.py +30 -0
  836. audiagentic/foundation/toolchains/__init__.py +91 -0
  837. audiagentic/foundation/toolchains/config/__init__.py +40 -0
  838. audiagentic/foundation/toolchains/config/artifact_registry.py +242 -0
  839. audiagentic/foundation/toolchains/config/config_patcher.py +158 -0
  840. audiagentic/foundation/toolchains/config/config_reader.py +133 -0
  841. audiagentic/foundation/toolchains/config/fragments.py +162 -0
  842. audiagentic/foundation/toolchains/config/managed_block.py +143 -0
  843. audiagentic/foundation/toolchains/config/managed_config.py +298 -0
  844. audiagentic/foundation/toolchains/detect.py +77 -0
  845. audiagentic/foundation/toolchains/loader.py +48 -0
  846. audiagentic/foundation/toolchains/probes.py +300 -0
  847. audiagentic/foundation/toolchains/recipe_catalogue.py +300 -0
  848. audiagentic/foundation/toolchains/recipe_contract.py +338 -0
  849. audiagentic/foundation/toolchains/recipe_execution.py +221 -0
  850. audiagentic/foundation/toolchains/recipe_loader.py +321 -0
  851. audiagentic/foundation/toolchains/recipe_materializer.py +358 -0
  852. audiagentic/foundation/toolchains/recipe_patterns.py +339 -0
  853. audiagentic/foundation/toolchains/recipes/__init__.py +62 -0
  854. audiagentic/foundation/toolchains/toolchains.yaml +75 -0
  855. audiagentic/foundation/transports/__init__.py +142 -0
  856. audiagentic/foundation/transports/acp.py +1896 -0
  857. audiagentic/foundation/transports/agent_output.py +217 -0
  858. audiagentic/foundation/transports/agent_session.py +662 -0
  859. audiagentic/foundation/transports/agent_status.py +193 -0
  860. audiagentic/foundation/transports/harness_status_observer.py +216 -0
  861. audiagentic/foundation/transports/session_binding.py +187 -0
  862. audiagentic/foundation/transports/session_surface.py +374 -0
  863. audiagentic/foundation/workflow/__init__.py +46 -0
  864. audiagentic/foundation/workflow/actions.py +141 -0
  865. audiagentic/foundation/workflow/evidence_policy.py +120 -0
  866. audiagentic/foundation/workflow/frontmatter.py +311 -0
  867. audiagentic/foundation/workflow/id_gen.py +110 -0
  868. audiagentic/foundation/workflow/interfaces.py +136 -0
  869. audiagentic/foundation/workflow/invocation/__init__.py +34 -0
  870. audiagentic/foundation/workflow/invocation/from_spec.py +159 -0
  871. audiagentic/foundation/workflow/invocation/models.py +28 -0
  872. audiagentic/foundation/workflow/invocation/runner.py +69 -0
  873. audiagentic/foundation/workflow/propagation/__init__.py +6 -0
  874. audiagentic/foundation/workflow/propagation/engine.py +187 -0
  875. audiagentic/foundation/workflow/propagation/healing.py +230 -0
  876. audiagentic/foundation/workflow/propagation/healing_validator.py +23 -0
  877. audiagentic/foundation/workflow/propagation/log.py +59 -0
  878. audiagentic/foundation/workflow/propagation/log_recorder.py +51 -0
  879. audiagentic/foundation/workflow/propagation/parents.py +71 -0
  880. audiagentic/foundation/workflow/propagation/propagation_config.py +123 -0
  881. audiagentic/foundation/workflow/propagation/rule_evaluator.py +117 -0
  882. audiagentic/foundation/workflow/propagation/rules.py +184 -0
  883. audiagentic/foundation/workflow/propagation/workflow_item_api.py +13 -0
  884. audiagentic/foundation/workflow/state_machine.py +229 -0
  885. audiagentic/foundation/workflow/transition_engine.py +46 -0
  886. audiagentic/foundation/workflow/transitions.py +90 -0
  887. audiagentic/foundation/workflow/util.py +50 -0
  888. audiagentic/launcher.py +319 -0
  889. audiagentic/runtime/__init__.py +1 -0
  890. audiagentic/runtime/bootstrap/__init__.py +18 -0
  891. audiagentic/runtime/bootstrap/application_host.py +86 -0
  892. audiagentic/runtime/bootstrap/composition.py +81 -0
  893. audiagentic/runtime/bootstrap/gateway_service_composition.py +210 -0
  894. audiagentic/runtime/component_context.py +83 -0
  895. audiagentic/runtime/harness/__init__.py +443 -0
  896. audiagentic/runtime/harness/config.py +81 -0
  897. audiagentic/runtime/harness/context.py +52 -0
  898. audiagentic/runtime/harness/interface.py +156 -0
  899. audiagentic/runtime/harness/lifecycle.py +46 -0
  900. audiagentic/runtime/harness/paths.py +14 -0
  901. audiagentic/runtime/harness/provisioning.py +53 -0
  902. audiagentic/runtime/harness/reload.py +40 -0
  903. audiagentic/runtime/harness/resolution.py +76 -0
  904. audiagentic/runtime/harness/rig.py +63 -0
  905. audiagentic/runtime/harness/run_common.py +274 -0
  906. audiagentic/runtime/rig/__init__.py +1 -0
  907. audiagentic/runtime/rig/constants.py +80 -0
  908. audiagentic/runtime/rig/embedded/__init__.py +1 -0
  909. audiagentic/runtime/rig/embedded/binaries.py +231 -0
  910. audiagentic/runtime/rig/embedded/cli.py +142 -0
  911. audiagentic/runtime/rig/embedded/config.py +182 -0
  912. audiagentic/runtime/rig/embedded/launch.py +240 -0
  913. audiagentic/runtime/rig/embedded/process.py +83 -0
  914. audiagentic/runtime/rig/embedded/recipe.py +81 -0
  915. audiagentic/runtime/rig/embedded/release_manifest.py +79 -0
  916. audiagentic/runtime/rig/embedded/resolution.py +156 -0
  917. audiagentic/runtime/rig/errors.py +179 -0
  918. audiagentic/runtime/rig/external/config.yaml +19 -0
  919. audiagentic/runtime/rig/http.py +84 -0
  920. audiagentic/runtime/rig/models.py +98 -0
  921. audiagentic/runtime/rig/service.py +198 -0
  922. audiagentic/runtime/system/__init__.py +21 -0
  923. audiagentic/runtime/system/platform.py +378 -0
  924. audiagentic/runtime/update/__init__.py +5 -0
  925. audiagentic/runtime/update/checker.py +163 -0
  926. audiagentic/runtime/update/prompt.py +99 -0
  927. audiagentic/runtime/update/runner.py +76 -0
  928. audiagentic/utils/__init__.py +1 -0
  929. audiagentic/utils/calculator.py +6 -0
  930. audiagentic/utils.py +5 -0
  931. audiagentic-0.2.1.dist-info/METADATA +115 -0
  932. audiagentic-0.2.1.dist-info/RECORD +935 -0
  933. audiagentic-0.2.1.dist-info/WHEEL +5 -0
  934. audiagentic-0.2.1.dist-info/entry_points.txt +2 -0
  935. audiagentic-0.2.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,11 @@
1
+ """AUDiaGentic: Agentic workflow orchestration and execution platform.
2
+
3
+ Top-level package for the AUDiaGentic system. Domain layout:
4
+
5
+ foundation/ — shared contracts, event bus, and the component framework (base layer)
6
+ components/ — core and optional components (project, session, providers, ledger, ...)
7
+ runtime/ — lifecycle management, harness, and durable state persistence
8
+ config/ — component descriptors and provisioning configuration
9
+ """
10
+
11
+ __version__ = "0.2.1"
@@ -0,0 +1,4 @@
1
+ from audiagentic.commands.component import _cmd_component
2
+ from audiagentic.commands.launch import _cmd_launch
3
+
4
+ __all__ = ["_cmd_component", "_cmd_launch"]
@@ -0,0 +1,199 @@
1
+ """Bootstrap and repair commands for AUDiaGentic-owned state."""
2
+ from __future__ import annotations
3
+
4
+ import argparse
5
+ import logging
6
+ from pathlib import Path
7
+
8
+ from audiagentic.foundation.cli_io import print_error, print_json, print_message
9
+ from audiagentic.foundation.paths.home import global_harness_runtime
10
+ from audiagentic.runtime.harness import (
11
+ cleanup_runtime,
12
+ install_to,
13
+ refresh_materialized_agent_config,
14
+ request_runtime_reload,
15
+ )
16
+
17
+ logger = logging.getLogger(__name__)
18
+
19
+
20
+ def _install_core_components(project_root: Path) -> list[str]:
21
+ """Materialize every mandatory project component; return failed ids.
22
+
23
+ These components own project scaffold (configuration, prompts and event-bus
24
+ state). They are deliberately independent of MCP collection.
25
+ """
26
+ from audiagentic.foundation.components.loader import register_all_components
27
+ from audiagentic.foundation.components.registry import all_descriptors
28
+ from audiagentic.foundation.lifecycle.components import install_component
29
+
30
+ register_all_components()
31
+ failed: list[str] = []
32
+ for component_id, descriptor in all_descriptors().items():
33
+ if not descriptor.core:
34
+ continue
35
+ try:
36
+ result = install_component(component_id, project_root)
37
+ if not result.get("ok"):
38
+ failed.append(component_id)
39
+ except Exception:
40
+ logger.error("Failed to bootstrap core component %s", component_id, exc_info=True)
41
+ failed.append(component_id)
42
+ return failed
43
+
44
+
45
+ def _cmd_bootstrap(target: Path, project_root: Path) -> int:
46
+ print_message(f"Bootstrapping AUDiaGentic into {target}")
47
+ rc = install_to(target, project_root=project_root)
48
+ if rc:
49
+ return rc
50
+
51
+ failed = _install_core_components(project_root)
52
+ if failed:
53
+ print_error(f"Failed to bootstrap core components: {', '.join(sorted(failed))}")
54
+ return 1
55
+
56
+ print_message("\nBootstrap complete. Run 'audiagentic' from any project directory.")
57
+ if target != global_harness_runtime():
58
+ print_message(f"Set AUDIAGENTIC_HOME={target.parent} to use this location.")
59
+ return 0
60
+
61
+
62
+ def cmd_bootstrap(args: argparse.Namespace, project_root: Path) -> int:
63
+ target = Path(args.target).resolve() if args.target else global_harness_runtime()
64
+ return _cmd_bootstrap(target, project_root)
65
+
66
+
67
+ def cmd_cleanup(args: argparse.Namespace, project_root: Path) -> int:
68
+ del project_root
69
+ target = Path(args.target).resolve() if args.target else global_harness_runtime()
70
+ print_message(f"Removing AUDiaGentic-generated runtime files from {target}")
71
+ return cleanup_runtime(target)
72
+
73
+
74
+ def _omit_empty_values(value: object) -> object:
75
+ """Return CLI-safe data without null or empty optional fields."""
76
+ if isinstance(value, dict):
77
+ return {
78
+ key: cleaned
79
+ for key, item in value.items()
80
+ if (cleaned := _omit_empty_values(item)) is not None
81
+ and cleaned != ""
82
+ and cleaned != []
83
+ and cleaned != {}
84
+ }
85
+ if isinstance(value, list):
86
+ return [_omit_empty_values(item) for item in value]
87
+ return value
88
+
89
+
90
+ def _surface_results_to_json(results: object) -> list[dict[str, object]]:
91
+ """Serialize generated-surface API results for CLI output."""
92
+ values = results if isinstance(results, list) else [results]
93
+ serialized: list[dict[str, object]] = []
94
+ for value in values:
95
+ converter = getattr(value, "to_mapping", None)
96
+ if callable(converter):
97
+ value = converter()
98
+ mapping = dict(value) if isinstance(value, dict) else {"result": str(value)}
99
+ cleaned = _omit_empty_values(mapping)
100
+ serialized.append(cleaned if isinstance(cleaned, dict) else {})
101
+ return serialized
102
+
103
+
104
+ def _config_summary(
105
+ *,
106
+ mode: str,
107
+ project_root: Path,
108
+ surface_results: list[dict[str, object]],
109
+ provider_errors: list[dict[str, object]],
110
+ ) -> dict[str, object]:
111
+ written = sorted({
112
+ path
113
+ for result in surface_results
114
+ for path in result.get("written_paths", [])
115
+ if isinstance(path, str)
116
+ })
117
+ removed = sorted({
118
+ path
119
+ for result in surface_results
120
+ for path in result.get("removed_paths", [])
121
+ if isinstance(path, str)
122
+ })
123
+ surface_errors = [
124
+ result
125
+ for result in surface_results
126
+ if not result.get("ok", False) and result.get("supported", True)
127
+ ]
128
+ errors = [*surface_errors, *provider_errors]
129
+ changed = bool(written or removed or any(result.get("changed") for result in surface_results))
130
+ summary: dict[str, object] = {
131
+ "ok": not errors,
132
+ "mode": mode,
133
+ "project_root": str(project_root),
134
+ "changed": changed,
135
+ "message": (
136
+ "Configuration refreshed."
137
+ if changed and mode == "apply"
138
+ else "Configuration is already synchronized."
139
+ if mode == "apply"
140
+ else "Configuration is already clean."
141
+ if not changed
142
+ else "Configuration cleaned."
143
+ ),
144
+ }
145
+ if written:
146
+ summary["written_paths"] = written
147
+ if removed:
148
+ summary["removed_paths"] = removed
149
+ if errors:
150
+ summary["errors"] = errors
151
+ return summary
152
+
153
+
154
+ def _config_operation(project_root: Path, *, mode: str, clean_runtime: bool) -> int:
155
+ """Run an ownership-aware config operation and report partial failures."""
156
+ target = global_harness_runtime()
157
+ from audiagentic.components.providers import providers_api
158
+ from audiagentic.components.providers.services.mcp.mcp_sync import (
159
+ sync_all_provider_mcp_servers,
160
+ )
161
+
162
+ output: dict[str, object] = {"ok": True, "mode": mode, "project_root": str(project_root)}
163
+ try:
164
+ surface_results = _surface_results_to_json(
165
+ providers_api.operate_provider_surfaces(project_root, mode=mode)
166
+ )
167
+ provider_errors = sync_all_provider_mcp_servers(project_root)
168
+ if clean_runtime:
169
+ cleanup_runtime(target)
170
+ else:
171
+ refresh_materialized_agent_config(target, project_root=project_root)
172
+ request_runtime_reload(project_root, reason=f"config-{mode}")
173
+ except Exception as exc: # noqa: BLE001
174
+ output["ok"] = False
175
+ output["errors"] = [str(exc)]
176
+ print_json(_omit_empty_values(output))
177
+ return 1
178
+
179
+ output = _config_summary(
180
+ mode=mode,
181
+ project_root=project_root,
182
+ surface_results=surface_results,
183
+ provider_errors=provider_errors,
184
+ )
185
+ print_json(_omit_empty_values(output))
186
+ return 0 if output["ok"] else 1
187
+
188
+
189
+ def cmd_config_sync(args: argparse.Namespace, project_root: Path) -> int:
190
+ """Refresh all generated surfaces and configured provider configs."""
191
+ if args.config_cmd == "clean":
192
+ return cmd_config_clean(args, project_root)
193
+ return _config_operation(project_root, mode="apply", clean_runtime=False)
194
+
195
+
196
+ def cmd_config_clean(args: argparse.Namespace, project_root: Path) -> int:
197
+ """Prune owned surfaces, synchronize stale provider entries, and clean runtime."""
198
+ del args
199
+ return _config_operation(project_root, mode="prune", clean_runtime=True)
@@ -0,0 +1,115 @@
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+ import logging
5
+ import shutil
6
+ from collections.abc import Callable
7
+ from pathlib import Path
8
+ from typing import Any
9
+
10
+ from audiagentic.foundation.cli_io import print_json
11
+
12
+ logger = logging.getLogger(__name__)
13
+
14
+
15
+ def _cmd_component_list(_args: Any, project_root: Path) -> int:
16
+ from audiagentic.foundation.components.registry import (
17
+ all_descriptors,
18
+ get_descriptor,
19
+ is_enabled,
20
+ is_installed,
21
+ )
22
+
23
+ rows = []
24
+ for cid, desc in sorted(all_descriptors().items()):
25
+ installed = is_installed(cid, project_root)
26
+ enabled = is_enabled(cid, project_root) if installed else None
27
+ state = "disabled" if (installed and not enabled) else ("installed" if installed else "not-installed")
28
+ row: dict[str, Any] = {
29
+ "component_id": cid,
30
+ "display_name": desc.display_name,
31
+ "installed": installed,
32
+ "enabled": enabled,
33
+ "state": state,
34
+ "scope": desc.scope,
35
+ }
36
+ if desc.scope == "project" and (getattr(desc, "cli_probe", None)):
37
+ prov_descriptor = get_descriptor("providers")
38
+ if prov_descriptor:
39
+ from audiagentic.components.providers.descriptors.registry import (
40
+ get_descriptor as _get_provider_descriptor,
41
+ )
42
+ prov_desc = _get_provider_descriptor(cid)
43
+ if prov_desc and prov_desc.cli_probe:
44
+ row["cli_available"] = shutil.which(prov_desc.cli_probe[0]) is not None
45
+ rows.append(row)
46
+ print_json(rows)
47
+ return 0
48
+
49
+
50
+ def _cmd_component_status(args: Any, project_root: Path) -> int:
51
+ from audiagentic.foundation.components.hooks import get_component_status
52
+ from audiagentic.foundation.components.registry import (
53
+ get_descriptor,
54
+ is_enabled,
55
+ is_installed,
56
+ )
57
+
58
+ component_id: str = args.component_id
59
+
60
+ descriptor = get_descriptor(component_id)
61
+ if descriptor is None:
62
+ print_json({"ok": False, "error": f"unknown component: {component_id}"})
63
+ return 1
64
+
65
+ installed = is_installed(component_id, project_root)
66
+ result: dict[str, Any] = {
67
+ "component_id": component_id,
68
+ "installed": installed,
69
+ "enabled": is_enabled(component_id, project_root) if installed else None,
70
+ }
71
+ # Surface the component's own status (configuration completeness, next steps)
72
+ # when it declares a status hook. Generic — the CLI never branches on id.
73
+ detail = get_component_status(descriptor, project_root)
74
+ if detail is not None:
75
+ result["detail"] = detail
76
+ print_json(result)
77
+ return 0
78
+
79
+
80
+ _SUBCOMMAND_REGISTRY: dict[str, Callable] = {
81
+ "list": _cmd_component_list,
82
+ "status": _cmd_component_status,
83
+ }
84
+
85
+
86
+ def _cmd_component(args: argparse.Namespace, project_root: Path) -> int:
87
+ from audiagentic.components.project import project_api
88
+ from audiagentic.foundation.components.registry import get_descriptor
89
+
90
+ sub = args.component_cmd
91
+
92
+ handler = _SUBCOMMAND_REGISTRY.get(sub)
93
+ if handler:
94
+ return handler(args, project_root)
95
+
96
+ component_id: str = args.component_id
97
+
98
+ if get_descriptor(component_id) is None:
99
+ print_json({"ok": False, "error": f"unknown component: {component_id}"})
100
+ return 1
101
+
102
+ DISPATCH = {
103
+ "install": ("install_component", {}),
104
+ "uninstall": ("uninstall_component", {"remove_configs": getattr(args, "remove_configs", False)}),
105
+ "enable": ("enable_component", {}),
106
+ "disable": ("disable_component", {}),
107
+ }
108
+
109
+ if sub in DISPATCH:
110
+ api_method, extra_kwargs = DISPATCH[sub]
111
+ result = getattr(project_api, f"{api_method}")(project_root, component_id, **extra_kwargs)
112
+ print_json(result)
113
+ return 0 if result.get("ok", True) else 1
114
+
115
+ return 1
@@ -0,0 +1,204 @@
1
+ """Explicit standalone gateway service command and lifecycle CLI (SH10 Slice A).
2
+
3
+ This module owns ``gateway serve`` (existing) and the SH10 operator lifecycle
4
+ sub-commands: ``status``, ``drain``, ``resume``, ``stop [--force]``, and
5
+ ``recover [--confirm] [--reason]``. Lifecycle handlers dispatch exactly once
6
+ through the standalone gateway client (HTTP) or the record-only recovery
7
+ helper; they contain no lifecycle/store/signal logic.
8
+ """
9
+ from __future__ import annotations
10
+
11
+ import argparse
12
+ import contextlib
13
+ import json
14
+ import os
15
+ import signal
16
+ import sys
17
+ from pathlib import Path
18
+ from typing import TYPE_CHECKING
19
+
20
+ if TYPE_CHECKING:
21
+ from audiagentic.components.agents.gateway.remote_client import (
22
+ StandaloneGatewayClient,
23
+ )
24
+ from audiagentic.components.agents.gateway.service.host import GatewayServiceHost
25
+
26
+
27
+ def _standalone_client_from_env() -> StandaloneGatewayClient:
28
+ """Build a StandaloneGatewayClient from environment (same env as get_gateway_client)."""
29
+ from audiagentic.components.agents.gateway.remote_client import (
30
+ StandaloneGatewayClient,
31
+ load_auth_token,
32
+ )
33
+
34
+ endpoint = os.environ.get("AUDIAGENTIC_GATEWAY_ENDPOINT")
35
+ token_file = os.environ.get("AUDIAGENTIC_GATEWAY_TOKEN_FILE")
36
+ if not endpoint or not token_file:
37
+ print(
38
+ "error: standalone gateway client requires "
39
+ "AUDIAGENTIC_GATEWAY_ENDPOINT and AUDIAGENTIC_GATEWAY_TOKEN_FILE",
40
+ file=sys.stderr,
41
+ )
42
+ sys.exit(1)
43
+ return StandaloneGatewayClient(endpoint, load_auth_token(Path(token_file)))
44
+
45
+
46
+ # - serve (existing) -
47
+
48
+
49
+ class _ShutdownState:
50
+ """Mutable flag set by the signal handler, read after serve_forever() returns.
51
+
52
+ A plain attribute container rather than a bool local: the handler is a
53
+ closure invoked asynchronously by the interpreter's signal machinery, so
54
+ it needs a mutable object to record onto, not a rebound name.
55
+ """
56
+
57
+ def __init__(self) -> None:
58
+ self.forced_fallback = False
59
+
60
+
61
+ def _shutdown_signals() -> list[int]:
62
+ """SIGINT/SIGTERM always; SIGBREAK too on Windows (CTRL_CLOSE/taskkill
63
+ maps there, not to SIGTERM). A hard TerminateProcess/-9 runs no handler —
64
+ that is covered by the next start's owner-claim liveness check and SH07
65
+ recovery, not by anything here."""
66
+ sigs = [signal.SIGINT, signal.SIGTERM]
67
+ win_break = getattr(signal, "SIGBREAK", None)
68
+ if win_break is not None:
69
+ sigs.append(win_break)
70
+ return sigs
71
+
72
+
73
+ def _install_shutdown_signals(host: GatewayServiceHost) -> _ShutdownState:
74
+ """Drain-first signal handling for the serving process (SH10 Slice B).
75
+
76
+ Refuse-force semantics make no sense on an OS kill signal -- there is no
77
+ interactive way to "drain first" in response to SIGTERM, so this goes
78
+ straight to a forced stop. If that itself fails for some reason, fall
79
+ back to a raw server shutdown so the process still exits rather than
80
+ hanging on a broken lifecycle path.
81
+ """
82
+ state = _ShutdownState()
83
+
84
+ def _handler(signum: int, _frame: object) -> None:
85
+ del signum
86
+ try:
87
+ if host.lifecycle is not None:
88
+ host.lifecycle.request_stop(force=True)
89
+ else:
90
+ host.shutdown()
91
+ except Exception:
92
+ state.forced_fallback = True
93
+ with contextlib.suppress(Exception):
94
+ host.shutdown()
95
+
96
+ for sig in _shutdown_signals():
97
+ with contextlib.suppress(OSError, ValueError):
98
+ signal.signal(sig, _handler)
99
+ return state
100
+
101
+
102
+ def cmd_gateway(args: argparse.Namespace, project_root: Path) -> int:
103
+ del project_root
104
+ if args.gateway_cmd != "serve":
105
+ raise ValueError(f"unsupported gateway command: {args.gateway_cmd}")
106
+ from audiagentic.components.agents.gateway.service.host import GatewayServiceHost
107
+
108
+ host = GatewayServiceHost.create(
109
+ host=args.host,
110
+ port=args.port,
111
+ token_path=Path(args.token_file).resolve() if args.token_file else None,
112
+ )
113
+ print(f"gateway endpoint: {host.endpoint}")
114
+ print(f"gateway token file: {host.token_path}")
115
+ shutdown_state = _install_shutdown_signals(host)
116
+ try:
117
+ host.serve_forever()
118
+ except KeyboardInterrupt:
119
+ return 0
120
+ finally:
121
+ host.close()
122
+ return 1 if shutdown_state.forced_fallback else 0
123
+
124
+
125
+ # - SH10 lifecycle operators -
126
+
127
+ def _json_out(data: object) -> None:
128
+ """Print redacted JSON to stdout."""
129
+ print(json.dumps(data, indent=2, default=str))
130
+
131
+
132
+ def cmd_gateway_status(args: argparse.Namespace, project_root: Path) -> int:
133
+ """gateway status - query service state via HTTP client."""
134
+ client = _standalone_client_from_env()
135
+ try:
136
+ result = client.service_status(project_root)
137
+ finally:
138
+ client.close()
139
+ _json_out(result)
140
+ return 0
141
+
142
+
143
+ def cmd_gateway_drain(args: argparse.Namespace, project_root: Path) -> int:
144
+ """gateway drain - begin graceful drain via HTTP client."""
145
+ del args
146
+ client = _standalone_client_from_env()
147
+ try:
148
+ result = client.service_drain(project_root)
149
+ finally:
150
+ client.close()
151
+ _json_out(result)
152
+ return 0
153
+
154
+
155
+ def cmd_gateway_resume(args: argparse.Namespace, project_root: Path) -> int:
156
+ """gateway resume - cancel draining via HTTP client."""
157
+ del args
158
+ client = _standalone_client_from_env()
159
+ try:
160
+ result = client.service_resume(project_root)
161
+ finally:
162
+ client.close()
163
+ _json_out(result)
164
+ return 0
165
+
166
+
167
+ def cmd_gateway_stop(args: argparse.Namespace, project_root: Path) -> int:
168
+ """gateway stop [--force] - request operator stop via HTTP client."""
169
+ client = _standalone_client_from_env()
170
+ try:
171
+ result = client.service_stop(project_root, force=args.force)
172
+ finally:
173
+ client.close()
174
+ _json_out(result)
175
+ return 0
176
+
177
+
178
+ def cmd_gateway_recover(args: argparse.Namespace, project_root: Path) -> int:
179
+ """gateway recover - record-only dead-owner recovery (never HTTP).
180
+
181
+ Deliberately bypasses the HTTP client because recovery targets a
182
+ dead/unprovable service; it goes straight to the store via the
183
+ lifecycle module.
184
+ """
185
+ from audiagentic.components.agents.gateway.service.lifecycle import (
186
+ recover_unprovable_owner,
187
+ )
188
+
189
+ # Automatic gateway ownership is machine-scoped. Recovery must address
190
+ # the same default machine store as bootstrap, not synthesize a second
191
+ # project-local managed-service record beneath ``project_root``.
192
+ result = recover_unprovable_owner(confirm=args.confirm, reason=args.reason)
193
+ _json_out(result)
194
+ return 0
195
+
196
+
197
+ __all__ = [
198
+ "cmd_gateway",
199
+ "cmd_gateway_drain",
200
+ "cmd_gateway_recover",
201
+ "cmd_gateway_resume",
202
+ "cmd_gateway_status",
203
+ "cmd_gateway_stop",
204
+ ]
@@ -0,0 +1,36 @@
1
+ """Private process-entry handlers used by generated harness configuration."""
2
+ from __future__ import annotations
3
+
4
+ import argparse
5
+ import importlib
6
+ import sys
7
+ from pathlib import Path
8
+
9
+ from audiagentic.foundation.contracts.errors import make_error
10
+
11
+
12
+ def cmd_mcp(args: argparse.Namespace, project_root: Path) -> int:
13
+ """Run a configured component MCP module over stdio.
14
+
15
+ This is intentionally an internal launcher contract: generated MCP config
16
+ invokes it, but it is not part of the supported interactive CLI surface.
17
+ """
18
+ del project_root
19
+ module = importlib.import_module(args.module)
20
+ main = getattr(module, "main", None)
21
+ if not callable(main):
22
+ raise make_error(
23
+ prefix="CFG",
24
+ component="MCP",
25
+ number=2,
26
+ kind="mcp",
27
+ message="MCP module does not expose a callable main().",
28
+ details={"module": args.module},
29
+ )
30
+ original_argv = sys.argv
31
+ try:
32
+ sys.argv = [args.module, *(args.module_args or [])]
33
+ result = main()
34
+ finally:
35
+ sys.argv = original_argv
36
+ return result if isinstance(result, int) else 0