Rejestr kontraktów¶
| Kontrakt | Producent | Konsument | Najważniejsze pola / invariant |
|---|---|---|---|
norbi.intent.v1 |
UI/Channel/Trigger | Core | actor, project, raw content, attachments, constraints; bez capability |
norbi.context.v1 |
Context Builder | Provider/Agent | items z source/class/trust/budget; immutable snapshot hash |
norbi.proposal.v1 |
Provider/Agent | Broker/Planner | suggested actions są niezaufane; fake approval ignorowany |
norbi.workflow.v1 |
Factory/Planner | Workflow Engine | DAG bez cykli, typed ports, budgets, policies |
norbi.job.v1 |
Workflow/Broker | Worker | jeden operation, attempt, idempotency, state, artifact ports |
norbi.state.v1 |
Broker | wszystkie read models | tylko kanoniczne przejścia, audit atomowy |
norbi.capability.v1 |
Governance/Registry | Policy/Runner | scoped fact; empty scope deny; brak delegacji agentowej |
norbi.policy-decision.v1 |
Policy Engine | Broker/Approval/Runner | allow/deny/approval, risk, required caps, version |
norbi.approval.v1 |
Broker/Approval Center | Broker | pełny disclosure, context hash, human channel |
norbi.execution-grant.v1 |
Broker | Tool Runner | exact binding, nonce, expiry, one-time consume |
norbi.tool-manifest.v1 |
Publisher/Registry | Policy/Runner | schema, effects, roots, network, accounts, validators |
norbi.tool-invocation.v1 |
Runner | Adapter | exact version/payload; brak arbitrary command/path |
norbi.execution-receipt.v1 |
Adapter/Runner | Broker/Audit | attempt, hashes, observed effects, terminal/uncertain |
norbi.artifact.v1 |
Adapter/Store | Consumers | content hash, version, class, lineage, stage/status |
norbi.memory.v1 |
Memory pipeline | Context Builder | source, scope, confidence, validity, retention |
norbi.provider.v1 |
Router | Provider Adapter | request/stream/cancel/usage; proposal only |
norbi.agent-manifest.v1 |
Agent Factory | Agent Registry | role, context, tools, models, tests, lifecycle |
norbi.resource.v1 |
Job/Scheduler | Worker/Scheduler | request/reservation; nie capability |
norbi.worker.v1 |
Worker/Registry | Broker/Scheduler | identity, advertisement, lease, no scope expansion |
norbi.account.v1 |
Admin/Registry | Policy/Credential Broker | metadata + vault handle; zero raw secrets |
norbi.channel.v1 |
Channel Gateway | Core/Workflow | source IDs, dedupe, untrusted content, attachments |
norbi.communication.v1 |
Workflow | Channel Adapter | draft/upload/send/publish oddzielone |
norbi.app-session.v1 |
Desktop Broker | Adapter/Worker | app/version/project/focus/materialization/lease |
norbi.automation.v1 |
Trigger Registry | Gateway/Workflow | active state, source, route, limits; trigger ≠ capability |
norbi.audit.v1 |
Control Plane | Audit Store/UI | sequence, actor, states, refs, integrity, classification |
norbi.recovery.v1 |
Operator/Recovery Console | Management components | runbook, exact target/action, human approval, evidence |
Zasady wersjonowania¶
- major: zmiana semantyki, niekompatybilna i wymagająca migracji/review;
- minor: kompatybilne rozszerzenie tylko tam, gdzie kontrakt dopuszcza unknown/optional fields;
- patch: korekta walidacji lub dokumentacji bez zmiany semantyki;
- security objects preferują exact schema i odrzucają unknown fields;
- job/approval/grant zapisują exact version, nie ruchomy zakres;
- migracja tworzy nową reprezentację z lineage; nie zmienia historii;
- approval nie przechodzi między wersjami payloadu lub tool.
Kanonizacja i integralność¶
Hash używa jednego canonical JSON, jednoznacznego UTF-8 i domain separation per typ. Czas bezpieczeństwowy pochodzi od brokera w UTC. Identyfikatory są nieprzewidywalne tam, gdzie ujawnienie sekwencji byłoby ryzykiem. Wielkie blobs są hashowane strumieniowo i reprezentowane artifact ID, nie wklejane do joba.
Kontrakt odmowy¶
Nieznana wersja, pole, state, capability, path, destination, account lub tool powoduje odmowę. Komponent nie zgaduje mapowania. Błąd ma stabilny kod, correlation ID i zredagowany opis. Retry jest dozwolony tylko według failure semantics danego kontraktu.