[codex] Add Syrin Agent OS export kit#19
Conversation
…yrin-sandbox-v012 # Conflicts: # agoragentic/README.md # agoragentic/examples/README.md # tests/test_agoragentic_autonomous_lifecycle.py
…cy' into codex/agoragentic-agent-os-export-kit # Conflicts: # agoragentic/README.md # agoragentic/WORKFLOW_SCHEMAS.md # agoragentic/examples/README.md # tests/test_agoragentic_autonomous_lifecycle.py
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (2)
📝 WalkthroughWalkthroughThis PR adds a Syrin Agent OS export starter kit (manifest/workflow/checklist/prompt), Syrin v0.12 sandbox execute-loop and Micro ECF policy pack examples, documentation and workflow-schema updates, and tests covering the new examples and starter kit builders. ChangesAgent OS Export Integration
Sequence DiagramssequenceDiagram
participant User
participant MicroECF as Micro ECF
participant Agoragentic
participant Execution
User->>MicroECF: Submit action (e.g., "transfer $100")
MicroECF->>MicroECF: Scan for sensitive/prohibited terms
MicroECF->>MicroECF: Match against execution boundary + review gates
MicroECF->>Agoragentic: Return classification + required evidence + fingerprint
alt Decision is DENY
Agoragentic->>Execution: Embed policy in payload with preview_only=true, prefer_execute=false
else Decision is REVIEW
Agoragentic->>Execution: Flag requires approval + evidence gates, preview_only=true
else Decision is ALLOW
Agoragentic->>Execution: prefer_execute=true (if live enabled)
end
Execution-->>User: Execute or preview based on decision
sequenceDiagram
participant Developer
participant Sandbox as Syrin Sandbox
participant Guardrails
participant PlanGen as Plan Generator
participant Agoragentic
Developer->>Sandbox: Provide task + max_cost + requested action
Sandbox->>Guardrails: Evaluate action for sensitive/prohibited terms
Guardrails->>Sandbox: Return allow/review/deny decision
Sandbox->>PlanGen: Build workspace contract + step sequence + Syrin snippet
PlanGen->>Agoragentic: Build execute payload with constraints (max_cost, preview_only/prefer_execute)
alt Guardrail decision is ALLOW and run_live true
Agoragentic->>Execution: prefer_execute=true
else
Agoragentic->>Execution: preview_only=true
end
Agoragentic-->>Developer: Return plan + payload as JSON
sequenceDiagram
participant Platform
participant ExportKit
participant Manifest
participant Workflow
participant Checklist
Platform->>ExportKit: Request Agent OS export (goal, mode, budget)
ExportKit->>Manifest: build_export_manifest(...)
Manifest->>ExportKit: Return SyrinAgentOSExport
ExportKit->>Workflow: build_deployment_workflow(...)
Workflow->>Checklist: build_acceptance_checklist(manifest)
Checklist->>Workflow: Return checklist (platform checks conditional)
Workflow-->>Platform: Return workflow JSON (manifest, preview payload, phases, checklist)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@agoragentic/examples/micro_ecf_policy_pack.py`:
- Around line 269-303: In classify_action the required_evidence is only computed
from sensitive_terms so actions matching SECRET_LIKE_TERMS (secret_terms) can be
marked "review" but show no required_evidence; update the call to
required_evidence_for_terms to include secret_terms too (e.g., pass the
union/concatenation of sensitive_terms and secret_terms or a combined_terms
variable) so evidence requirements cover both sensitive and secret-like matches;
reference classify_action, variables sensitive_terms and secret_terms, and
function required_evidence_for_terms when making the change.
In `@agoragentic/examples/syrin_sandbox_execute_loop.py`:
- Around line 137-140: The workspace contract's outputs declared in
build_workspace_contract() currently list "attempt.json" and "reflection.json"
but build_sandbox_steps() actually writes "outputs/attempt.json" and
"outputs/reflection.json"; update build_workspace_contract() to declare the
canonical paths "outputs/attempt.json" and "outputs/reflection.json" (or
alternatively change build_sandbox_steps() to write the root files) so the
contract matches the real file locations; reference build_workspace_contract()
and build_sandbox_steps() when making the change.
In `@agoragentic/starter_kits/syrin_agent_os_export/deployment_flow.py`:
- Around line 63-79: In build_deployment_workflow, validate the parameters
before calling build_export_manifest: ensure agent_count is an int > 0 and
max_budget_usd is a number >= 0 (raise a ValueError with a clear message if
not), and normalize/convert types as needed; apply the same validation where
build_export_manifest is called/constructed elsewhere (the export building path)
so negative budgets or non-positive agent counts are rejected early and do not
produce invalid deployment manifests.
In `@agoragentic/starter_kits/syrin_agent_os_export/export_manifest.py`:
- Around line 258-277: The build_platform_preview_payload function forwards the
provider argument verbatim, which can lead to invalid preview requests if
provider is None or blank; normalize provider before constructing the payload by
ensuring it's a non-empty string (e.g., coerce to str, strip whitespace, and
fall back to "simulated_runtime" when falsy) and then use that sanitized value
in the payload's "provider" field so provider is never None/empty at runtime.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 6b0f7a3c-d41c-49d0-b964-f256e4ecc7de
📒 Files selected for processing (19)
README.mdagoragentic/MICRO_ECF_POLICY_PACK.mdagoragentic/NATIVE_ROADMAP.mdagoragentic/README.mdagoragentic/SANDBOX_AND_DEPLOYMENT.mdagoragentic/WORKFLOW_SCHEMAS.mdagoragentic/examples/README.mdagoragentic/examples/micro_ecf_policy_pack.pyagoragentic/examples/syrin_sandbox_execute_loop.pyagoragentic/starter_kits/README.mdagoragentic/starter_kits/syrin_agent_os_export/README.mdagoragentic/starter_kits/syrin_agent_os_export/__init__.pyagoragentic/starter_kits/syrin_agent_os_export/acceptance_checklist.pyagoragentic/starter_kits/syrin_agent_os_export/agent_os_prompt.pyagoragentic/starter_kits/syrin_agent_os_export/deployment_flow.pyagoragentic/starter_kits/syrin_agent_os_export/export_manifest.pytests/test_agoragentic_autonomous_lifecycle.pytests/test_agoragentic_starter_kits.pytests/test_agoragentic_syrin_agent_os_export.py
…entic-agent-os-export-kit
…cy' into codex/agoragentic-syrin-sandbox-v012 # Conflicts: # agoragentic/README.md # agoragentic/WORKFLOW_SCHEMAS.md # agoragentic/examples/README.md # tests/test_agoragentic_autonomous_lifecycle.py
…entic-agent-os-export-kit # Conflicts: # agoragentic/README.md # agoragentic/WORKFLOW_SCHEMAS.md # tests/test_agoragentic_autonomous_lifecycle.py
Summary
syrin_agent_os_exportstarter kit for self-hosted, platform-hosted, or hybrid Agoragentic x Syrin deployments.syrin integrate agoragenticas a maintainer-gated future core integration, not implemented here.Stack note
This PR is stacked on the still-open Agoragentic integration PRs:
Recommended merge order: #17, #18, then this PR. I can rebase this branch after #17/#18 land.
Validation
python -m compileall -q agoragentic testspython -m ruff check agoragentic\starter_kits\syrin_agent_os_export tests\test_agoragentic_syrin_agent_os_export.py tests\test_agoragentic_starter_kits.pypython -m unittest discover -s tests -vpython agoragentic\starter_kits\syrin_agent_os_export\deployment_flow.py "Deploy a bounded growth swarm." --mode hybrid --agent-count 3 --max-budget-usd 0.25Summary by CodeRabbit
New Features
Documentation
Examples
Tests