@4da/mcp-server 4.0.0 → 4.1.1

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.
Files changed (210) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +160 -85
  3. package/dist/auth.d.ts +36 -0
  4. package/dist/auth.d.ts.map +1 -0
  5. package/dist/auth.js +82 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/db.d.ts +73 -0
  8. package/dist/db.d.ts.map +1 -1
  9. package/dist/db.js +607 -4
  10. package/dist/db.js.map +1 -1
  11. package/dist/doctor.d.ts.map +1 -1
  12. package/dist/doctor.js +33 -7
  13. package/dist/doctor.js.map +1 -1
  14. package/dist/http-transport.d.ts.map +1 -1
  15. package/dist/http-transport.js +19 -2
  16. package/dist/http-transport.js.map +1 -1
  17. package/dist/index.d.ts +15 -18
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +150 -325
  20. package/dist/index.js.map +1 -1
  21. package/dist/live/cache.d.ts +16 -0
  22. package/dist/live/cache.d.ts.map +1 -0
  23. package/dist/live/cache.js +61 -0
  24. package/dist/live/cache.js.map +1 -0
  25. package/dist/live/hn-fetcher.d.ts +19 -0
  26. package/dist/live/hn-fetcher.d.ts.map +1 -0
  27. package/dist/live/hn-fetcher.js +123 -0
  28. package/dist/live/hn-fetcher.js.map +1 -0
  29. package/dist/live/index.d.ts +55 -0
  30. package/dist/live/index.d.ts.map +1 -0
  31. package/dist/live/index.js +131 -0
  32. package/dist/live/index.js.map +1 -0
  33. package/dist/live/osv-scanner.d.ts +19 -0
  34. package/dist/live/osv-scanner.d.ts.map +1 -0
  35. package/dist/live/osv-scanner.js +197 -0
  36. package/dist/live/osv-scanner.js.map +1 -0
  37. package/dist/live/rate-limiter.d.ts +19 -0
  38. package/dist/live/rate-limiter.d.ts.map +1 -0
  39. package/dist/live/rate-limiter.js +52 -0
  40. package/dist/live/rate-limiter.js.map +1 -0
  41. package/dist/live/types.d.ts +89 -0
  42. package/dist/live/types.d.ts.map +1 -0
  43. package/dist/live/types.js +3 -0
  44. package/dist/live/types.js.map +1 -0
  45. package/dist/live/version-resolver.d.ts +11 -0
  46. package/dist/live/version-resolver.d.ts.map +1 -0
  47. package/dist/live/version-resolver.js +321 -0
  48. package/dist/live/version-resolver.js.map +1 -0
  49. package/dist/live-singleton.d.ts +9 -0
  50. package/dist/live-singleton.d.ts.map +1 -0
  51. package/dist/live-singleton.js +14 -0
  52. package/dist/live-singleton.js.map +1 -0
  53. package/dist/llm.d.ts.map +1 -1
  54. package/dist/llm.js +3 -2
  55. package/dist/llm.js.map +1 -1
  56. package/dist/output-manager.d.ts.map +1 -1
  57. package/dist/output-manager.js +1 -0
  58. package/dist/output-manager.js.map +1 -1
  59. package/dist/project-scanner.d.ts +27 -0
  60. package/dist/project-scanner.d.ts.map +1 -0
  61. package/dist/project-scanner.js +366 -0
  62. package/dist/project-scanner.js.map +1 -0
  63. package/dist/schema-registry.d.ts +31 -13
  64. package/dist/schema-registry.d.ts.map +1 -1
  65. package/dist/schema-registry.js +164 -32
  66. package/dist/schema-registry.js.map +1 -1
  67. package/dist/schemas/agent-feedback-stats.json +14 -0
  68. package/dist/schemas/preemption-feed.json +18 -0
  69. package/dist/schemas/record-agent-feedback.json +28 -0
  70. package/dist/schemas/trust-summary.json +13 -0
  71. package/dist/schemas/vulnerability-scan.json +26 -0
  72. package/dist/schemas/what-should-i-know.json +19 -0
  73. package/dist/setup.d.ts +2 -1
  74. package/dist/setup.d.ts.map +1 -1
  75. package/dist/setup.js +38 -4
  76. package/dist/setup.js.map +1 -1
  77. package/dist/tool-dispatch.d.ts +33 -0
  78. package/dist/tool-dispatch.d.ts.map +1 -0
  79. package/dist/tool-dispatch.js +87 -0
  80. package/dist/tool-dispatch.js.map +1 -0
  81. package/dist/tools/agent-feedback-stats.d.ts +30 -0
  82. package/dist/tools/agent-feedback-stats.d.ts.map +1 -0
  83. package/dist/tools/agent-feedback-stats.js +41 -0
  84. package/dist/tools/agent-feedback-stats.js.map +1 -0
  85. package/dist/tools/agent-memory.d.ts.map +1 -1
  86. package/dist/tools/agent-memory.js +33 -0
  87. package/dist/tools/agent-memory.js.map +1 -1
  88. package/dist/tools/agent-session-brief.d.ts.map +1 -1
  89. package/dist/tools/agent-session-brief.js +1 -0
  90. package/dist/tools/agent-session-brief.js.map +1 -1
  91. package/dist/tools/attention-report.d.ts.map +1 -1
  92. package/dist/tools/attention-report.js +1 -0
  93. package/dist/tools/attention-report.js.map +1 -1
  94. package/dist/tools/autophagy-status.d.ts.map +1 -1
  95. package/dist/tools/autophagy-status.js.map +1 -1
  96. package/dist/tools/compound-advantage.d.ts +3 -0
  97. package/dist/tools/compound-advantage.d.ts.map +1 -1
  98. package/dist/tools/compound-advantage.js +67 -10
  99. package/dist/tools/compound-advantage.js.map +1 -1
  100. package/dist/tools/config-validator.d.ts.map +1 -1
  101. package/dist/tools/config-validator.js +46 -4
  102. package/dist/tools/config-validator.js.map +1 -1
  103. package/dist/tools/context-analysis.d.ts.map +1 -1
  104. package/dist/tools/context-analysis.js +1 -0
  105. package/dist/tools/context-analysis.js.map +1 -1
  106. package/dist/tools/daily-briefing.d.ts.map +1 -1
  107. package/dist/tools/daily-briefing.js +17 -1
  108. package/dist/tools/daily-briefing.js.map +1 -1
  109. package/dist/tools/decision-enforcement.d.ts.map +1 -1
  110. package/dist/tools/decision-enforcement.js +1 -0
  111. package/dist/tools/decision-enforcement.js.map +1 -1
  112. package/dist/tools/decision-memory.d.ts +2 -0
  113. package/dist/tools/decision-memory.d.ts.map +1 -1
  114. package/dist/tools/decision-memory.js +80 -0
  115. package/dist/tools/decision-memory.js.map +1 -1
  116. package/dist/tools/decision-windows.d.ts.map +1 -1
  117. package/dist/tools/decision-windows.js.map +1 -1
  118. package/dist/tools/delegation-score.d.ts.map +1 -1
  119. package/dist/tools/delegation-score.js +10 -0
  120. package/dist/tools/delegation-score.js.map +1 -1
  121. package/dist/tools/developer-dna.d.ts.map +1 -1
  122. package/dist/tools/developer-dna.js +31 -1
  123. package/dist/tools/developer-dna.js.map +1 -1
  124. package/dist/tools/explain-relevance.d.ts.map +1 -1
  125. package/dist/tools/explain-relevance.js +1 -0
  126. package/dist/tools/explain-relevance.js.map +1 -1
  127. package/dist/tools/export-context.d.ts +9 -0
  128. package/dist/tools/export-context.d.ts.map +1 -1
  129. package/dist/tools/export-context.js +70 -7
  130. package/dist/tools/export-context.js.map +1 -1
  131. package/dist/tools/get-actionable-signals.d.ts.map +1 -1
  132. package/dist/tools/get-actionable-signals.js +75 -10
  133. package/dist/tools/get-actionable-signals.js.map +1 -1
  134. package/dist/tools/get-context.d.ts.map +1 -1
  135. package/dist/tools/get-context.js +1 -0
  136. package/dist/tools/get-context.js.map +1 -1
  137. package/dist/tools/get-relevant-content.d.ts.map +1 -1
  138. package/dist/tools/get-relevant-content.js +12 -1
  139. package/dist/tools/get-relevant-content.js.map +1 -1
  140. package/dist/tools/index.d.ts +16 -16
  141. package/dist/tools/index.d.ts.map +1 -1
  142. package/dist/tools/index.js +21 -16
  143. package/dist/tools/index.js.map +1 -1
  144. package/dist/tools/knowledge-gaps.d.ts +8 -0
  145. package/dist/tools/knowledge-gaps.d.ts.map +1 -1
  146. package/dist/tools/knowledge-gaps.js +23 -7
  147. package/dist/tools/knowledge-gaps.js.map +1 -1
  148. package/dist/tools/llm-status.d.ts.map +1 -1
  149. package/dist/tools/llm-status.js +1 -0
  150. package/dist/tools/llm-status.js.map +1 -1
  151. package/dist/tools/muse-context.d.ts +195 -0
  152. package/dist/tools/muse-context.d.ts.map +1 -0
  153. package/dist/tools/muse-context.js +284 -0
  154. package/dist/tools/muse-context.js.map +1 -0
  155. package/dist/tools/preemption-feed.d.ts +55 -0
  156. package/dist/tools/preemption-feed.d.ts.map +1 -0
  157. package/dist/tools/preemption-feed.js +124 -0
  158. package/dist/tools/preemption-feed.js.map +1 -0
  159. package/dist/tools/project-health.d.ts +12 -0
  160. package/dist/tools/project-health.d.ts.map +1 -1
  161. package/dist/tools/project-health.js +62 -11
  162. package/dist/tools/project-health.js.map +1 -1
  163. package/dist/tools/record-agent-feedback.d.ts +46 -0
  164. package/dist/tools/record-agent-feedback.d.ts.map +1 -0
  165. package/dist/tools/record-agent-feedback.js +71 -0
  166. package/dist/tools/record-agent-feedback.js.map +1 -0
  167. package/dist/tools/record-feedback.d.ts.map +1 -1
  168. package/dist/tools/record-feedback.js +1 -0
  169. package/dist/tools/record-feedback.js.map +1 -1
  170. package/dist/tools/reverse-mentions.d.ts.map +1 -1
  171. package/dist/tools/reverse-mentions.js +31 -13
  172. package/dist/tools/reverse-mentions.js.map +1 -1
  173. package/dist/tools/score-autopsy.d.ts.map +1 -1
  174. package/dist/tools/score-autopsy.js +9 -2
  175. package/dist/tools/score-autopsy.js.map +1 -1
  176. package/dist/tools/semantic-shifts.d.ts.map +1 -1
  177. package/dist/tools/semantic-shifts.js +1 -0
  178. package/dist/tools/semantic-shifts.js.map +1 -1
  179. package/dist/tools/signal-chains.d.ts.map +1 -1
  180. package/dist/tools/signal-chains.js +5 -2
  181. package/dist/tools/signal-chains.js.map +1 -1
  182. package/dist/tools/source-health.d.ts.map +1 -1
  183. package/dist/tools/source-health.js +1 -0
  184. package/dist/tools/source-health.js.map +1 -1
  185. package/dist/tools/tech-radar.d.ts.map +1 -1
  186. package/dist/tools/tech-radar.js +1 -0
  187. package/dist/tools/tech-radar.js.map +1 -1
  188. package/dist/tools/topic-connections.d.ts.map +1 -1
  189. package/dist/tools/topic-connections.js +1 -0
  190. package/dist/tools/topic-connections.js.map +1 -1
  191. package/dist/tools/trend-analysis.d.ts.map +1 -1
  192. package/dist/tools/trend-analysis.js +1 -0
  193. package/dist/tools/trend-analysis.js.map +1 -1
  194. package/dist/tools/trust-summary.d.ts +38 -0
  195. package/dist/tools/trust-summary.d.ts.map +1 -0
  196. package/dist/tools/trust-summary.js +89 -0
  197. package/dist/tools/trust-summary.js.map +1 -0
  198. package/dist/tools/vulnerability-scan.d.ts +89 -0
  199. package/dist/tools/vulnerability-scan.d.ts.map +1 -0
  200. package/dist/tools/vulnerability-scan.js +127 -0
  201. package/dist/tools/vulnerability-scan.js.map +1 -0
  202. package/dist/tools/what-should-i-know.d.ts +79 -0
  203. package/dist/tools/what-should-i-know.d.ts.map +1 -0
  204. package/dist/tools/what-should-i-know.js +380 -0
  205. package/dist/tools/what-should-i-know.js.map +1 -0
  206. package/dist/types.d.ts +112 -0
  207. package/dist/types.d.ts.map +1 -1
  208. package/dist/types.js +1 -0
  209. package/dist/types.js.map +1 -1
  210. package/package.json +35 -18
@@ -1,3 +1,4 @@
1
+ // SPDX-License-Identifier: FSL-1.1-Apache-2.0
1
2
  /**
2
3
  * export_context_packet tool
3
4
  *
@@ -27,14 +28,33 @@ export function executeExportContextPacket(db, params) {
27
28
  const includeSignals = params.include_signals ?? true;
28
29
  const includeSaved = params.include_saved ?? true;
29
30
  // Get interests
30
- const interests = rawDb
31
- .prepare("SELECT topic FROM interests ORDER BY weight DESC LIMIT 20")
32
- .all();
31
+ let interests = [];
32
+ try {
33
+ interests = rawDb
34
+ .prepare("SELECT topic FROM interests ORDER BY weight DESC LIMIT 20")
35
+ .all();
36
+ }
37
+ catch {
38
+ try {
39
+ interests = rawDb
40
+ .prepare("SELECT topic FROM explicit_interests ORDER BY weight DESC LIMIT 20")
41
+ .all();
42
+ }
43
+ catch {
44
+ // Neither table exists
45
+ }
46
+ }
33
47
  const interestTopics = interests.map((r) => r.topic);
34
48
  // Get exclusions
35
- const exclusionRows = rawDb
36
- .prepare("SELECT topic FROM exclusions")
37
- .all();
49
+ let exclusionRows = [];
50
+ try {
51
+ exclusionRows = rawDb
52
+ .prepare("SELECT topic FROM exclusions")
53
+ .all();
54
+ }
55
+ catch {
56
+ // exclusions table not present
57
+ }
38
58
  const exclusions = exclusionRows.map((r) => r.topic);
39
59
  // Get detected tech from ACE
40
60
  const detectedTechRows = rawDb
@@ -87,9 +107,50 @@ export function executeExportContextPacket(db, params) {
87
107
  ORDER BY i.timestamp DESC LIMIT 20`)
88
108
  .all();
89
109
  }
110
+ // Trust metrics
111
+ let trustMetrics = null;
112
+ try {
113
+ const trustCounts = rawDb
114
+ .prepare(`SELECT event_type, COUNT(*) as cnt
115
+ FROM trust_events
116
+ WHERE created_at >= datetime('now', '-30 days')
117
+ GROUP BY event_type`)
118
+ .all();
119
+ const getCount = (t) => trustCounts.find((c) => c.event_type === t)?.cnt ?? 0;
120
+ const surfaced = getCount("surfaced");
121
+ const acted = getCount("acted_on");
122
+ const fp = getCount("false_positive");
123
+ const validated = getCount("validated");
124
+ const tp = acted + validated;
125
+ trustMetrics = {
126
+ precision_30d: tp + fp > 0 ? Math.round((tp / (tp + fp)) * 100) / 100 : null,
127
+ action_rate_30d: surfaced > 0
128
+ ? Math.round((acted / surfaced) * 100) / 100
129
+ : null,
130
+ total_surfaced_30d: surfaced,
131
+ false_positives_30d: fp,
132
+ };
133
+ }
134
+ catch {
135
+ /* trust tables may not exist yet */
136
+ }
137
+ // Recent preemption alerts count
138
+ let preemptionSummary = null;
139
+ try {
140
+ const alertCount = rawDb
141
+ .prepare(`SELECT COUNT(*) as cnt FROM dependency_alerts
142
+ WHERE created_at >= datetime('now', '-7 days') AND severity IN ('critical', 'high')`)
143
+ .get();
144
+ preemptionSummary = {
145
+ active_critical_alerts: alertCount?.cnt ?? 0,
146
+ };
147
+ }
148
+ catch {
149
+ /* table may not exist */
150
+ }
90
151
  return {
91
152
  generated_at: new Date().toISOString(),
92
- version: "1.0.0",
153
+ version: "1.1.0",
93
154
  active_context: {
94
155
  detected_tech: detectedTech,
95
156
  active_topics: activeTopics,
@@ -98,6 +159,8 @@ export function executeExportContextPacket(db, params) {
98
159
  },
99
160
  open_signals: openSignals,
100
161
  saved_items: savedItems,
162
+ trust_metrics: trustMetrics,
163
+ preemption_summary: preemptionSummary,
101
164
  summary: `${interestTopics.length} interests, ${detectedTech.length} detected tech, ${openSignals.length} open signals, ${savedItems.length} saved items`,
102
165
  };
103
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"export-context.js","sourceRoot":"","sources":["../../src/tools/export-context.ts"],"names":[],"mappings":"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"}
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":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM/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;AA6MD,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,CA6DjF"}
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;AAqOD,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,CAsGjF"}
@@ -1,3 +1,4 @@
1
+ // SPDX-License-Identifier: FSL-1.1-Apache-2.0
1
2
  /**
2
3
  * get_actionable_signals tool
3
4
  *
@@ -5,6 +6,7 @@
5
6
  * breaking changes, tool discoveries, etc.) with priority levels.
6
7
  * Cross-references against the user's ACE-detected tech stack.
7
8
  */
9
+ import { getLiveIntelligence } from "../live-singleton.js";
8
10
  // ============================================================================
9
11
  // Pattern Definitions
10
12
  // ============================================================================
@@ -70,13 +72,28 @@ const SIGNAL_PATTERNS = {
70
72
  },
71
73
  };
72
74
  const BASE_WEIGHTS = {
73
- security_alert: 4,
74
- breaking_change: 3,
75
- tool_discovery: 2,
76
- tech_trend: 2,
75
+ security_alert: 2,
76
+ breaking_change: 2,
77
+ tool_discovery: 1,
78
+ tech_trend: 1,
77
79
  learning: 1,
78
- competitive_intel: 2,
80
+ competitive_intel: 1,
79
81
  };
82
+ // Word-boundary matching prevents "rce" matching inside "source", "xss" inside "success", etc.
83
+ function hasWordBoundary(text, term) {
84
+ let searchFrom = 0;
85
+ while (true) {
86
+ const pos = text.indexOf(term, searchFrom);
87
+ if (pos === -1)
88
+ return false;
89
+ const beforeOk = pos === 0 || !/[a-zA-Z0-9]/.test(text[pos - 1]);
90
+ const afterIdx = pos + term.length;
91
+ const afterOk = afterIdx >= text.length || !/[a-zA-Z0-9]/.test(text[afterIdx]);
92
+ if (beforeOk && afterOk)
93
+ return true;
94
+ searchFrom = pos + 1;
95
+ }
96
+ }
80
97
  const PRIORITY_LABELS = {
81
98
  security_alert: "Security Alert",
82
99
  breaking_change: "Breaking Change",
@@ -107,9 +124,9 @@ function classify(title, content, relevanceScore, detectedTech) {
107
124
  const titleLower = title.toLowerCase();
108
125
  // Track scores per signal type
109
126
  const typeScores = {};
110
- // Single pass through keyword map
127
+ // Single pass through keyword map (word-boundary matched to prevent false positives)
111
128
  for (const [keyword, entries] of KEYWORD_MAP.entries()) {
112
- if (textLower.includes(keyword)) {
129
+ if (hasWordBoundary(textLower, keyword)) {
113
130
  for (const entry of entries) {
114
131
  if (!typeScores[entry.type]) {
115
132
  typeScores[entry.type] = { score: 0, matched: [] };
@@ -117,7 +134,7 @@ function classify(title, content, relevanceScore, detectedTech) {
117
134
  typeScores[entry.type].score += entry.weight;
118
135
  typeScores[entry.type].matched.push(keyword);
119
136
  // Boost if keyword is in title (only for non-boost words)
120
- if (!entry.isBoost && titleLower.includes(keyword)) {
137
+ if (!entry.isBoost && hasWordBoundary(titleLower, keyword)) {
121
138
  typeScores[entry.type].score += entry.weight * 0.5;
122
139
  }
123
140
  }
@@ -137,9 +154,18 @@ function classify(title, content, relevanceScore, detectedTech) {
137
154
  }
138
155
  if (!bestType)
139
156
  return null;
157
+ // Require at least 2 keyword matches — single keyword produces too many false positives
158
+ if (bestTriggers.length < 2)
159
+ return null;
140
160
  // Compute priority
141
161
  let priorityScore = BASE_WEIGHTS[bestType];
142
- const techMatch = detectedTech.find((t) => textLower.includes(t.toLowerCase()));
162
+ const techMatch = detectedTech.find((t) => hasWordBoundary(textLower, t.toLowerCase()));
163
+ // Security alerts MUST mention something in the user's stack to be relevant.
164
+ // A CVE for "Prometheus" or "PraisonAI" is noise if the user doesn't use them.
165
+ // Only keep security alerts that explicitly name a technology the user has.
166
+ if (bestType === "security_alert" && !techMatch) {
167
+ return null;
168
+ }
143
169
  if (techMatch)
144
170
  priorityScore += 1;
145
171
  if (relevanceScore > 0.7)
@@ -218,7 +244,14 @@ export function executeGetActionableSignals(db, params) {
218
244
  const limit = Math.max(1, Math.min(100, params.limit ?? 20));
219
245
  const sinceHours = Math.max(1, Math.min(168, params.since_hours ?? 48));
220
246
  // Get items from DB (reuse existing method with low min score to get more items)
221
- const items = db.getRelevantContent(0.1, undefined, 200, sinceHours);
247
+ // Try progressively wider time windows if no items found
248
+ let items = db.getRelevantContent(0.1, undefined, 200, sinceHours);
249
+ if (items.length === 0 && sinceHours < 168) {
250
+ items = db.getRelevantContent(0.1, undefined, 200, 168); // Try 7 days
251
+ }
252
+ if (items.length === 0) {
253
+ items = db.getRelevantContent(0.0, undefined, 200, 720); // Try 30 days, any score
254
+ }
222
255
  // Get user's detected tech for cross-referencing
223
256
  const context = db.getUserContext(true, false);
224
257
  const detectedTech = (context.ace?.detected_tech || []).map((t) => t.name);
@@ -246,6 +279,37 @@ export function executeGetActionableSignals(db, params) {
246
279
  discovered_ago: item.discovered_ago,
247
280
  });
248
281
  }
282
+ // Inject live vulnerability data as security_alert signals
283
+ const liveIntel = getLiveIntelligence();
284
+ if (liveIntel) {
285
+ const vulnResult = liveIntel.getVulnerabilities();
286
+ if (vulnResult && vulnResult.vulnerabilities.length > 0) {
287
+ for (const vuln of vulnResult.vulnerabilities) {
288
+ // Apply filters
289
+ const vulnPriority = vuln.severity === "critical" ? "critical" :
290
+ vuln.severity === "high" ? "high" : "medium";
291
+ if (params.priority_filter && vulnPriority !== params.priority_filter)
292
+ continue;
293
+ if (params.signal_type && params.signal_type !== "security_alert")
294
+ continue;
295
+ signals.push({
296
+ id: -1,
297
+ title: `${vuln.severity.toUpperCase()}: ${vuln.summary} (${vuln.package}@${vuln.currentVersion})`,
298
+ url: vuln.references[0] || null,
299
+ source_type: "osv_live",
300
+ relevance_score: vuln.severity === "critical" ? 1.0 : vuln.severity === "high" ? 0.9 : 0.7,
301
+ signal_type: "security_alert",
302
+ signal_priority: vulnPriority,
303
+ action: vuln.fixedVersion
304
+ ? `Upgrade ${vuln.package} to ${vuln.fixedVersion}`
305
+ : `Review ${vuln.package} — no fix version published`,
306
+ triggers: [vuln.vulnId, ...vuln.aliases].filter(Boolean),
307
+ confidence: 1.0,
308
+ discovered_ago: vuln.published ? `published ${vuln.published}` : "recently",
309
+ });
310
+ }
311
+ }
312
+ }
249
313
  // Sort by priority (critical first), then by relevance score
250
314
  const priorityOrder = { critical: 4, high: 3, medium: 2, low: 1 };
251
315
  signals.sort((a, b) => {
@@ -263,6 +327,7 @@ export function executeGetActionableSignals(db, params) {
263
327
  signals: signals.slice(0, limit),
264
328
  total: signals.length,
265
329
  summary,
330
+ ...(signals.length === 0 && items.length === 0 ? { note: "No source items in the database. Run the 4DA desktop app to fetch content, or use vulnerability_scan to check dependencies directly." } : {}),
266
331
  };
267
332
  }
268
333
  //# sourceMappingURL=get-actionable-signals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-actionable-signals.js","sourceRoot":"","sources":["../../src/tools/get-actionable-signals.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsCH,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,MAAM,eAAe,GAAsC;IACzD,cAAc,EAAE;QACd,QAAQ,EAAE;YACR,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe;YAC5D,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY;YACtD,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM;YACnD,sBAAsB,EAAE,UAAU,EAAE,qBAAqB;SAC1D;QACD,UAAU,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,WAAW,CAAC;QAC/E,MAAM,EAAE,GAAG;KACZ;IACD,eAAe,EAAE;QACf,QAAQ,EAAE;YACR,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK;YACrD,iBAAiB,EAAE,eAAe,EAAE,eAAe;YACnD,YAAY,EAAE,qBAAqB,EAAE,QAAQ;YAC7C,wBAAwB,EAAE,YAAY;SACvC;QACD,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,CAAC;QACzE,MAAM,EAAE,GAAG;KACZ;IACD,cAAc,EAAE;QACd,QAAQ,EAAE;YACR,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ;YACtD,gBAAgB,EAAE,YAAY,EAAE,iBAAiB;YACjD,aAAa,EAAE,aAAa,EAAE,aAAa;YAC3C,UAAU,EAAE,SAAS,EAAE,SAAS;SACjC;QACD,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC;QACrE,MAAM,EAAE,GAAG;KACZ;IACD,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW;YAC9C,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ;YAC5C,cAAc,EAAE,WAAW,EAAE,SAAS;SACvC;QACD,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC;QACtE,MAAM,EAAE,GAAG;KACZ;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE;YACR,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW;YAC1C,WAAW,EAAE,gBAAgB,EAAE,UAAU;YACzC,cAAc,EAAE,iBAAiB,EAAE,aAAa;YAChD,cAAc,EAAE,cAAc;SAC/B;QACD,UAAU,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,CAAC;QACrE,MAAM,EAAE,GAAG;KACZ;IACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE;YACR,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK;YACtC,WAAW,EAAE,cAAc,EAAE,YAAY;YACzC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU;YACxC,YAAY,EAAE,UAAU,EAAE,UAAU;SACrC;QACD,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;QAC3D,MAAM,EAAE,GAAG;KACZ;CACF,CAAC;AAEF,MAAM,YAAY,GAA+B;IAC/C,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,CAAC;IAClB,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC;IACX,iBAAiB,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,eAAe,GAA2B;IAC9C,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;IACpB,iBAAiB,EAAE,mBAAmB;CACvC,CAAC;AAaF,MAAM,WAAW,GAAgC,IAAI,GAAG,EAAE,CAAC;AAE3D,yBAAyB;AACzB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAkC,EAAE,CAAC;IAC/F,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CACf,KAAa,EACb,OAAe,EACf,cAAsB,EACtB,YAAsB;IAQtB,mCAAmC;IACnC,MAAM,SAAS,GAAG,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IACtD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAEvC,+BAA+B;IAC/B,MAAM,UAAU,GAAyD,EAAE,CAAC;IAE5E,kCAAkC;IAClC,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBACrD,CAAC;gBAED,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;gBAC7C,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAE7C,0DAA0D;gBAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnD,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,QAAQ,GAAsB,IAAI,CAAC;IACvC,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,YAAY,GAAa,EAAE,CAAC;IAEhC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QACnD,IAAI,UAAU,GAAG,cAAc,EAAE,CAAC;YAChC,QAAQ,GAAG,IAAkB,CAAC;YAC9B,cAAc,GAAG,UAAU,CAAC;YAC5B,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,mBAAmB;IACnB,IAAI,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAChF,IAAI,SAAS;QAAE,aAAa,IAAI,CAAC,CAAC;IAClC,IAAI,cAAc,GAAG,GAAG;QAAE,aAAa,IAAI,CAAC,CAAC;IAC7C,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAE3C,MAAM,QAAQ,GACZ,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAE1G,kBAAkB;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9E,IAAI,MAAc,CAAC;IACnB,IAAI,QAAQ,KAAK,gBAAgB,IAAI,SAAS,EAAE,CAAC;QAC/C,MAAM,GAAG,UAAU,UAAU,mBAAmB,SAAS,QAAQ,CAAC;IACpE,CAAC;SAAM,IAAI,QAAQ,KAAK,iBAAiB,IAAI,SAAS,EAAE,CAAC;QACvD,MAAM,GAAG,0BAA0B,SAAS,kBAAkB,CAAC;IACjE,CAAC;SAAM,IAAI,QAAQ,KAAK,gBAAgB,IAAI,SAAS,EAAE,CAAC;QACtD,MAAM,GAAG,qBAAqB,SAAS,cAAc,UAAU,EAAE,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;IACrE,CAAC;IAED,OAAO;QACL,UAAU,EAAE,QAAQ;QACpB,QAAQ;QACR,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,GAAG,GAAG;QAClD,MAAM;QACN,QAAQ,EAAE,YAAY;KACvB,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE;;;;;;;sEAOuD;IACpE,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qFAAqF;gBAClG,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;aAC5C;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;gBAC1D,IAAI,EAAE;oBACJ,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB;oBACrD,YAAY,EAAE,UAAU,EAAE,mBAAmB;iBAC9C;aACF;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kDAAkD;gBAC/D,OAAO,EAAE,EAAE;aACZ;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uDAAuD;gBACpE,OAAO,EAAE,EAAE;aACZ;SACF;KACF;CACF,CAAC;AASF,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,MAAM,UAAU,2BAA2B,CACzC,EAAkB,EAClB,MAAkC;IAElC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;IAExE,iFAAiF;IACjF,MAAM,KAAK,GAAG,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAErE,iDAAiD;IACjD,MAAM,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE7F,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,CACrB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,IAAI,EAAE,EAClB,IAAI,CAAC,eAAe,EACpB,YAAY,CACb,CAAC;QAEF,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,gBAAgB;QAChB,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,eAAe;YAAE,SAAS;QACnF,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,WAAW;YAAE,SAAS;QAE7E,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,eAAe,EAAE,MAAM,CAAC,QAAQ;YAChC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,MAAM,aAAa,GAA2B,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7F,IAAI,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-actionable-signals.js","sourceRoot":"","sources":["../../src/tools/get-actionable-signals.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-context.d.ts","sourceRoot":"","sources":["../../src/tools/get-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;CA2B1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,gBAAgB,GACvB,WAAW,CAKb"}
1
+ {"version":3,"file":"get-context.d.ts","sourceRoot":"","sources":["../../src/tools/get-context.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;CA2B1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,gBAAgB,GACvB,WAAW,CAKb"}
@@ -1,3 +1,4 @@
1
+ // SPDX-License-Identifier: FSL-1.1-Apache-2.0
1
2
  /**
2
3
  * get_context tool
3
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"get-context.js","sourceRoot":"","sources":["../../src/tools/get-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE;;;;;;;sEAOuD;IACpE,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,4EAA4E;gBAC9E,OAAO,EAAE,IAAI;aACd;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,4EAA4E;gBAC9E,OAAO,EAAE,IAAI;aACd;SACF;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAkB,EAClB,MAAwB;IAExB,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;IAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC;IAEtD,OAAO,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"get-context.js","sourceRoot":"","sources":["../../src/tools/get-context.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C;;;;GAIG;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE;;;;;;;sEAOuD;IACpE,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,4EAA4E;gBAC9E,OAAO,EAAE,IAAI;aACd;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,4EAA4E;gBAC9E,OAAO,EAAE,IAAI;aACd;SACF;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAkB,EAClB,MAAwB;IAExB,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;IAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC;IAEtD,OAAO,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AACvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-relevant-content.d.ts","sourceRoot":"","sources":["../../src/tools/get-relevant-content.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsClC,CAAC;AAEF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,wBAAwB,GAC/B,YAAY,EAAE,CAMhB"}
1
+ {"version":3,"file":"get-relevant-content.d.ts","sourceRoot":"","sources":["../../src/tools/get-relevant-content.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwClC,CAAC;AAEF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,wBAAwB,GAC/B,YAAY,EAAE,CAchB"}
@@ -1,3 +1,4 @@
1
+ // SPDX-License-Identifier: FSL-1.1-Apache-2.0
1
2
  /**
2
3
  * get_relevant_content tool
3
4
  *
@@ -17,6 +18,8 @@ Items are scored based on:
17
18
  - ACE-detected context (recent files, projects, git activity)
18
19
  - Learned preferences from past interactions
19
20
 
21
+ Each item includes necessity fields (necessity_score, necessity_reason, necessity_category, necessity_urgency) indicating how critical the item is — e.g., security vulnerabilities affecting your deps, breaking changes in your stack, or deprecation notices. These are populated from the full PASIFA analysis pipeline when available.
22
+
20
23
  Use this to find content relevant to the user's current context.`,
21
24
  inputSchema: {
22
25
  type: "object",
@@ -51,6 +54,14 @@ export function executeGetRelevantContent(db, params) {
51
54
  const minScore = Math.max(0, Math.min(1, params.min_score ?? 0.35));
52
55
  const limit = Math.max(1, Math.min(100, params.limit ?? 20));
53
56
  const sinceHours = Math.max(1, Math.min(168, params.since_hours ?? 24)); // Max 1 week
54
- return db.getRelevantContent(minScore, params.source_type, limit, sinceHours);
57
+ // Try requested window first, then expand progressively
58
+ let items = db.getRelevantContent(minScore, params.source_type, limit, sinceHours);
59
+ if (items.length === 0 && sinceHours < 168) {
60
+ items = db.getRelevantContent(minScore, params.source_type, limit, 168);
61
+ }
62
+ if (items.length === 0) {
63
+ items = db.getRelevantContent(0.0, params.source_type, limit, 720);
64
+ }
65
+ return items;
55
66
  }
56
67
  //# sourceMappingURL=get-relevant-content.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-relevant-content.js","sourceRoot":"","sources":["../../src/tools/get-relevant-content.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE;;;;;;;;;iEASkD;IAC/D,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kDAAkD;gBAC/D,OAAO,EAAE,IAAI;aACd;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,yFAAyF;gBAC3F,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC;aACxC;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0DAA0D;gBACvE,OAAO,EAAE,EAAE;aACZ;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gEAAgE;gBAC7E,OAAO,EAAE,EAAE;aACZ;SACF;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,EAAkB,EAClB,MAAgC;IAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa;IAEtF,OAAO,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"get-relevant-content.js","sourceRoot":"","sources":["../../src/tools/get-relevant-content.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C;;;;GAIG;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE;;;;;;;;;;;iEAWkD;IAC/D,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kDAAkD;gBAC/D,OAAO,EAAE,IAAI;aACd;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,yFAAyF;gBAC3F,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC;aACxC;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0DAA0D;gBACvE,OAAO,EAAE,EAAE;aACZ;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gEAAgE;gBAC7E,OAAO,EAAE,EAAE;aACZ;SACF;KACF;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,EAAkB,EAClB,MAAgC;IAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa;IAEtF,wDAAwD;IACxD,IAAI,KAAK,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACnF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;QAC3C,KAAK,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,GAAG,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,21 +1,15 @@
1
1
  /**
2
- * Tool exports for 4DA MCP Server
2
+ * Tool exports for 4DA MCP Server — 35 tools across 8 categories
3
3
  *
4
- * Core Tools:
5
- * - get_relevant_content: Query filtered content by relevance
6
- * - get_context: Get user's interests, tech stack, learned affinities
7
- * - explain_relevance: Understand why an item scored the way it did
8
- * - record_feedback: Teach 4DA what you like/dislike
9
- *
10
- * Superpower Tools:
11
- * - score_autopsy: Deep forensic analysis of relevance scores
12
- * - trend_analysis: Statistical patterns and anomaly detection
13
- * - daily_briefing: Executive summaries of discoveries
14
- * - context_analysis: Optimize your context for better relevance
15
- * - source_health: Diagnose source pipeline issues
16
- * - topic_connections: Build knowledge graphs from content
17
- * - config_validator: Validate configuration and detect issues
18
- * - get_actionable_signals: Classify items into actionable signal types with priority
4
+ * Core (4) — content feed, context, relevance, feedback
5
+ * Intelligence (9) — briefings, signals, autopsy, trends, topics, chains, shifts, attention
6
+ * Diagnostic (3) — source health, config validation, LLM status
7
+ * Knowledge & Health (4) — knowledge gaps, project health, reverse mentions, context export
8
+ * Decision Intelligence (3) — decision memory, tech radar, alignment checks
9
+ * Agent Autonomy (6) — persistent memory, session briefs, delegation scoring, agent feedback, pre-task briefing
10
+ * Developer DNA (1) — tech identity profile
11
+ * Intelligence Metabolism (3)— autophagy status, decision windows, compound advantage
12
+ * Trust & Preemption (2) — trust summary, preemption feed
19
13
  */
20
14
  export { getRelevantContentTool, executeGetRelevantContent, } from "./get-relevant-content.js";
21
15
  export { getContextTool, executeGetContext } from "./get-context.js";
@@ -47,4 +41,10 @@ export { developerDnaTool, executeDeveloperDna, } from "./developer-dna.js";
47
41
  export { autophagyStatusTool, executeAutophagyStatus, } from "./autophagy-status.js";
48
42
  export { decisionWindowsTool, executeDecisionWindows, } from "./decision-windows.js";
49
43
  export { compoundAdvantageTool, executeCompoundAdvantage, } from "./compound-advantage.js";
44
+ export { recordAgentFeedbackTool, executeRecordAgentFeedback, } from "./record-agent-feedback.js";
45
+ export { agentFeedbackStatsTool, executeGetAgentFeedbackStats, } from "./agent-feedback-stats.js";
46
+ export { whatShouldIKnowTool, executeWhatShouldIKnow, } from "./what-should-i-know.js";
47
+ export { trustSummaryTool, executeTrustSummary, } from "./trust-summary.js";
48
+ export { preemptionFeedTool, executePreemptionFeed, } from "./preemption-feed.js";
49
+ export { vulnerabilityScanTool, executeVulnerabilityScan, } from "./vulnerability-scan.js";
50
50
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,eAAe,EACf,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,16 @@
1
+ // SPDX-License-Identifier: FSL-1.1-Apache-2.0
1
2
  /**
2
- * Tool exports for 4DA MCP Server
3
+ * Tool exports for 4DA MCP Server — 35 tools across 8 categories
3
4
  *
4
- * Core Tools:
5
- * - get_relevant_content: Query filtered content by relevance
6
- * - get_context: Get user's interests, tech stack, learned affinities
7
- * - explain_relevance: Understand why an item scored the way it did
8
- * - record_feedback: Teach 4DA what you like/dislike
9
- *
10
- * Superpower Tools:
11
- * - score_autopsy: Deep forensic analysis of relevance scores
12
- * - trend_analysis: Statistical patterns and anomaly detection
13
- * - daily_briefing: Executive summaries of discoveries
14
- * - context_analysis: Optimize your context for better relevance
15
- * - source_health: Diagnose source pipeline issues
16
- * - topic_connections: Build knowledge graphs from content
17
- * - config_validator: Validate configuration and detect issues
18
- * - get_actionable_signals: Classify items into actionable signal types with priority
5
+ * Core (4) — content feed, context, relevance, feedback
6
+ * Intelligence (9) — briefings, signals, autopsy, trends, topics, chains, shifts, attention
7
+ * Diagnostic (3) — source health, config validation, LLM status
8
+ * Knowledge & Health (4) — knowledge gaps, project health, reverse mentions, context export
9
+ * Decision Intelligence (3) — decision memory, tech radar, alignment checks
10
+ * Agent Autonomy (6) — persistent memory, session briefs, delegation scoring, agent feedback, pre-task briefing
11
+ * Developer DNA (1) — tech identity profile
12
+ * Intelligence Metabolism (3)— autophagy status, decision windows, compound advantage
13
+ * Trust & Preemption (2) — trust summary, preemption feed
19
14
  */
20
15
  // Core Tools
21
16
  export { getRelevantContentTool, executeGetRelevantContent, } from "./get-relevant-content.js";
@@ -55,4 +50,14 @@ export { developerDnaTool, executeDeveloperDna, } from "./developer-dna.js";
55
50
  export { autophagyStatusTool, executeAutophagyStatus, } from "./autophagy-status.js";
56
51
  export { decisionWindowsTool, executeDecisionWindows, } from "./decision-windows.js";
57
52
  export { compoundAdvantageTool, executeCompoundAdvantage, } from "./compound-advantage.js";
53
+ // Agent Feedback Tools
54
+ export { recordAgentFeedbackTool, executeRecordAgentFeedback, } from "./record-agent-feedback.js";
55
+ export { agentFeedbackStatsTool, executeGetAgentFeedbackStats, } from "./agent-feedback-stats.js";
56
+ // Synthesis Tools
57
+ export { whatShouldIKnowTool, executeWhatShouldIKnow, } from "./what-should-i-know.js";
58
+ // Trust & Preemption Tools
59
+ export { trustSummaryTool, executeTrustSummary, } from "./trust-summary.js";
60
+ export { preemptionFeedTool, executePreemptionFeed, } from "./preemption-feed.js";
61
+ // Live Intelligence Tools
62
+ export { vulnerabilityScanTool, executeVulnerabilityScan, } from "./vulnerability-scan.js";
58
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,aAAa;AACb,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,mBAAmB;AACnB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,oBAAoB;AACpB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAErC,2BAA2B;AAC3B,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,8BAA8B;AAC9B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAEnC,uBAAuB;AACvB,OAAO,EACL,eAAe,EACf,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,gBAAgB;AAChB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,gCAAgC;AAChC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C;;;;;;;;;;;;GAYG;AAEH,aAAa;AACb,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,mBAAmB;AACnB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,oBAAoB;AACpB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAErC,2BAA2B;AAC3B,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,8BAA8B;AAC9B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAEnC,uBAAuB;AACvB,OAAO,EACL,eAAe,EACf,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,gBAAgB;AAChB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,gCAAgC;AAChC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,uBAAuB;AACvB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAEnC,kBAAkB;AAClB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,0BAA0B;AAC1B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC"}
@@ -7,6 +7,7 @@ import type { FourDADatabase } from "../db.js";
7
7
  import type { SourceItemBriefRow } from "../types.js";
8
8
  export interface KnowledgeGapsParams {
9
9
  min_severity?: string;
10
+ limit?: number;
10
11
  }
11
12
  export declare const knowledgeGapsTool: {
12
13
  name: string;
@@ -20,6 +21,11 @@ export declare const knowledgeGapsTool: {
20
21
  description: string;
21
22
  default: string;
22
23
  };
24
+ limit: {
25
+ type: string;
26
+ description: string;
27
+ default: number;
28
+ };
23
29
  };
24
30
  };
25
31
  };
@@ -37,10 +43,12 @@ export declare function executeKnowledgeGaps(db: FourDADatabase, params: Knowled
37
43
  summary: string;
38
44
  total_dependencies?: undefined;
39
45
  gaps_found?: undefined;
46
+ gaps_returned?: undefined;
40
47
  } | {
41
48
  gaps: KnowledgeGap[];
42
49
  total_dependencies: number;
43
50
  gaps_found: number;
51
+ gaps_returned: number;
44
52
  summary: string;
45
53
  };
46
54
  //# sourceMappingURL=knowledge-gaps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-gaps.d.ts","sourceRoot":"","sources":["../../src/tools/knowledge-gaps.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAA4B,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEhF,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAc7B,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,mBAAmB;;;;;;;;;;EAwE5B"}
1
+ {"version":3,"file":"knowledge-gaps.d.ts","sourceRoot":"","sources":["../../src/tools/knowledge-gaps.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAA4B,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAQhF,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;CAmB7B,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,mBAAmB;;;;;;;;;;;;EA8E5B"}
@@ -1,8 +1,14 @@
1
+ // SPDX-License-Identifier: FSL-1.1-Apache-2.0
1
2
  /**
2
3
  * knowledge_gaps tool
3
4
  *
4
5
  * Detect knowledge gaps - dependencies with relevant content you haven't engaged with.
5
6
  */
7
+ // Word-boundary matching prevents "cve" matching inside "achieve", "receiver", etc.
8
+ function hasWordBoundary(text, term) {
9
+ const regex = new RegExp(`\\b${term}\\b`, 'i');
10
+ return regex.test(text);
11
+ }
6
12
  export const knowledgeGapsTool = {
7
13
  name: "knowledge_gaps",
8
14
  description: `Detect knowledge gaps by cross-referencing your project dependencies with source items you haven't engaged with. Identifies things you should know about but might have missed.`,
@@ -15,6 +21,11 @@ export const knowledgeGapsTool = {
15
21
  description: "Minimum gap severity to include. Default: medium",
16
22
  default: "medium",
17
23
  },
24
+ limit: {
25
+ type: "number",
26
+ description: "Maximum gaps to return. Default: 15",
27
+ default: 15,
28
+ },
18
29
  },
19
30
  },
20
31
  };
@@ -22,7 +33,7 @@ export function executeKnowledgeGaps(db, params) {
22
33
  const rawDb = db.getRawDb();
23
34
  // Get all tracked dependencies
24
35
  const deps = rawDb
25
- .prepare("SELECT package_name, version, project_path, language FROM project_dependencies")
36
+ .prepare("SELECT package_name, version, project_path, language FROM project_dependencies LIMIT 100")
26
37
  .all();
27
38
  if (deps.length === 0) {
28
39
  return {
@@ -43,9 +54,9 @@ export function executeKnowledgeGaps(db, params) {
43
54
  .all(pattern, pattern);
44
55
  if (mentionedItems.length > 0) {
45
56
  // Check if any are security-related
46
- const hasSecurityMention = mentionedItems.some((item) => item.title?.toLowerCase().includes("cve") ||
47
- item.title?.toLowerCase().includes("security") ||
48
- item.title?.toLowerCase().includes("vulnerability"));
57
+ const hasSecurityMention = mentionedItems.some((item) => hasWordBoundary(item.title || "", "cve") ||
58
+ hasWordBoundary(item.title || "", "security") ||
59
+ hasWordBoundary(item.title || "", "vulnerability"));
49
60
  const severity = hasSecurityMention
50
61
  ? "critical"
51
62
  : mentionedItems.length >= 3
@@ -56,7 +67,10 @@ export function executeKnowledgeGaps(db, params) {
56
67
  version: dep.version,
57
68
  project_path: dep.project_path,
58
69
  language: dep.language,
59
- missed_items: mentionedItems,
70
+ missed_items: mentionedItems.map(item => ({
71
+ ...item,
72
+ title: item.title && item.title.length > 120 ? item.title.substring(0, 120) + "..." : item.title,
73
+ })),
60
74
  gap_severity: severity,
61
75
  missed_count: mentionedItems.length,
62
76
  });
@@ -66,11 +80,13 @@ export function executeKnowledgeGaps(db, params) {
66
80
  const severityOrder = { critical: 4, high: 3, medium: 2, low: 1 };
67
81
  const minLevel = severityOrder[params.min_severity || "medium"] || 2;
68
82
  const filtered = gaps.filter((g) => (severityOrder[g.gap_severity] || 0) >= minLevel);
83
+ const maxGaps = Math.min(Math.max(1, params.limit || 15), 50);
69
84
  return {
70
- gaps: filtered.sort((a, b) => (severityOrder[b.gap_severity] || 0) - (severityOrder[a.gap_severity] || 0)),
85
+ gaps: filtered.sort((a, b) => (severityOrder[b.gap_severity] || 0) - (severityOrder[a.gap_severity] || 0)).slice(0, maxGaps),
71
86
  total_dependencies: deps.length,
72
87
  gaps_found: filtered.length,
73
- summary: `${filtered.length} knowledge gaps across ${deps.length} tracked dependencies`,
88
+ gaps_returned: Math.min(filtered.length, maxGaps),
89
+ summary: `${filtered.length} knowledge gaps across ${deps.length} tracked dependencies (showing top ${Math.min(filtered.length, maxGaps)})`,
74
90
  };
75
91
  }
76
92
  //# sourceMappingURL=knowledge-gaps.js.map