pi-continuous-learning 0.7.0 → 0.9.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/dist/analysis-event-log.d.ts +50 -0
- package/dist/analysis-event-log.d.ts.map +1 -0
- package/dist/analysis-event-log.js +120 -0
- package/dist/analysis-event-log.js.map +1 -0
- package/dist/analysis-notification.d.ts +20 -0
- package/dist/analysis-notification.d.ts.map +1 -0
- package/dist/analysis-notification.js +63 -0
- package/dist/analysis-notification.js.map +1 -0
- package/dist/cli/analyze-single-shot.d.ts +12 -0
- package/dist/cli/analyze-single-shot.d.ts.map +1 -1
- package/dist/cli/analyze-single-shot.js +84 -2
- package/dist/cli/analyze-single-shot.js.map +1 -1
- package/dist/cli/analyze.js +349 -21
- package/dist/cli/analyze.js.map +1 -1
- package/dist/confidence.d.ts +12 -1
- package/dist/confidence.d.ts.map +1 -1
- package/dist/confidence.js +35 -8
- package/dist/confidence.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -1
- package/dist/consolidation.d.ts +43 -0
- package/dist/consolidation.d.ts.map +1 -0
- package/dist/consolidation.js +104 -0
- package/dist/consolidation.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/instinct-cleanup.d.ts +14 -0
- package/dist/instinct-cleanup.d.ts.map +1 -1
- package/dist/instinct-cleanup.js +59 -3
- package/dist/instinct-cleanup.js.map +1 -1
- package/dist/instinct-contradiction.d.ts +42 -0
- package/dist/instinct-contradiction.d.ts.map +1 -0
- package/dist/instinct-contradiction.js +164 -0
- package/dist/instinct-contradiction.js.map +1 -0
- package/dist/instinct-dream.d.ts +12 -0
- package/dist/instinct-dream.d.ts.map +1 -0
- package/dist/instinct-dream.js +33 -0
- package/dist/instinct-dream.js.map +1 -0
- package/dist/instinct-parser.d.ts.map +1 -1
- package/dist/instinct-parser.js +6 -0
- package/dist/instinct-parser.js.map +1 -1
- package/dist/observation-signal.d.ts +34 -0
- package/dist/observation-signal.d.ts.map +1 -0
- package/dist/observation-signal.js +66 -0
- package/dist/observation-signal.js.map +1 -0
- package/dist/prompts/analyzer-system-single-shot.d.ts.map +1 -1
- package/dist/prompts/analyzer-system-single-shot.js +57 -2
- package/dist/prompts/analyzer-system-single-shot.js.map +1 -1
- package/dist/prompts/analyzer-user-single-shot.d.ts.map +1 -1
- package/dist/prompts/analyzer-user-single-shot.js +5 -3
- package/dist/prompts/analyzer-user-single-shot.js.map +1 -1
- package/dist/prompts/consolidate-system.d.ts +6 -0
- package/dist/prompts/consolidate-system.d.ts.map +1 -0
- package/dist/prompts/consolidate-system.js +102 -0
- package/dist/prompts/consolidate-system.js.map +1 -0
- package/dist/prompts/consolidate-user.d.ts +19 -0
- package/dist/prompts/consolidate-user.d.ts.map +1 -0
- package/dist/prompts/consolidate-user.js +45 -0
- package/dist/prompts/consolidate-user.js.map +1 -0
- package/dist/prompts/dream-prompt.d.ts +7 -0
- package/dist/prompts/dream-prompt.d.ts.map +1 -0
- package/dist/prompts/dream-prompt.js +64 -0
- package/dist/prompts/dream-prompt.js.map +1 -0
- package/dist/prompts/evolve-prompt.d.ts.map +1 -1
- package/dist/prompts/evolve-prompt.js +6 -5
- package/dist/prompts/evolve-prompt.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/analysis-event-log.ts +171 -0
- package/src/analysis-notification.ts +79 -0
- package/src/cli/analyze-single-shot.ts +98 -2
- package/src/cli/analyze.ts +406 -20
- package/src/confidence.ts +33 -7
- package/src/config.ts +10 -0
- package/src/consolidation.ts +162 -0
- package/src/index.ts +17 -0
- package/src/instinct-cleanup.ts +62 -3
- package/src/instinct-contradiction.ts +202 -0
- package/src/instinct-dream.ts +62 -0
- package/src/instinct-parser.ts +6 -0
- package/src/observation-signal.ts +80 -0
- package/src/prompts/analyzer-system-single-shot.ts +57 -2
- package/src/prompts/analyzer-user-single-shot.ts +7 -2
- package/src/prompts/consolidate-system.ts +101 -0
- package/src/prompts/consolidate-user.ts +88 -0
- package/src/prompts/dream-prompt.ts +88 -0
- package/src/prompts/evolve-prompt.ts +6 -5
- package/src/types.ts +5 -0
package/dist/confidence.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confidence.js","sourceRoot":"","sources":["../src/confidence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,6BAA6B;AAC7B,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,0BAA0B;AAC1B,MAAM,
|
|
1
|
+
{"version":3,"file":"confidence.js","sourceRoot":"","sources":["../src/confidence.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAUzC;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWhD,CAAC;AAEF,eAAO,MAAM,WAAW,QAKvB,CAAC;AAMF,yEAAyE;AACzE,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,oDAAoD;AACpD,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,yDAAyD;AACzD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,yDAAyD;AACzD,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,4EAA4E;AAC5E,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,8EAA8E;AAC9E,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,mFAAmF;AACnF,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,eAAO,MAAM,cAAc,EAAE,MAoB5B,CAAC;AAqCF;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CA2BnC"}
|
package/dist/config.js
CHANGED
|
@@ -7,6 +7,7 @@ import * as os from "node:os";
|
|
|
7
7
|
import * as path from "node:path";
|
|
8
8
|
import { Type } from "@sinclair/typebox";
|
|
9
9
|
import { Value } from "@sinclair/typebox/value";
|
|
10
|
+
import { DEFAULT_CONSOLIDATION_INTERVAL_DAYS, DEFAULT_CONSOLIDATION_MIN_SESSIONS, } from "./consolidation.js";
|
|
10
11
|
// ---------------------------------------------------------------------------
|
|
11
12
|
// Constants
|
|
12
13
|
// ---------------------------------------------------------------------------
|
|
@@ -63,6 +64,9 @@ export const DEFAULT_CONFIG = {
|
|
|
63
64
|
max_new_instincts_per_run: 3,
|
|
64
65
|
flagged_cleanup_days: 7,
|
|
65
66
|
instinct_ttl_days: 28,
|
|
67
|
+
dreaming_enabled: true,
|
|
68
|
+
consolidation_interval_days: DEFAULT_CONSOLIDATION_INTERVAL_DAYS,
|
|
69
|
+
consolidation_min_sessions: DEFAULT_CONSOLIDATION_MIN_SESSIONS,
|
|
66
70
|
};
|
|
67
71
|
// ---------------------------------------------------------------------------
|
|
68
72
|
// TypeBox schema for partial config overrides (runtime validation)
|
|
@@ -85,6 +89,9 @@ const PartialConfigSchema = Type.Partial(Type.Object({
|
|
|
85
89
|
max_new_instincts_per_run: Type.Number(),
|
|
86
90
|
flagged_cleanup_days: Type.Number(),
|
|
87
91
|
instinct_ttl_days: Type.Number(),
|
|
92
|
+
dreaming_enabled: Type.Boolean(),
|
|
93
|
+
consolidation_interval_days: Type.Number(),
|
|
94
|
+
consolidation_min_sessions: Type.Number(),
|
|
88
95
|
}));
|
|
89
96
|
// ---------------------------------------------------------------------------
|
|
90
97
|
// loadConfig
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure consolidation gate logic for the "instinct-dream" holistic review.
|
|
3
|
+
*
|
|
4
|
+
* Determines whether enough time and sessions have elapsed since the last
|
|
5
|
+
* consolidation to justify a new pass. No I/O - all inputs are passed in.
|
|
6
|
+
*/
|
|
7
|
+
/** Minimum days between consolidation runs. */
|
|
8
|
+
export declare const DEFAULT_CONSOLIDATION_INTERVAL_DAYS = 7;
|
|
9
|
+
/** Minimum distinct sessions since last consolidation. */
|
|
10
|
+
export declare const DEFAULT_CONSOLIDATION_MIN_SESSIONS = 10;
|
|
11
|
+
export interface ConsolidationMeta {
|
|
12
|
+
last_consolidation_at?: string;
|
|
13
|
+
last_consolidation_session_count?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface ConsolidationGateInput {
|
|
16
|
+
meta: ConsolidationMeta;
|
|
17
|
+
currentSessionCount: number;
|
|
18
|
+
now?: Date;
|
|
19
|
+
intervalDays?: number;
|
|
20
|
+
minSessions?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface ConsolidationGateResult {
|
|
23
|
+
eligible: boolean;
|
|
24
|
+
reason: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Determines whether a consolidation pass should run based on
|
|
28
|
+
* elapsed time and session count since the last consolidation.
|
|
29
|
+
*
|
|
30
|
+
* Both conditions must be met (dual-gate):
|
|
31
|
+
* 1. At least `intervalDays` since last consolidation
|
|
32
|
+
* 2. At least `minSessions` new sessions since last consolidation
|
|
33
|
+
*/
|
|
34
|
+
export declare function checkConsolidationGate(input: ConsolidationGateInput): ConsolidationGateResult;
|
|
35
|
+
/**
|
|
36
|
+
* Counts distinct session IDs in a JSONL observations file.
|
|
37
|
+
* Scans all lines and extracts unique `"session":"..."` values.
|
|
38
|
+
*/
|
|
39
|
+
export declare function countDistinctSessions(obsPath: string): number;
|
|
40
|
+
export declare function getConsolidationMetaPath(projectId: string, baseDir?: string): string;
|
|
41
|
+
export declare function loadConsolidationMeta(projectId: string, baseDir?: string): ConsolidationMeta;
|
|
42
|
+
export declare function saveConsolidationMeta(projectId: string, meta: ConsolidationMeta, baseDir?: string): void;
|
|
43
|
+
//# sourceMappingURL=consolidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consolidation.d.ts","sourceRoot":"","sources":["../src/consolidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,+CAA+C;AAC/C,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAErD,0DAA0D;AAC1D,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAMrD,MAAM,WAAW,iBAAiB;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gCAAgC,CAAC,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,iBAAiB,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,sBAAsB,GAC5B,uBAAuB,CA0CzB;AAMD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgB7D;AAQD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,SAAe,GACrB,MAAM,CAER;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,OAAO,SAAe,GACrB,iBAAiB,CAQnB;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,iBAAiB,EACvB,OAAO,SAAe,GACrB,IAAI,CAIN"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure consolidation gate logic for the "instinct-dream" holistic review.
|
|
3
|
+
*
|
|
4
|
+
* Determines whether enough time and sessions have elapsed since the last
|
|
5
|
+
* consolidation to justify a new pass. No I/O - all inputs are passed in.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
8
|
+
import { dirname, join } from "node:path";
|
|
9
|
+
import { getBaseDir } from "./storage.js";
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// Constants (defaults - overridable via config)
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
/** Minimum days between consolidation runs. */
|
|
14
|
+
export const DEFAULT_CONSOLIDATION_INTERVAL_DAYS = 7;
|
|
15
|
+
/** Minimum distinct sessions since last consolidation. */
|
|
16
|
+
export const DEFAULT_CONSOLIDATION_MIN_SESSIONS = 10;
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Gate check (pure)
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
/**
|
|
21
|
+
* Determines whether a consolidation pass should run based on
|
|
22
|
+
* elapsed time and session count since the last consolidation.
|
|
23
|
+
*
|
|
24
|
+
* Both conditions must be met (dual-gate):
|
|
25
|
+
* 1. At least `intervalDays` since last consolidation
|
|
26
|
+
* 2. At least `minSessions` new sessions since last consolidation
|
|
27
|
+
*/
|
|
28
|
+
export function checkConsolidationGate(input) {
|
|
29
|
+
const { meta, currentSessionCount, now = new Date(), intervalDays = DEFAULT_CONSOLIDATION_INTERVAL_DAYS, minSessions = DEFAULT_CONSOLIDATION_MIN_SESSIONS, } = input;
|
|
30
|
+
// First run - no prior consolidation
|
|
31
|
+
if (!meta.last_consolidation_at) {
|
|
32
|
+
const sessionsSinceStart = currentSessionCount;
|
|
33
|
+
if (sessionsSinceStart < minSessions) {
|
|
34
|
+
return {
|
|
35
|
+
eligible: false,
|
|
36
|
+
reason: `only ${sessionsSinceStart} sessions recorded (need ${minSessions})`,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return { eligible: true, reason: "first consolidation run" };
|
|
40
|
+
}
|
|
41
|
+
const lastRun = new Date(meta.last_consolidation_at);
|
|
42
|
+
const daysSince = (now.getTime() - lastRun.getTime()) / (1000 * 60 * 60 * 24);
|
|
43
|
+
if (daysSince < intervalDays) {
|
|
44
|
+
return {
|
|
45
|
+
eligible: false,
|
|
46
|
+
reason: `only ${daysSince.toFixed(1)} days since last consolidation (need ${intervalDays})`,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const sessionsSinceLast = currentSessionCount - (meta.last_consolidation_session_count ?? 0);
|
|
50
|
+
if (sessionsSinceLast < minSessions) {
|
|
51
|
+
return {
|
|
52
|
+
eligible: false,
|
|
53
|
+
reason: `only ${sessionsSinceLast} sessions since last consolidation (need ${minSessions})`,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return { eligible: true, reason: "gate conditions met" };
|
|
57
|
+
}
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
// Session counting (from observations)
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
/**
|
|
62
|
+
* Counts distinct session IDs in a JSONL observations file.
|
|
63
|
+
* Scans all lines and extracts unique `"session":"..."` values.
|
|
64
|
+
*/
|
|
65
|
+
export function countDistinctSessions(obsPath) {
|
|
66
|
+
if (!existsSync(obsPath))
|
|
67
|
+
return 0;
|
|
68
|
+
const content = readFileSync(obsPath, "utf-8");
|
|
69
|
+
const sessions = new Set();
|
|
70
|
+
for (const line of content.split("\n")) {
|
|
71
|
+
if (!line.trim())
|
|
72
|
+
continue;
|
|
73
|
+
// Fast regex extraction avoids full JSON parse per line
|
|
74
|
+
const match = /"session"\s*:\s*"([^"]+)"/.exec(line);
|
|
75
|
+
if (match?.[1]) {
|
|
76
|
+
sessions.add(match[1]);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return sessions.size;
|
|
80
|
+
}
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
// Consolidation meta persistence
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
const CONSOLIDATION_META_FILENAME = "consolidation.json";
|
|
85
|
+
export function getConsolidationMetaPath(projectId, baseDir = getBaseDir()) {
|
|
86
|
+
return join(baseDir, "projects", projectId, CONSOLIDATION_META_FILENAME);
|
|
87
|
+
}
|
|
88
|
+
export function loadConsolidationMeta(projectId, baseDir = getBaseDir()) {
|
|
89
|
+
const metaPath = getConsolidationMetaPath(projectId, baseDir);
|
|
90
|
+
if (!existsSync(metaPath))
|
|
91
|
+
return {};
|
|
92
|
+
try {
|
|
93
|
+
return JSON.parse(readFileSync(metaPath, "utf-8"));
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return {};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export function saveConsolidationMeta(projectId, meta, baseDir = getBaseDir()) {
|
|
100
|
+
const metaPath = getConsolidationMetaPath(projectId, baseDir);
|
|
101
|
+
mkdirSync(dirname(metaPath), { recursive: true });
|
|
102
|
+
writeFileSync(metaPath, JSON.stringify(meta, null, 2), "utf-8");
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=consolidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consolidation.js","sourceRoot":"","sources":["../src/consolidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,8EAA8E;AAC9E,gDAAgD;AAChD,8EAA8E;AAE9E,+CAA+C;AAC/C,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC;AAErD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AAwBrD,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAA6B;IAE7B,MAAM,EACJ,IAAI,EACJ,mBAAmB,EACnB,GAAG,GAAG,IAAI,IAAI,EAAE,EAChB,YAAY,GAAG,mCAAmC,EAClD,WAAW,GAAG,kCAAkC,GACjD,GAAG,KAAK,CAAC;IAEV,qCAAqC;IACrC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAChC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,kBAAkB,GAAG,WAAW,EAAE,CAAC;YACrC,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,QAAQ,kBAAkB,4BAA4B,WAAW,GAAG;aAC7E,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAE9E,IAAI,SAAS,GAAG,YAAY,EAAE,CAAC;QAC7B,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,QAAQ,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,wCAAwC,YAAY,GAAG;SAC5F,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GACrB,mBAAmB,GAAG,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,CAAC,CAAC;IAErE,IAAI,iBAAiB,GAAG,WAAW,EAAE,CAAC;QACpC,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,QAAQ,iBAAiB,4CAA4C,WAAW,GAAG;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;AAC3D,CAAC;AAED,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,wDAAwD;QACxD,MAAM,KAAK,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,MAAM,2BAA2B,GAAG,oBAAoB,CAAC;AAEzD,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,OAAO,GAAG,UAAU,EAAE;IAEtB,OAAO,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,2BAA2B,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,OAAO,GAAG,UAAU,EAAE;IAEtB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAsB,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,IAAuB,EACvB,OAAO,GAAG,UAAU,EAAE;IAEtB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9D,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,+BAA+B,CAAC;AAiC3F,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,GAAG,IAAI,CAyL/C"}
|
package/dist/index.js
CHANGED
|
@@ -21,8 +21,10 @@ import { handleInstinctPromote, COMMAND_NAME as PROMOTE_CMD } from "./instinct-p
|
|
|
21
21
|
import { handleInstinctEvolve, COMMAND_NAME as EVOLVE_CMD } from "./instinct-evolve.js";
|
|
22
22
|
import { handleInstinctProjects, COMMAND_NAME as PROJECTS_CMD } from "./instinct-projects.js";
|
|
23
23
|
import { handleInstinctGraduate, COMMAND_NAME as GRADUATE_CMD } from "./instinct-graduate.js";
|
|
24
|
+
import { handleInstinctDream, COMMAND_NAME as DREAM_CMD } from "./instinct-dream.js";
|
|
24
25
|
import { registerAllTools } from "./instinct-tools.js";
|
|
25
26
|
import { logError } from "./error-logger.js";
|
|
27
|
+
import { checkAnalysisNotifications } from "./analysis-notification.js";
|
|
26
28
|
export default function (pi) {
|
|
27
29
|
let config = null;
|
|
28
30
|
let project = null;
|
|
@@ -54,6 +56,7 @@ export default function (pi) {
|
|
|
54
56
|
if (!project || !config)
|
|
55
57
|
return;
|
|
56
58
|
handleBeforeAgentStart(event, ctx, project);
|
|
59
|
+
checkAnalysisNotifications(ctx, project.id);
|
|
57
60
|
return handleBeforeAgentStartInjection(event, ctx, config, project.id) ?? undefined;
|
|
58
61
|
}
|
|
59
62
|
catch (err) {
|
|
@@ -170,5 +173,9 @@ export default function (pi) {
|
|
|
170
173
|
description: "Graduate mature instincts to AGENTS.md, skills, or commands",
|
|
171
174
|
handler: (args, ctx) => handleInstinctGraduate(args, ctx, pi, project?.id, undefined, project?.root ?? null),
|
|
172
175
|
});
|
|
176
|
+
pi.registerCommand(DREAM_CMD, {
|
|
177
|
+
description: "Holistic consolidation review of all instincts (merge, deduplicate, resolve contradictions)",
|
|
178
|
+
handler: (args, ctx) => handleInstinctDream(args, ctx, pi, project?.id, undefined, project?.root ?? null, installedSkills),
|
|
179
|
+
});
|
|
173
180
|
}
|
|
174
181
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EACL,eAAe,EACf,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,YAAY,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,YAAY,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,YAAY,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,YAAY,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,9 +32,18 @@ export declare function cleanupZeroConfirmedInstincts(dir: string, ttlDays: numb
|
|
|
32
32
|
* @returns Number of instincts deleted.
|
|
33
33
|
*/
|
|
34
34
|
export declare function enforceInstinctCap(dir: string, maxCount: number): number;
|
|
35
|
+
/**
|
|
36
|
+
* Flags the lower-confidence instinct in each contradictory pair.
|
|
37
|
+
* When confidence is equal, both are flagged.
|
|
38
|
+
* Already-flagged instincts are excluded from contradiction detection.
|
|
39
|
+
*
|
|
40
|
+
* @returns Number of instincts newly flagged.
|
|
41
|
+
*/
|
|
42
|
+
export declare function cleanupContradictions(dir: string): number;
|
|
35
43
|
export interface CleanupResult {
|
|
36
44
|
flaggedDeleted: number;
|
|
37
45
|
zeroConfirmedDeleted: number;
|
|
46
|
+
contradictionsFlagged: number;
|
|
38
47
|
capDeleted: number;
|
|
39
48
|
total: number;
|
|
40
49
|
}
|
|
@@ -43,6 +52,11 @@ export interface CleanupResult {
|
|
|
43
52
|
* Order: flagged → zero-confirmed → cap enforcement (cap runs last so it
|
|
44
53
|
* accounts for deletions made by the earlier rules).
|
|
45
54
|
*/
|
|
55
|
+
/**
|
|
56
|
+
* Runs all cleanup rules against a single directory.
|
|
57
|
+
* Order: flagged → zero-confirmed → contradictions → cap enforcement
|
|
58
|
+
* (cap runs last so it accounts for deletions/flags from earlier rules).
|
|
59
|
+
*/
|
|
46
60
|
export declare function cleanupDir(dir: string, config: Config, maxCount: number): CleanupResult;
|
|
47
61
|
/**
|
|
48
62
|
* Runs a full cleanup pass over project and global instinct directories.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instinct-cleanup.d.ts","sourceRoot":"","sources":["../src/instinct-cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAY,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"instinct-cleanup.d.ts","sourceRoot":"","sources":["../src/instinct-cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAY,MAAM,EAAE,MAAM,YAAY,CAAC;AAgCnD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,MAAM,GACzB,MAAM,CAeR;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,MAAM,CAeR;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBxE;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmCzD;AAMD,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;GAIG;AACH;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,aAAa,CAUf;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,MAAM,EAAE,MAAM,EACd,OAAO,SAAe,GACrB,aAAa,CAoCf"}
|
package/dist/instinct-cleanup.js
CHANGED
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { unlinkSync, existsSync } from "node:fs";
|
|
11
11
|
import { join } from "node:path";
|
|
12
|
-
import { listInstincts, invalidateCache } from "./instinct-store.js";
|
|
12
|
+
import { listInstincts, saveInstinct, invalidateCache } from "./instinct-store.js";
|
|
13
13
|
import { getBaseDir, getProjectInstinctsDir, getGlobalInstinctsDir, } from "./storage.js";
|
|
14
|
+
import { findContradictions } from "./instinct-contradiction.js";
|
|
14
15
|
// ---------------------------------------------------------------------------
|
|
15
16
|
// Helpers
|
|
16
17
|
// ---------------------------------------------------------------------------
|
|
@@ -101,6 +102,52 @@ export function enforceInstinctCap(dir, maxCount) {
|
|
|
101
102
|
return deleted;
|
|
102
103
|
}
|
|
103
104
|
// ---------------------------------------------------------------------------
|
|
105
|
+
// Result type
|
|
106
|
+
// ---------------------------------------------------------------------------
|
|
107
|
+
/**
|
|
108
|
+
* Flags the lower-confidence instinct in each contradictory pair.
|
|
109
|
+
* When confidence is equal, both are flagged.
|
|
110
|
+
* Already-flagged instincts are excluded from contradiction detection.
|
|
111
|
+
*
|
|
112
|
+
* @returns Number of instincts newly flagged.
|
|
113
|
+
*/
|
|
114
|
+
export function cleanupContradictions(dir) {
|
|
115
|
+
const instincts = listInstincts(dir);
|
|
116
|
+
const matches = findContradictions(instincts);
|
|
117
|
+
if (matches.length === 0)
|
|
118
|
+
return 0;
|
|
119
|
+
const toFlag = new Set();
|
|
120
|
+
for (const match of matches) {
|
|
121
|
+
const { instinctA, instinctB } = match;
|
|
122
|
+
if (instinctA.confidence > instinctB.confidence) {
|
|
123
|
+
toFlag.add(instinctB.id);
|
|
124
|
+
}
|
|
125
|
+
else if (instinctB.confidence > instinctA.confidence) {
|
|
126
|
+
toFlag.add(instinctA.id);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
// Equal confidence - flag both for user review
|
|
130
|
+
toFlag.add(instinctA.id);
|
|
131
|
+
toFlag.add(instinctB.id);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
let flagged = 0;
|
|
135
|
+
for (const instinct of instincts) {
|
|
136
|
+
if (toFlag.has(instinct.id)) {
|
|
137
|
+
const updated = {
|
|
138
|
+
...instinct,
|
|
139
|
+
flagged_for_removal: true,
|
|
140
|
+
updated_at: new Date().toISOString(),
|
|
141
|
+
};
|
|
142
|
+
saveInstinct(updated, dir);
|
|
143
|
+
flagged++;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (flagged > 0)
|
|
147
|
+
invalidateCache(dir);
|
|
148
|
+
return flagged;
|
|
149
|
+
}
|
|
150
|
+
// ---------------------------------------------------------------------------
|
|
104
151
|
// Orchestrator
|
|
105
152
|
// ---------------------------------------------------------------------------
|
|
106
153
|
/**
|
|
@@ -108,12 +155,18 @@ export function enforceInstinctCap(dir, maxCount) {
|
|
|
108
155
|
* Order: flagged → zero-confirmed → cap enforcement (cap runs last so it
|
|
109
156
|
* accounts for deletions made by the earlier rules).
|
|
110
157
|
*/
|
|
158
|
+
/**
|
|
159
|
+
* Runs all cleanup rules against a single directory.
|
|
160
|
+
* Order: flagged → zero-confirmed → contradictions → cap enforcement
|
|
161
|
+
* (cap runs last so it accounts for deletions/flags from earlier rules).
|
|
162
|
+
*/
|
|
111
163
|
export function cleanupDir(dir, config, maxCount) {
|
|
112
164
|
const flaggedDeleted = cleanupFlaggedInstincts(dir, config.flagged_cleanup_days);
|
|
113
165
|
const zeroConfirmedDeleted = cleanupZeroConfirmedInstincts(dir, config.instinct_ttl_days);
|
|
166
|
+
const contradictionsFlagged = cleanupContradictions(dir);
|
|
114
167
|
const capDeleted = enforceInstinctCap(dir, maxCount);
|
|
115
|
-
const total = flaggedDeleted + zeroConfirmedDeleted + capDeleted;
|
|
116
|
-
return { flaggedDeleted, zeroConfirmedDeleted, capDeleted, total };
|
|
168
|
+
const total = flaggedDeleted + zeroConfirmedDeleted + contradictionsFlagged + capDeleted;
|
|
169
|
+
return { flaggedDeleted, zeroConfirmedDeleted, contradictionsFlagged, capDeleted, total };
|
|
117
170
|
}
|
|
118
171
|
/**
|
|
119
172
|
* Runs a full cleanup pass over project and global instinct directories.
|
|
@@ -128,6 +181,7 @@ export function runCleanupPass(projectId, config, baseDir = getBaseDir()) {
|
|
|
128
181
|
const result = {
|
|
129
182
|
flaggedDeleted: 0,
|
|
130
183
|
zeroConfirmedDeleted: 0,
|
|
184
|
+
contradictionsFlagged: 0,
|
|
131
185
|
capDeleted: 0,
|
|
132
186
|
total: 0,
|
|
133
187
|
};
|
|
@@ -136,6 +190,7 @@ export function runCleanupPass(projectId, config, baseDir = getBaseDir()) {
|
|
|
136
190
|
const projectResult = cleanupDir(projectDir, config, config.max_total_instincts_per_project);
|
|
137
191
|
result.flaggedDeleted += projectResult.flaggedDeleted;
|
|
138
192
|
result.zeroConfirmedDeleted += projectResult.zeroConfirmedDeleted;
|
|
193
|
+
result.contradictionsFlagged += projectResult.contradictionsFlagged;
|
|
139
194
|
result.capDeleted += projectResult.capDeleted;
|
|
140
195
|
result.total += projectResult.total;
|
|
141
196
|
}
|
|
@@ -143,6 +198,7 @@ export function runCleanupPass(projectId, config, baseDir = getBaseDir()) {
|
|
|
143
198
|
const globalResult = cleanupDir(globalDir, config, config.max_total_instincts_global);
|
|
144
199
|
result.flaggedDeleted += globalResult.flaggedDeleted;
|
|
145
200
|
result.zeroConfirmedDeleted += globalResult.zeroConfirmedDeleted;
|
|
201
|
+
result.contradictionsFlagged += globalResult.contradictionsFlagged;
|
|
146
202
|
result.capDeleted += globalResult.capDeleted;
|
|
147
203
|
result.total += globalResult.total;
|
|
148
204
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instinct-cleanup.js","sourceRoot":"","sources":["../src/instinct-cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"instinct-cleanup.js","sourceRoot":"","sources":["../src/instinct-cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contradiction detection for instincts with opposing actions.
|
|
3
|
+
*
|
|
4
|
+
* Detects instincts that have similar triggers but semantically opposed actions
|
|
5
|
+
* using pattern-based heuristics (negation words, antonym verb pairs).
|
|
6
|
+
* No LLM cost - purely deterministic.
|
|
7
|
+
*/
|
|
8
|
+
import type { Instinct } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Pairs of verbs/keywords that indicate opposing intent when one appears
|
|
11
|
+
* in each action. Order within each pair does not matter.
|
|
12
|
+
*/
|
|
13
|
+
export declare const OPPOSING_VERB_PAIRS: ReadonlyArray<readonly [string, string]>;
|
|
14
|
+
export interface ContradictionMatch {
|
|
15
|
+
instinctA: Instinct;
|
|
16
|
+
instinctB: Instinct;
|
|
17
|
+
triggerSimilarity: number;
|
|
18
|
+
reason: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Checks whether two actions are semantically opposing using verb pair matching
|
|
22
|
+
* and negation pattern detection.
|
|
23
|
+
*
|
|
24
|
+
* @returns A reason string if opposing, null otherwise.
|
|
25
|
+
*/
|
|
26
|
+
export declare function hasOpposingAction(actionA: string, actionB: string): string | null;
|
|
27
|
+
/**
|
|
28
|
+
* Finds all contradictory pairs in a set of instincts.
|
|
29
|
+
*
|
|
30
|
+
* A contradiction is defined as:
|
|
31
|
+
* 1. Similar triggers (Jaccard similarity >= threshold on trigger tokens)
|
|
32
|
+
* 2. Opposing actions (detected via verb pairs or negation patterns)
|
|
33
|
+
*
|
|
34
|
+
* Instincts with `flagged_for_removal` are excluded.
|
|
35
|
+
* Each pair is reported once (no duplicates).
|
|
36
|
+
*
|
|
37
|
+
* @param instincts - All instincts to check
|
|
38
|
+
* @param triggerThreshold - Jaccard similarity threshold for triggers (default 0.4)
|
|
39
|
+
* @returns Array of contradiction matches
|
|
40
|
+
*/
|
|
41
|
+
export declare function findContradictions(instincts: readonly Instinct[], triggerThreshold?: number): ContradictionMatch[];
|
|
42
|
+
//# sourceMappingURL=instinct-contradiction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instinct-contradiction.d.ts","sourceRoot":"","sources":["../src/instinct-contradiction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAU3C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAe/D,CAAC;AAqEX,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,QAAQ,CAAC;IACpB,SAAS,EAAE,QAAQ,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwBjF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,QAAQ,EAAE,EAC9B,gBAAgB,SAA4B,GAC3C,kBAAkB,EAAE,CAuCtB"}
|