@helmai/cli 1.0.3 → 1.0.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.
package/dist/lib/api.d.ts CHANGED
@@ -15,4 +15,33 @@ export declare function me(): Promise<{
15
15
  slug: string;
16
16
  };
17
17
  }>;
18
+ export interface SyncResponse {
19
+ organization: {
20
+ ulid: string;
21
+ name: string;
22
+ slug: string;
23
+ };
24
+ projects: Array<{
25
+ ulid: string;
26
+ name: string;
27
+ slug: string;
28
+ stack: string[] | null;
29
+ }>;
30
+ rules: Array<{
31
+ ulid: string;
32
+ title: string;
33
+ description: string | null;
34
+ project_id: number | null;
35
+ priority: number;
36
+ sections: Array<{
37
+ identifier: string;
38
+ title: string;
39
+ keywords: string[];
40
+ content: string;
41
+ position: number;
42
+ }>;
43
+ }>;
44
+ synced_at: string;
45
+ }
46
+ export declare function sync(): Promise<SyncResponse>;
18
47
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,aAAa,CAAC;AAsDrB,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC,CAU3B;AAED,wBAAsB,KAAK,CACzB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,CAKxB;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAKzE;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAK5E;AAED,wBAAsB,EAAE,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,YAAY,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,CAEnJ"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,aAAa,CAAC;AAsDrB,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC,CAU3B;AAED,wBAAsB,KAAK,CACzB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,CAKxB;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAKzE;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAK5E;AAED,wBAAsB,EAAE,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,YAAY,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,CAEnJ;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACtF,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,KAAK,CAAC;YACd,UAAU,EAAE,MAAM,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnB,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC,CAElD"}
package/dist/lib/api.js CHANGED
@@ -5,6 +5,7 @@ exports.login = login;
5
5
  exports.inject = inject;
6
6
  exports.capture = capture;
7
7
  exports.me = me;
8
+ exports.sync = sync;
8
9
  const config_js_1 = require("./config.js");
9
10
  async function request(endpoint, options = {}, useAuth = true) {
10
11
  const apiUrl = (0, config_js_1.getApiUrl)();
@@ -71,4 +72,7 @@ async function capture(data) {
71
72
  async function me() {
72
73
  return request('/me');
73
74
  }
75
+ async function sync() {
76
+ return request('/sync');
77
+ }
74
78
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAkBvC,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAU5E;AAiID,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA+B9E"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AA8BvC,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAU5E;AA6ID,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAoC9E"}
package/dist/lib/hooks.js CHANGED
@@ -66,31 +66,42 @@ function installClaudeCodeHooks(home) {
66
66
  settings = {};
67
67
  }
68
68
  }
69
+ // Remove old-format hooks if present
70
+ if (settings.hooks) {
71
+ delete settings.hooks['user-prompt-submit'];
72
+ delete settings.hooks['assistant-response'];
73
+ }
69
74
  // Initialize hooks if needed
70
75
  if (!settings.hooks) {
71
76
  settings.hooks = {};
72
77
  }
73
- if (!settings.hooks['user-prompt-submit']) {
74
- settings.hooks['user-prompt-submit'] = [];
78
+ if (!settings.hooks.UserPromptSubmit) {
79
+ settings.hooks.UserPromptSubmit = [];
75
80
  }
76
- if (!settings.hooks['assistant-response']) {
77
- settings.hooks['assistant-response'] = [];
81
+ if (!settings.hooks.Stop) {
82
+ settings.hooks.Stop = [];
78
83
  }
79
84
  // Check if helm hooks already exist
80
- const hasInjectHook = settings.hooks['user-prompt-submit'].some(h => h.command.includes('helm inject'));
81
- const hasCaptureHook = settings.hooks['assistant-response'].some(h => h.command.includes('helm capture'));
85
+ const hasInjectHook = settings.hooks.UserPromptSubmit.some(entry => entry.hooks?.some(h => h.command.includes('helm inject')));
86
+ const hasCaptureHook = settings.hooks.Stop.some(entry => entry.hooks?.some(h => h.command.includes('helm capture')));
82
87
  // Add inject hook if not present
83
88
  if (!hasInjectHook) {
84
- settings.hooks['user-prompt-submit'].push({
85
- command: 'helm inject',
86
- timeout: 3000,
89
+ settings.hooks.UserPromptSubmit.push({
90
+ hooks: [{
91
+ type: 'command',
92
+ command: 'helm inject',
93
+ timeout: 3,
94
+ }],
87
95
  });
88
96
  }
89
97
  // Add capture hook if not present
90
98
  if (!hasCaptureHook) {
91
- settings.hooks['assistant-response'].push({
92
- command: 'helm capture',
93
- timeout: 3000,
99
+ settings.hooks.Stop.push({
100
+ hooks: [{
101
+ type: 'command',
102
+ command: 'helm capture',
103
+ timeout: 3,
104
+ }],
94
105
  });
95
106
  }
96
107
  // Write settings
@@ -161,12 +172,16 @@ function uninstallHooks(ide) {
161
172
  try {
162
173
  const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
163
174
  if (settings.hooks) {
164
- if (settings.hooks['user-prompt-submit']) {
165
- settings.hooks['user-prompt-submit'] = settings.hooks['user-prompt-submit'].filter(h => !h.command.includes('helm'));
175
+ // Remove new-format hooks
176
+ if (settings.hooks.UserPromptSubmit) {
177
+ settings.hooks.UserPromptSubmit = settings.hooks.UserPromptSubmit.filter(entry => !entry.hooks?.some(h => h.command.includes('helm')));
166
178
  }
167
- if (settings.hooks['assistant-response']) {
168
- settings.hooks['assistant-response'] = settings.hooks['assistant-response'].filter(h => !h.command.includes('helm'));
179
+ if (settings.hooks.Stop) {
180
+ settings.hooks.Stop = settings.hooks.Stop.filter(entry => !entry.hooks?.some(h => h.command.includes('helm')));
169
181
  }
182
+ // Clean up old-format hooks if still present
183
+ delete settings.hooks['user-prompt-submit'];
184
+ delete settings.hooks['assistant-response'];
170
185
  }
171
186
  fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
172
187
  return { success: true, message: 'Claude Code hooks removed' };
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"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"}
@@ -11,5 +11,11 @@ export declare function saveKnowledgeEntry(input: {
11
11
  content: string;
12
12
  tags?: string[];
13
13
  }): KnowledgeEntry;
14
+ export declare function loadProjectKnowledge(cwd: string): KnowledgeEntry[];
15
+ export declare function saveProjectKnowledgeEntry(cwd: string, input: {
16
+ title: string;
17
+ content: string;
18
+ tags?: string[];
19
+ }): KnowledgeEntry;
14
20
  export declare function selectRelevantKnowledge(prompt: string, entries: KnowledgeEntry[], maxEntries?: number): KnowledgeEntry[];
15
21
  //# sourceMappingURL=knowledge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/lib/knowledge.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD,wBAAgB,aAAa,IAAI,cAAc,EAAE,CAShD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,cAAc,CAoB7G;AAmBD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,UAAU,SAAI,GAAG,cAAc,EAAE,CAOnH"}
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/lib/knowledge.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAaD,wBAAgB,aAAa,IAAI,cAAc,EAAE,CAShD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,cAAc,CAoB7G;AAkCD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAgClE;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACzD,cAAc,CAyChB;AA4BD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,UAAU,SAAI,GAAG,cAAc,EAAE,CAOnH"}
@@ -35,6 +35,8 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.loadKnowledge = loadKnowledge;
37
37
  exports.saveKnowledgeEntry = saveKnowledgeEntry;
38
+ exports.loadProjectKnowledge = loadProjectKnowledge;
39
+ exports.saveProjectKnowledgeEntry = saveProjectKnowledgeEntry;
38
40
  exports.selectRelevantKnowledge = selectRelevantKnowledge;
39
41
  const fs = __importStar(require("fs"));
40
42
  const path = __importStar(require("path"));
@@ -47,6 +49,7 @@ function ensureHelmDir() {
47
49
  fs.mkdirSync(HELM_DIR, { recursive: true });
48
50
  }
49
51
  }
52
+ // --- Global knowledge (legacy ~/.helm/knowledge.json) ---
50
53
  function loadKnowledge() {
51
54
  if (!fs.existsSync(KNOWLEDGE_FILE))
52
55
  return [];
@@ -79,6 +82,108 @@ function saveKnowledgeEntry(input) {
79
82
  }
80
83
  return entry;
81
84
  }
85
+ // --- Project-scoped knowledge (.helm/knowledge/*.md) ---
86
+ const FRONTMATTER_RE = /^---\n([\s\S]*?)\n---\n([\s\S]*)$/;
87
+ function parseYamlFrontmatter(raw) {
88
+ const match = raw.match(FRONTMATTER_RE);
89
+ if (!match)
90
+ return null;
91
+ const frontmatter = match[1];
92
+ const content = match[2].trim();
93
+ let title = '';
94
+ let tags = [];
95
+ let created = '';
96
+ for (const line of frontmatter.split('\n')) {
97
+ const [key, ...rest] = line.split(':');
98
+ const value = rest.join(':').trim();
99
+ if (key.trim() === 'title')
100
+ title = value.replace(/^["']|["']$/g, '');
101
+ if (key.trim() === 'tags') {
102
+ tags = value
103
+ .replace(/^\[|\]$/g, '')
104
+ .split(',')
105
+ .map(t => t.trim().replace(/^["']|["']$/g, '').toLowerCase())
106
+ .filter(Boolean);
107
+ }
108
+ if (key.trim() === 'created')
109
+ created = value;
110
+ }
111
+ return { title, tags, created, content };
112
+ }
113
+ function loadProjectKnowledge(cwd) {
114
+ const knowledgeDir = path.join(cwd, '.helm', 'knowledge');
115
+ if (!fs.existsSync(knowledgeDir))
116
+ return [];
117
+ const entries = [];
118
+ try {
119
+ const files = fs.readdirSync(knowledgeDir).filter(f => f.endsWith('.md'));
120
+ for (const file of files) {
121
+ try {
122
+ const raw = fs.readFileSync(path.join(knowledgeDir, file), 'utf-8');
123
+ const parsed = parseYamlFrontmatter(raw);
124
+ if (parsed && parsed.content) {
125
+ entries.push({
126
+ id: path.basename(file, '.md'),
127
+ title: parsed.title || path.basename(file, '.md'),
128
+ content: parsed.content,
129
+ tags: parsed.tags,
130
+ createdAt: parsed.created || '',
131
+ });
132
+ }
133
+ }
134
+ catch {
135
+ // Skip malformed files
136
+ }
137
+ }
138
+ }
139
+ catch {
140
+ return [];
141
+ }
142
+ return entries;
143
+ }
144
+ function saveProjectKnowledgeEntry(cwd, input) {
145
+ const knowledgeDir = path.join(cwd, '.helm', 'knowledge');
146
+ if (!fs.existsSync(knowledgeDir)) {
147
+ fs.mkdirSync(knowledgeDir, { recursive: true });
148
+ }
149
+ const id = slugifyFilename(input.title.trim());
150
+ const tags = (input.tags ?? []).map(t => t.trim().toLowerCase()).filter(Boolean);
151
+ const created = new Date().toISOString();
152
+ const entry = {
153
+ id,
154
+ title: input.title.trim(),
155
+ content: input.content.trim(),
156
+ tags,
157
+ createdAt: created,
158
+ };
159
+ const frontmatter = [
160
+ '---',
161
+ `title: "${entry.title}"`,
162
+ `tags: [${tags.map(t => `"${t}"`).join(', ')}]`,
163
+ `created: ${created}`,
164
+ '---',
165
+ '',
166
+ entry.content,
167
+ ].join('\n');
168
+ const filePath = path.join(knowledgeDir, `${id}.md`);
169
+ // Avoid overwriting — append suffix if file exists
170
+ let finalPath = filePath;
171
+ let counter = 1;
172
+ while (fs.existsSync(finalPath)) {
173
+ finalPath = path.join(knowledgeDir, `${id}-${counter}.md`);
174
+ counter++;
175
+ }
176
+ fs.writeFileSync(finalPath, frontmatter);
177
+ return entry;
178
+ }
179
+ function slugifyFilename(text) {
180
+ return text
181
+ .toLowerCase()
182
+ .replace(/[^a-z0-9]+/g, '-')
183
+ .replace(/^-+|-+$/g, '')
184
+ .slice(0, 60);
185
+ }
186
+ // --- Scoring (shared between global and project knowledge) ---
82
187
  function scoreText(prompt, entry) {
83
188
  const p = prompt.toLowerCase();
84
189
  let score = 0;
@@ -88,7 +193,6 @@ function scoreText(prompt, entry) {
88
193
  if (p.includes(t))
89
194
  score += 2;
90
195
  }
91
- // Token-ish match on words from title (cheap heuristic)
92
196
  for (const w of entry.title.toLowerCase().split(/\s+/).filter(Boolean)) {
93
197
  if (w.length < 4)
94
198
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/lib/knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/lib/knowledge.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,13 @@ export interface RuleSection {
5
5
  }
6
6
  export declare function findRulesFile(cwd: string): string | null;
7
7
  export declare function parseRuleSections(markdown: string): RuleSection[];
8
+ /**
9
+ * Score a section's relevance to the prompt using weighted matching:
10
+ * - Exact keyword match in prompt: 3 points
11
+ * - Synonym of a keyword found in prompt: 2 points
12
+ * - Content word overlap (4+ char words): 1 point
13
+ */
14
+ export declare function scoreSectionRelevance(prompt: string, section: RuleSection): number;
8
15
  export declare function scoreKeywords(haystack: string, keywords: string[]): number;
9
16
  export declare function selectRelevantSections(prompt: string, sections: RuleSection[], maxSections?: number): RuleSection[];
10
17
  //# sourceMappingURL=local-rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-rules.d.ts","sourceRoot":"","sources":["../../src/lib/local-rules.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBxD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CA+BjE;AAqBD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAQ1E;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,WAAW,SAAI,GAAG,WAAW,EAAE,CAY9G"}
1
+ {"version":3,"file":"local-rules.d.ts","sourceRoot":"","sources":["../../src/lib/local-rules.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AA8BD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBxD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAMjE;AAqHD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CA4ClF;AAGD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAE1E;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,WAAW,SAAI,GAAG,WAAW,EAAE,CAW9G"}
@@ -35,11 +35,38 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.findRulesFile = findRulesFile;
37
37
  exports.parseRuleSections = parseRuleSections;
38
+ exports.scoreSectionRelevance = scoreSectionRelevance;
38
39
  exports.scoreKeywords = scoreKeywords;
39
40
  exports.selectRelevantSections = selectRelevantSections;
40
41
  const fs = __importStar(require("fs"));
41
42
  const path = __importStar(require("path"));
42
43
  const SECTION_MARKER_RE = /<!--\s*helm:section:([a-zA-Z0-9_-]+)(?:\s+keywords:([^>]+?))?\s*-->/g;
44
+ const HEADING_RE = /^##\s+(.+)$/;
45
+ // Synonym map: primary keyword → related terms that should partially match
46
+ const SYNONYM_MAP = {
47
+ test: ['tests', 'testing', 'spec', 'tdd', 'pest', 'coverage', 'phpunit', 'vitest', 'jest'],
48
+ api: ['endpoint', 'route', 'controller', 'rest', 'resource'],
49
+ auth: ['authentication', 'authorization', 'login', 'register', 'guard', 'policy', 'permission'],
50
+ database: ['migration', 'model', 'eloquent', 'query', 'schema', 'seed', 'factory'],
51
+ frontend: ['react', 'vue', 'inertia', 'component', 'ui', 'tailwind', 'css', 'blade'],
52
+ deploy: ['deployment', 'ci', 'cd', 'pipeline', 'docker', 'production'],
53
+ queue: ['job', 'dispatch', 'worker', 'async'],
54
+ error: ['exception', 'bug', 'fix', 'debug', 'issue'],
55
+ refactor: ['cleanup', 'improve', 'restructure', 'simplify', 'optimize'],
56
+ cache: ['caching', 'redis', 'memcached', 'store'],
57
+ };
58
+ // Build reverse lookup: synonym → primary keyword
59
+ const REVERSE_SYNONYMS = {};
60
+ for (const [primary, synonyms] of Object.entries(SYNONYM_MAP)) {
61
+ for (const syn of synonyms) {
62
+ if (!REVERSE_SYNONYMS[syn])
63
+ REVERSE_SYNONYMS[syn] = [];
64
+ REVERSE_SYNONYMS[syn].push(primary);
65
+ }
66
+ // Primary is also its own synonym
67
+ if (!REVERSE_SYNONYMS[primary])
68
+ REVERSE_SYNONYMS[primary] = [];
69
+ }
43
70
  function findRulesFile(cwd) {
44
71
  const helmRules = path.join(cwd, '.helm', 'rules.md');
45
72
  if (fs.existsSync(helmRules))
@@ -59,13 +86,17 @@ function findRulesFile(cwd) {
59
86
  return null;
60
87
  }
61
88
  function parseRuleSections(markdown) {
89
+ const sections = parseMarkedSections(markdown);
90
+ if (sections.length > 0)
91
+ return sections;
92
+ // Fallback: split by ## headings when no helm:section markers exist
93
+ return parseHeadingSections(markdown);
94
+ }
95
+ function parseMarkedSections(markdown) {
62
96
  const sections = [];
63
97
  const matches = [...markdown.matchAll(SECTION_MARKER_RE)];
64
- if (matches.length === 0) {
65
- // No explicit sections found. In beta/local mode we prefer to inject nothing
66
- // rather than dumping an entire doc into the prompt.
98
+ if (matches.length === 0)
67
99
  return [];
68
- }
69
100
  for (let i = 0; i < matches.length; i++) {
70
101
  const m = matches[i];
71
102
  const id = (m[1] || '').trim();
@@ -84,9 +115,69 @@ function parseRuleSections(markdown) {
84
115
  }
85
116
  return sections;
86
117
  }
118
+ function parseHeadingSections(markdown) {
119
+ const lines = markdown.split(/\r?\n/);
120
+ const sections = [];
121
+ let currentHeading = '';
122
+ let currentLines = [];
123
+ for (const line of lines) {
124
+ const headingMatch = line.match(HEADING_RE);
125
+ if (headingMatch) {
126
+ // Flush previous section
127
+ if (currentHeading && currentLines.length > 0) {
128
+ const content = currentLines.join('\n').trim();
129
+ if (content) {
130
+ sections.push({
131
+ id: slugify(currentHeading),
132
+ keywords: deriveKeywords(currentHeading),
133
+ content,
134
+ });
135
+ }
136
+ }
137
+ currentHeading = headingMatch[1].trim();
138
+ currentLines = [];
139
+ }
140
+ else if (currentHeading) {
141
+ currentLines.push(line);
142
+ }
143
+ }
144
+ // Flush last section
145
+ if (currentHeading && currentLines.length > 0) {
146
+ const content = currentLines.join('\n').trim();
147
+ if (content) {
148
+ sections.push({
149
+ id: slugify(currentHeading),
150
+ keywords: deriveKeywords(currentHeading),
151
+ content,
152
+ });
153
+ }
154
+ }
155
+ return sections;
156
+ }
157
+ function slugify(text) {
158
+ return text
159
+ .toLowerCase()
160
+ .replace(/[^a-z0-9]+/g, '-')
161
+ .replace(/^-+|-+$/g, '');
162
+ }
163
+ function deriveKeywords(heading) {
164
+ const words = heading
165
+ .toLowerCase()
166
+ .split(/[\s/&,]+/)
167
+ .map(w => w.replace(/[^a-z0-9]/g, ''))
168
+ .filter(w => w.length >= 2);
169
+ // Expand with synonyms from the map
170
+ const expanded = new Set(words);
171
+ for (const word of words) {
172
+ if (SYNONYM_MAP[word]) {
173
+ for (const syn of SYNONYM_MAP[word]) {
174
+ expanded.add(syn);
175
+ }
176
+ }
177
+ }
178
+ return [...expanded];
179
+ }
87
180
  function stripTrailingHeadings(input) {
88
- // If the next section's markdown heading is included at the end of this slice,
89
- // drop it to avoid injecting headings for non-matching sections.
90
181
  const lines = input.split(/\r?\n/);
91
182
  while (lines.length > 0) {
92
183
  const last = lines[lines.length - 1];
@@ -102,27 +193,63 @@ function stripTrailingHeadings(input) {
102
193
  }
103
194
  return lines.join('\n');
104
195
  }
105
- function scoreKeywords(haystack, keywords) {
106
- const text = haystack.toLowerCase();
196
+ /**
197
+ * Score a section's relevance to the prompt using weighted matching:
198
+ * - Exact keyword match in prompt: 3 points
199
+ * - Synonym of a keyword found in prompt: 2 points
200
+ * - Content word overlap (4+ char words): 1 point
201
+ */
202
+ function scoreSectionRelevance(prompt, section) {
203
+ const promptLower = prompt.toLowerCase();
204
+ const promptWords = new Set(promptLower.split(/\s+/).filter(w => w.length >= 4));
107
205
  let score = 0;
108
- for (const kw of keywords) {
109
- if (!kw)
206
+ const counted = new Set();
207
+ for (const kw of section.keywords) {
208
+ if (!kw || counted.has(kw))
209
+ continue;
210
+ counted.add(kw);
211
+ // Exact keyword match: 3 points
212
+ if (promptLower.includes(kw)) {
213
+ score += 3;
110
214
  continue;
111
- if (text.includes(kw.toLowerCase()))
112
- score += 1;
215
+ }
216
+ // Synonym match: check if any synonym of this keyword appears in prompt
217
+ const synonyms = SYNONYM_MAP[kw] || [];
218
+ const reversePrimaries = REVERSE_SYNONYMS[kw] || [];
219
+ const allRelated = [...synonyms, ...reversePrimaries];
220
+ let synonymFound = false;
221
+ for (const syn of allRelated) {
222
+ if (promptLower.includes(syn)) {
223
+ score += 2;
224
+ synonymFound = true;
225
+ break;
226
+ }
227
+ }
228
+ if (!synonymFound) {
229
+ // Content word overlap: check if keyword appears as a word fragment
230
+ for (const pw of promptWords) {
231
+ if (pw.includes(kw) || kw.includes(pw)) {
232
+ score += 1;
233
+ break;
234
+ }
235
+ }
236
+ }
113
237
  }
114
238
  return score;
115
239
  }
240
+ // Keep the old function name as alias for backward compat
241
+ function scoreKeywords(haystack, keywords) {
242
+ return scoreSectionRelevance(haystack, { id: '', keywords, content: '' });
243
+ }
116
244
  function selectRelevantSections(prompt, sections, maxSections = 3) {
117
- // If a doc had no keywords, it will score 0; allow 1 fallback section.
118
245
  const scored = sections
119
- .map(s => ({ s, score: s.keywords.length ? scoreKeywords(prompt, s.keywords) : 0 }))
246
+ .map(s => ({ s, score: s.keywords.length ? scoreSectionRelevance(prompt, s) : 0 }))
120
247
  .filter(x => x.s.content.trim().length > 0)
121
248
  .sort((a, b) => b.score - a.score);
122
249
  const positives = scored.filter(x => x.score > 0).map(x => x.s);
123
250
  if (positives.length > 0)
124
251
  return positives.slice(0, maxSections);
125
- // Fallback: include first section (smallest doc) if nothing matches.
252
+ // Fallback: include first section if nothing matches.
126
253
  return scored.slice(0, 1).map(x => x.s);
127
254
  }
128
255
  //# sourceMappingURL=local-rules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-rules.js","sourceRoot":"","sources":["../../src/lib/local-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-rules.js","sourceRoot":"","sources":["../../src/lib/local-rules.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,sCAiBC;AAED,8CAMC;AA2HD,sDA4CC;AAGD,sCAEC;AAED,wDAWC;AAvPD,uCAAyB;AACzB,2CAA6B;AAQ7B,MAAM,iBAAiB,GAAG,sEAAsE,CAAC;AACjG,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,2EAA2E;AAC3E,MAAM,WAAW,GAA6B;IAC5C,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;IAC1F,GAAG,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC;IAC5D,IAAI,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC;IAC/F,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;IAClF,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC;IACpF,MAAM,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC;IACtE,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC7C,KAAK,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;IACpD,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC;IACvE,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC;CAClD,CAAC;AAEF,kDAAkD;AAClD,MAAM,gBAAgB,GAA6B,EAAE,CAAC;AACtD,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;IAC9D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACvD,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,kCAAkC;IAClC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;QAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AACjE,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACtD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAE/C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAEzC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEzC,oEAAoE;IACpE,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEjG,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzC,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,UAAU;YACzB,CAAC,CAAC,UAAU;iBACP,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;iBAChC,MAAM,CAAC,OAAO,CAAC;YACpB,CAAC,CAAC,EAAE,CAAC;QAEP,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,YAAY,GAAa,EAAE,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,YAAY,EAAE,CAAC;YACjB,yBAAyB;YACzB,IAAI,cAAc,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/C,IAAI,OAAO,EAAE,CAAC;oBACZ,QAAQ,CAAC,IAAI,CAAC;wBACZ,EAAE,EAAE,OAAO,CAAC,cAAc,CAAC;wBAC3B,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC;wBACxC,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,YAAY,GAAG,EAAE,CAAC;QACpB,CAAC;aAAM,IAAI,cAAc,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,cAAc,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,OAAO,CAAC,cAAc,CAAC;gBAC3B,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC;gBACxC,OAAO;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,KAAK,GAAG,OAAO;SAClB,WAAW,EAAE;SACb,KAAK,CAAC,UAAU,CAAC;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;SACrC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAE9B,oCAAoC;IACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvB,KAAK,CAAC,GAAG,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,GAAG,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,MAAM;IACR,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,MAAc,EAAE,OAAoB;IACxE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CACpD,CAAC;IACF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QACrC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,gCAAgC;QAChC,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,wEAAwE;QACxE,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC;QAEtD,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,KAAK,IAAI,CAAC,CAAC;gBACX,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,oEAAoE;YACpE,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;gBAC7B,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBACvC,KAAK,IAAI,CAAC,CAAC;oBACX,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,0DAA0D;AAC1D,SAAgB,aAAa,CAAC,QAAgB,EAAE,QAAkB;IAChE,OAAO,qBAAqB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,SAAgB,sBAAsB,CAAC,MAAc,EAAE,QAAuB,EAAE,WAAW,GAAG,CAAC;IAC7F,MAAM,MAAM,GAAG,QAAQ;SACpB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAClF,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAErC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAEjE,sDAAsD;IACtD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,12 @@
1
+ interface SessionState {
2
+ session_id: string;
3
+ branch: string | null;
4
+ last_prompt_at: string;
5
+ prompt_count: number;
6
+ inject_count: number;
7
+ last_nudge_at?: string;
8
+ }
9
+ export declare function getOrCreateSession(cwd: string, branch: string | null): string;
10
+ export declare function getSessionState(cwd: string): SessionState | null;
11
+ export {};
12
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"AAIA,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA0BD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CA8B7E;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAEhE"}