grounder 0.4.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 (138) hide show
  1. package/README.md +148 -270
  2. package/dist/agents/claude.d.ts.map +1 -1
  3. package/dist/agents/claude.js +2 -1
  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 +2 -1
  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/cli.js +11 -10
  12. package/dist/cli.js.map +1 -1
  13. package/dist/commands/apply-agent-installs.d.ts +2 -2
  14. package/dist/commands/apply-agent-installs.d.ts.map +1 -1
  15. package/dist/commands/apply-agent-installs.js +1 -1
  16. package/dist/commands/doctor.d.ts.map +1 -1
  17. package/dist/commands/doctor.js +7 -4
  18. package/dist/commands/doctor.js.map +1 -1
  19. package/dist/commands/handoff/list.d.ts +23 -13
  20. package/dist/commands/handoff/list.d.ts.map +1 -1
  21. package/dist/commands/handoff/list.js +28 -16
  22. package/dist/commands/handoff/list.js.map +1 -1
  23. package/dist/commands/handoff.d.ts +2 -0
  24. package/dist/commands/handoff.d.ts.map +1 -1
  25. package/dist/commands/handoff.js +10 -1
  26. package/dist/commands/handoff.js.map +1 -1
  27. package/dist/commands/link.d.ts +12 -0
  28. package/dist/commands/link.d.ts.map +1 -0
  29. package/dist/commands/{repo/init.js → link.js} +35 -27
  30. package/dist/commands/link.js.map +1 -0
  31. package/dist/commands/migrate.js +3 -5
  32. package/dist/commands/migrate.js.map +1 -1
  33. package/dist/commands/note/list.d.ts +17 -9
  34. package/dist/commands/note/list.d.ts.map +1 -1
  35. package/dist/commands/note/list.js +19 -14
  36. package/dist/commands/note/list.js.map +1 -1
  37. package/dist/commands/note.d.ts +2 -0
  38. package/dist/commands/note.d.ts.map +1 -1
  39. package/dist/commands/note.js +10 -1
  40. package/dist/commands/note.js.map +1 -1
  41. package/dist/commands/output.d.ts +22 -2
  42. package/dist/commands/output.d.ts.map +1 -1
  43. package/dist/commands/output.js +18 -6
  44. package/dist/commands/output.js.map +1 -1
  45. package/dist/commands/plan/list.d.ts +20 -12
  46. package/dist/commands/plan/list.d.ts.map +1 -1
  47. package/dist/commands/plan/list.js +22 -17
  48. package/dist/commands/plan/list.js.map +1 -1
  49. package/dist/commands/plan.d.ts +2 -0
  50. package/dist/commands/plan.d.ts.map +1 -1
  51. package/dist/commands/plan.js +12 -2
  52. package/dist/commands/plan.js.map +1 -1
  53. package/dist/commands/require-linked.js +2 -2
  54. package/dist/commands/require-linked.js.map +1 -1
  55. package/dist/commands/search.d.ts +23 -0
  56. package/dist/commands/search.d.ts.map +1 -0
  57. package/dist/commands/search.js +277 -0
  58. package/dist/commands/search.js.map +1 -0
  59. package/dist/commands/{vault/init.d.ts → setup.d.ts} +5 -4
  60. package/dist/commands/setup.d.ts.map +1 -0
  61. package/dist/commands/setup.js +137 -0
  62. package/dist/commands/setup.js.map +1 -0
  63. package/dist/commands/status.d.ts.map +1 -1
  64. package/dist/commands/status.js +24 -15
  65. package/dist/commands/status.js.map +1 -1
  66. package/dist/commands/upgrade-banner.d.ts +2 -2
  67. package/dist/commands/upgrade-banner.js +2 -2
  68. package/dist/connector/home.d.ts +12 -0
  69. package/dist/connector/home.d.ts.map +1 -1
  70. package/dist/connector/home.js +26 -2
  71. package/dist/connector/home.js.map +1 -1
  72. package/dist/connector/state.d.ts +1 -1
  73. package/dist/connector/state.d.ts.map +1 -1
  74. package/dist/connector/vault.d.ts +2 -0
  75. package/dist/connector/vault.d.ts.map +1 -1
  76. package/dist/connector/vault.js +6 -1
  77. package/dist/connector/vault.js.map +1 -1
  78. package/dist/help.d.ts +3 -3
  79. package/dist/help.d.ts.map +1 -1
  80. package/dist/help.js +70 -51
  81. package/dist/help.js.map +1 -1
  82. package/dist/util/frontmatter.d.ts +9 -7
  83. package/dist/util/frontmatter.d.ts.map +1 -1
  84. package/dist/util/frontmatter.js +29 -4
  85. package/dist/util/frontmatter.js.map +1 -1
  86. package/dist/util/path.d.ts +23 -0
  87. package/dist/util/path.d.ts.map +1 -1
  88. package/dist/util/path.js +39 -0
  89. package/dist/util/path.js.map +1 -1
  90. package/dist/vault/list-handoffs.d.ts +3 -1
  91. package/dist/vault/list-handoffs.d.ts.map +1 -1
  92. package/dist/vault/list-handoffs.js +17 -15
  93. package/dist/vault/list-handoffs.js.map +1 -1
  94. package/dist/vault/list-markdown.d.ts +8 -0
  95. package/dist/vault/list-markdown.d.ts.map +1 -0
  96. package/dist/vault/list-markdown.js +35 -0
  97. package/dist/vault/list-markdown.js.map +1 -0
  98. package/dist/vault/list-notes.d.ts +5 -5
  99. package/dist/vault/list-notes.d.ts.map +1 -1
  100. package/dist/vault/list-notes.js +12 -22
  101. package/dist/vault/list-notes.js.map +1 -1
  102. package/dist/vault/list-plans.d.ts +2 -2
  103. package/dist/vault/list-plans.d.ts.map +1 -1
  104. package/dist/vault/list-plans.js +9 -19
  105. package/dist/vault/list-plans.js.map +1 -1
  106. package/dist/vault/search.d.ts +55 -0
  107. package/dist/vault/search.d.ts.map +1 -0
  108. package/dist/vault/search.js +328 -0
  109. package/dist/vault/search.js.map +1 -0
  110. package/dist/vault/write-handoff.d.ts +2 -0
  111. package/dist/vault/write-handoff.d.ts.map +1 -1
  112. package/dist/vault/write-handoff.js +5 -0
  113. package/dist/vault/write-handoff.js.map +1 -1
  114. package/dist/vault/write-note.d.ts +2 -0
  115. package/dist/vault/write-note.d.ts.map +1 -1
  116. package/dist/vault/write-note.js +9 -1
  117. package/dist/vault/write-note.js.map +1 -1
  118. package/dist/vault/write-plan.d.ts +4 -0
  119. package/dist/vault/write-plan.d.ts.map +1 -1
  120. package/dist/vault/write-plan.js +14 -1
  121. package/dist/vault/write-plan.js.map +1 -1
  122. package/package.json +10 -3
  123. package/templates/agents/claude/commands/grounder-note.md +6 -2
  124. package/templates/agents/claude/commands/grounder-plan.md +7 -5
  125. package/templates/agents/claude/commands/grounder-search.md +144 -0
  126. package/templates/agents/claude/commands/grounder-task-handoff.md +5 -1
  127. package/templates/agents/claude/commands/grounder-task.md +2 -2
  128. package/templates/agents/cursor/commands/grounder-note.md +6 -2
  129. package/templates/agents/cursor/commands/grounder-plan.md +7 -5
  130. package/templates/agents/cursor/commands/grounder-search.md +144 -0
  131. package/templates/agents/cursor/commands/grounder-task-handoff.md +5 -1
  132. package/templates/agents/cursor/commands/grounder-task.md +2 -2
  133. package/dist/commands/repo/init.d.ts +0 -11
  134. package/dist/commands/repo/init.d.ts.map +0 -1
  135. package/dist/commands/repo/init.js.map +0 -1
  136. package/dist/commands/vault/init.d.ts.map +0 -1
  137. package/dist/commands/vault/init.js +0 -90
  138. package/dist/commands/vault/init.js.map +0 -1
@@ -0,0 +1,137 @@
1
+ import { mkdir } from "node:fs/promises";
2
+ import { runtimeCliPath } from "../agents/hook-runtime.js";
3
+ import { resolveAgents } from "../agents/index.js";
4
+ import { homeConfigPath, InvalidHomeConfigError, readHomeConfig, withHomeDir, writeHomeConfig, } from "../connector/home.js";
5
+ import { assertAgentSchemasSupported, readGrounderState } from "../connector/state.js";
6
+ import { helpExitCode } from "../help.js";
7
+ import { flagBool, flagStrings, parseArgs } from "../util/parse-args.js";
8
+ import { resolveUserPath } from "../util/path.js";
9
+ import { confirm } from "../util/prompt.js";
10
+ import { projectsParent } from "../vault/layout.js";
11
+ import { applyAgentInstalls } from "./apply-agent-installs.js";
12
+ /**
13
+ * Read the existing home config for the "already exists with a different
14
+ * vault" conflict check. A corrupt/invalid file has no value worth
15
+ * conflict-checking — treat it as absent so `setup` can recreate it without
16
+ * requiring the user to manually delete it first.
17
+ */
18
+ async function readExistingHomeForSetup() {
19
+ try {
20
+ return { home: await readHomeConfig(), invalidReason: null };
21
+ }
22
+ catch (error) {
23
+ const reason = error instanceof InvalidHomeConfigError
24
+ ? error.reason
25
+ : error instanceof Error
26
+ ? error.message
27
+ : String(error);
28
+ return { home: null, invalidReason: reason };
29
+ }
30
+ }
31
+ export async function runSetup(argv) {
32
+ const helpCode = helpExitCode(argv, "setup");
33
+ if (helpCode !== null) {
34
+ return helpCode;
35
+ }
36
+ const { positional, flags, repeated } = parseArgs(argv);
37
+ const vaultPathArg = positional[0];
38
+ const yes = flagBool(flags, "yes", "y");
39
+ const force = flagBool(flags, "force", "f");
40
+ const hooks = flagBool(flags, "hooks");
41
+ const dryRun = flagBool(flags, "dry-run");
42
+ const agents = flagStrings(repeated, "agent");
43
+ if (!vaultPathArg) {
44
+ process.stderr.write("Usage: grounder setup <path>\n");
45
+ return 1;
46
+ }
47
+ return runSetupWithOptions({
48
+ vaultPath: vaultPathArg,
49
+ yes,
50
+ force,
51
+ hooks,
52
+ dryRun,
53
+ agents: agents.length > 0 ? agents : undefined,
54
+ });
55
+ }
56
+ export async function runSetupWithOptions(options) {
57
+ return withHomeDir(options.homeDir, async () => {
58
+ const vaultRoot = resolveUserPath(options.vaultPath);
59
+ const yes = options.yes ?? false;
60
+ const force = options.force ?? false;
61
+ const hooks = options.hooks ?? false;
62
+ const dryRun = options.dryRun ?? false;
63
+ const homeDir = options.homeDir;
64
+ const { home: existingHome, invalidReason } = await readExistingHomeForSetup();
65
+ const projectsDir = projectsParent(vaultRoot);
66
+ const agents = await resolveAgents(options.agents);
67
+ if (existingHome && existingHome.vaultRoot !== vaultRoot && !force) {
68
+ process.stderr.write(`Home config already exists with vault ${existingHome.vaultRoot}. Use --force to overwrite.\n`);
69
+ return 1;
70
+ }
71
+ if (invalidReason) {
72
+ process.stdout.write(dryRun
73
+ ? `Would replace invalid home config (${invalidReason}).\n`
74
+ : `Will replace invalid home config (${invalidReason}).\n`);
75
+ }
76
+ process.stdout.write(`Vault root: ${vaultRoot}\n`);
77
+ process.stdout.write("Connect to a markdown vault (once per machine).\n");
78
+ process.stdout.write(dryRun ? "Would write:\n" : "Will write:\n");
79
+ process.stdout.write(` home ${homeConfigPath(homeDir)}\n`);
80
+ process.stdout.write(" vault 10-Projects/ (if missing)\n");
81
+ if (agents.length > 0) {
82
+ process.stdout.write(` grounder runtime ${runtimeCliPath(homeDir)}\n`);
83
+ }
84
+ for (const agent of agents) {
85
+ for (const artifactPath of agent.expectedArtifacts(homeDir)) {
86
+ process.stdout.write(` ${agent.id.padEnd(8)} ${artifactPath}\n`);
87
+ }
88
+ if (hooks && agent.expectedHookArtifacts) {
89
+ for (const hookPath of agent.expectedHookArtifacts(homeDir)) {
90
+ process.stdout.write(` ${agent.id.padEnd(8)} hook ${hookPath}\n`);
91
+ }
92
+ }
93
+ }
94
+ if (agents.length === 0) {
95
+ process.stdout.write(" (no supported agents detected — skipping agent artifacts)\n");
96
+ }
97
+ process.stdout.write("\n");
98
+ if (dryRun) {
99
+ try {
100
+ const state = await readGrounderState(homeDir);
101
+ assertAgentSchemasSupported(state, agents);
102
+ }
103
+ catch (error) {
104
+ const detail = error instanceof Error ? error.message : String(error);
105
+ process.stderr.write(`Dry run failed: agent install would not succeed:\n ${detail}\n`);
106
+ return 1;
107
+ }
108
+ return 0;
109
+ }
110
+ if (!yes) {
111
+ const proceed = await confirm("Proceed?");
112
+ if (!proceed) {
113
+ process.stdout.write("Aborted.\n");
114
+ return 0;
115
+ }
116
+ }
117
+ await writeHomeConfig({ vaultRoot });
118
+ await mkdir(projectsDir, { recursive: true });
119
+ process.stdout.write("✓ Wrote home config\n");
120
+ process.stdout.write(`✓ Vault scaffold: ${projectsDir}\n`);
121
+ try {
122
+ await applyAgentInstalls({
123
+ agents,
124
+ force,
125
+ hooks,
126
+ homeDir,
127
+ });
128
+ }
129
+ catch (error) {
130
+ const detail = error instanceof Error ? error.message : String(error);
131
+ process.stderr.write(`\nHome config and vault scaffold were written, but agent command files/hooks were not installed:\n ${detail}\n`);
132
+ return 1;
133
+ }
134
+ return 0;
135
+ });
136
+ }
137
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAEL,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,WAAW,EACX,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAc/D;;;;;GAKG;AACH,KAAK,UAAU,wBAAwB;IAIrC,IAAI,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,MAAM,GACV,KAAK,YAAY,sBAAsB;YACrC,CAAC,CAAC,KAAK,CAAC,MAAM;YACd,CAAC,CAAC,KAAK,YAAY,KAAK;gBACtB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc;IAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE9C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACvD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,mBAAmB,CAAC;QACzB,SAAS,EAAE,YAAY;QACvB,GAAG;QACH,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC/C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAqB;IAC7D,OAAO,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,wBAAwB,EAAE,CAAC;QAC/E,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEnD,IAAI,YAAY,IAAI,YAAY,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;YACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,yCAAyC,YAAY,CAAC,SAAS,+BAA+B,CAC/F,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM;gBACJ,CAAC,CAAC,sCAAsC,aAAa,MAAM;gBAC3D,CAAC,CAAC,qCAAqC,aAAa,MAAM,CAC7D,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,SAAS,IAAI,CAAC,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAClE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,KAAK,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;gBACzC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE3B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC/C,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,MAAM,IAAI,CAAC,CAAC;gBACxF,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACnC,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QAED,MAAM,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACrC,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,WAAW,IAAI,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,MAAM,kBAAkB,CAAC;gBACvB,MAAM;gBACN,KAAK;gBACL,KAAK;gBACL,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uGAAuG,MAAM,IAAI,CAClH,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAyED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAO/D;AAED,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4EvF"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2FD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAO/D;AAED,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwEvF"}
@@ -5,21 +5,33 @@ import { homeConfigPath, readHomeConfig, withHomeDir } from "../connector/home.j
5
5
  import { findLinkedRepoRoot, readRepoConfig, repoConfigPath, } from "../connector/repo.js";
6
6
  import { isInstallSchemaStale, readGrounderState, statePath } from "../connector/state.js";
7
7
  import { isUnsupportedSchemaError } from "../connector/unsupported-schema.js";
8
- import { resolveLogsDir, resolveNotesDir, resolvePlansDir, resolveVaultRoot, } from "../connector/vault.js";
8
+ import { resolveLogsDir, resolveNotesDir, resolvePlansDir, resolveProjectVaultRoot, resolveVaultRoot, } from "../connector/vault.js";
9
9
  import { helpExitCode } from "../help.js";
10
10
  import { VERSION } from "../index.js";
11
11
  import { writeSection } from "./output.js";
12
12
  import { packageVersionNotice } from "./package-version-notice.js";
13
13
  const LABEL_WIDTH = 12;
14
- const VAULT_INIT = "grounder vault init <path>";
15
- const REPO_INIT = "grounder init";
16
- const REPO_INIT_FORCE = "grounder init --force";
14
+ const VAULT_INIT = "grounder setup <path>";
15
+ const REPO_INIT = "grounder link";
16
+ const REPO_INIT_FORCE = "grounder link --force";
17
17
  const MIGRATE = "grounder migrate";
18
18
  const MIGRATE_FORCE = "grounder migrate --force";
19
19
  const UPGRADE_GROUNDER = "upgrade grounder";
20
20
  function statusLine(label, value) {
21
21
  return ` ${label.padEnd(LABEL_WIDTH)}${value}\n`;
22
22
  }
23
+ /**
24
+ * `findLinkedRepoRoot` walks up to the nearest `.grounder.json`, so a
25
+ * subdirectory of a linked repo inherits that link. Surface it explicitly
26
+ * when `linkedRoot` isn't `cwd` itself, so callers (agents included) don't
27
+ * mistake an ancestor's link for this exact folder being linked.
28
+ */
29
+ function writeAncestorNoteIfAny(cwd, linkedRoot) {
30
+ if (linkedRoot === cwd) {
31
+ return;
32
+ }
33
+ process.stdout.write(statusLine("Note:", `linked ancestor — ${cwd} itself is unlinked; grounder link here would create a separate project`));
34
+ }
23
35
  function errorDetail(error) {
24
36
  return error instanceof Error ? error.message : String(error);
25
37
  }
@@ -115,6 +127,7 @@ export async function runStatusWithOptions(options = {}) {
115
127
  const fix = repoUnsupported ? UPGRADE_GROUNDER : home ? REPO_INIT_FORCE : VAULT_INIT;
116
128
  process.stdout.write(statusLine("Linked:", repoUnsupported ? `unsupported → ${fix}` : `incomplete → ${fix}`));
117
129
  process.stdout.write(statusLine("Folder:", linkedRoot));
130
+ writeAncestorNoteIfAny(cwd, linkedRoot);
118
131
  process.stdout.write(statusLine("Config:", repoUnsupported
119
132
  ? `unsupported → ${UPGRADE_GROUNDER}`
120
133
  : repoInvalid
@@ -123,21 +136,17 @@ export async function runStatusWithOptions(options = {}) {
123
136
  await writeGitLine(gitRoot);
124
137
  return 0;
125
138
  }
126
- if (!home) {
127
- process.stdout.write(statusLine("Linked:", `incomplete → ${VAULT_INIT}`));
128
- process.stdout.write(statusLine("Folder:", linkedRoot));
129
- process.stdout.write(statusLine("Config:", repoConfigPath(linkedRoot)));
130
- process.stdout.write(statusLine("Id:", repo.projectId));
131
- await writeGitLine(gitRoot);
132
- return 0;
133
- }
134
139
  process.stdout.write(statusLine("Linked:", "yes"));
135
140
  process.stdout.write(statusLine("Folder:", linkedRoot));
141
+ writeAncestorNoteIfAny(cwd, linkedRoot);
136
142
  process.stdout.write(statusLine("Config:", repoConfigPath(linkedRoot)));
137
143
  process.stdout.write(statusLine("Id:", repo.projectId));
138
- process.stdout.write(statusLine("Notes:", resolveNotesDir(home, repo)));
139
- process.stdout.write(statusLine("Logs:", resolveLogsDir(home, repo)));
140
- process.stdout.write(statusLine("Plans:", resolvePlansDir(home, repo)));
144
+ if (home) {
145
+ process.stdout.write(statusLine("Project Vault Root:", resolveProjectVaultRoot(home, repo)));
146
+ process.stdout.write(statusLine("Notes:", resolveNotesDir(home, repo)));
147
+ process.stdout.write(statusLine("Logs:", resolveLogsDir(home, repo)));
148
+ process.stdout.write(statusLine("Plans:", resolvePlansDir(home, repo)));
149
+ }
141
150
  await writeGitLine(gitRoot);
142
151
  return 0;
143
152
  });
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -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 vault init updates state.
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 `vault init` (those update state themselves).
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 vault init updates state.
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 `vault init` (those update state themselves).
9
+ * `migrate`, and `setup` (those update state themselves).
10
10
  */
11
11
  export async function notifyUpgradeIfNeeded(homeDir) {
12
12
  try {
@@ -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,CAYjE;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvE"}
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"}
@@ -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
- const raw = JSON.parse(await readFile(configPath, "utf8"));
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 Error(`Invalid home config at ${configPath}: missing vaultRoot`);
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,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAwB,CAAC;IAClF,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,qBAAqB,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAkB;IACtD,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"home.js","sourceRoot":"","sources":["../../src/connector/home.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export interface AgentState {
16
16
  files: Record<string, AgentFileState>;
17
17
  }
18
18
  export interface GrounderState {
19
- /** Package version that last wrote install artifacts (via vault init / migrate). */
19
+ /** Package version that last wrote install artifacts (via setup / migrate). */
20
20
  grounderVersion: string;
21
21
  agents: Record<string, AgentState>;
22
22
  }
@@ -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,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,oFAAoF;IACpF,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"}
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"}
@@ -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"}
@@ -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;AAIjE;;;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,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"}
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`, `vault init`, …). */
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 ["vault", "vault init", "init", "note", "note list", "handoff", "handoff list", "handoff peek", "plan", "plan list", "path", "path notes", "path logs", "path plans", "status", "doctor", "migrate", "help"];
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
  /**
@@ -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;AAE9E,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,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,EAkM1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,uNAmBzB,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;AAgDD,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"}
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"}