@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,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chords, as a person would write them.
|
|
3
|
+
*
|
|
4
|
+
* "Ctrl+Shift+K" is how a keyboard shortcut is written down
|
|
5
|
+
* everywhere except in the protocol, which wants an ordered
|
|
6
|
+
* sequence of key events and a bitmask. Parsing happens here so
|
|
7
|
+
* that a mistyped chord is refused by name before anything is
|
|
8
|
+
* dispatched, rather than silently pressing the wrong thing.
|
|
9
|
+
*
|
|
10
|
+
* The set of real key names is passed in rather than kept here.
|
|
11
|
+
* The browser driver owns that table, and copying it would mean
|
|
12
|
+
* maintaining a second opinion about what keys exist.
|
|
13
|
+
*/
|
|
14
|
+
/** The four modifiers the protocol tracks as a bitmask. */
|
|
15
|
+
export type ModifierName = "Alt" | "Control" | "Meta" | "Shift";
|
|
16
|
+
/**
|
|
17
|
+
* The protocol's modifier bits.
|
|
18
|
+
*
|
|
19
|
+
* These are positional flags in a single integer, not an
|
|
20
|
+
* arbitrary enumeration, so they are written as the powers of
|
|
21
|
+
* two they are.
|
|
22
|
+
*/
|
|
23
|
+
export declare const MODIFIER_BITS: Readonly<Record<ModifierName, number>>;
|
|
24
|
+
/** One keypress, with whatever was held down for it. */
|
|
25
|
+
export interface Chord {
|
|
26
|
+
readonly modifiers: readonly ModifierName[];
|
|
27
|
+
readonly key: string;
|
|
28
|
+
readonly bitmask: number;
|
|
29
|
+
}
|
|
30
|
+
/** What went wrong, and what might have been meant. */
|
|
31
|
+
export interface ChordRefusal {
|
|
32
|
+
readonly token: string;
|
|
33
|
+
readonly message: string;
|
|
34
|
+
readonly candidates: readonly string[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parse a sequence of chords: "Tab Tab Enter", "Ctrl+K",
|
|
38
|
+
* "Shift+ArrowDown".
|
|
39
|
+
*
|
|
40
|
+
* Chords are separated by spaces and keys within a chord by
|
|
41
|
+
* plus. A literal space is written as the word Space, since a
|
|
42
|
+
* space character is already doing the separating.
|
|
43
|
+
*/
|
|
44
|
+
export declare function parseChords(text: string, knownKeys: ReadonlySet<string>): {
|
|
45
|
+
chords: readonly Chord[];
|
|
46
|
+
} | {
|
|
47
|
+
refusal: ChordRefusal;
|
|
48
|
+
};
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chords, as a person would write them.
|
|
3
|
+
*
|
|
4
|
+
* "Ctrl+Shift+K" is how a keyboard shortcut is written down
|
|
5
|
+
* everywhere except in the protocol, which wants an ordered
|
|
6
|
+
* sequence of key events and a bitmask. Parsing happens here so
|
|
7
|
+
* that a mistyped chord is refused by name before anything is
|
|
8
|
+
* dispatched, rather than silently pressing the wrong thing.
|
|
9
|
+
*
|
|
10
|
+
* The set of real key names is passed in rather than kept here.
|
|
11
|
+
* The browser driver owns that table, and copying it would mean
|
|
12
|
+
* maintaining a second opinion about what keys exist.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* The protocol's modifier bits.
|
|
16
|
+
*
|
|
17
|
+
* These are positional flags in a single integer, not an
|
|
18
|
+
* arbitrary enumeration, so they are written as the powers of
|
|
19
|
+
* two they are.
|
|
20
|
+
*/
|
|
21
|
+
export const MODIFIER_BITS = {
|
|
22
|
+
Alt: 1,
|
|
23
|
+
Control: 2,
|
|
24
|
+
Meta: 4,
|
|
25
|
+
Shift: 8,
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Names people actually type, mapped to what the browser calls
|
|
29
|
+
* them. Cmd and Super are the same key under different
|
|
30
|
+
* traditions, and refusing either would be pedantry.
|
|
31
|
+
*/
|
|
32
|
+
const ALIASES = {
|
|
33
|
+
cmd: "Meta",
|
|
34
|
+
command: "Meta",
|
|
35
|
+
super: "Meta",
|
|
36
|
+
win: "Meta",
|
|
37
|
+
meta: "Meta",
|
|
38
|
+
ctrl: "Control",
|
|
39
|
+
control: "Control",
|
|
40
|
+
alt: "Alt",
|
|
41
|
+
opt: "Alt",
|
|
42
|
+
option: "Alt",
|
|
43
|
+
shift: "Shift",
|
|
44
|
+
esc: "Escape",
|
|
45
|
+
escape: "Escape",
|
|
46
|
+
del: "Delete",
|
|
47
|
+
delete: "Delete",
|
|
48
|
+
ins: "Insert",
|
|
49
|
+
return: "Enter",
|
|
50
|
+
enter: "Enter",
|
|
51
|
+
space: " ",
|
|
52
|
+
spacebar: " ",
|
|
53
|
+
up: "ArrowUp",
|
|
54
|
+
down: "ArrowDown",
|
|
55
|
+
left: "ArrowLeft",
|
|
56
|
+
right: "ArrowRight",
|
|
57
|
+
pgup: "PageUp",
|
|
58
|
+
pgdn: "PageDown",
|
|
59
|
+
pagedown: "PageDown",
|
|
60
|
+
pageup: "PageUp",
|
|
61
|
+
};
|
|
62
|
+
/** How many near misses are worth offering. */
|
|
63
|
+
const MAX_CANDIDATES = 5;
|
|
64
|
+
/** Modifiers are reported in this order, so chords compare. */
|
|
65
|
+
const MODIFIER_ORDER = [
|
|
66
|
+
"Control",
|
|
67
|
+
"Alt",
|
|
68
|
+
"Shift",
|
|
69
|
+
"Meta",
|
|
70
|
+
];
|
|
71
|
+
const isModifier = (name) => name in MODIFIER_BITS;
|
|
72
|
+
/**
|
|
73
|
+
* Parse a sequence of chords: "Tab Tab Enter", "Ctrl+K",
|
|
74
|
+
* "Shift+ArrowDown".
|
|
75
|
+
*
|
|
76
|
+
* Chords are separated by spaces and keys within a chord by
|
|
77
|
+
* plus. A literal space is written as the word Space, since a
|
|
78
|
+
* space character is already doing the separating.
|
|
79
|
+
*/
|
|
80
|
+
export function parseChords(text, knownKeys) {
|
|
81
|
+
const words = text.trim().split(/\s+/).filter(Boolean);
|
|
82
|
+
if (words.length === 0) {
|
|
83
|
+
return {
|
|
84
|
+
refusal: {
|
|
85
|
+
token: "",
|
|
86
|
+
message: "No keys were given.",
|
|
87
|
+
candidates: [],
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
const chords = [];
|
|
92
|
+
for (const word of words) {
|
|
93
|
+
const parsed = parseChord(word, knownKeys);
|
|
94
|
+
if ("refusal" in parsed)
|
|
95
|
+
return parsed;
|
|
96
|
+
chords.push(parsed.chord);
|
|
97
|
+
}
|
|
98
|
+
return { chords };
|
|
99
|
+
}
|
|
100
|
+
/** Parse one chord: modifiers, then the key they apply to. */
|
|
101
|
+
function parseChord(word, knownKeys) {
|
|
102
|
+
// A lone plus is a key, not a separator with nothing around
|
|
103
|
+
// it, so splitting has to leave it alone.
|
|
104
|
+
const tokens = word === "+" ? ["+"] : word.split("+").filter(Boolean);
|
|
105
|
+
if (tokens.length === 0) {
|
|
106
|
+
return {
|
|
107
|
+
refusal: {
|
|
108
|
+
token: word,
|
|
109
|
+
message: `'${word}' is not a key.`,
|
|
110
|
+
candidates: [],
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
const modifiers = [];
|
|
115
|
+
let key;
|
|
116
|
+
for (const token of tokens) {
|
|
117
|
+
const canonical = canonicalize(token, knownKeys);
|
|
118
|
+
if (canonical === undefined) {
|
|
119
|
+
return {
|
|
120
|
+
refusal: {
|
|
121
|
+
token,
|
|
122
|
+
message: `There is no key called '${token}'.`,
|
|
123
|
+
candidates: nearest(token, knownKeys),
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
// A modifier is the key being pressed only when it stands
|
|
128
|
+
// alone. Holding Shift is a real thing to do; Ctrl+Shift is
|
|
129
|
+
// someone who has not finished typing the chord.
|
|
130
|
+
const alone = tokens.length === 1;
|
|
131
|
+
if (isModifier(canonical) && !alone) {
|
|
132
|
+
modifiers.push(canonical);
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
key = canonical;
|
|
136
|
+
}
|
|
137
|
+
if (key === undefined) {
|
|
138
|
+
return {
|
|
139
|
+
refusal: {
|
|
140
|
+
token: word,
|
|
141
|
+
message: `'${word}' is only modifiers, with no key to press.`,
|
|
142
|
+
candidates: [],
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
const held = new Set(modifiers);
|
|
147
|
+
const ordered = MODIFIER_ORDER.filter((name) => held.has(name));
|
|
148
|
+
let bitmask = 0;
|
|
149
|
+
for (const name of ordered)
|
|
150
|
+
bitmask |= MODIFIER_BITS[name];
|
|
151
|
+
return { chord: { modifiers: ordered, key, bitmask } };
|
|
152
|
+
}
|
|
153
|
+
/** What the browser calls the key this token names. */
|
|
154
|
+
function canonicalize(token, knownKeys) {
|
|
155
|
+
// An exact match wins outright, so a single lowercase letter
|
|
156
|
+
// stays lowercase and is not read as an alias.
|
|
157
|
+
if (knownKeys.has(token))
|
|
158
|
+
return token;
|
|
159
|
+
const alias = ALIASES[token.toLowerCase()];
|
|
160
|
+
if (alias !== undefined && (knownKeys.has(alias) || isModifier(alias))) {
|
|
161
|
+
return alias;
|
|
162
|
+
}
|
|
163
|
+
// Case-insensitive last, so that 'tab' finds Tab without
|
|
164
|
+
// letting 'A' quietly become 'a'.
|
|
165
|
+
for (const known of knownKeys) {
|
|
166
|
+
if (known.toLowerCase() === token.toLowerCase())
|
|
167
|
+
return known;
|
|
168
|
+
}
|
|
169
|
+
return undefined;
|
|
170
|
+
}
|
|
171
|
+
/** Key names close enough to the token to be worth offering. */
|
|
172
|
+
function nearest(token, knownKeys) {
|
|
173
|
+
const wanted = token.toLowerCase();
|
|
174
|
+
const scored = [];
|
|
175
|
+
for (const known of knownKeys) {
|
|
176
|
+
const name = known.toLowerCase();
|
|
177
|
+
if (name.startsWith(wanted))
|
|
178
|
+
scored.push({ name: known, score: 0 });
|
|
179
|
+
else if (name.includes(wanted))
|
|
180
|
+
scored.push({ name: known, score: 1 });
|
|
181
|
+
else if (wanted.includes(name) && name.length > 1) {
|
|
182
|
+
scored.push({ name: known, score: 2 });
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return scored
|
|
186
|
+
.sort((a, b) => a.score - b.score || a.name.length - b.name.length)
|
|
187
|
+
.slice(0, MAX_CANDIDATES)
|
|
188
|
+
.map((entry) => entry.name);
|
|
189
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mouse movement as a sequence, not a teleport.
|
|
3
|
+
*
|
|
4
|
+
* A click can be delivered at a point, but a drag cannot: an
|
|
5
|
+
* element that follows the pointer needs to see it move, and a
|
|
6
|
+
* hover menu that opens on entry needs the pointer to arrive
|
|
7
|
+
* rather than appear. So a gesture is composed as the ordered
|
|
8
|
+
* events a real hand would produce, and the composition is pure
|
|
9
|
+
* so it can be checked without a browser.
|
|
10
|
+
*/
|
|
11
|
+
/** A point in viewport coordinates. */
|
|
12
|
+
export interface Point {
|
|
13
|
+
readonly x: number;
|
|
14
|
+
readonly y: number;
|
|
15
|
+
}
|
|
16
|
+
/** Which button an event carries. */
|
|
17
|
+
export type MouseButton = "left" | "middle" | "right" | "back" | "forward";
|
|
18
|
+
/** One mouse event, ready to dispatch. */
|
|
19
|
+
export interface PointerEventStep {
|
|
20
|
+
readonly type: "mouseMoved" | "mousePressed" | "mouseReleased";
|
|
21
|
+
readonly x: number;
|
|
22
|
+
readonly y: number;
|
|
23
|
+
readonly button: MouseButton | "none";
|
|
24
|
+
readonly clickCount: number;
|
|
25
|
+
}
|
|
26
|
+
/** How a drag is drawn between two points. */
|
|
27
|
+
export interface DragOptions {
|
|
28
|
+
/** How many intermediate moves to make on the way. */
|
|
29
|
+
readonly steps?: number;
|
|
30
|
+
readonly button?: MouseButton;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* How far along the way each step is, ending exactly at one.
|
|
34
|
+
*
|
|
35
|
+
* Everything that travels shares this: a pointer crossing the
|
|
36
|
+
* screen and two fingers changing their distance are the same
|
|
37
|
+
* ramp applied to different quantities.
|
|
38
|
+
*
|
|
39
|
+
* Fewer than one step still has to arrive somewhere, and the
|
|
40
|
+
* only defensible somewhere is the destination.
|
|
41
|
+
*/
|
|
42
|
+
export declare function ratios(steps: number): readonly number[];
|
|
43
|
+
/** Points along a straight line, ending exactly at the end. */
|
|
44
|
+
export declare function interpolate(from: Point, to: Point, steps: number): readonly Point[];
|
|
45
|
+
/**
|
|
46
|
+
* A drag: arrive, press, travel, release.
|
|
47
|
+
*
|
|
48
|
+
* The move before the press matters. Dragging from wherever the
|
|
49
|
+
* pointer happened to be left would press the wrong element.
|
|
50
|
+
*/
|
|
51
|
+
export declare function composeDrag(from: Point, to: Point, options?: DragOptions): readonly PointerEventStep[];
|
|
52
|
+
/** A click at a point, optionally repeated for double or triple. */
|
|
53
|
+
export declare function composeClick(at: Point, options?: {
|
|
54
|
+
button?: MouseButton;
|
|
55
|
+
count?: number;
|
|
56
|
+
}): readonly PointerEventStep[];
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mouse movement as a sequence, not a teleport.
|
|
3
|
+
*
|
|
4
|
+
* A click can be delivered at a point, but a drag cannot: an
|
|
5
|
+
* element that follows the pointer needs to see it move, and a
|
|
6
|
+
* hover menu that opens on entry needs the pointer to arrive
|
|
7
|
+
* rather than appear. So a gesture is composed as the ordered
|
|
8
|
+
* events a real hand would produce, and the composition is pure
|
|
9
|
+
* so it can be checked without a browser.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* How many moves a drag makes by default.
|
|
13
|
+
*
|
|
14
|
+
* One move is a teleport and anything watching mousemove sees a
|
|
15
|
+
* single jump. Enough intermediate points that a drag handler
|
|
16
|
+
* runs several times is the difference between exercising the
|
|
17
|
+
* interaction and merely landing on its endpoint.
|
|
18
|
+
*/
|
|
19
|
+
const DEFAULT_DRAG_STEPS = 10;
|
|
20
|
+
/**
|
|
21
|
+
* How far along the way each step is, ending exactly at one.
|
|
22
|
+
*
|
|
23
|
+
* Everything that travels shares this: a pointer crossing the
|
|
24
|
+
* screen and two fingers changing their distance are the same
|
|
25
|
+
* ramp applied to different quantities.
|
|
26
|
+
*
|
|
27
|
+
* Fewer than one step still has to arrive somewhere, and the
|
|
28
|
+
* only defensible somewhere is the destination.
|
|
29
|
+
*/
|
|
30
|
+
export function ratios(steps) {
|
|
31
|
+
if (steps < 1)
|
|
32
|
+
return [1];
|
|
33
|
+
return Array.from({ length: steps }, (_, index) => (index + 1) / steps);
|
|
34
|
+
}
|
|
35
|
+
/** Points along a straight line, ending exactly at the end. */
|
|
36
|
+
export function interpolate(from, to, steps) {
|
|
37
|
+
return ratios(steps).map((ratio) => ({
|
|
38
|
+
x: from.x + (to.x - from.x) * ratio,
|
|
39
|
+
y: from.y + (to.y - from.y) * ratio,
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* A drag: arrive, press, travel, release.
|
|
44
|
+
*
|
|
45
|
+
* The move before the press matters. Dragging from wherever the
|
|
46
|
+
* pointer happened to be left would press the wrong element.
|
|
47
|
+
*/
|
|
48
|
+
export function composeDrag(from, to, options = {}) {
|
|
49
|
+
const button = options.button ?? "left";
|
|
50
|
+
const steps = options.steps ?? DEFAULT_DRAG_STEPS;
|
|
51
|
+
return [
|
|
52
|
+
{ type: "mouseMoved", ...from, button: "none", clickCount: 0 },
|
|
53
|
+
{ type: "mousePressed", ...from, button, clickCount: 1 },
|
|
54
|
+
...interpolate(from, to, steps).map((point) => ({
|
|
55
|
+
type: "mouseMoved",
|
|
56
|
+
...point,
|
|
57
|
+
button,
|
|
58
|
+
clickCount: 1,
|
|
59
|
+
})),
|
|
60
|
+
{ type: "mouseReleased", ...to, button, clickCount: 1 },
|
|
61
|
+
];
|
|
62
|
+
}
|
|
63
|
+
/** A click at a point, optionally repeated for double or triple. */
|
|
64
|
+
export function composeClick(at, options = {}) {
|
|
65
|
+
const button = options.button ?? "left";
|
|
66
|
+
const count = Math.max(1, options.count ?? 1);
|
|
67
|
+
const steps = [
|
|
68
|
+
{ type: "mouseMoved", ...at, button: "none", clickCount: 0 },
|
|
69
|
+
];
|
|
70
|
+
// A double click is two clicks whose count rises, not one
|
|
71
|
+
// event with a count of two. Anything listening for dblclick
|
|
72
|
+
// is watching that number climb.
|
|
73
|
+
for (let click = 1; click <= count; click += 1) {
|
|
74
|
+
steps.push({ type: "mousePressed", ...at, button, clickCount: click }, { type: "mouseReleased", ...at, button, clickCount: click });
|
|
75
|
+
}
|
|
76
|
+
return steps;
|
|
77
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gestures, composed from touch points.
|
|
3
|
+
*
|
|
4
|
+
* A tap is not a click. A page that handles touchstart, or that
|
|
5
|
+
* distinguishes a swipe from a scroll, cannot be exercised with
|
|
6
|
+
* a mouse at all, and on a phone layout those handlers are
|
|
7
|
+
* usually the only way to reach half the interface.
|
|
8
|
+
*
|
|
9
|
+
* Pinch is the reason these are sequences rather than events: it
|
|
10
|
+
* needs two points moving relative to each other, which no
|
|
11
|
+
* single event can express.
|
|
12
|
+
*/
|
|
13
|
+
import { type Point } from "./pointer.js";
|
|
14
|
+
/** One finger, at a moment. */
|
|
15
|
+
export interface TouchPoint {
|
|
16
|
+
readonly x: number;
|
|
17
|
+
readonly y: number;
|
|
18
|
+
/** Which finger this is, stable across the gesture. */
|
|
19
|
+
readonly id: number;
|
|
20
|
+
}
|
|
21
|
+
/** One touch event, ready to dispatch. */
|
|
22
|
+
export interface TouchStep {
|
|
23
|
+
readonly type: "touchStart" | "touchMove" | "touchEnd" | "touchCancel";
|
|
24
|
+
readonly points: readonly TouchPoint[];
|
|
25
|
+
/** How long to wait after dispatching, when it matters. */
|
|
26
|
+
readonly pauseMs?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* How long a press has to last to count as long.
|
|
30
|
+
*
|
|
31
|
+
* Chrome's own gesture recognizer uses half a second, and a
|
|
32
|
+
* context menu that opens on long press is watching for roughly
|
|
33
|
+
* that, so a shorter hold is just a tap.
|
|
34
|
+
*/
|
|
35
|
+
export declare const LONG_PRESS_MS = 500;
|
|
36
|
+
/** A tap: one finger down, one finger up. */
|
|
37
|
+
export declare function composeTap(at: Point): readonly TouchStep[];
|
|
38
|
+
/**
|
|
39
|
+
* A long press: the same as a tap, held.
|
|
40
|
+
*
|
|
41
|
+
* The end carries no points because a touch that has lifted is
|
|
42
|
+
* not at a position any more, which is the protocol's rule and
|
|
43
|
+
* a sensible one.
|
|
44
|
+
*/
|
|
45
|
+
export declare function composeLongPress(at: Point, holdMs?: number): readonly TouchStep[];
|
|
46
|
+
/** A swipe: down, travel, up. */
|
|
47
|
+
export declare function composeSwipe(from: Point, to: Point, options?: {
|
|
48
|
+
steps?: number;
|
|
49
|
+
}): readonly TouchStep[];
|
|
50
|
+
/**
|
|
51
|
+
* A pinch: two fingers either side of a centre, moving together
|
|
52
|
+
* or apart.
|
|
53
|
+
*
|
|
54
|
+
* The spread is the distance between the fingers, so a spread
|
|
55
|
+
* that grows is a zoom in and one that shrinks is a zoom out.
|
|
56
|
+
* Expressing it that way means the caller never has to work out
|
|
57
|
+
* where two fingers should individually go.
|
|
58
|
+
*/
|
|
59
|
+
export declare function composePinch(centre: Point, from: number, to: number, options?: {
|
|
60
|
+
steps?: number;
|
|
61
|
+
}): readonly TouchStep[];
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gestures, composed from touch points.
|
|
3
|
+
*
|
|
4
|
+
* A tap is not a click. A page that handles touchstart, or that
|
|
5
|
+
* distinguishes a swipe from a scroll, cannot be exercised with
|
|
6
|
+
* a mouse at all, and on a phone layout those handlers are
|
|
7
|
+
* usually the only way to reach half the interface.
|
|
8
|
+
*
|
|
9
|
+
* Pinch is the reason these are sequences rather than events: it
|
|
10
|
+
* needs two points moving relative to each other, which no
|
|
11
|
+
* single event can express.
|
|
12
|
+
*/
|
|
13
|
+
import { interpolate, ratios } from "./pointer.js";
|
|
14
|
+
/** How many moves a swipe makes by default. */
|
|
15
|
+
const DEFAULT_SWIPE_STEPS = 10;
|
|
16
|
+
/** How many moves a pinch makes by default. */
|
|
17
|
+
const DEFAULT_PINCH_STEPS = 10;
|
|
18
|
+
/**
|
|
19
|
+
* How long a press has to last to count as long.
|
|
20
|
+
*
|
|
21
|
+
* Chrome's own gesture recognizer uses half a second, and a
|
|
22
|
+
* context menu that opens on long press is watching for roughly
|
|
23
|
+
* that, so a shorter hold is just a tap.
|
|
24
|
+
*/
|
|
25
|
+
export const LONG_PRESS_MS = 500;
|
|
26
|
+
/** A tap: one finger down, one finger up. */
|
|
27
|
+
export function composeTap(at) {
|
|
28
|
+
return [
|
|
29
|
+
{ type: "touchStart", points: [{ ...at, id: 0 }] },
|
|
30
|
+
{ type: "touchEnd", points: [] },
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A long press: the same as a tap, held.
|
|
35
|
+
*
|
|
36
|
+
* The end carries no points because a touch that has lifted is
|
|
37
|
+
* not at a position any more, which is the protocol's rule and
|
|
38
|
+
* a sensible one.
|
|
39
|
+
*/
|
|
40
|
+
export function composeLongPress(at, holdMs = LONG_PRESS_MS) {
|
|
41
|
+
return [
|
|
42
|
+
{ type: "touchStart", points: [{ ...at, id: 0 }], pauseMs: holdMs },
|
|
43
|
+
{ type: "touchEnd", points: [] },
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
/** A swipe: down, travel, up. */
|
|
47
|
+
export function composeSwipe(from, to, options = {}) {
|
|
48
|
+
const steps = options.steps ?? DEFAULT_SWIPE_STEPS;
|
|
49
|
+
return [
|
|
50
|
+
{ type: "touchStart", points: [{ ...from, id: 0 }] },
|
|
51
|
+
...interpolate(from, to, steps).map((point) => ({
|
|
52
|
+
type: "touchMove",
|
|
53
|
+
points: [{ ...point, id: 0 }],
|
|
54
|
+
})),
|
|
55
|
+
{ type: "touchEnd", points: [] },
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* A pinch: two fingers either side of a centre, moving together
|
|
60
|
+
* or apart.
|
|
61
|
+
*
|
|
62
|
+
* The spread is the distance between the fingers, so a spread
|
|
63
|
+
* that grows is a zoom in and one that shrinks is a zoom out.
|
|
64
|
+
* Expressing it that way means the caller never has to work out
|
|
65
|
+
* where two fingers should individually go.
|
|
66
|
+
*/
|
|
67
|
+
export function composePinch(centre, from, to, options = {}) {
|
|
68
|
+
const steps = options.steps ?? DEFAULT_PINCH_STEPS;
|
|
69
|
+
const fingers = (spread) => [
|
|
70
|
+
{ x: centre.x - spread / 2, y: centre.y, id: 0 },
|
|
71
|
+
{ x: centre.x + spread / 2, y: centre.y, id: 1 },
|
|
72
|
+
];
|
|
73
|
+
return [
|
|
74
|
+
{ type: "touchStart", points: fingers(from) },
|
|
75
|
+
...ratios(steps)
|
|
76
|
+
.map((ratio) => from + (to - from) * ratio)
|
|
77
|
+
.map((spread) => ({
|
|
78
|
+
type: "touchMove",
|
|
79
|
+
points: fingers(spread),
|
|
80
|
+
})),
|
|
81
|
+
{ type: "touchEnd", points: [] },
|
|
82
|
+
];
|
|
83
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mermaid diagram rendering.
|
|
3
|
+
*
|
|
4
|
+
* Renders Mermaid source to two artifacts: the vector SVG Mermaid
|
|
5
|
+
* produces (crisp at any zoom, the human's readable copy) and a PNG
|
|
6
|
+
* rasterized from it (the portable raster and the inline image a vision
|
|
7
|
+
* model sees). The PNG is scaled to sit just under the vision-model
|
|
8
|
+
* pixel cap, because sending a larger image only makes the API
|
|
9
|
+
* downscale and blur the text server-side. Rendering rides the shared
|
|
10
|
+
* browser lifecycle from browser.ts rather than launching its own, so
|
|
11
|
+
* it inherits the same teardown.
|
|
12
|
+
*/
|
|
13
|
+
/** A width and height in pixels. */
|
|
14
|
+
interface Dimensions {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Compute the raster scale for a diagram of the given intrinsic size so
|
|
20
|
+
* the PNG lands as close to the pixel budget as possible without
|
|
21
|
+
* crossing the long-edge or total-area cap. A diagram already larger
|
|
22
|
+
* than the cap is scaled down to fit; a smaller one is scaled up to the
|
|
23
|
+
* upscale ceiling so its text stays crisp.
|
|
24
|
+
*/
|
|
25
|
+
export declare function pngRenderScale({ width, height }: Dimensions): number;
|
|
26
|
+
/**
|
|
27
|
+
* Final integer PNG dimensions for a diagram of the given intrinsic
|
|
28
|
+
* size. The continuous scale is chosen so the unrounded box fits the
|
|
29
|
+
* budget; flooring to whole pixels can only shrink it, so the returned
|
|
30
|
+
* dimensions never cross the long-edge or total-area cap even after
|
|
31
|
+
* integerization (which independent rounding would not guarantee).
|
|
32
|
+
*/
|
|
33
|
+
export declare function pngPixelSize({ width, height }: Dimensions): Dimensions;
|
|
34
|
+
/**
|
|
35
|
+
* Fetch the Mermaid library source once, in Node, and cache it.
|
|
36
|
+
* Injecting the cached content into the render page means the page
|
|
37
|
+
* itself does no network work mid-render, which is what made
|
|
38
|
+
* rendering hang under a busy shared browser.
|
|
39
|
+
*/
|
|
40
|
+
export declare function loadMermaidSource(fetchImpl?: typeof fetch): Promise<string>;
|
|
41
|
+
/** Thrown when Mermaid source cannot be rendered (bad syntax or no library). */
|
|
42
|
+
export declare class MermaidRenderError extends Error {
|
|
43
|
+
constructor(message: string);
|
|
44
|
+
}
|
|
45
|
+
/** A rendered Mermaid diagram. */
|
|
46
|
+
export interface MermaidRender {
|
|
47
|
+
/** Path to the PNG file on disk (the caller's path, or a temp path). */
|
|
48
|
+
pngPath: string;
|
|
49
|
+
/** Path to the SVG file on disk, beside the PNG (crisp at any zoom). */
|
|
50
|
+
svgPath: string;
|
|
51
|
+
/** Base64 PNG, for returning to a vision model inline. */
|
|
52
|
+
base64: string;
|
|
53
|
+
/** Final PNG width in pixels, after scaling to the cap. */
|
|
54
|
+
width: number;
|
|
55
|
+
/** Final PNG height in pixels, after scaling to the cap. */
|
|
56
|
+
height: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Render Mermaid source to an SVG and a PNG on disk and return their
|
|
60
|
+
* paths plus a base64 copy of the PNG and its final dimensions. The SVG
|
|
61
|
+
* is the vector artifact (crisp at any zoom); the PNG is rasterized from
|
|
62
|
+
* it, scaled toward the vision-model pixel budget (up to an upscale
|
|
63
|
+
* ceiling) without crossing it. The output path must name the PNG; the
|
|
64
|
+
* SVG is written beside it with the same base name. Reuses the shared
|
|
65
|
+
* headless browser. Throws MermaidRenderError when the library cannot
|
|
66
|
+
* load, the path is not a PNG, or the source is invalid.
|
|
67
|
+
*/
|
|
68
|
+
export declare function renderMermaid(source: string, outputPath?: string): Promise<MermaidRender>;
|
|
69
|
+
export {};
|