@blackwell-systems/gcf 0.6.1 → 1.0.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.
- package/LICENSE +1 -1
- package/README.md +11 -1
- package/dist/decode.d.ts.map +1 -1
- package/dist/decode.js +15 -6
- package/dist/decode.js.map +1 -1
- package/dist/decode_generic.d.ts +1 -5
- package/dist/decode_generic.d.ts.map +1 -1
- package/dist/decode_generic.js +392 -142
- package/dist/decode_generic.js.map +1 -1
- package/dist/delta.js +1 -1
- package/dist/delta.js.map +1 -1
- package/dist/encode.d.ts.map +1 -1
- package/dist/encode.js +22 -7
- package/dist/encode.js.map +1 -1
- package/dist/generic.d.ts +0 -6
- package/dist/generic.d.ts.map +1 -1
- package/dist/generic.js +146 -114
- package/dist/generic.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/scalar.d.ts +27 -0
- package/dist/scalar.d.ts.map +1 -0
- package/dist/scalar.js +315 -0
- package/dist/scalar.js.map +1 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +9 -1
- package/dist/session.js.map +1 -1
- package/dist/stream.d.ts +1 -1
- package/dist/stream.js +7 -7
- package/dist/stream.js.map +1 -1
- package/dist/stream_generic.d.ts +1 -1
- package/dist/stream_generic.d.ts.map +1 -1
- package/dist/stream_generic.js +5 -27
- package/dist/stream_generic.js.map +1 -1
- package/package.json +2 -2
- package/src/decode.ts +18 -6
- package/src/decode_generic.ts +352 -137
- package/src/delta.ts +1 -1
- package/src/encode.ts +19 -7
- package/src/generic.ts +127 -128
- package/src/index.ts +1 -0
- package/src/scalar.ts +249 -0
- package/src/session.ts +6 -1
- package/src/stream.ts +7 -7
- package/src/stream_generic.ts +5 -27
package/dist/scalar.js
ADDED
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common scalar grammar for GCF v2.0.
|
|
3
|
+
* Shared between encoder, decoder, and streaming encoder.
|
|
4
|
+
*/
|
|
5
|
+
const JSON_NUMBER_RE = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
|
|
6
|
+
const NUMERIC_LIKE_RE = /^[+-]?\.?\d/;
|
|
7
|
+
/** Check if a string value must be quoted per Section 2.4. */
|
|
8
|
+
export function needsQuote(s) {
|
|
9
|
+
if (s === '')
|
|
10
|
+
return true;
|
|
11
|
+
if (s === '-' || s === '~' || s === '^' || s === 'true' || s === 'false')
|
|
12
|
+
return true;
|
|
13
|
+
if (JSON_NUMBER_RE.test(s))
|
|
14
|
+
return true;
|
|
15
|
+
if (NUMERIC_LIKE_RE.test(s))
|
|
16
|
+
return true;
|
|
17
|
+
if (s[0] === ' ' || s[s.length - 1] === ' ')
|
|
18
|
+
return true;
|
|
19
|
+
if (s[0] === '#' || s[0] === '@')
|
|
20
|
+
return true;
|
|
21
|
+
for (let i = 0; i < s.length; i++) {
|
|
22
|
+
const c = s.charCodeAt(i);
|
|
23
|
+
if (c === 0x22 || c === 0x5c || c < 0x20 || c === 0x0a || c === 0x0d ||
|
|
24
|
+
c === 0x7c || c === 0x2c)
|
|
25
|
+
return true; // " \ control \n \r | ,
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
/** Produce a JSON-compatible quoted string. */
|
|
30
|
+
export function quoteString(s) {
|
|
31
|
+
let out = '"';
|
|
32
|
+
for (let i = 0; i < s.length; i++) {
|
|
33
|
+
const c = s.charCodeAt(i);
|
|
34
|
+
switch (c) {
|
|
35
|
+
case 0x22:
|
|
36
|
+
out += '\\"';
|
|
37
|
+
break;
|
|
38
|
+
case 0x5c:
|
|
39
|
+
out += '\\\\';
|
|
40
|
+
break;
|
|
41
|
+
case 0x08:
|
|
42
|
+
out += '\\b';
|
|
43
|
+
break;
|
|
44
|
+
case 0x0c:
|
|
45
|
+
out += '\\f';
|
|
46
|
+
break;
|
|
47
|
+
case 0x0a:
|
|
48
|
+
out += '\\n';
|
|
49
|
+
break;
|
|
50
|
+
case 0x0d:
|
|
51
|
+
out += '\\r';
|
|
52
|
+
break;
|
|
53
|
+
case 0x09:
|
|
54
|
+
out += '\\t';
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
if (c < 0x20) {
|
|
58
|
+
out += '\\u' + c.toString(16).padStart(4, '0');
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
out += s[i];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return out + '"';
|
|
66
|
+
}
|
|
67
|
+
/** Format a JS value as a GCF scalar. delimiter is '|', ',', or 0. */
|
|
68
|
+
export function formatScalar(v, delimiter = 0) {
|
|
69
|
+
if (v === null || v === undefined)
|
|
70
|
+
return '-';
|
|
71
|
+
if (typeof v === 'boolean')
|
|
72
|
+
return v ? 'true' : 'false';
|
|
73
|
+
if (typeof v === 'number')
|
|
74
|
+
return formatNumber(v);
|
|
75
|
+
const s = String(v);
|
|
76
|
+
if (needsQuote(s) || (delimiter && s.includes(String.fromCharCode(delimiter)))) {
|
|
77
|
+
return quoteString(s);
|
|
78
|
+
}
|
|
79
|
+
return s;
|
|
80
|
+
}
|
|
81
|
+
/** Format a number per Section 2.3 canonical rules. */
|
|
82
|
+
export function formatNumber(f) {
|
|
83
|
+
if (Object.is(f, -0))
|
|
84
|
+
return '-0';
|
|
85
|
+
if (f === 0)
|
|
86
|
+
return '0';
|
|
87
|
+
const abs = Math.abs(f);
|
|
88
|
+
if (abs >= 1e-6 && abs < 1e21) {
|
|
89
|
+
return toPreciseDecimal(f);
|
|
90
|
+
}
|
|
91
|
+
// Exponent notation.
|
|
92
|
+
let s = f.toExponential();
|
|
93
|
+
// Normalize: lowercase e, no leading zeros in exponent.
|
|
94
|
+
s = s.replace(/[eE]\+?0*(\d)/, 'e+$1').replace(/[eE]-0*(\d)/, 'e-$1');
|
|
95
|
+
return s;
|
|
96
|
+
}
|
|
97
|
+
function toPreciseDecimal(f) {
|
|
98
|
+
// String(f) produces the shortest representation that round-trips through parseFloat.
|
|
99
|
+
return String(f);
|
|
100
|
+
}
|
|
101
|
+
const BARE_KEY_RE = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
|
|
102
|
+
/** Check if a key is a valid bare key. */
|
|
103
|
+
export function isBareKey(s) {
|
|
104
|
+
return BARE_KEY_RE.test(s);
|
|
105
|
+
}
|
|
106
|
+
/** Format a key, quoting if necessary. */
|
|
107
|
+
export function formatKey(s) {
|
|
108
|
+
return isBareKey(s) ? s : quoteString(s);
|
|
109
|
+
}
|
|
110
|
+
// --- Decoder scalar parsing ---
|
|
111
|
+
/** Parse a GCF scalar token per Section 2.1 precedence. */
|
|
112
|
+
export function parseScalar(s, tabularContext) {
|
|
113
|
+
if (s === '')
|
|
114
|
+
return '';
|
|
115
|
+
// 1. Quoted string.
|
|
116
|
+
if (s[0] === '"')
|
|
117
|
+
return parseQuotedString(s);
|
|
118
|
+
// 2. Null.
|
|
119
|
+
if (s === '-')
|
|
120
|
+
return null;
|
|
121
|
+
// 3. Missing (tabular only).
|
|
122
|
+
if (s === '~') {
|
|
123
|
+
if (!tabularContext)
|
|
124
|
+
throw new Error('invalid_missing: ~ outside tabular row cell');
|
|
125
|
+
return MISSING;
|
|
126
|
+
}
|
|
127
|
+
// 4. Attachment (tabular only).
|
|
128
|
+
if (s === '^') {
|
|
129
|
+
if (!tabularContext)
|
|
130
|
+
throw new Error('invalid_attachment_marker: ^ outside tabular row cell');
|
|
131
|
+
return ATTACHMENT;
|
|
132
|
+
}
|
|
133
|
+
// 5. Boolean.
|
|
134
|
+
if (s === 'true')
|
|
135
|
+
return true;
|
|
136
|
+
if (s === 'false')
|
|
137
|
+
return false;
|
|
138
|
+
// 6. Number.
|
|
139
|
+
if (JSON_NUMBER_RE.test(s)) {
|
|
140
|
+
const f = Number(s);
|
|
141
|
+
if (!isNaN(f))
|
|
142
|
+
return f;
|
|
143
|
+
}
|
|
144
|
+
// 7. Bare string.
|
|
145
|
+
return s;
|
|
146
|
+
}
|
|
147
|
+
export const MISSING = Symbol('missing');
|
|
148
|
+
export const ATTACHMENT = Symbol('attachment');
|
|
149
|
+
/** Parse a JSON-compatible quoted string. */
|
|
150
|
+
export function parseQuotedString(s) {
|
|
151
|
+
if (s.length < 2 || s[0] !== '"')
|
|
152
|
+
throw new Error('unterminated_quote');
|
|
153
|
+
let out = '';
|
|
154
|
+
let i = 1;
|
|
155
|
+
while (i < s.length) {
|
|
156
|
+
if (s[i] === '"') {
|
|
157
|
+
if (i + 1 !== s.length)
|
|
158
|
+
throw new Error('trailing_characters: after closing quote');
|
|
159
|
+
return out;
|
|
160
|
+
}
|
|
161
|
+
if (s[i] === '\\') {
|
|
162
|
+
if (i + 1 >= s.length)
|
|
163
|
+
throw new Error('unterminated_quote');
|
|
164
|
+
i++;
|
|
165
|
+
switch (s[i]) {
|
|
166
|
+
case '"':
|
|
167
|
+
out += '"';
|
|
168
|
+
break;
|
|
169
|
+
case '\\':
|
|
170
|
+
out += '\\';
|
|
171
|
+
break;
|
|
172
|
+
case '/':
|
|
173
|
+
out += '/';
|
|
174
|
+
break;
|
|
175
|
+
case 'b':
|
|
176
|
+
out += '\b';
|
|
177
|
+
break;
|
|
178
|
+
case 'f':
|
|
179
|
+
out += '\f';
|
|
180
|
+
break;
|
|
181
|
+
case 'n':
|
|
182
|
+
out += '\n';
|
|
183
|
+
break;
|
|
184
|
+
case 'r':
|
|
185
|
+
out += '\r';
|
|
186
|
+
break;
|
|
187
|
+
case 't':
|
|
188
|
+
out += '\t';
|
|
189
|
+
break;
|
|
190
|
+
case 'u': {
|
|
191
|
+
if (i + 4 >= s.length)
|
|
192
|
+
throw new Error('invalid_escape: incomplete unicode');
|
|
193
|
+
const hex = s.slice(i + 1, i + 5);
|
|
194
|
+
const code = parseInt(hex, 16);
|
|
195
|
+
if (isNaN(code))
|
|
196
|
+
throw new Error(`invalid_escape: invalid unicode \\u${hex}`);
|
|
197
|
+
// Surrogate pair handling.
|
|
198
|
+
if (code >= 0xd800 && code <= 0xdbff) {
|
|
199
|
+
if (i + 10 >= s.length || s[i + 5] !== '\\' || s[i + 6] !== 'u') {
|
|
200
|
+
throw new Error('invalid_surrogate: isolated high surrogate');
|
|
201
|
+
}
|
|
202
|
+
const hex2 = s.slice(i + 7, i + 11);
|
|
203
|
+
const low = parseInt(hex2, 16);
|
|
204
|
+
if (isNaN(low) || low < 0xdc00 || low > 0xdfff) {
|
|
205
|
+
throw new Error('invalid_surrogate: invalid low surrogate');
|
|
206
|
+
}
|
|
207
|
+
out += String.fromCodePoint(0x10000 + (code - 0xd800) * 0x400 + (low - 0xdc00));
|
|
208
|
+
i += 11;
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
if (code >= 0xdc00 && code <= 0xdfff) {
|
|
212
|
+
throw new Error('invalid_surrogate: isolated low surrogate');
|
|
213
|
+
}
|
|
214
|
+
out += String.fromCharCode(code);
|
|
215
|
+
i += 5;
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
default: throw new Error(`invalid_escape: unknown \\${s[i]}`);
|
|
219
|
+
}
|
|
220
|
+
i++;
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
if (s.charCodeAt(i) < 0x20) {
|
|
224
|
+
throw new Error(`invalid_escape: unescaped control U+${s.charCodeAt(i).toString(16).padStart(4, '0')}`);
|
|
225
|
+
}
|
|
226
|
+
out += s[i];
|
|
227
|
+
i++;
|
|
228
|
+
}
|
|
229
|
+
throw new Error('unterminated_quote');
|
|
230
|
+
}
|
|
231
|
+
/** Split a string on a delimiter, respecting quoted strings. */
|
|
232
|
+
export function splitRespectingQuotes(s, delim) {
|
|
233
|
+
const parts = [];
|
|
234
|
+
let current = '';
|
|
235
|
+
let inQuote = false;
|
|
236
|
+
let escaped = false;
|
|
237
|
+
for (let i = 0; i < s.length; i++) {
|
|
238
|
+
if (escaped) {
|
|
239
|
+
current += s[i];
|
|
240
|
+
escaped = false;
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
if (s[i] === '\\' && inQuote) {
|
|
244
|
+
current += s[i];
|
|
245
|
+
escaped = true;
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
if (s[i] === '"') {
|
|
249
|
+
inQuote = !inQuote;
|
|
250
|
+
current += s[i];
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
if (s[i] === delim && !inQuote) {
|
|
254
|
+
parts.push(current);
|
|
255
|
+
current = '';
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
current += s[i];
|
|
259
|
+
}
|
|
260
|
+
parts.push(current);
|
|
261
|
+
return parts;
|
|
262
|
+
}
|
|
263
|
+
/** Split a field declaration like {id,"display name","a,b"}. */
|
|
264
|
+
export function splitFieldDecl(s) {
|
|
265
|
+
if (s.length < 2 || s[0] !== '{')
|
|
266
|
+
throw new Error('invalid field declaration');
|
|
267
|
+
const closeIdx = findClosingBrace(s);
|
|
268
|
+
if (closeIdx < 0)
|
|
269
|
+
throw new Error('invalid field declaration');
|
|
270
|
+
const inner = s.slice(1, closeIdx);
|
|
271
|
+
if (!inner)
|
|
272
|
+
return [];
|
|
273
|
+
const raw = splitRespectingQuotes(inner, ',');
|
|
274
|
+
const fields = [];
|
|
275
|
+
const seen = new Set();
|
|
276
|
+
for (const f of raw) {
|
|
277
|
+
const trimmed = f.trim();
|
|
278
|
+
let name;
|
|
279
|
+
if (trimmed.length >= 2 && trimmed[0] === '"' && trimmed[trimmed.length - 1] === '"') {
|
|
280
|
+
name = parseQuotedString(trimmed);
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
if (!isBareKey(trimmed))
|
|
284
|
+
throw new Error(`invalid field name: ${trimmed}`);
|
|
285
|
+
name = trimmed;
|
|
286
|
+
}
|
|
287
|
+
if (seen.has(name))
|
|
288
|
+
throw new Error(`duplicate_field_name: ${name}`);
|
|
289
|
+
seen.add(name);
|
|
290
|
+
fields.push(name);
|
|
291
|
+
}
|
|
292
|
+
return fields;
|
|
293
|
+
}
|
|
294
|
+
function findClosingBrace(s) {
|
|
295
|
+
let inQuote = false;
|
|
296
|
+
let escaped = false;
|
|
297
|
+
for (let i = 0; i < s.length; i++) {
|
|
298
|
+
if (escaped) {
|
|
299
|
+
escaped = false;
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
if (s[i] === '\\' && inQuote) {
|
|
303
|
+
escaped = true;
|
|
304
|
+
continue;
|
|
305
|
+
}
|
|
306
|
+
if (s[i] === '"') {
|
|
307
|
+
inQuote = !inQuote;
|
|
308
|
+
continue;
|
|
309
|
+
}
|
|
310
|
+
if (s[i] === '}' && !inQuote)
|
|
311
|
+
return i;
|
|
312
|
+
}
|
|
313
|
+
return -1;
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=scalar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalar.js","sourceRoot":"","sources":["../src/scalar.ts"],"names":[],"mappings":"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"}
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIlD;;;;GAIG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,MAAM,CAAa;IAE3B,uEAAuE;IACvE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAInC,6FAA6F;IAC7F,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAK5B;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAS/B,6DAA6D;IAC7D,IAAI,IAAI,MAAM;IAId,gCAAgC;IAChC,KAAK,IAAI,IAAI;CAId;AAqBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIlD;;;;GAIG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,MAAM,CAAa;IAE3B,uEAAuE;IACvE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAInC,6FAA6F;IAC7F,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAK5B;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAS/B,6DAA6D;IAC7D,IAAI,IAAI,MAAM;IAId,gCAAgC;IAChC,KAAK,IAAI,IAAI;CAId;AAqBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,CA6E1E"}
|
package/dist/session.js
CHANGED
|
@@ -65,7 +65,15 @@ export function encodeWithSession(p, sess) {
|
|
|
65
65
|
}
|
|
66
66
|
const lines = [];
|
|
67
67
|
// Header with session=true marker.
|
|
68
|
-
let header = `GCF tool=${p.tool}
|
|
68
|
+
let header = `GCF profile=graph tool=${p.tool}`;
|
|
69
|
+
if (p.tokenBudget)
|
|
70
|
+
header += ` budget=${p.tokenBudget}`;
|
|
71
|
+
if (p.tokensUsed)
|
|
72
|
+
header += ` tokens=${p.tokensUsed}`;
|
|
73
|
+
header += ` symbols=${p.symbols.length}`;
|
|
74
|
+
if (p.edges.length > 0)
|
|
75
|
+
header += ` edges=${p.edges.length}`;
|
|
76
|
+
header += ' session=true';
|
|
69
77
|
if (p.packRoot) {
|
|
70
78
|
header += ` pack_root=${p.packRoot}`;
|
|
71
79
|
}
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;GAIG;AACH,MAAM,OAAO,OAAO;IACV,OAAO,GAAwB,IAAI,GAAG,EAAE,CAAC;IACzC,MAAM,GAAW,CAAC,CAAC;IAE3B,uEAAuE;IACvE,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,6FAA6F;IAC7F,KAAK,CAAC,KAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,OAAiB;QACtB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,gCAAgC;IAChC,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;CACF;AAOD,SAAS,eAAe,CAAC,OAAiB;IACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,IAAI,OAAO,GAAyB,IAAI,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;YACxD,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAU,EAAE,IAAoB;IAChE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,mCAAmC;IACnC,IAAI,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/stream.d.ts
CHANGED
|
@@ -55,7 +55,7 @@ export declare class StreamEncoder {
|
|
|
55
55
|
*/
|
|
56
56
|
writeBareRef(qname: string, distance: number): void;
|
|
57
57
|
/**
|
|
58
|
-
* Emit the
|
|
58
|
+
* Emit the ##! summary trailer with final counts. Must be called after all
|
|
59
59
|
* symbols and edges have been written.
|
|
60
60
|
*/
|
|
61
61
|
close(): void;
|
package/dist/stream.js
CHANGED
|
@@ -26,7 +26,7 @@ export class StreamEncoder {
|
|
|
26
26
|
this.writeHeader(tool, opts);
|
|
27
27
|
}
|
|
28
28
|
writeHeader(tool, opts) {
|
|
29
|
-
const parts = [`GCF tool=${tool}`];
|
|
29
|
+
const parts = [`GCF profile=graph tool=${tool}`];
|
|
30
30
|
if (opts.tokenBudget)
|
|
31
31
|
parts.push(`budget=${opts.tokenBudget}`);
|
|
32
32
|
if (opts.tokensUsed)
|
|
@@ -95,25 +95,25 @@ export class StreamEncoder {
|
|
|
95
95
|
this.groupCounts.set(groupName, (this.groupCounts.get(groupName) || 0) + 1);
|
|
96
96
|
}
|
|
97
97
|
/**
|
|
98
|
-
* Emit the
|
|
98
|
+
* Emit the ##! summary trailer with final counts. Must be called after all
|
|
99
99
|
* symbols and edges have been written.
|
|
100
100
|
*/
|
|
101
101
|
close() {
|
|
102
|
-
const
|
|
102
|
+
const deferredCounts = [];
|
|
103
103
|
const groupOrder = ['targets', 'related', 'extended'];
|
|
104
104
|
for (const g of groupOrder) {
|
|
105
105
|
const c = this.groupCounts.get(g);
|
|
106
106
|
if (c && c > 0)
|
|
107
|
-
|
|
107
|
+
deferredCounts.push(c);
|
|
108
108
|
}
|
|
109
109
|
for (const [g, c] of this.groupCounts) {
|
|
110
110
|
if (!groupOrder.includes(g) && c > 0)
|
|
111
|
-
|
|
111
|
+
deferredCounts.push(c);
|
|
112
112
|
}
|
|
113
113
|
if (this.edgeCount > 0) {
|
|
114
|
-
|
|
114
|
+
deferredCounts.push(this.edgeCount);
|
|
115
115
|
}
|
|
116
|
-
this.w.write(
|
|
116
|
+
this.w.write(`##! summary symbols=${this.nextID} edges=${this.edgeCount} counts=${deferredCounts.join(',')}\n`);
|
|
117
117
|
}
|
|
118
118
|
/** Number of symbols written so far. */
|
|
119
119
|
get symbolCount() { return this.nextID; }
|
package/dist/stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAqB7C;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,aAAa;IAChB,CAAC,CAAe;IAChB,QAAQ,GAAwB,IAAI,GAAG,EAAE,CAAC;IAC1C,MAAM,GAAG,CAAC,CAAC;IACX,YAAY,GAAG,EAAE,CAAC;IAClB,WAAW,GAAwB,IAAI,GAAG,EAAE,CAAC;IAC7C,SAAS,GAAG,CAAC,CAAC;IACd,YAAY,GAAG,KAAK,CAAC;IAE7B,YAAY,CAAe,EAAE,IAAY,EAAE,OAAsB,EAAE;QACjE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,WAAW,CAAC,IAAY,EAAE,IAAmB;QACnD,MAAM,KAAK,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAqB7C;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,aAAa;IAChB,CAAC,CAAe;IAChB,QAAQ,GAAwB,IAAI,GAAG,EAAE,CAAC;IAC1C,MAAM,GAAG,CAAC,CAAC;IACX,YAAY,GAAG,EAAE,CAAC;IAClB,WAAW,GAAwB,IAAI,GAAG,EAAE,CAAC;IAC7C,SAAS,GAAG,CAAC,CAAC;IACd,YAAY,GAAG,KAAK,CAAC;IAE7B,YAAY,CAAe,EAAE,IAAY,EAAE,OAAsB,EAAE;QACjE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,WAAW,CAAC,IAAY,EAAE,IAAmB;QACnD,MAAM,KAAK,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,CAAS;QACnB,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM;YAC9C,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;YACxB,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE7B,IAAI,SAAS,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,SAAS,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAC3C,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;QAE1F,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,CAAO;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QAEzD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACzC,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAAa,EAAE,QAAgB;QAC1C,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC,MAAM;YAC5C,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC,YAAY,QAAQ,EAAE,CAAC;QAE3B,IAAI,SAAS,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,SAAS,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;QAEnD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAEtD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACvB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,MAAM,UAAU,IAAI,CAAC,SAAS,WAAW,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClH,CAAC;IAED,wCAAwC;IACxC,IAAI,WAAW,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjD,sCAAsC;IACtC,IAAI,UAAU,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;CACpD"}
|
package/dist/stream_generic.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export declare class GenericStreamEncoder {
|
|
|
31
31
|
writeSection(name: string): void;
|
|
32
32
|
/** Emit a primitive array inline: name[N]: val1,val2,val3 */
|
|
33
33
|
writeInlineArray(name: string, values: unknown[]): void;
|
|
34
|
-
/** Emit the
|
|
34
|
+
/** Emit the ##! summary trailer with final counts. Must be called after all data. */
|
|
35
35
|
close(): void;
|
|
36
36
|
private endArrayInternal;
|
|
37
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream_generic.d.ts","sourceRoot":"","sources":["../src/stream_generic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"stream_generic.d.ts","sourceRoot":"","sources":["../src/stream_generic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAchD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,OAAO,CAA4B;gBAE/B,MAAM,EAAE,YAAY;IAIhC,6DAA6D;IAC7D,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAQhD,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;IASjC,4DAA4D;IAC5D,QAAQ,IAAI,IAAI;IAIhB,yCAAyC;IACzC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAI1C,8CAA8C;IAC9C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOhC,6DAA6D;IAC7D,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;IAKvD,qFAAqF;IACrF,KAAK,IAAI,IAAI;IAWb,OAAO,CAAC,gBAAgB;CAOzB"}
|
package/dist/stream_generic.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { formatScalar } from './scalar.js';
|
|
1
2
|
/**
|
|
2
3
|
* GenericStreamEncoder writes GCF tabular output incrementally as rows arrive.
|
|
3
4
|
* Zero buffering: each row is written immediately. A trailer summary is
|
|
@@ -57,7 +58,7 @@ export class GenericStreamEncoder {
|
|
|
57
58
|
const parts = values.map(formatValue);
|
|
58
59
|
this.writer.write(`${name}[${values.length}]: ${parts.join(',')}\n`);
|
|
59
60
|
}
|
|
60
|
-
/** Emit the
|
|
61
|
+
/** Emit the ##! summary trailer with final counts. Must be called after all data. */
|
|
61
62
|
close() {
|
|
62
63
|
if (this.current !== null) {
|
|
63
64
|
this.endArrayInternal();
|
|
@@ -65,13 +66,8 @@ export class GenericStreamEncoder {
|
|
|
65
66
|
if (this.sections.length === 0) {
|
|
66
67
|
return;
|
|
67
68
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
for (const s of this.sections) {
|
|
71
|
-
sectionParts.push(`${s.name}:${s.count}`);
|
|
72
|
-
totalRows += s.count;
|
|
73
|
-
}
|
|
74
|
-
this.writer.write(`## _summary rows=${totalRows} sections=${sectionParts.join(',')}\n`);
|
|
69
|
+
const counts = this.sections.map(s => String(s.count));
|
|
70
|
+
this.writer.write(`##! summary counts=${counts.join(',')}\n`);
|
|
75
71
|
}
|
|
76
72
|
endArrayInternal() {
|
|
77
73
|
if (this.current === null) {
|
|
@@ -82,24 +78,6 @@ export class GenericStreamEncoder {
|
|
|
82
78
|
}
|
|
83
79
|
}
|
|
84
80
|
function formatValue(v) {
|
|
85
|
-
|
|
86
|
-
return '-';
|
|
87
|
-
}
|
|
88
|
-
if (typeof v === 'boolean') {
|
|
89
|
-
return v ? 'true' : 'false';
|
|
90
|
-
}
|
|
91
|
-
if (typeof v === 'number') {
|
|
92
|
-
return String(v);
|
|
93
|
-
}
|
|
94
|
-
if (typeof v === 'string') {
|
|
95
|
-
if (v === '') {
|
|
96
|
-
return '""';
|
|
97
|
-
}
|
|
98
|
-
if (v.includes('|') || v.includes('\n')) {
|
|
99
|
-
return `"${v.replace(/"/g, '\\"')}"`;
|
|
100
|
-
}
|
|
101
|
-
return v;
|
|
102
|
-
}
|
|
103
|
-
return String(v);
|
|
81
|
+
return formatScalar(v, 0x7c); // '|' context
|
|
104
82
|
}
|
|
105
83
|
//# sourceMappingURL=stream_generic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream_generic.js","sourceRoot":"","sources":["../src/stream_generic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stream_generic.js","sourceRoot":"","sources":["../src/stream_generic.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blackwell-systems/gcf",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Drop-in JSON replacement for AI pipelines. 79% fewer tokens. 90.5% comprehension across 10 models. Zero dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
package/src/decode.ts
CHANGED
|
@@ -27,9 +27,13 @@ export function decode(input: string): Payload {
|
|
|
27
27
|
parseHeader(header.slice(4), p);
|
|
28
28
|
|
|
29
29
|
if (!p.tool) {
|
|
30
|
-
throw new Error("
|
|
30
|
+
throw new Error("missing_tool: header missing required 'tool' field");
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
// Detect delta mode.
|
|
34
|
+
const isDelta = header.includes(' delta=true');
|
|
35
|
+
const validDeltaSections = new Set(['removed', 'added', 'edges_removed', 'edges_added']);
|
|
36
|
+
|
|
33
37
|
// Parse body: symbols and edges.
|
|
34
38
|
const symbols: Symbol[] = [];
|
|
35
39
|
const symByID = new Map<number, Symbol>();
|
|
@@ -40,6 +44,9 @@ export function decode(input: string): Payload {
|
|
|
40
44
|
let line = lines[i].replace(/\r$/, '');
|
|
41
45
|
if (line === '') continue;
|
|
42
46
|
|
|
47
|
+
// Skip ##! summary trailer.
|
|
48
|
+
if (line.startsWith('##! ')) continue;
|
|
49
|
+
|
|
43
50
|
// Group header.
|
|
44
51
|
if (line.startsWith('## ')) {
|
|
45
52
|
let group = line.slice(3);
|
|
@@ -48,6 +55,11 @@ export function decode(input: string): Payload {
|
|
|
48
55
|
if (bracketIdx >= 0) {
|
|
49
56
|
group = group.slice(0, bracketIdx);
|
|
50
57
|
}
|
|
58
|
+
|
|
59
|
+
if (isDelta && !validDeltaSections.has(group)) {
|
|
60
|
+
throw new Error(`malformed_delta: invalid delta section "${group}"`);
|
|
61
|
+
}
|
|
62
|
+
|
|
51
63
|
inEdges = group === 'edges';
|
|
52
64
|
if (!inEdges) {
|
|
53
65
|
switch (group) {
|
|
@@ -137,14 +149,14 @@ function parseSymbolLine(
|
|
|
137
149
|
const parts = line.split(/\s+/);
|
|
138
150
|
if (parts.length < 5) {
|
|
139
151
|
throw new Error(
|
|
140
|
-
`
|
|
152
|
+
`invalid_node_line: symbol line needs at least 5 fields, got ${parts.length} in "${line}"`
|
|
141
153
|
);
|
|
142
154
|
}
|
|
143
155
|
|
|
144
156
|
const idStr = parts[0].slice(1); // strip @
|
|
145
157
|
const id = parseInt(idStr, 10);
|
|
146
158
|
if (isNaN(id)) {
|
|
147
|
-
throw new Error(`
|
|
159
|
+
throw new Error(`invalid_symbol_id: invalid symbol id "${idStr}"`);
|
|
148
160
|
}
|
|
149
161
|
|
|
150
162
|
let kind = parts[1];
|
|
@@ -156,7 +168,7 @@ function parseSymbolLine(
|
|
|
156
168
|
|
|
157
169
|
const score = parseFloat(parts[3]);
|
|
158
170
|
if (isNaN(score)) {
|
|
159
|
-
throw new Error(`
|
|
171
|
+
throw new Error(`invalid_score: invalid score "${parts[3]}"`);
|
|
160
172
|
}
|
|
161
173
|
|
|
162
174
|
const provenance = parts[4];
|
|
@@ -182,7 +194,7 @@ function parseEdgeLine(line: string, symByID: Map<number, Symbol>): Edge {
|
|
|
182
194
|
const ref = parts[0];
|
|
183
195
|
const ltIdx = ref.indexOf('<');
|
|
184
196
|
if (ltIdx < 0) {
|
|
185
|
-
throw new Error(`
|
|
197
|
+
throw new Error(`invalid_edge_syntax: edge line missing '<' separator in "${ref}"`);
|
|
186
198
|
}
|
|
187
199
|
|
|
188
200
|
const targetIDStr = ref.slice(1, ltIdx); // strip leading @
|
|
@@ -201,7 +213,7 @@ function parseEdgeLine(line: string, symByID: Map<number, Symbol>): Edge {
|
|
|
201
213
|
const sourceSym = symByID.get(sourceID);
|
|
202
214
|
if (!targetSym || !sourceSym) {
|
|
203
215
|
throw new Error(
|
|
204
|
-
`
|
|
216
|
+
`unknown_edge_reference: edge references unknown symbol id(s): target=${targetID} source=${sourceID}`
|
|
205
217
|
);
|
|
206
218
|
}
|
|
207
219
|
|