Repository navigation
Incorporate internal research architecture into the open-source prototype - #2
Merged
Merged
Conversation
…type - Pull cognition parsing out of the kernel by introducing strong-typed adapter outputs (`ActionHint`, `DecisionLine`, `JudgeOutput`), a shared `runtime::canonicalize` utility for cross-vendor canonicalization (markdown fences, prose-around-JSON, balanced-brace extraction), and renaming `CognitionResponse.text` → `content` with role-specific typed fields populated by adapters. - Give the Actor an agentic inner loop bounded by `DEFAULT_INNER_STEP_BUDGET` so pure-reasoning replies continue the turn while structured `ActionHint` responses commit, replacing the prior single-turn JSON-parse-or-fail surface. - Replace the findings-specific Tool with a generic record substrate by removing `record_finding`, renaming `Finding`/`*FindingsBackend` to `Record`/`*RecordStore`, routing record appends through `modify_artifact` with `kind=record-store`, and letting the Charter define record content shape while the kernel injects `_*` provenance. - Add the Skills primitive as Actor-side cognition instrumentation by adding `core::skill::Skill` (content-hashed, SKILL.md convention), folding skills into the Snapshot identity hash, loading them from `<charter_dir>/skills/*.md`, and composing them into the Actor system prompt under grounding. - Drop filesystem IO from the kernel by splitting `charter_loader` into pure parsers (`parse_charter_def`, `parse_role_context_def`) inside `core/` and deployment-side IO (`load_charter_def`, `load_role_context_def`, `load_skills`) inside `runtime::charter_loader`. - Unify durable streams on one async append-only primitive by adding `chartered_dispatch::JsonlSink` serving Receipts, the cognition log, and the record store, making `ReceiptStore::append` async, and codifying the discipline in a new spec §Persistence. - Make Snapshots persisted and addressable by adding `chartered_dispatch::snapshot_store` (one immutable file per `<chartered_dir>/snapshots/<id>.json`), persisting on Snapshot creation, and adding spec §Snapshot Lifecycle so every Receipt's `snapshot_id` resolves to a record on disk. - Rework the v1 protocol by giving `Receipt` `receipt_id`/`task_id`/`attempt_id`/`steward_id`, replacing `EnforcementLevel` with structured `GovernanceMode` (grounding+evaluation toggles), promoting `Verdict.frame_id` to a Steward-scoped `FrameRef`, renaming `ToolCall.tool_name` → `tool` while dropping its timestamp, and removing `Metrics`. - Add the Gemini cognition backend as a sibling adapter to OpenAI by introducing `runtime::gemini_backend` with lazy per-model `outputTokenLimit`/`thinking` caching, native role mapping (System → `systemInstruction`, Assistant → `model`), and an explicit non-forwarding policy for LLM-native tools (search/codeExec/urlContext are cognition, not governed Tools). - Rename the OpenAI environment variables from `LLM_*` to `OPEN_AI_*` across `.env`, runtime, dashboard launcher, docs, and tests so per-vendor configuration is decoupled from the abstract LLM name now that Gemini exists alongside OpenAI. - Make the dashboard read its Charter view from the kernel by adding `chartered-runtime --print-charter` (JSON emit of the parsed Charter), replacing the dashboard's parallel TOML+markdown parser in `local-api.mjs` with a subprocess call, so the Charter parser has one source of truth. - Codify three-tier test discipline by formalizing unit (stateless, CI) / integration (vertical cut, tempdir-isolated, CI) / e2e (real LLM via production transport, local-only, `#[ignore]`d, no soft-skip) in `AGENTS.md §Verification`, adding `docs/IMPLEMENTATION_CHECKLIST.md §Test Tier Discipline`, renaming `tests/e2e.rs` → `tests/binary_integration.rs`, adding `tests/persistence.rs`, and gating `llm_e2e.rs` behind `#[ignore]`. - Expand the specification to cover the newly-incorporated subsystems by adding §Persistence, §Snapshot Lifecycle, §Skills, §Subagents, §User-Facing Integration Boundary, the "Cognition is commodity" framing for §Cognition Layer, and the "LLM-side native tools are cognition, not Tools" clarification under §Tools. - Add Transcription Fidelity discipline to `AGENTS.md` requiring user-intent artifacts to contain only the user's stated words, prohibiting silent assistant extrapolation into mandates and briefs.
chartered-tracer depends on libseccomp, whose libseccomp-sys build script emits an unconditional `cargo:rustc-link-lib=dylib=seccomp`. The ubuntu-latest runner does not ship libseccomp.so, so the linker fails with `unable to find library -lseccomp`. Install libseccomp-dev alongside protobuf-compiler. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ActionHint,DecisionLine,JudgeOutput), a sharedruntime::canonicalizeutility for cross-vendor canonicalization (markdown fences, prose-around-JSON, balanced-brace extraction), and renamingCognitionResponse.text→contentwith role-specific typed fields populated by adapters.DEFAULT_INNER_STEP_BUDGETso pure-reasoning replies continue the turn while structuredActionHintresponses commit, replacing the prior single-turn JSON-parse-or-fail surface.record_finding, renamingFinding/*FindingsBackendtoRecord/*RecordStore, routing record appends throughmodify_artifactwithkind=record-store, and letting the Charter define record content shape while the kernel injects_*provenance.core::skill::Skill(content-hashed, SKILL.md convention), folding skills into the Snapshot identity hash, loading them from<charter_dir>/skills/*.md, and composing them into the Actor system prompt under grounding.charter_loaderinto pure parsers (parse_charter_def,parse_role_context_def) insidecore/and deployment-side IO (load_charter_def,load_role_context_def,load_skills) insideruntime::charter_loader.chartered_dispatch::JsonlSinkserving Receipts, the cognition log, and the record store, makingReceiptStore::appendasync, and codifying the discipline in a new spec §Persistence.chartered_dispatch::snapshot_store(one immutable file per<chartered_dir>/snapshots/<id>.json), persisting on Snapshot creation, and adding spec §Snapshot Lifecycle so every Receipt'ssnapshot_idresolves to a record on disk.Receiptreceipt_id/task_id/attempt_id/steward_id, replacingEnforcementLevelwith structuredGovernanceMode(grounding+evaluation toggles), promotingVerdict.frame_idto a Steward-scopedFrameRef, renamingToolCall.tool_name→toolwhile dropping its timestamp, and removingMetrics.runtime::gemini_backendwith lazy per-modeloutputTokenLimit/thinkingcaching, native role mapping (System →systemInstruction, Assistant →model), and an explicit non-forwarding policy for LLM-native tools (search/codeExec/urlContext are cognition, not governed Tools).LLM_*toOPEN_AI_*across.env, runtime, dashboard launcher, docs, and tests so per-vendor configuration is decoupled from the abstract LLM name now that Gemini exists alongside OpenAI.chartered-runtime --print-charter(JSON emit of the parsed Charter), replacing the dashboard's parallel TOML+markdown parser inlocal-api.mjswith a subprocess call, so the Charter parser has one source of truth.#[ignore]d, no soft-skip) inAGENTS.md §Verification, addingdocs/IMPLEMENTATION_CHECKLIST.md §Test Tier Discipline, renamingtests/e2e.rs→tests/binary_integration.rs, addingtests/persistence.rs, and gatingllm_e2e.rsbehind#[ignore].AGENTS.mdrequiring user-intent artifacts to contain only the user's stated words, prohibiting silent assistant extrapolation into mandates and briefs.