@attalabs/vinaya 0.4.3 → 0.4.4
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/aeg-root/enforcement.md +1 -1
- package/aeg-root/state-machine.md +1 -1
- package/dist/checks/bin/check-branch-topology.js +44 -31
- package/dist/checks/bin/check-brief-shape.js +44 -31
- package/dist/checks/bin/check-closes-n.js +44 -31
- package/dist/checks/bin/check-coherence.js +44 -31
- package/dist/checks/bin/check-dead-branch-push.js +44 -31
- package/dist/checks/bin/check-dispatch-readiness.js +44 -31
- package/dist/checks/bin/check-doc-coverage-push.js +221 -34
- package/dist/checks/bin/check-doc-coverage.js +221 -34
- package/dist/checks/bin/check-first-push-dispatch.js +44 -31
- package/dist/checks/bin/check-issue-assignment.js +44 -31
- package/dist/checks/bin/check-no-disk-state.js +44 -31
- package/dist/checks/bin/check-reader-resolvable-prose.js +44 -31
- package/dist/checks/bin/check-registry-gates.js +44 -31
- package/dist/checks/bin/check-review-gate.js +222 -36
- package/dist/checks/bin/check-single-plan-pr.js +44 -31
- package/dist/checks/bin/check-test-plan.js +44 -31
- package/dist/index.js +116 -34
- package/package.json +1 -1
- package/studio-standalone/.worktrees/fix/bump-0.4.4/.vinaya/projects.md +63 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/aeg-manual-flow.md +216 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/contracts/archivist-tranche-archivist.md +92 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/contracts/brief-developer.md +140 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/contracts/developer-reviewer.md +106 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/contracts/planner-brief.md +130 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/contracts/reviewer-archivist.md +96 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/contracts/tranche-archivist-planner.md +116 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/coordination.md +293 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/documentation-coherence.md +65 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/enforcement.md +161 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/glossary.md +36 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/process.md +371 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/reviewer-prompt.md +68 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/roles/archivist.md +167 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/roles/brief-author.md +108 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/roles/developer.md +429 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/roles/planner.md +285 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/roles/principal.md +107 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/roles/reviewer.md +130 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/roles/security.md +121 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/roles/tranche-archivist.md +257 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/skills/aeg/SKILL.md +90 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/skills/aeg-roles/SKILL.md +58 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/skills/brief-authoring/SKILL.md +497 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/state-machine.md +656 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/templates/brief-template.md +103 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/templates/issue-rationale-template.md +35 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/templates/pr-report-template.md +68 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranche-model.md +306 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/aeg-coherence-v1.md +55 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/aeg-coherence-v1.tokens.md +13 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/aeg-consolidation.md +28 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/aeg-governance-hardening.md +80 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/aeg-governance-ui-v2.md +168 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/aeg-governance-ui-v2.tokens.md +18 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/aeg-studio-cleanup.md +37 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/aeg-ui-v1.md +176 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/aeg-ui-v1.tokens.md +17 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/herald-agents-v2.md +35 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/herald-agents-v2.tokens.md +11 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/herald-onto-engine.md +99 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/aeg-root/tranches/completed/vada-agents-v2.md +220 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/apps/vinaya/cli/tests/fixtures/checks/vinaya.config.json +9 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/node_modules/@attalabs/vinaya/tests/fixtures/checks/vinaya.config.json +9 -0
- package/studio-standalone/.worktrees/fix/bump-0.4.4/vinaya.config.json +36 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/.vinaya/projects.md +63 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/aeg-manual-flow.md +216 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/contracts/archivist-tranche-archivist.md +92 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/contracts/brief-developer.md +140 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/contracts/developer-reviewer.md +106 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/contracts/planner-brief.md +130 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/contracts/reviewer-archivist.md +96 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/contracts/tranche-archivist-planner.md +116 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/coordination.md +293 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/documentation-coherence.md +65 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/enforcement.md +161 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/glossary.md +36 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/process.md +371 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/reviewer-prompt.md +68 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/roles/archivist.md +167 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/roles/brief-author.md +108 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/roles/developer.md +429 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/roles/planner.md +285 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/roles/principal.md +107 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/roles/reviewer.md +130 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/roles/security.md +121 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/roles/tranche-archivist.md +257 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/skills/aeg/SKILL.md +90 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/skills/aeg-roles/SKILL.md +58 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/skills/brief-authoring/SKILL.md +497 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/state-machine.md +656 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/templates/brief-template.md +103 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/templates/issue-rationale-template.md +35 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/templates/pr-report-template.md +68 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranche-model.md +306 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/aeg-coherence-v1.md +55 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/aeg-coherence-v1.tokens.md +13 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/aeg-consolidation.md +28 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/aeg-governance-hardening.md +80 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/aeg-governance-ui-v2.md +168 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/aeg-governance-ui-v2.tokens.md +18 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/aeg-studio-cleanup.md +37 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/aeg-ui-v1.md +176 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/aeg-ui-v1.tokens.md +17 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/herald-agents-v2.md +35 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/herald-agents-v2.tokens.md +11 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/herald-onto-engine.md +99 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/aeg-root/tranches/completed/vada-agents-v2.md +220 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/apps/vinaya/cli/tests/fixtures/checks/vinaya.config.json +9 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/node_modules/@attalabs/vinaya/tests/fixtures/checks/vinaya.config.json +9 -0
- package/studio-standalone/.worktrees/fix/check-lifecycle-phase/vinaya.config.json +36 -0
- package/studio-standalone/_node_modules/@atta/vinaya-cli/aeg-root/enforcement.md +1 -1
- package/studio-standalone/_node_modules/@atta/vinaya-cli/aeg-root/state-machine.md +1 -1
- package/studio-standalone/_node_modules/@attalabs/vinaya/aeg-root/enforcement.md +1 -1
- package/studio-standalone/_node_modules/@attalabs/vinaya/aeg-root/state-machine.md +1 -1
- package/studio-standalone/apps/vinaya/cli/aeg-root/enforcement.md +1 -1
- package/studio-standalone/apps/vinaya/cli/aeg-root/state-machine.md +1 -1
- package/studio-standalone/apps/vinaya/web/.next/BUILD_ID +1 -1
- package/studio-standalone/apps/vinaya/web/.next/build-manifest.json +3 -3
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/cli/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/config/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/docs/(standalone)/cli/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/docs/(standalone)/harness/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/docs/(standalone)/state-machine/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/docs/(with-sidebar)/[...slug]/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/docs/(with-sidebar)/reference/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/docs/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/install/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/roadmap/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/start/archive/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/start/brief/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/start/develop/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/start/overview/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/start/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/start/plan/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/start/quick/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/start/review/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/start/security/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/start/wrap-up/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/state-machine/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/the-harness/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/(site)/the-studio/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/_global-error.html +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/_global-error.rsc +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/api/coherence/route.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/studio/backlog/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/studio/docs/[...slug]/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/studio/docs/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/studio/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/studio/projects/[name]/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/studio/projects/[name]/tranches/[slug]/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/studio/projects/[name]/tranches/[slug]/tasks/[taskId]/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/studio/projects/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/app/studio/tranches/page.js.nft.json +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/chunks/ssr/[root-of-the-server]__0kqmrho._.js +1 -1
- package/studio-standalone/apps/vinaya/web/.next/server/chunks/ssr/[root-of-the-server]__1dxaovd._.js +2 -2
- package/studio-standalone/apps/vinaya/web/.next/server/middleware-build-manifest.js +3 -3
- package/studio-standalone/apps/vinaya/web/.next/server/pages/500.html +1 -1
- /package/studio-standalone/apps/vinaya/web/.next/static/{Afs41Lu9uNQ-T6uC-tm4_ → mSHYKKSLd91iaLw52dYpD}/_buildManifest.js +0 -0
- /package/studio-standalone/apps/vinaya/web/.next/static/{Afs41Lu9uNQ-T6uC-tm4_ → mSHYKKSLd91iaLw52dYpD}/_clientMiddlewareManifest.js +0 -0
- /package/studio-standalone/apps/vinaya/web/.next/static/{Afs41Lu9uNQ-T6uC-tm4_ → mSHYKKSLd91iaLw52dYpD}/_ssgManifest.js +0 -0
package/studio-standalone/apps/vinaya/web/.next/server/chunks/ssr/[root-of-the-server]__0kqmrho._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},500874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},48741,a=>{"use strict";a.s(["COMMANDS",0,[{name:"help",description:"Show this help text",status:"shipped"},{name:"version",description:"Print the CLI version",flags:[{flag:"--json",description:"Enveloped JSON output (schema: 1)"}],status:"shipped"},{name:"init",description:"Install Vinaya's git hooks, CI workflow, and starter config (diff-and-confirm, non-destructive)",flags:[{flag:"--dry-run",description:"Print the full diff without installing anything"},{flag:"--yes",description:"Skip the confirmation prompt"}],details:["It detects your repo, prints the complete diff of every intended change, and waits for your confirmation before installing anything. `--dry-run` prints that same diff and installs nothing. Nothing ever runs automatically on package install.","It installs one CI workflow that runs `vinaya check --all --diff-only`, alongside your existing workflows — refusing to overwrite rather than touching foreign content already at that path. Git hook stubs invoke the `vinaya` binary directly; if a hook already exists, it appends a delimited managed block, shown verbatim in the diff first, rather than overwriting it.","`vinaya.config.json` is seeded with a starter ruleset extracted from Vinaya's own battle-tested gates, not invented defaults. Issue and PR templates carrying the brief schema are added alongside your own; tier and `needs:*-input` labels are created only if they don't already exist — your existing labels are never modified.","The recommended branch-protection command is printed for you to run yourself — it is never applied, and your PATH is never touched. `eject` removes exactly the managed block it owns, or a whole file only if `init` created it."],status:"shipped"},{name:"init product",description:"Register a project in .vinaya/projects.md (and its project:<name> label) in an already-initialized repo",flags:[{flag:"--path <path>",description:"The project's home folder — declared, not derived. Defaults to the repo root."}],details:["Writes (or appends to) `.vinaya/projects.md` — the registry Vinaya Studio's tranche board resolves a project's board link against. Idempotent: re-running with the same name updates nothing.","Also creates a `project:<name>` label (create-if-absent) — informational only, not read by any shipped check or by Studio.","A missing GitHub remote skips the label (the one forge-reaching op) but still writes the registry row, which is a pure local file write."],status:"shipped"},{name:"check",description:"Run one check, or every registered check",flags:[{flag:"--all",description:"Run every registered check instead of one named check"},{flag:"--json",description:"Enveloped JSON output (schema: 1)"},{flag:"--diff-only",description:"Scope diff-declared checks to changed files"},{flag:"--parallel[=n]",description:"Concurrency cap (default: cpu-derived)"},{flag:"--plan",description:"Print the resolved check registry (default/overridden/additive) without running anything"}],details:["Each spawned check's child process sees only a fixed baseline (`PATH`, `LANG`, `HOME`, `HTTPS_PROXY`, `HTTP_PROXY`, `NO_PROXY`, `TMPDIR`) plus whatever its `CheckSpec['env']` declaration explicitly forwards — never the full parent environment. A required (`true`) or unsatisfied `anyOf` declaration missing from the caller's environment synthesizes a `CheckError` before the check ever spawns. Declare `env` (a core check's own registration, or `vinaya.config.json`'s `checks.<name>.env` for a custom one) for any check that reads `process.env`/`Bun.env`/`Deno.env` directly — `vinaya doctor` carries the permanent diagnostic for one that doesn't.","`--plan` composes with `--json`. It requires zero env vars and never prints an env value — only how each one resolves (passthrough, optional, literal, or anyOf). A `FAIL_CLOSED` entry (a bare key with no namespace matching no core check) always renders inline rather than being dropped, and exits non-zero. `--plan` previews what the next minor's execution will enforce — `vinaya check` itself still runs the flat, unvalidated registry this release."],status:"shipped"},{name:"new check",description:"Scaffold a custom check into ./scripts/vinaya-checks/",status:"shipped"},{name:"pr create",description:"Open a pull request after full brief-schema validation",flags:[{flag:"--title",description:"PR title (validated against the forge-title grammar)"},{flag:"--body-file",description:"Path to the PR body (stream-safe; the same bytes are validated and sent)"},{flag:"--label",description:"Label(s) to apply (repeatable, comma-separated)"},{flag:"--validate-only",description:"Run every gate and report PASS without opening the PR"},{flag:"--json",description:"Enveloped JSON output (schema: 1)"}],details:["Runs the config-defined brief-schema gate (`briefSchema.pr` in `vinaya.config.json`) LOCALLY before any `gh` write — prevention, not detection. On any failure it refuses with the versioned CheckError contract (one JSON line per finding on stderr, exit 1) whose `agent_recovery_prompt` names the exact corrective command."],status:"shipped"},{name:"pr edit",description:"Edit an existing pull request (<n>) after full brief-schema validation",flags:[{flag:"--title",description:"New PR title (validated against the forge-title grammar)"},{flag:"--body-file",description:"Path to the new PR body (stream-safe; same bytes validated and sent)"},{flag:"--validate-only",description:"Run every gate and report PASS without editing the PR"},{flag:"--json",description:"Enveloped JSON output (schema: 1)"}],details:["The target PR's real head branch and changed files are fetched from the forge to build the validation context — a failed fetch is a hard refusal, never a fall-back to the local checkout."],status:"shipped"},{name:"issue create",description:"Open an issue after full brief-schema validation",flags:[{flag:"--title",description:"Issue title (validated on task Issues)"},{flag:"--body-file",description:"Path to the Issue body (stream-safe; same bytes validated and sent)"},{flag:"--label",description:"Label(s) to apply; a `vinaya/tranche:*` label marks a task Issue"},{flag:"--validate-only",description:"Run every gate and report PASS without opening the Issue"},{flag:"--json",description:"Enveloped JSON output (schema: 1)"}],details:["A task Issue (any `vinaya/tranche:*` label) must carry the full Planner rationale (`briefSchema.issue`); non-task Issues pass through unvalidated."],status:"shipped"},{name:"issue edit",description:"Edit an existing issue (<n>) after full brief-schema validation",flags:[{flag:"--title",description:"New Issue title (validated on task Issues)"},{flag:"--body-file",description:"Path to the new Issue body (stream-safe; same bytes validated and sent)"},{flag:"--validate-only",description:"Run every gate and report PASS without editing the Issue"},{flag:"--json",description:"Enveloped JSON output (schema: 1)"}],details:["The target Issue's actual labels are fetched from the forge and unioned with argv to decide task-Issue applicability — a failed fetch is a hard refusal."],status:"shipped"},{name:"doctor",description:"Diagnose hook, workflow, and config health — report only, never mutates",flags:[{flag:"--json",description:"Enveloped JSON output (schema: 1)"}],details:['Carries the same env-declaration diagnostic `vinaya check` warns with — permanently, at `info` severity, not just ahead of the spawn-default flip — plus a `warn`-severity lint over suspicious `env` literal forms (a stray `"true"`/`"false"` string, or a high-entropy literal that reads like a leaked secret committed to config).'],status:"shipped"},{name:"upgrade",description:"Regenerate hooks, workflow, and config to the current contract version (diff-and-confirm)",flags:[{flag:"--dry-run",description:"Print the full diff without regenerating anything"},{flag:"--yes",description:"Skip the confirmation prompt"}],status:"shipped"},{name:"archive",description:"Run the post-merge Archivist directly: provenance + Issue close-out for a merged task PR",flags:[{flag:"--merge-sha",description:"The merge commit to resolve (defaults to the current HEAD)"}],details:["Resolves the merge commit's associated PR via `gh`, and — if it's a task PR without a provenance comment yet — posts the provenance block and closes the linked Issue. Idempotent: re-running against an already-archived PR is a no-op.","The same logic the generated `vinaya-archivist.yml` workflow's `post-merge` job runs on every push to `main` — callable directly for a one-off run or local verification."],status:"shipped"},{name:"archive tranche",description:"Close a tranche — the tranche-level bookend to `init product`, closing the Milestone via the CLI",flags:[{flag:"--yes",description:"Skip the confirmation prompt"}],details:["Refuses if any task Issue attached to the named tranche is still open, naming each one — closing a tranche with unresolved work is never silently allowed.","Once every task Issue is closed, prompts for confirmation (unless `--yes`) and closes the GitHub Milestone."],status:"shipped"},{name:"audit",description:"Run the ring-2 dead-branch-push and direct-main-push detection checks directly",flags:[{flag:"--only",description:"Scope to one check: 'dead-branches' or 'direct-push'"},{flag:"--sha",description:"The commit to check for direct-main-push (defaults to the current HEAD)"},{flag:"--json",description:"Enveloped JSON output"}],details:["Dead-branch-push is never-red — a notification channel that flags (label + PR comment) any `task/*` branch whose tip commit lands after its own PR already resolved. Direct-main-push is a real pass/fail — it opens an incident Issue and exits 1 if a commit on `main` has no associated merged PR.","The same logic the generated `vinaya-archivist.yml` workflow's `daily-drift` and `direct-main-push-detection` jobs run on schedule / on every push to `main` — callable directly for a one-off run or local verification."],status:"shipped"},{name:"eject",description:"Remove every Vinaya-installed artifact, restoring the repo to stock",flags:[{flag:"--dry-run",description:"Print the full removal diff without removing anything"},{flag:"--yes",description:"Skip the confirmation prompt"}],status:"shipped"},{name:"demo break",description:"Run a guided refusal-then-fix demo on an isolated, discardable branch",flags:[{flag:"--keep",description:"Skip cleanup and leave the demo branch checked out to inspect"}],details:["Creates a collision-safe `vinaya/demo-break-<id>` branch off the current one, stages a deliberately incomplete draft brief, and attempts a real `git commit` — the repo's actually-installed pre-commit hook refuses it with its real output, not a scripted string. Applies the minimal fix, commits again, then switches back and deletes the demo branch.","Safe to run twice: refuses on a dirty working tree, refuses from a detached HEAD, and recovers automatically from a prior crashed run before starting a fresh one — never leaves the original branch touched or a stray demo branch behind."],status:"shipped"},{name:"waiver",description:"Apply the actor-verified 'vinaya/waiver:docs' or 'vinaya/waiver:review' label after prompting for a reason",flags:[{flag:"--reason",description:"The waiver rationale, posted as a PR comment (prompted for if omitted)"},{flag:"--print-only",description:"Print the exact `gh` commands instead of running them"}],details:["Applies the label via `gh pr edit --add-label`, under the invoking human's own authenticated `gh` identity — this command never fabricates an actor. A waiver is never an agent-emittable string: not a PR body field, not a commit trailer, not a comment — the label plus its own labeling-timeline actor is the only mechanism ring 1 honors.","`--print-only` prints the exact `gh pr edit`/`gh pr comment` commands and runs nothing — for a human who wants to run them itself, or a CI/non-interactive context where an agent session should never be the one applying its own waiver."],status:"shipped"},{name:"studio",description:"Launch local Vinaya Studio against this repo — works standalone via npx, not just inside a Vinaya workspace checkout",status:"shipped"},{name:"quickstart",description:"Guided wizard: init, doc-owners, project, commit, demo break, doctor, push — one command",details:["Calls `init`'s own diff-and-confirm flow unchanged (pausing on Enter before the diff prints, so its own step header isn't scrolled off by a long diff), then Y/n-prompts through the workarounds a guest used to run by hand: binding `.vinaya/doc-owners` pairs (bad input offers a retry instead of silently skipping, and a pointer that doesn't exist on disk is refused outright — both loop across as many pairs as the guest wants, not just one), registering tracked projects (`init product`, same retry/loop shape), committing the install, running `demo break` as proof the gates actually work (default yes — the one step this wizard makes hardest to skip), running `doctor`, and pushing. Each declined prompt skips only that step; the install commit itself is never prompt-gated — it just no-ops when there is genuinely nothing to commit.","Never reimplements or edits `init`/`init product`/`demo break`/`doctor` — it only calls their existing, unmodified entry points in sequence."],status:"shipped"}]])},701318,a=>{"use strict";a.s(["CliSidebar",()=>b]);let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call CliSidebar() from the server but CliSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/vinaya/web/src/app/(site)/docs/(standalone)/cli/_components/CliSidebar.tsx <module evaluation>","CliSidebar")},831460,a=>{"use strict";a.s(["CliSidebar",()=>b]);let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call CliSidebar() from the server but CliSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/vinaya/web/src/app/(site)/docs/(standalone)/cli/_components/CliSidebar.tsx","CliSidebar")},572296,a=>{"use strict";a.i(701318);var b=a.i(831460);a.n(b)},834594,a=>{"use strict";var b=a.i(907997);a.i(371381);var c=a.i(48741);a.i(848368);var d=a.i(941667),e=a.i(572296);a.s(["default",0,function({children:a}){return(0,b.jsxs)(d.Flex,{className:"h-full min-h-0 w-full flex-col overflow-hidden lg:flex-row",children:[(0,b.jsx)(e.CliSidebar,{commands:c.COMMANDS}),(0,b.jsx)("main",{className:"flex-1 min-h-0 overflow-y-auto px-6 pb-10 bg-background lg:px-12",children:(0,b.jsx)("div",{className:"mx-auto max-w-4xl pt-10",children:a})})]})}])},276519,a=>{a.n(a.i(834594))}];
|
|
1
|
+
module.exports=[902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},500874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},48741,a=>{"use strict";a.s(["COMMANDS",0,[{name:"help",description:"Show this help text",status:"shipped"},{name:"version",description:"Print the CLI version",flags:[{flag:"--json",description:"Enveloped JSON output (schema: 1)"}],status:"shipped"},{name:"init",description:"Install Vinaya's git hooks, CI workflow, and starter config (diff-and-confirm, non-destructive)",flags:[{flag:"--dry-run",description:"Print the full diff without installing anything"},{flag:"--yes",description:"Skip the confirmation prompt"}],details:["It detects your repo, prints the complete diff of every intended change, and waits for your confirmation before installing anything. `--dry-run` prints that same diff and installs nothing. Nothing ever runs automatically on package install.","It installs one CI workflow that runs `vinaya check --all --diff-only`, alongside your existing workflows — refusing to overwrite rather than touching foreign content already at that path. Git hook stubs invoke the `vinaya` binary directly; if a hook already exists, it appends a delimited managed block, shown verbatim in the diff first, rather than overwriting it.","`vinaya.config.json` is seeded with a starter ruleset extracted from Vinaya's own battle-tested gates, not invented defaults. Issue and PR templates carrying the brief schema are added alongside your own; tier and `needs:*-input` labels are created only if they don't already exist — your existing labels are never modified.","The recommended branch-protection command is printed for you to run yourself — it is never applied, and your PATH is never touched. `eject` removes exactly the managed block it owns, or a whole file only if `init` created it."],status:"shipped"},{name:"init product",description:"Register a project in .vinaya/projects.md (and its project:<name> label) in an already-initialized repo",flags:[{flag:"--path <path>",description:"The project's home folder — declared, not derived. Defaults to the repo root."}],details:["Writes (or appends to) `.vinaya/projects.md` — the registry Vinaya Studio's tranche board resolves a project's board link against. Idempotent: re-running with the same name updates nothing.","Also creates a `project:<name>` label (create-if-absent) — informational only, not read by any shipped check or by Studio.","A missing GitHub remote skips the label (the one forge-reaching op) but still writes the registry row, which is a pure local file write."],status:"shipped"},{name:"check",description:"Run one check, or every registered check",flags:[{flag:"--all",description:"Run every registered check instead of one named check"},{flag:"--json",description:"Enveloped JSON output (schema: 1)"},{flag:"--diff-only",description:"Scope diff-declared checks to changed files"},{flag:"--local",description:"Skip every requiresOpenPr check (closes-n, test-plan) — set by the generated hooks, never by CI"},{flag:"--parallel[=n]",description:"Concurrency cap (default: cpu-derived)"},{flag:"--plan",description:"Print the resolved check registry (default/overridden/additive) without running anything"}],details:["Each spawned check's child process sees only a fixed baseline (`PATH`, `LANG`, `HOME`, `HTTPS_PROXY`, `HTTP_PROXY`, `NO_PROXY`, `TMPDIR`) plus whatever its `CheckSpec['env']` declaration explicitly forwards — never the full parent environment. A required (`true`) or unsatisfied `anyOf` declaration missing from the caller's environment synthesizes a `CheckError` before the check ever spawns. Declare `env` (a core check's own registration, or `vinaya.config.json`'s `checks.<name>.env` for a custom one) for any check that reads `process.env`/`Bun.env`/`Deno.env` directly — `vinaya doctor` carries the permanent diagnostic for one that doesn't.","`--plan` composes with `--json`. It requires zero env vars and never prints an env value — only how each one resolves (passthrough, optional, literal, or anyOf). A `FAIL_CLOSED` entry (a bare key with no namespace matching no core check) always renders inline rather than being dropped, and exits non-zero. `--plan` previews what the next minor's execution will enforce — `vinaya check` itself still runs the flat, unvalidated registry this release.","`--local` exists because a `requiresOpenPr` check (the core `closes-n`/`test-plan`, or a custom check declaring the same field) can only evaluate for real once a pull request exists — the generated `pre-commit`/`pre-push` hooks pass it so the first commit on a fresh task branch is never asked to satisfy a PR-body field before a PR can possibly exist. CI's `vinaya-checks.yml` omits it, so these checks always run for real once a PR is open."],status:"shipped"},{name:"new check",description:"Scaffold a custom check into ./scripts/vinaya-checks/",status:"shipped"},{name:"pr create",description:"Open a pull request after full brief-schema validation",flags:[{flag:"--title",description:"PR title (validated against the forge-title grammar)"},{flag:"--body-file",description:"Path to the PR body (stream-safe; the same bytes are validated and sent)"},{flag:"--label",description:"Label(s) to apply (repeatable, comma-separated)"},{flag:"--validate-only",description:"Run every gate and report PASS without opening the PR"},{flag:"--json",description:"Enveloped JSON output (schema: 1)"}],details:["Runs the config-defined brief-schema gate (`briefSchema.pr` in `vinaya.config.json`) LOCALLY before any `gh` write — prevention, not detection. On any failure it refuses with the versioned CheckError contract (one JSON line per finding on stderr, exit 1) whose `agent_recovery_prompt` names the exact corrective command."],status:"shipped"},{name:"pr edit",description:"Edit an existing pull request (<n>) after full brief-schema validation",flags:[{flag:"--title",description:"New PR title (validated against the forge-title grammar)"},{flag:"--body-file",description:"Path to the new PR body (stream-safe; same bytes validated and sent)"},{flag:"--validate-only",description:"Run every gate and report PASS without editing the PR"},{flag:"--json",description:"Enveloped JSON output (schema: 1)"}],details:["The target PR's real head branch and changed files are fetched from the forge to build the validation context — a failed fetch is a hard refusal, never a fall-back to the local checkout."],status:"shipped"},{name:"issue create",description:"Open an issue after full brief-schema validation",flags:[{flag:"--title",description:"Issue title (validated on task Issues)"},{flag:"--body-file",description:"Path to the Issue body (stream-safe; same bytes validated and sent)"},{flag:"--label",description:"Label(s) to apply; a `vinaya/tranche:*` label marks a task Issue"},{flag:"--validate-only",description:"Run every gate and report PASS without opening the Issue"},{flag:"--json",description:"Enveloped JSON output (schema: 1)"}],details:["A task Issue (any `vinaya/tranche:*` label) must carry the full Planner rationale (`briefSchema.issue`); non-task Issues pass through unvalidated."],status:"shipped"},{name:"issue edit",description:"Edit an existing issue (<n>) after full brief-schema validation",flags:[{flag:"--title",description:"New Issue title (validated on task Issues)"},{flag:"--body-file",description:"Path to the new Issue body (stream-safe; same bytes validated and sent)"},{flag:"--validate-only",description:"Run every gate and report PASS without editing the Issue"},{flag:"--json",description:"Enveloped JSON output (schema: 1)"}],details:["The target Issue's actual labels are fetched from the forge and unioned with argv to decide task-Issue applicability — a failed fetch is a hard refusal."],status:"shipped"},{name:"doctor",description:"Diagnose hook, workflow, and config health — report only, never mutates",flags:[{flag:"--json",description:"Enveloped JSON output (schema: 1)"}],details:['Carries the same env-declaration diagnostic `vinaya check` warns with — permanently, at `info` severity, not just ahead of the spawn-default flip — plus a `warn`-severity lint over suspicious `env` literal forms (a stray `"true"`/`"false"` string, or a high-entropy literal that reads like a leaked secret committed to config).'],status:"shipped"},{name:"upgrade",description:"Regenerate hooks, workflow, and config to the current contract version (diff-and-confirm)",flags:[{flag:"--dry-run",description:"Print the full diff without regenerating anything"},{flag:"--yes",description:"Skip the confirmation prompt"}],status:"shipped"},{name:"archive",description:"Run the post-merge Archivist directly: provenance + Issue close-out for a merged task PR",flags:[{flag:"--merge-sha",description:"The merge commit to resolve (defaults to the current HEAD)"}],details:["Resolves the merge commit's associated PR via `gh`, and — if it's a task PR without a provenance comment yet — posts the provenance block and closes the linked Issue. Idempotent: re-running against an already-archived PR is a no-op.","The same logic the generated `vinaya-archivist.yml` workflow's `post-merge` job runs on every push to `main` — callable directly for a one-off run or local verification."],status:"shipped"},{name:"archive tranche",description:"Close a tranche — the tranche-level bookend to `init product`, closing the Milestone via the CLI",flags:[{flag:"--yes",description:"Skip the confirmation prompt"}],details:["Refuses if any task Issue attached to the named tranche is still open, naming each one — closing a tranche with unresolved work is never silently allowed.","Once every task Issue is closed, prompts for confirmation (unless `--yes`) and closes the GitHub Milestone."],status:"shipped"},{name:"audit",description:"Run the ring-2 dead-branch-push and direct-main-push detection checks directly",flags:[{flag:"--only",description:"Scope to one check: 'dead-branches' or 'direct-push'"},{flag:"--sha",description:"The commit to check for direct-main-push (defaults to the current HEAD)"},{flag:"--json",description:"Enveloped JSON output"}],details:["Dead-branch-push is never-red — a notification channel that flags (label + PR comment) any `task/*` branch whose tip commit lands after its own PR already resolved. Direct-main-push is a real pass/fail — it opens an incident Issue and exits 1 if a commit on `main` has no associated merged PR.","The same logic the generated `vinaya-archivist.yml` workflow's `daily-drift` and `direct-main-push-detection` jobs run on schedule / on every push to `main` — callable directly for a one-off run or local verification."],status:"shipped"},{name:"eject",description:"Remove every Vinaya-installed artifact, restoring the repo to stock",flags:[{flag:"--dry-run",description:"Print the full removal diff without removing anything"},{flag:"--yes",description:"Skip the confirmation prompt"}],status:"shipped"},{name:"demo break",description:"Run a guided refusal-then-fix demo on an isolated, discardable branch",flags:[{flag:"--keep",description:"Skip cleanup and leave the demo branch checked out to inspect"}],details:["Creates a collision-safe `vinaya/demo-break-<id>` branch off the current one, stages a deliberately incomplete draft brief, and attempts a real `git commit` — the repo's actually-installed pre-commit hook refuses it with its real output, not a scripted string. Applies the minimal fix, commits again, then switches back and deletes the demo branch.","Safe to run twice: refuses on a dirty working tree, refuses from a detached HEAD, and recovers automatically from a prior crashed run before starting a fresh one — never leaves the original branch touched or a stray demo branch behind."],status:"shipped"},{name:"waiver",description:"Apply the actor-verified 'vinaya/waiver:docs' or 'vinaya/waiver:review' label after prompting for a reason",flags:[{flag:"--reason",description:"The waiver rationale, posted as a PR comment (prompted for if omitted)"},{flag:"--print-only",description:"Print the exact `gh` commands instead of running them"}],details:["Applies the label via `gh pr edit --add-label`, under the invoking human's own authenticated `gh` identity — this command never fabricates an actor. A waiver is never an agent-emittable string: not a PR body field, not a commit trailer, not a comment — the label plus its own labeling-timeline actor is the only mechanism ring 1 honors.","`--print-only` prints the exact `gh pr edit`/`gh pr comment` commands and runs nothing — for a human who wants to run them itself, or a CI/non-interactive context where an agent session should never be the one applying its own waiver."],status:"shipped"},{name:"studio",description:"Launch local Vinaya Studio against this repo — works standalone via npx, not just inside a Vinaya workspace checkout",status:"shipped"},{name:"quickstart",description:"Guided wizard: init, doc-owners, project, commit, demo break, doctor, push — one command",details:["Calls `init`'s own diff-and-confirm flow unchanged (pausing on Enter before the diff prints, so its own step header isn't scrolled off by a long diff), then Y/n-prompts through the workarounds a guest used to run by hand: binding `.vinaya/doc-owners` pairs (bad input offers a retry instead of silently skipping, and a pointer that doesn't exist on disk is refused outright — both loop across as many pairs as the guest wants, not just one), registering tracked projects (`init product`, same retry/loop shape), committing the install, running `demo break` as proof the gates actually work (default yes — the one step this wizard makes hardest to skip), running `doctor`, and pushing. Each declined prompt skips only that step; the install commit itself is never prompt-gated — it just no-ops when there is genuinely nothing to commit.","Never reimplements or edits `init`/`init product`/`demo break`/`doctor` — it only calls their existing, unmodified entry points in sequence."],status:"shipped"}]])},701318,a=>{"use strict";a.s(["CliSidebar",()=>b]);let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call CliSidebar() from the server but CliSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/vinaya/web/src/app/(site)/docs/(standalone)/cli/_components/CliSidebar.tsx <module evaluation>","CliSidebar")},831460,a=>{"use strict";a.s(["CliSidebar",()=>b]);let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call CliSidebar() from the server but CliSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/vinaya/web/src/app/(site)/docs/(standalone)/cli/_components/CliSidebar.tsx","CliSidebar")},572296,a=>{"use strict";a.i(701318);var b=a.i(831460);a.n(b)},834594,a=>{"use strict";var b=a.i(907997);a.i(371381);var c=a.i(48741);a.i(848368);var d=a.i(941667),e=a.i(572296);a.s(["default",0,function({children:a}){return(0,b.jsxs)(d.Flex,{className:"h-full min-h-0 w-full flex-col overflow-hidden lg:flex-row",children:[(0,b.jsx)(e.CliSidebar,{commands:c.COMMANDS}),(0,b.jsx)("main",{className:"flex-1 min-h-0 overflow-y-auto px-6 pb-10 bg-background lg:px-12",children:(0,b.jsx)("div",{className:"mx-auto max-w-4xl pt-10",children:a})})]})}])},276519,a=>{a.n(a.i(834594))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0kqmrho._.js.map
|
package/studio-standalone/apps/vinaya/web/.next/server/chunks/ssr/[root-of-the-server]__1dxaovd._.js
CHANGED
|
@@ -11,7 +11,7 @@ module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback
|
|
|
11
11
|
"include": ["**/*.md"]
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
}`},{key:"checks.run",type:"string",semantics:["The executable path (or bare command on PATH) the runner spawns directly — never through a shell."],example:'{ "run": "./scripts/vinaya-checks/vocab-check.ts" }'},{key:"checks.scope",type:"'diff' | 'full'",semantics:["`diff` checks may be skipped by the runner under `--diff-only` when no changed file matches `include`. `full` checks (coherence, dispatch-readiness) always run — they read live forge state, not the local diff."],example:'{ "scope": "diff" }'},{key:"checks.include",type:"string[] (optional)",semantics:["Glob patterns that scope a `diff`-scoped check to changed files. Scoping only — never a conditional."],example:'{ "include": ["**/*.md", "apps/**/*.ts"] }'},{key:"checks.args",type:"string[] (optional)",semantics:["Extra argv elements passed to `run`, appended after the runner’s own fixed arguments."],example:'{ "args": ["--strict"] }'},{key:"checks.timeoutMs",type:"number (optional)",semantics:["Advisory to the check; the RUNNER enforces the actual deadline (kills the whole process group), never the check itself."],example:'{ "timeoutMs": 30000 }'},{key:"checks.env",type:"Record<string, EnvEntry> (optional)",semantics:["The per-check environment allowlist. A check’s child process receives ONLY a fixed safe baseline (`PATH`, `LANG`, `HOME`, `HTTPS_PROXY`, `HTTP_PROXY`, `NO_PROXY`, `TMPDIR`) plus whatever this declaration explicitly forwards — never the full parent environment.","A check that reads `process.env`/`Bun.env`/`Deno.env` directly with no `env` declared is invisible to the child process; `vinaya doctor` carries the permanent diagnostic for that gap. Four declared forms, below."],example:`{
|
|
14
|
+
}`},{key:"checks.run",type:"string",semantics:["The executable path (or bare command on PATH) the runner spawns directly — never through a shell."],example:'{ "run": "./scripts/vinaya-checks/vocab-check.ts" }'},{key:"checks.scope",type:"'diff' | 'full'",semantics:["`diff` checks may be skipped by the runner under `--diff-only` when no changed file matches `include`. `full` checks (coherence, dispatch-readiness) always run — they read live forge state, not the local diff."],example:'{ "scope": "diff" }'},{key:"checks.include",type:"string[] (optional)",semantics:["Glob patterns that scope a `diff`-scoped check to changed files. Scoping only — never a conditional."],example:'{ "include": ["**/*.md", "apps/**/*.ts"] }'},{key:"checks.args",type:"string[] (optional)",semantics:["Extra argv elements passed to `run`, appended after the runner’s own fixed arguments."],example:'{ "args": ["--strict"] }'},{key:"checks.timeoutMs",type:"number (optional)",semantics:["Advisory to the check; the RUNNER enforces the actual deadline (kills the whole process group), never the check itself."],example:'{ "timeoutMs": 30000 }'},{key:"checks.requiresOpenPr",type:"boolean (optional)",semantics:["Marks a check that can only meaningfully evaluate once a pull request exists — it reads the real PR body/number, not local git state. The generated `pre-commit`/`pre-push` hooks (`vinaya check --all --local`) skip a check declaring this entirely rather than running it against a PR that cannot exist yet; CI (which only ever runs after a PR is open) always runs it for real.","Use for a custom check with the same shape as the core `closes-n`/`test-plan` checks — anything that would otherwise deadlock the first commit on a fresh branch by requiring PR content before a PR can exist."],example:'{ "requiresOpenPr": true }'},{key:"checks.env",type:"Record<string, EnvEntry> (optional)",semantics:["The per-check environment allowlist. A check’s child process receives ONLY a fixed safe baseline (`PATH`, `LANG`, `HOME`, `HTTPS_PROXY`, `HTTP_PROXY`, `NO_PROXY`, `TMPDIR`) plus whatever this declaration explicitly forwards — never the full parent environment.","A check that reads `process.env`/`Bun.env`/`Deno.env` directly with no `env` declared is invisible to the child process; `vinaya doctor` carries the permanent diagnostic for that gap. Four declared forms, below."],example:`{
|
|
15
15
|
"env": {
|
|
16
16
|
"JIRA_TOKEN": { "anyOf": ["JIRA_TOKEN", "JIRA_PAT"] }
|
|
17
17
|
}
|
|
@@ -26,6 +26,6 @@ module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback
|
|
|
26
26
|
"blocks": [],
|
|
27
27
|
"labels": ["tier:1"]
|
|
28
28
|
}
|
|
29
|
-
}`}],d=[{key:"schema",type:"1",semantics:["The envelope version. Additive evolution only — a field is never removed or retyped under the same version number."]},{key:"checks",type:"Record<name, { state, source, env, envAnyOf?, scope }>",semantics:["The fully resolved check registry, keyed by name — every core and config entry, after override/additive resolution."]},{key:"checks.<name>.state",type:"'default' | 'overridden' | 'additive'",semantics:["`default`: shipped with Vinaya, unmodified. `overridden`: a config entry currently claims this (core) id and satisfies its contract. `additive`: a wholly new, namespaced entry."]},{key:"checks.<name>.source",type:"'core' | 'config'",semantics:["Where the resolved spec came from — `registry.ts` (`core`) or `vinaya.config.json` (`config`)."]},{key:"checks.<name>.env",type:"Record<string, 'passthrough' | 'optional' | 'literal' | 'anyOf'>",semantics:['How each declared env var resolves — never the actual value. A security reviewer auditing the plan needs to see "reads the caller’s real token" vs. "sets a fixed string," never the token or string itself.']},{key:"checks.<name>.envAnyOf",type:"Record<string, string[]> (optional)",semantics:["Present only for `anyOf`-labeled env keys — the full member list for that key."]},{key:"checks.<name>.scope",type:"'diff' | 'full'",semantics:["The resolved check’s scope, echoed from its `CheckSpec`."]},{key:"roles",type:"{ available: false, reason: string }",semantics:["An explicit degraded placeholder — role resolution/registration is not implemented yet. Not the shape roles will render once that lands; do not build against this as a stable contract."]},{key:"errors",type:"ResolverFailure[]",semantics:["Every `FAIL_CLOSED` entry (a bare key with no namespace matching no core check) — rendered inline, never dropped. Non-empty `errors` always exits non-zero; `--plan` never swallows a failure to render a clean-looking table."]}];a.i(579421);var e=a.i(264842),f=a.i(511632),g=a.i(154394),h=a.i(928079);a.i(848368);var i=a.i(337737),j=a.i(629525);function k({text:a}){let c=a.split("`");return(0,b.jsx)(j.Text,{as:"p",className:"font-sans text-sm text-muted-foreground",children:c.map((a,c)=>c%2==1?(0,b.jsx)(f.Code,{children:a},`${c}-${a}`):a)})}function l({field:a}){let c=a.key.split(".").length;return(0,b.jsxs)("div",{id:`config-${a.key.replace(/\./g,"-")}`,className:"flex scroll-mt-6 flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(i.Heading,{level:c>=3?4:2===c?3:2,className:"font-serif",children:a.key}),(0,b.jsx)(e.Badge,{variant:"outline",className:"font-mono text-xs font-normal",children:a.type})]}),a.semantics.map((c,d)=>(0,b.jsx)(k,{text:c},`${a.key}-${d}`)),(0,b.jsx)(f.CodeBlock,{className:"my-0",children:a.example}),a.warning&&(0,b.jsx)("div",{className:"rounded-md border border-warning/40 px-4 py-3",children:(0,b.jsx)(k,{text:a.warning})})]})}a.s(["default",0,function(){return(0,b.jsxs)("main",{className:"mx-auto flex max-w-4xl flex-col gap-12 px-8 py-8",children:[(0,b.jsxs)("section",{className:"flex flex-col gap-4",children:[(0,b.jsx)(i.Heading,{level:1,className:"font-serif text-3xl text-foreground sm:text-4xl",children:"Config Reference"}),(0,b.jsxs)(j.Text,{as:"p",className:"font-sans text-muted-foreground",children:["Every key ",(0,b.jsx)(f.Code,{children:"vinaya.config.json"})," accepts, rendered from the one authored registry that documents the schema — never hand-transcribed, and mechanically proven complete against it."]}),(0,b.jsxs)(j.Text,{as:"p",className:"font-sans text-muted-foreground",children:["An adopter starting from nothing can write a working ",(0,b.jsx)(f.Code,{children:"vinaya.config.json"})," from this page alone."]})]}),(0,b.jsx)("section",{className:"flex flex-col gap-10",children:c.map(a=>(0,b.jsx)(l,{field:a},a.key))}),(0,b.jsxs)("section",{className:"flex flex-col gap-6",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)(i.Heading,{level:2,className:"font-serif",children:"vinaya check --plan --json"}),(0,b.jsx)(j.Text,{as:"p",className:"font-sans text-sm text-muted-foreground",children:"The resolved check registry's JSON envelope — what reading the config back out, after override/additive resolution, looks like. This page is its documented home."})]}),(0,b.jsxs)(g.Table,{stickyHeader:!0,className:"min-w-[640px]",children:[(0,b.jsx)(h.TableHeader,{children:(0,b.jsxs)(h.TableRow,{children:[(0,b.jsx)(h.TableHead,{className:"font-semibold text-foreground",children:"Field"}),(0,b.jsx)(h.TableHead,{className:"font-semibold text-foreground",children:"Type"}),(0,b.jsx)(h.TableHead,{className:"font-semibold text-foreground",children:"Meaning"})]})}),(0,b.jsx)(h.TableBody,{children:d.map(a=>(0,b.jsxs)(h.TableRow,{children:[(0,b.jsx)(g.TableCell,{className:"font-mono text-sm text-foreground",children:(0,b.jsx)(e.Badge,{variant:"outline",className:"font-mono text-xs font-normal",children:a.key})}),(0,b.jsx)(g.TableCell,{className:"font-mono text-sm text-muted-foreground",children:a.type}),(0,b.jsx)(g.TableCell,{className:"font-sans text-sm text-muted-foreground",children:a.semantics.join(" ")})]},a.key))})]})]})]})},"metadata",0,{title:"Config Reference · Vinaya",description:"Every vinaya.config.json key, documented by hand — and the vinaya check --plan --json shape."}],873338)},796276,a=>{a.n(a.i(873338))}];
|
|
29
|
+
}`},{key:"principals",type:"string[] (optional, min 1)",semantics:["GitHub logins trusted as THIS repo’s own principals — the only authors whose PR comments count as a review-gate verdict, and the only actors an actor-verified `vinaya/waiver:docs`/`vinaya/waiver:review` label trusts. Overrides the package’s hardcoded default principal (this monorepo’s own maintainer) entirely — a full replacement, not additive.","Repo-local only, same rule as `checks`: a global `~/.vinaya/config.json`’s `principals` key is stripped at load time with a loud stderr warning, never resolved — who is trusted to approve merges must come from the reviewed, committed per-repo file, never a machine-wide personal config.","Without this key, `vinaya`’s hardcoded default principal is the only trusted author — which makes review-gate structurally unpassable on any repo that principal doesn’t personally review. Set this to your own team’s GitHub logins to make the gate passable on your repo.","Read from your repository’s DEFAULT BRANCH via the GitHub API — the value itself never comes from the pull request’s own checkout or local git state, both of which a pull request can rewrite. A PR that edits this field therefore takes effect only once it merges, never for itself. (The API call is addressed using the repository identity the Actions runner provides; that part is not a separate lever, for the reason in the next note.)","⚠️ **This field is only a security control if `main` has branch protection with the Vinaya check marked as a required status check.** Vinaya’s checks run in a `pull_request`-triggered workflow, which GitHub executes from the pull request’s own copy of the workflow file — so a PR can always edit or delete the job that runs them. What a PR cannot do is satisfy a required status check that never reports. Without branch protection, `principals` is a useful team convention, not an enforced boundary. `vinaya init` prints the exact `gh api` command to enable it, and `vinaya doctor` reports when it is missing.","**Set this on your default branch before you need it.** Because the value is read from the default branch, a pull request that introduces `principals` for the first time is still evaluated against vinaya’s built-in default — so its own author cannot yet approve it, and cannot self-waive either (the waiver labels resolve through the same list). Land it with the `vinaya init` install commit, or any push to the default branch, before enabling branch protection. Once it is on the default branch, ordinary review applies: adding a principal thereafter needs an existing principal’s approval, which is the point."],example:'{ "principals": ["alice", "bob"] }'}],d=[{key:"schema",type:"1",semantics:["The envelope version. Additive evolution only — a field is never removed or retyped under the same version number."]},{key:"checks",type:"Record<name, { state, source, env, envAnyOf?, scope }>",semantics:["The fully resolved check registry, keyed by name — every core and config entry, after override/additive resolution."]},{key:"checks.<name>.state",type:"'default' | 'overridden' | 'additive'",semantics:["`default`: shipped with Vinaya, unmodified. `overridden`: a config entry currently claims this (core) id and satisfies its contract. `additive`: a wholly new, namespaced entry."]},{key:"checks.<name>.source",type:"'core' | 'config'",semantics:["Where the resolved spec came from — `registry.ts` (`core`) or `vinaya.config.json` (`config`)."]},{key:"checks.<name>.env",type:"Record<string, 'passthrough' | 'optional' | 'literal' | 'anyOf'>",semantics:['How each declared env var resolves — never the actual value. A security reviewer auditing the plan needs to see "reads the caller’s real token" vs. "sets a fixed string," never the token or string itself.']},{key:"checks.<name>.envAnyOf",type:"Record<string, string[]> (optional)",semantics:["Present only for `anyOf`-labeled env keys — the full member list for that key."]},{key:"checks.<name>.scope",type:"'diff' | 'full'",semantics:["The resolved check’s scope, echoed from its `CheckSpec`."]},{key:"roles",type:"{ available: false, reason: string }",semantics:["An explicit degraded placeholder — role resolution/registration is not implemented yet. Not the shape roles will render once that lands; do not build against this as a stable contract."]},{key:"errors",type:"ResolverFailure[]",semantics:["Every `FAIL_CLOSED` entry (a bare key with no namespace matching no core check) — rendered inline, never dropped. Non-empty `errors` always exits non-zero; `--plan` never swallows a failure to render a clean-looking table."]}];a.i(579421);var e=a.i(264842),f=a.i(511632),g=a.i(154394),h=a.i(928079);a.i(848368);var i=a.i(337737),j=a.i(629525);function k({text:a}){let c=a.split("`");return(0,b.jsx)(j.Text,{as:"p",className:"font-sans text-sm text-muted-foreground",children:c.map((a,c)=>c%2==1?(0,b.jsx)(f.Code,{children:a},`${c}-${a}`):a)})}function l({field:a}){let c=a.key.split(".").length;return(0,b.jsxs)("div",{id:`config-${a.key.replace(/\./g,"-")}`,className:"flex scroll-mt-6 flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(i.Heading,{level:c>=3?4:2===c?3:2,className:"font-serif",children:a.key}),(0,b.jsx)(e.Badge,{variant:"outline",className:"font-mono text-xs font-normal",children:a.type})]}),a.semantics.map((c,d)=>(0,b.jsx)(k,{text:c},`${a.key}-${d}`)),(0,b.jsx)(f.CodeBlock,{className:"my-0",children:a.example}),a.warning&&(0,b.jsx)("div",{className:"rounded-md border border-warning/40 px-4 py-3",children:(0,b.jsx)(k,{text:a.warning})})]})}a.s(["default",0,function(){return(0,b.jsxs)("main",{className:"mx-auto flex max-w-4xl flex-col gap-12 px-8 py-8",children:[(0,b.jsxs)("section",{className:"flex flex-col gap-4",children:[(0,b.jsx)(i.Heading,{level:1,className:"font-serif text-3xl text-foreground sm:text-4xl",children:"Config Reference"}),(0,b.jsxs)(j.Text,{as:"p",className:"font-sans text-muted-foreground",children:["Every key ",(0,b.jsx)(f.Code,{children:"vinaya.config.json"})," accepts, rendered from the one authored registry that documents the schema — never hand-transcribed, and mechanically proven complete against it."]}),(0,b.jsxs)(j.Text,{as:"p",className:"font-sans text-muted-foreground",children:["An adopter starting from nothing can write a working ",(0,b.jsx)(f.Code,{children:"vinaya.config.json"})," from this page alone."]})]}),(0,b.jsx)("section",{className:"flex flex-col gap-10",children:c.map(a=>(0,b.jsx)(l,{field:a},a.key))}),(0,b.jsxs)("section",{className:"flex flex-col gap-6",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)(i.Heading,{level:2,className:"font-serif",children:"vinaya check --plan --json"}),(0,b.jsx)(j.Text,{as:"p",className:"font-sans text-sm text-muted-foreground",children:"The resolved check registry's JSON envelope — what reading the config back out, after override/additive resolution, looks like. This page is its documented home."})]}),(0,b.jsxs)(g.Table,{stickyHeader:!0,className:"min-w-[640px]",children:[(0,b.jsx)(h.TableHeader,{children:(0,b.jsxs)(h.TableRow,{children:[(0,b.jsx)(h.TableHead,{className:"font-semibold text-foreground",children:"Field"}),(0,b.jsx)(h.TableHead,{className:"font-semibold text-foreground",children:"Type"}),(0,b.jsx)(h.TableHead,{className:"font-semibold text-foreground",children:"Meaning"})]})}),(0,b.jsx)(h.TableBody,{children:d.map(a=>(0,b.jsxs)(h.TableRow,{children:[(0,b.jsx)(g.TableCell,{className:"font-mono text-sm text-foreground",children:(0,b.jsx)(e.Badge,{variant:"outline",className:"font-mono text-xs font-normal",children:a.key})}),(0,b.jsx)(g.TableCell,{className:"font-mono text-sm text-muted-foreground",children:a.type}),(0,b.jsx)(g.TableCell,{className:"font-sans text-sm text-muted-foreground",children:a.semantics.join(" ")})]},a.key))})]})]})]})},"metadata",0,{title:"Config Reference · Vinaya",description:"Every vinaya.config.json key, documented by hand — and the vinaya check --plan --json shape."}],873338)},796276,a=>{a.n(a.i(873338))}];
|
|
30
30
|
|
|
31
31
|
//# sourceMappingURL=%5Broot-of-the-server%5D__1dxaovd._.js.map
|
|
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
|
|
|
7
7
|
"static/chunks/0cz1d0mv5g_q7.js"
|
|
8
8
|
],
|
|
9
9
|
"lowPriorityFiles": [
|
|
10
|
-
"static/
|
|
11
|
-
"static/
|
|
12
|
-
"static/
|
|
10
|
+
"static/mSHYKKSLd91iaLw52dYpD/_buildManifest.js",
|
|
11
|
+
"static/mSHYKKSLd91iaLw52dYpD/_ssgManifest.js",
|
|
12
|
+
"static/mSHYKKSLd91iaLw52dYpD/_clientMiddlewareManifest.js"
|
|
13
13
|
],
|
|
14
14
|
"rootMainFiles": [
|
|
15
15
|
"static/chunks/1s47ciqbi3ykk.js",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1s47ciqbi3ykk.js"/><script src="/_next/static/chunks/17_s-1hcy827l.js" async=""></script><script src="/_next/static/chunks/07uwuh0d9u9c1.js" async=""></script><script src="/_next/static/chunks/2ejk_26znfoeu.js" async=""></script><script src="/_next/static/chunks/3nc6x0_y5iwnk.js" async=""></script><script src="/_next/static/chunks/0kyi3zxrrchs3.js" async=""></script><script src="/_next/static/chunks/43n99biq30djg.js" async=""></script><script src="/_next/static/chunks/turbopack-36a4hpt7d5yor.js" async=""></script><script src="/_next/static/chunks/2xi8blr--fs4h.js" async=""></script><script src="/_next/static/chunks/3exokyziuuf9m.js" async=""></script><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1s47ciqbi3ykk.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[339756,[\"/_next/static/chunks/2xi8blr--fs4h.js\",\"/_next/static/chunks/3exokyziuuf9m.js\"],\"default\"]\n3:I[837457,[\"/_next/static/chunks/2xi8blr--fs4h.js\",\"/_next/static/chunks/3exokyziuuf9m.js\"],\"default\"]\n4:I[897367,[\"/_next/static/chunks/2xi8blr--fs4h.js\",\"/_next/static/chunks/3exokyziuuf9m.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[897367,[\"/_next/static/chunks/2xi8blr--fs4h.js\",\"/_next/static/chunks/3exokyziuuf9m.js\"],\"ViewportBoundary\"]\na:I[897367,[\"/_next/static/chunks/2xi8blr--fs4h.js\",\"/_next/static/chunks/3exokyziuuf9m.js\"],\"MetadataBoundary\"]\nc:I[168027,[\"/_next/static/chunks/2xi8blr--fs4h.js\",\"/_next/static/chunks/3exokyziuuf9m.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"
|
|
1
|
+
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1s47ciqbi3ykk.js"/><script src="/_next/static/chunks/17_s-1hcy827l.js" async=""></script><script src="/_next/static/chunks/07uwuh0d9u9c1.js" async=""></script><script src="/_next/static/chunks/2ejk_26znfoeu.js" async=""></script><script src="/_next/static/chunks/3nc6x0_y5iwnk.js" async=""></script><script src="/_next/static/chunks/0kyi3zxrrchs3.js" async=""></script><script src="/_next/static/chunks/43n99biq30djg.js" async=""></script><script src="/_next/static/chunks/turbopack-36a4hpt7d5yor.js" async=""></script><script src="/_next/static/chunks/2xi8blr--fs4h.js" async=""></script><script src="/_next/static/chunks/3exokyziuuf9m.js" async=""></script><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1s47ciqbi3ykk.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[339756,[\"/_next/static/chunks/2xi8blr--fs4h.js\",\"/_next/static/chunks/3exokyziuuf9m.js\"],\"default\"]\n3:I[837457,[\"/_next/static/chunks/2xi8blr--fs4h.js\",\"/_next/static/chunks/3exokyziuuf9m.js\"],\"default\"]\n4:I[897367,[\"/_next/static/chunks/2xi8blr--fs4h.js\",\"/_next/static/chunks/3exokyziuuf9m.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[897367,[\"/_next/static/chunks/2xi8blr--fs4h.js\",\"/_next/static/chunks/3exokyziuuf9m.js\"],\"ViewportBoundary\"]\na:I[897367,[\"/_next/static/chunks/2xi8blr--fs4h.js\",\"/_next/static/chunks/3exokyziuuf9m.js\"],\"MetadataBoundary\"]\nc:I[168027,[\"/_next/static/chunks/2xi8blr--fs4h.js\",\"/_next/static/chunks/3exokyziuuf9m.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"mSHYKKSLd91iaLw52dYpD\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
|
|
File without changes
|
|
File without changes
|