logicsrc/packages
Anthony Ettinger 4ceaaaaa1f OpenFleet reference implementation: @logicsrc/openfleet 0.1.0 and logicsrc fleet
Ship what docs/openfleet.md describes. The new workspace package holds the
record (write once, never overwrite, 0600), the ledger (append-only JSON
Lines, merged across ledger*.jsonl by at), the ceiling rules (whole fleet
ceiling, narrowed swarm keys, a merge that never widens, refusals by key),
claiming and deriving exactly as the spec's "Claiming and deriving" and
rule 13, and fold(), which turns any $OPENFLEET_HOME plus the engine
rosters into the tree the landing page shows.

logicsrc fleet open|cap|tree|stop|log are the sysop's verbs, every one with
--json. open and cap exit 4 when OPENFLEET_MEMBER is set; stop exits 4
outside the caller's subtree, ends nested swarms first, goes through each
member's own engine (claude stop, moshcode herd kill, tmux kill-pane, a
signal for claude-p) and writes one swarm.end per swarm. tree reads claude
agents --json --all and ~/.moshcode/herd/sessions.json when it can, draws
recordless sessions as roster roots of the implicit fleet, and writes
member.end lost for a recorded member its engine no longer lists.

Claude Code takes part through hooks: logicsrc fleet hooks install merges
SessionStart, UserPromptSubmit, PreToolUse, Stop and SessionEnd into
~/.claude/settings.json without clobbering it, and logicsrc fleet hook
<Event> runs each one. SessionStart claims, derives or writes a root record
and hands the member its variables through CLAUDE_ENV_FILE; UserPromptSubmit
checks the ceiling with the permission mode the engine reports and writes
member.start, or refuses the first prompt with exit 2 and ceiling.refuse;
PreToolUse denies an edit outside piece.owns; Stop and SessionEnd write
member.end. A hand-started root takes the engine's reported approvals
before member.start, since the command line only guesses them. Hooks
never fail the engine: everything is caught and logged to hooks.log.

The spec and the landing page now say what ships, keep Status 0.1, and
record the two verified Claude Code limits: a background job dispatched from
claude agents gets no launcher environment, and OPENFLEET_* exported at
SessionStart reach the member's tools but not later hooks, so hooks key on
session_id through $OPENFLEET_HOME/sessions/<session_id>.json. PRD 0008
covers the work. CLI 0.2.1 -> 0.3.0; build and build:cli chains build the
package before the CLI; README and docs/cli.md list the group.

Tests: 95 in the package (record, ledger merge, every narrower case, the
worked example's claim and derive, the folded tree, hook install
idempotence, each hook handler including the exit-2 refusal and the
PreToolUse deny, every verb with fake deps) and 4 in the CLI.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZV4zJ2pDZLNN3kE5jFCmV
2026-09-13 10:06:11 +00:00
..
account-core
agentad
agentstack
agentswarm
ans fix(ans): reject non-hex input in fromHex instead of silently decoding to 0 (#91) 2026-07-02 16:37:39 -07:00
cli OpenFleet reference implementation: @logicsrc/openfleet 0.1.0 and logicsrc fleet 2026-09-13 10:06:11 +00:00
logicsrc-mcp Add Tech Stack and Monetization sections to OpenPRD (0.3) (#144) 2026-09-06 16:50:11 -07:00
opencontext Enforce OpenContext HTTP byte limit while streaming (#136) 2026-08-09 21:57:05 -07:00
opencreds Add the LogicSRC OpenCreds specification (#140) 2026-08-29 04:11:38 -07:00
openfleet OpenFleet reference implementation: @logicsrc/openfleet 0.1.0 and logicsrc fleet 2026-09-13 10:06:11 +00:00
openontology fix(openontology): migrate in one transaction, and stop timing out on slow disks (#124) 2026-08-03 06:38:05 -07:00
openprd Release @logicsrc/openprd 0.2.0 to npm (#145) 2026-09-07 05:01:33 -07:00
plugin-core
schemas Merge master; OpenFleet keeps its name, PR 177's rental descriptor becomes OpenRental 2026-09-13 08:45:33 +00:00
sdk Merge master; OpenFleet keeps its name, PR 177's rental descriptor becomes OpenRental 2026-09-13 08:45:33 +00:00
tui feat(openontology): Phase 2 + Phase 3 — storage, REST/SSE, MCP, RDF/SHACL, adapters, TUI, explorer (#101) 2026-07-28 05:10:33 -07:00
validators Merge master; OpenFleet keeps its name, PR 177's rental descriptor becomes OpenRental 2026-09-13 08:45:33 +00:00