@4da/mcp-server 4.5.0 → 4.6.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.
Files changed (155) hide show
  1. package/README.md +61 -81
  2. package/dist/db.d.ts +12 -1
  3. package/dist/db.d.ts.map +1 -1
  4. package/dist/db.js +71 -8
  5. package/dist/db.js.map +1 -1
  6. package/dist/index.d.ts +9 -14
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +12 -17
  9. package/dist/index.js.map +1 -1
  10. package/dist/schema-registry.d.ts +4 -2
  11. package/dist/schema-registry.d.ts.map +1 -1
  12. package/dist/schema-registry.js +55 -235
  13. package/dist/schema-registry.js.map +1 -1
  14. package/dist/tool-dispatch.d.ts +1 -7
  15. package/dist/tool-dispatch.d.ts.map +1 -1
  16. package/dist/tool-dispatch.js +14 -48
  17. package/dist/tool-dispatch.js.map +1 -1
  18. package/dist/tools/index.d.ts +13 -42
  19. package/dist/tools/index.d.ts.map +1 -1
  20. package/dist/tools/index.js +18 -54
  21. package/dist/tools/index.js.map +1 -1
  22. package/dist/tools/what-should-i-know.d.ts +4 -12
  23. package/dist/tools/what-should-i-know.d.ts.map +1 -1
  24. package/dist/tools/what-should-i-know.js +11 -102
  25. package/dist/tools/what-should-i-know.js.map +1 -1
  26. package/package.json +2 -2
  27. package/dist/schemas/agent-feedback-stats.json +0 -14
  28. package/dist/schemas/agent-session-brief.json +0 -25
  29. package/dist/schemas/attention-report.json +0 -13
  30. package/dist/schemas/autophagy-status.json +0 -13
  31. package/dist/schemas/compound-advantage.json +0 -14
  32. package/dist/schemas/config-validator.json +0 -18
  33. package/dist/schemas/context-analysis.json +0 -25
  34. package/dist/schemas/daily-briefing.json +0 -34
  35. package/dist/schemas/decision-windows.json +0 -22
  36. package/dist/schemas/delegation-score.json +0 -18
  37. package/dist/schemas/explain-relevance.json +0 -19
  38. package/dist/schemas/export-context.json +0 -17
  39. package/dist/schemas/llm-status.json +0 -13
  40. package/dist/schemas/preemption-feed.json +0 -18
  41. package/dist/schemas/project-health.json +0 -13
  42. package/dist/schemas/record-agent-feedback.json +0 -28
  43. package/dist/schemas/reverse-mentions.json +0 -13
  44. package/dist/schemas/score-autopsy.json +0 -30
  45. package/dist/schemas/semantic-shifts.json +0 -17
  46. package/dist/schemas/signal-chains.json +0 -19
  47. package/dist/schemas/source-health.json +0 -17
  48. package/dist/schemas/tech-radar.json +0 -23
  49. package/dist/schemas/topic-connections.json +0 -34
  50. package/dist/schemas/trend-analysis.json +0 -29
  51. package/dist/schemas/trust-summary.json +0 -13
  52. package/dist/tools/agent-feedback-stats.d.ts +0 -30
  53. package/dist/tools/agent-feedback-stats.d.ts.map +0 -1
  54. package/dist/tools/agent-feedback-stats.js +0 -41
  55. package/dist/tools/agent-feedback-stats.js.map +0 -1
  56. package/dist/tools/agent-session-brief.d.ts +0 -44
  57. package/dist/tools/agent-session-brief.d.ts.map +0 -1
  58. package/dist/tools/agent-session-brief.js +0 -179
  59. package/dist/tools/agent-session-brief.js.map +0 -1
  60. package/dist/tools/attention-report.d.ts +0 -40
  61. package/dist/tools/attention-report.d.ts.map +0 -1
  62. package/dist/tools/attention-report.js +0 -73
  63. package/dist/tools/attention-report.js.map +0 -1
  64. package/dist/tools/autophagy-status.d.ts +0 -25
  65. package/dist/tools/autophagy-status.d.ts.map +0 -1
  66. package/dist/tools/autophagy-status.js +0 -56
  67. package/dist/tools/autophagy-status.js.map +0 -1
  68. package/dist/tools/compound-advantage.d.ts +0 -30
  69. package/dist/tools/compound-advantage.d.ts.map +0 -1
  70. package/dist/tools/compound-advantage.js +0 -133
  71. package/dist/tools/compound-advantage.js.map +0 -1
  72. package/dist/tools/config-validator.d.ts +0 -59
  73. package/dist/tools/config-validator.d.ts.map +0 -1
  74. package/dist/tools/config-validator.js +0 -417
  75. package/dist/tools/config-validator.js.map +0 -1
  76. package/dist/tools/context-analysis.d.ts +0 -108
  77. package/dist/tools/context-analysis.d.ts.map +0 -1
  78. package/dist/tools/context-analysis.js +0 -301
  79. package/dist/tools/context-analysis.js.map +0 -1
  80. package/dist/tools/daily-briefing.d.ts +0 -103
  81. package/dist/tools/daily-briefing.d.ts.map +0 -1
  82. package/dist/tools/daily-briefing.js +0 -294
  83. package/dist/tools/daily-briefing.js.map +0 -1
  84. package/dist/tools/decision-windows.d.ts +0 -37
  85. package/dist/tools/decision-windows.d.ts.map +0 -1
  86. package/dist/tools/decision-windows.js +0 -67
  87. package/dist/tools/decision-windows.js.map +0 -1
  88. package/dist/tools/delegation-score.d.ts +0 -34
  89. package/dist/tools/delegation-score.d.ts.map +0 -1
  90. package/dist/tools/delegation-score.js +0 -260
  91. package/dist/tools/delegation-score.js.map +0 -1
  92. package/dist/tools/explain-relevance.d.ts +0 -36
  93. package/dist/tools/explain-relevance.d.ts.map +0 -1
  94. package/dist/tools/explain-relevance.js +0 -51
  95. package/dist/tools/explain-relevance.js.map +0 -1
  96. package/dist/tools/export-context.d.ts +0 -60
  97. package/dist/tools/export-context.d.ts.map +0 -1
  98. package/dist/tools/export-context.js +0 -179
  99. package/dist/tools/export-context.js.map +0 -1
  100. package/dist/tools/llm-status.d.ts +0 -45
  101. package/dist/tools/llm-status.d.ts.map +0 -1
  102. package/dist/tools/llm-status.js +0 -93
  103. package/dist/tools/llm-status.js.map +0 -1
  104. package/dist/tools/muse-context.d.ts +0 -195
  105. package/dist/tools/muse-context.d.ts.map +0 -1
  106. package/dist/tools/muse-context.js +0 -284
  107. package/dist/tools/muse-context.js.map +0 -1
  108. package/dist/tools/preemption-feed.d.ts +0 -55
  109. package/dist/tools/preemption-feed.d.ts.map +0 -1
  110. package/dist/tools/preemption-feed.js +0 -124
  111. package/dist/tools/preemption-feed.js.map +0 -1
  112. package/dist/tools/project-health.d.ts +0 -53
  113. package/dist/tools/project-health.d.ts.map +0 -1
  114. package/dist/tools/project-health.js +0 -122
  115. package/dist/tools/project-health.js.map +0 -1
  116. package/dist/tools/record-agent-feedback.d.ts +0 -46
  117. package/dist/tools/record-agent-feedback.d.ts.map +0 -1
  118. package/dist/tools/record-agent-feedback.js +0 -71
  119. package/dist/tools/record-agent-feedback.js.map +0 -1
  120. package/dist/tools/reverse-mentions.d.ts +0 -38
  121. package/dist/tools/reverse-mentions.d.ts.map +0 -1
  122. package/dist/tools/reverse-mentions.js +0 -75
  123. package/dist/tools/reverse-mentions.js.map +0 -1
  124. package/dist/tools/score-autopsy.d.ts +0 -93
  125. package/dist/tools/score-autopsy.d.ts.map +0 -1
  126. package/dist/tools/score-autopsy.js +0 -295
  127. package/dist/tools/score-autopsy.js.map +0 -1
  128. package/dist/tools/semantic-shifts.d.ts +0 -53
  129. package/dist/tools/semantic-shifts.d.ts.map +0 -1
  130. package/dist/tools/semantic-shifts.js +0 -74
  131. package/dist/tools/semantic-shifts.js.map +0 -1
  132. package/dist/tools/signal-chains.d.ts +0 -52
  133. package/dist/tools/signal-chains.d.ts.map +0 -1
  134. package/dist/tools/signal-chains.js +0 -63
  135. package/dist/tools/signal-chains.js.map +0 -1
  136. package/dist/tools/source-health.d.ts +0 -64
  137. package/dist/tools/source-health.d.ts.map +0 -1
  138. package/dist/tools/source-health.js +0 -205
  139. package/dist/tools/source-health.js.map +0 -1
  140. package/dist/tools/tech-radar.d.ts +0 -38
  141. package/dist/tools/tech-radar.d.ts.map +0 -1
  142. package/dist/tools/tech-radar.js +0 -249
  143. package/dist/tools/tech-radar.js.map +0 -1
  144. package/dist/tools/topic-connections.d.ts +0 -112
  145. package/dist/tools/topic-connections.d.ts.map +0 -1
  146. package/dist/tools/topic-connections.js +0 -319
  147. package/dist/tools/topic-connections.js.map +0 -1
  148. package/dist/tools/trend-analysis.d.ts +0 -105
  149. package/dist/tools/trend-analysis.d.ts.map +0 -1
  150. package/dist/tools/trend-analysis.js +0 -296
  151. package/dist/tools/trend-analysis.js.map +0 -1
  152. package/dist/tools/trust-summary.d.ts +0 -38
  153. package/dist/tools/trust-summary.d.ts.map +0 -1
  154. package/dist/tools/trust-summary.js +0 -89
  155. package/dist/tools/trust-summary.js.map +0 -1
@@ -1,260 +0,0 @@
1
- // SPDX-License-Identifier: FSL-1.1-Apache-2.0
2
- /**
3
- * delegation_score tool
4
- *
5
- * AI-delegatability assessment. AI agents use this to self-assess:
6
- * "Should I proceed autonomously or ask the human?"
7
- *
8
- * Computes a composite score from pattern stability, security sensitivity,
9
- * decision density, and AI track record to produce a delegation recommendation.
10
- */
11
- // ============================================================================
12
- // Tool Definition
13
- // ============================================================================
14
- export const delegationScoreTool = {
15
- name: "delegation_score",
16
- description: "AI-delegatability assessment. Computes whether an AI agent should proceed autonomously, request review, collaborate in real-time, or defer to the human. Based on pattern stability, security sensitivity, decision density, and AI track record.",
17
- inputSchema: {
18
- type: "object",
19
- properties: {
20
- subject: {
21
- type: "string",
22
- description: "The technology, pattern, or topic to assess for delegation",
23
- },
24
- task_description: {
25
- type: "string",
26
- description: "Optional description of the task being considered for delegation",
27
- },
28
- },
29
- required: ["subject"],
30
- },
31
- };
32
- // ============================================================================
33
- // Factor Computation
34
- // ============================================================================
35
- function computePatternStability(rawDb, subject) {
36
- const subjectLower = subject.toLowerCase();
37
- const pattern = `%${subjectLower}%`;
38
- // Check tech_stack (highest confidence: user explicitly declared this)
39
- try {
40
- const techRows = rawDb
41
- .prepare(`SELECT technology FROM tech_stack WHERE LOWER(technology) LIKE ?`)
42
- .all(pattern);
43
- if (techRows.length > 0) {
44
- return { score: 0.9, reason: `Found in tech stack: ${techRows[0].technology}` };
45
- }
46
- }
47
- catch {
48
- // Table may not exist
49
- }
50
- // Check project_dependencies (good confidence: detected in projects)
51
- try {
52
- const depRows = rawDb
53
- .prepare(`SELECT package_name FROM project_dependencies WHERE LOWER(package_name) LIKE ?`)
54
- .all(pattern);
55
- if (depRows.length > 0) {
56
- return { score: 0.7, reason: `Found in project dependencies: ${depRows[0].package_name}` };
57
- }
58
- }
59
- catch {
60
- // Table may not exist
61
- }
62
- // Check detected_tech (moderate confidence: auto-detected)
63
- try {
64
- const dtRows = rawDb
65
- .prepare(`SELECT name FROM detected_tech WHERE LOWER(name) LIKE ?`)
66
- .all(pattern);
67
- if (dtRows.length > 0) {
68
- return { score: 0.4, reason: `Auto-detected tech: ${dtRows[0].name}` };
69
- }
70
- }
71
- catch {
72
- // Table may not exist
73
- }
74
- // Check if subject was explicitly rejected in any decision
75
- try {
76
- const decisions = rawDb
77
- .prepare(`SELECT id, alternatives_rejected FROM developer_decisions
78
- WHERE status = 'active'
79
- AND LOWER(alternatives_rejected) LIKE ?`)
80
- .all(pattern);
81
- if (decisions.length > 0) {
82
- return { score: 0.1, reason: `Subject was rejected in decision #${decisions[0].id}` };
83
- }
84
- }
85
- catch {
86
- // Table may not exist
87
- }
88
- return { score: 0.5, reason: "No prior pattern data found" };
89
- }
90
- function computeSecuritySensitivity(rawDb, subject) {
91
- const pattern = `%${subject.toLowerCase()}%`;
92
- try {
93
- // Count security-related source items for this subject in last 90 days
94
- const sinceDate = new Date(Date.now() - 90 * 24 * 60 * 60 * 1000).toISOString();
95
- const rows = rawDb
96
- .prepare(`SELECT COUNT(*) as cnt FROM source_items
97
- WHERE created_at > ?
98
- AND LOWER(title) LIKE ?
99
- AND (
100
- LOWER(title) LIKE '%security%'
101
- OR LOWER(title) LIKE '%vulnerability%'
102
- OR LOWER(title) LIKE '%cve%'
103
- OR LOWER(title) LIKE '%exploit%'
104
- OR LOWER(title) LIKE '%advisory%'
105
- )`)
106
- .get(sinceDate, pattern);
107
- const count = rows?.cnt || 0;
108
- if (count === 0) {
109
- return { score: 0.1, reason: "No security signals in last 90 days" };
110
- }
111
- else if (count <= 2) {
112
- return { score: 0.5, reason: `${count} security signal(s) in last 90 days` };
113
- }
114
- else {
115
- return { score: 0.9, reason: `${count} security signals in last 90 days — high sensitivity` };
116
- }
117
- }
118
- catch {
119
- return { score: 0.3, reason: "Unable to assess security signals" };
120
- }
121
- }
122
- function computeDecisionDensity(rawDb, subject) {
123
- const pattern = `%${subject.toLowerCase()}%`;
124
- try {
125
- const rows = rawDb
126
- .prepare(`SELECT COUNT(*) as cnt FROM developer_decisions
127
- WHERE status = 'active'
128
- AND (LOWER(subject) LIKE ? OR LOWER(context_tags) LIKE ?)`)
129
- .get(pattern, pattern);
130
- const count = rows?.cnt || 0;
131
- if (count === 0) {
132
- return { score: 0.1, reason: "No active decisions for this subject" };
133
- }
134
- else if (count === 1) {
135
- return { score: 0.3, reason: "1 active decision — some constraints exist" };
136
- }
137
- else if (count <= 3) {
138
- return { score: 0.6, reason: `${count} active decisions — moderate constraint density` };
139
- }
140
- else {
141
- return { score: 0.9, reason: `${count} active decisions — heavily constrained area` };
142
- }
143
- }
144
- catch {
145
- return { score: 0.3, reason: "Unable to assess decision density" };
146
- }
147
- }
148
- function computeAITrackRecord(rawDb, subject) {
149
- const pattern = `%${subject.toLowerCase()}%`;
150
- try {
151
- const rows = rawDb
152
- .prepare(`SELECT COUNT(*) as cnt FROM agent_memory
153
- WHERE memory_type = 'warning'
154
- AND (LOWER(subject) LIKE ? OR LOWER(content) LIKE ?)`)
155
- .get(pattern, pattern);
156
- const warningCount = rows?.cnt || 0;
157
- if (warningCount === 0) {
158
- return { score: 0.9, reason: "No prior warnings — clean track record" };
159
- }
160
- else if (warningCount === 1) {
161
- return { score: 0.6, reason: "1 prior warning — proceed with caution" };
162
- }
163
- else {
164
- return { score: 0.3, reason: `${warningCount} prior warnings — needs human oversight` };
165
- }
166
- }
167
- catch {
168
- return { score: 0.7, reason: "Unable to assess track record (no memory table)" };
169
- }
170
- }
171
- // ============================================================================
172
- // Execute
173
- // ============================================================================
174
- export function executeDelegationScore(db, params) {
175
- const rawDb = db.getRawDb();
176
- const subject = params.subject;
177
- if (!subject) {
178
- return {
179
- subject: "(none)",
180
- recommendation: "collaborate_realtime",
181
- confidence: 0,
182
- reasoning: "No subject provided — cannot assess delegatability without knowing what to delegate.",
183
- factors: {},
184
- };
185
- }
186
- // Compute factors
187
- const patternStability = computePatternStability(rawDb, subject);
188
- const securitySensitivity = computeSecuritySensitivity(rawDb, subject);
189
- const decisionDensity = computeDecisionDensity(rawDb, subject);
190
- const aiTrackRecord = computeAITrackRecord(rawDb, subject);
191
- // Composite score
192
- // Higher = more delegatable
193
- // pattern_stability: higher is better (known pattern)
194
- // security_sensitivity: INVERT (lower security risk = more delegatable)
195
- // decision_density: INVERT (fewer constraints = more delegatable)
196
- // ai_track_record: higher is better (fewer warnings)
197
- const composite = patternStability.score * 0.30 +
198
- (1 - securitySensitivity.score) * 0.25 +
199
- (1 - decisionDensity.score) * 0.25 +
200
- aiTrackRecord.score * 0.20;
201
- const overallScore = Math.max(0, Math.min(1, Math.round(composite * 100) / 100));
202
- // Map to recommendation
203
- let recommendation;
204
- if (overallScore >= 0.8) {
205
- recommendation = "fully_delegate";
206
- }
207
- else if (overallScore >= 0.5) {
208
- recommendation = "delegate_with_review";
209
- }
210
- else if (overallScore >= 0.3) {
211
- recommendation = "collaborate_realtime";
212
- }
213
- else {
214
- recommendation = "human_only";
215
- }
216
- // Build caveats
217
- const caveats = [];
218
- if (securitySensitivity.score >= 0.5) {
219
- caveats.push("Security signals detected — review security implications");
220
- }
221
- if (decisionDensity.score >= 0.6) {
222
- caveats.push("Multiple active decisions constrain this area — check alignment");
223
- }
224
- if (patternStability.score <= 0.3) {
225
- caveats.push("Subject was previously rejected or is unfamiliar — verify approach");
226
- }
227
- if (aiTrackRecord.score <= 0.5) {
228
- caveats.push("Prior warnings exist for this subject — exercise caution");
229
- }
230
- return {
231
- subject,
232
- task_description: params.task_description || null,
233
- overall_score: overallScore,
234
- factors: {
235
- pattern_stability: {
236
- score: patternStability.score,
237
- weight: 0.30,
238
- reason: patternStability.reason,
239
- },
240
- security_sensitivity: {
241
- score: securitySensitivity.score,
242
- weight: 0.25,
243
- reason: securitySensitivity.reason,
244
- },
245
- decision_density: {
246
- score: decisionDensity.score,
247
- weight: 0.25,
248
- reason: decisionDensity.reason,
249
- },
250
- ai_track_record: {
251
- score: aiTrackRecord.score,
252
- weight: 0.20,
253
- reason: aiTrackRecord.reason,
254
- },
255
- },
256
- recommendation,
257
- caveats,
258
- };
259
- }
260
- //# sourceMappingURL=delegation-score.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delegation-score.js","sourceRoot":"","sources":["../../src/tools/delegation-score.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- /**
2
- * explain_relevance tool
3
- *
4
- * Explain why an item was considered relevant.
5
- */
6
- import type { FourDADatabase } from "../db.js";
7
- import type { ExplainRelevanceParams, RelevanceExplanation } from "../types.js";
8
- /**
9
- * Tool definition for MCP registration
10
- */
11
- export declare const explainRelevanceTool: {
12
- name: string;
13
- description: string;
14
- inputSchema: {
15
- type: "object";
16
- properties: {
17
- item_id: {
18
- type: string;
19
- description: string;
20
- };
21
- source_type: {
22
- type: string;
23
- description: string;
24
- enum: string[];
25
- };
26
- };
27
- required: string[];
28
- };
29
- };
30
- /**
31
- * Execute the explain_relevance tool
32
- */
33
- export declare function executeExplainRelevance(db: FourDADatabase, params: ExplainRelevanceParams): RelevanceExplanation | {
34
- error: string;
35
- };
36
- //# sourceMappingURL=explain-relevance.d.ts.map
@@ -1 +0,0 @@
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,51 +0,0 @@
1
- // SPDX-License-Identifier: FSL-1.1-Apache-2.0
2
- /**
3
- * explain_relevance tool
4
- *
5
- * Explain why an item was considered relevant.
6
- */
7
- /**
8
- * Tool definition for MCP registration
9
- */
10
- export const explainRelevanceTool = {
11
- name: "explain_relevance",
12
- description: `Explain why a content item was considered relevant.
13
-
14
- Provides a detailed breakdown of:
15
- - Score components (static match, ACE context, learned preferences, penalties)
16
- - Matching context elements (interests, tech, topics, affinities)
17
- - Human-readable explanation
18
-
19
- Use this to understand how 4DA scored a particular item.`,
20
- inputSchema: {
21
- type: "object",
22
- properties: {
23
- item_id: {
24
- type: "number",
25
- description: "The database ID of the item to explain",
26
- },
27
- source_type: {
28
- type: "string",
29
- description: 'The source type: "hackernews", "arxiv", or "reddit"',
30
- enum: ["hackernews", "arxiv", "reddit"],
31
- },
32
- },
33
- required: ["item_id", "source_type"],
34
- },
35
- };
36
- /**
37
- * Execute the explain_relevance tool
38
- */
39
- export function executeExplainRelevance(db, params) {
40
- if (!params.item_id || !params.source_type) {
41
- return { error: "item_id and source_type are required" };
42
- }
43
- const explanation = db.explainRelevance(params.item_id, params.source_type);
44
- if (!explanation) {
45
- return {
46
- error: `Item ${params.item_id} of type ${params.source_type} not found`,
47
- };
48
- }
49
- return explanation;
50
- }
51
- //# sourceMappingURL=explain-relevance.js.map
@@ -1 +0,0 @@
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"}
@@ -1,60 +0,0 @@
1
- /**
2
- * export_context_packet tool
3
- *
4
- * Generate a context packet for handoff to another session or AI agent.
5
- */
6
- import type { FourDADatabase } from "../db.js";
7
- import type { SourceItemMinimalRow, SavedItemRow } from "../types.js";
8
- export interface ExportContextParams {
9
- include_signals?: boolean;
10
- include_saved?: boolean;
11
- }
12
- export declare const exportContextPacketTool: {
13
- name: string;
14
- description: string;
15
- inputSchema: {
16
- type: "object";
17
- properties: {
18
- include_signals: {
19
- type: string;
20
- description: string;
21
- default: boolean;
22
- };
23
- include_saved: {
24
- type: string;
25
- description: string;
26
- default: boolean;
27
- };
28
- };
29
- };
30
- };
31
- export interface OpenSignal {
32
- id: number;
33
- title: string;
34
- signal_type: string;
35
- priority: string;
36
- source_type: string;
37
- }
38
- export declare function executeExportContextPacket(db: FourDADatabase, params: ExportContextParams): {
39
- generated_at: string;
40
- version: string;
41
- active_context: {
42
- detected_tech: string[];
43
- active_topics: string[];
44
- interests: string[];
45
- exclusions: string[];
46
- };
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;
58
- summary: string;
59
- };
60
- //# sourceMappingURL=export-context.d.ts.map
@@ -1 +0,0 @@
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;;;;;;;;;;;;uBAoGV,MAAM,GAAG,IAAI;yBACX,MAAM,GAAG,IAAI;4BACV,MAAM;6BACL,MAAM;;;gCAoCH,MAAM;;;EAgCjC"}
@@ -1,179 +0,0 @@
1
- // SPDX-License-Identifier: FSL-1.1-Apache-2.0
2
- /**
3
- * export_context_packet tool
4
- *
5
- * Generate a context packet for handoff to another session or AI agent.
6
- */
7
- export const exportContextPacketTool = {
8
- name: "export_context_packet",
9
- description: `Generate a portable context packet capturing current work state, open signals, saved items, and active context. Use this to hand off context to another session or AI agent.`,
10
- inputSchema: {
11
- type: "object",
12
- properties: {
13
- include_signals: {
14
- type: "boolean",
15
- description: "Include open signals. Default: true",
16
- default: true,
17
- },
18
- include_saved: {
19
- type: "boolean",
20
- description: "Include saved items. Default: true",
21
- default: true,
22
- },
23
- },
24
- },
25
- };
26
- export function executeExportContextPacket(db, params) {
27
- const rawDb = db.getRawDb();
28
- const includeSignals = params.include_signals ?? true;
29
- const includeSaved = params.include_saved ?? true;
30
- // Get interests
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
- }
47
- const interestTopics = interests.map((r) => r.topic);
48
- // Get exclusions
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
- }
58
- const exclusions = exclusionRows.map((r) => r.topic);
59
- // Get detected tech from ACE
60
- let detectedTechRows = [];
61
- try {
62
- detectedTechRows = rawDb
63
- .prepare("SELECT DISTINCT name FROM detected_tech ORDER BY confidence DESC LIMIT 15")
64
- .all();
65
- }
66
- catch {
67
- // detected_tech table may not exist
68
- }
69
- const detectedTech = detectedTechRows.map((r) => r.name);
70
- // Get active topics
71
- let activeTopicRows = [];
72
- try {
73
- activeTopicRows = rawDb
74
- .prepare("SELECT DISTINCT topic FROM active_topics ORDER BY last_seen DESC LIMIT 10")
75
- .all();
76
- }
77
- catch {
78
- // active_topics table may not exist
79
- }
80
- const activeTopics = activeTopicRows.map((r) => r.topic);
81
- // Get open signals from temporal events (signals are computed at runtime, not stored in source_items)
82
- let openSignals = [];
83
- if (includeSignals) {
84
- try {
85
- openSignals = rawDb
86
- .prepare(`SELECT id, subject as title, data, created_at
87
- FROM temporal_events
88
- WHERE event_type = 'signal_emitted'
89
- ORDER BY created_at DESC LIMIT 20`)
90
- .all()
91
- .map((row) => {
92
- const data = JSON.parse(row.data || '{}');
93
- return {
94
- id: row.id,
95
- title: row.title,
96
- signal_type: data.signal_type || 'unknown',
97
- priority: data.priority || 'medium',
98
- source_type: data.source_type || 'unknown',
99
- };
100
- });
101
- }
102
- catch {
103
- // temporal_events may not have signal data yet
104
- openSignals = rawDb
105
- .prepare(`SELECT id, title, url, source_type
106
- FROM source_items
107
- ORDER BY created_at DESC LIMIT 20`)
108
- .all();
109
- }
110
- }
111
- // Get saved items
112
- let savedItems = [];
113
- if (includeSaved) {
114
- savedItems = rawDb
115
- .prepare(`SELECT si.id, si.title, si.url, si.source_type, i.timestamp as saved_at
116
- FROM interactions i
117
- JOIN source_items si ON i.source_item_id = si.id
118
- WHERE i.action = 'save'
119
- ORDER BY i.timestamp DESC LIMIT 20`)
120
- .all();
121
- }
122
- // Trust metrics
123
- let trustMetrics = null;
124
- try {
125
- const trustCounts = rawDb
126
- .prepare(`SELECT event_type, COUNT(*) as cnt
127
- FROM trust_events
128
- WHERE created_at >= datetime('now', '-30 days')
129
- GROUP BY event_type`)
130
- .all();
131
- const getCount = (t) => trustCounts.find((c) => c.event_type === t)?.cnt ?? 0;
132
- const surfaced = getCount("surfaced");
133
- const acted = getCount("acted_on");
134
- const fp = getCount("false_positive");
135
- const validated = getCount("validated");
136
- const tp = acted + validated;
137
- trustMetrics = {
138
- precision_30d: tp + fp > 0 ? Math.round((tp / (tp + fp)) * 100) / 100 : null,
139
- action_rate_30d: surfaced > 0
140
- ? Math.round((acted / surfaced) * 100) / 100
141
- : null,
142
- total_surfaced_30d: surfaced,
143
- false_positives_30d: fp,
144
- };
145
- }
146
- catch {
147
- /* trust tables may not exist yet */
148
- }
149
- // Recent preemption alerts count
150
- let preemptionSummary = null;
151
- try {
152
- const alertCount = rawDb
153
- .prepare(`SELECT COUNT(*) as cnt FROM dependency_alerts
154
- WHERE created_at >= datetime('now', '-7 days') AND severity IN ('critical', 'high')`)
155
- .get();
156
- preemptionSummary = {
157
- active_critical_alerts: alertCount?.cnt ?? 0,
158
- };
159
- }
160
- catch {
161
- /* table may not exist */
162
- }
163
- return {
164
- generated_at: new Date().toISOString(),
165
- version: "1.1.0",
166
- active_context: {
167
- detected_tech: detectedTech,
168
- active_topics: activeTopics,
169
- interests: interestTopics,
170
- exclusions,
171
- },
172
- open_signals: openSignals,
173
- saved_items: savedItems,
174
- trust_metrics: trustMetrics,
175
- preemption_summary: preemptionSummary,
176
- summary: `${interestTopics.length} interests, ${detectedTech.length} detected tech, ${openSignals.length} open signals, ${savedItems.length} saved items`,
177
- };
178
- }
179
- //# sourceMappingURL=export-context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"export-context.js","sourceRoot":"","sources":["../../src/tools/export-context.ts"],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- /**
2
- * LLM Status Tool
3
- *
4
- * Check the status of the LLM configuration and Ollama availability.
5
- * Helps diagnose why AI synthesis might not be working.
6
- */
7
- import type { FourDADatabase } from "../db.js";
8
- export declare const llmStatusTool: {
9
- name: string;
10
- description: string;
11
- inputSchema: {
12
- type: string;
13
- properties: {
14
- check_ollama: {
15
- type: string;
16
- description: string;
17
- };
18
- };
19
- };
20
- };
21
- export interface LLMStatusParams {
22
- check_ollama?: boolean;
23
- }
24
- interface LLMStatusResult {
25
- provider: string | null;
26
- can_synthesize: boolean;
27
- config: {
28
- model: string | null;
29
- model_light: string | null;
30
- model_heavy: string | null;
31
- ollama_url: string | null;
32
- };
33
- ollama?: {
34
- available: boolean;
35
- models: string[];
36
- has_recommended: boolean;
37
- missing_models: string[];
38
- error?: string;
39
- };
40
- recommendations: string[];
41
- setup_commands?: string[];
42
- }
43
- export declare function executeLLMStatus(db: FourDADatabase, params: LLMStatusParams): Promise<LLMStatusResult>;
44
- export {};
45
- //# sourceMappingURL=llm-status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm-status.d.ts","sourceRoot":"","sources":["../../src/tools/llm-status.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAS/C,eAAO,MAAM,aAAa;;;;;;;;;;;;CAoBzB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAC;IACF,MAAM,CAAC,EAAE;QACP,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,eAAe,EAAE,OAAO,CAAC;QACzB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,eAAe,CAAC,CAsE1B"}