Skip to content

Graduate @qduc/agent-core (turn harness) from Term2 - #4

Merged
qduc merged 2 commits into
mainfrom
ccr-c2e20a05-677q07
Nov 10, 2026
Merged

qduc merged 2 commits into
mainfrom
ccr-c2e20a05-677q07

Conversation

@qduc

@qduc qduc commented Nov 10, 2026

Copy link
Copy Markdown
Owner

Summary

The turn harness Term2 incubated in packages/agent-harness-core now lives here as packages/core and is published as @qduc/agent-core, next to wire. This repository owns its source. Term2 and ChatForge install tarballs packed here until the alpha is on npm.

The name was previously used by the retired session-runtime snapshot. That snapshot's 0.1.0 was published and then unpublished, so it cannot be reused. docs/core-migration-scope.md now notes that the current package is a different one.

Changes

  • packages/core: startTurn harness with no runtime dependencies, 0.2.0-alpha.1, Node 24+, ships dist. Its README describes this repository rather than Term2.
  • publish-agent-packages.yml:
    • New package input: wire (default), core or both. A plain wire release behaves as before.
    • Core always publishes with --tag next.
    • Still manual and gated as before.
  • Release safety test checks:
    • the per-package publish conditions;
    • both publish commands;
    • core's prerelease version and next tag;
    • core's manifest and LICENSE.
  • Installed-tarball smoke:
    • packs core;
    • runs two concurrent turns through the installed package, with separate settings and app context;
    • type-checks a core consumer without skipLibCheck.
  • scripts/core-import-boundary.test.ts:
    • Moved from Term2.
    • Core may import only Node built-ins and its own files, through literal specifiers.
    • Parses with TypeScript 6 (typescript-api dev alias), because TypeScript 7 has no JavaScript compiler API.
  • Docs: README, AGENTS.md and docs/release.md describe core and the vendoring flow.

Verification

Run on Node 24:

  • pnpm build, pnpm typecheck and pnpm test all pass (13 wire + 8 repository tests).
  • pnpm smoke passes: wire consumer, two concurrent core turns, and both sets of declarations.
  • pnpm smoke:checkout passes.

Mutation check: adding import 'yaml' to core's index.ts makes the import guard fail.

Before publishing core

  • npm's Trusted Publisher entry for @qduc/agent-core must point at this repository, publish-agent-packages.yml and the npm-agent-packages environment.
  • Run the workflow on main with publish off first, then with package: core.

Related

  • qduc/term2 and qduc/chat PRs on branch ccr-c2e20a05-677q07 vendor the tarball packed at 3e322ba.

Generated by Claude Code

The harness developed in Term2 (packages/agent-harness-core) is released
from here, next to wire, through the existing manual, Trusted Publisher
workflow. A new `package` input picks wire (default), core or both; core
always goes to the `next` dist-tag. The installed-tarball smoke runs two
concurrent turns through the packed core and checks its declarations.

The name previously belonged to a retired session-runtime snapshot that
was never published; core-migration-scope.md now says the two differ.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JqbJBAaQKKFnHRJoDCGExb
Term2 now vendors core tarballs packed here instead of keeping its own
copy. Moves the package import guard over from Term2 (Node built-ins and
package-relative imports only); it parses with TypeScript 6 because
TypeScript 7 has no JavaScript compiler API. README and release docs no
longer describe a copy synced from Term2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JqbJBAaQKKFnHRJoDCGExb
@qduc
qduc merged commit 8874497 into main Nov 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants