@ybotok/loam 0.1.0-beta.3 → 0.2.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2635 -86
- package/COMPARISON.md +80 -63
- package/CONTRIBUTING.md +84 -0
- package/MIGRATING-from-OpenSpec.md +213 -54
- package/QUICKSTART.md +125 -0
- package/README.md +450 -150
- package/ROADMAP.md +599 -0
- package/SCHEMA.md +2355 -256
- package/SECURITY.md +21 -3
- package/WORKFLOW.md +701 -0
- package/dist/cli.js +113 -19
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt/adopt.js +209 -0
- package/dist/commands/adopt/adopt.js.map +1 -0
- package/dist/commands/adopt/render.js +268 -0
- package/dist/commands/adopt/render.js.map +1 -0
- package/dist/commands/archive/archive.js +77 -0
- package/dist/commands/archive/archive.js.map +1 -0
- package/dist/commands/archive/plan/contracts/asyncapi.js +178 -0
- package/dist/commands/archive/plan/contracts/asyncapi.js.map +1 -0
- package/dist/commands/archive/plan/contracts/openapi.js +159 -0
- package/dist/commands/archive/plan/contracts/openapi.js.map +1 -0
- package/dist/commands/archive/plan/gate.js +323 -0
- package/dist/commands/archive/plan/gate.js.map +1 -0
- package/dist/commands/archive/plan/landscape.js +180 -0
- package/dist/commands/archive/plan/landscape.js.map +1 -0
- package/dist/commands/archive/plan/refusal.js +111 -0
- package/dist/commands/archive/plan/refusal.js.map +1 -0
- package/dist/commands/archive/plan/specs.js +237 -0
- package/dist/commands/archive/plan/specs.js.map +1 -0
- package/dist/commands/archive/plan/state.js +27 -0
- package/dist/commands/archive/plan/state.js.map +1 -0
- package/dist/commands/archive/run.js +252 -0
- package/dist/commands/archive/run.js.map +1 -0
- package/dist/commands/context/context.js +99 -0
- package/dist/commands/context/context.js.map +1 -0
- package/dist/commands/context/print.js +283 -0
- package/dist/commands/context/print.js.map +1 -0
- package/dist/commands/delta/delta.js +279 -0
- package/dist/commands/delta/delta.js.map +1 -0
- package/dist/commands/delta/print.js +205 -0
- package/dist/commands/delta/print.js.map +1 -0
- package/dist/commands/dependencies.js +9 -7
- package/dist/commands/dependencies.js.map +1 -1
- package/dist/commands/diff/diff.js +93 -0
- package/dist/commands/diff/diff.js.map +1 -0
- package/dist/commands/diff/print.js +38 -0
- package/dist/commands/diff/print.js.map +1 -0
- package/dist/commands/doctor.js +5 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/explain/explain.js +151 -0
- package/dist/commands/explain/explain.js.map +1 -0
- package/dist/commands/explore.js +29 -24
- package/dist/commands/explore.js.map +1 -1
- package/dist/commands/gate/gate.js +115 -0
- package/dist/commands/gate/gate.js.map +1 -0
- package/dist/commands/gate/print.js +54 -0
- package/dist/commands/gate/print.js.map +1 -0
- package/dist/commands/gherkin/commit.js +146 -0
- package/dist/commands/gherkin/commit.js.map +1 -0
- package/dist/commands/gherkin/gherkin.js +246 -0
- package/dist/commands/gherkin/gherkin.js.map +1 -0
- package/dist/commands/gherkin/reconcile.js +149 -0
- package/dist/commands/gherkin/reconcile.js.map +1 -0
- package/dist/commands/gherkin/render.js +77 -0
- package/dist/commands/gherkin/render.js.map +1 -0
- package/dist/commands/init/example.js +204 -0
- package/dist/commands/init/example.js.map +1 -0
- package/dist/commands/init/first-hour.js +28 -0
- package/dist/commands/init/first-hour.js.map +1 -0
- package/dist/commands/{init.js → init/init.js} +146 -71
- package/dist/commands/init/init.js.map +1 -0
- package/dist/commands/init/mcp.js +131 -0
- package/dist/commands/init/mcp.js.map +1 -0
- package/dist/commands/init/options.js +78 -0
- package/dist/commands/init/options.js.map +1 -0
- package/dist/commands/instructions.js +72 -14
- package/dist/commands/instructions.js.map +1 -1
- package/dist/commands/list/campaign/campaign.js +65 -0
- package/dist/commands/list/campaign/campaign.js.map +1 -0
- package/dist/commands/list/campaign/owners.js +65 -0
- package/dist/commands/list/campaign/owners.js.map +1 -0
- package/dist/commands/list/json.js +157 -0
- package/dist/commands/list/json.js.map +1 -0
- package/dist/commands/list/list.js +343 -0
- package/dist/commands/list/list.js.map +1 -0
- package/dist/commands/list/print.js +301 -0
- package/dist/commands/list/print.js.map +1 -0
- package/dist/commands/list/review.js +120 -0
- package/dist/commands/list/review.js.map +1 -0
- package/dist/commands/list/views.js +105 -0
- package/dist/commands/list/views.js.map +1 -0
- package/dist/commands/mcp/dispatch.js +183 -0
- package/dist/commands/mcp/dispatch.js.map +1 -0
- package/dist/commands/mcp/mcp.js +34 -0
- package/dist/commands/mcp/mcp.js.map +1 -0
- package/dist/commands/mcp/serve.js +55 -0
- package/dist/commands/mcp/serve.js.map +1 -0
- package/dist/commands/migrate-openspec/materialize/active.js +170 -0
- package/dist/commands/migrate-openspec/materialize/active.js.map +1 -0
- package/dist/commands/migrate-openspec/materialize/feature.js +41 -0
- package/dist/commands/migrate-openspec/materialize/feature.js.map +1 -0
- package/dist/commands/migrate-openspec/materialize/living.js +62 -0
- package/dist/commands/migrate-openspec/materialize/living.js.map +1 -0
- package/dist/commands/migrate-openspec/materialize/stage.js +142 -0
- package/dist/commands/migrate-openspec/materialize/stage.js.map +1 -0
- package/dist/commands/migrate-openspec/materialize/target.js +219 -0
- package/dist/commands/migrate-openspec/materialize/target.js.map +1 -0
- package/dist/commands/migrate-openspec/migrate-openspec.js +142 -0
- package/dist/commands/migrate-openspec/migrate-openspec.js.map +1 -0
- package/dist/commands/migrate-openspec/openspec/decisions.js +91 -0
- package/dist/commands/migrate-openspec/openspec/decisions.js.map +1 -0
- package/dist/commands/migrate-openspec/openspec/error.js +19 -0
- package/dist/commands/migrate-openspec/openspec/error.js.map +1 -0
- package/dist/commands/migrate-openspec/openspec/mapping.js +170 -0
- package/dist/commands/migrate-openspec/openspec/mapping.js.map +1 -0
- package/dist/commands/migrate-openspec/openspec/paths.js +43 -0
- package/dist/commands/migrate-openspec/openspec/paths.js.map +1 -0
- package/dist/commands/migrate-openspec/openspec/read.js +49 -0
- package/dist/commands/migrate-openspec/openspec/read.js.map +1 -0
- package/dist/commands/migrate-openspec/print.js +89 -0
- package/dist/commands/migrate-openspec/print.js.map +1 -0
- package/dist/commands/new/commit.js +76 -0
- package/dist/commands/new/commit.js.map +1 -0
- package/dist/commands/new/new.js +283 -0
- package/dist/commands/new/new.js.map +1 -0
- package/dist/commands/new/templates.js +355 -0
- package/dist/commands/new/templates.js.map +1 -0
- package/dist/commands/open.js +203 -0
- package/dist/commands/open.js.map +1 -0
- package/dist/commands/policy/format.js +152 -0
- package/dist/commands/policy/format.js.map +1 -0
- package/dist/commands/{docs-repo-gate.js → policy/gate.js} +11 -11
- package/dist/commands/policy/gate.js.map +1 -0
- package/dist/commands/rebase/edit.js +106 -0
- package/dist/commands/rebase/edit.js.map +1 -0
- package/dist/commands/rebase/living.js +185 -0
- package/dist/commands/rebase/living.js.map +1 -0
- package/dist/commands/rebase/plan.js +245 -0
- package/dist/commands/rebase/plan.js.map +1 -0
- package/dist/commands/rebase/rebase.js +275 -0
- package/dist/commands/rebase/rebase.js.map +1 -0
- package/dist/commands/seed/commit.js +192 -0
- package/dist/commands/seed/commit.js.map +1 -0
- package/dist/commands/seed/plan.js +133 -0
- package/dist/commands/seed/plan.js.map +1 -0
- package/dist/commands/seed/seed.js +172 -0
- package/dist/commands/seed/seed.js.map +1 -0
- package/dist/commands/show/feature.js +178 -0
- package/dist/commands/show/feature.js.map +1 -0
- package/dist/commands/show/marks.js +24 -0
- package/dist/commands/show/marks.js.map +1 -0
- package/dist/commands/{show.js → show/service.js} +63 -152
- package/dist/commands/show/service.js.map +1 -0
- package/dist/commands/show/show.js +77 -0
- package/dist/commands/show/show.js.map +1 -0
- package/dist/commands/status/json.js +45 -0
- package/dist/commands/status/json.js.map +1 -0
- package/dist/commands/status/print.js +157 -0
- package/dist/commands/status/print.js.map +1 -0
- package/dist/commands/status/status.js +119 -0
- package/dist/commands/status/status.js.map +1 -0
- package/dist/commands/steps/steps.js +189 -0
- package/dist/commands/steps/steps.js.map +1 -0
- package/dist/commands/subsystem/edit.js +192 -0
- package/dist/commands/subsystem/edit.js.map +1 -0
- package/dist/commands/subsystem/move.js +265 -0
- package/dist/commands/subsystem/move.js.map +1 -0
- package/dist/commands/subsystem/query.js +115 -0
- package/dist/commands/subsystem/query.js.map +1 -0
- package/dist/commands/subsystem/subsystem.js +101 -0
- package/dist/commands/subsystem/subsystem.js.map +1 -0
- package/dist/commands/subsystem/sync.js +103 -0
- package/dist/commands/subsystem/sync.js.map +1 -0
- package/dist/commands/subsystem/txn/txn.js +94 -0
- package/dist/commands/subsystem/txn/txn.js.map +1 -0
- package/dist/commands/subsystem/txn/views.js +70 -0
- package/dist/commands/subsystem/txn/views.js.map +1 -0
- package/dist/commands/unarchive/manifest.js +160 -0
- package/dist/commands/unarchive/manifest.js.map +1 -0
- package/dist/commands/{unarchive.js → unarchive/restore.js} +47 -160
- package/dist/commands/unarchive/restore.js.map +1 -0
- package/dist/commands/unarchive/unarchive.js +67 -0
- package/dist/commands/unarchive/unarchive.js.map +1 -0
- package/dist/commands/validate/arch-coverage.js +204 -0
- package/dist/commands/validate/arch-coverage.js.map +1 -0
- package/dist/commands/validate/checks/fleet-shape.js +296 -0
- package/dist/commands/validate/checks/fleet-shape.js.map +1 -0
- package/dist/commands/validate/checks/health-deps.js +55 -0
- package/dist/commands/validate/checks/health-deps.js.map +1 -0
- package/dist/commands/validate/checks/requirements.js +254 -0
- package/dist/commands/validate/checks/requirements.js.map +1 -0
- package/dist/commands/validate/checks/sources.js +76 -0
- package/dist/commands/validate/checks/sources.js.map +1 -0
- package/dist/commands/validate/checks/vocabulary.js +31 -0
- package/dist/commands/validate/checks/vocabulary.js.map +1 -0
- package/dist/commands/validate/feature.js +216 -0
- package/dist/commands/validate/feature.js.map +1 -0
- package/dist/commands/validate/fleet/census.js +69 -0
- package/dist/commands/validate/fleet/census.js.map +1 -0
- package/dist/commands/validate/fleet/kind-tags.js +39 -0
- package/dist/commands/validate/fleet/kind-tags.js.map +1 -0
- package/dist/commands/validate/fleet/landscape.js +353 -0
- package/dist/commands/validate/fleet/landscape.js.map +1 -0
- package/dist/commands/validate/fleet/load.js +52 -0
- package/dist/commands/validate/fleet/load.js.map +1 -0
- package/dist/commands/validate/fleet/obligations.js +270 -0
- package/dist/commands/validate/fleet/obligations.js.map +1 -0
- package/dist/commands/validate/fleet/scorecard/adoption.js +102 -0
- package/dist/commands/validate/fleet/scorecard/adoption.js.map +1 -0
- package/dist/commands/validate/fleet/scorecard/contracts.js +98 -0
- package/dist/commands/validate/fleet/scorecard/contracts.js.map +1 -0
- package/dist/commands/validate/fleet/scorecard/print.js +63 -0
- package/dist/commands/validate/fleet/scorecard/print.js.map +1 -0
- package/dist/commands/validate/fleet/scorecard/scorecard.js +156 -0
- package/dist/commands/validate/fleet/scorecard/scorecard.js.map +1 -0
- package/dist/commands/validate/fleet/usecases/capability-tag.js +94 -0
- package/dist/commands/validate/fleet/usecases/capability-tag.js.map +1 -0
- package/dist/commands/validate/fleet/usecases/place.js +13 -0
- package/dist/commands/validate/fleet/usecases/place.js.map +1 -0
- package/dist/commands/validate/fleet/usecases/requirement-tag.js +95 -0
- package/dist/commands/validate/fleet/usecases/requirement-tag.js.map +1 -0
- package/dist/commands/validate/fleet/usecases/steps.js +197 -0
- package/dist/commands/validate/fleet/usecases/steps.js.map +1 -0
- package/dist/commands/validate/fleet/usecases/usecases.js +99 -0
- package/dist/commands/validate/fleet/usecases/usecases.js.map +1 -0
- package/dist/commands/validate/fleet/views/ids.js +40 -0
- package/dist/commands/validate/fleet/views/ids.js.map +1 -0
- package/dist/commands/validate/fleet/views/stale.js +59 -0
- package/dist/commands/validate/fleet/views/stale.js.map +1 -0
- package/dist/commands/validate/links/corpus.js +92 -0
- package/dist/commands/validate/links/corpus.js.map +1 -0
- package/dist/commands/validate/links/glossary.js +75 -0
- package/dist/commands/validate/links/glossary.js.map +1 -0
- package/dist/commands/validate/report.js +269 -0
- package/dist/commands/validate/report.js.map +1 -0
- package/dist/commands/validate/service/api.js +338 -0
- package/dist/commands/validate/service/api.js.map +1 -0
- package/dist/commands/validate/service/events/events.js +219 -0
- package/dist/commands/validate/service/events/events.js.map +1 -0
- package/dist/commands/validate/service/events/message-producers.js +77 -0
- package/dist/commands/validate/service/events/message-producers.js.map +1 -0
- package/dist/commands/validate/service/evidence-pins.js +131 -0
- package/dist/commands/validate/service/evidence-pins.js.map +1 -0
- package/dist/commands/validate/service/service.js +251 -0
- package/dist/commands/validate/service/service.js.map +1 -0
- package/dist/commands/validate/service/specs.js +251 -0
- package/dist/commands/validate/service/specs.js.map +1 -0
- package/dist/commands/validate/service/spine.js +113 -0
- package/dist/commands/validate/service/spine.js.map +1 -0
- package/dist/commands/validate/validate.js +338 -0
- package/dist/commands/validate/validate.js.map +1 -0
- package/dist/commands/verify/cross/diff.js +182 -0
- package/dist/commands/verify/cross/diff.js.map +1 -0
- package/dist/commands/verify/evidence/contract.js +32 -0
- package/dist/commands/verify/evidence/contract.js.map +1 -0
- package/dist/commands/verify/evidence/pins.js +52 -0
- package/dist/commands/verify/evidence/pins.js.map +1 -0
- package/dist/commands/verify/evidence/read.js +72 -0
- package/dist/commands/verify/evidence/read.js.map +1 -0
- package/dist/commands/verify/frozen.js +241 -0
- package/dist/commands/verify/frozen.js.map +1 -0
- package/dist/commands/verify/record.js +226 -0
- package/dist/commands/verify/record.js.map +1 -0
- package/dist/commands/verify/report.js +223 -0
- package/dist/commands/verify/report.js.map +1 -0
- package/dist/commands/verify/results.js +246 -0
- package/dist/commands/verify/results.js.map +1 -0
- package/dist/commands/verify/verify.js +217 -0
- package/dist/commands/verify/verify.js.map +1 -0
- package/dist/commands/vouch/contract.js +11 -0
- package/dist/commands/vouch/contract.js.map +1 -0
- package/dist/commands/vouch/pack/contract.js +2 -0
- package/dist/commands/vouch/pack/contract.js.map +1 -0
- package/dist/commands/vouch/pack/pack.js +266 -0
- package/dist/commands/vouch/pack/pack.js.map +1 -0
- package/dist/commands/vouch/pack/print.js +271 -0
- package/dist/commands/vouch/pack/print.js.map +1 -0
- package/dist/commands/vouch/pack/sections.js +142 -0
- package/dist/commands/vouch/pack/sections.js.map +1 -0
- package/dist/commands/vouch/prompt/confirm.js +46 -0
- package/dist/commands/vouch/prompt/confirm.js.map +1 -0
- package/dist/commands/vouch/report.js +101 -0
- package/dist/commands/vouch/report.js.map +1 -0
- package/dist/commands/vouch/run.js +285 -0
- package/dist/commands/vouch/run.js.map +1 -0
- package/dist/commands/vouch/sample/plan.js +125 -0
- package/dist/commands/vouch/sample/plan.js.map +1 -0
- package/dist/commands/vouch/sample/print.js +109 -0
- package/dist/commands/vouch/sample/print.js.map +1 -0
- package/dist/commands/vouch/vet/verify.js +123 -0
- package/dist/commands/vouch/vet/verify.js.map +1 -0
- package/dist/commands/vouch/vouch.js +176 -0
- package/dist/commands/vouch/vouch.js.map +1 -0
- package/dist/core/agent/agents-md/artifacts.js +220 -0
- package/dist/core/agent/agents-md/artifacts.js.map +1 -0
- package/dist/core/agent/agents-md/command-map.js +324 -0
- package/dist/core/agent/agents-md/command-map.js.map +1 -0
- package/dist/core/agent/agents-md/cycle.js +165 -0
- package/dist/core/agent/agents-md/cycle.js.map +1 -0
- package/dist/core/agent/agents-md/map/explain.js +34 -0
- package/dist/core/agent/agents-md/map/explain.js.map +1 -0
- package/dist/core/agent/agents-md/map/lenses/context.js +41 -0
- package/dist/core/agent/agents-md/map/lenses/context.js.map +1 -0
- package/dist/core/agent/agents-md/map/lenses/diff.js +46 -0
- package/dist/core/agent/agents-md/map/lenses/diff.js.map +1 -0
- package/dist/core/agent/agents-md/map/lenses/gate.js +57 -0
- package/dist/core/agent/agents-md/map/lenses/gate.js.map +1 -0
- package/dist/core/agent/agents-md/map/mcp.js +41 -0
- package/dist/core/agent/agents-md/map/mcp.js.map +1 -0
- package/dist/core/agent/agents-md/map/status.js +62 -0
- package/dist/core/agent/agents-md/map/status.js.map +1 -0
- package/dist/core/agent/agents-md/map/subsystem.js +32 -0
- package/dist/core/agent/agents-md/map/subsystem.js.map +1 -0
- package/dist/core/agent/agents-md/map/usecases.js +60 -0
- package/dist/core/agent/agents-md/map/usecases.js.map +1 -0
- package/dist/core/agent/agents-md/refusals.js +246 -0
- package/dist/core/agent/agents-md/refusals.js.map +1 -0
- package/dist/core/agent/agents-md/shipped/archive-gate.js +98 -0
- package/dist/core/agent/agents-md/shipped/archive-gate.js.map +1 -0
- package/dist/core/agent/agents-md/spine.js +40 -0
- package/dist/core/agent/agents-md/spine.js.map +1 -0
- package/dist/core/agent/agents-md.js +170 -0
- package/dist/core/agent/agents-md.js.map +1 -0
- package/dist/core/{agents-stamp.js → agent/agents-stamp.js} +50 -0
- package/dist/core/agent/agents-stamp.js.map +1 -0
- package/dist/core/agent/contract.js +2 -0
- package/dist/core/agent/contract.js.map +1 -0
- package/dist/core/agent/protocol.js +193 -0
- package/dist/core/agent/protocol.js.map +1 -0
- package/dist/core/agent/scaffold.js +259 -0
- package/dist/core/agent/scaffold.js.map +1 -0
- package/dist/core/agent/support/report.js +103 -0
- package/dist/core/agent/support/report.js.map +1 -0
- package/dist/core/agent/tools/dialects.js +150 -0
- package/dist/core/agent/tools/dialects.js.map +1 -0
- package/dist/core/agent/tools/registry.js +228 -0
- package/dist/core/agent/tools/registry.js.map +1 -0
- package/dist/core/agent/workflows/adopt.js +133 -0
- package/dist/core/agent/workflows/adopt.js.map +1 -0
- package/dist/core/agent/workflows/check.js +337 -0
- package/dist/core/agent/workflows/check.js.map +1 -0
- package/dist/core/agent/workflows/closing.js +262 -0
- package/dist/core/agent/workflows/closing.js.map +1 -0
- package/dist/core/agent/workflows/feature.js +105 -0
- package/dist/core/agent/workflows/feature.js.map +1 -0
- package/dist/core/agent/workflows/implement.js +105 -0
- package/dist/core/agent/workflows/implement.js.map +1 -0
- package/dist/core/agent/workflows/reference/authoring.js +209 -0
- package/dist/core/agent/workflows/reference/authoring.js.map +1 -0
- package/dist/core/agent/workflows/reference/codes.js +65 -0
- package/dist/core/agent/workflows/reference/codes.js.map +1 -0
- package/dist/core/agent/workflows/reference/done-check.js +188 -0
- package/dist/core/agent/workflows/reference/done-check.js.map +1 -0
- package/dist/core/agent/workflows/reference/reference.js +16 -0
- package/dist/core/agent/workflows/reference/reference.js.map +1 -0
- package/dist/core/agent/workflows/reference/spine.js +297 -0
- package/dist/core/agent/workflows/reference/spine.js.map +1 -0
- package/dist/core/asyncapi/baseline/plan.js +110 -0
- package/dist/core/asyncapi/baseline/plan.js.map +1 -0
- package/dist/core/asyncapi/baseline/surfaces.js +54 -0
- package/dist/core/asyncapi/baseline/surfaces.js.map +1 -0
- package/dist/core/asyncapi/depth.js +164 -0
- package/dist/core/asyncapi/depth.js.map +1 -0
- package/dist/core/asyncapi/digest.js +141 -0
- package/dist/core/asyncapi/digest.js.map +1 -0
- package/dist/core/asyncapi/merge/components.js +91 -0
- package/dist/core/asyncapi/merge/components.js.map +1 -0
- package/dist/core/asyncapi/merge/error.js +33 -0
- package/dist/core/asyncapi/merge/error.js.map +1 -0
- package/dist/core/asyncapi/merge/markers.js +308 -0
- package/dist/core/asyncapi/merge/markers.js.map +1 -0
- package/dist/core/asyncapi/merge/merge.js +215 -0
- package/dist/core/asyncapi/merge/merge.js.map +1 -0
- package/dist/core/asyncapi/merge/pin.js +107 -0
- package/dist/core/asyncapi/merge/pin.js.map +1 -0
- package/dist/core/asyncapi/model.js +11 -0
- package/dist/core/asyncapi/model.js.map +1 -0
- package/dist/core/asyncapi/producers.js +50 -0
- package/dist/core/asyncapi/producers.js.map +1 -0
- package/dist/core/{asyncapi.js → asyncapi/read.js} +95 -109
- package/dist/core/asyncapi/read.js.map +1 -0
- package/dist/core/brief/brief.js +225 -0
- package/dist/core/brief/brief.js.map +1 -0
- package/dist/core/brief/checks.js +250 -0
- package/dist/core/brief/checks.js.map +1 -0
- package/dist/core/brief/landscape.js +194 -0
- package/dist/core/brief/landscape.js.map +1 -0
- package/dist/core/brief/targets.js +226 -0
- package/dist/core/brief/targets.js.map +1 -0
- package/dist/core/brief/unchecked.js +48 -0
- package/dist/core/brief/unchecked.js.map +1 -0
- package/dist/core/c4/arch.js +174 -0
- package/dist/core/c4/arch.js.map +1 -0
- package/dist/core/c4/likec4.js +90 -0
- package/dist/core/c4/likec4.js.map +1 -0
- package/dist/core/c4/parsed/deployment.js +158 -0
- package/dist/core/c4/parsed/deployment.js.map +1 -0
- package/dist/core/c4/parsed/dynamic-views.js +132 -0
- package/dist/core/c4/parsed/dynamic-views.js.map +1 -0
- package/dist/core/c4/parsed/specification.js +78 -0
- package/dist/core/c4/parsed/specification.js.map +1 -0
- package/dist/core/c4/parsed/values.js +57 -0
- package/dist/core/c4/parsed/values.js.map +1 -0
- package/dist/core/c4/parsed/view-ids.js +75 -0
- package/dist/core/c4/parsed/view-ids.js.map +1 -0
- package/dist/core/c4/project/architecture.js +45 -0
- package/dist/core/c4/project/architecture.js.map +1 -0
- package/dist/core/c4/project/documents.js +58 -0
- package/dist/core/c4/project/documents.js.map +1 -0
- package/dist/core/c4/project/load.js +187 -0
- package/dist/core/c4/project/load.js.map +1 -0
- package/dist/core/c4/project/staged.js +220 -0
- package/dist/core/c4/project/staged.js.map +1 -0
- package/dist/core/c4/resolve/service.js +159 -0
- package/dist/core/c4/resolve/service.js.map +1 -0
- package/dist/core/c4/resolve/steps.js +144 -0
- package/dist/core/c4/resolve/steps.js.map +1 -0
- package/dist/core/c4/seed/fleet-file.js +201 -0
- package/dist/core/c4/seed/fleet-file.js.map +1 -0
- package/dist/core/c4/seed/items.js +91 -0
- package/dist/core/c4/seed/items.js.map +1 -0
- package/dist/core/c4/seed/stamp.js +48 -0
- package/dist/core/c4/seed/stamp.js.map +1 -0
- package/dist/core/c4/seed/template.js +109 -0
- package/dist/core/c4/seed/template.js.map +1 -0
- package/dist/core/c4/source-mask.js +82 -0
- package/dist/core/c4/source-mask.js.map +1 -0
- package/dist/core/c4/source-scan.js +227 -0
- package/dist/core/c4/source-scan.js.map +1 -0
- package/dist/core/c4/splice/authored-source.js +101 -0
- package/dist/core/c4/splice/authored-source.js.map +1 -0
- package/dist/core/c4/splice/contract.js +10 -0
- package/dist/core/c4/splice/contract.js.map +1 -0
- package/dist/core/c4/splice/delta-blocks.js +139 -0
- package/dist/core/c4/splice/delta-blocks.js.map +1 -0
- package/dist/core/c4/splice/identity/edges.js +36 -0
- package/dist/core/c4/splice/identity/edges.js.map +1 -0
- package/dist/core/c4/splice/landscape-merge.js +269 -0
- package/dist/core/c4/splice/landscape-merge.js.map +1 -0
- package/dist/core/c4/splice/placement.js +194 -0
- package/dist/core/c4/splice/placement.js.map +1 -0
- package/dist/core/c4/workspace.js +174 -0
- package/dist/core/c4/workspace.js.map +1 -0
- package/dist/core/capabilities/authoring/notes.js +141 -0
- package/dist/core/capabilities/authoring/notes.js.map +1 -0
- package/dist/core/capabilities/capabilities.js +124 -0
- package/dist/core/capabilities/capabilities.js.map +1 -0
- package/dist/core/capabilities/delta/doc.js +50 -0
- package/dist/core/capabilities/delta/doc.js.map +1 -0
- package/dist/core/capabilities/delta/overlay.js +129 -0
- package/dist/core/capabilities/delta/overlay.js.map +1 -0
- package/dist/core/capabilities/delta/summary.js +57 -0
- package/dist/core/capabilities/delta/summary.js.map +1 -0
- package/dist/core/capabilities/delta/tree.js +43 -0
- package/dist/core/capabilities/delta/tree.js.map +1 -0
- package/dist/core/capabilities/delta/uncovered.js +222 -0
- package/dist/core/capabilities/delta/uncovered.js.map +1 -0
- package/dist/core/capabilities/findings.js +342 -0
- package/dist/core/capabilities/findings.js.map +1 -0
- package/dist/core/capabilities/realizes/findings.js +181 -0
- package/dist/core/capabilities/realizes/findings.js.map +1 -0
- package/dist/core/capabilities/realizes/join.js +143 -0
- package/dist/core/capabilities/realizes/join.js.map +1 -0
- package/dist/core/capabilities/rollup.js +199 -0
- package/dist/core/capabilities/rollup.js.map +1 -0
- package/dist/core/capabilities/tree.js +126 -0
- package/dist/core/capabilities/tree.js.map +1 -0
- package/dist/core/capabilities/usecase-join.js +277 -0
- package/dist/core/capabilities/usecase-join.js.map +1 -0
- package/dist/core/coherence/authoring/scaffold.js +177 -0
- package/dist/core/coherence/authoring/scaffold.js.map +1 -0
- package/dist/core/coherence/authoring/sentinels.js +74 -0
- package/dist/core/coherence/authoring/sentinels.js.map +1 -0
- package/dist/core/coherence/coherence.js +287 -0
- package/dist/core/coherence/coherence.js.map +1 -0
- package/dist/core/coherence/declared.js +269 -0
- package/dist/core/coherence/declared.js.map +1 -0
- package/dist/core/coherence/events/declared.js +206 -0
- package/dist/core/coherence/events/declared.js.map +1 -0
- package/dist/core/coherence/events/events.js +204 -0
- package/dist/core/coherence/events/events.js.map +1 -0
- package/dist/core/coherence/events/grades.js +166 -0
- package/dist/core/coherence/events/grades.js.map +1 -0
- package/dist/core/coherence/events/lookups.js +122 -0
- package/dist/core/coherence/events/lookups.js.map +1 -0
- package/dist/core/coherence/events/merged.js +40 -0
- package/dist/core/coherence/events/merged.js.map +1 -0
- package/dist/core/coherence/living.js +198 -0
- package/dist/core/coherence/living.js.map +1 -0
- package/dist/core/coherence/lookups.js +155 -0
- package/dist/core/coherence/lookups.js.map +1 -0
- package/dist/core/coherence/pending.js +39 -0
- package/dist/core/coherence/pending.js.map +1 -0
- package/dist/core/conflict-markers.js +60 -0
- package/dist/core/conflict-markers.js.map +1 -0
- package/dist/core/delta/claims.js +73 -0
- package/dist/core/delta/claims.js.map +1 -0
- package/dist/core/delta/delta.js +296 -0
- package/dist/core/delta/delta.js.map +1 -0
- package/dist/core/delta/document.js +177 -0
- package/dist/core/delta/document.js.map +1 -0
- package/dist/core/delta/scope.js +48 -0
- package/dist/core/delta/scope.js.map +1 -0
- package/dist/core/delta/select.js +237 -0
- package/dist/core/delta/select.js.map +1 -0
- package/dist/core/dependencies/dependencies.js +141 -0
- package/dist/core/dependencies/dependencies.js.map +1 -0
- package/dist/core/dependencies/facts.js +165 -0
- package/dist/core/dependencies/facts.js.map +1 -0
- package/dist/core/dependencies/fanin.js +88 -0
- package/dist/core/dependencies/fanin.js.map +1 -0
- package/dist/core/dependencies/graph.js +106 -0
- package/dist/core/dependencies/graph.js.map +1 -0
- package/dist/core/deployment/delta.js +188 -0
- package/dist/core/deployment/delta.js.map +1 -0
- package/dist/core/deployment/objects.js +145 -0
- package/dist/core/deployment/objects.js.map +1 -0
- package/dist/core/diff/base-git.js +148 -0
- package/dist/core/diff/base-git.js.map +1 -0
- package/dist/core/diff/base-state.js +209 -0
- package/dist/core/diff/base-state.js.map +1 -0
- package/dist/core/diff/current-state.js +96 -0
- package/dist/core/diff/current-state.js.map +1 -0
- package/dist/core/diff/scope/changed-paths.js +188 -0
- package/dist/core/diff/scope/changed-paths.js.map +1 -0
- package/dist/core/diff/semantic.js +243 -0
- package/dist/core/diff/semantic.js.map +1 -0
- package/dist/core/diff/victims.js +247 -0
- package/dist/core/diff/victims.js.map +1 -0
- package/dist/core/docs.js +7 -64
- package/dist/core/docs.js.map +1 -1
- package/dist/core/doctor/agents.js +222 -0
- package/dist/core/doctor/agents.js.map +1 -0
- package/dist/core/doctor/config.js +135 -0
- package/dist/core/doctor/config.js.map +1 -0
- package/dist/core/doctor/doctor.js +275 -0
- package/dist/core/doctor/doctor.js.map +1 -0
- package/dist/core/doctor/report.js +13 -0
- package/dist/core/doctor/report.js.map +1 -0
- package/dist/core/doctor/residue.js +110 -0
- package/dist/core/doctor/residue.js.map +1 -0
- package/dist/core/document/apply.js +77 -0
- package/dist/core/document/apply.js.map +1 -0
- package/dist/core/{frontmatter.js → document/frontmatter.js} +48 -2
- package/dist/core/document/frontmatter.js.map +1 -0
- package/dist/core/document/grammar/directives.js +143 -0
- package/dist/core/document/grammar/directives.js.map +1 -0
- package/dist/core/document/parse.js +263 -0
- package/dist/core/document/parse.js.map +1 -0
- package/dist/core/document/scenarios.js +221 -0
- package/dist/core/document/scenarios.js.map +1 -0
- package/dist/core/document/spec.js +241 -0
- package/dist/core/document/spec.js.map +1 -0
- package/dist/core/{config.js → envelope/config.js} +79 -18
- package/dist/core/envelope/config.js.map +1 -0
- package/dist/core/envelope/json.js +175 -0
- package/dist/core/envelope/json.js.map +1 -0
- package/dist/core/{version.js → envelope/version.js} +3 -3
- package/dist/core/envelope/version.js.map +1 -0
- package/dist/core/explain/families.js +175 -0
- package/dist/core/explain/families.js.map +1 -0
- package/dist/core/explain/fix-tables.js +178 -0
- package/dist/core/explain/fix-tables.js.map +1 -0
- package/dist/core/explain/lookup.js +181 -0
- package/dist/core/explain/lookup.js.map +1 -0
- package/dist/core/explain/refusals.js +49 -0
- package/dist/core/explain/refusals.js.map +1 -0
- package/dist/core/explain/terms.js +144 -0
- package/dist/core/explain/terms.js.map +1 -0
- package/dist/core/explore/describe.js +105 -0
- package/dist/core/explore/describe.js.map +1 -0
- package/dist/core/{explore.js → explore/explore.js} +50 -101
- package/dist/core/explore/explore.js.map +1 -0
- package/dist/core/fleet-context.js +120 -78
- package/dist/core/fleet-context.js.map +1 -1
- package/dist/core/gate/checks.js +201 -0
- package/dist/core/gate/checks.js.map +1 -0
- package/dist/core/gate/partners.js +205 -0
- package/dist/core/gate/partners.js.map +1 -0
- package/dist/core/gate/report.js +47 -0
- package/dist/core/gate/report.js.map +1 -0
- package/dist/core/gate/verification.js +113 -0
- package/dist/core/gate/verification.js.map +1 -0
- package/dist/core/gherkin/digest.js +60 -0
- package/dist/core/gherkin/digest.js.map +1 -0
- package/dist/core/gherkin/emit.js +177 -0
- package/dist/core/gherkin/emit.js.map +1 -0
- package/dist/core/gherkin/read.js +76 -0
- package/dist/core/gherkin/read.js.map +1 -0
- package/dist/core/gherkin/stale.js +234 -0
- package/dist/core/gherkin/stale.js.map +1 -0
- package/dist/core/gherkin/stamp.js +77 -0
- package/dist/core/gherkin/stamp.js.map +1 -0
- package/dist/core/gherkin/steps/catalogue.js +154 -0
- package/dist/core/gherkin/steps/catalogue.js.map +1 -0
- package/dist/core/gherkin/steps/inventory.js +98 -0
- package/dist/core/gherkin/steps/inventory.js.map +1 -0
- package/dist/core/gherkin/steps/phrase.js +72 -0
- package/dist/core/gherkin/steps/phrase.js.map +1 -0
- package/dist/core/glossary/delta.js +106 -0
- package/dist/core/glossary/delta.js.map +1 -0
- package/dist/core/glossary/tree.js +86 -0
- package/dist/core/glossary/tree.js.map +1 -0
- package/dist/core/kernel/concurrency.js.map +1 -0
- package/dist/core/{document-bytes.js → kernel/document-bytes.js} +1 -1
- package/dist/core/kernel/document-bytes.js.map +1 -0
- package/dist/core/kernel/fences.js +42 -0
- package/dist/core/kernel/fences.js.map +1 -0
- package/dist/core/kernel/ids/capability.js +72 -0
- package/dist/core/kernel/ids/capability.js.map +1 -0
- package/dist/core/kernel/ids/dirs.js +33 -0
- package/dist/core/kernel/ids/dirs.js.map +1 -0
- package/dist/core/kernel/ids/feature.js +75 -0
- package/dist/core/kernel/ids/feature.js.map +1 -0
- package/dist/core/kernel/ids/service.js +156 -0
- package/dist/core/kernel/ids/service.js.map +1 -0
- package/dist/core/kernel/ids/subsystem.js +63 -0
- package/dist/core/kernel/ids/subsystem.js.map +1 -0
- package/dist/core/{path-safety.js → kernel/path-safety.js} +18 -4
- package/dist/core/kernel/path-safety.js.map +1 -0
- package/dist/core/kernel/records.js.map +1 -0
- package/dist/core/links/backlinks.js +68 -0
- package/dist/core/links/backlinks.js.map +1 -0
- package/dist/core/links/case.js +74 -0
- package/dist/core/links/case.js.map +1 -0
- package/dist/core/links/corpus.js +104 -0
- package/dist/core/links/corpus.js.map +1 -0
- package/dist/core/links/findings.js +110 -0
- package/dist/core/links/findings.js.map +1 -0
- package/dist/core/links/parse.js +236 -0
- package/dist/core/links/parse.js.map +1 -0
- package/dist/core/mcp/argv.js +111 -0
- package/dist/core/mcp/argv.js.map +1 -0
- package/dist/core/mcp/author-tools.js +72 -0
- package/dist/core/mcp/author-tools.js.map +1 -0
- package/dist/core/mcp/framing.js +46 -0
- package/dist/core/mcp/framing.js.map +1 -0
- package/dist/core/mcp/protocol.js +280 -0
- package/dist/core/mcp/protocol.js.map +1 -0
- package/dist/core/mcp/tools.js +314 -0
- package/dist/core/mcp/tools.js.map +1 -0
- package/dist/core/obligations/obligations.js +106 -0
- package/dist/core/obligations/obligations.js.map +1 -0
- package/dist/core/openapi/baseline/gate.js +166 -0
- package/dist/core/openapi/baseline/gate.js.map +1 -0
- package/dist/core/openapi/baseline/plan.js +112 -0
- package/dist/core/openapi/baseline/plan.js.map +1 -0
- package/dist/core/openapi/baseline/record.js +175 -0
- package/dist/core/openapi/baseline/record.js.map +1 -0
- package/dist/core/openapi/depth.js +122 -0
- package/dist/core/openapi/depth.js.map +1 -0
- package/dist/core/openapi/digest.js +189 -0
- package/dist/core/openapi/digest.js.map +1 -0
- package/dist/core/{openapi.js → openapi/doc.js} +44 -106
- package/dist/core/openapi/doc.js.map +1 -0
- package/dist/core/openapi/merge/components.js +234 -0
- package/dist/core/openapi/merge/components.js.map +1 -0
- package/dist/core/openapi/merge/error.js +26 -0
- package/dist/core/openapi/merge/error.js.map +1 -0
- package/dist/core/openapi/merge/markers.js +208 -0
- package/dist/core/openapi/merge/markers.js.map +1 -0
- package/dist/core/openapi/merge/merge.js +256 -0
- package/dist/core/openapi/merge/merge.js.map +1 -0
- package/dist/core/openapi/merge/pin.js +128 -0
- package/dist/core/openapi/merge/pin.js.map +1 -0
- package/dist/core/openspec/decide/capabilities.js +244 -0
- package/dist/core/openspec/decide/capabilities.js.map +1 -0
- package/dist/core/openspec/decide/dispositions.js +63 -0
- package/dist/core/openspec/decide/dispositions.js.map +1 -0
- package/dist/core/openspec/decide/renames.js +179 -0
- package/dist/core/openspec/decide/renames.js.map +1 -0
- package/dist/core/openspec/decide/verdict.js +84 -0
- package/dist/core/openspec/decide/verdict.js.map +1 -0
- package/dist/core/openspec/inventory.js +221 -0
- package/dist/core/openspec/inventory.js.map +1 -0
- package/dist/core/openspec/model/mapping.js +76 -0
- package/dist/core/openspec/model/mapping.js.map +1 -0
- package/dist/core/openspec/model/model.js +65 -0
- package/dist/core/openspec/model/model.js.map +1 -0
- package/dist/core/openspec/scan/changes.js +235 -0
- package/dist/core/openspec/scan/changes.js.map +1 -0
- package/dist/core/openspec/scan/config.js +200 -0
- package/dist/core/openspec/scan/config.js.map +1 -0
- package/dist/core/openspec/scan/shape.js +260 -0
- package/dist/core/openspec/scan/shape.js.map +1 -0
- package/dist/core/openspec/scan/walk.js +133 -0
- package/dist/core/openspec/scan/walk.js.map +1 -0
- package/dist/core/openspec/scan/workspace.js +71 -0
- package/dist/core/openspec/scan/workspace.js.map +1 -0
- package/dist/core/owners/codeowners.js +141 -0
- package/dist/core/owners/codeowners.js.map +1 -0
- package/dist/core/pack/features.js +120 -0
- package/dist/core/pack/features.js.map +1 -0
- package/dist/core/pack/joins.js +112 -0
- package/dist/core/pack/joins.js.map +1 -0
- package/dist/core/pack/living.js +137 -0
- package/dist/core/pack/living.js.map +1 -0
- package/dist/core/pack/pack.js +76 -0
- package/dist/core/pack/pack.js.map +1 -0
- package/dist/core/permissions/permissions.js +87 -0
- package/dist/core/permissions/permissions.js.map +1 -0
- package/dist/core/projection/api.js +84 -0
- package/dist/core/projection/api.js.map +1 -0
- package/dist/core/projection/arch-slice.js +63 -0
- package/dist/core/projection/arch-slice.js.map +1 -0
- package/dist/core/projection/events.js +34 -0
- package/dist/core/projection/events.js.map +1 -0
- package/dist/core/provenance/findings.js +208 -0
- package/dist/core/provenance/findings.js.map +1 -0
- package/dist/core/provenance/git.js +225 -0
- package/dist/core/provenance/git.js.map +1 -0
- package/dist/core/provenance/gitq/moves.js +182 -0
- package/dist/core/provenance/gitq/moves.js.map +1 -0
- package/dist/core/provenance/gitq/vouched-ancestor.js +179 -0
- package/dist/core/provenance/gitq/vouched-ancestor.js.map +1 -0
- package/dist/core/provenance/sample/scope.js +238 -0
- package/dist/core/provenance/sample/scope.js.map +1 -0
- package/dist/core/provenance/sample/sections.js +61 -0
- package/dist/core/provenance/sample/sections.js.map +1 -0
- package/dist/core/provenance/sources.js +263 -0
- package/dist/core/provenance/sources.js.map +1 -0
- package/dist/core/provenance/stamp.js +232 -0
- package/dist/core/provenance/stamp.js.map +1 -0
- package/dist/core/provenance/walk.js +157 -0
- package/dist/core/provenance/walk.js.map +1 -0
- package/dist/core/repo/authored/paths.js +210 -0
- package/dist/core/repo/authored/paths.js.map +1 -0
- package/dist/core/repo/entries.js +126 -0
- package/dist/core/repo/entries.js.map +1 -0
- package/dist/core/repo/paths.js +277 -0
- package/dist/core/repo/paths.js.map +1 -0
- package/dist/core/repo/repo.js +248 -0
- package/dist/core/repo/repo.js.map +1 -0
- package/dist/core/repo/service-target.js +153 -0
- package/dist/core/repo/service-target.js.map +1 -0
- package/dist/core/repo/state.js +58 -0
- package/dist/core/repo/state.js.map +1 -0
- package/dist/core/repo/tree/find.js +52 -0
- package/dist/core/repo/tree/find.js.map +1 -0
- package/dist/core/repo/tree/fs.js +64 -0
- package/dist/core/repo/tree/fs.js.map +1 -0
- package/dist/core/repo/tree/marker.js +61 -0
- package/dist/core/repo/tree/marker.js.map +1 -0
- package/dist/core/repo/tree/views.js +172 -0
- package/dist/core/repo/tree/views.js.map +1 -0
- package/dist/core/repo/tree/walk.js +234 -0
- package/dist/core/repo/tree/walk.js.map +1 -0
- package/dist/core/results.js +99 -2
- package/dist/core/results.js.map +1 -1
- package/dist/core/scaffold/landscape.js +131 -0
- package/dist/core/scaffold/landscape.js.map +1 -0
- package/dist/core/scaffold/readme.js +84 -0
- package/dist/core/scaffold/readme.js.map +1 -0
- package/dist/core/staging/commit.js +241 -0
- package/dist/core/staging/commit.js.map +1 -0
- package/dist/core/staging/interrupted.js +96 -0
- package/dist/core/staging/interrupted.js.map +1 -0
- package/dist/core/staging/lock.js +206 -0
- package/dist/core/staging/lock.js.map +1 -0
- package/dist/core/staging/recovery/finding.js +35 -0
- package/dist/core/staging/recovery/finding.js.map +1 -0
- package/dist/core/staging/recovery/intent.js +98 -0
- package/dist/core/staging/recovery/intent.js.map +1 -0
- package/dist/core/staging/recovery/recover.js +126 -0
- package/dist/core/staging/recovery/recover.js.map +1 -0
- package/dist/core/staging/recovery/residue.js +62 -0
- package/dist/core/staging/recovery/residue.js.map +1 -0
- package/dist/core/staging/snapshot.js +202 -0
- package/dist/core/staging/snapshot.js.map +1 -0
- package/dist/core/staging/txn/forward.js +171 -0
- package/dist/core/staging/txn/forward.js.map +1 -0
- package/dist/core/staging/txn/journal.js +139 -0
- package/dist/core/staging/txn/journal.js.map +1 -0
- package/dist/core/staging/txn/transaction.js +75 -0
- package/dist/core/staging/txn/transaction.js.map +1 -0
- package/dist/core/staging/writes.js +113 -0
- package/dist/core/staging/writes.js.map +1 -0
- package/dist/core/status/actions/execution.js +49 -0
- package/dist/core/status/actions/execution.js.map +1 -0
- package/dist/core/status/contracts.js +102 -0
- package/dist/core/status/contracts.js.map +1 -0
- package/dist/core/status/feature/artifacts.js +196 -0
- package/dist/core/status/feature/artifacts.js.map +1 -0
- package/dist/core/status/feature/feature.js +207 -0
- package/dist/core/status/feature/feature.js.map +1 -0
- package/dist/core/status/feature/next.js +150 -0
- package/dist/core/status/feature/next.js.map +1 -0
- package/dist/core/status/feature/state.js +21 -0
- package/dist/core/status/feature/state.js.map +1 -0
- package/dist/core/status/fleet/fleet.js +197 -0
- package/dist/core/status/fleet/fleet.js.map +1 -0
- package/dist/core/status/fleet/next.js +207 -0
- package/dist/core/status/fleet/next.js.map +1 -0
- package/dist/core/status/interrupted.js +97 -0
- package/dist/core/status/interrupted.js.map +1 -0
- package/dist/core/status/report.js +31 -0
- package/dist/core/status/report.js.map +1 -0
- package/dist/core/status/scan.js +41 -0
- package/dist/core/status/scan.js.map +1 -0
- package/dist/core/status/verification.js +201 -0
- package/dist/core/status/verification.js.map +1 -0
- package/dist/core/usecases/capability.js +169 -0
- package/dist/core/usecases/capability.js.map +1 -0
- package/dist/core/usecases/delta/claims.js +116 -0
- package/dist/core/usecases/delta/claims.js.map +1 -0
- package/dist/core/usecases/delta/flows.js +103 -0
- package/dist/core/usecases/delta/flows.js.map +1 -0
- package/dist/core/usecases/delta/overlay.js +72 -0
- package/dist/core/usecases/delta/overlay.js.map +1 -0
- package/dist/core/usecases/fleet.js +137 -0
- package/dist/core/usecases/fleet.js.map +1 -0
- package/dist/core/usecases/operations.js +111 -0
- package/dist/core/usecases/operations.js.map +1 -0
- package/dist/core/usecases/place.js +44 -0
- package/dist/core/usecases/place.js.map +1 -0
- package/dist/core/usecases/touch.js +101 -0
- package/dist/core/usecases/touch.js.map +1 -0
- package/dist/core/verify/answers.js +173 -0
- package/dist/core/verify/answers.js.map +1 -0
- package/dist/core/verify/build.js +150 -0
- package/dist/core/verify/build.js.map +1 -0
- package/dist/core/verify/checklist.js +201 -0
- package/dist/core/verify/checklist.js.map +1 -0
- package/dist/core/verify/claims/identity.js +61 -0
- package/dist/core/verify/claims/identity.js.map +1 -0
- package/dist/core/verify/cross/diff.js +97 -0
- package/dist/core/verify/cross/diff.js.map +1 -0
- package/dist/core/verify/evidence/contract.js +169 -0
- package/dist/core/verify/evidence/contract.js.map +1 -0
- package/dist/core/verify/file.js +257 -0
- package/dist/core/verify/file.js.map +1 -0
- package/dist/core/verify/pins/lint.js +157 -0
- package/dist/core/verify/pins/lint.js.map +1 -0
- package/dist/core/verify/pins/pin.js +95 -0
- package/dist/core/verify/pins/pin.js.map +1 -0
- package/dist/core/verify/record.js +142 -0
- package/dist/core/verify/record.js.map +1 -0
- package/dist/core/verify/store/commit.js +89 -0
- package/dist/core/verify/store/commit.js.map +1 -0
- package/dist/core/verify/store/render.js +57 -0
- package/dist/core/verify/store/render.js.map +1 -0
- package/dist/core/vocabulary/health.js +91 -0
- package/dist/core/vocabulary/health.js.map +1 -0
- package/dist/core/vocabulary/issue.js +58 -0
- package/dist/core/vocabulary/issue.js.map +1 -0
- package/dist/core/vocabulary/maturity.js +145 -0
- package/dist/core/vocabulary/maturity.js.map +1 -0
- package/dist/core/{report.js → vocabulary/report.js} +30 -2
- package/dist/core/vocabulary/report.js.map +1 -0
- package/dist/core/vocabulary/steps.js +266 -0
- package/dist/core/vocabulary/steps.js.map +1 -0
- package/dist/core/workspace/discover.js +239 -0
- package/dist/core/workspace/discover.js.map +1 -0
- package/dist/core/workspace/render.js +52 -0
- package/dist/core/workspace/render.js.map +1 -0
- package/examples/README.md +189 -0
- package/examples/docs/architecture/adrs/0001-transactional-outbox.md +33 -0
- package/examples/docs/architecture/capabilities.yaml +31 -0
- package/examples/docs/architecture/landscape.likec4 +280 -0
- package/examples/docs/architecture/obligations.yaml +23 -0
- package/examples/docs/architecture/permissions.yaml +50 -0
- package/examples/docs/architecture/subsystems.likec4 +11 -0
- package/examples/docs/architecture/usecases/order-notification.likec4 +65 -0
- package/examples/docs/capabilities/checkout/spec.md +55 -0
- package/examples/docs/capabilities/identity/tokens/spec.md +42 -0
- package/examples/docs/capabilities/order-notifications/spec.md +43 -0
- package/examples/docs/features/FEAT-101-payment-splitting/adrs/0001-dedicated-split-service.md +18 -0
- package/examples/docs/features/FEAT-101-payment-splitting/delta.likec4 +94 -0
- package/examples/docs/features/FEAT-101-payment-splitting/intent.md +44 -0
- package/examples/docs/features/FEAT-101-payment-splitting/specs/checkout-web/spec.md +21 -0
- package/examples/docs/features/FEAT-101-payment-splitting/specs/payment-service/asyncapi.yaml +129 -0
- package/examples/docs/features/FEAT-101-payment-splitting/specs/payment-service/spec.md +36 -0
- package/examples/docs/features/FEAT-101-payment-splitting/specs/payment-split-service/arch.spec.md +40 -0
- package/examples/docs/features/FEAT-101-payment-splitting/specs/payment-split-service/openapi.yaml +116 -0
- package/examples/docs/features/FEAT-101-payment-splitting/specs/payment-split-service/spec.md +55 -0
- package/examples/docs/features/FEAT-112-retire-order-v1/intent.md +35 -0
- package/examples/docs/features/FEAT-112-retire-order-v1/specs/order-service/openapi.yaml +28 -0
- package/examples/docs/features/FEAT-112-retire-order-v1/specs/order-service/spec.md +17 -0
- package/examples/docs/features/archive/FEAT-088-refunds/.loam-before/files/architecture/landscape.likec4 +253 -0
- package/examples/docs/features/archive/FEAT-088-refunds/.loam-before/files/services/order-service/spec.md +121 -0
- package/examples/docs/features/archive/FEAT-088-refunds/.loam-before/files/services/payment-service/openapi.yaml +111 -0
- package/examples/docs/features/archive/FEAT-088-refunds/.loam-before/files/services/payment-service/spec.md +58 -0
- package/examples/docs/features/archive/FEAT-088-refunds/.loam-before/manifest.json +32 -0
- package/examples/docs/features/archive/FEAT-088-refunds/adrs/0001-refunds-stay-in-payment-service.md +26 -0
- package/examples/docs/features/archive/FEAT-088-refunds/delta.likec4 +28 -0
- package/examples/docs/features/archive/FEAT-088-refunds/intent.md +26 -0
- package/examples/docs/features/archive/FEAT-088-refunds/specs/order-service/spec.md +37 -0
- package/examples/docs/features/archive/FEAT-088-refunds/specs/payment-service/openapi.yaml +70 -0
- package/examples/docs/features/archive/FEAT-088-refunds/specs/payment-service/spec.md +23 -0
- package/examples/docs/features/archive/FEAT-088-refunds/verification.yaml +76 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/.loam-before/files/architecture/landscape.likec4 +275 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/.loam-before/files/services/payment-service/asyncapi.yaml +96 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/.loam-before/files/services/payment-service/spec.md +82 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/.loam-before/files/services/platform/notification-service/asyncapi.yaml +164 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/.loam-before/files/services/platform/notification-service/spec.md +91 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/.loam-before/manifest.json +46 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/delta.likec4 +36 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/intent.md +22 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/scenario-report.json +10 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/specs/notification-service/asyncapi.yaml +208 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/specs/notification-service/spec.md +24 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/specs/payment-service/asyncapi.yaml +137 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/specs/payment-service/spec.md +31 -0
- package/examples/docs/features/archive/FEAT-120-refund-notification/verification.yaml +84 -0
- package/examples/docs/glossary/order.md +15 -0
- package/examples/docs/glossary/payments/authorization.md +14 -0
- package/examples/docs/likec4.config.json +9 -0
- package/examples/docs/loam.json +3 -0
- package/examples/docs/services/checkout-web/model.likec4 +109 -0
- package/examples/docs/services/checkout-web/spec.md +91 -0
- package/examples/docs/services/checkout-web/ui/pages/checkout.page.yaml +40 -0
- package/examples/docs/services/checkout-web/ui/pages/order-status.page.yaml +24 -0
- package/examples/docs/services/checkout-web/ui/pages/split-payment.page.yaml +26 -0
- package/examples/docs/services/order-service/adrs/0001-orchestrated-order-lifecycle.md +52 -0
- package/examples/docs/services/order-service/arch.spec.md +127 -0
- package/examples/docs/services/order-service/asyncapi.yaml +108 -0
- package/examples/docs/services/order-service/health.yaml +57 -0
- package/examples/docs/services/order-service/model.likec4 +138 -0
- package/examples/docs/services/order-service/openapi.yaml +257 -0
- package/examples/docs/services/order-service/runbook.md +62 -0
- package/examples/docs/services/order-service/spec.md +134 -0
- package/examples/docs/services/payment-service/adrs/0001-payments-outbox.md +18 -0
- package/examples/docs/services/payment-service/adrs/0002-idempotency-keys-on-authorization.md +27 -0
- package/examples/docs/services/payment-service/arch.spec.md +73 -0
- package/examples/docs/services/payment-service/asyncapi.yaml +130 -0
- package/examples/docs/services/payment-service/health.yaml +39 -0
- package/examples/docs/services/payment-service/model.likec4 +67 -0
- package/examples/docs/services/payment-service/openapi.yaml +151 -0
- package/examples/docs/services/payment-service/runbook.md +37 -0
- package/examples/docs/services/payment-service/spec.md +88 -0
- package/examples/docs/services/platform/identity-service/adrs/0001-token-introspection-over-local-validation.md +60 -0
- package/examples/docs/services/platform/identity-service/arch.spec.md +117 -0
- package/examples/docs/services/platform/identity-service/health.yaml +70 -0
- package/examples/docs/services/platform/identity-service/model.likec4 +83 -0
- package/examples/docs/services/platform/identity-service/openapi.yaml +197 -0
- package/examples/docs/services/platform/identity-service/runbook.md +95 -0
- package/examples/docs/services/platform/identity-service/spec.md +119 -0
- package/examples/docs/services/platform/notification-service/asyncapi.yaml +199 -0
- package/examples/docs/services/platform/notification-service/health.yaml +35 -0
- package/examples/docs/services/platform/notification-service/model.likec4 +118 -0
- package/examples/docs/services/platform/notification-service/runbook.md +48 -0
- package/examples/docs/services/platform/notification-service/spec.md +112 -0
- package/examples/docs/services/platform/subsystem.yaml +2 -0
- package/examples/fleet.yaml +57 -0
- package/package.json +19 -6
- package/dist/commands/adopt.js +0 -240
- package/dist/commands/adopt.js.map +0 -1
- package/dist/commands/archive.js +0 -1313
- package/dist/commands/archive.js.map +0 -1
- package/dist/commands/delta.js +0 -388
- package/dist/commands/delta.js.map +0 -1
- package/dist/commands/docs-repo-gate.js.map +0 -1
- package/dist/commands/format.js +0 -17
- package/dist/commands/format.js.map +0 -1
- package/dist/commands/gherkin.js +0 -309
- package/dist/commands/gherkin.js.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/list.js +0 -295
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/migrate-openspec.js +0 -950
- package/dist/commands/migrate-openspec.js.map +0 -1
- package/dist/commands/new.js +0 -413
- package/dist/commands/new.js.map +0 -1
- package/dist/commands/rebase.js +0 -356
- package/dist/commands/rebase.js.map +0 -1
- package/dist/commands/show.js.map +0 -1
- package/dist/commands/status.js +0 -262
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/unarchive.js.map +0 -1
- package/dist/commands/validate.js +0 -1773
- package/dist/commands/validate.js.map +0 -1
- package/dist/commands/verify.js +0 -775
- package/dist/commands/verify.js.map +0 -1
- package/dist/commands/vouch.js +0 -421
- package/dist/commands/vouch.js.map +0 -1
- package/dist/core/agent.js +0 -2173
- package/dist/core/agent.js.map +0 -1
- package/dist/core/agents-stamp.js.map +0 -1
- package/dist/core/arch.js +0 -130
- package/dist/core/arch.js.map +0 -1
- package/dist/core/asyncapi.js.map +0 -1
- package/dist/core/brief.js +0 -755
- package/dist/core/brief.js.map +0 -1
- package/dist/core/coherence.js +0 -577
- package/dist/core/coherence.js.map +0 -1
- package/dist/core/concurrency.js.map +0 -1
- package/dist/core/config.js.map +0 -1
- package/dist/core/delta.js +0 -476
- package/dist/core/delta.js.map +0 -1
- package/dist/core/dependencies.js +0 -356
- package/dist/core/dependencies.js.map +0 -1
- package/dist/core/doctor.js +0 -596
- package/dist/core/doctor.js.map +0 -1
- package/dist/core/document-bytes.js.map +0 -1
- package/dist/core/explore.js.map +0 -1
- package/dist/core/frontmatter.js.map +0 -1
- package/dist/core/gherkin.js +0 -463
- package/dist/core/gherkin.js.map +0 -1
- package/dist/core/health.js +0 -67
- package/dist/core/health.js.map +0 -1
- package/dist/core/ids.js +0 -122
- package/dist/core/ids.js.map +0 -1
- package/dist/core/issue.js +0 -9
- package/dist/core/issue.js.map +0 -1
- package/dist/core/json.js +0 -74
- package/dist/core/json.js.map +0 -1
- package/dist/core/likec4.js +0 -489
- package/dist/core/likec4.js.map +0 -1
- package/dist/core/maturity.js +0 -66
- package/dist/core/maturity.js.map +0 -1
- package/dist/core/openapi-merge.js +0 -552
- package/dist/core/openapi-merge.js.map +0 -1
- package/dist/core/openapi.js.map +0 -1
- package/dist/core/openspec-inventory.js +0 -1440
- package/dist/core/openspec-inventory.js.map +0 -1
- package/dist/core/path-safety.js.map +0 -1
- package/dist/core/provenance.js +0 -787
- package/dist/core/provenance.js.map +0 -1
- package/dist/core/records.js.map +0 -1
- package/dist/core/repo.js +0 -438
- package/dist/core/repo.js.map +0 -1
- package/dist/core/report.js.map +0 -1
- package/dist/core/spec.js +0 -505
- package/dist/core/spec.js.map +0 -1
- package/dist/core/staging.js +0 -890
- package/dist/core/staging.js.map +0 -1
- package/dist/core/status.js +0 -1132
- package/dist/core/status.js.map +0 -1
- package/dist/core/steps.js +0 -72
- package/dist/core/steps.js.map +0 -1
- package/dist/core/verify.js +0 -807
- package/dist/core/verify.js.map +0 -1
- package/dist/core/version.js.map +0 -1
- /package/dist/core/{concurrency.js → kernel/concurrency.js} +0 -0
- /package/dist/core/{records.js → kernel/records.js} +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `loam context` entry of the command map — one of the three consumer
|
|
3
|
+
* LENSES this package holds (the agent briefing here, `./gate.ts`'s deploy
|
|
4
|
+
* pipeline, `./diff.ts`'s PR review), the family carved out of `../` when the
|
|
5
|
+
* map package hit its own five-file cap: command-map.ts sits against the
|
|
6
|
+
* file-line limit, so the pack's documentation lives down here and is
|
|
7
|
+
* concatenated after the map.
|
|
8
|
+
*
|
|
9
|
+
* Same assembly contract as every section: ../../../agents-md.ts concatenates
|
|
10
|
+
* with NO join separator, so this string starts at the first character of its
|
|
11
|
+
* opening line and ends with the newline that closes its last one.
|
|
12
|
+
*/
|
|
13
|
+
export const CONTEXT_COMMAND = `- \`loam context <service>\` assembles the docs slice bound to one service as a
|
|
14
|
+
single deterministic briefing — the pack an agent loads before working in
|
|
15
|
+
that service's repository. It writes nothing. One payload carries the living
|
|
16
|
+
requirements and arch requirements VERBATIM (bodies and scenarios included),
|
|
17
|
+
the OpenAPI operations with the requirements governing each, the AsyncAPI
|
|
18
|
+
messages with their send/receive direction, the fleet edges one hop out with
|
|
19
|
+
the map's own health beside them (\`landscape.present\`/\`parses\` — an empty
|
|
20
|
+
edge list under a map that does not parse is "nobody could look", never
|
|
21
|
+
"nobody calls this"), the \`Requires:\` permissions resolved against the
|
|
22
|
+
vocabulary (an undeclared entry is carried with \`declared: false\`, never
|
|
23
|
+
refused — and when the vocabulary ITSELF does not read, its parse failure
|
|
24
|
+
rides beside them, so \`declared: false\` there means nobody could look, not
|
|
25
|
+
that the claim is wrong), the capabilities this service realizes with the
|
|
26
|
+
capability vocabulary's own health beside them, maturity and provenance,
|
|
27
|
+
presence pointers for the runbook/health/ADRs, and every ACTIVE feature's
|
|
28
|
+
delta over this service in \`loam delta\`'s own shapes. \`--feature <FEAT>\`
|
|
29
|
+
narrows the in-flight section to that one feature and is echoed back as the
|
|
30
|
+
\`feature\` key, so a narrowed pack says it is one; a known feature that does
|
|
31
|
+
not touch the service still projects, with empty sections and its own
|
|
32
|
+
services list. Exit 1 with \`ok: true\` means a document behind the pack did
|
|
33
|
+
not parse — the fleet map, a living contract, a fleet vocabulary, another
|
|
34
|
+
service's spec during the capability join, or an included feature's document
|
|
35
|
+
(a feature whose delta.likec4 does not parse is still INCLUDED, its errors
|
|
36
|
+
in the payload, because a change nobody can read is in flight, not absent)
|
|
37
|
+
— and the empty section beside the flag IS the parse failure, not "nothing
|
|
38
|
+
here". Identical state yields identical bytes, so packs are diffable across
|
|
39
|
+
runs.
|
|
40
|
+
`;
|
|
41
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../src/core/agent/agents-md/map/lenses/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B9B,CAAC","sourcesContent":["/**\n * The `loam context` entry of the command map — one of the three consumer\n * LENSES this package holds (the agent briefing here, `./gate.ts`'s deploy\n * pipeline, `./diff.ts`'s PR review), the family carved out of `../` when the\n * map package hit its own five-file cap: command-map.ts sits against the\n * file-line limit, so the pack's documentation lives down here and is\n * concatenated after the map.\n *\n * Same assembly contract as every section: ../../../agents-md.ts concatenates\n * with NO join separator, so this string starts at the first character of its\n * opening line and ends with the newline that closes its last one.\n */\nexport const CONTEXT_COMMAND = `- \\`loam context <service>\\` assembles the docs slice bound to one service as a\n single deterministic briefing — the pack an agent loads before working in\n that service's repository. It writes nothing. One payload carries the living\n requirements and arch requirements VERBATIM (bodies and scenarios included),\n the OpenAPI operations with the requirements governing each, the AsyncAPI\n messages with their send/receive direction, the fleet edges one hop out with\n the map's own health beside them (\\`landscape.present\\`/\\`parses\\` — an empty\n edge list under a map that does not parse is \"nobody could look\", never\n \"nobody calls this\"), the \\`Requires:\\` permissions resolved against the\n vocabulary (an undeclared entry is carried with \\`declared: false\\`, never\n refused — and when the vocabulary ITSELF does not read, its parse failure\n rides beside them, so \\`declared: false\\` there means nobody could look, not\n that the claim is wrong), the capabilities this service realizes with the\n capability vocabulary's own health beside them, maturity and provenance,\n presence pointers for the runbook/health/ADRs, and every ACTIVE feature's\n delta over this service in \\`loam delta\\`'s own shapes. \\`--feature <FEAT>\\`\n narrows the in-flight section to that one feature and is echoed back as the\n \\`feature\\` key, so a narrowed pack says it is one; a known feature that does\n not touch the service still projects, with empty sections and its own\n services list. Exit 1 with \\`ok: true\\` means a document behind the pack did\n not parse — the fleet map, a living contract, a fleet vocabulary, another\n service's spec during the capability join, or an included feature's document\n (a feature whose delta.likec4 does not parse is still INCLUDED, its errors\n in the payload, because a change nobody can read is in flight, not absent)\n — and the empty section beside the flag IS the parse failure, not \"nothing\n here\". Identical state yields identical bytes, so packs are diffable across\n runs.\n`;\n"]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `loam diff` entry of the command map — the PR-review lens of this
|
|
3
|
+
* package, split out for `./context.ts`'s exact reason: command-map.ts sat
|
|
4
|
+
* against the file-line limit, so the branch-diff surface's documentation
|
|
5
|
+
* lives down here and is concatenated after the map. It is also the
|
|
6
|
+
* documentation home of the whole `diff.*` code vocabulary, which
|
|
7
|
+
* codes-drift requires.
|
|
8
|
+
*
|
|
9
|
+
* The codes are grouped by the ARTIFACT they are computed over and not
|
|
10
|
+
* glossed: that grouping is what nothing else says, while
|
|
11
|
+
* `loam explain diff.op-removed-consumed` (and every sibling) carries the
|
|
12
|
+
* meaning, the severity and the fix. See ../../command-map.ts's header for why
|
|
13
|
+
* the gloss left.
|
|
14
|
+
*
|
|
15
|
+
* Same assembly contract as every section: ../../../agents-md.ts concatenates
|
|
16
|
+
* with NO join separator, so this string starts at the first character of its
|
|
17
|
+
* opening line and ends with the newline that closes its last one.
|
|
18
|
+
*/
|
|
19
|
+
export const DIFF_COMMAND = `- \`loam diff --base <ref>\` reports the fleet-meaningful changes between the
|
|
20
|
+
living docs and a base git ref of the DOCS repo (a branch, \`origin/main\`, a
|
|
21
|
+
commit sha) — the review lens for a docs-repo PR. Read-only: the base state
|
|
22
|
+
is read with read-only git questions (\`rev-parse\`/\`ls-tree\`/\`show\`), no
|
|
23
|
+
checkout, nothing written. \`validate --all\` stays the fleet gate; diff says
|
|
24
|
+
what a branch CHANGES, and names who currently depends on every removal.
|
|
25
|
+
Codes, per service and grouped by the artifact they are computed over:
|
|
26
|
+
\`diff.service-added\` and \`diff.service-removed\` over the \`services/<id>/\`
|
|
27
|
+
directory; \`diff.requirement-added\`, \`diff.requirement-removed\` and
|
|
28
|
+
\`diff.requirement-modified\` over spec.md's living requirements;
|
|
29
|
+
\`diff.op-added\`, \`diff.op-removed\`, \`diff.op-removed-consumed\` and
|
|
30
|
+
\`diff.op-deprecated\` over the OpenAPI contract; \`diff.message-added\`,
|
|
31
|
+
\`diff.message-removed\` and \`diff.message-removed-consumed\` over the AsyncAPI
|
|
32
|
+
contract; and \`diff.consumer-added\` / \`diff.consumer-removed\` over the
|
|
33
|
+
cross-service joins — another service's requirement naming this service's
|
|
34
|
+
operation or message. The two \`-consumed\` codes are the errors: they are the
|
|
35
|
+
removals something in the fleet still names, with the victims in
|
|
36
|
+
\`details[]\`. Exit 0 = diff computed, nothing breaking, everything readable;
|
|
37
|
+
exit 1 = a refusal, any error finding (\`breaking: true\` in \`--json\`), or a
|
|
38
|
+
subject whose artifact could not be read on either side — those axes are
|
|
39
|
+
SUSPENDED and reported (\`unreadable\` in the payload and the summary), never
|
|
40
|
+
graded as "nothing changed" or "everything added". Refusals reuse existing
|
|
41
|
+
codes: \`repository-unavailable\` when the docs repo has no git history to ask,
|
|
42
|
+
and \`unknown-target\` when \`--base\` resolves to no commit there. For the
|
|
43
|
+
byte-level OpenAPI breaking-change catalogue, run oasdiff on the two states
|
|
44
|
+
of one contract instead — loam deliberately does not reimplement it.
|
|
45
|
+
`;
|
|
46
|
+
//# sourceMappingURL=diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../../../src/core/agent/agents-md/map/lenses/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B3B,CAAC","sourcesContent":["/**\n * The `loam diff` entry of the command map — the PR-review lens of this\n * package, split out for `./context.ts`'s exact reason: command-map.ts sat\n * against the file-line limit, so the branch-diff surface's documentation\n * lives down here and is concatenated after the map. It is also the\n * documentation home of the whole `diff.*` code vocabulary, which\n * codes-drift requires.\n *\n * The codes are grouped by the ARTIFACT they are computed over and not\n * glossed: that grouping is what nothing else says, while\n * `loam explain diff.op-removed-consumed` (and every sibling) carries the\n * meaning, the severity and the fix. See ../../command-map.ts's header for why\n * the gloss left.\n *\n * Same assembly contract as every section: ../../../agents-md.ts concatenates\n * with NO join separator, so this string starts at the first character of its\n * opening line and ends with the newline that closes its last one.\n */\nexport const DIFF_COMMAND = `- \\`loam diff --base <ref>\\` reports the fleet-meaningful changes between the\n living docs and a base git ref of the DOCS repo (a branch, \\`origin/main\\`, a\n commit sha) — the review lens for a docs-repo PR. Read-only: the base state\n is read with read-only git questions (\\`rev-parse\\`/\\`ls-tree\\`/\\`show\\`), no\n checkout, nothing written. \\`validate --all\\` stays the fleet gate; diff says\n what a branch CHANGES, and names who currently depends on every removal.\n Codes, per service and grouped by the artifact they are computed over:\n \\`diff.service-added\\` and \\`diff.service-removed\\` over the \\`services/<id>/\\`\n directory; \\`diff.requirement-added\\`, \\`diff.requirement-removed\\` and\n \\`diff.requirement-modified\\` over spec.md's living requirements;\n \\`diff.op-added\\`, \\`diff.op-removed\\`, \\`diff.op-removed-consumed\\` and\n \\`diff.op-deprecated\\` over the OpenAPI contract; \\`diff.message-added\\`,\n \\`diff.message-removed\\` and \\`diff.message-removed-consumed\\` over the AsyncAPI\n contract; and \\`diff.consumer-added\\` / \\`diff.consumer-removed\\` over the\n cross-service joins — another service's requirement naming this service's\n operation or message. The two \\`-consumed\\` codes are the errors: they are the\n removals something in the fleet still names, with the victims in\n \\`details[]\\`. Exit 0 = diff computed, nothing breaking, everything readable;\n exit 1 = a refusal, any error finding (\\`breaking: true\\` in \\`--json\\`), or a\n subject whose artifact could not be read on either side — those axes are\n SUSPENDED and reported (\\`unreadable\\` in the payload and the summary), never\n graded as \"nothing changed\" or \"everything added\". Refusals reuse existing\n codes: \\`repository-unavailable\\` when the docs repo has no git history to ask,\n and \\`unknown-target\\` when \\`--base\\` resolves to no commit there. For the\n byte-level OpenAPI breaking-change catalogue, run oasdiff on the two states\n of one contract instead — loam deliberately does not reimplement it.\n`;\n"]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `loam gate` entry of the command map — the deploy-pipeline lens of this
|
|
3
|
+
* package, split out for `./context.ts`'s exact reason: command-map.ts sat
|
|
4
|
+
* against the file-line limit, so the deploy gate's documentation lives down
|
|
5
|
+
* here and is concatenated after the map. Its four `gate.*` codes are what
|
|
6
|
+
* test/codes-drift.test.ts finds here.
|
|
7
|
+
*
|
|
8
|
+
* The codes are grouped by CHECK and not glossed: which check raises what is
|
|
9
|
+
* the payload's own `checks[]` shape and is the unique thing this section
|
|
10
|
+
* says, while `loam explain gate.partners-unknown` (and every sibling) carries
|
|
11
|
+
* the meaning, the conditional severity and the fix. See ../../command-map.ts's
|
|
12
|
+
* header for why the gloss left.
|
|
13
|
+
*
|
|
14
|
+
* Same assembly contract as every section: ../../../agents-md.ts concatenates
|
|
15
|
+
* with NO join separator, so this string starts at the first character of its
|
|
16
|
+
* opening line and ends with the newline that closes its last one.
|
|
17
|
+
*/
|
|
18
|
+
export const GATE_COMMAND = `- \`loam gate [--service <id>]\` is the DEPLOY-pipeline question — can this
|
|
19
|
+
service deploy, as far as recorded evidence can say — asked as a pure query:
|
|
20
|
+
it executes nothing, writes nothing, takes no lock, and deliberately changes
|
|
21
|
+
nothing about what gates \`loam archive\` (verify still never gates the
|
|
22
|
+
merge; gate's verdict is advice to a pipeline loam does not own). In a bound
|
|
23
|
+
service repo the invocation is literally \`loam gate --json\`; \`--service\`
|
|
24
|
+
names any other adopted service, and one nobody adopted refuses
|
|
25
|
+
\`unknown-service\` — recorded evidence cannot answer for it. Four checks, and
|
|
26
|
+
the code tells you which one spoke. \`partners\` derives the direct joins from
|
|
27
|
+
the LIVING landscape: \`gate.service-undocumented\`,
|
|
28
|
+
\`gate.partner-undocumented\` and \`gate.partners-unknown\` — the last one
|
|
29
|
+
severity-splits on why the map could not answer, so read
|
|
30
|
+
\`loam explain gate.partners-unknown\` before treating it as advisory. A
|
|
31
|
+
partner tagged \`#external\` is exempt from the middle one on purpose — its
|
|
32
|
+
docs are somebody else's — but an ADOPTED service is never exempt, whatever
|
|
33
|
+
zone the map draws it inside.
|
|
34
|
+
\`freshness\` re-reports two staleness findings \`validate\` already owns,
|
|
35
|
+
\`content.stale\` and \`sources.stale\`, over the gated service and its
|
|
36
|
+
documented partners, plus the one integrity error that makes freshness
|
|
37
|
+
unjudgeable, \`frontmatter.malformed\`; it decodes the spec bytes itself, so a
|
|
38
|
+
UTF-16 spec.md is a \`service.unreadable\` error naming the file, never a quiet
|
|
39
|
+
pass. The rest of provenance stays \`validate\`'s report to make.
|
|
40
|
+
\`verification\` covers every ACTIVE feature carrying a specs/ delta for the
|
|
41
|
+
service, through the verification record's own verdicts:
|
|
42
|
+
\`gate.feature-unverified\` and the reused \`verify.scenario-attested\`.
|
|
43
|
+
\`interrupted\` reuses \`docs.commit-interrupted\`: a \`.loam-commit\` journal
|
|
44
|
+
means the docs may be half-written, so nothing graded from them describes one
|
|
45
|
+
state. One unreadable sibling artifact degrades that ONE subject as
|
|
46
|
+
\`service.unreadable\` / \`feature.unreadable\` instead of killing the report.
|
|
47
|
+
Exit semantics are validate's: any error fails (exit 1, \`verdict: "fail"\`),
|
|
48
|
+
warnings are advisory (exit 0, \`verdict: "pass"\`), and \`--strict\` is the CI
|
|
49
|
+
lever that fails warnings too — the report and the \`--json\` payload do not
|
|
50
|
+
change under it. The payload carries \`landscape\`
|
|
51
|
+
(\`read\`/\`absent\`/\`invalid\`), \`partners[]\` (each with its maturity
|
|
52
|
+
rung, role and joins), \`features[]\` (the per-record tallies) and
|
|
53
|
+
\`checks[]\` (the findings, by check), so a pipeline that wants a stricter
|
|
54
|
+
bar — \`vouched\` partners, no attested scenarios — branches on the data
|
|
55
|
+
rather than waiting for a flag.
|
|
56
|
+
`;
|
|
57
|
+
//# sourceMappingURL=gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../../../../src/core/agent/agents-md/map/lenses/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsC3B,CAAC","sourcesContent":["/**\n * The `loam gate` entry of the command map — the deploy-pipeline lens of this\n * package, split out for `./context.ts`'s exact reason: command-map.ts sat\n * against the file-line limit, so the deploy gate's documentation lives down\n * here and is concatenated after the map. Its four `gate.*` codes are what\n * test/codes-drift.test.ts finds here.\n *\n * The codes are grouped by CHECK and not glossed: which check raises what is\n * the payload's own `checks[]` shape and is the unique thing this section\n * says, while `loam explain gate.partners-unknown` (and every sibling) carries\n * the meaning, the conditional severity and the fix. See ../../command-map.ts's\n * header for why the gloss left.\n *\n * Same assembly contract as every section: ../../../agents-md.ts concatenates\n * with NO join separator, so this string starts at the first character of its\n * opening line and ends with the newline that closes its last one.\n */\nexport const GATE_COMMAND = `- \\`loam gate [--service <id>]\\` is the DEPLOY-pipeline question — can this\n service deploy, as far as recorded evidence can say — asked as a pure query:\n it executes nothing, writes nothing, takes no lock, and deliberately changes\n nothing about what gates \\`loam archive\\` (verify still never gates the\n merge; gate's verdict is advice to a pipeline loam does not own). In a bound\n service repo the invocation is literally \\`loam gate --json\\`; \\`--service\\`\n names any other adopted service, and one nobody adopted refuses\n \\`unknown-service\\` — recorded evidence cannot answer for it. Four checks, and\n the code tells you which one spoke. \\`partners\\` derives the direct joins from\n the LIVING landscape: \\`gate.service-undocumented\\`,\n \\`gate.partner-undocumented\\` and \\`gate.partners-unknown\\` — the last one\n severity-splits on why the map could not answer, so read\n \\`loam explain gate.partners-unknown\\` before treating it as advisory. A\n partner tagged \\`#external\\` is exempt from the middle one on purpose — its\n docs are somebody else's — but an ADOPTED service is never exempt, whatever\n zone the map draws it inside.\n \\`freshness\\` re-reports two staleness findings \\`validate\\` already owns,\n \\`content.stale\\` and \\`sources.stale\\`, over the gated service and its\n documented partners, plus the one integrity error that makes freshness\n unjudgeable, \\`frontmatter.malformed\\`; it decodes the spec bytes itself, so a\n UTF-16 spec.md is a \\`service.unreadable\\` error naming the file, never a quiet\n pass. The rest of provenance stays \\`validate\\`'s report to make.\n \\`verification\\` covers every ACTIVE feature carrying a specs/ delta for the\n service, through the verification record's own verdicts:\n \\`gate.feature-unverified\\` and the reused \\`verify.scenario-attested\\`.\n \\`interrupted\\` reuses \\`docs.commit-interrupted\\`: a \\`.loam-commit\\` journal\n means the docs may be half-written, so nothing graded from them describes one\n state. One unreadable sibling artifact degrades that ONE subject as\n \\`service.unreadable\\` / \\`feature.unreadable\\` instead of killing the report.\n Exit semantics are validate's: any error fails (exit 1, \\`verdict: \"fail\"\\`),\n warnings are advisory (exit 0, \\`verdict: \"pass\"\\`), and \\`--strict\\` is the CI\n lever that fails warnings too — the report and the \\`--json\\` payload do not\n change under it. The payload carries \\`landscape\\`\n (\\`read\\`/\\`absent\\`/\\`invalid\\`), \\`partners[]\\` (each with its maturity\n rung, role and joins), \\`features[]\\` (the per-record tallies) and\n \\`checks[]\\` (the findings, by check), so a pipeline that wants a stricter\n bar — \\`vouched\\` partners, no attested scenarios — branches on the data\n rather than waiting for a flag.\n`;\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `loam mcp` entry of the command map — its own section module for
|
|
3
|
+
* `./lenses/gate.ts`'s exact reason: command-map.ts sat against the file-line limit,
|
|
4
|
+
* so the MCP facade's documentation lives one package down and is
|
|
5
|
+
* concatenated after the map. It introduces no codes of its own: every tool
|
|
6
|
+
* result is an existing envelope, which is the point of the section.
|
|
7
|
+
*
|
|
8
|
+
* Same assembly contract as every section: ../../agents-md.ts concatenates
|
|
9
|
+
* with NO join separator, so this string starts at the first character of its
|
|
10
|
+
* opening line and ends with the newline that closes its last one.
|
|
11
|
+
*
|
|
12
|
+
* The command names in the roster below are HAND-LISTED: importing
|
|
13
|
+
* core/mcp/tools.ts from here would close a package cycle (tools.ts reads
|
|
14
|
+
* core/explain/terms.ts, which reads this package's siblings for its pin
|
|
15
|
+
* sources). test/mcp-protocol.test.ts pins this string against MCP_TOOLS
|
|
16
|
+
* instead: a tool added to the table without its name here fails there.
|
|
17
|
+
*/
|
|
18
|
+
export const MCP_COMMAND = `- \`loam mcp\` serves the fourteen base read commands — validate, status, list, show,
|
|
19
|
+
delta, diff, explore, dependencies, doctor, context, gate, steps, explain,
|
|
20
|
+
instructions — as MCP tools over stdio (JSON-RPC 2.0), for hosts that reach
|
|
21
|
+
tools through MCP rather than a shell:
|
|
22
|
+
configure the host to launch \`loam mcp\` in the repository the tools should
|
|
23
|
+
answer for, or run \`loam init --mcp\` there and let it write the \`.mcp.json\`
|
|
24
|
+
every host reads. Like every other file \`init\` lays down, an existing one is
|
|
25
|
+
reported and never merged into. Every tool result carries the same \`--json\` envelope the CLI
|
|
26
|
+
prints, verbatim, so everything above about codes and envelopes applies
|
|
27
|
+
unchanged — branch on \`ok\` and \`error.code\` exactly as you would reading
|
|
28
|
+
the command's stdout. The orientation and instruction pages are MCP resources,
|
|
29
|
+
and every tool declares the envelope output schema. Every base tool is advertised with
|
|
30
|
+
\`annotations.readOnlyHint: true\` — the machine signal a host needs to
|
|
31
|
+
approve a call without prompting, and the reason the table stays read-only
|
|
32
|
+
by construction. The two that read no config, \`explain\` and
|
|
33
|
+
\`instructions\`, are served so an MCP-only host can reach them BEFORE this
|
|
34
|
+
repository is wired: the first line of every generated skill is
|
|
35
|
+
\`loam instructions <workflow>\`, and a host that could not run it could not
|
|
36
|
+
fetch the protocol its own skill points at. An explicit \`mcp --author\` adds
|
|
37
|
+
\`new\`, \`rebase\`, \`gherkin\` and an archive dry-run. It never exposes
|
|
38
|
+
\`vouch\`, evidence recording or a committing archive; those stay in the CLI,
|
|
39
|
+
where the permission flow is yours.
|
|
40
|
+
`;
|
|
41
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../../../src/core/agent/agents-md/map/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsB1B,CAAC","sourcesContent":["/**\n * The `loam mcp` entry of the command map — its own section module for\n * `./lenses/gate.ts`'s exact reason: command-map.ts sat against the file-line limit,\n * so the MCP facade's documentation lives one package down and is\n * concatenated after the map. It introduces no codes of its own: every tool\n * result is an existing envelope, which is the point of the section.\n *\n * Same assembly contract as every section: ../../agents-md.ts concatenates\n * with NO join separator, so this string starts at the first character of its\n * opening line and ends with the newline that closes its last one.\n *\n * The command names in the roster below are HAND-LISTED: importing\n * core/mcp/tools.ts from here would close a package cycle (tools.ts reads\n * core/explain/terms.ts, which reads this package's siblings for its pin\n * sources). test/mcp-protocol.test.ts pins this string against MCP_TOOLS\n * instead: a tool added to the table without its name here fails there.\n */\nexport const MCP_COMMAND = `- \\`loam mcp\\` serves the fourteen base read commands — validate, status, list, show,\n delta, diff, explore, dependencies, doctor, context, gate, steps, explain,\n instructions — as MCP tools over stdio (JSON-RPC 2.0), for hosts that reach\n tools through MCP rather than a shell:\n configure the host to launch \\`loam mcp\\` in the repository the tools should\n answer for, or run \\`loam init --mcp\\` there and let it write the \\`.mcp.json\\`\n every host reads. Like every other file \\`init\\` lays down, an existing one is\n reported and never merged into. Every tool result carries the same \\`--json\\` envelope the CLI\n prints, verbatim, so everything above about codes and envelopes applies\n unchanged — branch on \\`ok\\` and \\`error.code\\` exactly as you would reading\n the command's stdout. The orientation and instruction pages are MCP resources,\n and every tool declares the envelope output schema. Every base tool is advertised with\n \\`annotations.readOnlyHint: true\\` — the machine signal a host needs to\n approve a call without prompting, and the reason the table stays read-only\n by construction. The two that read no config, \\`explain\\` and\n \\`instructions\\`, are served so an MCP-only host can reach them BEFORE this\n repository is wired: the first line of every generated skill is\n \\`loam instructions <workflow>\\`, and a host that could not run it could not\n fetch the protocol its own skill points at. An explicit \\`mcp --author\\` adds\n \\`new\\`, \\`rebase\\`, \\`gherkin\\` and an archive dry-run. It never exposes\n \\`vouch\\`, evidence recording or a committing archive; those stay in the CLI,\n where the permission flow is yours.\n`;\n"]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `loam status` entry of the command map — its own section module for
|
|
3
|
+
* `./mcp.ts`'s exact reason: command-map.ts sat against the file-line limit,
|
|
4
|
+
* so the orientation surface's documentation lives one package down. Unlike
|
|
5
|
+
* its siblings it is not concatenated AFTER the map: status is deliberately
|
|
6
|
+
* the map's FIRST bullet, so ../command-map.ts composes it into COMMAND_MAP
|
|
7
|
+
* between the preamble and the validate entries. The `next.*` fleet and
|
|
8
|
+
* feature codes are what test/codes-drift.test.ts finds here.
|
|
9
|
+
*
|
|
10
|
+
* The `next.*` codes are LISTED, not glossed: `loam explain next.adopt` (and
|
|
11
|
+
* every sibling) answers what a step means and what to run, out of the binary
|
|
12
|
+
* rather than out of this file. See ../command-map.ts's header for why the
|
|
13
|
+
* gloss left. What survives here is what `explain` cannot say — that the list
|
|
14
|
+
* splits fleet-wide from per-feature, and that `next.recover-commit` outranks
|
|
15
|
+
* everything in both forms.
|
|
16
|
+
*
|
|
17
|
+
* Same assembly contract as every section: the composition concatenates with
|
|
18
|
+
* NO join separator, so this string starts at the first character of its
|
|
19
|
+
* opening line and ends with the newline that closes its last one.
|
|
20
|
+
*/
|
|
21
|
+
export const STATUS_COMMAND = `- \`loam status [<FEAT>]\` is the orientation surface — the question you have when
|
|
22
|
+
you join a repository halfway, or come back having lost the session, and the one
|
|
23
|
+
every other command assumed you could already answer. It writes nothing and
|
|
24
|
+
stores nothing: there is no state file, every answer is re-derived from the
|
|
25
|
+
files, so a document someone edited in another window is visible on the next run
|
|
26
|
+
with nothing to invalidate. Artifacts come back as \`missing\` (owed, nothing in
|
|
27
|
+
the way — write it now), \`blocked\` (not written and not writable yet; the entry
|
|
28
|
+
names what comes first), \`draft\` (on disk, and the shared checks report an error
|
|
29
|
+
against it — what exists is wrong), \`ready\` (on disk and clean, but something
|
|
30
|
+
outside the documents — code, a test run, a recording — still has to answer it)
|
|
31
|
+
or \`done\`. The payload's reason to exist is \`next[]\`: ordered, first entry
|
|
32
|
+
first, each carrying a code and the literal command to run — so a step needs no
|
|
33
|
+
gloss here, and \`loam explain <code>\` has the long form of any of them.
|
|
34
|
+
\`next.recover-commit\` outranks every other step in both forms below and is
|
|
35
|
+
never elided: a \`.loam-commit\` journal says a writer was killed mid-commit, so
|
|
36
|
+
some of the files everything else is derived from may be half-written.
|
|
37
|
+
Fleet-wide the rest are \`next.adopt-bound\`, \`next.adopt\`,
|
|
38
|
+
\`next.complete-service\`, \`next.feature\`, \`next.archive\`, \`next.fleet-clean\`,
|
|
39
|
+
\`next.elided\` (the fleet list hit its cap and says how many steps of the same
|
|
40
|
+
kinds it left out — it is ordered most-unblocking first, so work down it and
|
|
41
|
+
re-run) and \`next.fleet-gate\`, always last while anything is outstanding:
|
|
42
|
+
\`loam validate --all\` is what CI runs, and the fleet form grades nothing
|
|
43
|
+
itself. A docs repo with no services and no features instead gets the
|
|
44
|
+
first-hour ladder — \`next.author-landscape\`, \`next.bind-service\`,
|
|
45
|
+
\`next.adopt-first\` — which the \`/loam-adopt\` body walks.
|
|
46
|
+
On one feature: \`next.author-intent\`, \`next.touch-service\`,
|
|
47
|
+
\`next.author-spec\`, \`next.author-openapi\`, \`next.author-scenarios\`,
|
|
48
|
+
\`next.rebase\`, \`next.archive-first\`, \`next.fix-coherence\`,
|
|
49
|
+
\`next.generate-tests\`, \`next.verify\`, \`next.verify-unconfirmed\`,
|
|
50
|
+
\`next.attest-service\` (this repo IS one of the services that owes an answer,
|
|
51
|
+
so the step is bound to this commit), \`next.verify-attested\` — see
|
|
52
|
+
"The done-check" for what attested costs — \`next.archive\`, and
|
|
53
|
+
\`next.archived\` for one that shipped.
|
|
54
|
+
It grades nothing of its own: the verdict is the one \`loam validate --feature\`
|
|
55
|
+
and \`loam archive\` compute — status takes the UNION of what both of them refuse,
|
|
56
|
+
so it may be more pessimistic than either and can never be greener than both.
|
|
57
|
+
\`verification\` carries \`verdict\` (\`verified\` | \`attested\` | \`unverified\`)
|
|
58
|
+
and \`attested\` (how many scenario claims rest on an agent's word) beside the
|
|
59
|
+
recounted totals, and \`checks.issues[]\` carries \`gates\` and \`details\` on every
|
|
60
|
+
finding.
|
|
61
|
+
`;
|
|
62
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../../src/core/agent/agents-md/map/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC7B,CAAC","sourcesContent":["/**\n * The `loam status` entry of the command map — its own section module for\n * `./mcp.ts`'s exact reason: command-map.ts sat against the file-line limit,\n * so the orientation surface's documentation lives one package down. Unlike\n * its siblings it is not concatenated AFTER the map: status is deliberately\n * the map's FIRST bullet, so ../command-map.ts composes it into COMMAND_MAP\n * between the preamble and the validate entries. The `next.*` fleet and\n * feature codes are what test/codes-drift.test.ts finds here.\n *\n * The `next.*` codes are LISTED, not glossed: `loam explain next.adopt` (and\n * every sibling) answers what a step means and what to run, out of the binary\n * rather than out of this file. See ../command-map.ts's header for why the\n * gloss left. What survives here is what `explain` cannot say — that the list\n * splits fleet-wide from per-feature, and that `next.recover-commit` outranks\n * everything in both forms.\n *\n * Same assembly contract as every section: the composition concatenates with\n * NO join separator, so this string starts at the first character of its\n * opening line and ends with the newline that closes its last one.\n */\nexport const STATUS_COMMAND = `- \\`loam status [<FEAT>]\\` is the orientation surface — the question you have when\n you join a repository halfway, or come back having lost the session, and the one\n every other command assumed you could already answer. It writes nothing and\n stores nothing: there is no state file, every answer is re-derived from the\n files, so a document someone edited in another window is visible on the next run\n with nothing to invalidate. Artifacts come back as \\`missing\\` (owed, nothing in\n the way — write it now), \\`blocked\\` (not written and not writable yet; the entry\n names what comes first), \\`draft\\` (on disk, and the shared checks report an error\n against it — what exists is wrong), \\`ready\\` (on disk and clean, but something\n outside the documents — code, a test run, a recording — still has to answer it)\n or \\`done\\`. The payload's reason to exist is \\`next[]\\`: ordered, first entry\n first, each carrying a code and the literal command to run — so a step needs no\n gloss here, and \\`loam explain <code>\\` has the long form of any of them.\n \\`next.recover-commit\\` outranks every other step in both forms below and is\n never elided: a \\`.loam-commit\\` journal says a writer was killed mid-commit, so\n some of the files everything else is derived from may be half-written.\n Fleet-wide the rest are \\`next.adopt-bound\\`, \\`next.adopt\\`,\n \\`next.complete-service\\`, \\`next.feature\\`, \\`next.archive\\`, \\`next.fleet-clean\\`,\n \\`next.elided\\` (the fleet list hit its cap and says how many steps of the same\n kinds it left out — it is ordered most-unblocking first, so work down it and\n re-run) and \\`next.fleet-gate\\`, always last while anything is outstanding:\n \\`loam validate --all\\` is what CI runs, and the fleet form grades nothing\n itself. A docs repo with no services and no features instead gets the\n first-hour ladder — \\`next.author-landscape\\`, \\`next.bind-service\\`,\n \\`next.adopt-first\\` — which the \\`/loam-adopt\\` body walks.\n On one feature: \\`next.author-intent\\`, \\`next.touch-service\\`,\n \\`next.author-spec\\`, \\`next.author-openapi\\`, \\`next.author-scenarios\\`,\n \\`next.rebase\\`, \\`next.archive-first\\`, \\`next.fix-coherence\\`,\n \\`next.generate-tests\\`, \\`next.verify\\`, \\`next.verify-unconfirmed\\`,\n \\`next.attest-service\\` (this repo IS one of the services that owes an answer,\n so the step is bound to this commit), \\`next.verify-attested\\` — see\n \"The done-check\" for what attested costs — \\`next.archive\\`, and\n \\`next.archived\\` for one that shipped.\n It grades nothing of its own: the verdict is the one \\`loam validate --feature\\`\n and \\`loam archive\\` compute — status takes the UNION of what both of them refuse,\n so it may be more pessimistic than either and can never be greener than both.\n \\`verification\\` carries \\`verdict\\` (\\`verified\\` | \\`attested\\` | \\`unverified\\`)\n and \\`attested\\` (how many scenario claims rest on an agent's word) beside the\n recounted totals, and \\`checks.issues[]\\` carries \\`gates\\` and \\`details\\` on every\n finding.\n`;\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `loam subsystem` half of the command map — its own section module
|
|
3
|
+
* because command-map.ts sat against the file-line limit and the agents-md
|
|
4
|
+
* package against the five-file cap, so the tree surface's documentation
|
|
5
|
+
* lives one package down and is concatenated after the map.
|
|
6
|
+
*
|
|
7
|
+
* Same assembly contract as every section: ../agents-md.ts concatenates with
|
|
8
|
+
* NO join separator, so this string starts at the first character of its
|
|
9
|
+
* opening line and ends with the newline that closes its last one.
|
|
10
|
+
*/
|
|
11
|
+
export const SUBSYSTEM_COMMANDS = `- \`loam subsystem <verb>\` manages the grouping tree under \`services/\` — the
|
|
12
|
+
navigable tree no identity depends on: a service id stays its leaf directory
|
|
13
|
+
name, every join key is byte-identical before and after a move, and the tree
|
|
14
|
+
carries no policy. Verbs: \`new <name> [--under <sub>] [--title] [--description]
|
|
15
|
+
[--owner]\` creates a group (an empty one is legal — its \`subsystem.yaml\` is a
|
|
16
|
+
marker, never a member list); \`move <name>... --into <sub|.>\` relocates
|
|
17
|
+
services and whole subtrees in ONE journaled transaction over the renames
|
|
18
|
+
plus the regenerated views file (\`--into .\` unfiles; the renames and the
|
|
19
|
+
regenerated views file are staged in git without committing, where git answers); \`rename <old> <new>\` renames a
|
|
20
|
+
group through the same transaction (services are never renamed — the id is
|
|
21
|
+
the identity); \`rm <name>\` removes an EMPTY group; \`list\` shows the tree
|
|
22
|
+
with member counts and the unfiled count (unfiled is permanent and normal —
|
|
23
|
+
a count, never a finding; \`loam list --json\` carries the same facts as
|
|
24
|
+
additive keys \`services[].subsystem\`, \`subsystems[]\` and
|
|
25
|
+
\`unfiledServices\`); \`history <name>\` asks git how a service or subsystem
|
|
26
|
+
moved and answers nothing — exit 0, no finding — when git will not say;
|
|
27
|
+
\`sync\` regenerates \`architecture/subsystems.likec4\`, the one repair for
|
|
28
|
+
\`subsystem.views-stale\`; a landscape view claiming a generated id is
|
|
29
|
+
\`subsystem.view-id-collision\`. \`loam adopt --subsystem <name>\` briefs a new
|
|
30
|
+
service's baseline directly into a group, so adoption need not land unfiled.
|
|
31
|
+
`;
|
|
32
|
+
//# sourceMappingURL=subsystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subsystem.js","sourceRoot":"","sources":["../../../../../src/core/agent/agents-md/map/subsystem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;CAoBjC,CAAC","sourcesContent":["/**\n * The `loam subsystem` half of the command map — its own section module\n * because command-map.ts sat against the file-line limit and the agents-md\n * package against the five-file cap, so the tree surface's documentation\n * lives one package down and is concatenated after the map.\n *\n * Same assembly contract as every section: ../agents-md.ts concatenates with\n * NO join separator, so this string starts at the first character of its\n * opening line and ends with the newline that closes its last one.\n */\nexport const SUBSYSTEM_COMMANDS = `- \\`loam subsystem <verb>\\` manages the grouping tree under \\`services/\\` — the\n navigable tree no identity depends on: a service id stays its leaf directory\n name, every join key is byte-identical before and after a move, and the tree\n carries no policy. Verbs: \\`new <name> [--under <sub>] [--title] [--description]\n [--owner]\\` creates a group (an empty one is legal — its \\`subsystem.yaml\\` is a\n marker, never a member list); \\`move <name>... --into <sub|.>\\` relocates\n services and whole subtrees in ONE journaled transaction over the renames\n plus the regenerated views file (\\`--into .\\` unfiles; the renames and the\n regenerated views file are staged in git without committing, where git answers); \\`rename <old> <new>\\` renames a\n group through the same transaction (services are never renamed — the id is\n the identity); \\`rm <name>\\` removes an EMPTY group; \\`list\\` shows the tree\n with member counts and the unfiled count (unfiled is permanent and normal —\n a count, never a finding; \\`loam list --json\\` carries the same facts as\n additive keys \\`services[].subsystem\\`, \\`subsystems[]\\` and\n \\`unfiledServices\\`); \\`history <name>\\` asks git how a service or subsystem\n moved and answers nothing — exit 0, no finding — when git will not say;\n \\`sync\\` regenerates \\`architecture/subsystems.likec4\\`, the one repair for\n \\`subsystem.views-stale\\`; a landscape view claiming a generated id is\n \\`subsystem.view-id-collision\\`. \\`loam adopt --subsystem <name>\\` briefs a new\n service's baseline directly into a group, so adoption need not land unfiled.\n`;\n"]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The use-case axis of the command map — its own section module for
|
|
3
|
+
* `./subsystem.ts`'s exact reason: command-map.ts sat against the file-line
|
|
4
|
+
* limit and the agents-md package against the five-file cap, so a family added
|
|
5
|
+
* to the `validate --all` cross-check documents itself one package down and is
|
|
6
|
+
* concatenated after the map. The four `usecase.*` codes are what
|
|
7
|
+
* test/codes-drift.test.ts finds here.
|
|
8
|
+
*
|
|
9
|
+
* They are LISTED and not glossed: their fix rows live in the /loam-check
|
|
10
|
+
* table and `loam explain usecase.step-unbacked` prints them, so writing the
|
|
11
|
+
* meanings out again here is the duplication ../../command-map.ts's header
|
|
12
|
+
* describes. What stays is what `explain` does not say — how to opt a view in,
|
|
13
|
+
* and that an untagged dynamic view is never graded at all.
|
|
14
|
+
*
|
|
15
|
+
* Same assembly contract as every section: ../../agents-md.ts concatenates with
|
|
16
|
+
* NO join separator, so this string starts at the first character of its opening
|
|
17
|
+
* line and ends with the newline that closes its last one.
|
|
18
|
+
*/
|
|
19
|
+
export const USECASE_VIEWS = `- Business use cases are \`dynamic view\`s, and \`loam validate --all\` grades the
|
|
20
|
+
ones that opt in. Write the flow in a file of its own —
|
|
21
|
+
\`architecture/usecases/<name>.likec4\`, a \`views { }\` block over the landscape's
|
|
22
|
+
elements, which loam reads as ONE LikeC4 project together with the map — and
|
|
23
|
+
tag the view \`#cap-<capability>\` to have it graded. The tag spells a declared
|
|
24
|
+
capability id with every \`/\` flattened to \`-\` (a LikeC4 tag name cannot carry a
|
|
25
|
+
slash), and it must be declared as a \`tag\` in the one \`specification\` block the
|
|
26
|
+
project has, since LikeC4 refuses an undeclared tag. EITHER reserved prefix
|
|
27
|
+
opts a view in — a view carrying only \`#req-<requirement>\` is graded too, and
|
|
28
|
+
earns \`usecase.requirement-unresolved\` for the \`#cap-\` tag it is missing
|
|
29
|
+
rather than silence. An UNTAGGED dynamic view is somebody's hand-drawn diagram
|
|
30
|
+
and is never graded — that opt-in is what lets a fleet full of existing
|
|
31
|
+
diagrams upgrade without turning red, and \`loam validate\`, \`loam diff\`,
|
|
32
|
+
\`loam delta\`, \`loam status\`, \`loam context\` and \`loam list capabilities\` all
|
|
33
|
+
read the same opt-in, so a flow one of them sees is a flow all of them see. On a tagged
|
|
34
|
+
view: \`usecase.capability-unresolved\`, \`usecase.step-unbacked\`,
|
|
35
|
+
\`usecase.step-contested\` and \`usecase.step-unlinked\`. The first is silent
|
|
36
|
+
while architecture/capabilities.yaml is absent or unreadable, like the rest of
|
|
37
|
+
the capability axis; the three step codes are about the model, and a return
|
|
38
|
+
hop written \`a <- b\` is attributed to the call it answers, so spell replies
|
|
39
|
+
that way rather than as fresh hops. Every message names the file the view was
|
|
40
|
+
written in, never the landscape.
|
|
41
|
+
- A FEATURE brings a flow the way it brings every other axis: write it at
|
|
42
|
+
\`features/<FEAT>/usecases/<name>.likec4\` — the same views-only document, in the
|
|
43
|
+
feature's own directory — and \`loam archive\` copies it into
|
|
44
|
+
\`architecture/usecases/\` while \`loam unarchive\` takes it back. That is what lets
|
|
45
|
+
an analyst add a cross-service requirement and an architect answer it with the
|
|
46
|
+
flow that keeps it IN ONE CHANGE: the \`#req-\` tag resolves against this
|
|
47
|
+
feature's own \`capabilities/<cap>/spec.md\` delta as well as the living tree, and
|
|
48
|
+
\`capability.uncovered\` counts the flow as cover. The flow is graded against the
|
|
49
|
+
map the same merge would leave behind, so a hop may name a service this
|
|
50
|
+
feature's \`delta.likec4\` adds. Two refusals guard it, and \`--approve\` moves
|
|
51
|
+
neither: \`usecase.flow-exists\` (the living \`architecture/usecases/\` already has
|
|
52
|
+
that file — the merge is a whole-file copy, so edit the living one directly
|
|
53
|
+
instead) and \`usecase.flow-invalid\` (loam could not read the flows against that
|
|
54
|
+
post-merge map — most often a hop naming an element neither the living
|
|
55
|
+
landscape nor the delta declares). Do NOT put a \`dynamic view\` inside
|
|
56
|
+
\`delta.likec4\`: that document re-declares the landscape's own identifiers and
|
|
57
|
+
carries its own \`specification\` block, so it cannot be read beside the map, and
|
|
58
|
+
the archive refuses it by name.
|
|
59
|
+
`;
|
|
60
|
+
//# sourceMappingURL=usecases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usecases.js","sourceRoot":"","sources":["../../../../../src/core/agent/agents-md/map/usecases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC5B,CAAC","sourcesContent":["/**\n * The use-case axis of the command map — its own section module for\n * `./subsystem.ts`'s exact reason: command-map.ts sat against the file-line\n * limit and the agents-md package against the five-file cap, so a family added\n * to the `validate --all` cross-check documents itself one package down and is\n * concatenated after the map. The four `usecase.*` codes are what\n * test/codes-drift.test.ts finds here.\n *\n * They are LISTED and not glossed: their fix rows live in the /loam-check\n * table and `loam explain usecase.step-unbacked` prints them, so writing the\n * meanings out again here is the duplication ../../command-map.ts's header\n * describes. What stays is what `explain` does not say — how to opt a view in,\n * and that an untagged dynamic view is never graded at all.\n *\n * Same assembly contract as every section: ../../agents-md.ts concatenates with\n * NO join separator, so this string starts at the first character of its opening\n * line and ends with the newline that closes its last one.\n */\nexport const USECASE_VIEWS = `- Business use cases are \\`dynamic view\\`s, and \\`loam validate --all\\` grades the\n ones that opt in. Write the flow in a file of its own —\n \\`architecture/usecases/<name>.likec4\\`, a \\`views { }\\` block over the landscape's\n elements, which loam reads as ONE LikeC4 project together with the map — and\n tag the view \\`#cap-<capability>\\` to have it graded. The tag spells a declared\n capability id with every \\`/\\` flattened to \\`-\\` (a LikeC4 tag name cannot carry a\n slash), and it must be declared as a \\`tag\\` in the one \\`specification\\` block the\n project has, since LikeC4 refuses an undeclared tag. EITHER reserved prefix\n opts a view in — a view carrying only \\`#req-<requirement>\\` is graded too, and\n earns \\`usecase.requirement-unresolved\\` for the \\`#cap-\\` tag it is missing\n rather than silence. An UNTAGGED dynamic view is somebody's hand-drawn diagram\n and is never graded — that opt-in is what lets a fleet full of existing\n diagrams upgrade without turning red, and \\`loam validate\\`, \\`loam diff\\`,\n \\`loam delta\\`, \\`loam status\\`, \\`loam context\\` and \\`loam list capabilities\\` all\n read the same opt-in, so a flow one of them sees is a flow all of them see. On a tagged\n view: \\`usecase.capability-unresolved\\`, \\`usecase.step-unbacked\\`,\n \\`usecase.step-contested\\` and \\`usecase.step-unlinked\\`. The first is silent\n while architecture/capabilities.yaml is absent or unreadable, like the rest of\n the capability axis; the three step codes are about the model, and a return\n hop written \\`a <- b\\` is attributed to the call it answers, so spell replies\n that way rather than as fresh hops. Every message names the file the view was\n written in, never the landscape.\n- A FEATURE brings a flow the way it brings every other axis: write it at\n \\`features/<FEAT>/usecases/<name>.likec4\\` — the same views-only document, in the\n feature's own directory — and \\`loam archive\\` copies it into\n \\`architecture/usecases/\\` while \\`loam unarchive\\` takes it back. That is what lets\n an analyst add a cross-service requirement and an architect answer it with the\n flow that keeps it IN ONE CHANGE: the \\`#req-\\` tag resolves against this\n feature's own \\`capabilities/<cap>/spec.md\\` delta as well as the living tree, and\n \\`capability.uncovered\\` counts the flow as cover. The flow is graded against the\n map the same merge would leave behind, so a hop may name a service this\n feature's \\`delta.likec4\\` adds. Two refusals guard it, and \\`--approve\\` moves\n neither: \\`usecase.flow-exists\\` (the living \\`architecture/usecases/\\` already has\n that file — the merge is a whole-file copy, so edit the living one directly\n instead) and \\`usecase.flow-invalid\\` (loam could not read the flows against that\n post-merge map — most often a hop naming an element neither the living\n landscape nor the delta declares). Do NOT put a \\`dynamic view\\` inside\n \\`delta.likec4\\`: that document re-declares the landscape's own identifiers and\n carries its own \\`specification\\` block, so it cannot be read beside the map, and\n the archive refuses it by name.\n`;\n"]}
|