Document ecosystem state and integration contract
This commit is contained in:
100
docs/atocore-ecosystem-and-hosting.md
Normal file
100
docs/atocore-ecosystem-and-hosting.md
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
# AtoCore Ecosystem And Hosting
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
This document defines the intended boundaries between the Ato ecosystem layers
|
||||||
|
and the current hosting model.
|
||||||
|
|
||||||
|
## Ecosystem Roles
|
||||||
|
|
||||||
|
- `AtoCore`
|
||||||
|
- runtime, ingestion, retrieval, memory, context builder, API
|
||||||
|
- owns the machine-memory and context assembly system
|
||||||
|
- `AtoMind`
|
||||||
|
- future intelligence layer
|
||||||
|
- will own promotion, reflection, conflict handling, and trust decisions
|
||||||
|
- `AtoVault`
|
||||||
|
- human-readable memory source
|
||||||
|
- intended for Obsidian and manual inspection/editing
|
||||||
|
- `AtoDrive`
|
||||||
|
- trusted operational project source
|
||||||
|
- curated project truth with higher trust than general notes
|
||||||
|
|
||||||
|
## Trust Model
|
||||||
|
|
||||||
|
Current intended trust precedence:
|
||||||
|
|
||||||
|
1. Trusted Project State
|
||||||
|
2. AtoDrive artifacts
|
||||||
|
3. Recent validated memory
|
||||||
|
4. AtoVault summaries
|
||||||
|
5. PKM chunks
|
||||||
|
6. Historical or low-confidence material
|
||||||
|
|
||||||
|
## Storage Boundaries
|
||||||
|
|
||||||
|
Human-readable source layers and machine operational storage must remain
|
||||||
|
separate.
|
||||||
|
|
||||||
|
- `AtoVault` is a source layer, not the live vector database
|
||||||
|
- `AtoDrive` is a source layer, not the live vector database
|
||||||
|
- machine operational state includes:
|
||||||
|
- SQLite database
|
||||||
|
- vector store
|
||||||
|
- indexes
|
||||||
|
- embeddings
|
||||||
|
- runtime metadata
|
||||||
|
- cache and temp artifacts
|
||||||
|
|
||||||
|
The machine database is derived operational state, not the primary
|
||||||
|
human-readable source of truth.
|
||||||
|
|
||||||
|
## Canonical Hosting Model
|
||||||
|
|
||||||
|
Dalidou is the canonical host for the AtoCore service and machine database.
|
||||||
|
|
||||||
|
OpenClaw on the T420 should consume AtoCore over API and network, ideally over
|
||||||
|
Tailscale or another trusted internal network path.
|
||||||
|
|
||||||
|
The live SQLite and vector store must not be treated as a multi-node synced
|
||||||
|
filesystem. The architecture should prefer one canonical running service over
|
||||||
|
file replication of the live machine store.
|
||||||
|
|
||||||
|
## Canonical Dalidou Layout
|
||||||
|
|
||||||
|
```text
|
||||||
|
/srv/storage/atocore/
|
||||||
|
app/ # deployed AtoCore repository
|
||||||
|
data/ # canonical machine state
|
||||||
|
db/
|
||||||
|
chroma/
|
||||||
|
cache/
|
||||||
|
tmp/
|
||||||
|
sources/ # human-readable source inputs
|
||||||
|
vault/
|
||||||
|
drive/
|
||||||
|
logs/
|
||||||
|
backups/
|
||||||
|
run/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Operational Rules
|
||||||
|
|
||||||
|
- source directories are treated as read-only by the AtoCore runtime
|
||||||
|
- Dalidou holds the canonical machine DB
|
||||||
|
- OpenClaw should use AtoCore as an additive context service
|
||||||
|
- OpenClaw must continue to work if AtoCore is unavailable
|
||||||
|
- write-back from OpenClaw into AtoCore is deferred until later phases
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
As of the current implementation pass:
|
||||||
|
|
||||||
|
- the AtoCore runtime is deployed on Dalidou
|
||||||
|
- the canonical machine-data layout exists on Dalidou
|
||||||
|
- the service is running from Dalidou
|
||||||
|
- the long-term content corpus still needs to be populated into the live
|
||||||
|
Dalidou instance
|
||||||
|
|
||||||
|
This means the platform is hosted on Dalidou now, while the live content corpus
|
||||||
|
is only partially initialized and not yet fully ingested.
|
||||||
74
docs/current-state.md
Normal file
74
docs/current-state.md
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
# AtoCore Current State
|
||||||
|
|
||||||
|
## Status Summary
|
||||||
|
|
||||||
|
AtoCore is no longer just a proof of concept. The local engine exists, the
|
||||||
|
correctness pass is complete, and Dalidou now hosts the canonical runtime and
|
||||||
|
machine-storage location.
|
||||||
|
|
||||||
|
## Phase Assessment
|
||||||
|
|
||||||
|
- completed
|
||||||
|
- Phase 0
|
||||||
|
- Phase 0.5
|
||||||
|
- Phase 1
|
||||||
|
- baseline complete
|
||||||
|
- Phase 2
|
||||||
|
- Phase 3
|
||||||
|
- Phase 5
|
||||||
|
- Phase 7
|
||||||
|
- partial
|
||||||
|
- Phase 4
|
||||||
|
- not started
|
||||||
|
- Phase 6
|
||||||
|
- Phase 8
|
||||||
|
- Phase 9
|
||||||
|
- Phase 10
|
||||||
|
- Phase 11
|
||||||
|
- Phase 12
|
||||||
|
- Phase 13
|
||||||
|
|
||||||
|
## What Exists Today
|
||||||
|
|
||||||
|
- ingestion pipeline
|
||||||
|
- parser and chunker
|
||||||
|
- SQLite-backed memory and project state
|
||||||
|
- vector retrieval
|
||||||
|
- context builder
|
||||||
|
- API routes for query, context, health, and source status
|
||||||
|
- env-driven storage and deployment paths
|
||||||
|
- Dalidou Docker deployment foundation
|
||||||
|
|
||||||
|
## What Is True On Dalidou
|
||||||
|
|
||||||
|
- deployed repo location:
|
||||||
|
- `/srv/storage/atocore/app`
|
||||||
|
- canonical machine DB location:
|
||||||
|
- `/srv/storage/atocore/data/db/atocore.db`
|
||||||
|
- canonical vector store location:
|
||||||
|
- `/srv/storage/atocore/data/chroma`
|
||||||
|
- source input locations:
|
||||||
|
- `/srv/storage/atocore/sources/vault`
|
||||||
|
- `/srv/storage/atocore/sources/drive`
|
||||||
|
|
||||||
|
The service and storage foundation are live on Dalidou.
|
||||||
|
|
||||||
|
The machine-data host is real and canonical.
|
||||||
|
|
||||||
|
The content corpus is not fully populated yet. A fresh or near-fresh live DB is
|
||||||
|
running there until the ingestion pipeline loads the ecosystem docs and project
|
||||||
|
content.
|
||||||
|
|
||||||
|
## Immediate Next Focus
|
||||||
|
|
||||||
|
1. Ingest AtoCore ecosystem and planning docs into the Dalidou instance
|
||||||
|
2. Define the OpenClaw integration contract clearly
|
||||||
|
3. Wire OpenClaw to consume AtoCore read-only over network
|
||||||
|
4. Ingest selected project content in a controlled way
|
||||||
|
|
||||||
|
## Guiding Constraints
|
||||||
|
|
||||||
|
- bad memory is worse than no memory
|
||||||
|
- trusted project state must remain highest priority
|
||||||
|
- human-readable sources and machine storage stay separate
|
||||||
|
- OpenClaw integration must not degrade OpenClaw baseline behavior
|
||||||
@@ -9,6 +9,8 @@ Deploy AtoCore on Dalidou as the canonical runtime and machine-memory host.
|
|||||||
- OpenClaw on the T420 consumes AtoCore over network/Tailscale API.
|
- OpenClaw on the T420 consumes AtoCore over network/Tailscale API.
|
||||||
- `sources/vault` and `sources/drive` are read-only inputs by convention.
|
- `sources/vault` and `sources/drive` are read-only inputs by convention.
|
||||||
- SQLite/Chroma machine state stays on Dalidou and is not treated as a sync peer.
|
- SQLite/Chroma machine state stays on Dalidou and is not treated as a sync peer.
|
||||||
|
- The app and machine-storage host can be live before the long-term content
|
||||||
|
corpus is fully populated.
|
||||||
|
|
||||||
## Directory layout
|
## Directory layout
|
||||||
|
|
||||||
@@ -75,3 +77,15 @@ curl http://127.0.0.1:8100/sources
|
|||||||
- reverse proxy / TLS exposure
|
- reverse proxy / TLS exposure
|
||||||
- automated source ingestion job
|
- automated source ingestion job
|
||||||
- OpenClaw client wiring
|
- OpenClaw client wiring
|
||||||
|
|
||||||
|
## Current Reality Check
|
||||||
|
|
||||||
|
When this deployment is first brought up, the service may be healthy before the
|
||||||
|
real corpus has been ingested.
|
||||||
|
|
||||||
|
That means:
|
||||||
|
|
||||||
|
- AtoCore the system can already be hosted on Dalidou
|
||||||
|
- the canonical machine-data location can already be on Dalidou
|
||||||
|
- but the live knowledge/content corpus may still be empty or only partially
|
||||||
|
loaded until source ingestion is run
|
||||||
|
|||||||
102
docs/openclaw-integration-contract.md
Normal file
102
docs/openclaw-integration-contract.md
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
# OpenClaw Integration Contract
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
This document defines the first safe integration contract between OpenClaw and
|
||||||
|
AtoCore.
|
||||||
|
|
||||||
|
The goal is to let OpenClaw consume AtoCore as an external context service
|
||||||
|
without degrading OpenClaw's existing baseline behavior.
|
||||||
|
|
||||||
|
## Integration Principles
|
||||||
|
|
||||||
|
- OpenClaw remains the runtime and orchestration layer
|
||||||
|
- AtoCore remains the context enrichment layer
|
||||||
|
- AtoCore is optional at runtime
|
||||||
|
- if AtoCore is unavailable, OpenClaw must continue operating normally
|
||||||
|
- initial integration is read-only
|
||||||
|
- OpenClaw should not automatically write memories, project state, or ingestion
|
||||||
|
updates during the first integration batch
|
||||||
|
|
||||||
|
## First Safe Responsibilities
|
||||||
|
|
||||||
|
OpenClaw may use AtoCore for:
|
||||||
|
|
||||||
|
- health and readiness checks
|
||||||
|
- context building for contextual prompts
|
||||||
|
- retrieval/query support
|
||||||
|
- project-state lookup when a project is detected
|
||||||
|
|
||||||
|
OpenClaw should not yet use AtoCore for:
|
||||||
|
|
||||||
|
- automatic memory write-back
|
||||||
|
- automatic reflection
|
||||||
|
- conflict resolution decisions
|
||||||
|
- replacing OpenClaw's own memory system
|
||||||
|
|
||||||
|
## First API Surface
|
||||||
|
|
||||||
|
OpenClaw should treat these as the initial contract:
|
||||||
|
|
||||||
|
- `GET /health`
|
||||||
|
- check service readiness
|
||||||
|
- `GET /sources`
|
||||||
|
- inspect source registration state
|
||||||
|
- `POST /context/build`
|
||||||
|
- ask AtoCore for a budgeted context pack
|
||||||
|
- `POST /query`
|
||||||
|
- use retrieval when useful
|
||||||
|
|
||||||
|
Additional project-state inspection can be added if needed, but the first
|
||||||
|
integration should stay small and resilient.
|
||||||
|
|
||||||
|
## Failure Behavior
|
||||||
|
|
||||||
|
OpenClaw must treat AtoCore as additive.
|
||||||
|
|
||||||
|
If AtoCore times out, returns an error, or is unavailable:
|
||||||
|
|
||||||
|
- OpenClaw should continue with its own normal baseline behavior
|
||||||
|
- no hard dependency should block the user's run
|
||||||
|
- no partially written AtoCore state should be assumed
|
||||||
|
|
||||||
|
## Suggested OpenClaw Configuration
|
||||||
|
|
||||||
|
OpenClaw should eventually expose configuration like:
|
||||||
|
|
||||||
|
- `ATOCORE_ENABLED`
|
||||||
|
- `ATOCORE_BASE_URL`
|
||||||
|
- `ATOCORE_TIMEOUT_MS`
|
||||||
|
- `ATOCORE_FAIL_OPEN`
|
||||||
|
|
||||||
|
Recommended first behavior:
|
||||||
|
|
||||||
|
- enabled only when configured
|
||||||
|
- low timeout
|
||||||
|
- fail open by default
|
||||||
|
- no writeback enabled
|
||||||
|
|
||||||
|
## Suggested Usage Pattern
|
||||||
|
|
||||||
|
1. OpenClaw receives a user request
|
||||||
|
2. OpenClaw decides whether the request is contextual enough to query AtoCore
|
||||||
|
3. If yes, OpenClaw calls AtoCore
|
||||||
|
4. If AtoCore returns usable context, OpenClaw includes it
|
||||||
|
5. If AtoCore fails or returns nothing useful, OpenClaw proceeds normally
|
||||||
|
|
||||||
|
## Deferred Work
|
||||||
|
|
||||||
|
- memory promotion rules
|
||||||
|
- identity and preference write flows
|
||||||
|
- reflection loop
|
||||||
|
- automatic ingestion requests from OpenClaw
|
||||||
|
- write-back policy
|
||||||
|
- conflict-resolution integration
|
||||||
|
|
||||||
|
## Precondition Before Wider Ingestion
|
||||||
|
|
||||||
|
Before bulk ingestion of projects or ecosystem notes:
|
||||||
|
|
||||||
|
- the AtoCore service should be reachable from the T420
|
||||||
|
- the OpenClaw failure fallback path should be confirmed
|
||||||
|
- the initial contract should be documented and stable
|
||||||
Reference in New Issue
Block a user