@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
package/dist/ui/path.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writing a path the way a person would say it.
|
|
3
|
+
*
|
|
4
|
+
* Absolute paths under a home directory carry a prefix that is the same on every
|
|
5
|
+
* line and tells the reader nothing. A tree listing is the worst case: two lines
|
|
6
|
+
* where the interesting halves are a key and a provider, and the widest thing on
|
|
7
|
+
* screen is a directory nobody has to type.
|
|
8
|
+
*/
|
|
9
|
+
import { homedir } from "node:os";
|
|
10
|
+
import { sep } from "node:path";
|
|
11
|
+
/**
|
|
12
|
+
* A path with the home directory written as `~`.
|
|
13
|
+
*
|
|
14
|
+
* **For display only.** The result is not a path any tool can open: `~` is a
|
|
15
|
+
* shell courtesy, not a filesystem entry, and expanding it is the shell's job.
|
|
16
|
+
* So this belongs in the text a person reads and never in the `details` of a
|
|
17
|
+
* tool answer, where a caller may reasonably feed a path straight back into
|
|
18
|
+
* another call. When both are wanted, abbreviate the view and keep the absolute
|
|
19
|
+
* path in the details.
|
|
20
|
+
*
|
|
21
|
+
* Rewrites a leading home prefix and nothing else. A relative path is returned
|
|
22
|
+
* as it came, which is what makes this safe to apply to a list that mixes the
|
|
23
|
+
* two: a repo-relative `lib/work/tree.ts` has no prefix to lose. A path that
|
|
24
|
+
* merely mentions the home directory somewhere in the middle is also left alone,
|
|
25
|
+
* since only the prefix is a home directory rather than a coincidence.
|
|
26
|
+
*/
|
|
27
|
+
export function displayPath(path, home = homedir()) {
|
|
28
|
+
// An empty home would turn every path into a tilde, which is the sort of
|
|
29
|
+
// thing that happens on a machine with no HOME set rather than never.
|
|
30
|
+
if (home.length === 0)
|
|
31
|
+
return path;
|
|
32
|
+
const bare = home.endsWith(sep) ? home.slice(0, -sep.length) : home;
|
|
33
|
+
if (path === bare)
|
|
34
|
+
return "~";
|
|
35
|
+
// The separator is required, so a sibling directory whose name merely starts
|
|
36
|
+
// with the home directory's name keeps its own name. Without it,
|
|
37
|
+
// `/Users/joel.gerber.backup` reads as `~.backup`, which looks like a file
|
|
38
|
+
// inside home and is a different place entirely.
|
|
39
|
+
return path.startsWith(bare + sep) ? `~${path.slice(bare.length)}` : path;
|
|
40
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public API for the `verify` domain: run the project's check
|
|
3
|
+
* command and report whether it still builds and passes.
|
|
4
|
+
*
|
|
5
|
+
* This is the "on request" layer only. pi also has a fast,
|
|
6
|
+
* turn-boundary auto-verify layer backed by a resident LSP client
|
|
7
|
+
* it keeps running; that has no equivalent adapter-side resource
|
|
8
|
+
* here (a hook process has no shared LSP session to query), so it
|
|
9
|
+
* stays pi-only rather than being approximated into something
|
|
10
|
+
* slower and heavier than what it replaces.
|
|
11
|
+
*/
|
|
12
|
+
export type { ProjectInfo } from "./project.js";
|
|
13
|
+
export { detectPackageManager, findProject } from "./project.js";
|
|
14
|
+
export type { CheckCommandSources, ResolvedCheck } from "./resolve.js";
|
|
15
|
+
export { resolveCheckCommand } from "./resolve.js";
|
|
16
|
+
export type { RunVerifyOptions, VerifyOutcome } from "./run.js";
|
|
17
|
+
export { runVerify, stripAnsi, truncate } from "./run.js";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public API for the `verify` domain: run the project's check
|
|
3
|
+
* command and report whether it still builds and passes.
|
|
4
|
+
*
|
|
5
|
+
* This is the "on request" layer only. pi also has a fast,
|
|
6
|
+
* turn-boundary auto-verify layer backed by a resident LSP client
|
|
7
|
+
* it keeps running; that has no equivalent adapter-side resource
|
|
8
|
+
* here (a hook process has no shared LSP session to query), so it
|
|
9
|
+
* stays pi-only rather than being approximated into something
|
|
10
|
+
* slower and heavier than what it replaces.
|
|
11
|
+
*/
|
|
12
|
+
export { detectPackageManager, findProject } from "./project.js";
|
|
13
|
+
export { resolveCheckCommand } from "./resolve.js";
|
|
14
|
+
export { runVerify, stripAnsi, truncate } from "./run.js";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project detection for the verify domain: walk up to the nearest
|
|
3
|
+
* package.json and read its scripts, so the check command can be
|
|
4
|
+
* resolved without the caller having to name a project directory.
|
|
5
|
+
*/
|
|
6
|
+
export interface ProjectInfo {
|
|
7
|
+
readonly dir: string;
|
|
8
|
+
readonly scripts: Readonly<Record<string, string>>;
|
|
9
|
+
readonly packageManager: string;
|
|
10
|
+
}
|
|
11
|
+
/** Walk up from startDir to the nearest package.json, reading its scripts. */
|
|
12
|
+
export declare function findProject(startDir: string): ProjectInfo | null;
|
|
13
|
+
/**
|
|
14
|
+
* Infer the package manager: an explicit Corepack `packageManager`
|
|
15
|
+
* field wins, then the lockfile present in dir. Falls back to npm,
|
|
16
|
+
* not pnpm, when neither is present: npm ships with Node itself, so
|
|
17
|
+
* it is the one manager guaranteed to exist, unlike a guess that
|
|
18
|
+
* turns "no lockfile yet" (a freshly scaffolded project, before the
|
|
19
|
+
* first install) into a false "command not found" failure.
|
|
20
|
+
*/
|
|
21
|
+
export declare function detectPackageManager(dir: string, declared?: string): string;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project detection for the verify domain: walk up to the nearest
|
|
3
|
+
* package.json and read its scripts, so the check command can be
|
|
4
|
+
* resolved without the caller having to name a project directory.
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
7
|
+
import { dirname, join } from "node:path";
|
|
8
|
+
/** Walk up from startDir to the nearest package.json, reading its scripts. */
|
|
9
|
+
export function findProject(startDir) {
|
|
10
|
+
let dir = startDir;
|
|
11
|
+
while (true) {
|
|
12
|
+
const pkgPath = join(dir, "package.json");
|
|
13
|
+
if (existsSync(pkgPath)) {
|
|
14
|
+
try {
|
|
15
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
16
|
+
return {
|
|
17
|
+
dir,
|
|
18
|
+
scripts: pkg.scripts ?? {},
|
|
19
|
+
packageManager: detectPackageManager(dir, pkg.packageManager),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const parent = dirname(dir);
|
|
27
|
+
if (parent === dir)
|
|
28
|
+
return null;
|
|
29
|
+
dir = parent;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Infer the package manager: an explicit Corepack `packageManager`
|
|
34
|
+
* field wins, then the lockfile present in dir. Falls back to npm,
|
|
35
|
+
* not pnpm, when neither is present: npm ships with Node itself, so
|
|
36
|
+
* it is the one manager guaranteed to exist, unlike a guess that
|
|
37
|
+
* turns "no lockfile yet" (a freshly scaffolded project, before the
|
|
38
|
+
* first install) into a false "command not found" failure.
|
|
39
|
+
*/
|
|
40
|
+
export function detectPackageManager(dir, declared) {
|
|
41
|
+
const fromField = declared?.split("@")[0]?.trim();
|
|
42
|
+
if (fromField)
|
|
43
|
+
return fromField;
|
|
44
|
+
if (existsSync(join(dir, "pnpm-lock.yaml")))
|
|
45
|
+
return "pnpm";
|
|
46
|
+
if (existsSync(join(dir, "yarn.lock")))
|
|
47
|
+
return "yarn";
|
|
48
|
+
return "npm";
|
|
49
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check-command resolution: pick the command the verify layer
|
|
3
|
+
* runs, by precedence. An explicit quest-verify field wins because
|
|
4
|
+
* it is the most specific to the work in hand; then an explicit
|
|
5
|
+
* verify script; then detection of the conventional lint,
|
|
6
|
+
* typecheck and test scripts, joined so all run.
|
|
7
|
+
*/
|
|
8
|
+
/** Where a check command could come from. */
|
|
9
|
+
export interface CheckCommandSources {
|
|
10
|
+
/** A verify command declared in the caller's own project convention (e.g. a loaded quest's frontmatter). */
|
|
11
|
+
readonly questVerify?: string;
|
|
12
|
+
/** The scripts block from the project's package.json. */
|
|
13
|
+
readonly packageScripts?: Readonly<Record<string, string>>;
|
|
14
|
+
/** The package manager to invoke scripts with. Defaults to pnpm. */
|
|
15
|
+
readonly packageManager?: string;
|
|
16
|
+
}
|
|
17
|
+
/** The resolved command and where it came from. */
|
|
18
|
+
export interface ResolvedCheck {
|
|
19
|
+
readonly command: string;
|
|
20
|
+
readonly source: "quest" | "script" | "detected";
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolve the check command, or null when nothing is available
|
|
24
|
+
* and the caller has nothing to run.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveCheckCommand(sources: CheckCommandSources): ResolvedCheck | null;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check-command resolution: pick the command the verify layer
|
|
3
|
+
* runs, by precedence. An explicit quest-verify field wins because
|
|
4
|
+
* it is the most specific to the work in hand; then an explicit
|
|
5
|
+
* verify script; then detection of the conventional lint,
|
|
6
|
+
* typecheck and test scripts, joined so all run.
|
|
7
|
+
*/
|
|
8
|
+
/** Scripts probed for detection, in the order they run. */
|
|
9
|
+
const DETECTED_SCRIPTS = ["lint", "typecheck", "test"];
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the check command, or null when nothing is available
|
|
12
|
+
* and the caller has nothing to run.
|
|
13
|
+
*/
|
|
14
|
+
export function resolveCheckCommand(sources) {
|
|
15
|
+
const quest = sources.questVerify?.trim();
|
|
16
|
+
if (quest)
|
|
17
|
+
return { command: quest, source: "quest" };
|
|
18
|
+
const pm = sources.packageManager ?? "pnpm";
|
|
19
|
+
const scripts = sources.packageScripts ?? {};
|
|
20
|
+
if (scripts.verify) {
|
|
21
|
+
return { command: `${pm} run verify`, source: "script" };
|
|
22
|
+
}
|
|
23
|
+
const detected = DETECTED_SCRIPTS.filter((name) => scripts[name]).map((name) => `${pm} run ${name}`);
|
|
24
|
+
if (detected.length === 0)
|
|
25
|
+
return null;
|
|
26
|
+
return { command: detected.join(" && "), source: "detected" };
|
|
27
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Running the resolved check command and shaping its output for an
|
|
3
|
+
* agent to read: strip terminal control sequences, cap a runaway
|
|
4
|
+
* tail, and report pass/fail. This is the "on request" layer only
|
|
5
|
+
* (a `verify` tool a skill or CLI subcommand exposes) — the fast,
|
|
6
|
+
* turn-boundary auto-verify layer pi also has depends on a resident
|
|
7
|
+
* LSP backend pi keeps running, which has no equivalent here, so
|
|
8
|
+
* it stays pi-only rather than being approximated badly.
|
|
9
|
+
*/
|
|
10
|
+
export declare function stripAnsi(text: string): string;
|
|
11
|
+
/** Cap the captured output so a noisy suite does not flood the reply. */
|
|
12
|
+
export declare function truncate(output: string, maxLines?: number): string;
|
|
13
|
+
export interface RunVerifyOptions {
|
|
14
|
+
/** Where to look for the nearest package.json and run the command. */
|
|
15
|
+
readonly cwd: string;
|
|
16
|
+
/** A verify command from the caller's own project convention, if any. */
|
|
17
|
+
readonly questVerify?: string;
|
|
18
|
+
readonly signal?: AbortSignal;
|
|
19
|
+
}
|
|
20
|
+
export interface VerifyOutcome {
|
|
21
|
+
readonly ok: boolean;
|
|
22
|
+
readonly command?: string;
|
|
23
|
+
/** Human-readable summary: what ran, and its tail (pass) or full output (fail). */
|
|
24
|
+
readonly output: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Resolve and run the project's check command, and shape the
|
|
28
|
+
* result for an agent to read directly. The one entry point an
|
|
29
|
+
* adapter needs.
|
|
30
|
+
*/
|
|
31
|
+
export declare function runVerify(options: RunVerifyOptions): Promise<VerifyOutcome>;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Running the resolved check command and shaping its output for an
|
|
3
|
+
* agent to read: strip terminal control sequences, cap a runaway
|
|
4
|
+
* tail, and report pass/fail. This is the "on request" layer only
|
|
5
|
+
* (a `verify` tool a skill or CLI subcommand exposes) — the fast,
|
|
6
|
+
* turn-boundary auto-verify layer pi also has depends on a resident
|
|
7
|
+
* LSP backend pi keeps running, which has no equivalent here, so
|
|
8
|
+
* it stays pi-only rather than being approximated badly.
|
|
9
|
+
*/
|
|
10
|
+
import { spawn } from "node:child_process";
|
|
11
|
+
import { findProject } from "./project.js";
|
|
12
|
+
import { resolveCheckCommand } from "./resolve.js";
|
|
13
|
+
/** How long a check command may run. */
|
|
14
|
+
const CHECK_TIMEOUT_MS = 300_000;
|
|
15
|
+
/** Cap on captured check output held in memory (a rolling tail). */
|
|
16
|
+
const MAX_CAPTURE_BYTES = 512 * 1024;
|
|
17
|
+
/**
|
|
18
|
+
* Strip ANSI escape sequences (colour and cursor control) from
|
|
19
|
+
* captured output. A test runner emits these even into a pipe, and
|
|
20
|
+
* left in returned text they smear a plain-text reader.
|
|
21
|
+
*/
|
|
22
|
+
// ESC[ control sequences (colour, cursor) with the full 0x30-0x3F
|
|
23
|
+
// parameter class so `:<=>?` are covered, and ESC] OSC sequences
|
|
24
|
+
// terminated by either BEL or ST (ESC backslash). Built from a
|
|
25
|
+
// string so the source carries no literal control bytes.
|
|
26
|
+
// biome-ignore lint/complexity/useRegexLiterals: a literal would embed control bytes the linter rejects.
|
|
27
|
+
const ANSI_PATTERN = new RegExp("\\u001b\\[[0-9:;<=>?]*[ -/]*[@-~]|\\u001b\\][\\s\\S]*?(?:\\u0007|\\u001b\\\\)", "g");
|
|
28
|
+
export function stripAnsi(text) {
|
|
29
|
+
return text.replace(ANSI_PATTERN, "");
|
|
30
|
+
}
|
|
31
|
+
/** Cap the captured output so a noisy suite does not flood the reply. */
|
|
32
|
+
export function truncate(output, maxLines = 200) {
|
|
33
|
+
const lines = output.split("\n");
|
|
34
|
+
if (lines.length <= maxLines)
|
|
35
|
+
return output.trim();
|
|
36
|
+
return [
|
|
37
|
+
`... (${lines.length - maxLines} earlier lines omitted)`,
|
|
38
|
+
...lines.slice(lines.length - maxLines),
|
|
39
|
+
]
|
|
40
|
+
.join("\n")
|
|
41
|
+
.trim();
|
|
42
|
+
}
|
|
43
|
+
function runCommand(command, cwd, signal) {
|
|
44
|
+
return new Promise((resolvePromise) => {
|
|
45
|
+
// The child runs in its own session (detached) with no stdin
|
|
46
|
+
// and piped output. Detaching removes the controlling terminal,
|
|
47
|
+
// so a test-runner descendant cannot write progress straight to
|
|
48
|
+
// the caller's screen. The environment forces plain,
|
|
49
|
+
// non-interactive output so nothing tries cursor control in the
|
|
50
|
+
// first place.
|
|
51
|
+
const child = spawn(command, {
|
|
52
|
+
cwd,
|
|
53
|
+
shell: true,
|
|
54
|
+
detached: true,
|
|
55
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
56
|
+
env: {
|
|
57
|
+
...process.env,
|
|
58
|
+
CI: "true",
|
|
59
|
+
NO_COLOR: "1",
|
|
60
|
+
FORCE_COLOR: "0",
|
|
61
|
+
TERM: "dumb",
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
// Kill the whole process group, not just the shell, so detached
|
|
65
|
+
// test workers do not outlive an abort or a timeout.
|
|
66
|
+
const killGroup = () => {
|
|
67
|
+
try {
|
|
68
|
+
if (child.pid)
|
|
69
|
+
process.kill(-child.pid, "SIGKILL");
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Already gone, or never grouped; nothing to reap.
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const timer = setTimeout(killGroup, CHECK_TIMEOUT_MS);
|
|
76
|
+
const onAbort = () => killGroup();
|
|
77
|
+
// addEventListener does not fire for a signal that is already
|
|
78
|
+
// aborted, so kill up front in that case; otherwise the
|
|
79
|
+
// detached suite would run to the timeout after an abort.
|
|
80
|
+
if (signal?.aborted)
|
|
81
|
+
killGroup();
|
|
82
|
+
else
|
|
83
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
84
|
+
const cleanup = () => {
|
|
85
|
+
clearTimeout(timer);
|
|
86
|
+
signal?.removeEventListener("abort", onAbort);
|
|
87
|
+
};
|
|
88
|
+
// Keep a rolling tail rather than the whole stream, so a
|
|
89
|
+
// runaway command cannot grow the buffer without bound for the
|
|
90
|
+
// whole timeout window; the tail is what the summary keeps.
|
|
91
|
+
let output = "";
|
|
92
|
+
const onData = (chunk) => {
|
|
93
|
+
output += chunk.toString();
|
|
94
|
+
if (output.length > MAX_CAPTURE_BYTES) {
|
|
95
|
+
output = output.slice(output.length - MAX_CAPTURE_BYTES);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
child.stdout?.on("data", onData);
|
|
99
|
+
child.stderr?.on("data", onData);
|
|
100
|
+
child.on("error", (err) => {
|
|
101
|
+
cleanup();
|
|
102
|
+
resolvePromise({
|
|
103
|
+
code: 1,
|
|
104
|
+
output: stripAnsi(`${output}\n${err.message}`).trim(),
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
child.on("close", (code) => {
|
|
108
|
+
cleanup();
|
|
109
|
+
resolvePromise({ code: code ?? 1, output: truncate(stripAnsi(output)) });
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Resolve and run the project's check command, and shape the
|
|
115
|
+
* result for an agent to read directly. The one entry point an
|
|
116
|
+
* adapter needs.
|
|
117
|
+
*/
|
|
118
|
+
export async function runVerify(options) {
|
|
119
|
+
const project = findProject(options.cwd);
|
|
120
|
+
const resolved = resolveCheckCommand({
|
|
121
|
+
...(options.questVerify ? { questVerify: options.questVerify } : {}),
|
|
122
|
+
packageScripts: project?.scripts ?? {},
|
|
123
|
+
packageManager: project?.packageManager ?? "pnpm",
|
|
124
|
+
});
|
|
125
|
+
if (!resolved) {
|
|
126
|
+
return {
|
|
127
|
+
ok: false,
|
|
128
|
+
output: "No verification command found (no lint, typecheck, test or verify script).",
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const run = await runCommand(resolved.command, project?.dir ?? options.cwd, options.signal);
|
|
132
|
+
if (run.code === 0) {
|
|
133
|
+
const tail = run.output.split("\n").slice(-12).join("\n").trim();
|
|
134
|
+
return {
|
|
135
|
+
ok: true,
|
|
136
|
+
command: resolved.command,
|
|
137
|
+
output: `Passed: ${resolved.command}\n\n${tail}`.trim(),
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
ok: false,
|
|
142
|
+
command: resolved.command,
|
|
143
|
+
output: `Failed (exit ${run.code}): ${resolved.command}\n\n${run.output}`.trim(),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a screen reader would have said out loud.
|
|
3
|
+
*
|
|
4
|
+
* A sighted reviewer sees a banner appear. A screen reader user
|
|
5
|
+
* hears something, or hears nothing at all, and nothing is the
|
|
6
|
+
* bug worth catching. Live regions are the mechanism a page
|
|
7
|
+
* uses to speak, so watching them answers "what did a screen
|
|
8
|
+
* reader user hear when I pressed save".
|
|
9
|
+
*/
|
|
10
|
+
import type { Recorded } from "../telemetry/buffer.js";
|
|
11
|
+
/** Something the page announced through a live region. */
|
|
12
|
+
export interface Announcement {
|
|
13
|
+
readonly politeness: "polite" | "assertive";
|
|
14
|
+
readonly text: string;
|
|
15
|
+
/** When it was announced, as epoch milliseconds. */
|
|
16
|
+
readonly at: number;
|
|
17
|
+
}
|
|
18
|
+
/** Lay out what was announced, in the order it was said. */
|
|
19
|
+
export declare function renderAnnouncements(entries: readonly Recorded<Announcement>[], dropped?: number): string;
|
|
20
|
+
/** The binding an injected observer reports through. */
|
|
21
|
+
export declare const ANNOUNCE_BINDING = "__piAnnounce";
|
|
22
|
+
/** The page-side array of regions the observer has nominated. */
|
|
23
|
+
export declare const CANDIDATE_REGISTRY = "__piLiveCandidates";
|
|
24
|
+
/**
|
|
25
|
+
* A change the page made somewhere that might be announced.
|
|
26
|
+
*
|
|
27
|
+
* The observer decides nothing about whether this is a live
|
|
28
|
+
* region. It reports where the change happened and lets the
|
|
29
|
+
* browser rule on it.
|
|
30
|
+
*/
|
|
31
|
+
export interface AnnouncementCandidate {
|
|
32
|
+
/** Identifies the document; a navigation starts a new one. */
|
|
33
|
+
readonly epoch: string;
|
|
34
|
+
/** Position in the page-side registry of nominated regions. */
|
|
35
|
+
readonly index: number;
|
|
36
|
+
readonly text: string;
|
|
37
|
+
readonly at: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Watch the page for anything that might be spoken.
|
|
41
|
+
*
|
|
42
|
+
* This is plain JavaScript source rather than a function, on
|
|
43
|
+
* purpose. Injecting a function serializes whatever the
|
|
44
|
+
* compiler made of it, and esbuild's keepNames wraps every
|
|
45
|
+
* named inner binding in a call to a __name helper. The page
|
|
46
|
+
* has never heard of __name, so the script throws before it
|
|
47
|
+
* registers, and nothing says so. A lone inline arrow is safe,
|
|
48
|
+
* which is why the simple evaluate callbacks elsewhere in this
|
|
49
|
+
* library are still written as functions; anything declaring
|
|
50
|
+
* helpers of its own is not. Source text survives untouched.
|
|
51
|
+
*
|
|
52
|
+
* It runs before the page's own scripts, so changes made during
|
|
53
|
+
* load are caught too. It reports through a binding the session
|
|
54
|
+
* installs; with no binding it does nothing rather than throwing
|
|
55
|
+
* inside the page under inspection.
|
|
56
|
+
*
|
|
57
|
+
* It deliberately does not decide politeness. Chrome exposes no
|
|
58
|
+
* way for page script to ask what the browser computed, and
|
|
59
|
+
* reimplementing the rules here means missing whatever the
|
|
60
|
+
* browser knows that this code does not: role=log is live,
|
|
61
|
+
* aria-live=off is not, and the mapping changes as the ARIA
|
|
62
|
+
* spec grows. So the observer nominates any region that could
|
|
63
|
+
* plausibly carry live semantics and the browser rules on it.
|
|
64
|
+
* Over-nominating costs one lookup; under-nominating loses an
|
|
65
|
+
* announcement silently, which is the failure that matters.
|
|
66
|
+
*/
|
|
67
|
+
export declare const ANNOUNCEMENT_OBSERVER: string;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a screen reader would have said out loud.
|
|
3
|
+
*
|
|
4
|
+
* A sighted reviewer sees a banner appear. A screen reader user
|
|
5
|
+
* hears something, or hears nothing at all, and nothing is the
|
|
6
|
+
* bug worth catching. Live regions are the mechanism a page
|
|
7
|
+
* uses to speak, so watching them answers "what did a screen
|
|
8
|
+
* reader user hear when I pressed save".
|
|
9
|
+
*/
|
|
10
|
+
/** Lay out what was announced, in the order it was said. */
|
|
11
|
+
export function renderAnnouncements(entries, dropped = 0) {
|
|
12
|
+
if (entries.length === 0)
|
|
13
|
+
return "Nothing was announced.";
|
|
14
|
+
const lines = entries.map(({ item }) => `${item.politeness}: ${flatten(item.text)}`);
|
|
15
|
+
if (dropped > 0) {
|
|
16
|
+
// First, where the missing ones would have been: the buffer
|
|
17
|
+
// drops the oldest, so the gap is at the top. It used to go last,
|
|
18
|
+
// which put the one line saying announcements were lost at the
|
|
19
|
+
// end of the longest possible view, where a budget removes it. A
|
|
20
|
+
// reader was then told nothing at all about the gap, which is
|
|
21
|
+
// worse than a long answer.
|
|
22
|
+
lines.unshift(`${dropped} earlier announcements were dropped.`, "");
|
|
23
|
+
}
|
|
24
|
+
return lines.join("\n");
|
|
25
|
+
}
|
|
26
|
+
/** Put an announcement on one line, the way it is heard. */
|
|
27
|
+
function flatten(text) {
|
|
28
|
+
return text.replace(/\s+/g, " ").trim();
|
|
29
|
+
}
|
|
30
|
+
/** The binding an injected observer reports through. */
|
|
31
|
+
export const ANNOUNCE_BINDING = "__piAnnounce";
|
|
32
|
+
/** The page-side array of regions the observer has nominated. */
|
|
33
|
+
export const CANDIDATE_REGISTRY = "__piLiveCandidates";
|
|
34
|
+
/**
|
|
35
|
+
* Watch the page for anything that might be spoken.
|
|
36
|
+
*
|
|
37
|
+
* This is plain JavaScript source rather than a function, on
|
|
38
|
+
* purpose. Injecting a function serializes whatever the
|
|
39
|
+
* compiler made of it, and esbuild's keepNames wraps every
|
|
40
|
+
* named inner binding in a call to a __name helper. The page
|
|
41
|
+
* has never heard of __name, so the script throws before it
|
|
42
|
+
* registers, and nothing says so. A lone inline arrow is safe,
|
|
43
|
+
* which is why the simple evaluate callbacks elsewhere in this
|
|
44
|
+
* library are still written as functions; anything declaring
|
|
45
|
+
* helpers of its own is not. Source text survives untouched.
|
|
46
|
+
*
|
|
47
|
+
* It runs before the page's own scripts, so changes made during
|
|
48
|
+
* load are caught too. It reports through a binding the session
|
|
49
|
+
* installs; with no binding it does nothing rather than throwing
|
|
50
|
+
* inside the page under inspection.
|
|
51
|
+
*
|
|
52
|
+
* It deliberately does not decide politeness. Chrome exposes no
|
|
53
|
+
* way for page script to ask what the browser computed, and
|
|
54
|
+
* reimplementing the rules here means missing whatever the
|
|
55
|
+
* browser knows that this code does not: role=log is live,
|
|
56
|
+
* aria-live=off is not, and the mapping changes as the ARIA
|
|
57
|
+
* spec grows. So the observer nominates any region that could
|
|
58
|
+
* plausibly carry live semantics and the browser rules on it.
|
|
59
|
+
* Over-nominating costs one lookup; under-nominating loses an
|
|
60
|
+
* announcement silently, which is the failure that matters.
|
|
61
|
+
*/
|
|
62
|
+
export const ANNOUNCEMENT_OBSERVER = `(() => {
|
|
63
|
+
var BINDING = ${JSON.stringify(ANNOUNCE_BINDING)};
|
|
64
|
+
var REGISTRY = ${JSON.stringify(CANDIDATE_REGISTRY)};
|
|
65
|
+
var CANDIDATE_SELECTOR = "[aria-live], [role], output";
|
|
66
|
+
var epoch = String(Date.now()) + "-" + String(Math.random()).slice(2, 8);
|
|
67
|
+
|
|
68
|
+
globalThis[REGISTRY] = [];
|
|
69
|
+
var indexByElement = new WeakMap();
|
|
70
|
+
|
|
71
|
+
function indexOf(element) {
|
|
72
|
+
var known = indexByElement.get(element);
|
|
73
|
+
if (known !== undefined) return known;
|
|
74
|
+
var index = globalThis[REGISTRY].length;
|
|
75
|
+
globalThis[REGISTRY].push(element);
|
|
76
|
+
indexByElement.set(element, index);
|
|
77
|
+
return index;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function nominate(index, text) {
|
|
81
|
+
var sink = globalThis[BINDING];
|
|
82
|
+
if (sink) {
|
|
83
|
+
sink({ epoch: epoch, index: index, text: text, at: Date.now() });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function watch() {
|
|
88
|
+
var observer = new MutationObserver(function (records) {
|
|
89
|
+
var seen = {};
|
|
90
|
+
for (var i = 0; i < records.length; i++) {
|
|
91
|
+
var node = records[i].target;
|
|
92
|
+
var element = node.nodeType === 1 ? node : node.parentElement;
|
|
93
|
+
if (!element) continue;
|
|
94
|
+
var region = element.closest(CANDIDATE_SELECTOR);
|
|
95
|
+
if (!region) continue;
|
|
96
|
+
var text = (region.textContent || "").trim();
|
|
97
|
+
if (!text) continue;
|
|
98
|
+
var index = indexOf(region);
|
|
99
|
+
// One edit can raise several records against the same
|
|
100
|
+
// region; a listener hears it once.
|
|
101
|
+
var key = String(index) + "\\u0000" + text;
|
|
102
|
+
if (seen[key]) continue;
|
|
103
|
+
seen[key] = true;
|
|
104
|
+
nominate(index, text);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
observer.observe(document.body, {
|
|
108
|
+
childList: true,
|
|
109
|
+
subtree: true,
|
|
110
|
+
characterData: true,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (document.body) watch();
|
|
115
|
+
else document.addEventListener("DOMContentLoaded", watch);
|
|
116
|
+
})();`;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keeping a page outline inside a response.
|
|
3
|
+
*
|
|
4
|
+
* The outline is the most-returned payload in the whole family:
|
|
5
|
+
* every read of a page answers with one, and so does every
|
|
6
|
+
* navigation and every action, because the page after the fact is
|
|
7
|
+
* how a caller knows what their click did. Lists have been
|
|
8
|
+
* budgeted since the beginning. The outline was not, and a page
|
|
9
|
+
* whose outline is small is only the common case, not the rule:
|
|
10
|
+
* one source file of eighteen thousand lines, each line a
|
|
11
|
+
* listitem with a button and a text node, renders two and a half
|
|
12
|
+
* megabytes of perfectly good outline. A wheel scroll returned
|
|
13
|
+
* all of it.
|
|
14
|
+
*
|
|
15
|
+
* So the same rule as everywhere else. The limit is a
|
|
16
|
+
* presentation default rather than a ceiling, whole lines survive
|
|
17
|
+
* rather than bytes, and anything cut says so and says how to go
|
|
18
|
+
* and get it. The page is not the answer's size: narrowing the
|
|
19
|
+
* view is always available, and it is cheaper than reading the
|
|
20
|
+
* whole thing and discarding it.
|
|
21
|
+
*/
|
|
22
|
+
import { type BudgetedView } from "@jitsusama/agentic-harness.core/result";
|
|
23
|
+
/**
|
|
24
|
+
* What an explicit read of a page spends on the outline.
|
|
25
|
+
*
|
|
26
|
+
* Generous, because somebody who asked to see the page wants the
|
|
27
|
+
* page: this fits a normal application view whole and only bites
|
|
28
|
+
* on the pathological ones.
|
|
29
|
+
*/
|
|
30
|
+
export declare const OUTLINE_BUDGET_BYTES = 16384;
|
|
31
|
+
/**
|
|
32
|
+
* What the page view after an action spends.
|
|
33
|
+
*
|
|
34
|
+
* Tighter, because this outline was not asked for. It is
|
|
35
|
+
* confirmation of what just happened, and the caller who wants
|
|
36
|
+
* the page in full can read it in full.
|
|
37
|
+
*/
|
|
38
|
+
export declare const ACTION_VIEW_BUDGET_BYTES = 4096;
|
|
39
|
+
/**
|
|
40
|
+
* The most an outline will spend, however large a budget is asked
|
|
41
|
+
* for.
|
|
42
|
+
*
|
|
43
|
+
* Every other limit here is a presentation default that a caller
|
|
44
|
+
* can raise, because nothing should cap what this package can
|
|
45
|
+
* find out. A budget is different: it is not a limit on the
|
|
46
|
+
* finding, it is a limit on what gets pasted into a context
|
|
47
|
+
* window, and the whole point of storing the remainder is that
|
|
48
|
+
* raising it is never the way to see more. Left open, one call
|
|
49
|
+
* asking for a hundred megabytes undoes the entire mechanism, and
|
|
50
|
+
* the model choosing the number is the one party with no idea
|
|
51
|
+
* what it costs. Four times the generous default, which no real
|
|
52
|
+
* page reaches.
|
|
53
|
+
*/
|
|
54
|
+
export declare const MAX_OUTLINE_BUDGET_BYTES: number;
|
|
55
|
+
/**
|
|
56
|
+
* The budget to actually spend, given what was asked for.
|
|
57
|
+
*
|
|
58
|
+
* Refuses nothing: a caller who asks for more than the ceiling
|
|
59
|
+
* gets the ceiling, and the citation then tells them the rest is
|
|
60
|
+
* queryable, which is what they wanted in the first place.
|
|
61
|
+
*/
|
|
62
|
+
export declare function outlineBudget(asked: number | undefined): number;
|
|
63
|
+
/** An outline cut to fit, and what fitting it cost. */
|
|
64
|
+
export interface BudgetedOutline extends BudgetedView {
|
|
65
|
+
/** What was cut and how to read it, when anything was. */
|
|
66
|
+
readonly elided?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* As much of an outline as the budget affords, and never none.
|
|
70
|
+
*
|
|
71
|
+
* The cutting is the general rule from agentic-harness.core's result
|
|
72
|
+
* module; what belongs to the page is the advice about what to do
|
|
73
|
+
* next, since narrowing a page read has its own vocabulary.
|
|
74
|
+
*/
|
|
75
|
+
export declare function withinOutlineBudget(rendered: string, budget: number): BudgetedOutline;
|