@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,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A stack of branches, each sitting on the one below it.
|
|
3
|
+
*
|
|
4
|
+
* Git does not track this. A branch knows its commits and nothing about which
|
|
5
|
+
* other branch it was built on top of, so a stack is either recorded somewhere
|
|
6
|
+
* or guessed at, and guessing is what makes stacked tooling feel haunted: infer
|
|
7
|
+
* parentage from merge-base and the answer changes under you the moment two
|
|
8
|
+
* branches share history for an unrelated reason.
|
|
9
|
+
*
|
|
10
|
+
* So parentage is recorded, and everything here is a function of that record.
|
|
11
|
+
* This file is the part that thinks. It never runs git: it takes what the
|
|
12
|
+
* record says and works out the order to replay in, what a reorder implies, and
|
|
13
|
+
* which moves would produce something that is not a stack at all. The git side
|
|
14
|
+
* is a thin adapter over these answers, which is what makes the hard part
|
|
15
|
+
* testable without a repository.
|
|
16
|
+
*
|
|
17
|
+
* The one rule worth stating up front: a replay step carries the base the
|
|
18
|
+
* branch was last aligned at, not just the branch and its new parent. Replaying
|
|
19
|
+
* without it hands the branch every commit its parent already has, which is the
|
|
20
|
+
* duplicated-commit mess that makes people abandon stacks and go back to one
|
|
21
|
+
* enormous branch.
|
|
22
|
+
*/
|
|
23
|
+
/** A branch and what it sits on. */
|
|
24
|
+
export interface StackedBranch {
|
|
25
|
+
name: string;
|
|
26
|
+
/** What it sits on. Absent means it sits on trunk and is a root. */
|
|
27
|
+
parent?: string;
|
|
28
|
+
/**
|
|
29
|
+
* The parent's commit when this branch was last aligned with it.
|
|
30
|
+
*
|
|
31
|
+
* This is the boundary of what belongs to this branch. Without it a
|
|
32
|
+
* replay cannot tell which commits are its own, and hands the branch
|
|
33
|
+
* copies of everything its parent already carries.
|
|
34
|
+
*/
|
|
35
|
+
base?: string;
|
|
36
|
+
}
|
|
37
|
+
/** One replay a restack needs, in the order it has to happen. */
|
|
38
|
+
export interface ReplayStep {
|
|
39
|
+
branch: string;
|
|
40
|
+
/** What it is being replayed onto: a parent branch, or trunk. */
|
|
41
|
+
onto: string;
|
|
42
|
+
/** The base to replay from, when one is recorded. */
|
|
43
|
+
from?: string;
|
|
44
|
+
}
|
|
45
|
+
/** One parentage change a reorder implies. */
|
|
46
|
+
export interface ReparentStep {
|
|
47
|
+
branch: string;
|
|
48
|
+
/** Its new parent, or trunk when it becomes a root. */
|
|
49
|
+
parent?: string;
|
|
50
|
+
}
|
|
51
|
+
/** Why a set of branches is not a stack. */
|
|
52
|
+
export interface StackFault {
|
|
53
|
+
kind: "cycle" | "unknown-parent" | "duplicate";
|
|
54
|
+
/** The branches involved, so the message can name them. */
|
|
55
|
+
branches: readonly string[];
|
|
56
|
+
reason: string;
|
|
57
|
+
}
|
|
58
|
+
/** The reason a set of branches is not a stack. */
|
|
59
|
+
export interface Faulted {
|
|
60
|
+
kind: "faulted";
|
|
61
|
+
fault: StackFault;
|
|
62
|
+
}
|
|
63
|
+
/** Either an ordering or the reason there is not one. */
|
|
64
|
+
export type StackOrder = {
|
|
65
|
+
kind: "ordered";
|
|
66
|
+
branches: readonly StackedBranch[];
|
|
67
|
+
} | Faulted;
|
|
68
|
+
/** Either a plan of replays or the reason there is not one. */
|
|
69
|
+
export type RestackPlan = {
|
|
70
|
+
kind: "planned";
|
|
71
|
+
steps: readonly ReplayStep[];
|
|
72
|
+
} | Faulted;
|
|
73
|
+
/** Either a plan of parentage changes or the reason there is not one. */
|
|
74
|
+
export type ReorderPlan = {
|
|
75
|
+
kind: "planned";
|
|
76
|
+
steps: readonly ReparentStep[];
|
|
77
|
+
} | Faulted;
|
|
78
|
+
/**
|
|
79
|
+
* Put a stack in the order work has to happen: roots first, each branch after
|
|
80
|
+
* whatever it sits on.
|
|
81
|
+
*
|
|
82
|
+
* A restack that runs out of order is worse than one that does not run: replay
|
|
83
|
+
* a child onto its parent before the parent has moved and the child is now
|
|
84
|
+
* aligned to a base that is about to stop existing.
|
|
85
|
+
*
|
|
86
|
+
* Siblings keep the order they were given. Nothing here can rank two branches
|
|
87
|
+
* that sit on the same parent, and inventing a rank would make a restack's
|
|
88
|
+
* output depend on a detail nobody chose.
|
|
89
|
+
*/
|
|
90
|
+
export declare function orderStack(branches: readonly StackedBranch[]): StackOrder;
|
|
91
|
+
/** Every branch sitting on this one, however far down. */
|
|
92
|
+
export declare function descendantsOf(branches: readonly StackedBranch[], name: string): readonly string[];
|
|
93
|
+
/**
|
|
94
|
+
* The replays a restack needs, in order.
|
|
95
|
+
*
|
|
96
|
+
* `trunk` is what a root sits on. Every step carries the base its branch was
|
|
97
|
+
* last aligned at, because that boundary is the only thing separating the
|
|
98
|
+
* branch's own commits from its parent's.
|
|
99
|
+
*
|
|
100
|
+
* A branch whose base is unrecorded still gets a step. The adapter falls back
|
|
101
|
+
* to asking git for a merge-base, which is a guess, but a guess made at the
|
|
102
|
+
* moment of replaying and reported as one beats refusing to replay a branch
|
|
103
|
+
* somebody tracked by hand.
|
|
104
|
+
*/
|
|
105
|
+
export declare function planRestack(branches: readonly StackedBranch[], trunk: string): RestackPlan;
|
|
106
|
+
/**
|
|
107
|
+
* What a reorder implies, as parentage changes.
|
|
108
|
+
*
|
|
109
|
+
* The caller says the order it wants, root first, and gets back the reparenting
|
|
110
|
+
* that produces it. Expressing a reorder as reparenting rather than as its own
|
|
111
|
+
* operation is deliberate: there is only one way for a branch to move in a
|
|
112
|
+
* stack, and a second vocabulary for it would be a second set of rules about
|
|
113
|
+
* what is legal.
|
|
114
|
+
*
|
|
115
|
+
* The desired order has to name the same branches as the chain it is
|
|
116
|
+
* reordering. Naming a subset would quietly orphan whatever was left out.
|
|
117
|
+
*/
|
|
118
|
+
export declare function planReorder(branches: readonly StackedBranch[], desired: readonly string[]): ReorderPlan;
|
|
119
|
+
/**
|
|
120
|
+
* Whether pointing a branch at a new parent still leaves a stack.
|
|
121
|
+
*
|
|
122
|
+
* Checked before anything runs, because the failure is silent: a branch made
|
|
123
|
+
* its own ancestor still rebases, and produces a repository where a restack
|
|
124
|
+
* never terminates.
|
|
125
|
+
*/
|
|
126
|
+
export declare function reparentFault(branches: readonly StackedBranch[], name: string, parent: string | undefined): StackFault | undefined;
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A stack of branches, each sitting on the one below it.
|
|
3
|
+
*
|
|
4
|
+
* Git does not track this. A branch knows its commits and nothing about which
|
|
5
|
+
* other branch it was built on top of, so a stack is either recorded somewhere
|
|
6
|
+
* or guessed at, and guessing is what makes stacked tooling feel haunted: infer
|
|
7
|
+
* parentage from merge-base and the answer changes under you the moment two
|
|
8
|
+
* branches share history for an unrelated reason.
|
|
9
|
+
*
|
|
10
|
+
* So parentage is recorded, and everything here is a function of that record.
|
|
11
|
+
* This file is the part that thinks. It never runs git: it takes what the
|
|
12
|
+
* record says and works out the order to replay in, what a reorder implies, and
|
|
13
|
+
* which moves would produce something that is not a stack at all. The git side
|
|
14
|
+
* is a thin adapter over these answers, which is what makes the hard part
|
|
15
|
+
* testable without a repository.
|
|
16
|
+
*
|
|
17
|
+
* The one rule worth stating up front: a replay step carries the base the
|
|
18
|
+
* branch was last aligned at, not just the branch and its new parent. Replaying
|
|
19
|
+
* without it hands the branch every commit its parent already has, which is the
|
|
20
|
+
* duplicated-commit mess that makes people abandon stacks and go back to one
|
|
21
|
+
* enormous branch.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Put a stack in the order work has to happen: roots first, each branch after
|
|
25
|
+
* whatever it sits on.
|
|
26
|
+
*
|
|
27
|
+
* A restack that runs out of order is worse than one that does not run: replay
|
|
28
|
+
* a child onto its parent before the parent has moved and the child is now
|
|
29
|
+
* aligned to a base that is about to stop existing.
|
|
30
|
+
*
|
|
31
|
+
* Siblings keep the order they were given. Nothing here can rank two branches
|
|
32
|
+
* that sit on the same parent, and inventing a rank would make a restack's
|
|
33
|
+
* output depend on a detail nobody chose.
|
|
34
|
+
*/
|
|
35
|
+
export function orderStack(branches) {
|
|
36
|
+
const byName = new Map();
|
|
37
|
+
for (const branch of branches) {
|
|
38
|
+
if (byName.has(branch.name)) {
|
|
39
|
+
return {
|
|
40
|
+
kind: "faulted",
|
|
41
|
+
fault: {
|
|
42
|
+
kind: "duplicate",
|
|
43
|
+
branches: [branch.name],
|
|
44
|
+
reason: `${branch.name} appears twice, so there is no single answer to what it sits on.`,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
byName.set(branch.name, branch);
|
|
49
|
+
}
|
|
50
|
+
for (const branch of branches) {
|
|
51
|
+
if (branch.parent !== undefined && !byName.has(branch.parent)) {
|
|
52
|
+
return {
|
|
53
|
+
kind: "faulted",
|
|
54
|
+
fault: {
|
|
55
|
+
kind: "unknown-parent",
|
|
56
|
+
branches: [branch.name, branch.parent],
|
|
57
|
+
reason: `${branch.name} sits on ${branch.parent}, which is not in this stack. Track it, or point ${branch.name} at something that is here.`,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const ordered = [];
|
|
63
|
+
const placed = new Set();
|
|
64
|
+
// Walking to the root from each branch and placing ancestors first is
|
|
65
|
+
// what makes a cycle visible: a chain that revisits a name it is
|
|
66
|
+
// already walking has no root to reach.
|
|
67
|
+
for (const branch of branches) {
|
|
68
|
+
const chain = [];
|
|
69
|
+
const walking = new Set();
|
|
70
|
+
let at = branch;
|
|
71
|
+
while (at !== undefined && !placed.has(at.name)) {
|
|
72
|
+
if (walking.has(at.name)) {
|
|
73
|
+
return {
|
|
74
|
+
kind: "faulted",
|
|
75
|
+
fault: {
|
|
76
|
+
kind: "cycle",
|
|
77
|
+
branches: [...walking],
|
|
78
|
+
reason: `${[...walking].join(" sits on ")} sits on ${at.name}, which closes a loop. A stack has to end somewhere.`,
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
walking.add(at.name);
|
|
83
|
+
chain.unshift(at);
|
|
84
|
+
at = at.parent === undefined ? undefined : byName.get(at.parent);
|
|
85
|
+
}
|
|
86
|
+
for (const one of chain) {
|
|
87
|
+
if (placed.has(one.name))
|
|
88
|
+
continue;
|
|
89
|
+
placed.add(one.name);
|
|
90
|
+
ordered.push(one);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return { kind: "ordered", branches: ordered };
|
|
94
|
+
}
|
|
95
|
+
/** Every branch sitting on this one, however far down. */
|
|
96
|
+
export function descendantsOf(branches, name) {
|
|
97
|
+
const found = [];
|
|
98
|
+
const frontier = [name];
|
|
99
|
+
while (frontier.length > 0) {
|
|
100
|
+
const at = frontier.shift();
|
|
101
|
+
for (const branch of branches) {
|
|
102
|
+
if (branch.parent !== at || found.includes(branch.name))
|
|
103
|
+
continue;
|
|
104
|
+
found.push(branch.name);
|
|
105
|
+
frontier.push(branch.name);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return found;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* The replays a restack needs, in order.
|
|
112
|
+
*
|
|
113
|
+
* `trunk` is what a root sits on. Every step carries the base its branch was
|
|
114
|
+
* last aligned at, because that boundary is the only thing separating the
|
|
115
|
+
* branch's own commits from its parent's.
|
|
116
|
+
*
|
|
117
|
+
* A branch whose base is unrecorded still gets a step. The adapter falls back
|
|
118
|
+
* to asking git for a merge-base, which is a guess, but a guess made at the
|
|
119
|
+
* moment of replaying and reported as one beats refusing to replay a branch
|
|
120
|
+
* somebody tracked by hand.
|
|
121
|
+
*/
|
|
122
|
+
export function planRestack(branches, trunk) {
|
|
123
|
+
const order = orderStack(branches);
|
|
124
|
+
if (order.kind === "faulted")
|
|
125
|
+
return order;
|
|
126
|
+
const steps = order.branches.map((branch) => ({
|
|
127
|
+
branch: branch.name,
|
|
128
|
+
onto: branch.parent ?? trunk,
|
|
129
|
+
...(branch.base === undefined ? {} : { from: branch.base }),
|
|
130
|
+
}));
|
|
131
|
+
return { kind: "planned", steps };
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* What a reorder implies, as parentage changes.
|
|
135
|
+
*
|
|
136
|
+
* The caller says the order it wants, root first, and gets back the reparenting
|
|
137
|
+
* that produces it. Expressing a reorder as reparenting rather than as its own
|
|
138
|
+
* operation is deliberate: there is only one way for a branch to move in a
|
|
139
|
+
* stack, and a second vocabulary for it would be a second set of rules about
|
|
140
|
+
* what is legal.
|
|
141
|
+
*
|
|
142
|
+
* The desired order has to name the same branches as the chain it is
|
|
143
|
+
* reordering. Naming a subset would quietly orphan whatever was left out.
|
|
144
|
+
*/
|
|
145
|
+
export function planReorder(branches, desired) {
|
|
146
|
+
const order = orderStack(branches);
|
|
147
|
+
if (order.kind === "faulted")
|
|
148
|
+
return order;
|
|
149
|
+
const known = new Set(branches.map((branch) => branch.name));
|
|
150
|
+
const missing = desired.filter((name) => !known.has(name));
|
|
151
|
+
if (missing.length > 0) {
|
|
152
|
+
return {
|
|
153
|
+
kind: "faulted",
|
|
154
|
+
fault: {
|
|
155
|
+
kind: "unknown-parent",
|
|
156
|
+
branches: missing,
|
|
157
|
+
reason: `${missing.join(", ")} ${missing.length === 1 ? "is" : "are"} not in this stack, so ${missing.length === 1 ? "it" : "they"} cannot be placed in it.`,
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
const duplicated = desired.filter((name, at) => desired.indexOf(name) !== at);
|
|
162
|
+
if (duplicated.length > 0) {
|
|
163
|
+
return {
|
|
164
|
+
kind: "faulted",
|
|
165
|
+
fault: {
|
|
166
|
+
kind: "duplicate",
|
|
167
|
+
branches: duplicated,
|
|
168
|
+
reason: `${duplicated.join(", ")} appears more than once in the order asked for, and a branch can only sit in one place.`,
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
// Reordering a chain means reordering exactly that chain. A subset would
|
|
173
|
+
// leave a branch sitting on something that has moved out from under it,
|
|
174
|
+
// which is a broken stack presented as a completed reorder.
|
|
175
|
+
const chain = new Set(desired);
|
|
176
|
+
const orphaned = branches.filter((branch) => !chain.has(branch.name) &&
|
|
177
|
+
branch.parent !== undefined &&
|
|
178
|
+
chain.has(branch.parent));
|
|
179
|
+
if (orphaned.length > 0) {
|
|
180
|
+
return {
|
|
181
|
+
kind: "faulted",
|
|
182
|
+
fault: {
|
|
183
|
+
kind: "unknown-parent",
|
|
184
|
+
branches: orphaned.map((branch) => branch.name),
|
|
185
|
+
reason: `${orphaned.map((branch) => branch.name).join(", ")} sits on a branch being reordered but was not named in the new order, so the reorder would leave it behind. Name every branch above the lowest one you are moving.`,
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
const steps = [];
|
|
190
|
+
// The new lowest branch inherits whatever the old lowest sat on, since a
|
|
191
|
+
// reorder rearranges a chain rather than relocating it. Topological order
|
|
192
|
+
// is what identifies the old lowest: it is the first of the chain to
|
|
193
|
+
// appear once ancestors come before descendants.
|
|
194
|
+
const anchor = order.branches.find((branch) => chain.has(branch.name))?.parent;
|
|
195
|
+
desired.forEach((name, at) => {
|
|
196
|
+
const parent = at === 0 ? anchor : desired[at - 1];
|
|
197
|
+
const current = branches.find((branch) => branch.name === name)?.parent;
|
|
198
|
+
if (current === parent)
|
|
199
|
+
return;
|
|
200
|
+
steps.push({ branch: name, ...(parent === undefined ? {} : { parent }) });
|
|
201
|
+
});
|
|
202
|
+
return { kind: "planned", steps };
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Whether pointing a branch at a new parent still leaves a stack.
|
|
206
|
+
*
|
|
207
|
+
* Checked before anything runs, because the failure is silent: a branch made
|
|
208
|
+
* its own ancestor still rebases, and produces a repository where a restack
|
|
209
|
+
* never terminates.
|
|
210
|
+
*/
|
|
211
|
+
export function reparentFault(branches, name, parent) {
|
|
212
|
+
if (parent === undefined)
|
|
213
|
+
return undefined;
|
|
214
|
+
if (parent === name) {
|
|
215
|
+
return {
|
|
216
|
+
kind: "cycle",
|
|
217
|
+
branches: [name],
|
|
218
|
+
reason: `${name} cannot sit on itself.`,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
if (!branches.some((branch) => branch.name === name)) {
|
|
222
|
+
return {
|
|
223
|
+
kind: "unknown-parent",
|
|
224
|
+
branches: [name],
|
|
225
|
+
reason: `${name} is not tracked in this stack.`,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
if (!branches.some((branch) => branch.name === parent)) {
|
|
229
|
+
return {
|
|
230
|
+
kind: "unknown-parent",
|
|
231
|
+
branches: [parent],
|
|
232
|
+
reason: `${parent} is not tracked in this stack, so nothing can be stacked on it yet. Track it first.`,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
if (descendantsOf(branches, name).includes(parent)) {
|
|
236
|
+
return {
|
|
237
|
+
kind: "cycle",
|
|
238
|
+
branches: [name, parent],
|
|
239
|
+
reason: `${parent} already sits above ${name}, so putting ${name} on it would close a loop.`,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
return undefined;
|
|
243
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keeping a stack, and replaying it when what it sits on moves.
|
|
3
|
+
*
|
|
4
|
+
* The thinking lives in `stack.ts` and never touches a repository. This is the
|
|
5
|
+
* adapter: it stores parentage, asks git to replay, and stops the moment a
|
|
6
|
+
* replay halts.
|
|
7
|
+
*
|
|
8
|
+
* Parentage is stored in git's own config, under the branch it describes. That
|
|
9
|
+
* puts it in the repository rather than in this package's state, which is the
|
|
10
|
+
* property that matters: the record survives a session, is visible to anybody
|
|
11
|
+
* who runs `git config`, and is deleted by git itself when the branch is. A
|
|
12
|
+
* stack recorded in a tool's private state is a stack that quietly outlives the
|
|
13
|
+
* branches it names.
|
|
14
|
+
*
|
|
15
|
+
* A stacked backend that tracks parentage itself is the reason this is a facet
|
|
16
|
+
* rather than the implementation. On a repository driven by such a tool, its
|
|
17
|
+
* record is the truth and this one would be a second opinion; a provider there
|
|
18
|
+
* should offer its own `WorkStacks` instead of teaching this one a second
|
|
19
|
+
* vocabulary.
|
|
20
|
+
*
|
|
21
|
+
* Restacking stops at the first halt and says what it did not reach. Carrying
|
|
22
|
+
* on would replay later branches onto a parent that is mid-rebase, which
|
|
23
|
+
* produces a stack that looks restacked and is built on a commit that is about
|
|
24
|
+
* to be rewritten.
|
|
25
|
+
*/
|
|
26
|
+
import type { Exec } from "../exec/index.js";
|
|
27
|
+
import type { WorkRebaser } from "./rebase.js";
|
|
28
|
+
import { type StackedBranch, type StackFault } from "./stack.js";
|
|
29
|
+
/** What happened to one branch during a restack. */
|
|
30
|
+
export interface ReplayResult {
|
|
31
|
+
branch: string;
|
|
32
|
+
onto: string;
|
|
33
|
+
outcome: "replayed" | "already-there" | "halted" | "skipped";
|
|
34
|
+
/** Paths that disagree, when it halted. */
|
|
35
|
+
conflicted?: readonly string[];
|
|
36
|
+
}
|
|
37
|
+
/** How a restack went. */
|
|
38
|
+
export type RestackOutcome = {
|
|
39
|
+
kind: "restacked";
|
|
40
|
+
results: readonly ReplayResult[];
|
|
41
|
+
/** Where the tree was left, which is where it started. */
|
|
42
|
+
on?: string;
|
|
43
|
+
} | {
|
|
44
|
+
kind: "halted";
|
|
45
|
+
/** What was done, what stopped, and what was never reached. */
|
|
46
|
+
results: readonly ReplayResult[];
|
|
47
|
+
at: string;
|
|
48
|
+
conflicted: readonly string[];
|
|
49
|
+
} | {
|
|
50
|
+
kind: "faulted";
|
|
51
|
+
fault: StackFault;
|
|
52
|
+
} | {
|
|
53
|
+
kind: "refused";
|
|
54
|
+
reason: string;
|
|
55
|
+
};
|
|
56
|
+
/** How a change to the stack's shape went. */
|
|
57
|
+
export type ShapeOutcome = {
|
|
58
|
+
kind: "shaped";
|
|
59
|
+
changed: readonly string[];
|
|
60
|
+
} | {
|
|
61
|
+
kind: "unchanged";
|
|
62
|
+
} | {
|
|
63
|
+
kind: "faulted";
|
|
64
|
+
fault: StackFault;
|
|
65
|
+
} | {
|
|
66
|
+
kind: "refused";
|
|
67
|
+
reason: string;
|
|
68
|
+
};
|
|
69
|
+
/** Keeping and replaying a stack of branches. */
|
|
70
|
+
export interface WorkStacks {
|
|
71
|
+
/** What this repository records about its stack. */
|
|
72
|
+
read(treePath: string): Promise<readonly StackedBranch[]>;
|
|
73
|
+
/** Record that a branch sits on another, or on trunk. */
|
|
74
|
+
track(treePath: string, branch: string, parent?: string): Promise<ShapeOutcome>;
|
|
75
|
+
/** Forget a branch, moving whatever sat on it down onto its parent. */
|
|
76
|
+
untrack(treePath: string, branch: string): Promise<ShapeOutcome>;
|
|
77
|
+
/** Point a branch at a different parent. */
|
|
78
|
+
reparent(treePath: string, branch: string, parent?: string): Promise<ShapeOutcome>;
|
|
79
|
+
/** Rearrange a chain into the order given, lowest first. */
|
|
80
|
+
reorder(treePath: string, desired: readonly string[]): Promise<ShapeOutcome>;
|
|
81
|
+
/**
|
|
82
|
+
* Which tracked branches no longer sit on the branch beneath them.
|
|
83
|
+
*
|
|
84
|
+
* The one fact about a stack that git will not tell you and that a listing of
|
|
85
|
+
* names cannot show. A branch drifts whenever what it sits on moves without it:
|
|
86
|
+
* its parent gets amended, or rebased, or reparented, and now the branch is
|
|
87
|
+
* built on a commit that is no longer anybody's tip. Until it is replayed the
|
|
88
|
+
* shape on paper and the shape in the commits disagree, and the whole point of
|
|
89
|
+
* recording a stack is to be told when that has happened.
|
|
90
|
+
*
|
|
91
|
+
* A root branch is judged against trunk, so trunk has to be named to judge one.
|
|
92
|
+
* Without it the roots are reported as undecidable rather than as aligned,
|
|
93
|
+
* because a listing that quietly calls an unknown "fine" is worse than one that
|
|
94
|
+
* says it does not know.
|
|
95
|
+
*/
|
|
96
|
+
drifted(treePath: string, trunk?: string): Promise<DriftReport>;
|
|
97
|
+
/**
|
|
98
|
+
* Record where a branch sits, after a replay this object did not run.
|
|
99
|
+
*
|
|
100
|
+
* The boundary between a branch's commits and its parent's is written by a
|
|
101
|
+
* restack as it goes, which is fine until a restack halts. The way out of a halt
|
|
102
|
+
* is to settle the conflict and resume, and resume belongs to the rebaser, which
|
|
103
|
+
* knows nothing about stacks and so recorded nothing. That is the documented
|
|
104
|
+
* recovery from the commonest failure here, and it left the record describing a
|
|
105
|
+
* branch as it was several commits ago.
|
|
106
|
+
*
|
|
107
|
+
* The consequence was not a wrong label. The next restack measured the replay
|
|
108
|
+
* from that stale boundary, which sat below six of trunk's own commits, and so
|
|
109
|
+
* handed the branch copies of trunk's history and a conflict on each one.
|
|
110
|
+
*
|
|
111
|
+
* Naming no branch means the one checked out, which is where a resume leaves you.
|
|
112
|
+
* Untracked branches are ignored rather than refused: this is called on the way
|
|
113
|
+
* out of an operation that has already succeeded, and it has no standing to fail
|
|
114
|
+
* it.
|
|
115
|
+
*/
|
|
116
|
+
settled(treePath: string, branch?: string): Promise<void>;
|
|
117
|
+
/** Replay the whole stack onto trunk, in order. */
|
|
118
|
+
restack(treePath: string, trunk: string): Promise<RestackOutcome>;
|
|
119
|
+
/**
|
|
120
|
+
* Fetch trunk, then replay the stack onto where it now is.
|
|
121
|
+
*
|
|
122
|
+
* The daily operation, and one verb rather than two because doing half of it
|
|
123
|
+
* is the mistake: restacking without fetching replays the stack onto a trunk
|
|
124
|
+
* as stale as the one it was already on, reports success, and leaves
|
|
125
|
+
* everything exactly as behind as it was.
|
|
126
|
+
*/
|
|
127
|
+
sync(treePath: string, trunk: string): Promise<SyncOutcome>;
|
|
128
|
+
}
|
|
129
|
+
/** Which branches are out of step with what they sit on. */
|
|
130
|
+
export interface DriftReport {
|
|
131
|
+
/** Tracked branches no longer sitting on their parent's tip. */
|
|
132
|
+
drifted: readonly string[];
|
|
133
|
+
/**
|
|
134
|
+
* Branches whose alignment could not be judged, and why not.
|
|
135
|
+
*
|
|
136
|
+
* Reported rather than folded into either answer. Absent means unreported, not
|
|
137
|
+
* aligned, and a diagram that draws "could not tell" as "fine" is the reason
|
|
138
|
+
* somebody trusts a stale stack.
|
|
139
|
+
*/
|
|
140
|
+
undecided: readonly string[];
|
|
141
|
+
}
|
|
142
|
+
/** How a sync went. */
|
|
143
|
+
export type SyncOutcome = {
|
|
144
|
+
kind: "synced";
|
|
145
|
+
/** True when fetching actually moved trunk. */
|
|
146
|
+
moved: boolean;
|
|
147
|
+
replay: RestackOutcome;
|
|
148
|
+
} | {
|
|
149
|
+
kind: "refused";
|
|
150
|
+
reason: string;
|
|
151
|
+
};
|
|
152
|
+
/** Keep and replay a stack with plain git. */
|
|
153
|
+
export declare function createGitStacks(deps: {
|
|
154
|
+
exec: Exec;
|
|
155
|
+
rebaser: WorkRebaser;
|
|
156
|
+
}): WorkStacks;
|