buildpartner 0.15.2 → 0.15.3-dev.20261103132440

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 (34) hide show
  1. package/dist/bin/cli.js +0 -0
  2. package/dist/src/commands/reset.d.ts +1 -0
  3. package/dist/src/commands/reset.js +130 -0
  4. package/dist/src/commands/reset.js.map +1 -0
  5. package/dist/src/commands/setup.d.ts +1 -0
  6. package/dist/src/commands/setup.js +358 -0
  7. package/dist/src/commands/setup.js.map +1 -0
  8. package/dist/src/constants.d.ts +9 -0
  9. package/dist/src/constants.js +12 -0
  10. package/dist/src/constants.js.map +1 -0
  11. package/dist/src/mcp/build-pad.d.ts +26 -1
  12. package/dist/src/mcp/build-pad.js +80 -14
  13. package/dist/src/mcp/build-pad.js.map +1 -1
  14. package/dist/src/mcp/server.js +2 -1
  15. package/dist/src/mcp/server.js.map +1 -1
  16. package/dist/src/mcp/subscription-gate.d.ts +19 -0
  17. package/dist/src/mcp/subscription-gate.js +69 -0
  18. package/dist/src/mcp/subscription-gate.js.map +1 -0
  19. package/dist/src/store/local-store.d.ts +8 -2
  20. package/dist/src/store/local-store.js +18 -5
  21. package/dist/src/store/local-store.js.map +1 -1
  22. package/dist/src/store/quest-store.d.ts +14 -0
  23. package/dist/src/store/quest-store.js +41 -0
  24. package/dist/src/store/quest-store.js.map +1 -0
  25. package/dist/src/store/status-store.d.ts +10 -0
  26. package/dist/src/store/status-store.js +99 -0
  27. package/dist/src/store/status-store.js.map +1 -0
  28. package/dist/src/suggestions/rules.d.ts +1 -0
  29. package/dist/src/suggestions/rules.js +2 -0
  30. package/dist/src/suggestions/rules.js.map +1 -0
  31. package/dist/src/suggestions/video-links.d.ts +1 -0
  32. package/dist/src/suggestions/video-links.js +2 -0
  33. package/dist/src/suggestions/video-links.js.map +1 -0
  34. package/package.json +1 -1
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Quest store - now only holds quest definitions for setup recommendations.
3
+ * All quest state management is server-side via /api/buildpartner/check-status.
4
+ */
5
+ import { skillCommand } from "../constants.js";
6
+ export const QUEST_DEFINITIONS = [
7
+ // Core quests
8
+ {
9
+ id: "run-first-skill",
10
+ title: "Run Your First Skill",
11
+ description: `Type ${skillCommand("coach")} in Claude Code to get a personalized setup review.`,
12
+ prompt: skillCommand("coach"),
13
+ path: "core",
14
+ order: 1,
15
+ },
16
+ {
17
+ id: "build-training-data",
18
+ title: "Build Your Training Data",
19
+ description: `Type ${skillCommand("interview")} in Claude Code to teach BuildPartner how you work.`,
20
+ prompt: skillCommand("interview"),
21
+ path: "core",
22
+ order: 2,
23
+ },
24
+ {
25
+ id: "review-claude-md",
26
+ title: "Review Your CLAUDE.md",
27
+ description: `Run ${skillCommand("enhance-claude-md")} to get data-backed rules for your CLAUDE.md.`,
28
+ prompt: skillCommand("enhance-claude-md"),
29
+ path: "core",
30
+ order: 3,
31
+ },
32
+ {
33
+ id: "consult-an-expert",
34
+ title: "Consult an Expert",
35
+ description: `Type ${skillCommand("consult")} and ask any question. Get matched to the right expert framework.`,
36
+ prompt: skillCommand("consult"),
37
+ path: "core",
38
+ order: 4,
39
+ },
40
+ ];
41
+ //# sourceMappingURL=quest-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quest-store.js","sourceRoot":"","sources":["../../../src/store/quest-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAa/C,MAAM,CAAC,MAAM,iBAAiB,GAAY;IACxC,cAAc;IACd;QACE,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,QAAQ,YAAY,CAAC,OAAO,CAAC,qDAAqD;QAC/F,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC;QAC7B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,QAAQ,YAAY,CAAC,WAAW,CAAC,qDAAqD;QACnG,MAAM,EAAE,YAAY,CAAC,WAAW,CAAC;QACjC,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,OAAO,YAAY,CAAC,mBAAmB,CAAC,+CAA+C;QACpG,MAAM,EAAE,YAAY,CAAC,mBAAmB,CAAC;QACzC,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,CAAC;KACT;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,QAAQ,YAAY,CAAC,SAAS,CAAC,mEAAmE;QAC/G,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC;QAC/B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,CAAC;KACT;CACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Status store - now only handles version checking.
3
+ * All other bookkeeping (consumption, quests, reminders) moved to server.
4
+ */
5
+ export interface VersionInfo {
6
+ current: string;
7
+ latest: string | null;
8
+ update_available: boolean;
9
+ }
10
+ export declare function getVersionInfo(): Promise<VersionInfo>;
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Status store - now only handles version checking.
3
+ * All other bookkeeping (consumption, quests, reminders) moved to server.
4
+ */
5
+ import { readFileSync, writeFileSync, existsSync } from "fs";
6
+ import { join, dirname } from "path";
7
+ import { homedir } from "os";
8
+ import { fileURLToPath } from "url";
9
+ import { ensureDir } from "./local-store.js";
10
+ const __filename = fileURLToPath(import.meta.url);
11
+ const __dirname = dirname(__filename);
12
+ const VERSION_CACHE_PATH = join(homedir(), ".buildpartner", "version-check.json");
13
+ const VERSION_CHECK_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
14
+ function getCurrentVersion() {
15
+ try {
16
+ const paths = [
17
+ join(__dirname, "..", "..", "..", "package.json"),
18
+ join(__dirname, "..", "..", "package.json"),
19
+ ];
20
+ for (const p of paths) {
21
+ if (existsSync(p)) {
22
+ const pkg = JSON.parse(readFileSync(p, "utf-8"));
23
+ if (pkg.version)
24
+ return pkg.version;
25
+ }
26
+ }
27
+ }
28
+ catch {
29
+ // ignore
30
+ }
31
+ return "0.0.0";
32
+ }
33
+ async function fetchLatestVersion() {
34
+ try {
35
+ const controller = new AbortController();
36
+ const timeout = setTimeout(() => controller.abort(), 3000);
37
+ const res = await fetch("https://registry.npmjs.org/buildpartner/latest", {
38
+ signal: controller.signal,
39
+ });
40
+ clearTimeout(timeout);
41
+ if (!res.ok)
42
+ return null;
43
+ const data = (await res.json());
44
+ return data.version || null;
45
+ }
46
+ catch {
47
+ return null;
48
+ }
49
+ }
50
+ function compareVersions(current, latest) {
51
+ const c = current.split(".").map(Number);
52
+ const l = latest.split(".").map(Number);
53
+ for (let i = 0; i < 3; i++) {
54
+ if ((l[i] || 0) > (c[i] || 0))
55
+ return true;
56
+ if ((l[i] || 0) < (c[i] || 0))
57
+ return false;
58
+ }
59
+ return false;
60
+ }
61
+ export async function getVersionInfo() {
62
+ const current = getCurrentVersion();
63
+ // Check cache first
64
+ try {
65
+ if (existsSync(VERSION_CACHE_PATH)) {
66
+ const cache = JSON.parse(readFileSync(VERSION_CACHE_PATH, "utf-8"));
67
+ const age = Date.now() - new Date(cache.checked_at).getTime();
68
+ if (age < VERSION_CHECK_TTL_MS && cache.latest) {
69
+ return {
70
+ current,
71
+ latest: cache.latest,
72
+ update_available: compareVersions(current, cache.latest),
73
+ };
74
+ }
75
+ }
76
+ }
77
+ catch {
78
+ // ignore cache errors
79
+ }
80
+ const latest = await fetchLatestVersion();
81
+ if (latest) {
82
+ try {
83
+ ensureDir();
84
+ writeFileSync(VERSION_CACHE_PATH, JSON.stringify({
85
+ latest,
86
+ checked_at: new Date().toISOString(),
87
+ }));
88
+ }
89
+ catch {
90
+ // ignore
91
+ }
92
+ }
93
+ return {
94
+ current,
95
+ latest,
96
+ update_available: latest ? compareVersions(current, latest) : false,
97
+ };
98
+ }
99
+ //# sourceMappingURL=status-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-store.js","sourceRoot":"","sources":["../../../src/store/status-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/suggestions/rules.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=video-links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-links.js","sourceRoot":"","sources":["../../../src/suggestions/video-links.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "buildpartner",
3
- "version": "0.15.2",
3
+ "version": "0.15.3-dev.20261103132440",
4
4
  "type": "module",
5
5
  "description": "Your AI build partner. Expert guidance inside Claude Code.",
6
6
  "bin": {