@roarpeng/graphflow 1.12.1 → 1.14.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 +49 -0
- package/README.md +7 -4
- package/README.zh.md +2 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +2 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/embedding-factory.d.ts.map +1 -1
- package/dist/config/embedding-factory.js +2 -1
- package/dist/config/embedding-factory.js.map +1 -1
- package/dist/config/embedding-model.d.ts +7 -0
- package/dist/config/embedding-model.d.ts.map +1 -0
- package/dist/config/embedding-model.js +10 -0
- package/dist/config/embedding-model.js.map +1 -0
- package/dist/core/types.d.ts +4 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/graph/context-slicer.d.ts.map +1 -1
- package/dist/graph/context-slicer.js +102 -0
- package/dist/graph/context-slicer.js.map +1 -1
- package/dist/graph/engineering-knowledge.d.ts +76 -0
- package/dist/graph/engineering-knowledge.d.ts.map +1 -0
- package/dist/graph/engineering-knowledge.js +170 -0
- package/dist/graph/engineering-knowledge.js.map +1 -0
- package/dist/graph/graph-compression.d.ts.map +1 -1
- package/dist/graph/graph-compression.js +3 -0
- package/dist/graph/graph-compression.js.map +1 -1
- package/dist/graph/graph-search.d.ts +26 -0
- package/dist/graph/graph-search.d.ts.map +1 -1
- package/dist/graph/graph-search.js +80 -0
- package/dist/graph/graph-search.js.map +1 -1
- package/dist/graph/memory-pack.d.ts +44 -1
- package/dist/graph/memory-pack.d.ts.map +1 -1
- package/dist/graph/memory-pack.js +134 -4
- package/dist/graph/memory-pack.js.map +1 -1
- package/dist/graph/snapshot-view.d.ts.map +1 -1
- package/dist/graph/snapshot-view.js +2 -0
- package/dist/graph/snapshot-view.js.map +1 -1
- package/dist/graph/team-governance.d.ts +48 -0
- package/dist/graph/team-governance.d.ts.map +1 -0
- package/dist/graph/team-governance.js +174 -0
- package/dist/graph/team-governance.js.map +1 -0
- package/dist/integrations/host-adapter.d.ts +14 -0
- package/dist/integrations/host-adapter.d.ts.map +1 -0
- package/dist/integrations/host-adapter.js +32 -0
- package/dist/integrations/host-adapter.js.map +1 -0
- package/dist/learning/dialogue-thread.d.ts +152 -0
- package/dist/learning/dialogue-thread.d.ts.map +1 -1
- package/dist/learning/dialogue-thread.js +439 -1
- package/dist/learning/dialogue-thread.js.map +1 -1
- package/dist/learning/embeddings.d.ts.map +1 -1
- package/dist/learning/embeddings.js +2 -1
- package/dist/learning/embeddings.js.map +1 -1
- package/dist/learning/episodic-memory.d.ts +4 -1
- package/dist/learning/episodic-memory.d.ts.map +1 -1
- package/dist/learning/episodic-memory.js +7 -1
- package/dist/learning/episodic-memory.js.map +1 -1
- package/dist/learning/evidence.d.ts +48 -0
- package/dist/learning/evidence.d.ts.map +1 -0
- package/dist/learning/evidence.js +112 -0
- package/dist/learning/evidence.js.map +1 -0
- package/dist/learning/turn-distillation.d.ts +24 -0
- package/dist/learning/turn-distillation.d.ts.map +1 -1
- package/dist/learning/turn-distillation.js +101 -0
- package/dist/learning/turn-distillation.js.map +1 -1
- package/dist/security/secure-store.d.ts +13 -0
- package/dist/security/secure-store.d.ts.map +1 -0
- package/dist/security/secure-store.js +42 -0
- package/dist/security/secure-store.js.map +1 -0
- package/dist/security/token-auth.d.ts +23 -0
- package/dist/security/token-auth.d.ts.map +1 -0
- package/dist/security/token-auth.js +86 -0
- package/dist/security/token-auth.js.map +1 -0
- package/dist/surfaces/cli/index.js +333 -3
- package/dist/surfaces/cli/index.js.map +1 -1
- package/dist/surfaces/cli/output.d.ts.map +1 -1
- package/dist/surfaces/cli/output.js +7 -2
- package/dist/surfaces/cli/output.js.map +1 -1
- package/dist/surfaces/cli/runtime/dialogue.d.ts +61 -0
- package/dist/surfaces/cli/runtime/dialogue.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/dialogue.js +121 -6
- package/dist/surfaces/cli/runtime/dialogue.js.map +1 -1
- package/dist/surfaces/cli/runtime/evidence.d.ts +34 -0
- package/dist/surfaces/cli/runtime/evidence.d.ts.map +1 -0
- package/dist/surfaces/cli/runtime/evidence.js +82 -0
- package/dist/surfaces/cli/runtime/evidence.js.map +1 -0
- package/dist/surfaces/cli/runtime/governance.d.ts +88 -0
- package/dist/surfaces/cli/runtime/governance.d.ts.map +1 -0
- package/dist/surfaces/cli/runtime/governance.js +245 -0
- package/dist/surfaces/cli/runtime/governance.js.map +1 -0
- package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/graph.js +36 -3
- package/dist/surfaces/cli/runtime/graph.js.map +1 -1
- package/dist/surfaces/cli/runtime/routing.d.ts +4 -1
- package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/routing.js +6 -2
- package/dist/surfaces/cli/runtime/routing.js.map +1 -1
- package/dist/surfaces/cli/runtime/types.d.ts +8 -0
- package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.d.ts +3 -1
- package/dist/surfaces/cli/runtime.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.js +23 -1
- package/dist/surfaces/cli/runtime.js.map +1 -1
- package/dist/surfaces/mcp/server.d.ts +7 -0
- package/dist/surfaces/mcp/server.d.ts.map +1 -1
- package/dist/surfaces/mcp/server.js +74 -5
- package/dist/surfaces/mcp/server.js.map +1 -1
- package/dist/surfaces/mcp/tool-definitions.d.ts.map +1 -1
- package/dist/surfaces/mcp/tool-definitions.js +8 -1
- package/dist/surfaces/mcp/tool-definitions.js.map +1 -1
- package/dist/surfaces/mcp/tool-handlers.d.ts.map +1 -1
- package/dist/surfaces/mcp/tool-handlers.js +22 -1
- package/dist/surfaces/mcp/tool-handlers.js.map +1 -1
- package/dsh/plugin.mjs +111 -6
- package/package.json +4 -1
- package/plugin.json +1 -1
- package/web/plugin.mjs +45 -2
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.backfillOutcomeEvidence = backfillOutcomeEvidence;
|
|
4
|
+
exports.readEvidenceFile = readEvidenceFile;
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const evidence_1 = require("../../../learning/evidence");
|
|
8
|
+
const auto_capture_1 = require("../../../hooks/auto-capture");
|
|
9
|
+
const routing_1 = require("./routing");
|
|
10
|
+
function readEntries(path) {
|
|
11
|
+
const raw = (0, node_fs_1.readFileSync)(path, "utf8");
|
|
12
|
+
const parsed = path.endsWith(".json")
|
|
13
|
+
? JSON.parse(raw)
|
|
14
|
+
: raw.split(/\r?\n/).filter(Boolean).map((line) => JSON.parse(line));
|
|
15
|
+
if (!Array.isArray(parsed))
|
|
16
|
+
throw new Error("evidence file must contain an array or JSONL entries");
|
|
17
|
+
return parsed;
|
|
18
|
+
}
|
|
19
|
+
async function backfillOutcomeEvidence(options) {
|
|
20
|
+
const entries = readEntries(options.evidencePath);
|
|
21
|
+
const failures = [];
|
|
22
|
+
let closed = 0;
|
|
23
|
+
let skipped = 0;
|
|
24
|
+
const auditPath = options.auditPath ?? (0, evidence_1.defaultEvidenceAuditPath)();
|
|
25
|
+
for (const entry of entries) {
|
|
26
|
+
if (!entry?.episodeId) {
|
|
27
|
+
skipped += 1;
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (options.dryRun) {
|
|
31
|
+
closed += 1;
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const result = await (0, routing_1.reportOutcome)(entry.episodeId, entry.success === true, entry.lessons ?? [], options.configPath, entry.deviation, entry.engineeringHints, entry.evidence);
|
|
36
|
+
if (!result.ok)
|
|
37
|
+
throw new Error(result.reason ?? "outcome rejected");
|
|
38
|
+
closed += 1;
|
|
39
|
+
(0, evidence_1.appendGovernanceAudit)(auditPath, {
|
|
40
|
+
actor: options.actor ?? "evidence-backfill",
|
|
41
|
+
action: "outcome.evidence.close",
|
|
42
|
+
subject: entry.episodeId,
|
|
43
|
+
tenant: "local",
|
|
44
|
+
data: { evidence: entry.evidence, verification: result.evidence },
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
failures.push({
|
|
49
|
+
episodeId: entry.episodeId,
|
|
50
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const journalPath = options.journalPath;
|
|
55
|
+
let removed = 0;
|
|
56
|
+
if (!options.dryRun && journalPath && (0, node_fs_1.existsSync)(journalPath) && closed > 0) {
|
|
57
|
+
const closedIds = new Set(entries.map((entry) => entry.episodeId));
|
|
58
|
+
const open = (0, auto_capture_1.readJournalEntries)(journalPath).filter((entry) => {
|
|
59
|
+
if (!closedIds.has(entry.episodeId))
|
|
60
|
+
return true;
|
|
61
|
+
removed += 1;
|
|
62
|
+
return false;
|
|
63
|
+
});
|
|
64
|
+
const dir = (0, node_path_1.dirname)(journalPath);
|
|
65
|
+
const temp = (0, node_path_1.join)(dir, `.session-journal-${process.pid}-${Date.now()}.tmp`);
|
|
66
|
+
(0, node_fs_1.writeFileSync)(temp, open.map((entry) => JSON.stringify(entry)).join("\n") + (open.length ? "\n" : ""), "utf8");
|
|
67
|
+
(0, node_fs_1.renameSync)(temp, journalPath);
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
total: entries.length,
|
|
71
|
+
closed,
|
|
72
|
+
failed: failures.length,
|
|
73
|
+
skipped,
|
|
74
|
+
...(journalPath && removed > 0 ? { journalPath } : {}),
|
|
75
|
+
...((0, node_fs_1.existsSync)(auditPath) ? { auditPath } : {}),
|
|
76
|
+
failures,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function readEvidenceFile(path) {
|
|
80
|
+
return JSON.parse((0, node_fs_1.readFileSync)(path, "utf8"));
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../../../src/surfaces/cli/runtime/evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { verifyArtifactSignature } from "../../../graph/team-governance";
|
|
2
|
+
import { type KnowledgeGovernanceInput } from "../../../graph/engineering-knowledge";
|
|
3
|
+
export { verifyArtifactSignature };
|
|
4
|
+
export declare function upsertKnowledge(configPath: string | undefined, input: KnowledgeGovernanceInput): Promise<import("../../../graph/engineering-knowledge").KnowledgeUpsertResult>;
|
|
5
|
+
export declare function listKnowledgeQueue(configPath?: string): Promise<import("../../../graph/engineering-knowledge").KnowledgeReviewItem[]>;
|
|
6
|
+
export declare function reviewKnowledge(configPath: string | undefined, nodeId: string, role: string, decision: "approved" | "rejected", reason?: string): Promise<{
|
|
7
|
+
updated: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function traceRequirement(configPath: string | undefined, requirementId: string): Promise<import("../../../graph/engineering-knowledge").RequirementTraceability>;
|
|
10
|
+
export declare function mergeArtifactFiles(basePath: string, localPath: string, remotePath: string): import("../../../graph/team-governance").ArtifactMergeResult;
|
|
11
|
+
export declare function writeMergedArtifact(outputPath: string, artifact: unknown): string;
|
|
12
|
+
export declare function signArtifactFile(inputPath: string, secret: string): {
|
|
13
|
+
signature: string;
|
|
14
|
+
algorithm: "hmac-sha256";
|
|
15
|
+
};
|
|
16
|
+
export declare function createSignedArtifactFile(configPath: string | undefined, outputPath: string, secret: string, includeEpisodes?: boolean): {
|
|
17
|
+
path: string;
|
|
18
|
+
sha256: string;
|
|
19
|
+
nodeCount: number;
|
|
20
|
+
};
|
|
21
|
+
export declare function importSignedArtifactFile(configPath: string | undefined, inputPath: string, passphrase: string): Promise<import("../../../graph/artifact-manager").ImportResult>;
|
|
22
|
+
export declare function quarantineNodes(configPath: string | undefined, nodeIds: string[], options?: {
|
|
23
|
+
actor?: string;
|
|
24
|
+
auditPath?: string;
|
|
25
|
+
reason?: string;
|
|
26
|
+
}): Promise<{
|
|
27
|
+
quarantined: string[];
|
|
28
|
+
auditValid: boolean;
|
|
29
|
+
}>;
|
|
30
|
+
export declare function retentionSummary(configPath?: string): {
|
|
31
|
+
retained: import("../../../core/types").GraphNode[];
|
|
32
|
+
expired: import("../../../core/types").GraphNode[];
|
|
33
|
+
};
|
|
34
|
+
export interface MemoryProfileOptions {
|
|
35
|
+
outputDir: string;
|
|
36
|
+
command?: string;
|
|
37
|
+
packageSpec?: string;
|
|
38
|
+
httpUrl?: string;
|
|
39
|
+
stateful?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export declare function exportMemoryProfiles(options: MemoryProfileOptions): Record<string, string>;
|
|
42
|
+
export interface ReleaseGateOptions {
|
|
43
|
+
minProvenSkills: number;
|
|
44
|
+
minFidelitySamples: number;
|
|
45
|
+
maxPendingRatio: number;
|
|
46
|
+
}
|
|
47
|
+
export interface ReleaseGateState {
|
|
48
|
+
schemaVersion: 1;
|
|
49
|
+
evidenceCommit: string;
|
|
50
|
+
provenSkills: number;
|
|
51
|
+
fidelitySamples: number;
|
|
52
|
+
pendingRatio: number;
|
|
53
|
+
proofResultsPath?: string;
|
|
54
|
+
stateHash: string;
|
|
55
|
+
}
|
|
56
|
+
export declare function captureReleaseGateState(configPath: string | undefined, outputPath: string, thresholds?: ReleaseGateOptions): ReleaseGateState;
|
|
57
|
+
export declare function releaseGate(configPath?: string, thresholds?: ReleaseGateOptions, statePath?: string): {
|
|
58
|
+
report: import("./graph").FlywheelReport;
|
|
59
|
+
fidelity: import("../../../graph/token-savings").ContextFidelityStats;
|
|
60
|
+
checks: ({
|
|
61
|
+
name: string;
|
|
62
|
+
actual: number;
|
|
63
|
+
required: number;
|
|
64
|
+
maximum?: never;
|
|
65
|
+
} | {
|
|
66
|
+
name: string;
|
|
67
|
+
actual: number;
|
|
68
|
+
maximum: number;
|
|
69
|
+
required?: never;
|
|
70
|
+
})[];
|
|
71
|
+
state: ReleaseGateState;
|
|
72
|
+
} | {
|
|
73
|
+
report: import("./graph").FlywheelReport;
|
|
74
|
+
fidelity: import("../../../graph/token-savings").ContextFidelityStats;
|
|
75
|
+
checks: ({
|
|
76
|
+
name: string;
|
|
77
|
+
actual: number;
|
|
78
|
+
required: number;
|
|
79
|
+
maximum?: never;
|
|
80
|
+
} | {
|
|
81
|
+
name: string;
|
|
82
|
+
actual: number;
|
|
83
|
+
maximum: number;
|
|
84
|
+
required?: never;
|
|
85
|
+
})[];
|
|
86
|
+
state?: never;
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=governance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/cli/runtime/governance.ts"],"names":[],"mappings":"AAQA,OAAO,EAOL,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAIL,KAAK,wBAAwB,EAC9B,MAAM,sCAAsC,CAAC;AAQ9C,OAAO,EAAE,uBAAuB,EAAE,CAAC;AAMnC,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,wBAAwB,iFAGpG;AAED,wBAAsB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,iFAG3D;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,UAAU,GAAG,UAAU,EACjC,MAAM,CAAC,EAAE,MAAM;;GAIhB;AAED,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM,mFAG3F;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gEAMzF;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAIjF;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;EAGjE;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,UAAO;;;;EAgBvB;AAED,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,mEAqBnB;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO;;;GAItE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM;;;EAGnD;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,0BAoCjE;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,CAAC,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAkCD,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,kBAAwF,oBAqBrG;AAED,wBAAgB,WAAW,CACzB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,GAAE,kBAAwF,EACpG,SAAS,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDnB"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.verifyArtifactSignature = void 0;
|
|
4
|
+
exports.upsertKnowledge = upsertKnowledge;
|
|
5
|
+
exports.listKnowledgeQueue = listKnowledgeQueue;
|
|
6
|
+
exports.reviewKnowledge = reviewKnowledge;
|
|
7
|
+
exports.traceRequirement = traceRequirement;
|
|
8
|
+
exports.mergeArtifactFiles = mergeArtifactFiles;
|
|
9
|
+
exports.writeMergedArtifact = writeMergedArtifact;
|
|
10
|
+
exports.signArtifactFile = signArtifactFile;
|
|
11
|
+
exports.createSignedArtifactFile = createSignedArtifactFile;
|
|
12
|
+
exports.importSignedArtifactFile = importSignedArtifactFile;
|
|
13
|
+
exports.quarantineNodes = quarantineNodes;
|
|
14
|
+
exports.retentionSummary = retentionSummary;
|
|
15
|
+
exports.exportMemoryProfiles = exportMemoryProfiles;
|
|
16
|
+
exports.captureReleaseGateState = captureReleaseGateState;
|
|
17
|
+
exports.releaseGate = releaseGate;
|
|
18
|
+
const node_fs_1 = require("node:fs");
|
|
19
|
+
const node_child_process_1 = require("node:child_process");
|
|
20
|
+
const node_os_1 = require("node:os");
|
|
21
|
+
const node_path_1 = require("node:path");
|
|
22
|
+
const node_crypto_1 = require("node:crypto");
|
|
23
|
+
const resolve_1 = require("../../../config/resolve");
|
|
24
|
+
const client_factory_1 = require("../../../graph/client-factory");
|
|
25
|
+
const team_governance_1 = require("../../../graph/team-governance");
|
|
26
|
+
Object.defineProperty(exports, "verifyArtifactSignature", { enumerable: true, get: function () { return team_governance_1.verifyArtifactSignature; } });
|
|
27
|
+
const engineering_knowledge_1 = require("../../../graph/engineering-knowledge");
|
|
28
|
+
const artifact_manager_1 = require("../../../graph/artifact-manager");
|
|
29
|
+
const token_savings_1 = require("../../../graph/token-savings");
|
|
30
|
+
const graph_1 = require("./graph");
|
|
31
|
+
const secure_store_1 = require("../../../security/secure-store");
|
|
32
|
+
function readJson(path) {
|
|
33
|
+
return JSON.parse((0, node_fs_1.readFileSync)(path, "utf8"));
|
|
34
|
+
}
|
|
35
|
+
async function upsertKnowledge(configPath, input) {
|
|
36
|
+
const client = (0, client_factory_1.createGraphClient)((0, resolve_1.resolveConfig)(configPath));
|
|
37
|
+
return (0, engineering_knowledge_1.upsertKnowledgeNode)(client, input);
|
|
38
|
+
}
|
|
39
|
+
async function listKnowledgeQueue(configPath) {
|
|
40
|
+
const client = (0, client_factory_1.createGraphClient)((0, resolve_1.resolveConfig)(configPath));
|
|
41
|
+
return (0, engineering_knowledge_1.listKnowledgeReviewQueue)(client.readSnapshot?.().nodes ?? []);
|
|
42
|
+
}
|
|
43
|
+
async function reviewKnowledge(configPath, nodeId, role, decision, reason) {
|
|
44
|
+
const client = (0, client_factory_1.createGraphClient)((0, resolve_1.resolveConfig)(configPath));
|
|
45
|
+
return (0, team_governance_1.approveGraphNode)(client, nodeId, role, decision, reason);
|
|
46
|
+
}
|
|
47
|
+
async function traceRequirement(configPath, requirementId) {
|
|
48
|
+
const client = (0, client_factory_1.createGraphClient)((0, resolve_1.resolveConfig)(configPath));
|
|
49
|
+
return (0, engineering_knowledge_1.buildRequirementTraceability)(client, requirementId);
|
|
50
|
+
}
|
|
51
|
+
function mergeArtifactFiles(basePath, localPath, remotePath) {
|
|
52
|
+
return (0, team_governance_1.mergeGraphArtifacts)(readJson(basePath), readJson(localPath), readJson(remotePath));
|
|
53
|
+
}
|
|
54
|
+
function writeMergedArtifact(outputPath, artifact) {
|
|
55
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(outputPath), { recursive: true });
|
|
56
|
+
(0, node_fs_1.writeFileSync)(outputPath, JSON.stringify(artifact, null, 2), "utf8");
|
|
57
|
+
return outputPath;
|
|
58
|
+
}
|
|
59
|
+
function signArtifactFile(inputPath, secret) {
|
|
60
|
+
const payload = readJson(inputPath);
|
|
61
|
+
return (0, team_governance_1.signArtifact)(payload, secret);
|
|
62
|
+
}
|
|
63
|
+
function createSignedArtifactFile(configPath, outputPath, secret, includeEpisodes = true) {
|
|
64
|
+
const temp = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "graphflow-signed-"));
|
|
65
|
+
try {
|
|
66
|
+
const plainPath = (0, node_path_1.join)(temp, "artifact.json");
|
|
67
|
+
const result = (0, artifact_manager_1.exportGraphArtifact)((0, resolve_1.resolveConfig)(configPath), plainPath, undefined, {
|
|
68
|
+
compression: "none",
|
|
69
|
+
includeEpisodes,
|
|
70
|
+
});
|
|
71
|
+
const envelope = (0, secure_store_1.encryptJson)(readJson(plainPath), secret);
|
|
72
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(outputPath), { recursive: true });
|
|
73
|
+
(0, node_fs_1.writeFileSync)(outputPath, JSON.stringify({ ...envelope, ...result }, null, 2), "utf8");
|
|
74
|
+
return { path: outputPath, sha256: result.sha256, nodeCount: result.nodeCount };
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
(0, node_fs_1.rmSync)(temp, { recursive: true, force: true });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async function importSignedArtifactFile(configPath, inputPath, passphrase) {
|
|
81
|
+
const envelopeRaw = readJson(inputPath);
|
|
82
|
+
const envelope = {
|
|
83
|
+
v: envelopeRaw.v,
|
|
84
|
+
alg: envelopeRaw.alg,
|
|
85
|
+
salt: envelopeRaw.salt,
|
|
86
|
+
iv: envelopeRaw.iv,
|
|
87
|
+
tag: envelopeRaw.tag,
|
|
88
|
+
ciphertext: envelopeRaw.ciphertext,
|
|
89
|
+
};
|
|
90
|
+
const artifact = (0, secure_store_1.decryptJson)(envelope, passphrase);
|
|
91
|
+
const temp = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "graphflow-signed-import-"));
|
|
92
|
+
try {
|
|
93
|
+
const path = (0, node_path_1.join)(temp, "artifact.json");
|
|
94
|
+
(0, node_fs_1.writeFileSync)(path, JSON.stringify(artifact), "utf8");
|
|
95
|
+
const client = (0, client_factory_1.createGraphClient)((0, resolve_1.resolveConfig)(configPath));
|
|
96
|
+
return (0, artifact_manager_1.importGraphArtifact)((0, resolve_1.resolveConfig)(configPath), client, path);
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
(0, node_fs_1.rmSync)(temp, { recursive: true, force: true });
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async function quarantineNodes(configPath, nodeIds, options = {}) {
|
|
103
|
+
const client = (0, client_factory_1.createGraphClient)((0, resolve_1.resolveConfig)(configPath));
|
|
104
|
+
return (0, team_governance_1.propagateQuarantine)(client, nodeIds, options);
|
|
105
|
+
}
|
|
106
|
+
function retentionSummary(configPath) {
|
|
107
|
+
const client = (0, client_factory_1.createGraphClient)((0, resolve_1.resolveConfig)(configPath));
|
|
108
|
+
return (0, team_governance_1.applyRetentionPolicy)(client.readSnapshot?.().nodes ?? []);
|
|
109
|
+
}
|
|
110
|
+
function exportMemoryProfiles(options) {
|
|
111
|
+
const command = options.command ?? "npx";
|
|
112
|
+
const packageSpec = options.packageSpec ?? "-y --package=@roarpeng/graphflow graphflow-mcp";
|
|
113
|
+
const args = options.httpUrl
|
|
114
|
+
? ["mcp", "serve", "--http", ...(options.stateful ? ["--stateful"] : [])]
|
|
115
|
+
: packageSpec.split(/\s+/).filter(Boolean);
|
|
116
|
+
const server = options.httpUrl ? { type: "http", url: options.httpUrl } : {
|
|
117
|
+
type: "stdio",
|
|
118
|
+
command,
|
|
119
|
+
args,
|
|
120
|
+
};
|
|
121
|
+
const profiles = {
|
|
122
|
+
cursor: { mcpServers: { graphflow: server } },
|
|
123
|
+
"claude-code": { mcpServers: { graphflow: server } },
|
|
124
|
+
codex: `[mcp_servers.graphflow]\n${options.httpUrl ? `url = "${options.httpUrl}"` : `command = "${command}"\nargs = [${args.map((arg) => `"${arg}"`).join(", ")}"]`}\n`,
|
|
125
|
+
dsh: {
|
|
126
|
+
insert: [{
|
|
127
|
+
id: "mcp-graphflow",
|
|
128
|
+
name: "@deepseek-ai/dsh-mcp-client",
|
|
129
|
+
config: {
|
|
130
|
+
serverName: "graphflow",
|
|
131
|
+
transport: options.httpUrl ? "http" : "stdio",
|
|
132
|
+
...(options.httpUrl ? { url: options.httpUrl } : { command, args }),
|
|
133
|
+
failOnStartupError: false,
|
|
134
|
+
},
|
|
135
|
+
}],
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
(0, node_fs_1.mkdirSync)(options.outputDir, { recursive: true });
|
|
139
|
+
const files = {};
|
|
140
|
+
for (const [name, value] of Object.entries(profiles)) {
|
|
141
|
+
const file = (0, node_path_1.join)(options.outputDir, `${name}.json`);
|
|
142
|
+
(0, node_fs_1.writeFileSync)(file, JSON.stringify(value, null, 2), "utf8");
|
|
143
|
+
files[name] = file;
|
|
144
|
+
}
|
|
145
|
+
return files;
|
|
146
|
+
}
|
|
147
|
+
function currentGitCommit() {
|
|
148
|
+
return (0, node_child_process_1.execFileSync)("git", ["rev-parse", "HEAD"], { encoding: "utf8" }).trim();
|
|
149
|
+
}
|
|
150
|
+
function canonicalReleaseState(state) {
|
|
151
|
+
return JSON.stringify({
|
|
152
|
+
schemaVersion: state.schemaVersion,
|
|
153
|
+
evidenceCommit: state.evidenceCommit,
|
|
154
|
+
provenSkills: state.provenSkills,
|
|
155
|
+
fidelitySamples: state.fidelitySamples,
|
|
156
|
+
pendingRatio: state.pendingRatio,
|
|
157
|
+
...(state.proofResultsPath ? { proofResultsPath: state.proofResultsPath } : {}),
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
function readVerifiedReleaseState(path) {
|
|
161
|
+
if (!(0, node_fs_1.existsSync)(path))
|
|
162
|
+
return undefined;
|
|
163
|
+
const parsed = JSON.parse((0, node_fs_1.readFileSync)(path, "utf8"));
|
|
164
|
+
const { stateHash, ...state } = parsed;
|
|
165
|
+
const expected = (0, node_crypto_1.createHash)("sha256")
|
|
166
|
+
.update(canonicalReleaseState(state))
|
|
167
|
+
.digest("hex");
|
|
168
|
+
if (parsed.schemaVersion !== 1 ||
|
|
169
|
+
stateHash !== expected ||
|
|
170
|
+
state.evidenceCommit !== currentGitCommit()) {
|
|
171
|
+
throw new Error("release gate state is invalid or bound to another commit");
|
|
172
|
+
}
|
|
173
|
+
return parsed;
|
|
174
|
+
}
|
|
175
|
+
function captureReleaseGateState(configPath, outputPath, thresholds = { minProvenSkills: 1, minFidelitySamples: 1, maxPendingRatio: 0.5 }) {
|
|
176
|
+
const result = releaseGate(configPath, thresholds);
|
|
177
|
+
const withoutHash = {
|
|
178
|
+
schemaVersion: 1,
|
|
179
|
+
evidenceCommit: currentGitCommit(),
|
|
180
|
+
provenSkills: result.report.experience.provenSkillCount,
|
|
181
|
+
fidelitySamples: result.fidelity.sampleCount,
|
|
182
|
+
pendingRatio: result.report.episodes.total === 0
|
|
183
|
+
? 0
|
|
184
|
+
: result.report.episodes.pending / result.report.episodes.total,
|
|
185
|
+
proofResultsPath: "benchmarks/.cache/proof-plane-self-results.json",
|
|
186
|
+
};
|
|
187
|
+
const state = {
|
|
188
|
+
...withoutHash,
|
|
189
|
+
stateHash: (0, node_crypto_1.createHash)("sha256").update(canonicalReleaseState(withoutHash)).digest("hex"),
|
|
190
|
+
};
|
|
191
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(outputPath), { recursive: true });
|
|
192
|
+
(0, node_fs_1.writeFileSync)(outputPath, JSON.stringify(state, null, 2), "utf8");
|
|
193
|
+
return state;
|
|
194
|
+
}
|
|
195
|
+
function releaseGate(configPath, thresholds = { minProvenSkills: 1, minFidelitySamples: 1, maxPendingRatio: 0.5 }, statePath) {
|
|
196
|
+
const committed = statePath ? readVerifiedReleaseState(statePath) : undefined;
|
|
197
|
+
if (committed) {
|
|
198
|
+
const checks = [
|
|
199
|
+
{ name: "proven-skills", actual: committed.provenSkills, required: thresholds.minProvenSkills },
|
|
200
|
+
{ name: "fidelity-samples", actual: committed.fidelitySamples, required: thresholds.minFidelitySamples },
|
|
201
|
+
{
|
|
202
|
+
name: "pending-ratio",
|
|
203
|
+
actual: committed.pendingRatio,
|
|
204
|
+
maximum: thresholds.maxPendingRatio,
|
|
205
|
+
},
|
|
206
|
+
];
|
|
207
|
+
const failures = checks.flatMap((check) => {
|
|
208
|
+
if ("required" in check && check.actual < check.required) {
|
|
209
|
+
return [`${check.name}: ${check.actual} < ${check.required}`];
|
|
210
|
+
}
|
|
211
|
+
if ("maximum" in check && check.actual > check.maximum) {
|
|
212
|
+
return [`${check.name}: ${check.actual} > ${check.maximum}`];
|
|
213
|
+
}
|
|
214
|
+
return [];
|
|
215
|
+
});
|
|
216
|
+
if (failures.length > 0)
|
|
217
|
+
throw new Error(`release gates failed: ${failures.join("; ")}`);
|
|
218
|
+
return { report: (0, graph_1.getFlywheelReport)(configPath), fidelity: (0, token_savings_1.getContextFidelityStats)((0, resolve_1.resolveConfig)(configPath)), checks, state: committed };
|
|
219
|
+
}
|
|
220
|
+
const report = (0, graph_1.getFlywheelReport)(configPath);
|
|
221
|
+
const config = (0, resolve_1.resolveConfig)(configPath);
|
|
222
|
+
const fidelity = (0, token_savings_1.getContextFidelityStats)(config);
|
|
223
|
+
const checks = [
|
|
224
|
+
{ name: "proven-skills", actual: report.experience.provenSkillCount, required: thresholds.minProvenSkills },
|
|
225
|
+
{ name: "fidelity-samples", actual: fidelity.sampleCount, required: thresholds.minFidelitySamples },
|
|
226
|
+
{
|
|
227
|
+
name: "pending-ratio",
|
|
228
|
+
actual: report.episodes.total === 0 ? 0 : report.episodes.pending / report.episodes.total,
|
|
229
|
+
maximum: thresholds.maxPendingRatio,
|
|
230
|
+
},
|
|
231
|
+
];
|
|
232
|
+
const failures = checks.flatMap((check) => {
|
|
233
|
+
if ("required" in check && check.actual < check.required) {
|
|
234
|
+
return [`${check.name}: ${check.actual} < ${check.required}`];
|
|
235
|
+
}
|
|
236
|
+
if ("maximum" in check && check.actual > check.maximum) {
|
|
237
|
+
return [`${check.name}: ${check.actual} > ${check.maximum}`];
|
|
238
|
+
}
|
|
239
|
+
return [];
|
|
240
|
+
});
|
|
241
|
+
if (failures.length > 0)
|
|
242
|
+
throw new Error(`release gates failed: ${failures.join("; ")}`);
|
|
243
|
+
return { report, fidelity, checks };
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=governance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../../../../src/surfaces/cli/runtime/governance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/cli/runtime/graph.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAKpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/cli/runtime/graph.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAKpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIlE,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAoCzE,OAAO,KAAK,EACV,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EAEtB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA0D9D,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,sBAAsB,GAChC,OAAO,CAAC,oBAAoB,CAAC,CAmI/B;AA8KD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,cAAc,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,sBAAsB,GAChC,OAAO,CAAC,2BAA2B,CAAC,CA4DtC;AAED,wBAAsB,UAAU,CAC9B,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GACpE,OAAO,CAAC,gBAAgB,CAAC,CAkB3B;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IACT,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAeD;AAED,wBAAsB,YAAY,CAChC,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GACpE,OAAO,CAAC,kBAAkB,CAAC,CAuB7B;AAED,wBAAsB,YAAY,CAChC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACrE,OAAO,CAAC,mBAAmB,CAAC,CA6E9B;AAED,wBAAsB,oBAAoB,CACxC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,mCAAmC,EAAE,gBAAgB,EAAE,CAAC;IACzE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC,CAKD;AAED,wBAAsB,gBAAgB,CACpC,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,SAAK,EACV,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC,CAqC9B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B,4EAA4E;IAC5E,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,0EAA0E;QAC1E,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,6EAA6E;QAC7E,aAAa,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChD,wEAAwE;QACxE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/D,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,mEAAmE;QACnE,WAAW,EAAE,MAAM,CAAC;QACpB,gFAAgF;QAChF,UAAU,EAAE;YACV,kBAAkB,EAAE,MAAM,CAAC;YAC3B,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF;;;;;;OAMG;IACH,iBAAiB,EAAE;QACjB;;;;;WAKG;QACH,UAAU,EAAE,MAAM,CAAC;QACnB;4EACoE;QACpE,aAAa,EAAE,MAAM,CAAC;QACtB,qEAAqE;QACrE,UAAU,EAAE;YACV,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,EAAE,MAAM,CAAC;YACpB,cAAc,EAAE,MAAM,CAAC;SACxB,CAAC;QACF;sFAC8E;QAC9E,uBAAuB,EAAE,KAAK,CAAC;YAC7B,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;YAChB,YAAY,EAAE,MAAM,CAAC;YACrB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;QACH,mEAAmE;QACnE,kBAAkB,EAAE;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,kBAAkB,EAAE,MAAM,CAAC;YAC3B,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF;;;;OAIG;IACH,UAAU,EAAE;QACV;;;;;WAKG;QACH,4BAA4B,EAAE,MAAM,CAAC;QACrC,6FAA6F;QAC7F,mBAAmB,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,uEAAuE;QACvE,iBAAiB,EAAE,MAAM,CAAC;QAC1B;;;WAGG;QACH,aAAa,EAAE;YACb,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,gDAAgD;YAChD,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC;IACF;;;OAGG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CA8NvF;AAED,wBAAsB,cAAc,CAClC,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACrE,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B,CAAC,CAKD;AAED,mFAAmF;AACnF,wBAAsB,sBAAsB,CAC1C,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAID;AAED,wBAAsB,cAAc,CAClC,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAKvH;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAClC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAWtF;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC,CAYD;AAuCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CACN;IAAE,SAAS,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAChG;IACE,SAAS,EAAE,QAAQ,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CACJ,CAmBA;AAED,wBAAgB,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG;IAC1F,WAAW,EAAE,MAAM,CAAC;CACrB,CAWA;AAED,wBAAgB,sBAAsB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAG5F;AA4BD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAkFzC;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,gBAAgB,GAAG,IAAI,CA2BzB"}
|
|
@@ -30,6 +30,7 @@ const context_slicer_1 = require("../../../graph/context-slicer");
|
|
|
30
30
|
const file_indexer_1 = require("../../../graph/file-indexer");
|
|
31
31
|
const file_watcher_js_1 = require("../../../graph/file-watcher.js");
|
|
32
32
|
const graph_utils_1 = require("../../../graph/graph-utils");
|
|
33
|
+
const graph_search_1 = require("../../../graph/graph-search");
|
|
33
34
|
const snapshot_view_js_1 = require("../../../graph/snapshot-view.js");
|
|
34
35
|
const token_savings_js_1 = require("../../../graph/token-savings.js");
|
|
35
36
|
const auto_capture_js_1 = require("../../../hooks/auto-capture.js");
|
|
@@ -194,14 +195,42 @@ async function previewContext(query, configPath, rootDir, englishQuery, dialogue
|
|
|
194
195
|
return attachWorkbenchThenDialogue(result, graphClient, config, query, dialogue);
|
|
195
196
|
}
|
|
196
197
|
async function attachWorkbenchThenDialogue(result, client, config, query, dialogue) {
|
|
198
|
+
// Historical recall (Conversation Graph W2b) is read-only, so it runs even
|
|
199
|
+
// when this preview must not record a dialogue turn.
|
|
200
|
+
const withHits = await attachDialogueHits(result, client, query);
|
|
197
201
|
if (dialogue?.recordDialogue === false) {
|
|
198
|
-
return
|
|
202
|
+
return withHits;
|
|
199
203
|
}
|
|
200
|
-
const withWorkbench = await attachWorkbenchTopic(
|
|
204
|
+
const withWorkbench = await attachWorkbenchTopic(withHits, client, config, query, dialogue);
|
|
201
205
|
if (withWorkbench.workbench) {
|
|
202
206
|
return withWorkbench;
|
|
203
207
|
}
|
|
204
|
-
return attachDialogueThread(
|
|
208
|
+
return attachDialogueThread(withHits, client, config, query, dialogue);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Recall historical dialogue turns matching the query (Conversation Graph
|
|
212
|
+
* W2b). Additive-only: hits ride in `dialogueHits` and never displace code
|
|
213
|
+
* anchors; a correction-chain hit surfaces as one summary line so a
|
|
214
|
+
* previously corrected conclusion is visible before the agent re-derives it.
|
|
215
|
+
*/
|
|
216
|
+
async function attachDialogueHits(result, client, query) {
|
|
217
|
+
try {
|
|
218
|
+
const hits = await (0, graph_search_1.searchDialogueTurns)(client, query, { limit: 3 });
|
|
219
|
+
if (hits.length === 0) {
|
|
220
|
+
return result;
|
|
221
|
+
}
|
|
222
|
+
const withHits = { ...result, dialogueHits: hits };
|
|
223
|
+
const corrected = hits.find((hit) => hit.correctionLine);
|
|
224
|
+
if (corrected?.correctionLine) {
|
|
225
|
+
withHits.summary = [`Dialogue recall: ${corrected.correctionLine}`, ...withHits.summary];
|
|
226
|
+
withHits.summaryCount += 1;
|
|
227
|
+
}
|
|
228
|
+
return withHits;
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
logger_js_1.logger.warn({ error }, "Dialogue recall attach failed");
|
|
232
|
+
return result;
|
|
233
|
+
}
|
|
205
234
|
}
|
|
206
235
|
async function attachWorkbenchTopic(result, client, config, query, dialogue) {
|
|
207
236
|
try {
|
|
@@ -438,6 +467,10 @@ async function inspectGraph(configPath, options) {
|
|
|
438
467
|
TaskRun: 0,
|
|
439
468
|
Decision: 0,
|
|
440
469
|
Skill: 0,
|
|
470
|
+
ADR: 0,
|
|
471
|
+
Invariant: 0,
|
|
472
|
+
APIContract: 0,
|
|
473
|
+
Test: 0,
|
|
441
474
|
};
|
|
442
475
|
if (config.graphPolicy.transport === "mcp-http") {
|
|
443
476
|
return {
|