driverge-mcp 0.0.1 → 0.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +138 -113
- package/dist/codegen/esp32.js +7 -7
- package/dist/codegen/esp32.js.map +1 -1
- package/dist/codegen/ident.d.ts +9 -0
- package/dist/codegen/ident.js +11 -0
- package/dist/codegen/ident.js.map +1 -1
- package/dist/codegen/portable-cpp.js +15 -13
- package/dist/codegen/portable-cpp.js.map +1 -1
- package/dist/codegen/portable.js +26 -20
- package/dist/codegen/portable.js.map +1 -1
- package/dist/codegen/stm32.js +14 -10
- package/dist/codegen/stm32.js.map +1 -1
- package/dist/mcp/cache.js +1 -1
- package/dist/mcp/cache.js.map +1 -1
- package/dist/mcp/register.js +41 -4
- package/dist/mcp/register.js.map +1 -1
- package/dist/pdf/command.d.ts +21 -0
- package/dist/pdf/command.js +105 -10
- package/dist/pdf/command.js.map +1 -1
- package/dist/pdf/extract.js +27 -1
- package/dist/pdf/extract.js.map +1 -1
- package/dist/pdf/part.js +2 -0
- package/dist/pdf/part.js.map +1 -1
- package/dist/pdf/register-table.d.ts +4 -0
- package/dist/pdf/register-table.js +4 -2
- package/dist/pdf/register-table.js.map +1 -1
- package/dist/pdf/ti-command-byte.d.ts +7 -0
- package/dist/pdf/ti-command-byte.js +165 -0
- package/dist/pdf/ti-command-byte.js.map +1 -0
- package/dist/schema/assemble.js +7 -0
- package/dist/schema/assemble.js.map +1 -1
- package/dist/schema/validate.js +30 -1
- package/dist/schema/validate.js.map +1 -1
- package/dist/server.js +5 -0
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/dist/codegen/portable.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// reproducible: no timestamps, stable ordering. The host AI fills the brief and
|
|
8
8
|
// re-validates via validate_driver.
|
|
9
9
|
import { registerWidth } from "../pdf/types.js";
|
|
10
|
-
import { HEX_ONLY, commentSafe, fieldMask, macro, maskHex, slug } from "./ident.js";
|
|
10
|
+
import { HEX_ONLY, commentSafe, fieldMask, hexOrUndefined, macro, maskHex, slug } from "./ident.js";
|
|
11
11
|
// Exported: the "cpp" language flavor (see portable-cpp.ts) renders the SAME
|
|
12
12
|
// #define macro / TODO blocks and thin-HAL seam declarations as this C
|
|
13
13
|
// generator — reusing these pure helpers instead of re-deriving them is how the
|
|
@@ -90,28 +90,30 @@ export function commandSetTodoText(json, name, prefix) {
|
|
|
90
90
|
export const BUS_SEAM = {
|
|
91
91
|
I2C: {
|
|
92
92
|
decl: [
|
|
93
|
-
"
|
|
94
|
-
"
|
|
93
|
+
"/* Return 0 on success, non-zero on a bus error (e.g. NACK). */",
|
|
94
|
+
"int hal_i2c_write(uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len);",
|
|
95
|
+
"int hal_i2c_read (uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len);",
|
|
95
96
|
],
|
|
96
97
|
handleField: " uint8_t i2c_addr;",
|
|
97
|
-
readBody: [" hal_i2c_read(dev->i2c_addr, reg, value, 1);"],
|
|
98
|
-
writeBody: [" hal_i2c_write(dev->i2c_addr, reg, &value, 1);"],
|
|
98
|
+
readBody: [" return hal_i2c_read(dev->i2c_addr, reg, value, 1);"],
|
|
99
|
+
writeBody: [" return hal_i2c_write(dev->i2c_addr, reg, &value, 1);"],
|
|
99
100
|
},
|
|
100
101
|
SPI: {
|
|
101
102
|
decl: [
|
|
102
103
|
"/* One call = one CS-framed transaction: CS is asserted, tx_len bytes are",
|
|
103
104
|
" * clocked out, then rx_len bytes are clocked in, then CS is deasserted.",
|
|
104
105
|
" * tx/rx may be NULL when their respective length is 0. CS is handled",
|
|
105
|
-
" * entirely inside hal_spi_transfer — callers never touch it.
|
|
106
|
-
"
|
|
106
|
+
" * entirely inside hal_spi_transfer — callers never touch it. Returns 0 on",
|
|
107
|
+
" * success, non-zero on a bus error. */",
|
|
108
|
+
"int hal_spi_transfer(const uint8_t *tx, uint16_t tx_len, uint8_t *rx, uint16_t rx_len);",
|
|
107
109
|
],
|
|
108
110
|
handleField: " uint8_t _reserved; /* platform CS handled in hal_spi_transfer */",
|
|
109
|
-
readBody: [" hal_spi_transfer(®, 1, value, 1);"],
|
|
111
|
+
readBody: [" return hal_spi_transfer(®, 1, value, 1);"],
|
|
110
112
|
writeBody: [
|
|
111
113
|
" uint8_t frame[2];",
|
|
112
114
|
" frame[0] = reg;",
|
|
113
115
|
" frame[1] = value;",
|
|
114
|
-
" hal_spi_transfer(frame, 2, NULL, 0);",
|
|
116
|
+
" return hal_spi_transfer(frame, 2, NULL, 0);",
|
|
115
117
|
],
|
|
116
118
|
},
|
|
117
119
|
UART: {
|
|
@@ -213,7 +215,7 @@ function registerDriver(json, registers, name, prefix) {
|
|
|
213
215
|
const uart = busKind === "UART";
|
|
214
216
|
const can = busKind === "CAN";
|
|
215
217
|
const seam = BUS_SEAM[busKind];
|
|
216
|
-
const addr = json.protocol.addresses?.[0];
|
|
218
|
+
const addr = hexOrUndefined(json.protocol.addresses?.[0]);
|
|
217
219
|
const guard = `${prefix}_H`;
|
|
218
220
|
const type = `${name}_t`;
|
|
219
221
|
const header = [
|
|
@@ -256,16 +258,19 @@ function registerDriver(json, registers, name, prefix) {
|
|
|
256
258
|
if (bits.length > 0)
|
|
257
259
|
header.push("", "/* Bit-field mask/shift accessors. */", ...bits);
|
|
258
260
|
header.push("", "/* Thin-HAL seam — implement these for your platform (see thin-hal). */", ...seam.decl, "void hal_delay_ms (uint32_t ms);", "", "/* Driver handle. */", `typedef struct {`, seam.handleField, `} ${type};`, "", "/* Public API. */", `int ${name}_init(${type} *dev);`, `int ${name}_read_register(${type} *dev, uint8_t reg, uint8_t *value);`, `int ${name}_write_register(${type} *dev, uint8_t reg, uint8_t value);`, "", '#ifdef __cplusplus', "}", "#endif", `#endif /* ${guard} */`, "");
|
|
261
|
+
// The I2C/SPI seam bodies now END with `return hal_..._transfer/read/write(...)`,
|
|
262
|
+
// propagating the seam's status (0 = success) to the caller — a NACK/bus error
|
|
263
|
+
// is no longer swallowed (A7). So no trailing `return 0` is appended here.
|
|
259
264
|
const readBody = uart
|
|
260
265
|
? uartFramingBody(["dev", "reg", "value"])
|
|
261
266
|
: can
|
|
262
267
|
? canFramingBody(["dev", "reg", "value"])
|
|
263
|
-
: [" if (dev == NULL || value == NULL) {", " return -1;", " }", ...seam.readBody
|
|
268
|
+
: [" if (dev == NULL || value == NULL) {", " return -1;", " }", ...seam.readBody];
|
|
264
269
|
const writeBody = uart
|
|
265
270
|
? uartFramingBody(["dev", "reg", "value"])
|
|
266
271
|
: can
|
|
267
272
|
? canFramingBody(["dev", "reg", "value"])
|
|
268
|
-
: [" if (dev == NULL) {", " return -1;", " }", ...seam.writeBody
|
|
273
|
+
: [" if (dev == NULL) {", " return -1;", " }", ...seam.writeBody];
|
|
269
274
|
const source = [
|
|
270
275
|
`#include "${name}.h"`,
|
|
271
276
|
"",
|
|
@@ -336,7 +341,7 @@ function commandDriver(json, commands, name, prefix) {
|
|
|
336
341
|
const uart = json.protocol.bus === "UART";
|
|
337
342
|
const can = json.protocol.bus === "CAN";
|
|
338
343
|
const noAddrBus = uart || can; // neither UART nor CAN has a bus device address
|
|
339
|
-
const addr = json.protocol.addresses?.[0];
|
|
344
|
+
const addr = hexOrUndefined(json.protocol.addresses?.[0]);
|
|
340
345
|
const crc = commands.find((c) => c.crc)?.crc;
|
|
341
346
|
const guard = `${prefix}_H`;
|
|
342
347
|
const type = `${name}_t`;
|
|
@@ -389,17 +394,19 @@ function commandDriver(json, commands, name, prefix) {
|
|
|
389
394
|
: line);
|
|
390
395
|
}
|
|
391
396
|
}
|
|
392
|
-
|
|
397
|
+
// A non-hex crc.poly/init (e.g. containing an embedded newline) must never
|
|
398
|
+
// reach a #define as a live value (define-injection fix) — only emit the
|
|
399
|
+
// block when BOTH are well-formed hex literals; skip it entirely otherwise
|
|
400
|
+
// (crc8Body/commandBrief still reference the macro NAMES, not the raw
|
|
401
|
+
// values, so no injected content survives as code either way).
|
|
402
|
+
if (crc && hexOrUndefined(crc.poly) && hexOrUndefined(crc.init)) {
|
|
393
403
|
header.push("", `/* CRC-${crc.width} checksum parameters. */`, `#define ${prefix}_CRC_POLY ${crc.poly}`, `#define ${prefix}_CRC_INIT ${crc.init}`);
|
|
394
404
|
}
|
|
395
405
|
header.push("", "/* Thin-HAL seam — implement these for your platform (see thin-hal). */", ...(uart
|
|
396
406
|
? BUS_SEAM.UART.decl
|
|
397
407
|
: can
|
|
398
408
|
? BUS_SEAM.CAN.decl
|
|
399
|
-
: [
|
|
400
|
-
"void hal_i2c_write(uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len);",
|
|
401
|
-
"void hal_i2c_read (uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len);",
|
|
402
|
-
]), "void hal_delay_ms (uint32_t ms);", "", "/* Driver handle. */", "typedef struct {", uart ? BUS_SEAM.UART.handleField : can ? BUS_SEAM.CAN.handleField : " uint8_t i2c_addr;", `} ${type};`, "", "/* Public API. */", `int ${name}_init(${type} *dev);`, `int ${name}_send_command(${type} *dev, uint16_t command);`, `int ${name}_read_data(${type} *dev, uint8_t *buffer, uint16_t len);`, ...(crc ? [`uint8_t ${name}_crc8(const uint8_t *data, uint16_t len);`] : []), "", '#ifdef __cplusplus', "}", "#endif", `#endif /* ${guard} */`, "");
|
|
409
|
+
: BUS_SEAM.I2C.decl), "void hal_delay_ms (uint32_t ms);", "", "/* Driver handle. */", "typedef struct {", uart ? BUS_SEAM.UART.handleField : can ? BUS_SEAM.CAN.handleField : " uint8_t i2c_addr;", `} ${type};`, "", "/* Public API. */", `int ${name}_init(${type} *dev);`, `int ${name}_send_command(${type} *dev, uint16_t command);`, `int ${name}_read_data(${type} *dev, uint8_t *buffer, uint16_t len);`, ...(crc ? [`uint8_t ${name}_crc8(const uint8_t *data, uint16_t len);`] : []), "", '#ifdef __cplusplus', "}", "#endif", `#endif /* ${guard} */`, "");
|
|
403
410
|
const source = [
|
|
404
411
|
`#include "${name}.h"`,
|
|
405
412
|
"",
|
|
@@ -426,8 +433,7 @@ function commandDriver(json, commands, name, prefix) {
|
|
|
426
433
|
" msb = (uint8_t)(command >> 8);",
|
|
427
434
|
" lsb = (uint8_t)(command & 0xFF);",
|
|
428
435
|
...I2C_COMMAND_FRAME_NOTE,
|
|
429
|
-
" hal_i2c_write(dev->i2c_addr, msb, &lsb, 1);",
|
|
430
|
-
" return 0;",
|
|
436
|
+
" return hal_i2c_write(dev->i2c_addr, msb, &lsb, 1);",
|
|
431
437
|
]),
|
|
432
438
|
"}",
|
|
433
439
|
"",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portable.js","sourceRoot":"","sources":["../../src/codegen/portable.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portable.js","sourceRoot":"","sources":["../../src/codegen/portable.ts"],"names":[],"mappings":"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"}
|
package/dist/codegen/stm32.js
CHANGED
|
@@ -57,15 +57,17 @@ function halImplI2c(name, prefix, language) {
|
|
|
57
57
|
` s_${name}_hi2c = hi2c;`,
|
|
58
58
|
"}",
|
|
59
59
|
"",
|
|
60
|
-
"
|
|
60
|
+
"int hal_i2c_write(uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len) {",
|
|
61
61
|
" /* CubeHAL takes the 8-bit (left-shifted) device address. */",
|
|
62
|
-
` HAL_I2C_Mem_Write(s_${name}_hi2c, (uint16_t)(addr << 1), reg,`,
|
|
63
|
-
`
|
|
62
|
+
` HAL_StatusTypeDef status = HAL_I2C_Mem_Write(s_${name}_hi2c, (uint16_t)(addr << 1), reg,`,
|
|
63
|
+
` I2C_MEMADD_SIZE_8BIT, data, len, ${prefix}_I2C_TIMEOUT_MS);`,
|
|
64
|
+
" return (status == HAL_OK) ? 0 : -1;",
|
|
64
65
|
"}",
|
|
65
66
|
"",
|
|
66
|
-
"
|
|
67
|
-
` HAL_I2C_Mem_Read(s_${name}_hi2c, (uint16_t)(addr << 1), reg,`,
|
|
68
|
-
`
|
|
67
|
+
"int hal_i2c_read(uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len) {",
|
|
68
|
+
` HAL_StatusTypeDef status = HAL_I2C_Mem_Read(s_${name}_hi2c, (uint16_t)(addr << 1), reg,`,
|
|
69
|
+
` I2C_MEMADD_SIZE_8BIT, data, len, ${prefix}_I2C_TIMEOUT_MS);`,
|
|
70
|
+
" return (status == HAL_OK) ? 0 : -1;",
|
|
69
71
|
"}",
|
|
70
72
|
"",
|
|
71
73
|
"void hal_delay_ms(uint32_t ms) {",
|
|
@@ -106,15 +108,17 @@ function halImplSpi(name, prefix, language) {
|
|
|
106
108
|
` s_${name}_cs_pin = cs_pin;`,
|
|
107
109
|
"}",
|
|
108
110
|
"",
|
|
109
|
-
"
|
|
111
|
+
"int hal_spi_transfer(const uint8_t *tx, uint16_t tx_len, uint8_t *rx, uint16_t rx_len) {",
|
|
112
|
+
" HAL_StatusTypeDef status = HAL_OK;",
|
|
110
113
|
` HAL_GPIO_WritePin(s_${name}_cs_port, s_${name}_cs_pin, GPIO_PIN_RESET);`,
|
|
111
114
|
" if (tx_len > 0) {",
|
|
112
|
-
` HAL_SPI_Transmit(s_${name}_hspi, (uint8_t *)tx, tx_len, ${prefix}_SPI_TIMEOUT_MS);`,
|
|
115
|
+
` status = HAL_SPI_Transmit(s_${name}_hspi, (uint8_t *)tx, tx_len, ${prefix}_SPI_TIMEOUT_MS);`,
|
|
113
116
|
" }",
|
|
114
|
-
" if (rx_len > 0) {",
|
|
115
|
-
` HAL_SPI_Receive(s_${name}_hspi, rx, rx_len, ${prefix}_SPI_TIMEOUT_MS);`,
|
|
117
|
+
" if (status == HAL_OK && rx_len > 0) {",
|
|
118
|
+
` status = HAL_SPI_Receive(s_${name}_hspi, rx, rx_len, ${prefix}_SPI_TIMEOUT_MS);`,
|
|
116
119
|
" }",
|
|
117
120
|
` HAL_GPIO_WritePin(s_${name}_cs_port, s_${name}_cs_pin, GPIO_PIN_SET);`,
|
|
121
|
+
" return (status == HAL_OK) ? 0 : -1;",
|
|
118
122
|
"}",
|
|
119
123
|
"",
|
|
120
124
|
"void hal_delay_ms(uint32_t ms) {",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stm32.js","sourceRoot":"","sources":["../../src/codegen/stm32.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,kFAAkF;AAClF,iFAAiF;AACjF,kFAAkF;AAClF,8EAA8E;AAC9E,4EAA4E;AAC5E,wBAAwB;AACxB,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,gEAAgE;AAChE,+EAA+E;AAC/E,6DAA6D;AAC7D,+DAA+D;AAG/D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,yEAAyE;AACzE,gEAAgE;AAChE,oEAAoE;AACpE,wEAAwE;AACxE,mEAAmE;AACnE,sEAAsE;AACtE,8EAA8E;AAC9E,6EAA6E;AAC7E,2EAA2E;AAC3E,YAAY;AACZ,SAAS,WAAW,CAAC,IAAY,EAAE,QAAyB;IAC1D,OAAO,aAAa,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,QAAyB;IACvD,OAAO,GAAG,IAAI,cAAc,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,MAAc,EAAE,QAAyB;IACzE,MAAM,OAAO,GAAG;QACd,IAAI;QACJ,MAAM,MAAM,+DAA+D;QAC3E,IAAI;QACJ,8EAA8E;QAC9E,iFAAiF;QACjF,gFAAgF;QAChF,2CAA2C,IAAI,6BAA6B;QAC5E,2DAA2D;QAC3D,KAAK;QACL,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC3B,mBAAmB;QACnB,EAAE;QACF,WAAW,MAAM,iBAAiB;QAClC,WAAW,MAAM,sBAAsB;QACvC,QAAQ;QACR,EAAE;QACF,+BAA+B,IAAI,QAAQ;QAC3C,EAAE;QACF,wEAAwE;QACxE,QAAQ,IAAI,wCAAwC;QACpD,SAAS,IAAI,eAAe;QAC5B,GAAG;QACH,EAAE;QACF,
|
|
1
|
+
{"version":3,"file":"stm32.js","sourceRoot":"","sources":["../../src/codegen/stm32.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/cache.js
CHANGED
|
@@ -19,7 +19,7 @@ export const MAX_CACHE_ENTRIES = 32;
|
|
|
19
19
|
* doesn't silently serve a stale cached entry from before the hint existed.
|
|
20
20
|
*/
|
|
21
21
|
export function computeRef(pdfPath, mtimeMs, extra) {
|
|
22
|
-
const hash = createHash("
|
|
22
|
+
const hash = createHash("sha256")
|
|
23
23
|
.update(`${pdfPath}:${Math.round(mtimeMs)}:${extra ?? ""}`)
|
|
24
24
|
.digest("hex");
|
|
25
25
|
return `ds_${hash.slice(0, 12)}`;
|
package/dist/mcp/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/mcp/cache.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,+EAA+E;AAC/E,8EAA8E;AAC9E,4CAA4C;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,OAAe,EAAE,KAAc;IACzE,MAAM,IAAI,GAAG,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/mcp/cache.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,+EAA+E;AAC/E,8EAA8E;AAC9E,4CAA4C;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,OAAe,EAAE,KAAc;IACzE,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC9B,MAAM,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;SAC1D,MAAM,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,2EAA2E;IAC3E,4DAA4D;IAC5D,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,OAAO,KAAK,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACzC,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM;QAChC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,oEAAoE;IACpE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,mBAAmB;IACjC,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC"}
|
package/dist/mcp/register.js
CHANGED
|
@@ -47,7 +47,7 @@ const INTERFACE_SCHEMA = z.discriminatedUnion("kind", [
|
|
|
47
47
|
]);
|
|
48
48
|
const DATASHEET_JSON_GUARD = z.object({
|
|
49
49
|
metadata: z.looseObject({ part: z.string() }),
|
|
50
|
-
protocol: z.looseObject({ bus: z.string() }),
|
|
50
|
+
protocol: z.looseObject({ bus: z.string(), addresses: z.array(z.string()).optional() }),
|
|
51
51
|
interface: INTERFACE_SCHEMA,
|
|
52
52
|
extraction: z
|
|
53
53
|
.object({
|
|
@@ -72,6 +72,10 @@ const text = (value, isError = false) => ({
|
|
|
72
72
|
// this regex closes that gap so resolveArtifactPath's containment check is
|
|
73
73
|
// meaningful on every platform, not just Windows (B3).
|
|
74
74
|
const WINDOWS_ABSOLUTE = /^[a-zA-Z]:[\\/]/;
|
|
75
|
+
// DoS hardening: analyze_datasheet must not read an unbounded file into
|
|
76
|
+
// memory. 64 MiB comfortably covers real-world datasheets while still
|
|
77
|
+
// bounding worst-case memory/CPU from a hostile or accidental huge input.
|
|
78
|
+
const DEFAULT_MAX_PDF_BYTES = 64 * 1024 * 1024;
|
|
75
79
|
/**
|
|
76
80
|
* Confines a single artifact file path (`DriverArtifact.files[].path`) under
|
|
77
81
|
* `rootDir`, returning the resolved absolute path when it is safely inside
|
|
@@ -122,13 +126,23 @@ export function registerDrivergeTools(server) {
|
|
|
122
126
|
}, async ({ pdf_path, manufacturer_hint, interface_kind_hint }) => {
|
|
123
127
|
// Single stat call (not existsSync + statSync) to close the TOCTOU gap
|
|
124
128
|
// where the file could vanish/change between the check and the read (S4).
|
|
125
|
-
let
|
|
129
|
+
let stat;
|
|
126
130
|
try {
|
|
127
|
-
|
|
131
|
+
stat = statSync(pdf_path);
|
|
128
132
|
}
|
|
129
133
|
catch {
|
|
130
134
|
return text(`file not found: ${pdf_path}`, true);
|
|
131
135
|
}
|
|
136
|
+
// DoS hardening: read the cap at call time (like DRIVERGE_OUT_ROOT below,
|
|
137
|
+
// in the generate_driver handler) so tests can scope it per-case via
|
|
138
|
+
// DRIVERGE_MAX_PDF_BYTES; `|| DEFAULT_MAX_PDF_BYTES` also covers an
|
|
139
|
+
// unset/empty/non-numeric env value (Number("") and Number(undefined)
|
|
140
|
+
// are both falsy-ish here — NaN is falsy for `||`).
|
|
141
|
+
const maxBytes = Number(process.env.DRIVERGE_MAX_PDF_BYTES) || DEFAULT_MAX_PDF_BYTES;
|
|
142
|
+
if (stat.size > maxBytes) {
|
|
143
|
+
return text(`PDF too large: ${stat.size} bytes exceeds the ${maxBytes}-byte limit (set DRIVERGE_MAX_PDF_BYTES to change it)`, true);
|
|
144
|
+
}
|
|
145
|
+
const mtimeMs = stat.mtimeMs;
|
|
132
146
|
// Fold the hints into the ref material (Session 10 / Contract A): the ref
|
|
133
147
|
// is otherwise path+mtime only, so re-analyzing the same file with
|
|
134
148
|
// different hints would silently serve a hint-less cached entry.
|
|
@@ -232,12 +246,35 @@ export function registerDrivergeTools(server) {
|
|
|
232
246
|
});
|
|
233
247
|
server.registerTool("validate_datasheet", {
|
|
234
248
|
title: "Validate datasheet JSON",
|
|
235
|
-
description: "Re-run the L5 validator over a cached `ref` or a supplied datasheet JSON. Thin wrapper over the same rules analyze_datasheet applies internally.",
|
|
249
|
+
description: "Re-run the L5 validator over a cached `ref` or a supplied datasheet JSON. Passing BOTH `ref` and `json` PERSISTS the completed JSON under that ref (overwriting the cached datasheet) and returns its fresh validation — this is how you close the deferred loop: analyze → complete the register/command map from the datasheet resource → validate_datasheet(ref, json) → generate_driver(ref) then sees the completed map. Thin wrapper over the same rules analyze_datasheet applies internally.",
|
|
236
250
|
inputSchema: {
|
|
237
251
|
ref: z.string().optional(),
|
|
238
252
|
json: z.record(z.string(), z.unknown()).optional(),
|
|
239
253
|
},
|
|
240
254
|
}, async ({ ref, json }) => {
|
|
255
|
+
// Both args → the host has completed a previously deferred datasheet and
|
|
256
|
+
// wants it persisted so generate_driver(ref) picks it up (A4, see
|
|
257
|
+
// raw/DRIVERGE_ISSUES.md). Guard-parse, re-validate, attach the fresh
|
|
258
|
+
// validation, and overwrite the cache entry under this ref.
|
|
259
|
+
if (ref && json) {
|
|
260
|
+
const parsed = DATASHEET_JSON_GUARD.safeParse(json);
|
|
261
|
+
if (!parsed.success) {
|
|
262
|
+
const issues = parsed.error.issues
|
|
263
|
+
.map((i) => `${i.path.join(".") || "(root)"}: ${i.message}`)
|
|
264
|
+
.join("; ");
|
|
265
|
+
return text(`invalid datasheet JSON — ${issues}`, true);
|
|
266
|
+
}
|
|
267
|
+
const supplied = parsed.data;
|
|
268
|
+
// Recompute validation from the supplied content rather than trusting any
|
|
269
|
+
// `validation` field the host may (or may not) have included — so the
|
|
270
|
+
// persisted entry's validity always reflects the real map, and
|
|
271
|
+
// generate_driver's `validation.valid` gate stays honest.
|
|
272
|
+
const validation = validateDatasheet(supplied);
|
|
273
|
+
const completed = { ...supplied, validation };
|
|
274
|
+
const existing = getDatasheet(ref);
|
|
275
|
+
putDatasheet({ ref, pdfPath: existing?.pdfPath ?? "(host-completed)", json: completed });
|
|
276
|
+
return text({ persisted: true, ref, validation });
|
|
277
|
+
}
|
|
241
278
|
if (ref) {
|
|
242
279
|
const entry = getDatasheet(ref);
|
|
243
280
|
if (!entry)
|
package/dist/mcp/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/mcp/register.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/mcp/register.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,gFAAgF;AAChF,2DAA2D;AAE3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAEL,gBAAgB,GACjB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,UAAU,GACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AACjE,yEAAyE;AACzE,gFAAgF;AAChF,8EAA8E;AAC9E,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACtC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AAE3E,sEAAsE;AACtE,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,iFAAiF;AACjF,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;CAChB,CAAC,CAAC;AACH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;CACrC,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;CACpF,CAAC,CAAC;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACpD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;IAClF,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;CAChF,CAAC,CAAC;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;IACvF,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3D,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACnC,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC,KAAK,EAAE,CAAC;AAMX,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,OAAO,GAAG,KAAK,EAAc,EAAE,CAAC,CAAC;IAC7D,OAAO,EAAE;QACP;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE;KACF;IACD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACtC,CAAC,CAAC;AAEH,2EAA2E;AAC3E,4EAA4E;AAC5E,0EAA0E;AAC1E,8EAA8E;AAC9E,2EAA2E;AAC3E,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAE3C,wEAAwE;AACxE,sEAAsE;AACtE,0EAA0E;AAC1E,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,QAAgB;IACnE,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9E,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,qCAAqC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5E,OAAO,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,OAAO,CAAC,KAAK,CACX,sFAAsF,CACvF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,gMAAgM;QAClM,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACnE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACxC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE;SACxE;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,EAAE,EAAE;QAC7D,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,IAAiC,CAAC;QACtC,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,mBAAmB,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,0EAA0E;QAC1E,qEAAqE;QACrE,oEAAoE;QACpE,sEAAsE;QACtE,oDAAoD;QACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,qBAAqB,CAAC;QACrF,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;YACzB,OAAO,IAAI,CACT,kBAAkB,IAAI,CAAC,IAAI,sBAAsB,QAAQ,uDAAuD,EAChH,IAAI,CACL,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,0EAA0E;QAC1E,mEAAmE;QACnE,iEAAiE;QACjE,MAAM,GAAG,GAAG,UAAU,CACpB,QAAQ,EACR,OAAO,EACP,GAAG,iBAAiB,IAAI,EAAE,IAAI,mBAAmB,IAAI,EAAE,EAAE,CAC1D,CAAC;QACF,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9C,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,wBAAyB,GAAa,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,CACT,kFAAkF,EAClF,IAAI,CACL,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,EAAE;YACvC,gBAAgB,EAAE,iBAAiB;YACnC,iBAAiB,EAAE,mBAAmB;SACvC,CAAC,CAAC;QACH,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,sUAAsU;QACxU,WAAW,EAAE;YACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;YACf,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;YAClC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B;KACF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,gBAAgB,GAAG,iCAAiC,EAAE,IAAI,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACjC,OAAO,IAAI,CACT;gBACE,KAAK,EAAE,+CAA+C;gBACtD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM;aACrC,EACD,IAAI,CACL,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACH,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,MAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,sBAAsB;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1E,IAAI,GAAG,YAAY,mBAAmB;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACvE,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,yEAAyE;YACzE,yEAAyE;YACzE,uEAAuE;YACvE,iDAAiD;YACjD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAChD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,IAAI,CACT,YAAY,OAAO,+BAA+B,YAAY,wCAAwC,EACtG,IAAI,CACL,CAAC;YACJ,CAAC;YACD,oEAAoE;YACpE,+DAA+D;YAC/D,oEAAoE;YACpE,sEAAsE;YACtE,MAAM,OAAO,GAA0C,EAAE,CAAC;YAC1D,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,IAAI,CACT,wBAAwB,CAAC,CAAC,IAAI,mCAAmC,WAAW,gCAAgC,EAC5G,IAAI,CACL,CAAC;gBACJ,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC;gBAC1C,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChD,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,oLAAoL;QACtL,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;KAC/C,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,gBAAgB,GAAG,iCAAiC,EAAE,IAAI,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,UAAU,CAAC,KAAwB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;YACV,MAAM,EAAE,MAAM,CAAC,KAAK;YACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,seAAse;QACxe,WAAW,EAAE;YACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;SACnD;KACF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;QACtB,yEAAyE;QACzE,kEAAkE;QAClE,sEAAsE;QACtE,4DAA4D;QAC5D,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;qBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;qBAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,IAAI,CAAC,4BAA4B,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAgC,CAAC;YACzD,0EAA0E;YAC1E,sEAAsE;YACtE,+DAA+D;YAC/D,0DAA0D;YAC1D,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAkB,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,CAAC;YAC7D,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YACnC,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACzF,OAAO,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,sEAAsE;YACtE,qEAAqE;YACrE,gDAAgD;YAChD,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;qBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;qBAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,IAAI,CAAC,4BAA4B,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAgC,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IAEpC,MAAM,CAAC,gBAAgB,CACrB,kBAAkB,EAClB,mBAAmB,EACnB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,iEAAiE;QAC9E,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;KAC9E,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,gBAAgB,CACrB,gBAAgB,EAChB,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EACvE;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,GAAG,CAAC,CAAC;QAC9D,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC1C;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,cAAc,CACnB,iBAAiB,EACjB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,8IAA8I;QAChJ,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;KAChG,EACD,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,kDAAkD,GAAG,cAAc,MAAM,IAAI,UAAU,eAAe,QAAQ,IAAI,GAAG,IAAI;wBACzH,EAAE;wBACF,mCAAmC,GAAG,eAAe,MAAM,IAAI,UAAU,iBAAiB,QAAQ,IAAI,GAAG,0KAA0K;wBACnR,gCAAgC,GAAG,oCAAoC;wBACvE,8JAA8J;wBAC9J,wFAAwF;wBACxF,mCAAmC,GAAG,8EAA8E;qBACrH,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
|
package/dist/pdf/command.d.ts
CHANGED
|
@@ -2,6 +2,27 @@ import type { Command, Protocol } from "../schema/types.js";
|
|
|
2
2
|
import type { PageContent } from "./types.js";
|
|
3
3
|
/** L4b — bus + device addresses. */
|
|
4
4
|
export declare function extractProtocol(pages: PageContent[]): Protocol;
|
|
5
|
+
/**
|
|
6
|
+
* L4b — I2C device addresses, ranked so `addresses[0]` is the PRIMARY device
|
|
7
|
+
* address (which is what codegen hardcodes as `<PART>_I2C_ADDR`). Recognizes
|
|
8
|
+
* both hex ("0x68") and binary-notation ("b110100X", "0b1101000", "1101000b")
|
|
9
|
+
* 7-bit addresses near the word "address". Many InvenSense/TDK-style sheets
|
|
10
|
+
* (e.g. MPU-9250) give the primary address ONLY in binary and a secondary
|
|
11
|
+
* sub-device address (the AK8963 magnetometer, 0x0C) in hex, so the old
|
|
12
|
+
* hex-only scan grabbed the wrong one (raw/DRIVERGE_ISSUES.md A2/A5).
|
|
13
|
+
*
|
|
14
|
+
* Three passes keep it safe: hex first (preserving the pre-existing text order
|
|
15
|
+
* of hex-only sheets byte-for-byte), then binary, then TI's decimal/hex PAIR
|
|
16
|
+
* idiom ("NN (decimal), NN (hexadecimal)" — TCA6408A-Q1's Table 8-3 "Address
|
|
17
|
+
* Reference"; neither the hex-literal nor binary-notation pass finds anything
|
|
18
|
+
* on that sheet, since the address is spelled entirely in prose). A small
|
|
19
|
+
* stable relevance score then floats the primary up: +1 for a binary-notation
|
|
20
|
+
* match (the primary's usual form on those sheets), +1 for an explicit
|
|
21
|
+
* "(hexadecimal)" label (an unambiguous primary-address signal, at least as
|
|
22
|
+
* strong as the binary form's), -2 for a magnetometer/sub-device context.
|
|
23
|
+
* Equal scores keep first-seen order, so hex-only sheets are unchanged.
|
|
24
|
+
*/
|
|
25
|
+
export declare function extractI2cAddresses(text: string): string[];
|
|
5
26
|
/** L4b — CRC parameters from the checksum section. */
|
|
6
27
|
export declare function extractCrc(pages: PageContent[]): {
|
|
7
28
|
poly: string;
|
package/dist/pdf/command.js
CHANGED
|
@@ -69,22 +69,117 @@ export function extractProtocol(pages) {
|
|
|
69
69
|
: CAN_PHRASE.test(text) || (/\bCAN\b/.test(text) && CAN_VOCAB)
|
|
70
70
|
? "CAN"
|
|
71
71
|
: "unknown";
|
|
72
|
-
const addresses = [];
|
|
73
72
|
// Only I2C has a bus device address. Scanning for "0xNN near 'address'" on an
|
|
74
73
|
// SPI datasheet yields register offsets, not addresses (e.g. AEAT-8811), so we
|
|
75
74
|
// gate address extraction on the I2C bus.
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
75
|
+
const addresses = bus === "I2C" ? extractI2cAddresses(text) : [];
|
|
76
|
+
return addresses.length > 0 ? { bus, addresses } : { bus };
|
|
77
|
+
}
|
|
78
|
+
// A binary-notation 7-bit I2C address token: an optional "0b"/"b" prefix (or a
|
|
79
|
+
// trailing "b"), 7 bits, where the last bit may be an "X"/"x" placeholder for a
|
|
80
|
+
// pin-selectable LSB (e.g. AD0). "b110100X", "0b1101000", "1101000b" all match.
|
|
81
|
+
const BINARY_ADDRESS = /\b(0b|b)?([01]{6}[01xX])(b)?\b/gi;
|
|
82
|
+
// TI's decimal/hex address-PAIR idiom (Table 8-3 "Address Reference": "ADDR
|
|
83
|
+
// I2C BUS TARGET ADDRESS L 32 (decimal), 20 (hexadecimal) H 33 (decimal), 21
|
|
84
|
+
// (hexadecimal)"). The comma between the pairs is optional (some sheets omit
|
|
85
|
+
// it); requiring the trailing "(hexadecimal)" label is what keeps a lone
|
|
86
|
+
// "NN (decimal)" mention from ever matching.
|
|
87
|
+
const TI_DECIMAL_HEX_PAIR = /\b\d{1,3}\s*\(decimal\),?\s*([0-9a-f]{1,2})\s*\(hexadecimal\)/gi;
|
|
88
|
+
// Context words that mark a SECONDARY sub-device address rather than the part's
|
|
89
|
+
// own primary bus address — the MPU-9250 case, where 0x0C is the AK8963
|
|
90
|
+
// magnetometer behind the main device (raw/DRIVERGE_ISSUES.md A2). Kept narrow
|
|
91
|
+
// (magnetometer/AK-family/"secondary|sub address") so it does not fire on the
|
|
92
|
+
// aux-interface prose common to plain IMUs.
|
|
93
|
+
const SUBDEVICE_CONTEXT = /\b(?:magnetometer|ak8963|ak09\d{3}|secondary\s+address|sub[-\s]?address)\b/i;
|
|
94
|
+
/**
|
|
95
|
+
* L4b — I2C device addresses, ranked so `addresses[0]` is the PRIMARY device
|
|
96
|
+
* address (which is what codegen hardcodes as `<PART>_I2C_ADDR`). Recognizes
|
|
97
|
+
* both hex ("0x68") and binary-notation ("b110100X", "0b1101000", "1101000b")
|
|
98
|
+
* 7-bit addresses near the word "address". Many InvenSense/TDK-style sheets
|
|
99
|
+
* (e.g. MPU-9250) give the primary address ONLY in binary and a secondary
|
|
100
|
+
* sub-device address (the AK8963 magnetometer, 0x0C) in hex, so the old
|
|
101
|
+
* hex-only scan grabbed the wrong one (raw/DRIVERGE_ISSUES.md A2/A5).
|
|
102
|
+
*
|
|
103
|
+
* Three passes keep it safe: hex first (preserving the pre-existing text order
|
|
104
|
+
* of hex-only sheets byte-for-byte), then binary, then TI's decimal/hex PAIR
|
|
105
|
+
* idiom ("NN (decimal), NN (hexadecimal)" — TCA6408A-Q1's Table 8-3 "Address
|
|
106
|
+
* Reference"; neither the hex-literal nor binary-notation pass finds anything
|
|
107
|
+
* on that sheet, since the address is spelled entirely in prose). A small
|
|
108
|
+
* stable relevance score then floats the primary up: +1 for a binary-notation
|
|
109
|
+
* match (the primary's usual form on those sheets), +1 for an explicit
|
|
110
|
+
* "(hexadecimal)" label (an unambiguous primary-address signal, at least as
|
|
111
|
+
* strong as the binary form's), -2 for a magnetometer/sub-device context.
|
|
112
|
+
* Equal scores keep first-seen order, so hex-only sheets are unchanged.
|
|
113
|
+
*/
|
|
114
|
+
export function extractI2cAddresses(text) {
|
|
115
|
+
const byAddr = new Map();
|
|
116
|
+
let order = 0;
|
|
117
|
+
const consider = (addr, fromBinary, ctx, fromHexLabel = false) => {
|
|
118
|
+
const value = Number.parseInt(addr, 16);
|
|
119
|
+
if (value < 0x08 || value > 0x77)
|
|
120
|
+
return; // outside the usable 7-bit space
|
|
121
|
+
let score = 0;
|
|
122
|
+
if (fromBinary)
|
|
123
|
+
score += 1;
|
|
124
|
+
if (fromHexLabel)
|
|
125
|
+
score += 1;
|
|
126
|
+
if (SUBDEVICE_CONTEXT.test(ctx))
|
|
127
|
+
score -= 2;
|
|
128
|
+
const existing = byAddr.get(addr);
|
|
129
|
+
if (existing) {
|
|
130
|
+
if (score > existing.score)
|
|
131
|
+
existing.score = score; // keep strongest context
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
byAddr.set(addr, { addr, score, order: order++ });
|
|
135
|
+
};
|
|
136
|
+
// Collect the "near-address" windows once; each carries a little preceding
|
|
137
|
+
// context so a "magnetometer"/"secondary" qualifier before the keyword is
|
|
138
|
+
// visible to the scorer.
|
|
139
|
+
const windows = [...text.matchAll(/address[^.]{0,60}/gi)].map((m) => ({
|
|
140
|
+
body: m[0],
|
|
141
|
+
ctx: text.slice(Math.max(0, (m.index ?? 0) - 32), (m.index ?? 0) + m[0].length),
|
|
142
|
+
}));
|
|
143
|
+
// Pass 1 — hex forms, in text order.
|
|
144
|
+
for (const { body, ctx } of windows) {
|
|
145
|
+
for (const m of body.matchAll(/0x[0-7][0-9a-f]/gi)) {
|
|
146
|
+
consider(upperHex(m[0]), false, ctx);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Pass 2 — binary-notation forms (bumps score of already-seen addresses or
|
|
150
|
+
// appends new ones after the hex-ordered set).
|
|
151
|
+
for (const { body, ctx } of windows) {
|
|
152
|
+
for (const m of body.matchAll(BINARY_ADDRESS)) {
|
|
153
|
+
const [, prefix, core, suffix] = m;
|
|
154
|
+
const hasPlaceholder = /[xX]/.test(core);
|
|
155
|
+
// A bare, unmarked 7-bit run is too ambiguous to treat as an address —
|
|
156
|
+
// require an explicit binary marker (prefix/suffix "b", or an X placeholder).
|
|
157
|
+
if (!prefix && !suffix && !hasPlaceholder)
|
|
158
|
+
continue;
|
|
159
|
+
const bitStrings = hasPlaceholder
|
|
160
|
+
? [core.replace(/[xX]/, "0"), core.replace(/[xX]/, "1")]
|
|
161
|
+
: [core];
|
|
162
|
+
for (const bits of bitStrings) {
|
|
163
|
+
const value = Number.parseInt(bits, 2);
|
|
164
|
+
consider(`0x${value.toString(16).toUpperCase().padStart(2, "0")}`, true, ctx);
|
|
84
165
|
}
|
|
85
166
|
}
|
|
86
167
|
}
|
|
87
|
-
|
|
168
|
+
// Pass 3 — TI's "NN (decimal), NN (hexadecimal)" paired idiom (Table 8-3
|
|
169
|
+
// "Address Reference", TCA6408A-Q1). Scanned over the FULL text, not the
|
|
170
|
+
// "address"-anchored windows above: the idiom's own anchor keyword is
|
|
171
|
+
// "(hexadecimal)", not "address", and a sheet's second pair can sit well
|
|
172
|
+
// past a 60-char window from the first "address" mention. Requiring the
|
|
173
|
+
// decimal/hexadecimal PAIRING (not a bare "(decimal)") keeps a lone decimal
|
|
174
|
+
// mention from ever synthesizing an address.
|
|
175
|
+
for (const m of text.matchAll(TI_DECIMAL_HEX_PAIR)) {
|
|
176
|
+
const start = m.index ?? 0;
|
|
177
|
+
const ctx = text.slice(Math.max(0, start - 32), start + m[0].length);
|
|
178
|
+
consider(`0x${m[1].toUpperCase()}`, false, ctx, true);
|
|
179
|
+
}
|
|
180
|
+
return [...byAddr.values()]
|
|
181
|
+
.sort((a, b) => b.score - a.score || a.order - b.order)
|
|
182
|
+
.map((c) => c.addr);
|
|
88
183
|
}
|
|
89
184
|
/** Parse a CRC polynomial written as an expression, e.g. "1+X 4 +X 5 +X 8"
|
|
90
185
|
* (pdfjs renders superscripts as separate tokens). Drops the implicit highest
|