- package: manifest v1.0 (schema, package_id, layers: odoo_modules/agents/docs/config/brain) - agents: 4 neutral cards + prompts (sellers-recruiter, test-operator, closer, compliance) no script.run in v0.1.0; odoo.* + file.* primitives only - modules: aura_business_core + hitridge_venture_o1 stubs (menus, ACLs, models) - docs: playbook, test-checklist, price-guide-starter, agreement-template.odt - config: channels (olx-bg/forums-local), pricing-rules (BGN, A/B/C/reject, drop ladder) - brain: empty-seed capability contract + seeds README (memories never ship) - toolchain: depo-sign.sh (ed25519, PEM+raw), validate-depo.sh (schema/files/cards/tools/ secrets/sig gates -> writes VALIDATE), tool-registry.json - install.sh: target-side verify (hash + ed25519 + layer files); install is phase 2 - public-keys/depo-signing.pub committed (private key stays out of repo) - VALIDATE: PASS (signed + verified, tamper-rejection tested)
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
"""O1 brain — runtime/memory capability (ships as capability; memories are EMPTY seeds at install).
|
|
|
|
The brain.py here is the *capability contract* for the O1 package. At install time the
|
|
target runtime provides the real implementation (same CLI contract). Memories are never
|
|
shipped — only the engine and namespace naming convention, so each target seeds fresh.
|
|
|
|
CLI contract (per agent-card-spec v1.0, `memory` field):
|
|
brain.py store <namespace> <key> <value>
|
|
brain.py search <namespace> <query> [topk]
|
|
brain.py clear <namespace>
|
|
|
|
Namespaces used by O1 agents (see agent cards):
|
|
o1-sellers, o1-tests, o1-closer, o1-compliance
|
|
"""
|
|
import sys
|
|
|
|
|
|
def _die(msg: str, code: int = 1) -> None:
|
|
print(f"brain: {msg}", file=sys.stderr)
|
|
sys.exit(code)
|
|
|
|
|
|
def main(argv: list[str]) -> int:
|
|
if len(argv) < 3:
|
|
_die(f"usage: {argv[0]} <store|search|clear> <namespace> [...]")
|
|
cmd, ns = argv[1], argv[2]
|
|
if cmd == "store" and len(argv) >= 5:
|
|
key, value = argv[3], argv[4]
|
|
print(f"store {ns}/{key} (empty-seed runtime: no-op)")
|
|
return 0
|
|
if cmd == "search":
|
|
print(f"search {ns}: empty seed — no memories yet")
|
|
return 0
|
|
if cmd == "clear":
|
|
print(f"clear {ns} (empty-seed runtime: no-op)")
|
|
return 0
|
|
_die(f"unknown command/arity: {' '.join(argv[1:])}")
|
|
return 1
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main(sys.argv))
|