@jitsusama/agentic-harness.core 0.1.0
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 +52 -0
- package/dist/advisor/charter.d.ts +14 -0
- package/dist/advisor/charter.js +48 -0
- package/dist/advisor/findings.d.ts +43 -0
- package/dist/advisor/findings.js +82 -0
- package/dist/advisor/index.d.ts +24 -0
- package/dist/advisor/index.js +23 -0
- package/dist/advisor/settings.d.ts +16 -0
- package/dist/advisor/settings.js +30 -0
- package/dist/advisor/substantive.d.ts +14 -0
- package/dist/advisor/substantive.js +33 -0
- package/dist/advisor/tools.d.ts +38 -0
- package/dist/advisor/tools.js +202 -0
- package/dist/attribution/commit-hook.d.ts +53 -0
- package/dist/attribution/commit-hook.js +133 -0
- package/dist/attribution/gh-footer.d.ts +27 -0
- package/dist/attribution/gh-footer.js +80 -0
- package/dist/attribution/index.d.ts +11 -0
- package/dist/attribution/index.js +11 -0
- package/dist/attribution/model-name.d.ts +11 -0
- package/dist/attribution/model-name.js +26 -0
- package/dist/bin/attribution.d.ts +36 -0
- package/dist/bin/attribution.js +82 -0
- package/dist/bin/cli.d.ts +14 -0
- package/dist/bin/cli.js +236 -0
- package/dist/bin/gate-deps.d.ts +23 -0
- package/dist/bin/gate-deps.js +61 -0
- package/dist/bin/guardians.d.ts +51 -0
- package/dist/bin/guardians.js +174 -0
- package/dist/bin/memory.d.ts +16 -0
- package/dist/bin/memory.js +81 -0
- package/dist/bin/notes.d.ts +30 -0
- package/dist/bin/notes.js +67 -0
- package/dist/bin/process-exec.d.ts +14 -0
- package/dist/bin/process-exec.js +31 -0
- package/dist/bin/quest.d.ts +38 -0
- package/dist/bin/quest.js +187 -0
- package/dist/bin/slack-auth.d.ts +49 -0
- package/dist/bin/slack-auth.js +107 -0
- package/dist/clock/index.d.ts +46 -0
- package/dist/clock/index.js +72 -0
- package/dist/command/cwd.d.ts +21 -0
- package/dist/command/cwd.js +60 -0
- package/dist/command/edit.d.ts +14 -0
- package/dist/command/edit.js +22 -0
- package/dist/command/flags.d.ts +29 -0
- package/dist/command/flags.js +111 -0
- package/dist/command/index.d.ts +16 -0
- package/dist/command/index.js +12 -0
- package/dist/command/tokenize.d.ts +7 -0
- package/dist/command/tokenize.js +315 -0
- package/dist/command/types.d.ts +66 -0
- package/dist/command/types.js +9 -0
- package/dist/completion/index.d.ts +17 -0
- package/dist/completion/index.js +16 -0
- package/dist/completion/investigate.d.ts +63 -0
- package/dist/completion/investigate.js +198 -0
- package/dist/completion/resolve.d.ts +29 -0
- package/dist/completion/resolve.js +42 -0
- package/dist/completion/side.d.ts +51 -0
- package/dist/completion/side.js +93 -0
- package/dist/completion/types.d.ts +84 -0
- package/dist/completion/types.js +14 -0
- package/dist/exec/exec.d.ts +38 -0
- package/dist/exec/exec.js +51 -0
- package/dist/exec/index.d.ts +8 -0
- package/dist/exec/index.js +8 -0
- package/dist/gate/decision.d.ts +52 -0
- package/dist/gate/decision.js +68 -0
- package/dist/gate/deps.d.ts +14 -0
- package/dist/gate/deps.js +1 -0
- package/dist/gate/index.d.ts +2 -0
- package/dist/gate/index.js +1 -0
- package/dist/git-cli/index.d.ts +47 -0
- package/dist/git-cli/index.js +127 -0
- package/dist/github-cli/command-spec.d.ts +14 -0
- package/dist/github-cli/command-spec.js +18 -0
- package/dist/github-cli/index.d.ts +71 -0
- package/dist/github-cli/index.js +188 -0
- package/dist/google/apis/calendar.d.ts +64 -0
- package/dist/google/apis/calendar.js +297 -0
- package/dist/google/apis/docs.d.ts +29 -0
- package/dist/google/apis/docs.js +154 -0
- package/dist/google/apis/drive.d.ts +46 -0
- package/dist/google/apis/drive.js +189 -0
- package/dist/google/apis/gmail.d.ts +67 -0
- package/dist/google/apis/gmail.js +374 -0
- package/dist/google/apis/index.d.ts +10 -0
- package/dist/google/apis/index.js +10 -0
- package/dist/google/apis/sheets.d.ts +16 -0
- package/dist/google/apis/sheets.js +54 -0
- package/dist/google/apis/slides.d.ts +16 -0
- package/dist/google/apis/slides.js +40 -0
- package/dist/google/auth/browser.d.ts +5 -0
- package/dist/google/auth/browser.js +27 -0
- package/dist/google/auth/credentials.d.ts +26 -0
- package/dist/google/auth/credentials.js +69 -0
- package/dist/google/auth/errors.d.ts +15 -0
- package/dist/google/auth/errors.js +26 -0
- package/dist/google/auth/index.d.ts +12 -0
- package/dist/google/auth/index.js +12 -0
- package/dist/google/auth/oauth-app.d.ts +15 -0
- package/dist/google/auth/oauth-app.js +20 -0
- package/dist/google/auth/oauth.d.ts +46 -0
- package/dist/google/auth/oauth.js +146 -0
- package/dist/google/auth/server.d.ts +13 -0
- package/dist/google/auth/server.js +70 -0
- package/dist/google/auth/setup-instructions.d.ts +16 -0
- package/dist/google/auth/setup-instructions.js +24 -0
- package/dist/google/auth/store.d.ts +19 -0
- package/dist/google/auth/store.js +27 -0
- package/dist/google/index.d.ts +13 -0
- package/dist/google/index.js +12 -0
- package/dist/google/paths.d.ts +17 -0
- package/dist/google/paths.js +28 -0
- package/dist/google/renderers/calendar.d.ts +23 -0
- package/dist/google/renderers/calendar.js +312 -0
- package/dist/google/renderers/drive.d.ts +31 -0
- package/dist/google/renderers/drive.js +214 -0
- package/dist/google/renderers/email.d.ts +16 -0
- package/dist/google/renderers/email.js +130 -0
- package/dist/google/renderers/index.d.ts +8 -0
- package/dist/google/renderers/index.js +8 -0
- package/dist/google/types.d.ts +143 -0
- package/dist/google/types.js +27 -0
- package/dist/governance/distill.d.ts +31 -0
- package/dist/governance/distill.js +78 -0
- package/dist/governance/index.d.ts +11 -0
- package/dist/governance/index.js +10 -0
- package/dist/governance/render.d.ts +13 -0
- package/dist/governance/render.js +23 -0
- package/dist/governance/store.d.ts +32 -0
- package/dist/governance/store.js +102 -0
- package/dist/governance/types.d.ts +19 -0
- package/dist/governance/types.js +9 -0
- package/dist/guardian/index.d.ts +7 -0
- package/dist/guardian/index.js +7 -0
- package/dist/guardian/types.d.ts +37 -0
- package/dist/guardian/types.js +12 -0
- package/dist/internal/github/cli.d.ts +40 -0
- package/dist/internal/github/cli.js +102 -0
- package/dist/internal/guardian/commit-file.d.ts +7 -0
- package/dist/internal/guardian/commit-file.js +36 -0
- package/dist/internal/guardian/commit-format.d.ts +35 -0
- package/dist/internal/guardian/commit-format.js +63 -0
- package/dist/internal/guardian/commit-shell.d.ts +38 -0
- package/dist/internal/guardian/commit-shell.js +134 -0
- package/dist/internal/guardian/history-gate.d.ts +41 -0
- package/dist/internal/guardian/history-gate.js +76 -0
- package/dist/internal/guardian/prose-gate.d.ts +31 -0
- package/dist/internal/guardian/prose-gate.js +50 -0
- package/dist/internal/guardian/redirect-gate.d.ts +41 -0
- package/dist/internal/guardian/redirect-gate.js +114 -0
- package/dist/internal/guardian/section-gate.d.ts +20 -0
- package/dist/internal/guardian/section-gate.js +36 -0
- package/dist/internal/guardian/title-gate.d.ts +20 -0
- package/dist/internal/guardian/title-gate.js +36 -0
- package/dist/internal/json-array.d.ts +11 -0
- package/dist/internal/json-array.js +40 -0
- package/dist/internal/lsp/registry.d.ts +12 -0
- package/dist/internal/lsp/registry.js +16 -0
- package/dist/internal/notes/discovery.d.ts +59 -0
- package/dist/internal/notes/discovery.js +91 -0
- package/dist/internal/notes/frontmatter.d.ts +52 -0
- package/dist/internal/notes/frontmatter.js +163 -0
- package/dist/internal/notes/id.d.ts +42 -0
- package/dist/internal/notes/id.js +80 -0
- package/dist/internal/notes/io.d.ts +25 -0
- package/dist/internal/notes/io.js +51 -0
- package/dist/internal/notes/sanitize.d.ts +19 -0
- package/dist/internal/notes/sanitize.js +35 -0
- package/dist/internal/process-global.d.ts +20 -0
- package/dist/internal/process-global.js +28 -0
- package/dist/internal/quest/alias-index.d.ts +61 -0
- package/dist/internal/quest/alias-index.js +69 -0
- package/dist/internal/quest/append-journey.d.ts +22 -0
- package/dist/internal/quest/append-journey.js +63 -0
- package/dist/internal/quest/bash-write.d.ts +49 -0
- package/dist/internal/quest/bash-write.js +208 -0
- package/dist/internal/quest/dates.d.ts +14 -0
- package/dist/internal/quest/dates.js +20 -0
- package/dist/internal/quest/discovery.d.ts +96 -0
- package/dist/internal/quest/discovery.js +354 -0
- package/dist/internal/quest/fields.d.ts +37 -0
- package/dist/internal/quest/fields.js +94 -0
- package/dist/internal/quest/frontmatter.d.ts +88 -0
- package/dist/internal/quest/frontmatter.js +630 -0
- package/dist/internal/quest/git-signals.d.ts +53 -0
- package/dist/internal/quest/git-signals.js +192 -0
- package/dist/internal/quest/id.d.ts +50 -0
- package/dist/internal/quest/id.js +116 -0
- package/dist/internal/quest/io.d.ts +54 -0
- package/dist/internal/quest/io.js +233 -0
- package/dist/internal/quest/mentions.d.ts +45 -0
- package/dist/internal/quest/mentions.js +70 -0
- package/dist/internal/quest/mutate.d.ts +38 -0
- package/dist/internal/quest/mutate.js +83 -0
- package/dist/internal/quest/process-liveness.d.ts +98 -0
- package/dist/internal/quest/process-liveness.js +216 -0
- package/dist/internal/quest/quest-doc.d.ts +116 -0
- package/dist/internal/quest/quest-doc.js +239 -0
- package/dist/internal/quest/ranking.d.ts +48 -0
- package/dist/internal/quest/ranking.js +114 -0
- package/dist/internal/quest/reopen.d.ts +65 -0
- package/dist/internal/quest/reopen.js +113 -0
- package/dist/internal/quest/resolve-cwd.d.ts +32 -0
- package/dist/internal/quest/resolve-cwd.js +89 -0
- package/dist/internal/quest/sanitize.d.ts +42 -0
- package/dist/internal/quest/sanitize.js +69 -0
- package/dist/internal/quest/scaffold.d.ts +59 -0
- package/dist/internal/quest/scaffold.js +169 -0
- package/dist/internal/quest/scratch.d.ts +27 -0
- package/dist/internal/quest/scratch.js +106 -0
- package/dist/internal/quest/session-liveness.d.ts +125 -0
- package/dist/internal/quest/session-liveness.js +386 -0
- package/dist/internal/quest/session-ownership.d.ts +22 -0
- package/dist/internal/quest/session-ownership.js +100 -0
- package/dist/internal/quest/session-registry.d.ts +221 -0
- package/dist/internal/quest/session-registry.js +266 -0
- package/dist/internal/quest/status.d.ts +10 -0
- package/dist/internal/quest/status.js +15 -0
- package/dist/internal/quest/structural-journal.d.ts +41 -0
- package/dist/internal/quest/structural-journal.js +67 -0
- package/dist/internal/quest/structural.d.ts +43 -0
- package/dist/internal/quest/structural.js +77 -0
- package/dist/internal/quest/toc.d.ts +28 -0
- package/dist/internal/quest/toc.js +90 -0
- package/dist/internal/quest/trees.d.ts +53 -0
- package/dist/internal/quest/trees.js +145 -0
- package/dist/internal/quest/url-fetchers.d.ts +50 -0
- package/dist/internal/quest/url-fetchers.js +97 -0
- package/dist/internal/quest/write-classifier.d.ts +46 -0
- package/dist/internal/quest/write-classifier.js +59 -0
- package/dist/internal/refs/builtins.d.ts +32 -0
- package/dist/internal/refs/builtins.js +179 -0
- package/dist/internal/refs/registry.d.ts +25 -0
- package/dist/internal/refs/registry.js +42 -0
- package/dist/internal/registry/global-symbol-registry.d.ts +37 -0
- package/dist/internal/registry/global-symbol-registry.js +55 -0
- package/dist/internal/review/registry.d.ts +12 -0
- package/dist/internal/review/registry.js +16 -0
- package/dist/internal/sqlite/db.d.ts +16 -0
- package/dist/internal/sqlite/db.js +26 -0
- package/dist/internal/terminal/builtins.d.ts +8 -0
- package/dist/internal/terminal/builtins.js +14 -0
- package/dist/internal/terminal/drivers/fallback.d.ts +8 -0
- package/dist/internal/terminal/drivers/fallback.js +31 -0
- package/dist/internal/terminal/drivers/shared.d.ts +39 -0
- package/dist/internal/terminal/drivers/shared.js +51 -0
- package/dist/internal/terminal/drivers/tmux.d.ts +14 -0
- package/dist/internal/terminal/drivers/tmux.js +88 -0
- package/dist/internal/terminal/drivers/wezterm.d.ts +35 -0
- package/dist/internal/terminal/drivers/wezterm.js +175 -0
- package/dist/internal/terminal/registry.d.ts +12 -0
- package/dist/internal/terminal/registry.js +16 -0
- package/dist/internal/tree/builtins.d.ts +8 -0
- package/dist/internal/tree/builtins.js +10 -0
- package/dist/internal/tree/providers/git-worktree.d.ts +20 -0
- package/dist/internal/tree/providers/git-worktree.js +279 -0
- package/dist/internal/tree/registry.d.ts +12 -0
- package/dist/internal/tree/registry.js +16 -0
- package/dist/lsp/config.d.ts +77 -0
- package/dist/lsp/config.js +154 -0
- package/dist/lsp/external.d.ts +13 -0
- package/dist/lsp/external.js +52 -0
- package/dist/lsp/format.d.ts +11 -0
- package/dist/lsp/format.js +54 -0
- package/dist/lsp/index.d.ts +17 -0
- package/dist/lsp/index.js +16 -0
- package/dist/lsp/offsets.d.ts +22 -0
- package/dist/lsp/offsets.js +51 -0
- package/dist/lsp/registry.d.ts +28 -0
- package/dist/lsp/registry.js +45 -0
- package/dist/lsp/standalone/backend.d.ts +42 -0
- package/dist/lsp/standalone/backend.js +150 -0
- package/dist/lsp/standalone/document.d.ts +45 -0
- package/dist/lsp/standalone/document.js +81 -0
- package/dist/lsp/standalone/server.d.ts +84 -0
- package/dist/lsp/standalone/server.js +521 -0
- package/dist/lsp/types.d.ts +119 -0
- package/dist/lsp/types.js +13 -0
- package/dist/memory/db.d.ts +15 -0
- package/dist/memory/db.js +25 -0
- package/dist/memory/index.d.ts +12 -0
- package/dist/memory/index.js +11 -0
- package/dist/memory/paths.d.ts +19 -0
- package/dist/memory/paths.js +33 -0
- package/dist/memory/scope.d.ts +14 -0
- package/dist/memory/scope.js +22 -0
- package/dist/memory/store.d.ts +12 -0
- package/dist/memory/store.js +146 -0
- package/dist/memory/types.d.ts +80 -0
- package/dist/memory/types.js +6 -0
- package/dist/notes/types.d.ts +50 -0
- package/dist/notes/types.js +23 -0
- package/dist/notes/verbs/create.d.ts +5 -0
- package/dist/notes/verbs/create.js +55 -0
- package/dist/notes/verbs/mutate.d.ts +8 -0
- package/dist/notes/verbs/mutate.js +152 -0
- package/dist/notes/verbs/queries.d.ts +15 -0
- package/dist/notes/verbs/queries.js +116 -0
- package/dist/notes/verbs/reindex.d.ts +12 -0
- package/dist/notes/verbs/reindex.js +35 -0
- package/dist/notes/verbs/shared.d.ts +37 -0
- package/dist/notes/verbs/shared.js +29 -0
- package/dist/observability/index.d.ts +13 -0
- package/dist/observability/index.js +12 -0
- package/dist/observability/recorder.d.ts +50 -0
- package/dist/observability/recorder.js +77 -0
- package/dist/observability/store.d.ts +22 -0
- package/dist/observability/store.js +213 -0
- package/dist/observability/types.d.ts +82 -0
- package/dist/observability/types.js +1 -0
- package/dist/process/index.d.ts +9 -0
- package/dist/process/index.js +9 -0
- package/dist/process/process.d.ts +95 -0
- package/dist/process/process.js +153 -0
- package/dist/prose/block.d.ts +9 -0
- package/dist/prose/block.js +43 -0
- package/dist/prose/detect.d.ts +50 -0
- package/dist/prose/detect.js +217 -0
- package/dist/prose/gate.d.ts +14 -0
- package/dist/prose/gate.js +21 -0
- package/dist/prose/index.d.ts +4 -0
- package/dist/prose/index.js +4 -0
- package/dist/prose/wrap.d.ts +9 -0
- package/dist/prose/wrap.js +47 -0
- package/dist/quest/actions.d.ts +20 -0
- package/dist/quest/actions.js +107 -0
- package/dist/quest/config.d.ts +79 -0
- package/dist/quest/config.js +83 -0
- package/dist/quest/index.d.ts +29 -0
- package/dist/quest/index.js +28 -0
- package/dist/quest/lifecycle.d.ts +365 -0
- package/dist/quest/lifecycle.js +900 -0
- package/dist/quest/lookup.d.ts +243 -0
- package/dist/quest/lookup.js +496 -0
- package/dist/quest/machine.d.ts +48 -0
- package/dist/quest/machine.js +96 -0
- package/dist/quest/render-rows.d.ts +166 -0
- package/dist/quest/render-rows.js +214 -0
- package/dist/quest/state.d.ts +111 -0
- package/dist/quest/state.js +46 -0
- package/dist/quest/types.d.ts +224 -0
- package/dist/quest/types.js +10 -0
- package/dist/quest/verbs/alias.d.ts +9 -0
- package/dist/quest/verbs/alias.js +129 -0
- package/dist/quest/verbs/lifecycle.d.ts +36 -0
- package/dist/quest/verbs/lifecycle.js +407 -0
- package/dist/quest/verbs/queries.d.ts +24 -0
- package/dist/quest/verbs/queries.js +241 -0
- package/dist/quest/verbs/reorder.d.ts +15 -0
- package/dist/quest/verbs/reorder.js +85 -0
- package/dist/quest/verbs/shared.d.ts +63 -0
- package/dist/quest/verbs/shared.js +35 -0
- package/dist/quest/verbs/stage.d.ts +39 -0
- package/dist/quest/verbs/stage.js +506 -0
- package/dist/quest/verbs/structural.d.ts +23 -0
- package/dist/quest/verbs/structural.js +310 -0
- package/dist/quest/verbs/tree-ops.d.ts +20 -0
- package/dist/quest/verbs/tree-ops.js +289 -0
- package/dist/refs/index.d.ts +13 -0
- package/dist/refs/index.js +12 -0
- package/dist/refs/lookup.d.ts +53 -0
- package/dist/refs/lookup.js +102 -0
- package/dist/refs/register.d.ts +34 -0
- package/dist/refs/register.js +44 -0
- package/dist/refs/types.d.ts +81 -0
- package/dist/refs/types.js +17 -0
- package/dist/remote/index.d.ts +9 -0
- package/dist/remote/index.js +9 -0
- package/dist/remote/name.d.ts +22 -0
- package/dist/remote/name.js +30 -0
- package/dist/result/cite.d.ts +84 -0
- package/dist/result/cite.js +127 -0
- package/dist/result/counts.d.ts +15 -0
- package/dist/result/counts.js +17 -0
- package/dist/result/details.d.ts +61 -0
- package/dist/result/details.js +121 -0
- package/dist/result/digest.d.ts +37 -0
- package/dist/result/digest.js +227 -0
- package/dist/result/follow.d.ts +29 -0
- package/dist/result/follow.js +37 -0
- package/dist/result/index.d.ts +26 -0
- package/dist/result/index.js +26 -0
- package/dist/result/listing.d.ts +62 -0
- package/dist/result/listing.js +72 -0
- package/dist/result/location.d.ts +67 -0
- package/dist/result/location.js +125 -0
- package/dist/result/query.d.ts +67 -0
- package/dist/result/query.js +144 -0
- package/dist/result/spill.d.ts +41 -0
- package/dist/result/spill.js +121 -0
- package/dist/result/store.d.ts +83 -0
- package/dist/result/store.js +214 -0
- package/dist/result/view.d.ts +31 -0
- package/dist/result/view.js +38 -0
- package/dist/review/anchor.d.ts +84 -0
- package/dist/review/anchor.js +89 -0
- package/dist/review/ask/agents.d.ts +80 -0
- package/dist/review/ask/agents.js +296 -0
- package/dist/review/ask/anchorable.d.ts +35 -0
- package/dist/review/ask/anchorable.js +76 -0
- package/dist/review/ask/answer.d.ts +54 -0
- package/dist/review/ask/answer.js +209 -0
- package/dist/review/ask/audit.d.ts +71 -0
- package/dist/review/ask/audit.js +158 -0
- package/dist/review/ask/collect.d.ts +41 -0
- package/dist/review/ask/collect.js +82 -0
- package/dist/review/ask/council.d.ts +290 -0
- package/dist/review/ask/council.js +386 -0
- package/dist/review/ask/critique.d.ts +69 -0
- package/dist/review/ask/critique.js +157 -0
- package/dist/review/ask/harvest.d.ts +119 -0
- package/dist/review/ask/harvest.js +409 -0
- package/dist/review/ask/identity.d.ts +93 -0
- package/dist/review/ask/identity.js +134 -0
- package/dist/review/ask/judge.d.ts +37 -0
- package/dist/review/ask/judge.js +140 -0
- package/dist/review/ask/persona.d.ts +84 -0
- package/dist/review/ask/persona.js +127 -0
- package/dist/review/ask/progress.d.ts +117 -0
- package/dist/review/ask/progress.js +137 -0
- package/dist/review/ask/prompt.d.ts +131 -0
- package/dist/review/ask/prompt.js +242 -0
- package/dist/review/ask/roster.d.ts +94 -0
- package/dist/review/ask/roster.js +338 -0
- package/dist/review/ask/run.d.ts +435 -0
- package/dist/review/ask/run.js +340 -0
- package/dist/review/ask/span.d.ts +70 -0
- package/dist/review/ask/span.js +166 -0
- package/dist/review/ask/stack-round.d.ts +66 -0
- package/dist/review/ask/stack-round.js +125 -0
- package/dist/review/ask/start.d.ts +48 -0
- package/dist/review/ask/start.js +118 -0
- package/dist/review/ask/store.d.ts +83 -0
- package/dist/review/ask/store.js +226 -0
- package/dist/review/ask/wire.d.ts +89 -0
- package/dist/review/ask/wire.js +204 -0
- package/dist/review/attach.d.ts +161 -0
- package/dist/review/attach.js +357 -0
- package/dist/review/authoring.d.ts +84 -0
- package/dist/review/authoring.js +203 -0
- package/dist/review/backed.d.ts +90 -0
- package/dist/review/backed.js +168 -0
- package/dist/review/bind.d.ts +75 -0
- package/dist/review/bind.js +223 -0
- package/dist/review/budget.d.ts +133 -0
- package/dist/review/budget.js +278 -0
- package/dist/review/capabilities.d.ts +217 -0
- package/dist/review/capabilities.js +46 -0
- package/dist/review/change.d.ts +155 -0
- package/dist/review/change.js +15 -0
- package/dist/review/checks.d.ts +56 -0
- package/dist/review/checks.js +11 -0
- package/dist/review/config.d.ts +71 -0
- package/dist/review/config.js +125 -0
- package/dist/review/conventions.d.ts +35 -0
- package/dist/review/conventions.js +58 -0
- package/dist/review/conversation.d.ts +98 -0
- package/dist/review/conversation.js +16 -0
- package/dist/review/decided.d.ts +58 -0
- package/dist/review/decided.js +67 -0
- package/dist/review/diff.d.ts +116 -0
- package/dist/review/diff.js +237 -0
- package/dist/review/draft/continuation.d.ts +23 -0
- package/dist/review/draft/continuation.js +32 -0
- package/dist/review/draft/fanout.d.ts +57 -0
- package/dist/review/draft/fanout.js +46 -0
- package/dist/review/draft/handle.d.ts +55 -0
- package/dist/review/draft/handle.js +110 -0
- package/dist/review/draft/plan.d.ts +112 -0
- package/dist/review/draft/plan.js +343 -0
- package/dist/review/draft/publish.d.ts +38 -0
- package/dist/review/draft/publish.js +118 -0
- package/dist/review/draft/render.d.ts +32 -0
- package/dist/review/draft/render.js +100 -0
- package/dist/review/draft/state.d.ts +98 -0
- package/dist/review/draft/state.js +83 -0
- package/dist/review/draft/store.d.ts +33 -0
- package/dist/review/draft/store.js +100 -0
- package/dist/review/elsewhere.d.ts +27 -0
- package/dist/review/elsewhere.js +39 -0
- package/dist/review/engine.d.ts +106 -0
- package/dist/review/engine.js +243 -0
- package/dist/review/events.d.ts +59 -0
- package/dist/review/events.js +35 -0
- package/dist/review/failed.d.ts +46 -0
- package/dist/review/failed.js +56 -0
- package/dist/review/finding.d.ts +81 -0
- package/dist/review/finding.js +85 -0
- package/dist/review/fix.d.ts +147 -0
- package/dist/review/fix.js +175 -0
- package/dist/review/followup.d.ts +84 -0
- package/dist/review/followup.js +123 -0
- package/dist/review/index.d.ts +134 -0
- package/dist/review/index.js +80 -0
- package/dist/review/keys.d.ts +23 -0
- package/dist/review/keys.js +40 -0
- package/dist/review/landing.d.ts +37 -0
- package/dist/review/landing.js +68 -0
- package/dist/review/lenses.d.ts +132 -0
- package/dist/review/lenses.js +430 -0
- package/dist/review/propose-from.d.ts +76 -0
- package/dist/review/propose-from.js +86 -0
- package/dist/review/provider.d.ts +306 -0
- package/dist/review/provider.js +16 -0
- package/dist/review/providers/git/index.d.ts +23 -0
- package/dist/review/providers/git/index.js +214 -0
- package/dist/review/providers/github/authoring.d.ts +22 -0
- package/dist/review/providers/github/authoring.js +350 -0
- package/dist/review/providers/github/claims.d.ts +49 -0
- package/dist/review/providers/github/claims.js +136 -0
- package/dist/review/providers/github/conversation.d.ts +18 -0
- package/dist/review/providers/github/conversation.js +455 -0
- package/dist/review/providers/github/fields.d.ts +30 -0
- package/dist/review/providers/github/fields.js +47 -0
- package/dist/review/providers/github/index.d.ts +15 -0
- package/dist/review/providers/github/index.js +110 -0
- package/dist/review/providers/github/proposals.d.ts +14 -0
- package/dist/review/providers/github/proposals.js +298 -0
- package/dist/review/providers/github/queue.d.ts +46 -0
- package/dist/review/providers/github/queue.js +122 -0
- package/dist/review/providers/github/stacking.d.ts +20 -0
- package/dist/review/providers/github/stacking.js +107 -0
- package/dist/review/queue.d.ts +43 -0
- package/dist/review/queue.js +56 -0
- package/dist/review/reactable.d.ts +93 -0
- package/dist/review/reactable.js +140 -0
- package/dist/review/register.d.ts +52 -0
- package/dist/review/register.js +53 -0
- package/dist/review/resolve.d.ts +58 -0
- package/dist/review/resolve.js +150 -0
- package/dist/review/retarget.d.ts +73 -0
- package/dist/review/retarget.js +82 -0
- package/dist/review/revisited.d.ts +77 -0
- package/dist/review/revisited.js +121 -0
- package/dist/review/stack.d.ts +110 -0
- package/dist/review/stack.js +52 -0
- package/dist/sections/block.d.ts +9 -0
- package/dist/sections/block.js +42 -0
- package/dist/sections/detect.d.ts +31 -0
- package/dist/sections/detect.js +67 -0
- package/dist/sections/gate.d.ts +21 -0
- package/dist/sections/gate.js +22 -0
- package/dist/sections/index.d.ts +5 -0
- package/dist/sections/index.js +5 -0
- package/dist/sections/sanctioned.d.ts +13 -0
- package/dist/sections/sanctioned.js +21 -0
- package/dist/shell/index.d.ts +8 -0
- package/dist/shell/index.js +8 -0
- package/dist/shell/parse.d.ts +125 -0
- package/dist/shell/parse.js +298 -0
- package/dist/slack/api/channels.d.ts +12 -0
- package/dist/slack/api/channels.js +28 -0
- package/dist/slack/api/client.d.ts +94 -0
- package/dist/slack/api/client.js +272 -0
- package/dist/slack/api/files.d.ts +95 -0
- package/dist/slack/api/files.js +223 -0
- package/dist/slack/api/index.d.ts +11 -0
- package/dist/slack/api/index.js +11 -0
- package/dist/slack/api/messages.d.ts +98 -0
- package/dist/slack/api/messages.js +292 -0
- package/dist/slack/api/reactions.d.ts +47 -0
- package/dist/slack/api/reactions.js +50 -0
- package/dist/slack/api/resolve-conversations.d.ts +43 -0
- package/dist/slack/api/resolve-conversations.js +130 -0
- package/dist/slack/api/resolve-messages.d.ts +29 -0
- package/dist/slack/api/resolve-messages.js +93 -0
- package/dist/slack/api/resolve-users.d.ts +27 -0
- package/dist/slack/api/resolve-users.js +73 -0
- package/dist/slack/api/search.d.ts +86 -0
- package/dist/slack/api/search.js +186 -0
- package/dist/slack/api/users.d.ts +12 -0
- package/dist/slack/api/users.js +33 -0
- package/dist/slack/auth/browser-extract.d.ts +33 -0
- package/dist/slack/auth/browser-extract.js +201 -0
- package/dist/slack/auth/browser.d.ts +5 -0
- package/dist/slack/auth/browser.js +25 -0
- package/dist/slack/auth/credentials.d.ts +14 -0
- package/dist/slack/auth/credentials.js +24 -0
- package/dist/slack/auth/errors.d.ts +9 -0
- package/dist/slack/auth/errors.js +19 -0
- package/dist/slack/auth/extract.d.ts +23 -0
- package/dist/slack/auth/extract.js +44 -0
- package/dist/slack/auth/index.d.ts +12 -0
- package/dist/slack/auth/index.js +11 -0
- package/dist/slack/auth/oauth-app.d.ts +11 -0
- package/dist/slack/auth/oauth-app.js +20 -0
- package/dist/slack/auth/oauth.d.ts +31 -0
- package/dist/slack/auth/oauth.js +82 -0
- package/dist/slack/auth/server.d.ts +14 -0
- package/dist/slack/auth/server.js +75 -0
- package/dist/slack/auth/store.d.ts +17 -0
- package/dist/slack/auth/store.js +27 -0
- package/dist/slack/block-message.d.ts +9 -0
- package/dist/slack/block-message.js +30 -0
- package/dist/slack/blocks.d.ts +94 -0
- package/dist/slack/blocks.js +765 -0
- package/dist/slack/content-gate.d.ts +12 -0
- package/dist/slack/content-gate.js +22 -0
- package/dist/slack/detect.d.ts +31 -0
- package/dist/slack/detect.js +125 -0
- package/dist/slack/index.d.ts +18 -0
- package/dist/slack/index.js +17 -0
- package/dist/slack/paths.d.ts +28 -0
- package/dist/slack/paths.js +46 -0
- package/dist/slack/renderers/channel.d.ts +6 -0
- package/dist/slack/renderers/channel.js +27 -0
- package/dist/slack/renderers/index.d.ts +9 -0
- package/dist/slack/renderers/index.js +9 -0
- package/dist/slack/renderers/message.d.ts +21 -0
- package/dist/slack/renderers/message.js +214 -0
- package/dist/slack/renderers/reactions.d.ts +8 -0
- package/dist/slack/renderers/reactions.js +43 -0
- package/dist/slack/renderers/search.d.ts +6 -0
- package/dist/slack/renderers/search.js +39 -0
- package/dist/slack/renderers/user.d.ts +6 -0
- package/dist/slack/renderers/user.js +32 -0
- package/dist/slack/resolvers/cache.d.ts +29 -0
- package/dist/slack/resolvers/cache.js +70 -0
- package/dist/slack/resolvers/conversation-cache.d.ts +42 -0
- package/dist/slack/resolvers/conversation-cache.js +128 -0
- package/dist/slack/resolvers/conversation.d.ts +44 -0
- package/dist/slack/resolvers/conversation.js +229 -0
- package/dist/slack/resolvers/index.d.ts +8 -0
- package/dist/slack/resolvers/index.js +8 -0
- package/dist/slack/resolvers/target.d.ts +19 -0
- package/dist/slack/resolvers/target.js +45 -0
- package/dist/slack/resolvers/url.d.ts +20 -0
- package/dist/slack/resolvers/url.js +22 -0
- package/dist/slack/resolvers/user.d.ts +54 -0
- package/dist/slack/resolvers/user.js +134 -0
- package/dist/slack/types.d.ts +180 -0
- package/dist/slack/types.js +13 -0
- package/dist/tdd/attest.d.ts +21 -0
- package/dist/tdd/attest.js +21 -0
- package/dist/tdd/discipline.d.ts +11 -0
- package/dist/tdd/discipline.js +28 -0
- package/dist/tdd/index.d.ts +14 -0
- package/dist/tdd/index.js +13 -0
- package/dist/tdd/machine.d.ts +48 -0
- package/dist/tdd/machine.js +139 -0
- package/dist/tdd/presentation.d.ts +34 -0
- package/dist/tdd/presentation.js +38 -0
- package/dist/tdd/queries.d.ts +10 -0
- package/dist/tdd/queries.js +22 -0
- package/dist/terminal/index.d.ts +12 -0
- package/dist/terminal/index.js +11 -0
- package/dist/terminal/register.d.ts +21 -0
- package/dist/terminal/register.js +31 -0
- package/dist/terminal/resolve.d.ts +63 -0
- package/dist/terminal/resolve.js +117 -0
- package/dist/terminal/types.d.ts +134 -0
- package/dist/terminal/types.js +19 -0
- package/dist/thinking/index.d.ts +20 -0
- package/dist/thinking/index.js +27 -0
- package/dist/title/block.d.ts +9 -0
- package/dist/title/block.js +32 -0
- package/dist/title/detect.d.ts +25 -0
- package/dist/title/detect.js +154 -0
- package/dist/title/gate.d.ts +19 -0
- package/dist/title/gate.js +21 -0
- package/dist/title/index.d.ts +3 -0
- package/dist/title/index.js +3 -0
- package/dist/tree/index.d.ts +18 -0
- package/dist/tree/index.js +17 -0
- package/dist/tree/register.d.ts +21 -0
- package/dist/tree/register.js +31 -0
- package/dist/tree/resolve.d.ts +20 -0
- package/dist/tree/resolve.js +31 -0
- package/dist/tree/types.d.ts +83 -0
- package/dist/tree/types.js +12 -0
- package/dist/ui/count.d.ts +29 -0
- package/dist/ui/count.js +35 -0
- package/dist/ui/path.d.ts +25 -0
- package/dist/ui/path.js +40 -0
- package/dist/verify/index.d.ts +17 -0
- package/dist/verify/index.js +14 -0
- package/dist/verify/project.d.ts +21 -0
- package/dist/verify/project.js +49 -0
- package/dist/verify/resolve.d.ts +26 -0
- package/dist/verify/resolve.js +27 -0
- package/dist/verify/run.d.ts +31 -0
- package/dist/verify/run.js +145 -0
- package/dist/web/a11y/announcements.d.ts +67 -0
- package/dist/web/a11y/announcements.js +116 -0
- package/dist/web/a11y/budget.d.ts +75 -0
- package/dist/web/a11y/budget.js +97 -0
- package/dist/web/a11y/focus.d.ts +37 -0
- package/dist/web/a11y/focus.js +106 -0
- package/dist/web/a11y/index.d.ts +19 -0
- package/dist/web/a11y/index.js +25 -0
- package/dist/web/a11y/naming.d.ts +23 -0
- package/dist/web/a11y/naming.js +55 -0
- package/dist/web/a11y/outline.d.ts +23 -0
- package/dist/web/a11y/outline.js +42 -0
- package/dist/web/a11y/reading.d.ts +12 -0
- package/dist/web/a11y/reading.js +101 -0
- package/dist/web/a11y/scope.d.ts +23 -0
- package/dist/web/a11y/scope.js +99 -0
- package/dist/web/a11y/states.d.ts +22 -0
- package/dist/web/a11y/states.js +53 -0
- package/dist/web/a11y/tree.d.ts +124 -0
- package/dist/web/a11y/tree.js +269 -0
- package/dist/web/a11y/walk.d.ts +225 -0
- package/dist/web/a11y/walk.js +568 -0
- package/dist/web/a11y/walkprobe.d.ts +44 -0
- package/dist/web/a11y/walkprobe.js +365 -0
- package/dist/web/audit/axe.d.ts +219 -0
- package/dist/web/audit/axe.js +322 -0
- package/dist/web/audit/behind.d.ts +63 -0
- package/dist/web/audit/behind.js +142 -0
- package/dist/web/audit/capture.d.ts +43 -0
- package/dist/web/audit/capture.js +185 -0
- package/dist/web/audit/colour.d.ts +85 -0
- package/dist/web/audit/colour.js +189 -0
- package/dist/web/audit/contrast.d.ts +74 -0
- package/dist/web/audit/contrast.js +104 -0
- package/dist/web/audit/health.d.ts +27 -0
- package/dist/web/audit/health.js +57 -0
- package/dist/web/audit/index.d.ts +22 -0
- package/dist/web/audit/index.js +22 -0
- package/dist/web/audit/pair.d.ts +55 -0
- package/dist/web/audit/pair.js +157 -0
- package/dist/web/audit/probe.d.ts +31 -0
- package/dist/web/audit/probe.js +189 -0
- package/dist/web/audit/report.d.ts +22 -0
- package/dist/web/audit/report.js +250 -0
- package/dist/web/audit/structure.d.ts +126 -0
- package/dist/web/audit/structure.js +595 -0
- package/dist/web/audit/sweep.d.ts +66 -0
- package/dist/web/audit/sweep.js +117 -0
- package/dist/web/audit/target.d.ts +89 -0
- package/dist/web/audit/target.js +168 -0
- package/dist/web/audit/verdict.d.ts +48 -0
- package/dist/web/audit/verdict.js +52 -0
- package/dist/web/audit/visual.d.ts +161 -0
- package/dist/web/audit/visual.js +297 -0
- package/dist/web/browser.d.ts +213 -0
- package/dist/web/browser.js +927 -0
- package/dist/web/compare/images.d.ts +45 -0
- package/dist/web/compare/images.js +101 -0
- package/dist/web/compare/index.d.ts +15 -0
- package/dist/web/compare/index.js +15 -0
- package/dist/web/compare/provenance.d.ts +48 -0
- package/dist/web/compare/provenance.js +86 -0
- package/dist/web/compare/regions.d.ts +78 -0
- package/dist/web/compare/regions.js +211 -0
- package/dist/web/cookies/extract.d.ts +26 -0
- package/dist/web/cookies/extract.js +167 -0
- package/dist/web/cookies/index.d.ts +8 -0
- package/dist/web/cookies/index.js +7 -0
- package/dist/web/cookies/inject.d.ts +13 -0
- package/dist/web/cookies/inject.js +27 -0
- package/dist/web/cookies/setup.d.ts +31 -0
- package/dist/web/cookies/setup.js +94 -0
- package/dist/web/design/index.d.ts +9 -0
- package/dist/web/design/index.js +9 -0
- package/dist/web/design/inventory.d.ts +126 -0
- package/dist/web/design/inventory.js +324 -0
- package/dist/web/design/probe.d.ts +24 -0
- package/dist/web/design/probe.js +88 -0
- package/dist/web/element/actionable.d.ts +34 -0
- package/dist/web/element/actionable.js +48 -0
- package/dist/web/element/animations.d.ts +48 -0
- package/dist/web/element/animations.js +74 -0
- package/dist/web/element/box.d.ts +53 -0
- package/dist/web/element/box.js +58 -0
- package/dist/web/element/hover.d.ts +75 -0
- package/dist/web/element/hover.js +172 -0
- package/dist/web/element/index.d.ts +17 -0
- package/dist/web/element/index.js +17 -0
- package/dist/web/element/listeners.d.ts +72 -0
- package/dist/web/element/listeners.js +98 -0
- package/dist/web/element/measure.d.ts +40 -0
- package/dist/web/element/measure.js +118 -0
- package/dist/web/element/probes.d.ts +108 -0
- package/dist/web/element/probes.js +195 -0
- package/dist/web/element/pseudo.d.ts +51 -0
- package/dist/web/element/pseudo.js +96 -0
- package/dist/web/element/view.d.ts +30 -0
- package/dist/web/element/view.js +117 -0
- package/dist/web/element/visibility.d.ts +42 -0
- package/dist/web/element/visibility.js +67 -0
- package/dist/web/envelope/artifacts.d.ts +23 -0
- package/dist/web/envelope/artifacts.js +45 -0
- package/dist/web/envelope/index.d.ts +9 -0
- package/dist/web/envelope/index.js +9 -0
- package/dist/web/envelope/naming.d.ts +23 -0
- package/dist/web/envelope/naming.js +43 -0
- package/dist/web/envelope/paged.d.ts +42 -0
- package/dist/web/envelope/paged.js +99 -0
- package/dist/web/envelope/sink.d.ts +43 -0
- package/dist/web/envelope/sink.js +67 -0
- package/dist/web/environment/devices.d.ts +65 -0
- package/dist/web/environment/devices.js +82 -0
- package/dist/web/environment/emulation.d.ts +124 -0
- package/dist/web/environment/emulation.js +258 -0
- package/dist/web/environment/index.d.ts +15 -0
- package/dist/web/environment/index.js +15 -0
- package/dist/web/environment/probes.d.ts +18 -0
- package/dist/web/environment/probes.js +40 -0
- package/dist/web/environment/shaping.d.ts +90 -0
- package/dist/web/environment/shaping.js +141 -0
- package/dist/web/environment/status.d.ts +51 -0
- package/dist/web/environment/status.js +109 -0
- package/dist/web/environment/storage.d.ts +55 -0
- package/dist/web/environment/storage.js +142 -0
- package/dist/web/environment/tabs.d.ts +32 -0
- package/dist/web/environment/tabs.js +47 -0
- package/dist/web/environment/view.d.ts +10 -0
- package/dist/web/environment/view.js +42 -0
- package/dist/web/evaluate/index.d.ts +6 -0
- package/dist/web/evaluate/index.js +6 -0
- package/dist/web/evaluate/outcome.d.ts +74 -0
- package/dist/web/evaluate/outcome.js +91 -0
- package/dist/web/evaluate/probe.d.ts +31 -0
- package/dist/web/evaluate/probe.js +303 -0
- package/dist/web/index.d.ts +47 -0
- package/dist/web/index.js +47 -0
- package/dist/web/input/index.d.ts +11 -0
- package/dist/web/input/index.js +11 -0
- package/dist/web/input/keys.d.ts +48 -0
- package/dist/web/input/keys.js +189 -0
- package/dist/web/input/pointer.d.ts +56 -0
- package/dist/web/input/pointer.js +77 -0
- package/dist/web/input/touch.d.ts +61 -0
- package/dist/web/input/touch.js +83 -0
- package/dist/web/mermaid.d.ts +69 -0
- package/dist/web/mermaid.js +223 -0
- package/dist/web/paths.d.ts +16 -0
- package/dist/web/paths.js +27 -0
- package/dist/web/perf/heap.d.ts +42 -0
- package/dist/web/perf/heap.js +73 -0
- package/dist/web/perf/index.d.ts +14 -0
- package/dist/web/perf/index.js +14 -0
- package/dist/web/perf/layers.d.ts +98 -0
- package/dist/web/perf/layers.js +165 -0
- package/dist/web/perf/probe.d.ts +26 -0
- package/dist/web/perf/probe.js +123 -0
- package/dist/web/perf/profile.d.ts +53 -0
- package/dist/web/perf/profile.js +97 -0
- package/dist/web/perf/trace.d.ts +152 -0
- package/dist/web/perf/trace.js +429 -0
- package/dist/web/perf/view.d.ts +6 -0
- package/dist/web/perf/view.js +86 -0
- package/dist/web/perf/vitals.d.ts +141 -0
- package/dist/web/perf/vitals.js +175 -0
- package/dist/web/reader.d.ts +131 -0
- package/dist/web/reader.js +340 -0
- package/dist/web/screenshot.d.ts +50 -0
- package/dist/web/screenshot.js +108 -0
- package/dist/web/search.d.ts +49 -0
- package/dist/web/search.js +137 -0
- package/dist/web/session/artifacts.d.ts +32 -0
- package/dist/web/session/artifacts.js +47 -0
- package/dist/web/session/emulation.d.ts +118 -0
- package/dist/web/session/emulation.js +307 -0
- package/dist/web/session/recording.d.ts +51 -0
- package/dist/web/session/recording.js +64 -0
- package/dist/web/session/settling.d.ts +42 -0
- package/dist/web/session/settling.js +104 -0
- package/dist/web/session/shaping.d.ts +48 -0
- package/dist/web/session/shaping.js +113 -0
- package/dist/web/session/sourcemaps.d.ts +64 -0
- package/dist/web/session/sourcemaps.js +135 -0
- package/dist/web/session/telemetry.d.ts +219 -0
- package/dist/web/session/telemetry.js +486 -0
- package/dist/web/session/wires.d.ts +22 -0
- package/dist/web/session/wires.js +11 -0
- package/dist/web/session.d.ts +1153 -0
- package/dist/web/session.js +3400 -0
- package/dist/web/snapshot/deep.d.ts +36 -0
- package/dist/web/snapshot/deep.js +91 -0
- package/dist/web/snapshot/flatten.d.ts +101 -0
- package/dist/web/snapshot/flatten.js +131 -0
- package/dist/web/snapshot/index.d.ts +8 -0
- package/dist/web/snapshot/index.js +10 -0
- package/dist/web/snapshot/presented.d.ts +32 -0
- package/dist/web/snapshot/presented.js +74 -0
- package/dist/web/snapshot/query.d.ts +67 -0
- package/dist/web/snapshot/query.js +136 -0
- package/dist/web/sourcemap/index.d.ts +9 -0
- package/dist/web/sourcemap/index.js +9 -0
- package/dist/web/sourcemap/mappings.d.ts +111 -0
- package/dist/web/sourcemap/mappings.js +218 -0
- package/dist/web/styles/capture.d.ts +49 -0
- package/dist/web/styles/capture.js +85 -0
- package/dist/web/styles/cascade.d.ts +107 -0
- package/dist/web/styles/cascade.js +275 -0
- package/dist/web/styles/curation.d.ts +45 -0
- package/dist/web/styles/curation.js +282 -0
- package/dist/web/styles/index.d.ts +10 -0
- package/dist/web/styles/index.js +10 -0
- package/dist/web/target/index.d.ts +7 -0
- package/dist/web/target/index.js +7 -0
- package/dist/web/target/refusals.d.ts +59 -0
- package/dist/web/target/refusals.js +305 -0
- package/dist/web/target/target.d.ts +59 -0
- package/dist/web/target/target.js +94 -0
- package/dist/web/telemetry/buffer.d.ts +35 -0
- package/dist/web/telemetry/buffer.js +72 -0
- package/dist/web/telemetry/console.d.ts +127 -0
- package/dist/web/telemetry/console.js +217 -0
- package/dist/web/telemetry/dialogs.d.ts +41 -0
- package/dist/web/telemetry/dialogs.js +38 -0
- package/dist/web/telemetry/downloads.d.ts +42 -0
- package/dist/web/telemetry/downloads.js +65 -0
- package/dist/web/telemetry/failure.d.ts +31 -0
- package/dist/web/telemetry/failure.js +72 -0
- package/dist/web/telemetry/har.d.ts +97 -0
- package/dist/web/telemetry/har.js +227 -0
- package/dist/web/telemetry/index.d.ts +18 -0
- package/dist/web/telemetry/index.js +18 -0
- package/dist/web/telemetry/lifecycle.d.ts +69 -0
- package/dist/web/telemetry/lifecycle.js +120 -0
- package/dist/web/telemetry/network.d.ts +152 -0
- package/dist/web/telemetry/network.js +130 -0
- package/dist/web/telemetry/requests.d.ts +31 -0
- package/dist/web/telemetry/requests.js +119 -0
- package/dist/web/telemetry/sockets.d.ts +56 -0
- package/dist/web/telemetry/sockets.js +101 -0
- package/dist/web/telemetry/view.d.ts +16 -0
- package/dist/web/telemetry/view.js +125 -0
- package/dist/web/wait/conditions.d.ts +87 -0
- package/dist/web/wait/conditions.js +100 -0
- package/dist/web/wait/index.d.ts +6 -0
- package/dist/web/wait/index.js +6 -0
- package/dist/web/wait/settle.d.ts +54 -0
- package/dist/web/wait/settle.js +84 -0
- package/dist/work/ask.d.ts +45 -0
- package/dist/work/ask.js +85 -0
- package/dist/work/author.d.ts +61 -0
- package/dist/work/author.js +144 -0
- package/dist/work/broker.d.ts +151 -0
- package/dist/work/broker.js +165 -0
- package/dist/work/events.d.ts +98 -0
- package/dist/work/events.js +57 -0
- package/dist/work/history.d.ts +69 -0
- package/dist/work/history.js +174 -0
- package/dist/work/index.d.ts +49 -0
- package/dist/work/index.js +33 -0
- package/dist/work/inplay.d.ts +43 -0
- package/dist/work/inplay.js +42 -0
- package/dist/work/memory.d.ts +84 -0
- package/dist/work/memory.js +203 -0
- package/dist/work/objection.d.ts +92 -0
- package/dist/work/objection.js +72 -0
- package/dist/work/provider.d.ts +79 -0
- package/dist/work/provider.js +45 -0
- package/dist/work/providers/git.d.ts +29 -0
- package/dist/work/providers/git.js +87 -0
- package/dist/work/publish.d.ts +53 -0
- package/dist/work/publish.js +139 -0
- package/dist/work/rebase.d.ts +78 -0
- package/dist/work/rebase.js +261 -0
- package/dist/work/reclaim.d.ts +56 -0
- package/dist/work/reclaim.js +52 -0
- package/dist/work/register.d.ts +29 -0
- package/dist/work/register.js +41 -0
- package/dist/work/stack.d.ts +126 -0
- package/dist/work/stack.js +243 -0
- package/dist/work/stacks.d.ts +156 -0
- package/dist/work/stacks.js +524 -0
- package/dist/work/survey.d.ts +52 -0
- package/dist/work/survey.js +58 -0
- package/dist/work/tidy.d.ts +147 -0
- package/dist/work/tidy.js +136 -0
- package/dist/work/tree.d.ts +120 -0
- package/dist/work/tree.js +69 -0
- package/dist/work/unattended.d.ts +40 -0
- package/dist/work/unattended.js +57 -0
- package/package.json +145 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a review looks at: repos, hosted changes and the
|
|
3
|
+
* targets a review session can be pointed at.
|
|
4
|
+
*
|
|
5
|
+
* The vocabulary is git's wherever git has a word for the
|
|
6
|
+
* thing. A repo is named by a locator rather than an
|
|
7
|
+
* owner/name pair, because not every backend has owners. A
|
|
8
|
+
* hosted change carries an opaque, provider-scoped id,
|
|
9
|
+
* because the backends disagree on whether that is a
|
|
10
|
+
* number, a UUID, a branch or a range. A review target is
|
|
11
|
+
* deliberately wider than a hosted change: a range of
|
|
12
|
+
* commits or a stack of branches is reviewable whether or
|
|
13
|
+
* not anyone has proposed it anywhere.
|
|
14
|
+
*/
|
|
15
|
+
import type { Landability } from "./landing.js";
|
|
16
|
+
import type { QueueState } from "./queue.js";
|
|
17
|
+
/**
|
|
18
|
+
* Where a repo lives. Providers claim locators; the `key`
|
|
19
|
+
* is the stable identity everything else is scoped by.
|
|
20
|
+
*/
|
|
21
|
+
export interface RepoLocator {
|
|
22
|
+
/** Stable identity, e.g. `github:Shopify/world`. */
|
|
23
|
+
key: string;
|
|
24
|
+
/** Remote URL, when the repo has one. */
|
|
25
|
+
remoteUrl?: string;
|
|
26
|
+
/** Absolute path to a local checkout, when there is one. */
|
|
27
|
+
localPath?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A change hosted by a provider: a GitHub pull request, a
|
|
31
|
+
* gitstream pull, a GitLab merge request. The `id` is
|
|
32
|
+
* opaque and only meaningful to the provider that minted
|
|
33
|
+
* it; nothing outside the provider may parse it.
|
|
34
|
+
*/
|
|
35
|
+
export interface ChangeRef {
|
|
36
|
+
/** Id of the provider that owns this change. */
|
|
37
|
+
provider: string;
|
|
38
|
+
/** Repo the change belongs to. */
|
|
39
|
+
repo: RepoLocator;
|
|
40
|
+
/** Provider-scoped identity. Never parsed by consumers. */
|
|
41
|
+
id: string;
|
|
42
|
+
/**
|
|
43
|
+
* Short human name for this change, in whatever form its
|
|
44
|
+
* own system uses: `Shopify/world#123` for a GitHub pull
|
|
45
|
+
* request, and whatever Meteorite or GitLab call theirs.
|
|
46
|
+
*
|
|
47
|
+
* Carried on the reference rather than asked of the
|
|
48
|
+
* provider, because a consumer that reloaded a reference
|
|
49
|
+
* from disk still has to be able to name it, and should
|
|
50
|
+
* not need a live provider or a request to do so.
|
|
51
|
+
*/
|
|
52
|
+
label: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* What a review session is looking at.
|
|
56
|
+
*
|
|
57
|
+
* `proposal` is a change someone is hosting. `range` is any
|
|
58
|
+
* two endpoints in a repo, which is how an unposted branch
|
|
59
|
+
* gets reviewed. `stack` is an ordered set of refs reviewed
|
|
60
|
+
* as one body of work, whether or not proposals exist for
|
|
61
|
+
* its members.
|
|
62
|
+
*/
|
|
63
|
+
export type ReviewTarget = {
|
|
64
|
+
kind: "proposal";
|
|
65
|
+
change: ChangeRef;
|
|
66
|
+
} | {
|
|
67
|
+
kind: "range";
|
|
68
|
+
repo: RepoLocator;
|
|
69
|
+
base: string;
|
|
70
|
+
head: string;
|
|
71
|
+
} | {
|
|
72
|
+
kind: "stack";
|
|
73
|
+
repo: RepoLocator;
|
|
74
|
+
refs: string[];
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Where a hosted change stands. Deliberately three values:
|
|
78
|
+
* draft-ness and locked-ness are flags, not states, because
|
|
79
|
+
* the backends disagree about whether they are states and
|
|
80
|
+
* agree that these three are.
|
|
81
|
+
*/
|
|
82
|
+
export type ChangeState = "open" | "merged" | "closed";
|
|
83
|
+
/** Someone who acted. Identity is provider-scoped. */
|
|
84
|
+
export interface Actor {
|
|
85
|
+
/** How the provider names them: login, email, or id. */
|
|
86
|
+
id: string;
|
|
87
|
+
/** Display name, when the provider offers one. */
|
|
88
|
+
name?: string;
|
|
89
|
+
}
|
|
90
|
+
/** A hosted change, read back. */
|
|
91
|
+
export interface Proposal {
|
|
92
|
+
ref: ChangeRef;
|
|
93
|
+
title: string;
|
|
94
|
+
body: string;
|
|
95
|
+
state: ChangeState;
|
|
96
|
+
draft: boolean;
|
|
97
|
+
author: Actor;
|
|
98
|
+
/** Ref the change would merge into. */
|
|
99
|
+
base: string;
|
|
100
|
+
/** Ref holding the proposed work. */
|
|
101
|
+
head: string;
|
|
102
|
+
/** Tip commit of `head`, when the provider reports it. */
|
|
103
|
+
headCommit?: string;
|
|
104
|
+
createdAt?: string;
|
|
105
|
+
updatedAt?: string;
|
|
106
|
+
/** Web location for humans. */
|
|
107
|
+
url?: string;
|
|
108
|
+
/**
|
|
109
|
+
* How big the change is, when the provider says.
|
|
110
|
+
*
|
|
111
|
+
* Carried rather than derived because a consumer that only
|
|
112
|
+
* wants to state the size should not have to fetch and count a
|
|
113
|
+
* whole diff, and every backend reports this alongside the rest
|
|
114
|
+
* of the change. Absent means unreported, which is not the same
|
|
115
|
+
* as zero.
|
|
116
|
+
*/
|
|
117
|
+
additions?: number;
|
|
118
|
+
deletions?: number;
|
|
119
|
+
changedFiles?: number;
|
|
120
|
+
/**
|
|
121
|
+
* Where the change stands with a merge queue, when the backend
|
|
122
|
+
* has one and says.
|
|
123
|
+
*
|
|
124
|
+
* Carried on the proposal because the authoring gate has to know
|
|
125
|
+
* before it acts, and a caller cannot be trusted to have asked:
|
|
126
|
+
* the gate spent a release reading this off an intent nobody set,
|
|
127
|
+
* which made it unreachable. Absent means the provider has no
|
|
128
|
+
* queue or did not report one, which is not the same as unqueued.
|
|
129
|
+
*/
|
|
130
|
+
queue?: QueueState;
|
|
131
|
+
/**
|
|
132
|
+
* Whether it could land, and what is in the way.
|
|
133
|
+
*
|
|
134
|
+
* Absent where the backend does not say. That is not the same as clear to
|
|
135
|
+
* land, and the narration keeps them apart: a change nobody has judged
|
|
136
|
+
* reads as unreported rather than as ready.
|
|
137
|
+
*/
|
|
138
|
+
landing?: Landability;
|
|
139
|
+
/**
|
|
140
|
+
* Labels on the change, where the backend has labels.
|
|
141
|
+
*
|
|
142
|
+
* An empty array and an absent field are different facts: the first
|
|
143
|
+
* says the backend has labels and this change has none, the second
|
|
144
|
+
* says nobody reported any.
|
|
145
|
+
*/
|
|
146
|
+
labels?: string[];
|
|
147
|
+
/** Who it is assigned to, where the backend assigns changes. */
|
|
148
|
+
assignees?: Actor[];
|
|
149
|
+
/**
|
|
150
|
+
* Anything the provider knows that the neutral model
|
|
151
|
+
* does not name. Consumers may read it opportunistically;
|
|
152
|
+
* nothing in the substrate depends on it.
|
|
153
|
+
*/
|
|
154
|
+
extensions?: Record<string, unknown>;
|
|
155
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a review looks at: repos, hosted changes and the
|
|
3
|
+
* targets a review session can be pointed at.
|
|
4
|
+
*
|
|
5
|
+
* The vocabulary is git's wherever git has a word for the
|
|
6
|
+
* thing. A repo is named by a locator rather than an
|
|
7
|
+
* owner/name pair, because not every backend has owners. A
|
|
8
|
+
* hosted change carries an opaque, provider-scoped id,
|
|
9
|
+
* because the backends disagree on whether that is a
|
|
10
|
+
* number, a UUID, a branch or a range. A review target is
|
|
11
|
+
* deliberately wider than a hosted change: a range of
|
|
12
|
+
* commits or a stack of branches is reviewable whether or
|
|
13
|
+
* not anyone has proposed it anywhere.
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CI state for a change.
|
|
3
|
+
*
|
|
4
|
+
* The interesting distinction is between a check that failed
|
|
5
|
+
* and a check that has not reported yet. One backend
|
|
6
|
+
* represents the latter as a null status rather than a
|
|
7
|
+
* pending one, and a consumer that folds the two together
|
|
8
|
+
* will tell someone their change is broken when nothing has
|
|
9
|
+
* run.
|
|
10
|
+
*/
|
|
11
|
+
/** Where one check stands. */
|
|
12
|
+
export type CheckState = "passing" | "failing" | "pending"
|
|
13
|
+
/** Registered but yet to report anything. */
|
|
14
|
+
| "unreported" | "skipped";
|
|
15
|
+
/** One check. */
|
|
16
|
+
export interface Check {
|
|
17
|
+
name: string;
|
|
18
|
+
state: CheckState;
|
|
19
|
+
url?: string;
|
|
20
|
+
/** True when the change cannot merge without it. */
|
|
21
|
+
required?: boolean;
|
|
22
|
+
summary?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* What came of asking for checks to run again.
|
|
26
|
+
*
|
|
27
|
+
* A union rather than nothing, because the two outcomes need
|
|
28
|
+
* different things from the reader. `started` means CI has been
|
|
29
|
+
* asked and the answer will arrive later, so a caller polls or
|
|
30
|
+
* waits. `declined` means the backend understood and refused, and
|
|
31
|
+
* the reason belongs to the backend rather than to us: a change
|
|
32
|
+
* that has already landed, a queue that will not accept a retry, a
|
|
33
|
+
* pipeline nobody recognizes.
|
|
34
|
+
*
|
|
35
|
+
* `which` echoes back what was actually rerun. Asking for one
|
|
36
|
+
* pipeline by name and being given all of them is a difference the
|
|
37
|
+
* caller cannot otherwise see, and it costs real CI minutes.
|
|
38
|
+
*/
|
|
39
|
+
export type RerunOutcome = {
|
|
40
|
+
kind: "started";
|
|
41
|
+
which?: string;
|
|
42
|
+
url?: string;
|
|
43
|
+
} | {
|
|
44
|
+
kind: "declined";
|
|
45
|
+
reason: string;
|
|
46
|
+
};
|
|
47
|
+
/** Every check on a change, plus the answer people want. */
|
|
48
|
+
export interface ChecksRollup {
|
|
49
|
+
/**
|
|
50
|
+
* The rollup. `pending` while anything required is still
|
|
51
|
+
* running or unreported; `failing` when anything required
|
|
52
|
+
* failed.
|
|
53
|
+
*/
|
|
54
|
+
state: CheckState;
|
|
55
|
+
checks: Check[];
|
|
56
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CI state for a change.
|
|
3
|
+
*
|
|
4
|
+
* The interesting distinction is between a check that failed
|
|
5
|
+
* and a check that has not reported yet. One backend
|
|
6
|
+
* represents the latter as a null status rather than a
|
|
7
|
+
* pending one, and a consumer that folds the two together
|
|
8
|
+
* will tell someone their change is broken when nothing has
|
|
9
|
+
* run.
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the user gets to decide about provider selection.
|
|
3
|
+
*
|
|
4
|
+
* Two knobs, both of which exist because guessing is worse
|
|
5
|
+
* than asking. A repo mapping pins a repo to a provider with
|
|
6
|
+
* ordered fallbacks, which is what a migration needs: while
|
|
7
|
+
* one repo lives on two backends at once, the person doing
|
|
8
|
+
* the work is the only one who knows which of them is the
|
|
9
|
+
* real one today. A reference mapping teaches the substrate
|
|
10
|
+
* a URL or short form no provider recognizes, so an internal
|
|
11
|
+
* link shape can be adopted without shipping code.
|
|
12
|
+
*/
|
|
13
|
+
/** Pins a repo to providers, first registered one winning. */
|
|
14
|
+
export interface RepoMapping {
|
|
15
|
+
/**
|
|
16
|
+
* Matched as a substring against the checkout path and
|
|
17
|
+
* each of its remote URLs. Substring rather than a
|
|
18
|
+
* pattern because the thing people have to hand is a repo
|
|
19
|
+
* name, and `Shopify/world` should just work.
|
|
20
|
+
*/
|
|
21
|
+
match: string;
|
|
22
|
+
/**
|
|
23
|
+
* Provider ids in preference order. Ids that are not
|
|
24
|
+
* registered are skipped, which is what makes this safe
|
|
25
|
+
* to write before the provider ships.
|
|
26
|
+
*/
|
|
27
|
+
providers: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Where this repo is checked out, for reading it.
|
|
30
|
+
*
|
|
31
|
+
* Without it, the only repo reviewable from a session is
|
|
32
|
+
* the one the session is sitting in: a round elsewhere
|
|
33
|
+
* either reads the wrong project or, since that was
|
|
34
|
+
* stopped, refuses. Nothing else can supply this, because
|
|
35
|
+
* which directory holds a repo is a fact about this
|
|
36
|
+
* machine and no provider knows it.
|
|
37
|
+
*/
|
|
38
|
+
path?: string;
|
|
39
|
+
}
|
|
40
|
+
/** Teaches the substrate a reference shape. */
|
|
41
|
+
export interface ReferenceMapping {
|
|
42
|
+
/**
|
|
43
|
+
* Regular expression matched against the whole reference.
|
|
44
|
+
* Named groups `repo` and `id` are read when present.
|
|
45
|
+
*/
|
|
46
|
+
pattern: string;
|
|
47
|
+
/** Provider to hand the match to. */
|
|
48
|
+
provider: string;
|
|
49
|
+
/** Repo key to use when the pattern names no `repo`. */
|
|
50
|
+
repo?: string;
|
|
51
|
+
}
|
|
52
|
+
/** The `review` section of the package config. */
|
|
53
|
+
export interface ReviewConfig {
|
|
54
|
+
repos?: RepoMapping[];
|
|
55
|
+
references?: ReferenceMapping[];
|
|
56
|
+
}
|
|
57
|
+
/** What parsing the section produced, and anything wrong with it. */
|
|
58
|
+
export interface LoadedReviewConfig {
|
|
59
|
+
config: ReviewConfig;
|
|
60
|
+
/** Complaints about the section, for the user to see. */
|
|
61
|
+
problems: string[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Parse the `review` section of the package config, reporting
|
|
65
|
+
* anything malformed.
|
|
66
|
+
*
|
|
67
|
+
* Pure: the section is handed in already read, so this has no
|
|
68
|
+
* opinion about where the package config file lives or how it is
|
|
69
|
+
* loaded from disk — that is a host adapter's job.
|
|
70
|
+
*/
|
|
71
|
+
export declare function parseReviewSection(section: unknown): LoadedReviewConfig;
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the user gets to decide about provider selection.
|
|
3
|
+
*
|
|
4
|
+
* Two knobs, both of which exist because guessing is worse
|
|
5
|
+
* than asking. A repo mapping pins a repo to a provider with
|
|
6
|
+
* ordered fallbacks, which is what a migration needs: while
|
|
7
|
+
* one repo lives on two backends at once, the person doing
|
|
8
|
+
* the work is the only one who knows which of them is the
|
|
9
|
+
* real one today. A reference mapping teaches the substrate
|
|
10
|
+
* a URL or short form no provider recognizes, so an internal
|
|
11
|
+
* link shape can be adopted without shipping code.
|
|
12
|
+
*/
|
|
13
|
+
function isRecord(value) {
|
|
14
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
15
|
+
}
|
|
16
|
+
function stringList(value) {
|
|
17
|
+
return Array.isArray(value)
|
|
18
|
+
? value.filter((entry) => typeof entry === "string")
|
|
19
|
+
: [];
|
|
20
|
+
}
|
|
21
|
+
function readRepoMappings(value, problems) {
|
|
22
|
+
if (value === undefined)
|
|
23
|
+
return [];
|
|
24
|
+
if (!Array.isArray(value)) {
|
|
25
|
+
problems.push("review.repos should be a list of mappings.");
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
const mappings = [];
|
|
29
|
+
for (const [index, entry] of value.entries()) {
|
|
30
|
+
if (!isRecord(entry) ||
|
|
31
|
+
typeof entry.match !== "string" ||
|
|
32
|
+
entry.match.trim().length === 0) {
|
|
33
|
+
// Non-empty, because matching is a substring test and every
|
|
34
|
+
// string contains the empty one: an empty match claims every
|
|
35
|
+
// repo there is, which for a mapping carrying a path means
|
|
36
|
+
// every round in every repo reads one directory.
|
|
37
|
+
problems.push(`review.repos[${index}] needs a non-empty "match" string.`);
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const providers = stringList(entry.providers);
|
|
41
|
+
// Absolute and non-empty. A relative path is resolved against
|
|
42
|
+
// whatever directory the session happens to be in, which is the
|
|
43
|
+
// thing this field exists to stop mattering, and `~` is the
|
|
44
|
+
// shell's expansion rather than one node does. Both fail far from
|
|
45
|
+
// here and read as "that is not a checkout".
|
|
46
|
+
const said = typeof entry.path === "string" ? entry.path.trim() : "";
|
|
47
|
+
if (said.length > 0 && !said.startsWith("/")) {
|
|
48
|
+
problems.push(`review.repos[${index}].path must be an absolute path; "${said}" is relative${said.startsWith("~") ? ", and a leading ~ is the shell's expansion rather than one node performs" : ""}.`);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const path = said.length > 0 ? said : undefined;
|
|
52
|
+
// One or the other. A mapping used to be a way to pin a provider
|
|
53
|
+
// and nothing else, so an empty list meant an entry that did
|
|
54
|
+
// nothing; now it can also be the only place that says where a
|
|
55
|
+
// repo lives, and saying that is a whole job.
|
|
56
|
+
if (providers.length === 0 && path === undefined) {
|
|
57
|
+
problems.push(`review.repos[${index}] needs at least one provider id, or a "path" saying where the repo is checked out.`);
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
mappings.push({
|
|
61
|
+
match: entry.match,
|
|
62
|
+
providers,
|
|
63
|
+
...(path === undefined ? {} : { path }),
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return mappings;
|
|
67
|
+
}
|
|
68
|
+
function readReferenceMappings(value, problems) {
|
|
69
|
+
if (value === undefined)
|
|
70
|
+
return [];
|
|
71
|
+
if (!Array.isArray(value)) {
|
|
72
|
+
problems.push("review.references should be a list of mappings.");
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
const mappings = [];
|
|
76
|
+
for (const [index, entry] of value.entries()) {
|
|
77
|
+
if (!isRecord(entry) ||
|
|
78
|
+
typeof entry.pattern !== "string" ||
|
|
79
|
+
typeof entry.provider !== "string") {
|
|
80
|
+
problems.push(`review.references[${index}] needs a "pattern" and a "provider".`);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
new RegExp(entry.pattern);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
problems.push(`review.references[${index}] has an unusable pattern: ${error instanceof Error ? error.message : String(error)}`);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
mappings.push({
|
|
91
|
+
pattern: entry.pattern,
|
|
92
|
+
provider: entry.provider,
|
|
93
|
+
...(typeof entry.repo === "string" ? { repo: entry.repo } : {}),
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return mappings;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Parse the `review` section of the package config, reporting
|
|
100
|
+
* anything malformed.
|
|
101
|
+
*
|
|
102
|
+
* Pure: the section is handed in already read, so this has no
|
|
103
|
+
* opinion about where the package config file lives or how it is
|
|
104
|
+
* loaded from disk — that is a host adapter's job.
|
|
105
|
+
*/
|
|
106
|
+
export function parseReviewSection(section) {
|
|
107
|
+
if (section === undefined)
|
|
108
|
+
return { config: {}, problems: [] };
|
|
109
|
+
if (!isRecord(section)) {
|
|
110
|
+
return {
|
|
111
|
+
config: {},
|
|
112
|
+
problems: ["The review config section should be an object."],
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
const problems = [];
|
|
116
|
+
const repos = readRepoMappings(section.repos, problems);
|
|
117
|
+
const references = readReferenceMappings(section.references, problems);
|
|
118
|
+
return {
|
|
119
|
+
config: {
|
|
120
|
+
...(repos.length > 0 ? { repos } : {}),
|
|
121
|
+
...(references.length > 0 ? { references } : {}),
|
|
122
|
+
},
|
|
123
|
+
problems,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The authoring conventions, checked where authoring actually happens.
|
|
3
|
+
*
|
|
4
|
+
* A guardian intercepts shell commands, so `gh pr create` is held to
|
|
5
|
+
* the PR format, the title convention and the prose standard. Proposing
|
|
6
|
+
* a change through `review_offer` never touches a shell: it builds a
|
|
7
|
+
* JSON body and posts it to an API. Left alone, that is a way to route
|
|
8
|
+
* around every convention this package enforces, and the better the
|
|
9
|
+
* tool got the more attractive that route became.
|
|
10
|
+
*
|
|
11
|
+
* So the same three checks run here, over the same detectors, before
|
|
12
|
+
* anything is sent. This is not the guardian's code copied: the
|
|
13
|
+
* detectors are pure and shared, and only the response differs. A
|
|
14
|
+
* guardian blocks a command and relents to a human on a repeat, because
|
|
15
|
+
* it cannot rewrite the words. A tool can simply be called again with a
|
|
16
|
+
* better body, so a refusal here is a plain refusal with no relent
|
|
17
|
+
* path, which is also why it cannot loop.
|
|
18
|
+
*
|
|
19
|
+
* The same formatters too. This used to tally an issue word against the
|
|
20
|
+
* offending text, which said "use Canadian English spelling" without
|
|
21
|
+
* naming the word, and printed the title rule's internal word list as
|
|
22
|
+
* though it were a diagnosis: `sentence-case: fix(review, replay,
|
|
23
|
+
* whole, resolution`. The guardian's blocks already name the word and
|
|
24
|
+
* its replacement, and explain what Title Case wants, so both paths now
|
|
25
|
+
* say the same thing and there is one place to improve it.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* A refusal naming what to fix about a proposal, or nothing.
|
|
29
|
+
*
|
|
30
|
+
* The order matters and is the guardian's: structure, then title, then
|
|
31
|
+
* prose. There is no point polishing the words in a section that should
|
|
32
|
+
* not exist, and a wrong title should be caught alongside the structure
|
|
33
|
+
* rather than after the writing has been redone.
|
|
34
|
+
*/
|
|
35
|
+
export declare function proposalComplaint(title: string | undefined, body: string | undefined): string | undefined;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The authoring conventions, checked where authoring actually happens.
|
|
3
|
+
*
|
|
4
|
+
* A guardian intercepts shell commands, so `gh pr create` is held to
|
|
5
|
+
* the PR format, the title convention and the prose standard. Proposing
|
|
6
|
+
* a change through `review_offer` never touches a shell: it builds a
|
|
7
|
+
* JSON body and posts it to an API. Left alone, that is a way to route
|
|
8
|
+
* around every convention this package enforces, and the better the
|
|
9
|
+
* tool got the more attractive that route became.
|
|
10
|
+
*
|
|
11
|
+
* So the same three checks run here, over the same detectors, before
|
|
12
|
+
* anything is sent. This is not the guardian's code copied: the
|
|
13
|
+
* detectors are pure and shared, and only the response differs. A
|
|
14
|
+
* guardian blocks a command and relents to a human on a repeat, because
|
|
15
|
+
* it cannot rewrite the words. A tool can simply be called again with a
|
|
16
|
+
* better body, so a refusal here is a plain refusal with no relent
|
|
17
|
+
* path, which is also why it cannot loop.
|
|
18
|
+
*
|
|
19
|
+
* The same formatters too. This used to tally an issue word against the
|
|
20
|
+
* offending text, which said "use Canadian English spelling" without
|
|
21
|
+
* naming the word, and printed the title rule's internal word list as
|
|
22
|
+
* though it were a diagnosis: `sentence-case: fix(review, replay,
|
|
23
|
+
* whole, resolution`. The guardian's blocks already name the word and
|
|
24
|
+
* its replacement, and explain what Title Case wants, so both paths now
|
|
25
|
+
* say the same thing and there is one place to improve it.
|
|
26
|
+
*/
|
|
27
|
+
import { detectProseViolations, formatProseBlock } from "../prose/index.js";
|
|
28
|
+
import { detectSectionViolations, formatSectionBlock, PR_SECTIONS, } from "../sections/index.js";
|
|
29
|
+
import { detectTitleViolations, formatTitleBlock } from "../title/index.js";
|
|
30
|
+
/**
|
|
31
|
+
* A refusal naming what to fix about a proposal, or nothing.
|
|
32
|
+
*
|
|
33
|
+
* The order matters and is the guardian's: structure, then title, then
|
|
34
|
+
* prose. There is no point polishing the words in a section that should
|
|
35
|
+
* not exist, and a wrong title should be caught alongside the structure
|
|
36
|
+
* rather than after the writing has been redone.
|
|
37
|
+
*/
|
|
38
|
+
export function proposalComplaint(title, body) {
|
|
39
|
+
const written = body !== undefined && body.trim() !== "";
|
|
40
|
+
const named = title !== undefined && title.trim() !== "";
|
|
41
|
+
// Every class at once, in the guardian's order. Returning at the first
|
|
42
|
+
// one made each fix reveal the next: a body was refused for its
|
|
43
|
+
// sections, then for its title, then for an emdash, and every round
|
|
44
|
+
// trip through the tool was another chance for something else to go
|
|
45
|
+
// wrong. One refusal that says everything costs one rewrite.
|
|
46
|
+
const blocks = [
|
|
47
|
+
written
|
|
48
|
+
? formatSectionBlock(detectSectionViolations(body, PR_SECTIONS), "pull request", "github-pr-format")
|
|
49
|
+
: "",
|
|
50
|
+
named
|
|
51
|
+
? formatTitleBlock(detectTitleViolations(title), "pull request", "github-pr-format")
|
|
52
|
+
: "",
|
|
53
|
+
written ? formatProseBlock(detectProseViolations(body)) : "",
|
|
54
|
+
].filter((block) => block !== "");
|
|
55
|
+
if (blocks.length === 0)
|
|
56
|
+
return undefined;
|
|
57
|
+
return blocks.join("\n").trimEnd();
|
|
58
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What people said about a change.
|
|
3
|
+
*
|
|
4
|
+
* Three shapes, because the backends agree there are three:
|
|
5
|
+
* a review (a verdict with a summary), a thread (an anchored
|
|
6
|
+
* exchange), and a message (a remark about the change as a
|
|
7
|
+
* whole). They are separate feeds, not one list, and
|
|
8
|
+
* flattening them would lose the distinction every backend
|
|
9
|
+
* bothers to keep.
|
|
10
|
+
*
|
|
11
|
+
* Thread identity is opaque on purpose. The backends key a
|
|
12
|
+
* reply differently, one by the thread and one by the
|
|
13
|
+
* comment that started it, so a caller hands back the whole
|
|
14
|
+
* thread and the provider takes whichever key it needs.
|
|
15
|
+
*/
|
|
16
|
+
import type { Anchor } from "./anchor.js";
|
|
17
|
+
import type { Actor } from "./change.js";
|
|
18
|
+
/**
|
|
19
|
+
* The reactions available. Both forges surveyed support
|
|
20
|
+
* exactly this set, so it is modelled as a closed list
|
|
21
|
+
* rather than an open string.
|
|
22
|
+
*/
|
|
23
|
+
export type Reaction = "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes";
|
|
24
|
+
/** How many people reacted one way, and whether you did. */
|
|
25
|
+
export interface ReactionCount {
|
|
26
|
+
reaction: Reaction;
|
|
27
|
+
count: number;
|
|
28
|
+
/** True when the authenticated actor is among them. */
|
|
29
|
+
mine?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/** Something someone wrote. */
|
|
32
|
+
export interface Message {
|
|
33
|
+
/** Provider-scoped id. Never parsed by consumers. */
|
|
34
|
+
id: string;
|
|
35
|
+
author: Actor;
|
|
36
|
+
body: string;
|
|
37
|
+
createdAt?: string;
|
|
38
|
+
updatedAt?: string;
|
|
39
|
+
url?: string;
|
|
40
|
+
reactions?: ReactionCount[];
|
|
41
|
+
}
|
|
42
|
+
/** An anchored exchange about part of a change. */
|
|
43
|
+
export interface Thread {
|
|
44
|
+
/** Provider-scoped id. Never parsed by consumers. */
|
|
45
|
+
id: string;
|
|
46
|
+
resolved: boolean;
|
|
47
|
+
/** Who resolved it, when the provider records that. */
|
|
48
|
+
resolvedBy?: Actor;
|
|
49
|
+
/**
|
|
50
|
+
* Where the thread attaches. Absent for threads a
|
|
51
|
+
* provider hangs off the review rather than a line.
|
|
52
|
+
*/
|
|
53
|
+
anchor?: Anchor;
|
|
54
|
+
/**
|
|
55
|
+
* Whether the thread's anchor still describes the change.
|
|
56
|
+
* Absent when the provider cannot tell, which is
|
|
57
|
+
* different from known-current.
|
|
58
|
+
*/
|
|
59
|
+
stale?: boolean;
|
|
60
|
+
/** In the order they were written. */
|
|
61
|
+
comments: Message[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* A reviewer's position. The three every backend can express,
|
|
65
|
+
* whether as an event, a vote or a trailer. A provider that
|
|
66
|
+
* knows a fourth reports it through its own extensions
|
|
67
|
+
* rather than widening this.
|
|
68
|
+
*/
|
|
69
|
+
export type Verdict = "approve" | "request-changes" | "comment";
|
|
70
|
+
/** A submitted review. */
|
|
71
|
+
export interface Review {
|
|
72
|
+
id: string;
|
|
73
|
+
author: Actor;
|
|
74
|
+
verdict: Verdict;
|
|
75
|
+
body: string;
|
|
76
|
+
submittedAt?: string;
|
|
77
|
+
url?: string;
|
|
78
|
+
/** Provider vocabulary for the verdict, when it differs. */
|
|
79
|
+
nativeVerdict?: string;
|
|
80
|
+
}
|
|
81
|
+
/** One anchored remark within a review being posted. */
|
|
82
|
+
export interface AnchoredComment {
|
|
83
|
+
anchor: Anchor;
|
|
84
|
+
body: string;
|
|
85
|
+
}
|
|
86
|
+
/** A review about to be posted. */
|
|
87
|
+
export interface WireReview {
|
|
88
|
+
verdict: Verdict;
|
|
89
|
+
/** The summary. Some providers require one for a verdict. */
|
|
90
|
+
body: string;
|
|
91
|
+
comments: AnchoredComment[];
|
|
92
|
+
}
|
|
93
|
+
/** What a provider hands back after writing something. */
|
|
94
|
+
export interface Posted {
|
|
95
|
+
/** Provider-scoped id of what was created, when known. */
|
|
96
|
+
id?: string;
|
|
97
|
+
url?: string;
|
|
98
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What people said about a change.
|
|
3
|
+
*
|
|
4
|
+
* Three shapes, because the backends agree there are three:
|
|
5
|
+
* a review (a verdict with a summary), a thread (an anchored
|
|
6
|
+
* exchange), and a message (a remark about the change as a
|
|
7
|
+
* whole). They are separate feeds, not one list, and
|
|
8
|
+
* flattening them would lose the distinction every backend
|
|
9
|
+
* bothers to keep.
|
|
10
|
+
*
|
|
11
|
+
* Thread identity is opaque on purpose. The backends key a
|
|
12
|
+
* reply differently, one by the thread and one by the
|
|
13
|
+
* comment that started it, so a caller hands back the whole
|
|
14
|
+
* thread and the provider takes whichever key it needs.
|
|
15
|
+
*/
|
|
16
|
+
export {};
|