grounder 0.2.0 → 0.4.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 (165) hide show
  1. package/README.md +179 -66
  2. package/dist/agents/claude.d.ts +1 -0
  3. package/dist/agents/claude.d.ts.map +1 -1
  4. package/dist/agents/claude.js +37 -13
  5. package/dist/agents/claude.js.map +1 -1
  6. package/dist/agents/cursor.d.ts +1 -0
  7. package/dist/agents/cursor.d.ts.map +1 -1
  8. package/dist/agents/cursor.js +37 -13
  9. package/dist/agents/cursor.js.map +1 -1
  10. package/dist/agents/hook-runtime.d.ts +65 -21
  11. package/dist/agents/hook-runtime.d.ts.map +1 -1
  12. package/dist/agents/hook-runtime.js +172 -31
  13. package/dist/agents/hook-runtime.js.map +1 -1
  14. package/dist/agents/index.d.ts +18 -0
  15. package/dist/agents/index.d.ts.map +1 -1
  16. package/dist/agents/index.js +27 -4
  17. package/dist/agents/index.js.map +1 -1
  18. package/dist/agents/install-command.d.ts +35 -0
  19. package/dist/agents/install-command.d.ts.map +1 -0
  20. package/dist/agents/install-command.js +65 -0
  21. package/dist/agents/install-command.js.map +1 -0
  22. package/dist/agents/types.d.ts +19 -1
  23. package/dist/agents/types.d.ts.map +1 -1
  24. package/dist/cli.js +62 -60
  25. package/dist/cli.js.map +1 -1
  26. package/dist/commands/apply-agent-installs.d.ts +34 -0
  27. package/dist/commands/apply-agent-installs.d.ts.map +1 -0
  28. package/dist/commands/apply-agent-installs.js +137 -0
  29. package/dist/commands/apply-agent-installs.js.map +1 -0
  30. package/dist/commands/doctor.d.ts.map +1 -1
  31. package/dist/commands/doctor.js +278 -60
  32. package/dist/commands/doctor.js.map +1 -1
  33. package/dist/commands/handoff/list.d.ts +15 -7
  34. package/dist/commands/handoff/list.d.ts.map +1 -1
  35. package/dist/commands/handoff/list.js +21 -13
  36. package/dist/commands/handoff/list.js.map +1 -1
  37. package/dist/commands/handoff/peek.d.ts +5 -2
  38. package/dist/commands/handoff/peek.d.ts.map +1 -1
  39. package/dist/commands/handoff/peek.js +47 -6
  40. package/dist/commands/handoff/peek.js.map +1 -1
  41. package/dist/commands/handoff.d.ts.map +1 -1
  42. package/dist/commands/handoff.js +5 -0
  43. package/dist/commands/handoff.js.map +1 -1
  44. package/dist/commands/migrate.d.ts +23 -0
  45. package/dist/commands/migrate.d.ts.map +1 -0
  46. package/dist/commands/migrate.js +104 -0
  47. package/dist/commands/migrate.js.map +1 -0
  48. package/dist/commands/note/list.d.ts +28 -0
  49. package/dist/commands/note/list.d.ts.map +1 -0
  50. package/dist/commands/note/list.js +72 -0
  51. package/dist/commands/note/list.js.map +1 -0
  52. package/dist/commands/note.d.ts.map +1 -1
  53. package/dist/commands/note.js +6 -1
  54. package/dist/commands/note.js.map +1 -1
  55. package/dist/commands/output.d.ts +27 -0
  56. package/dist/commands/output.d.ts.map +1 -0
  57. package/dist/commands/output.js +51 -0
  58. package/dist/commands/output.js.map +1 -0
  59. package/dist/commands/package-version-notice.d.ts +18 -0
  60. package/dist/commands/package-version-notice.d.ts.map +1 -0
  61. package/dist/commands/package-version-notice.js +39 -0
  62. package/dist/commands/package-version-notice.js.map +1 -0
  63. package/dist/commands/path/logs.d.ts +1 -1
  64. package/dist/commands/path/logs.d.ts.map +1 -1
  65. package/dist/commands/path/logs.js +6 -1
  66. package/dist/commands/path/logs.js.map +1 -1
  67. package/dist/commands/path/notes.d.ts +1 -1
  68. package/dist/commands/path/notes.d.ts.map +1 -1
  69. package/dist/commands/path/notes.js +6 -1
  70. package/dist/commands/path/notes.js.map +1 -1
  71. package/dist/commands/path/plans.d.ts +7 -0
  72. package/dist/commands/path/plans.d.ts.map +1 -0
  73. package/dist/commands/path/plans.js +22 -0
  74. package/dist/commands/path/plans.js.map +1 -0
  75. package/dist/commands/plan/list.d.ts +31 -0
  76. package/dist/commands/plan/list.d.ts.map +1 -0
  77. package/dist/commands/plan/list.js +75 -0
  78. package/dist/commands/plan/list.js.map +1 -0
  79. package/dist/commands/plan.d.ts +34 -0
  80. package/dist/commands/plan.d.ts.map +1 -0
  81. package/dist/commands/plan.js +121 -0
  82. package/dist/commands/plan.js.map +1 -0
  83. package/dist/commands/repo/init.d.ts.map +1 -1
  84. package/dist/commands/repo/init.js +12 -1
  85. package/dist/commands/repo/init.js.map +1 -1
  86. package/dist/commands/status.d.ts +1 -1
  87. package/dist/commands/status.d.ts.map +1 -1
  88. package/dist/commands/status.js +62 -18
  89. package/dist/commands/status.js.map +1 -1
  90. package/dist/commands/upgrade-banner.d.ts +9 -0
  91. package/dist/commands/upgrade-banner.d.ts.map +1 -0
  92. package/dist/commands/upgrade-banner.js +27 -0
  93. package/dist/commands/upgrade-banner.js.map +1 -0
  94. package/dist/commands/vault/init.d.ts.map +1 -1
  95. package/dist/commands/vault/init.js +18 -29
  96. package/dist/commands/vault/init.js.map +1 -1
  97. package/dist/connector/repo.d.ts +2 -0
  98. package/dist/connector/repo.d.ts.map +1 -1
  99. package/dist/connector/repo.js +12 -1
  100. package/dist/connector/repo.js.map +1 -1
  101. package/dist/connector/state.d.ts +86 -0
  102. package/dist/connector/state.d.ts.map +1 -0
  103. package/dist/connector/state.js +171 -0
  104. package/dist/connector/state.js.map +1 -0
  105. package/dist/connector/unsupported-schema.d.ts +9 -0
  106. package/dist/connector/unsupported-schema.d.ts.map +1 -0
  107. package/dist/connector/unsupported-schema.js +14 -0
  108. package/dist/connector/unsupported-schema.js.map +1 -0
  109. package/dist/connector/vault.d.ts +2 -0
  110. package/dist/connector/vault.d.ts.map +1 -1
  111. package/dist/connector/vault.js +6 -1
  112. package/dist/connector/vault.js.map +1 -1
  113. package/dist/help.d.ts +45 -0
  114. package/dist/help.d.ts.map +1 -0
  115. package/dist/help.js +368 -0
  116. package/dist/help.js.map +1 -0
  117. package/dist/util/fs.d.ts +6 -0
  118. package/dist/util/fs.d.ts.map +1 -1
  119. package/dist/util/fs.js +15 -1
  120. package/dist/util/fs.js.map +1 -1
  121. package/dist/util/hash.d.ts +3 -0
  122. package/dist/util/hash.d.ts.map +1 -0
  123. package/dist/util/hash.js +6 -0
  124. package/dist/util/hash.js.map +1 -0
  125. package/dist/util/parse-args.d.ts.map +1 -1
  126. package/dist/util/parse-args.js +11 -2
  127. package/dist/util/parse-args.js.map +1 -1
  128. package/dist/util/path.d.ts +10 -0
  129. package/dist/util/path.d.ts.map +1 -1
  130. package/dist/util/path.js +31 -0
  131. package/dist/util/path.js.map +1 -1
  132. package/dist/util/plan-name.d.ts +10 -0
  133. package/dist/util/plan-name.d.ts.map +1 -0
  134. package/dist/util/plan-name.js +18 -0
  135. package/dist/util/plan-name.js.map +1 -0
  136. package/dist/util/semver.d.ts +10 -0
  137. package/dist/util/semver.d.ts.map +1 -0
  138. package/dist/util/semver.js +40 -0
  139. package/dist/util/semver.js.map +1 -0
  140. package/dist/vault/layout.d.ts +2 -0
  141. package/dist/vault/layout.d.ts.map +1 -1
  142. package/dist/vault/layout.js +4 -0
  143. package/dist/vault/layout.js.map +1 -1
  144. package/dist/vault/list-notes.d.ts +15 -0
  145. package/dist/vault/list-notes.d.ts.map +1 -0
  146. package/dist/vault/list-notes.js +44 -0
  147. package/dist/vault/list-notes.js.map +1 -0
  148. package/dist/vault/list-plans.d.ts +11 -0
  149. package/dist/vault/list-plans.d.ts.map +1 -0
  150. package/dist/vault/list-plans.js +40 -0
  151. package/dist/vault/list-plans.js.map +1 -0
  152. package/dist/vault/write-plan.d.ts +28 -0
  153. package/dist/vault/write-plan.d.ts.map +1 -0
  154. package/dist/vault/write-plan.js +61 -0
  155. package/dist/vault/write-plan.js.map +1 -0
  156. package/package.json +5 -3
  157. package/templates/agents/claude/commands/grounder-note.md +25 -3
  158. package/templates/agents/claude/commands/grounder-plan.md +69 -0
  159. package/templates/agents/claude/commands/grounder-task-handoff.md +3 -3
  160. package/templates/agents/claude/commands/grounder-task.md +5 -3
  161. package/templates/agents/cursor/commands/grounder-note.md +26 -4
  162. package/templates/agents/cursor/commands/grounder-plan.md +69 -0
  163. package/templates/agents/cursor/commands/grounder-task-handoff.md +4 -4
  164. package/templates/agents/cursor/commands/grounder-task.md +6 -4
  165. package/templates/vault/plan.md +16 -0
@@ -0,0 +1,39 @@
1
+ import { packageVersionRelation } from "../util/semver.js";
2
+ const MIGRATE = "grounder migrate";
3
+ const UPGRADE = "install a newer Grounder";
4
+ /**
5
+ * Plain-language notice when the running Grounder and the version recorded for
6
+ * this machine's configuration disagree.
7
+ */
8
+ export function packageVersionNotice(running, recorded) {
9
+ const relation = packageVersionRelation(running, recorded);
10
+ if (relation === "match") {
11
+ return null;
12
+ }
13
+ if (relation === "ahead") {
14
+ return {
15
+ relation,
16
+ message: `Grounder ${running} is installed, but your configuration is still from ${recorded}`,
17
+ fix: MIGRATE,
18
+ banner: `Grounder was updated (${running}). Run \`${MIGRATE}\` to update your configuration.\n\n`,
19
+ status: `configuration outdated — run: ${MIGRATE}`,
20
+ };
21
+ }
22
+ if (relation === "behind") {
23
+ return {
24
+ relation,
25
+ message: `this Grounder (${running}) is older than your configuration (${recorded})`,
26
+ fix: UPGRADE,
27
+ banner: `This Grounder (${running}) is older than your configuration (${recorded}). Install a newer Grounder.\n\n`,
28
+ status: `older than configuration — ${UPGRADE}`,
29
+ };
30
+ }
31
+ return {
32
+ relation: "differs",
33
+ message: `Grounder version (${running}) doesn't match your configuration (${recorded})`,
34
+ fix: MIGRATE,
35
+ banner: `Grounder version doesn't match your configuration. Run \`${MIGRATE}\`.\n\n`,
36
+ status: `doesn't match configuration — run: ${MIGRATE}`,
37
+ };
38
+ }
39
+ //# sourceMappingURL=package-version-notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-version-notice.js","sourceRoot":"","sources":["../../src/commands/package-version-notice.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAExF,MAAM,OAAO,GAAG,kBAAkB,CAAC;AACnC,MAAM,OAAO,GAAG,0BAA0B,CAAC;AAc3C;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,QAAgB;IAEhB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,YAAY,OAAO,uDAAuD,QAAQ,EAAE;YAC7F,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,yBAAyB,OAAO,YAAY,OAAO,sCAAsC;YACjG,MAAM,EAAE,iCAAiC,OAAO,EAAE;SACnD,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,kBAAkB,OAAO,uCAAuC,QAAQ,GAAG;YACpF,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,kBAAkB,OAAO,uCAAuC,QAAQ,kCAAkC;YAClH,MAAM,EAAE,8BAA8B,OAAO,EAAE;SAChD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,qBAAqB,OAAO,uCAAuC,QAAQ,GAAG;QACvF,GAAG,EAAE,OAAO;QACZ,MAAM,EAAE,4DAA4D,OAAO,SAAS;QACpF,MAAM,EAAE,sCAAsC,OAAO,EAAE;KACxD,CAAC;AACJ,CAAC"}
@@ -2,6 +2,6 @@ export interface PathLogsOptions {
2
2
  cwd?: string;
3
3
  homeDir?: string;
4
4
  }
5
- export declare function runPathLogs(_argv: string[]): Promise<number>;
5
+ export declare function runPathLogs(argv: string[]): Promise<number>;
6
6
  export declare function runPathLogsWithOptions(options?: PathLogsOptions): Promise<number>;
7
7
  //# sourceMappingURL=logs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/commands/path/logs.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAElE;AAED,wBAAsB,sBAAsB,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU3F"}
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/commands/path/logs.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAOjE;AAED,wBAAsB,sBAAsB,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU3F"}
@@ -1,7 +1,12 @@
1
1
  import { withHomeDir } from "../../connector/home.js";
2
2
  import { resolveLogsDir } from "../../connector/vault.js";
3
+ import { helpExitCode } from "../../help.js";
3
4
  import { requireLinkedProject } from "../require-linked.js";
4
- export async function runPathLogs(_argv) {
5
+ export async function runPathLogs(argv) {
6
+ const helpCode = helpExitCode(argv, "path logs");
7
+ if (helpCode !== null) {
8
+ return helpCode;
9
+ }
5
10
  return runPathLogsWithOptions({});
6
11
  }
7
12
  export async function runPathLogsWithOptions(options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/commands/path/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAO5D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAe;IAC/C,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,UAA2B,EAAE;IACxE,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,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/commands/path/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAO5D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,UAA2B,EAAE;IACxE,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,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -2,6 +2,6 @@ export interface PathNotesOptions {
2
2
  cwd?: string;
3
3
  homeDir?: string;
4
4
  }
5
- export declare function runPathNotes(_argv: string[]): Promise<number>;
5
+ export declare function runPathNotes(argv: string[]): Promise<number>;
6
6
  export declare function runPathNotesWithOptions(options?: PathNotesOptions): Promise<number>;
7
7
  //# sourceMappingURL=notes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notes.d.ts","sourceRoot":"","sources":["../../../src/commands/path/notes.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED,wBAAsB,uBAAuB,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU7F"}
1
+ {"version":3,"file":"notes.d.ts","sourceRoot":"","sources":["../../../src/commands/path/notes.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAOlE;AAED,wBAAsB,uBAAuB,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU7F"}
@@ -1,7 +1,12 @@
1
1
  import { withHomeDir } from "../../connector/home.js";
2
2
  import { resolveNotesDir } from "../../connector/vault.js";
3
+ import { helpExitCode } from "../../help.js";
3
4
  import { requireLinkedProject } from "../require-linked.js";
4
- export async function runPathNotes(_argv) {
5
+ export async function runPathNotes(argv) {
6
+ const helpCode = helpExitCode(argv, "path notes");
7
+ if (helpCode !== null) {
8
+ return helpCode;
9
+ }
5
10
  return runPathNotesWithOptions({});
6
11
  }
7
12
  export async function runPathNotesWithOptions(options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"notes.js","sourceRoot":"","sources":["../../../src/commands/path/notes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAO5D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAe;IAChD,OAAO,uBAAuB,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,UAA4B,EAAE;IAC1E,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,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"notes.js","sourceRoot":"","sources":["../../../src/commands/path/notes.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,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAO5D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAc;IAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAClD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,uBAAuB,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,UAA4B,EAAE;IAC1E,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,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface PathPlansOptions {
2
+ cwd?: string;
3
+ homeDir?: string;
4
+ }
5
+ export declare function runPathPlans(argv: string[]): Promise<number>;
6
+ export declare function runPathPlansWithOptions(options?: PathPlansOptions): Promise<number>;
7
+ //# sourceMappingURL=plans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../../src/commands/path/plans.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAOlE;AAED,wBAAsB,uBAAuB,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU7F"}
@@ -0,0 +1,22 @@
1
+ import { withHomeDir } from "../../connector/home.js";
2
+ import { resolvePlansDir } from "../../connector/vault.js";
3
+ import { helpExitCode } from "../../help.js";
4
+ import { requireLinkedProject } from "../require-linked.js";
5
+ export async function runPathPlans(argv) {
6
+ const helpCode = helpExitCode(argv, "path plans");
7
+ if (helpCode !== null) {
8
+ return helpCode;
9
+ }
10
+ return runPathPlansWithOptions({});
11
+ }
12
+ export async function runPathPlansWithOptions(options = {}) {
13
+ return withHomeDir(options.homeDir, async () => {
14
+ const linked = await requireLinkedProject(options.cwd ?? process.cwd());
15
+ if (!linked) {
16
+ return 1;
17
+ }
18
+ process.stdout.write(`${resolvePlansDir(linked.home, linked.repo)}\n`);
19
+ return 0;
20
+ });
21
+ }
22
+ //# sourceMappingURL=plans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../src/commands/path/plans.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,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAO5D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAc;IAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAClD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,uBAAuB,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,UAA4B,EAAE;IAC1E,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,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,31 @@
1
+ /** Options for {@link runPlanListWithOptions} (CLI parsing and tests). */
2
+ export interface PlanListOptions {
3
+ /** Directory used to find the linked repo (default: `process.cwd()`). */
4
+ cwd?: string;
5
+ /** Max plans to print, newest first (default: 5). */
6
+ limit?: number;
7
+ /** Override home dir / `GROUNDER_HOME` (tests). */
8
+ homeDir?: string;
9
+ }
10
+ /**
11
+ * CLI entry for `grounder plan list [--limit <n>]`.
12
+ * `--limit` must be a positive integer when provided.
13
+ * @returns Exit code (`0` on success, `1` on usage or config errors).
14
+ */
15
+ export declare function runPlanList(argv: string[]): Promise<number>;
16
+ /**
17
+ * Resolves the linked project, lists recent plans under `plans/` (newest first).
18
+ * Prints a count header (blank line after when non-empty), then each plan as a
19
+ * numbered two-line block — `N. ` + filename stem (title), then the indented
20
+ * absolute path — separated by a blank line. The title line ends with two
21
+ * trailing spaces (a Markdown hard line break) so agents can relay stdout
22
+ * into chat and keep title and path on separate rendered lines. When `plans/`
23
+ * is empty, prints `No plans.` only. The number is positional within this
24
+ * listing only (not a stable identifier — a later `plan list` call may
25
+ * renumber if plans change) and exists purely so a human or agent can refer
26
+ * to "plan 2" in the same conversation without retyping the path. Same
27
+ * vault/link prerequisites as `grounder plan`.
28
+ * @returns Exit code (`0` on success, `1` when vault/link is missing).
29
+ */
30
+ export declare function runPlanListWithOptions(options?: PlanListOptions): Promise<number>;
31
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
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,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;;;;;;;;;;;;;GAaG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAa3F"}
@@ -0,0 +1,75 @@
1
+ import { withHomeDir } from "../../connector/home.js";
2
+ import { resolvePlansDir } from "../../connector/vault.js";
3
+ import { helpExitCode } from "../../help.js";
4
+ import { parseArgs } from "../../util/parse-args.js";
5
+ import { listPlans } from "../../vault/list-plans.js";
6
+ import { writeVaultItemList } from "../output.js";
7
+ import { requireLinkedProject } from "../require-linked.js";
8
+ const DEFAULT_LIMIT = 5;
9
+ const USAGE = "Usage: grounder plan list [--limit <n>]\n";
10
+ function usageError() {
11
+ process.stderr.write(USAGE);
12
+ return 1;
13
+ }
14
+ /**
15
+ * CLI entry for `grounder plan list [--limit <n>]`.
16
+ * `--limit` must be a positive integer when provided.
17
+ * @returns Exit code (`0` on success, `1` on usage or config errors).
18
+ */
19
+ export async function runPlanList(argv) {
20
+ const helpCode = helpExitCode(argv, "plan list");
21
+ if (helpCode !== null) {
22
+ return helpCode;
23
+ }
24
+ const { positional, flags } = parseArgs(argv);
25
+ if (positional.length > 0) {
26
+ return usageError();
27
+ }
28
+ for (const key of flags.keys()) {
29
+ if (key !== "limit") {
30
+ return usageError();
31
+ }
32
+ }
33
+ const limitRaw = flags.get("limit");
34
+ let limit = DEFAULT_LIMIT;
35
+ if (limitRaw !== undefined) {
36
+ if (typeof limitRaw !== "string") {
37
+ return usageError();
38
+ }
39
+ const trimmed = limitRaw.trim();
40
+ const parsed = Number.parseInt(trimmed, 10);
41
+ if (!/^\d+$/.test(trimmed) || Number.isNaN(parsed) || parsed < 1) {
42
+ return usageError();
43
+ }
44
+ limit = parsed;
45
+ }
46
+ return runPlanListWithOptions({ limit });
47
+ }
48
+ /**
49
+ * Resolves the linked project, lists recent plans under `plans/` (newest first).
50
+ * Prints a count header (blank line after when non-empty), then each plan as a
51
+ * numbered two-line block — `N. ` + filename stem (title), then the indented
52
+ * absolute path — separated by a blank line. The title line ends with two
53
+ * trailing spaces (a Markdown hard line break) so agents can relay stdout
54
+ * into chat and keep title and path on separate rendered lines. When `plans/`
55
+ * is empty, prints `No plans.` only. The number is positional within this
56
+ * listing only (not a stable identifier — a later `plan list` call may
57
+ * renumber if plans change) and exists purely so a human or agent can refer
58
+ * to "plan 2" in the same conversation without retyping the path. Same
59
+ * vault/link prerequisites as `grounder plan`.
60
+ * @returns Exit code (`0` on success, `1` when vault/link is missing).
61
+ */
62
+ export async function runPlanListWithOptions(options = {}) {
63
+ return withHomeDir(options.homeDir, async () => {
64
+ const linked = await requireLinkedProject(options.cwd ?? process.cwd());
65
+ if (!linked) {
66
+ return 1;
67
+ }
68
+ const limit = options.limit ?? DEFAULT_LIMIT;
69
+ const plansDir = resolvePlansDir(linked.home, linked.repo);
70
+ const paths = await listPlans(plansDir, { limit });
71
+ writeVaultItemList(paths, limit, { singular: "plan", plural: "plans" });
72
+ return 0;
73
+ });
74
+ }
75
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/plan/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /** Options for {@link runPlanWithOptions} (CLI parsing and tests). */
2
+ export interface PlanOptions {
3
+ /** Directory used to find the linked repo (default: `process.cwd()`). */
4
+ cwd?: string;
5
+ /** Markdown body stored under the project `plans/` folder. */
6
+ text: string;
7
+ /** Required filename stem (`--title`); sanitized via {@link sanitizePlanName}. */
8
+ title?: string;
9
+ /**
10
+ * Absolute or relative path to an existing plan file (`--path`).
11
+ * Mutually exclusive with `--title`. Updates in place (no sanitization).
12
+ */
13
+ planPath?: string;
14
+ /** When true, overwrite an existing plan (preserving original `created`). */
15
+ force?: boolean;
16
+ /** Override home dir / `GROUNDER_HOME` (tests). */
17
+ homeDir?: string;
18
+ /** Fixed clock for deterministic `created` / `updated` (tests). */
19
+ now?: Date;
20
+ }
21
+ /**
22
+ * CLI entry for `grounder plan <text> (--title <name> [--force] | --path <file>)`.
23
+ * @returns Exit code (`0` on success, `1` on usage or config errors).
24
+ */
25
+ export declare function runPlan(argv: string[]): Promise<number>;
26
+ /**
27
+ * Resolves the linked project, writes/updates a named plan under `plans/`.
28
+ * Prints `Wrote <path>` on create, `Updated <path>` on overwrite.
29
+ * Without `--force`, an existing title-addressed plan prints a conflict hint and exits 1.
30
+ * With `--path`, updates an existing file in place (must resolve under this project's `plans/`).
31
+ * @returns Exit code (`0` on success, `1` on usage/conflict/link errors).
32
+ */
33
+ export declare function runPlanWithOptions(options: PlanOptions): Promise<number>;
34
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +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,CAoB7D;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA4C9E"}
@@ -0,0 +1,121 @@
1
+ import path from "node:path";
2
+ import { withHomeDir } from "../connector/home.js";
3
+ import { resolvePlansDir } from "../connector/vault.js";
4
+ import { helpExitCode } from "../help.js";
5
+ import { fileExists } from "../util/fs.js";
6
+ import { flagBool, flagString, parseArgs } from "../util/parse-args.js";
7
+ import { isPathInside, isRealPathInside, resolveUserPath } from "../util/path.js";
8
+ import { sanitizePlanName } from "../util/plan-name.js";
9
+ import { updatePlanAtPath, writePlan } from "../vault/write-plan.js";
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>";
13
+ /**
14
+ * CLI entry for `grounder plan <text> (--title <name> [--force] | --path <file>)`.
15
+ * @returns Exit code (`0` on success, `1` on usage or config errors).
16
+ */
17
+ export async function runPlan(argv) {
18
+ const helpCode = helpExitCode(argv, "plan");
19
+ if (helpCode !== null) {
20
+ return helpCode;
21
+ }
22
+ const { positional, flags } = parseArgs(argv);
23
+ const text = positional.join(" ").trim();
24
+ if (!text) {
25
+ process.stderr.write(`${USAGE}\n`);
26
+ return 1;
27
+ }
28
+ return runPlanWithOptions({
29
+ text,
30
+ title: flagString(flags, "title"),
31
+ planPath: flagString(flags, "path"),
32
+ force: flagBool(flags, "force"),
33
+ });
34
+ }
35
+ /**
36
+ * Resolves the linked project, writes/updates a named plan under `plans/`.
37
+ * Prints `Wrote <path>` on create, `Updated <path>` on overwrite.
38
+ * Without `--force`, an existing title-addressed plan prints a conflict hint and exits 1.
39
+ * With `--path`, updates an existing file in place (must resolve under this project's `plans/`).
40
+ * @returns Exit code (`0` on success, `1` on usage/conflict/link errors).
41
+ */
42
+ export async function runPlanWithOptions(options) {
43
+ const hasTitle = options.title !== undefined;
44
+ const hasPath = options.planPath !== undefined;
45
+ if (hasTitle && hasPath) {
46
+ process.stderr.write("Use either --title or --path, not both.\n");
47
+ return 1;
48
+ }
49
+ if (!hasTitle && !hasPath) {
50
+ process.stderr.write(`${USAGE}\n`);
51
+ return 1;
52
+ }
53
+ if (hasPath && options.force) {
54
+ process.stderr.write("--force is not used with --path (path updates always overwrite).\n");
55
+ return 1;
56
+ }
57
+ const sanitizedTitle = hasTitle ? sanitizePlanName(options.title ?? "") : undefined;
58
+ if (hasTitle && !sanitizedTitle) {
59
+ process.stderr.write(`${USAGE}\n`);
60
+ return 1;
61
+ }
62
+ return withHomeDir(options.homeDir, async () => {
63
+ const linked = await requireLinkedProject(options.cwd ?? process.cwd());
64
+ if (!linked) {
65
+ return 1;
66
+ }
67
+ const plansDir = resolvePlansDir(linked.home, linked.repo);
68
+ if (hasPath) {
69
+ return updateByPath(plansDir, linked.repo.projectId, options);
70
+ }
71
+ if (!sanitizedTitle) {
72
+ process.stderr.write(`${USAGE}\n`);
73
+ return 1;
74
+ }
75
+ return writeByTitle(plansDir, linked.repo.projectId, sanitizedTitle, options);
76
+ });
77
+ }
78
+ async function writeByTitle(plansDir, projectId, name, options) {
79
+ const result = await writePlan(plansDir, name, options.text, {
80
+ projectId,
81
+ force: options.force,
82
+ now: options.now,
83
+ });
84
+ if (result.status === "exists") {
85
+ process.stderr.write(`Plan already exists: ${result.path}\nUse --force to overwrite.\n`);
86
+ return 1;
87
+ }
88
+ const verb = result.status === "overwritten" ? "Updated" : "Wrote";
89
+ process.stdout.write(`${verb} ${result.path}\n`);
90
+ return 0;
91
+ }
92
+ async function updateByPath(plansDir, projectId, options) {
93
+ const raw = options.planPath ?? "";
94
+ const cwd = options.cwd ?? process.cwd();
95
+ const filePath = resolveUserPath(raw, cwd);
96
+ if (!filePath.toLowerCase().endsWith(".md")) {
97
+ process.stderr.write(`Plan path must be a .md file under plans/: ${filePath}\n`);
98
+ return 1;
99
+ }
100
+ if (!isPathInside(plansDir, filePath) || path.resolve(filePath) === path.resolve(plansDir)) {
101
+ process.stderr.write(`Plan path must resolve inside this project's plans directory:\n ${plansDir}\nGot: ${filePath}\n`);
102
+ return 1;
103
+ }
104
+ if (!(await fileExists(filePath))) {
105
+ process.stderr.write(`Plan not found: ${filePath}\n`);
106
+ return 1;
107
+ }
108
+ // Check follows symlinks; write would too — refuse links that land outside plans/.
109
+ const realInside = await isRealPathInside(plansDir, filePath);
110
+ if (realInside !== true) {
111
+ process.stderr.write(`Plan path must resolve inside this project's plans directory:\n ${plansDir}\nGot: ${filePath}\n`);
112
+ return 1;
113
+ }
114
+ const result = await updatePlanAtPath(filePath, options.text, {
115
+ projectId,
116
+ now: options.now,
117
+ });
118
+ process.stdout.write(`Updated ${result.path}\n`);
119
+ return 0;
120
+ }
121
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/repo/init.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAQjE;AAED,wBAAsB,sBAAsB,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsE3F"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/repo/init.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAajE;AAED,wBAAsB,sBAAsB,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4E3F"}
@@ -4,11 +4,16 @@ import { findGitRoot } from "../../connector/git.js";
4
4
  import { readHomeConfig, withHomeDir } from "../../connector/home.js";
5
5
  import { detectProjectId, formatProjectIdSource } from "../../connector/project-id.js";
6
6
  import { readRepoConfig, repoConfigPath, writeRepoConfig } from "../../connector/repo.js";
7
- import { resolveLogsDir, resolveNotesDir, resolveVaultRoot } from "../../connector/vault.js";
7
+ import { resolveLogsDir, resolveNotesDir, resolvePlansDir, resolveVaultRoot, } from "../../connector/vault.js";
8
+ import { helpExitCode } from "../../help.js";
8
9
  import { flagBool, flagString, parseArgs } from "../../util/parse-args.js";
9
10
  import { resolveUserPath } from "../../util/path.js";
10
11
  import { confirm } from "../../util/prompt.js";
11
12
  export async function runRepoInit(argv) {
13
+ const helpCode = helpExitCode(argv, "init");
14
+ if (helpCode !== null) {
15
+ return helpCode;
16
+ }
12
17
  const { flags } = parseArgs(argv);
13
18
  return runRepoInitWithOptions({
14
19
  yes: flagBool(flags, "yes", "y"),
@@ -37,6 +42,7 @@ export async function runRepoInitWithOptions(options = {}) {
37
42
  const projectConfig = { version: 1, projectId: detected.id };
38
43
  const notesDir = resolveNotesDir(home, projectConfig, options.vault);
39
44
  const logsDir = resolveLogsDir(home, projectConfig, options.vault);
45
+ const plansDir = resolvePlansDir(home, projectConfig, options.vault);
40
46
  process.stdout.write(`✓ Folder: ${cwd}\n`);
41
47
  if (gitRoot) {
42
48
  process.stdout.write(`✓ Git repo: ${gitRoot}\n`);
@@ -45,10 +51,12 @@ export async function runRepoInitWithOptions(options = {}) {
45
51
  process.stdout.write(`✓ Project: ${detected.id} (${formatProjectIdSource(detected.source)})\n\n`);
46
52
  const notesDirRelative = path.relative(vaultRoot, notesDir);
47
53
  const logsDirRelative = path.relative(vaultRoot, logsDir);
54
+ const plansDirRelative = path.relative(vaultRoot, plansDir);
48
55
  process.stdout.write("Will create:\n");
49
56
  process.stdout.write(` link ${repoConfigPath(cwd)}\n`);
50
57
  process.stdout.write(` vault ${notesDirRelative}/\n`);
51
58
  process.stdout.write(` vault ${logsDirRelative}/\n`);
59
+ process.stdout.write(` vault ${plansDirRelative}/\n`);
52
60
  if (!yes) {
53
61
  const proceed = await confirm("Proceed?");
54
62
  if (!proceed) {
@@ -61,6 +69,7 @@ export async function runRepoInitWithOptions(options = {}) {
61
69
  process.stdout.write("✓ Already linked (skipped)\n");
62
70
  await mkdir(notesDir, { recursive: true });
63
71
  await mkdir(logsDir, { recursive: true });
72
+ await mkdir(plansDir, { recursive: true });
64
73
  return 0;
65
74
  }
66
75
  process.stderr.write(`Folder already linked as ${existingRepo.projectId}. Use --force to overwrite.\n`);
@@ -69,9 +78,11 @@ export async function runRepoInitWithOptions(options = {}) {
69
78
  await writeRepoConfig(cwd, { version: 1, projectId: detected.id });
70
79
  await mkdir(notesDir, { recursive: true });
71
80
  await mkdir(logsDir, { recursive: true });
81
+ await mkdir(plansDir, { recursive: true });
72
82
  process.stdout.write("✓ Wrote .grounder.json\n");
73
83
  process.stdout.write(`✓ Created notes folder: ${notesDir}\n`);
74
84
  process.stdout.write(`✓ Created logs folder: ${logsDir}\n`);
85
+ process.stdout.write(`✓ Created plans folder: ${plansDir}\n`);
75
86
  return 0;
76
87
  });
77
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/repo/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/repo/init.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,6 @@ export interface StatusOptions {
2
2
  cwd?: string;
3
3
  homeDir?: string;
4
4
  }
5
- export declare function runStatus(_argv: string[]): Promise<number>;
5
+ export declare function runStatus(argv: string[]): Promise<number>;
6
6
  export declare function runStatusWithOptions(options?: StatusOptions): Promise<number>;
7
7
  //# sourceMappingURL=status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8CD,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAEhE;AAED,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgEvF"}
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"}