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.
- package/README.md +157 -215
- package/dist/agents/claude.d.ts.map +1 -1
- package/dist/agents/claude.js +3 -3
- package/dist/agents/claude.js.map +1 -1
- package/dist/agents/cursor.d.ts.map +1 -1
- package/dist/agents/cursor.js +3 -3
- package/dist/agents/cursor.js.map +1 -1
- package/dist/agents/hook-runtime.d.ts +3 -3
- package/dist/agents/hook-runtime.js +4 -4
- package/dist/agents/hook-runtime.js.map +1 -1
- package/dist/agents/install-command.d.ts +0 -2
- package/dist/agents/install-command.d.ts.map +1 -1
- package/dist/agents/install-command.js.map +1 -1
- package/dist/cli.js +15 -10
- package/dist/cli.js.map +1 -1
- package/dist/commands/apply-agent-installs.d.ts +2 -2
- package/dist/commands/apply-agent-installs.d.ts.map +1 -1
- package/dist/commands/apply-agent-installs.js +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +120 -50
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/handoff/list.d.ts +27 -9
- package/dist/commands/handoff/list.d.ts.map +1 -1
- package/dist/commands/handoff/list.js +31 -16
- package/dist/commands/handoff/list.js.map +1 -1
- package/dist/commands/handoff.d.ts +2 -0
- package/dist/commands/handoff.d.ts.map +1 -1
- package/dist/commands/handoff.js +10 -1
- package/dist/commands/handoff.js.map +1 -1
- package/dist/commands/link.d.ts +12 -0
- package/dist/commands/link.d.ts.map +1 -0
- package/dist/commands/{repo/init.js → link.js} +35 -27
- package/dist/commands/link.js.map +1 -0
- package/dist/commands/migrate.js +3 -5
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/note/list.d.ts +36 -0
- package/dist/commands/note/list.d.ts.map +1 -0
- package/dist/commands/note/list.js +77 -0
- package/dist/commands/note/list.js.map +1 -0
- package/dist/commands/note.d.ts +2 -0
- package/dist/commands/note.d.ts.map +1 -1
- package/dist/commands/note.js +10 -1
- package/dist/commands/note.js.map +1 -1
- package/dist/commands/output.d.ts +47 -0
- package/dist/commands/output.d.ts.map +1 -0
- package/dist/commands/output.js +63 -0
- package/dist/commands/output.js.map +1 -0
- package/dist/commands/plan/list.d.ts +21 -5
- package/dist/commands/plan/list.d.ts.map +1 -1
- package/dist/commands/plan/list.js +24 -13
- package/dist/commands/plan/list.js.map +1 -1
- package/dist/commands/plan.d.ts +2 -0
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +12 -2
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/require-linked.js +2 -2
- package/dist/commands/require-linked.js.map +1 -1
- package/dist/commands/search.d.ts +23 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +277 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/{vault/init.d.ts → setup.d.ts} +5 -4
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +137 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +39 -29
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/upgrade-banner.d.ts +2 -2
- package/dist/commands/upgrade-banner.js +2 -2
- package/dist/connector/home.d.ts +12 -0
- package/dist/connector/home.d.ts.map +1 -1
- package/dist/connector/home.js +26 -2
- package/dist/connector/home.js.map +1 -1
- package/dist/connector/state.d.ts +4 -13
- package/dist/connector/state.d.ts.map +1 -1
- package/dist/connector/state.js +3 -21
- package/dist/connector/state.js.map +1 -1
- package/dist/connector/vault.d.ts +2 -0
- package/dist/connector/vault.d.ts.map +1 -1
- package/dist/connector/vault.js +6 -1
- package/dist/connector/vault.js.map +1 -1
- package/dist/help.d.ts +3 -3
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +80 -48
- package/dist/help.js.map +1 -1
- package/dist/util/frontmatter.d.ts +9 -7
- package/dist/util/frontmatter.d.ts.map +1 -1
- package/dist/util/frontmatter.js +29 -4
- package/dist/util/frontmatter.js.map +1 -1
- package/dist/util/parse-args.d.ts.map +1 -1
- package/dist/util/parse-args.js +11 -2
- package/dist/util/parse-args.js.map +1 -1
- package/dist/util/path.d.ts +23 -0
- package/dist/util/path.d.ts.map +1 -1
- package/dist/util/path.js +39 -0
- package/dist/util/path.js.map +1 -1
- package/dist/vault/list-handoffs.d.ts +3 -1
- package/dist/vault/list-handoffs.d.ts.map +1 -1
- package/dist/vault/list-handoffs.js +17 -15
- package/dist/vault/list-handoffs.js.map +1 -1
- package/dist/vault/list-markdown.d.ts +8 -0
- package/dist/vault/list-markdown.d.ts.map +1 -0
- package/dist/vault/list-markdown.js +35 -0
- package/dist/vault/list-markdown.js.map +1 -0
- package/dist/vault/list-notes.d.ts +15 -0
- package/dist/vault/list-notes.d.ts.map +1 -0
- package/dist/vault/list-notes.js +34 -0
- package/dist/vault/list-notes.js.map +1 -0
- package/dist/vault/list-plans.d.ts +2 -2
- package/dist/vault/list-plans.d.ts.map +1 -1
- package/dist/vault/list-plans.js +9 -19
- package/dist/vault/list-plans.js.map +1 -1
- package/dist/vault/search.d.ts +55 -0
- package/dist/vault/search.d.ts.map +1 -0
- package/dist/vault/search.js +328 -0
- package/dist/vault/search.js.map +1 -0
- package/dist/vault/write-handoff.d.ts +2 -0
- package/dist/vault/write-handoff.d.ts.map +1 -1
- package/dist/vault/write-handoff.js +5 -0
- package/dist/vault/write-handoff.js.map +1 -1
- package/dist/vault/write-note.d.ts +2 -0
- package/dist/vault/write-note.d.ts.map +1 -1
- package/dist/vault/write-note.js +9 -1
- package/dist/vault/write-note.js.map +1 -1
- package/dist/vault/write-plan.d.ts +4 -0
- package/dist/vault/write-plan.d.ts.map +1 -1
- package/dist/vault/write-plan.js +14 -1
- package/dist/vault/write-plan.js.map +1 -1
- package/package.json +13 -4
- package/templates/agents/claude/commands/grounder-note.md +30 -4
- package/templates/agents/claude/commands/grounder-plan.md +23 -17
- package/templates/agents/claude/commands/grounder-search.md +144 -0
- package/templates/agents/claude/commands/grounder-task-handoff.md +5 -1
- package/templates/agents/claude/commands/grounder-task.md +4 -2
- package/templates/agents/cursor/commands/grounder-note.md +31 -5
- package/templates/agents/cursor/commands/grounder-plan.md +24 -18
- package/templates/agents/cursor/commands/grounder-search.md +144 -0
- package/templates/agents/cursor/commands/grounder-task-handoff.md +6 -2
- package/templates/agents/cursor/commands/grounder-task.md +5 -3
- package/dist/commands/repo/init.d.ts +0 -11
- package/dist/commands/repo/init.d.ts.map +0 -1
- package/dist/commands/repo/init.js.map +0 -1
- package/dist/commands/vault/init.d.ts.map +0 -1
- package/dist/commands/vault/init.js +0 -90
- package/dist/commands/vault/init.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/note/list.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/note.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note.d.ts","sourceRoot":"","sources":["../../src/commands/note.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"note.d.ts","sourceRoot":"","sources":["../../src/commands/note.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B7D;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB9E"}
|
package/dist/commands/note.js
CHANGED
|
@@ -12,12 +12,20 @@ export async function runNote(argv) {
|
|
|
12
12
|
const { positional, flags } = parseArgs(argv);
|
|
13
13
|
const text = positional.join(" ").trim();
|
|
14
14
|
if (!text) {
|
|
15
|
-
process.stderr.write("Usage: grounder note <text
|
|
15
|
+
process.stderr.write("Usage: grounder note <text> [--title <slug>] [--topics <list>]\n");
|
|
16
16
|
return 1;
|
|
17
17
|
}
|
|
18
|
+
const topicsRaw = flagString(flags, "topics");
|
|
19
|
+
const topics = topicsRaw
|
|
20
|
+
? topicsRaw
|
|
21
|
+
.split(",")
|
|
22
|
+
.map((t) => t.trim())
|
|
23
|
+
.filter(Boolean)
|
|
24
|
+
: undefined;
|
|
18
25
|
return runNoteWithOptions({
|
|
19
26
|
text,
|
|
20
27
|
title: flagString(flags, "title"),
|
|
28
|
+
topics,
|
|
21
29
|
});
|
|
22
30
|
}
|
|
23
31
|
export async function runNoteWithOptions(options) {
|
|
@@ -29,6 +37,7 @@ export async function runNoteWithOptions(options) {
|
|
|
29
37
|
const notesDir = resolveNotesDir(linked.home, linked.repo);
|
|
30
38
|
const writtenPath = await writeNote(notesDir, options.text, {
|
|
31
39
|
title: options.title,
|
|
40
|
+
topics: options.topics,
|
|
32
41
|
now: options.now,
|
|
33
42
|
});
|
|
34
43
|
process.stdout.write(`Wrote ${writtenPath}\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note.js","sourceRoot":"","sources":["../../src/commands/note.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"note.js","sourceRoot":"","sources":["../../src/commands/note.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAY3D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAEzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACzF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,SAAS;QACtB,CAAC,CAAC,SAAS;aACN,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,kBAAkB,CAAC;QACxB,IAAI;QACJ,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;QACjC,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAoB;IAC3D,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE;YAC1D,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,WAAW,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Shared checklist/snapshot formatting for `doctor` and `status`. */
|
|
2
|
+
export declare function writeSection(title: string): void;
|
|
3
|
+
/** Append a fix hint (` → cmd`), or empty when none. */
|
|
4
|
+
export declare function fixArrow(fix?: string): string;
|
|
5
|
+
/** Singular/plural labels for vault item list headers (`note`/`notes`, …). */
|
|
6
|
+
export type VaultItemListNoun = {
|
|
7
|
+
singular: string;
|
|
8
|
+
plural: string;
|
|
9
|
+
};
|
|
10
|
+
/** Options for {@link writeVaultItemList} / {@link writeVaultItemListEntries}. */
|
|
11
|
+
export type VaultItemListFormatOptions = {
|
|
12
|
+
/**
|
|
13
|
+
* Agent relay: first line is `[bucketRelativePath](fileUri)` (keeps `.md`);
|
|
14
|
+
* absolute path stays indented beneath for `--path` / Read matching.
|
|
15
|
+
* Requires `titleRootDir`.
|
|
16
|
+
*/
|
|
17
|
+
markdown?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Bucket dir (`notes/` / `logs/` / `plans/`) for titles — nested files show
|
|
20
|
+
* as `subdir/stem` (plain) or `subdir/name.md` (markdown) instead of a
|
|
21
|
+
* colliding bare name. Required when `markdown` is set.
|
|
22
|
+
*/
|
|
23
|
+
titleRootDir?: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Lead line for note/handoff/plan list stdout: truncation signal when
|
|
27
|
+
* `count === limit`, complete inventory when fewer, or empty-dir notice.
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatVaultItemListHeader(count: number, limit: number, noun: VaultItemListNoun): string;
|
|
30
|
+
/**
|
|
31
|
+
* Writes numbered title + absolute-path blocks (blank line between items).
|
|
32
|
+
* Each title line ends with two trailing spaces (a Markdown hard line break)
|
|
33
|
+
* so agents can relay stdout into chat and keep title and path on separate
|
|
34
|
+
* rendered lines.
|
|
35
|
+
*
|
|
36
|
+
* Titles are bucket-relative under `titleRootDir` when set (nested files keep
|
|
37
|
+
* subfolders; no `notes/` / `logs/` / `plans/` prefix). With `markdown: true`,
|
|
38
|
+
* the title line is `[bucketRelativePath](fileUri)` (`.md` kept); plain mode
|
|
39
|
+
* strips the extension.
|
|
40
|
+
*/
|
|
41
|
+
export declare function writeVaultItemListEntries(paths: readonly string[], options?: VaultItemListFormatOptions): void;
|
|
42
|
+
/**
|
|
43
|
+
* Count header + numbered title/path blocks for vault item lists.
|
|
44
|
+
* When `paths` is empty, prints only the empty-dir notice from the header.
|
|
45
|
+
*/
|
|
46
|
+
export declare function writeVaultItemList(paths: readonly string[], limit: number, noun: VaultItemListNoun, options?: VaultItemListFormatOptions): void;
|
|
47
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/commands/output.ts"],"names":[],"mappings":"AAEA,sEAAsE;AAEtE,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,8EAA8E;AAC9E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAMF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,iBAAiB,GACtB,MAAM,CASR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE,0BAA+B,GACvC,IAAI,CAiBN;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,iBAAiB,EACvB,OAAO,GAAE,0BAA+B,GACvC,IAAI,CAGN"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { formatMarkdownFileLink, vaultItemPlainTitle, vaultRelativePath } from "../util/path.js";
|
|
2
|
+
/** Shared checklist/snapshot formatting for `doctor` and `status`. */
|
|
3
|
+
export function writeSection(title) {
|
|
4
|
+
process.stdout.write(`${title}\n`);
|
|
5
|
+
}
|
|
6
|
+
/** Append a fix hint (` → cmd`), or empty when none. */
|
|
7
|
+
export function fixArrow(fix) {
|
|
8
|
+
return fix ? ` → ${fix}` : "";
|
|
9
|
+
}
|
|
10
|
+
function vaultItemNoun(count, noun) {
|
|
11
|
+
return count === 1 ? noun.singular : noun.plural;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Lead line for note/handoff/plan list stdout: truncation signal when
|
|
15
|
+
* `count === limit`, complete inventory when fewer, or empty-dir notice.
|
|
16
|
+
*/
|
|
17
|
+
export function formatVaultItemListHeader(count, limit, noun) {
|
|
18
|
+
if (count === 0) {
|
|
19
|
+
return `No ${noun.plural}.\n`;
|
|
20
|
+
}
|
|
21
|
+
const label = vaultItemNoun(count, noun);
|
|
22
|
+
if (count === limit) {
|
|
23
|
+
return `Most recent ${count} ${label} (there may be more):\n\n`;
|
|
24
|
+
}
|
|
25
|
+
return `All ${count} ${label}:\n\n`;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Writes numbered title + absolute-path blocks (blank line between items).
|
|
29
|
+
* Each title line ends with two trailing spaces (a Markdown hard line break)
|
|
30
|
+
* so agents can relay stdout into chat and keep title and path on separate
|
|
31
|
+
* rendered lines.
|
|
32
|
+
*
|
|
33
|
+
* Titles are bucket-relative under `titleRootDir` when set (nested files keep
|
|
34
|
+
* subfolders; no `notes/` / `logs/` / `plans/` prefix). With `markdown: true`,
|
|
35
|
+
* the title line is `[bucketRelativePath](fileUri)` (`.md` kept); plain mode
|
|
36
|
+
* strips the extension.
|
|
37
|
+
*/
|
|
38
|
+
export function writeVaultItemListEntries(paths, options = {}) {
|
|
39
|
+
const markdown = options.markdown === true;
|
|
40
|
+
const titleRootDir = options.titleRootDir;
|
|
41
|
+
if (markdown && titleRootDir === undefined) {
|
|
42
|
+
throw new Error("titleRootDir is required when markdown is true");
|
|
43
|
+
}
|
|
44
|
+
paths.forEach((filePath, index) => {
|
|
45
|
+
if (index > 0) {
|
|
46
|
+
process.stdout.write("\n");
|
|
47
|
+
}
|
|
48
|
+
const title = markdown
|
|
49
|
+
? formatMarkdownFileLink(vaultRelativePath(titleRootDir, filePath), filePath)
|
|
50
|
+
: vaultItemPlainTitle(filePath, titleRootDir);
|
|
51
|
+
// Two trailing spaces: Markdown hard break when stdout is relayed into chat.
|
|
52
|
+
process.stdout.write(`${index + 1}. ${title} \n ${filePath}\n`);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Count header + numbered title/path blocks for vault item lists.
|
|
57
|
+
* When `paths` is empty, prints only the empty-dir notice from the header.
|
|
58
|
+
*/
|
|
59
|
+
export function writeVaultItemList(paths, limit, noun, options = {}) {
|
|
60
|
+
process.stdout.write(formatVaultItemListHeader(paths.length, limit, noun));
|
|
61
|
+
writeVaultItemListEntries(paths, options);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/commands/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEjG,sEAAsE;AAEtE,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChC,CAAC;AAwBD,SAAS,aAAa,CAAC,KAAa,EAAE,IAAuB;IAC3D,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAa,EACb,KAAa,EACb,IAAuB;IAEvB,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,MAAM,IAAI,CAAC,MAAM,KAAK,CAAC;IAChC,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,eAAe,KAAK,IAAI,KAAK,2BAA2B,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,KAAK,IAAI,KAAK,OAAO,CAAC;AACtC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAwB,EACxB,UAAsC,EAAE;IAExC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1C,IAAI,QAAQ,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QAChC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ;YACpB,CAAC,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,YAAsB,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;YACvF,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,6EAA6E;QAC7E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,SAAS,QAAQ,IAAI,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAwB,EACxB,KAAa,EACb,IAAuB,EACvB,UAAsC,EAAE;IAExC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3E,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -2,21 +2,37 @@
|
|
|
2
2
|
export interface PlanListOptions {
|
|
3
3
|
/** Directory used to find the linked repo (default: `process.cwd()`). */
|
|
4
4
|
cwd?: string;
|
|
5
|
-
/** Max
|
|
5
|
+
/** Max plans to print, newest first (default: 5). */
|
|
6
6
|
limit?: number;
|
|
7
|
+
/**
|
|
8
|
+
* Agent relay: `[bucketRelativePath](fileUri)` on the title line (default:
|
|
9
|
+
* plain bucket-relative stem path). Absolute path stays indented beneath
|
|
10
|
+
* either way.
|
|
11
|
+
*/
|
|
12
|
+
markdown?: boolean;
|
|
7
13
|
/** Override home dir / `GROUNDER_HOME` (tests). */
|
|
8
14
|
homeDir?: string;
|
|
9
15
|
}
|
|
10
16
|
/**
|
|
11
|
-
* CLI entry for `grounder plan list [--limit <n>]`.
|
|
17
|
+
* CLI entry for `grounder plan list [--limit <n>] [--markdown]`.
|
|
12
18
|
* `--limit` must be a positive integer when provided.
|
|
13
19
|
* @returns Exit code (`0` on success, `1` on usage or config errors).
|
|
14
20
|
*/
|
|
15
21
|
export declare function runPlanList(argv: string[]): Promise<number>;
|
|
16
22
|
/**
|
|
17
|
-
* Resolves the linked project, lists recent
|
|
18
|
-
* Prints
|
|
19
|
-
*
|
|
23
|
+
* Resolves the linked project, lists recent plans under `plans/` recursively
|
|
24
|
+
* (newest first). Prints a count header (blank line after when non-empty), then
|
|
25
|
+
* each plan as a numbered two-line block — `N. ` + bucket-relative stem path
|
|
26
|
+
* (nested files include subfolders), then the indented absolute path —
|
|
27
|
+
* separated by a blank line. With `markdown: true`, the title line is
|
|
28
|
+
* `[bucketRelativePath](fileUri)` under `plans/` (`.md` kept; no `plans/`
|
|
29
|
+
* prefix). The title line ends with two trailing spaces (a Markdown hard line
|
|
30
|
+
* break) so agents can relay stdout into chat and keep title and path on
|
|
31
|
+
* separate rendered lines. When `plans/` is empty, prints `No plans.` only. The
|
|
32
|
+
* number is positional within this listing only (not a stable identifier — a
|
|
33
|
+
* later `plan list` call may renumber if plans change) and exists purely so a
|
|
34
|
+
* human or agent can refer to "plan 2" in the same conversation without
|
|
35
|
+
* retyping the path. Same vault/link prerequisites as `grounder plan`.
|
|
20
36
|
* @returns Exit code (`0` on success, `1` when vault/link is missing).
|
|
21
37
|
*/
|
|
22
38
|
export declare function runPlanListWithOptions(options?: PlanListOptions): Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/plan/list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/plan/list.ts"],"names":[],"mappings":"AAUA,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AASD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgCjE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB3F"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { withHomeDir } from "../../connector/home.js";
|
|
2
2
|
import { resolvePlansDir } from "../../connector/vault.js";
|
|
3
3
|
import { helpExitCode } from "../../help.js";
|
|
4
|
-
import { parseArgs } from "../../util/parse-args.js";
|
|
4
|
+
import { flagBool, parseArgs } from "../../util/parse-args.js";
|
|
5
5
|
import { listPlans } from "../../vault/list-plans.js";
|
|
6
|
+
import { writeVaultItemList } from "../output.js";
|
|
6
7
|
import { requireLinkedProject } from "../require-linked.js";
|
|
7
8
|
const DEFAULT_LIMIT = 5;
|
|
8
|
-
const USAGE = "Usage: grounder plan list [--limit <n>]\n";
|
|
9
|
+
const USAGE = "Usage: grounder plan list [--limit <n>] [--markdown]\n";
|
|
9
10
|
function usageError() {
|
|
10
11
|
process.stderr.write(USAGE);
|
|
11
12
|
return 1;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
|
-
* CLI entry for `grounder plan list [--limit <n>]`.
|
|
15
|
+
* CLI entry for `grounder plan list [--limit <n>] [--markdown]`.
|
|
15
16
|
* `--limit` must be a positive integer when provided.
|
|
16
17
|
* @returns Exit code (`0` on success, `1` on usage or config errors).
|
|
17
18
|
*/
|
|
@@ -25,7 +26,7 @@ export async function runPlanList(argv) {
|
|
|
25
26
|
return usageError();
|
|
26
27
|
}
|
|
27
28
|
for (const key of flags.keys()) {
|
|
28
|
-
if (key !== "limit") {
|
|
29
|
+
if (key !== "limit" && key !== "markdown") {
|
|
29
30
|
return usageError();
|
|
30
31
|
}
|
|
31
32
|
}
|
|
@@ -42,12 +43,22 @@ export async function runPlanList(argv) {
|
|
|
42
43
|
}
|
|
43
44
|
limit = parsed;
|
|
44
45
|
}
|
|
45
|
-
return runPlanListWithOptions({ limit });
|
|
46
|
+
return runPlanListWithOptions({ limit, markdown: flagBool(flags, "markdown") });
|
|
46
47
|
}
|
|
47
48
|
/**
|
|
48
|
-
* Resolves the linked project, lists recent
|
|
49
|
-
* Prints
|
|
50
|
-
*
|
|
49
|
+
* Resolves the linked project, lists recent plans under `plans/` recursively
|
|
50
|
+
* (newest first). Prints a count header (blank line after when non-empty), then
|
|
51
|
+
* each plan as a numbered two-line block — `N. ` + bucket-relative stem path
|
|
52
|
+
* (nested files include subfolders), then the indented absolute path —
|
|
53
|
+
* separated by a blank line. With `markdown: true`, the title line is
|
|
54
|
+
* `[bucketRelativePath](fileUri)` under `plans/` (`.md` kept; no `plans/`
|
|
55
|
+
* prefix). The title line ends with two trailing spaces (a Markdown hard line
|
|
56
|
+
* break) so agents can relay stdout into chat and keep title and path on
|
|
57
|
+
* separate rendered lines. When `plans/` is empty, prints `No plans.` only. The
|
|
58
|
+
* number is positional within this listing only (not a stable identifier — a
|
|
59
|
+
* later `plan list` call may renumber if plans change) and exists purely so a
|
|
60
|
+
* human or agent can refer to "plan 2" in the same conversation without
|
|
61
|
+
* retyping the path. Same vault/link prerequisites as `grounder plan`.
|
|
51
62
|
* @returns Exit code (`0` on success, `1` when vault/link is missing).
|
|
52
63
|
*/
|
|
53
64
|
export async function runPlanListWithOptions(options = {}) {
|
|
@@ -56,13 +67,13 @@ export async function runPlanListWithOptions(options = {}) {
|
|
|
56
67
|
if (!linked) {
|
|
57
68
|
return 1;
|
|
58
69
|
}
|
|
70
|
+
const limit = options.limit ?? DEFAULT_LIMIT;
|
|
59
71
|
const plansDir = resolvePlansDir(linked.home, linked.repo);
|
|
60
|
-
const paths = await listPlans(plansDir, {
|
|
61
|
-
|
|
72
|
+
const paths = await listPlans(plansDir, { limit });
|
|
73
|
+
writeVaultItemList(paths, limit, { singular: "plan", plural: "plans" }, {
|
|
74
|
+
markdown: options.markdown === true,
|
|
75
|
+
titleRootDir: plansDir,
|
|
62
76
|
});
|
|
63
|
-
for (const filePath of paths) {
|
|
64
|
-
process.stdout.write(`${filePath}\n`);
|
|
65
|
-
}
|
|
66
77
|
return 0;
|
|
67
78
|
});
|
|
68
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/plan/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/plan/list.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/plan.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export interface PlanOptions {
|
|
|
13
13
|
planPath?: string;
|
|
14
14
|
/** When true, overwrite an existing plan (preserving original `created`). */
|
|
15
15
|
force?: boolean;
|
|
16
|
+
/** Topic keywords for search (`--topics "auth,jwt,middleware"`). */
|
|
17
|
+
topics?: string[];
|
|
16
18
|
/** Override home dir / `GROUNDER_HOME` (tests). */
|
|
17
19
|
homeDir?: string;
|
|
18
20
|
/** Fixed clock for deterministic `created` / `updated` (tests). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAeA,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAeA,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6B7D;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA4C9E"}
|
package/dist/commands/plan.js
CHANGED
|
@@ -8,8 +8,8 @@ import { isPathInside, isRealPathInside, resolveUserPath } from "../util/path.js
|
|
|
8
8
|
import { sanitizePlanName } from "../util/plan-name.js";
|
|
9
9
|
import { updatePlanAtPath, writePlan } from "../vault/write-plan.js";
|
|
10
10
|
import { requireLinkedProject } from "./require-linked.js";
|
|
11
|
-
const USAGE = "Usage: grounder plan <text> --title <name> [--force]\n" +
|
|
12
|
-
" or: grounder plan <text> --path <file>";
|
|
11
|
+
const USAGE = "Usage: grounder plan <text> --title <name> [--force] [--topics <list>]\n" +
|
|
12
|
+
" or: grounder plan <text> --path <file> [--topics <list>]";
|
|
13
13
|
/**
|
|
14
14
|
* CLI entry for `grounder plan <text> (--title <name> [--force] | --path <file>)`.
|
|
15
15
|
* @returns Exit code (`0` on success, `1` on usage or config errors).
|
|
@@ -25,11 +25,19 @@ export async function runPlan(argv) {
|
|
|
25
25
|
process.stderr.write(`${USAGE}\n`);
|
|
26
26
|
return 1;
|
|
27
27
|
}
|
|
28
|
+
const topicsRaw = flagString(flags, "topics");
|
|
29
|
+
const topics = topicsRaw
|
|
30
|
+
? topicsRaw
|
|
31
|
+
.split(",")
|
|
32
|
+
.map((t) => t.trim())
|
|
33
|
+
.filter(Boolean)
|
|
34
|
+
: undefined;
|
|
28
35
|
return runPlanWithOptions({
|
|
29
36
|
text,
|
|
30
37
|
title: flagString(flags, "title"),
|
|
31
38
|
planPath: flagString(flags, "path"),
|
|
32
39
|
force: flagBool(flags, "force"),
|
|
40
|
+
topics,
|
|
33
41
|
});
|
|
34
42
|
}
|
|
35
43
|
/**
|
|
@@ -79,6 +87,7 @@ async function writeByTitle(plansDir, projectId, name, options) {
|
|
|
79
87
|
const result = await writePlan(plansDir, name, options.text, {
|
|
80
88
|
projectId,
|
|
81
89
|
force: options.force,
|
|
90
|
+
topics: options.topics,
|
|
82
91
|
now: options.now,
|
|
83
92
|
});
|
|
84
93
|
if (result.status === "exists") {
|
|
@@ -113,6 +122,7 @@ async function updateByPath(plansDir, projectId, options) {
|
|
|
113
122
|
}
|
|
114
123
|
const result = await updatePlanAtPath(filePath, options.text, {
|
|
115
124
|
projectId,
|
|
125
|
+
topics: options.topics,
|
|
116
126
|
now: options.now,
|
|
117
127
|
});
|
|
118
128
|
process.stdout.write(`Updated ${result.path}\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,KAAK,GACT,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,10 @@ export async function requireLinkedProject(cwd) {
|
|
|
7
7
|
const result = await resolveLinkedProject(cwd);
|
|
8
8
|
if (!result.ok) {
|
|
9
9
|
if (result.error === "no-vault") {
|
|
10
|
-
process.stderr.write("No vault configured. Run: grounder
|
|
10
|
+
process.stderr.write("No vault configured. Run: grounder setup <path>\n");
|
|
11
11
|
}
|
|
12
12
|
else {
|
|
13
|
-
process.stderr.write("Folder not linked. Run: grounder
|
|
13
|
+
process.stderr.write("Folder not linked. Run: grounder link\n");
|
|
14
14
|
}
|
|
15
15
|
return null;
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-linked.js","sourceRoot":"","sources":["../../src/commands/require-linked.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAElF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAW;IACpD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"require-linked.js","sourceRoot":"","sources":["../../src/commands/require-linked.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAElF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAW;IACpD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Options for {@link runSearchWithOptions} (CLI parsing and tests). */
|
|
2
|
+
export interface SearchCommandOptions {
|
|
3
|
+
cwd?: string;
|
|
4
|
+
homeDir?: string;
|
|
5
|
+
query: string;
|
|
6
|
+
terms?: string[];
|
|
7
|
+
limit?: number;
|
|
8
|
+
maxHits?: number;
|
|
9
|
+
context?: number;
|
|
10
|
+
since?: Date;
|
|
11
|
+
markdown?: boolean;
|
|
12
|
+
json?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* CLI entry for `grounder search <query>`.
|
|
16
|
+
* @returns Exit code (`0` on success, `1` on usage or config errors).
|
|
17
|
+
*/
|
|
18
|
+
export declare function runSearch(argv: string[]): Promise<number>;
|
|
19
|
+
/**
|
|
20
|
+
* Resolves the linked project, searches its vault root, prints formatted hits.
|
|
21
|
+
*/
|
|
22
|
+
export declare function runSearchWithOptions(options: SearchCommandOptions): Promise<number>;
|
|
23
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAUA,wEAAwE;AACxE,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAyMD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuE/D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkCzF"}
|