@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,34 @@
1
+ import { z } from "zod";
2
+ export declare const generateScreenScaffoldInput: z.ZodObject<{
3
+ screen_type: z.ZodString;
4
+ controls: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
5
+ touch: z.ZodDefault<z.ZodBoolean>;
6
+ platform: z.ZodOptional<z.ZodString>;
7
+ style: z.ZodDefault<z.ZodString>;
8
+ flash: z.ZodDefault<z.ZodBoolean>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ screen_type: string;
11
+ controls: string[];
12
+ touch: boolean;
13
+ style: string;
14
+ flash: boolean;
15
+ platform?: string | undefined;
16
+ }, {
17
+ screen_type: string;
18
+ platform?: string | undefined;
19
+ controls?: string[] | undefined;
20
+ touch?: boolean | undefined;
21
+ style?: string | undefined;
22
+ flash?: boolean | undefined;
23
+ }>;
24
+ export type GenerateScreenScaffoldInput = z.infer<typeof generateScreenScaffoldInput>;
25
+ export declare function generateScreenScaffold(args: GenerateScreenScaffoldInput): {
26
+ complete: boolean;
27
+ authoritative: boolean;
28
+ based_on_sample: string;
29
+ files: {
30
+ path: string;
31
+ content: string;
32
+ }[];
33
+ notes: string[];
34
+ };
@@ -0,0 +1,118 @@
1
+ import { z } from "zod";
2
+ export const generateScreenScaffoldInput = z.object({
3
+ screen_type: z.string().trim().min(1).max(80),
4
+ controls: z.array(z.string().trim().min(1).max(120)).max(50).default([]),
5
+ touch: z.boolean().default(true),
6
+ platform: z.string().trim().min(1).max(80).optional(),
7
+ style: z.string().trim().min(1).max(40).default("repo-native-c"),
8
+ flash: z.boolean().default(false),
9
+ });
10
+ function toCIdentifier(value) {
11
+ const identifier = value
12
+ .normalize("NFKD")
13
+ .replace(/[\u0300-\u036f]/g, "")
14
+ .replace(/[^A-Za-z0-9_]+/g, "_")
15
+ .replace(/_+/g, "_")
16
+ .replace(/^_+|_+$/g, "")
17
+ .toLowerCase();
18
+ if (!identifier)
19
+ return "screen";
20
+ return /^[A-Za-z_]/.test(identifier) ? identifier : `_${identifier}`;
21
+ }
22
+ function escapeCString(value) {
23
+ return [...value].map((character) => {
24
+ switch (character) {
25
+ case "\\": return "\\\\";
26
+ case "\"": return "\\\"";
27
+ case "\n": return "\\n";
28
+ case "\r": return "\\r";
29
+ case "\t": return "\\t";
30
+ default: {
31
+ const codePoint = character.codePointAt(0);
32
+ if (codePoint < 0x20 || codePoint === 0x7f) {
33
+ return `\\${codePoint.toString(8).padStart(3, "0")}`;
34
+ }
35
+ return character;
36
+ }
37
+ }
38
+ }).join("");
39
+ }
40
+ function sanitizeCComment(value) {
41
+ return value
42
+ .replace(/[\r\n\t]+/g, " ")
43
+ .replace(/[\u0000-\u001f\u007f]/g, " ")
44
+ .replace(/\/\*/g, "/ *")
45
+ .replace(/\*\//g, "* /")
46
+ .replace(/\s+/g, " ")
47
+ .trim();
48
+ }
49
+ export function generateScreenScaffold(args) {
50
+ // Keep direct programmatic calls safe even when they bypass Zod parsing.
51
+ const screenTitle = (args.screen_type.trim() || "Screen").slice(0, 80);
52
+ const functionName = `${toCIdentifier(screenTitle)}_screen_draw`;
53
+ const controls = args.controls.slice(0, 50).map(control => sanitizeCComment(control.slice(0, 120)));
54
+ const includes = `#include "Common.h"
55
+ #include "Platform.h"
56
+ #include "EVE_CoCmd.h"`;
57
+ const flashInitialization = args.flash
58
+ ? `Flash_Init(s_pHalContext, TEST_DIR "/Flash/BT81X_Flash.bin", "BT81X_Flash.bin");
59
+
60
+ if (!FlashHelper_SwitchFullMode(s_pHalContext))
61
+ {
62
+ APP_ERR("Flash is not able to switch full mode");
63
+ return;
64
+ }`
65
+ : "/* Flash initialization omitted because flash support is disabled. */";
66
+ const content = `${includes}
67
+
68
+ void ${functionName}(EVE_HalContext* phost) {
69
+ /* Initialize display */
70
+ s_pHalContext = &s_halContext;
71
+ Gpu_Init(s_pHalContext);
72
+
73
+ // read and store calibration setting
74
+ #if !defined(BT8XXEMU_PLATFORM) && GET_CALIBRATION == 1
75
+ Esd_Calibrate(s_pHalContext);
76
+ Calibration_Save(s_pHalContext);
77
+ #endif
78
+
79
+ ${flashInitialization}
80
+ EVE_Util_clearScreen(s_pHalContext);
81
+
82
+ Display_Start(s_pHalContext);
83
+ /* Title */
84
+ EVE_CoCmd_text(s_pHalContext, 40, 30, 30, 0, "${escapeCString(screenTitle)}");
85
+ Display_End(s_pHalContext);
86
+
87
+ /* Controls */
88
+ ${controls.map((control, i) => `/* TODO: control ${i + 1}: ${control} */`).join("\n ")}
89
+
90
+ ${args.touch ? "/* TODO: assign TAG values and handle touch routing */" : ""}
91
+
92
+ EVE_Util_clearScreen(s_pHalContext);
93
+ Gpu_Release(s_pHalContext);
94
+ }
95
+ `;
96
+ return {
97
+ complete: false,
98
+ authoritative: false,
99
+ based_on_sample: "to-be-selected-by-findRelevantSample",
100
+ files: [
101
+ {
102
+ path: `generated/${functionName}.c`,
103
+ content,
104
+ },
105
+ ],
106
+ notes: [
107
+ "Partial scaffold that must be integrated and compiled in the target EveApps project",
108
+ args.flash
109
+ ? "Flash initialization is enabled"
110
+ : "Flash initialization is disabled",
111
+ "Add generated controls inside the Display_Start/Display_End frame flow",
112
+ "Confirm s_pHalContext and s_halContext are declared by the target application",
113
+ "Review platform-specific initialization before using this scaffold",
114
+ "Use the nearest widget/touch sample as the implementation reference",
115
+ ],
116
+ };
117
+ }
118
+ //# sourceMappingURL=generateScreenScaffold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateScreenScaffold.js","sourceRoot":"","sources":["../../src/tools/generateScreenScaffold.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ export declare const lookupModuleGraphicsInput: z.ZodObject<{
3
+ module: z.ZodString;
4
+ }, "strip", z.ZodTypeAny, {
5
+ module: string;
6
+ }, {
7
+ module: string;
8
+ }>;
9
+ export type LookupModuleGraphicsInput = z.infer<typeof lookupModuleGraphicsInput>;
10
+ export declare function lookupModuleGraphics(args: LookupModuleGraphicsInput): {
11
+ found: boolean;
12
+ module: string;
13
+ message: string;
14
+ availableGraphics: string[];
15
+ } | {
16
+ query: string;
17
+ matchType: "module" | "graphics";
18
+ module: string | null;
19
+ graphic: string;
20
+ moduleDetails: import("../types.js").ModuleIndexItem | null;
21
+ matchingModules: import("../lib/moduleGraphicsLookup.js").ModuleGraphicsMatch[];
22
+ graphicsDetails: import("../types.js").GraphicsIndexItem | null;
23
+ graphicsFamily: string | null;
24
+ graphicsFeatures: string[];
25
+ found: boolean;
26
+ requested: string;
27
+ message?: undefined;
28
+ availableGraphics?: undefined;
29
+ };
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ import { loadGraphics, loadModules } from "../lib/loadIndex.js";
3
+ import { resolveModuleGraphics } from "../lib/moduleGraphicsLookup.js";
4
+ export const lookupModuleGraphicsInput = z.object({
5
+ module: z.string().min(1).describe("Module product code or graphics chip name, for example ME817EV, EVE_GRAPHICS_ME817EV, or BT817"),
6
+ });
7
+ export function lookupModuleGraphics(args) {
8
+ const modules = loadModules();
9
+ const graphics = loadGraphics();
10
+ const resolution = resolveModuleGraphics(args.module, modules, graphics);
11
+ if (!resolution) {
12
+ return {
13
+ found: false,
14
+ module: args.module,
15
+ message: "No matching module product code or graphics chip found in the local indexes.",
16
+ availableGraphics: Object.keys(graphics),
17
+ };
18
+ }
19
+ return {
20
+ found: true,
21
+ requested: args.module,
22
+ ...resolution,
23
+ };
24
+ }
25
+ //# sourceMappingURL=lookupModuleGraphics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookupModuleGraphics.js","sourceRoot":"","sources":["../../src/tools/lookupModuleGraphics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC9B,gGAAgG,CACnG;CACJ,CAAC,CAAC;AAIH,MAAM,UAAU,oBAAoB,CAAC,IAA+B;IAChE,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEzE,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO;YACH,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,8EAA8E;YACvF,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3C,CAAC;IACN,CAAC;IAED,OAAO;QACH,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI,CAAC,MAAM;QACtB,GAAG,UAAU;KAChB,CAAC;AACN,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from "zod";
2
+ import type { WorkspaceContext } from "../context.js";
3
+ export declare const readSourceFileInput: z.ZodObject<{
4
+ relative_path: z.ZodString;
5
+ }, "strip", z.ZodTypeAny, {
6
+ relative_path: string;
7
+ }, {
8
+ relative_path: string;
9
+ }>;
10
+ export type ReadSourceFileInput = z.infer<typeof readSourceFileInput>;
11
+ export declare function readSourceFile(args: ReadSourceFileInput, context: WorkspaceContext): {
12
+ path: string;
13
+ size_bytes: number;
14
+ content: string;
15
+ };
@@ -0,0 +1,39 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { z } from "zod";
4
+ export const readSourceFileInput = z.object({
5
+ relative_path: z
6
+ .string()
7
+ .trim()
8
+ .min(1)
9
+ .max(4096)
10
+ .describe("Path to a source file under the local EveApps repo, for example: SampleApp/Widget/Src/Widget.c"),
11
+ });
12
+ export function readSourceFile(args, context) {
13
+ const repoRoot = path.resolve(context.eveappsRoot ?? process.cwd());
14
+ const fullPath = path.resolve(repoRoot, args.relative_path);
15
+ const lexicalRelativePath = path.relative(repoRoot, fullPath);
16
+ if (lexicalRelativePath === ".." ||
17
+ lexicalRelativePath.startsWith(`..${path.sep}`) ||
18
+ path.isAbsolute(lexicalRelativePath)) {
19
+ throw new Error("relative_path must stay inside the local EveApps repository root.");
20
+ }
21
+ if (!fs.existsSync(fullPath) || !fs.statSync(fullPath).isFile()) {
22
+ throw new Error(`File not found: ${args.relative_path}`);
23
+ }
24
+ const realRepoRoot = fs.realpathSync(repoRoot);
25
+ const realFullPath = fs.realpathSync(fullPath);
26
+ const realRelativePath = path.relative(realRepoRoot, realFullPath);
27
+ if (realRelativePath === ".." ||
28
+ realRelativePath.startsWith(`..${path.sep}`) ||
29
+ path.isAbsolute(realRelativePath)) {
30
+ throw new Error("relative_path resolves outside the local EveApps repository root.");
31
+ }
32
+ const fileStat = fs.statSync(realFullPath);
33
+ return {
34
+ path: lexicalRelativePath.split(path.sep).join("/"),
35
+ size_bytes: fileStat.size,
36
+ content: fs.readFileSync(realFullPath, "utf-8"),
37
+ };
38
+ }
39
+ //# sourceMappingURL=readSourceFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readSourceFile.js","sourceRoot":"","sources":["../../src/tools/readSourceFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,aAAa,EAAE,CAAC;SACX,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,IAAI,CAAC;SACT,QAAQ,CAAC,gGAAgG,CAAC;CAClH,CAAC,CAAC;AAIH,MAAM,UAAU,cAAc,CAC1B,IAAyB,EACzB,OAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5D,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE9D,IACI,mBAAmB,KAAK,IAAI;QAC5B,mBAAmB,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EACtC,CAAC;QACC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACnE,IACI,gBAAgB,KAAK,IAAI;QACzB,gBAAgB,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EACnC,CAAC;QACC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE3C,OAAO;QACH,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACnD,UAAU,EAAE,QAAQ,CAAC,IAAI;QACzB,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC;KAClD,CAAC;AACN,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { z } from "zod";
2
+ export declare const traceFeatureToCommandsInput: z.ZodObject<{
3
+ feature: z.ZodString;
4
+ }, "strip", z.ZodTypeAny, {
5
+ feature: string;
6
+ }, {
7
+ feature: string;
8
+ }>;
9
+ export type TraceFeatureToCommandsInput = z.infer<typeof traceFeatureToCommandsInput>;
10
+ type Command = {
11
+ name: string;
12
+ type?: string;
13
+ level?: string;
14
+ weight?: number;
15
+ };
16
+ export declare function traceFeatureToCommands(args: TraceFeatureToCommandsInput): {
17
+ message: string;
18
+ features_detected?: undefined;
19
+ top_commands?: undefined;
20
+ all_commands?: undefined;
21
+ related_samples?: undefined;
22
+ related_registers?: undefined;
23
+ next_steps?: undefined;
24
+ } | {
25
+ features_detected: string[];
26
+ top_commands: {
27
+ name: string;
28
+ type: string | undefined;
29
+ level: string | undefined;
30
+ reason: string;
31
+ }[];
32
+ all_commands: Command[];
33
+ related_samples: string[];
34
+ related_registers: string[];
35
+ next_steps: string[];
36
+ message?: undefined;
37
+ };
38
+ export {};
@@ -0,0 +1,90 @@
1
+ import { z } from "zod";
2
+ import { loadFeatureGraph } from "../lib/loadIndex.js";
3
+ import { includesSearchPhrase } from "../lib/normalize.js";
4
+ export const traceFeatureToCommandsInput = z.object({
5
+ feature: z.string().min(2),
6
+ });
7
+ export function traceFeatureToCommands(args) {
8
+ const graph = loadFeatureGraph();
9
+ const input = args.feature;
10
+ //callback
11
+ const matches = Object.entries(graph)
12
+ .filter(([feature, meta]) => {
13
+ return (includesSearchPhrase(input, feature) ||
14
+ meta.keywords.some((k) => includesSearchPhrase(input, k)));
15
+ })
16
+ .map(([feature, meta]) => ({
17
+ feature,
18
+ commands: meta.commands,
19
+ samples: meta.samples,
20
+ registers: meta.registers,
21
+ }));
22
+ if (matches.length === 0) {
23
+ return {
24
+ message: "No matching feature found.",
25
+ };
26
+ }
27
+ // commands
28
+ const allCommands = matches.flatMap((m) => m.commands);
29
+ // remove duplicate and keep weight
30
+ const dedup = new Map();
31
+ for (const cmd of allCommands) {
32
+ const existing = dedup.get(cmd.name);
33
+ if (!existing || (cmd.weight ?? 0) > (existing.weight ?? 0)) {
34
+ dedup.set(cmd.name, cmd);
35
+ }
36
+ }
37
+ const uniqueCommands = Array.from(dedup.values());
38
+ // sort
39
+ const ranked = uniqueCommands.sort((a, b) => {
40
+ const wa = a.weight ?? 0;
41
+ const wb = b.weight ?? 0;
42
+ if (wb !== wa)
43
+ return wb - wa;
44
+ // high-level API
45
+ if (a.level === "high" && b.level !== "high")
46
+ return -1;
47
+ if (b.level === "high" && a.level !== "high")
48
+ return 1;
49
+ return 0;
50
+ });
51
+ // remove duplicate
52
+ const samples = [
53
+ ...new Set(matches.flatMap((m) => m.samples)),
54
+ ];
55
+ const registers = [
56
+ ...new Set(matches.flatMap((m) => m.registers)),
57
+ ];
58
+ // explain
59
+ function explain(cmd) {
60
+ if (cmd.type === "coprocessor") {
61
+ return "High-level API, recommended for UI development";
62
+ }
63
+ if (cmd.type === "display_list") {
64
+ return "Low-level rendering command";
65
+ }
66
+ if (cmd.type === "hal") {
67
+ return "Hardware-level API";
68
+ }
69
+ return "Related command";
70
+ }
71
+ // output
72
+ return {
73
+ features_detected: matches.map((m) => m.feature),
74
+ top_commands: ranked.slice(0, 5).map((c) => ({
75
+ name: c.name,
76
+ type: c.type,
77
+ level: c.level,
78
+ reason: explain(c),
79
+ })),
80
+ all_commands: ranked, // context to AI
81
+ related_samples: samples.slice(0, 5),
82
+ related_registers: registers.slice(0, 20),
83
+ next_steps: [
84
+ "Start with top_commands (prefer high-level APIs)",
85
+ "Refer to related_samples for working examples",
86
+ "Integrate commands into your rendering loop",
87
+ ],
88
+ };
89
+ }
90
+ //# sourceMappingURL=traceFeatureToCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traceFeatureToCommands.js","sourceRoot":"","sources":["../../src/tools/traceFeatureToCommands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ export declare const validatePre820CodeInput: z.ZodObject<{
3
+ code: z.ZodString;
4
+ platform: z.ZodOptional<z.ZodString>;
5
+ display: z.ZodOptional<z.ZodString>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ code: string;
8
+ platform?: string | undefined;
9
+ display?: string | undefined;
10
+ }, {
11
+ code: string;
12
+ platform?: string | undefined;
13
+ display?: string | undefined;
14
+ }>;
15
+ export type ValidatePre820CodeInput = z.infer<typeof validatePre820CodeInput>;
16
+ export declare function validatePre820Code(args: ValidatePre820CodeInput): {
17
+ issues: {
18
+ severity: "high" | "medium" | "low";
19
+ title: string;
20
+ detail: string;
21
+ suggestion: string;
22
+ }[];
23
+ preferred_replacements: {
24
+ found: string;
25
+ preferred: string;
26
+ }[];
27
+ symbol_policy: {
28
+ equivalent_for_search: boolean;
29
+ generated_code_preference: string;
30
+ raw_macros_allowed_for: string[];
31
+ };
32
+ summary: {
33
+ high: number;
34
+ medium: number;
35
+ low: number;
36
+ };
37
+ };
@@ -0,0 +1,88 @@
1
+ import { z } from "zod";
2
+ import { eveFunctionToGpuMacro } from "../lib/eveSymbolAliases.js";
3
+ import { loadCommands } from "../lib/loadIndex.js";
4
+ export const validatePre820CodeInput = z.object({
5
+ code: z.string().min(1),
6
+ platform: z.string().optional(),
7
+ display: z.string().optional(),
8
+ });
9
+ export function validatePre820Code(args) {
10
+ const code = args.code;
11
+ const macroToHelper = new Map();
12
+ for (const command of loadCommands()) {
13
+ const macro = eveFunctionToGpuMacro(command.name);
14
+ if (macro && !macroToHelper.has(macro)) {
15
+ macroToHelper.set(macro, command.name);
16
+ }
17
+ }
18
+ const invokedMacros = [...code.matchAll(/\b([A-Z][A-Z0-9_]*)\s*\(/g)]
19
+ .map(match => match[1])
20
+ .filter((macro) => !!macro);
21
+ const coprocessorTokens = [...code.matchAll(/\b(CMD_[A-Z0-9_]+)\b/g)]
22
+ .map(match => match[1])
23
+ .filter((macro) => !!macro);
24
+ const preferredReplacements = [...new Set([...invokedMacros, ...coprocessorTokens])]
25
+ .filter(macro => macroToHelper.has(macro))
26
+ .map(macro => ({
27
+ found: macro,
28
+ preferred: macroToHelper.get(macro),
29
+ }));
30
+ const issues = [];
31
+ const hasCoprocessorUsage = /EVE_CoCmd_/m.test(code) || preferredReplacements.some(replacement => replacement.preferred.startsWith("EVE_CoCmd_"));
32
+ if (!hasCoprocessorUsage) {
33
+ issues.push({
34
+ severity: "low",
35
+ title: "No obvious coprocessor commands detected",
36
+ detail: "The snippet does not appear to use known EVE command helpers.",
37
+ suggestion: "Check whether this is the intended rendering layer.",
38
+ });
39
+ }
40
+ const tagMatches = [...code.matchAll(/\bTAG\s*\(\s*(\d+)\s*\)/g)].map((m) => m[1]);
41
+ const duplicates = tagMatches.filter((tag, i) => tagMatches.indexOf(tag) !== i);
42
+ if (duplicates.length > 0) {
43
+ issues.push({
44
+ severity: "medium",
45
+ title: "Duplicate touch tag values",
46
+ detail: `Repeated TAG ids found: ${[...new Set(duplicates)].join(", ")}`,
47
+ suggestion: "Assign unique TAG values to each interactive control.",
48
+ });
49
+ }
50
+ if (!/DISPLAY|swap|Swap|DL_DISPLAY/i.test(code)) {
51
+ issues.push({
52
+ severity: "medium",
53
+ title: "Possible incomplete frame/display-list sequence",
54
+ detail: "No obvious display termination or swap marker found.",
55
+ suggestion: "Verify the display-list end and frame swap sequence.",
56
+ });
57
+ }
58
+ if (preferredReplacements.length > 0) {
59
+ issues.push({
60
+ severity: "low",
61
+ title: "Raw EVE macro has a preferred helper",
62
+ detail: preferredReplacements
63
+ .map(replacement => `${replacement.found} -> ${replacement.preferred}`)
64
+ .join(", "),
65
+ suggestion: "Prefer the EVE_CoDl or EVE_CoCmd helper in generated application code. Keep the raw macro only when intentionally constructing, storing, or transmitting low-level command words.",
66
+ });
67
+ }
68
+ return {
69
+ issues,
70
+ preferred_replacements: preferredReplacements,
71
+ symbol_policy: {
72
+ equivalent_for_search: true,
73
+ generated_code_preference: "EVE_CoDl_* and EVE_CoCmd_* helpers",
74
+ raw_macros_allowed_for: [
75
+ "packed display-list word construction",
76
+ "display-list command arrays",
77
+ "coprocessor command-buffer arrays",
78
+ "intentional low-level EVE_Cmd_wr32 paths",
79
+ ],
80
+ },
81
+ summary: {
82
+ high: issues.filter((i) => i.severity === "high").length,
83
+ medium: issues.filter((i) => i.severity === "medium").length,
84
+ low: issues.filter((i) => i.severity === "low").length,
85
+ },
86
+ };
87
+ }
88
+ //# sourceMappingURL=validatePre820Code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validatePre820Code.js","sourceRoot":"","sources":["../../src/tools/validatePre820Code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ export interface CommandIndexItem {
2
+ name: string;
3
+ category: string;
4
+ signature: string;
5
+ summary: string;
6
+ params?: Array<{
7
+ name: string;
8
+ type: string;
9
+ desc: string;
10
+ }>;
11
+ related_samples?: string[];
12
+ related_features?: string[];
13
+ supportedWhen?: {
14
+ family?: string[];
15
+ platform?: string[];
16
+ };
17
+ requires?: string[];
18
+ source_file: string;
19
+ }
20
+ export interface SampleIndexItem {
21
+ id: string;
22
+ name: string;
23
+ path: string;
24
+ categories: string[];
25
+ summary: string;
26
+ commands_used: string[];
27
+ platform_notes?: string[];
28
+ assets_required?: string[];
29
+ difficulty?: "beginner" | "intermediate" | "advanced";
30
+ keywords?: string[];
31
+ }
32
+ export type Command = {
33
+ name: string;
34
+ type: string;
35
+ level: string;
36
+ weight: number;
37
+ };
38
+ export interface FeatureGraphItem {
39
+ commands: Command[];
40
+ samples: string[];
41
+ keywords: string[];
42
+ registers: string[];
43
+ }
44
+ export interface BuildMatrix {
45
+ version?: number;
46
+ platforms: Record<string, {
47
+ generator?: string;
48
+ buildTool?: string;
49
+ host?: string[];
50
+ requires?: string[];
51
+ }>;
52
+ graphics?: string[];
53
+ displays?: string[];
54
+ defaults?: {
55
+ platform?: string;
56
+ graphics?: string;
57
+ display?: string;
58
+ };
59
+ generators?: Record<string, {
60
+ tool?: string;
61
+ }>;
62
+ }
63
+ export interface ModuleIndexItem {
64
+ graphic: string;
65
+ touch: string;
66
+ supportedDisplays: string[];
67
+ supportedPlatforms: string[];
68
+ }
69
+ export interface GraphicsIndexItem {
70
+ family: string;
71
+ feature: string[];
72
+ }
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@bridgetek/eveapps-pre82x-core",
3
+ "version": "1.1.0",
4
+ "type": "module",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "main": "dist/index.js",
9
+ "types": "dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "data"
19
+ ],
20
+ "scripts": {
21
+ "build": "tsc -b && cp -r data dist/data",
22
+ "dev": "tsc -w"
23
+ },
24
+ "dependencies": {
25
+ "zod": "^3.25.76"
26
+ },
27
+ "devDependencies": {
28
+ "@types/node": "^24.0.10"
29
+ }
30
+ }