13 Commits

Author SHA1 Message Date
Yauhen Bichel 4232ee5e8e refactor(agent_harness): inject the investigation runner instead of a module global (#5682)
* refactor(agent_harness): inject the investigation runner instead of a module global
* docs(agent_harness): pass the investigation runner in the embedding examples
2026-08-24 17:10:15 +01:00
Yauhen Bichel 43591a7ba3 Split harness_ports into a role-named harness_providers package (#5360) 2026-08-21 23:30:13 +01:00
Priyansh Kandwal 53dc66f66c docs(api): document OpenSRE as teammate, daily recipes, and unattended loops (#4894) (#5037)
* docs(api): document OpenSRE as teammate, daily recipes, and unattended loops (#4894)

* docs(api): accept action-only turns in success guard

The previous guard required result.answered (LLM produced a run), which
rejects valid action-only turns where tools handle the request without
calling the LLM.  The correct condition is:

  (answered OR executed_success_count > 0) AND NOT cancelled

- answered: conversational LLM produced a response
- executed_success_count > 0: action tools handled the turn successfully
- not cancelled: host did not cancel/timeout the turn

On a failed action-LLM call, executed_success_count is 0 (action_driver
L1070), so error prose is still excluded.  The cancelled guard prevents
forwarding timeout/stop text as a valid digest.

Closes the review finding that the documented recipe aborts on a
successful handled_without_llm route.

* docs(api): use final_intent for action-handled turns in success guard

Fixes the result guard semantics across all turn routes:
- Conversational answers (LLM runs) set result.answered.
- Action-only turns (handled directly by tools/commands without an LLM)
  complete with result.final_intent == 'cli_agent_handled'.
- Failed turns (e.g. provider errors, or action succeeded but LLM answer
  failed) and host-cancelled turns (result.cancelled) are rejected so
  diagnostic error prose is never delivered as successful output.

* docs(api): guard against action-phase LLM failures in success check

Refines the action success check:
- Conversational answers check result.answered.
- Action-only turns require result.action_result.handled,
  not result.action_result.has_unhandled_clause, and
  result.action_result.accounting_status == 'completed'.
- Action-phase LLM failures (which set accounting_status='not_run' and
  has_unhandled_clause=True) are strictly rejected so failure prose is
  never forwarded as successful output.
2026-08-18 16:12:20 +05:30
Shinu Cherian c55a421353 docs(api): add Python API goal embed recipe and register in docs.json (#4897) (#4997)
* docs(api): add Python API goal embed recipe and register in docs.json (#4897)

* docs(api): update Python API recipe to use canonical SessionManager and session state (#4897)

* docs(api): add reasoning client to production integration recipe (#4897)

* docs(api): document canonical AgentSession, configure_process, and chat_until_goal recipes (#4897)

* docs(api): fix session startup reference and use canonical AgentSession.start (#4897)

* docs(api): clarify goal completion outcomes

- align the explicit goal condition with the full checklist\n- document paused as a terminal return state for the loop

---------

Co-authored-by: muddlebee <anweshknayak@gmail.com>
2026-08-18 15:43:34 +05:30
Devesh 568c04f7c1 refresh docs — shared integration flow, clearer guides, and accuracy fixes (#4697)
* docs: reorganize sidebar navigation and clean up install pages`

* feat: enhance index hero styling and update features documentation

* docs: update installation guides and enhance table styling

* docs: enhance investigation documentation and improve interactive shell descriptions

* Update documentation for API, community giveaway, CloudOpsBench, deployment, FAQ, PR review flow, and Python API

* Update documentation for background investigations, closed-loop learning, cron scheduling, and integrations overview

* Introducing structured flow for the documentation

* docs: update integration documentation for various services

---------

Co-authored-by: Vaibhav Upreti <vaibhav.upreti16@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 13:50:26 +01:00
Yauhen Bichel 2dc7579a67 refactor(harness): four import doors by role — ports is the Implement door, spi split into role modules, llm_factory replaces ToolCallingDeps (#5029) 2026-08-17 12:01:13 +01:00
Yauhen Bichel a6ba89b5a4 refactor(harness): DefaultPorts replaces the 26-param agent factory; bind_turn takes a whole TurnBinding (#5021) 2026-08-17 10:27:33 +01:00
Yauhen Bichel 6916cdf795 refactor(harness): three import doors, one HeadlessAgent for shell and gateway, tenant scope across worker threads (#5020) 2026-08-17 09:03:52 +01:00
Yauhen Bichel 2f7919a943 fix(gather): stop re-paying dead-host timeouts and MCP discovery loops across SessionGoal turns (#4952) 2026-08-12 16:14:24 +01:00
Yauhen Bichel e2d43fc210 refactor(harness): AgentSession narrative, shared process gate, scheduler worker profile (#4817) 2026-08-07 18:40:38 +01:00
Yauhen Bichel 4a6aeb484a feat(bootstrap): process-level bootstrap layer; fix doubled investigation progress rendering (#4798) 2026-08-07 13:11:56 +01:00
Yauhen Bichel 9a4e942309 refactor: extract package entrypoints and close harness/gateway audit gaps (#4644)
* refactor: extract package entrypoints and close harness/gateway audit gaps

Move CLI/integrations/wizard mains into app.py modules, pass HarnessConfig
prompts through AgentHarness.start(), add org-scoped investigation cancel with
JSONL security audit, and forward StreamingConsole output for embed capture.
2026-08-01 21:51:17 +01:00
Yauhen Bichel dad9aa539e refactor: readable entry points — startup extracted from gateway boot, plain names, TurnResult, Python API docs (#4610) 2026-07-31 12:52:35 +01:00