buildpartner 0.3.3 → 0.3.5

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 (58) hide show
  1. package/dist/bin/cli.js +6 -0
  2. package/dist/bin/cli.js.map +1 -1
  3. package/dist/src/api-client.d.ts +13 -9
  4. package/dist/src/api-client.js +14 -31
  5. package/dist/src/api-client.js.map +1 -1
  6. package/dist/src/commands/log-session.d.ts +3 -6
  7. package/dist/src/commands/log-session.js +10 -149
  8. package/dist/src/commands/log-session.js.map +1 -1
  9. package/dist/src/commands/reset.d.ts +1 -0
  10. package/dist/src/commands/reset.js +130 -0
  11. package/dist/src/commands/reset.js.map +1 -0
  12. package/dist/src/commands/setup.js +83 -398
  13. package/dist/src/commands/setup.js.map +1 -1
  14. package/dist/src/commands/sync.d.ts +6 -0
  15. package/dist/src/commands/sync.js +32 -0
  16. package/dist/src/commands/sync.js.map +1 -0
  17. package/dist/src/mcp/catch-up.d.ts +6 -0
  18. package/dist/src/mcp/catch-up.js +28 -0
  19. package/dist/src/mcp/catch-up.js.map +1 -0
  20. package/dist/src/mcp/server.d.ts +13 -0
  21. package/dist/src/mcp/server.js +71 -81
  22. package/dist/src/mcp/server.js.map +1 -1
  23. package/dist/src/mcp/subscription-gate.d.ts +2 -2
  24. package/dist/src/mcp/subscription-gate.js +4 -9
  25. package/dist/src/mcp/subscription-gate.js.map +1 -1
  26. package/dist/src/mcp/tools/get-profile.js +7 -70
  27. package/dist/src/mcp/tools/get-profile.js.map +1 -1
  28. package/dist/src/mcp/tools/get-stats.d.ts +8 -34
  29. package/dist/src/mcp/tools/get-stats.js +7 -97
  30. package/dist/src/mcp/tools/get-stats.js.map +1 -1
  31. package/dist/src/mcp/tools/get-suggestions.js +10 -121
  32. package/dist/src/mcp/tools/get-suggestions.js.map +1 -1
  33. package/dist/src/mcp/tools/log-highlight.d.ts +2 -10
  34. package/dist/src/mcp/tools/log-highlight.js +5 -19
  35. package/dist/src/mcp/tools/log-highlight.js.map +1 -1
  36. package/dist/src/mcp/tools/quest.d.ts +3 -77
  37. package/dist/src/mcp/tools/quest.js +6 -70
  38. package/dist/src/mcp/tools/quest.js.map +1 -1
  39. package/dist/src/readers/extract-signals.d.ts +23 -0
  40. package/dist/src/readers/extract-signals.js +50 -0
  41. package/dist/src/readers/extract-signals.js.map +1 -0
  42. package/dist/src/readers/session-reader.d.ts +0 -14
  43. package/dist/src/readers/session-reader.js +3 -122
  44. package/dist/src/readers/session-reader.js.map +1 -1
  45. package/dist/src/readers/session-sync.d.ts +24 -0
  46. package/dist/src/readers/session-sync.js +113 -0
  47. package/dist/src/readers/session-sync.js.map +1 -0
  48. package/dist/src/store/local-store.d.ts +12 -60
  49. package/dist/src/store/local-store.js +16 -113
  50. package/dist/src/store/local-store.js.map +1 -1
  51. package/dist/src/store/quest-store.d.ts +5 -68
  52. package/dist/src/store/quest-store.js +9 -277
  53. package/dist/src/store/quest-store.js.map +1 -1
  54. package/dist/src/store/status-store.d.ts +5 -68
  55. package/dist/src/store/status-store.js +8 -281
  56. package/dist/src/store/status-store.js.map +1 -1
  57. package/package.json +1 -1
  58. package/skills/bp-open-dashboard/SKILL.md +1 -1
@@ -1,4 +1,7 @@
1
- export type QuestStatus = "locked" | "active" | "completed" | "coming_soon";
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
+ */
2
5
  export type QuestPath = "core" | "builder" | "storyteller" | "systems-thinker";
3
6
  export interface Quest {
4
7
  id: string;
@@ -7,71 +10,5 @@ export interface Quest {
7
10
  prompt: string;
8
11
  path: QuestPath;
9
12
  order: number;
10
- status: QuestStatus;
11
- completed_at?: string;
12
- }
13
- export interface QuestState {
14
- quests: Record<string, {
15
- status: QuestStatus;
16
- completed_at?: string;
17
- }>;
18
- detected_path?: string;
19
13
  }
20
- export interface AppState {
21
- skill_first_runs: Record<string, boolean>;
22
- quests_initialized: boolean;
23
- environment?: string;
24
- }
25
- export declare const QUEST_DEFINITIONS: Omit<Quest, "status" | "completed_at">[];
26
- export declare const COMING_SOON_QUESTS: {
27
- id: string;
28
- title: string;
29
- path: QuestPath;
30
- description: string;
31
- }[];
32
- export declare function readQuests(): QuestState;
33
- export declare function writeQuests(state: QuestState): void;
34
- export declare function initializeQuests(): void;
35
- export declare function completeQuest(questId: string): Quest | null;
36
- export declare function getActiveQuest(): Quest | null;
37
- export declare function getQuestProgress(): {
38
- completed: number;
39
- total: number;
40
- allDone: boolean;
41
- core: {
42
- completed: number;
43
- total: number;
44
- };
45
- builder: {
46
- completed: number;
47
- total: number;
48
- };
49
- storyteller: {
50
- completed: number;
51
- total: number;
52
- };
53
- systemsThinker: {
54
- completed: number;
55
- total: number;
56
- };
57
- };
58
- export declare function getQuestsForPath(path: QuestPath): Quest[];
59
- /**
60
- * Try to auto-complete a quest based on which skill just ran.
61
- */
62
- export declare function tryAutoCompleteQuest(skillName: string): {
63
- completed_quest: string;
64
- next_quest: {
65
- id: string;
66
- title: string;
67
- description: string;
68
- prompt: string;
69
- } | null;
70
- message: string;
71
- } | null;
72
- export declare function readAppState(): AppState;
73
- export declare function writeAppState(state: AppState): void;
74
- export declare function isFirstSkillRun(skillName: string): boolean;
75
- export declare function markSkillRun(skillName: string): void;
76
- export declare function setEnvironment(env: string): void;
77
- export declare function getEnvironment(): string;
14
+ export declare const QUEST_DEFINITIONS: Quest[];
@@ -1,13 +1,10 @@
1
- import { readFileSync, writeFileSync } from "fs";
2
- import { join } from "path";
3
- import { homedir } from "os";
4
- import { ensureDir } from "./local-store.js";
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
5
  import { skillCommand } from "../constants.js";
6
- const QUEST_PATH = join(homedir(), ".buildpartner", "quests.json");
7
- const STATE_PATH = join(homedir(), ".buildpartner", "state.json");
8
- // --- Quest Definitions ---
9
6
  export const QUEST_DEFINITIONS = [
10
- // Core quests (everyone does these first)
7
+ // Core quests
11
8
  {
12
9
  id: "run-first-skill",
13
10
  title: "Run Your First Skill",
@@ -25,10 +22,10 @@ export const QUEST_DEFINITIONS = [
25
22
  order: 2,
26
23
  },
27
24
  {
28
- id: "plan-before-build",
29
- title: "Plan Before You Build",
30
- description: 'Start a session with: "Before we start, interview me about what we\'re making."',
31
- prompt: "Before we start, interview me about what we're making.",
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"),
32
29
  path: "core",
33
30
  order: 3,
34
31
  },
@@ -40,270 +37,5 @@ export const QUEST_DEFINITIONS = [
40
37
  path: "core",
41
38
  order: 4,
42
39
  },
43
- // Builder path (code-heavy users)
44
- {
45
- id: "builder-create-skill",
46
- title: "Create a Custom Skill",
47
- description: 'Tell Claude: "Create a skill called daily-log that asks what I worked on today."',
48
- prompt: 'Create a skill called daily-log that asks what I worked on today and saves it to knowledge/daily-logs/ with today\'s date.',
49
- path: "builder",
50
- order: 1,
51
- },
52
- {
53
- id: "builder-parallel-sessions",
54
- title: "Run Parallel Sessions",
55
- description: "Open 2 Claude Code sessions at once. One builds, one tests. 2x output.",
56
- prompt: "Open a second terminal and start a Claude Code session for tests while this one builds.",
57
- path: "builder",
58
- order: 2,
59
- },
60
- {
61
- id: "builder-improve-skill",
62
- title: "Improve a Skill",
63
- description: 'Tell Claude: "Make this skill better based on how I\'ve been using it."',
64
- prompt: "Review my /daily-log skill and improve it based on how I've been using it.",
65
- path: "builder",
66
- order: 3,
67
- },
68
- // Storyteller path (content-heavy users)
69
- {
70
- id: "storyteller-life-story",
71
- title: "Tell Your Life Story",
72
- description: `Run ${skillCommand("life-story")}. The deeper your context, the better every skill works for you.`,
73
- prompt: skillCommand("life-story"),
74
- path: "storyteller",
75
- order: 1,
76
- },
77
- {
78
- id: "storyteller-content-consult",
79
- title: "Get Content Feedback",
80
- description: `Run ${skillCommand("consult")} with a title, hook, or script. Get expert packaging frameworks applied to YOUR content.`,
81
- prompt: `${skillCommand("consult")} How do I package my content so people actually click?`,
82
- path: "storyteller",
83
- order: 2,
84
- },
85
- {
86
- id: "storyteller-weekly-recap",
87
- title: "Review Your Week",
88
- description: `Run ${skillCommand("recap-week")} to see what you created and what to add to your playbook.`,
89
- prompt: skillCommand("recap-week"),
90
- path: "storyteller",
91
- order: 3,
92
- },
93
- // Systems Thinker path (automation-heavy users)
94
- {
95
- id: "systems-coach-review",
96
- title: "Get a Setup Review",
97
- description: `Run ${skillCommand("coach")} to analyze your MCP servers, tools, and workflows.`,
98
- prompt: skillCommand("coach"),
99
- path: "systems-thinker",
100
- order: 1,
101
- },
102
- {
103
- id: "systems-launch-strategy",
104
- title: "Plan a Launch",
105
- description: `Run ${skillCommand("consult")} with your product idea. Get viral launch frameworks applied to your project.`,
106
- prompt: `${skillCommand("consult")} How do I launch this product to get maximum traction?`,
107
- path: "systems-thinker",
108
- order: 2,
109
- },
110
- {
111
- id: "systems-automate-workflow",
112
- title: "Automate a Workflow",
113
- description: "Ask Claude to create a hook or skill that automates something you do manually.",
114
- prompt: "Help me automate something I do manually. What repetitive task from my recent sessions could be a hook or skill?",
115
- path: "systems-thinker",
116
- order: 3,
117
- },
118
- ];
119
- // Coming soon teasers (not playable yet)
120
- export const COMING_SOON_QUESTS = [
121
- { id: "builder-deploy", title: "Ship to Production", path: "builder", description: "Deploy something you built. Coming soon." },
122
- { id: "builder-mcp-server", title: "Build an MCP Server", path: "builder", description: "Create your own MCP server for Claude Code. Coming soon." },
123
- { id: "storyteller-brand-voice", title: "Define Your Brand Voice", path: "storyteller", description: "Create a brand voice document Claude follows. Coming soon." },
124
- { id: "storyteller-repurpose", title: "Repurpose Content", path: "storyteller", description: "Turn one piece of content into 5 formats. Coming soon." },
125
- { id: "systems-schedule-agent", title: "Schedule an Agent", path: "systems-thinker", description: "Set up a Claude agent that runs on a schedule. Coming soon." },
126
- { id: "systems-build-pipeline", title: "Build a Pipeline", path: "systems-thinker", description: "Connect 3+ tools into an automated pipeline. Coming soon." },
127
40
  ];
128
- // Skill-to-quest auto-completion mapping (a skill can complete multiple quests)
129
- const SKILL_QUEST_MAP = {
130
- "bp-coach": ["run-first-skill", "systems-coach-review"],
131
- "bp-flex-socials": ["run-first-skill"],
132
- "bp-recap-week": ["run-first-skill", "storyteller-weekly-recap"],
133
- "bp-interview": ["build-training-data"],
134
- "bp-life-story": ["build-training-data", "storyteller-life-story"],
135
- "bp-consult": ["consult-an-expert", "storyteller-content-consult", "systems-launch-strategy"],
136
- "bp-enhance-claude-md": ["run-first-skill"],
137
- "bp-log-experience": ["build-training-data"],
138
- "bp-full-audit": ["run-first-skill", "systems-coach-review"],
139
- "bp-improve-skill": ["builder-improve-skill"],
140
- };
141
- // --- Quest State ---
142
- export function readQuests() {
143
- try {
144
- return JSON.parse(readFileSync(QUEST_PATH, "utf-8"));
145
- }
146
- catch {
147
- return { quests: {} };
148
- }
149
- }
150
- export function writeQuests(state) {
151
- ensureDir();
152
- writeFileSync(QUEST_PATH, JSON.stringify(state, null, 2) + "\n");
153
- }
154
- export function initializeQuests() {
155
- const state = readQuests();
156
- if (Object.keys(state.quests).length > 0)
157
- return;
158
- state.quests = {};
159
- const coreQuests = QUEST_DEFINITIONS.filter((q) => q.path === "core");
160
- const pathQuests = QUEST_DEFINITIONS.filter((q) => q.path !== "core");
161
- // Core quests: first is active, rest locked
162
- for (let i = 0; i < coreQuests.length; i++) {
163
- state.quests[coreQuests[i].id] = { status: i === 0 ? "active" : "locked" };
164
- }
165
- // Path quests: all locked until core is done
166
- for (const q of pathQuests) {
167
- state.quests[q.id] = { status: "locked" };
168
- }
169
- writeQuests(state);
170
- }
171
- export function completeQuest(questId) {
172
- const state = readQuests();
173
- const questEntry = state.quests[questId];
174
- if (!questEntry || questEntry.status === "completed")
175
- return null;
176
- questEntry.status = "completed";
177
- questEntry.completed_at = new Date().toISOString();
178
- const def = QUEST_DEFINITIONS.find((q) => q.id === questId);
179
- if (!def)
180
- return null;
181
- // Unlock next quest in same path
182
- const samePath = QUEST_DEFINITIONS.filter((q) => q.path === def.path);
183
- const currentIndex = samePath.findIndex((q) => q.id === questId);
184
- if (currentIndex >= 0 && currentIndex < samePath.length - 1) {
185
- const nextId = samePath[currentIndex + 1].id;
186
- if (state.quests[nextId]?.status === "locked") {
187
- state.quests[nextId].status = "active";
188
- }
189
- }
190
- // If all core quests are done, unlock first quest of each path
191
- const coreQuests = QUEST_DEFINITIONS.filter((q) => q.path === "core");
192
- const allCoreDone = coreQuests.every((q) => state.quests[q.id]?.status === "completed");
193
- if (allCoreDone) {
194
- for (const path of ["builder", "storyteller", "systems-thinker"]) {
195
- const firstInPath = QUEST_DEFINITIONS.find((q) => q.path === path && q.order === 1);
196
- if (firstInPath && state.quests[firstInPath.id]?.status === "locked") {
197
- state.quests[firstInPath.id].status = "active";
198
- }
199
- }
200
- }
201
- writeQuests(state);
202
- return { ...def, status: "completed", completed_at: questEntry.completed_at };
203
- }
204
- export function getActiveQuest() {
205
- const state = readQuests();
206
- // Prioritize core quests first
207
- for (const def of QUEST_DEFINITIONS.filter((q) => q.path === "core")) {
208
- if (state.quests[def.id]?.status === "active") {
209
- return { ...def, status: "active" };
210
- }
211
- }
212
- // Then path quests
213
- for (const def of QUEST_DEFINITIONS.filter((q) => q.path !== "core")) {
214
- if (state.quests[def.id]?.status === "active") {
215
- return { ...def, status: "active" };
216
- }
217
- }
218
- return null;
219
- }
220
- export function getQuestProgress() {
221
- const state = readQuests();
222
- const count = (path) => {
223
- const quests = QUEST_DEFINITIONS.filter((q) => q.path === path);
224
- const done = quests.filter((q) => state.quests[q.id]?.status === "completed").length;
225
- return { completed: done, total: quests.length };
226
- };
227
- const core = count("core");
228
- const builder = count("builder");
229
- const storyteller = count("storyteller");
230
- const systemsThinker = count("systems-thinker");
231
- const total = QUEST_DEFINITIONS.length;
232
- const completed = core.completed + builder.completed + storyteller.completed + systemsThinker.completed;
233
- return { completed, total, allDone: completed === total, core, builder, storyteller, systemsThinker };
234
- }
235
- export function getQuestsForPath(path) {
236
- const state = readQuests();
237
- return QUEST_DEFINITIONS
238
- .filter((q) => q.path === path)
239
- .map((def) => ({
240
- ...def,
241
- status: state.quests[def.id]?.status || "locked",
242
- completed_at: state.quests[def.id]?.completed_at,
243
- }));
244
- }
245
- /**
246
- * Try to auto-complete a quest based on which skill just ran.
247
- */
248
- export function tryAutoCompleteQuest(skillName) {
249
- const questIds = SKILL_QUEST_MAP[skillName];
250
- if (!questIds)
251
- return null;
252
- const state = readQuests();
253
- // Try to complete the first active quest that matches
254
- for (const questId of questIds) {
255
- const entry = state.quests[questId];
256
- if (!entry || entry.status !== "active")
257
- continue;
258
- const completed = completeQuest(questId);
259
- if (!completed)
260
- continue;
261
- const next = getActiveQuest();
262
- // Check if core just finished
263
- const coreQuests = QUEST_DEFINITIONS.filter((q) => q.path === "core");
264
- const allCoreDone = coreQuests.every((q) => readQuests().quests[q.id]?.status === "completed");
265
- const pathsJustUnlocked = completed.path === "core" && allCoreDone;
266
- return {
267
- completed_quest: completed.title,
268
- next_quest: next ? { id: next.id, title: next.title, description: next.description, prompt: next.prompt } : null,
269
- message: pathsJustUnlocked
270
- ? `Quest complete: "${completed.title}"! Core quests done. You've unlocked 3 paths: Builder, Storyteller, Systems Thinker. Type /quest to pick your path.`
271
- : next
272
- ? `Quest complete: "${completed.title}"! Next: "${next.title}" - ${next.description}`
273
- : `Quest complete: "${completed.title}"! All quests done. You're a BuildPartner expert.`,
274
- };
275
- }
276
- return null;
277
- }
278
- // --- App State ---
279
- export function readAppState() {
280
- try {
281
- return JSON.parse(readFileSync(STATE_PATH, "utf-8"));
282
- }
283
- catch {
284
- return { skill_first_runs: {}, quests_initialized: false };
285
- }
286
- }
287
- export function writeAppState(state) {
288
- ensureDir();
289
- writeFileSync(STATE_PATH, JSON.stringify(state, null, 2) + "\n");
290
- }
291
- export function isFirstSkillRun(skillName) {
292
- const state = readAppState();
293
- return !state.skill_first_runs[skillName];
294
- }
295
- export function markSkillRun(skillName) {
296
- const state = readAppState();
297
- state.skill_first_runs[skillName] = true;
298
- writeAppState(state);
299
- }
300
- export function setEnvironment(env) {
301
- const state = readAppState();
302
- state.environment = env;
303
- writeAppState(state);
304
- }
305
- export function getEnvironment() {
306
- const state = readAppState();
307
- return state.environment || "terminal";
308
- }
309
41
  //# sourceMappingURL=quest-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"quest-store.js","sourceRoot":"","sources":["../../../src/store/quest-store.ts"],"names":[],"mappings":"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"}
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"}
@@ -1,73 +1,10 @@
1
- export interface SkillStatus {
2
- total_uses: number;
3
- last_used: string | null;
4
- last_improved: string | null;
5
- uses_since_improved: number;
6
- }
7
- export interface StatusData {
8
- installed_at: string;
9
- improve_skill: {
10
- last_ran: string | null;
11
- skills_used_since: string[];
12
- total_skill_uses_since: number;
13
- };
14
- log_experience: {
15
- last_ran: string | null;
16
- sessions_since: number;
17
- days_since: number;
18
- };
19
- skills: Record<string, SkillStatus>;
20
- last_reminded: Record<string, string>;
21
- }
22
- export interface ConsumptionEvent {
23
- skill: string;
24
- timestamp: string;
25
- environment?: string;
26
- session_context?: string;
27
- reset?: string;
28
- skill_improved?: string;
29
- training_topic?: string;
30
- training_version?: string;
31
- tier?: string;
32
- }
33
- export interface Reminder {
34
- type: "improve_skill" | "log_experience" | "skill_stale" | "update_available";
35
- message: string;
36
- priority: "high" | "medium" | "low";
37
- }
1
+ /**
2
+ * Status store - now only handles version checking.
3
+ * All other bookkeeping (consumption, quests, reminders) moved to server.
4
+ */
38
5
  export interface VersionInfo {
39
6
  current: string;
40
7
  latest: string | null;
41
8
  update_available: boolean;
42
9
  }
43
- export declare function readStatus(): StatusData;
44
- export declare function writeStatus(status: StatusData): void;
45
- export declare function initializeStatus(): void;
46
- export declare function logConsumption(event: ConsumptionEvent): void;
47
- export declare function readConsumption(): ConsumptionEvent[];
48
- export declare function checkStatus(skillName: string, sessionContext?: string): Promise<{
49
- reminders: Reminder[];
50
- version: VersionInfo;
51
- quest_completed?: {
52
- completed_quest: string;
53
- next_quest: {
54
- id: string;
55
- title: string;
56
- description: string;
57
- prompt: string;
58
- } | null;
59
- message: string;
60
- };
61
- }>;
62
- export declare function resetStatus(type: "improve_skill" | "log_experience", skillImproved?: string): {
63
- success: boolean;
64
- };
65
- export declare function incrementSessionCounter(): void;
66
- export declare function getConsumptionMetrics(): {
67
- total_skill_runs: number;
68
- runs_by_skill: Record<string, number>;
69
- runs_by_day: Record<string, number>;
70
- runs_by_environment: Record<string, number>;
71
- environment_percentage: Record<string, number>;
72
- recent_events: ConsumptionEvent[];
73
- };
10
+ export declare function getVersionInfo(): Promise<VersionInfo>;