@dommaker/harness 0.13.3 → 0.16.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/CHANGELOG.md +35 -0
- package/bin/harness-knowledge-check.js +38 -23
- package/bin/harness-knowledge-track.js +30 -4
- package/bin/harness.js +24 -1
- package/dist/cli/commands/index.d.ts +1 -1
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +4 -1
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/knowledge.d.ts +21 -0
- package/dist/cli/commands/knowledge.d.ts.map +1 -1
- package/dist/cli/commands/knowledge.js +160 -9
- package/dist/cli/commands/knowledge.js.map +1 -1
- package/dist/cli/commands/release.d.ts.map +1 -1
- package/dist/cli/commands/release.js +43 -6
- package/dist/cli/commands/release.js.map +1 -1
- package/dist/core/constraints/checker.js +1 -1
- package/dist/core/constraints/checker.js.map +1 -1
- package/dist/core/constraints/definitions.d.ts.map +1 -1
- package/dist/core/constraints/definitions.js +34 -26
- package/dist/core/constraints/definitions.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/knowledge/audit.d.ts +76 -0
- package/dist/knowledge/audit.d.ts.map +1 -0
- package/dist/knowledge/audit.js +566 -0
- package/dist/knowledge/audit.js.map +1 -0
- package/dist/knowledge/doctor.d.ts +1 -1
- package/dist/knowledge/doctor.d.ts.map +1 -1
- package/dist/knowledge/import.d.ts +1 -1
- package/dist/knowledge/import.d.ts.map +1 -1
- package/dist/knowledge/import.js +3 -0
- package/dist/knowledge/import.js.map +1 -1
- package/dist/knowledge/index.d.ts +7 -2
- package/dist/knowledge/index.d.ts.map +1 -1
- package/dist/knowledge/index.js +7 -2
- package/dist/knowledge/index.js.map +1 -1
- package/dist/knowledge/ingest.d.ts +28 -1
- package/dist/knowledge/ingest.d.ts.map +1 -1
- package/dist/knowledge/ingest.js +150 -5
- package/dist/knowledge/ingest.js.map +1 -1
- package/dist/knowledge/lifecycle-hooks.d.ts +1 -1
- package/dist/knowledge/lifecycle-hooks.d.ts.map +1 -1
- package/dist/knowledge/lifecycle-hooks.js +3 -0
- package/dist/knowledge/lifecycle-hooks.js.map +1 -1
- package/dist/knowledge/lifecycle.d.ts +60 -8
- package/dist/knowledge/lifecycle.d.ts.map +1 -1
- package/dist/knowledge/lifecycle.js +213 -52
- package/dist/knowledge/lifecycle.js.map +1 -1
- package/dist/knowledge/lint.d.ts +1 -1
- package/dist/knowledge/lint.d.ts.map +1 -1
- package/dist/knowledge/lint.js +44 -3
- package/dist/knowledge/lint.js.map +1 -1
- package/dist/knowledge/migration.d.ts +25 -0
- package/dist/knowledge/migration.d.ts.map +1 -0
- package/dist/knowledge/migration.js +96 -0
- package/dist/knowledge/migration.js.map +1 -0
- package/dist/knowledge/query.d.ts +30 -2
- package/dist/knowledge/query.d.ts.map +1 -1
- package/dist/knowledge/query.js +58 -0
- package/dist/knowledge/query.js.map +1 -1
- package/dist/knowledge/reference-tracker.d.ts +1 -1
- package/dist/knowledge/reference-tracker.d.ts.map +1 -1
- package/dist/knowledge/store.d.ts +50 -3
- package/dist/knowledge/store.d.ts.map +1 -1
- package/dist/knowledge/store.js +111 -9
- package/dist/knowledge/store.js.map +1 -1
- package/dist/knowledge/types.d.ts +43 -1
- package/dist/knowledge/types.d.ts.map +1 -1
- package/dist/knowledge/types.js +1 -0
- package/dist/knowledge/types.js.map +1 -1
- package/dist/monitoring/knowledge-evolver.d.ts +1 -1
- package/dist/monitoring/knowledge-evolver.d.ts.map +1 -1
- package/dist/types/constraint.d.ts +1 -1
- package/dist/types/constraint.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/checker.test.ts +4 -4
- package/src/cli/commands/__tests__/knowledge.test.ts +167 -0
- package/src/cli/commands/index.ts +1 -1
- package/src/cli/commands/knowledge.ts +176 -5
- package/src/cli/commands/release.ts +44 -6
- package/src/context/__tests__/knowledge-injector.test.ts +4 -1
- package/src/core/constraints/checker.ts +1 -1
- package/src/core/constraints/definitions.ts +35 -27
- package/src/dashboard/__tests__/data.test.ts +3 -0
- package/src/dashboard/__tests__/stats.test.ts +3 -0
- package/src/index.ts +3 -1
- package/src/knowledge/CONTEXT.md +29 -7
- package/src/knowledge/__tests__/audit.test.ts +598 -0
- package/src/knowledge/__tests__/doctor.test.ts +28 -1
- package/src/knowledge/__tests__/import.test.ts +1 -1
- package/src/knowledge/__tests__/ingest.test.ts +320 -1
- package/src/knowledge/__tests__/lifecycle-hooks.test.ts +4 -1
- package/src/knowledge/__tests__/lifecycle.test.ts +656 -3
- package/src/knowledge/__tests__/lint.test.ts +52 -1
- package/src/knowledge/__tests__/migration.test.ts +115 -0
- package/src/knowledge/__tests__/query.test.ts +87 -1
- package/src/knowledge/__tests__/reference-tracker.test.ts +4 -1
- package/src/knowledge/__tests__/store.test.ts +208 -1
- package/src/knowledge/audit.ts +641 -0
- package/src/knowledge/doctor.ts +1 -1
- package/src/knowledge/import.ts +4 -1
- package/src/knowledge/index.ts +7 -2
- package/src/knowledge/ingest.ts +170 -6
- package/src/knowledge/lifecycle-hooks.ts +4 -1
- package/src/knowledge/lifecycle.ts +219 -50
- package/src/knowledge/lint.ts +45 -4
- package/src/knowledge/migration.ts +73 -0
- package/src/knowledge/query.ts +72 -1
- package/src/knowledge/reference-tracker.ts +1 -1
- package/src/knowledge/store.ts +125 -8
- package/src/knowledge/types.ts +50 -1
- package/src/monitoring/__tests__/knowledge-doctor.test.ts +3 -0
- package/src/monitoring/__tests__/knowledge-evolver.test.ts +3 -0
- package/src/monitoring/knowledge-evolver.ts +1 -1
- package/src/types/constraint.ts +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/knowledge/migration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CA4CxE"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Knowledge Migration Utilities
|
|
4
|
+
*
|
|
5
|
+
* Migrates existing knowledge entries to add new fields
|
|
6
|
+
* introduced in AS-021 (consumptionMode, origin, fullContentPath, skillId).
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.migrateKnowledgeEntries = migrateKnowledgeEntries;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const yaml = __importStar(require("js-yaml"));
|
|
46
|
+
/**
|
|
47
|
+
* Migrate all knowledge .md files in a directory to include
|
|
48
|
+
* consumptionMode and origin fields if missing.
|
|
49
|
+
*
|
|
50
|
+
* Existing files without these fields get defaults:
|
|
51
|
+
* - consumptionMode: 'reference'
|
|
52
|
+
* - origin: 'agent'
|
|
53
|
+
*
|
|
54
|
+
* This is idempotent — running it multiple times is safe.
|
|
55
|
+
*/
|
|
56
|
+
function migrateKnowledgeEntries(baseDir) {
|
|
57
|
+
const result = { total: 0, migrated: 0, skipped: 0, errors: [] };
|
|
58
|
+
if (!fs.existsSync(baseDir)) {
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
const files = fs.readdirSync(baseDir).filter(f => f.endsWith('.md'));
|
|
62
|
+
result.total = files.length;
|
|
63
|
+
for (const file of files) {
|
|
64
|
+
const filePath = path.join(baseDir, file);
|
|
65
|
+
try {
|
|
66
|
+
const raw = fs.readFileSync(filePath, 'utf-8');
|
|
67
|
+
const match = raw.match(/^---\n([\s\S]*?)\n---\n\n?([\s\S]*)$/);
|
|
68
|
+
if (!match) {
|
|
69
|
+
result.errors.push(`${file}: no frontmatter found`);
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
const meta = yaml.load(match[1]);
|
|
73
|
+
const content = match[2];
|
|
74
|
+
// Check if migration needed
|
|
75
|
+
if (meta.consumptionMode && meta.origin) {
|
|
76
|
+
result.skipped++;
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
// Add missing fields with defaults
|
|
80
|
+
if (!meta.consumptionMode)
|
|
81
|
+
meta.consumptionMode = 'reference';
|
|
82
|
+
if (!meta.origin)
|
|
83
|
+
meta.origin = 'agent';
|
|
84
|
+
// Write back
|
|
85
|
+
const newFrontmatter = yaml.dump(meta, { lineWidth: 120 });
|
|
86
|
+
const newContent = `---\n${newFrontmatter}---\n\n${content}`;
|
|
87
|
+
fs.writeFileSync(filePath, newContent, 'utf-8');
|
|
88
|
+
result.migrated++;
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
result.errors.push(`${file}: ${err instanceof Error ? err.message : String(err)}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/knowledge/migration.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBH,0DA4CC;AAjED,uCAAyB;AACzB,2CAA6B;AAC7B,8CAAgC;AAShC;;;;;;;;;GASG;AACH,SAAgB,uBAAuB,CAAC,OAAe;IACrD,MAAM,MAAM,GAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAElF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;gBACpD,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAA4B,CAAC;YAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEzB,4BAA4B;YAC5B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,SAAS;YACX,CAAC;YAED,mCAAmC;YACnC,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YAExC,aAAa;YACb,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,QAAQ,cAAc,UAAU,OAAO,EAAE,CAAC;YAC7D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Budget-aware query layer over KnowledgeStore.
|
|
5
5
|
* Supports filtering, sorting by maturity, and result caching.
|
|
6
6
|
*/
|
|
7
|
-
import type { QueryBudget, QueryResult, QueryFilter } from './types';
|
|
8
|
-
import { KnowledgeStore } from './store';
|
|
7
|
+
import type { KnowledgeEntry, ConsumptionMode, QueryBudget, QueryResult, QueryFilter } from './types';
|
|
8
|
+
import type { KnowledgeStore } from './store';
|
|
9
9
|
import { KnowledgeLifecycle } from './lifecycle';
|
|
10
10
|
export declare class KnowledgeQuery {
|
|
11
11
|
private store;
|
|
@@ -28,8 +28,36 @@ export declare class KnowledgeQuery {
|
|
|
28
28
|
estimateTokens(text: string): number;
|
|
29
29
|
/** Clear the query cache. */
|
|
30
30
|
clearCache(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Query entries by consumptionMode.
|
|
33
|
+
* Convenience wrapper around store.list() with mode filter.
|
|
34
|
+
*/
|
|
35
|
+
queryByMode(mode: ConsumptionMode, filter?: QueryFilter): KnowledgeEntry[];
|
|
36
|
+
/**
|
|
37
|
+
* Consume knowledge for a task context.
|
|
38
|
+
* Returns entries grouped by consumptionMode for prompt assembly.
|
|
39
|
+
*
|
|
40
|
+
* - rules: rule-mode entries (for prompt injection)
|
|
41
|
+
* - references: reference-mode entries matching task text keywords
|
|
42
|
+
* - context: context-mode entries matching applicablePhases
|
|
43
|
+
*/
|
|
44
|
+
consume(taskContext: {
|
|
45
|
+
requirementText?: string;
|
|
46
|
+
phase?: string;
|
|
47
|
+
}): {
|
|
48
|
+
rules: KnowledgeEntry[];
|
|
49
|
+
references: KnowledgeEntry[];
|
|
50
|
+
context: KnowledgeEntry[];
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Format entry for prompt injection.
|
|
54
|
+
* Adds [External Source] warning prefix for external-origin entries.
|
|
55
|
+
*/
|
|
56
|
+
static formatForPrompt(entry: KnowledgeEntry): string;
|
|
31
57
|
private sortEntries;
|
|
32
58
|
private applyBudget;
|
|
33
59
|
private cacheKey;
|
|
60
|
+
/** Filter entries by keyword overlap with text. Returns sorted by relevance. */
|
|
61
|
+
private filterByText;
|
|
34
62
|
}
|
|
35
63
|
//# sourceMappingURL=query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/knowledge/query.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/knowledge/query.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,cAAc,EAGd,eAAe,EAEf,WAAW,EACX,WAAW,EACX,WAAW,EAEZ,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAuBjD,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,KAAK,CAAiC;gBAElC,KAAK,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,kBAAkB;IAKjE;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW;IA+B7D;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAapC,6BAA6B;IAC7B,UAAU,IAAI,IAAI;IAIlB;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,cAAc,EAAE;IAO1E;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW,EAAE;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG;QAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QAAC,UAAU,EAAE,cAAc,EAAE,CAAC;QAAC,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE;IAgBxF;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;IAWrD,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,QAAQ;IAIhB,gFAAgF;IAChF,OAAO,CAAC,YAAY;CAerB"}
|
package/dist/knowledge/query.js
CHANGED
|
@@ -13,8 +13,10 @@ const CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
|
13
13
|
const MATURITY_RANK = {
|
|
14
14
|
proven: 3,
|
|
15
15
|
verified: 2,
|
|
16
|
+
active: 2,
|
|
16
17
|
draft: 1,
|
|
17
18
|
archived: 0,
|
|
19
|
+
deprecated: 0,
|
|
18
20
|
};
|
|
19
21
|
// ── Query Engine ───────────────────────────────────────────
|
|
20
22
|
class KnowledgeQuery {
|
|
@@ -80,6 +82,47 @@ class KnowledgeQuery {
|
|
|
80
82
|
clearCache() {
|
|
81
83
|
this.cache.clear();
|
|
82
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Query entries by consumptionMode.
|
|
87
|
+
* Convenience wrapper around store.list() with mode filter.
|
|
88
|
+
*/
|
|
89
|
+
queryByMode(mode, filter) {
|
|
90
|
+
return this.store.list({
|
|
91
|
+
...filter,
|
|
92
|
+
consumptionModes: [mode],
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Consume knowledge for a task context.
|
|
97
|
+
* Returns entries grouped by consumptionMode for prompt assembly.
|
|
98
|
+
*
|
|
99
|
+
* - rules: rule-mode entries (for prompt injection)
|
|
100
|
+
* - references: reference-mode entries matching task text keywords
|
|
101
|
+
* - context: context-mode entries matching applicablePhases
|
|
102
|
+
*/
|
|
103
|
+
consume(taskContext) {
|
|
104
|
+
const rules = this.queryByMode('rule');
|
|
105
|
+
const allRefs = this.queryByMode('reference');
|
|
106
|
+
const references = taskContext.requirementText
|
|
107
|
+
? this.filterByText(allRefs, taskContext.requirementText).slice(0, 3)
|
|
108
|
+
: allRefs.slice(0, 3);
|
|
109
|
+
const allContext = this.queryByMode('context');
|
|
110
|
+
const context = taskContext.phase
|
|
111
|
+
? allContext.filter(e => e.applicablePhases.includes(taskContext.phase))
|
|
112
|
+
: allContext;
|
|
113
|
+
return { rules, references, context };
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Format entry for prompt injection.
|
|
117
|
+
* Adds [External Source] warning prefix for external-origin entries.
|
|
118
|
+
*/
|
|
119
|
+
static formatForPrompt(entry) {
|
|
120
|
+
const prefix = entry.origin === 'external'
|
|
121
|
+
? '[External Source — verify before acting]\n'
|
|
122
|
+
: '';
|
|
123
|
+
return `${prefix}${entry.title}: ${entry.content}`;
|
|
124
|
+
}
|
|
125
|
+
// ── Internal ───────────────────────────────────────────────
|
|
83
126
|
// ── Internal ───────────────────────────────────────────────
|
|
84
127
|
sortEntries(entries) {
|
|
85
128
|
return [...entries].sort((a, b) => {
|
|
@@ -112,6 +155,21 @@ class KnowledgeQuery {
|
|
|
112
155
|
cacheKey(budget, filter) {
|
|
113
156
|
return JSON.stringify({ budget, filter });
|
|
114
157
|
}
|
|
158
|
+
/** Filter entries by keyword overlap with text. Returns sorted by relevance. */
|
|
159
|
+
filterByText(entries, text) {
|
|
160
|
+
const keywords = text.toLowerCase().split(/\s+/).filter(w => w.length >= 3);
|
|
161
|
+
if (keywords.length === 0)
|
|
162
|
+
return entries;
|
|
163
|
+
const scored = entries.map(entry => {
|
|
164
|
+
const haystack = `${entry.title} ${entry.content}`.toLowerCase();
|
|
165
|
+
const score = keywords.filter(k => haystack.includes(k)).length;
|
|
166
|
+
return { entry, score };
|
|
167
|
+
});
|
|
168
|
+
return scored
|
|
169
|
+
.filter(s => s.score > 0)
|
|
170
|
+
.sort((a, b) => b.score - a.score)
|
|
171
|
+
.map(s => s.entry);
|
|
172
|
+
}
|
|
115
173
|
}
|
|
116
174
|
exports.KnowledgeQuery = KnowledgeQuery;
|
|
117
175
|
//# sourceMappingURL=query.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/knowledge/query.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/knowledge/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Tracks which decisions reference which knowledge entries.
|
|
5
5
|
* Storage: append-only JSONL at .harness/knowledge/references.jsonl
|
|
6
6
|
*/
|
|
7
|
-
import { KnowledgeStore } from './store';
|
|
7
|
+
import type { KnowledgeStore } from './store';
|
|
8
8
|
export declare class ReferenceTracker {
|
|
9
9
|
private filePath;
|
|
10
10
|
private store;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-tracker.d.ts","sourceRoot":"","sources":["../../src/knowledge/reference-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"reference-tracker.d.ts","sourceRoot":"","sources":["../../src/knowledge/reference-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM9C,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAiB;gBAElB,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM;IAMnD;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IASpD;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAOhD;;OAEG;IACH,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAMtD;;;OAGG;IACH,kBAAkB,IAAI,IAAI;IAyB1B,OAAO,CAAC,OAAO;CAYhB"}
|
|
@@ -5,13 +5,41 @@
|
|
|
5
5
|
* Each entry is a markdown file with YAML frontmatter.
|
|
6
6
|
* An index.json provides fast listing without reading all files.
|
|
7
7
|
*/
|
|
8
|
-
import type { KnowledgeEntry, QueryFilter } from './types';
|
|
8
|
+
import type { KnowledgeEntry, IndexEntry, QueryFilter } from './types';
|
|
9
9
|
interface StoreConfig {
|
|
10
10
|
baseDir: string;
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* KnowledgeStore interface — abstract contract for knowledge storage.
|
|
14
|
+
*/
|
|
15
|
+
export interface KnowledgeStore {
|
|
16
|
+
getBaseDir(): string;
|
|
17
|
+
get(id: string): KnowledgeEntry | undefined;
|
|
18
|
+
list(filter?: QueryFilter): KnowledgeEntry[];
|
|
19
|
+
save(entry: KnowledgeEntry): void;
|
|
20
|
+
delete(id: string): boolean;
|
|
21
|
+
update(id: string, partial: Partial<KnowledgeEntry>): KnowledgeEntry | undefined;
|
|
22
|
+
rebuildIndex(): void;
|
|
23
|
+
readIndex(): IndexEntry[];
|
|
24
|
+
readEntriesFromDisk(): KnowledgeEntry[];
|
|
25
|
+
snapshot(): string;
|
|
26
|
+
getSnapshot(date: string): IndexEntry[] | undefined;
|
|
27
|
+
getSurvivalRate(daysAgo: number): {
|
|
28
|
+
rate: number;
|
|
29
|
+
survived: number;
|
|
30
|
+
total: number;
|
|
31
|
+
snapshotDate: string;
|
|
32
|
+
} | undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* FileKnowledgeStore — file-based implementation of KnowledgeStore.
|
|
36
|
+
* Each entry is a markdown file with YAML frontmatter.
|
|
37
|
+
* An index.json provides fast listing without reading all files.
|
|
38
|
+
*/
|
|
39
|
+
export declare class FileKnowledgeStore implements KnowledgeStore {
|
|
13
40
|
private baseDir;
|
|
14
41
|
constructor(config?: Partial<StoreConfig>);
|
|
42
|
+
getBaseDir(): string;
|
|
15
43
|
get(id: string): KnowledgeEntry | undefined;
|
|
16
44
|
list(filter?: QueryFilter): KnowledgeEntry[];
|
|
17
45
|
save(entry: KnowledgeEntry): void;
|
|
@@ -33,7 +61,26 @@ export declare class KnowledgeStore {
|
|
|
33
61
|
private toIndexEntry;
|
|
34
62
|
private indexToEntry;
|
|
35
63
|
private matchesFilter;
|
|
36
|
-
private
|
|
64
|
+
private static readonly SNAPSHOTS_DIR;
|
|
65
|
+
/**
|
|
66
|
+
* 保存当日 index.json 快照
|
|
67
|
+
*/
|
|
68
|
+
snapshot(): string;
|
|
69
|
+
/**
|
|
70
|
+
* 读取指定日期的快照
|
|
71
|
+
*/
|
|
72
|
+
getSnapshot(date: string): IndexEntry[] | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* 计算 N 天前快照中条目的存活率
|
|
75
|
+
* 存活 = 当前 index 中存在且 maturity !== 'archived'
|
|
76
|
+
*/
|
|
77
|
+
getSurvivalRate(daysAgo: number): {
|
|
78
|
+
rate: number;
|
|
79
|
+
survived: number;
|
|
80
|
+
total: number;
|
|
81
|
+
snapshotDate: string;
|
|
82
|
+
} | undefined;
|
|
83
|
+
readIndex(): IndexEntry[];
|
|
37
84
|
private writeIndex;
|
|
38
85
|
private updateIndexEntry;
|
|
39
86
|
private removeFromIndex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/knowledge/store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/knowledge/store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAgB,MAAM,SAAS,CAAC;AAKrF,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,IAAI,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,cAAc,EAAE,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,SAAS,CAAC;IACjF,YAAY,IAAI,IAAI,CAAC;IACrB,SAAS,IAAI,UAAU,EAAE,CAAC;IAC1B,mBAAmB,IAAI,cAAc,EAAE,CAAC;IACxC,QAAQ,IAAI,MAAM,CAAC;IACnB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC;IACpD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CACvH;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAKzC,UAAU,IAAI,MAAM;IAMpB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAM3C,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,cAAc,EAAE;IAW5C,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAQjC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQ3B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,SAAS;IAUhF,YAAY,IAAI,IAAI;IAYpB;;;OAGG;IACH,mBAAmB,IAAI,cAAc,EAAE;IAcvC,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,SAAS;IA+BjB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAErD;;OAEG;IACH,QAAQ,IAAI,MAAM;IAclB;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,SAAS;IAUnD;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAwBrH,SAAS,IAAI,UAAU,EAAE;IAWzB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,eAAe;CAIxB"}
|
package/dist/knowledge/store.js
CHANGED
|
@@ -40,7 +40,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
40
40
|
};
|
|
41
41
|
})();
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
-
exports.
|
|
43
|
+
exports.FileKnowledgeStore = void 0;
|
|
44
44
|
const fs = __importStar(require("fs"));
|
|
45
45
|
const path = __importStar(require("path"));
|
|
46
46
|
const yaml = __importStar(require("js-yaml"));
|
|
@@ -49,12 +49,20 @@ const INDEX_FILE = 'index.json';
|
|
|
49
49
|
const DEFAULT_CONFIG = {
|
|
50
50
|
baseDir: DEFAULT_DIR,
|
|
51
51
|
};
|
|
52
|
-
|
|
52
|
+
/**
|
|
53
|
+
* FileKnowledgeStore — file-based implementation of KnowledgeStore.
|
|
54
|
+
* Each entry is a markdown file with YAML frontmatter.
|
|
55
|
+
* An index.json provides fast listing without reading all files.
|
|
56
|
+
*/
|
|
57
|
+
class FileKnowledgeStore {
|
|
53
58
|
baseDir;
|
|
54
59
|
constructor(config) {
|
|
55
60
|
this.baseDir = config?.baseDir || DEFAULT_CONFIG.baseDir;
|
|
56
61
|
this.ensureDirectory();
|
|
57
62
|
}
|
|
63
|
+
getBaseDir() {
|
|
64
|
+
return this.baseDir;
|
|
65
|
+
}
|
|
58
66
|
// ── CRUD ─────────────────────────────────────────────────
|
|
59
67
|
get(id) {
|
|
60
68
|
const filePath = this.findFile(id);
|
|
@@ -133,8 +141,24 @@ class KnowledgeStore {
|
|
|
133
141
|
return path.join(this.baseDir, `${safeType}-${safeId}.md`);
|
|
134
142
|
}
|
|
135
143
|
findFile(id) {
|
|
144
|
+
// 1. Fast path: index has id→type mapping, construct exact filename
|
|
145
|
+
const index = this.readIndex();
|
|
146
|
+
const idx = index.find(e => e.id === id);
|
|
147
|
+
if (idx) {
|
|
148
|
+
const exact = path.join(this.baseDir, `${idx.type}-${idx.id}.md`);
|
|
149
|
+
if (fs.existsSync(exact))
|
|
150
|
+
return exact;
|
|
151
|
+
}
|
|
152
|
+
// 2. Fallback: scan files, verify id from frontmatter
|
|
136
153
|
const files = this.listFiles();
|
|
137
|
-
|
|
154
|
+
for (const f of files) {
|
|
155
|
+
if (!path.basename(f).includes(`-${id}.md`))
|
|
156
|
+
continue;
|
|
157
|
+
const entry = this.readFile(f);
|
|
158
|
+
if (entry?.id === id)
|
|
159
|
+
return f;
|
|
160
|
+
}
|
|
161
|
+
return undefined;
|
|
138
162
|
}
|
|
139
163
|
listFiles() {
|
|
140
164
|
if (!fs.existsSync(this.baseDir))
|
|
@@ -173,7 +197,12 @@ class KnowledgeStore {
|
|
|
173
197
|
applicablePhases: meta.applicablePhases || [],
|
|
174
198
|
sourceReferences: meta.sourceReferences || [],
|
|
175
199
|
referencedBy: meta.referencedBy || [],
|
|
200
|
+
executionResults: meta.executionResults || [],
|
|
176
201
|
decayAt: meta.decayAt,
|
|
202
|
+
consumptionMode: meta.consumptionMode || 'reference',
|
|
203
|
+
origin: meta.origin || 'agent',
|
|
204
|
+
fullContentPath: meta.fullContentPath,
|
|
205
|
+
skillId: meta.skillId,
|
|
177
206
|
};
|
|
178
207
|
}
|
|
179
208
|
toFrontmatter(entry) {
|
|
@@ -191,9 +220,17 @@ class KnowledgeStore {
|
|
|
191
220
|
applicablePhases: entry.applicablePhases,
|
|
192
221
|
sourceReferences: entry.sourceReferences,
|
|
193
222
|
referencedBy: entry.referencedBy,
|
|
223
|
+
consumptionMode: entry.consumptionMode,
|
|
224
|
+
origin: entry.origin,
|
|
194
225
|
};
|
|
226
|
+
if (entry.executionResults?.length > 0)
|
|
227
|
+
meta.executionResults = entry.executionResults;
|
|
195
228
|
if (entry.decayAt)
|
|
196
229
|
meta.decayAt = entry.decayAt;
|
|
230
|
+
if (entry.fullContentPath)
|
|
231
|
+
meta.fullContentPath = entry.fullContentPath;
|
|
232
|
+
if (entry.skillId)
|
|
233
|
+
meta.skillId = entry.skillId;
|
|
197
234
|
return yaml.dump(meta, { lineWidth: 120 });
|
|
198
235
|
}
|
|
199
236
|
toIndexEntry(entry) {
|
|
@@ -207,6 +244,8 @@ class KnowledgeStore {
|
|
|
207
244
|
applicablePhases: entry.applicablePhases,
|
|
208
245
|
lastReferenced: entry.lastReferenced,
|
|
209
246
|
created: entry.created,
|
|
247
|
+
consumptionMode: entry.consumptionMode,
|
|
248
|
+
origin: entry.origin,
|
|
210
249
|
};
|
|
211
250
|
}
|
|
212
251
|
indexToEntry(idx) {
|
|
@@ -221,10 +260,13 @@ class KnowledgeStore {
|
|
|
221
260
|
lastReferenced: idx.lastReferenced,
|
|
222
261
|
contributors: [],
|
|
223
262
|
projects: [],
|
|
224
|
-
tags: idx.tags,
|
|
225
|
-
applicablePhases: idx.applicablePhases,
|
|
263
|
+
tags: idx.tags ?? [],
|
|
264
|
+
applicablePhases: idx.applicablePhases ?? [],
|
|
226
265
|
sourceReferences: [],
|
|
227
266
|
referencedBy: [],
|
|
267
|
+
executionResults: [],
|
|
268
|
+
consumptionMode: idx.consumptionMode || 'reference',
|
|
269
|
+
origin: idx.origin || 'agent',
|
|
228
270
|
};
|
|
229
271
|
}
|
|
230
272
|
matchesFilter(entry, filter) {
|
|
@@ -234,14 +276,74 @@ class KnowledgeStore {
|
|
|
234
276
|
return false;
|
|
235
277
|
if (filter.layers && filter.layers.length > 0 && !filter.layers.includes(entry.layer))
|
|
236
278
|
return false;
|
|
237
|
-
if (filter.tags && filter.tags.length > 0 && !filter.tags.some(t => entry.tags.includes(t)))
|
|
279
|
+
if (filter.tags && filter.tags.length > 0 && !filter.tags.some(t => (entry.tags ?? []).includes(t)))
|
|
238
280
|
return false;
|
|
239
|
-
if (filter.applicablePhases && filter.applicablePhases.length > 0 && !filter.applicablePhases.some(p => entry.applicablePhases.includes(p)))
|
|
281
|
+
if (filter.applicablePhases && filter.applicablePhases.length > 0 && !filter.applicablePhases.some(p => (entry.applicablePhases ?? []).includes(p)))
|
|
240
282
|
return false;
|
|
241
|
-
if (filter.excludeArchived !== false && entry.maturity === 'archived')
|
|
283
|
+
if (filter.excludeArchived !== false && (entry.maturity === 'archived' || entry.maturity === 'deprecated'))
|
|
284
|
+
return false;
|
|
285
|
+
if (filter.consumptionModes && filter.consumptionModes.length > 0 && !filter.consumptionModes.includes(entry.consumptionMode ?? 'reference'))
|
|
286
|
+
return false;
|
|
287
|
+
if (filter.origins && filter.origins.length > 0 && !filter.origins.includes(entry.origin ?? 'agent'))
|
|
242
288
|
return false;
|
|
243
289
|
return true;
|
|
244
290
|
}
|
|
291
|
+
// ── Snapshots ────────────────────────────────────────────
|
|
292
|
+
static SNAPSHOTS_DIR = '.snapshots';
|
|
293
|
+
/**
|
|
294
|
+
* 保存当日 index.json 快照
|
|
295
|
+
*/
|
|
296
|
+
snapshot() {
|
|
297
|
+
const snapDir = path.join(this.baseDir, FileKnowledgeStore.SNAPSHOTS_DIR);
|
|
298
|
+
if (!fs.existsSync(snapDir)) {
|
|
299
|
+
fs.mkdirSync(snapDir, { recursive: true });
|
|
300
|
+
}
|
|
301
|
+
const today = new Date().toISOString().slice(0, 10);
|
|
302
|
+
const snapPath = path.join(snapDir, `index-${today}.json`);
|
|
303
|
+
const indexPath = path.join(this.baseDir, INDEX_FILE);
|
|
304
|
+
if (fs.existsSync(indexPath)) {
|
|
305
|
+
fs.copyFileSync(indexPath, snapPath);
|
|
306
|
+
}
|
|
307
|
+
return snapPath;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* 读取指定日期的快照
|
|
311
|
+
*/
|
|
312
|
+
getSnapshot(date) {
|
|
313
|
+
const snapPath = path.join(this.baseDir, FileKnowledgeStore.SNAPSHOTS_DIR, `index-${date}.json`);
|
|
314
|
+
if (!fs.existsSync(snapPath))
|
|
315
|
+
return undefined;
|
|
316
|
+
try {
|
|
317
|
+
return JSON.parse(fs.readFileSync(snapPath, 'utf-8'));
|
|
318
|
+
}
|
|
319
|
+
catch {
|
|
320
|
+
return undefined;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* 计算 N 天前快照中条目的存活率
|
|
325
|
+
* 存活 = 当前 index 中存在且 maturity !== 'archived'
|
|
326
|
+
*/
|
|
327
|
+
getSurvivalRate(daysAgo) {
|
|
328
|
+
const target = new Date(Date.now() - daysAgo * 24 * 60 * 60 * 1000).toISOString().slice(0, 10);
|
|
329
|
+
const snapshot = this.getSnapshot(target);
|
|
330
|
+
if (!snapshot || snapshot.length === 0)
|
|
331
|
+
return undefined;
|
|
332
|
+
const currentIndex = this.readIndex();
|
|
333
|
+
const currentMap = new Map(currentIndex.map(e => [e.id, e]));
|
|
334
|
+
let survived = 0;
|
|
335
|
+
for (const snapEntry of snapshot) {
|
|
336
|
+
const current = currentMap.get(snapEntry.id);
|
|
337
|
+
if (current && current.maturity !== 'archived' && current.maturity !== 'deprecated')
|
|
338
|
+
survived++;
|
|
339
|
+
}
|
|
340
|
+
return {
|
|
341
|
+
rate: Math.round((survived / snapshot.length) * 100),
|
|
342
|
+
survived,
|
|
343
|
+
total: snapshot.length,
|
|
344
|
+
snapshotDate: target,
|
|
345
|
+
};
|
|
346
|
+
}
|
|
245
347
|
// ── Index I/O ────────────────────────────────────────────
|
|
246
348
|
readIndex() {
|
|
247
349
|
const indexPath = path.join(this.baseDir, INDEX_FILE);
|
|
@@ -276,5 +378,5 @@ class KnowledgeStore {
|
|
|
276
378
|
this.writeIndex(index);
|
|
277
379
|
}
|
|
278
380
|
}
|
|
279
|
-
exports.
|
|
381
|
+
exports.FileKnowledgeStore = FileKnowledgeStore;
|
|
280
382
|
//# sourceMappingURL=store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/knowledge/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/knowledge/store.ts"],"names":[],"mappings":"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"}
|