{"_id":"@bamr87/fleet-engines","name":"@bamr87/fleet-engines","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bamr87/fleet-engines","version":"0.1.0","description":"The fleet's pure engines, versioned once: fleet/v1 manifest parse + emit, workflow facts, the audit rulebook, metrics, the harness scorecard and trip wires, and the GithubClient contract every console implements over its own fetch. Consumed by dependency ","license":"MIT","author":{"name":"bamr87"},"repository":{"type":"git","url":"git+https://github.com/bamr87/bamr87.git","directory":"templates/fleet-engines"},"homepage":"https://github.com/bamr87/bamr87/tree/main/templates/fleet-engines","keywords":["fleet","github-actions","harness","audit","fleet-manifest"],"type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"sideEffects":false,"publishConfig":{"access":"public"},"engines":{"node":">=22"},"scripts":{"build":"tsc -p tsconfig.build.json","prepack":"npm run build","test":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit"},"dependencies":{"yaml":">=2.9.0"},"devDependencies":{"@types/node":">=22","typescript":">=5.9","vitest":">=3"},"_id":"@bamr87/fleet-engines@0.1.0","gitHead":"1db2e1ba389de5864263da98eb3bfc44f2ae160e","bugs":{"url":"https://github.com/bamr87/bamr87/issues"},"_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-8uXCtyCCusNbJvjPSmWnn2+4bx9LvY2w7ptTMpD2YUQDQEFIIZB/BwFzJ+Byq0St8ZJWUd0ZQhsdPcmZ/ekAjw==","shasum":"29e582b52a8cb086a429033f6091bb5f94b4fbb7","tarball":"https://registry.npmjs.org/@bamr87/fleet-engines/-/fleet-engines-0.1.0.tgz","fileCount":35,"unpackedSize":177558,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bamr87%2ffleet-engines@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDNauk3WblQW4KISLG2jgGZ959YqACLXmTDiVQjxaPf9AiA7iBJ+IcSFb4NxiRMARV3I6uG0eTLDMTFaa9HY/Lzvaw=="}]},"_npmUser":{"name":"bamrman","email":"Amr.abdel@gmail.com"},"directories":{},"maintainers":[{"name":"bamrman","email":"Amr.abdel@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fleet-engines_0.1.0_1788920805206_0.24722872937191354"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-09T02:26:45.026Z","0.1.0":"2026-09-09T02:26:45.338Z","modified":"2026-09-09T02:26:45.860Z"},"maintainers":[{"name":"bamrman","email":"Amr.abdel@gmail.com"}],"description":"The fleet's pure engines, versioned once: fleet/v1 manifest parse + emit, workflow facts, the audit rulebook, metrics, the harness scorecard and trip wires, and the GithubClient contract every console implements over its own fetch. Consumed by dependency ","homepage":"https://github.com/bamr87/bamr87/tree/main/templates/fleet-engines","keywords":["fleet","github-actions","harness","audit","fleet-manifest"],"repository":{"type":"git","url":"git+https://github.com/bamr87/bamr87.git","directory":"templates/fleet-engines"},"author":{"name":"bamr87"},"bugs":{"url":"https://github.com/bamr87/bamr87/issues"},"license":"MIT","readme":"# `@bamr87/fleet-engines` — the fleet's engines, versioned once\n\nThe pure logic behind every fleet console, published from the hub and consumed **by dependency**: GitFactory's Fleet Ops cockpit, Observe map and Harness tab run it in the browser; zer0-CMS's Fleet console runs it inside VS Code. One implementation, one rulebook, one set of tests.\n\n```bash\nnpm install @bamr87/fleet-engines\n```\n\n```ts\nimport { parseFleetManifest, extractFacts, auditWorkflow, harnessHealth } from '@bamr87/fleet-engines';\n```\n\n## What is in it\n\n| Module | What it does | Pure? |\n| --- | --- | --- |\n| `harness/lanes` | The `fleet/v1` vocabulary (`FleetLane`, `FleetManifest`), `parseFleetManifest` (tolerant, never throws), `laneForPath` | yes |\n| `harness/manifest-yaml` | `toFleetManifestYaml(lanes, meta)` — a manifest document from lanes, deterministic emitter | yes |\n| `fleet/parse`, `fleet/facts` | Reverse-import any repo's `.github/workflows/*.yml`: triggers, sinks, the AI runner (the hub's `claude-run` by reference, a vendored copy, `claude-code-action`, the bare CLI, the agentic engine), kill switches, guards, permissions, pins | yes |\n| `fleet/audit` | The rulebook: the fleet's conventions as data (`AUDIT_RULES`) and the checkers (`auditWorkflow`, `auditRepo`, `gradeFor`). Every rule is one entry — meta, applies, violations — so the published rulebook and the checks cannot drift | yes |\n| `fleet/metrics` | Run-level rollups per workflow and repo | yes |\n| `fleet/import` | The one orchestrator: fetches workflows + the manifest through a `GithubClient` you inject | I/O via the client only |\n| `harness/health` | The hub's harness scorecard and six trip wires, recomputed from committed signals | yes |\n| `harness/signals`, `harness/hubread`, `harness/hub-paths` | Live signals from a scan; the eight hub reads; the hub's paths and snapshot shape | I/O via the client only |\n| `github/types`, `github/telemetry` | The `GithubClient` contract (22 members) every console implements over its own fetch, `RepoRef`, `GithubError`; ETag-polled run telemetry | yes |\n\nNot in it, on purpose: a fetch client (each consumer brings its own: a browser client, an editor client over VS Code's fetch and SecretStorage, a fixture client for demos), and the blueprint → lanes direction, which belongs to GitFactory's compiler.\n\n## Where it came from\n\nLifted verbatim from GitFactory (`bamr87/gitorio` `app/src/{fleet,harness,github}`) at the commit named in `VERSION`, with two seams cut so it stands alone; GitFactory switches to consuming this package next (its backlog item), and the copy there is retired, never edited. The tests came with the code: 230+ cases over 39 real-fleet workflow fixtures and the hub's own committed signal files.\n\n## Developing\n\n```bash\ncd templates/fleet-engines\nnpm install --no-package-lock     # always-latest: floors, no lockfile\nnpm test                          # vitest, node environment\nnpm run typecheck\nnpm run build                     # dist/ (ESM + d.ts); prepack runs it for publish\n```\n\n`fleet-engines-contract.yml` runs the tests, the typecheck and the build on every change here; `publish-kits.yml` builds, packs and publishes on a version bump. Bump `version` in `package.json` **and** `VERSION` together.\n","readmeFilename":"README.md","_rev":"1-91dcdb8153e0429e3df49223f202ccd1"}