@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,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `notes` domain's CLI handler: one process per call, no
|
|
3
|
+
* persisted state -- every verb is fully determined by
|
|
4
|
+
* `notesRoot` plus its own params, so unlike `bin/quest.ts`
|
|
5
|
+
* there is no `.agentic-harness/notes-state.json` to load or
|
|
6
|
+
* save.
|
|
7
|
+
*
|
|
8
|
+
* notesRoot resolves the same way quest's questsRoot does: a
|
|
9
|
+
* single default location every tool on the machine sees
|
|
10
|
+
* unless told otherwise, not something that shifts under you
|
|
11
|
+
* as cwd changes. There's no sibling pi extension to alias
|
|
12
|
+
* onto (quest's default points at the exact path
|
|
13
|
+
* agentic-harness.pi's quest-workflow extension already
|
|
14
|
+
* writes to), so notes gets its own XDG-rooted default
|
|
15
|
+
* instead. Override with `--notes-root` or
|
|
16
|
+
* `AGENTIC_HARNESS_NOTES_ROOT` when the archive lives
|
|
17
|
+
* somewhere else -- e.g. a specific repo's notes tree.
|
|
18
|
+
*/
|
|
19
|
+
import { homedir } from "node:os";
|
|
20
|
+
import { join } from "node:path";
|
|
21
|
+
import { create } from "../notes/verbs/create.js";
|
|
22
|
+
import { reparent, retitle, retype, tag } from "../notes/verbs/mutate.js";
|
|
23
|
+
import { find, show, tree, types } from "../notes/verbs/queries.js";
|
|
24
|
+
import { reindex } from "../notes/verbs/reindex.js";
|
|
25
|
+
/**
|
|
26
|
+
* Default notesRoot: an XDG data-dir location, mirroring how
|
|
27
|
+
* `bin/quest.ts`'s `defaultQuestsRoot` resolves.
|
|
28
|
+
*/
|
|
29
|
+
export function defaultNotesRoot(env = process.env, home = homedir()) {
|
|
30
|
+
const override = env.XDG_DATA_HOME;
|
|
31
|
+
const root = override && override.length > 0 ? override : join(home, ".local", "share");
|
|
32
|
+
return join(root, "agentic-harness", "notes");
|
|
33
|
+
}
|
|
34
|
+
function resolveNotesRoot(flagValue) {
|
|
35
|
+
return (flagValue ?? process.env.AGENTIC_HARNESS_NOTES_ROOT ?? defaultNotesRoot());
|
|
36
|
+
}
|
|
37
|
+
/** Run one notes action against `notesRoot`, resolved from the flag/env/cwd chain. */
|
|
38
|
+
export async function runNotesAction(options, params) {
|
|
39
|
+
const notesRoot = resolveNotesRoot(options.notesRoot);
|
|
40
|
+
switch (options.action) {
|
|
41
|
+
case "create":
|
|
42
|
+
return create(notesRoot, params);
|
|
43
|
+
case "find":
|
|
44
|
+
return find(notesRoot, params);
|
|
45
|
+
case "show":
|
|
46
|
+
return show(notesRoot, params);
|
|
47
|
+
case "retype":
|
|
48
|
+
return retype(notesRoot, params);
|
|
49
|
+
case "retitle":
|
|
50
|
+
return retitle(notesRoot, params);
|
|
51
|
+
case "tag":
|
|
52
|
+
return tag(notesRoot, params);
|
|
53
|
+
case "reparent":
|
|
54
|
+
return reparent(notesRoot, params);
|
|
55
|
+
case "tree":
|
|
56
|
+
return tree(notesRoot, params);
|
|
57
|
+
case "types":
|
|
58
|
+
return types(notesRoot);
|
|
59
|
+
case "reindex":
|
|
60
|
+
return reindex(notesRoot);
|
|
61
|
+
default:
|
|
62
|
+
return {
|
|
63
|
+
ok: false,
|
|
64
|
+
guidance: `Unknown action "${options.action}". See the notes skill for the full list.`,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A real `Exec`, spawning a child process.
|
|
3
|
+
*
|
|
4
|
+
* The one CLI-adapter concern this needs it for today is
|
|
5
|
+
* runRedirectGate's own `subject.exec`, which asks git about the
|
|
6
|
+
* checkout the way review's own git provider does — but through a
|
|
7
|
+
* plain process spawn rather than through any richer runtime a host
|
|
8
|
+
* might otherwise offer, since a stateless CLI invocation is not
|
|
9
|
+
* running inside one.
|
|
10
|
+
*/
|
|
11
|
+
import type { Exec } from "../exec/index.js";
|
|
12
|
+
/** Run a command as a real child process. Never throws: a spawn failure
|
|
13
|
+
* (missing binary, ENOENT) reports as a non-zero code instead. */
|
|
14
|
+
export declare const processExec: Exec;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A real `Exec`, spawning a child process.
|
|
3
|
+
*
|
|
4
|
+
* The one CLI-adapter concern this needs it for today is
|
|
5
|
+
* runRedirectGate's own `subject.exec`, which asks git about the
|
|
6
|
+
* checkout the way review's own git provider does — but through a
|
|
7
|
+
* plain process spawn rather than through any richer runtime a host
|
|
8
|
+
* might otherwise offer, since a stateless CLI invocation is not
|
|
9
|
+
* running inside one.
|
|
10
|
+
*/
|
|
11
|
+
import { execFile } from "node:child_process";
|
|
12
|
+
/** Run a command as a real child process. Never throws: a spawn failure
|
|
13
|
+
* (missing binary, ENOENT) reports as a non-zero code instead. */
|
|
14
|
+
export const processExec = (command, args) => new Promise((resolve) => {
|
|
15
|
+
execFile(command, args, (error, stdout, stderr) => {
|
|
16
|
+
if (!error) {
|
|
17
|
+
resolve({ code: 0, stdout, stderr });
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
// A real exit code is a number; a spawn failure (ENOENT, no
|
|
21
|
+
// permission) carries a string error code instead, and there
|
|
22
|
+
// is no process exit code to report, so it counts as failed.
|
|
23
|
+
const exitCode = error
|
|
24
|
+
.code;
|
|
25
|
+
resolve({
|
|
26
|
+
code: typeof exitCode === "number" ? exitCode : 1,
|
|
27
|
+
stdout,
|
|
28
|
+
stderr,
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `quest` domain's CLI handler: one process per call, state
|
|
3
|
+
* read from and written back to a small JSON file the caller owns
|
|
4
|
+
* -- the same shape `bin/cli.ts`'s tdd handlers use.
|
|
5
|
+
*
|
|
6
|
+
* Unlike tdd's loop state, a quest's on-disk questsRoot is shared,
|
|
7
|
+
* deliberate infrastructure: by default it resolves to the exact
|
|
8
|
+
* XDG path agentic-harness.pi's own quest-workflow extension
|
|
9
|
+
* writes to (`~/.local/share/pi/agentic-harness.pi/quest-workflow/
|
|
10
|
+
* quests`, honouring XDG_DATA_HOME). That's not incidental -- an
|
|
11
|
+
* adapter with no override should see the same quest tree pi does,
|
|
12
|
+
* on the same machine, out of the box, since a quest tree is meant
|
|
13
|
+
* to be one shared campaign log across every tool that touches it.
|
|
14
|
+
* Override with `--quests-root` or `AGENTIC_HARNESS_QUESTS_ROOT`
|
|
15
|
+
* when that's not what's wanted.
|
|
16
|
+
*
|
|
17
|
+
* This CLI covers the subset of pi's quest-workflow verb surface
|
|
18
|
+
* that has no pi-specific session concept baked in: no per-session
|
|
19
|
+
* liveness in `show`/`list`, no automatic session-attach on `load`,
|
|
20
|
+
* no `session-*`/`spawn-*`/`workspace`/`recent`/`restore` (all keyed
|
|
21
|
+
* to pi's own session JSONL log and terminal-reopen mechanism, which
|
|
22
|
+
* this CLI has no equivalent for). An adapter with its own session
|
|
23
|
+
* story layers that on top of these verbs the way pi's own
|
|
24
|
+
* `extensions/quest-workflow` does.
|
|
25
|
+
*/
|
|
26
|
+
import type { QuestResult, QuestToolParams } from "../quest/verbs/shared.js";
|
|
27
|
+
export interface QuestCliOptions {
|
|
28
|
+
action: string;
|
|
29
|
+
stateFile: string;
|
|
30
|
+
questsRoot: string | undefined;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Run one quest action: load state, dispatch, persist state, return
|
|
34
|
+
* the result. `params` is the caller's full params bag (parsed from
|
|
35
|
+
* stdin JSON by the caller); `action` is set on it from the CLI
|
|
36
|
+
* argv so callers don't have to repeat it in the JSON body.
|
|
37
|
+
*/
|
|
38
|
+
export declare function runQuestAction(options: QuestCliOptions, params: QuestToolParams): Promise<QuestResult>;
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `quest` domain's CLI handler: one process per call, state
|
|
3
|
+
* read from and written back to a small JSON file the caller owns
|
|
4
|
+
* -- the same shape `bin/cli.ts`'s tdd handlers use.
|
|
5
|
+
*
|
|
6
|
+
* Unlike tdd's loop state, a quest's on-disk questsRoot is shared,
|
|
7
|
+
* deliberate infrastructure: by default it resolves to the exact
|
|
8
|
+
* XDG path agentic-harness.pi's own quest-workflow extension
|
|
9
|
+
* writes to (`~/.local/share/pi/agentic-harness.pi/quest-workflow/
|
|
10
|
+
* quests`, honouring XDG_DATA_HOME). That's not incidental -- an
|
|
11
|
+
* adapter with no override should see the same quest tree pi does,
|
|
12
|
+
* on the same machine, out of the box, since a quest tree is meant
|
|
13
|
+
* to be one shared campaign log across every tool that touches it.
|
|
14
|
+
* Override with `--quests-root` or `AGENTIC_HARNESS_QUESTS_ROOT`
|
|
15
|
+
* when that's not what's wanted.
|
|
16
|
+
*
|
|
17
|
+
* This CLI covers the subset of pi's quest-workflow verb surface
|
|
18
|
+
* that has no pi-specific session concept baked in: no per-session
|
|
19
|
+
* liveness in `show`/`list`, no automatic session-attach on `load`,
|
|
20
|
+
* no `session-*`/`spawn-*`/`workspace`/`recent`/`restore` (all keyed
|
|
21
|
+
* to pi's own session JSONL log and terminal-reopen mechanism, which
|
|
22
|
+
* this CLI has no equivalent for). An adapter with its own session
|
|
23
|
+
* story layers that on top of these verbs the way pi's own
|
|
24
|
+
* `extensions/quest-workflow` does.
|
|
25
|
+
*/
|
|
26
|
+
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
27
|
+
import { homedir } from "node:os";
|
|
28
|
+
import { dirname, join } from "node:path";
|
|
29
|
+
import { registerBuiltinUrlFetchers } from "../quest/index.js";
|
|
30
|
+
import { createQuestState } from "../quest/state.js";
|
|
31
|
+
import { aliasAdd, aliasRemove } from "../quest/verbs/alias.js";
|
|
32
|
+
import { create, focus, list, load, reclassify, show, unfocus, unload, } from "../quest/verbs/lifecycle.js";
|
|
33
|
+
import { ancestors, expand, find, linksAction, locate, tree, who, } from "../quest/verbs/queries.js";
|
|
34
|
+
import { priorityJump, priorityShift, reorder, } from "../quest/verbs/reorder.js";
|
|
35
|
+
import { concludeOrRetire, reopenQuest, stageTransition, } from "../quest/verbs/stage.js";
|
|
36
|
+
import { reparent, undo } from "../quest/verbs/structural.js";
|
|
37
|
+
import { treeAdd, treeAdopt, treeExpand, treeList, treePrune, } from "../quest/verbs/tree-ops.js";
|
|
38
|
+
import { registerBuiltinRefTypes } from "../refs/index.js";
|
|
39
|
+
import { registerBuiltinTerminalDrivers } from "../terminal/index.js";
|
|
40
|
+
import { registerBuiltinTreeProviders } from "../tree/index.js";
|
|
41
|
+
/**
|
|
42
|
+
* Default questsRoot: the same location agentic-harness.pi's own
|
|
43
|
+
* quest-workflow extension resolves to, so both hosts see the same
|
|
44
|
+
* quest tree by default.
|
|
45
|
+
*/
|
|
46
|
+
function defaultQuestsRoot(env = process.env, home = homedir()) {
|
|
47
|
+
const override = env.XDG_DATA_HOME;
|
|
48
|
+
const root = override && override.length > 0 ? override : join(home, ".local", "share");
|
|
49
|
+
return join(root, "pi", "agentic-harness.pi", "quest-workflow", "quests");
|
|
50
|
+
}
|
|
51
|
+
function resolveQuestsRoot(flagValue) {
|
|
52
|
+
return (flagValue ?? process.env.AGENTIC_HARNESS_QUESTS_ROOT ?? defaultQuestsRoot());
|
|
53
|
+
}
|
|
54
|
+
let registered = false;
|
|
55
|
+
function ensureRegistries() {
|
|
56
|
+
if (registered)
|
|
57
|
+
return;
|
|
58
|
+
registerBuiltinRefTypes();
|
|
59
|
+
registerBuiltinUrlFetchers();
|
|
60
|
+
registerBuiltinTerminalDrivers();
|
|
61
|
+
registerBuiltinTreeProviders();
|
|
62
|
+
registered = true;
|
|
63
|
+
}
|
|
64
|
+
async function loadState(stateFile, questsRoot) {
|
|
65
|
+
let state;
|
|
66
|
+
try {
|
|
67
|
+
const raw = await readFile(stateFile, "utf8");
|
|
68
|
+
state = JSON.parse(raw);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
if (error.code !== "ENOENT")
|
|
72
|
+
throw error;
|
|
73
|
+
state = createQuestState({ questsRoot });
|
|
74
|
+
}
|
|
75
|
+
state.questsRoot = questsRoot;
|
|
76
|
+
return state;
|
|
77
|
+
}
|
|
78
|
+
async function saveState(stateFile, state) {
|
|
79
|
+
await mkdir(dirname(stateFile), { recursive: true });
|
|
80
|
+
await writeFile(stateFile, `${JSON.stringify(state, null, 2)}\n`);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Run one quest action: load state, dispatch, persist state, return
|
|
84
|
+
* the result. `params` is the caller's full params bag (parsed from
|
|
85
|
+
* stdin JSON by the caller); `action` is set on it from the CLI
|
|
86
|
+
* argv so callers don't have to repeat it in the JSON body.
|
|
87
|
+
*/
|
|
88
|
+
export async function runQuestAction(options, params) {
|
|
89
|
+
ensureRegistries();
|
|
90
|
+
const questsRoot = resolveQuestsRoot(options.questsRoot);
|
|
91
|
+
const state = await loadState(options.stateFile, questsRoot);
|
|
92
|
+
params.action = options.action;
|
|
93
|
+
const result = await dispatch(state, options.action, params);
|
|
94
|
+
await saveState(options.stateFile, state);
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
async function dispatch(state, action, params) {
|
|
98
|
+
switch (action) {
|
|
99
|
+
case "create":
|
|
100
|
+
return create(state, params);
|
|
101
|
+
case "load":
|
|
102
|
+
return load(state, params);
|
|
103
|
+
case "unload":
|
|
104
|
+
return unload(state);
|
|
105
|
+
case "show":
|
|
106
|
+
case "status":
|
|
107
|
+
return show(state, params);
|
|
108
|
+
case "list":
|
|
109
|
+
return list(state, params);
|
|
110
|
+
case "focus":
|
|
111
|
+
return focus(state, params);
|
|
112
|
+
case "unfocus":
|
|
113
|
+
return unfocus(state);
|
|
114
|
+
case "think":
|
|
115
|
+
case "draft":
|
|
116
|
+
case "build":
|
|
117
|
+
return stageTransition(state, action, params);
|
|
118
|
+
case "conclude":
|
|
119
|
+
case "retire":
|
|
120
|
+
return concludeOrRetire(state, action, params);
|
|
121
|
+
case "reopen":
|
|
122
|
+
return reopenQuest(state);
|
|
123
|
+
case "top":
|
|
124
|
+
case "bottom":
|
|
125
|
+
case "bump":
|
|
126
|
+
case "sink":
|
|
127
|
+
case "renumber":
|
|
128
|
+
case "before":
|
|
129
|
+
case "after":
|
|
130
|
+
return reorder(state, params);
|
|
131
|
+
case "reparent":
|
|
132
|
+
return reparent(state, params);
|
|
133
|
+
case "undo":
|
|
134
|
+
return undo(state);
|
|
135
|
+
case "alias-add":
|
|
136
|
+
return aliasAdd(state, params);
|
|
137
|
+
case "alias-remove":
|
|
138
|
+
return aliasRemove(state, params);
|
|
139
|
+
case "promote":
|
|
140
|
+
return priorityShift(state, "up", params);
|
|
141
|
+
case "demote":
|
|
142
|
+
return priorityShift(state, "down", params);
|
|
143
|
+
case "drive":
|
|
144
|
+
return priorityJump(state, "driving");
|
|
145
|
+
case "park":
|
|
146
|
+
return priorityJump(state, "bench");
|
|
147
|
+
case "defer":
|
|
148
|
+
return priorityJump(state, "someday");
|
|
149
|
+
case "reclassify":
|
|
150
|
+
return reclassify(state, params);
|
|
151
|
+
case "tree":
|
|
152
|
+
return tree(state, params);
|
|
153
|
+
case "tree-add":
|
|
154
|
+
return treeAdd(state, params);
|
|
155
|
+
case "tree-adopt":
|
|
156
|
+
return treeAdopt(state, params);
|
|
157
|
+
case "tree-list":
|
|
158
|
+
return treeList(state);
|
|
159
|
+
case "tree-prune":
|
|
160
|
+
return treePrune(state, params);
|
|
161
|
+
case "tree-expand":
|
|
162
|
+
return treeExpand(state, params);
|
|
163
|
+
case "expand":
|
|
164
|
+
return expand(state, params);
|
|
165
|
+
case "find":
|
|
166
|
+
return find(state, params);
|
|
167
|
+
case "who":
|
|
168
|
+
return who(state, params);
|
|
169
|
+
case "links":
|
|
170
|
+
return linksAction(state, params);
|
|
171
|
+
case "locate":
|
|
172
|
+
return locate(state, params);
|
|
173
|
+
case "ancestors":
|
|
174
|
+
return ancestors(state, params);
|
|
175
|
+
case "config":
|
|
176
|
+
return {
|
|
177
|
+
ok: true,
|
|
178
|
+
message: `Quests root: ${state.questsRoot}`,
|
|
179
|
+
details: { questsRoot: state.questsRoot },
|
|
180
|
+
};
|
|
181
|
+
default:
|
|
182
|
+
return {
|
|
183
|
+
ok: false,
|
|
184
|
+
guidance: `Unknown action "${action}". See the CLI's quest skill for the full list.`,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code's Slack setup: the CLI-adapter half of the OAuth
|
|
3
|
+
* setup wizard port.
|
|
4
|
+
*
|
|
5
|
+
* pi's own setup wizard is interactive UI (promptSingle, a modal
|
|
6
|
+
* offering three paths) - genuinely adapter-local, since it drives
|
|
7
|
+
* a host's own confirmation surface the way a guardian's review()
|
|
8
|
+
* does. What is NOT adapter-local is everything the wizard actually
|
|
9
|
+
* runs once a path is chosen: extracting a browser session,
|
|
10
|
+
* running an OAuth exchange, storing the result. All of that
|
|
11
|
+
* already lives in the slack package (ported alongside the API
|
|
12
|
+
* client), untouched here.
|
|
13
|
+
*
|
|
14
|
+
* The adapter decision this needed: unlike a guardian, a setup
|
|
15
|
+
* wizard is not something a tool call needs to pause for - nothing
|
|
16
|
+
* intercepts anything. It is a workflow the user asks for, which is
|
|
17
|
+
* exactly the shape a Claude Code *skill* already covers (see
|
|
18
|
+
* skills/tdd, skills/quest): a markdown file teaching Claude to run
|
|
19
|
+
* a sequence of Bash-invoked CLI calls and carry the human-facing
|
|
20
|
+
* conversation itself (ask for a client ID, tell the user to check
|
|
21
|
+
* their browser, report success). No hook, no new capability -
|
|
22
|
+
* just a CLI surface for the skill to call, the same shape every
|
|
23
|
+
* other skill here already uses.
|
|
24
|
+
*
|
|
25
|
+
* Only the browser-extraction path is wired up so far: it needs no
|
|
26
|
+
* OAuth app (Slack's own "recommended" path in pi's wizard too),
|
|
27
|
+
* so it is the one genuinely zero-setup way in. The OAuth-app path
|
|
28
|
+
* (buildAuthUrl/waitForOAuthCallback/exchangeCodeForToken, all
|
|
29
|
+
* already portable in slack/auth/oauth.ts and server.ts) is the
|
|
30
|
+
* natural next CLI verb when someone wants it; not built here
|
|
31
|
+
* because nothing in this repo yet needs it, and it is a
|
|
32
|
+
* mechanical follow-on once it does; see google-auth.ts for a
|
|
33
|
+
* companion note on the device flow, which is the same shape again.
|
|
34
|
+
*/
|
|
35
|
+
/** Report whether a usable Slack session is currently stored. */
|
|
36
|
+
export declare function runSlackAuthStatus(): Promise<unknown>;
|
|
37
|
+
/**
|
|
38
|
+
* Extract a Slack session by opening a real browser window and
|
|
39
|
+
* waiting for the user to be (or become) logged in, then verify
|
|
40
|
+
* and store it. Blocks for up to five minutes; the skill calling
|
|
41
|
+
* this should say so before it runs.
|
|
42
|
+
*
|
|
43
|
+
* Writes step-by-step sign-in guidance to stderr the moment the
|
|
44
|
+
* browser opens (see extractFromBrowser's onStep), not just the
|
|
45
|
+
* final JSON result: a live run with no guidance at all left a
|
|
46
|
+
* person guessing their way through a multi-tab sign-in flow with
|
|
47
|
+
* no idea what came next or what a stuck-looking screen wanted.
|
|
48
|
+
*/
|
|
49
|
+
export declare function runSlackAuthLogin(): Promise<unknown>;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code's Slack setup: the CLI-adapter half of the OAuth
|
|
3
|
+
* setup wizard port.
|
|
4
|
+
*
|
|
5
|
+
* pi's own setup wizard is interactive UI (promptSingle, a modal
|
|
6
|
+
* offering three paths) - genuinely adapter-local, since it drives
|
|
7
|
+
* a host's own confirmation surface the way a guardian's review()
|
|
8
|
+
* does. What is NOT adapter-local is everything the wizard actually
|
|
9
|
+
* runs once a path is chosen: extracting a browser session,
|
|
10
|
+
* running an OAuth exchange, storing the result. All of that
|
|
11
|
+
* already lives in the slack package (ported alongside the API
|
|
12
|
+
* client), untouched here.
|
|
13
|
+
*
|
|
14
|
+
* The adapter decision this needed: unlike a guardian, a setup
|
|
15
|
+
* wizard is not something a tool call needs to pause for - nothing
|
|
16
|
+
* intercepts anything. It is a workflow the user asks for, which is
|
|
17
|
+
* exactly the shape a Claude Code *skill* already covers (see
|
|
18
|
+
* skills/tdd, skills/quest): a markdown file teaching Claude to run
|
|
19
|
+
* a sequence of Bash-invoked CLI calls and carry the human-facing
|
|
20
|
+
* conversation itself (ask for a client ID, tell the user to check
|
|
21
|
+
* their browser, report success). No hook, no new capability -
|
|
22
|
+
* just a CLI surface for the skill to call, the same shape every
|
|
23
|
+
* other skill here already uses.
|
|
24
|
+
*
|
|
25
|
+
* Only the browser-extraction path is wired up so far: it needs no
|
|
26
|
+
* OAuth app (Slack's own "recommended" path in pi's wizard too),
|
|
27
|
+
* so it is the one genuinely zero-setup way in. The OAuth-app path
|
|
28
|
+
* (buildAuthUrl/waitForOAuthCallback/exchangeCodeForToken, all
|
|
29
|
+
* already portable in slack/auth/oauth.ts and server.ts) is the
|
|
30
|
+
* natural next CLI verb when someone wants it; not built here
|
|
31
|
+
* because nothing in this repo yet needs it, and it is a
|
|
32
|
+
* mechanical follow-on once it does; see google-auth.ts for a
|
|
33
|
+
* companion note on the device flow, which is the same shape again.
|
|
34
|
+
*/
|
|
35
|
+
import { extractFromBrowser } from "../slack/auth/browser-extract.js";
|
|
36
|
+
import { getToken, hasToken, SlackClient, storeToken } from "../slack/index.js";
|
|
37
|
+
/** Report whether a usable Slack session is currently stored. */
|
|
38
|
+
export async function runSlackAuthStatus() {
|
|
39
|
+
if (!hasToken())
|
|
40
|
+
return { authenticated: false };
|
|
41
|
+
const token = getToken();
|
|
42
|
+
if (!token)
|
|
43
|
+
return { authenticated: false };
|
|
44
|
+
const client = new SlackClient(token.accessToken, token.cookie);
|
|
45
|
+
try {
|
|
46
|
+
const auth = await client.call("auth.test");
|
|
47
|
+
return {
|
|
48
|
+
authenticated: true,
|
|
49
|
+
team: auth.team ?? token.teamName,
|
|
50
|
+
user: auth.user,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return {
|
|
55
|
+
authenticated: false,
|
|
56
|
+
reason: "the stored session no longer works; run login again",
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Extract a Slack session by opening a real browser window and
|
|
62
|
+
* waiting for the user to be (or become) logged in, then verify
|
|
63
|
+
* and store it. Blocks for up to five minutes; the skill calling
|
|
64
|
+
* this should say so before it runs.
|
|
65
|
+
*
|
|
66
|
+
* Writes step-by-step sign-in guidance to stderr the moment the
|
|
67
|
+
* browser opens (see extractFromBrowser's onStep), not just the
|
|
68
|
+
* final JSON result: a live run with no guidance at all left a
|
|
69
|
+
* person guessing their way through a multi-tab sign-in flow with
|
|
70
|
+
* no idea what came next or what a stuck-looking screen wanted.
|
|
71
|
+
*/
|
|
72
|
+
export async function runSlackAuthLogin() {
|
|
73
|
+
let credentials;
|
|
74
|
+
try {
|
|
75
|
+
credentials = await extractFromBrowser(undefined, undefined, (message) => {
|
|
76
|
+
process.stderr.write(`${message}\n`);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
return {
|
|
81
|
+
ok: false,
|
|
82
|
+
error: err instanceof Error ? err.message : String(err),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const client = new SlackClient(credentials.token, credentials.cookie);
|
|
86
|
+
try {
|
|
87
|
+
const auth = await client.call("auth.test");
|
|
88
|
+
storeToken({
|
|
89
|
+
accessToken: credentials.token,
|
|
90
|
+
cookie: credentials.cookie,
|
|
91
|
+
userId: typeof auth.user_id === "string" ? auth.user_id : "",
|
|
92
|
+
teamId: typeof auth.team_id === "string" ? auth.team_id : "",
|
|
93
|
+
teamName: typeof auth.team === "string" ? auth.team : undefined,
|
|
94
|
+
// Not an OAuth grant, so there is no scope list; named so a
|
|
95
|
+
// reader of the stored file can tell this token apart from
|
|
96
|
+
// one that came through the OAuth app path.
|
|
97
|
+
scopes: "browser-session",
|
|
98
|
+
});
|
|
99
|
+
return { ok: true, team: auth.team, user: auth.user };
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
return {
|
|
103
|
+
ok: false,
|
|
104
|
+
error: `extracted a session but it did not verify: ${err instanceof Error ? err.message : String(err)}`,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a duration bounding a child process may be.
|
|
3
|
+
*
|
|
4
|
+
* These rules belong to the runner: it is the thing that refuses a
|
|
5
|
+
* timeout below a floor, above a ceiling, or paired with an idle clock
|
|
6
|
+
* that outlives it. But the runner is the last place they can be
|
|
7
|
+
* applied, and by then somebody's roster has been read, a change has
|
|
8
|
+
* been fetched, a tree has been cut, and the refusal arrives as a
|
|
9
|
+
* thrown error in the middle of a round instead of as an answer about
|
|
10
|
+
* a config file.
|
|
11
|
+
*
|
|
12
|
+
* So the rules live in neither surface, the same way the thinking
|
|
13
|
+
* levels do. One definition, two readers: the runner throws with it
|
|
14
|
+
* and the roster refuses with it, and they cannot come to disagree
|
|
15
|
+
* about what a usable clock is.
|
|
16
|
+
*/
|
|
17
|
+
/** The shortest duration worth calling a timeout. */
|
|
18
|
+
export declare const CLOCK_FLOOR_MS = 1000;
|
|
19
|
+
/** The longest one, past which a runaway is indistinguishable. */
|
|
20
|
+
export declare const CLOCK_CEILING_MS: number;
|
|
21
|
+
/**
|
|
22
|
+
* Why this duration cannot be used, if it cannot.
|
|
23
|
+
*
|
|
24
|
+
* Names the value and the bound it missed, because the reader of this
|
|
25
|
+
* has a number in a file and needs to know which way to move it. The
|
|
26
|
+
* common mistake is writing seconds where milliseconds are meant,
|
|
27
|
+
* which is why the floor exists at all: 45 is a perfectly plausible
|
|
28
|
+
* thing to write and stops the child before it has started.
|
|
29
|
+
*/
|
|
30
|
+
export declare function whyUnusableClock(field: string, value: number | undefined): string | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Why this set of clocks cannot be used together, if it cannot.
|
|
33
|
+
*
|
|
34
|
+
* The pair rule is the one nobody trips over by writing a bad number:
|
|
35
|
+
* an idle guard that outlives the wall means the wall fires first
|
|
36
|
+
* however patient the guard is, which is a footgun for somebody who
|
|
37
|
+
* moved one column of the sizing table.
|
|
38
|
+
*
|
|
39
|
+
* A zero reserve is the documented way to switch the soft deadline
|
|
40
|
+
* off, so it is the one value under the floor that means something.
|
|
41
|
+
*/
|
|
42
|
+
export declare function whyUnusableClocks(clocks: {
|
|
43
|
+
timeoutMs?: number;
|
|
44
|
+
idleTimeoutMs?: number;
|
|
45
|
+
wrapUpReserveMs?: number;
|
|
46
|
+
}): string | undefined;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a duration bounding a child process may be.
|
|
3
|
+
*
|
|
4
|
+
* These rules belong to the runner: it is the thing that refuses a
|
|
5
|
+
* timeout below a floor, above a ceiling, or paired with an idle clock
|
|
6
|
+
* that outlives it. But the runner is the last place they can be
|
|
7
|
+
* applied, and by then somebody's roster has been read, a change has
|
|
8
|
+
* been fetched, a tree has been cut, and the refusal arrives as a
|
|
9
|
+
* thrown error in the middle of a round instead of as an answer about
|
|
10
|
+
* a config file.
|
|
11
|
+
*
|
|
12
|
+
* So the rules live in neither surface, the same way the thinking
|
|
13
|
+
* levels do. One definition, two readers: the runner throws with it
|
|
14
|
+
* and the roster refuses with it, and they cannot come to disagree
|
|
15
|
+
* about what a usable clock is.
|
|
16
|
+
*/
|
|
17
|
+
/** The shortest duration worth calling a timeout. */
|
|
18
|
+
export const CLOCK_FLOOR_MS = 1000;
|
|
19
|
+
/** The longest one, past which a runaway is indistinguishable. */
|
|
20
|
+
export const CLOCK_CEILING_MS = 8 * 60 * 60 * 1000;
|
|
21
|
+
/**
|
|
22
|
+
* Why this duration cannot be used, if it cannot.
|
|
23
|
+
*
|
|
24
|
+
* Names the value and the bound it missed, because the reader of this
|
|
25
|
+
* has a number in a file and needs to know which way to move it. The
|
|
26
|
+
* common mistake is writing seconds where milliseconds are meant,
|
|
27
|
+
* which is why the floor exists at all: 45 is a perfectly plausible
|
|
28
|
+
* thing to write and stops the child before it has started.
|
|
29
|
+
*/
|
|
30
|
+
export function whyUnusableClock(field, value) {
|
|
31
|
+
if (value === undefined)
|
|
32
|
+
return undefined;
|
|
33
|
+
if (typeof value !== "number" ||
|
|
34
|
+
!Number.isFinite(value) ||
|
|
35
|
+
!Number.isInteger(value)) {
|
|
36
|
+
return `${field} must be a whole number of milliseconds, and is ${String(value)}.`;
|
|
37
|
+
}
|
|
38
|
+
if (value < CLOCK_FLOOR_MS) {
|
|
39
|
+
return `${field} is ${value}ms, which is below the ${CLOCK_FLOOR_MS}ms floor and would stop the run almost at once. Milliseconds, not seconds.`;
|
|
40
|
+
}
|
|
41
|
+
if (value > CLOCK_CEILING_MS) {
|
|
42
|
+
return `${field} is ${value}ms, which is past the ${CLOCK_CEILING_MS}ms ceiling.`;
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Why this set of clocks cannot be used together, if it cannot.
|
|
48
|
+
*
|
|
49
|
+
* The pair rule is the one nobody trips over by writing a bad number:
|
|
50
|
+
* an idle guard that outlives the wall means the wall fires first
|
|
51
|
+
* however patient the guard is, which is a footgun for somebody who
|
|
52
|
+
* moved one column of the sizing table.
|
|
53
|
+
*
|
|
54
|
+
* A zero reserve is the documented way to switch the soft deadline
|
|
55
|
+
* off, so it is the one value under the floor that means something.
|
|
56
|
+
*/
|
|
57
|
+
export function whyUnusableClocks(clocks) {
|
|
58
|
+
const each = whyUnusableClock("timeoutMs", clocks.timeoutMs) ??
|
|
59
|
+
whyUnusableClock("idleTimeoutMs", clocks.idleTimeoutMs) ??
|
|
60
|
+
(clocks.wrapUpReserveMs === 0
|
|
61
|
+
? undefined
|
|
62
|
+
: whyUnusableClock("wrapUpReserveMs", clocks.wrapUpReserveMs));
|
|
63
|
+
if (each !== undefined)
|
|
64
|
+
return each;
|
|
65
|
+
const { timeoutMs, idleTimeoutMs } = clocks;
|
|
66
|
+
if (timeoutMs !== undefined &&
|
|
67
|
+
idleTimeoutMs !== undefined &&
|
|
68
|
+
idleTimeoutMs > timeoutMs) {
|
|
69
|
+
return `idleTimeoutMs (${idleTimeoutMs}ms) outlives timeoutMs (${timeoutMs}ms), so the wall clock fires first however patient the idle guard is.`;
|
|
70
|
+
}
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Effective working directory of a command line: the base cwd
|
|
3
|
+
* composed with the leading `cd` segments. Consumers that resolve a
|
|
4
|
+
* relative path (the `git commit -F <file>` reader, say) ask here
|
|
5
|
+
* instead of scraping the first `cd` with a regex.
|
|
6
|
+
*/
|
|
7
|
+
import type { CommandLine } from "./types.js";
|
|
8
|
+
/** The resolved directory, or a signal that it cannot be resolved. */
|
|
9
|
+
export type EffectiveCwd = {
|
|
10
|
+
dir: string;
|
|
11
|
+
} | {
|
|
12
|
+
unresolvable: true;
|
|
13
|
+
reason: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Compose the base cwd with the cd segments of the command line. A
|
|
17
|
+
* `before` source position bounds it to the cd segments that begin
|
|
18
|
+
* before that position, so a cd after the consuming command does
|
|
19
|
+
* not move the directory it runs in.
|
|
20
|
+
*/
|
|
21
|
+
export declare function effectiveCwd(line: CommandLine, baseCwd: string, before?: number): EffectiveCwd;
|