@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,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The closed set of sanctioned section headings, one set per
|
|
3
|
+
* artifact. Each entry is the exact heading string the body must
|
|
4
|
+
* use: the hashes, the emoji and the name together.
|
|
5
|
+
*
|
|
6
|
+
* These constants are the single source the gate enforces, but
|
|
7
|
+
* the skills are the single source of truth for what the
|
|
8
|
+
* conventions are.
|
|
9
|
+
*/
|
|
10
|
+
/** The PR body's three required sections, in order. */
|
|
11
|
+
export const PR_SECTIONS = [
|
|
12
|
+
"### 🌐 Situation",
|
|
13
|
+
"### 🔧 Resolution",
|
|
14
|
+
"### 🔬 Validation",
|
|
15
|
+
];
|
|
16
|
+
/** The issue body's three required sections, in order. */
|
|
17
|
+
export const ISSUE_SECTIONS = [
|
|
18
|
+
"### 🌐 Situation",
|
|
19
|
+
"### 🎯 Outcome",
|
|
20
|
+
"### ✅ Acceptance",
|
|
21
|
+
];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell command parsing utilities.
|
|
3
|
+
*
|
|
4
|
+
* Public entry point for analysing bash command strings.
|
|
5
|
+
* Used by guardians, interceptors and any code that needs
|
|
6
|
+
* to understand shell command structure.
|
|
7
|
+
*/
|
|
8
|
+
export { extractBody, extractBodyFilePath, extractFlag, hasUnquotedHeredoc, quote, splitAtCommand, stripHeredocBodies, stripShellData, unquote, } from "./parse.js";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell command parsing utilities.
|
|
3
|
+
*
|
|
4
|
+
* Public entry point for analysing bash command strings.
|
|
5
|
+
* Used by guardians, interceptors and any code that needs
|
|
6
|
+
* to understand shell command structure.
|
|
7
|
+
*/
|
|
8
|
+
export { extractBody, extractBodyFilePath, extractFlag, hasUnquotedHeredoc, quote, splitAtCommand, stripHeredocBodies, stripShellData, unquote, } from "./parse.js";
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell-level command parsing: flag extraction, heredoc
|
|
3
|
+
* stripping, quoting and compound command splitting.
|
|
4
|
+
*
|
|
5
|
+
* These utilities work on raw bash command strings. They know
|
|
6
|
+
* about shell syntax (quoting, heredocs, separators) but
|
|
7
|
+
* nothing about specific CLI tools.
|
|
8
|
+
*/
|
|
9
|
+
/** A single heredoc found in a command. */
|
|
10
|
+
export interface HeredocMatch {
|
|
11
|
+
/** The delimiter word (e.g. `EOF`). */
|
|
12
|
+
readonly delim: string;
|
|
13
|
+
/** The body between the opening line and the closing delimiter. */
|
|
14
|
+
readonly body: string;
|
|
15
|
+
/** Whether the delimiter was quoted (`<<'EOF'`) or bare (`<<EOF`). */
|
|
16
|
+
readonly quoted: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* The opener-line tokens after the delimiter (a `2>&1 | tail -5`
|
|
19
|
+
* redirect-and-pipe, say). Empty when nothing trails the
|
|
20
|
+
* delimiter. The body starts on the next line regardless, so
|
|
21
|
+
* these are command structure, not body, and a rebuild must
|
|
22
|
+
* reattach them to the opener line or they vanish.
|
|
23
|
+
*/
|
|
24
|
+
readonly openerRest: string;
|
|
25
|
+
/** Start offset of the whole heredoc within the command. */
|
|
26
|
+
readonly index: number;
|
|
27
|
+
/** Length of the whole heredoc match. */
|
|
28
|
+
readonly length: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Find every heredoc in a command, in order.
|
|
32
|
+
*
|
|
33
|
+
* One primitive backs all heredoc handling so the four call
|
|
34
|
+
* sites cannot drift apart again (the `m`-flag bug in commit
|
|
35
|
+
* `9be69db` was exactly that drift). The closing delimiter must
|
|
36
|
+
* sit on its own line with only trailing horizontal whitespace,
|
|
37
|
+
* so a delimiter word appearing inside the body is not mistaken
|
|
38
|
+
* for the end.
|
|
39
|
+
*/
|
|
40
|
+
export declare function matchHeredocs(command: string): HeredocMatch[];
|
|
41
|
+
/** Extract a --flag value from a command string (quoted or unquoted). */
|
|
42
|
+
export declare function extractFlag(command: string, flag: string): string | null;
|
|
43
|
+
/** Extract the body from a command, supporting heredoc and --body flag. */
|
|
44
|
+
export declare function extractBody(fullCommand: string, entityPart: string): string | null;
|
|
45
|
+
/**
|
|
46
|
+
* Turn a raw shell word into its literal value: strip the quotes
|
|
47
|
+
* the shell would, unescape backslashes outside single quotes, and
|
|
48
|
+
* concatenate adjacent quoted and bare runs the way the shell joins
|
|
49
|
+
* them into one argument.
|
|
50
|
+
*/
|
|
51
|
+
export declare function unquote(word: string): string;
|
|
52
|
+
/** Safe shell quoting. */
|
|
53
|
+
export declare function quote(s: string): string;
|
|
54
|
+
/**
|
|
55
|
+
* Split a compound command at the last separator before the
|
|
56
|
+
* target command. Returns the prefix (everything before) and
|
|
57
|
+
* the target command portion.
|
|
58
|
+
*
|
|
59
|
+
* Separators: `&&`, `;`, and newlines. Newlines are statement
|
|
60
|
+
* separators in shell scripts, just like `;`. Without this,
|
|
61
|
+
* guardians silently drop prefixes when the agent formats
|
|
62
|
+
* commands across multiple lines.
|
|
63
|
+
*
|
|
64
|
+
* Examples:
|
|
65
|
+
* splitAtCommand("cd /path && gh pr create ...", /gh\s+pr\s+.../)
|
|
66
|
+
* splitAtCommand("git add -A && git commit ...", /git\s+commit\b/)
|
|
67
|
+
* splitAtCommand("git checkout branch\ngh pr create ...", /gh\s+pr\s+.../)
|
|
68
|
+
*/
|
|
69
|
+
export declare function splitAtCommand(command: string, targetPattern: RegExp): {
|
|
70
|
+
prefix: string | null;
|
|
71
|
+
target: string;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Strip heredoc bodies from a command so only actual shell
|
|
75
|
+
* commands are analysed. Without this, text inside a heredoc
|
|
76
|
+
* (like "git commit" in a PR description) would be mistaken
|
|
77
|
+
* for a real command.
|
|
78
|
+
*/
|
|
79
|
+
export declare function stripHeredocBodies(command: string): string;
|
|
80
|
+
/**
|
|
81
|
+
* Check whether a command contains a heredoc with an unquoted
|
|
82
|
+
* delimiter. Unquoted delimiters (`<<EOF`) allow shell variable
|
|
83
|
+
* expansion inside the body, which almost always corrupts the
|
|
84
|
+
* content. Quoted delimiters (`<<'EOF'` or `<<"EOF"`) suppress
|
|
85
|
+
* expansion and pass content through literally.
|
|
86
|
+
*
|
|
87
|
+
* Matches the full heredoc structure (operator, body and
|
|
88
|
+
* closing delimiter) so that `<<` appearing inside heredoc
|
|
89
|
+
* body text does not trigger false positives.
|
|
90
|
+
*
|
|
91
|
+
* Returns true if an unquoted heredoc is found. Returns false
|
|
92
|
+
* if there are no heredocs or all heredocs have quoted
|
|
93
|
+
* delimiters.
|
|
94
|
+
*/
|
|
95
|
+
export declare function hasUnquotedHeredoc(command: string): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Check whether a `--body-file` flag points to a file path
|
|
98
|
+
* instead of stdin (`-`). Returns the path if found, null
|
|
99
|
+
* if `--body-file -` or no `--body-file` at all.
|
|
100
|
+
*/
|
|
101
|
+
export declare function extractBodyFilePath(command: string): string | null;
|
|
102
|
+
/**
|
|
103
|
+
* Strip non-executable content from a shell command string:
|
|
104
|
+
* comments and the interior of quoted strings.
|
|
105
|
+
*
|
|
106
|
+
* Designed to run on the output of `stripHeredocBodies` so
|
|
107
|
+
* that heredoc bodies are already removed. The result is a
|
|
108
|
+
* command skeleton suitable for pattern matching: command
|
|
109
|
+
* names, flags and operators survive; data does not.
|
|
110
|
+
*
|
|
111
|
+
* The scanner tracks single-quote, double-quote and escape
|
|
112
|
+
* state across the entire string (including newlines) so
|
|
113
|
+
* multi-line quoted strings are handled correctly.
|
|
114
|
+
*
|
|
115
|
+
* Backslash-newline (line continuation) is handled correctly:
|
|
116
|
+
* both characters are consumed and the next line continues
|
|
117
|
+
* mid-word, so a `#` after a continuation is not mistaken
|
|
118
|
+
* for a comment.
|
|
119
|
+
*
|
|
120
|
+
* Quote delimiters themselves are preserved (content between
|
|
121
|
+
* them is removed) so that surrounding syntax stays intact:
|
|
122
|
+
* `git commit -m "message" --no-verify`
|
|
123
|
+
* → `git commit -m "" --no-verify`
|
|
124
|
+
*/
|
|
125
|
+
export declare function stripShellData(command: string): string;
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell-level command parsing: flag extraction, heredoc
|
|
3
|
+
* stripping, quoting and compound command splitting.
|
|
4
|
+
*
|
|
5
|
+
* These utilities work on raw bash command strings. They know
|
|
6
|
+
* about shell syntax (quoting, heredocs, separators) but
|
|
7
|
+
* nothing about specific CLI tools.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Find every heredoc in a command, in order.
|
|
11
|
+
*
|
|
12
|
+
* One primitive backs all heredoc handling so the four call
|
|
13
|
+
* sites cannot drift apart again (the `m`-flag bug in commit
|
|
14
|
+
* `9be69db` was exactly that drift). The closing delimiter must
|
|
15
|
+
* sit on its own line with only trailing horizontal whitespace,
|
|
16
|
+
* so a delimiter word appearing inside the body is not mistaken
|
|
17
|
+
* for the end.
|
|
18
|
+
*/
|
|
19
|
+
export function matchHeredocs(command) {
|
|
20
|
+
// Group 1: optional quote around the delimiter. Group 2: the
|
|
21
|
+
// delimiter word. Group 3: the opener-line tokens after the
|
|
22
|
+
// delimiter (a redirect or pipe). Group 4: the body. The
|
|
23
|
+
// opener accepts anything up to the newline (`[^\n]*`) so a
|
|
24
|
+
// piped `gh ... <<'EOF' 2>&1 | tail -5` still parses; without
|
|
25
|
+
// it the gate, attribution and the unquoted-heredoc guard all
|
|
26
|
+
// go blind on the same command. The closing delimiter is
|
|
27
|
+
// matched via a backreference to group 2 and must sit on its
|
|
28
|
+
// own line (`\n\2`) with only trailing horizontal whitespace
|
|
29
|
+
// before the line end, anchored by `$` under `/m`.
|
|
30
|
+
const HEREDOC = /<<-?\s*(['"]?)(\w+)\1([^\n]*)\n([\s\S]*?)\n\2[ \t]*$/gm;
|
|
31
|
+
const matches = [];
|
|
32
|
+
for (const match of command.matchAll(HEREDOC)) {
|
|
33
|
+
if (match.index === undefined)
|
|
34
|
+
continue;
|
|
35
|
+
matches.push({
|
|
36
|
+
delim: match[2] ?? "",
|
|
37
|
+
body: match[4] ?? "",
|
|
38
|
+
quoted: match[1] !== "",
|
|
39
|
+
openerRest: match[3] ?? "",
|
|
40
|
+
index: match.index,
|
|
41
|
+
length: match[0].length,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return matches;
|
|
45
|
+
}
|
|
46
|
+
/** Extract a --flag value from a command string (quoted or unquoted). */
|
|
47
|
+
export function extractFlag(command, flag) {
|
|
48
|
+
// Double-quoted: --flag "value with spaces"
|
|
49
|
+
const dq = new RegExp(`--${flag}\\s+"((?:[^"\\\\]|\\\\.)*)"`);
|
|
50
|
+
const dqMatch = command.match(dq);
|
|
51
|
+
if (dqMatch)
|
|
52
|
+
return dqMatch[1]?.replace(/\\(.)/g, "$1") ?? null;
|
|
53
|
+
// Single-quoted: --flag 'value' or --flag 'it'\''s here'
|
|
54
|
+
// Shell has no escape inside single quotes. The idiom '\'' closes
|
|
55
|
+
// the current quote, emits an escaped quote, and opens a new one.
|
|
56
|
+
// The regex matches the full shell value including '\'' sequences,
|
|
57
|
+
// then post-processing strips outer quotes and unescapes.
|
|
58
|
+
const sq = new RegExp(`--${flag}\\s+('[^']*(?:'\\\\''[^']*)*')`);
|
|
59
|
+
const sqMatch = command.match(sq);
|
|
60
|
+
if (sqMatch?.[1]) {
|
|
61
|
+
return sqMatch[1].slice(1, -1).replace(/'\\''/g, "'");
|
|
62
|
+
}
|
|
63
|
+
// Unquoted: --flag value (no whitespace in value)
|
|
64
|
+
const uq = new RegExp(`--${flag}\\s+(\\S+)`);
|
|
65
|
+
const uqMatch = command.match(uq);
|
|
66
|
+
return uqMatch?.[1] ?? null;
|
|
67
|
+
}
|
|
68
|
+
/** Extract the body from a command, supporting heredoc and --body flag. */
|
|
69
|
+
export function extractBody(fullCommand, entityPart) {
|
|
70
|
+
// Heredoc: --body-file - <<'DELIM'\nbody\nDELIM
|
|
71
|
+
const heredoc = matchHeredocs(fullCommand)[0];
|
|
72
|
+
if (heredoc)
|
|
73
|
+
return heredoc.body;
|
|
74
|
+
// --body flag
|
|
75
|
+
return extractFlag(entityPart, "body");
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Turn a raw shell word into its literal value: strip the quotes
|
|
79
|
+
* the shell would, unescape backslashes outside single quotes, and
|
|
80
|
+
* concatenate adjacent quoted and bare runs the way the shell joins
|
|
81
|
+
* them into one argument.
|
|
82
|
+
*/
|
|
83
|
+
export function unquote(word) {
|
|
84
|
+
let out = "";
|
|
85
|
+
let i = 0;
|
|
86
|
+
while (i < word.length) {
|
|
87
|
+
const ch = word[i];
|
|
88
|
+
if (ch === "'") {
|
|
89
|
+
const close = word.indexOf("'", i + 1);
|
|
90
|
+
const end = close === -1 ? word.length : close;
|
|
91
|
+
out += word.slice(i + 1, end);
|
|
92
|
+
i = end + 1;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (ch === '"') {
|
|
96
|
+
i++;
|
|
97
|
+
while (i < word.length && word[i] !== '"') {
|
|
98
|
+
if (word[i] === "\\" && i + 1 < word.length) {
|
|
99
|
+
out += word[i + 1];
|
|
100
|
+
i += 2;
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
out += word[i];
|
|
104
|
+
i++;
|
|
105
|
+
}
|
|
106
|
+
i++;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (ch === "\\" && i + 1 < word.length) {
|
|
110
|
+
out += word[i + 1];
|
|
111
|
+
i += 2;
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
out += ch;
|
|
115
|
+
i++;
|
|
116
|
+
}
|
|
117
|
+
return out;
|
|
118
|
+
}
|
|
119
|
+
/** Safe shell quoting. */
|
|
120
|
+
export function quote(s) {
|
|
121
|
+
if (!s.includes("'"))
|
|
122
|
+
return `'${s}'`;
|
|
123
|
+
return `"${s.replace(/["\\]/g, "\\$&")}"`;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Split a compound command at the last separator before the
|
|
127
|
+
* target command. Returns the prefix (everything before) and
|
|
128
|
+
* the target command portion.
|
|
129
|
+
*
|
|
130
|
+
* Separators: `&&`, `;`, and newlines. Newlines are statement
|
|
131
|
+
* separators in shell scripts, just like `;`. Without this,
|
|
132
|
+
* guardians silently drop prefixes when the agent formats
|
|
133
|
+
* commands across multiple lines.
|
|
134
|
+
*
|
|
135
|
+
* Examples:
|
|
136
|
+
* splitAtCommand("cd /path && gh pr create ...", /gh\s+pr\s+.../)
|
|
137
|
+
* splitAtCommand("git add -A && git commit ...", /git\s+commit\b/)
|
|
138
|
+
* splitAtCommand("git checkout branch\ngh pr create ...", /gh\s+pr\s+.../)
|
|
139
|
+
*/
|
|
140
|
+
export function splitAtCommand(command, targetPattern) {
|
|
141
|
+
const source = targetPattern.source;
|
|
142
|
+
// [\s\S]* for the prefix so it matches across newlines.
|
|
143
|
+
// Separators: &&, ;, or newline.
|
|
144
|
+
const re = new RegExp(`^([\\s\\S]*)\\s*(?:&&|;|\\n)\\s*(${source}[\\s\\S]*)$`);
|
|
145
|
+
const match = command.match(re);
|
|
146
|
+
if (match?.[1]?.trim()) {
|
|
147
|
+
return { prefix: match[1].trim(), target: match[2] ?? command };
|
|
148
|
+
}
|
|
149
|
+
return { prefix: null, target: command };
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Strip heredoc bodies from a command so only actual shell
|
|
153
|
+
* commands are analysed. Without this, text inside a heredoc
|
|
154
|
+
* (like "git commit" in a PR description) would be mistaken
|
|
155
|
+
* for a real command.
|
|
156
|
+
*/
|
|
157
|
+
export function stripHeredocBodies(command) {
|
|
158
|
+
// Remove each heredoc span (operator through closing delimiter)
|
|
159
|
+
// from the end backwards so earlier offsets stay valid.
|
|
160
|
+
let result = command;
|
|
161
|
+
for (const heredoc of matchHeredocs(command).reverse()) {
|
|
162
|
+
result =
|
|
163
|
+
result.slice(0, heredoc.index) +
|
|
164
|
+
result.slice(heredoc.index + heredoc.length);
|
|
165
|
+
}
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Check whether a command contains a heredoc with an unquoted
|
|
170
|
+
* delimiter. Unquoted delimiters (`<<EOF`) allow shell variable
|
|
171
|
+
* expansion inside the body, which almost always corrupts the
|
|
172
|
+
* content. Quoted delimiters (`<<'EOF'` or `<<"EOF"`) suppress
|
|
173
|
+
* expansion and pass content through literally.
|
|
174
|
+
*
|
|
175
|
+
* Matches the full heredoc structure (operator, body and
|
|
176
|
+
* closing delimiter) so that `<<` appearing inside heredoc
|
|
177
|
+
* body text does not trigger false positives.
|
|
178
|
+
*
|
|
179
|
+
* Returns true if an unquoted heredoc is found. Returns false
|
|
180
|
+
* if there are no heredocs or all heredocs have quoted
|
|
181
|
+
* delimiters.
|
|
182
|
+
*/
|
|
183
|
+
export function hasUnquotedHeredoc(command) {
|
|
184
|
+
return matchHeredocs(command).some((heredoc) => !heredoc.quoted);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Check whether a `--body-file` flag points to a file path
|
|
188
|
+
* instead of stdin (`-`). Returns the path if found, null
|
|
189
|
+
* if `--body-file -` or no `--body-file` at all.
|
|
190
|
+
*/
|
|
191
|
+
export function extractBodyFilePath(command) {
|
|
192
|
+
const match = command.match(/--body-file\s+(\S+)/);
|
|
193
|
+
if (!match)
|
|
194
|
+
return null;
|
|
195
|
+
const target = match[1];
|
|
196
|
+
if (target === "-")
|
|
197
|
+
return null;
|
|
198
|
+
// Strip surrounding quotes if present.
|
|
199
|
+
return target?.replace(/^['"]|['"]$/g, "") ?? null;
|
|
200
|
+
}
|
|
201
|
+
/** Characters that delimit commands in shell syntax. */
|
|
202
|
+
const COMMAND_DELIMITERS = new Set([";", "&", "|", "(", ")"]);
|
|
203
|
+
/**
|
|
204
|
+
* Strip non-executable content from a shell command string:
|
|
205
|
+
* comments and the interior of quoted strings.
|
|
206
|
+
*
|
|
207
|
+
* Designed to run on the output of `stripHeredocBodies` so
|
|
208
|
+
* that heredoc bodies are already removed. The result is a
|
|
209
|
+
* command skeleton suitable for pattern matching: command
|
|
210
|
+
* names, flags and operators survive; data does not.
|
|
211
|
+
*
|
|
212
|
+
* The scanner tracks single-quote, double-quote and escape
|
|
213
|
+
* state across the entire string (including newlines) so
|
|
214
|
+
* multi-line quoted strings are handled correctly.
|
|
215
|
+
*
|
|
216
|
+
* Backslash-newline (line continuation) is handled correctly:
|
|
217
|
+
* both characters are consumed and the next line continues
|
|
218
|
+
* mid-word, so a `#` after a continuation is not mistaken
|
|
219
|
+
* for a comment.
|
|
220
|
+
*
|
|
221
|
+
* Quote delimiters themselves are preserved (content between
|
|
222
|
+
* them is removed) so that surrounding syntax stays intact:
|
|
223
|
+
* `git commit -m "message" --no-verify`
|
|
224
|
+
* → `git commit -m "" --no-verify`
|
|
225
|
+
*/
|
|
226
|
+
export function stripShellData(command) {
|
|
227
|
+
let result = "";
|
|
228
|
+
let inSingle = false;
|
|
229
|
+
let inDouble = false;
|
|
230
|
+
let escaped = false;
|
|
231
|
+
// Tracks whether the current position could start a new
|
|
232
|
+
// token. Maintained by the scanner so that backslash-newline
|
|
233
|
+
// continuations correctly suppress word-start detection.
|
|
234
|
+
let atWordStart = true;
|
|
235
|
+
for (let i = 0; i < command.length; i++) {
|
|
236
|
+
const ch = command[i];
|
|
237
|
+
// The previous character was an unquoted backslash, so
|
|
238
|
+
// this character is escaped.
|
|
239
|
+
if (escaped) {
|
|
240
|
+
escaped = false;
|
|
241
|
+
// Backslash-newline is a line continuation: both
|
|
242
|
+
// characters are consumed and the lines join. The
|
|
243
|
+
// next character is still mid-word.
|
|
244
|
+
if (ch === "\n")
|
|
245
|
+
continue;
|
|
246
|
+
if (!inSingle && !inDouble) {
|
|
247
|
+
result += "\\";
|
|
248
|
+
result += ch;
|
|
249
|
+
}
|
|
250
|
+
atWordStart = false;
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
// Backslash escapes the next character in every context
|
|
254
|
+
// except single quotes, where nothing is special.
|
|
255
|
+
if (ch === "\\" && !inSingle) {
|
|
256
|
+
escaped = true;
|
|
257
|
+
atWordStart = false;
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
// Single-quote toggle (only outside double quotes).
|
|
261
|
+
if (ch === "'" && !inDouble) {
|
|
262
|
+
inSingle = !inSingle;
|
|
263
|
+
result += ch;
|
|
264
|
+
atWordStart = false;
|
|
265
|
+
continue;
|
|
266
|
+
}
|
|
267
|
+
// Double-quote toggle (only outside single quotes).
|
|
268
|
+
if (ch === '"' && !inSingle) {
|
|
269
|
+
inDouble = !inDouble;
|
|
270
|
+
result += ch;
|
|
271
|
+
atWordStart = false;
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
// Inside quotes: swallow the content.
|
|
275
|
+
if (inSingle || inDouble)
|
|
276
|
+
continue;
|
|
277
|
+
// Unquoted `#` at a word-start position begins a comment
|
|
278
|
+
// that runs to the end of the line.
|
|
279
|
+
if (ch === "#" && atWordStart) {
|
|
280
|
+
const newline = command.indexOf("\n", i);
|
|
281
|
+
if (newline === -1)
|
|
282
|
+
break;
|
|
283
|
+
// We jump to the character before the newline so the
|
|
284
|
+
// loop increment lands on the newline itself, which
|
|
285
|
+
// the next iteration emits normally.
|
|
286
|
+
i = newline - 1;
|
|
287
|
+
continue;
|
|
288
|
+
}
|
|
289
|
+
result += ch;
|
|
290
|
+
atWordStart = ch === "\n" || /\s/.test(ch) || COMMAND_DELIMITERS.has(ch);
|
|
291
|
+
}
|
|
292
|
+
// A trailing backslash with no following character: emit it
|
|
293
|
+
// so the command skeleton reflects the original structure.
|
|
294
|
+
if (escaped && !inSingle && !inDouble) {
|
|
295
|
+
result += "\\";
|
|
296
|
+
}
|
|
297
|
+
return result;
|
|
298
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slack channel API: info and metadata.
|
|
3
|
+
*/
|
|
4
|
+
import type { SlackChannel } from "../types.js";
|
|
5
|
+
import type { SlackClient } from "./client.js";
|
|
6
|
+
/**
|
|
7
|
+
* Fetch detailed info about a channel.
|
|
8
|
+
*
|
|
9
|
+
* Uses conversations.info which works with client tokens
|
|
10
|
+
* on enterprise grids.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getChannelInfo(client: SlackClient, channelId: string, signal?: AbortSignal): Promise<SlackChannel>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slack channel API: info and metadata.
|
|
3
|
+
*/
|
|
4
|
+
import { cacheChannelName } from "../resolvers/conversation.js";
|
|
5
|
+
/**
|
|
6
|
+
* Fetch detailed info about a channel.
|
|
7
|
+
*
|
|
8
|
+
* Uses conversations.info which works with client tokens
|
|
9
|
+
* on enterprise grids.
|
|
10
|
+
*/
|
|
11
|
+
export async function getChannelInfo(client, channelId, signal) {
|
|
12
|
+
const response = await client.call("conversations.info", { channel: channelId }, signal);
|
|
13
|
+
const ch = response.channel;
|
|
14
|
+
// Cache the name → ID mapping.
|
|
15
|
+
if (ch?.name && ch?.id) {
|
|
16
|
+
cacheChannelName(ch.name, ch.id);
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
id: ch.id,
|
|
20
|
+
name: ch.name,
|
|
21
|
+
topic: ch.topic?.value || undefined,
|
|
22
|
+
purpose: ch.purpose?.value || undefined,
|
|
23
|
+
memberCount: ch.num_members,
|
|
24
|
+
isArchived: ch.is_archived ?? false,
|
|
25
|
+
isPrivate: ch.is_private ?? false,
|
|
26
|
+
created: ch.created,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slack Web API HTTP client.
|
|
3
|
+
*
|
|
4
|
+
* Thin wrapper around fetch that handles authentication,
|
|
5
|
+
* rate limiting with exponential backoff, and response
|
|
6
|
+
* validation. No external dependencies.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Thrown when a Slack API call exhausts its rate limit retry
|
|
10
|
+
* budget. Callers can catch this specifically to implement
|
|
11
|
+
* backpressure (e.g. reducing concurrency) before retrying.
|
|
12
|
+
*/
|
|
13
|
+
export declare class RateLimitError extends Error {
|
|
14
|
+
/** The Slack API method that was rate limited. */
|
|
15
|
+
readonly method: string;
|
|
16
|
+
/** How many rate limit responses were received. */
|
|
17
|
+
readonly hitCount: number;
|
|
18
|
+
constructor(
|
|
19
|
+
/** The Slack API method that was rate limited. */
|
|
20
|
+
method: string,
|
|
21
|
+
/** How many rate limit responses were received. */
|
|
22
|
+
hitCount: number);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Thrown when Slack returns `{ ok: false, error: "..." }`.
|
|
26
|
+
*
|
|
27
|
+
* Preserves the API error code so callers can distinguish
|
|
28
|
+
* permanent failures (channel_not_found, not_in_channel)
|
|
29
|
+
* from transient ones without parsing error message strings.
|
|
30
|
+
*/
|
|
31
|
+
export declare class SlackApiError extends Error {
|
|
32
|
+
/** The Slack API error code (e.g. "not_in_channel"). */
|
|
33
|
+
readonly errorCode: string;
|
|
34
|
+
constructor(
|
|
35
|
+
/** The Slack API error code (e.g. "not_in_channel"). */
|
|
36
|
+
errorCode: string, message: string);
|
|
37
|
+
}
|
|
38
|
+
/** Slack API response shape. Every method returns { ok, ... }. */
|
|
39
|
+
export interface SlackApiResponse {
|
|
40
|
+
ok: boolean;
|
|
41
|
+
error?: string;
|
|
42
|
+
response_metadata?: {
|
|
43
|
+
next_cursor?: string;
|
|
44
|
+
};
|
|
45
|
+
[key: string]: unknown;
|
|
46
|
+
}
|
|
47
|
+
export declare class SlackClient {
|
|
48
|
+
private readonly token;
|
|
49
|
+
private readonly cookie?;
|
|
50
|
+
constructor(token: string, cookie?: string | undefined);
|
|
51
|
+
/**
|
|
52
|
+
* Call a Slack Web API method.
|
|
53
|
+
*
|
|
54
|
+
* Sends a POST with form-encoded body containing the token
|
|
55
|
+
* and any additional parameters. For browser session tokens,
|
|
56
|
+
* includes the session cookie in the request header. Retries
|
|
57
|
+
* on rate limits with exponential backoff.
|
|
58
|
+
*/
|
|
59
|
+
call<T = Record<string, unknown>>(method: string, params?: Record<string, string | number | boolean | undefined>, signal?: AbortSignal): Promise<SlackApiResponse & T>;
|
|
60
|
+
/**
|
|
61
|
+
* Paginate through a cursor-based Slack API method.
|
|
62
|
+
*
|
|
63
|
+
* Calls the method repeatedly, following next_cursor until
|
|
64
|
+
* all pages are collected or the limit is reached.
|
|
65
|
+
*/
|
|
66
|
+
paginate<TItem>(method: string, params: Record<string, string | number | boolean | undefined>, extract: (response: SlackApiResponse) => TItem[], limit?: number, signal?: AbortSignal): Promise<TItem[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Download a file from an authenticated Slack URL.
|
|
69
|
+
*
|
|
70
|
+
* Used to fetch files from `url_private` URLs on Slack
|
|
71
|
+
* messages. Authenticates with the Bearer token (or session
|
|
72
|
+
* cookie for browser tokens). Returns the raw bytes and
|
|
73
|
+
* the content type reported by the server.
|
|
74
|
+
*
|
|
75
|
+
* When `maxBytes` is set, the Content-Length header is
|
|
76
|
+
* checked before reading the body to avoid buffering
|
|
77
|
+
* oversized files.
|
|
78
|
+
*/
|
|
79
|
+
download(url: string, opts?: {
|
|
80
|
+
signal?: AbortSignal;
|
|
81
|
+
maxBytes?: number;
|
|
82
|
+
}): Promise<{
|
|
83
|
+
buffer: Buffer;
|
|
84
|
+
contentType: string;
|
|
85
|
+
}>;
|
|
86
|
+
/**
|
|
87
|
+
* Upload raw bytes to an external upload URL.
|
|
88
|
+
*
|
|
89
|
+
* Used by the file upload flow after obtaining a URL from
|
|
90
|
+
* files.getUploadURLExternal. Includes the session cookie
|
|
91
|
+
* when using browser tokens so auth stays encapsulated.
|
|
92
|
+
*/
|
|
93
|
+
upload(url: string, body: Buffer, signal?: AbortSignal): Promise<void>;
|
|
94
|
+
}
|