sqlew 4.3.0 → 4.3.1
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/CHANGELOG.md +27 -0
- package/README.md +268 -269
- package/assets/claude-md-snippets/plan-mode-integration.md +50 -48
- package/assets/config.example.toml +120 -282
- package/dist/cli.js +54 -54
- package/dist/cli.js.map +1 -1
- package/dist/init-skills.d.ts +8 -4
- package/dist/init-skills.d.ts.map +1 -1
- package/dist/init-skills.js +50 -27
- package/dist/init-skills.js.map +1 -1
- package/dist/tools/context/actions/has-updates.d.ts.map +1 -1
- package/dist/tools/context/actions/has-updates.js +0 -4
- package/dist/tools/context/actions/has-updates.js.map +1 -1
- package/dist/tools/files/help/example.d.ts.map +1 -1
- package/dist/tools/files/help/example.js +11 -0
- package/dist/tools/files/help/example.js.map +1 -1
- package/dist/tools/files/help/help.d.ts.map +1 -1
- package/dist/tools/files/help/help.js +11 -0
- package/dist/tools/files/help/help.js.map +1 -1
- package/dist/tools/suggest/actions/by-context.d.ts.map +1 -1
- package/dist/tools/suggest/actions/by-context.js +5 -15
- package/dist/tools/suggest/actions/by-context.js.map +1 -1
- package/dist/tools/suggest/actions/by-key.d.ts.map +1 -1
- package/dist/tools/suggest/actions/by-key.js +5 -15
- package/dist/tools/suggest/actions/by-key.js.map +1 -1
- package/dist/tools/suggest/actions/by-tags.d.ts.map +1 -1
- package/dist/tools/suggest/actions/by-tags.js +5 -15
- package/dist/tools/suggest/actions/by-tags.js.map +1 -1
- package/dist/tools/suggest/actions/constraint-by-context.d.ts +1 -1
- package/dist/tools/suggest/actions/constraint-by-context.d.ts.map +1 -1
- package/dist/tools/suggest/actions/constraint-by-context.js +9 -16
- package/dist/tools/suggest/actions/constraint-by-context.js.map +1 -1
- package/dist/tools/suggest/actions/constraint-by-tags.d.ts +1 -1
- package/dist/tools/suggest/actions/constraint-by-tags.d.ts.map +1 -1
- package/dist/tools/suggest/actions/constraint-by-tags.js +11 -17
- package/dist/tools/suggest/actions/constraint-by-tags.js.map +1 -1
- package/dist/tools/suggest/actions/constraint-by-text.d.ts +1 -1
- package/dist/tools/suggest/actions/constraint-by-text.d.ts.map +1 -1
- package/dist/tools/suggest/actions/constraint-by-text.js +6 -15
- package/dist/tools/suggest/actions/constraint-by-text.js.map +1 -1
- package/dist/types.d.ts +0 -228
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/suggest-helpers.d.ts +82 -0
- package/dist/utils/suggest-helpers.d.ts.map +1 -0
- package/dist/utils/suggest-helpers.js +93 -0
- package/dist/utils/suggest-helpers.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Suggest Helper Functions
|
|
3
|
+
*
|
|
4
|
+
* Shared transformation and scoring logic for suggest actions.
|
|
5
|
+
* Reduces code duplication across decision and constraint suggest operations.
|
|
6
|
+
*
|
|
7
|
+
* @since v4.3.1
|
|
8
|
+
*/
|
|
9
|
+
import { parseGroupConcatTags } from './tag-parser.js';
|
|
10
|
+
import { scoreAndRankSuggestions, filterByThreshold as filterDecisionsByThreshold, limitSuggestions as limitDecisionSuggestions } from './suggestion-scorer.js';
|
|
11
|
+
import { scoreConstraints, filterByThreshold as filterConstraintsByThreshold, limitSuggestions as limitConstraintSuggestions } from './constraint-scorer.js';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Decision Helpers
|
|
14
|
+
// ============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Transform decision candidates and score them
|
|
17
|
+
*
|
|
18
|
+
* Consolidates the common pattern of:
|
|
19
|
+
* 1. Parse GROUP_CONCAT tags
|
|
20
|
+
* 2. Map to scorer format
|
|
21
|
+
* 3. Score and rank
|
|
22
|
+
* 4. Filter by threshold
|
|
23
|
+
* 5. Apply limit
|
|
24
|
+
*
|
|
25
|
+
* @param candidates - Raw candidates from database query
|
|
26
|
+
* @param context - Scoring context (key, tags, layer, priority)
|
|
27
|
+
* @param options - Optional min_score and limit
|
|
28
|
+
* @returns Scored and filtered suggestions
|
|
29
|
+
*/
|
|
30
|
+
export function transformAndScoreDecisions(candidates, context, options) {
|
|
31
|
+
// Parse tags from GROUP_CONCAT and map to scorer format
|
|
32
|
+
const parsed = candidates.map((c) => ({
|
|
33
|
+
key_id: c.key_id,
|
|
34
|
+
key: c.key,
|
|
35
|
+
value: String(c.value), // Convert to string for scorer
|
|
36
|
+
tags: parseGroupConcatTags(c.tags),
|
|
37
|
+
layer: c.layer,
|
|
38
|
+
priority: 0, // Default priority (not stored in DB)
|
|
39
|
+
updated_ts: c.ts, // Rename ts to updated_ts for scorer
|
|
40
|
+
}));
|
|
41
|
+
// Score, filter, and limit
|
|
42
|
+
let suggestions = scoreAndRankSuggestions(context, parsed);
|
|
43
|
+
suggestions = filterDecisionsByThreshold(suggestions, options?.minScore ?? 30);
|
|
44
|
+
suggestions = limitDecisionSuggestions(suggestions, options?.limit ?? 5);
|
|
45
|
+
return suggestions;
|
|
46
|
+
}
|
|
47
|
+
// ============================================================================
|
|
48
|
+
// Constraint Helpers
|
|
49
|
+
// ============================================================================
|
|
50
|
+
/**
|
|
51
|
+
* Parse constraint tags from GROUP_CONCAT result
|
|
52
|
+
*
|
|
53
|
+
* @param tags - Comma-separated tags string or null
|
|
54
|
+
* @returns Array of tag strings
|
|
55
|
+
*/
|
|
56
|
+
export function parseConstraintTags(tags) {
|
|
57
|
+
if (!tags)
|
|
58
|
+
return [];
|
|
59
|
+
return tags.split(',').map(t => t.trim()).filter(t => t.length > 0);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Transform constraint candidates and score them
|
|
63
|
+
*
|
|
64
|
+
* Consolidates the common pattern of:
|
|
65
|
+
* 1. Parse GROUP_CONCAT tags
|
|
66
|
+
* 2. Map to scorer format
|
|
67
|
+
* 3. Score constraints
|
|
68
|
+
* 4. Filter by threshold
|
|
69
|
+
* 5. Apply limit
|
|
70
|
+
*
|
|
71
|
+
* @param candidates - Raw candidates from database query
|
|
72
|
+
* @param context - Scoring context (text, tags, layer, priority)
|
|
73
|
+
* @param options - Optional min_score and limit
|
|
74
|
+
* @returns Scored and filtered constraint suggestions
|
|
75
|
+
*/
|
|
76
|
+
export function transformAndScoreConstraints(candidates, context, options) {
|
|
77
|
+
// Parse tags from GROUP_CONCAT and map to scorer format
|
|
78
|
+
const parsed = candidates.map((c) => ({
|
|
79
|
+
id: c.constraint_id,
|
|
80
|
+
constraint_text: c.constraint_text,
|
|
81
|
+
category: c.category,
|
|
82
|
+
tags: parseConstraintTags(c.tags),
|
|
83
|
+
layer: c.layer ?? '', // Convert null to empty string
|
|
84
|
+
priority: c.priority,
|
|
85
|
+
ts: c.ts,
|
|
86
|
+
}));
|
|
87
|
+
// Score, filter, and limit
|
|
88
|
+
let suggestions = scoreConstraints(parsed, context);
|
|
89
|
+
suggestions = filterConstraintsByThreshold(suggestions, options?.minScore ?? 30);
|
|
90
|
+
suggestions = limitConstraintSuggestions(suggestions, options?.limit ?? 5);
|
|
91
|
+
return suggestions;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=suggest-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggest-helpers.js","sourceRoot":"","sources":["../../src/utils/suggest-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,uBAAuB,EACvB,iBAAiB,IAAI,0BAA0B,EAC/C,gBAAgB,IAAI,wBAAwB,EAG7C,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,IAAI,4BAA4B,EACjD,gBAAgB,IAAI,0BAA0B,EAG/C,MAAM,wBAAwB,CAAC;AAyChC,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CACxC,UAA+B,EAC/B,OAA0B,EAC1B,OAA+B;IAE/B,wDAAwD;IACxD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAG,+BAA+B;QACxD,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;QAClC,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,QAAQ,EAAE,CAAC,EAAG,sCAAsC;QACpD,UAAU,EAAE,CAAC,CAAC,EAAE,EAAG,qCAAqC;KACzD,CAAC,CAAC,CAAC;IAEJ,2BAA2B;IAC3B,IAAI,WAAW,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3D,WAAW,GAAG,0BAA0B,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC/E,WAAW,GAAG,wBAAwB,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;IAEzE,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAmB;IACrD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,4BAA4B,CAC1C,UAAsC,EACtC,OAAiC,EACjC,OAA+B;IAE/B,wDAAwD;IACxD,MAAM,MAAM,GAAuB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,EAAE,EAAE,CAAC,CAAC,aAAa;QACnB,eAAe,EAAE,CAAC,CAAC,eAAe;QAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;QACjC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,EAAG,+BAA+B;QACtD,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,EAAE,EAAE,CAAC,CAAC,EAAE;KACT,CAAC,CAAC,CAAC;IAEJ,2BAA2B;IAC3B,IAAI,WAAW,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,WAAW,GAAG,4BAA4B,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IACjF,WAAW,GAAG,0BAA0B,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;IAE3E,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
package/package.json
CHANGED