@bridgetek/eveapps-pre82x-core 1.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.
Files changed (96) hide show
  1. package/README.md +138 -0
  2. package/data/build_matrix.json +226 -0
  3. package/data/commands.json +10755 -0
  4. package/data/feature_graph.json +4979 -0
  5. package/data/graphics.json +169 -0
  6. package/data/modules.json +331 -0
  7. package/data/registers.json +5163 -0
  8. package/data/samples.json +765 -0
  9. package/dist/context.d.ts +7 -0
  10. package/dist/context.js +32 -0
  11. package/dist/context.js.map +1 -0
  12. package/dist/index.d.ts +14 -0
  13. package/dist/index.js +15 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/lib/confidence.d.ts +6 -0
  16. package/dist/lib/confidence.js +18 -0
  17. package/dist/lib/confidence.js.map +1 -0
  18. package/dist/lib/eveSymbolAliases.d.ts +10 -0
  19. package/dist/lib/eveSymbolAliases.js +58 -0
  20. package/dist/lib/eveSymbolAliases.js.map +1 -0
  21. package/dist/lib/loadIndex.d.ts +26 -0
  22. package/dist/lib/loadIndex.js +33 -0
  23. package/dist/lib/loadIndex.js.map +1 -0
  24. package/dist/lib/moduleGraphicsLookup.d.ts +18 -0
  25. package/dist/lib/moduleGraphicsLookup.js +66 -0
  26. package/dist/lib/moduleGraphicsLookup.js.map +1 -0
  27. package/dist/lib/normalize.d.ts +3 -0
  28. package/dist/lib/normalize.js +21 -0
  29. package/dist/lib/normalize.js.map +1 -0
  30. package/dist/lib/rank.d.ts +6 -0
  31. package/dist/lib/rank.js +51 -0
  32. package/dist/lib/rank.js.map +1 -0
  33. package/dist/lib/registerVariants.d.ts +13 -0
  34. package/dist/lib/registerVariants.js +77 -0
  35. package/dist/lib/registerVariants.js.map +1 -0
  36. package/dist/lib/workspace.d.ts +4 -0
  37. package/dist/lib/workspace.js +5 -0
  38. package/dist/lib/workspace.js.map +1 -0
  39. package/dist/router/analyzeQuery.d.ts +9 -0
  40. package/dist/router/analyzeQuery.js +12 -0
  41. package/dist/router/analyzeQuery.js.map +1 -0
  42. package/dist/router/index.d.ts +5 -0
  43. package/dist/router/index.js +6 -0
  44. package/dist/router/index.js.map +1 -0
  45. package/dist/router/mergeResults.d.ts +2 -0
  46. package/dist/router/mergeResults.js +25 -0
  47. package/dist/router/mergeResults.js.map +1 -0
  48. package/dist/router/retrieveAnswer.d.ts +3 -0
  49. package/dist/router/retrieveAnswer.js +51 -0
  50. package/dist/router/retrieveAnswer.js.map +1 -0
  51. package/dist/router/routeQuery.d.ts +3 -0
  52. package/dist/router/routeQuery.js +33 -0
  53. package/dist/router/routeQuery.js.map +1 -0
  54. package/dist/router/types.d.ts +13 -0
  55. package/dist/router/types.js +2 -0
  56. package/dist/router/types.js.map +1 -0
  57. package/dist/search/searchCore.d.ts +3 -0
  58. package/dist/search/searchCore.js +103 -0
  59. package/dist/search/searchCore.js.map +1 -0
  60. package/dist/search/searchEveApps.d.ts +2 -0
  61. package/dist/search/searchEveApps.js +111 -0
  62. package/dist/search/searchEveApps.js.map +1 -0
  63. package/dist/search/searchSourceFiles.d.ts +7 -0
  64. package/dist/search/searchSourceFiles.js +71 -0
  65. package/dist/search/searchSourceFiles.js.map +1 -0
  66. package/dist/server.d.ts +1 -0
  67. package/dist/server.js +217 -0
  68. package/dist/server.js.map +1 -0
  69. package/dist/tools/explainEveSymbol.d.ts +84 -0
  70. package/dist/tools/explainEveSymbol.js +81 -0
  71. package/dist/tools/explainEveSymbol.js.map +1 -0
  72. package/dist/tools/findRelevantSample.d.ts +34 -0
  73. package/dist/tools/findRelevantSample.js +33 -0
  74. package/dist/tools/findRelevantSample.js.map +1 -0
  75. package/dist/tools/generateBuildCommand.d.ts +62 -0
  76. package/dist/tools/generateBuildCommand.js +103 -0
  77. package/dist/tools/generateBuildCommand.js.map +1 -0
  78. package/dist/tools/generateScreenScaffold.d.ts +34 -0
  79. package/dist/tools/generateScreenScaffold.js +118 -0
  80. package/dist/tools/generateScreenScaffold.js.map +1 -0
  81. package/dist/tools/lookupModuleGraphics.d.ts +29 -0
  82. package/dist/tools/lookupModuleGraphics.js +25 -0
  83. package/dist/tools/lookupModuleGraphics.js.map +1 -0
  84. package/dist/tools/readSourceFile.d.ts +15 -0
  85. package/dist/tools/readSourceFile.js +39 -0
  86. package/dist/tools/readSourceFile.js.map +1 -0
  87. package/dist/tools/traceFeatureToCommands.d.ts +38 -0
  88. package/dist/tools/traceFeatureToCommands.js +90 -0
  89. package/dist/tools/traceFeatureToCommands.js.map +1 -0
  90. package/dist/tools/validatePre820Code.d.ts +37 -0
  91. package/dist/tools/validatePre820Code.js +88 -0
  92. package/dist/tools/validatePre820Code.js.map +1 -0
  93. package/dist/types.d.ts +72 -0
  94. package/dist/types.js +2 -0
  95. package/dist/types.js.map +1 -0
  96. package/package.json +30 -0
@@ -0,0 +1,25 @@
1
+ import { clampConfidence } from "../lib/confidence.js";
2
+ export function mergeResults(coreResult, eveappsResult) {
3
+ const references = [...new Set([
4
+ ...(coreResult.references ?? []),
5
+ ...(eveappsResult.references ?? []),
6
+ ])];
7
+ const metadata = coreResult.metadata || eveappsResult.metadata
8
+ ? {
9
+ core: coreResult.metadata ?? null,
10
+ eveapps: eveappsResult.metadata ?? null,
11
+ }
12
+ : undefined;
13
+ return {
14
+ answer: {
15
+ message: "Combined PRE820 core and EveApps results.",
16
+ core: coreResult.answer,
17
+ eveapps: eveappsResult.answer,
18
+ },
19
+ confidence: clampConfidence(Math.max(coreResult.confidence ?? 0, eveappsResult.confidence ?? 0)),
20
+ source: "both",
21
+ references,
22
+ metadata,
23
+ };
24
+ }
25
+ //# sourceMappingURL=mergeResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeResults.js","sourceRoot":"","sources":["../../src/router/mergeResults.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,UAAU,YAAY,CACxB,UAA2B,EAC3B,aAA8B;IAE9B,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;YAC3B,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;YAChC,GAAG,CAAC,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;SACtC,CAAC,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ;QAC1D,CAAC,CAAC;YACE,IAAI,EAAE,UAAU,CAAC,QAAQ,IAAI,IAAI;YACjC,OAAO,EAAE,aAAa,CAAC,QAAQ,IAAI,IAAI;SAC1C;QACD,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO;QACH,MAAM,EAAE;YACJ,OAAO,EAAE,2CAA2C;YACpD,IAAI,EAAE,UAAU,CAAC,MAAM;YACvB,OAAO,EAAE,aAAa,CAAC,MAAM;SAChC;QACD,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAChC,UAAU,CAAC,UAAU,IAAI,CAAC,EAC1B,aAAa,CAAC,UAAU,IAAI,CAAC,CAChC,CAAC;QACF,MAAM,EAAE,MAAM;QACd,UAAU;QACV,QAAQ;KACX,CAAC;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { WorkspaceContext } from "../context.js";
2
+ import { RetrievalResult } from "./types.js";
3
+ export declare function retrieveAnswer(context: WorkspaceContext, query: string): Promise<RetrievalResult>;
@@ -0,0 +1,51 @@
1
+ import { analyzeQuery } from "./analyzeQuery.js";
2
+ import { routeQuery } from "./routeQuery.js";
3
+ import { mergeResults } from "./mergeResults.js";
4
+ import { searchCore } from "../search/searchCore.js";
5
+ import { searchEveApps } from "../search/searchEveApps.js";
6
+ import { loadGraphics, loadModules } from "../lib/loadIndex.js";
7
+ import { resolveModuleGraphics } from "../lib/moduleGraphicsLookup.js";
8
+ function lookupModuleGraphicsContext(query) {
9
+ const resolution = resolveModuleGraphics(query, loadModules(), loadGraphics());
10
+ return resolution ? { ...resolution } : undefined;
11
+ }
12
+ export async function retrieveAnswer(context, query) {
13
+ const coreResult = searchCore(context, query);
14
+ const moduleGraphicsContext = lookupModuleGraphicsContext(query);
15
+ const analysis = analyzeQuery(query);
16
+ const decision = routeQuery(query, analysis, coreResult?.confidence ?? 0, !!context.eveappsRoot);
17
+ switch (decision.source) {
18
+ case "core":
19
+ return {
20
+ answer: coreResult.answer,
21
+ confidence: coreResult.confidence,
22
+ source: "core",
23
+ references: coreResult.references,
24
+ metadata: moduleGraphicsContext,
25
+ };
26
+ case "eveapps": {
27
+ const eveappsResult = await searchEveApps(context.eveappsRoot, query);
28
+ return {
29
+ answer: eveappsResult.answer,
30
+ confidence: eveappsResult.confidence,
31
+ source: "eveapps",
32
+ references: eveappsResult.references,
33
+ metadata: moduleGraphicsContext,
34
+ };
35
+ }
36
+ case "both": {
37
+ const eveappsResult = await searchEveApps(context.eveappsRoot, query);
38
+ const merged = mergeResults(coreResult, eveappsResult);
39
+ if (moduleGraphicsContext) {
40
+ merged.metadata = {
41
+ ...(merged.metadata ?? {}),
42
+ moduleGraphics: moduleGraphicsContext,
43
+ };
44
+ }
45
+ return merged;
46
+ }
47
+ default:
48
+ return coreResult;
49
+ }
50
+ }
51
+ //# sourceMappingURL=retrieveAnswer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retrieveAnswer.js","sourceRoot":"","sources":["../../src/router/retrieveAnswer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,SAAS,2BAA2B,CAAC,KAAa;IAC9C,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAC/E,OAAO,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,OAAyB,EACzB,KAAa;IAEb,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,qBAAqB,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,UAAU,CACvB,KAAK,EACL,QAAQ,EACR,UAAU,EAAE,UAAU,IAAI,CAAC,EAC3B,CAAC,CAAC,OAAO,CAAC,WAAW,CACxB,CAAC;IAEF,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,MAAM;YACP,OAAO;gBACH,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,QAAQ,EAAE,qBAAqB;aAClC,CAAC;QAEN,KAAK,SAAS,CAAC,CAAC,CAAC;YACb,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,WAAY,EAAE,KAAK,CAAC,CAAC;YACvE,OAAO;gBACH,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,QAAQ,EAAE,qBAAqB;aAClC,CAAC;QACN,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,WAAY,EAAE,KAAK,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YACvD,IAAI,qBAAqB,EAAE,CAAC;gBACxB,MAAM,CAAC,QAAQ,GAAG;oBACd,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAC1B,cAAc,EAAE,qBAAqB;iBACxC,CAAC;YACN,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAED;YACI,OAAO,UAAU,CAAC;IAC1B,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { QueryAnalysis } from "./analyzeQuery.js";
2
+ import { RouteDecision } from "./types.js";
3
+ export declare function routeQuery(query: string, analysis: QueryAnalysis, coreScore: number, hasEveApps: boolean): RouteDecision;
@@ -0,0 +1,33 @@
1
+ export function routeQuery(query, analysis, coreScore, hasEveApps) {
2
+ // 1. Strong core match -> always use core
3
+ if (coreScore >= 0.75) {
4
+ return {
5
+ source: "core",
6
+ confidence: coreScore,
7
+ reason: "High confidence match in eveapps-pre82x-core index"
8
+ };
9
+ }
10
+ // 2. Structured engineering queries -> try both
11
+ if (analysis.isBuild || analysis.isSymbol || analysis.isScreen) {
12
+ return {
13
+ source: hasEveApps ? "both" : "core",
14
+ confidence: 0.6,
15
+ reason: "Structured engineering query"
16
+ };
17
+ }
18
+ // 3. Debug or unknown -> prefer EveApps if available
19
+ if (analysis.isDebug || analysis.isSample) {
20
+ return {
21
+ source: hasEveApps ? "eveapps" : "core",
22
+ confidence: 0.4,
23
+ reason: "Debug/sample query fallback"
24
+ };
25
+ }
26
+ // 4. Default fallback
27
+ return {
28
+ source: hasEveApps ? "eveapps" : "core",
29
+ confidence: 0.2,
30
+ reason: "Default fallback routing"
31
+ };
32
+ }
33
+ //# sourceMappingURL=routeQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routeQuery.js","sourceRoot":"","sources":["../../src/router/routeQuery.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,UAAU,CACtB,KAAa,EACb,QAAuB,EACvB,SAAiB,EACjB,UAAmB;IAGnB,0CAA0C;IAC1C,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO;YACH,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,oDAAoD;SAC/D,CAAC;IACN,CAAC;IAED,gDAAgD;IAChD,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC7D,OAAO;YACH,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACpC,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,8BAA8B;SACzC,CAAC;IACN,CAAC;IAED,qDAAqD;IACrD,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxC,OAAO;YACH,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;YACvC,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,6BAA6B;SACxC,CAAC;IACN,CAAC;IAED,sBAAsB;IACtB,OAAO;QACH,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;QACvC,UAAU,EAAE,GAAG;QACf,MAAM,EAAE,0BAA0B;KACrC,CAAC;AACN,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type RetrievalSource = "core" | "eveapps" | "both";
2
+ export interface RouteDecision {
3
+ source: RetrievalSource;
4
+ confidence: number;
5
+ reason: string;
6
+ }
7
+ export interface RetrievalResult {
8
+ answer: any;
9
+ confidence: number;
10
+ source: RetrievalSource;
11
+ references?: string[];
12
+ metadata?: Record<string, unknown>;
13
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { WorkspaceContext } from "../context.js";
2
+ import type { RetrievalResult } from "../router/types.js";
3
+ export declare function searchCore(context: WorkspaceContext, query: string): RetrievalResult;
@@ -0,0 +1,103 @@
1
+ import { loadCommands, loadRegisters } from "../lib/loadIndex.js";
2
+ import { expandEveSymbolAliases } from "../lib/eveSymbolAliases.js";
3
+ export function searchCore(context, query) {
4
+ try {
5
+ const commands = loadCommands();
6
+ const registers = loadRegisters();
7
+ const queryLower = query.toLowerCase();
8
+ const commandAliases = expandEveSymbolAliases(query, commands.map(command => command.name))
9
+ .map(alias => alias.toLowerCase());
10
+ // Try to find exact command/register matches
11
+ const matchedCommands = commands.filter(c => c.name.toLowerCase().includes(queryLower) ||
12
+ c.summary?.toLowerCase().includes(queryLower) ||
13
+ commandAliases.includes(c.name.toLowerCase())).slice(0, 5);
14
+ const matchedRegisters = registers.filter(r => r.name.toLowerCase().includes(queryLower) ||
15
+ r.summary?.toLowerCase().includes(queryLower)).slice(0, 5);
16
+ const hasMatches = matchedCommands.length > 0 || matchedRegisters.length > 0;
17
+ if (!hasMatches) {
18
+ return {
19
+ answer: {
20
+ message: `No PRE820/EVE core references found for: "${query}"`,
21
+ tip: "Try searching for specific command names, register names, or features"
22
+ },
23
+ confidence: 0,
24
+ source: "core",
25
+ references: []
26
+ };
27
+ }
28
+ const references = [];
29
+ if (matchedCommands.length > 0) {
30
+ references.push(`Commands: ${matchedCommands.map(c => c.name).join(", ")}`);
31
+ }
32
+ if (matchedRegisters.length > 0) {
33
+ references.push(`Registers: ${matchedRegisters.map(r => r.name).join(", ")}`);
34
+ }
35
+ // Assign confidence according to match quality:
36
+ // - exact name match: 1.0
37
+ // - alias match: 0.95
38
+ // - name contains query: 0.85
39
+ // - summary contains query: 0.6
40
+ // This allows routeQuery to prefer the core index for strong matches.
41
+ const scoreForCommand = (c) => {
42
+ const nameLower = c.name.toLowerCase();
43
+ if (nameLower === queryLower)
44
+ return 1.0;
45
+ if (commandAliases.includes(nameLower))
46
+ return 0.95;
47
+ if (nameLower.includes(queryLower))
48
+ return 0.85;
49
+ if (c.summary?.toLowerCase().includes(queryLower))
50
+ return 0.6;
51
+ return 0.5;
52
+ };
53
+ const registerAliases = expandEveSymbolAliases(query, registers.map(r => r.name)).map(a => a.toLowerCase());
54
+ const scoreForRegister = (r) => {
55
+ const nameLower = r.name.toLowerCase();
56
+ if (nameLower === queryLower)
57
+ return 1.0;
58
+ if (registerAliases.includes(nameLower))
59
+ return 0.95;
60
+ if (nameLower.includes(queryLower))
61
+ return 0.85;
62
+ if (r.summary?.toLowerCase().includes(queryLower))
63
+ return 0.6;
64
+ return 0.5;
65
+ };
66
+ const commandScores = matchedCommands.map(scoreForCommand);
67
+ const registerScores = matchedRegisters.map(scoreForRegister);
68
+ const bestScore = Math.max(0, ...(commandScores.length ? commandScores : [0]), ...(registerScores.length ? registerScores : [0]));
69
+ return {
70
+ answer: {
71
+ message: `Found ${matchedCommands.length} commands and ${matchedRegisters.length} registers for: "${query}"`,
72
+ commands: matchedCommands.map(c => ({
73
+ name: c.name,
74
+ type: "command",
75
+ signature: c.signature,
76
+ summary: c.summary,
77
+ related_samples: c.related_samples || [],
78
+ })),
79
+ registers: matchedRegisters.map(r => ({
80
+ name: r.name,
81
+ type: r.kind,
82
+ value: r.value ?? null,
83
+ variants: r.variants,
84
+ summary: r.summary,
85
+ }))
86
+ },
87
+ confidence: hasMatches ? bestScore : 0,
88
+ source: "core",
89
+ references
90
+ };
91
+ }
92
+ catch (err) {
93
+ return {
94
+ answer: {
95
+ error: `Error searching core data: ${err instanceof Error ? err.message : String(err)}`
96
+ },
97
+ confidence: 0,
98
+ source: "core",
99
+ references: []
100
+ };
101
+ }
102
+ }
103
+ //# sourceMappingURL=searchCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchCore.js","sourceRoot":"","sources":["../../src/search/searchCore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { RetrievalResult } from "../router/types.js";
2
+ export declare function searchEveApps(eveappsRoot: string, query: string): Promise<RetrievalResult>;
@@ -0,0 +1,111 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { loadSamples } from "../lib/loadIndex.js";
4
+ import { loadFeatureGraph } from "../lib/loadIndex.js";
5
+ import { rankSamples } from "../lib/rank.js";
6
+ import { rankingScoreToConfidence } from "../lib/confidence.js";
7
+ import { searchSourceFiles } from "./searchSourceFiles.js";
8
+ export async function searchEveApps(eveappsRoot, query) {
9
+ try {
10
+ // ------------------------------------
11
+ // 1. Metadata search
12
+ // ------------------------------------
13
+ const samples = loadSamples();
14
+ const featureGraph = loadFeatureGraph();
15
+ const ranked = rankSamples(query, samples, featureGraph)
16
+ .slice(0, 5)
17
+ .map(({ sample, score }) => {
18
+ const samplePath = path.join(eveappsRoot, sample.path);
19
+ return {
20
+ sample_id: sample.id,
21
+ name: sample.name,
22
+ path: sample.path,
23
+ full_path: samplePath,
24
+ exists: fs.existsSync(samplePath),
25
+ score,
26
+ summary: sample.summary,
27
+ commands_used: (sample.commands_used || []).slice(0, 10),
28
+ categories: sample.categories || [],
29
+ platform_notes: sample.platform_notes || []
30
+ };
31
+ });
32
+ // ------------------------------------
33
+ // 2. REAL source search
34
+ // ------------------------------------
35
+ const sourceMatches = searchSourceFiles(eveappsRoot, query);
36
+ // ------------------------------------
37
+ // 3. Combined confidence
38
+ // ------------------------------------
39
+ // Sample ranking scores are intentionally unbounded. Convert the top
40
+ // score to a 0-1 confidence while retaining each raw score above.
41
+ const metadataConfidence = rankingScoreToConfidence(ranked[0]?.score ?? 0);
42
+ const sourceConfidence = sourceMatches.length > 0 ? 0.8 : 0;
43
+ const confidence = Math.max(metadataConfidence, sourceConfidence);
44
+ // ------------------------------------
45
+ // 4. Nothing found
46
+ // ------------------------------------
47
+ if (ranked.length === 0 &&
48
+ sourceMatches.length === 0) {
49
+ return {
50
+ answer: {
51
+ message: `No relevant EveApps results found for: "${query}"`,
52
+ suggestions: [
53
+ "Try searching for exact PRE820 command names",
54
+ "Search for widget or sample names",
55
+ "Search for API symbols"
56
+ ]
57
+ },
58
+ confidence: 0,
59
+ source: "eveapps",
60
+ references: []
61
+ };
62
+ }
63
+ // ------------------------------------
64
+ // 5. Build references
65
+ // ------------------------------------
66
+ const references = [
67
+ ...ranked.map(r => `${r.name} (${r.path})`),
68
+ ...sourceMatches.map(r => r.relativePath)
69
+ ];
70
+ // ------------------------------------
71
+ // 6. Final merged result
72
+ // ------------------------------------
73
+ return {
74
+ answer: {
75
+ message: `Found EveApps results for: "${query}"`,
76
+ metadata_matches: ranked,
77
+ source_matches: sourceMatches.map(match => ({
78
+ file: match.relativePath,
79
+ matched_lines: match.matchedLines,
80
+ matched_symbols: match.matchedSymbols
81
+ })),
82
+ next_steps: [
83
+ ranked[0]
84
+ ? `Review sample: ${ranked[0].path}`
85
+ : undefined,
86
+ sourceMatches[0]
87
+ ? `Inspect source file: ${sourceMatches[0].relativePath}`
88
+ : undefined
89
+ ].filter(Boolean)
90
+ },
91
+ confidence,
92
+ source: "eveapps",
93
+ references
94
+ };
95
+ }
96
+ catch (err) {
97
+ return {
98
+ answer: {
99
+ error: `Error searching EveApps: ${err instanceof Error
100
+ ? err.message
101
+ : String(err)}`,
102
+ eveappsRoot,
103
+ tip: "Ensure --eveapps points to the EveApps repository root"
104
+ },
105
+ confidence: 0,
106
+ source: "eveapps",
107
+ references: []
108
+ };
109
+ }
110
+ }
111
+ //# sourceMappingURL=searchEveApps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchEveApps.js","sourceRoot":"","sources":["../../src/search/searchEveApps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface SourceFileMatch {
2
+ file: string;
3
+ relativePath: string;
4
+ matchedLines: string[];
5
+ matchedSymbols?: string[];
6
+ }
7
+ export declare function searchSourceFiles(eveappsRoot: string, query: string): SourceFileMatch[];
@@ -0,0 +1,71 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { expandEveSymbolAliases } from "../lib/eveSymbolAliases.js";
4
+ import { loadCommands } from "../lib/loadIndex.js";
5
+ const SOURCE_EXTENSIONS = [
6
+ ".c",
7
+ ".h",
8
+ ".txt",
9
+ ".md"
10
+ ];
11
+ function collectFiles(dir, out = []) {
12
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
13
+ for (const entry of entries) {
14
+ const fullPath = path.join(dir, entry.name);
15
+ if (entry.isDirectory()) {
16
+ collectFiles(fullPath, out);
17
+ continue;
18
+ }
19
+ const ext = path.extname(entry.name).toLowerCase();
20
+ if (SOURCE_EXTENSIONS.includes(ext)) {
21
+ out.push(fullPath);
22
+ }
23
+ }
24
+ return out;
25
+ }
26
+ export function searchSourceFiles(eveappsRoot, query) {
27
+ const files = collectFiles(eveappsRoot);
28
+ const gpuMacros = new Set();
29
+ for (const file of files) {
30
+ if (path.basename(file).toLowerCase() !== "eve_gpudefs.h")
31
+ continue;
32
+ try {
33
+ const text = fs.readFileSync(file, "utf-8");
34
+ for (const match of text.matchAll(/^\s*#\s*define\s+([A-Z][A-Z0-9_]*)\b/gm)) {
35
+ const macro = match[1];
36
+ if (macro)
37
+ gpuMacros.add(macro);
38
+ }
39
+ }
40
+ catch {
41
+ // Alias validation is optional when a header cannot be read.
42
+ }
43
+ }
44
+ const aliases = expandEveSymbolAliases(query, loadCommands().map(command => command.name), gpuMacros);
45
+ const searchTerms = [...new Set([query, ...aliases])]
46
+ .map(term => term.toLowerCase())
47
+ .filter(Boolean);
48
+ const results = [];
49
+ for (const file of files) {
50
+ try {
51
+ const text = fs.readFileSync(file, "utf-8");
52
+ const lines = text.split(/\r?\n/);
53
+ const matchedLines = lines
54
+ .filter(line => searchTerms.some(term => line.toLowerCase().includes(term)))
55
+ .slice(0, 5);
56
+ if (matchedLines.length > 0) {
57
+ results.push({
58
+ file,
59
+ relativePath: path.relative(eveappsRoot, file),
60
+ matchedLines,
61
+ matchedSymbols: aliases.filter(alias => matchedLines.some(line => line.toLowerCase().includes(alias.toLowerCase())))
62
+ });
63
+ }
64
+ }
65
+ catch {
66
+ // ignore unreadable files
67
+ }
68
+ }
69
+ return results.slice(0, 10);
70
+ }
71
+ //# sourceMappingURL=searchSourceFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchSourceFiles.js","sourceRoot":"","sources":["../../src/search/searchSourceFiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};