open-wiki-spec 0.1.0 → 0.2.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.
- package/LICENSE +21 -0
- package/README.md +14 -12
- package/bin/open-wiki-spec.js +0 -0
- package/dist/cli/commands/apply.d.ts.map +1 -1
- package/dist/cli/commands/apply.js +26 -5
- package/dist/cli/commands/apply.js.map +1 -1
- package/dist/cli/commands/archive.d.ts +1 -0
- package/dist/cli/commands/archive.d.ts.map +1 -1
- package/dist/cli/commands/archive.js +12 -4
- package/dist/cli/commands/archive.js.map +1 -1
- package/dist/cli/commands/continue.d.ts.map +1 -1
- package/dist/cli/commands/continue.js +8 -4
- package/dist/cli/commands/continue.js.map +1 -1
- package/dist/cli/commands/error-handler.d.ts +6 -0
- package/dist/cli/commands/error-handler.d.ts.map +1 -0
- package/dist/cli/commands/error-handler.js +15 -0
- package/dist/cli/commands/error-handler.js.map +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +12 -3
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +3 -3
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/migrate.d.ts.map +1 -1
- package/dist/cli/commands/migrate.js +5 -1
- package/dist/cli/commands/migrate.js.map +1 -1
- package/dist/cli/commands/propose.d.ts.map +1 -1
- package/dist/cli/commands/propose.js +20 -3
- package/dist/cli/commands/propose.js.map +1 -1
- package/dist/cli/commands/query.d.ts.map +1 -1
- package/dist/cli/commands/query.js +25 -20
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/commands/status.d.ts +7 -2
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +123 -53
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/verify.d.ts +3 -0
- package/dist/cli/commands/verify.d.ts.map +1 -1
- package/dist/cli/commands/verify.js +6 -8
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/index.js +3 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/init-engine.d.ts.map +1 -1
- package/dist/cli/init/init-engine.js +65 -0
- package/dist/cli/init/init-engine.js.map +1 -1
- package/dist/cli/init/meta-files.d.ts.map +1 -1
- package/dist/cli/init/meta-files.js +8 -12
- package/dist/cli/init/meta-files.js.map +1 -1
- package/dist/cli/init/skill-generator.d.ts.map +1 -1
- package/dist/cli/init/skill-generator.js +78 -19
- package/dist/cli/init/skill-generator.js.map +1 -1
- package/dist/cli/init/types.d.ts +3 -0
- package/dist/cli/init/types.d.ts.map +1 -1
- package/dist/core/embedding/cache.d.ts +28 -0
- package/dist/core/embedding/cache.d.ts.map +1 -0
- package/dist/core/embedding/cache.js +53 -0
- package/dist/core/embedding/cache.js.map +1 -0
- package/dist/core/embedding/embedder.d.ts +26 -0
- package/dist/core/embedding/embedder.d.ts.map +1 -0
- package/dist/core/embedding/embedder.js +51 -0
- package/dist/core/embedding/embedder.js.map +1 -0
- package/dist/core/embedding/index.d.ts +5 -0
- package/dist/core/embedding/index.d.ts.map +1 -0
- package/dist/core/embedding/index.js +5 -0
- package/dist/core/embedding/index.js.map +1 -0
- package/dist/core/embedding/semantic-recall.d.ts +18 -0
- package/dist/core/embedding/semantic-recall.d.ts.map +1 -0
- package/dist/core/embedding/semantic-recall.js +37 -0
- package/dist/core/embedding/semantic-recall.js.map +1 -0
- package/dist/core/embedding/similarity.d.ts +5 -0
- package/dist/core/embedding/similarity.d.ts.map +1 -0
- package/dist/core/embedding/similarity.js +21 -0
- package/dist/core/embedding/similarity.js.map +1 -0
- package/dist/core/index/build.d.ts.map +1 -1
- package/dist/core/index/build.js +38 -3
- package/dist/core/index/build.js.map +1 -1
- package/dist/core/index/resolve.d.ts +2 -1
- package/dist/core/index/resolve.d.ts.map +1 -1
- package/dist/core/index/resolve.js +17 -4
- package/dist/core/index/resolve.js.map +1 -1
- package/dist/core/index/scan.js +1 -1
- package/dist/core/index/scan.js.map +1 -1
- package/dist/core/index/validate.d.ts +2 -1
- package/dist/core/index/validate.d.ts.map +1 -1
- package/dist/core/index/validate.js +23 -2
- package/dist/core/index/validate.js.map +1 -1
- package/dist/core/migrate/change-converter.js +5 -5
- package/dist/core/migrate/change-converter.js.map +1 -1
- package/dist/core/migrate/migrate.js +1 -1
- package/dist/core/migrate/migrate.js.map +1 -1
- package/dist/core/migrate/spec-converter.js +1 -2
- package/dist/core/migrate/spec-converter.js.map +1 -1
- package/dist/core/parser/wikilink-parser.d.ts.map +1 -1
- package/dist/core/parser/wikilink-parser.js +13 -1
- package/dist/core/parser/wikilink-parser.js.map +1 -1
- package/dist/core/retrieval/constants.d.ts +4 -1
- package/dist/core/retrieval/constants.d.ts.map +1 -1
- package/dist/core/retrieval/constants.js +3 -0
- package/dist/core/retrieval/constants.js.map +1 -1
- package/dist/core/retrieval/retrieve.d.ts +6 -0
- package/dist/core/retrieval/retrieve.d.ts.map +1 -1
- package/dist/core/retrieval/retrieve.js +17 -4
- package/dist/core/retrieval/retrieve.js.map +1 -1
- package/dist/core/retrieval/scoring.d.ts +3 -2
- package/dist/core/retrieval/scoring.d.ts.map +1 -1
- package/dist/core/retrieval/scoring.js +42 -3
- package/dist/core/retrieval/scoring.js.map +1 -1
- package/dist/core/schema/base.schema.js +1 -1
- package/dist/core/schema/base.schema.js.map +1 -1
- package/dist/core/schema/requirement.d.ts +2 -2
- package/dist/core/workflow/apply/apply.d.ts.map +1 -1
- package/dist/core/workflow/apply/apply.js +265 -15
- package/dist/core/workflow/apply/apply.js.map +1 -1
- package/dist/core/workflow/apply/feature-updater.d.ts +9 -5
- package/dist/core/workflow/apply/feature-updater.d.ts.map +1 -1
- package/dist/core/workflow/apply/feature-updater.js +130 -8
- package/dist/core/workflow/apply/feature-updater.js.map +1 -1
- package/dist/core/workflow/apply/types.d.ts +5 -0
- package/dist/core/workflow/apply/types.d.ts.map +1 -1
- package/dist/core/workflow/continue/continue.d.ts +1 -0
- package/dist/core/workflow/continue/continue.d.ts.map +1 -1
- package/dist/core/workflow/continue/continue.js +94 -34
- package/dist/core/workflow/continue/continue.js.map +1 -1
- package/dist/core/workflow/continue/types.d.ts +1 -1
- package/dist/core/workflow/continue/types.d.ts.map +1 -1
- package/dist/core/workflow/propose/note-creator.d.ts +2 -0
- package/dist/core/workflow/propose/note-creator.d.ts.map +1 -1
- package/dist/core/workflow/propose/note-creator.js +33 -10
- package/dist/core/workflow/propose/note-creator.js.map +1 -1
- package/dist/core/workflow/propose/propose.d.ts.map +1 -1
- package/dist/core/workflow/propose/propose.js +131 -14
- package/dist/core/workflow/propose/propose.js.map +1 -1
- package/dist/core/workflow/propose/query-normalizer.d.ts +7 -1
- package/dist/core/workflow/propose/query-normalizer.d.ts.map +1 -1
- package/dist/core/workflow/propose/query-normalizer.js +52 -2
- package/dist/core/workflow/propose/query-normalizer.js.map +1 -1
- package/dist/core/workflow/propose/types.d.ts +7 -3
- package/dist/core/workflow/propose/types.d.ts.map +1 -1
- package/dist/core/workflow/query/query-note-creator.js +1 -1
- package/dist/core/workflow/query/query-note-creator.js.map +1 -1
- package/dist/core/workflow/query/query-search.d.ts +3 -1
- package/dist/core/workflow/query/query-search.d.ts.map +1 -1
- package/dist/core/workflow/query/query-search.js +6 -2
- package/dist/core/workflow/query/query-search.js.map +1 -1
- package/dist/core/workflow/verify/completeness.d.ts +2 -2
- package/dist/core/workflow/verify/completeness.d.ts.map +1 -1
- package/dist/core/workflow/verify/completeness.js +101 -5
- package/dist/core/workflow/verify/completeness.js.map +1 -1
- package/dist/core/workflow/verify/correctness.d.ts +6 -0
- package/dist/core/workflow/verify/correctness.d.ts.map +1 -1
- package/dist/core/workflow/verify/correctness.js +35 -0
- package/dist/core/workflow/verify/correctness.js.map +1 -1
- package/dist/core/workflow/verify/index.d.ts +2 -2
- package/dist/core/workflow/verify/index.d.ts.map +1 -1
- package/dist/core/workflow/verify/index.js +2 -2
- package/dist/core/workflow/verify/index.js.map +1 -1
- package/dist/core/workflow/verify/vault-integrity.d.ts +11 -0
- package/dist/core/workflow/verify/vault-integrity.d.ts.map +1 -1
- package/dist/core/workflow/verify/vault-integrity.js +47 -2
- package/dist/core/workflow/verify/vault-integrity.js.map +1 -1
- package/dist/core/workflow/verify/verify.d.ts.map +1 -1
- package/dist/core/workflow/verify/verify.js +6 -2
- package/dist/core/workflow/verify/verify.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/types/index-record.d.ts +2 -1
- package/dist/types/index-record.d.ts.map +1 -1
- package/dist/types/retrieval.d.ts +2 -0
- package/dist/types/retrieval.d.ts.map +1 -1
- package/dist/utils/path-safety.d.ts +8 -0
- package/dist/utils/path-safety.d.ts.map +1 -0
- package/dist/utils/path-safety.js +15 -0
- package/dist/utils/path-safety.js.map +1 -0
- package/package.json +4 -3
|
@@ -7,6 +7,7 @@ import type { SequencingResult } from '../../../types/sequencing.js';
|
|
|
7
7
|
export declare function createFeatureNote(vaultRoot: string, query: QueryObject, index: VaultIndex, deps: Pick<ProposeDeps, 'writeFile'>): {
|
|
8
8
|
id: string;
|
|
9
9
|
path: string;
|
|
10
|
+
title: string;
|
|
10
11
|
};
|
|
11
12
|
/**
|
|
12
13
|
* Create a Change note linked to a Feature with stub sections.
|
|
@@ -17,6 +18,7 @@ export declare function createChangeNote(vaultRoot: string, feature: {
|
|
|
17
18
|
}, query: QueryObject, sequencingFull: SequencingResult, index: VaultIndex, deps: Pick<ProposeDeps, 'writeFile'>): {
|
|
18
19
|
id: string;
|
|
19
20
|
path: string;
|
|
21
|
+
title: string;
|
|
20
22
|
};
|
|
21
23
|
/**
|
|
22
24
|
* Compute depends_on from sequencing analysis.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note-creator.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/propose/note-creator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"note-creator.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/propose/note-creator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAIrE;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GACnC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAiD7C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACvC,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,gBAAgB,EAChC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GACnC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA6D7C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACvB,cAAc,EAAE,gBAAgB,GAC/B,MAAM,EAAE,CA0BV;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACvB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,UAAU,GAChB,MAAM,EAAE,CAoBV"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { join } from 'node:path';
|
|
2
2
|
import { stringify } from 'yaml';
|
|
3
3
|
import { generateId } from '../../../utils/id-generator.js';
|
|
4
|
+
import { assertInsideVault } from '../../../utils/path-safety.js';
|
|
4
5
|
/**
|
|
5
6
|
* Create a Feature note with stub sections.
|
|
6
7
|
*/
|
|
7
8
|
export function createFeatureNote(vaultRoot, query, index, deps) {
|
|
8
|
-
const featureId = generateId('feature', query.summary);
|
|
9
|
+
const featureId = deduplicateId(generateId('feature', query.summary), index);
|
|
9
10
|
const title = titleFromId(featureId, 'feature');
|
|
11
|
+
const noteTitle = `Feature: ${title}`;
|
|
10
12
|
// Resolve systems from query's system_terms
|
|
11
13
|
const systems = [];
|
|
12
14
|
for (const term of query.system_terms) {
|
|
@@ -19,6 +21,7 @@ export function createFeatureNote(vaultRoot, query, index, deps) {
|
|
|
19
21
|
type: 'feature',
|
|
20
22
|
id: featureId,
|
|
21
23
|
status: 'active',
|
|
24
|
+
aliases: [noteTitle, title],
|
|
22
25
|
systems,
|
|
23
26
|
sources: [],
|
|
24
27
|
decisions: [],
|
|
@@ -26,7 +29,7 @@ export function createFeatureNote(vaultRoot, query, index, deps) {
|
|
|
26
29
|
tags: ['feature'],
|
|
27
30
|
};
|
|
28
31
|
const body = [
|
|
29
|
-
`#
|
|
32
|
+
`# ${noteTitle}`,
|
|
30
33
|
'',
|
|
31
34
|
'## Purpose',
|
|
32
35
|
'',
|
|
@@ -43,31 +46,37 @@ export function createFeatureNote(vaultRoot, query, index, deps) {
|
|
|
43
46
|
].join('\n');
|
|
44
47
|
const content = formatNoteContent(frontmatter, body);
|
|
45
48
|
const featurePath = join(vaultRoot, 'wiki', '03-features', `${slugFromId(featureId)}.md`);
|
|
49
|
+
assertInsideVault(featurePath, vaultRoot);
|
|
46
50
|
deps.writeFile(featurePath, content);
|
|
47
|
-
return { id: featureId, path: featurePath };
|
|
51
|
+
return { id: featureId, path: featurePath, title: noteTitle };
|
|
48
52
|
}
|
|
49
53
|
/**
|
|
50
54
|
* Create a Change note linked to a Feature with stub sections.
|
|
51
55
|
*/
|
|
52
56
|
export function createChangeNote(vaultRoot, feature, query, sequencingFull, index, deps) {
|
|
53
|
-
const changeId = generateId('change', query.summary);
|
|
57
|
+
const changeId = deduplicateId(generateId('change', query.summary), index);
|
|
54
58
|
const title = titleFromId(changeId, 'change');
|
|
55
59
|
const depends_on = computeDependsOn(feature, sequencingFull);
|
|
56
60
|
const touches = computeTouches(feature, query, index);
|
|
57
|
-
const featureTitle = feature.title ?? feature.id;
|
|
61
|
+
const featureTitle = feature.title ?? titleFromId(feature.id, 'feature');
|
|
62
|
+
const changeNoteTitle = `Change: ${title}`;
|
|
58
63
|
const frontmatter = {
|
|
59
64
|
type: 'change',
|
|
60
65
|
id: changeId,
|
|
61
66
|
status: 'proposed',
|
|
62
|
-
created_at: new Date().
|
|
67
|
+
created_at: new Date().toLocaleDateString('en-CA'),
|
|
68
|
+
aliases: [changeNoteTitle, title],
|
|
63
69
|
feature: `[[${featureTitle}]]`,
|
|
64
70
|
depends_on: depends_on.map((id) => {
|
|
65
71
|
const rec = index.records.get(id);
|
|
66
72
|
return `[[${rec?.title ?? id}]]`;
|
|
67
73
|
}),
|
|
68
|
-
touches: touches.map((
|
|
69
|
-
|
|
70
|
-
|
|
74
|
+
touches: touches.map((touchId) => {
|
|
75
|
+
if (touchId === feature.id) {
|
|
76
|
+
return `[[${featureTitle}]]`;
|
|
77
|
+
}
|
|
78
|
+
const rec = index.records.get(touchId);
|
|
79
|
+
return `[[${rec?.title ?? touchId}]]`;
|
|
71
80
|
}),
|
|
72
81
|
systems: [],
|
|
73
82
|
sources: [],
|
|
@@ -96,8 +105,9 @@ export function createChangeNote(vaultRoot, feature, query, sequencingFull, inde
|
|
|
96
105
|
].join('\n');
|
|
97
106
|
const content = formatNoteContent(frontmatter, body);
|
|
98
107
|
const changePath = join(vaultRoot, 'wiki', '04-changes', `${slugFromId(changeId)}.md`);
|
|
108
|
+
assertInsideVault(changePath, vaultRoot);
|
|
99
109
|
deps.writeFile(changePath, content);
|
|
100
|
-
return { id: changeId, path: changePath };
|
|
110
|
+
return { id: changeId, path: changePath, title: `Change: ${title}` };
|
|
101
111
|
}
|
|
102
112
|
/**
|
|
103
113
|
* Compute depends_on from sequencing analysis.
|
|
@@ -161,6 +171,19 @@ function findSystemByName(term, index) {
|
|
|
161
171
|
}
|
|
162
172
|
return null;
|
|
163
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* If `id` already exists in the index (including archived records),
|
|
176
|
+
* append `-2`, `-3`, etc. until a unique ID is found.
|
|
177
|
+
*/
|
|
178
|
+
function deduplicateId(id, index) {
|
|
179
|
+
if (!index.records.has(id))
|
|
180
|
+
return id;
|
|
181
|
+
let suffix = 2;
|
|
182
|
+
while (index.records.has(`${id}-${suffix}`)) {
|
|
183
|
+
suffix++;
|
|
184
|
+
}
|
|
185
|
+
return `${id}-${suffix}`;
|
|
186
|
+
}
|
|
164
187
|
function titleFromId(id, prefix) {
|
|
165
188
|
const slug = id.startsWith(`${prefix}-`) ? id.slice(prefix.length + 1) : id;
|
|
166
189
|
return slug
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note-creator.js","sourceRoot":"","sources":["../../../../src/core/workflow/propose/note-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAIjC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"note-creator.js","sourceRoot":"","sources":["../../../../src/core/workflow/propose/note-creator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/propose/propose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,aAAa,EAId,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/propose/propose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,aAAa,EAId,MAAM,YAAY,CAAC;AA4FpB;;;;;;;;;GASG;AACH,wBAAsB,OAAO,CAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,aAAa,CAAC,CAyIxB"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import { normalizeQuery } from './query-normalizer.js';
|
|
1
|
+
import { normalizeQuery, enrichSystemTerms } from './query-normalizer.js';
|
|
2
2
|
import { checkPlannedPrerequisites } from './prerequisites.js';
|
|
3
3
|
import { createFeatureNote, createChangeNote } from './note-creator.js';
|
|
4
|
+
import { computeSemanticRecall } from '../../embedding/semantic-recall.js';
|
|
5
|
+
import { createEmbedder, DEFAULT_MODEL } from '../../embedding/embedder.js';
|
|
6
|
+
import { loadEmbeddingCache, createEmptyCache, saveEmbeddingCache, getCachedVector, setCachedVector } from '../../embedding/cache.js';
|
|
7
|
+
import * as path from 'node:path';
|
|
4
8
|
/**
|
|
5
9
|
* Map local intent aliases to RetrievalQuery intent.
|
|
6
10
|
*/
|
|
@@ -15,7 +19,7 @@ function mapIntent(intent) {
|
|
|
15
19
|
* Run preflight: sequencing analysis + retrieval with classification.
|
|
16
20
|
* Classification is done inside retrieve() by plan 05. Plan 07 does NOT re-classify.
|
|
17
21
|
*/
|
|
18
|
-
function runPreflight(query, index, deps) {
|
|
22
|
+
function runPreflight(query, index, deps, semanticScores) {
|
|
19
23
|
const sequencingFull = deps.analyzeSequencing(index.records);
|
|
20
24
|
const retrieval = deps.retrieve(index, {
|
|
21
25
|
intent: mapIntent(query.intent),
|
|
@@ -24,7 +28,7 @@ function runPreflight(query, index, deps) {
|
|
|
24
28
|
system_terms: query.system_terms,
|
|
25
29
|
entity_terms: query.entity_terms,
|
|
26
30
|
status_bias: query.status_bias,
|
|
27
|
-
}, { sequencing: sequencingFull });
|
|
31
|
+
}, { sequencing: sequencingFull, semanticScores });
|
|
28
32
|
return { retrieval, sequencingFull };
|
|
29
33
|
}
|
|
30
34
|
/**
|
|
@@ -77,19 +81,103 @@ function extractSequencingWarnings(sequencingFull) {
|
|
|
77
81
|
export async function propose(userRequest, options, deps) {
|
|
78
82
|
// 0. Build index
|
|
79
83
|
const index = await deps.buildIndex(options.vaultRoot);
|
|
80
|
-
// 1. Normalize query
|
|
81
|
-
const
|
|
84
|
+
// 1. Normalize query + enrich system_terms from index
|
|
85
|
+
const rawQuery = normalizeQuery(userRequest, options.keywords);
|
|
86
|
+
const query = enrichSystemTerms(rawQuery, index);
|
|
87
|
+
// 1b. Compute semantic recall (graceful degradation if embedder unavailable)
|
|
88
|
+
let semanticScores;
|
|
89
|
+
try {
|
|
90
|
+
const embedder = await createEmbedder();
|
|
91
|
+
if (embedder.available) {
|
|
92
|
+
const cachePath = path.join(options.vaultRoot, '.ows-cache', 'embeddings.json');
|
|
93
|
+
const cache = loadEmbeddingCache(cachePath, DEFAULT_MODEL) ?? createEmptyCache(DEFAULT_MODEL);
|
|
94
|
+
// Refresh stale/missing embeddings before recall
|
|
95
|
+
let cacheUpdated = false;
|
|
96
|
+
for (const [id, record] of index.records) {
|
|
97
|
+
if (!getCachedVector(cache, id, record.content_hash) && record.raw_text) {
|
|
98
|
+
// Include title for better semantic matching (e.g., "회원가입" in title)
|
|
99
|
+
const embeddingText = `${record.title}\n${record.raw_text}`.slice(0, 512);
|
|
100
|
+
const vec = await embedder.embed(embeddingText);
|
|
101
|
+
if (vec) {
|
|
102
|
+
setCachedVector(cache, id, vec, record.content_hash);
|
|
103
|
+
cacheUpdated = true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (cacheUpdated && !options.dryRun) {
|
|
108
|
+
saveEmbeddingCache(cachePath, cache);
|
|
109
|
+
}
|
|
110
|
+
const semanticInput = query.override_keywords && query.override_keywords.length > 0
|
|
111
|
+
? query.override_keywords.join(' ')
|
|
112
|
+
: query.summary;
|
|
113
|
+
const recall = await computeSemanticRecall(semanticInput, cache, embedder);
|
|
114
|
+
if (recall.scores.size > 0) {
|
|
115
|
+
semanticScores = recall.scores;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// Embedding unavailable — proceed with lexical-only retrieval
|
|
121
|
+
}
|
|
82
122
|
// 2. Run preflight
|
|
83
|
-
const { retrieval, sequencingFull } = runPreflight(query, index, deps);
|
|
84
|
-
// 3. Allow force override
|
|
123
|
+
const { retrieval, sequencingFull } = runPreflight(query, index, deps, semanticScores);
|
|
124
|
+
// 3. Allow force override (with candidate type validation)
|
|
85
125
|
let effectiveRetrieval = retrieval;
|
|
86
126
|
if (options.forceClassification) {
|
|
87
|
-
|
|
127
|
+
// When forceTargetId is specified, reorder candidates so the target is first
|
|
128
|
+
let reorderedCandidates = retrieval.candidates;
|
|
129
|
+
if (options.forceTargetId) {
|
|
130
|
+
const targetIdx = retrieval.candidates.findIndex((c) => c.id === options.forceTargetId);
|
|
131
|
+
if (targetIdx === -1) {
|
|
132
|
+
throw new Error(`--force-target id "${options.forceTargetId}" not found among retrieval candidates. ` +
|
|
133
|
+
`Available: ${retrieval.candidates.map((c) => c.id).join(', ') || '(none)'}`);
|
|
134
|
+
}
|
|
135
|
+
reorderedCandidates = [
|
|
136
|
+
retrieval.candidates[targetIdx],
|
|
137
|
+
...retrieval.candidates.slice(0, targetIdx),
|
|
138
|
+
...retrieval.candidates.slice(targetIdx + 1),
|
|
139
|
+
];
|
|
140
|
+
}
|
|
141
|
+
const topCandidate = reorderedCandidates[0];
|
|
142
|
+
if (topCandidate) {
|
|
143
|
+
const expectedType = options.forceClassification === 'existing_change' ? 'change'
|
|
144
|
+
: options.forceClassification === 'existing_feature' ? 'feature'
|
|
145
|
+
: null;
|
|
146
|
+
if (expectedType && topCandidate.type !== expectedType) {
|
|
147
|
+
return {
|
|
148
|
+
action: 'asked_user',
|
|
149
|
+
retrieval,
|
|
150
|
+
classification: buildClassificationResult(retrieval),
|
|
151
|
+
target_change: null,
|
|
152
|
+
target_feature: null,
|
|
153
|
+
prerequisites: null,
|
|
154
|
+
transitioned_to_planned: false,
|
|
155
|
+
sequencing_warnings: extractSequencingWarnings(sequencingFull),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
effectiveRetrieval = { ...retrieval, candidates: reorderedCandidates, classification: options.forceClassification };
|
|
160
|
+
}
|
|
161
|
+
// 4. Engine guardrail: needs_confirmation blocks note creation unless confirmed
|
|
162
|
+
if (effectiveRetrieval.classification === 'needs_confirmation' &&
|
|
163
|
+
!options.forceClassification &&
|
|
164
|
+
!options.confirm) {
|
|
165
|
+
const guardedClassification = buildClassificationResult(effectiveRetrieval);
|
|
166
|
+
return {
|
|
167
|
+
action: 'asked_user',
|
|
168
|
+
retrieval: effectiveRetrieval,
|
|
169
|
+
classification: guardedClassification,
|
|
170
|
+
target_change: null,
|
|
171
|
+
target_feature: null,
|
|
172
|
+
prerequisites: null,
|
|
173
|
+
transitioned_to_planned: false,
|
|
174
|
+
sequencing_warnings: extractSequencingWarnings(sequencingFull),
|
|
175
|
+
};
|
|
88
176
|
}
|
|
89
|
-
//
|
|
177
|
+
// 5. Build classification result
|
|
90
178
|
const classification = buildClassificationResult(effectiveRetrieval);
|
|
91
179
|
const sequencing_warnings = extractSequencingWarnings(sequencingFull);
|
|
92
|
-
//
|
|
180
|
+
// 6. Dry run
|
|
93
181
|
if (options.dryRun) {
|
|
94
182
|
return {
|
|
95
183
|
action: classificationToAction(classification.classification),
|
|
@@ -102,7 +190,7 @@ export async function propose(userRequest, options, deps) {
|
|
|
102
190
|
sequencing_warnings,
|
|
103
191
|
};
|
|
104
192
|
}
|
|
105
|
-
//
|
|
193
|
+
// 7. Execute post-classification action
|
|
106
194
|
return executePostClassification(classification, query, sequencingFull, effectiveRetrieval, index, options.vaultRoot, sequencing_warnings, deps);
|
|
107
195
|
}
|
|
108
196
|
function classificationToAction(classification) {
|
|
@@ -146,7 +234,9 @@ function executePostClassification(classification, query, sequencingFull, retrie
|
|
|
146
234
|
if (!feature) {
|
|
147
235
|
return makeAskedUserResult(retrieval, classification, sequencing_warnings);
|
|
148
236
|
}
|
|
149
|
-
const { id: changeId, path: changePath } = createChangeNote(vaultRoot, { id: feature.id, title: feature.title }, query, sequencingFull, index, deps);
|
|
237
|
+
const { id: changeId, path: changePath, title: changeTitle } = createChangeNote(vaultRoot, { id: feature.id, title: feature.title }, query, sequencingFull, index, deps);
|
|
238
|
+
// Update Feature's changes field to include the new Change
|
|
239
|
+
updateFeatureChangesField(feature.path, changeTitle ?? changeId, deps);
|
|
150
240
|
const parsed = deps.parseNote(changePath);
|
|
151
241
|
const prerequisites = checkPlannedPrerequisites(parsed);
|
|
152
242
|
return {
|
|
@@ -165,8 +255,10 @@ function executePostClassification(classification, query, sequencingFull, retrie
|
|
|
165
255
|
};
|
|
166
256
|
}
|
|
167
257
|
case 'new_feature': {
|
|
168
|
-
const { id: featureId, path: featurePath } = createFeatureNote(vaultRoot, query, index, deps);
|
|
169
|
-
const { id: changeId, path: changePath } = createChangeNote(vaultRoot, { id: featureId }, query, sequencingFull, index, deps);
|
|
258
|
+
const { id: featureId, path: featurePath, title: featureTitle } = createFeatureNote(vaultRoot, query, index, deps);
|
|
259
|
+
const { id: changeId, path: changePath, title: changeTitle } = createChangeNote(vaultRoot, { id: featureId, title: featureTitle }, query, sequencingFull, index, deps);
|
|
260
|
+
// Update Feature's changes field
|
|
261
|
+
updateFeatureChangesField(featurePath, changeTitle ?? changeId, deps);
|
|
170
262
|
const parsed = deps.parseNote(changePath);
|
|
171
263
|
const prerequisites = checkPlannedPrerequisites(parsed);
|
|
172
264
|
return {
|
|
@@ -201,4 +293,29 @@ function makeAskedUserResult(retrieval, classification, sequencing_warnings) {
|
|
|
201
293
|
sequencing_warnings,
|
|
202
294
|
};
|
|
203
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* Update a Feature note's `changes` frontmatter field to include a new Change.
|
|
298
|
+
*/
|
|
299
|
+
function updateFeatureChangesField(featurePath, changeTitle, deps) {
|
|
300
|
+
try {
|
|
301
|
+
const content = deps.readFile(featurePath);
|
|
302
|
+
const wikilink = `"[[${changeTitle}]]"`;
|
|
303
|
+
// Check if already included
|
|
304
|
+
if (content.includes(wikilink) || content.includes(`[[${changeTitle}]]`))
|
|
305
|
+
return;
|
|
306
|
+
// Find `changes:` field in frontmatter and append
|
|
307
|
+
const updated = content.replace(/^(changes:\s*\[)(.*?)(\])/m, (_match, prefix, existing, suffix) => {
|
|
308
|
+
const trimmed = existing.trim();
|
|
309
|
+
if (!trimmed)
|
|
310
|
+
return `${prefix}${wikilink}${suffix}`;
|
|
311
|
+
return `${prefix}${trimmed}, ${wikilink}${suffix}`;
|
|
312
|
+
}).replace(/^(changes:)\s*$/m, `$1\n - ${wikilink}`);
|
|
313
|
+
if (updated !== content) {
|
|
314
|
+
deps.writeFile(featurePath, updated);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
catch {
|
|
318
|
+
// Best-effort — don't fail propose if Feature update fails
|
|
319
|
+
}
|
|
320
|
+
}
|
|
204
321
|
//# sourceMappingURL=propose.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propose.js","sourceRoot":"","sources":["../../../../src/core/workflow/propose/propose.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"propose.js","sourceRoot":"","sources":["../../../../src/core/workflow/propose/propose.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAoC,MAAM,mBAAmB,CAAC;AAC1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtI,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;GAEG;AACH,SAAS,SAAS,CAAC,MAAc;IAC/B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC5B,KAAK,aAAa,CAAC,CAAC,OAAO,OAAO,CAAC;QACnC,OAAO,CAAC,CAAC,OAAO,MAA+C,CAAC;IAClE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CACnB,KAAkB,EAClB,KAAiB,EACjB,IAAiB,EACjB,cAA4C;IAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;QACrC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;QAC/B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC;IAEnD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,SAA0B;IAC3D,OAAO;QACL,cAAc,EAAE,SAAS,CAAC,cAAc;QACxC,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,iBAAiB,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI;QAClD,mBAAmB,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI;QACpD,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE;KAChD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAC/B,MAAmB,EACnB,KAAiB;IAEjB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,cAAgC;IACjE,OAAO,cAAc,CAAC,OAAO,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC1B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACtB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QACnB,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC1B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QACnB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QACrB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxB,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAClC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,WAAmB,EACnB,OAAuB,EACvB,IAAiB;IAEjB,iBAAiB;IACjB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvD,sDAAsD;IACtD,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEjD,6EAA6E;IAC7E,IAAI,cAAuD,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAE9F,iDAAiD;YACjD,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACxE,qEAAqE;oBACrE,MAAM,aAAa,GAAG,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC1E,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;oBAChD,IAAI,GAAG,EAAE,CAAC;wBACR,eAAe,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;wBACrD,YAAY,GAAG,IAAI,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;gBACjF,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;gBACnC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3E,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC3B,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;IAChE,CAAC;IAED,mBAAmB;IACnB,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAEvF,2DAA2D;IAC3D,IAAI,kBAAkB,GAAG,SAAS,CAAC;IACnC,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAChC,6EAA6E;QAC7E,IAAI,mBAAmB,GAAG,SAAS,CAAC,UAAU,CAAC;QAC/C,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;YACxF,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,sBAAsB,OAAO,CAAC,aAAa,0CAA0C;oBACrF,cAAc,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAC7E,CAAC;YACJ,CAAC;YACD,mBAAmB,GAAG;gBACpB,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC/B,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;gBAC3C,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,KAAK,iBAAiB,CAAC,CAAC,CAAC,QAAQ;gBAC/E,CAAC,CAAC,OAAO,CAAC,mBAAmB,KAAK,kBAAkB,CAAC,CAAC,CAAC,SAAS;oBAChE,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACvD,OAAO;oBACL,MAAM,EAAE,YAAY;oBACpB,SAAS;oBACT,cAAc,EAAE,yBAAyB,CAAC,SAAS,CAAC;oBACpD,aAAa,EAAE,IAAI;oBACnB,cAAc,EAAE,IAAI;oBACpB,aAAa,EAAE,IAAI;oBACnB,uBAAuB,EAAE,KAAK;oBAC9B,mBAAmB,EAAE,yBAAyB,CAAC,cAAc,CAAC;iBAC/D,CAAC;YACJ,CAAC;QACH,CAAC;QACD,kBAAkB,GAAG,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACtH,CAAC;IAED,gFAAgF;IAChF,IACE,kBAAkB,CAAC,cAAc,KAAK,oBAAoB;QAC1D,CAAC,OAAO,CAAC,mBAAmB;QAC5B,CAAC,OAAO,CAAC,OAAO,EAChB,CAAC;QACD,MAAM,qBAAqB,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;QAC5E,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,SAAS,EAAE,kBAAkB;YAC7B,cAAc,EAAE,qBAAqB;YACrC,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,uBAAuB,EAAE,KAAK;YAC9B,mBAAmB,EAAE,yBAAyB,CAAC,cAAc,CAAC;SAC/D,CAAC;IACJ,CAAC;IAED,iCAAiC;IACjC,MAAM,cAAc,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;IACrE,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;IAEtE,aAAa;IACb,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACL,MAAM,EAAE,sBAAsB,CAAC,cAAc,CAAC,cAAc,CAAC;YAC7D,SAAS,EAAE,kBAAkB;YAC7B,cAAc;YACd,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,uBAAuB,EAAE,KAAK;YAC9B,mBAAmB;SACpB,CAAC;IACJ,CAAC;IAED,wCAAwC;IACxC,OAAO,yBAAyB,CAC9B,cAAc,EACd,KAAK,EACL,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,OAAO,CAAC,SAAS,EACjB,mBAAmB,EACnB,IAAI,CACL,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,cAAsB;IACpD,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,iBAAiB,CAAC,CAAC,OAAO,kBAAkB,CAAC;QAClD,KAAK,kBAAkB,CAAC,CAAC,OAAO,gBAAgB,CAAC;QACjD,KAAK,aAAa,CAAC,CAAC,OAAO,4BAA4B,CAAC;QACxD,KAAK,oBAAoB,CAAC,CAAC,OAAO,YAAY,CAAC;QAC/C,OAAO,CAAC,CAAC,OAAO,YAAY,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAChC,cAAoC,EACpC,KAAkB,EAClB,cAAgC,EAChC,SAA0B,EAC1B,KAAiB,EACjB,SAAiB,EACjB,mBAA6B,EAC7B,IAAiB;IAEjB,QAAQ,cAAc,CAAC,cAAc,EAAE,CAAC;QACtC,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,SAAS,GAAG,cAAc,CAAC,iBAAiB,CAAC;YACnD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO;gBACL,MAAM,EAAE,kBAAkB;gBAC1B,SAAS;gBACT,cAAc;gBACd,aAAa,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;gBAC1E,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;gBACvE,aAAa,EAAE,IAAI;gBACnB,uBAAuB,EAAE,KAAK;gBAC9B,mBAAmB;aACpB,CAAC;QACJ,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,MAAM,SAAS,GAAG,cAAc,CAAC,iBAAiB,CAAC;YACnD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAC7E,SAAS,EACT,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EACxC,KAAK,EACL,cAAc,EACd,KAAK,EACL,IAAI,CACL,CAAC;YAEF,2DAA2D;YAC3D,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,IAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEvE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAExD,OAAO;gBACL,MAAM,EAAE,gBAAgB;gBACxB,SAAS;gBACT,cAAc;gBACd,aAAa,EAAE;oBACb,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;iBAC5D;gBACD,cAAc,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;gBACtD,aAAa;gBACb,uBAAuB,EAAE,aAAa,CAAC,YAAY;gBACnD,mBAAmB;aACpB,CAAC;QACJ,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAEnH,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAC7E,SAAS,EACT,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,EACtC,KAAK,EACL,cAAc,EACd,KAAK,EACL,IAAI,CACL,CAAC;YAEF,iCAAiC;YACjC,yBAAyB,CAAC,WAAW,EAAE,WAAW,IAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEtE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAExD,OAAO;gBACL,MAAM,EAAE,4BAA4B;gBACpC,SAAS;gBACT,cAAc;gBACd,aAAa,EAAE;oBACb,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;iBAC5D;gBACD,cAAc,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;gBACpD,aAAa;gBACb,uBAAuB,EAAE,aAAa,CAAC,YAAY;gBACnD,mBAAmB;aACpB,CAAC;QACJ,CAAC;QAED,KAAK,oBAAoB,CAAC;QAC1B;YACE,OAAO,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,SAA0B,EAC1B,cAAoC,EACpC,mBAA6B;IAE7B,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,SAAS;QACT,cAAc;QACd,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;QACnB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAChC,WAAmB,EACnB,WAAmB,EACnB,IAAiD;IAEjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,WAAW,KAAK,CAAC;QACxC,4BAA4B;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,WAAW,IAAI,CAAC;YAAE,OAAO;QACjF,kDAAkD;QAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAC7B,4BAA4B,EAC5B,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO;gBAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAC;YACrD,OAAO,GAAG,MAAM,GAAG,OAAO,KAAK,QAAQ,GAAG,MAAM,EAAE,CAAC;QACrD,CAAC,CACF,CAAC,OAAO,CACP,kBAAkB,EAClB,WAAW,QAAQ,EAAE,CACtB,CAAC;QACF,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;IAC7D,CAAC;AACH,CAAC"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import type { QueryObject } from './types.js';
|
|
2
|
+
import type { VaultIndex } from '../../../types/index-record.js';
|
|
2
3
|
/**
|
|
3
4
|
* Normalize a natural language user request into a structured QueryObject.
|
|
4
5
|
* Intent detection + term extraction.
|
|
5
6
|
*/
|
|
6
|
-
export declare function normalizeQuery(userRequest: string): QueryObject;
|
|
7
|
+
export declare function normalizeQuery(userRequest: string, overrideKeywords?: string[]): QueryObject;
|
|
8
|
+
/**
|
|
9
|
+
* Enrich a QueryObject with system_terms by matching feature_terms and entity_terms
|
|
10
|
+
* against System note titles and aliases in the index.
|
|
11
|
+
*/
|
|
12
|
+
export declare function enrichSystemTerms(query: QueryObject, index: VaultIndex): QueryObject;
|
|
7
13
|
//# sourceMappingURL=query-normalizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-normalizer.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/propose/query-normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"query-normalizer.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/propose/query-normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AA6BjE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,WAAW,CA+D5F;AAqBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,WAAW,CA2BpF"}
|
|
@@ -25,7 +25,7 @@ const MAX_SUMMARY_LENGTH = 500;
|
|
|
25
25
|
* Normalize a natural language user request into a structured QueryObject.
|
|
26
26
|
* Intent detection + term extraction.
|
|
27
27
|
*/
|
|
28
|
-
export function normalizeQuery(userRequest) {
|
|
28
|
+
export function normalizeQuery(userRequest, overrideKeywords) {
|
|
29
29
|
const trimmed = userRequest.trim();
|
|
30
30
|
if (!trimmed) {
|
|
31
31
|
throw new Error('User request cannot be empty');
|
|
@@ -34,6 +34,28 @@ export function normalizeQuery(userRequest) {
|
|
|
34
34
|
? trimmed.slice(0, MAX_SUMMARY_LENGTH)
|
|
35
35
|
: trimmed;
|
|
36
36
|
const intent = detectIntent(trimmed);
|
|
37
|
+
// When override keywords are provided and non-empty, use them instead of self-parsing
|
|
38
|
+
if (overrideKeywords && overrideKeywords.length > 0) {
|
|
39
|
+
const entity_terms = [];
|
|
40
|
+
const feature_terms = [];
|
|
41
|
+
for (const kw of overrideKeywords) {
|
|
42
|
+
if (ENTITY_PATTERN.test(kw)) {
|
|
43
|
+
entity_terms.push(kw);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
feature_terms.push(kw.toLowerCase());
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
intent,
|
|
51
|
+
summary,
|
|
52
|
+
feature_terms: [...new Set(feature_terms)],
|
|
53
|
+
system_terms: [],
|
|
54
|
+
entity_terms: [...new Set(entity_terms)],
|
|
55
|
+
status_bias: ['active', 'proposed', 'planned', 'in_progress'],
|
|
56
|
+
override_keywords: overrideKeywords,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
37
59
|
const words = extractWords(trimmed);
|
|
38
60
|
const significantWords = words.filter((w) => !STOP_WORDS.has(w.toLowerCase()) && w.length > 1);
|
|
39
61
|
const entity_terms = [];
|
|
@@ -53,7 +75,7 @@ export function normalizeQuery(userRequest) {
|
|
|
53
75
|
intent,
|
|
54
76
|
summary,
|
|
55
77
|
feature_terms: [...new Set(feature_terms)],
|
|
56
|
-
system_terms: [],
|
|
78
|
+
system_terms: [],
|
|
57
79
|
entity_terms: [...new Set(entity_terms)],
|
|
58
80
|
status_bias: ['active', 'proposed', 'planned', 'in_progress'],
|
|
59
81
|
};
|
|
@@ -74,4 +96,32 @@ function isIntentKeyword(word) {
|
|
|
74
96
|
const lower = word.toLowerCase();
|
|
75
97
|
return INTENT_KEYWORDS.some(({ pattern }) => pattern.test(lower));
|
|
76
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Enrich a QueryObject with system_terms by matching feature_terms and entity_terms
|
|
101
|
+
* against System note titles and aliases in the index.
|
|
102
|
+
*/
|
|
103
|
+
export function enrichSystemTerms(query, index) {
|
|
104
|
+
const allTerms = [...query.feature_terms, ...query.entity_terms];
|
|
105
|
+
if (allTerms.length === 0)
|
|
106
|
+
return query;
|
|
107
|
+
const matchedSystemTerms = [];
|
|
108
|
+
for (const record of index.records.values()) {
|
|
109
|
+
if (record.type !== 'system')
|
|
110
|
+
continue;
|
|
111
|
+
const titleLower = record.title.toLowerCase();
|
|
112
|
+
const aliasesLower = record.aliases.map((a) => a.toLowerCase());
|
|
113
|
+
for (const term of allTerms) {
|
|
114
|
+
const termLower = term.toLowerCase();
|
|
115
|
+
if (titleLower.includes(termLower) ||
|
|
116
|
+
aliasesLower.some((a) => a.includes(termLower))) {
|
|
117
|
+
matchedSystemTerms.push(term.toLowerCase());
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
...query,
|
|
124
|
+
system_terms: [...new Set(matchedSystemTerms)],
|
|
125
|
+
};
|
|
126
|
+
}
|
|
77
127
|
//# sourceMappingURL=query-normalizer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-normalizer.js","sourceRoot":"","sources":["../../../../src/core/workflow/propose/query-normalizer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-normalizer.js","sourceRoot":"","sources":["../../../../src/core/workflow/propose/query-normalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Classification, Confidence, RetrievalResult, ScoredCandidate, RetrievalQuery } from '../../../types/retrieval.js';
|
|
2
2
|
import type { SequencingResult } from '../../../types/sequencing.js';
|
|
3
3
|
import type { VaultIndex, IndexRecord } from '../../../types/index-record.js';
|
|
4
|
+
import type { RetrievalOptions } from '../../retrieval/retrieve.js';
|
|
4
5
|
export type LocalIntent = 'add' | 'modify' | 'fix' | 'remove' | 'investigate';
|
|
5
6
|
export interface QueryObject {
|
|
6
7
|
intent: LocalIntent;
|
|
@@ -9,6 +10,7 @@ export interface QueryObject {
|
|
|
9
10
|
system_terms: string[];
|
|
10
11
|
entity_terms: string[];
|
|
11
12
|
status_bias: string[];
|
|
13
|
+
override_keywords?: string[];
|
|
12
14
|
}
|
|
13
15
|
export interface ClassificationResult {
|
|
14
16
|
classification: Classification;
|
|
@@ -55,9 +57,7 @@ export interface ProposeResult {
|
|
|
55
57
|
}
|
|
56
58
|
export interface ProposeDeps {
|
|
57
59
|
buildIndex: (vaultRoot: string) => Promise<VaultIndex> | VaultIndex;
|
|
58
|
-
retrieve: (index: VaultIndex, query: RetrievalQuery, options?:
|
|
59
|
-
sequencing?: SequencingResult;
|
|
60
|
-
}) => RetrievalResult;
|
|
60
|
+
retrieve: (index: VaultIndex, query: RetrievalQuery, options?: RetrievalOptions) => RetrievalResult;
|
|
61
61
|
analyzeSequencing: (records: Map<string, IndexRecord>) => SequencingResult;
|
|
62
62
|
parseNote: (filePath: string) => import('../../parser/types.js').ParseResult;
|
|
63
63
|
writeFile: (filePath: string, content: string) => void;
|
|
@@ -66,6 +66,10 @@ export interface ProposeDeps {
|
|
|
66
66
|
export interface ProposeOptions {
|
|
67
67
|
vaultRoot: string;
|
|
68
68
|
forceClassification?: Classification;
|
|
69
|
+
forceTargetId?: string;
|
|
69
70
|
dryRun?: boolean;
|
|
71
|
+
keywords?: string[];
|
|
72
|
+
/** When true, allow note creation even for needs_confirmation classification. */
|
|
73
|
+
confirm?: boolean;
|
|
70
74
|
}
|
|
71
75
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/propose/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAChI,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/propose/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,7 +60,7 @@ function buildFrontmatter(id, input) {
|
|
|
60
60
|
lines.push(` - ${t}`);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
lines.push(`created_at: "${new Date().
|
|
63
|
+
lines.push(`created_at: "${new Date().toLocaleDateString('en-CA')}"`);
|
|
64
64
|
lines.push('---');
|
|
65
65
|
lines.push('');
|
|
66
66
|
return lines.join('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-note-creator.js","sourceRoot":"","sources":["../../../../src/core/workflow/query/query-note-creator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"query-note-creator.js","sourceRoot":"","sources":["../../../../src/core/workflow/query/query-note-creator.ts"],"names":[],"mappings":"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"}
|