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
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Stderr notice when the running Grounder version and the version stored for
|
|
3
3
|
* this machine's configuration disagree (ordered by version when both look like
|
|
4
|
-
* x.y.z). Prints on ordinary commands until migrate or
|
|
4
|
+
* x.y.z). Prints on ordinary commands until migrate or setup updates state.
|
|
5
5
|
* Silent if state is missing or broken. Skip for `handoff peek` (session hooks),
|
|
6
|
-
* `migrate`, and `
|
|
6
|
+
* `migrate`, and `setup` (those update state themselves).
|
|
7
7
|
*/
|
|
8
8
|
export declare function notifyUpgradeIfNeeded(homeDir?: string): Promise<void>;
|
|
9
9
|
//# sourceMappingURL=upgrade-banner.d.ts.map
|
|
@@ -4,9 +4,9 @@ import { packageVersionNotice } from "./package-version-notice.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Stderr notice when the running Grounder version and the version stored for
|
|
6
6
|
* this machine's configuration disagree (ordered by version when both look like
|
|
7
|
-
* x.y.z). Prints on ordinary commands until migrate or
|
|
7
|
+
* x.y.z). Prints on ordinary commands until migrate or setup updates state.
|
|
8
8
|
* Silent if state is missing or broken. Skip for `handoff peek` (session hooks),
|
|
9
|
-
* `migrate`, and `
|
|
9
|
+
* `migrate`, and `setup` (those update state themselves).
|
|
10
10
|
*/
|
|
11
11
|
export async function notifyUpgradeIfNeeded(homeDir) {
|
|
12
12
|
try {
|
package/dist/connector/home.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export interface HomeConfig {
|
|
2
2
|
vaultRoot: string;
|
|
3
3
|
}
|
|
4
|
+
export declare class InvalidHomeConfigError extends Error {
|
|
5
|
+
readonly configPath: string;
|
|
6
|
+
readonly reason: string;
|
|
7
|
+
constructor(configPath: string, reason: string);
|
|
8
|
+
}
|
|
4
9
|
export declare function resolveHomeDir(override?: string): string;
|
|
5
10
|
export declare function homeConfigPath(homeDir?: string): string;
|
|
6
11
|
/**
|
|
@@ -8,6 +13,13 @@ export declare function homeConfigPath(homeDir?: string): string;
|
|
|
8
13
|
* Sets `GROUNDER_HOME` for the call, then restores it. No-op if `homeDir` is unset.
|
|
9
14
|
*/
|
|
10
15
|
export declare function withHomeDir<T>(homeDir: string | undefined, fn: () => Promise<T>): Promise<T>;
|
|
16
|
+
/**
|
|
17
|
+
* Read `~/.grounder/config.json`. Missing file → `null`. Corrupt/invalid
|
|
18
|
+
* contents throw with the file path and an actionable fix baked in: unlike
|
|
19
|
+
* `state.json`, a broken home config carries no data worth preserving, so
|
|
20
|
+
* `grounder setup <path>` can safely recreate it (see `runSetup`,
|
|
21
|
+
* which treats this error as "no existing home").
|
|
22
|
+
*/
|
|
11
23
|
export declare function readHomeConfig(): Promise<HomeConfig | null>;
|
|
12
24
|
export declare function writeHomeConfig(config: HomeConfig): Promise<void>;
|
|
13
25
|
//# sourceMappingURL=home.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home.d.ts","sourceRoot":"","sources":["../../src/connector/home.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"home.d.ts","sourceRoot":"","sources":["../../src/connector/home.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAQ/C;AAED,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAkBjE;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvE"}
|
package/dist/connector/home.js
CHANGED
|
@@ -2,6 +2,16 @@ import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { fileExists } from "../util/fs.js";
|
|
5
|
+
export class InvalidHomeConfigError extends Error {
|
|
6
|
+
configPath;
|
|
7
|
+
reason;
|
|
8
|
+
constructor(configPath, reason) {
|
|
9
|
+
super(`Invalid home config at ${configPath}: ${reason}. Run: grounder setup <path> to repair (recreates this file).`);
|
|
10
|
+
this.name = "InvalidHomeConfigError";
|
|
11
|
+
this.configPath = configPath;
|
|
12
|
+
this.reason = reason;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
5
15
|
export function resolveHomeDir(override) {
|
|
6
16
|
if (override) {
|
|
7
17
|
return override;
|
|
@@ -33,14 +43,28 @@ export async function withHomeDir(homeDir, fn) {
|
|
|
33
43
|
}
|
|
34
44
|
}
|
|
35
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Read `~/.grounder/config.json`. Missing file → `null`. Corrupt/invalid
|
|
48
|
+
* contents throw with the file path and an actionable fix baked in: unlike
|
|
49
|
+
* `state.json`, a broken home config carries no data worth preserving, so
|
|
50
|
+
* `grounder setup <path>` can safely recreate it (see `runSetup`,
|
|
51
|
+
* which treats this error as "no existing home").
|
|
52
|
+
*/
|
|
36
53
|
export async function readHomeConfig() {
|
|
37
54
|
const configPath = homeConfigPath();
|
|
38
55
|
if (!(await fileExists(configPath))) {
|
|
39
56
|
return null;
|
|
40
57
|
}
|
|
41
|
-
|
|
58
|
+
let raw;
|
|
59
|
+
try {
|
|
60
|
+
raw = JSON.parse(await readFile(configPath, "utf8"));
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
64
|
+
throw new InvalidHomeConfigError(configPath, detail);
|
|
65
|
+
}
|
|
42
66
|
if (typeof raw.vaultRoot !== "string" || raw.vaultRoot.length === 0) {
|
|
43
|
-
throw new
|
|
67
|
+
throw new InvalidHomeConfigError(configPath, "missing vaultRoot");
|
|
44
68
|
}
|
|
45
69
|
return { vaultRoot: raw.vaultRoot };
|
|
46
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../src/connector/home.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C,MAAM,UAAU,cAAc,CAAC,QAAiB;IAC9C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B,EAC3B,EAAoB;IAEpB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,QAAQ,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../src/connector/home.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,6 @@ export interface AgentSchemaSupport {
|
|
|
7
7
|
}
|
|
8
8
|
/** Per-file install record for chezmoi-style drift detection on command markdown. */
|
|
9
9
|
export interface AgentFileState {
|
|
10
|
-
schema: number;
|
|
11
10
|
/** `sha256:…` of the exact bytes Grounder last wrote (see `hashContent`). */
|
|
12
11
|
hash?: string;
|
|
13
12
|
}
|
|
@@ -17,7 +16,7 @@ export interface AgentState {
|
|
|
17
16
|
files: Record<string, AgentFileState>;
|
|
18
17
|
}
|
|
19
18
|
export interface GrounderState {
|
|
20
|
-
/** Package version that last wrote install artifacts (via
|
|
19
|
+
/** Package version that last wrote install artifacts (via setup / migrate). */
|
|
21
20
|
grounderVersion: string;
|
|
22
21
|
agents: Record<string, AgentState>;
|
|
23
22
|
}
|
|
@@ -67,19 +66,11 @@ export declare function recordAgentInstall(opts: RecordAgentInstallOptions): Pro
|
|
|
67
66
|
*
|
|
68
67
|
* Session hooks: if an agent has no `hooksSchema` in state, that means hooks
|
|
69
68
|
* were never turned on for them. That is not "behind" — otherwise peek would
|
|
70
|
-
* keep telling people who never enabled hooks to run migrate.
|
|
71
|
-
*
|
|
69
|
+
* keep telling people who never enabled hooks to run migrate. Doctor verifies
|
|
70
|
+
* on-disk command/hook drift via migrate dry-run, and also warns when files
|
|
71
|
+
* already match but these ledger schema numbers still lag.
|
|
72
72
|
*/
|
|
73
73
|
export declare function isInstallSchemaStale(state: GrounderState | null, agents: ReadonlyArray<AgentSchemaSupport>): boolean;
|
|
74
|
-
/**
|
|
75
|
-
* True when session-hook install info is behind what this Grounder expects.
|
|
76
|
-
* Call only after you already know Grounder hooks exist on disk (doctor).
|
|
77
|
-
*
|
|
78
|
-
* If state never stored a hooks version, treat that as version 0 so older
|
|
79
|
-
* hook installs still get a migrate hint. Peek/status must not use this —
|
|
80
|
-
* use {@link isInstallSchemaStale}, which leaves "hooks never enabled" alone.
|
|
81
|
-
*/
|
|
82
|
-
export declare function isHooksSchemaBehind(recorded: number | undefined, expected: number | undefined): boolean;
|
|
83
74
|
/**
|
|
84
75
|
* True when state says hooks are newer than this Grounder understands.
|
|
85
76
|
* No stored hooks version is not "newer".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/connector/state.ts"],"names":[],"mappings":"AAMA,gEAAgE;AAChE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qFAAqF;AACrF,MAAM,WAAW,cAAc;IAC7B,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/connector/state.ts"],"names":[],"mappings":"AAMA,gEAAgE;AAChE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qFAAqF;AACrF,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACpC;AAED,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAuDvF;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9F;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3F;AAED,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAExF;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC,CA0BhG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,GAAG,IAAI,EAC3B,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,GACxC,OAAO,CAsBT;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAKT;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,GAAG,IAAI,EAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CAEpB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,aAAa,GAAG,IAAI,EAC3B,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,GACxC,IAAI,CA2BN"}
|
package/dist/connector/state.js
CHANGED
|
@@ -107,8 +107,9 @@ export async function recordAgentInstall(opts) {
|
|
|
107
107
|
*
|
|
108
108
|
* Session hooks: if an agent has no `hooksSchema` in state, that means hooks
|
|
109
109
|
* were never turned on for them. That is not "behind" — otherwise peek would
|
|
110
|
-
* keep telling people who never enabled hooks to run migrate.
|
|
111
|
-
*
|
|
110
|
+
* keep telling people who never enabled hooks to run migrate. Doctor verifies
|
|
111
|
+
* on-disk command/hook drift via migrate dry-run, and also warns when files
|
|
112
|
+
* already match but these ledger schema numbers still lag.
|
|
112
113
|
*/
|
|
113
114
|
export function isInstallSchemaStale(state, agents) {
|
|
114
115
|
if (!state) {
|
|
@@ -130,20 +131,6 @@ export function isInstallSchemaStale(state, agents) {
|
|
|
130
131
|
}
|
|
131
132
|
return false;
|
|
132
133
|
}
|
|
133
|
-
/**
|
|
134
|
-
* True when session-hook install info is behind what this Grounder expects.
|
|
135
|
-
* Call only after you already know Grounder hooks exist on disk (doctor).
|
|
136
|
-
*
|
|
137
|
-
* If state never stored a hooks version, treat that as version 0 so older
|
|
138
|
-
* hook installs still get a migrate hint. Peek/status must not use this —
|
|
139
|
-
* use {@link isInstallSchemaStale}, which leaves "hooks never enabled" alone.
|
|
140
|
-
*/
|
|
141
|
-
export function isHooksSchemaBehind(recorded, expected) {
|
|
142
|
-
if (expected === undefined) {
|
|
143
|
-
return false;
|
|
144
|
-
}
|
|
145
|
-
return (recorded ?? 0) < expected;
|
|
146
|
-
}
|
|
147
134
|
/**
|
|
148
135
|
* True when state says hooks are newer than this Grounder understands.
|
|
149
136
|
* No stored hooks version is not "newer".
|
|
@@ -179,11 +166,6 @@ export function assertAgentSchemasSupported(state, agents) {
|
|
|
179
166
|
recorded.hooksSchema > agent.hooksSchema) {
|
|
180
167
|
throw new UnsupportedSchemaError(`${agent.name} hooks schema ${recorded.hooksSchema} is newer than this grounder supports (${agent.hooksSchema}). Upgrade grounder.`);
|
|
181
168
|
}
|
|
182
|
-
for (const [filePath, file] of Object.entries(recorded.files)) {
|
|
183
|
-
if (typeof file?.schema === "number" && file.schema > agent.commandsSchema) {
|
|
184
|
-
throw new UnsupportedSchemaError(`${agent.name} file ${filePath} schema ${file.schema} is newer than this grounder supports (${agent.commandsSchema}). Upgrade grounder.`);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
169
|
}
|
|
188
170
|
}
|
|
189
171
|
//# sourceMappingURL=state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/connector/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/connector/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ import type { RepoConfig } from "./repo.js";
|
|
|
7
7
|
export declare function resolveVaultRoot(home: HomeConfig, override?: string): string;
|
|
8
8
|
/** Project notes directory under the effective vault root. */
|
|
9
9
|
export declare function resolveNotesDir(home: HomeConfig, repo: RepoConfig, vaultOverride?: string): string;
|
|
10
|
+
/** Project vault root directory under the effective vault root. */
|
|
11
|
+
export declare function resolveProjectVaultRoot(home: HomeConfig, repo: RepoConfig, vaultOverride?: string): string;
|
|
10
12
|
/** Project logs (handoff) directory under the effective vault root. */
|
|
11
13
|
export declare function resolveLogsDir(home: HomeConfig, repo: RepoConfig, vaultOverride?: string): string;
|
|
12
14
|
/** Project plans directory under the effective vault root. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../src/connector/vault.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ5E;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAGR;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAGjG;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAGR"}
|
|
1
|
+
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../src/connector/vault.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ5E;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAGR;AAED,mEAAmE;AACnE,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAGR;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAGjG;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAGR"}
|
package/dist/connector/vault.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Config-aware vault resolution: effective vault root and artifact paths from connector state.
|
|
2
2
|
import { resolveUserPath } from "../util/path.js";
|
|
3
|
-
import { logsDir, notesDir, plansDir } from "../vault/layout.js";
|
|
3
|
+
import { logsDir, notesDir, plansDir, projectDir } from "../vault/layout.js";
|
|
4
4
|
/**
|
|
5
5
|
* Effective vault root, in order: explicit `override`, `GROUNDER_VAULT`, then home config.
|
|
6
6
|
* Expands a leading `~` so vault paths like `~/Documents/…` resolve to the user home.
|
|
@@ -19,6 +19,11 @@ export function resolveNotesDir(home, repo, vaultOverride) {
|
|
|
19
19
|
const vaultRoot = resolveVaultRoot(home, vaultOverride);
|
|
20
20
|
return notesDir(vaultRoot, repo.projectId);
|
|
21
21
|
}
|
|
22
|
+
/** Project vault root directory under the effective vault root. */
|
|
23
|
+
export function resolveProjectVaultRoot(home, repo, vaultOverride) {
|
|
24
|
+
const vaultRoot = resolveVaultRoot(home, vaultOverride);
|
|
25
|
+
return projectDir(vaultRoot, repo.projectId);
|
|
26
|
+
}
|
|
22
27
|
/** Project logs (handoff) directory under the effective vault root. */
|
|
23
28
|
export function resolveLogsDir(home, repo, vaultOverride) {
|
|
24
29
|
const vaultRoot = resolveVaultRoot(home, vaultOverride);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/connector/vault.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAE/F,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/connector/vault.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAE/F,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAI7E;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAgB,EAAE,QAAiB;IAClE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAC/B,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,eAAe,CAC7B,IAAgB,EAChB,IAAgB,EAChB,aAAsB;IAEtB,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,uBAAuB,CACrC,IAAgB,EAChB,IAAgB,EAChB,aAAsB;IAEtB,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACxD,OAAO,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,cAAc,CAAC,IAAgB,EAAE,IAAgB,EAAE,aAAsB;IACvF,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACxD,OAAO,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,eAAe,CAC7B,IAAgB,EAChB,IAAgB,EAChB,aAAsB;IAEtB,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/help.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Help tiers and command metadata for the grounder CLI. */
|
|
2
|
-
export type HelpGroup = "Setup" | "Write" | "Paths" | "Maintain" | "Advanced";
|
|
2
|
+
export type HelpGroup = "Setup" | "Write" | "Retrieve" | "Paths" | "Maintain" | "Advanced";
|
|
3
3
|
export interface CommandMeta {
|
|
4
|
-
/** Canonical id (`note`, `handoff list`, `
|
|
4
|
+
/** Canonical id (`note`, `handoff list`, `setup`, …). */
|
|
5
5
|
id: string;
|
|
6
6
|
group: HelpGroup;
|
|
7
7
|
/** One-line summary for synopsis / full command lists. */
|
|
@@ -24,7 +24,7 @@ export declare const COMMANDS: readonly CommandMeta[];
|
|
|
24
24
|
* Command ids the CLI dispatches (including parent topics). Keep in sync with
|
|
25
25
|
* `cli.ts` / `helpExitCode(...)` call sites — the invariant test locks this.
|
|
26
26
|
*/
|
|
27
|
-
export declare const DISPATCHED_COMMAND_IDS: readonly ["
|
|
27
|
+
export declare const DISPATCHED_COMMAND_IDS: readonly ["setup", "link", "note", "note list", "handoff", "handoff list", "handoff peek", "plan", "plan list", "search", "path", "path notes", "path logs", "path plans", "status", "doctor", "migrate", "help"];
|
|
28
28
|
/** True when argv contains an exact `-h` or `--help` token. */
|
|
29
29
|
export declare function wantsHelp(argv: string[]): boolean;
|
|
30
30
|
/**
|
package/dist/help.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAE3F,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAaD;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,WAAW,EAqN1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,mNAmBzB,CAAC;AAIX,+DAA+D;AAC/D,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAEjD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,SAAS,CAY9E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CASxD;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAMrD;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM7E;AAkDD,8EAA8E;AAC9E,wBAAgB,aAAa,IAAI,IAAI,CAepC;AAED,sFAAsF;AACtF,wBAAgB,aAAa,IAAI,IAAI,CAepC;AAED,2DAA2D;AAC3D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAe9C"}
|
package/dist/help.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/** Help tiers and command metadata for the grounder CLI. */
|
|
2
|
-
const GROUP_ORDER = ["Setup", "Write", "Paths", "Maintain", "Advanced"];
|
|
2
|
+
const GROUP_ORDER = ["Setup", "Write", "Retrieve", "Paths", "Maintain", "Advanced"];
|
|
3
3
|
const QUICKSTART = `Quickstart:
|
|
4
|
-
grounder
|
|
5
|
-
grounder
|
|
4
|
+
grounder setup <path-to-your-vault>
|
|
5
|
+
grounder link
|
|
6
6
|
grounder note "my first note"
|
|
7
7
|
grounder handoff $'# Handoff\\n\\n## Next\\n1. …'
|
|
8
8
|
grounder handoff list
|
|
@@ -14,97 +14,127 @@ const QUICKSTART = `Quickstart:
|
|
|
14
14
|
*/
|
|
15
15
|
export const COMMANDS = [
|
|
16
16
|
{
|
|
17
|
-
id: "
|
|
17
|
+
id: "setup",
|
|
18
18
|
group: "Setup",
|
|
19
|
-
summary: "
|
|
20
|
-
listUsage: "
|
|
21
|
-
usage: "grounder
|
|
22
|
-
list: false,
|
|
23
|
-
flags: `Subcommands:
|
|
24
|
-
vault init Initialize vault + home config (once per machine)`,
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
id: "vault init",
|
|
28
|
-
group: "Setup",
|
|
29
|
-
summary: "Initialize vault + home config (once per machine)",
|
|
30
|
-
listUsage: "vault init <path>",
|
|
31
|
-
usage: "grounder vault init <path> [--yes] [--force] [--agent <id>] [--hooks]",
|
|
19
|
+
summary: "Connect to a markdown vault (once per machine)",
|
|
20
|
+
listUsage: "setup <path>",
|
|
21
|
+
usage: "grounder setup <path> [--yes] [--force] [--agent <id>] [--hooks] [--dry-run]",
|
|
32
22
|
flags: `Flags:
|
|
33
23
|
--yes Skip confirmation prompts
|
|
34
24
|
--force Overwrite existing home config / generated files
|
|
35
25
|
--agent <id> Install for a specific agent (repeatable; default: auto-detect)
|
|
36
26
|
Supported: cursor, claude
|
|
37
|
-
--hooks Also install session-start teaser hooks
|
|
27
|
+
--hooks Also install session-start teaser hooks
|
|
28
|
+
--dry-run Preview without writing`,
|
|
38
29
|
},
|
|
39
30
|
{
|
|
40
|
-
id: "
|
|
31
|
+
id: "link",
|
|
41
32
|
group: "Setup",
|
|
42
|
-
summary: "
|
|
43
|
-
listUsage: "
|
|
44
|
-
usage: "grounder
|
|
33
|
+
summary: "Link this project inside the markdown vault (once per project)",
|
|
34
|
+
listUsage: "link",
|
|
35
|
+
usage: "grounder link [--yes] [--force] [--id <id>] [--vault <path>] [--dry-run]",
|
|
45
36
|
flags: `Flags:
|
|
46
37
|
--yes Skip confirmation prompts
|
|
47
38
|
--force Overwrite an existing link marker
|
|
48
39
|
--id <id> Override detected project id
|
|
49
|
-
--vault <path> Override home vault root for this run
|
|
40
|
+
--vault <path> Override home vault root for this run
|
|
41
|
+
--dry-run Preview without writing`,
|
|
50
42
|
},
|
|
51
43
|
{
|
|
52
44
|
id: "note",
|
|
53
45
|
group: "Write",
|
|
54
46
|
summary: "Write a note to the vault",
|
|
55
47
|
listUsage: "note <text>",
|
|
56
|
-
usage: "grounder note <text> [--title <slug>]",
|
|
48
|
+
usage: "grounder note <text> [--title <slug>] [--topics <list>]",
|
|
49
|
+
flags: `Flags:
|
|
50
|
+
--title <slug> Short slug in filename (default: slugified first line)
|
|
51
|
+
--topics <list> Comma-separated keywords for search (e.g. "auth,jwt,session")
|
|
52
|
+
|
|
53
|
+
Subcommands:
|
|
54
|
+
note list Print recent notes under notes/** (bucket-relative titles, newest first)`,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
id: "note list",
|
|
58
|
+
group: "Write",
|
|
59
|
+
summary: "Print recent notes under notes/** (bucket-relative titles, newest first)",
|
|
60
|
+
listUsage: "note list",
|
|
61
|
+
usage: "grounder note list [--limit <n>] [--markdown]",
|
|
57
62
|
flags: `Flags:
|
|
58
|
-
--
|
|
63
|
+
--limit <n> Max notes to print (default: 5)
|
|
64
|
+
--markdown Agent relay: [bucketRelativePath](fileUri) title lines
|
|
65
|
+
(lists notes/**; nested e.g. feature/name.md)`,
|
|
59
66
|
},
|
|
60
67
|
{
|
|
61
68
|
id: "handoff",
|
|
62
69
|
group: "Write",
|
|
63
70
|
summary: "Write a session handoff to vault logs/",
|
|
64
71
|
listUsage: "handoff <text>",
|
|
65
|
-
usage: "grounder handoff <text> [--title <slug>]",
|
|
72
|
+
usage: "grounder handoff <text> [--title <slug>] [--topics <list>]",
|
|
66
73
|
flags: `Flags:
|
|
67
|
-
--title <slug>
|
|
74
|
+
--title <slug> Short slug in filename (default: slugified first line)
|
|
75
|
+
--topics <list> Comma-separated keywords for search (e.g. "auth,jwt,session")
|
|
68
76
|
|
|
69
77
|
Subcommands:
|
|
70
|
-
handoff list Print recent
|
|
78
|
+
handoff list Print recent handoffs under logs/** (bucket-relative titles, newest first)
|
|
71
79
|
handoff peek One-line latest-handoff teaser (session hooks)`,
|
|
72
80
|
},
|
|
73
81
|
{
|
|
74
82
|
id: "handoff list",
|
|
75
83
|
group: "Write",
|
|
76
|
-
summary: "Print recent
|
|
84
|
+
summary: "Print recent handoffs under logs/** (bucket-relative titles, newest first)",
|
|
77
85
|
listUsage: "handoff list",
|
|
78
|
-
usage: "grounder handoff list [--limit <n>] [--head]",
|
|
86
|
+
usage: "grounder handoff list [--limit <n>] [--head] [--markdown]",
|
|
79
87
|
flags: `Flags:
|
|
80
|
-
--limit <n> Max
|
|
88
|
+
--limit <n> Max handoffs to print (default: 5)
|
|
81
89
|
--head Print only the newest usable path
|
|
82
|
-
(skips empty/unreadable files; same pick as handoff peek)
|
|
90
|
+
(skips empty/unreadable files; same pick as handoff peek)
|
|
91
|
+
--markdown Agent relay: [bucketRelativePath](fileUri) title lines
|
|
92
|
+
(lists logs/**; nested e.g. feature/name.md; not with --head)`,
|
|
83
93
|
},
|
|
84
94
|
{
|
|
85
95
|
id: "plan",
|
|
86
96
|
group: "Write",
|
|
87
97
|
summary: "Write/update a named plan under vault plans/",
|
|
88
98
|
listUsage: "plan <text>",
|
|
89
|
-
usage: "grounder plan <text> (--title <name> [--force] | --path <file>)",
|
|
99
|
+
usage: "grounder plan <text> (--title <name> [--force] | --path <file>) [--topics <list>]",
|
|
90
100
|
flags: `Flags:
|
|
91
|
-
--title <name>
|
|
92
|
-
|
|
93
|
-
--path <file>
|
|
94
|
-
|
|
95
|
-
--force
|
|
101
|
+
--title <name> Required filename stem when creating/updating by name
|
|
102
|
+
(trailing .md ok; sanitized, max 80 chars)
|
|
103
|
+
--path <file> Update an existing plan by path (must resolve under this
|
|
104
|
+
project's plans/; no title sanitization; always overwrites)
|
|
105
|
+
--force With --title: overwrite an existing plan (preserves created)
|
|
106
|
+
--topics <list> Comma-separated keywords for search (e.g. "caching,redis,api").
|
|
107
|
+
On update, omit to keep existing topics.
|
|
96
108
|
|
|
97
109
|
Subcommands:
|
|
98
|
-
plan list Print recent
|
|
110
|
+
plan list Print recent plans under plans/** (bucket-relative titles, newest first)`,
|
|
99
111
|
},
|
|
100
112
|
{
|
|
101
113
|
id: "plan list",
|
|
102
114
|
group: "Write",
|
|
103
|
-
summary: "Print recent
|
|
115
|
+
summary: "Print recent plans under plans/** (bucket-relative titles, newest first)",
|
|
104
116
|
listUsage: "plan list",
|
|
105
|
-
usage: "grounder plan list [--limit <n>]",
|
|
117
|
+
usage: "grounder plan list [--limit <n>] [--markdown]",
|
|
118
|
+
flags: `Flags:
|
|
119
|
+
--limit <n> Max plans to print (default: 5)
|
|
120
|
+
--markdown Agent relay: [bucketRelativePath](fileUri) title lines
|
|
121
|
+
(lists plans/**; nested e.g. migration/cutover.md)`,
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
id: "search",
|
|
125
|
+
group: "Retrieve",
|
|
126
|
+
summary: "Search linked project vault for keywords (scoped retrieval)",
|
|
127
|
+
listUsage: "search <query>",
|
|
128
|
+
usage: "grounder search <query> [--terms <csv>] [--limit <n>] [--max-hits <n>] [--context <n>] [--since <date>] [--markdown] [--json]",
|
|
106
129
|
flags: `Flags:
|
|
107
|
-
--
|
|
130
|
+
--terms <csv> Extra keyword variants (comma-separated)
|
|
131
|
+
--limit <n> Max files to print (default: 10)
|
|
132
|
+
--max-hits <n> Max stored line snippets per file during scan (default: 50)
|
|
133
|
+
--context <n> Context lines around each snippet (default: 1)
|
|
134
|
+
--since <date> Only files modified on or after date (YYYY-MM-DD local midnight, or Nd, e.g. 7d)
|
|
135
|
+
--after <date> Alias for --since
|
|
136
|
+
--markdown Agent relay: file:// links + fenced snippets
|
|
137
|
+
--json Structured output (relativePath, fileUri, alsoMatchedHint per hit)`,
|
|
108
138
|
},
|
|
109
139
|
{
|
|
110
140
|
id: "path notes",
|
|
@@ -192,7 +222,7 @@ Examples:
|
|
|
192
222
|
grounder help
|
|
193
223
|
grounder help note
|
|
194
224
|
grounder help handoff list
|
|
195
|
-
grounder help
|
|
225
|
+
grounder help setup`,
|
|
196
226
|
},
|
|
197
227
|
];
|
|
198
228
|
/**
|
|
@@ -200,15 +230,16 @@ Examples:
|
|
|
200
230
|
* `cli.ts` / `helpExitCode(...)` call sites — the invariant test locks this.
|
|
201
231
|
*/
|
|
202
232
|
export const DISPATCHED_COMMAND_IDS = [
|
|
203
|
-
"
|
|
204
|
-
"
|
|
205
|
-
"init",
|
|
233
|
+
"setup",
|
|
234
|
+
"link",
|
|
206
235
|
"note",
|
|
236
|
+
"note list",
|
|
207
237
|
"handoff",
|
|
208
238
|
"handoff list",
|
|
209
239
|
"handoff peek",
|
|
210
240
|
"plan",
|
|
211
241
|
"plan list",
|
|
242
|
+
"search",
|
|
212
243
|
"path",
|
|
213
244
|
"path notes",
|
|
214
245
|
"path logs",
|
|
@@ -303,9 +334,10 @@ function formatFullCommandDetails() {
|
|
|
303
334
|
}
|
|
304
335
|
return blocks.join("\n\n");
|
|
305
336
|
}
|
|
337
|
+
const BANNER = "grounder — markdown-native memory for AI agents";
|
|
306
338
|
/** Bare `grounder` / `-h` — short grouped synopsis (no flag encyclopedia). */
|
|
307
339
|
export function printSynopsis() {
|
|
308
|
-
process.stdout.write(
|
|
340
|
+
process.stdout.write(`${BANNER}
|
|
309
341
|
|
|
310
342
|
${formatGroupedLists()}
|
|
311
343
|
|
|
@@ -322,7 +354,7 @@ ${QUICKSTART}
|
|
|
322
354
|
}
|
|
323
355
|
/** `--help` / `grounder help` with no args — one-shot reference for humans/agents. */
|
|
324
356
|
export function printFullHelp() {
|
|
325
|
-
process.stdout.write(
|
|
357
|
+
process.stdout.write(`${BANNER}
|
|
326
358
|
|
|
327
359
|
${formatGroupedLists()}
|
|
328
360
|
|
package/dist/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAoB5D,MAAM,WAAW,GAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
export interface ParsedFrontmatter {
|
|
2
|
+
title?: string;
|
|
3
|
+
created?: string;
|
|
4
|
+
topics?: string[];
|
|
5
|
+
}
|
|
1
6
|
/**
|
|
2
|
-
* Parse `title` / `created` from Grounder
|
|
3
|
-
* Accepts the quoted `key: "value"` shape
|
|
4
|
-
* unquoted `key: value` from earlier
|
|
7
|
+
* Parse `title` / `created` / `topics` from Grounder frontmatter.
|
|
8
|
+
* Accepts the quoted `key: "value"` shape write commands produce, and
|
|
9
|
+
* unquoted `key: value` from earlier files. Not a general YAML parser.
|
|
5
10
|
* Returns `{}` on anything unexpected; never throws.
|
|
6
11
|
*/
|
|
7
|
-
export declare function parseHandoffFrontmatter(content: string):
|
|
8
|
-
title?: string;
|
|
9
|
-
created?: string;
|
|
10
|
-
};
|
|
12
|
+
export declare function parseHandoffFrontmatter(content: string): ParsedFrontmatter;
|
|
11
13
|
//# sourceMappingURL=frontmatter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../src/util/frontmatter.ts"],"names":[],"mappings":"AA6BA
|
|
1
|
+
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../src/util/frontmatter.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAoBD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CA2C1E"}
|