bb2e6bf8d31773c0fece9bb604e8f616ccfa9372
3
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
4cc81ae1ea |
openapi: V8 · Open Edition — capabilities manifest + drop eval/operative dups (#26)
- capabilities.yaml: THE registry — 8 domains, one capability = one name = one /v1/<name> = one spec. core + internal + collapsed + pending + review. merge.py's grouping source. - info.version 1.0.0 -> 8.0.0 everywhere (routes stay /v1 — the contract is immutable; 8.0.0 is the platform generation). Title carries 'V8 · Open Edition'. - drop eval/ (pure dup of evals) + operative/ (computer-using-agent split: bot = the CUA, visor = the VM it runs on). hanzo.yaml regenerated. |
||
|
|
80498a1ba8 |
fix(spec): quote all remaining comma-bearing flow descriptions (#22)
openapi-generator flagged 3 more phantom keys in parameter/schema descriptions (provider '(slack, github)', state 'HMAC-signed, single-use', etc). Generalize the quote fix to every inline flow description ending a map; comprehensive parse-based scan across params/schemas/responses now reports 0 phantom keys (examples[] is valid OpenAPI 3.1 JSON-Schema, not a phantom). 10 descriptions quoted across admin/exec/framework/integrations/prompts/tasks/tracker/visor. Co-authored-by: Hanzo Dev <[email protected]> |
||
|
|
01c59d173f |
Reconcile hanzo.yaml to the live cloud surface — 1698 paths, all products (#18)
* spec(ai): define /v1/images/generations + /v1/audio/{speech,transcriptions}
The ai spec's description already advertised /v1/images/* and /v1/audio/*
but never defined the operations. Add the OpenAI-compatible image generation,
text-to-speech, and speech-to-text (Whisper) operations + schemas so the spec
matches the SDK image/audio resources and what hanzo.chat consumes.
* spec(app): add hanzo.app projects & deployments surface (/v1/projects/*)
hanzo.app calls GET/POST /v1/projects, GET/PATCH/DELETE /v1/projects/{slug},
POST /v1/projects/{slug}/deploy (tar artifact or git build), and
GET /v1/projects/{slug}/deployments — none of which were in any spec.
New self-contained app service spec, top-level /v1/projects/* (path is the
contract, same rationale as top-level inference). Org is resolved server-side
from the IAM JWT owner claim, never sent by the browser.
* spec(base): add Hanzo Base records surface (/v1/collections/{collection}/records)
hanzo.app persists each site's working draft as a row in the Base site_drafts
collection (gated by VITE_BASE_URL) via GET(list+filter)/POST/PATCH on
/v1/collections/{collection}/records. Add a self-contained base service spec
covering the full record CRUD so the frontend contract is complete.
* spec(cloud): scrub literal '/api/' from product-surface comment
The only '/api/' occurrence left in any spec was a documentation comment.
Reword so 'grep -rn /api/' returns zero across the repo; meaning is unchanged
(every route is /v1/*).
* feat(openapi): regenerate unified hanzo.yaml (38 services, 1590 paths)
Regenerated via merge.py after adding app + base and the ai image/audio ops.
Verified: zero /api/ paths and zero /api/ literals across all specs; the only
non-/v1 routes are the unversioned infra probes /health, /healthz, /metrics.
README service index gains app + base rows.
* fix(merge): namespace operationIds by service in unified master
Two services can each define a unique-within-themselves operationId that
collides in the merged master (e.g. base.listRecords vs another service).
Redocly flagged 23 operation-operationId-unique errors, making the master
invalid as a single generatable document. Prefix operationIds with the
service tag — the same namespacing already applied to schemas/responses/
params — so the master is a globally-valid OpenAPI doc every client can
derive from. Per-service specs (Stainless inputs) keep their bare
operationIds. Master lint errors: 369 -> 100 (remainder is pre-existing
per-service nullable/summary debt, unrelated to this change).
* docs(sdk): document the one canonical regeneration path per SDK
hanzo.yaml is the source of truth; JS/Python/Go regenerate via the Stainless
'hanzo-ai' project (push spec -> PR), Rust is hand-written crates (not
spec-generated). Records the exact 'stl builds create' command + KMS-sourced
key for the hosted step.
* docs(openapi): document /v1/sdk enveloped secrets+sign surface (kms)
Add POST /v1/sdk/secrets — the SDK-facing native secrets plane served by
kmsd. Single RPC endpoint: the operation is the SIGNED op field, not the
URL; the ML-DSA-65 envelope IS the credential (no bearer, security: []).
Adds SdkEnvelope + SdkEnvelopeIdentity schemas. Regenerated hanzo.yaml.
* docs(sdk): record the real generation drift + the one-way
The published python/go/js SDKs derive from the LEGACY LLM-gateway spec, not
hanzo.yaml — they cover inference + gateway-admin only, none of the cloud
products. README implied otherwise; correct it. LLM.md now records: repoint
Stainless hanzo-ai -> hanzo.yaml, the 28 live /v1 prefixes with no spec, the 4
prefix-mismatch re-bases, and the stale monolith specs (cloud/nexus). Add cpp +
dart rows (openapi-generator on ARC) — one repo per language, one spec source.
* spec(agents,functions): add /v1/agents + /v1/functions surfaces from clients/*
Route-accurate to hanzoai/cloud/clients/{agents,functions}. agents covers
the agent CRUD + metered run + live session tree; functions covers
serverless CRUD + metered invoke + triggers/deployments/secrets/metrics.
Self-contained; regenerated hanzo.yaml (0 dup operationIds, 0 dangling refs).
* spec(framework,tracker,crm): add business-app surfaces from clients/*
Route-accurate to hanzoai/cloud/clients/{framework,tracker,crm}: framework
doctype/module/role + generic document CRUD, tracker projects+issues,
crm companies/contacts/opportunities.
* spec(automations,integrations,admin,plan): add orchestration + admin surfaces
Route-accurate to hanzoai/cloud/clients/{automations,integrations,admin,plan}:
automations flows/versions/runs/pieces/mcp, integrations provider-connect +
Slack, admin god-view aggregates, plans catalog/resolve/entitlements (the
plan spec expands the fixed-binding route loop, not just literal app.Get calls).
* spec(visor,zt): re-base onto live flat prefixes from clients/{visor,zt}
* spec(kb,prompts,templates): add /v1/{kb,prompts,templates} from clients/*
* spec(git,graph,do): add /v1/git + /v1/{indexers,oracles} + /v1/{vpcs,load-balancers} from clients/*
* spec(billing,security): add /v1/billing + /v1/security from clients/*
* spec(exec,websearch,tasks): add /v1/{exec,websearch,tasks} proxy surfaces; regen hanzo.yaml (58 services); changelog
---------
Co-authored-by: Hanzo Dev <[email protected]>
|