@roarpeng/graphflow 1.9.4 → 1.9.12
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 +133 -0
- package/README.md +193 -107
- package/dist/agents/atp-example-producer.d.ts +33 -0
- package/dist/agents/atp-example-producer.d.ts.map +1 -0
- package/dist/agents/atp-example-producer.js +154 -0
- package/dist/agents/atp-example-producer.js.map +1 -0
- package/dist/agents/planner.d.ts.map +1 -1
- package/dist/agents/planner.js +14 -8
- package/dist/agents/planner.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +5 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/include-extensions.d.ts +3 -1
- package/dist/config/include-extensions.d.ts.map +1 -1
- package/dist/config/include-extensions.js +6 -3
- package/dist/config/include-extensions.js.map +1 -1
- package/dist/config/loader.js +1 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/core/agent-delegation.d.ts +16 -2
- package/dist/core/agent-delegation.d.ts.map +1 -1
- package/dist/core/agent-delegation.js +48 -5
- package/dist/core/agent-delegation.js.map +1 -1
- package/dist/core/merge-agent-insight.d.ts.map +1 -1
- package/dist/core/merge-agent-insight.js +10 -0
- package/dist/core/merge-agent-insight.js.map +1 -1
- package/dist/core/orchestrator-episode.d.ts.map +1 -1
- package/dist/core/orchestrator-episode.js +24 -0
- package/dist/core/orchestrator-episode.js.map +1 -1
- package/dist/core/orchestrator.js +52 -1
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/core/submit-agent-insight.d.ts +17 -0
- package/dist/core/submit-agent-insight.d.ts.map +1 -1
- package/dist/core/submit-agent-insight.js +28 -0
- package/dist/core/submit-agent-insight.js.map +1 -1
- package/dist/core/types.d.ts +35 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/graph/client-factory.d.ts +4 -0
- package/dist/graph/client-factory.d.ts.map +1 -1
- package/dist/graph/client-factory.js +83 -7
- package/dist/graph/client-factory.js.map +1 -1
- package/dist/graph/context-slicer-types.d.ts +4 -0
- package/dist/graph/context-slicer-types.d.ts.map +1 -1
- package/dist/graph/context-slicer-types.js +3 -0
- package/dist/graph/context-slicer-types.js.map +1 -1
- package/dist/graph/context-slicer.d.ts.map +1 -1
- package/dist/graph/context-slicer.js +154 -6
- package/dist/graph/context-slicer.js.map +1 -1
- package/dist/graph/document-convert.d.ts +33 -0
- package/dist/graph/document-convert.d.ts.map +1 -0
- package/dist/graph/document-convert.js +137 -0
- package/dist/graph/document-convert.js.map +1 -0
- package/dist/graph/document-semantic-bridge.d.ts +23 -0
- package/dist/graph/document-semantic-bridge.d.ts.map +1 -0
- package/dist/graph/document-semantic-bridge.js +61 -0
- package/dist/graph/document-semantic-bridge.js.map +1 -0
- package/dist/graph/document-semantic-ingest.d.ts +48 -0
- package/dist/graph/document-semantic-ingest.d.ts.map +1 -0
- package/dist/graph/document-semantic-ingest.js +229 -0
- package/dist/graph/document-semantic-ingest.js.map +1 -0
- package/dist/graph/episode-engineering-links.d.ts +29 -0
- package/dist/graph/episode-engineering-links.d.ts.map +1 -0
- package/dist/graph/episode-engineering-links.js +63 -0
- package/dist/graph/episode-engineering-links.js.map +1 -0
- package/dist/graph/file-indexer-edges.d.ts +26 -0
- package/dist/graph/file-indexer-edges.d.ts.map +1 -1
- package/dist/graph/file-indexer-edges.js +120 -20
- package/dist/graph/file-indexer-edges.js.map +1 -1
- package/dist/graph/file-indexer-nodes.d.ts +18 -0
- package/dist/graph/file-indexer-nodes.d.ts.map +1 -1
- package/dist/graph/file-indexer-nodes.js +0 -0
- package/dist/graph/file-indexer-nodes.js.map +1 -1
- package/dist/graph/file-indexer-walker.d.ts +4 -1
- package/dist/graph/file-indexer-walker.d.ts.map +1 -1
- package/dist/graph/file-indexer-walker.js +33 -16
- package/dist/graph/file-indexer-walker.js.map +1 -1
- package/dist/graph/file-indexer.d.ts +5 -0
- package/dist/graph/file-indexer.d.ts.map +1 -1
- package/dist/graph/file-indexer.js +162 -50
- package/dist/graph/file-indexer.js.map +1 -1
- package/dist/graph/graph-compression.d.ts +11 -2
- package/dist/graph/graph-compression.d.ts.map +1 -1
- package/dist/graph/graph-compression.js +153 -16
- package/dist/graph/graph-compression.js.map +1 -1
- package/dist/graph/graphify-client.d.ts +1 -0
- package/dist/graph/graphify-client.d.ts.map +1 -1
- package/dist/graph/graphify-client.js +24 -9
- package/dist/graph/graphify-client.js.map +1 -1
- package/dist/graph/graphify-file-client.d.ts +1 -0
- package/dist/graph/graphify-file-client.d.ts.map +1 -1
- package/dist/graph/graphify-file-client.js +8 -2
- package/dist/graph/graphify-file-client.js.map +1 -1
- package/dist/graph/language-indexers/c-cpp.d.ts.map +1 -1
- package/dist/graph/language-indexers/c-cpp.js +19 -13
- package/dist/graph/language-indexers/c-cpp.js.map +1 -1
- package/dist/graph/language-indexers/dart.d.ts.map +1 -1
- package/dist/graph/language-indexers/dart.js +2 -6
- package/dist/graph/language-indexers/dart.js.map +1 -1
- package/dist/graph/language-indexers/go.d.ts.map +1 -1
- package/dist/graph/language-indexers/go.js +3 -6
- package/dist/graph/language-indexers/go.js.map +1 -1
- package/dist/graph/language-indexers/java.d.ts.map +1 -1
- package/dist/graph/language-indexers/java.js +2 -6
- package/dist/graph/language-indexers/java.js.map +1 -1
- package/dist/graph/language-indexers/kotlin.d.ts.map +1 -1
- package/dist/graph/language-indexers/kotlin.js +2 -6
- package/dist/graph/language-indexers/kotlin.js.map +1 -1
- package/dist/graph/language-indexers/python.d.ts.map +1 -1
- package/dist/graph/language-indexers/python.js +4 -6
- package/dist/graph/language-indexers/python.js.map +1 -1
- package/dist/graph/language-indexers/ruby.d.ts.map +1 -1
- package/dist/graph/language-indexers/ruby.js +2 -6
- package/dist/graph/language-indexers/ruby.js.map +1 -1
- package/dist/graph/language-indexers/rust.d.ts.map +1 -1
- package/dist/graph/language-indexers/rust.js +3 -6
- package/dist/graph/language-indexers/rust.js.map +1 -1
- package/dist/graph/language-indexers/swift.d.ts.map +1 -1
- package/dist/graph/language-indexers/swift.js +2 -6
- package/dist/graph/language-indexers/swift.js.map +1 -1
- package/dist/graph/language-indexers/tree-sitter-loader.d.ts +20 -0
- package/dist/graph/language-indexers/tree-sitter-loader.d.ts.map +1 -1
- package/dist/graph/language-indexers/tree-sitter-loader.js +42 -0
- package/dist/graph/language-indexers/tree-sitter-loader.js.map +1 -1
- package/dist/graph/memory-pack.d.ts +46 -0
- package/dist/graph/memory-pack.d.ts.map +1 -0
- package/dist/graph/memory-pack.js +204 -0
- package/dist/graph/memory-pack.js.map +1 -0
- package/dist/graph/snapshot-view.d.ts.map +1 -1
- package/dist/graph/snapshot-view.js +26 -1
- package/dist/graph/snapshot-view.js.map +1 -1
- package/dist/graph/sqlite-client.d.ts +1 -0
- package/dist/graph/sqlite-client.d.ts.map +1 -1
- package/dist/graph/sqlite-client.js +15 -4
- package/dist/graph/sqlite-client.js.map +1 -1
- package/dist/graph/symbol-extract.d.ts +39 -0
- package/dist/graph/symbol-extract.d.ts.map +1 -0
- package/dist/graph/symbol-extract.js +187 -0
- package/dist/graph/symbol-extract.js.map +1 -0
- package/dist/hooks/auto-capture.d.ts +87 -0
- package/dist/hooks/auto-capture.d.ts.map +1 -0
- package/dist/hooks/auto-capture.js +182 -0
- package/dist/hooks/auto-capture.js.map +1 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -2
- package/dist/index.js.map +1 -1
- package/dist/integrations/agent-mcp-installer.d.ts +87 -5
- package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
- package/dist/integrations/agent-mcp-installer.js +418 -60
- package/dist/integrations/agent-mcp-installer.js.map +1 -1
- package/dist/integrations/agent-profiles/profiles/qoder.d.ts.map +1 -1
- package/dist/integrations/agent-profiles/profiles/qoder.js +14 -2
- package/dist/integrations/agent-profiles/profiles/qoder.js.map +1 -1
- package/dist/integrations/agent-profiles/skills/qoder.js +6 -0
- package/dist/integrations/agent-profiles/skills/qoder.js.map +1 -1
- package/dist/integrations/claude-code-hooks.d.ts +95 -0
- package/dist/integrations/claude-code-hooks.d.ts.map +1 -0
- package/dist/integrations/claude-code-hooks.js +321 -0
- package/dist/integrations/claude-code-hooks.js.map +1 -0
- package/dist/integrations/ensure-anydoc.d.ts +41 -0
- package/dist/integrations/ensure-anydoc.d.ts.map +1 -0
- package/dist/integrations/ensure-anydoc.js +221 -0
- package/dist/integrations/ensure-anydoc.js.map +1 -0
- package/dist/integrations/skill-installer.d.ts +26 -3
- package/dist/integrations/skill-installer.d.ts.map +1 -1
- package/dist/integrations/skill-installer.js +148 -4
- package/dist/integrations/skill-installer.js.map +1 -1
- package/dist/learning/canary-gate.d.ts +39 -0
- package/dist/learning/canary-gate.d.ts.map +1 -0
- package/dist/learning/canary-gate.js +57 -0
- package/dist/learning/canary-gate.js.map +1 -0
- package/dist/learning/skill-consolidate.d.ts +84 -0
- package/dist/learning/skill-consolidate.d.ts.map +1 -0
- package/dist/learning/skill-consolidate.js +353 -0
- package/dist/learning/skill-consolidate.js.map +1 -0
- package/dist/learning/skill-flywheel.d.ts +26 -0
- package/dist/learning/skill-flywheel.d.ts.map +1 -1
- package/dist/learning/skill-flywheel.js +192 -29
- package/dist/learning/skill-flywheel.js.map +1 -1
- package/dist/learning/skill-opt-lite.d.ts +46 -0
- package/dist/learning/skill-opt-lite.d.ts.map +1 -0
- package/dist/learning/skill-opt-lite.js +270 -0
- package/dist/learning/skill-opt-lite.js.map +1 -0
- package/dist/learning/skill-package.d.ts.map +1 -1
- package/dist/learning/skill-package.js +80 -6
- package/dist/learning/skill-package.js.map +1 -1
- package/dist/learning/skill-store.d.ts.map +1 -1
- package/dist/learning/skill-store.js +13 -0
- package/dist/learning/skill-store.js.map +1 -1
- package/dist/learning/skill-types.d.ts +32 -0
- package/dist/learning/skill-types.d.ts.map +1 -1
- package/dist/learning/skill-types.js +17 -0
- package/dist/learning/skill-types.js.map +1 -1
- package/dist/skills/index.js +1 -1
- package/dist/skills/index.js.map +1 -1
- package/dist/surfaces/cli/index.js +46 -5
- package/dist/surfaces/cli/index.js.map +1 -1
- package/dist/surfaces/cli/init.d.ts +17 -4
- package/dist/surfaces/cli/init.d.ts.map +1 -1
- package/dist/surfaces/cli/init.js +71 -8
- package/dist/surfaces/cli/init.js.map +1 -1
- package/dist/surfaces/cli/output.d.ts.map +1 -1
- package/dist/surfaces/cli/output.js +4 -2
- package/dist/surfaces/cli/output.js.map +1 -1
- package/dist/surfaces/cli/runtime/facade.d.ts +2 -1
- package/dist/surfaces/cli/runtime/facade.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/facade.js +1 -0
- package/dist/surfaces/cli/runtime/facade.js.map +1 -1
- package/dist/surfaces/cli/runtime/graph.d.ts +59 -2
- package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/graph.js +120 -7
- package/dist/surfaces/cli/runtime/graph.js.map +1 -1
- package/dist/surfaces/cli/runtime/learning.d.ts +19 -0
- package/dist/surfaces/cli/runtime/learning.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/learning.js +46 -0
- package/dist/surfaces/cli/runtime/learning.js.map +1 -1
- package/dist/surfaces/cli/runtime/routing.d.ts +6 -3
- package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime/routing.js +70 -7
- package/dist/surfaces/cli/runtime/routing.js.map +1 -1
- package/dist/surfaces/cli/runtime/types.d.ts +54 -0
- package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.d.ts +3 -3
- package/dist/surfaces/cli/runtime.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.js +6 -2
- package/dist/surfaces/cli/runtime.js.map +1 -1
- package/dist/surfaces/mcp/server.d.ts +12 -4
- package/dist/surfaces/mcp/server.d.ts.map +1 -1
- package/dist/surfaces/mcp/server.js +270 -97
- 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 +15 -0
- package/dist/surfaces/mcp/tool-definitions.js.map +1 -1
- package/dist/surfaces/mcp/tool-handlers.d.ts +5 -3
- package/dist/surfaces/mcp/tool-handlers.d.ts.map +1 -1
- package/dist/surfaces/mcp/tool-handlers.js +36 -6
- package/dist/surfaces/mcp/tool-handlers.js.map +1 -1
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +54 -5
- package/dist/utils/logger.js.map +1 -1
- package/mcp.json +14 -0
- package/package.json +19 -1
- package/plugin.json +21 -0
- package/scripts/safe-postinstall.cjs +36 -1
- package/skills/graphflow/SKILL.md +565 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Extract code symbol candidates from task descriptions.
|
|
4
|
+
*
|
|
5
|
+
* When a user writes "Fix bridgeDagExecution in orchestrator", the keyword
|
|
6
|
+
* retrieval may find "bridge" and "DAG" nodes but miss the exact symbol
|
|
7
|
+
* `bridgeDagExecution`. This module extracts camelCase/PascalCase tokens
|
|
8
|
+
* and file-path-like patterns from natural language, then uses them as
|
|
9
|
+
* supplementary keyword queries to boost symbol-level recall.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.extractSymbolCandidates = extractSymbolCandidates;
|
|
13
|
+
exports.extractModuleNameCandidates = extractModuleNameCandidates;
|
|
14
|
+
exports.fetchSymbolCandidates = fetchSymbolCandidates;
|
|
15
|
+
exports.collectImportRelatedFiles = collectImportRelatedFiles;
|
|
16
|
+
/** Common English words that should NOT be treated as symbol candidates. */
|
|
17
|
+
const STOP_WORDS = new Set([
|
|
18
|
+
"the", "a", "an", "is", "are", "was", "were", "be", "been", "being",
|
|
19
|
+
"have", "has", "had", "do", "does", "did", "will", "would", "could",
|
|
20
|
+
"should", "may", "might", "can", "shall", "need", "must", "ought",
|
|
21
|
+
"this", "that", "these", "those", "here", "there", "when", "where",
|
|
22
|
+
"what", "which", "who", "whom", "how", "why", "all", "each", "every",
|
|
23
|
+
"both", "few", "more", "most", "other", "some", "such", "only", "own",
|
|
24
|
+
"same", "so", "than", "too", "very", "just", "because", "but", "and",
|
|
25
|
+
"or", "if", "while", "with", "for", "from", "into", "about", "after",
|
|
26
|
+
"before", "between", "through", "during", "above", "below", "up", "down",
|
|
27
|
+
"out", "off", "over", "under", "again", "once", "add", "fix", "use",
|
|
28
|
+
"new", "old", "not", "get", "set", "run", "try", "put", "per", "vs",
|
|
29
|
+
]);
|
|
30
|
+
/**
|
|
31
|
+
* Extract camelCase and PascalCase symbol candidates from text.
|
|
32
|
+
*
|
|
33
|
+
* Examples:
|
|
34
|
+
* "Fix bridgeDagExecution" → ["bridgeDagExecution"]
|
|
35
|
+
* "refactor UserService and OrderService" → ["UserService", "OrderService"]
|
|
36
|
+
* "implement incremental graph update" → [] (no camelCase tokens)
|
|
37
|
+
*/
|
|
38
|
+
function extractSymbolCandidates(text) {
|
|
39
|
+
const candidates = new Set();
|
|
40
|
+
// Match camelCase: starts lowercase, has uppercase letter inside
|
|
41
|
+
// e.g., bridgeDagExecution, indexWorkspaceFiles, createGraphClient
|
|
42
|
+
const camelCasePattern = /\b([a-z][a-z0-9]*(?:[A-Z][a-z0-9]*)+)\b/g;
|
|
43
|
+
let m;
|
|
44
|
+
while ((m = camelCasePattern.exec(text)) !== null) {
|
|
45
|
+
const candidate = m[1];
|
|
46
|
+
if (candidate && candidate.length >= 4 && !STOP_WORDS.has(candidate.toLowerCase())) {
|
|
47
|
+
candidates.add(candidate);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Match PascalCase: starts uppercase, has at least one more letter
|
|
51
|
+
// e.g., UserService, GraphClient, DagEngine
|
|
52
|
+
const pascalCasePattern = /\b([A-Z][a-z0-9]+[A-Za-z0-9]*)\b/g;
|
|
53
|
+
while ((m = pascalCasePattern.exec(text)) !== null) {
|
|
54
|
+
const candidate = m[1];
|
|
55
|
+
if (candidate && candidate.length >= 4 && !STOP_WORDS.has(candidate.toLowerCase())) {
|
|
56
|
+
candidates.add(candidate);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Match file-path-like patterns: foo/bar.ts, src/utils/helper
|
|
60
|
+
const filePathPattern = /\b([\w-]+\/[\w./-]+\.(?:ts|tsx|js|jsx|py|go|rs))\b/g;
|
|
61
|
+
while ((m = filePathPattern.exec(text)) !== null) {
|
|
62
|
+
if (m[1])
|
|
63
|
+
candidates.add(m[1]);
|
|
64
|
+
}
|
|
65
|
+
// Match function-call-like patterns: functionName(
|
|
66
|
+
const funcCallPattern = /\b([a-zA-Z_][a-zA-Z0-9_]*)\s*\(/g;
|
|
67
|
+
while ((m = funcCallPattern.exec(text)) !== null) {
|
|
68
|
+
const candidate = m[1];
|
|
69
|
+
if (candidate && candidate.length >= 4 && !STOP_WORDS.has(candidate.toLowerCase())) {
|
|
70
|
+
candidates.add(candidate);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return Array.from(candidates);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Extract module/file name candidates from task descriptions.
|
|
77
|
+
* Many tasks mention specific modules: "fix bug in config loader",
|
|
78
|
+
* "add tests for DAG engine", "improve file-indexer error handling".
|
|
79
|
+
* These map to files like config/loader.ts, dag-engine.ts, file-indexer.ts.
|
|
80
|
+
*/
|
|
81
|
+
function extractModuleNameCandidates(text) {
|
|
82
|
+
const candidates = new Set();
|
|
83
|
+
const lower = text.toLowerCase();
|
|
84
|
+
// Common module name patterns in task descriptions
|
|
85
|
+
const modulePatterns = [
|
|
86
|
+
/\b(orchestrat\w*)\b/i,
|
|
87
|
+
/\b(context[\s-]?slic\w*)\b/i,
|
|
88
|
+
/\b(file[\s-]?index\w*)\b/i,
|
|
89
|
+
/\b(dag[\s-]?engine\w*)\b/i,
|
|
90
|
+
/\b(skill[\s-]?flywheel\w*)\b/i,
|
|
91
|
+
/\b(episodic[\s-]?memory\w*)\b/i,
|
|
92
|
+
/\b(agent[\s-]?assign\w*)\b/i,
|
|
93
|
+
/\b(config[\s-]?load\w*)\b/i,
|
|
94
|
+
/\b(client[\s-]?factory\w*)\b/i,
|
|
95
|
+
/\b(graph[\s-]?compress\w*)\b/i,
|
|
96
|
+
/\b(repo[\s-]?map\w*)\b/i,
|
|
97
|
+
/\b(planner|planning)\b/i,
|
|
98
|
+
/\b(triage)\b/i,
|
|
99
|
+
/\b(bridge)\b/i,
|
|
100
|
+
/\b(embedding)\b/i,
|
|
101
|
+
/\b(router|routing)\b/i,
|
|
102
|
+
/\b(nightly[\s-]?train\w*)\b/i,
|
|
103
|
+
];
|
|
104
|
+
for (const pat of modulePatterns) {
|
|
105
|
+
const m = lower.match(pat);
|
|
106
|
+
if (m && m[1])
|
|
107
|
+
candidates.add(m[1]);
|
|
108
|
+
}
|
|
109
|
+
// Also extract hyphenated compound words that look like module names
|
|
110
|
+
const hyphenated = /\b([\w]+-([\w]+))\b/g;
|
|
111
|
+
let m;
|
|
112
|
+
while ((m = hyphenated.exec(text)) !== null) {
|
|
113
|
+
if (m[1] && m[1].length >= 5 && !STOP_WORDS.has(m[1].toLowerCase())) {
|
|
114
|
+
candidates.add(m[1]);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return Array.from(candidates);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Given symbol candidates, query the graph for matching symbol nodes
|
|
121
|
+
* and return them as supplementary hits to boost recall.
|
|
122
|
+
*/
|
|
123
|
+
async function fetchSymbolCandidates(client, candidates, maxResults = 10) {
|
|
124
|
+
if (candidates.length === 0)
|
|
125
|
+
return [];
|
|
126
|
+
const allHits = [];
|
|
127
|
+
const seen = new Set();
|
|
128
|
+
for (const candidate of candidates) {
|
|
129
|
+
if (allHits.length >= maxResults)
|
|
130
|
+
break;
|
|
131
|
+
try {
|
|
132
|
+
const hits = await client.queryByKeyword(candidate);
|
|
133
|
+
for (const hit of hits) {
|
|
134
|
+
if (seen.has(hit.id))
|
|
135
|
+
continue;
|
|
136
|
+
seen.add(hit.id);
|
|
137
|
+
// Prioritize Symbol nodes for symbol recall
|
|
138
|
+
if (hit.type === "Symbol" || hit.type === "File") {
|
|
139
|
+
allHits.push(hit);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// Skip failed queries
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return allHits.slice(0, maxResults);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Collect import-related file nodes from the graph that reference
|
|
151
|
+
* any of the given seed file paths. This enables multi-hop retrieval:
|
|
152
|
+
* if file A is in context and file B imports A, then B is likely relevant.
|
|
153
|
+
*/
|
|
154
|
+
async function collectImportRelatedFiles(client, seedFilePaths, maxResults = 5) {
|
|
155
|
+
if (seedFilePaths.length === 0 || typeof client.getNeighbors !== "function")
|
|
156
|
+
return [];
|
|
157
|
+
const snapshot = client.readSnapshot?.();
|
|
158
|
+
if (!snapshot)
|
|
159
|
+
return [];
|
|
160
|
+
const related = [];
|
|
161
|
+
const seen = new Set();
|
|
162
|
+
// Find symbols that "imports" or "references" the seed files
|
|
163
|
+
for (const edge of snapshot.edges) {
|
|
164
|
+
if (related.length >= maxResults)
|
|
165
|
+
break;
|
|
166
|
+
if (edge.relation !== "imports" && edge.relation !== "references")
|
|
167
|
+
continue;
|
|
168
|
+
// Check if edge.from is a symbol in a seed file
|
|
169
|
+
const sourceFile = edge.from.startsWith("symbol:")
|
|
170
|
+
? edge.from.split(":")[1]?.split("/").slice(0, -1).join("/")
|
|
171
|
+
: edge.from;
|
|
172
|
+
const isFromSeed = seedFilePaths.some(seed => sourceFile?.includes(seed) || edge.from.includes(seed));
|
|
173
|
+
if (!isFromSeed)
|
|
174
|
+
continue;
|
|
175
|
+
// The target might be a file or symbol we should include
|
|
176
|
+
const targetId = edge.to;
|
|
177
|
+
if (seen.has(targetId))
|
|
178
|
+
continue;
|
|
179
|
+
seen.add(targetId);
|
|
180
|
+
const targetNode = snapshot.nodes.find(n => n.id === targetId);
|
|
181
|
+
if (targetNode && (targetNode.type === "File" || targetNode.type === "Symbol")) {
|
|
182
|
+
related.push(targetNode);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return related.slice(0, maxResults);
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=symbol-extract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-extract.js","sourceRoot":"","sources":["../../src/graph/symbol-extract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { TaskStatus } from "../core/types";
|
|
2
|
+
import type { GraphClient } from "../graph/client-factory";
|
|
3
|
+
import type { EmbeddingProvider } from "../learning/embeddings";
|
|
4
|
+
/**
|
|
5
|
+
* auto-capture.ts — 学习飞轮自动闭环(P0-1/P0-2)
|
|
6
|
+
*
|
|
7
|
+
* 背景:飞轮依赖宿主 agent 主动调用 `graphflow_report_outcome` 才回填 episode/skill。
|
|
8
|
+
* 本模块在 run/context 完成路径上自动生成 `pending` episode 记录(绝不伪造 COMPLETED),
|
|
9
|
+
* 并把 episodeId 写入会话日志(.graphflow/session-journal.jsonl);由 Claude Code hooks
|
|
10
|
+
* (SessionEnd / Stop,见 integrations/claude-code-hooks.ts)在会话结束时自动调用
|
|
11
|
+
* `graphflow outcome report <episodeId> <success>` 更新为真实结局。
|
|
12
|
+
*
|
|
13
|
+
* 默认开启(飞轮自证):环境变量未设置或设置为 1/true/on/yes/enabled 时开启,
|
|
14
|
+
* 设置 GRAPHFLOW_AUTO_CAPTURE=0(或 false/off/no/disabled)时显式关闭,
|
|
15
|
+
* 或在调用点显式传入 enabled: false。
|
|
16
|
+
*/
|
|
17
|
+
export declare const AUTO_CAPTURE_ENV = "GRAPHFLOW_AUTO_CAPTURE";
|
|
18
|
+
export declare const JOURNAL_FILE = "session-journal.jsonl";
|
|
19
|
+
export declare const JOURNAL_VERSION = 1;
|
|
20
|
+
/** 同一任务在窗口内的重复 pending 记录去重,避免 MCP 重试/重复 run 造成日志膨胀。 */
|
|
21
|
+
export declare const DEFAULT_DEDUPE_WINDOW_MS: number;
|
|
22
|
+
/** 会话日志条目:一条 pending episode 的证据记录(append-only)。 */
|
|
23
|
+
export interface SessionJournalEntry {
|
|
24
|
+
version: number;
|
|
25
|
+
kind: "pending-episode";
|
|
26
|
+
episodeId: string;
|
|
27
|
+
task: string;
|
|
28
|
+
taskKey: string;
|
|
29
|
+
status?: TaskStatus;
|
|
30
|
+
createdAt: number;
|
|
31
|
+
}
|
|
32
|
+
export interface AutoCaptureEpisodeInput {
|
|
33
|
+
task: string;
|
|
34
|
+
plan?: Array<{
|
|
35
|
+
id: string;
|
|
36
|
+
description: string;
|
|
37
|
+
}>;
|
|
38
|
+
keyDecisions?: string[];
|
|
39
|
+
attempts?: number;
|
|
40
|
+
/** 调用方已知的 run 状态;结局已知(COMPLETED/FAILED 等)时不会自动生成 pending。 */
|
|
41
|
+
status?: TaskStatus;
|
|
42
|
+
/** 复用调用方已记录的 episode(避免重复写入同一任务的节点)。 */
|
|
43
|
+
existingEpisodeId?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface AutoCaptureOptions {
|
|
46
|
+
/** 显式开关;缺省时读取环境变量 GRAPHFLOW_AUTO_CAPTURE。 */
|
|
47
|
+
enabled?: boolean;
|
|
48
|
+
/** 会话日志目录基准(默认 process.cwd())。 */
|
|
49
|
+
workspaceRoot?: string;
|
|
50
|
+
/** 覆盖会话日志路径。 */
|
|
51
|
+
journalPath?: string;
|
|
52
|
+
embeddingProvider?: EmbeddingProvider;
|
|
53
|
+
/** 测试注入的当前时间戳。 */
|
|
54
|
+
now?: number;
|
|
55
|
+
/** 去重窗口,默认 30 分钟。 */
|
|
56
|
+
dedupeWindowMs?: number;
|
|
57
|
+
}
|
|
58
|
+
export interface AutoCaptureResult {
|
|
59
|
+
enabled: boolean;
|
|
60
|
+
recorded: boolean;
|
|
61
|
+
episodeId?: string;
|
|
62
|
+
journaled: boolean;
|
|
63
|
+
/** 跳过原因(如 outcome-known:COMPLETED / recent-pending-exists / no-graph-client)。 */
|
|
64
|
+
skipped?: string;
|
|
65
|
+
}
|
|
66
|
+
export declare function isAutoCaptureEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
67
|
+
export declare function resolveSessionJournalPath(workspaceRoot?: string): string;
|
|
68
|
+
/** 追加会话日志条目(append-only,超出 10MB 轮转为 .1.jsonl,参考 learning-events)。 */
|
|
69
|
+
export declare function appendJournalEntry(journalPath: string, entry: SessionJournalEntry): void;
|
|
70
|
+
/** 读取会话日志(容错:跳过损坏行)。 */
|
|
71
|
+
export declare function readJournalEntries(journalPath: string): SessionJournalEntry[];
|
|
72
|
+
export declare function latestJournalEntry(journalPath: string): SessionJournalEntry | undefined;
|
|
73
|
+
/** 便捷函数:从会话日志解析出最近的 pending episodeId(hooks/脚本回填用)。 */
|
|
74
|
+
export declare function latestPendingEpisodeId(journalPath: string): string | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* 结局未知时才需要自动捕获:DELEGATED(外部分发,宿主 agent 执行)与
|
|
77
|
+
* HUMAN_REVIEW_REQUIRED(人工复核)的真实结局在 run 返回时不可知,
|
|
78
|
+
* 需要 hooks 后续回填。COMPLETED/FAILED 等已有真实结局,不伪造 pending。
|
|
79
|
+
*/
|
|
80
|
+
export declare function needsAutoCapture(status?: TaskStatus): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* 自动生成 pending episode 记录并写入会话日志(供 hooks 回填)。
|
|
83
|
+
* 幂等:同一任务在去重窗口内的重复调用复用最近一次记录,不重复写入。
|
|
84
|
+
* 所有失败不抛出 —— 自动捕获绝不能阻断编排主流程。
|
|
85
|
+
*/
|
|
86
|
+
export declare function maybeAutoCaptureEpisode(client: GraphClient | undefined, input: AutoCaptureEpisodeInput, options?: AutoCaptureOptions): Promise<AutoCaptureResult>;
|
|
87
|
+
//# sourceMappingURL=auto-capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-capture.d.ts","sourceRoot":"","sources":["../../src/hooks/auto-capture.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,eAAO,MAAM,YAAY,0BAA0B,CAAC;AACpD,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,wDAAwD;AACxD,eAAO,MAAM,wBAAwB,QAAiB,CAAC;AAEvD,oDAAoD;AACpD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,kBAAkB;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAIlF;AAED,wBAAgB,yBAAyB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,IAAI,CASxF;AAED,wBAAwB;AACxB,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,EAAE,CA8B7E;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,GAClB,mBAAmB,GAAG,SAAS,CAGjC;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAG7D;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,KAAK,EAAE,uBAAuB,EAC9B,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CA4E5B"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_DEDUPE_WINDOW_MS = exports.JOURNAL_VERSION = exports.JOURNAL_FILE = exports.AUTO_CAPTURE_ENV = void 0;
|
|
4
|
+
exports.isAutoCaptureEnabled = isAutoCaptureEnabled;
|
|
5
|
+
exports.resolveSessionJournalPath = resolveSessionJournalPath;
|
|
6
|
+
exports.appendJournalEntry = appendJournalEntry;
|
|
7
|
+
exports.readJournalEntries = readJournalEntries;
|
|
8
|
+
exports.latestJournalEntry = latestJournalEntry;
|
|
9
|
+
exports.latestPendingEpisodeId = latestPendingEpisodeId;
|
|
10
|
+
exports.needsAutoCapture = needsAutoCapture;
|
|
11
|
+
exports.maybeAutoCaptureEpisode = maybeAutoCaptureEpisode;
|
|
12
|
+
const node_fs_1 = require("node:fs");
|
|
13
|
+
const node_path_1 = require("node:path");
|
|
14
|
+
const episodic_memory_1 = require("../learning/episodic-memory");
|
|
15
|
+
const hash_1 = require("../utils/hash");
|
|
16
|
+
const logger_1 = require("../utils/logger");
|
|
17
|
+
/**
|
|
18
|
+
* auto-capture.ts — 学习飞轮自动闭环(P0-1/P0-2)
|
|
19
|
+
*
|
|
20
|
+
* 背景:飞轮依赖宿主 agent 主动调用 `graphflow_report_outcome` 才回填 episode/skill。
|
|
21
|
+
* 本模块在 run/context 完成路径上自动生成 `pending` episode 记录(绝不伪造 COMPLETED),
|
|
22
|
+
* 并把 episodeId 写入会话日志(.graphflow/session-journal.jsonl);由 Claude Code hooks
|
|
23
|
+
* (SessionEnd / Stop,见 integrations/claude-code-hooks.ts)在会话结束时自动调用
|
|
24
|
+
* `graphflow outcome report <episodeId> <success>` 更新为真实结局。
|
|
25
|
+
*
|
|
26
|
+
* 默认开启(飞轮自证):环境变量未设置或设置为 1/true/on/yes/enabled 时开启,
|
|
27
|
+
* 设置 GRAPHFLOW_AUTO_CAPTURE=0(或 false/off/no/disabled)时显式关闭,
|
|
28
|
+
* 或在调用点显式传入 enabled: false。
|
|
29
|
+
*/
|
|
30
|
+
exports.AUTO_CAPTURE_ENV = "GRAPHFLOW_AUTO_CAPTURE";
|
|
31
|
+
exports.JOURNAL_FILE = "session-journal.jsonl";
|
|
32
|
+
exports.JOURNAL_VERSION = 1;
|
|
33
|
+
const JOURNAL_MAX_BYTES = 10 * 1024 * 1024; // 10MB,超出后轮转为 .1.jsonl
|
|
34
|
+
/** 同一任务在窗口内的重复 pending 记录去重,避免 MCP 重试/重复 run 造成日志膨胀。 */
|
|
35
|
+
exports.DEFAULT_DEDUPE_WINDOW_MS = 30 * 60 * 1000;
|
|
36
|
+
function isAutoCaptureEnabled(env = process.env) {
|
|
37
|
+
// 默认开启:仅当显式设置为关闭值(0/false/off/no/disabled)时才关闭。
|
|
38
|
+
const raw = env[exports.AUTO_CAPTURE_ENV]?.trim().toLowerCase();
|
|
39
|
+
return !(raw === "0" || raw === "false" || raw === "off" || raw === "no" || raw === "disabled");
|
|
40
|
+
}
|
|
41
|
+
function resolveSessionJournalPath(workspaceRoot) {
|
|
42
|
+
return (0, node_path_1.join)(workspaceRoot ?? process.cwd(), ".graphflow", exports.JOURNAL_FILE);
|
|
43
|
+
}
|
|
44
|
+
/** 追加会话日志条目(append-only,超出 10MB 轮转为 .1.jsonl,参考 learning-events)。 */
|
|
45
|
+
function appendJournalEntry(journalPath, entry) {
|
|
46
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(journalPath), { recursive: true });
|
|
47
|
+
if ((0, node_fs_1.existsSync)(journalPath)) {
|
|
48
|
+
const stats = (0, node_fs_1.statSync)(journalPath);
|
|
49
|
+
if (stats.size >= JOURNAL_MAX_BYTES) {
|
|
50
|
+
(0, node_fs_1.renameSync)(journalPath, `${journalPath}.1`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
(0, node_fs_1.appendFileSync)(journalPath, `${JSON.stringify(entry)}\n`, "utf8");
|
|
54
|
+
}
|
|
55
|
+
/** 读取会话日志(容错:跳过损坏行)。 */
|
|
56
|
+
function readJournalEntries(journalPath) {
|
|
57
|
+
if (!(0, node_fs_1.existsSync)(journalPath)) {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
const out = [];
|
|
61
|
+
for (const line of (0, node_fs_1.readFileSync)(journalPath, "utf8").split(/\r?\n/)) {
|
|
62
|
+
const trimmed = line.trim();
|
|
63
|
+
if (!trimmed)
|
|
64
|
+
continue;
|
|
65
|
+
try {
|
|
66
|
+
const parsed = JSON.parse(trimmed);
|
|
67
|
+
if (typeof parsed.episodeId === "string" &&
|
|
68
|
+
typeof parsed.task === "string" &&
|
|
69
|
+
typeof parsed.createdAt === "number") {
|
|
70
|
+
out.push({
|
|
71
|
+
version: parsed.version ?? exports.JOURNAL_VERSION,
|
|
72
|
+
kind: "pending-episode",
|
|
73
|
+
episodeId: parsed.episodeId,
|
|
74
|
+
task: parsed.task,
|
|
75
|
+
taskKey: typeof parsed.taskKey === "string" ? parsed.taskKey : (0, hash_1.hashText)(parsed.task),
|
|
76
|
+
...(parsed.status !== undefined ? { status: parsed.status } : {}),
|
|
77
|
+
createdAt: parsed.createdAt,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// 容错:跳过损坏行
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return out;
|
|
86
|
+
}
|
|
87
|
+
function latestJournalEntry(journalPath) {
|
|
88
|
+
const entries = readJournalEntries(journalPath);
|
|
89
|
+
return entries.length > 0 ? entries[entries.length - 1] : undefined;
|
|
90
|
+
}
|
|
91
|
+
/** 便捷函数:从会话日志解析出最近的 pending episodeId(hooks/脚本回填用)。 */
|
|
92
|
+
function latestPendingEpisodeId(journalPath) {
|
|
93
|
+
return latestJournalEntry(journalPath)?.episodeId;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 结局未知时才需要自动捕获:DELEGATED(外部分发,宿主 agent 执行)与
|
|
97
|
+
* HUMAN_REVIEW_REQUIRED(人工复核)的真实结局在 run 返回时不可知,
|
|
98
|
+
* 需要 hooks 后续回填。COMPLETED/FAILED 等已有真实结局,不伪造 pending。
|
|
99
|
+
*/
|
|
100
|
+
function needsAutoCapture(status) {
|
|
101
|
+
if (!status)
|
|
102
|
+
return true;
|
|
103
|
+
return status === "DELEGATED" || status === "HUMAN_REVIEW_REQUIRED";
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* 自动生成 pending episode 记录并写入会话日志(供 hooks 回填)。
|
|
107
|
+
* 幂等:同一任务在去重窗口内的重复调用复用最近一次记录,不重复写入。
|
|
108
|
+
* 所有失败不抛出 —— 自动捕获绝不能阻断编排主流程。
|
|
109
|
+
*/
|
|
110
|
+
async function maybeAutoCaptureEpisode(client, input, options = {}) {
|
|
111
|
+
const enabled = options.enabled ?? isAutoCaptureEnabled(process.env);
|
|
112
|
+
if (!enabled) {
|
|
113
|
+
return { enabled: false, recorded: false, journaled: false };
|
|
114
|
+
}
|
|
115
|
+
if (!client) {
|
|
116
|
+
return { enabled: true, recorded: false, journaled: false, skipped: "no-graph-client" };
|
|
117
|
+
}
|
|
118
|
+
if (!needsAutoCapture(input.status)) {
|
|
119
|
+
return {
|
|
120
|
+
enabled: true,
|
|
121
|
+
recorded: false,
|
|
122
|
+
journaled: false,
|
|
123
|
+
skipped: `outcome-known:${String(input.status)}`,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
const now = options.now ?? Date.now();
|
|
127
|
+
const journalPath = options.journalPath ?? resolveSessionJournalPath(options.workspaceRoot);
|
|
128
|
+
const window = options.dedupeWindowMs ?? exports.DEFAULT_DEDUPE_WINDOW_MS;
|
|
129
|
+
const taskKey = (0, hash_1.hashText)(input.task);
|
|
130
|
+
// 去重:从日志尾部向前找同一任务的最近 pending 记录
|
|
131
|
+
const entries = readJournalEntries(journalPath);
|
|
132
|
+
for (let i = entries.length - 1; i >= 0; i -= 1) {
|
|
133
|
+
const entry = entries[i];
|
|
134
|
+
if (!entry)
|
|
135
|
+
continue;
|
|
136
|
+
if (entry.taskKey === taskKey && now - entry.createdAt < window) {
|
|
137
|
+
return {
|
|
138
|
+
enabled: true,
|
|
139
|
+
recorded: true,
|
|
140
|
+
episodeId: entry.episodeId,
|
|
141
|
+
journaled: false,
|
|
142
|
+
skipped: "recent-pending-exists",
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
let episodeId = input.existingEpisodeId;
|
|
147
|
+
if (!episodeId) {
|
|
148
|
+
try {
|
|
149
|
+
const episode = await (0, episodic_memory_1.recordEpisode)(client, {
|
|
150
|
+
task: input.task,
|
|
151
|
+
plan: input.plan ?? [],
|
|
152
|
+
outcome: "pending",
|
|
153
|
+
keyDecisions: (input.keyDecisions ?? []).slice(0, 6),
|
|
154
|
+
lessons: [],
|
|
155
|
+
attempts: input.attempts ?? 1,
|
|
156
|
+
}, options.embeddingProvider);
|
|
157
|
+
episodeId = episode.id;
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
logger_1.logger.warn({ error }, "Auto-capture pending episode recording failed");
|
|
161
|
+
return { enabled: true, recorded: false, journaled: false, skipped: "record-failed" };
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const entry = {
|
|
165
|
+
version: exports.JOURNAL_VERSION,
|
|
166
|
+
kind: "pending-episode",
|
|
167
|
+
episodeId,
|
|
168
|
+
task: input.task,
|
|
169
|
+
taskKey,
|
|
170
|
+
...(input.status !== undefined ? { status: input.status } : {}),
|
|
171
|
+
createdAt: now,
|
|
172
|
+
};
|
|
173
|
+
try {
|
|
174
|
+
appendJournalEntry(journalPath, entry);
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
logger_1.logger.warn({ error }, "Auto-capture journal append failed");
|
|
178
|
+
return { enabled: true, recorded: true, episodeId, journaled: false, skipped: "journal-failed" };
|
|
179
|
+
}
|
|
180
|
+
return { enabled: true, recorded: true, episodeId, journaled: true };
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=auto-capture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-capture.js","sourceRoot":"","sources":["../../src/hooks/auto-capture.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
export { orchestrate, type OrchestrateOptions } from "./core/orchestrator";
|
|
2
|
-
export { runTask, runTaskResult, reportOutcome, submitAgentInsightResult, mergeAgentInsightResult, previewContext, expandAnchor, getGraphFlowSettings, getSettingsPanelStatus, testRoutingAndIndexGraph, indexGraphFromSettings, validateSettingsForGraphIndex, validateSettingsForRouting, saveGraphFlowSettings, indexGraph, inspectGraph, getSkillInsights, resolveConfig, diagnoseRouting, diagnoseRoutingResult, planAndBrainstorm, planAndBrainstormResult, assertGraphFlowRuntime, detectInstalledAgents, formatModelConfigGuide, installMcpToDetectedAgents, repairUnsafeWindowsMcpCommands, runLearningNightly, runLearningNightlyResult, startFileWatcherIfEnabled, } from "./surfaces/cli/runtime";
|
|
2
|
+
export { runTask, runTaskResult, reportOutcome, submitAgentInsightResult, mergeAgentInsightResult, previewContext, expandAnchor, getGraphFlowSettings, getSettingsPanelStatus, testRoutingAndIndexGraph, indexGraphFromSettings, validateSettingsForGraphIndex, validateSettingsForRouting, saveGraphFlowSettings, indexGraph, inspectGraph, getSkillInsights, resolveConfig, diagnoseRouting, diagnoseRoutingResult, planAndBrainstorm, planAndBrainstormResult, assertGraphFlowRuntime, detectInstalledAgents, formatModelConfigGuide, installMcpToDetectedAgents, repairUnsafeWindowsMcpCommands, repairStaleGraphFlowMcpLaunchers, runLearningNightly, runLearningNightlyResult, startFileWatcherIfEnabled, } from "./surfaces/cli/runtime";
|
|
3
3
|
export type { GraphFlowRuntime, GraphFlowRuntimeModule, LearningNightlyResult } from "./surfaces/cli/runtime";
|
|
4
4
|
export { parseCliOptions, formatCliResult, type CliCommandResult } from "./surfaces/cli/output";
|
|
5
5
|
export { createMcpServer, executeToolCall, getToolDefinitions, startStdioServer, } from "./surfaces/mcp/server";
|
|
6
6
|
export type { TaskRunResult } from "./core/types";
|
|
7
7
|
export { hasUsableLlmProvider } from "./config/llm-availability";
|
|
8
|
-
export { buildAgentDelegatedPlanInsight, buildAgentDelegatedSimplePlan, buildAgentInsightWorkItems, summarizeInsightForContext, SIMPLE_PLAN_BRIDGE_REQUIRED_IDS, type AgentDelegatedPlanInsight, type AgentDelegationMode, type AgentWorkItem, } from "./core/agent-delegation";
|
|
8
|
+
export { buildAgentDelegatedPlanInsight, buildAgentDelegatedSimplePlan, buildAgentInsightWorkItems, attachSkillConditionToPlanNodes, summarizeInsightForContext, SIMPLE_PLAN_BRIDGE_REQUIRED_IDS, type AgentDelegatedPlanInsight, type AgentDelegationMode, type AgentWorkItem, type SimplePlanNode, type SkillConditionOptions, } from "./core/agent-delegation";
|
|
9
|
+
export { suggestSkillConditionHints, type SkillConditionHints, } from "./learning/skill-flywheel";
|
|
10
|
+
export { optimizeSkillLite, defaultSkillOptScore, type SkillOptEdit, type SkillOptEditOp, type SkillOptInput, type SkillOptResult, } from "./learning/skill-opt-lite";
|
|
11
|
+
export { planSkillConsolidation, applySkillConsolidation, planFromRequest, toConsolidateResult, type ConsolidateAction, type ConsolidateRequest, type ConsolidateResult, } from "./learning/skill-consolidate";
|
|
12
|
+
export { ATP_MINIMAL_PRODUCER_PROTOCOL, buildMinimalSimplePlanWorkItems, buildRequiredSimplePlanWorkItems, buildOptionalMemoryWorkItems, } from "./agents/atp-example-producer";
|
|
13
|
+
export { linkEpisodeToEngineeringNodes, type EngineeringLinkHints, type LinkEpisodeResult, } from "./graph/episode-engineering-links";
|
|
9
14
|
export { planInsightResult, type PlanInsightResult } from "./surfaces/cli/runtime/routing";
|
|
10
15
|
export { createGraphClient, type GraphClient, } from "./graph/client-factory";
|
|
11
16
|
export { validateConfig, loadConfig, loadConfigSafe, type LoadConfigResult, validateConfigDetailed, type ConfigValidationResult, type ValidationIssue } from "./config/loader";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,0BAA0B,EAC1B,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,8BAA8B,EAC9B,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC9G,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.listSkills = exports.invokeSkill = void 0;
|
|
3
|
+
exports.applySkillConsolidation = exports.planSkillConsolidation = exports.defaultSkillOptScore = exports.optimizeSkillLite = exports.suggestSkillConditionHints = exports.SIMPLE_PLAN_BRIDGE_REQUIRED_IDS = exports.summarizeInsightForContext = exports.attachSkillConditionToPlanNodes = exports.buildAgentInsightWorkItems = exports.buildAgentDelegatedSimplePlan = exports.buildAgentDelegatedPlanInsight = exports.hasUsableLlmProvider = exports.startStdioServer = exports.getToolDefinitions = exports.executeToolCall = exports.createMcpServer = exports.formatCliResult = exports.parseCliOptions = exports.startFileWatcherIfEnabled = exports.runLearningNightlyResult = exports.runLearningNightly = exports.repairStaleGraphFlowMcpLaunchers = exports.repairUnsafeWindowsMcpCommands = exports.installMcpToDetectedAgents = exports.formatModelConfigGuide = exports.detectInstalledAgents = exports.assertGraphFlowRuntime = exports.planAndBrainstormResult = exports.planAndBrainstorm = exports.diagnoseRoutingResult = exports.diagnoseRouting = exports.resolveConfig = exports.getSkillInsights = exports.inspectGraph = exports.indexGraph = exports.saveGraphFlowSettings = exports.validateSettingsForRouting = exports.validateSettingsForGraphIndex = exports.indexGraphFromSettings = exports.testRoutingAndIndexGraph = exports.getSettingsPanelStatus = exports.getGraphFlowSettings = exports.expandAnchor = exports.previewContext = exports.mergeAgentInsightResult = exports.submitAgentInsightResult = exports.reportOutcome = exports.runTaskResult = exports.runTask = exports.orchestrate = void 0;
|
|
4
|
+
exports.listSkills = exports.invokeSkill = exports.graphflowSkills = exports.validateConfigDetailed = exports.loadConfigSafe = exports.loadConfig = exports.validateConfig = exports.createGraphClient = exports.planInsightResult = exports.linkEpisodeToEngineeringNodes = exports.buildOptionalMemoryWorkItems = exports.buildRequiredSimplePlanWorkItems = exports.buildMinimalSimplePlanWorkItems = exports.ATP_MINIMAL_PRODUCER_PROTOCOL = exports.toConsolidateResult = exports.planFromRequest = void 0;
|
|
5
5
|
var orchestrator_1 = require("./core/orchestrator");
|
|
6
6
|
Object.defineProperty(exports, "orchestrate", { enumerable: true, get: function () { return orchestrator_1.orchestrate; } });
|
|
7
7
|
var runtime_1 = require("./surfaces/cli/runtime");
|
|
@@ -32,6 +32,7 @@ Object.defineProperty(exports, "detectInstalledAgents", { enumerable: true, get:
|
|
|
32
32
|
Object.defineProperty(exports, "formatModelConfigGuide", { enumerable: true, get: function () { return runtime_1.formatModelConfigGuide; } });
|
|
33
33
|
Object.defineProperty(exports, "installMcpToDetectedAgents", { enumerable: true, get: function () { return runtime_1.installMcpToDetectedAgents; } });
|
|
34
34
|
Object.defineProperty(exports, "repairUnsafeWindowsMcpCommands", { enumerable: true, get: function () { return runtime_1.repairUnsafeWindowsMcpCommands; } });
|
|
35
|
+
Object.defineProperty(exports, "repairStaleGraphFlowMcpLaunchers", { enumerable: true, get: function () { return runtime_1.repairStaleGraphFlowMcpLaunchers; } });
|
|
35
36
|
Object.defineProperty(exports, "runLearningNightly", { enumerable: true, get: function () { return runtime_1.runLearningNightly; } });
|
|
36
37
|
Object.defineProperty(exports, "runLearningNightlyResult", { enumerable: true, get: function () { return runtime_1.runLearningNightlyResult; } });
|
|
37
38
|
Object.defineProperty(exports, "startFileWatcherIfEnabled", { enumerable: true, get: function () { return runtime_1.startFileWatcherIfEnabled; } });
|
|
@@ -49,8 +50,26 @@ var agent_delegation_1 = require("./core/agent-delegation");
|
|
|
49
50
|
Object.defineProperty(exports, "buildAgentDelegatedPlanInsight", { enumerable: true, get: function () { return agent_delegation_1.buildAgentDelegatedPlanInsight; } });
|
|
50
51
|
Object.defineProperty(exports, "buildAgentDelegatedSimplePlan", { enumerable: true, get: function () { return agent_delegation_1.buildAgentDelegatedSimplePlan; } });
|
|
51
52
|
Object.defineProperty(exports, "buildAgentInsightWorkItems", { enumerable: true, get: function () { return agent_delegation_1.buildAgentInsightWorkItems; } });
|
|
53
|
+
Object.defineProperty(exports, "attachSkillConditionToPlanNodes", { enumerable: true, get: function () { return agent_delegation_1.attachSkillConditionToPlanNodes; } });
|
|
52
54
|
Object.defineProperty(exports, "summarizeInsightForContext", { enumerable: true, get: function () { return agent_delegation_1.summarizeInsightForContext; } });
|
|
53
55
|
Object.defineProperty(exports, "SIMPLE_PLAN_BRIDGE_REQUIRED_IDS", { enumerable: true, get: function () { return agent_delegation_1.SIMPLE_PLAN_BRIDGE_REQUIRED_IDS; } });
|
|
56
|
+
var skill_flywheel_1 = require("./learning/skill-flywheel");
|
|
57
|
+
Object.defineProperty(exports, "suggestSkillConditionHints", { enumerable: true, get: function () { return skill_flywheel_1.suggestSkillConditionHints; } });
|
|
58
|
+
var skill_opt_lite_1 = require("./learning/skill-opt-lite");
|
|
59
|
+
Object.defineProperty(exports, "optimizeSkillLite", { enumerable: true, get: function () { return skill_opt_lite_1.optimizeSkillLite; } });
|
|
60
|
+
Object.defineProperty(exports, "defaultSkillOptScore", { enumerable: true, get: function () { return skill_opt_lite_1.defaultSkillOptScore; } });
|
|
61
|
+
var skill_consolidate_1 = require("./learning/skill-consolidate");
|
|
62
|
+
Object.defineProperty(exports, "planSkillConsolidation", { enumerable: true, get: function () { return skill_consolidate_1.planSkillConsolidation; } });
|
|
63
|
+
Object.defineProperty(exports, "applySkillConsolidation", { enumerable: true, get: function () { return skill_consolidate_1.applySkillConsolidation; } });
|
|
64
|
+
Object.defineProperty(exports, "planFromRequest", { enumerable: true, get: function () { return skill_consolidate_1.planFromRequest; } });
|
|
65
|
+
Object.defineProperty(exports, "toConsolidateResult", { enumerable: true, get: function () { return skill_consolidate_1.toConsolidateResult; } });
|
|
66
|
+
var atp_example_producer_1 = require("./agents/atp-example-producer");
|
|
67
|
+
Object.defineProperty(exports, "ATP_MINIMAL_PRODUCER_PROTOCOL", { enumerable: true, get: function () { return atp_example_producer_1.ATP_MINIMAL_PRODUCER_PROTOCOL; } });
|
|
68
|
+
Object.defineProperty(exports, "buildMinimalSimplePlanWorkItems", { enumerable: true, get: function () { return atp_example_producer_1.buildMinimalSimplePlanWorkItems; } });
|
|
69
|
+
Object.defineProperty(exports, "buildRequiredSimplePlanWorkItems", { enumerable: true, get: function () { return atp_example_producer_1.buildRequiredSimplePlanWorkItems; } });
|
|
70
|
+
Object.defineProperty(exports, "buildOptionalMemoryWorkItems", { enumerable: true, get: function () { return atp_example_producer_1.buildOptionalMemoryWorkItems; } });
|
|
71
|
+
var episode_engineering_links_1 = require("./graph/episode-engineering-links");
|
|
72
|
+
Object.defineProperty(exports, "linkEpisodeToEngineeringNodes", { enumerable: true, get: function () { return episode_engineering_links_1.linkEpisodeToEngineeringNodes; } });
|
|
54
73
|
var routing_1 = require("./surfaces/cli/runtime/routing");
|
|
55
74
|
Object.defineProperty(exports, "planInsightResult", { enumerable: true, get: function () { return routing_1.planInsightResult; } });
|
|
56
75
|
var client_factory_1 = require("./graph/client-factory");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA2E;AAAlE,2GAAA,WAAW,OAAA;AACpB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA2E;AAAlE,2GAAA,WAAW,OAAA;AACpB,kDAgCgC;AA/B9B,kGAAA,OAAO,OAAA;AACP,wGAAA,aAAa,OAAA;AACb,wGAAA,aAAa,OAAA;AACb,mHAAA,wBAAwB,OAAA;AACxB,kHAAA,uBAAuB,OAAA;AACvB,yGAAA,cAAc,OAAA;AACd,uGAAA,YAAY,OAAA;AACZ,+GAAA,oBAAoB,OAAA;AACpB,iHAAA,sBAAsB,OAAA;AACtB,mHAAA,wBAAwB,OAAA;AACxB,iHAAA,sBAAsB,OAAA;AACtB,wHAAA,6BAA6B,OAAA;AAC7B,qHAAA,0BAA0B,OAAA;AAC1B,gHAAA,qBAAqB,OAAA;AACrB,qGAAA,UAAU,OAAA;AACV,uGAAA,YAAY,OAAA;AACZ,2GAAA,gBAAgB,OAAA;AAChB,wGAAA,aAAa,OAAA;AACb,0GAAA,eAAe,OAAA;AACf,gHAAA,qBAAqB,OAAA;AACrB,4GAAA,iBAAiB,OAAA;AACjB,kHAAA,uBAAuB,OAAA;AACvB,iHAAA,sBAAsB,OAAA;AACtB,gHAAA,qBAAqB,OAAA;AACrB,iHAAA,sBAAsB,OAAA;AACtB,qHAAA,0BAA0B,OAAA;AAC1B,yHAAA,8BAA8B,OAAA;AAC9B,2HAAA,gCAAgC,OAAA;AAChC,6GAAA,kBAAkB,OAAA;AAClB,mHAAA,wBAAwB,OAAA;AACxB,oHAAA,yBAAyB,OAAA;AAG3B,gDAAgG;AAAvF,yGAAA,eAAe,OAAA;AAAE,yGAAA,eAAe,OAAA;AACzC,gDAK+B;AAJ7B,yGAAA,eAAe,OAAA;AACf,yGAAA,eAAe,OAAA;AACf,4GAAA,kBAAkB,OAAA;AAClB,0GAAA,gBAAgB,OAAA;AAGlB,8DAAiE;AAAxD,wHAAA,oBAAoB,OAAA;AAC7B,4DAYiC;AAX/B,kIAAA,8BAA8B,OAAA;AAC9B,iIAAA,6BAA6B,OAAA;AAC7B,8HAAA,0BAA0B,OAAA;AAC1B,mIAAA,+BAA+B,OAAA;AAC/B,8HAAA,0BAA0B,OAAA;AAC1B,mIAAA,+BAA+B,OAAA;AAOjC,4DAGmC;AAFjC,4HAAA,0BAA0B,OAAA;AAG5B,4DAOmC;AANjC,mHAAA,iBAAiB,OAAA;AACjB,sHAAA,oBAAoB,OAAA;AAMtB,kEAQsC;AAPpC,2HAAA,sBAAsB,OAAA;AACtB,4HAAA,uBAAuB,OAAA;AACvB,oHAAA,eAAe,OAAA;AACf,wHAAA,mBAAmB,OAAA;AAKrB,sEAKuC;AAJrC,qIAAA,6BAA6B,OAAA;AAC7B,uIAAA,+BAA+B,OAAA;AAC/B,wIAAA,gCAAgC,OAAA;AAChC,oIAAA,4BAA4B,OAAA;AAE9B,+EAI2C;AAHzC,0IAAA,6BAA6B,OAAA;AAI/B,0DAA2F;AAAlF,4GAAA,iBAAiB,OAAA;AAC1B,yDAGgC;AAF9B,mHAAA,iBAAiB,OAAA;AAGnB,0CAA+K;AAAtK,wGAAA,cAAc,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAyB,gHAAA,sBAAsB,OAAA;AAClG,mCAqBkB;AApBhB,yGAAA,eAAe,OAAA;AACf,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA"}
|