grounder 0.3.0 → 0.5.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.
Files changed (146) hide show
  1. package/README.md +157 -215
  2. package/dist/agents/claude.d.ts.map +1 -1
  3. package/dist/agents/claude.js +3 -3
  4. package/dist/agents/claude.js.map +1 -1
  5. package/dist/agents/cursor.d.ts.map +1 -1
  6. package/dist/agents/cursor.js +3 -3
  7. package/dist/agents/cursor.js.map +1 -1
  8. package/dist/agents/hook-runtime.d.ts +3 -3
  9. package/dist/agents/hook-runtime.js +4 -4
  10. package/dist/agents/hook-runtime.js.map +1 -1
  11. package/dist/agents/install-command.d.ts +0 -2
  12. package/dist/agents/install-command.d.ts.map +1 -1
  13. package/dist/agents/install-command.js.map +1 -1
  14. package/dist/cli.js +15 -10
  15. package/dist/cli.js.map +1 -1
  16. package/dist/commands/apply-agent-installs.d.ts +2 -2
  17. package/dist/commands/apply-agent-installs.d.ts.map +1 -1
  18. package/dist/commands/apply-agent-installs.js +1 -1
  19. package/dist/commands/doctor.d.ts.map +1 -1
  20. package/dist/commands/doctor.js +120 -50
  21. package/dist/commands/doctor.js.map +1 -1
  22. package/dist/commands/handoff/list.d.ts +27 -9
  23. package/dist/commands/handoff/list.d.ts.map +1 -1
  24. package/dist/commands/handoff/list.js +31 -16
  25. package/dist/commands/handoff/list.js.map +1 -1
  26. package/dist/commands/handoff.d.ts +2 -0
  27. package/dist/commands/handoff.d.ts.map +1 -1
  28. package/dist/commands/handoff.js +10 -1
  29. package/dist/commands/handoff.js.map +1 -1
  30. package/dist/commands/link.d.ts +12 -0
  31. package/dist/commands/link.d.ts.map +1 -0
  32. package/dist/commands/{repo/init.js → link.js} +35 -27
  33. package/dist/commands/link.js.map +1 -0
  34. package/dist/commands/migrate.js +3 -5
  35. package/dist/commands/migrate.js.map +1 -1
  36. package/dist/commands/note/list.d.ts +36 -0
  37. package/dist/commands/note/list.d.ts.map +1 -0
  38. package/dist/commands/note/list.js +77 -0
  39. package/dist/commands/note/list.js.map +1 -0
  40. package/dist/commands/note.d.ts +2 -0
  41. package/dist/commands/note.d.ts.map +1 -1
  42. package/dist/commands/note.js +10 -1
  43. package/dist/commands/note.js.map +1 -1
  44. package/dist/commands/output.d.ts +47 -0
  45. package/dist/commands/output.d.ts.map +1 -0
  46. package/dist/commands/output.js +63 -0
  47. package/dist/commands/output.js.map +1 -0
  48. package/dist/commands/plan/list.d.ts +21 -5
  49. package/dist/commands/plan/list.d.ts.map +1 -1
  50. package/dist/commands/plan/list.js +24 -13
  51. package/dist/commands/plan/list.js.map +1 -1
  52. package/dist/commands/plan.d.ts +2 -0
  53. package/dist/commands/plan.d.ts.map +1 -1
  54. package/dist/commands/plan.js +12 -2
  55. package/dist/commands/plan.js.map +1 -1
  56. package/dist/commands/require-linked.js +2 -2
  57. package/dist/commands/require-linked.js.map +1 -1
  58. package/dist/commands/search.d.ts +23 -0
  59. package/dist/commands/search.d.ts.map +1 -0
  60. package/dist/commands/search.js +277 -0
  61. package/dist/commands/search.js.map +1 -0
  62. package/dist/commands/{vault/init.d.ts → setup.d.ts} +5 -4
  63. package/dist/commands/setup.d.ts.map +1 -0
  64. package/dist/commands/setup.js +137 -0
  65. package/dist/commands/setup.js.map +1 -0
  66. package/dist/commands/status.d.ts.map +1 -1
  67. package/dist/commands/status.js +39 -29
  68. package/dist/commands/status.js.map +1 -1
  69. package/dist/commands/upgrade-banner.d.ts +2 -2
  70. package/dist/commands/upgrade-banner.js +2 -2
  71. package/dist/connector/home.d.ts +12 -0
  72. package/dist/connector/home.d.ts.map +1 -1
  73. package/dist/connector/home.js +26 -2
  74. package/dist/connector/home.js.map +1 -1
  75. package/dist/connector/state.d.ts +4 -13
  76. package/dist/connector/state.d.ts.map +1 -1
  77. package/dist/connector/state.js +3 -21
  78. package/dist/connector/state.js.map +1 -1
  79. package/dist/connector/vault.d.ts +2 -0
  80. package/dist/connector/vault.d.ts.map +1 -1
  81. package/dist/connector/vault.js +6 -1
  82. package/dist/connector/vault.js.map +1 -1
  83. package/dist/help.d.ts +3 -3
  84. package/dist/help.d.ts.map +1 -1
  85. package/dist/help.js +80 -48
  86. package/dist/help.js.map +1 -1
  87. package/dist/util/frontmatter.d.ts +9 -7
  88. package/dist/util/frontmatter.d.ts.map +1 -1
  89. package/dist/util/frontmatter.js +29 -4
  90. package/dist/util/frontmatter.js.map +1 -1
  91. package/dist/util/parse-args.d.ts.map +1 -1
  92. package/dist/util/parse-args.js +11 -2
  93. package/dist/util/parse-args.js.map +1 -1
  94. package/dist/util/path.d.ts +23 -0
  95. package/dist/util/path.d.ts.map +1 -1
  96. package/dist/util/path.js +39 -0
  97. package/dist/util/path.js.map +1 -1
  98. package/dist/vault/list-handoffs.d.ts +3 -1
  99. package/dist/vault/list-handoffs.d.ts.map +1 -1
  100. package/dist/vault/list-handoffs.js +17 -15
  101. package/dist/vault/list-handoffs.js.map +1 -1
  102. package/dist/vault/list-markdown.d.ts +8 -0
  103. package/dist/vault/list-markdown.d.ts.map +1 -0
  104. package/dist/vault/list-markdown.js +35 -0
  105. package/dist/vault/list-markdown.js.map +1 -0
  106. package/dist/vault/list-notes.d.ts +15 -0
  107. package/dist/vault/list-notes.d.ts.map +1 -0
  108. package/dist/vault/list-notes.js +34 -0
  109. package/dist/vault/list-notes.js.map +1 -0
  110. package/dist/vault/list-plans.d.ts +2 -2
  111. package/dist/vault/list-plans.d.ts.map +1 -1
  112. package/dist/vault/list-plans.js +9 -19
  113. package/dist/vault/list-plans.js.map +1 -1
  114. package/dist/vault/search.d.ts +55 -0
  115. package/dist/vault/search.d.ts.map +1 -0
  116. package/dist/vault/search.js +328 -0
  117. package/dist/vault/search.js.map +1 -0
  118. package/dist/vault/write-handoff.d.ts +2 -0
  119. package/dist/vault/write-handoff.d.ts.map +1 -1
  120. package/dist/vault/write-handoff.js +5 -0
  121. package/dist/vault/write-handoff.js.map +1 -1
  122. package/dist/vault/write-note.d.ts +2 -0
  123. package/dist/vault/write-note.d.ts.map +1 -1
  124. package/dist/vault/write-note.js +9 -1
  125. package/dist/vault/write-note.js.map +1 -1
  126. package/dist/vault/write-plan.d.ts +4 -0
  127. package/dist/vault/write-plan.d.ts.map +1 -1
  128. package/dist/vault/write-plan.js +14 -1
  129. package/dist/vault/write-plan.js.map +1 -1
  130. package/package.json +13 -4
  131. package/templates/agents/claude/commands/grounder-note.md +30 -4
  132. package/templates/agents/claude/commands/grounder-plan.md +23 -17
  133. package/templates/agents/claude/commands/grounder-search.md +144 -0
  134. package/templates/agents/claude/commands/grounder-task-handoff.md +5 -1
  135. package/templates/agents/claude/commands/grounder-task.md +4 -2
  136. package/templates/agents/cursor/commands/grounder-note.md +31 -5
  137. package/templates/agents/cursor/commands/grounder-plan.md +24 -18
  138. package/templates/agents/cursor/commands/grounder-search.md +144 -0
  139. package/templates/agents/cursor/commands/grounder-task-handoff.md +6 -2
  140. package/templates/agents/cursor/commands/grounder-task.md +5 -3
  141. package/dist/commands/repo/init.d.ts +0 -11
  142. package/dist/commands/repo/init.d.ts.map +0 -1
  143. package/dist/commands/repo/init.js.map +0 -1
  144. package/dist/commands/vault/init.d.ts.map +0 -1
  145. package/dist/commands/vault/init.js +0 -90
  146. package/dist/commands/vault/init.js.map +0 -1
@@ -1,4 +1,4 @@
1
- Write a named, updatable plan document to the Obsidian vault for this project.
1
+ Write a named, updatable plan document to the markdown vault for this project.
2
2
 
3
3
  Distill the instruction after `/grounder-plan` into a structured plan — not a chat transcript.
4
4
  Do not dump tool traces, full conversation, or false starts.
@@ -22,31 +22,35 @@ Build a markdown body with these sections:
22
22
 
23
23
  ```
24
24
 
25
- Update vs create — never guess a `--title` for an update:
25
+ **Special case: the instruction asks to view existing plans, not name a new topic** (`list`, `list 3 oldest`, `show plans`, etc.) → run `{{GROUNDER_CLI}} plan list --limit <N> --markdown` (N = count named, else 5; ignore order words like "oldest" output is always newest-first, never resort or relabel it) and stop — no plan write, no title. Relay the CLI stdout as-is (it already includes the count header; title lines are clickable `[relativePath](fileUri)` links).
26
26
 
27
- **1. Path known** (attached/open in chat, or printed by an earlier `grounder plan` this conversation): update that exact file.
27
+ Otherwise, resolve the target, then **state it plainly before writing** `Updating plan at <path>.` or `Creating new plan titled <title>.` This is a visible record, not a blocking confirmation — updates overwrite with no `--force`, so get the match right.
28
+
29
+ **1. Known path** (attached/open in chat, or printed by an earlier `grounder plan` this conversation) → update it directly.
30
+
31
+ **2. No path, but update intent** (e.g. "update/continue/revise the plan", or a name that sounds like an existing one) → look it up first:
28
32
 
29
33
  ```bash
30
- {{GROUNDER_CLI}} plan "$(cat <<'EOF'
31
- # Plan: …
32
-
33
- EOF
34
- )" --path <path-to-existing-plan.md>
34
+ {{GROUNDER_CLI}} plan list --limit 5 --markdown
35
35
  ```
36
36
 
37
- `--path` must resolve under this project's `plans/` dir; it always overwrites (no `--force`).
37
+ CLI output starts with a count header, then each result as a numbered two-line block — `N. ` + `[relativePath](fileUri)` on the first line, the absolute path indented beneath it (use that absolute path for `--path`).
38
38
 
39
- **2. Path unknown** (e.g. "update the plan" with nothing attached and no prior path this conversation): look it up, then update as in (1).
39
+ A match counts only if the filename stem / relative path actually corresponds to what the user named — not just "it's the only plan in the project." No name given and exactly one plan exists → that counts too. If the user refers to a plan by the number shown in *this* listing (e.g. "update plan 2"), that counts as a match too — resolve it to the indented absolute path from this same output, don't reuse a number from an earlier listing in the conversation (it's positional, not a stable id, and can shift if plans changed since). Otherwise (no match, several matches, or a name/number that doesn't correspond to any existing plan) → ask; never guess.
40
+
41
+ Cases 1 and 2 (update) — run:
40
42
 
41
43
  ```bash
42
- {{GROUNDER_CLI}} plan list --limit 5
44
+ {{GROUNDER_CLI}} plan "$(cat <<'EOF'
45
+ # Plan: …
46
+
47
+ EOF
48
+ )" --path <path>
43
49
  ```
44
50
 
45
- Pick the path matching the user's intent; ask if none or several match.
51
+ `--path` must resolve under this project's `plans/` dir; it always overwrites (no `--force`).
46
52
 
47
- **3. Genuinely new plan** (not an update): derive a `--title`.
48
- - If the instruction names one explicitly (e.g. `save as "implementation-phase-1"` or `…phase-1.md`), use it (strip a trailing `.md`).
49
- - Otherwise derive a short kebab-case name from the plan's title/goal and confirm it with the user before writing.
53
+ **3. No path, no update intent → genuinely new plan.** Derive a `--title` (the user's explicit name, else a short kebab-case slug from the plan's title/goal) and write immediately — don't ask about the name itself.
50
54
 
51
55
  ```bash
52
56
  {{GROUNDER_CLI}} plan "$(cat <<'EOF'
@@ -56,10 +60,12 @@ EOF
56
60
  )" --title <name>
57
61
  ```
58
62
 
59
- If the CLI refuses because that name already exists (non-zero exit; stderr names the conflict), tell the user and ask whether to overwrite (`--force`) or pick a different name. `--force` only resolves this title collision — it is never how you update a plan you already meant to target (use `--path` for that). **Never** silently pass `--force`.
63
+ If `--title` collides with an existing plan (non-zero exit; stderr names the conflict), ask: overwrite (`--force`) or a different name. `--force` only resolves that collision — **never** use it to update a plan you meant to target with `--path`.
64
+
65
+ Always include `--topics` with 3-5 comma-separated lowercase keywords that capture the plan's core concepts (e.g. `--topics "caching,redis,performance,api"`). Pick terms a future search would use — concrete nouns and technical terms, not verbs or filler.
60
66
 
61
67
  Run from the linked project folder or any subdirectory beneath it.
62
68
  The vault is outside the workspace — grant shell permissions if Claude Code prompts you.
63
69
 
64
70
  Do not compute vault paths or write files yourself — the CLI handles it.
65
- Report the CLI output path from stdout to the user.
71
+ Report the exact path the CLI prints on stdout it confirms the real outcome, not just the intent.
@@ -0,0 +1,144 @@
1
+ Search this project's vault content for relevant context.
2
+
3
+ **Silence:** write **no assistant text** until step 3. Rounds 1–2 are tool calls with an empty/absent text part — not “I’ll search…”, not “I’ll read…”, not “**Analyzing…**”, not query/terms narration.
4
+
5
+ Use this when the user asks to find prior project-vault context by topic, keyword, concept, or phrase.
6
+
7
+ Scope is this linked project only — the CLI resolves and searches under the linked project vault root. Do not search outside it.
8
+
9
+ ## Turn budget (speed)
10
+
11
+ **Rounds 1–2: tool calls only — no text part in those messages.** Not even one sentence.
12
+
13
+ Exactly **two** assistant turns with tools, then the answer. Allowed tools, nothing else:
14
+
15
+ 1. Round 1 — Shell only: one `search … --json` (optional second search in the *same* round only per the broaden rule below). Message = that tool call, nothing else.
16
+ 2. Round 2 — Read only: **one** parallel batch of full-file reads (hits 1–4). Message = those Read calls, nothing else.
17
+ 3. Final answer to the user (first and only chat text).
18
+
19
+ **Do not** Glob, Grep, extra Shell, or status/UI tools (`UpdateCurrentStep`, `TodoWrite`, and similar). Do not add a third tool turn. Do not explore the repo.
20
+
21
+ ## Output contract (default — hybrid)
22
+
23
+ - Do not echo commands or shell output.
24
+ - **Never paste CLI JSON, snippets, or raw stdout into chat** — parse `--json` internally only.
25
+ - One final synthesized response only.
26
+
27
+ **Path links (mandatory for every listed file):**
28
+ - Visible title = `hits[].relativePath` from JSON **exactly** (project-vault-relative; the folder that contains `notes/`, `logs/`, and `plans/`). Example: `plans/archive/0.2.0 and older/doc.md`.
29
+ - **Do not** derive the title from `hits[].file`, path segments, or parent-vault prefixes.
30
+ - **Wrong titles:** `10-Projects/grounder/plans/…`, `%20` in the visible title, or any path above the project vault root.
31
+ - Link href = `hits[].fileUri` from JSON (spaces already percent-encoded).
32
+ - Markdown form: `[hits[i].relativePath](hits[i].fileUri)`
33
+
34
+ **Numbering (mandatory):**
35
+ - Number every listed file, continuing across sections (`1…` in **Read these**, then `5…` in **Also matched`).
36
+ - Do not restart at 1 in **Also matched**. Do not use bullet-only lists without numbers.
37
+
38
+ Structure:
39
+
40
+ 1. **Opening** — one sentence of what the vault says (not a search recap). Never start with “I have searched…”, “I found…”, or similar.
41
+ 2. **Read these** — hits 1–4 only; numbered linked paths + optional role + short bullets under each. You may list a design/archive authority first *among those four*.
42
+ 3. **Also matched** — leftover top-10 **in CLI order** (do not reshuffle); numbered linked paths + one short phrase each (`hits[].alsoMatchedHint` or `matches[].term`). Every line must end with ` — phrase`; bare links are invalid. Omit if empty.
43
+
44
+ Example shape (`##` headings required — not bold-only, not `###`):
45
+
46
+ ```markdown
47
+ Vault notes discuss …
48
+
49
+ ## Read these
50
+ 1. [plans/archive/0.3.0/schema_….md](file:///…/schema_….md) — design authority
51
+ - …
52
+ 2. [plans/…](file:///…) — …
53
+ ## Also matched
54
+ 3. [plans/archive/0.2.0 and older/doc.md](file:///…/0.2.0%20and%20older/doc.md) — one phrase
55
+ 4. [plans/…](file:///…) — one phrase
56
+ ```
57
+
58
+ **Lookup mode:** explicit lookup wording (`exact phrase`, `this line`, `the wording`) **or** the entire input after stripping retrieval wrappers is a bare `"quoted span"` → relay CLI `--markdown` as-is (one search, no `--terms`, no full reads).
59
+
60
+ ## Steps
61
+
62
+ 1. **Query and terms (private)** — classify, then build argv. Classification is silent (no chat text). The CLI always line-scans `query` plus `--terms`. Multi-word queries only match lines that contain that phrase verbatim. Rank is dominated by how many distinct terms hit the **same** file — complementary vault words beat extra English synonyms and source module names.
63
+
64
+ **Classify** after stripping retrieval wrappers (`find`, `search for`, `documents discussing`, `notes about`, `look up`). Then pick one:
65
+
66
+ - **Lookup** — explicit lookup wording (`exact phrase`, `this line`, `the wording`), **or** leftover is a bare `"quoted span"`. `query` = the quoted text, unmodified. Relay CLI `--markdown` as-is; no `--terms`, no full reads.
67
+ - **Request** — leftover still has request syntax (any of): `that mention` / `that discuss` / `that talk about`; leftover starts with `plans that` / `notes that` / `docs that` / `documents that`; trailing scope `both in` / `either in` / `in CLI and`. Do **not** pass that leftover as `query`. `query` = one primary noun or named command from the topic (tight phrase; do not prefix a product name). Extra nouns go in `--terms`.
68
+ - **Topic leftover** — leftover is already a topic noun-phrase. `query` = leftover, same words, same order. Do not paraphrase, shorten, or coin a new phrase.
69
+
70
+ Strip only retrieval wrappers. Do not pass the whole utterance. Do not recycle the query as a `--terms` item.
71
+
72
+ Examples below are a **fictional** domain. Copy the shape; invent tokens for *this* topic. Do not reuse these strings as `--terms`.
73
+
74
+ Example — lookup. User: `find "retry of expired jobs"`
75
+ - class: lookup
76
+ - argv: {{GROUNDER_CLI}} search "retry of expired jobs" --markdown
77
+
78
+ Example — topic leftover. User: `find documents discussing retry of expired jobs`
79
+ - class: topic leftover
80
+ - query: `retry of expired jobs` (leftover after stripping the wrapper)
81
+ - wrong query: `expired job retries` (rewritten)
82
+ - wrong class: request (`documents discussing` is a wrapper)
83
+
84
+ Example — request. User: `find plans that mention updating the charge or refund command, both in worker and API`
85
+ - class: request (`plans that mention` / `both in` stay leftover — not the topic)
86
+ - query: `charge` (one named command from leftover; not `billing charge`)
87
+ - terms: `refund,settlement,invoices.json,RefundPolicy`
88
+ - from leftover: `refund` (the other named command)
89
+ - invented: `settlement` (domain), `invoices.json` (file), `RefundPolicy` (schema) — guess this project's equivalents
90
+ - wrong query: `plans that mention updating the charge or refund command, both in worker and API`
91
+ - wrong query: `charge refund command` (joined nouns)
92
+ - not as terms: `plan`, `command`, `api`
93
+
94
+ **Terms** — invent 3–5 complementary vault tokens for *this* topic, then stop. They need not appear in the utterance:
95
+ 1. Domain noun/phrase from the topic (skip if it would duplicate the query)
96
+ 2. Named command or product verb if the topic has one — never a lone generic verb (`migrate`, `install`)
97
+ 3. One on-disk identifier (filename, config key, schema field) guessed for this project
98
+ 4–5. Only another vault/product token. No paraphrase of the query.
99
+
100
+ **Never as terms** (unless the user asked about code layout): repo paths, `packages/…`, source module / file stems. Lone high-df words (`plan`, `command`, `cli`) flatten rank. Prefer words that appear in vault notes (named commands, config files, domain identifiers).
101
+
102
+ Example — user: `look up why the retry queue must skip expired jobs`
103
+ - class: topic leftover
104
+ - query: `why the retry queue must skip expired jobs`
105
+ - terms: `retry queue,dead letter,jobs.json,RetryPolicy,ttl` (`retry queue` from leftover; others invented)
106
+ - not: `queue-worker`, `process-jobs`, `skip`, `look up`
107
+
108
+ 2. **Search (tool round 1):**
109
+
110
+ ```bash
111
+ {{GROUNDER_CLI}} search "<query>" --terms "<csv>" --context 2 --json
112
+ ```
113
+
114
+ **Always quote `--terms`.** Unquoted CSV with spaces corrupts argv.
115
+
116
+ Parse JSON privately. Take hits in CLI order (`hits[0]` …). For links use `relativePath` + `fileUri`; for Also matched gloss use `alsoMatchedHint` or `matches[].term` — do not quote snippets.
117
+
118
+ **Broaden once (silent)** only if: `totalFileCount` is 0; or ≤2 and every hit is meta (`discussions/search/`, or snippet only quotes the query); or any term in `termHitCounts` has a count of 0 (that term produced no files — it was a bad guess and must be replaced). Otherwise do not re-search.
119
+
120
+ Broaden call (use `--context 3` — weaker matches need more context):
121
+
122
+ ```bash
123
+ {{GROUNDER_CLI}} search "<query>" --terms "<csv-with-replacement>" --context 3 --json
124
+ ```
125
+
126
+ **Broaden strategy (deterministic):** check `termHitCounts` first — if any term has count 0, replace **that term** (not slot-3) with a different product/vault token. If no zero-hit term, drop slot-3 (the on-disk identifier). Keep slots 1–2 (product noun/verb) unchanged. Do not invent new terms or rewrite existing ones.
127
+
128
+ 3. **Read (tool round 2)** — mandatory unless lookup:
129
+ - Full-read CLI hits **1–4** in rank order, **all in one parallel batch**.
130
+ - Read path = `hits[i].file` (absolute). Link title/href = `hits[i].relativePath` + `hits[i].fileUri`.
131
+ - **No skips, no substitutions, no “maybe also hit 5.”** Trust CLI order; judge relevance only when writing the answer.
132
+ - Grant read permissions for vault paths outside the workspace when needed.
133
+
134
+ 4. **Answer** — synthesize immediately after reads:
135
+ - Claims only from files you full-read. Unread hits must not grow new facts.
136
+ - **Read these:** useful full-reads (those 1–4 only). Thin/off-topic reads get one blunt numbered line there or move to **Also matched**.
137
+ - **Also matched:** remaining top-10 you did not deep-summarize, **in CLI leftover order**. Copy `alsoMatchedHint` or phrase from `matches[].term`; every line ends with ` — phrase`.
138
+ - Every file line: `[relativePath](fileUri)` from JSON; continue numbering across sections.
139
+ - Prefer design/archive docs when they are the authority among the files you read.
140
+
141
+ Run from the linked project folder or any subdirectory beneath it.
142
+ The vault is outside the workspace — grant shell permissions if Claude Code prompts you.
143
+ Do not write to vault files during search.
144
+ Do not grep the vault yourself — the CLI ranks; you read and synthesize.
@@ -1,4 +1,4 @@
1
- Write a session handoff checkpoint to the Obsidian vault for this project.
1
+ Write a session handoff checkpoint to the markdown vault for this project.
2
2
 
3
3
  Summarize the session into a structured handoff — not a chat transcript.
4
4
  Do not dump tool traces, full conversation, or false starts.
@@ -38,6 +38,10 @@ Optional short title slug (filename + frontmatter):
38
38
 
39
39
  {{GROUNDER_CLI}} handoff --title <slug> "<body>"
40
40
 
41
+ Always include `--topics` with 3-5 comma-separated lowercase keywords that capture the session's core concepts (e.g. `--topics "auth,middleware,jwt,session"`). Pick terms a future search would use — concrete nouns and technical terms, not verbs or filler:
42
+
43
+ {{GROUNDER_CLI}} handoff --topics "keyword1,keyword2,keyword3" "<body>"
44
+
41
45
  For multi-line bodies, prefer a shell heredoc so quoting does not break:
42
46
 
43
47
  ```bash
@@ -2,7 +2,9 @@ Hydrate this session from the latest vault handoff and repo truth.
2
2
 
3
3
  Read-only — do not write to the vault. Do not invent vault paths.
4
4
 
5
- From the linked project folder or any subdirectory beneath it:
5
+ **Special case: the instruction asks to view existing handoffs, not hydrate** (`list`, `list 3 oldest`, `show handoffs`, etc.) → run `{{GROUNDER_CLI}} handoff list --limit <N> --markdown` (N = count named, else 5; ignore order words like "oldest" — output is always newest-first, never resort or relabel it) and stop — no hydrate, no `AGENTS.md`, no “start work.” Relay the CLI stdout as-is (it already includes the count header; title lines are clickable `[relativePath](fileUri)` links).
6
+
7
+ Otherwise, from the linked project folder or any subdirectory beneath it:
6
8
 
7
9
  1. Get the current handoff (skips empty/unreadable files, same pick as the session-start teaser):
8
10
 
@@ -10,7 +12,7 @@ From the linked project folder or any subdirectory beneath it:
10
12
 
11
13
  2. If empty: tell the user there are no handoffs yet, then read repo `AGENTS.md` only and proceed.
12
14
 
13
- 3. Otherwise, read that file. If the user names a specific session instead, run `{{GROUNDER_CLI}} handoff list --limit 5` and read the path they mean.
15
+ 3. Otherwise, read that file. If the user names a specific session instead: `{{GROUNDER_CLI}} handoff list --limit 5 --markdown` match name/index to the indented absolute path in *this* listing (positional, not a stable id). Miss → once with `--limit 50 --markdown` (*that* listing only). Still miss → tell the user and stop — no guessed hydrate.
14
16
 
15
17
  4. Read repo `AGENTS.md` (project conventions and constraints).
16
18
 
@@ -1,11 +1,37 @@
1
- Save a note to the Obsidian vault for this project.
1
+ Save a note to the markdown vault for this project.
2
2
 
3
- Run from the linked project folder or any subdirectory beneath it:
3
+ Distill the instruction after `/grounder-note` into a clean note body — not a chat transcript.
4
+ Do not dump tool traces, full conversation, or false starts.
4
5
 
5
- {{GROUNDER_CLI}} note "<user text>"
6
+ **Special case: the instruction asks to view existing notes, not write one** (`list`, `list 3 oldest`, `show notes`, etc.) → run `{{GROUNDER_CLI}} note list --limit <N> --markdown` (N = count named, else 5; ignore order words like "oldest" — output is always newest-first, never resort or relabel it) and stop — no note write. Relay the CLI stdout as-is (it already includes the count header; title lines are clickable `[relativePath](fileUri)` links).
6
7
 
7
- The vault is outside the workspace — approve shell permissions if Cursor prompts you.
8
+ Rules:
9
+ - Default → distill the args into a clean note body
10
+ - Exact wording marked to keep (quoted, "save exactly:"/"verbatim:", or a fenced block) → use that verbatim instead, unmodified
11
+ - Empty args → distill the central point of the current thread instead
12
+
13
+ Then run from the linked project folder or any subdirectory beneath it:
14
+
15
+ {{GROUNDER_CLI}} note "<body>"
16
+
17
+ Optional short title slug (filename):
18
+
19
+ {{GROUNDER_CLI}} note --title <slug> "<body>"
20
+
21
+ Always include `--topics` with 3-5 comma-separated lowercase keywords that capture the note's core concepts (e.g. `--topics "schema,migration,postgres"`). Pick terms a future search would use — concrete nouns and technical terms, not verbs or filler:
22
+
23
+ {{GROUNDER_CLI}} note --topics "keyword1,keyword2,keyword3" "<body>"
24
+
25
+ For multi-line bodies, prefer a shell heredoc so quoting does not break:
26
+
27
+ ```bash
28
+ {{GROUNDER_CLI}} note "$(cat <<'EOF'
29
+
30
+ EOF
31
+ )"
32
+ ```
33
+
34
+ Run {{GROUNDER_CLI}} with `required_permissions: ["all"]` (vault is outside the workspace).
8
35
 
9
- Use the text after `/grounder-note` as the note body.
10
36
  Do not compute vault paths or write files yourself — the CLI handles it.
11
37
  Report the CLI output path from stdout to the user.
@@ -1,4 +1,4 @@
1
- Write a named, updatable plan document to the Obsidian vault for this project.
1
+ Write a named, updatable plan document to the markdown vault for this project.
2
2
 
3
3
  Distill the instruction after `/grounder-plan` into a structured plan — not a chat transcript.
4
4
  Do not dump tool traces, full conversation, or false starts.
@@ -22,31 +22,35 @@ Build a markdown body with these sections:
22
22
 
23
23
  ```
24
24
 
25
- Update vs create — never guess a `--title` for an update:
25
+ **Special case: the instruction asks to view existing plans, not name a new topic** (`list`, `list 3 oldest`, `show plans`, etc.) → run `{{GROUNDER_CLI}} plan list --limit <N> --markdown` (N = count named, else 5; ignore order words like "oldest" output is always newest-first, never resort or relabel it) and stop — no plan write, no title. Relay the CLI stdout as-is (it already includes the count header; title lines are clickable `[relativePath](fileUri)` links).
26
26
 
27
- **1. Path known** (attached/open in chat, or printed by an earlier `grounder plan` this conversation): update that exact file.
27
+ Otherwise, resolve the target, then **state it plainly before writing** `Updating plan at <path>.` or `Creating new plan titled <title>.` This is a visible record, not a blocking confirmation — updates overwrite with no `--force`, so get the match right.
28
+
29
+ **1. Known path** (attached/open in chat, or printed by an earlier `grounder plan` this conversation) → update it directly.
30
+
31
+ **2. No path, but update intent** (e.g. "update/continue/revise the plan", or a name that sounds like an existing one) → look it up first:
28
32
 
29
33
  ```bash
30
- {{GROUNDER_CLI}} plan "$(cat <<'EOF'
31
- # Plan: …
32
-
33
- EOF
34
- )" --path <path-to-existing-plan.md>
34
+ {{GROUNDER_CLI}} plan list --limit 5 --markdown
35
35
  ```
36
36
 
37
- `--path` must resolve under this project's `plans/` dir; it always overwrites (no `--force`).
37
+ CLI output starts with a count header, then each result as a numbered two-line block — `N. ` + `[relativePath](fileUri)` on the first line, the absolute path indented beneath it (use that absolute path for `--path`).
38
38
 
39
- **2. Path unknown** (e.g. "update the plan" with nothing attached and no prior path this conversation): look it up, then update as in (1).
39
+ A match counts only if the filename stem / relative path actually corresponds to what the user named — not just "it's the only plan in the project." No name given and exactly one plan exists → that counts too. If the user refers to a plan by the number shown in *this* listing (e.g. "update plan 2"), that counts as a match too — resolve it to the indented absolute path from this same output, don't reuse a number from an earlier listing in the conversation (it's positional, not a stable id, and can shift if plans changed since). Otherwise (no match, several matches, or a name/number that doesn't correspond to any existing plan) → ask; never guess.
40
+
41
+ Cases 1 and 2 (update) — run:
40
42
 
41
43
  ```bash
42
- {{GROUNDER_CLI}} plan list --limit 5
44
+ {{GROUNDER_CLI}} plan "$(cat <<'EOF'
45
+ # Plan: …
46
+
47
+ EOF
48
+ )" --path <path>
43
49
  ```
44
50
 
45
- Pick the path matching the user's intent; ask if none or several match.
51
+ `--path` must resolve under this project's `plans/` dir; it always overwrites (no `--force`).
46
52
 
47
- **3. Genuinely new plan** (not an update): derive a `--title`.
48
- - If the instruction names one explicitly (e.g. `save as "implementation-phase-1"` or `…phase-1.md`), use it (strip a trailing `.md`).
49
- - Otherwise derive a short kebab-case name from the plan's title/goal and confirm it with the user before writing.
53
+ **3. No path, no update intent → genuinely new plan.** Derive a `--title` (the user's explicit name, else a short kebab-case slug from the plan's title/goal) and write immediately — don't ask about the name itself.
50
54
 
51
55
  ```bash
52
56
  {{GROUNDER_CLI}} plan "$(cat <<'EOF'
@@ -56,10 +60,12 @@ EOF
56
60
  )" --title <name>
57
61
  ```
58
62
 
59
- If the CLI refuses because that name already exists (non-zero exit; stderr names the conflict), tell the user and ask whether to overwrite (`--force`) or pick a different name. `--force` only resolves this title collision — it is never how you update a plan you already meant to target (use `--path` for that). **Never** silently pass `--force`.
63
+ If `--title` collides with an existing plan (non-zero exit; stderr names the conflict), ask: overwrite (`--force`) or a different name. `--force` only resolves that collision — **never** use it to update a plan you meant to target with `--path`.
64
+
65
+ Always include `--topics` with 3-5 comma-separated lowercase keywords that capture the plan's core concepts (e.g. `--topics "caching,redis,performance,api"`). Pick terms a future search would use — concrete nouns and technical terms, not verbs or filler.
60
66
 
61
67
  Run from the linked project folder or any subdirectory beneath it.
62
- The vault is outside the workspace — approve shell permissions if Cursor prompts you.
68
+ Run {{GROUNDER_CLI}} with `required_permissions: ["all"]` (vault is outside the workspace).
63
69
 
64
70
  Do not compute vault paths or write files yourself — the CLI handles it.
65
- Report the CLI output path from stdout to the user.
71
+ Report the exact path the CLI prints on stdout it confirms the real outcome, not just the intent.
@@ -0,0 +1,144 @@
1
+ Search this project's vault content for relevant context.
2
+
3
+ **Silence:** write **no assistant text** until step 3. Rounds 1–2 are tool calls with an empty/absent text part — not “I’ll search…”, not “I’ll read…”, not “**Analyzing…**”, not query/terms narration.
4
+
5
+ Use this when the user asks to find prior project-vault context by topic, keyword, concept, or phrase.
6
+
7
+ Scope is this linked project only — the CLI resolves and searches under the linked project vault root. Do not search outside it.
8
+
9
+ ## Turn budget (speed)
10
+
11
+ **Rounds 1–2: tool calls only — no text part in those messages.** Not even one sentence.
12
+
13
+ Exactly **two** assistant turns with tools, then the answer. Allowed tools, nothing else:
14
+
15
+ 1. Round 1 — Shell only: one `search … --json` (optional second search in the *same* round only per the broaden rule below). Message = that tool call, nothing else.
16
+ 2. Round 2 — Read only: **one** parallel batch of full-file reads (hits 1–4). Message = those Read calls, nothing else.
17
+ 3. Final answer to the user (first and only chat text).
18
+
19
+ **Do not** Glob, Grep, extra Shell, or status/UI tools (`UpdateCurrentStep`, `TodoWrite`, and similar). Do not add a third tool turn. Do not explore the repo.
20
+
21
+ ## Output contract (default — hybrid)
22
+
23
+ - Do not echo commands or shell output.
24
+ - **Never paste CLI JSON, snippets, or raw stdout into chat** — parse `--json` internally only.
25
+ - One final synthesized response only.
26
+
27
+ **Path links (mandatory for every listed file):**
28
+ - Visible title = `hits[].relativePath` from JSON **exactly** (project-vault-relative; the folder that contains `notes/`, `logs/`, and `plans/`). Example: `plans/archive/0.2.0 and older/doc.md`.
29
+ - **Do not** derive the title from `hits[].file`, path segments, or parent-vault prefixes.
30
+ - **Wrong titles:** `10-Projects/grounder/plans/…`, `%20` in the visible title, or any path above the project vault root.
31
+ - Link href = `hits[].fileUri` from JSON (spaces already percent-encoded).
32
+ - Markdown form: `[hits[i].relativePath](hits[i].fileUri)`
33
+
34
+ **Numbering (mandatory):**
35
+ - Number every listed file, continuing across sections (`1…` in **Read these**, then `5…` in **Also matched`).
36
+ - Do not restart at 1 in **Also matched**. Do not use bullet-only lists without numbers.
37
+
38
+ Structure:
39
+
40
+ 1. **Opening** — one sentence of what the vault says (not a search recap). Never start with “I have searched…”, “I found…”, or similar.
41
+ 2. **Read these** — hits 1–4 only; numbered linked paths + optional role + short bullets under each. You may list a design/archive authority first *among those four*.
42
+ 3. **Also matched** — leftover top-10 **in CLI order** (do not reshuffle); numbered linked paths + one short phrase each (`hits[].alsoMatchedHint` or `matches[].term`). Every line must end with ` — phrase`; bare links are invalid. Omit if empty.
43
+
44
+ Example shape (`##` headings required — not bold-only, not `###`):
45
+
46
+ ```markdown
47
+ Vault notes discuss …
48
+
49
+ ## Read these
50
+ 1. [plans/archive/0.3.0/schema_….md](file:///…/schema_….md) — design authority
51
+ - …
52
+ 2. [plans/…](file:///…) — …
53
+ ## Also matched
54
+ 3. [plans/archive/0.2.0 and older/doc.md](file:///…/0.2.0%20and%20older/doc.md) — one phrase
55
+ 4. [plans/…](file:///…) — one phrase
56
+ ```
57
+
58
+ **Lookup mode:** explicit lookup wording (`exact phrase`, `this line`, `the wording`) **or** the entire input after stripping retrieval wrappers is a bare `"quoted span"` → relay CLI `--markdown` as-is (one search, no `--terms`, no full reads).
59
+
60
+ ## Steps
61
+
62
+ 1. **Query and terms (private)** — classify, then build argv. Classification is silent (no chat text). The CLI always line-scans `query` plus `--terms`. Multi-word queries only match lines that contain that phrase verbatim. Rank is dominated by how many distinct terms hit the **same** file — complementary vault words beat extra English synonyms and source module names.
63
+
64
+ **Classify** after stripping retrieval wrappers (`find`, `search for`, `documents discussing`, `notes about`, `look up`). Then pick one:
65
+
66
+ - **Lookup** — explicit lookup wording (`exact phrase`, `this line`, `the wording`), **or** leftover is a bare `"quoted span"`. `query` = the quoted text, unmodified. Relay CLI `--markdown` as-is; no `--terms`, no full reads.
67
+ - **Request** — leftover still has request syntax (any of): `that mention` / `that discuss` / `that talk about`; leftover starts with `plans that` / `notes that` / `docs that` / `documents that`; trailing scope `both in` / `either in` / `in CLI and`. Do **not** pass that leftover as `query`. `query` = one primary noun or named command from the topic (tight phrase; do not prefix a product name). Extra nouns go in `--terms`.
68
+ - **Topic leftover** — leftover is already a topic noun-phrase. `query` = leftover, same words, same order. Do not paraphrase, shorten, or coin a new phrase.
69
+
70
+ Strip only retrieval wrappers. Do not pass the whole utterance. Do not recycle the query as a `--terms` item.
71
+
72
+ Examples below are a **fictional** domain. Copy the shape; invent tokens for *this* topic. Do not reuse these strings as `--terms`.
73
+
74
+ Example — lookup. User: `find "retry of expired jobs"`
75
+ - class: lookup
76
+ - argv: {{GROUNDER_CLI}} search "retry of expired jobs" --markdown
77
+
78
+ Example — topic leftover. User: `find documents discussing retry of expired jobs`
79
+ - class: topic leftover
80
+ - query: `retry of expired jobs` (leftover after stripping the wrapper)
81
+ - wrong query: `expired job retries` (rewritten)
82
+ - wrong class: request (`documents discussing` is a wrapper)
83
+
84
+ Example — request. User: `find plans that mention updating the charge or refund command, both in worker and API`
85
+ - class: request (`plans that mention` / `both in` stay leftover — not the topic)
86
+ - query: `charge` (one named command from leftover; not `billing charge`)
87
+ - terms: `refund,settlement,invoices.json,RefundPolicy`
88
+ - from leftover: `refund` (the other named command)
89
+ - invented: `settlement` (domain), `invoices.json` (file), `RefundPolicy` (schema) — guess this project's equivalents
90
+ - wrong query: `plans that mention updating the charge or refund command, both in worker and API`
91
+ - wrong query: `charge refund command` (joined nouns)
92
+ - not as terms: `plan`, `command`, `api`
93
+
94
+ **Terms** — invent 3–5 complementary vault tokens for *this* topic, then stop. They need not appear in the utterance:
95
+ 1. Domain noun/phrase from the topic (skip if it would duplicate the query)
96
+ 2. Named command or product verb if the topic has one — never a lone generic verb (`migrate`, `install`)
97
+ 3. One on-disk identifier (filename, config key, schema field) guessed for this project
98
+ 4–5. Only another vault/product token. No paraphrase of the query.
99
+
100
+ **Never as terms** (unless the user asked about code layout): repo paths, `packages/…`, source module / file stems. Lone high-df words (`plan`, `command`, `cli`) flatten rank. Prefer words that appear in vault notes (named commands, config files, domain identifiers).
101
+
102
+ Example — user: `look up why the retry queue must skip expired jobs`
103
+ - class: topic leftover
104
+ - query: `why the retry queue must skip expired jobs`
105
+ - terms: `retry queue,dead letter,jobs.json,RetryPolicy,ttl` (`retry queue` from leftover; others invented)
106
+ - not: `queue-worker`, `process-jobs`, `skip`, `look up`
107
+
108
+ 2. **Search (tool round 1):**
109
+
110
+ ```bash
111
+ {{GROUNDER_CLI}} search "<query>" --terms "<csv>" --context 2 --json
112
+ ```
113
+
114
+ **Always quote `--terms`.** Unquoted CSV with spaces corrupts argv.
115
+
116
+ Parse JSON privately. Take hits in CLI order (`hits[0]` …). For links use `relativePath` + `fileUri`; for Also matched gloss use `alsoMatchedHint` or `matches[].term` — do not quote snippets.
117
+
118
+ **Broaden once (silent)** only if: `totalFileCount` is 0; or ≤2 and every hit is meta (`discussions/search/`, or snippet only quotes the query); or any term in `termHitCounts` has a count of 0 (that term produced no files — it was a bad guess and must be replaced). Otherwise do not re-search.
119
+
120
+ Broaden call (use `--context 3` — weaker matches need more context):
121
+
122
+ ```bash
123
+ {{GROUNDER_CLI}} search "<query>" --terms "<csv-with-replacement>" --context 3 --json
124
+ ```
125
+
126
+ **Broaden strategy (deterministic):** check `termHitCounts` first — if any term has count 0, replace **that term** (not slot-3) with a different product/vault token. If no zero-hit term, drop slot-3 (the on-disk identifier). Keep slots 1–2 (product noun/verb) unchanged. Do not invent new terms or rewrite existing ones.
127
+
128
+ 3. **Read (tool round 2)** — mandatory unless lookup:
129
+ - Full-read CLI hits **1–4** in rank order, **all in one parallel batch**.
130
+ - Read path = `hits[i].file` (absolute). Link title/href = `hits[i].relativePath` + `hits[i].fileUri`.
131
+ - **No skips, no substitutions, no “maybe also hit 5.”** Trust CLI order; judge relevance only when writing the answer.
132
+ - Request vault read permissions as needed.
133
+
134
+ 4. **Answer** — synthesize immediately after reads:
135
+ - Claims only from files you full-read. Unread hits must not grow new facts.
136
+ - **Read these:** useful full-reads (those 1–4 only). Thin/off-topic reads get one blunt numbered line there or move to **Also matched**.
137
+ - **Also matched:** remaining top-10 you did not deep-summarize, **in CLI leftover order**. Copy `alsoMatchedHint` or phrase from `matches[].term`; every line ends with ` — phrase`.
138
+ - Every file line: `[relativePath](fileUri)` from JSON; continue numbering across sections.
139
+ - Prefer design/archive docs when they are the authority among the files you read.
140
+
141
+ Run from the linked project folder or any subdirectory beneath it.
142
+ Run {{GROUNDER_CLI}} with `required_permissions: ["all"]` (vault is outside the workspace).
143
+ Do not write to vault files during search.
144
+ Do not grep the vault yourself — the CLI ranks; you read and synthesize.
@@ -1,4 +1,4 @@
1
- Write a session handoff checkpoint to the Obsidian vault for this project.
1
+ Write a session handoff checkpoint to the markdown vault for this project.
2
2
 
3
3
  Summarize the session into a structured handoff — not a chat transcript.
4
4
  Do not dump tool traces, full conversation, or false starts.
@@ -38,6 +38,10 @@ Optional short title slug (filename + frontmatter):
38
38
 
39
39
  {{GROUNDER_CLI}} handoff --title <slug> "<body>"
40
40
 
41
+ Always include `--topics` with 3-5 comma-separated lowercase keywords that capture the session's core concepts (e.g. `--topics "auth,middleware,jwt,session"`). Pick terms a future search would use — concrete nouns and technical terms, not verbs or filler:
42
+
43
+ {{GROUNDER_CLI}} handoff --topics "keyword1,keyword2,keyword3" "<body>"
44
+
41
45
  For multi-line bodies, prefer a shell heredoc so quoting does not break:
42
46
 
43
47
  ```bash
@@ -48,7 +52,7 @@ EOF
48
52
  )"
49
53
  ```
50
54
 
51
- The vault is outside the workspace — approve shell permissions if Cursor prompts you.
55
+ Run {{GROUNDER_CLI}} with `required_permissions: ["all"]` (vault is outside the workspace).
52
56
 
53
57
  Do not compute vault paths or write files yourself — the CLI handles it.
54
58
  Report the CLI output path from stdout to the user.
@@ -2,7 +2,9 @@ Hydrate this session from the latest vault handoff and repo truth.
2
2
 
3
3
  Read-only — do not write to the vault. Do not invent vault paths.
4
4
 
5
- From the linked project folder or any subdirectory beneath it:
5
+ **Special case: the instruction asks to view existing handoffs, not hydrate** (`list`, `list 3 oldest`, `show handoffs`, etc.) → run `{{GROUNDER_CLI}} handoff list --limit <N> --markdown` (N = count named, else 5; ignore order words like "oldest" — output is always newest-first, never resort or relabel it) and stop — no hydrate, no `AGENTS.md`, no “start work.” Relay the CLI stdout as-is (it already includes the count header; title lines are clickable `[relativePath](fileUri)` links).
6
+
7
+ Otherwise, from the linked project folder or any subdirectory beneath it:
6
8
 
7
9
  1. Get the current handoff (skips empty/unreadable files, same pick as the session-start teaser):
8
10
 
@@ -10,11 +12,11 @@ From the linked project folder or any subdirectory beneath it:
10
12
 
11
13
  2. If empty: tell the user there are no handoffs yet, then read repo `AGENTS.md` only and proceed.
12
14
 
13
- 3. Otherwise, read that file. If the user names a specific session instead, run `{{GROUNDER_CLI}} handoff list --limit 5` and read the path they mean.
15
+ 3. Otherwise, read that file. If the user names a specific session instead: `{{GROUNDER_CLI}} handoff list --limit 5 --markdown` match name/index to the indented absolute path in *this* listing (positional, not a stable id). Miss → once with `--limit 50 --markdown` (*that* listing only). Still miss → tell the user and stop — no guessed hydrate.
14
16
 
15
17
  4. Read repo `AGENTS.md` (project conventions and constraints).
16
18
 
17
19
  5. Summarize briefly what is next (from the handoff `## Next` section when present), then start work.
18
20
 
19
- The vault is outside the workspace — approve shell permissions if Cursor prompts you.
21
+ Run {{GROUNDER_CLI}} with `required_permissions: ["all"]` (vault is outside the workspace).
20
22
  Use free-text after `/grounder-task` as optional focus (session name, index, or task hint).
@@ -1,11 +0,0 @@
1
- export interface RepoInitOptions {
2
- cwd?: string;
3
- yes?: boolean;
4
- force?: boolean;
5
- id?: string;
6
- vault?: string;
7
- homeDir?: string;
8
- }
9
- export declare function runRepoInit(argv: string[]): Promise<number>;
10
- export declare function runRepoInitWithOptions(options?: RepoInitOptions): Promise<number>;
11
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/repo/init.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAajE;AAED,wBAAsB,sBAAsB,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4E3F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/repo/init.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/vault/init.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBlE;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiExF"}