agent-afk 5.340.0 → 5.342.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/dist/agent/command-classifier.d.ts +16 -0
- package/dist/agent/command-classifier.risk.d.ts +3 -0
- package/dist/agent/episodes/extract.d.ts +2 -0
- package/dist/agent/episodes/index.d.ts +6 -0
- package/dist/agent/episodes/session-end-hook.d.ts +2 -0
- package/dist/agent/episodes/synthesize.d.ts +2 -0
- package/dist/agent/episodes/types.d.ts +24 -0
- package/dist/agent/episodes/writer.d.ts +4 -0
- package/dist/agent/provider.d.ts +0 -5
- package/dist/agent/providers/anthropic-direct/query/cwd-dependents.d.ts +1 -0
- package/dist/agent/providers/anthropic-direct/query-runtime.d.ts +0 -5
- package/dist/agent/providers/openai-compatible/index.d.ts +2 -1
- package/dist/agent/providers/openai-compatible/index.options.d.ts +1 -0
- package/dist/agent/providers/openai-compatible/provider-schemas.d.ts +3 -0
- package/dist/agent/providers/router/provider-router.d.ts +0 -5
- package/dist/agent/providers/whatif-api.d.ts +4 -0
- package/dist/agent/risk-classifier.bash-safe.d.ts +1 -1
- package/dist/agent/session/agent-session.d.ts +0 -5
- package/dist/agent/session/ledger-lifecycle.d.ts +6 -0
- package/dist/agent/session/session-config.d.ts +0 -5
- package/dist/agent/session/session-meta.d.ts +8 -0
- package/dist/agent/tools/compose-agent-resolve.d.ts +2 -0
- package/dist/agent/tools/compose-executor.node-build.d.ts +0 -1
- package/dist/agent/tools/dispatch-preparation.d.ts +14 -0
- package/dist/agent/tools/handlers/_cwd-utils.d.ts +1 -2
- package/dist/agent/tools/handlers/path-policy.d.ts +12 -1
- package/dist/agent/tools/handlers/path-policy.roots.d.ts +15 -0
- package/dist/agent/tools/handlers/wait-for-command-policy.d.ts +4 -3
- package/dist/agent/tools/handlers/write-denylist.d.ts +5 -0
- package/dist/agent/tools/readonly-bash.d.ts +1 -1
- package/dist/agent/tools/readonly-bash.mutation.d.ts +5 -0
- package/dist/agent/tools/readonly-bash.tokenizer.d.ts +1 -0
- package/dist/agent/tools/subagent/child-config.helpers.d.ts +5 -10
- package/dist/agent/tools/system-prompt.d.ts +2 -2
- package/dist/agent/tools/usage-notice.d.ts +6 -2
- package/dist/agent/usage/usage-budget.d.ts +2 -2
- package/dist/bundled-plugins/awa-bundled/skills/consumer-map/SKILL.md +154 -0
- package/dist/bundled-plugins/awa-bundled/skills/devils-advocate/SKILL.md +12 -0
- package/dist/bundled-plugins/awa-bundled/skills/ground-state/SKILL.md +8 -11
- package/dist/cli/commands/episode.d.ts +2 -0
- package/dist/cli/commands/receipt.d.ts +2 -0
- package/dist/cli/slash/commands/branches.d.ts +2 -0
- package/dist/cli/slash/commands/resume.d.ts +3 -0
- package/dist/cli/slash/commands/{reauth.d.ts → where.d.ts} +1 -1
- package/dist/cli.mjs +578 -536
- package/dist/config/env.d.ts +8 -0
- package/dist/config/env.episode.d.ts +9 -0
- package/dist/index.mjs +415 -403
- package/dist/telegram/formatter.d.ts +2 -2
- package/dist/telegram.mjs +465 -441
- package/dist/web-ui-assets/assets/{angular-html-CGhXdqey.js → angular-html-D9HxDckB.js} +1 -1
- package/dist/web-ui-assets/assets/{angular-ts-CvXSYqzW.js → angular-ts-CU-2-qNu.js} +1 -1
- package/dist/web-ui-assets/assets/{apl-CHd928O5.js → apl-CjRnf8iv.js} +1 -1
- package/dist/web-ui-assets/assets/{astro-BoLrHJmk.js → astro-BeJmvzqF.js} +1 -1
- package/dist/web-ui-assets/assets/{blade-DY1IktSs.js → blade-B-b54web.js} +1 -1
- package/dist/web-ui-assets/assets/{c-DxAZbdBx.js → c-BB8Pfjsa.js} +1 -1
- package/dist/web-ui-assets/assets/{chapel-DYsDnfcl.js → chapel-BPpnrh4V.js} +1 -1
- package/dist/web-ui-assets/assets/{cobol-DWGkS6M4.js → cobol-BwwGtgEh.js} +1 -1
- package/dist/web-ui-assets/assets/{coffee-DlkYkLNu.js → coffee-ilL4_8aT.js} +1 -1
- package/dist/web-ui-assets/assets/{cpp-EPEhiLov.js → cpp-moR8pzFi.js} +1 -1
- package/dist/web-ui-assets/assets/{crystal-BEErPI0z.js → crystal-J88aQzxf.js} +1 -1
- package/dist/web-ui-assets/assets/{css-B0GwOWpN.js → css-fKeg4Z2o.js} +1 -1
- package/dist/web-ui-assets/assets/{dist-ETE6tN-C.js → dist-Dd0e8ZPM.js} +2 -2
- package/dist/web-ui-assets/assets/{edge-DSYFnYrA.js → edge-CaGjLI0R.js} +1 -1
- package/dist/web-ui-assets/assets/{elixir-YnBo-E2b.js → elixir-BVyPPV6a.js} +1 -1
- package/dist/web-ui-assets/assets/{elm-BTbb8S23.js → elm-CIqALtqh.js} +1 -1
- package/dist/web-ui-assets/assets/{erb-CmjdbA27.js → erb-BHaTiy6b.js} +1 -1
- package/dist/web-ui-assets/assets/{git-rebase-CGODI_wc.js → git-rebase-Bw9lRZ3B.js} +1 -1
- package/dist/web-ui-assets/assets/{glimmer-js-CH0RFAMi.js → glimmer-js-uxjWrvye.js} +1 -1
- package/dist/web-ui-assets/assets/{glimmer-ts-C-QtJVYf.js → glimmer-ts-rPLZ6DTy.js} +1 -1
- package/dist/web-ui-assets/assets/{glsl-B4-SloMd.js → glsl-TwBArQ34.js} +1 -1
- package/dist/web-ui-assets/assets/{graphql-DgGBaJER.js → graphql-_6xxTmcw.js} +1 -1
- package/dist/web-ui-assets/assets/{hack-CiownsYp.js → hack-BBdbXDKi.js} +1 -1
- package/dist/web-ui-assets/assets/{haml-M26UGD_a.js → haml-CGwAOG_L.js} +1 -1
- package/dist/web-ui-assets/assets/{handlebars-gqoiXao1.js → handlebars-V6069UIv.js} +1 -1
- package/dist/web-ui-assets/assets/{html-DbYXE9Fl.js → html-DlFVgVkx.js} +1 -1
- package/dist/web-ui-assets/assets/{html-derivative-P6gcNKB0.js → html-derivative-C3lmdCJP.js} +1 -1
- package/dist/web-ui-assets/assets/{http-DnPL1Yqt.js → http-Bez3OCbh.js} +1 -1
- package/dist/web-ui-assets/assets/{hurl-DcpACPE-.js → hurl-BSiqIbZR.js} +1 -1
- package/dist/web-ui-assets/assets/index-DBXn_P4Z.css +2 -0
- package/dist/web-ui-assets/assets/{index-J4Gmj9de.js → index-DxraiEXA.js} +2 -2
- package/dist/web-ui-assets/assets/{java-8dkCcwWP.js → java-DHCJgaYo.js} +1 -1
- package/dist/web-ui-assets/assets/{javascript-CjgqT0hZ.js → javascript-UwR15CHn.js} +1 -1
- package/dist/web-ui-assets/assets/{jinja-5n1p1jzI.js → jinja-vv0QfMTf.js} +1 -1
- package/dist/web-ui-assets/assets/{jison-BirvaJHT.js → jison-BdsuKmFE.js} +1 -1
- package/dist/web-ui-assets/assets/{json-DmipamAZ.js → json-DNO2HE_Y.js} +1 -1
- package/dist/web-ui-assets/assets/{jsx-w134sGXK.js → jsx-U1H5CsFs.js} +1 -1
- package/dist/web-ui-assets/assets/{julia-CP0_Sn17.js → julia-C330XKUM.js} +1 -1
- package/dist/web-ui-assets/assets/{just-C2Hxq1M-.js → just-RaEEprm5.js} +1 -1
- package/dist/web-ui-assets/assets/{latex-C2pnLSMg.js → latex-BkviF63W.js} +1 -1
- package/dist/web-ui-assets/assets/{liquid-A9v-zdj1.js → liquid-BXBmBztm.js} +1 -1
- package/dist/web-ui-assets/assets/{lua-BUYvMhIp.js → lua-BaWbDujq.js} +1 -1
- package/dist/web-ui-assets/assets/{marko-DIaJyZ2t.js → marko-BQsI2D3T.js} +1 -1
- package/dist/web-ui-assets/assets/{mdc-DnSkIciD.js → mdc-D0P-XiqT.js} +1 -1
- package/dist/web-ui-assets/assets/{nginx-BxbUPYEw.js → nginx-Bs26owa3.js} +1 -1
- package/dist/web-ui-assets/assets/{nim-Dxaqe1Bn.js → nim-DnTXTHij.js} +1 -1
- package/dist/web-ui-assets/assets/{org-Bi4gmD-8.js → org-Bda-wEk8.js} +1 -1
- package/dist/web-ui-assets/assets/{perl-DrrYP5ph.js → perl-CazUTglO.js} +1 -1
- package/dist/web-ui-assets/assets/{php-DqWFNwEA.js → php-beb386wl.js} +1 -1
- package/dist/web-ui-assets/assets/{pug-CeN90-9K.js → pug-BNMtKALj.js} +1 -1
- package/dist/web-ui-assets/assets/{qml-CKa9kb6a.js → qml-B0K9OgdI.js} +1 -1
- package/dist/web-ui-assets/assets/{r-CfEfxRBn.js → r-DBHyJsFw.js} +1 -1
- package/dist/web-ui-assets/assets/{razor-BJe66PT7.js → razor-CgwxupjW.js} +1 -1
- package/dist/web-ui-assets/assets/{regexp-C3vAdVA_.js → regexp-DxkUG43n.js} +1 -1
- package/dist/web-ui-assets/assets/{rst-hFT2ijNs.js → rst-BHb8uy7y.js} +1 -1
- package/dist/web-ui-assets/assets/{ruby-C3iLnR5f.js → ruby-CkhP59zd.js} +1 -1
- package/dist/web-ui-assets/assets/{sas-I2KZLci2.js → sas-C4mIXV2D.js} +1 -1
- package/dist/web-ui-assets/assets/{scss-Bfvb3Jj7.js → scss-BGTKsyE5.js} +1 -1
- package/dist/web-ui-assets/assets/{shellscript-zBQss7DO.js → shellscript-BhvAyKWQ.js} +1 -1
- package/dist/web-ui-assets/assets/{shellsession-DKWG3ja3.js → shellsession-BIZJ_qLc.js} +1 -1
- package/dist/web-ui-assets/assets/{soy-6kJwd0PX.js → soy-P6r6yOzU.js} +1 -1
- package/dist/web-ui-assets/assets/{sql-ZKBtdTrV.js → sql-BVBigw-2.js} +1 -1
- package/dist/web-ui-assets/assets/{stata-D1HN1GWw.js → stata-54jAGrgC.js} +1 -1
- package/dist/web-ui-assets/assets/{surrealql-B89pu-_8.js → surrealql-C8HhiqK7.js} +1 -1
- package/dist/web-ui-assets/assets/{svelte-DdjVDQDX.js → svelte-BueIeAvu.js} +1 -1
- package/dist/web-ui-assets/assets/{templ-CB3fWEmc.js → templ-Ofro3fhP.js} +1 -1
- package/dist/web-ui-assets/assets/{tex-DSK5fycz.js → tex-DJIpqw-n.js} +1 -1
- package/dist/web-ui-assets/assets/{ts-tags-CgD9RStv.js → ts-tags-ZY2vEszt.js} +1 -1
- package/dist/web-ui-assets/assets/{tsx-Csypjqle.js → tsx-WIiPFMv9.js} +1 -1
- package/dist/web-ui-assets/assets/{twig-PQ2ijmIy.js → twig-m538Ma7t.js} +1 -1
- package/dist/web-ui-assets/assets/{typescript-B4KejusE.js → typescript-Clk_YKGZ.js} +1 -1
- package/dist/web-ui-assets/assets/{typst-DA48RLSp.js → typst-F1lfBqcy.js} +1 -1
- package/dist/web-ui-assets/assets/{vue-C6y4X9p-.js → vue-BEXL-pWx.js} +1 -1
- package/dist/web-ui-assets/assets/{vue-html-1Vzn6gNz.js → vue-html-BWHrTaZI.js} +1 -1
- package/dist/web-ui-assets/assets/{vue-vine-DRny2ZQS.js → vue-vine-vuvJlse5.js} +1 -1
- package/dist/web-ui-assets/assets/{xml-k_Mgt1sq.js → xml-CFxeGMBh.js} +1 -1
- package/dist/web-ui-assets/assets/{xsl-BvSmCHX2.js → xsl-Gm-otioc.js} +1 -1
- package/dist/web-ui-assets/assets/{yaml-BmZoDLOb.js → yaml-B2Lu9Cr1.js} +1 -1
- package/dist/web-ui-assets/index.html +2 -2
- package/package.json +1 -1
- package/dist/web-ui-assets/assets/index-C6Xq_kK1.css +0 -2
|
@@ -38,6 +38,18 @@ Until the verifier returns `CONFIRMED`, the convergent recommendation is a **can
|
|
|
38
38
|
|
|
39
39
|
**Scope guard:** skip when the proposal is purely local with no composition surface, or is anchored to an external referent that survives independently of the system. Does not fire when `dissent = true` — that path surfaces the matrix directly; adding a Wave 3.5 gate on already-uncertain output adds friction without signal. Fires once per convergent verdict, not per critic.
|
|
40
40
|
|
|
41
|
+
**Post-synthesis annotation — Consumer surface (inline, no dispatch):**
|
|
42
|
+
After Wave 3 picks a recommendation — and after Wave 3.5 resolves, if it fired — the coordinator runs an inline consumer-surface check before surfacing. This is deterministic coordinator work, not a sub-agent dispatch.
|
|
43
|
+
|
|
44
|
+
1. **Trigger:** fires only when the final recommendation names concrete code symbols (function, class, type, exported name) or file paths. If the recommendation is purely conceptual (an architectural stance, a process change, a scoping decision with no named code artifact), skip entirely.
|
|
45
|
+
2. **Skip on dissent:** when `dissent = true`, the matrix is surfaced directly and the operator makes the call. Adding consumer counts to an already-uncertain matrix adds noise, not signal.
|
|
46
|
+
3. **Extraction:** from the recommendation text, extract only the exported symbol names and/or file paths it references. Do not extract from the rationale, critic outputs, or the original proposal — the annotation checks the recommendation's own named targets, nothing more.
|
|
47
|
+
4. **Bounded grep:** run at most 5 grep/glob calls against the repo to count importers of each extracted symbol or file. Use the ≥3 importer threshold for `shared_utilities` — a file imported by fewer than 3 modules is not a shared utility and does not warrant annotation.
|
|
48
|
+
5. **Append:** add a `Consumer surface:` line to the recommendation output. For each symbol or file that meets the ≥3 threshold, show `<name> — <N> importers (search scope: <glob used>)`. For symbols below the threshold, omit them. If no concrete symbols were extractable from the recommendation, write `Consumer surface: not checked`. If symbols were extracted and checked but none met the ≥3 threshold, write `Consumer surface: checked — no symbol ≥3 importers (scope: <glob used>)`. Never write `accounted` or any verdict that implies completeness.
|
|
49
|
+
6. **Defer:** when any symbol shows ≥3 importers, append: `For the full consumer graph, run /consumer-map <target> or /consumer-map <PR-number>.` This annotation is a lightweight signal, not a substitute for that skill.
|
|
50
|
+
|
|
51
|
+
**Why not a verdict:** grep-only coverage misses dynamic imports, string-keyed config references, event-pipeline membership, and transitive consumers beyond one level. Emitting `ACCOUNTED` or `BLIND_SPOT` on incomplete evidence would create false assurance or false alarm. Raw counts with explicit search scope let the operator and downstream skills make their own judgment.
|
|
52
|
+
|
|
41
53
|
**Merge + surface:**
|
|
42
54
|
- Recommendation = `original` → the proposal survived critique; proceed with it. **With a steelman annotation present, the strengthened form is what survived and is therefore what you proceed with** — it is the artifact Wave 3 actually scored, and executing the verbatim text instead would run a version that never won: one that can omit a prerequisite the steelman made explicit, or reinstate a claim it dropped as indefensible. Rank and execute must name the same artifact. Surface it **as** the strengthened version, with `gaps_filled` (assumptions the proposal depends on but never stated) and `weak_claims_dropped` (claims too weak to defend) shown as an explicit delta against what the user wrote, so they can see exactly what changed and reject it if they disagree. The substitution must be **visible, never silent** — do not present strengthened text as if it were the user's verbatim proposal. With no steelman annotation, `original` is the verbatim proposal and proceeds unchanged.
|
|
43
55
|
- Recommendation ≠ `original`, `dissent = false`, ≥2 critics returned the same alternative → convergent path: run Wave 3.5, then surface the alternative with rationale (on `OVERRIDE`, re-rank first) before acting.
|
|
@@ -12,7 +12,7 @@ failure_modes:
|
|
|
12
12
|
## Sub-agent contract
|
|
13
13
|
/contract
|
|
14
14
|
|
|
15
|
-
**Constraint: read-only reconnaissance.** You MUST NOT call `edit_file`, `write_file`, or any mutating bash command (no `git commit`, `git push`, `git checkout`, `mv`, `rm`, file redirection, package installs, etc.). Read-only tools only: `read_file`, `grep`, `glob`, `list_directory`, `memory_search`, and
|
|
15
|
+
**Constraint: read-only reconnaissance.** You MUST NOT call `edit_file`, `write_file`, or any mutating bash command (no `git commit`, `git push`, `git checkout`, `mv`, `rm`, file redirection, package installs, etc.). Read-only tools only: `read_file`, `grep`, `glob`, `list_directory`, `memory_search`, and git queries (via `bash` or `git_read` when bash is unavailable). Under `git_read`, non-git shell commands (`cat`, `ls`, `stat`, `tail`) are not available; use `read_file`, `glob`, and `list_directory` instead. `memory_search` is non-mutating and is the **only** way to reach the cross-session fact archive — it is in scope for this skill, do not strip it from this list.
|
|
16
16
|
|
|
17
17
|
If the survey reveals a fix that's tempting to apply, **return it as a recommendation in the snapshot** — the orchestrator decides whether to act. Even if the invoking brief sounds prescriptive ("draft the edit", "apply the change"), this skill stops at the snapshot and the preamble artifact. The orchestrator dispatches a separate implementation step afterward.
|
|
18
18
|
|
|
@@ -48,7 +48,7 @@ Check for relevant tooling and configs. Use the domain table below to decide whi
|
|
|
48
48
|
|
|
49
49
|
| Domain | What to scan |
|
|
50
50
|
|--------|-------------|
|
|
51
|
-
| `software` | CI configs (`
|
|
51
|
+
| `software` | CI configs (`list_directory` or `glob` on `.github/workflows/`), package scripts (`package.json`, `Makefile`, `pyproject.toml`), linters/formatters, authoritative config files for the task. |
|
|
52
52
|
| `research` | Reference manager (.bib files), LaTeX setup, data analysis tools (Jupyter, R scripts), collaboration setup. |
|
|
53
53
|
| `design` | Design tool configs, prototyping tools, handoff configs (Storybook), asset pipeline scripts. |
|
|
54
54
|
| `business` | Modeling tool configs, presentation formats, data source configs, collaboration tool structure. |
|
|
@@ -66,14 +66,11 @@ Return: relevant facts with 1-line summaries, **plus the stores actually consult
|
|
|
66
66
|
|
|
67
67
|
Read `SPINE.md` from the repo root (same directory as `AFK.md`). If the file does not exist or is empty, skip silently -- do not mention it in the snapshot. If it exists and has entries, extract its invariant (INV-*), rejected-pattern (REJ-*), and taste entries (TST-*) and include them in the snapshot so architectural constraints are visible before proposing changes.
|
|
68
68
|
|
|
69
|
-
### Eval-pipeline recency survey *(
|
|
69
|
+
### Eval-pipeline recency survey *(software domain only)*
|
|
70
70
|
|
|
71
71
|
For software-domain sessions, check whether the eval-run pipeline is current. This guard catches silent regressions that accumulate when the pipeline goes unrun during high-velocity sprints.
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
tail -1 ~/.afk/agent-framework/improve/eval-runs/.index.jsonl 2>/dev/null
|
|
76
|
-
```
|
|
73
|
+
Read the last line of `~/.afk/agent-framework/improve/eval-runs/.index.jsonl` (use `read_file`; if the file does not exist, treat as "never run").
|
|
77
74
|
|
|
78
75
|
Parse the `timestamp` field from the output. Then compute the age in days relative to today's date.
|
|
79
76
|
|
|
@@ -110,8 +107,8 @@ After the snapshot is assembled, construct the **Brief Anchor** — a path-verif
|
|
|
110
107
|
|
|
111
108
|
**Construction procedure:**
|
|
112
109
|
|
|
113
|
-
1. From your state survey output, extract the verified `cwd` (
|
|
114
|
-
2. From your infrastructure survey output, extract the 2–4 canonical file paths most relevant to the task. For each,
|
|
110
|
+
1. From your state survey output, extract the verified `cwd` (from `git rev-parse --show-toplevel` combined with `git rev-parse --show-prefix` to reconstruct the full session path: `<toplevel>/<prefix>`), `branch` (from `git rev-parse --abbrev-ref HEAD`), and `HEAD` SHA (from `git rev-parse HEAD`).
|
|
111
|
+
2. From your infrastructure survey output, extract the 2–4 canonical file paths most relevant to the task. For each, verify existence with `glob` or `read_file`; include the path only if it exists. Paths that don't exist are omitted; if zero paths survive, set the list to `(none verified)`.
|
|
115
112
|
3. Assemble the preamble block:
|
|
116
113
|
|
|
117
114
|
```
|
|
@@ -119,7 +116,7 @@ After the snapshot is assembled, construct the **Brief Anchor** — a path-verif
|
|
|
119
116
|
- **cwd**: <absolute path>
|
|
120
117
|
- **branch**: <branch name>
|
|
121
118
|
- **HEAD**: <full SHA>
|
|
122
|
-
- **canonical paths** (
|
|
119
|
+
- **canonical paths** (verify each on entry; emit GROUNDING_FAILED:<path> and abort if missing):
|
|
123
120
|
- <verified_path_1>
|
|
124
121
|
- <verified_path_2> ← omit line if not applicable
|
|
125
122
|
```
|
|
@@ -129,7 +126,7 @@ After the snapshot is assembled, construct the **Brief Anchor** — a path-verif
|
|
|
129
126
|
**Orchestrator usage contract:**
|
|
130
127
|
|
|
131
128
|
- Prepend the Brief Anchor verbatim to every sub-agent brief that reads files, runs `git`/`gh` commands, or references explicit paths. Skip for pure-reasoning tasks.
|
|
132
|
-
- Sub-agents receiving the anchor
|
|
129
|
+
- Sub-agents receiving the anchor verify each listed path on entry (via `glob` or `read_file`). A missing path returns `GROUNDING_FAILED:<path>` — the orchestrator re-dispatches once with the corrected path. If the retry also returns `GROUNDING_FAILED`, emit `BRIEF_GROUND_ABORT` with both the expected and actual paths **plus the corrective command** the operator should run — `git worktree list` to find the intended checkout, then `cd <correct-worktree>` — and halt the wave.
|
|
133
130
|
- The anchor is session-scoped: one construction pass per `ground-state` invocation. Do not re-invoke `ground-state` mid-session to refresh it; instead pass the existing anchor through.
|
|
134
131
|
|
|
135
132
|
**Skip when:**
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
+
import { findSession } from '../../session-store.js';
|
|
2
|
+
import type { ResolvedResumeTarget } from '../../resume-session.js';
|
|
1
3
|
import type { SlashCommand } from '../types.js';
|
|
4
|
+
export declare function resolveFromFound(found: NonNullable<ReturnType<typeof findSession>>): ResolvedResumeTarget;
|
|
2
5
|
export declare const resumeCmd: SlashCommand;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { SlashCommand } from '../types.js';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const whereCmd: SlashCommand;
|