This commit adds the read path (Cortex) to complement the write path (Spine): ## Crates - stemedb-api: HTTP API with axum + utoipa OpenAPI - /v1/assert, /v1/query, /v1/epoch, /v1/skeptic, /v1/trace, /v1/audit - Metered endpoints with quota enforcement - Ed25519 signature verification - stemedb-lens: Truth resolution lenses - RecencyLens, ConsensusLens, ConfidenceLens - VoteAwareConsensusLens (Ballot Box pattern) - TrustAwareAuthorityLens (The Hive pattern) - SkepticLens (conflict analysis) - EpochAwareLens (paradigm-safe queries) - stemedb-query: Query engine with materialized views ## Storage Extensions - VoteStore: Vote aggregation with cached counts - TrustRankStore: Agent reputation with decay - AuditStore: Query audit trail - IndexStore: SP/P/S index structures - SupersessionStore: Epoch supersession chains ## SDKs - sdk/go/steme: Go HTTP client with Ed25519 signing - sdk/go/adk: ADK-Go tools for AI agents ## Documentation - Updated CLAUDE.md, architecture.md, roadmap.md - New ai-lookup entries for all services - Use case docs for consumer health intelligence - Arena roadmap for simulation advancement Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
119 lines
3.0 KiB
Plaintext
119 lines
3.0 KiB
Plaintext
sequenceDiagram
|
|
%% The Catastrophe
|
|
|
|
participant RA as Research Agent
|
|
participant E as Episteme
|
|
participant LO as Lead Orchestrator
|
|
participant DA as Deploy Agent
|
|
participant P as Production
|
|
|
|
RA->>E: Store RFC finding
|
|
Note right of E: RFC proposes ES256. Stored as PROPOSED.
|
|
|
|
LO->>E: What's the JWT algorithm?
|
|
Note right of E: ⚠️ No lifecycle filter. This is the bug.
|
|
|
|
E-->>LO: ES256 (conf: 0.87)
|
|
Note right of LO: ⚠️ Returns the proposal. Most recent wins.
|
|
|
|
DA->>P: Deploy ES256 config
|
|
Note right of P: ⚠️ Deployed with confidence. Tests passed.
|
|
|
|
P->>P: 401 Unauthorized
|
|
Note over P: ⚠️ Auth service expects RS256. Every token fails.
|
|
|
|
|
|
---
|
|
|
|
sequenceDiagram
|
|
%% The Correct Path
|
|
|
|
participant RA as Research Agent
|
|
participant E as Episteme
|
|
participant LO as Lead Orchestrator
|
|
participant DA as Deploy Agent
|
|
participant P as Production
|
|
|
|
RA->>E: Store RFC finding
|
|
Note right of E: Same RFC. Still stored as PROPOSED.
|
|
|
|
LO->>E: What's the APPROVED algorithm?
|
|
Note right of E: ✓ Lifecycle filter: approved only.
|
|
|
|
E-->>LO: RS256 (conf: 0.92)
|
|
Note right of LO: ✓ Returns the approved decision. Proposal excluded.
|
|
|
|
DA->>P: Deploy RS256 config
|
|
Note right of P: ✓ Deployed. Matches production expectation.
|
|
|
|
P->>P: 200 OK
|
|
Note over P: ✓ Auth works. No pager. Sleep continues.
|
|
|
|
|
|
---
|
|
|
|
sequenceDiagram
|
|
%% The Correction Loop
|
|
|
|
participant H as Human Supervisor
|
|
participant E as Episteme
|
|
participant G as Gardener
|
|
|
|
H->>E: What did the agent query?
|
|
Note right of E: SRE investigates the incident.
|
|
|
|
E-->>H: Query audit trail
|
|
Note right of H: ⚠️ Found it: no lifecycle filter used.
|
|
|
|
H->>E: Mark assertion incorrect
|
|
Note right of E: Correct the record.
|
|
|
|
G->>E: Store negative constraint
|
|
Note right of E: ✓ Future queries will see this constraint.
|
|
|
|
|
|
---
|
|
|
|
sequenceDiagram
|
|
%% Persistent Learning
|
|
|
|
participant H as Human Supervisor
|
|
participant E as Episteme
|
|
participant IA as Implementation Agent
|
|
|
|
H->>E: Correct the agent
|
|
Note right of E: Human stores: use axios, not requests.
|
|
|
|
IA->>IA: New session begins
|
|
Note over IA: 30 days later. Fresh context window.
|
|
|
|
IA->>E: Pre-flight constraint check
|
|
Note right of E: ✓ Before writing code, check constraints.
|
|
|
|
E-->>IA: Constraint found: use axios
|
|
Note right of IA: ✓ The correction from Day 1 persists.
|
|
|
|
IA->>IA: Write correct code
|
|
Note over IA: ✓ Agent uses axios. Constraint honored.
|
|
|
|
|
|
---
|
|
|
|
sequenceDiagram
|
|
%% Time Travel Debugging
|
|
|
|
participant H as Human Supervisor
|
|
participant E as Episteme
|
|
|
|
H->>E: Current state?
|
|
Note right of E: Shows RS256 (post-fix). Useless for debugging.
|
|
|
|
H->>E: What did we believe at 9pm?
|
|
Note right of E: Time-travel query.
|
|
|
|
E-->>H: ES256 (at 9pm)
|
|
Note right of H: ⚠️ Found it. This was the state at incident time.
|
|
|
|
E-->>H: Diff: RFC added at 2:30pm
|
|
Note right of H: ✓ Clear timeline of what changed and when.
|