@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,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How hard pi may be asked to think.
|
|
3
|
+
*
|
|
4
|
+
* Its own module for the reason `exec` and `remote` are: both the
|
|
5
|
+
* review side and the subagent side need this vocabulary and neither
|
|
6
|
+
* owns it. It is pi's, and everything here does is write it down once.
|
|
7
|
+
*
|
|
8
|
+
* It had been written down four times, in two domains that share no
|
|
9
|
+
* module: the roster parser that validates one, the two tool schemas
|
|
10
|
+
* that offer one, and the runner type that receives one. Four copies
|
|
11
|
+
* of a list nothing compares is a list that will disagree with itself,
|
|
12
|
+
* and the failure is quiet: a level one copy accepts and pi does not
|
|
13
|
+
* reaches the CLI, and the reviewer runs at whatever pi makes of it.
|
|
14
|
+
*/
|
|
15
|
+
/** The levels pi's `--thinking` flag accepts, in order of effort. */
|
|
16
|
+
export declare const THINKING_LEVELS: readonly ["off", "minimal", "low", "medium", "high", "xhigh"];
|
|
17
|
+
/** One of the levels pi's `--thinking` flag accepts. */
|
|
18
|
+
export type ThinkingLevel = (typeof THINKING_LEVELS)[number];
|
|
19
|
+
/** Whether some string is a level pi would accept. */
|
|
20
|
+
export declare function isThinkingLevel(value: string): value is ThinkingLevel;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How hard pi may be asked to think.
|
|
3
|
+
*
|
|
4
|
+
* Its own module for the reason `exec` and `remote` are: both the
|
|
5
|
+
* review side and the subagent side need this vocabulary and neither
|
|
6
|
+
* owns it. It is pi's, and everything here does is write it down once.
|
|
7
|
+
*
|
|
8
|
+
* It had been written down four times, in two domains that share no
|
|
9
|
+
* module: the roster parser that validates one, the two tool schemas
|
|
10
|
+
* that offer one, and the runner type that receives one. Four copies
|
|
11
|
+
* of a list nothing compares is a list that will disagree with itself,
|
|
12
|
+
* and the failure is quiet: a level one copy accepts and pi does not
|
|
13
|
+
* reaches the CLI, and the reviewer runs at whatever pi makes of it.
|
|
14
|
+
*/
|
|
15
|
+
/** The levels pi's `--thinking` flag accepts, in order of effort. */
|
|
16
|
+
export const THINKING_LEVELS = [
|
|
17
|
+
"off",
|
|
18
|
+
"minimal",
|
|
19
|
+
"low",
|
|
20
|
+
"medium",
|
|
21
|
+
"high",
|
|
22
|
+
"xhigh",
|
|
23
|
+
];
|
|
24
|
+
/** Whether some string is a level pi would accept. */
|
|
25
|
+
export function isThinkingLevel(value) {
|
|
26
|
+
return THINKING_LEVELS.some((level) => level === value);
|
|
27
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turns detected title violations into a single skill-grounded
|
|
3
|
+
* instruction the guardian hands back to the author. It names the
|
|
4
|
+
* offending prefix and points at the format skill so the retry is
|
|
5
|
+
* a descriptive rewrite, not a guess.
|
|
6
|
+
*/
|
|
7
|
+
import type { TitleViolation } from "./detect.js";
|
|
8
|
+
/** Format title violations into a block message, or "" if none. */
|
|
9
|
+
export declare function formatTitleBlock(violations: TitleViolation[], entityLabel: string, skill: string): string;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turns detected title violations into a single skill-grounded
|
|
3
|
+
* instruction the guardian hands back to the author. It names the
|
|
4
|
+
* offending prefix and points at the format skill so the retry is
|
|
5
|
+
* a descriptive rewrite, not a guess.
|
|
6
|
+
*/
|
|
7
|
+
/** Format title violations into a block message, or "" if none. */
|
|
8
|
+
export function formatTitleBlock(violations, entityLabel, skill) {
|
|
9
|
+
if (violations.length === 0)
|
|
10
|
+
return "";
|
|
11
|
+
const lines = [
|
|
12
|
+
`This ${entityLabel} title breaks the ${skill} title convention.`,
|
|
13
|
+
"Fix it and try again.",
|
|
14
|
+
"",
|
|
15
|
+
];
|
|
16
|
+
const prefixes = violations
|
|
17
|
+
.filter((v) => v.issue === "conventional-commit")
|
|
18
|
+
.map((v) => v.found);
|
|
19
|
+
if (prefixes.length > 0) {
|
|
20
|
+
lines.push(`Conventional commit format (${prefixes.join(", ")}) is forbidden`, "for titles. Use a descriptive Title Case title that names the", "value, not the implementation, and drop the type prefix. For", 'example "Add Token Refresh to Prevent Session Timeouts" rather', 'than "feat(auth): implement refresh token logic".', "");
|
|
21
|
+
}
|
|
22
|
+
const sentenceCase = violations.find((v) => v.issue === "sentence-case");
|
|
23
|
+
if (sentenceCase) {
|
|
24
|
+
lines.push("The title reads as a sentence, not Title Case. These major", `words are lowercase: ${sentenceCase.found}. Capitalize every`, "noun, verb, adjective, adverb and pronoun; leave only articles,", "short prepositions and coordinating conjunctions lowercase. A", "deliberately lowercase proper noun (gitstream, gsperf) can stay", "lowercase; it is the run of ordinary words that needs fixing.", "");
|
|
25
|
+
}
|
|
26
|
+
const tooLong = violations.find((v) => v.issue === "over-length");
|
|
27
|
+
if (tooLong) {
|
|
28
|
+
lines.push(`The title is ${tooLong.found.replace(" (limit ", ", over the limit of ").replace(")", "")}.`, "Trim it to a tight Title Case summary. The lower bound the skill", "suggests (50 characters) is guidance; the upper bound is", "enforced because longer titles truncate in GitHub views and read", "badly in logs.", "");
|
|
29
|
+
}
|
|
30
|
+
lines.push(`See the ${skill} and github-cli-convention skills for the title`, "rules (Title Case, length, the formula).");
|
|
31
|
+
return lines.join("\n");
|
|
32
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Title convention detection: finds the mechanically certain
|
|
3
|
+
* violations of the PR and issue title convention so a guardian
|
|
4
|
+
* can block and point the author at the skill. Detection never
|
|
5
|
+
* rewrites; it names what is wrong and leaves the descriptive
|
|
6
|
+
* rephrasing to the author.
|
|
7
|
+
*/
|
|
8
|
+
import type { Violation } from "../gate/index.js";
|
|
9
|
+
/** A single title convention violation. */
|
|
10
|
+
export interface TitleViolation extends Violation {
|
|
11
|
+
readonly kind: "title";
|
|
12
|
+
/**
|
|
13
|
+
* conventional-commit: the title uses `type(scope): ...` form.
|
|
14
|
+
* over-length: the title exceeds the upper-bound character limit.
|
|
15
|
+
* sentence-case: the title reads as a sentence, not Title Case.
|
|
16
|
+
*/
|
|
17
|
+
readonly issue: "conventional-commit" | "over-length" | "sentence-case";
|
|
18
|
+
/**
|
|
19
|
+
* The offending prefix (conventional-commit) or a description of
|
|
20
|
+
* the length and the limit (over-length).
|
|
21
|
+
*/
|
|
22
|
+
readonly found: string;
|
|
23
|
+
}
|
|
24
|
+
/** Find the mechanically certain title convention violations. */
|
|
25
|
+
export declare function detectTitleViolations(title: string): TitleViolation[];
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Title convention detection: finds the mechanically certain
|
|
3
|
+
* violations of the PR and issue title convention so a guardian
|
|
4
|
+
* can block and point the author at the skill. Detection never
|
|
5
|
+
* rewrites; it names what is wrong and leaves the descriptive
|
|
6
|
+
* rephrasing to the author.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The upper bound the gate enforces on title length. The skills
|
|
10
|
+
* state a 50 to 72 range; the gate enforces the upper bound only
|
|
11
|
+
* because the lower bound is guidance (short descriptive titles
|
|
12
|
+
* like "Add Dark Mode Toggle" are fine, and the cli convention's
|
|
13
|
+
* own good example is 40 characters). 72 is the hard cap: past it
|
|
14
|
+
* the title truncates in GitHub views and reads badly in logs.
|
|
15
|
+
*/
|
|
16
|
+
const MAX_TITLE_LENGTH = 72;
|
|
17
|
+
// The conventional-commit type words. A title that opens with one
|
|
18
|
+
// of these followed by an optional `(scope)`, an optional `!` and
|
|
19
|
+
// a colon is conventional-commit format, which the title
|
|
20
|
+
// convention forbids. Anchoring on the known type list keeps the
|
|
21
|
+
// match precise: a descriptive title with a non-type colon prefix
|
|
22
|
+
// (`Gitstream: ...`) never matches, because the word before the
|
|
23
|
+
// colon is not a type.
|
|
24
|
+
const CONVENTIONAL_COMMIT_TYPES = [
|
|
25
|
+
"feat",
|
|
26
|
+
"fix",
|
|
27
|
+
"chore",
|
|
28
|
+
"docs",
|
|
29
|
+
"refactor",
|
|
30
|
+
"perf",
|
|
31
|
+
"test",
|
|
32
|
+
"build",
|
|
33
|
+
"ci",
|
|
34
|
+
"style",
|
|
35
|
+
"revert",
|
|
36
|
+
"wip",
|
|
37
|
+
"merge",
|
|
38
|
+
"release",
|
|
39
|
+
"bump",
|
|
40
|
+
"deps",
|
|
41
|
+
"hotfix",
|
|
42
|
+
];
|
|
43
|
+
// `type` then optional `(scope)`, optional `!`, then `:`. Matched
|
|
44
|
+
// case-insensitively so `Fix:` and `FEAT:` are caught too.
|
|
45
|
+
const CONVENTIONAL_COMMIT = new RegExp(`^(?:${CONVENTIONAL_COMMIT_TYPES.join("|")})(?:\\([^)]*\\))?!?:`, "i");
|
|
46
|
+
// The minor words Title Case leaves lowercase unless they open or
|
|
47
|
+
// close the title: articles, the short prepositions and the
|
|
48
|
+
// coordinating conjunctions the markdown-standard skill names.
|
|
49
|
+
// They are neither a capitalized nor a lowercase major word, so
|
|
50
|
+
// they sit out the sentence-case count entirely.
|
|
51
|
+
const MINOR_WORDS = new Set([
|
|
52
|
+
"a",
|
|
53
|
+
"an",
|
|
54
|
+
"the",
|
|
55
|
+
"of",
|
|
56
|
+
"in",
|
|
57
|
+
"on",
|
|
58
|
+
"at",
|
|
59
|
+
"to",
|
|
60
|
+
"for",
|
|
61
|
+
"with",
|
|
62
|
+
"by",
|
|
63
|
+
"from",
|
|
64
|
+
"as",
|
|
65
|
+
"and",
|
|
66
|
+
"or",
|
|
67
|
+
"but",
|
|
68
|
+
"nor",
|
|
69
|
+
"so",
|
|
70
|
+
"yet",
|
|
71
|
+
]);
|
|
72
|
+
// True when a word carries a backtick, dot or slash. Those mark
|
|
73
|
+
// the tokens the convention keeps verbatim: backticked code and
|
|
74
|
+
// dotted or slashed identifiers (vantage.Prepare, site/host).
|
|
75
|
+
// This inspects punctuation only. Mixed-case tokens (iOS,
|
|
76
|
+
// CamelCase, V1) are handled by the case loop below, which reads
|
|
77
|
+
// their inner capital and leaves them out of the lowercase count.
|
|
78
|
+
function isVerbatimToken(word) {
|
|
79
|
+
return /[`./]/.test(word);
|
|
80
|
+
}
|
|
81
|
+
/** Find the mechanically certain title convention violations. */
|
|
82
|
+
export function detectTitleViolations(title) {
|
|
83
|
+
const trimmed = title.trim();
|
|
84
|
+
const violations = [];
|
|
85
|
+
const match = trimmed.match(CONVENTIONAL_COMMIT);
|
|
86
|
+
if (match) {
|
|
87
|
+
violations.push({
|
|
88
|
+
kind: "title",
|
|
89
|
+
issue: "conventional-commit",
|
|
90
|
+
found: match[0],
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (trimmed.length > MAX_TITLE_LENGTH) {
|
|
94
|
+
violations.push({
|
|
95
|
+
kind: "title",
|
|
96
|
+
issue: "over-length",
|
|
97
|
+
found: `${trimmed.length} characters (limit ${MAX_TITLE_LENGTH})`,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
const sentenceCase = detectSentenceCase(trimmed);
|
|
101
|
+
if (sentenceCase)
|
|
102
|
+
violations.push(sentenceCase);
|
|
103
|
+
return violations;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Flag a title that reads as a sentence rather than Title Case.
|
|
107
|
+
*
|
|
108
|
+
* Detection is precision-over-recall: it counts the major words
|
|
109
|
+
* (everything that is not a minor word or a verbatim token) and
|
|
110
|
+
* splits them into capitalized and lowercase. A title is only
|
|
111
|
+
* flagged when its lowercase major words number at least two and
|
|
112
|
+
* outnumber the capitalized ones, the unambiguous signal of
|
|
113
|
+
* sentence case. A mostly-Title-Case title that carries one or
|
|
114
|
+
* two deliberately lowercase proper nouns (gitstream, gsperf)
|
|
115
|
+
* never trips, because those never outnumber the capitalized
|
|
116
|
+
* words around them.
|
|
117
|
+
*/
|
|
118
|
+
function detectSentenceCase(title) {
|
|
119
|
+
let capitalized = 0;
|
|
120
|
+
const lowercase = [];
|
|
121
|
+
for (const raw of title.split(/\s+/)) {
|
|
122
|
+
// Strip surrounding punctuation (quotes, parens, a trailing
|
|
123
|
+
// colon) but keep internal dots, slashes and hyphens.
|
|
124
|
+
const word = raw.replace(/^[^\p{L}\p{N}`]+|[^\p{L}\p{N}`]+$/gu, "");
|
|
125
|
+
if (!word)
|
|
126
|
+
continue;
|
|
127
|
+
if (!/\p{L}/u.test(word))
|
|
128
|
+
continue; // pure number or symbol
|
|
129
|
+
if (MINOR_WORDS.has(word.toLowerCase()))
|
|
130
|
+
continue;
|
|
131
|
+
if (isVerbatimToken(word))
|
|
132
|
+
continue;
|
|
133
|
+
const firstLetter = word.match(/\p{L}/u)?.[0] ?? "";
|
|
134
|
+
const startsUpper = firstLetter === firstLetter.toUpperCase();
|
|
135
|
+
const hasUpper = /\p{Lu}/u.test(word);
|
|
136
|
+
if (startsUpper) {
|
|
137
|
+
capitalized++;
|
|
138
|
+
}
|
|
139
|
+
else if (!hasUpper) {
|
|
140
|
+
// Lowercase first letter and no inner capital: a plain
|
|
141
|
+
// lowercase word. A mixed-case token (iOS) has an inner
|
|
142
|
+
// capital and is left verbatim.
|
|
143
|
+
lowercase.push(word);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (lowercase.length >= 2 && lowercase.length > capitalized) {
|
|
147
|
+
return {
|
|
148
|
+
kind: "title",
|
|
149
|
+
issue: "sentence-case",
|
|
150
|
+
found: lowercase.join(", "),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
return undefined;
|
|
154
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The title gate: a thin adapter over the shared loop breaker in
|
|
3
|
+
* the gate module. It supplies the title-specific detection, block
|
|
4
|
+
* formatting and relent wording; the block-first,
|
|
5
|
+
* relent-on-repeat mechanism lives in decideGate so titles share
|
|
6
|
+
* one behaviour with prose, sections and Slack.
|
|
7
|
+
*/
|
|
8
|
+
import { type GateDecision } from "../gate/index.js";
|
|
9
|
+
/** What the gate needs to know about the artifact under review. */
|
|
10
|
+
export interface TitleGateConfig {
|
|
11
|
+
/** "PR" or "issue", for the block message. */
|
|
12
|
+
readonly entityLabel: string;
|
|
13
|
+
/** The format skill that owns the title rules, for the message. */
|
|
14
|
+
readonly skill: string;
|
|
15
|
+
}
|
|
16
|
+
/** The gate's verdict on one title. */
|
|
17
|
+
export type TitleGateDecision = GateDecision;
|
|
18
|
+
/** Decide whether to block, relent or allow given prior block signatures. */
|
|
19
|
+
export declare function titleGateDecision(title: string, priorSignatures: string[], config: TitleGateConfig): TitleGateDecision;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The title gate: a thin adapter over the shared loop breaker in
|
|
3
|
+
* the gate module. It supplies the title-specific detection, block
|
|
4
|
+
* formatting and relent wording; the block-first,
|
|
5
|
+
* relent-on-repeat mechanism lives in decideGate so titles share
|
|
6
|
+
* one behaviour with prose, sections and Slack.
|
|
7
|
+
*/
|
|
8
|
+
import { decideGate } from "../gate/index.js";
|
|
9
|
+
import { formatTitleBlock } from "./block.js";
|
|
10
|
+
import { detectTitleViolations } from "./detect.js";
|
|
11
|
+
/** Decide whether to block, relent or allow given prior block signatures. */
|
|
12
|
+
export function titleGateDecision(title, priorSignatures, config) {
|
|
13
|
+
const violations = detectTitleViolations(title);
|
|
14
|
+
const relentPrefix = [
|
|
15
|
+
`This ${config.entityLabel} title still breaks the ${config.skill}`,
|
|
16
|
+
"title convention after a previous attempt, so it is being let",
|
|
17
|
+
"through rather than blocked again. Review it yourself:",
|
|
18
|
+
"",
|
|
19
|
+
].join("\n");
|
|
20
|
+
return decideGate(violations, priorSignatures, (v) => formatTitleBlock(v, config.entityLabel, config.skill), relentPrefix, title);
|
|
21
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public surface of the tree library.
|
|
3
|
+
*
|
|
4
|
+
* Pluggable working-directory providers. The harness ships
|
|
5
|
+
* a `git-worktree` provider that lives at
|
|
6
|
+
* `<repo>/.worktrees/<name>/`; downstream packages
|
|
7
|
+
* register their own at lower priority numbers to take
|
|
8
|
+
* over for specific repos.
|
|
9
|
+
*
|
|
10
|
+
* Typical use: `quest-workflow` calls
|
|
11
|
+
* `resolveTreeProvider(repoRoot)` to pick a provider, then
|
|
12
|
+
* dispatches `create` or `prune` against it. Consumers
|
|
13
|
+
* outside this package register their own providers via
|
|
14
|
+
* `registerTreeProvider`.
|
|
15
|
+
*/
|
|
16
|
+
export { clearTreeProviders, registerBuiltinTreeProviders, registerTreeProvider, unregisterTreeProvider, } from "./register.js";
|
|
17
|
+
export { getTreeProvider, listTreeProviders, resolveTreeProvider, } from "./resolve.js";
|
|
18
|
+
export type { CreateTreeInput, PruneTreeInput, TreeHandle, TreeProvider, } from "./types.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public surface of the tree library.
|
|
3
|
+
*
|
|
4
|
+
* Pluggable working-directory providers. The harness ships
|
|
5
|
+
* a `git-worktree` provider that lives at
|
|
6
|
+
* `<repo>/.worktrees/<name>/`; downstream packages
|
|
7
|
+
* register their own at lower priority numbers to take
|
|
8
|
+
* over for specific repos.
|
|
9
|
+
*
|
|
10
|
+
* Typical use: `quest-workflow` calls
|
|
11
|
+
* `resolveTreeProvider(repoRoot)` to pick a provider, then
|
|
12
|
+
* dispatches `create` or `prune` against it. Consumers
|
|
13
|
+
* outside this package register their own providers via
|
|
14
|
+
* `registerTreeProvider`.
|
|
15
|
+
*/
|
|
16
|
+
export { clearTreeProviders, registerBuiltinTreeProviders, registerTreeProvider, unregisterTreeProvider, } from "./register.js";
|
|
17
|
+
export { getTreeProvider, listTreeProviders, resolveTreeProvider, } from "./resolve.js";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree provider registration. Mirrors the refs and terminal
|
|
3
|
+
* libraries: explicit registration for built-ins, free
|
|
4
|
+
* functions for ad-hoc providers, an opt-out clear for
|
|
5
|
+
* tests.
|
|
6
|
+
*/
|
|
7
|
+
import type { TreeProvider } from "./types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Register a tree provider. Overwrites any previously
|
|
10
|
+
* registered provider with the same id.
|
|
11
|
+
*/
|
|
12
|
+
export declare function registerTreeProvider(provider: TreeProvider): void;
|
|
13
|
+
/** Remove a provider from the registry. Idempotent. */
|
|
14
|
+
export declare function unregisterTreeProvider(id: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Seed the registry with the built-in providers. Currently
|
|
17
|
+
* one entry: `git-worktree` at priority 100. Idempotent.
|
|
18
|
+
*/
|
|
19
|
+
export declare function registerBuiltinTreeProviders(): void;
|
|
20
|
+
/** Empty the registry. Intended for tests. */
|
|
21
|
+
export declare function clearTreeProviders(): void;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree provider registration. Mirrors the refs and terminal
|
|
3
|
+
* libraries: explicit registration for built-ins, free
|
|
4
|
+
* functions for ad-hoc providers, an opt-out clear for
|
|
5
|
+
* tests.
|
|
6
|
+
*/
|
|
7
|
+
import { BUILTIN_TREE_PROVIDERS } from "../internal/tree/builtins.js";
|
|
8
|
+
import { clear, register, unregister } from "../internal/tree/registry.js";
|
|
9
|
+
/**
|
|
10
|
+
* Register a tree provider. Overwrites any previously
|
|
11
|
+
* registered provider with the same id.
|
|
12
|
+
*/
|
|
13
|
+
export function registerTreeProvider(provider) {
|
|
14
|
+
register(provider);
|
|
15
|
+
}
|
|
16
|
+
/** Remove a provider from the registry. Idempotent. */
|
|
17
|
+
export function unregisterTreeProvider(id) {
|
|
18
|
+
unregister(id);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Seed the registry with the built-in providers. Currently
|
|
22
|
+
* one entry: `git-worktree` at priority 100. Idempotent.
|
|
23
|
+
*/
|
|
24
|
+
export function registerBuiltinTreeProviders() {
|
|
25
|
+
for (const provider of BUILTIN_TREE_PROVIDERS)
|
|
26
|
+
register(provider);
|
|
27
|
+
}
|
|
28
|
+
/** Empty the registry. Intended for tests. */
|
|
29
|
+
export function clearTreeProviders() {
|
|
30
|
+
clear();
|
|
31
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider resolution: pick the active tree provider for a
|
|
3
|
+
* given repo root.
|
|
4
|
+
*
|
|
5
|
+
* Resolution order: every registered provider, sorted by
|
|
6
|
+
* `priority` ascending (smaller numbers first); the first
|
|
7
|
+
* whose `appliesTo(repoRoot)` returns true wins. Built-ins
|
|
8
|
+
* live at 100; downstream packages use lower numbers to
|
|
9
|
+
* take over.
|
|
10
|
+
*/
|
|
11
|
+
import type { TreeProvider } from "./types.js";
|
|
12
|
+
/** Look up a provider by id, or `undefined`. */
|
|
13
|
+
export declare function getTreeProvider(id: string): TreeProvider | undefined;
|
|
14
|
+
/** Snapshot of every registered provider. */
|
|
15
|
+
export declare function listTreeProviders(): TreeProvider[];
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the tree provider for a repo root. Returns
|
|
18
|
+
* `undefined` when no registered provider applies.
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveTreeProvider(repoRoot: string): TreeProvider | undefined;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider resolution: pick the active tree provider for a
|
|
3
|
+
* given repo root.
|
|
4
|
+
*
|
|
5
|
+
* Resolution order: every registered provider, sorted by
|
|
6
|
+
* `priority` ascending (smaller numbers first); the first
|
|
7
|
+
* whose `appliesTo(repoRoot)` returns true wins. Built-ins
|
|
8
|
+
* live at 100; downstream packages use lower numbers to
|
|
9
|
+
* take over.
|
|
10
|
+
*/
|
|
11
|
+
import { get, list } from "../internal/tree/registry.js";
|
|
12
|
+
/** Look up a provider by id, or `undefined`. */
|
|
13
|
+
export function getTreeProvider(id) {
|
|
14
|
+
return get(id);
|
|
15
|
+
}
|
|
16
|
+
/** Snapshot of every registered provider. */
|
|
17
|
+
export function listTreeProviders() {
|
|
18
|
+
return list();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resolve the tree provider for a repo root. Returns
|
|
22
|
+
* `undefined` when no registered provider applies.
|
|
23
|
+
*/
|
|
24
|
+
export function resolveTreeProvider(repoRoot) {
|
|
25
|
+
const ranked = [...list()].sort((a, b) => a.priority - b.priority);
|
|
26
|
+
for (const provider of ranked) {
|
|
27
|
+
if (provider.appliesTo(repoRoot))
|
|
28
|
+
return provider;
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public types for the tree library.
|
|
3
|
+
*
|
|
4
|
+
* A `TreeProvider` knows how to create and prune a working
|
|
5
|
+
* directory for a stream of code-bearing work. Pluggable
|
|
6
|
+
* per repo root: the built-in `git-worktree` provider
|
|
7
|
+
* handles ordinary git repos at
|
|
8
|
+
* `<repo>/.worktrees/<name>/`; downstream packages
|
|
9
|
+
* register higher-priority providers for the repos they
|
|
10
|
+
* specialise in.
|
|
11
|
+
*/
|
|
12
|
+
/** Where the tree lives on disk and what's checked out. */
|
|
13
|
+
export interface TreeHandle {
|
|
14
|
+
/** Absolute path to the tree's working directory. */
|
|
15
|
+
path: string;
|
|
16
|
+
/** Branch name checked out at `path`, when known. */
|
|
17
|
+
branch?: string;
|
|
18
|
+
/** Origin repo's root, when the provider knows it. */
|
|
19
|
+
repoRoot?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Id of the provider that created the tree. Lets the
|
|
22
|
+
* prune side pick the right provider back up even if
|
|
23
|
+
* the active provider changed between create and
|
|
24
|
+
* prune.
|
|
25
|
+
*/
|
|
26
|
+
providerId: string;
|
|
27
|
+
}
|
|
28
|
+
/** Input for `TreeProvider.create`. */
|
|
29
|
+
export interface CreateTreeInput {
|
|
30
|
+
/** Suggested branch/tree name (slug-like). */
|
|
31
|
+
name: string;
|
|
32
|
+
/** Repo root the tree should branch off. */
|
|
33
|
+
repoRoot: string;
|
|
34
|
+
/**
|
|
35
|
+
* Base branch to branch from. Defaults to the repo's
|
|
36
|
+
* default branch when omitted.
|
|
37
|
+
*/
|
|
38
|
+
baseBranch?: string;
|
|
39
|
+
}
|
|
40
|
+
/** Input for `TreeProvider.prune`. */
|
|
41
|
+
export interface PruneTreeInput {
|
|
42
|
+
/** Absolute path to the tree to prune. */
|
|
43
|
+
path: string;
|
|
44
|
+
/**
|
|
45
|
+
* When true, ignore safety checks (dirty working
|
|
46
|
+
* directory, unmerged branch) and delete anyway. A
|
|
47
|
+
* higher-level safety gate forwards the caller's
|
|
48
|
+
* resolution answer through this flag.
|
|
49
|
+
*/
|
|
50
|
+
force?: boolean;
|
|
51
|
+
}
|
|
52
|
+
/** A pluggable working-directory provider. */
|
|
53
|
+
export interface TreeProvider {
|
|
54
|
+
/** Stable identifier (e.g. "git-worktree", "dev-tree"). */
|
|
55
|
+
id: string;
|
|
56
|
+
/**
|
|
57
|
+
* Resolution priority. Lower numbers run first; the
|
|
58
|
+
* first provider whose `appliesTo(repoRoot)` returns
|
|
59
|
+
* true wins. Built-ins live at 100; downstream
|
|
60
|
+
* specialisations use smaller numbers to take over.
|
|
61
|
+
*/
|
|
62
|
+
priority: number;
|
|
63
|
+
/**
|
|
64
|
+
* Returns true when this provider handles the given
|
|
65
|
+
* repo root. Cheap and synchronous; do filesystem
|
|
66
|
+
* checks only when they're trivial.
|
|
67
|
+
*/
|
|
68
|
+
appliesTo(repoRoot: string): boolean;
|
|
69
|
+
/** Create a tree. Returns the handle to persist. */
|
|
70
|
+
create(input: CreateTreeInput): Promise<TreeHandle>;
|
|
71
|
+
/**
|
|
72
|
+
* Prune a tree. Providers throw on safety conflicts
|
|
73
|
+
* (dirty state, unmerged branch) unless `force` is
|
|
74
|
+
* true.
|
|
75
|
+
*/
|
|
76
|
+
prune(input: PruneTreeInput): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Optional: list trees the provider knows about under
|
|
79
|
+
* a given repo root. Helpful for reconciling
|
|
80
|
+
* frontmatter against on-disk state.
|
|
81
|
+
*/
|
|
82
|
+
list?(repoRoot: string): Promise<TreeHandle[]>;
|
|
83
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public types for the tree library.
|
|
3
|
+
*
|
|
4
|
+
* A `TreeProvider` knows how to create and prune a working
|
|
5
|
+
* directory for a stream of code-bearing work. Pluggable
|
|
6
|
+
* per repo root: the built-in `git-worktree` provider
|
|
7
|
+
* handles ordinary git repos at
|
|
8
|
+
* `<repo>/.worktrees/<name>/`; downstream packages
|
|
9
|
+
* register higher-priority providers for the repos they
|
|
10
|
+
* specialise in.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writing a count the way a person would say it.
|
|
3
|
+
*
|
|
4
|
+
* The alternative writes itself and reads badly: `${n} tree(s)` is correct for every
|
|
5
|
+
* n and natural for none, and the single-item case is the common one, so the tell
|
|
6
|
+
* shows constantly. One surface here had a private helper for this and the other two
|
|
7
|
+
* spelled `(s)` inline in fifty places, which meant a session could show `1 branch`
|
|
8
|
+
* and `1 tree(s)` a line apart.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* A number and its noun, pluralized.
|
|
12
|
+
*
|
|
13
|
+
* Pass `plural` for a noun that does not simply take an s: `count(2, "entry",
|
|
14
|
+
* "entries")`. Zero takes the plural, as English does: nought trees, not nought tree.
|
|
15
|
+
*/
|
|
16
|
+
export declare function count(n: number, singular: string, plural?: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Just the noun, for a sentence that has already said the number or does not want
|
|
19
|
+
* to. `${found.length} in ${noun(found.length, "tree")}` reads oddly; `Found 3, in 2
|
|
20
|
+
* trees` does not.
|
|
21
|
+
*/
|
|
22
|
+
export declare function noun(n: number, singular: string, plural?: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* The verb to agree with a count: `is` for one, `are` otherwise.
|
|
25
|
+
*
|
|
26
|
+
* Here because a sentence built around a count usually needs it, and a caller
|
|
27
|
+
* reaching for a ternary at the call site is how `1 trees are` happens.
|
|
28
|
+
*/
|
|
29
|
+
export declare function verb(n: number, singular: string, plural: string): string;
|
package/dist/ui/count.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writing a count the way a person would say it.
|
|
3
|
+
*
|
|
4
|
+
* The alternative writes itself and reads badly: `${n} tree(s)` is correct for every
|
|
5
|
+
* n and natural for none, and the single-item case is the common one, so the tell
|
|
6
|
+
* shows constantly. One surface here had a private helper for this and the other two
|
|
7
|
+
* spelled `(s)` inline in fifty places, which meant a session could show `1 branch`
|
|
8
|
+
* and `1 tree(s)` a line apart.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* A number and its noun, pluralized.
|
|
12
|
+
*
|
|
13
|
+
* Pass `plural` for a noun that does not simply take an s: `count(2, "entry",
|
|
14
|
+
* "entries")`. Zero takes the plural, as English does: nought trees, not nought tree.
|
|
15
|
+
*/
|
|
16
|
+
export function count(n, singular, plural) {
|
|
17
|
+
return `${n} ${noun(n, singular, plural)}`;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Just the noun, for a sentence that has already said the number or does not want
|
|
21
|
+
* to. `${found.length} in ${noun(found.length, "tree")}` reads oddly; `Found 3, in 2
|
|
22
|
+
* trees` does not.
|
|
23
|
+
*/
|
|
24
|
+
export function noun(n, singular, plural) {
|
|
25
|
+
return n === 1 ? singular : (plural ?? `${singular}s`);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The verb to agree with a count: `is` for one, `are` otherwise.
|
|
29
|
+
*
|
|
30
|
+
* Here because a sentence built around a count usually needs it, and a caller
|
|
31
|
+
* reaching for a ternary at the call site is how `1 trees are` happens.
|
|
32
|
+
*/
|
|
33
|
+
export function verb(n, singular, plural) {
|
|
34
|
+
return n === 1 ? singular : plural;
|
|
35
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writing a path the way a person would say it.
|
|
3
|
+
*
|
|
4
|
+
* Absolute paths under a home directory carry a prefix that is the same on every
|
|
5
|
+
* line and tells the reader nothing. A tree listing is the worst case: two lines
|
|
6
|
+
* where the interesting halves are a key and a provider, and the widest thing on
|
|
7
|
+
* screen is a directory nobody has to type.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* A path with the home directory written as `~`.
|
|
11
|
+
*
|
|
12
|
+
* **For display only.** The result is not a path any tool can open: `~` is a
|
|
13
|
+
* shell courtesy, not a filesystem entry, and expanding it is the shell's job.
|
|
14
|
+
* So this belongs in the text a person reads and never in the `details` of a
|
|
15
|
+
* tool answer, where a caller may reasonably feed a path straight back into
|
|
16
|
+
* another call. When both are wanted, abbreviate the view and keep the absolute
|
|
17
|
+
* path in the details.
|
|
18
|
+
*
|
|
19
|
+
* Rewrites a leading home prefix and nothing else. A relative path is returned
|
|
20
|
+
* as it came, which is what makes this safe to apply to a list that mixes the
|
|
21
|
+
* two: a repo-relative `lib/work/tree.ts` has no prefix to lose. A path that
|
|
22
|
+
* merely mentions the home directory somewhere in the middle is also left alone,
|
|
23
|
+
* since only the prefix is a home directory rather than a coincidence.
|
|
24
|
+
*/
|
|
25
|
+
export declare function displayPath(path: string, home?: string): string;
|