Commit Graph

211 Commits

Author SHA1 Message Date
irl-dan e9a58d4107 skill: teach the Reactor CLI via prose react "<use case>"
The open-prose skill described Reactor as a concept but never taught the
real `reactor` binary (`@openprose/reactor-cli`, live on npm) or how to
stand a Reactor up. This adds that path end to end.

- New `reactor.md`: operator guide for the `reactor` binary — global
  install, the keyless-vs-live boundary, the `compile → run → serve`
  lifecycle, `reactor.yml` (connectors, sandbox, ask-the-user-for-model),
  the `prose react` playbook, and the keyless `reactor-devtools` replay.
- SKILL.md: route `prose react [use case...] [--start]`, add a
  First-90-Seconds row, register `reactor.md`, and note the one case where
  an agent *does* shell out — the `reactor` binary is a deterministic host,
  not a wrapper. Also fixes a mashed-together File Locations table row.
- help.md: surface `prose react` in Available Commands and the goal-true path.

Default behavior prints the `reactor` commands for the user; `--start`
drives the live lifecycle directly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 11:59:40 -07:00
Raymond Weitekamp 7690bbad5d fix README header image (#111) 2026-06-03 12:21:09 -04:00
dan efb9a48459 docs: use opengraph-image for README header (#110)
The readme-header.png render had overlapping headline text. Point the
README header at the opengraph-image route instead.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 09:09:14 -07:00
dan 0061ca35f1 feat(reactor-cli): configurable LLM provider + accurate cost labels (#109)
Reactor was hard-wired to OpenRouter on the CLI (only OPENROUTER_API_KEY was
ever read), stranding users holding OpenAI / Anthropic / Google keys. The SDK
already supported a scoped provider; this makes it real and elegant at the CLI.

reactor-cli (0.2.0 -> 0.2.1):
- reactor.yml model.provider now switches the live provider; built-ins
  openrouter|openai|anthropic|google resolve their endpoint + key env, and any
  OpenAI-compatible vendor works via model.base_url + model.api_key_env.
- A keyless ProviderPlan resolver + a model-bearing OpenAIProvider factory
  (reached only past the dynamic-import offline boundary), threaded into compile
  sessions and the run/serve render (incl. the configured render_model, which
  the run phase previously ignored).
- doctor reports the configured provider's key (not only OPENROUTER_API_KEY) and
  doctor --live smokes the configured endpoint; a missing key fails non-zero with
  the exact env var (never misdirects to OpenRouter, never exits 0).
- Tests: ProviderPlan resolver + a hermetic missing-key compile.

reactor (0.3.0 -> 0.3.1):
- Receipt Cost now reports the real provider + model instead of a hardcoded
  openrouter / gemini-3.5-flash (cost-only labels, never fingerprinted). New
  optional RunProjectRender.providerLabel + CostLabels.
- Tests: cost-labels + a key-gated bring-your-own-provider live smoke.

Build: each reactor package cleans its output dir before tsc, so local
incremental builds cannot accumulate orphaned dist test artifacts.

Known limitation: Anthropic's direct OpenAI-compat endpoint rejects our
structured-output response_format unless strict:true; route Anthropic models
through OpenRouter today (documented).
reactor-v0.3.1
2026-06-02 23:15:00 -07:00
dan a77c8b8d2a docs(readme): add agent-directed guidance on filing GitHub issues (#108)
Speak directly to agents driving Reactor: when blocked, open a GitHub
issue rather than working around silently. Includes when to file, a
search-first step, and a good-issue checklist (type, context/use case,
expected vs actual, minimal repro, evidence, environment incl. OS/agent/
model/versions, prior attempts) plus an honesty note and new-issue link.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 19:33:33 -07:00
dan 288dd83780 feat(reactor-cli): anonymous opt-out CLI-only telemetry (#107)
CLI-only, content-free, opt-out telemetry reusing the live POST /analytics backend (context.library + reactor.* discriminator). Zero SDK changes, zero new deps. 174 tests pass.
2026-06-02 19:02:14 -07:00
irl-dan cbd31df982 docs(readme): re-blend OpenProse + Reactor as one cohesive system
Lead with OpenProse the paradigm (declare outcomes in Markdown contracts +
ProseScript, runs on any Prose-Complete harness), then Reactor as the harness
built to run it (the fast path) — one system, two layers. Adds a 'shape:
OpenProse -> Reactor' connective section and an SDK front-door section
(reactor() facade + typed handle); agent-first setup path; honest-status kept;
React table demoted to an optional collapsible. Versions 0.3.0 / 0.2.0 / 0.2.0.
2026-06-02 14:41:53 -07:00
irl-dan f1f8f0cfa1 fix(ci): build reactor packages before the publish loop
When reactor is already published, publish_pkg returns before its pnpm-pack
builds reactor/dist, so reactor-cli + reactor-devtools fail to resolve
@openprose/reactor (TS2307) on an idempotent re-run. Build all three up front.
reactor-v0.3.0
2026-06-02 14:18:55 -07:00
irl-dan 8280b06db5 fix(release): add repository field to reactor-cli + reactor-devtools
npm --provenance validates package.json repository.url against the GitHub repo
from the OIDC attestation; these two lacked the field (reactor had it), so
publish failed E422 after reactor@0.3.0 already published. Additive metadata only.
2026-06-02 14:13:14 -07:00
dan f12dcda4d8 Release: the OpenProse Reactor harness (engine + CLI + devtools) — 0.3.0 ideal API surface (#106)
Ships @openprose/reactor 0.3.0, @openprose/reactor-cli 0.2.0, @openprose/reactor-devtools 0.2.0: the Reactor harness (compile-once-intelligent then dumb reconciler, content-addressed receipts, cost scales with surprise) with the distilled ideal public API — curated front door, full @openai/agents passthrough, one typed handle, one Substrate, unified observe, branded ids, and additive forward seams for the fixpoint.
2026-06-02 14:06:56 -07:00
Raymond Weitekamp 72077013c2 Add session-to-prose OpenProse example (#85) 2026-05-29 08:42:45 -07:00
dan 0d318ce0ee docs: v0.1 launch surface — article, technical report, tagline qualifier (#103)
* docs/reactor/v0.1: publish article + technical report into prose

Canonical source location for the v0.1 launch documents — moves the
generalist launch article and the technical report out of planning
drafts and into the public prose repo, alongside the spec they're
derived from.

docs/reactor/v0.1/article.md (243 lines) — "When the Conversation Ends,
the Responsibility Doesn't." Clean copy from the planning draft with
the four tenet-alignment edits (subhead audit-floor qualifier; receipt
verb tightening; line-217 freshness fix). Footer link to the technical
report updated from a github.com placeholder to the sibling ./report.

docs/reactor/v0.1/report.md (273 lines) — "Reactor: Cost Scales With
Surprise, Not Time." Clean copy from the planning draft. Date stamped
to 2026-05-22 (v0.1.0 release). §0 TL;DR carries the audit-floor
qualifier matching §7a; §10 already correctly discloses raw-evidence
retention as future work.

docs/reactor/v0.1/README.md — editorial discipline, versioning policy,
how-edits-get-published flow (commit here → bump platform/external/prose
submodule pin → fly deploy from apps/reports), and the publish-gate
checklist carried over from the technical-report authoring plan.

docs/reactor/v0.1/assets/ — placeholder for figures, kept empty.

The Astro renderer is being scaffolded at openprose/platform/apps/
reports/ in parallel; it reads from this directory via the
external/prose submodule.

* docs: qualify cost-thesis tagline + front-door trust artifact

Tagline qualified across README + package READMEs to match spec invariant 5 /
Pattern Rule 5 and technical report §7a: 'surprise — plus a bounded periodic
audit floor — not the arbitrary clock' (the bare one-liner was empirically
falsifiable in the audience-validation pass). Adds a dated v0.1.0 trust-artifact
blockquote to the front door.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-28 16:53:42 -07:00
dan 8564d8a7d2 feat(evals): reactor harness evaluation suite (phase 1b) (#102)
* feat(cli): add evaluation runner core

* feat(cli): add eval suite loading and cost mapping

* feat(cli): add public harness eval adapters

* feat(cli): add eval suite registry and runner helper

* fix(cli): harden eval runner safety gates

* feat(cli): harden eval evidence and isolation

* feat(cli): add eval claim eligibility gates

* Harden reactor eval claim eligibility

* Harden eval claim eligibility gates

* feat(eval): add reactor timeline case contract

* feat(eval): add reactor proof verdict library

* feat(eval): add timeline baseline adapters

* feat(eval): add docker isolation substrate

* feat(eval): add phase 1b reactor-independent tier 1

* feat(eval): add phase 1b cost and canary lanes

* feat(eval): add phase 1b statistical pilot

* feat(eval): reconcile openrouter costs and containerize competitors

* feat(evals): run isolated competitor harnesses locally

* feat(evals): add phase 1b report pilot runner

* feat(evals): add phase 1b confidence intervals

* fix(evals): harden provider host matching against URL prefix spoofing

CodeQL flagged "Incomplete URL substring sanitization" in
providerFromUrl: host.endsWith("anthropic.com") also matches an
attacker-controlled host like "evilanthropic.com". Match the exact
host or a proper subdomain (".anthropic.com") instead, applied to all
three provider domains via a hostMatches helper.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-28 16:17:42 -07:00
irl-dan d65a5892a9 spec: sync canonical spec from index (Tenet 7 + reconciliation)
Establishes prose/spec as the canonical home for the OpenProse spec,
current as of the index working state — Tenet 7 (one bounded run, one
session; the DAG composes) plus the Language / Harness / Pattern / Evals
reconciliation. index/spec becomes a pointer to here.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-28 15:56:28 -07:00
dan 119a125002 docs: publish reactor spec reconciliation (#99) 2026-05-22 19:38:50 -07:00
dan 52724edc11 chore: prepare reactor 0.1.0 release (#98) reactor-v0.1.0 2026-05-22 19:29:03 -07:00
dan a7b5d34920 fix: upgrade npm for reactor trusted publish
Install npm 11.5.1 in the Reactor package publish job before the provenance publish steps so npm Trusted Publishing can use the workflow OIDC token.
reactor-v0.1.0-rc.2
2026-05-22 17:52:38 -07:00
dan ecc230dd73 chore: cut reactor rc2 release
Prepare the Reactor packages for the interim 0.1.0-rc.2 release.

Narrow the package publish workflow to reactor-v* tags, bump Reactor and Cradle package versions, refresh the Cradle package pin for the rc.2 tarball, and update release-candidate evidence helpers and package docs.
2026-05-22 17:38:16 -07:00
dan 854aad4ec5 docs: sharpen reactor rc2 front door
Sharpen the Reactor front door for the rc.2 cut by adding the flat-tokens 46-vs-92 memoization contrast and updating the repo/package READMEs to lead with the surprise-not-clock hook.
2026-05-22 17:31:46 -07:00
dan 4603db9b19 fix: close reactor rc validation gaps
Closes the five approved post-PR-92 Phase 3 fixes: N13 invariant-6 fail-safe judging, N14 write-ahead fulfillment intent, N2b same-unit Cradle cost control, N17 compile nonzero failures, and N1 Reactor-forward front-door docs.

Verification:
- pnpm --filter @openprose/reactor test -> 154/154 green
- pnpm --filter @openprose/reactor-cradle test -> 121/121 green
- pnpm --filter @openprose/prose-cli test -> 284/284 green
- release verifier node --test suite -> 35/35 green
- pnpm build -> pass
- CI on PR #93 -> green
2026-05-21 22:17:36 -07:00
dan 5cfbac8048 fix: harden reactor rc onboarding and edges
Implements the approved Reactor v0.1 rc hardening set: adoption contract docs, standalone flat-tokens install, runnable SDK snippet, quickstart prereqs/build fix, Cradle scenario export, stable synthetic payload hashes, concurrency-safe pressure writes, and dropped-route diagnostics.
2026-05-21 17:16:50 -07:00
dan f9c84b834e Fix CLI workflows for the pnpm-workspace consolidation (#89)
* Fix CLI workflows for the pnpm-workspace consolidation

The Reactor consolidation moved the CLI into the pnpm workspace, but the
npm-to-pnpm workflow conversion was incomplete and broke CI on main.

- Add the missing pnpm/action-setup step before every setup-node that
  sets cache: pnpm (cli-real-harness-smoke, cli-release-check, release).
  Without pnpm on PATH, setup-node fails: "Unable to locate executable
  file: pnpm".
- Rework the npm-package-smoke job to pack with pnpm. npm pack does not
  rewrite the workspace: protocol dependency on @openprose/reactor;
  pnpm pack does. The install smoke now resolves that dependency from a
  locally packed reactor tarball so it does not depend on the registry.

* Build the Reactor dependency before the CLI compiles in CI

After the workspace consolidation the CLI typechecks and builds against
@openprose/reactor, which must be built first.

- Add a "Build workspace" step before every CLI typecheck/build step
  (node-checks, release-tarball-smoke, cli-real-harness-smoke, and the
  release workflow's verify-cli and release-assets jobs).
- Drop the deleted tools/cli/package-lock.json entries from
  .version-bump.json so bump-version.sh --check no longer fails.

* Drop Node 18 from the CLI check matrix

The CLI now requires Node 20+ (engines.node >=20.0.0, enforced by
install.sh). The Node 18 matrix leg fails install.sh's version gate.
2026-05-20 23:03:27 -07:00
irl-dan 5b4b42be8b Add the OpenProse Reactor harness (v0.1.0)
The Reactor is an evented reconciliation harness for AI-maintained
world state. Cost scales with surprise, not time.

This adds:
- @openprose/reactor — the runtime: content-addressed receipt
  kernel, memoization, dual-clock forecast scheduling, model-authored
  policy compile/recompile/rollback, composition with cycle
  detection, two adapter seams.
- @openprose/reactor-cradle — the deterministic evaluation harness.
- The prose CLI wired to the Reactor (prose compile / serve / status).
- Bundled examples that run end-to-end from a clean checkout.
- The OIDC trusted-publishing CI workflow.

Measured cost thesis (deterministic Cradle scenarios):
  static 24h world  — Reactor 46 fresh : 46 reused / 2 model calls
                      no-memo control  92 : 0
                      naive loop      256 : 0
  event-changing    — Reactor 74 : 74 / 2 model calls
                      no-memo control 148 : 0
                      naive loop      148 : 0

Spec: index/spec/02-ReactorHarness.md (openprose/index).
2026-05-20 22:03:48 -07:00
dan 93a98dc22e Merge pull request #87 from openprose/codex/release-main-20260519
Prepare OpenProse 0.14.0 release
v0.14.0
2026-05-19 06:46:27 -07:00
irl-dan ff0618f045 Prepare OpenProse 0.14.0 release 2026-05-19 06:41:58 -07:00
Raymond Weitekamp f524eefec9 Add prose write authoring workflow (#86)
* std: add prose author workflow

* cli: refresh brace-expansion lockfile

* std: tighten prose author planning

* cli: make prose write self-contained

* cli: align harness smoke with bundled bootstrap

* Make prose write interactive in host

---------

Co-authored-by: irl-dan <97565471+irl-dan@users.noreply.github.com>
2026-05-19 00:20:56 -04:00
dan a81cab882a Refresh README brand hero
Update the prose README hero and tagline to match the OpenProse Author Outcomes brand.
2026-05-14 18:42:29 -07:00
dan d8aab435e0 feat: add judge architecture prose contract support (#82) 2026-05-14 03:01:44 -07:00
dan 2cb079a995 std: add prose contributor program (#75) 2026-05-13 14:26:27 -07:00
Raymond Weitekamp a55acbec26 feat(spec): declare host tools (#80)
Add a section-level ### Tools contract for service and system files, with deterministic cli:<name> resolution at compile time. Document the semantics across Contract Markdown, compiler, Forme, VM, and IR, add a declared-tools example, and teach the CLI to fail closed before harness forwarding on invalid or unresolved declarations.
2026-05-13 16:51:30 -04:00
Raymond Weitekamp 9a0ed61716 docs: link Grant Radar external example (#79)
* docs: link Grant Radar external example

Add Grant Radar to the OpenProse examples index without vendoring the example tree.

The canonical example remains in openprose/grant-finder so product-specific source and docs stay with the tool they exercise.

* docs: document local open-prose skill fallback

Add a minimal-shell fallback for users who have prose available but not npx, matching the public CLI skill-preflight behavior.
2026-05-13 16:45:13 -04:00
Raymond Weitekamp a6f8546476 fix(cli): pass granular Codex runtime options (#77) (#78)
Forward PROSE_CODEX_ADD_DIR and PROSE_CODEX_NETWORK into Codex SDK thread options so workspace-write runs can grant narrow extra filesystem and network capabilities without danger-full-access.

Also refresh vulnerable transitive production dependencies in the CLI lockfile so the release audit remains green.
2026-05-13 12:39:50 -04:00
Raymond Weitekamp 8462a23c26 feat(examples): add auto-pocock — chain Matt Pocock's engineering skills
Adds a new OpenProse example at `skills/open-prose/examples/auto-pocock/`
that chains Matt Pocock's published engineering skills (`grill-with-docs`,
`to-prd`, `to-issues`, `tdd`, `setup-matt-pocock-skills`) as a single
non-interactive Prose system.

The system takes one input (`--feature_brief`) and runs the full Pocock
workflow end-to-end: ensure conventions, grill, decide, draft the PRD,
slice issues, triage, do red-green-refactor TDD, verify the slice, and
create a local commit (with `commit_sha: null` and a reason on failure).
`ensure-skills` either discovers per-repo Pocock conventions in
conventional locations or scaffolds Pocock's defaults at `docs/agents/`
with an auto-created banner, so first-time users can run on a fresh
repo without setup.

Structured as the canonical multi-service example shape used by every
other multi-service example in this repo: one `kind: system` entry
file plus nine `kind: service` files under `src/`, forcing explicit
two-phase Forme wiring.

Every departure from Pocock's actual published material is honestly
labeled as an OpenProse adaptation: the two-subagent grill-then-decide
split (because there is no human in the loop), `verify-slice`
(deliberately not named `qa` because Pocock's `qa` skill is a
different, upstream, interactive skill), and the named TDD evidence
bindings (`red_evidence`, `green_evidence`, `refactor_notes` —
`tdd/SKILL.md` describes the loop in prose without naming those
artifacts). The README's "What's Pocock's, what's our adaptation"
table makes the line between his work and our adaptations explicit
and credits his public repo at https://github.com/mattpocock/skills.
2026-05-12 13:01:07 -04:00
Raymond Weitekamp 9856ac5b12 feat(spec): declared ### Skills section with fail-closed compile resolution (#62)
* feat(spec): declared ### Skills section with fail-closed compile resolution

Implements the spec from issue #60. Components declare required harness
skills via a `### Skills` section (colon form, e.g. `document-skills:pdf`).
`prose compile` resolves declared skills against ./skills/, ~/.claude/skills/,
~/.codex/skills/, and ~/.agents/skills/, and fails closed with
`skill_unresolved` before forwarding to the agent harness when any are
missing.

- Spec: skills/open-prose/contract-markdown.md gains a ### Skills row in
  the Canonical Sections table and a ## Skills H2 covering colon naming,
  search order, the BYO-harness invariant, and fail-closed semantics.
- Implementation: tools/cli/src/skills/declared.ts (parser + resolver +
  directory walker + DeclaredSkillsUnresolvedError). Pure functions; no
  I/O beyond readFile / readdir / stat.
- Wiring: tools/cli/src/commands/compile.ts pre-checks declared skills
  before forwarding the compile prompt; fails closed with
  CompileValidationError when any are unresolved. Gated behind the
  existing skillPreflight option for test parity.
- Example: skills/open-prose/examples/declared-skills/ shows the
  document-skills:pdf canonical pattern.
- Tests: 19 new (18 in declared.test.ts covering parser/resolver/walker/
  error formatter; 1 in cli.test.ts asserting compile fails closed before
  the harness is invoked when a declared skill is missing).
- BYO harness: OpenProse never installs harness skills; resolution failure
  is the user's signal to install the named skill themselves.

Resolves #60.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* feat(spec): move skill resolution into compiler program; trim spec per review

Address review feedback on #62:

- contract-markdown.md: drop the "not duplicated in frontmatter" clause —
  the rejected alternative shouldn't propagate into the spec.
- contract-markdown.md: fail-closed clause now mentions only `prose compile`;
  `prose run` enforcement is deferred per the PR description.
- compiler/index.prose.md: add a `skills_resolver` agent that owns the
  search-path order, scope aggregation, BYO invariant, and fail-closed
  semantics. Skill resolution is now a compiler/program-level
  responsibility, not a harness responsibility, so other harnesses running
  the compiler get the same behavior.
- skills/declared.ts: add a header comment pointing at the program-level
  spec; this module is the harness implementation of `skills_resolver`.
- examples/declared-skills/README.md: update wording to reference the
  compiler agent.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(ci): make smoke artifacts case-specific

* fix(ci): use deterministic audit policy

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-07 13:50:01 -04:00
dan b238fbb16e fix: clean up responsibility runtime playtest warts (#67) 2026-05-05 13:54:50 -04:00
Jose Montes de Oca 540394c7d1 fix(cli): load user and project settings in claude-sdk harness (#70)
The Claude Agent SDK defaults settingSources to empty, so the
claude-sdk harness silently ignored ~/.claude and <repo>/.claude:
user skills, project skills, hooks, MCP servers, and project
CLAUDE.md never reached the agent. Set ["user", "project"] so prose
runs match the workspace a user already configured for Claude Code.

Adds three tests: settingSources is always forwarded; auth_status
messages stream their output lines to stderr; auth_status with an
error field exits 1 (the existing branch was untested).
2026-05-05 10:02:21 -07:00
irl-dan 28c240ce5d chore: prepare OpenProse 0.13.1 release v0.13.1 2026-05-04 22:23:20 -07:00
dan d9aed223d2 fix responsibility runtime serve feedback (#65) 2026-05-04 22:20:39 -07:00
Jose Montes de Oca 04f3190299 chore(repo): gitignore Claude and Codex local override files (#66)
Add AGENTS.override.md and CLAUDE.local.md under a clearly labeled
"Local agent overrides" group so personal agent instruction files
cannot accidentally be committed.
2026-05-04 19:32:51 -07:00
dan c20879fe06 chore: unify OpenProse release flow (#63) v0.13.0 2026-05-04 17:26:28 -04:00
dan bef8a97a37 Refactor compiler around ProseScript IR contract (#61) 2026-05-04 16:13:59 -04:00
Jose Montes de Oca d43b85157b feat(plugin): standardize marketplace manifests and submission docs (#56)
The `open-prose` plugin ships to two marketplaces (Claude Code and Codex) via three manifest surfaces with overlapping but drifted metadata. This change unifies copy across those surfaces behind a single declarative source, ships visual assets for the Codex `interface` block, gates drift in CI, and adds a maintainer-facing submission playbook to `RELEASE.md`.

## Changes

- **Copy sync** — `.plugin-meta.json` declares the canonical strings; `scripts/sync-copy.sh` writes them into every declared destination (mirrors `bump-version.sh`). `--check` mode asserts byte-equality and reports drift.
- **Unified manifests** — same descriptions across `.claude-plugin/`, `.codex-plugin/`, and `.agents/plugins/`. Registry name aligned to `openprose` (plugin name `open-prose` unchanged). Codex `skills` path normalized.
- **Visual assets** — `assets/plugin/logo.png` (512×512) and `assets/plugin/composer-icon.png` (64×64), wired into the Codex `interface` block with `brandColor` (`#8a6b2e`), `websiteURL`, and the icon slots.
- **CI gates** — four new steps in `.github/workflows/plugin-manifest.yml` covering copy sync, asset presence, Codex interface completeness, and unified registry names. Existing version-sync gate untouched.
- **Submission playbook** — new `## Marketplace submission` section in `RELEASE.md` covering Claude Code (live today) and the Codex Plugin Directory (curated; self-serve coming soon).
2026-05-04 12:14:59 -07:00
Jose Montes de Oca f28448f2a9 chore(cli)!: remove codex subprocess harness (#55)
The CLI now ships first-party agent SDKs only. The `codex` harness —
a thin shim around `codex exec` — has been removed. Supported
harnesses: `codex-sdk`, `claude-sdk`, `mock`.

BREAKING CHANGE: `--harness codex` (and `PROSE_HARNESS=codex`) no
longer works. Switch to `--harness codex-sdk` for first-party,
in-process Codex SDK execution. `codex-sdk` remains the default,
so most users are unaffected.

- Delete `codex-cli.ts` and `process-harness.ts`; keep
  `process-runner.ts` for the OpenProse skill installer
- Trim `codex-options.ts` to SDK-shaped helpers
- Drop `codex` from the smoke script and CI matrix
- Align README, post-release playtest, and package metadata
2026-05-04 10:57:03 -07:00
irl-dan 5e1d5b49e2 chore: prepare CLI 0.2.5 release v0.2.5 2026-05-04 10:07:35 -07:00
irl-dan 779cd35c8e fix: namespace CLI release tags 2026-05-04 10:04:25 -07:00
dan 53aa3b12e6 chore: prepare CLI 0.2.0 release 2026-05-04 09:57:48 -07:00
dan 012650a201 [codex] Prepare OpenProse 0.12.0 responsibility runtime release (#57)
* Document native runtime skill semantics

* Rename native runtime to responsibility runtime

* Add responsibility runtime compiler skeleton

* Add responsibility compilation IR

* Compile Forme manifests into repository IR

* Serve static repository IR

* Tighten responsibility runtime review gaps

* Introduce OpenProse root model

* Harden OpenProse root resolution

* Add responsibility judge activation

* Add responsibility pressure fulfillment path

* Add repository status inspection

* Make triggers concrete gateway registrations

* Add live responsibility trigger adapters

* Refine responsibility runtime validation

* Harden responsibility runtime freshness

* Tighten responsibility runtime guardrails

* docs: replace skill examples with native repositories

* chore: release v0.12.0

* fix: tighten release review gaps
v0.12.0
2026-05-04 09:26:26 -07:00
Jose Montes de Oca e4892c039d chore: relocate prose-cli to tools/cli/ (#54)
Moves `@openprose/prose-cli` from `cli/` to `tools/cli/` and seeds a
`tools/` convention at the repo root for shippable tooling published as
standalone artifacts. Package internals are unchanged — only paths
outside the package that hard-code the `cli/` segment were updated.

## What changed

- `git mv cli tools/cli` — package files render as 100%-similarity
  renames, so `git log --follow` is preserved.
- `.github/workflows/cli-publish.yml`,
  `.github/workflows/cli-release-check.yml`, and
  `.github/workflows/cli-real-harness-smoke.yml`: every literal `cli/`
  path (`paths:`, `working-directory:`, `cache-dependency-path:`,
  artifact `path:`, and inline `node`/`bash` invocations) now points
  at `tools/cli/`. `cli-skills-smoke.yml` had no `cli/` references and
  is untouched.
- `tools/cli/package.json`: `repository.directory` and `homepage` flip
  to `tools/cli` so the npm registry "Repository" link resolves.
- `README.md`: the badge nav, the prose-layout paragraph, and the repo
  layout table now point at `tools/cli/`, plus a new `tools/` row
  introducing the convention.
- `RELEASE.md`: cross-references to `cli/RELEASE.md` updated.
- `tools/cli/README.md`, `tools/cli/RELEASE.md`,
  `tools/cli/POST_RELEASE_PLAYTEST.md`: public installer URL updated to
  `https://raw.githubusercontent.com/openprose/prose/main/tools/cli/install.sh`.
2026-05-01 17:15:34 -07:00
irl-dan d68de6a2ce chore: prepare CLI 0.1.4 release v0.1.4 2026-05-01 13:21:05 -07:00
irl-dan 15f9d6d9f3 Avoid plugin release on non-plugin tags 2026-05-01 13:19:55 -07:00