@jeger-ai/opengantry 1.0.0 → 1.1.1
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/README.md +11 -6
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +3 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/legislate.d.ts +1 -20
- package/dist/cli/commands/legislate.d.ts.map +1 -1
- package/dist/cli/commands/legislate.js +1 -142
- package/dist/cli/commands/legislate.js.map +1 -1
- package/dist/cli/commands/onboarding.d.ts.map +1 -1
- package/dist/cli/commands/onboarding.js +5 -3
- package/dist/cli/commands/onboarding.js.map +1 -1
- package/dist/cli/commands/verify.d.ts.map +1 -1
- package/dist/cli/commands/verify.js +26 -17
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/lib/audience-output.d.ts +1 -0
- package/dist/cli/lib/audience-output.d.ts.map +1 -1
- package/dist/cli/lib/audience-output.js +13 -0
- package/dist/cli/lib/audience-output.js.map +1 -1
- package/dist/cli/lib/break-glass-flow.d.ts +18 -0
- package/dist/cli/lib/break-glass-flow.d.ts.map +1 -0
- package/dist/cli/lib/break-glass-flow.js +29 -0
- package/dist/cli/lib/break-glass-flow.js.map +1 -0
- package/dist/cli/lib/cli-io.d.ts +6 -1
- package/dist/cli/lib/cli-io.d.ts.map +1 -1
- package/dist/cli/lib/cli-io.js +13 -2
- package/dist/cli/lib/cli-io.js.map +1 -1
- package/dist/cli/lib/command-reporter.d.ts +24 -0
- package/dist/cli/lib/command-reporter.d.ts.map +1 -0
- package/dist/cli/lib/command-reporter.js +55 -0
- package/dist/cli/lib/command-reporter.js.map +1 -0
- package/dist/cli/lib/doctor-orchestration.d.ts.map +1 -1
- package/dist/cli/lib/doctor-orchestration.js +9 -2
- package/dist/cli/lib/doctor-orchestration.js.map +1 -1
- package/dist/cli/lib/doctor-substrate-drift.d.ts +7 -0
- package/dist/cli/lib/doctor-substrate-drift.d.ts.map +1 -0
- package/dist/cli/lib/doctor-substrate-drift.js +35 -0
- package/dist/cli/lib/doctor-substrate-drift.js.map +1 -0
- package/dist/cli/lib/file-merge-gxt.d.ts +4 -0
- package/dist/cli/lib/file-merge-gxt.d.ts.map +1 -0
- package/dist/cli/lib/file-merge-gxt.js +35 -0
- package/dist/cli/lib/file-merge-gxt.js.map +1 -0
- package/dist/cli/lib/fix-hints.d.ts +5 -7
- package/dist/cli/lib/fix-hints.d.ts.map +1 -1
- package/dist/cli/lib/fix-hints.js +46 -1
- package/dist/cli/lib/fix-hints.js.map +1 -1
- package/dist/cli/lib/forbidden-scan.d.ts.map +1 -1
- package/dist/cli/lib/forbidden-scan.js +2 -2
- package/dist/cli/lib/forbidden-scan.js.map +1 -1
- package/dist/cli/lib/git-proof.d.ts.map +1 -1
- package/dist/cli/lib/git-proof.js +2 -1
- package/dist/cli/lib/git-proof.js.map +1 -1
- package/dist/cli/lib/git-repo.d.ts +9 -0
- package/dist/cli/lib/git-repo.d.ts.map +1 -1
- package/dist/cli/lib/git-repo.js +14 -0
- package/dist/cli/lib/git-repo.js.map +1 -1
- package/dist/cli/lib/gxt-error-codes.d.ts +3 -0
- package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
- package/dist/cli/lib/gxt-error-codes.js +5 -1
- package/dist/cli/lib/gxt-error-codes.js.map +1 -1
- package/dist/cli/lib/init-asset-catalog.d.ts.map +1 -1
- package/dist/cli/lib/init-asset-catalog.js +6 -0
- package/dist/cli/lib/init-asset-catalog.js.map +1 -1
- package/dist/cli/lib/init-tutorial.d.ts.map +1 -1
- package/dist/cli/lib/init-tutorial.js +9 -13
- package/dist/cli/lib/init-tutorial.js.map +1 -1
- package/dist/cli/lib/legislate-core.d.ts +21 -0
- package/dist/cli/lib/legislate-core.d.ts.map +1 -0
- package/dist/cli/lib/legislate-core.js +144 -0
- package/dist/cli/lib/legislate-core.js.map +1 -0
- package/dist/cli/lib/mcp-legislation-draft.d.ts +6 -0
- package/dist/cli/lib/mcp-legislation-draft.d.ts.map +1 -0
- package/dist/cli/lib/mcp-legislation-draft.js +62 -0
- package/dist/cli/lib/mcp-legislation-draft.js.map +1 -0
- package/dist/cli/lib/mcp-legislation-execute.d.ts +6 -0
- package/dist/cli/lib/mcp-legislation-execute.d.ts.map +1 -0
- package/dist/cli/lib/mcp-legislation-execute.js +43 -0
- package/dist/cli/lib/mcp-legislation-execute.js.map +1 -0
- package/dist/cli/lib/mcp-legislation-mission.d.ts +12 -0
- package/dist/cli/lib/mcp-legislation-mission.d.ts.map +1 -0
- package/dist/cli/lib/mcp-legislation-mission.js +82 -0
- package/dist/cli/lib/mcp-legislation-mission.js.map +1 -0
- package/dist/cli/lib/mcp-legislation-types.d.ts +68 -0
- package/dist/cli/lib/mcp-legislation-types.d.ts.map +1 -0
- package/dist/cli/lib/mcp-legislation-types.js +4 -0
- package/dist/cli/lib/mcp-legislation-types.js.map +1 -0
- package/dist/cli/lib/mcp-legislation.d.ts +4 -81
- package/dist/cli/lib/mcp-legislation.d.ts.map +1 -1
- package/dist/cli/lib/mcp-legislation.js +3 -180
- package/dist/cli/lib/mcp-legislation.js.map +1 -1
- package/dist/cli/lib/mcp-runtime.d.ts +3 -26
- package/dist/cli/lib/mcp-runtime.d.ts.map +1 -1
- package/dist/cli/lib/mcp-runtime.js +7 -70
- package/dist/cli/lib/mcp-runtime.js.map +1 -1
- package/dist/cli/lib/mcp-tools-register.d.ts.map +1 -1
- package/dist/cli/lib/mcp-tools-register.js +2 -1
- package/dist/cli/lib/mcp-tools-register.js.map +1 -1
- package/dist/cli/lib/mission-legislative-stub.d.ts.map +1 -1
- package/dist/cli/lib/mission-legislative-stub.js +3 -2
- package/dist/cli/lib/mission-legislative-stub.js.map +1 -1
- package/dist/cli/lib/mission-yaml.d.ts +6 -0
- package/dist/cli/lib/mission-yaml.d.ts.map +1 -1
- package/dist/cli/lib/mission-yaml.js +4 -0
- package/dist/cli/lib/mission-yaml.js.map +1 -1
- package/dist/cli/lib/runtime-env.d.ts.map +1 -1
- package/dist/cli/lib/runtime-env.js +3 -2
- package/dist/cli/lib/runtime-env.js.map +1 -1
- package/dist/cli/lib/start-orchestration.js +1 -1
- package/dist/cli/lib/start-orchestration.js.map +1 -1
- package/dist/cli/lib/trace-evidence.d.ts +23 -0
- package/dist/cli/lib/trace-evidence.d.ts.map +1 -0
- package/dist/cli/lib/trace-evidence.js +118 -0
- package/dist/cli/lib/trace-evidence.js.map +1 -0
- package/dist/cli/lib/trace-failure-kind.d.ts +1 -1
- package/dist/cli/lib/trace-failure-kind.d.ts.map +1 -1
- package/dist/cli/lib/trace-failure-kind.js +2 -0
- package/dist/cli/lib/trace-failure-kind.js.map +1 -1
- package/dist/cli/lib/trace-status.d.ts +7 -0
- package/dist/cli/lib/trace-status.d.ts.map +1 -0
- package/dist/cli/lib/trace-status.js +20 -0
- package/dist/cli/lib/trace-status.js.map +1 -0
- package/dist/cli/lib/trace.d.ts +9 -0
- package/dist/cli/lib/trace.d.ts.map +1 -1
- package/dist/cli/lib/trace.js +47 -4
- package/dist/cli/lib/trace.js.map +1 -1
- package/dist/cli/lib/upgrade-apply.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-apply.js +2 -1
- package/dist/cli/lib/upgrade-apply.js.map +1 -1
- package/dist/cli/lib/upgrade-plan.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-plan.js +11 -8
- package/dist/cli/lib/upgrade-plan.js.map +1 -1
- package/dist/cli/lib/verify-engine.d.ts +5 -2
- package/dist/cli/lib/verify-engine.d.ts.map +1 -1
- package/dist/cli/lib/verify-engine.js +47 -12
- package/dist/cli/lib/verify-engine.js.map +1 -1
- package/dist/cli/lib/verify-failure-presentation.d.ts +1 -2
- package/dist/cli/lib/verify-failure-presentation.d.ts.map +1 -1
- package/dist/cli/lib/verify-failure-presentation.js +13 -21
- package/dist/cli/lib/verify-failure-presentation.js.map +1 -1
- package/dist/cli/lib/verify-flow.d.ts +5 -3
- package/dist/cli/lib/verify-flow.d.ts.map +1 -1
- package/dist/cli/lib/verify-flow.js +38 -48
- package/dist/cli/lib/verify-flow.js.map +1 -1
- package/dist/cli/lib/verify-remediation.d.ts +17 -0
- package/dist/cli/lib/verify-remediation.d.ts.map +1 -0
- package/dist/cli/lib/verify-remediation.js +5 -0
- package/dist/cli/lib/verify-remediation.js.map +1 -0
- package/dist/cli/lib/verify-repair.d.ts +2 -2
- package/dist/cli/lib/verify-repair.d.ts.map +1 -1
- package/dist/cli/lib/verify-repair.js +16 -19
- package/dist/cli/lib/verify-repair.js.map +1 -1
- package/dist/cli/lib/verify-result-payload.d.ts +41 -0
- package/dist/cli/lib/verify-result-payload.d.ts.map +1 -0
- package/dist/cli/lib/verify-result-payload.js +136 -0
- package/dist/cli/lib/verify-result-payload.js.map +1 -0
- package/dist/cli/lib/verify-run.d.ts +16 -0
- package/dist/cli/lib/verify-run.d.ts.map +1 -0
- package/dist/cli/lib/verify-run.js +62 -0
- package/dist/cli/lib/verify-run.js.map +1 -0
- package/dist/cli/lib/verify-types.d.ts +4 -0
- package/dist/cli/lib/verify-types.d.ts.map +1 -1
- package/dist/cli/lib/version.gen.d.ts +1 -1
- package/dist/cli/lib/version.gen.js +1 -1
- package/dist/cli/program-workflow.d.ts.map +1 -1
- package/dist/cli/program-workflow.js +5 -1
- package/dist/cli/program-workflow.js.map +1 -1
- package/package.json +1 -1
- package/templates/.gitagent/foreman/SUBSTRATE.version.json +1 -1
- package/templates/.githooks/pre-push +3 -3
- package/templates/.github/workflows/gxt-validate.yml +19 -0
- package/templates/.gitignore.gxt +0 -1
- package/templates/.prettierignore.gxt +1 -0
- package/templates/integrations/compatibility.json +1 -1
- package/templates/scripts/verify-pr-missions.sh +141 -0
- package/dist/cli/lib/gitignore-gxt.d.ts +0 -2
- package/dist/cli/lib/gitignore-gxt.d.ts.map +0 -1
- package/dist/cli/lib/gitignore-gxt.js +0 -24
- package/dist/cli/lib/gitignore-gxt.js.map +0 -1
package/README.md
CHANGED
|
@@ -34,9 +34,10 @@ Developing this repository from source: `npm ci && npm run build` — see [gapma
|
|
|
34
34
|
| **Lower onboarding friction** | `gapman init --tutorial`, `gapman onboarding`, `gapman start "<intent>"`, `gapman status --json` |
|
|
35
35
|
| **No unreviewed agent scope** | Teacher reviews mission YAML **before** `runtime env` / worker execution; TMVC roots + forbidden zones enforce paths |
|
|
36
36
|
| **Audit-ready evidence** | `[MSN-XXXX]` commit subjects; verifier PASS requires a verbatim quote from `WORKER_LOG.md` |
|
|
37
|
+
| **Regulated / ISO-aligned workflows** | SOD, mission authorization, and Git-native trace — see [`docs/COMPLIANCE-ISO.md`](docs/COMPLIANCE-ISO.md) (27001 change control, 42001 AI governance) |
|
|
37
38
|
| **Faster recovery from failure** | Stable `GXT_*` error codes, `gapman verify --fix`, role output via `--audience worker\|teacher\|verifier` |
|
|
38
39
|
|
|
39
|
-
**Protocol maturity:** substrate law **v0.5.0**; **`gapman` v1.
|
|
40
|
+
**Protocol maturity:** substrate law **v0.5.0**; **`gapman` v1.1.1** — maintainability hardening (lib/command boundary, unified verify core, CommandReporter). See [.gitagent/teacher/RUNTIME.md](.gitagent/teacher/RUNTIME.md).
|
|
40
41
|
|
|
41
42
|
## v1.0 adoption release
|
|
42
43
|
|
|
@@ -46,6 +47,8 @@ Developing this repository from source: `npm ci && npm run build` — see [gapma
|
|
|
46
47
|
|---------|------------|
|
|
47
48
|
| **v0.9.0** | `gapman start`, `verify --fix`, `status --json`, `onboarding`, GXT error codes |
|
|
48
49
|
| **v1.0.0** | `gapman init --tutorial`, global `--audience` / `GXT_AUDIENCE`, adoption-first README + runbook |
|
|
50
|
+
| **v1.1.1** | Lib/command boundary, unified `runVerifyCore`, typed remediation, CommandReporter, mission YAML emitter |
|
|
51
|
+
| **v1.1.0** | Stale trace evidence, mission purity PR lock, CI target lock, `verify --json`, doctor substrate drift warn |
|
|
49
52
|
|
|
50
53
|
## What you get
|
|
51
54
|
|
|
@@ -148,7 +151,7 @@ The gate is whatever command **fails closed** for your repo (lint, typecheck, in
|
|
|
148
151
|
|
|
149
152
|
Requires **Node.js 24+** (Active LTS line). Published as **`@jeger-ai/opengantry`** on npm; the `gapman` binary is registered via `package.json` `bin` (see [`package.json`](package.json)). From source: `npm ci && npm run build` → `dist/cli/index.js`.
|
|
150
153
|
|
|
151
|
-
**Developing OpenGantry:** dogfood the full stack — [`docs/DEVELOPMENT.md`](docs/DEVELOPMENT.md) (missions, hooks, verify, `npm run validate`). Layer rules: [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md). Adopters: [`docs/ADOPTION.md`](docs/ADOPTION.md).
|
|
154
|
+
**Developing OpenGantry:** dogfood the full stack — [`docs/DEVELOPMENT.md`](docs/DEVELOPMENT.md) (missions, hooks, verify, `npm run validate`). Layer rules: [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md). Adopters: [`docs/ADOPTION.md`](docs/ADOPTION.md). Roadmap: [`docs/BACKLOG.md`](docs/BACKLOG.md) · [Project board](https://github.com/orgs/jeger-ai/projects/2).
|
|
152
155
|
|
|
153
156
|
**Adoption path:**
|
|
154
157
|
|
|
@@ -176,8 +179,8 @@ Requires **Node.js 24+** (Active LTS line). Published as **`@jeger-ai/opengantry
|
|
|
176
179
|
| `gapman mission snapshot --file <path>` | Write start-state JSON under `.gitagent/history/` (git HEAD, branch, dirty flag, manifest hash, hashes of files under the mission skill's `tmvc_roots`). |
|
|
177
180
|
| `gapman runtime env --mission <path>` | Worker Runtime Contract: emit `GXT_REPO_ROOT`, `GXT_MISSION_FILE`, `GXT_MSN_ID`, `GXT_SKILL_KEY`, `GXT_TMVC_ROOTS`, `GXT_FORBIDDEN_ZONES`, `GXT_WORKER_LOG`. Default: POSIX `export …` lines; `--json` for scripts. [.gitagent/teacher/RUNTIME.md](.gitagent/teacher/RUNTIME.md). |
|
|
178
181
|
| `gapman runtime exec --mission <path> -- <cmd…>` | Run worker command with mission env, telemetry capture, and forbidden-zone scan (strongest TMVC trap). |
|
|
179
|
-
| `gapman mcp serve` | Stdio MCP server exposing `gxt_*` tools (legislation, pin, runtime env, verify with `fix_hints`, `gxt_start_orchestration`, exec). Configure via `.cursor/mcp.json`. |
|
|
180
|
-
| `gapman verify --mission <path>` | Teacher-approved mission commit + gate + trace. **`--fix`** guided repair. CI: `--audience verifier` (errors only). Failures emit **`GXT_*`** codes. |
|
|
182
|
+
| `gapman mcp serve` | Stdio MCP server exposing `gxt_*` tools (legislation, pin, runtime env, verify with `fix_hints`, `gxt_start_orchestration`, exec). `gxt_verify` uses the flat `--json` envelope — see [ADOPTION.md § MCP verify envelope](docs/ADOPTION.md). Configure via `.cursor/mcp.json`. |
|
|
183
|
+
| `gapman verify --mission <path>` | Teacher-approved mission commit + gate + trace. **`--json`** structured output (`status`, `phase`, `error_code`, `fix_hints`). **`--fix`** guided repair. CI: `--audience verifier` (errors only). Failures emit **`GXT_*`** codes. |
|
|
181
184
|
| `gapman arch pointer` | Print architecture pointer summary for agents (`.gitagent/ARCHITECTURE.pointer.json`). |
|
|
182
185
|
| `gapman arch cred status\|set\|unset` | Git-ignored credential slots for authenticated external architecture sources (secrets via stdin only). |
|
|
183
186
|
| `gapman metrics [--json] [--ref main]` | Git-native governance rollup (stream-parsed). See [`docs/ADOPTION.md`](docs/ADOPTION.md). |
|
|
@@ -228,10 +231,12 @@ Details and variable semantics: [.gitagent/teacher/RUNTIME.md](.gitagent/teacher
|
|
|
228
231
|
- **[`AGENTS.md`](AGENTS.md)** tells agents to read **RULES** + **MANIFEST** before acting.
|
|
229
232
|
- **[`.cursor/rules/opengantry-gxt-substrate.mdc`](.cursor/rules/opengantry-gxt-substrate.mdc)** does the same for Cursor with `alwaysApply: true`.
|
|
230
233
|
- **CI:** this repo includes **[`.github/workflows/gxt-validate.yml`](.github/workflows/gxt-validate.yml)**:
|
|
234
|
+
- **PR governance (PR only):** mission PRs must target the **default branch** (`main` in this repo; `github.event.repository.default_branch` in init template, overridable via `GXT_INTEGRATION_BRANCH`) — prevents stacked mission merges.
|
|
231
235
|
- **gapman:** `npm ci` / `npm run build`, then `gapman check`, `gapman doctor`, and unit tests.
|
|
232
236
|
- **Manifest (jq parity):** validates [`.gitagent/foreman/MANIFEST.json`](.gitagent/foreman/MANIFEST.json) via [`scripts/validate-gxt.sh`](scripts/validate-gxt.sh) `manifest`.
|
|
233
237
|
- **Changed-code quality (PR only):** ESLint complexity, import layers, line budgets on touched `src/cli/**/*.ts`.
|
|
234
238
|
- **MSN (PR only, path-scoped):** on **pull_request** only, any **non-merge** commit in the PR range that touches `.gitagent/`, repo-root `WORKER_LOG.md`, `.githooks/`, or [`.github/workflows/gxt-validate.yml`](.github/workflows/gxt-validate.yml) must have a subject starting with **`[MSN-NNNN]`** (four digits). Other paths (e.g. root `README.md` only) do not trigger this check.
|
|
239
|
+
- **Mission purity (PR only):** [`scripts/verify-pr-missions.sh`](scripts/verify-pr-missions.sh) requires exactly one `[MSN-NNNN]` in `${base}..${head}` commit subjects before full `gapman verify` on changed missions.
|
|
235
240
|
- **Local (full stack):** [`scripts/dev-validate.sh`](scripts/dev-validate.sh) / `npm run validate` — superset of CI (includes changed-code + MSN vs `origin/main`).
|
|
236
241
|
|
|
237
242
|
```bash
|
|
@@ -267,7 +272,7 @@ Add to your **`.gitignore`** (if not already present):
|
|
|
267
272
|
.gitagent/history/
|
|
268
273
|
```
|
|
269
274
|
|
|
270
|
-
**Empty `WORKER_LOG.md` on branch checkout:** after copying, point Git at the vendored hooks once per clone (`git config core.hooksPath .githooks`). On branch checkouts **other than** `main` or `master`, if `WORKER_LOG.md` is missing at the repo root, [`.githooks/post-checkout`](.githooks/post-checkout) copies [`.gitagent/teacher/WORKER_LOG.template.md`](.gitagent/teacher/WORKER_LOG.template.md) into place. It **never overwrites** an existing file.
|
|
275
|
+
**Empty `WORKER_LOG.md` on branch checkout:** after copying, point Git at the vendored hooks once per clone (`git config core.hooksPath .githooks`). On branch checkouts **other than** `main` or `master`, if `WORKER_LOG.md` is missing at the repo root, [`.githooks/post-checkout`](.githooks/post-checkout) copies [`.gitagent/teacher/WORKER_LOG.template.md`](.gitagent/teacher/WORKER_LOG.template.md) into place. It **never overwrites** an existing file. Keep formatters off `WORKER_LOG.md` — see [docs/ADOPTION.md](docs/ADOPTION.md) (formatter guard under stale trace evidence).
|
|
271
276
|
|
|
272
277
|
## Staying in sync
|
|
273
278
|
|
|
@@ -326,7 +331,7 @@ GXT deliberately trades "always-on improvisation" for a **narrow, inspectable en
|
|
|
326
331
|
|
|
327
332
|
## Relationship to this repository
|
|
328
333
|
|
|
329
|
-
**jeger-ai/opengantry** is the **canonical reference tree** for **GXT** (manifest `schema_version` **v0.5.0** law + **`gapman` v1.
|
|
334
|
+
**jeger-ai/opengantry** is the **canonical reference tree** for **GXT** (manifest `schema_version` **v0.5.0** law + **`gapman` v1.1.1** CLI). Install the CLI with `npm install -g @jeger-ai/opengantry`, or fork this repo and run `gapman init` in your project.
|
|
330
335
|
|
|
331
336
|
## Security
|
|
332
337
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAuCA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA8JD,wBAAsB,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DtE"}
|
|
@@ -9,7 +9,7 @@ import { composeArchitecturePointer, serializeArchitecturePointer, } from "../li
|
|
|
9
9
|
import { composeIntegrationsDoc, recipeFilesExist } from "../lib/init-compose-doc.js";
|
|
10
10
|
import { defaultInitProfile, mergeInitProfile, profileFromCliFlags, shouldRunInteractiveWizard, validateIntegrationsDocPath, } from "../lib/init-profile.js";
|
|
11
11
|
import { applyInitWrites, logInitNextSteps, logInitSummary, planInitAssets, } from "../lib/init-plan.js";
|
|
12
|
-
import { mergeGitignoreFromTemplate } from "../lib/
|
|
12
|
+
import { mergeGitignoreFromTemplate, mergePrettierignoreFromTemplate, } from "../lib/file-merge-gxt.js";
|
|
13
13
|
import { ensureSubstrateVersionOnInit } from "../lib/substrate-version.js";
|
|
14
14
|
import { ensureTeacherAllowlistOnInit } from "../lib/teacher-identity.js";
|
|
15
15
|
function planArchitecturePointerWrite(profile, repoRoot) {
|
|
@@ -141,6 +141,7 @@ export async function runInit(options = {}) {
|
|
|
141
141
|
const { runInitTutorial } = await import("../lib/init-tutorial.js");
|
|
142
142
|
await runInitTutorial();
|
|
143
143
|
mergeGitignoreFromTemplate(repoRoot, templatesRoot);
|
|
144
|
+
mergePrettierignoreFromTemplate(repoRoot, templatesRoot);
|
|
144
145
|
return;
|
|
145
146
|
}
|
|
146
147
|
const profile = await resolveProfile(options, repoRoot, templatesRoot);
|
|
@@ -181,5 +182,6 @@ export async function runInit(options = {}) {
|
|
|
181
182
|
logInitNextSteps(profile);
|
|
182
183
|
}
|
|
183
184
|
mergeGitignoreFromTemplate(repoRoot, templatesRoot);
|
|
185
|
+
mergePrettierignoreFromTemplate(repoRoot, templatesRoot);
|
|
184
186
|
}
|
|
185
187
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,6BAA6B,GAE9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,GAE5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,GAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
intent: string;
|
|
3
|
-
msn?: string;
|
|
4
|
-
skillKey?: string;
|
|
5
|
-
out?: string;
|
|
6
|
-
allowDuplicate?: boolean;
|
|
7
|
-
gateCommand?: string;
|
|
8
|
-
gateSuccessSubstring?: string;
|
|
9
|
-
/** When true, skip stdout info messages (MCP / structured JSON callers). */
|
|
10
|
-
silent?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export type LegislateResult = {
|
|
13
|
-
ok: true;
|
|
14
|
-
missionAbs: string;
|
|
15
|
-
missionRel: string;
|
|
16
|
-
} | {
|
|
17
|
-
ok: false;
|
|
18
|
-
exitCode: 2;
|
|
19
|
-
};
|
|
20
|
-
export declare function runLegislate(options: LegislateOptions): LegislateResult;
|
|
1
|
+
export { runLegislate, type LegislateOptions, type LegislateResult, } from "../lib/legislate-core.js";
|
|
21
2
|
//# sourceMappingURL=legislate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legislate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/legislate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"legislate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/legislate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,143 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { CLI_NAME } from "../lib/constants.js";
|
|
4
|
-
import { buildLegislativeTraceRows } from "../lib/mission-yaml.js";
|
|
5
|
-
import { formatRepoRelative, logError, logInfo, logWarn, } from "../lib/cli-io.js";
|
|
6
|
-
import { isValidMsnId } from "../lib/msn.js";
|
|
7
|
-
import { extractMsnIdFromMissionPath } from "../lib/mission-msn.js";
|
|
8
|
-
import { resolveSkillKeyForLegislation } from "../lib/legislate-skill.js";
|
|
9
|
-
import { loadWorkspace } from "../lib/workspace.js";
|
|
10
|
-
import YAML from "yaml";
|
|
11
|
-
/** Slug for filename: alphanumeric + hyphen, capped length */
|
|
12
|
-
function intentSlug(intent, maxLen) {
|
|
13
|
-
const s = intent
|
|
14
|
-
.trim()
|
|
15
|
-
.toLowerCase()
|
|
16
|
-
.replace(/[^a-z0-9]+/g, "-")
|
|
17
|
-
.replace(/^-+|-+$/g, "")
|
|
18
|
-
.slice(0, maxLen);
|
|
19
|
-
return s || "mission";
|
|
20
|
-
}
|
|
21
|
-
function buildYamlMissionBody(opts) {
|
|
22
|
-
const doc = {
|
|
23
|
-
msn_id: opts.msn_id,
|
|
24
|
-
skill_key: opts.skill_key,
|
|
25
|
-
gate_command: opts.gate_command,
|
|
26
|
-
trace_rows: buildLegislativeTraceRows(),
|
|
27
|
-
};
|
|
28
|
-
if (opts.gate_success_substring !== null) {
|
|
29
|
-
doc.gate_success_substring = opts.gate_success_substring;
|
|
30
|
-
}
|
|
31
|
-
const header = `# OpenGantry mission scaffold (Teacher: fill gate, TMVC narrowing, trace rows).\n` +
|
|
32
|
-
`# Legislated intent: ${opts.intent.trim().replace(/\n/g, " ")}\n`;
|
|
33
|
-
return `${header}${YAML.stringify(doc)}`;
|
|
34
|
-
}
|
|
35
|
-
function resolveLegislateSkillKey(options, root, manifest) {
|
|
36
|
-
const resolved = resolveSkillKeyForLegislation({
|
|
37
|
-
root,
|
|
38
|
-
manifest,
|
|
39
|
-
intent: options.intent,
|
|
40
|
-
skillKey: options.skillKey,
|
|
41
|
-
});
|
|
42
|
-
if (!resolved.ok) {
|
|
43
|
-
logError(`legislate: ${resolved.reason}`);
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
return resolved.skillKey;
|
|
47
|
-
}
|
|
48
|
-
function resolveLegislateOutputPath(root, options, msnId) {
|
|
49
|
-
const slug = intentSlug(options.intent, 48);
|
|
50
|
-
const defaultFilename = `.gitagent/missions/${msnId}.${slug}.yaml`;
|
|
51
|
-
const outRel = options.out?.trim() || defaultFilename;
|
|
52
|
-
const absolute = path.isAbsolute(outRel)
|
|
53
|
-
? path.resolve(outRel)
|
|
54
|
-
: path.join(root, outRel.replace(/\\/g, path.sep));
|
|
55
|
-
const normRel = path.relative(root, path.resolve(absolute)).split(path.sep).join("/");
|
|
56
|
-
if (!normRel || normRel.startsWith("..")) {
|
|
57
|
-
logError(`legislate: output path outside repository (${absolute})`);
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
if (!normRel.startsWith(".gitagent/missions/")) {
|
|
61
|
-
logError(`legislate: mission path must stay under .gitagent/missions/ for gapman verify (got ${normRel})`);
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
if (fs.existsSync(absolute)) {
|
|
65
|
-
logError(`legislate: output already exists ${absolute}`);
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
return absolute;
|
|
69
|
-
}
|
|
70
|
-
function findDuplicateMsnMissionPaths(root, msnId) {
|
|
71
|
-
const dupes = [];
|
|
72
|
-
const missionsDir = path.join(root, ".gitagent", "missions");
|
|
73
|
-
if (!fs.existsSync(missionsDir))
|
|
74
|
-
return dupes;
|
|
75
|
-
for (const ent of fs.readdirSync(missionsDir, { withFileTypes: true })) {
|
|
76
|
-
if (!ent.isFile())
|
|
77
|
-
continue;
|
|
78
|
-
const abs = path.join(missionsDir, ent.name);
|
|
79
|
-
try {
|
|
80
|
-
if (extractMsnIdFromMissionPath(abs) === msnId) {
|
|
81
|
-
dupes.push(formatRepoRelative(root, abs));
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
catch {
|
|
85
|
-
// ignore malformed mission files during advisory scan
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return dupes;
|
|
89
|
-
}
|
|
90
|
-
function assertLegislateDuplicatePolicy(options, msnId, existingMissionDupes) {
|
|
91
|
-
if (existingMissionDupes.length === 0)
|
|
92
|
-
return true;
|
|
93
|
-
if (options.allowDuplicate === true) {
|
|
94
|
-
logWarn(`legislate: allowing duplicate msn ${msnId} for migration flow; existing mission file(s): ${existingMissionDupes.join(", ")}`);
|
|
95
|
-
return true;
|
|
96
|
-
}
|
|
97
|
-
logError(`legislate: duplicate msn ${msnId} already appears in ${existingMissionDupes.length} mission file(s): ${existingMissionDupes.join(", ")}. Re-run with --allow-duplicate only for intentional branch migrations.`);
|
|
98
|
-
return false;
|
|
99
|
-
}
|
|
100
|
-
function resolveLegislateGateOptions(options) {
|
|
101
|
-
const gateCommand = options.gateCommand?.trim() || "echo OK";
|
|
102
|
-
const gateSuccessSubstring = options.gateSuccessSubstring !== undefined
|
|
103
|
-
? options.gateSuccessSubstring.trim() || null
|
|
104
|
-
: gateCommand === "echo OK"
|
|
105
|
-
? "OK"
|
|
106
|
-
: null;
|
|
107
|
-
return { gateCommand, gateSuccessSubstring };
|
|
108
|
-
}
|
|
109
|
-
export function runLegislate(options) {
|
|
110
|
-
const { root, manifest } = loadWorkspace();
|
|
111
|
-
const msnId = (options.msn ?? "").trim();
|
|
112
|
-
if (!isValidMsnId(msnId)) {
|
|
113
|
-
logError('legislate: --msn must match "MSN-0007" exactly');
|
|
114
|
-
return { ok: false, exitCode: 2 };
|
|
115
|
-
}
|
|
116
|
-
const skill_key = resolveLegislateSkillKey(options, root, manifest);
|
|
117
|
-
if (!skill_key)
|
|
118
|
-
return { ok: false, exitCode: 2 };
|
|
119
|
-
const absolute = resolveLegislateOutputPath(root, options, msnId);
|
|
120
|
-
if (!absolute)
|
|
121
|
-
return { ok: false, exitCode: 2 };
|
|
122
|
-
const existingMissionDupes = findDuplicateMsnMissionPaths(root, msnId);
|
|
123
|
-
if (!assertLegislateDuplicatePolicy(options, msnId, existingMissionDupes)) {
|
|
124
|
-
return { ok: false, exitCode: 2 };
|
|
125
|
-
}
|
|
126
|
-
const { gateCommand, gateSuccessSubstring } = resolveLegislateGateOptions(options);
|
|
127
|
-
const body = buildYamlMissionBody({
|
|
128
|
-
msn_id: msnId,
|
|
129
|
-
skill_key,
|
|
130
|
-
intent: options.intent,
|
|
131
|
-
gate_command: gateCommand,
|
|
132
|
-
gate_success_substring: gateSuccessSubstring,
|
|
133
|
-
});
|
|
134
|
-
fs.mkdirSync(path.dirname(absolute), { recursive: true });
|
|
135
|
-
fs.writeFileSync(absolute, body, "utf8");
|
|
136
|
-
const missionRel = formatRepoRelative(root, absolute);
|
|
137
|
-
if (!options.silent) {
|
|
138
|
-
logInfo(`${CLI_NAME} legislate: wrote ${missionRel}`);
|
|
139
|
-
logInfo(`Teacher: git commit modifying this mission with subject starting [${msnId}] from an allowlisted Teacher email (gapman teacher show).`);
|
|
140
|
-
}
|
|
141
|
-
return { ok: true, missionAbs: absolute, missionRel };
|
|
142
|
-
}
|
|
1
|
+
export { runLegislate, } from "../lib/legislate-core.js";
|
|
143
2
|
//# sourceMappingURL=legislate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legislate.js","sourceRoot":"","sources":["../../../src/cli/commands/legislate.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"legislate.js","sourceRoot":"","sources":["../../../src/cli/commands/legislate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAGb,MAAM,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/onboarding.ts"],"names":[],"mappings":"AAcA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/onboarding.ts"],"names":[],"mappings":"AAcA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAuFnD"}
|
|
@@ -3,7 +3,7 @@ import { ONBOARDING_ADOPTION_DOC, onboardingRuntimeEnvHint, onboardingStatusHint
|
|
|
3
3
|
import { logError, logInfo, setExitCode } from "../lib/cli-io.js";
|
|
4
4
|
import { loadWorkspace } from "../lib/workspace.js";
|
|
5
5
|
import { runStartOrchestration } from "../lib/start-orchestration.js";
|
|
6
|
-
import {
|
|
6
|
+
import { executeVerifyMission } from "../lib/verify-run.js";
|
|
7
7
|
const EXAMPLE_MISSION = ".gitagent/missions/example.verify.yaml";
|
|
8
8
|
export async function runOnboarding() {
|
|
9
9
|
const p = await import("@clack/prompts");
|
|
@@ -72,12 +72,14 @@ export async function runOnboarding() {
|
|
|
72
72
|
initialValue: true,
|
|
73
73
|
});
|
|
74
74
|
if (!p.isCancel(runNow) && runNow) {
|
|
75
|
-
|
|
76
|
-
await runVerify({
|
|
75
|
+
const result = await executeVerifyMission({
|
|
77
76
|
mission: EXAMPLE_MISSION,
|
|
78
77
|
fix: true,
|
|
79
78
|
fixNonInteractive: true,
|
|
80
79
|
});
|
|
80
|
+
if (!result.ok) {
|
|
81
|
+
setExitCode(result.exitCode);
|
|
82
|
+
}
|
|
81
83
|
}
|
|
82
84
|
}
|
|
83
85
|
p.outro(`Onboarding complete — see ${ONBOARDING_ADOPTION_DOC} for the full loop`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../../src/cli/commands/onboarding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../../src/cli/commands/onboarding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/verify.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/verify.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAM5D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAa5D,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBrE;AAED,+EAA+E;AAC/E,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,uDAI9D"}
|
|
@@ -1,33 +1,42 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { parseMissionFile } from "../lib/mission-parser.js";
|
|
2
|
+
import { initFailurePayload } from "../lib/verify-result-payload.js";
|
|
3
|
+
import { emitVerifyJson } from "../lib/verify-flow.js";
|
|
4
4
|
import { evaluateVerifyPhases } from "../lib/verify-engine.js";
|
|
5
5
|
import { loadWorkspace } from "../lib/workspace.js";
|
|
6
|
-
import { reportUserFacingError } from "../lib/user-error.js";
|
|
6
|
+
import { GapmanUserError, reportUserFacingError } from "../lib/user-error.js";
|
|
7
|
+
import { runVerifyCore } from "../lib/verify-run.js";
|
|
8
|
+
function assertVerifyOptionsCompatible(options) {
|
|
9
|
+
if (options.json === true && options.fix === true) {
|
|
10
|
+
throw new GapmanUserError("INVALID_ARGUMENT", "The --fix flag cannot be used with --json. Automated repair is not supported in structured output mode.", undefined, 2);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
7
13
|
export async function runVerify(options) {
|
|
8
14
|
try {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (options.
|
|
13
|
-
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
assertMissionGatePresent(mission);
|
|
17
|
-
if (options.fix === true) {
|
|
18
|
-
await runVerifyWithFix(root, mission, missionArg, options);
|
|
15
|
+
assertVerifyOptionsCompatible(options);
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
if (options.json) {
|
|
19
|
+
emitVerifyJson(initFailurePayload(e));
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
+
reportUserFacingError(e);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
await runVerifyCore(options);
|
|
22
27
|
}
|
|
23
28
|
catch (e) {
|
|
29
|
+
if (options.json) {
|
|
30
|
+
emitVerifyJson(initFailurePayload(e));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
24
33
|
reportUserFacingError(e);
|
|
25
34
|
}
|
|
26
35
|
}
|
|
27
36
|
/** Exposed for tests that need silent phase evaluation without fix wrapper. */
|
|
28
37
|
export function evaluateVerifyForMission(options) {
|
|
29
|
-
const { root } = loadWorkspace();
|
|
38
|
+
const { root, manifest } = loadWorkspace();
|
|
30
39
|
const mission = parseMissionFile(root, options.mission);
|
|
31
|
-
return evaluateVerifyPhases(root, mission, options);
|
|
40
|
+
return evaluateVerifyPhases(root, mission, options, manifest);
|
|
32
41
|
}
|
|
33
42
|
//# sourceMappingURL=verify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/cli/commands/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/cli/commands/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,SAAS,6BAA6B,CAAC,OAAsB;IAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,IAAI,eAAe,CACvB,kBAAkB,EAClB,yGAAyG,EACzG,SAAS,EACT,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAsB;IACpD,IAAI,CAAC;QACH,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,wBAAwB,CAAC,OAAsB;IAC7D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -13,6 +13,7 @@ export interface AudienceNextStep {
|
|
|
13
13
|
audience: OutputAudience;
|
|
14
14
|
step: string;
|
|
15
15
|
}
|
|
16
|
+
export declare function filterTaggedStepsForAudience(audience: OutputAudience | undefined, tagged: AudienceNextStep[]): string[];
|
|
16
17
|
export declare function filterNextStepsForAudience(audience: OutputAudience | undefined, steps: string[]): string[];
|
|
17
18
|
export declare function audienceSectionTitle(audience: OutputAudience | undefined): string | null;
|
|
18
19
|
//# sourceMappingURL=audience-output.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audience-output.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/audience-output.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAS5E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAOjF;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,gBAAgB,CAQlB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,CASjG;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"audience-output.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/audience-output.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAS5E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAOjF;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,gBAAgB,CAQlB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,CASjG;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AA4BD,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,cAAc,GAAG,SAAS,EACpC,MAAM,EAAE,gBAAgB,EAAE,GACzB,MAAM,EAAE,CAMV;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,cAAc,GAAG,SAAS,EACpC,KAAK,EAAE,MAAM,EAAE,GACd,MAAM,EAAE,CAQV;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CASxF"}
|
|
@@ -53,8 +53,21 @@ function stepMatchesAudience(step, audience) {
|
|
|
53
53
|
return /gapman verify/i.test(step);
|
|
54
54
|
case "platform":
|
|
55
55
|
return /hooksPath|gapman doctor|gapman init/i.test(step);
|
|
56
|
+
default: {
|
|
57
|
+
const _exhaustive = audience;
|
|
58
|
+
return _exhaustive;
|
|
59
|
+
}
|
|
56
60
|
}
|
|
57
61
|
}
|
|
62
|
+
export function filterTaggedStepsForAudience(audience, tagged) {
|
|
63
|
+
if (!audience)
|
|
64
|
+
return tagged.map((t) => t.step);
|
|
65
|
+
const filtered = [...new Set(tagged.filter((t) => t.audience === audience).map((t) => t.step))];
|
|
66
|
+
if (filtered.length > 0)
|
|
67
|
+
return filtered;
|
|
68
|
+
const roleDefaults = DEFAULT_NEXT_STEPS.filter((s) => s.audience === audience).map((s) => s.step);
|
|
69
|
+
return roleDefaults.length > 0 ? roleDefaults : tagged.map((t) => t.step);
|
|
70
|
+
}
|
|
58
71
|
export function filterNextStepsForAudience(audience, steps) {
|
|
59
72
|
if (!audience)
|
|
60
73
|
return steps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audience-output.js","sourceRoot":"","sources":["../../../src/cli/lib/audience-output.ts"],"names":[],"mappings":"AAGA,MAAM,eAAe,GAA8B;IACjD,QAAQ;IACR,SAAS;IACT,UAAU;IACV,UAAU;CACX,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,GAAuB;IACnD,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAmB,CAAC,EAAE,CAAC;QAClD,OAAO,CAAmB,CAAC;IAC7B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAC7B,MAAe,EACf,MAAe;IAEf,MAAM,GAAG,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3B,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,QAAoC;IACvF,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,MAAM,kBAAkB,GAAuB;IAC7C,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,8DAA8D,EAAE;IAC7F,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,0EAA0E,EAAE;IACzG,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,yEAAyE,EAAE;IACvG,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,uCAAuC,EAAE;IACrE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,wDAAwD,EAAE;IACxF,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,sDAAsD,EAAE;CACvF,CAAC;AAEF,SAAS,mBAAmB,CAAC,IAAY,EAAE,QAAwB;IACjE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,KAAK,QAAQ;YACX,OAAO,+EAA+E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpG,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,KAAK,UAAU;YACb,OAAO,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"audience-output.js","sourceRoot":"","sources":["../../../src/cli/lib/audience-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ParsedMission } from "./types.js";
|
|
2
|
+
import type { VerifyOptions } from "./verify-types.js";
|
|
3
|
+
export interface BreakGlassAuditOk {
|
|
4
|
+
kind: "ok";
|
|
5
|
+
missionRel: string;
|
|
6
|
+
commitSha: string;
|
|
7
|
+
reason: string;
|
|
8
|
+
msnId?: string;
|
|
9
|
+
auditCommit: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface BreakGlassAuditFail {
|
|
12
|
+
kind: "fail";
|
|
13
|
+
error: unknown;
|
|
14
|
+
}
|
|
15
|
+
export type BreakGlassAuditOutcome = BreakGlassAuditOk | BreakGlassAuditFail;
|
|
16
|
+
/** Single break-glass audit path shared by human and JSON presenters. */
|
|
17
|
+
export declare function runBreakGlassAuditFlow(root: string, mission: ParsedMission, options: VerifyOptions): BreakGlassAuditOutcome;
|
|
18
|
+
//# sourceMappingURL=break-glass-flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"break-glass-flow.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/break-glass-flow.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAE7E,yEAAyE;AACzE,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,GACrB,sBAAsB,CAuBxB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { assertBypassSecretAuthorized, runBreakGlassAudit, validateBreakGlassReason, } from "./break-glass.js";
|
|
2
|
+
import { toPosixRel } from "./cli-io.js";
|
|
3
|
+
/** Single break-glass audit path shared by human and JSON presenters. */
|
|
4
|
+
export function runBreakGlassAuditFlow(root, mission, options) {
|
|
5
|
+
try {
|
|
6
|
+
const reason = validateBreakGlassReason(options.breakGlassReason);
|
|
7
|
+
assertBypassSecretAuthorized(root);
|
|
8
|
+
const missionRel = toPosixRel(root, mission.rawPath);
|
|
9
|
+
const commitSha = runBreakGlassAudit(root, {
|
|
10
|
+
reason,
|
|
11
|
+
msnId: mission.msnId,
|
|
12
|
+
missionFile: missionRel,
|
|
13
|
+
commit: options.breakGlassCommit,
|
|
14
|
+
auditCommit: options.auditCommit === true,
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
kind: "ok",
|
|
18
|
+
missionRel,
|
|
19
|
+
commitSha,
|
|
20
|
+
reason,
|
|
21
|
+
msnId: mission.msnId ?? undefined,
|
|
22
|
+
auditCommit: options.auditCommit === true,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return { kind: "fail", error };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=break-glass-flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"break-glass-flow.js","sourceRoot":"","sources":["../../../src/cli/lib/break-glass-flow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAoBzC,yEAAyE;AACzE,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,OAAsB,EACtB,OAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAClE,4BAA4B,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,EAAE;YACzC,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,OAAO,CAAC,gBAAgB;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;SAC1C,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,IAAI;YACV,UAAU;YACV,SAAS;YACT,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YACjC,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI;SAC1C,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;AACH,CAAC"}
|
package/dist/cli/lib/cli-io.d.ts
CHANGED
|
@@ -3,7 +3,12 @@ export declare function logWarn(message: string): void;
|
|
|
3
3
|
export declare function logError(message: string): void;
|
|
4
4
|
/** Red stderr for existing managed-asset conflicts (respects NO_COLOR). */
|
|
5
5
|
export declare function logManagedAssetConflicts(conflicts: string[]): void;
|
|
6
|
-
/**
|
|
6
|
+
/** POSIX repo-relative path (stable across platforms). */
|
|
7
|
+
export declare function toPosixRel(repoRoot: string, absolutePath: string): string;
|
|
8
|
+
/** Convert a POSIX repo-relative path to native separators. */
|
|
9
|
+
export declare function fromPosix(posixPath: string): string;
|
|
10
|
+
/** Relative path for user-facing messages (POSIX-normalized). */
|
|
7
11
|
export declare function formatRepoRelative(repoRoot: string, absolutePath: string): string;
|
|
12
|
+
export declare function errorMessage(e: unknown): string;
|
|
8
13
|
export declare function setExitCode(code: number): void;
|
|
9
14
|
//# sourceMappingURL=cli-io.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-io.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/cli-io.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAWlE;AAED,
|
|
1
|
+
{"version":3,"file":"cli-io.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/cli-io.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAWlE;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,+DAA+D;AAC/D,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,iEAAiE;AACjE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE/C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9C"}
|