@4da/mcp-server 3.2.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +234 -62
- package/dist/auth.d.ts +36 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +82 -0
- package/dist/auth.js.map +1 -0
- package/dist/db.d.ts +100 -2
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +707 -1
- package/dist/db.js.map +1 -1
- package/dist/doctor.d.ts +15 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +124 -0
- package/dist/doctor.js.map +1 -0
- package/dist/http-transport.d.ts +25 -0
- package/dist/http-transport.d.ts.map +1 -0
- package/dist/http-transport.js +143 -0
- package/dist/http-transport.js.map +1 -0
- package/dist/index.d.ts +15 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +195 -250
- package/dist/index.js.map +1 -1
- package/dist/live/cache.d.ts +16 -0
- package/dist/live/cache.d.ts.map +1 -0
- package/dist/live/cache.js +61 -0
- package/dist/live/cache.js.map +1 -0
- package/dist/live/hn-fetcher.d.ts +19 -0
- package/dist/live/hn-fetcher.d.ts.map +1 -0
- package/dist/live/hn-fetcher.js +123 -0
- package/dist/live/hn-fetcher.js.map +1 -0
- package/dist/live/index.d.ts +55 -0
- package/dist/live/index.d.ts.map +1 -0
- package/dist/live/index.js +131 -0
- package/dist/live/index.js.map +1 -0
- package/dist/live/osv-scanner.d.ts +19 -0
- package/dist/live/osv-scanner.d.ts.map +1 -0
- package/dist/live/osv-scanner.js +197 -0
- package/dist/live/osv-scanner.js.map +1 -0
- package/dist/live/rate-limiter.d.ts +19 -0
- package/dist/live/rate-limiter.d.ts.map +1 -0
- package/dist/live/rate-limiter.js +52 -0
- package/dist/live/rate-limiter.js.map +1 -0
- package/dist/live/types.d.ts +89 -0
- package/dist/live/types.d.ts.map +1 -0
- package/dist/live/types.js +3 -0
- package/dist/live/types.js.map +1 -0
- package/dist/live/version-resolver.d.ts +11 -0
- package/dist/live/version-resolver.d.ts.map +1 -0
- package/dist/live/version-resolver.js +321 -0
- package/dist/live/version-resolver.js.map +1 -0
- package/dist/live-singleton.d.ts +9 -0
- package/dist/live-singleton.d.ts.map +1 -0
- package/dist/live-singleton.js +14 -0
- package/dist/live-singleton.js.map +1 -0
- package/dist/llm.d.ts +20 -2
- package/dist/llm.d.ts.map +1 -1
- package/dist/llm.js +80 -22
- package/dist/llm.js.map +1 -1
- package/dist/output-manager.d.ts.map +1 -1
- package/dist/output-manager.js +1 -0
- package/dist/output-manager.js.map +1 -1
- package/dist/project-scanner.d.ts +27 -0
- package/dist/project-scanner.d.ts.map +1 -0
- package/dist/project-scanner.js +366 -0
- package/dist/project-scanner.js.map +1 -0
- package/dist/schema-registry.d.ts +31 -13
- package/dist/schema-registry.d.ts.map +1 -1
- package/dist/schema-registry.js +208 -32
- package/dist/schema-registry.js.map +1 -1
- package/dist/schemas/agent-feedback-stats.json +14 -0
- package/dist/schemas/agent-memory.json +49 -0
- package/dist/schemas/agent-session-brief.json +25 -0
- package/dist/schemas/attention-report.json +13 -0
- package/dist/schemas/autophagy-status.json +13 -0
- package/dist/schemas/compound-advantage.json +14 -0
- package/dist/schemas/decision-enforcement.json +22 -0
- package/dist/schemas/decision-memory.json +54 -0
- package/dist/schemas/decision-windows.json +22 -0
- package/dist/schemas/delegation-score.json +18 -0
- package/dist/schemas/developer-dna.json +219 -0
- package/dist/schemas/export-context.json +17 -0
- package/dist/schemas/knowledge-gaps.json +14 -0
- package/dist/schemas/preemption-feed.json +18 -0
- package/dist/schemas/project-health.json +13 -0
- package/dist/schemas/record-agent-feedback.json +28 -0
- package/dist/schemas/reverse-mentions.json +13 -0
- package/dist/schemas/semantic-shifts.json +17 -0
- package/dist/schemas/signal-chains.json +19 -0
- package/dist/schemas/tech-radar.json +23 -0
- package/dist/schemas/trust-summary.json +13 -0
- package/dist/schemas/vulnerability-scan.json +26 -0
- package/dist/schemas/what-should-i-know.json +19 -0
- package/dist/setup.d.ts +18 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +171 -0
- package/dist/setup.js.map +1 -0
- package/dist/tool-dispatch.d.ts +33 -0
- package/dist/tool-dispatch.d.ts.map +1 -0
- package/dist/tool-dispatch.js +87 -0
- package/dist/tool-dispatch.js.map +1 -0
- package/dist/tools/agent-feedback-stats.d.ts +30 -0
- package/dist/tools/agent-feedback-stats.d.ts.map +1 -0
- package/dist/tools/agent-feedback-stats.js +41 -0
- package/dist/tools/agent-feedback-stats.js.map +1 -0
- package/dist/tools/agent-memory.d.ts +94 -0
- package/dist/tools/agent-memory.d.ts.map +1 -0
- package/dist/tools/agent-memory.js +262 -0
- package/dist/tools/agent-memory.js.map +1 -0
- package/dist/tools/agent-session-brief.d.ts +44 -0
- package/dist/tools/agent-session-brief.d.ts.map +1 -0
- package/dist/tools/agent-session-brief.js +179 -0
- package/dist/tools/agent-session-brief.js.map +1 -0
- package/dist/tools/attention-report.d.ts +6 -5
- package/dist/tools/attention-report.d.ts.map +1 -1
- package/dist/tools/attention-report.js +1 -0
- package/dist/tools/attention-report.js.map +1 -1
- package/dist/tools/autophagy-status.d.ts +25 -0
- package/dist/tools/autophagy-status.d.ts.map +1 -0
- package/dist/tools/autophagy-status.js +56 -0
- package/dist/tools/autophagy-status.js.map +1 -0
- package/dist/tools/compound-advantage.d.ts +30 -0
- package/dist/tools/compound-advantage.d.ts.map +1 -0
- package/dist/tools/compound-advantage.js +133 -0
- package/dist/tools/compound-advantage.js.map +1 -0
- package/dist/tools/config-validator.d.ts.map +1 -1
- package/dist/tools/config-validator.js +31 -0
- package/dist/tools/config-validator.js.map +1 -1
- package/dist/tools/context-analysis.d.ts.map +1 -1
- package/dist/tools/context-analysis.js +1 -0
- package/dist/tools/context-analysis.js.map +1 -1
- package/dist/tools/daily-briefing.d.ts.map +1 -1
- package/dist/tools/daily-briefing.js +17 -1
- package/dist/tools/daily-briefing.js.map +1 -1
- package/dist/tools/decision-enforcement.d.ts +59 -0
- package/dist/tools/decision-enforcement.d.ts.map +1 -0
- package/dist/tools/decision-enforcement.js +185 -0
- package/dist/tools/decision-enforcement.js.map +1 -0
- package/dist/tools/decision-memory.d.ts +132 -0
- package/dist/tools/decision-memory.d.ts.map +1 -0
- package/dist/tools/decision-memory.js +345 -0
- package/dist/tools/decision-memory.js.map +1 -0
- package/dist/tools/decision-windows.d.ts +37 -0
- package/dist/tools/decision-windows.d.ts.map +1 -0
- package/dist/tools/decision-windows.js +67 -0
- package/dist/tools/decision-windows.js.map +1 -0
- package/dist/tools/delegation-score.d.ts +34 -0
- package/dist/tools/delegation-score.d.ts.map +1 -0
- package/dist/tools/delegation-score.js +251 -0
- package/dist/tools/delegation-score.js.map +1 -0
- package/dist/tools/developer-dna.d.ts +79 -0
- package/dist/tools/developer-dna.d.ts.map +1 -0
- package/dist/tools/developer-dna.js +378 -0
- package/dist/tools/developer-dna.js.map +1 -0
- package/dist/tools/explain-relevance.d.ts.map +1 -1
- package/dist/tools/explain-relevance.js +1 -0
- package/dist/tools/explain-relevance.js.map +1 -1
- package/dist/tools/export-context.d.ts +23 -6
- package/dist/tools/export-context.d.ts.map +1 -1
- package/dist/tools/export-context.js +58 -14
- package/dist/tools/export-context.js.map +1 -1
- package/dist/tools/get-actionable-signals.d.ts.map +1 -1
- package/dist/tools/get-actionable-signals.js +60 -9
- package/dist/tools/get-actionable-signals.js.map +1 -1
- package/dist/tools/get-context.d.ts.map +1 -1
- package/dist/tools/get-context.js +1 -0
- package/dist/tools/get-context.js.map +1 -1
- package/dist/tools/get-relevant-content.d.ts.map +1 -1
- package/dist/tools/get-relevant-content.js +3 -0
- package/dist/tools/get-relevant-content.js.map +1 -1
- package/dist/tools/index.d.ts +26 -16
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +35 -16
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/knowledge-gaps.d.ts +11 -1
- package/dist/tools/knowledge-gaps.d.ts.map +1 -1
- package/dist/tools/knowledge-gaps.js +9 -3
- package/dist/tools/knowledge-gaps.js.map +1 -1
- package/dist/tools/llm-status.d.ts.map +1 -1
- package/dist/tools/llm-status.js +1 -0
- package/dist/tools/llm-status.js.map +1 -1
- package/dist/tools/muse-context.d.ts +195 -0
- package/dist/tools/muse-context.d.ts.map +1 -0
- package/dist/tools/muse-context.js +284 -0
- package/dist/tools/muse-context.js.map +1 -0
- package/dist/tools/preemption-feed.d.ts +55 -0
- package/dist/tools/preemption-feed.d.ts.map +1 -0
- package/dist/tools/preemption-feed.js +124 -0
- package/dist/tools/preemption-feed.js.map +1 -0
- package/dist/tools/project-health.d.ts +12 -6
- package/dist/tools/project-health.d.ts.map +1 -1
- package/dist/tools/project-health.js +49 -10
- package/dist/tools/project-health.js.map +1 -1
- package/dist/tools/record-agent-feedback.d.ts +46 -0
- package/dist/tools/record-agent-feedback.d.ts.map +1 -0
- package/dist/tools/record-agent-feedback.js +71 -0
- package/dist/tools/record-agent-feedback.js.map +1 -0
- package/dist/tools/record-feedback.d.ts.map +1 -1
- package/dist/tools/record-feedback.js +1 -0
- package/dist/tools/record-feedback.js.map +1 -1
- package/dist/tools/reverse-mentions.d.ts +8 -8
- package/dist/tools/reverse-mentions.d.ts.map +1 -1
- package/dist/tools/reverse-mentions.js +1 -0
- package/dist/tools/reverse-mentions.js.map +1 -1
- package/dist/tools/score-autopsy.d.ts.map +1 -1
- package/dist/tools/score-autopsy.js +1 -0
- package/dist/tools/score-autopsy.js.map +1 -1
- package/dist/tools/semantic-shifts.d.ts +17 -1
- package/dist/tools/semantic-shifts.d.ts.map +1 -1
- package/dist/tools/semantic-shifts.js +1 -0
- package/dist/tools/semantic-shifts.js.map +1 -1
- package/dist/tools/signal-chains.d.ts +14 -7
- package/dist/tools/signal-chains.d.ts.map +1 -1
- package/dist/tools/signal-chains.js +5 -2
- package/dist/tools/signal-chains.js.map +1 -1
- package/dist/tools/source-health.d.ts.map +1 -1
- package/dist/tools/source-health.js +1 -0
- package/dist/tools/source-health.js.map +1 -1
- package/dist/tools/tech-radar.d.ts +38 -0
- package/dist/tools/tech-radar.d.ts.map +1 -0
- package/dist/tools/tech-radar.js +249 -0
- package/dist/tools/tech-radar.js.map +1 -0
- package/dist/tools/topic-connections.d.ts.map +1 -1
- package/dist/tools/topic-connections.js +1 -0
- package/dist/tools/topic-connections.js.map +1 -1
- package/dist/tools/trend-analysis.d.ts.map +1 -1
- package/dist/tools/trend-analysis.js +1 -0
- package/dist/tools/trend-analysis.js.map +1 -1
- package/dist/tools/trust-summary.d.ts +38 -0
- package/dist/tools/trust-summary.d.ts.map +1 -0
- package/dist/tools/trust-summary.js +89 -0
- package/dist/tools/trust-summary.js.map +1 -0
- package/dist/tools/vulnerability-scan.d.ts +89 -0
- package/dist/tools/vulnerability-scan.d.ts.map +1 -0
- package/dist/tools/vulnerability-scan.js +127 -0
- package/dist/tools/vulnerability-scan.js.map +1 -0
- package/dist/tools/what-should-i-know.d.ts +79 -0
- package/dist/tools/what-should-i-know.d.ts.map +1 -0
- package/dist/tools/what-should-i-know.js +376 -0
- package/dist/tools/what-should-i-know.js.map +1 -0
- package/dist/types.d.ts +221 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +53 -24
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
// SPDX-License-Identifier: FSL-1.1-Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* developer_dna tool
|
|
4
|
+
*
|
|
5
|
+
* Export a comprehensive Developer DNA profile built from project scans,
|
|
6
|
+
* engagement data, and learned preferences.
|
|
7
|
+
*/
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Tool Definition
|
|
10
|
+
// =============================================================================
|
|
11
|
+
export const developerDnaTool = {
|
|
12
|
+
name: "developer_dna",
|
|
13
|
+
description: `Export your Developer DNA — a comprehensive profile of your tech identity built from project scans, engagement data, and learned preferences. Includes primary stack, adjacent tech, top dependencies, engaged topics, blind spots, source engagement rates, and aggregate stats.`,
|
|
14
|
+
inputSchema: {
|
|
15
|
+
type: "object",
|
|
16
|
+
properties: {
|
|
17
|
+
include_blind_spots: {
|
|
18
|
+
type: "boolean",
|
|
19
|
+
description: "Include blind spot analysis (dependencies with stale engagement). Default: true",
|
|
20
|
+
default: true,
|
|
21
|
+
},
|
|
22
|
+
max_dependencies: {
|
|
23
|
+
type: "number",
|
|
24
|
+
description: "Maximum dependencies to include. Default: 30",
|
|
25
|
+
default: 30,
|
|
26
|
+
},
|
|
27
|
+
max_topics: {
|
|
28
|
+
type: "number",
|
|
29
|
+
description: "Maximum engaged topics to include. Default: 20",
|
|
30
|
+
default: 20,
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
// =============================================================================
|
|
36
|
+
// Execution
|
|
37
|
+
// =============================================================================
|
|
38
|
+
export function executeDeveloperDna(db, params) {
|
|
39
|
+
const rawDb = db.getRawDb();
|
|
40
|
+
const includeBlindSpots = params.include_blind_spots ?? true;
|
|
41
|
+
const maxDependencies = params.max_dependencies ?? 30;
|
|
42
|
+
const maxTopics = params.max_topics ?? 20;
|
|
43
|
+
// -------------------------------------------------------------------------
|
|
44
|
+
// 1. Primary Stack — from tech_stack table (user-declared)
|
|
45
|
+
// -------------------------------------------------------------------------
|
|
46
|
+
let primaryStack = [];
|
|
47
|
+
try {
|
|
48
|
+
const techRows = rawDb
|
|
49
|
+
.prepare("SELECT technology FROM tech_stack ORDER BY technology")
|
|
50
|
+
.all();
|
|
51
|
+
primaryStack = techRows.map((r) => r.technology);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// table may not exist yet
|
|
55
|
+
}
|
|
56
|
+
// -------------------------------------------------------------------------
|
|
57
|
+
// 2. Adjacent Tech — detected_tech NOT in primary stack
|
|
58
|
+
// -------------------------------------------------------------------------
|
|
59
|
+
let adjacentTech = [];
|
|
60
|
+
try {
|
|
61
|
+
const detectedRows = rawDb
|
|
62
|
+
.prepare(`SELECT DISTINCT name, category, confidence
|
|
63
|
+
FROM detected_tech
|
|
64
|
+
WHERE confidence > 0.3
|
|
65
|
+
ORDER BY confidence DESC
|
|
66
|
+
LIMIT 50`)
|
|
67
|
+
.all();
|
|
68
|
+
const primarySet = new Set(primaryStack.map((t) => t.toLowerCase()));
|
|
69
|
+
adjacentTech = detectedRows
|
|
70
|
+
.filter((r) => !primarySet.has(r.name.toLowerCase()))
|
|
71
|
+
.map((r) => r.name);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// detected_tech table may not exist
|
|
75
|
+
}
|
|
76
|
+
// -------------------------------------------------------------------------
|
|
77
|
+
// 3. Top Dependencies — from project_dependencies table
|
|
78
|
+
// -------------------------------------------------------------------------
|
|
79
|
+
let topDependencies = [];
|
|
80
|
+
try {
|
|
81
|
+
const depRows = rawDb
|
|
82
|
+
.prepare(`SELECT package_name, project_path
|
|
83
|
+
FROM project_dependencies
|
|
84
|
+
ORDER BY package_name
|
|
85
|
+
LIMIT ?`)
|
|
86
|
+
.all(maxDependencies);
|
|
87
|
+
topDependencies = depRows.map((r) => ({
|
|
88
|
+
name: r.package_name,
|
|
89
|
+
project_path: r.project_path,
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// table may not exist
|
|
94
|
+
}
|
|
95
|
+
// -------------------------------------------------------------------------
|
|
96
|
+
// 4. Interests — from explicit_interests table
|
|
97
|
+
// -------------------------------------------------------------------------
|
|
98
|
+
let interests = [];
|
|
99
|
+
try {
|
|
100
|
+
const interestRows = rawDb
|
|
101
|
+
.prepare("SELECT topic, weight FROM explicit_interests ORDER BY weight DESC LIMIT 30")
|
|
102
|
+
.all();
|
|
103
|
+
interests = interestRows.map((r) => r.topic);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// table may not exist
|
|
107
|
+
}
|
|
108
|
+
// -------------------------------------------------------------------------
|
|
109
|
+
// 5. Top Engaged Topics — from topic_affinities
|
|
110
|
+
// -------------------------------------------------------------------------
|
|
111
|
+
let topEngagedTopics = [];
|
|
112
|
+
try {
|
|
113
|
+
const affinityRows = rawDb
|
|
114
|
+
.prepare(`SELECT topic, positive_signals, negative_signals, total_exposures
|
|
115
|
+
FROM topic_affinities
|
|
116
|
+
WHERE positive_signals > 0
|
|
117
|
+
ORDER BY positive_signals DESC
|
|
118
|
+
LIMIT ?`)
|
|
119
|
+
.all(maxTopics);
|
|
120
|
+
const totalPositive = affinityRows.reduce((sum, r) => sum + r.positive_signals, 0);
|
|
121
|
+
topEngagedTopics = affinityRows.map((r) => ({
|
|
122
|
+
topic: r.topic,
|
|
123
|
+
interactions: r.positive_signals,
|
|
124
|
+
percent_of_total: totalPositive > 0
|
|
125
|
+
? Math.round((r.positive_signals / totalPositive) * 10000) / 100
|
|
126
|
+
: 0,
|
|
127
|
+
}));
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
// table may not exist
|
|
131
|
+
}
|
|
132
|
+
// -------------------------------------------------------------------------
|
|
133
|
+
// 6. Blind Spots — dependencies with no recent engagement
|
|
134
|
+
// -------------------------------------------------------------------------
|
|
135
|
+
let blindSpots = [];
|
|
136
|
+
if (includeBlindSpots && topDependencies.length > 0) {
|
|
137
|
+
try {
|
|
138
|
+
// Get all interactions for cross-referencing
|
|
139
|
+
const recentInteractions = rawDb
|
|
140
|
+
.prepare(`SELECT i.item_id, i.action_type, i.item_source, i.timestamp
|
|
141
|
+
FROM interactions i
|
|
142
|
+
WHERE i.action_type IN ('click', 'save')
|
|
143
|
+
ORDER BY i.timestamp DESC`)
|
|
144
|
+
.all();
|
|
145
|
+
// Build set of recently engaged dependency names
|
|
146
|
+
const now = Date.now();
|
|
147
|
+
for (const dep of topDependencies) {
|
|
148
|
+
const depLower = dep.name.toLowerCase();
|
|
149
|
+
// Check if any interaction item's source mentions this dependency
|
|
150
|
+
// Use a simpler heuristic: check if the dependency name appears in
|
|
151
|
+
// topic_affinities with positive signals
|
|
152
|
+
let lastEngagement = null;
|
|
153
|
+
try {
|
|
154
|
+
const affinityRow = rawDb
|
|
155
|
+
.prepare(`SELECT topic, positive_signals
|
|
156
|
+
FROM topic_affinities
|
|
157
|
+
WHERE LOWER(topic) = ?
|
|
158
|
+
AND positive_signals > 0`)
|
|
159
|
+
.get(depLower);
|
|
160
|
+
if (affinityRow) {
|
|
161
|
+
continue; // Has engagement, not a blind spot
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
// Ignore
|
|
166
|
+
}
|
|
167
|
+
// Check for any source_items mentioning this dep that have interactions
|
|
168
|
+
try {
|
|
169
|
+
const mentionedInteraction = rawDb
|
|
170
|
+
.prepare(`SELECT i.timestamp
|
|
171
|
+
FROM interactions i
|
|
172
|
+
JOIN source_items si ON i.item_id = si.id AND i.item_source = si.source_type
|
|
173
|
+
WHERE (LOWER(si.title) LIKE ? OR LOWER(si.content) LIKE ?)
|
|
174
|
+
AND i.action_type IN ('click', 'save')
|
|
175
|
+
ORDER BY i.timestamp DESC
|
|
176
|
+
LIMIT 1`)
|
|
177
|
+
.get(`%${depLower}%`, `%${depLower}%`);
|
|
178
|
+
if (mentionedInteraction) {
|
|
179
|
+
const interactionTime = new Date(mentionedInteraction.timestamp).getTime();
|
|
180
|
+
const daysSince = Math.floor((now - interactionTime) / (1000 * 60 * 60 * 24));
|
|
181
|
+
if (daysSince > 14) {
|
|
182
|
+
blindSpots.push({
|
|
183
|
+
dependency: dep.name,
|
|
184
|
+
severity: daysSince > 60 ? "high" : "medium",
|
|
185
|
+
days_stale: daysSince,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
// Never interacted with content about this dependency
|
|
191
|
+
blindSpots.push({
|
|
192
|
+
dependency: dep.name,
|
|
193
|
+
severity: "low",
|
|
194
|
+
days_stale: -1, // indicates "never engaged"
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
// Ignore query failures for individual deps
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// Sort by severity
|
|
203
|
+
const severityOrder = {
|
|
204
|
+
critical: 4,
|
|
205
|
+
high: 3,
|
|
206
|
+
medium: 2,
|
|
207
|
+
low: 1,
|
|
208
|
+
};
|
|
209
|
+
blindSpots.sort((a, b) => (severityOrder[b.severity] || 0) - (severityOrder[a.severity] || 0));
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
// interactions table may not exist
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
// -------------------------------------------------------------------------
|
|
216
|
+
// 7. Source Engagement — items seen vs saved per source_type
|
|
217
|
+
// -------------------------------------------------------------------------
|
|
218
|
+
let sourceEngagement = [];
|
|
219
|
+
try {
|
|
220
|
+
const sourceCounts = rawDb
|
|
221
|
+
.prepare(`SELECT source_type, COUNT(*) as item_count
|
|
222
|
+
FROM source_items
|
|
223
|
+
GROUP BY source_type
|
|
224
|
+
ORDER BY item_count DESC`)
|
|
225
|
+
.all();
|
|
226
|
+
const savedCounts = rawDb
|
|
227
|
+
.prepare(`SELECT si.source_type, COUNT(*) as saved_count
|
|
228
|
+
FROM interactions i
|
|
229
|
+
JOIN source_items si ON i.item_id = si.id AND i.item_source = si.source_type
|
|
230
|
+
WHERE i.action_type = 'save'
|
|
231
|
+
GROUP BY si.source_type`)
|
|
232
|
+
.all();
|
|
233
|
+
const savedMap = new Map(savedCounts.map((r) => [r.source_type, r.saved_count]));
|
|
234
|
+
sourceEngagement = sourceCounts.map((r) => {
|
|
235
|
+
const saved = savedMap.get(r.source_type) || 0;
|
|
236
|
+
return {
|
|
237
|
+
source_type: r.source_type,
|
|
238
|
+
items_seen: r.item_count,
|
|
239
|
+
items_saved: saved,
|
|
240
|
+
engagement_rate: r.item_count > 0
|
|
241
|
+
? Math.round((saved / r.item_count) * 10000) / 10000
|
|
242
|
+
: 0,
|
|
243
|
+
};
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
catch {
|
|
247
|
+
// tables may not exist
|
|
248
|
+
}
|
|
249
|
+
// -------------------------------------------------------------------------
|
|
250
|
+
// 8. Stats — aggregate numbers
|
|
251
|
+
// -------------------------------------------------------------------------
|
|
252
|
+
let totalItemsProcessed = 0;
|
|
253
|
+
let totalRelevant = 0;
|
|
254
|
+
let projectCount = 0;
|
|
255
|
+
let dependencyCount = 0;
|
|
256
|
+
let daysActive = 0;
|
|
257
|
+
try {
|
|
258
|
+
const totalRow = rawDb
|
|
259
|
+
.prepare("SELECT COUNT(*) as cnt FROM source_items")
|
|
260
|
+
.get();
|
|
261
|
+
totalItemsProcessed = totalRow.cnt;
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
// table may not exist
|
|
265
|
+
}
|
|
266
|
+
try {
|
|
267
|
+
// Items with at least one positive interaction = "relevant"
|
|
268
|
+
const relevantRow = rawDb
|
|
269
|
+
.prepare(`SELECT COUNT(DISTINCT item_id) as cnt
|
|
270
|
+
FROM interactions
|
|
271
|
+
WHERE action_type IN ('click', 'save')`)
|
|
272
|
+
.get();
|
|
273
|
+
totalRelevant = relevantRow.cnt;
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
// table may not exist
|
|
277
|
+
}
|
|
278
|
+
try {
|
|
279
|
+
const projectRow = rawDb
|
|
280
|
+
.prepare("SELECT COUNT(DISTINCT project_path) as project_count FROM project_dependencies")
|
|
281
|
+
.get();
|
|
282
|
+
projectCount = projectRow.project_count;
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
// table may not exist
|
|
286
|
+
}
|
|
287
|
+
try {
|
|
288
|
+
const depRow = rawDb
|
|
289
|
+
.prepare("SELECT COUNT(DISTINCT package_name) as dep_count FROM project_dependencies")
|
|
290
|
+
.get();
|
|
291
|
+
dependencyCount = depRow.dep_count;
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
// table may not exist
|
|
295
|
+
}
|
|
296
|
+
try {
|
|
297
|
+
const minRow = rawDb
|
|
298
|
+
.prepare("SELECT MIN(created_at) as min_date FROM source_items")
|
|
299
|
+
.get();
|
|
300
|
+
if (minRow.min_date) {
|
|
301
|
+
const earliest = new Date(minRow.min_date.replace(" ", "T") + "Z");
|
|
302
|
+
daysActive = Math.max(1, Math.floor((Date.now() - earliest.getTime()) / (1000 * 60 * 60 * 24)));
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
catch {
|
|
306
|
+
// table may not exist
|
|
307
|
+
}
|
|
308
|
+
const rejectionRate = totalItemsProcessed > 0
|
|
309
|
+
? Math.round(((totalItemsProcessed - totalRelevant) / totalItemsProcessed) * 10000) / 10000
|
|
310
|
+
: 0;
|
|
311
|
+
const stats = {
|
|
312
|
+
total_items_processed: totalItemsProcessed,
|
|
313
|
+
total_relevant: totalRelevant,
|
|
314
|
+
rejection_rate: rejectionRate,
|
|
315
|
+
project_count: projectCount,
|
|
316
|
+
dependency_count: dependencyCount,
|
|
317
|
+
days_active: daysActive,
|
|
318
|
+
};
|
|
319
|
+
// -------------------------------------------------------------------------
|
|
320
|
+
// 9. Identity Summary — human-readable paragraph
|
|
321
|
+
// -------------------------------------------------------------------------
|
|
322
|
+
const identitySummary = buildIdentitySummary(primaryStack, adjacentTech, interests, topEngagedTopics, stats, sourceEngagement);
|
|
323
|
+
return {
|
|
324
|
+
generated_at: new Date().toISOString(),
|
|
325
|
+
primary_stack: primaryStack,
|
|
326
|
+
adjacent_tech: adjacentTech,
|
|
327
|
+
top_dependencies: topDependencies,
|
|
328
|
+
interests,
|
|
329
|
+
top_engaged_topics: topEngagedTopics,
|
|
330
|
+
blind_spots: blindSpots,
|
|
331
|
+
source_engagement: sourceEngagement,
|
|
332
|
+
stats,
|
|
333
|
+
identity_summary: identitySummary,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
// =============================================================================
|
|
337
|
+
// Helpers
|
|
338
|
+
// =============================================================================
|
|
339
|
+
function buildIdentitySummary(primaryStack, adjacentTech, interests, engagedTopics, stats, sourceEngagement) {
|
|
340
|
+
const parts = [];
|
|
341
|
+
// Stack description
|
|
342
|
+
if (primaryStack.length > 0) {
|
|
343
|
+
const stackStr = primaryStack.slice(0, 5).join(", ");
|
|
344
|
+
parts.push(`Primary stack: ${stackStr}${primaryStack.length > 5 ? ` (+${primaryStack.length - 5} more)` : ""}`);
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
parts.push("No declared tech stack yet");
|
|
348
|
+
}
|
|
349
|
+
// Adjacent discoveries
|
|
350
|
+
if (adjacentTech.length > 0) {
|
|
351
|
+
const adjStr = adjacentTech.slice(0, 3).join(", ");
|
|
352
|
+
parts.push(`also working with ${adjStr}${adjacentTech.length > 3 ? ` and ${adjacentTech.length - 3} other detected technologies` : ""}`);
|
|
353
|
+
}
|
|
354
|
+
// Interests
|
|
355
|
+
if (interests.length > 0) {
|
|
356
|
+
const intStr = interests.slice(0, 3).join(", ");
|
|
357
|
+
parts.push(`Key interests: ${intStr}`);
|
|
358
|
+
}
|
|
359
|
+
// Engagement focus
|
|
360
|
+
if (engagedTopics.length > 0) {
|
|
361
|
+
const topTopics = engagedTopics
|
|
362
|
+
.slice(0, 3)
|
|
363
|
+
.map((t) => t.topic)
|
|
364
|
+
.join(", ");
|
|
365
|
+
parts.push(`most engaged with ${topTopics}`);
|
|
366
|
+
}
|
|
367
|
+
// Sources
|
|
368
|
+
if (sourceEngagement.length > 0) {
|
|
369
|
+
const topSource = sourceEngagement[0];
|
|
370
|
+
parts.push(`${topSource.source_type} is the primary content source (${topSource.items_seen} items)`);
|
|
371
|
+
}
|
|
372
|
+
// Stats
|
|
373
|
+
if (stats.days_active > 0) {
|
|
374
|
+
parts.push(`${stats.total_items_processed} items processed over ${stats.days_active} days across ${stats.project_count} project${stats.project_count !== 1 ? "s" : ""}`);
|
|
375
|
+
}
|
|
376
|
+
return parts.join(". ") + ".";
|
|
377
|
+
}
|
|
378
|
+
//# sourceMappingURL=developer-dna.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"developer-dna.js","sourceRoot":"","sources":["../../src/tools/developer-dna.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explain-relevance.d.ts","sourceRoot":"","sources":["../../src/tools/explain-relevance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"explain-relevance.d.ts","sourceRoot":"","sources":["../../src/tools/explain-relevance.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;CAyBhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,sBAAsB,GAC7B,oBAAoB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAc1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explain-relevance.js","sourceRoot":"","sources":["../../src/tools/explain-relevance.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE;;;;;;;yDAO0C;IACvD,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wCAAwC;aACtD;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qDAAqD;gBAClE,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC;aACxC;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;KACrC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,EAAkB,EAClB,MAA8B;IAE9B,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC;IAC3D,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAE5E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,KAAK,EAAE,QAAQ,MAAM,CAAC,OAAO,YAAY,MAAM,CAAC,WAAW,YAAY;SACxE,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"explain-relevance.js","sourceRoot":"","sources":["../../src/tools/explain-relevance.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C;;;;GAIG;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE;;;;;;;yDAO0C;IACvD,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wCAAwC;aACtD;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qDAAqD;gBAClE,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC;aACxC;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;KACrC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,EAAkB,EAClB,MAA8B;IAE9B,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC;IAC3D,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAE5E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,KAAK,EAAE,QAAQ,MAAM,CAAC,OAAO,YAAY,MAAM,CAAC,WAAW,YAAY;SACxE,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Generate a context packet for handoff to another session or AI agent.
|
|
5
5
|
*/
|
|
6
6
|
import type { FourDADatabase } from "../db.js";
|
|
7
|
+
import type { SourceItemMinimalRow, SavedItemRow } from "../types.js";
|
|
7
8
|
export interface ExportContextParams {
|
|
8
9
|
include_signals?: boolean;
|
|
9
10
|
include_saved?: boolean;
|
|
@@ -27,17 +28,33 @@ export declare const exportContextPacketTool: {
|
|
|
27
28
|
};
|
|
28
29
|
};
|
|
29
30
|
};
|
|
31
|
+
export interface OpenSignal {
|
|
32
|
+
id: number;
|
|
33
|
+
title: string;
|
|
34
|
+
signal_type: string;
|
|
35
|
+
priority: string;
|
|
36
|
+
source_type: string;
|
|
37
|
+
}
|
|
30
38
|
export declare function executeExportContextPacket(db: FourDADatabase, params: ExportContextParams): {
|
|
31
39
|
generated_at: string;
|
|
32
40
|
version: string;
|
|
33
41
|
active_context: {
|
|
34
|
-
detected_tech:
|
|
35
|
-
active_topics:
|
|
36
|
-
interests:
|
|
37
|
-
exclusions:
|
|
42
|
+
detected_tech: string[];
|
|
43
|
+
active_topics: string[];
|
|
44
|
+
interests: string[];
|
|
45
|
+
exclusions: string[];
|
|
38
46
|
};
|
|
39
|
-
open_signals:
|
|
40
|
-
saved_items:
|
|
47
|
+
open_signals: (SourceItemMinimalRow | OpenSignal)[];
|
|
48
|
+
saved_items: SavedItemRow[];
|
|
49
|
+
trust_metrics: {
|
|
50
|
+
precision_30d: number | null;
|
|
51
|
+
action_rate_30d: number | null;
|
|
52
|
+
total_surfaced_30d: number;
|
|
53
|
+
false_positives_30d: number;
|
|
54
|
+
} | null;
|
|
55
|
+
preemption_summary: {
|
|
56
|
+
active_critical_alerts: number;
|
|
57
|
+
} | null;
|
|
41
58
|
summary: string;
|
|
42
59
|
};
|
|
43
60
|
//# sourceMappingURL=export-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-context.d.ts","sourceRoot":"","sources":["../../src/tools/export-context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"export-context.d.ts","sourceRoot":"","sources":["../../src/tools/export-context.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAiD,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAErH,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;CAkBnC,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,mBAAmB;;;;;;;;;;;;uBA0EV,MAAM,GAAG,IAAI;yBACX,MAAM,GAAG,IAAI;4BACV,MAAM;6BACL,MAAM;;;gCAoCH,MAAM;;;EAgCjC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// SPDX-License-Identifier: FSL-1.1-Apache-2.0
|
|
1
2
|
/**
|
|
2
3
|
* export_context_packet tool
|
|
3
4
|
*
|
|
@@ -29,23 +30,23 @@ export function executeExportContextPacket(db, params) {
|
|
|
29
30
|
// Get interests
|
|
30
31
|
const interests = rawDb
|
|
31
32
|
.prepare("SELECT topic FROM interests ORDER BY weight DESC LIMIT 20")
|
|
32
|
-
.all()
|
|
33
|
-
|
|
33
|
+
.all();
|
|
34
|
+
const interestTopics = interests.map((r) => r.topic);
|
|
34
35
|
// Get exclusions
|
|
35
|
-
const
|
|
36
|
+
const exclusionRows = rawDb
|
|
36
37
|
.prepare("SELECT topic FROM exclusions")
|
|
37
|
-
.all()
|
|
38
|
-
|
|
38
|
+
.all();
|
|
39
|
+
const exclusions = exclusionRows.map((r) => r.topic);
|
|
39
40
|
// Get detected tech from ACE
|
|
40
|
-
const
|
|
41
|
+
const detectedTechRows = rawDb
|
|
41
42
|
.prepare("SELECT DISTINCT name FROM detected_tech ORDER BY confidence DESC LIMIT 15")
|
|
42
|
-
.all()
|
|
43
|
-
|
|
43
|
+
.all();
|
|
44
|
+
const detectedTech = detectedTechRows.map((r) => r.name);
|
|
44
45
|
// Get active topics
|
|
45
|
-
const
|
|
46
|
+
const activeTopicRows = rawDb
|
|
46
47
|
.prepare("SELECT DISTINCT topic FROM active_topics ORDER BY last_seen DESC LIMIT 10")
|
|
47
|
-
.all()
|
|
48
|
-
|
|
48
|
+
.all();
|
|
49
|
+
const activeTopics = activeTopicRows.map((r) => r.topic);
|
|
49
50
|
// Get open signals from temporal events (signals are computed at runtime, not stored in source_items)
|
|
50
51
|
let openSignals = [];
|
|
51
52
|
if (includeSignals) {
|
|
@@ -87,18 +88,61 @@ export function executeExportContextPacket(db, params) {
|
|
|
87
88
|
ORDER BY i.timestamp DESC LIMIT 20`)
|
|
88
89
|
.all();
|
|
89
90
|
}
|
|
91
|
+
// Trust metrics
|
|
92
|
+
let trustMetrics = null;
|
|
93
|
+
try {
|
|
94
|
+
const trustCounts = rawDb
|
|
95
|
+
.prepare(`SELECT event_type, COUNT(*) as cnt
|
|
96
|
+
FROM trust_events
|
|
97
|
+
WHERE created_at >= datetime('now', '-30 days')
|
|
98
|
+
GROUP BY event_type`)
|
|
99
|
+
.all();
|
|
100
|
+
const getCount = (t) => trustCounts.find((c) => c.event_type === t)?.cnt ?? 0;
|
|
101
|
+
const surfaced = getCount("surfaced");
|
|
102
|
+
const acted = getCount("acted_on");
|
|
103
|
+
const fp = getCount("false_positive");
|
|
104
|
+
const validated = getCount("validated");
|
|
105
|
+
const tp = acted + validated;
|
|
106
|
+
trustMetrics = {
|
|
107
|
+
precision_30d: tp + fp > 0 ? Math.round((tp / (tp + fp)) * 100) / 100 : null,
|
|
108
|
+
action_rate_30d: surfaced > 0
|
|
109
|
+
? Math.round((acted / surfaced) * 100) / 100
|
|
110
|
+
: null,
|
|
111
|
+
total_surfaced_30d: surfaced,
|
|
112
|
+
false_positives_30d: fp,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
/* trust tables may not exist yet */
|
|
117
|
+
}
|
|
118
|
+
// Recent preemption alerts count
|
|
119
|
+
let preemptionSummary = null;
|
|
120
|
+
try {
|
|
121
|
+
const alertCount = rawDb
|
|
122
|
+
.prepare(`SELECT COUNT(*) as cnt FROM dependency_alerts
|
|
123
|
+
WHERE created_at >= datetime('now', '-7 days') AND severity IN ('critical', 'high')`)
|
|
124
|
+
.get();
|
|
125
|
+
preemptionSummary = {
|
|
126
|
+
active_critical_alerts: alertCount?.cnt ?? 0,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
/* table may not exist */
|
|
131
|
+
}
|
|
90
132
|
return {
|
|
91
133
|
generated_at: new Date().toISOString(),
|
|
92
|
-
version: "1.
|
|
134
|
+
version: "1.1.0",
|
|
93
135
|
active_context: {
|
|
94
136
|
detected_tech: detectedTech,
|
|
95
137
|
active_topics: activeTopics,
|
|
96
|
-
interests,
|
|
138
|
+
interests: interestTopics,
|
|
97
139
|
exclusions,
|
|
98
140
|
},
|
|
99
141
|
open_signals: openSignals,
|
|
100
142
|
saved_items: savedItems,
|
|
101
|
-
|
|
143
|
+
trust_metrics: trustMetrics,
|
|
144
|
+
preemption_summary: preemptionSummary,
|
|
145
|
+
summary: `${interestTopics.length} interests, ${detectedTech.length} detected tech, ${openSignals.length} open signals, ${savedItems.length} saved items`,
|
|
102
146
|
};
|
|
103
147
|
}
|
|
104
148
|
//# sourceMappingURL=export-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-context.js","sourceRoot":"","sources":["../../src/tools/export-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"export-context.js","sourceRoot":"","sources":["../../src/tools/export-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-actionable-signals.d.ts","sourceRoot":"","sources":["../../src/tools/get-actionable-signals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-actionable-signals.d.ts","sourceRoot":"","sources":["../../src/tools/get-actionable-signals.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAO/C,KAAK,UAAU,GACX,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,YAAY,GACZ,UAAU,GACV,mBAAmB,CAAC;AAExB,KAAK,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAQ7D,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,UAAU,CAAC;IACxB,eAAe,EAAE,cAAc,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AA8ND,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCpC,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,0BAA0B,GACjC;IAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CA8FjF"}
|