feat: extract portable runtime batch - #14
Merged
Merged
Conversation
Four spots where the extraction from ApodexHarness drifted from the original, all found by diffing this branch against it file by file. Name the node-context seam. ``models/node_context.py`` is deliberately identity-only here, but ``DynamicGraphBuilder`` defaults to it, so a node written against the full contract died on a bare "'NodeContext' object has no attribute 'call_llm'" that said nothing about where a context with one comes from. ``__getattr__`` now names ``node_context_factory`` (and the node/role that asked); dunder probes still raise a plain AttributeError so copy/pickle keep working. Restore the SSE display-name lookup. ``_lookup_skill_name`` had been stubbed to ``return None`` as "not part of the trimmed distribution", but ``FileSystemSkillLoader`` came across in the same batch — so every ``skill_loaded`` event degraded ``skill_name`` to the raw id. Resolved structurally against the ``SkillLoader`` Protocol, which also finds a loader registered under its concrete type. Derive the injected SKILL.md path from ``root_dir``. The hardcoded ``plugins/skills/<id>/`` prefix happened to be right in the product repo; in a library, any caller with custom ``skill_dirs`` was handed a path that does not exist. Relative to cwd when the skill lives under it (what a workspace-scoped ``read_text`` accepts), absolute otherwise, legacy layout when a loader leaves ``root_dir`` empty. Route the extensions-config env var through the shared prefix cascade instead of the lone ``MIROHARNESS_``-prefixed name this module kept. Co-Authored-By: Claude Opus 5 (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.
Summary
Boundary
AgentCore owns portable runtime semantics and implementation. Products continue to own composition roots, session/checkpoint association, sandbox authorization, UI history, and retention/TTL policy.
Validation
uv run ruff check agent_core testsuv run pyright agent_coreuv run pytest -q(674 passed)uv build