@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,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Refs lookup: read access into the registry plus parsing
|
|
3
|
+
* helpers and URL building.
|
|
4
|
+
*
|
|
5
|
+
* `parseRef` is for short strings (an alias value, a single
|
|
6
|
+
* link in a frontmatter scalar): it returns the first match
|
|
7
|
+
* across registered types. `parseAllRefs` is for long
|
|
8
|
+
* bodies of prose: it returns every match.
|
|
9
|
+
*/
|
|
10
|
+
import type { Ref, RefType } from "./types.js";
|
|
11
|
+
/** Look up a registered type by its identifier. */
|
|
12
|
+
export declare function getRefType(type: string): RefType | undefined;
|
|
13
|
+
/** Snapshot of every registered type in registration order. */
|
|
14
|
+
export declare function listRefTypes(): RefType[];
|
|
15
|
+
/**
|
|
16
|
+
* Parse a short text fragment as a single ref. Returns the
|
|
17
|
+
* first match across registered types, walking the registry
|
|
18
|
+
* in registration order. Returns `undefined` when nothing
|
|
19
|
+
* matches.
|
|
20
|
+
*
|
|
21
|
+
* Use this for inputs the caller believes contains one ref
|
|
22
|
+
* (an alias scalar, a CLI argument, a single line of text).
|
|
23
|
+
* For longer prose use `parseAllRefs`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseRef(text: string): Ref | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Parse a longer body of text and return every ref found
|
|
28
|
+
* across registered types. Duplicate `{type, value}` pairs
|
|
29
|
+
* are dropped. Order follows registration order across
|
|
30
|
+
* types, then per-type match order within each.
|
|
31
|
+
*/
|
|
32
|
+
export declare function parseAllRefs(text: string): Ref[];
|
|
33
|
+
/**
|
|
34
|
+
* Build a canonical URL from a structured ref. Returns
|
|
35
|
+
* `undefined` when the ref's type has no `url` function or
|
|
36
|
+
* when the value cannot be encoded.
|
|
37
|
+
*/
|
|
38
|
+
export declare function urlForRef(ref: Ref): string | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Why this ref has no URL, or nothing when it has one.
|
|
41
|
+
*
|
|
42
|
+
* The counterpart to {@link urlForRef}, kept separate for the same
|
|
43
|
+
* reason the front-matter parser and its explainer are separate: most
|
|
44
|
+
* callers want a link or nothing, and only the one rendering a list a
|
|
45
|
+
* person reads has to account for the gap.
|
|
46
|
+
*
|
|
47
|
+
* Silence here is not the same as a missing link. A type with no URL
|
|
48
|
+
* form at all, like a person identity, is not failing to encode
|
|
49
|
+
* anything, so it says nothing and the caller shows no link and no
|
|
50
|
+
* complaint. A type that could encode and did not is where the reason
|
|
51
|
+
* comes from.
|
|
52
|
+
*/
|
|
53
|
+
export declare function whyRefHasNoUrl(ref: Ref): string | undefined;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Refs lookup: read access into the registry plus parsing
|
|
3
|
+
* helpers and URL building.
|
|
4
|
+
*
|
|
5
|
+
* `parseRef` is for short strings (an alias value, a single
|
|
6
|
+
* link in a frontmatter scalar): it returns the first match
|
|
7
|
+
* across registered types. `parseAllRefs` is for long
|
|
8
|
+
* bodies of prose: it returns every match.
|
|
9
|
+
*/
|
|
10
|
+
import { get, list, parseAll } from "../internal/refs/registry.js";
|
|
11
|
+
/** Look up a registered type by its identifier. */
|
|
12
|
+
export function getRefType(type) {
|
|
13
|
+
return get(type);
|
|
14
|
+
}
|
|
15
|
+
/** Snapshot of every registered type in registration order. */
|
|
16
|
+
export function listRefTypes() {
|
|
17
|
+
return list();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Parse a short text fragment as a single ref. Returns the
|
|
21
|
+
* first match across registered types, walking the registry
|
|
22
|
+
* in registration order. Returns `undefined` when nothing
|
|
23
|
+
* matches.
|
|
24
|
+
*
|
|
25
|
+
* Use this for inputs the caller believes contains one ref
|
|
26
|
+
* (an alias scalar, a CLI argument, a single line of text).
|
|
27
|
+
* For longer prose use `parseAllRefs`.
|
|
28
|
+
*/
|
|
29
|
+
export function parseRef(text) {
|
|
30
|
+
for (const rt of list()) {
|
|
31
|
+
const matches = rt.matchAll(text);
|
|
32
|
+
if (matches.length > 0)
|
|
33
|
+
return { type: rt.type, value: matches[0] };
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Parse a longer body of text and return every ref found
|
|
39
|
+
* across registered types. Duplicate `{type, value}` pairs
|
|
40
|
+
* are dropped. Order follows registration order across
|
|
41
|
+
* types, then per-type match order within each.
|
|
42
|
+
*/
|
|
43
|
+
export function parseAllRefs(text) {
|
|
44
|
+
return parseAll(text);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Build a canonical URL from a structured ref. Returns
|
|
48
|
+
* `undefined` when the ref's type has no `url` function or
|
|
49
|
+
* when the value cannot be encoded.
|
|
50
|
+
*/
|
|
51
|
+
export function urlForRef(ref) {
|
|
52
|
+
const encoded = get(ref.type)?.url?.(ref.value);
|
|
53
|
+
if (encoded !== undefined)
|
|
54
|
+
return encoded;
|
|
55
|
+
// A value that is already a link is its own link. Sweeping the live
|
|
56
|
+
// store turned up refs under types nobody registered, several of
|
|
57
|
+
// them holding a whole `https://` URL and rendering as no link at
|
|
58
|
+
// all, which is absurd: `url: https://...` had a link in it the
|
|
59
|
+
// entire time. This is the identity function rather than an
|
|
60
|
+
// inference, so it invents nothing, and it runs second so a
|
|
61
|
+
// registered type's own encoding always wins.
|
|
62
|
+
return absoluteUrl(ref.value);
|
|
63
|
+
}
|
|
64
|
+
/** The value itself, when the value is already an http or https URL. */
|
|
65
|
+
function absoluteUrl(value) {
|
|
66
|
+
if (!/^https?:\/\//.test(value))
|
|
67
|
+
return undefined;
|
|
68
|
+
try {
|
|
69
|
+
return new URL(value).href === "" ? undefined : value;
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Starts like a URL and is not one. Nothing to hand back, and
|
|
73
|
+
// nothing worth complaining about either: an unregistered type
|
|
74
|
+
// never promised a link.
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Why this ref has no URL, or nothing when it has one.
|
|
80
|
+
*
|
|
81
|
+
* The counterpart to {@link urlForRef}, kept separate for the same
|
|
82
|
+
* reason the front-matter parser and its explainer are separate: most
|
|
83
|
+
* callers want a link or nothing, and only the one rendering a list a
|
|
84
|
+
* person reads has to account for the gap.
|
|
85
|
+
*
|
|
86
|
+
* Silence here is not the same as a missing link. A type with no URL
|
|
87
|
+
* form at all, like a person identity, is not failing to encode
|
|
88
|
+
* anything, so it says nothing and the caller shows no link and no
|
|
89
|
+
* complaint. A type that could encode and did not is where the reason
|
|
90
|
+
* comes from.
|
|
91
|
+
*/
|
|
92
|
+
export function whyRefHasNoUrl(ref) {
|
|
93
|
+
const type = get(ref.type);
|
|
94
|
+
if (type?.url === undefined)
|
|
95
|
+
return undefined;
|
|
96
|
+
if (type.url(ref.value) !== undefined)
|
|
97
|
+
return undefined;
|
|
98
|
+
return (type.whyNoUrl?.(ref.value) ??
|
|
99
|
+
// A type that can decline without explaining itself. Better than
|
|
100
|
+
// nothing, and it names the type so somebody knows where to look.
|
|
101
|
+
`"${ref.value}" is not a value the ${ref.type} type can turn into a link.`);
|
|
102
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Refs registration: add, remove and seed ref types in the
|
|
3
|
+
* package-wide registry.
|
|
4
|
+
*
|
|
5
|
+
* The registry is module-level; a single `RefType` per
|
|
6
|
+
* identifier wins. Re-registering the same identifier
|
|
7
|
+
* replaces the previous definition. The refs library does
|
|
8
|
+
* not auto-register the built-ins: callers (e.g. the quest
|
|
9
|
+
* extension) call `registerBuiltinRefTypes()` on activate
|
|
10
|
+
* to opt in.
|
|
11
|
+
*/
|
|
12
|
+
import type { RefType } from "./types.js";
|
|
13
|
+
/**
|
|
14
|
+
* Register a ref type. Overwrites any previously registered
|
|
15
|
+
* type with the same `type` identifier.
|
|
16
|
+
*/
|
|
17
|
+
export declare function registerRefType(refType: RefType): void;
|
|
18
|
+
/**
|
|
19
|
+
* Remove a ref type from the registry. Idempotent: removing
|
|
20
|
+
* an absent type is a no-op.
|
|
21
|
+
*/
|
|
22
|
+
export declare function unregisterRefType(type: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* Seed the registry with the built-in ref types:
|
|
25
|
+
* `github-issue`, `github-pr`, `github-repo`,
|
|
26
|
+
* `slack-message` and `slack-thread`. Idempotent;
|
|
27
|
+
* re-registers each definition on every call.
|
|
28
|
+
*/
|
|
29
|
+
export declare function registerBuiltinRefTypes(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Empty the registry. Intended for tests and `/reload`
|
|
32
|
+
* semantics; not for normal extension code.
|
|
33
|
+
*/
|
|
34
|
+
export declare function clearRefTypes(): void;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Refs registration: add, remove and seed ref types in the
|
|
3
|
+
* package-wide registry.
|
|
4
|
+
*
|
|
5
|
+
* The registry is module-level; a single `RefType` per
|
|
6
|
+
* identifier wins. Re-registering the same identifier
|
|
7
|
+
* replaces the previous definition. The refs library does
|
|
8
|
+
* not auto-register the built-ins: callers (e.g. the quest
|
|
9
|
+
* extension) call `registerBuiltinRefTypes()` on activate
|
|
10
|
+
* to opt in.
|
|
11
|
+
*/
|
|
12
|
+
import { BUILTIN_REF_TYPES } from "../internal/refs/builtins.js";
|
|
13
|
+
import { clear, register, unregister } from "../internal/refs/registry.js";
|
|
14
|
+
/**
|
|
15
|
+
* Register a ref type. Overwrites any previously registered
|
|
16
|
+
* type with the same `type` identifier.
|
|
17
|
+
*/
|
|
18
|
+
export function registerRefType(refType) {
|
|
19
|
+
register(refType);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Remove a ref type from the registry. Idempotent: removing
|
|
23
|
+
* an absent type is a no-op.
|
|
24
|
+
*/
|
|
25
|
+
export function unregisterRefType(type) {
|
|
26
|
+
unregister(type);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Seed the registry with the built-in ref types:
|
|
30
|
+
* `github-issue`, `github-pr`, `github-repo`,
|
|
31
|
+
* `slack-message` and `slack-thread`. Idempotent;
|
|
32
|
+
* re-registers each definition on every call.
|
|
33
|
+
*/
|
|
34
|
+
export function registerBuiltinRefTypes() {
|
|
35
|
+
for (const rt of BUILTIN_REF_TYPES)
|
|
36
|
+
register(rt);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Empty the registry. Intended for tests and `/reload`
|
|
40
|
+
* semantics; not for normal extension code.
|
|
41
|
+
*/
|
|
42
|
+
export function clearRefTypes() {
|
|
43
|
+
clear();
|
|
44
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the refs library.
|
|
3
|
+
*
|
|
4
|
+
* A `Ref` is a structured reference to an external system
|
|
5
|
+
* entity (a GitHub issue, a Slack thread, a Graphite PR).
|
|
6
|
+
* A `RefType` knows how to recognise its own surface forms
|
|
7
|
+
* in text and how to build a canonical URL from a stored
|
|
8
|
+
* value.
|
|
9
|
+
*
|
|
10
|
+
* The refs library is pluggable: consumers register their
|
|
11
|
+
* own types alongside the built-ins. The quest extension
|
|
12
|
+
* uses it to extract inline references from prose and to
|
|
13
|
+
* resolve aliases in frontmatter; downstream packages can
|
|
14
|
+
* register custom types (e.g. company-specific URL
|
|
15
|
+
* schemes) without forking the library.
|
|
16
|
+
*/
|
|
17
|
+
/** A structured reference to an external entity. */
|
|
18
|
+
export interface Ref {
|
|
19
|
+
/**
|
|
20
|
+
* The ref type identifier registered via
|
|
21
|
+
* `registerRefType`, e.g. `"github-issue"`,
|
|
22
|
+
* `"slack-thread"`.
|
|
23
|
+
*/
|
|
24
|
+
type: string;
|
|
25
|
+
/**
|
|
26
|
+
* The canonical value for this ref. Format is
|
|
27
|
+
* type-specific (e.g. `"shop/world#47281"` for
|
|
28
|
+
* `github-issue`, a Slack archive URL fragment for
|
|
29
|
+
* `slack-thread`). The type's `matchAll` produces this
|
|
30
|
+
* value; its `url` reverses it.
|
|
31
|
+
*/
|
|
32
|
+
value: string;
|
|
33
|
+
}
|
|
34
|
+
/** Definition of a ref type. */
|
|
35
|
+
export interface RefType {
|
|
36
|
+
/**
|
|
37
|
+
* Unique identifier for this type. Used as the
|
|
38
|
+
* discriminator in `Ref.type` and the key in the
|
|
39
|
+
* registry. Convention is kebab-case with the system
|
|
40
|
+
* prefix, e.g. `"github-issue"`, `"slack-thread"`.
|
|
41
|
+
*/
|
|
42
|
+
type: string;
|
|
43
|
+
/**
|
|
44
|
+
* Find every canonical value of this type in the given
|
|
45
|
+
* text. Returns an empty array when the text contains
|
|
46
|
+
* no matches. Implementations should be tolerant of
|
|
47
|
+
* arbitrary input: HTML, markdown prose, frontmatter
|
|
48
|
+
* scalars, single short strings.
|
|
49
|
+
*/
|
|
50
|
+
matchAll(text: string): string[];
|
|
51
|
+
/**
|
|
52
|
+
* Build a canonical URL from a stored value. Optional:
|
|
53
|
+
* types that have no clean URL form (e.g. a person
|
|
54
|
+
* identity) omit this. Returns `undefined` when the
|
|
55
|
+
* value cannot be encoded.
|
|
56
|
+
*/
|
|
57
|
+
url?(value: string): string | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Why {@link url} could not encode this value, or nothing when it
|
|
60
|
+
* could.
|
|
61
|
+
*
|
|
62
|
+
* A separate method rather than a richer return from `url`, for the
|
|
63
|
+
* reason the same split exists over quest front matter: almost
|
|
64
|
+
* every caller wants a URL or nothing, and making all of them
|
|
65
|
+
* unwrap a result to get a string they already had would be a worse
|
|
66
|
+
* trade than one extra optional method here.
|
|
67
|
+
*
|
|
68
|
+
* It exists because a silent `undefined` is how 621 stored Slack
|
|
69
|
+
* refs came to produce no link with nothing anywhere saying so. The
|
|
70
|
+
* value was fine, the type was fine, and the two simply disagreed
|
|
71
|
+
* about the shape: written from API data as `CHANNEL/TIMESTAMP`,
|
|
72
|
+
* read back by a pattern wanting `workspace/CHANNEL/pTIMESTAMP`. A
|
|
73
|
+
* reason naming both shapes turns that from an invisible nothing
|
|
74
|
+
* into a thing somebody can fix.
|
|
75
|
+
*
|
|
76
|
+
* Implement it wherever `url` can decline. A type without it is
|
|
77
|
+
* saying its values never fail to encode, which is true of a type
|
|
78
|
+
* that has no URL form at all.
|
|
79
|
+
*/
|
|
80
|
+
whyNoUrl?(value: string): string | undefined;
|
|
81
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the refs library.
|
|
3
|
+
*
|
|
4
|
+
* A `Ref` is a structured reference to an external system
|
|
5
|
+
* entity (a GitHub issue, a Slack thread, a Graphite PR).
|
|
6
|
+
* A `RefType` knows how to recognise its own surface forms
|
|
7
|
+
* in text and how to build a canonical URL from a stored
|
|
8
|
+
* value.
|
|
9
|
+
*
|
|
10
|
+
* The refs library is pluggable: consumers register their
|
|
11
|
+
* own types alongside the built-ins. The quest extension
|
|
12
|
+
* uses it to extract inline references from prose and to
|
|
13
|
+
* resolve aliases in frontmatter; downstream packages can
|
|
14
|
+
* register custom types (e.g. company-specific URL
|
|
15
|
+
* schemes) without forking the library.
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public surface of the remote library.
|
|
3
|
+
*
|
|
4
|
+
* Naming a git remote to a person. Its own module for the reason
|
|
5
|
+
* `lib/exec` is: both `lib/review` and `lib/work` show a remote in
|
|
6
|
+
* their refusals, and neither owns the question of what a remote may
|
|
7
|
+
* safely say.
|
|
8
|
+
*/
|
|
9
|
+
export { withoutCredentials } from "./name.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public surface of the remote library.
|
|
3
|
+
*
|
|
4
|
+
* Naming a git remote to a person. Its own module for the reason
|
|
5
|
+
* `lib/exec` is: both `lib/review` and `lib/work` show a remote in
|
|
6
|
+
* their refusals, and neither owns the question of what a remote may
|
|
7
|
+
* safely say.
|
|
8
|
+
*/
|
|
9
|
+
export { withoutCredentials } from "./name.js";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A git remote URL as it is safe to show a person.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* A remote URL with its credential removed, if it carried one.
|
|
6
|
+
*
|
|
7
|
+
* The whole userinfo goes, not just the password. A token is accepted
|
|
8
|
+
* in either position, so `token@host` is as much a secret as
|
|
9
|
+
* `user:token@host`, and keeping the user would leak exactly the form
|
|
10
|
+
* that looks harmless. What is lost is `git@` on an ssh URL, which
|
|
11
|
+
* names no one and is worth less than the rule being simple.
|
|
12
|
+
*
|
|
13
|
+
* Only URLs with a scheme. An scp-style remote, `git@host:path`, has
|
|
14
|
+
* no userinfo field to speak of and no way to carry a password, so it
|
|
15
|
+
* is left as written rather than rewritten into something the person
|
|
16
|
+
* reading it never typed.
|
|
17
|
+
*
|
|
18
|
+
* For display only. The remote a fetch is run against keeps whatever
|
|
19
|
+
* it needs to authenticate, because taking the credential out of that
|
|
20
|
+
* one would not hide it, it would break it.
|
|
21
|
+
*/
|
|
22
|
+
export declare function withoutCredentials(remoteUrl: string): string;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A git remote URL as it is safe to show a person.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* The userinfo of a URL: everything between the scheme and the `@`
|
|
6
|
+
* that introduces the host. It cannot cross a slash, so an at sign
|
|
7
|
+
* later in the path is part of the path.
|
|
8
|
+
*/
|
|
9
|
+
const USERINFO = /^([a-z][a-z0-9+.-]*:\/\/)[^/@]*@/i;
|
|
10
|
+
/**
|
|
11
|
+
* A remote URL with its credential removed, if it carried one.
|
|
12
|
+
*
|
|
13
|
+
* The whole userinfo goes, not just the password. A token is accepted
|
|
14
|
+
* in either position, so `token@host` is as much a secret as
|
|
15
|
+
* `user:token@host`, and keeping the user would leak exactly the form
|
|
16
|
+
* that looks harmless. What is lost is `git@` on an ssh URL, which
|
|
17
|
+
* names no one and is worth less than the rule being simple.
|
|
18
|
+
*
|
|
19
|
+
* Only URLs with a scheme. An scp-style remote, `git@host:path`, has
|
|
20
|
+
* no userinfo field to speak of and no way to carry a password, so it
|
|
21
|
+
* is left as written rather than rewritten into something the person
|
|
22
|
+
* reading it never typed.
|
|
23
|
+
*
|
|
24
|
+
* For display only. The remote a fetch is run against keeps whatever
|
|
25
|
+
* it needs to authenticate, because taking the credential out of that
|
|
26
|
+
* one would not hide it, it would break it.
|
|
27
|
+
*/
|
|
28
|
+
export function withoutCredentials(remoteUrl) {
|
|
29
|
+
return remoteUrl.replace(USERINFO, "$1");
|
|
30
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deciding whether an answer needs a handle, and saying so.
|
|
3
|
+
*
|
|
4
|
+
* The rule is one sentence: cite a handle exactly when the stored
|
|
5
|
+
* payload holds more than the inline view shows. Both halves of
|
|
6
|
+
* that matter. Citing always would put a line of machinery on
|
|
7
|
+
* answers that are already complete, and train a reader to skip
|
|
8
|
+
* it, which is the same as not printing it. Citing only when asked
|
|
9
|
+
* would require the caller to know in advance that the page was
|
|
10
|
+
* enormous, and that is precisely the thing they called to find
|
|
11
|
+
* out.
|
|
12
|
+
*
|
|
13
|
+
* This lives in one place because every family needs the same
|
|
14
|
+
* decision and none of them should be making it. A tool that
|
|
15
|
+
* decided for itself would drift: one would cite at a kilobyte,
|
|
16
|
+
* another at a megabyte, a third would forget, and the caller
|
|
17
|
+
* would have to learn each one's habits instead of the rule.
|
|
18
|
+
*/
|
|
19
|
+
import type { ResultStore } from "./store.js";
|
|
20
|
+
/** What a family knows about the answer it is about to give. */
|
|
21
|
+
export interface Citable<T> {
|
|
22
|
+
/** The whole payload, as a structure a query can walk. */
|
|
23
|
+
readonly payload: T;
|
|
24
|
+
/** The bounded text the caller reads first. */
|
|
25
|
+
readonly view: string;
|
|
26
|
+
/**
|
|
27
|
+
* How much of the payload the view actually shows, and how much
|
|
28
|
+
* there is. When these agree the view is the whole truth and no
|
|
29
|
+
* handle is cited.
|
|
30
|
+
*/
|
|
31
|
+
readonly shown: number;
|
|
32
|
+
readonly total: number;
|
|
33
|
+
/** What the units are, for a sentence a human can read. */
|
|
34
|
+
readonly unit: string;
|
|
35
|
+
/**
|
|
36
|
+
* What the payload holds, when that is a different unit from the
|
|
37
|
+
* one being counted.
|
|
38
|
+
*
|
|
39
|
+
* A listing counts lines, because lines are what the reader can
|
|
40
|
+
* see and count for themselves, but what gets stored is the
|
|
41
|
+
* records those lines were rendered from. Without this the
|
|
42
|
+
* citation says all 797 lines are stored, which is false, and the
|
|
43
|
+
* family has to append a sentence taking it back. Driving Slack
|
|
44
|
+
* for real is what surfaced it: the answer claimed lines were
|
|
45
|
+
* stored and then said the payload was not lines, one after the
|
|
46
|
+
* other.
|
|
47
|
+
*/
|
|
48
|
+
readonly stored?: {
|
|
49
|
+
readonly count?: number;
|
|
50
|
+
readonly unit: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Whether the view omits part of the payload for reasons of its
|
|
54
|
+
* own, with the counts agreeing.
|
|
55
|
+
*
|
|
56
|
+
* The counts answer "did the budget cut this", which is not the
|
|
57
|
+
* same question as "is this all of it". An audit prints five
|
|
58
|
+
* elements per rule and a count of the rest: every line it
|
|
59
|
+
* intended to write got written, so shown equals total, and
|
|
60
|
+
* without this the handle nobody needs more is the only one
|
|
61
|
+
* offered while the answer hiding eight thousand elements offers
|
|
62
|
+
* none.
|
|
63
|
+
*/
|
|
64
|
+
readonly elided?: boolean;
|
|
65
|
+
}
|
|
66
|
+
/** An answer, with a handle when there is more to be had. */
|
|
67
|
+
export interface Cited {
|
|
68
|
+
/** The text to return: the view, and the citation when there is one. */
|
|
69
|
+
readonly text: string;
|
|
70
|
+
/** The handle, when the payload was stored. */
|
|
71
|
+
readonly handle?: string;
|
|
72
|
+
/** Where the payload landed, when it was stored. */
|
|
73
|
+
readonly path?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Store a payload and cite it when the view does not show all of
|
|
77
|
+
* it.
|
|
78
|
+
*
|
|
79
|
+
* A failure to store is reported rather than thrown, and never
|
|
80
|
+
* costs the caller their answer: the view is what they asked for,
|
|
81
|
+
* the handle is a convenience, and losing a convenience is not
|
|
82
|
+
* worth losing a page read over.
|
|
83
|
+
*/
|
|
84
|
+
export declare function cite<T>(store: ResultStore, answer: Citable<T>): Cited;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deciding whether an answer needs a handle, and saying so.
|
|
3
|
+
*
|
|
4
|
+
* The rule is one sentence: cite a handle exactly when the stored
|
|
5
|
+
* payload holds more than the inline view shows. Both halves of
|
|
6
|
+
* that matter. Citing always would put a line of machinery on
|
|
7
|
+
* answers that are already complete, and train a reader to skip
|
|
8
|
+
* it, which is the same as not printing it. Citing only when asked
|
|
9
|
+
* would require the caller to know in advance that the page was
|
|
10
|
+
* enormous, and that is precisely the thing they called to find
|
|
11
|
+
* out.
|
|
12
|
+
*
|
|
13
|
+
* This lives in one place because every family needs the same
|
|
14
|
+
* decision and none of them should be making it. A tool that
|
|
15
|
+
* decided for itself would drift: one would cite at a kilobyte,
|
|
16
|
+
* another at a megabyte, a third would forget, and the caller
|
|
17
|
+
* would have to learn each one's habits instead of the rule.
|
|
18
|
+
*/
|
|
19
|
+
import { count } from "./counts.js";
|
|
20
|
+
import { summarizeJson } from "./digest.js";
|
|
21
|
+
import { queryTool } from "./follow.js";
|
|
22
|
+
/**
|
|
23
|
+
* Store a payload and cite it when the view does not show all of
|
|
24
|
+
* it.
|
|
25
|
+
*
|
|
26
|
+
* A failure to store is reported rather than thrown, and never
|
|
27
|
+
* costs the caller their answer: the view is what they asked for,
|
|
28
|
+
* the handle is a convenience, and losing a convenience is not
|
|
29
|
+
* worth losing a page read over.
|
|
30
|
+
*/
|
|
31
|
+
export function cite(store, answer) {
|
|
32
|
+
if (answer.shown >= answer.total && !answer.elided) {
|
|
33
|
+
return { text: answer.view };
|
|
34
|
+
}
|
|
35
|
+
let stored;
|
|
36
|
+
try {
|
|
37
|
+
stored = store.put(JSON.stringify(answer.payload));
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
return {
|
|
41
|
+
text: `${answer.view}\n\n${unstorable(answer, err)}`,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const digest = summarizeJson(answer.payload);
|
|
45
|
+
return {
|
|
46
|
+
text: `${answer.view}\n\n${citation(answer, stored.handle, digest)}`,
|
|
47
|
+
handle: stored.handle,
|
|
48
|
+
path: stored.path,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Whether a query could pick something smaller out of this.
|
|
53
|
+
*
|
|
54
|
+
* Objects and arrays have parts to name; a string or a number is
|
|
55
|
+
* one thing, and every expression that matches it matches the
|
|
56
|
+
* whole of it.
|
|
57
|
+
*/
|
|
58
|
+
function hasFields(payload) {
|
|
59
|
+
return typeof payload === "object" && payload !== null;
|
|
60
|
+
}
|
|
61
|
+
/** The sentence that turns a handle into something usable. */
|
|
62
|
+
function citation(answer, handle, digest) {
|
|
63
|
+
const held = count(answer.total);
|
|
64
|
+
const seen = count(answer.shown);
|
|
65
|
+
const tool = queryTool();
|
|
66
|
+
const rest = tool === undefined
|
|
67
|
+
? // Naming a tool that is not loaded is worse than saying
|
|
68
|
+
// nothing: it promises the rest of the data is one call
|
|
69
|
+
// away. The shape still helps a reader decide whether it
|
|
70
|
+
// is worth following up on.
|
|
71
|
+
`No tool in this session can read a handle, so this one ` +
|
|
72
|
+
`cannot be followed. Shape: ${digest}`
|
|
73
|
+
: hasFields(answer.payload)
|
|
74
|
+
? `Query it with ${tool}, projecting the fields you want ` +
|
|
75
|
+
`rather than whole records. Shape: ${digest}`
|
|
76
|
+
: // Advice that cannot be followed is worse than none.
|
|
77
|
+
// Reading the body of a stylesheet stored 211,762
|
|
78
|
+
// bytes of minified css and said to project the
|
|
79
|
+
// fields wanted rather than whole records. There are
|
|
80
|
+
// no fields on a string, and the one expression that
|
|
81
|
+
// matches it returns every byte, so the advice led
|
|
82
|
+
// back into the dump the bound had just avoided.
|
|
83
|
+
`It has no fields to project, so ${tool} can only ` +
|
|
84
|
+
`return the whole of it at once. Shape: ${digest}`;
|
|
85
|
+
if (answer.elided && answer.shown >= answer.total) {
|
|
86
|
+
// Nothing was cut, so there is no shortfall in lines to report.
|
|
87
|
+
// Saying "renders 12 of 12 lines" next to a handle would invite
|
|
88
|
+
// the reader to conclude they had already seen everything.
|
|
89
|
+
const what = answer.stored?.count === undefined
|
|
90
|
+
? `The whole ${answer.stored?.unit ?? "payload"}`
|
|
91
|
+
: `All ${count(answer.stored.count)} ${answer.stored.unit}`;
|
|
92
|
+
return (`${what} are stored under handle ${handle}; this view lists ` +
|
|
93
|
+
`only some of them. ${rest}`);
|
|
94
|
+
}
|
|
95
|
+
if (answer.stored !== undefined) {
|
|
96
|
+
// Two different counts, said once each: what is on disk, and how
|
|
97
|
+
// much of the rendering the reader is looking at.
|
|
98
|
+
if (answer.stored.count === undefined) {
|
|
99
|
+
// Nothing countable was identified, so the payload is described
|
|
100
|
+
// rather than counted. Inventing a count of one would read as a
|
|
101
|
+
// single record and send a caller looking for it.
|
|
102
|
+
return (`The whole ${answer.stored.unit} is stored under handle ` +
|
|
103
|
+
`${handle}, of which this answer renders ${seen} of ` +
|
|
104
|
+
`${held} ${answer.unit}. ${rest}`);
|
|
105
|
+
}
|
|
106
|
+
const kept = count(answer.stored.count);
|
|
107
|
+
return (`All ${kept} ${answer.stored.unit} are stored under handle ` +
|
|
108
|
+
`${handle}, of which this answer renders ${seen} of ` +
|
|
109
|
+
`${held} ${answer.unit}. ${rest}`);
|
|
110
|
+
}
|
|
111
|
+
return (`All ${held} ${answer.unit} are stored under handle ${handle}; ` +
|
|
112
|
+
`this answer shows ${seen}. ${rest}`);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Say that the rest is unreachable, rather than implying it is
|
|
116
|
+
* merely absent.
|
|
117
|
+
*
|
|
118
|
+
* A caller told nothing would reasonably assume the view was
|
|
119
|
+
* everything and reason from a fraction of the data.
|
|
120
|
+
*/
|
|
121
|
+
function unstorable(answer, err) {
|
|
122
|
+
const why = err instanceof Error ? err.message : String(err);
|
|
123
|
+
return (`This answer shows ${count(answer.shown)} of ` +
|
|
124
|
+
`${count(answer.total)} ${answer.unit}. The remainder ` +
|
|
125
|
+
`could not be stored (${why}), so it is not retrievable: narrow the ` +
|
|
126
|
+
`call to see the rest.`);
|
|
127
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writing a number down the same way everywhere.
|
|
3
|
+
*
|
|
4
|
+
* Citations are read by a language model and pinned by tests, and
|
|
5
|
+
* both want one answer. `toLocaleString` gives the machine's
|
|
6
|
+
* answer: the same count reads as 18,004 here and 18.004 on a
|
|
7
|
+
* runner configured for German, where a model has every reason to
|
|
8
|
+
* take it for eighteen and a bit.
|
|
9
|
+
*
|
|
10
|
+
* Grouped by hand rather than with an explicit locale, because
|
|
11
|
+
* locale data is a dependency of the runtime and this is not worth
|
|
12
|
+
* one.
|
|
13
|
+
*/
|
|
14
|
+
/** A whole number, grouped in threes with commas. */
|
|
15
|
+
export declare function count(value: number): string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writing a number down the same way everywhere.
|
|
3
|
+
*
|
|
4
|
+
* Citations are read by a language model and pinned by tests, and
|
|
5
|
+
* both want one answer. `toLocaleString` gives the machine's
|
|
6
|
+
* answer: the same count reads as 18,004 here and 18.004 on a
|
|
7
|
+
* runner configured for German, where a model has every reason to
|
|
8
|
+
* take it for eighteen and a bit.
|
|
9
|
+
*
|
|
10
|
+
* Grouped by hand rather than with an explicit locale, because
|
|
11
|
+
* locale data is a dependency of the runtime and this is not worth
|
|
12
|
+
* one.
|
|
13
|
+
*/
|
|
14
|
+
/** A whole number, grouped in threes with commas. */
|
|
15
|
+
export function count(value) {
|
|
16
|
+
return String(value).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
17
|
+
}
|