@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,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The TDD loop domain model and its pure reducer: a single,
|
|
3
|
+
* discrete red-green-refactor loop.
|
|
4
|
+
*
|
|
5
|
+
* The agent drives the loop by attesting each transition. A
|
|
6
|
+
* transition is allowed only when the attestation supplies the
|
|
7
|
+
* justification the gate requires; otherwise the reducer refuses
|
|
8
|
+
* and hands back guidance. The reducer never inspects code, test
|
|
9
|
+
* output or file paths. It tracks the agent's own attestation,
|
|
10
|
+
* which is the one contract that stays robust across every
|
|
11
|
+
* language and every host this loop ever runs under.
|
|
12
|
+
*/
|
|
13
|
+
/** The resting state: no loop in play. */
|
|
14
|
+
export function idleLoop() {
|
|
15
|
+
return {
|
|
16
|
+
phase: "idle",
|
|
17
|
+
assertionFailure: false,
|
|
18
|
+
behaviour: null,
|
|
19
|
+
iteration: 0,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/** Close the active loop back to idle, keeping the iteration count. */
|
|
23
|
+
function rest(loop) {
|
|
24
|
+
return {
|
|
25
|
+
phase: "idle",
|
|
26
|
+
assertionFailure: false,
|
|
27
|
+
behaviour: null,
|
|
28
|
+
iteration: loop.iteration,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** Refuse a transition, handing the agent guidance on what's missing. */
|
|
32
|
+
function refuse(guidance) {
|
|
33
|
+
return { ok: false, guidance };
|
|
34
|
+
}
|
|
35
|
+
/** Accept a transition into a new loop state. */
|
|
36
|
+
function advance(loop) {
|
|
37
|
+
return { ok: true, loop };
|
|
38
|
+
}
|
|
39
|
+
/** Attempt a transition, enforcing the justification each gate requires. */
|
|
40
|
+
export function transition(loop, attestation) {
|
|
41
|
+
switch (attestation.action) {
|
|
42
|
+
case "plan":
|
|
43
|
+
return plan(loop, attestation);
|
|
44
|
+
case "write":
|
|
45
|
+
return write(loop, attestation);
|
|
46
|
+
case "red":
|
|
47
|
+
return red(loop, attestation);
|
|
48
|
+
case "green":
|
|
49
|
+
return green(loop, attestation);
|
|
50
|
+
case "refactor":
|
|
51
|
+
return refactor(loop);
|
|
52
|
+
case "done":
|
|
53
|
+
return done(loop, attestation);
|
|
54
|
+
case "abandon":
|
|
55
|
+
return abandon(loop, attestation);
|
|
56
|
+
default:
|
|
57
|
+
return refuse(`Unknown transition. Drive the loop with plan, write, red, ` +
|
|
58
|
+
`green, refactor, done or abandon.`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function plan(loop, attestation) {
|
|
62
|
+
if (loop.phase !== "idle") {
|
|
63
|
+
return refuse(`Finish or abandon the current loop before planning another. You're in ${loop.phase}.`);
|
|
64
|
+
}
|
|
65
|
+
if (!attestation.behaviour) {
|
|
66
|
+
return refuse("Name the single behaviour under test: the exported thing you " +
|
|
67
|
+
"want to exist. One increment per loop.");
|
|
68
|
+
}
|
|
69
|
+
return advance({
|
|
70
|
+
phase: "plan",
|
|
71
|
+
assertionFailure: false,
|
|
72
|
+
behaviour: attestation.behaviour,
|
|
73
|
+
iteration: loop.iteration + 1,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function write(loop, attestation) {
|
|
77
|
+
if (loop.phase !== "plan") {
|
|
78
|
+
return refuse(`Writing the test follows plan. You're in ${loop.phase}, not plan. ` +
|
|
79
|
+
`Go forward, or abandon to redo.`);
|
|
80
|
+
}
|
|
81
|
+
if (!attestation.interface) {
|
|
82
|
+
return refuse("State the exported surface this test binds to before writing it. " +
|
|
83
|
+
"Tests document the interface, never the internals.");
|
|
84
|
+
}
|
|
85
|
+
return advance({ ...loop, phase: "write" });
|
|
86
|
+
}
|
|
87
|
+
function red(loop, attestation) {
|
|
88
|
+
if (loop.phase !== "write" && loop.phase !== "red") {
|
|
89
|
+
return refuse(`A failing test comes out of the write phase. You're in ${loop.phase}.`);
|
|
90
|
+
}
|
|
91
|
+
if (!attestation.failure) {
|
|
92
|
+
return refuse("Run the test and report the failure before moving to red.");
|
|
93
|
+
}
|
|
94
|
+
if (!attestation.failureKind) {
|
|
95
|
+
return refuse("Say whether the failure was an assertion or other (a compile or " +
|
|
96
|
+
"missing-symbol error). Only a real assertion clears the way to green.");
|
|
97
|
+
}
|
|
98
|
+
return advance({
|
|
99
|
+
...loop,
|
|
100
|
+
phase: "red",
|
|
101
|
+
assertionFailure: attestation.failureKind === "assertion",
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
function green(loop, attestation) {
|
|
105
|
+
if (loop.phase !== "red" || !loop.assertionFailure) {
|
|
106
|
+
return refuse("You haven't seen a real red yet. Stub a minimal skeleton, re-run, " +
|
|
107
|
+
"and call red again with failureKind 'assertion' before green.");
|
|
108
|
+
}
|
|
109
|
+
if (!attestation.pass) {
|
|
110
|
+
return refuse("Report the passing result before moving to green.");
|
|
111
|
+
}
|
|
112
|
+
return advance({ ...loop, phase: "green", assertionFailure: false });
|
|
113
|
+
}
|
|
114
|
+
function refactor(loop) {
|
|
115
|
+
if (loop.phase !== "green") {
|
|
116
|
+
return refuse(`Refactoring follows a green test. You're in ${loop.phase}.`);
|
|
117
|
+
}
|
|
118
|
+
return advance({ ...loop, phase: "refactor" });
|
|
119
|
+
}
|
|
120
|
+
function done(loop, attestation) {
|
|
121
|
+
if (loop.phase !== "refactor") {
|
|
122
|
+
return refuse(`Close the loop from the refactor phase, not ${loop.phase}. ` +
|
|
123
|
+
`Pass through refactor first, even as a no-op.`);
|
|
124
|
+
}
|
|
125
|
+
if (!attestation.reflection) {
|
|
126
|
+
return refuse("Before you close, say what you reconsidered about the internal and " +
|
|
127
|
+
"external design now that a real consumer exists.");
|
|
128
|
+
}
|
|
129
|
+
return advance(rest(loop));
|
|
130
|
+
}
|
|
131
|
+
function abandon(loop, attestation) {
|
|
132
|
+
if (loop.phase === "idle") {
|
|
133
|
+
return refuse("There's no loop to abandon. Plan one when you're ready.");
|
|
134
|
+
}
|
|
135
|
+
if (!attestation.reason) {
|
|
136
|
+
return refuse("Give a reason for leaving the loop before you abandon it.");
|
|
137
|
+
}
|
|
138
|
+
return advance(rest(loop));
|
|
139
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The visual vocabulary of a TDD scoreboard: one glyph per state
|
|
3
|
+
* of the loop. The circle fills monotonically across the five
|
|
4
|
+
* build-up states (empty, quarter, half, three-quarter, full), so
|
|
5
|
+
* every state is a distinct shape and the progression reads
|
|
6
|
+
* without colour. Green is the full circle: the test is complete.
|
|
7
|
+
* Refactor leaves the circle family for a diamond because it is a
|
|
8
|
+
* different kind of activity, not another notch of the same
|
|
9
|
+
* build-up. Fill encodes progress, colour reinforces meaning, and
|
|
10
|
+
* shape alone keeps the states apart.
|
|
11
|
+
*
|
|
12
|
+
* This is presentation, not domain: a host with no scoreboard
|
|
13
|
+
* (a Claude Code skill, a bare CLI) never needs to import it. It
|
|
14
|
+
* is a separate export specifically so it stays optional.
|
|
15
|
+
*/
|
|
16
|
+
import type { Loop } from "./machine.js";
|
|
17
|
+
/** The seven distinct states the scoreboard can show. */
|
|
18
|
+
export type VisualState = "idle" | "plan" | "write" | "red-unverified" | "red-verified" | "green" | "refactor";
|
|
19
|
+
/** Collapse a loop's phase and assertion verification into one visual state. */
|
|
20
|
+
export declare function visualState(loop: Loop): VisualState;
|
|
21
|
+
/**
|
|
22
|
+
* The theme tokens a scoreboard paints with. A narrow, host-agnostic
|
|
23
|
+
* vocabulary an adapter maps onto its own palette: yellow for
|
|
24
|
+
* authoring, red for failing, green for passing, blue for
|
|
25
|
+
* refactoring and dim for idle.
|
|
26
|
+
*/
|
|
27
|
+
export type GlyphToken = "dim" | "warning" | "error" | "success" | "accent";
|
|
28
|
+
/** A glyph and the colour it should be painted in. */
|
|
29
|
+
export interface Glyph {
|
|
30
|
+
char: string;
|
|
31
|
+
token: GlyphToken;
|
|
32
|
+
}
|
|
33
|
+
/** The glyph and colour for a visual state. */
|
|
34
|
+
export declare function glyph(state: VisualState): Glyph;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The visual vocabulary of a TDD scoreboard: one glyph per state
|
|
3
|
+
* of the loop. The circle fills monotonically across the five
|
|
4
|
+
* build-up states (empty, quarter, half, three-quarter, full), so
|
|
5
|
+
* every state is a distinct shape and the progression reads
|
|
6
|
+
* without colour. Green is the full circle: the test is complete.
|
|
7
|
+
* Refactor leaves the circle family for a diamond because it is a
|
|
8
|
+
* different kind of activity, not another notch of the same
|
|
9
|
+
* build-up. Fill encodes progress, colour reinforces meaning, and
|
|
10
|
+
* shape alone keeps the states apart.
|
|
11
|
+
*
|
|
12
|
+
* This is presentation, not domain: a host with no scoreboard
|
|
13
|
+
* (a Claude Code skill, a bare CLI) never needs to import it. It
|
|
14
|
+
* is a separate export specifically so it stays optional.
|
|
15
|
+
*/
|
|
16
|
+
/** Collapse a loop's phase and assertion verification into one visual state. */
|
|
17
|
+
export function visualState(loop) {
|
|
18
|
+
if (loop.phase === "red") {
|
|
19
|
+
return loop.assertionFailure ? "red-verified" : "red-unverified";
|
|
20
|
+
}
|
|
21
|
+
return loop.phase;
|
|
22
|
+
}
|
|
23
|
+
const GLYPHS = {
|
|
24
|
+
idle: { char: "◌", token: "dim" },
|
|
25
|
+
plan: { char: "○", token: "warning" },
|
|
26
|
+
write: { char: "◔", token: "warning" },
|
|
27
|
+
"red-unverified": { char: "◑", token: "error" },
|
|
28
|
+
"red-verified": { char: "◕", token: "error" },
|
|
29
|
+
green: { char: "●", token: "success" },
|
|
30
|
+
// A circle with a centre: the same family as the phases before it,
|
|
31
|
+
// since refactoring is the last of them and not a different kind of
|
|
32
|
+
// thing.
|
|
33
|
+
refactor: { char: "◉", token: "accent" },
|
|
34
|
+
};
|
|
35
|
+
/** The glyph and colour for a visual state. */
|
|
36
|
+
export function glyph(state) {
|
|
37
|
+
return GLYPHS[state];
|
|
38
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-only queries over a loop, for an adapter to surface
|
|
3
|
+
* however its own host wants: pi via a context/message event,
|
|
4
|
+
* a CLI via a status subcommand, a Claude Code hook via whatever
|
|
5
|
+
* text it prepends. The information is host-agnostic; only the
|
|
6
|
+
* delivery mechanism differs.
|
|
7
|
+
*/
|
|
8
|
+
import type { Loop } from "./machine.js";
|
|
9
|
+
/** The standing reminder of where the loop is, or nothing at idle. */
|
|
10
|
+
export declare function standingReminder(loop: Loop): string | undefined;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-only queries over a loop, for an adapter to surface
|
|
3
|
+
* however its own host wants: pi via a context/message event,
|
|
4
|
+
* a CLI via a status subcommand, a Claude Code hook via whatever
|
|
5
|
+
* text it prepends. The information is host-agnostic; only the
|
|
6
|
+
* delivery mechanism differs.
|
|
7
|
+
*/
|
|
8
|
+
/** Whether a loop is live: past idle, with a transition in play. */
|
|
9
|
+
function isActiveLoop(loop) {
|
|
10
|
+
return loop.phase !== "idle";
|
|
11
|
+
}
|
|
12
|
+
/** The standing reminder of where the loop is, or nothing at idle. */
|
|
13
|
+
export function standingReminder(loop) {
|
|
14
|
+
if (!isActiveLoop(loop)) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
const lines = [`TDD loop ${loop.iteration}, ${loop.phase} phase.`];
|
|
18
|
+
if (loop.behaviour) {
|
|
19
|
+
lines.push(`Increment under test: ${loop.behaviour}.`);
|
|
20
|
+
}
|
|
21
|
+
return lines.join("\n");
|
|
22
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public surface of the terminal library.
|
|
3
|
+
*
|
|
4
|
+
* Pluggable launchers for new tabs, panes and windows. The
|
|
5
|
+
* quest extension uses it for `spawn-tab`/`spawn-pane`/
|
|
6
|
+
* `spawn-window`; other extensions can pick the same
|
|
7
|
+
* driver or register their own.
|
|
8
|
+
*/
|
|
9
|
+
export { clearTerminalDrivers, registerBuiltinTerminalDrivers, registerTerminalDriver, unregisterTerminalDriver, } from "./register.js";
|
|
10
|
+
export { getLivenessProvider, getTerminalDriver, getTypeProvider, identifyCurrentTerminal, listTerminalDrivers, resolveDriver, spawnTerminal, spawnTerminalSurface, } from "./resolve.js";
|
|
11
|
+
export type { TerminalDriver, TerminalLayout, TerminalLivenessCapability, TerminalProbe, TerminalRequest, TerminalSessionHandle, TerminalTypeCapability, } from "./types.js";
|
|
12
|
+
export { terminalHandleKey } from "./types.js";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public surface of the terminal library.
|
|
3
|
+
*
|
|
4
|
+
* Pluggable launchers for new tabs, panes and windows. The
|
|
5
|
+
* quest extension uses it for `spawn-tab`/`spawn-pane`/
|
|
6
|
+
* `spawn-window`; other extensions can pick the same
|
|
7
|
+
* driver or register their own.
|
|
8
|
+
*/
|
|
9
|
+
export { clearTerminalDrivers, registerBuiltinTerminalDrivers, registerTerminalDriver, unregisterTerminalDriver, } from "./register.js";
|
|
10
|
+
export { getLivenessProvider, getTerminalDriver, getTypeProvider, identifyCurrentTerminal, listTerminalDrivers, resolveDriver, spawnTerminal, spawnTerminalSurface, } from "./resolve.js";
|
|
11
|
+
export { terminalHandleKey } from "./types.js";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal driver registration. Mirrors the refs and people
|
|
3
|
+
* libraries: explicit registration for built-ins, free
|
|
4
|
+
* functions for ad-hoc driver registration, an opt-out
|
|
5
|
+
* clear for tests.
|
|
6
|
+
*/
|
|
7
|
+
import type { TerminalDriver } from "./types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Register a terminal driver. Overwrites any previously
|
|
10
|
+
* registered driver with the same id.
|
|
11
|
+
*/
|
|
12
|
+
export declare function registerTerminalDriver(driver: TerminalDriver): void;
|
|
13
|
+
/** Remove a driver from the registry. Idempotent. */
|
|
14
|
+
export declare function unregisterTerminalDriver(id: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Seed the registry with the built-in drivers: `wezterm`,
|
|
17
|
+
* `tmux` and `fallback`. Idempotent.
|
|
18
|
+
*/
|
|
19
|
+
export declare function registerBuiltinTerminalDrivers(): void;
|
|
20
|
+
/** Empty the registry. Intended for tests. */
|
|
21
|
+
export declare function clearTerminalDrivers(): void;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal driver registration. Mirrors the refs and people
|
|
3
|
+
* libraries: explicit registration for built-ins, free
|
|
4
|
+
* functions for ad-hoc driver registration, an opt-out
|
|
5
|
+
* clear for tests.
|
|
6
|
+
*/
|
|
7
|
+
import { BUILTIN_TERMINAL_DRIVERS } from "../internal/terminal/builtins.js";
|
|
8
|
+
import { clear, register, unregister } from "../internal/terminal/registry.js";
|
|
9
|
+
/**
|
|
10
|
+
* Register a terminal driver. Overwrites any previously
|
|
11
|
+
* registered driver with the same id.
|
|
12
|
+
*/
|
|
13
|
+
export function registerTerminalDriver(driver) {
|
|
14
|
+
register(driver);
|
|
15
|
+
}
|
|
16
|
+
/** Remove a driver from the registry. Idempotent. */
|
|
17
|
+
export function unregisterTerminalDriver(id) {
|
|
18
|
+
unregister(id);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Seed the registry with the built-in drivers: `wezterm`,
|
|
22
|
+
* `tmux` and `fallback`. Idempotent.
|
|
23
|
+
*/
|
|
24
|
+
export function registerBuiltinTerminalDrivers() {
|
|
25
|
+
for (const driver of BUILTIN_TERMINAL_DRIVERS)
|
|
26
|
+
register(driver);
|
|
27
|
+
}
|
|
28
|
+
/** Empty the registry. Intended for tests. */
|
|
29
|
+
export function clearTerminalDrivers() {
|
|
30
|
+
clear();
|
|
31
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Driver resolution: pick a usable terminal driver for the
|
|
3
|
+
* current environment.
|
|
4
|
+
*
|
|
5
|
+
* Resolution order:
|
|
6
|
+
*
|
|
7
|
+
* 1. The driver named in the `preferred` argument, when its
|
|
8
|
+
* `available()` returns true.
|
|
9
|
+
* 2. Each registered driver in registration order, the
|
|
10
|
+
* first whose `available()` returns true wins.
|
|
11
|
+
* 3. `undefined` when no driver is available (callers fall
|
|
12
|
+
* back to printing instructions, or refuse).
|
|
13
|
+
*/
|
|
14
|
+
import type { TerminalDriver, TerminalLivenessCapability, TerminalRequest, TerminalSessionHandle, TerminalTypeCapability } from "./types.js";
|
|
15
|
+
/** Look up a driver by id, or `undefined`. */
|
|
16
|
+
export declare function getTerminalDriver(id: string): TerminalDriver | undefined;
|
|
17
|
+
/** Snapshot of every registered driver. */
|
|
18
|
+
export declare function listTerminalDrivers(): TerminalDriver[];
|
|
19
|
+
/**
|
|
20
|
+
* Resolve the driver that can type into an existing surface, for a
|
|
21
|
+
* recorded driver id. Undefined when that driver cannot, which a
|
|
22
|
+
* caller must treat as a refusal rather than a reason to fall back:
|
|
23
|
+
* the fallback is running the command without a login shell, and that
|
|
24
|
+
* is the failure the capability exists to avoid.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getTypeProvider(driverId: string): (TerminalDriver & TerminalTypeCapability) | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Resolve the liveness provider for a recorded driver id. Returns the
|
|
29
|
+
* registered driver only when it implements the liveness capability;
|
|
30
|
+
* undefined for an unknown id or a spawn-only driver. Keyed strictly
|
|
31
|
+
* by id so a recorded handle is probed through its own driver, never
|
|
32
|
+
* whichever terminal the reader happens to be in.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getLivenessProvider(driverId: string): (TerminalDriver & TerminalLivenessCapability) | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* The terminal surface the current pi process runs in, as a
|
|
37
|
+
* probeable handle, from the first registered liveness-capable
|
|
38
|
+
* driver that recognises the environment. Undefined when no driver
|
|
39
|
+
* claims the current terminal (for example a bare shell with no
|
|
40
|
+
* supported multiplexer).
|
|
41
|
+
*/
|
|
42
|
+
export declare function identifyCurrentTerminal(): TerminalSessionHandle | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Resolve the driver to use for a spawn. Preferred wins
|
|
45
|
+
* when available; otherwise the first registered driver
|
|
46
|
+
* whose `available()` says yes.
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolveDriver(preferred?: string): Promise<TerminalDriver | undefined>;
|
|
49
|
+
/**
|
|
50
|
+
* Convenience: resolve a driver and dispatch a request in
|
|
51
|
+
* one call. Throws when no driver is available.
|
|
52
|
+
*/
|
|
53
|
+
export declare function spawnTerminal(request: TerminalRequest, preferred?: string): Promise<TerminalDriver>;
|
|
54
|
+
/**
|
|
55
|
+
* Spawn a surface and return both the driver and the handle it
|
|
56
|
+
* named, for a caller that means to type into what it just made.
|
|
57
|
+
* The handle is undefined when the driver cannot say what it
|
|
58
|
+
* created.
|
|
59
|
+
*/
|
|
60
|
+
export declare function spawnTerminalSurface(request: TerminalRequest, preferred?: string): Promise<{
|
|
61
|
+
driver: TerminalDriver;
|
|
62
|
+
handle: TerminalSessionHandle | undefined;
|
|
63
|
+
}>;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Driver resolution: pick a usable terminal driver for the
|
|
3
|
+
* current environment.
|
|
4
|
+
*
|
|
5
|
+
* Resolution order:
|
|
6
|
+
*
|
|
7
|
+
* 1. The driver named in the `preferred` argument, when its
|
|
8
|
+
* `available()` returns true.
|
|
9
|
+
* 2. Each registered driver in registration order, the
|
|
10
|
+
* first whose `available()` returns true wins.
|
|
11
|
+
* 3. `undefined` when no driver is available (callers fall
|
|
12
|
+
* back to printing instructions, or refuse).
|
|
13
|
+
*/
|
|
14
|
+
import { get, list } from "../internal/terminal/registry.js";
|
|
15
|
+
/** Look up a driver by id, or `undefined`. */
|
|
16
|
+
export function getTerminalDriver(id) {
|
|
17
|
+
return get(id);
|
|
18
|
+
}
|
|
19
|
+
/** Snapshot of every registered driver. */
|
|
20
|
+
export function listTerminalDrivers() {
|
|
21
|
+
return list();
|
|
22
|
+
}
|
|
23
|
+
/** Whether a driver implements the optional liveness capability. */
|
|
24
|
+
function hasLivenessCapability(driver) {
|
|
25
|
+
return (typeof driver.probe ===
|
|
26
|
+
"function" &&
|
|
27
|
+
typeof driver.identifyCurrent ===
|
|
28
|
+
"function");
|
|
29
|
+
}
|
|
30
|
+
function hasTypeCapability(driver) {
|
|
31
|
+
return (typeof driver.typeInto === "function");
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolve the driver that can type into an existing surface, for a
|
|
35
|
+
* recorded driver id. Undefined when that driver cannot, which a
|
|
36
|
+
* caller must treat as a refusal rather than a reason to fall back:
|
|
37
|
+
* the fallback is running the command without a login shell, and that
|
|
38
|
+
* is the failure the capability exists to avoid.
|
|
39
|
+
*/
|
|
40
|
+
export function getTypeProvider(driverId) {
|
|
41
|
+
const driver = get(driverId);
|
|
42
|
+
if (!driver || !hasTypeCapability(driver))
|
|
43
|
+
return undefined;
|
|
44
|
+
return driver;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Resolve the liveness provider for a recorded driver id. Returns the
|
|
48
|
+
* registered driver only when it implements the liveness capability;
|
|
49
|
+
* undefined for an unknown id or a spawn-only driver. Keyed strictly
|
|
50
|
+
* by id so a recorded handle is probed through its own driver, never
|
|
51
|
+
* whichever terminal the reader happens to be in.
|
|
52
|
+
*/
|
|
53
|
+
export function getLivenessProvider(driverId) {
|
|
54
|
+
const driver = get(driverId);
|
|
55
|
+
if (!driver || !hasLivenessCapability(driver))
|
|
56
|
+
return undefined;
|
|
57
|
+
return driver;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The terminal surface the current pi process runs in, as a
|
|
61
|
+
* probeable handle, from the first registered liveness-capable
|
|
62
|
+
* driver that recognises the environment. Undefined when no driver
|
|
63
|
+
* claims the current terminal (for example a bare shell with no
|
|
64
|
+
* supported multiplexer).
|
|
65
|
+
*/
|
|
66
|
+
export function identifyCurrentTerminal() {
|
|
67
|
+
for (const driver of list()) {
|
|
68
|
+
if (!hasLivenessCapability(driver))
|
|
69
|
+
continue;
|
|
70
|
+
const handle = driver.identifyCurrent();
|
|
71
|
+
if (handle)
|
|
72
|
+
return handle;
|
|
73
|
+
}
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Resolve the driver to use for a spawn. Preferred wins
|
|
78
|
+
* when available; otherwise the first registered driver
|
|
79
|
+
* whose `available()` says yes.
|
|
80
|
+
*/
|
|
81
|
+
export async function resolveDriver(preferred) {
|
|
82
|
+
if (preferred) {
|
|
83
|
+
const driver = get(preferred);
|
|
84
|
+
if (driver && (await driver.available()))
|
|
85
|
+
return driver;
|
|
86
|
+
}
|
|
87
|
+
for (const driver of list()) {
|
|
88
|
+
if (await driver.available())
|
|
89
|
+
return driver;
|
|
90
|
+
}
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Convenience: resolve a driver and dispatch a request in
|
|
95
|
+
* one call. Throws when no driver is available.
|
|
96
|
+
*/
|
|
97
|
+
export async function spawnTerminal(request, preferred) {
|
|
98
|
+
const driver = await resolveDriver(preferred);
|
|
99
|
+
if (!driver) {
|
|
100
|
+
throw new Error("No terminal driver available. Register one or seed the built-ins with `registerBuiltinTerminalDrivers`.");
|
|
101
|
+
}
|
|
102
|
+
await driver.spawn(request);
|
|
103
|
+
return driver;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Spawn a surface and return both the driver and the handle it
|
|
107
|
+
* named, for a caller that means to type into what it just made.
|
|
108
|
+
* The handle is undefined when the driver cannot say what it
|
|
109
|
+
* created.
|
|
110
|
+
*/
|
|
111
|
+
export async function spawnTerminalSurface(request, preferred) {
|
|
112
|
+
const driver = await resolveDriver(preferred);
|
|
113
|
+
if (!driver) {
|
|
114
|
+
throw new Error("No terminal driver available. Register one or seed the built-ins with `registerBuiltinTerminalDrivers`.");
|
|
115
|
+
}
|
|
116
|
+
return { driver, handle: await driver.spawn(request) };
|
|
117
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public types for the terminal library.
|
|
3
|
+
*
|
|
4
|
+
* A `TerminalDriver` knows how to spawn a new shell in a
|
|
5
|
+
* tab, a pane or a window of the user's terminal emulator
|
|
6
|
+
* or multiplexer. The library is pluggable: built-ins
|
|
7
|
+
* (wezterm, tmux, fallback) live in `lib/internal/terminal/
|
|
8
|
+
* drivers/`; consumers register their own with the same
|
|
9
|
+
* shape.
|
|
10
|
+
*/
|
|
11
|
+
/** Where the new shell should appear. */
|
|
12
|
+
export type TerminalLayout = "tab" | "pane" | "window";
|
|
13
|
+
/** A spawn request the driver fulfills. */
|
|
14
|
+
export interface TerminalRequest {
|
|
15
|
+
/** Whether to open in a tab, a pane or a new window. */
|
|
16
|
+
layout: TerminalLayout;
|
|
17
|
+
/**
|
|
18
|
+
* Shell command to run. Drivers pass this through to
|
|
19
|
+
* the underlying spawn primitive; quoting is the
|
|
20
|
+
* driver's responsibility.
|
|
21
|
+
*
|
|
22
|
+
* Optional, because a caller may want the surface itself
|
|
23
|
+
* rather than a command in it: spawning a plain login
|
|
24
|
+
* shell and then typing into it is the only way to reach
|
|
25
|
+
* a shell that has run the user's own startup files.
|
|
26
|
+
*/
|
|
27
|
+
command?: string;
|
|
28
|
+
/** Working directory for the new shell. */
|
|
29
|
+
cwd?: string;
|
|
30
|
+
/** Tab or window title, when the driver supports it. */
|
|
31
|
+
title?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Extra environment variables. Drivers add these on
|
|
34
|
+
* top of the parent shell's environment.
|
|
35
|
+
*/
|
|
36
|
+
env?: Record<string, string>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A stable, probeable reference to a terminal surface a pi session
|
|
40
|
+
* was observed in. Recorded on the session so a later reader can ask
|
|
41
|
+
* the same driver whether that surface still exists. `scope` is the
|
|
42
|
+
* mux socket and host fingerprint that makes `value` (a pane id)
|
|
43
|
+
* meaningful across terminal instances and hosts.
|
|
44
|
+
*/
|
|
45
|
+
export interface TerminalSessionHandle {
|
|
46
|
+
/** Id of the driver that issued the handle. */
|
|
47
|
+
driverId: string;
|
|
48
|
+
/** Driver-specific kind, e.g. "wezterm-pane". */
|
|
49
|
+
kind: string;
|
|
50
|
+
/** Host the surface lives on; a foreign host is unprobeable. */
|
|
51
|
+
hostId: string;
|
|
52
|
+
/** Mux socket / server fingerprint that scopes `value`. */
|
|
53
|
+
scope?: string;
|
|
54
|
+
/** The surface id itself, e.g. a wezterm pane id. */
|
|
55
|
+
value: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* A terminal probe outcome. Present and absent are only meaningful
|
|
59
|
+
* when the probe could actually observe the surface; anything else
|
|
60
|
+
* (unreachable mux, timeout, foreign scope, unsupported driver) is
|
|
61
|
+
* unknown, never a false absent.
|
|
62
|
+
*/
|
|
63
|
+
export type TerminalProbe = "present" | "absent" | "unknown";
|
|
64
|
+
/**
|
|
65
|
+
* Optional liveness capability a terminal driver may implement in
|
|
66
|
+
* addition to spawning. Resolved by the recorded driver id, never by
|
|
67
|
+
* the reader's current terminal, and probed in one batch per scope
|
|
68
|
+
* rather than once per handle.
|
|
69
|
+
*/
|
|
70
|
+
export interface TerminalLivenessCapability {
|
|
71
|
+
/**
|
|
72
|
+
* The handle for the surface the current pi process runs in, read
|
|
73
|
+
* from the environment, or undefined when this driver is not the
|
|
74
|
+
* active terminal.
|
|
75
|
+
*/
|
|
76
|
+
identifyCurrent(): TerminalSessionHandle | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* Probe a batch of handles, returning a map keyed by
|
|
79
|
+
* {@link terminalHandleKey}. One transport call per scope. The key
|
|
80
|
+
* is host, scope and value together, not the bare pane value, since
|
|
81
|
+
* a pane id is only unique within one terminal instance.
|
|
82
|
+
*/
|
|
83
|
+
probe(handles: readonly TerminalSessionHandle[], signal?: AbortSignal): Promise<ReadonlyMap<string, TerminalProbe>>;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The stable key a probe result is keyed by. A pane value is only
|
|
87
|
+
* unique within one terminal instance, so two instances can both hold
|
|
88
|
+
* pane "0"; keying by host, scope and value keeps their probe results
|
|
89
|
+
* from colliding when a batch spans instances.
|
|
90
|
+
*/
|
|
91
|
+
export declare function terminalHandleKey(handle: TerminalSessionHandle): string;
|
|
92
|
+
/**
|
|
93
|
+
* Optional capability for typing into a surface that already exists.
|
|
94
|
+
*
|
|
95
|
+
* Separate from spawning because it is the only way to reach a shell
|
|
96
|
+
* that has run the user's own startup files. Handing a command to the
|
|
97
|
+
* spawn primitive runs it under a non-interactive shell, which skips
|
|
98
|
+
* the hooks that set a project's environment up, so a command that
|
|
99
|
+
* works when typed fails when spawned. Recovering by hand after a
|
|
100
|
+
* crash meant spawning bare shells and typing the resume lines in,
|
|
101
|
+
* and a driver that can do that is a driver that can do the recovery
|
|
102
|
+
* itself.
|
|
103
|
+
*/
|
|
104
|
+
export interface TerminalTypeCapability {
|
|
105
|
+
/**
|
|
106
|
+
* Type text into an existing surface, as though the user had. A
|
|
107
|
+
* trailing newline submits it; without one the text is left on the
|
|
108
|
+
* command line for the user to read and press enter on.
|
|
109
|
+
*/
|
|
110
|
+
typeInto(handle: TerminalSessionHandle, text: string): Promise<void>;
|
|
111
|
+
}
|
|
112
|
+
/** A pluggable terminal driver. */
|
|
113
|
+
export interface TerminalDriver {
|
|
114
|
+
/** Identifier (e.g. "wezterm", "tmux"). */
|
|
115
|
+
id: string;
|
|
116
|
+
/**
|
|
117
|
+
* Quick probe: is this driver usable in the current
|
|
118
|
+
* environment? Implementations check for the binary on
|
|
119
|
+
* PATH and any required runtime context.
|
|
120
|
+
*/
|
|
121
|
+
available(): Promise<boolean> | boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Dispatch the spawn. Resolves when the spawn command
|
|
124
|
+
* has been sent; the actual lifetime of the spawned
|
|
125
|
+
* process is the driver's concern.
|
|
126
|
+
*
|
|
127
|
+
* Returns a handle to the new surface when the driver can name
|
|
128
|
+
* one, so a caller that spawned a bare shell can then type into
|
|
129
|
+
* it. A driver whose spawn primitive says nothing about what it
|
|
130
|
+
* created returns undefined, which is honest rather than a
|
|
131
|
+
* guess.
|
|
132
|
+
*/
|
|
133
|
+
spawn(request: TerminalRequest): Promise<TerminalSessionHandle | undefined>;
|
|
134
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public types for the terminal library.
|
|
3
|
+
*
|
|
4
|
+
* A `TerminalDriver` knows how to spawn a new shell in a
|
|
5
|
+
* tab, a pane or a window of the user's terminal emulator
|
|
6
|
+
* or multiplexer. The library is pluggable: built-ins
|
|
7
|
+
* (wezterm, tmux, fallback) live in `lib/internal/terminal/
|
|
8
|
+
* drivers/`; consumers register their own with the same
|
|
9
|
+
* shape.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* The stable key a probe result is keyed by. A pane value is only
|
|
13
|
+
* unique within one terminal instance, so two instances can both hold
|
|
14
|
+
* pane "0"; keying by host, scope and value keeps their probe results
|
|
15
|
+
* from colliding when a batch spans instances.
|
|
16
|
+
*/
|
|
17
|
+
export function terminalHandleKey(handle) {
|
|
18
|
+
return `${handle.driverId}\u0000${handle.hostId}\u0000${handle.scope ?? ""}\u0000${handle.value}`;
|
|
19
|
+
}
|