sub-agents-mcp 0.5.2 → 0.5.3
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 +12 -0
- package/dist/index.js +0 -0
- package/package.json +1 -1
- package/dist/execution/ExecutionLimits.d.ts +0 -141
- package/dist/execution/ExecutionLimits.d.ts.map +0 -1
- package/dist/execution/ExecutionLimits.js +0 -231
- package/dist/execution/ExecutionLimits.js.map +0 -1
- package/dist/execution/McpRequestTimeout.d.ts +0 -166
- package/dist/execution/McpRequestTimeout.d.ts.map +0 -1
- package/dist/execution/McpRequestTimeout.js +0 -278
- package/dist/execution/McpRequestTimeout.js.map +0 -1
- package/dist/execution/PromptController.d.ts +0 -92
- package/dist/execution/PromptController.d.ts.map +0 -1
- package/dist/execution/PromptController.js +0 -130
- package/dist/execution/PromptController.js.map +0 -1
- package/dist/execution/TimeoutManager.d.ts +0 -159
- package/dist/execution/TimeoutManager.d.ts.map +0 -1
- package/dist/execution/TimeoutManager.js +0 -283
- package/dist/execution/TimeoutManager.js.map +0 -1
- package/dist/session/ToonConverter.d.ts +0 -172
- package/dist/session/ToonConverter.d.ts.map +0 -1
- package/dist/session/ToonConverter.js +0 -593
- package/dist/session/ToonConverter.js.map +0 -1
- package/dist/session/ToonUtils.d.ts +0 -23
- package/dist/session/ToonUtils.d.ts.map +0 -1
- package/dist/session/ToonUtils.js +0 -75
- package/dist/session/ToonUtils.js.map +0 -1
- package/dist/types/ServerConfig.d.ts +0 -39
- package/dist/types/ServerConfig.d.ts.map +0 -1
- package/dist/types/ServerConfig.js +0 -3
- package/dist/types/ServerConfig.js.map +0 -1
- package/dist/types/index.d.ts +0 -19
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
|
@@ -1,593 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ToonConverter = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* TOON (Token Optimized Object Notation) converter utility.
|
|
6
|
-
*
|
|
7
|
-
* Converts JSON data to TOON format to reduce token consumption by 30-60%.
|
|
8
|
-
*
|
|
9
|
-
* Key optimizations:
|
|
10
|
-
* - Shortened key names (sessionId → sid, timestamp → ts, etc.)
|
|
11
|
-
* - Compact timestamp format (removes separators: 20250121 120000)
|
|
12
|
-
* - Filters out empty strings and empty arrays
|
|
13
|
-
* - Inline object representation {key:value,key2:value2}
|
|
14
|
-
* - Array format [count,]{item1,item2}
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* const sessionData = {
|
|
19
|
-
* sessionId: 'abc123',
|
|
20
|
-
* agentType: 'rule-advisor',
|
|
21
|
-
* history: [...],
|
|
22
|
-
* createdAt: new Date('2025-01-21T12:00:00Z'),
|
|
23
|
-
* lastUpdatedAt: new Date('2025-01-21T12:00:00Z')
|
|
24
|
-
* }
|
|
25
|
-
* const toonStr = ToonConverter.convertToToon(sessionData)
|
|
26
|
-
* // Output: sid:abc123,agt:rule-advisor,h:[1,]{...},cat:20250121 120000,uat:20250121 120000
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
// biome-ignore lint/complexity/noStaticOnlyClass: Intentional design for utility class with clear namespace
|
|
30
|
-
class ToonConverter {
|
|
31
|
-
/**
|
|
32
|
-
* Converts JSON-compatible data to TOON format.
|
|
33
|
-
*
|
|
34
|
-
* TOON format features:
|
|
35
|
-
* - Removes quotes from keys
|
|
36
|
-
* - Uses compact array notation: [length,] { items }
|
|
37
|
-
* - Reduces unnecessary brackets and commas
|
|
38
|
-
* - Maintains data structure and readability
|
|
39
|
-
*
|
|
40
|
-
* @param jsonData - JSON-compatible data to convert
|
|
41
|
-
* @returns TOON-formatted string
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* ```typescript
|
|
45
|
-
* const data = { sessionId: 'abc123', agentType: 'rule-advisor' }
|
|
46
|
-
* const toon = ToonConverter.convertToToon(data)
|
|
47
|
-
* // Returns: "sessionId: abc123\nagentType: rule-advisor"
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
static convertToToon(jsonData) {
|
|
51
|
-
try {
|
|
52
|
-
// Don't use JSON.parse/stringify to preserve Date objects
|
|
53
|
-
return ToonConverter.toToonString(jsonData, 0);
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
// Fallback to JSON string on error
|
|
57
|
-
console.error('TOON conversion failed, falling back to JSON:', error);
|
|
58
|
-
try {
|
|
59
|
-
return JSON.stringify(jsonData, null, 2);
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
return String(jsonData);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Recursively converts a value to TOON format string.
|
|
68
|
-
*
|
|
69
|
-
* @param value - Value to convert
|
|
70
|
-
* @param depth - Current nesting depth for indentation
|
|
71
|
-
* @returns TOON-formatted string
|
|
72
|
-
* @private
|
|
73
|
-
*/
|
|
74
|
-
static toToonString(value, depth) {
|
|
75
|
-
// Handle null
|
|
76
|
-
if (value === null) {
|
|
77
|
-
return 'null';
|
|
78
|
-
}
|
|
79
|
-
// Handle undefined
|
|
80
|
-
if (value === undefined) {
|
|
81
|
-
return 'undefined';
|
|
82
|
-
}
|
|
83
|
-
// Handle primitives
|
|
84
|
-
if (typeof value === 'string') {
|
|
85
|
-
// Quote strings if they contain special characters or spaces
|
|
86
|
-
if (ToonConverter.needsQuotes(value)) {
|
|
87
|
-
return JSON.stringify(value);
|
|
88
|
-
}
|
|
89
|
-
return value;
|
|
90
|
-
}
|
|
91
|
-
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
92
|
-
return String(value);
|
|
93
|
-
}
|
|
94
|
-
// Handle Date objects (convert to compact timestamp format)
|
|
95
|
-
if (value instanceof Date) {
|
|
96
|
-
return ToonConverter.formatCompactTimestamp(value);
|
|
97
|
-
}
|
|
98
|
-
// Handle arrays
|
|
99
|
-
if (Array.isArray(value)) {
|
|
100
|
-
if (value.length === 0) {
|
|
101
|
-
return '[0,]';
|
|
102
|
-
}
|
|
103
|
-
// For compact representation, join array items with comma
|
|
104
|
-
const items = value.map((item) => ToonConverter.toToonObjectCompact(item)).join(',');
|
|
105
|
-
return `[${value.length},]${items}`;
|
|
106
|
-
}
|
|
107
|
-
// Handle objects
|
|
108
|
-
if (typeof value === 'object') {
|
|
109
|
-
const entries = Object.entries(value);
|
|
110
|
-
if (entries.length === 0) {
|
|
111
|
-
return '{}';
|
|
112
|
-
}
|
|
113
|
-
const lines = entries
|
|
114
|
-
.map(([key, val]) => {
|
|
115
|
-
// Use short key if available
|
|
116
|
-
const shortKey = ToonConverter.KEY_MAP[key] || key;
|
|
117
|
-
const valueStr = ToonConverter.toToonString(val, depth);
|
|
118
|
-
// Keep everything compact on same line for simple values
|
|
119
|
-
return `${shortKey}:${valueStr}`;
|
|
120
|
-
})
|
|
121
|
-
.join(',');
|
|
122
|
-
return lines;
|
|
123
|
-
}
|
|
124
|
-
// Fallback for unknown types
|
|
125
|
-
return String(value);
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Converts an object to compact TOON format (for array items).
|
|
129
|
-
*
|
|
130
|
-
* @param value - Object to convert
|
|
131
|
-
* @returns Compact TOON string
|
|
132
|
-
* @private
|
|
133
|
-
*/
|
|
134
|
-
static toToonObjectCompact(value) {
|
|
135
|
-
if (value === null || value === undefined) {
|
|
136
|
-
return String(value);
|
|
137
|
-
}
|
|
138
|
-
if (typeof value !== 'object') {
|
|
139
|
-
return String(value);
|
|
140
|
-
}
|
|
141
|
-
if (value instanceof Date) {
|
|
142
|
-
return ToonConverter.formatCompactTimestamp(value);
|
|
143
|
-
}
|
|
144
|
-
if (Array.isArray(value)) {
|
|
145
|
-
return `[${value.length}]`;
|
|
146
|
-
}
|
|
147
|
-
// For objects, create a compact inline representation
|
|
148
|
-
const entries = Object.entries(value);
|
|
149
|
-
const pairs = entries
|
|
150
|
-
.filter(([, v]) => {
|
|
151
|
-
// Skip empty strings and empty arrays to reduce tokens
|
|
152
|
-
if (v === '')
|
|
153
|
-
return false;
|
|
154
|
-
if (Array.isArray(v) && v.length === 0)
|
|
155
|
-
return false;
|
|
156
|
-
return true;
|
|
157
|
-
})
|
|
158
|
-
.map(([k, v]) => {
|
|
159
|
-
// Use short key if available
|
|
160
|
-
const shortKey = ToonConverter.KEY_MAP[k] || k;
|
|
161
|
-
let valStr;
|
|
162
|
-
if (v === null || v === undefined) {
|
|
163
|
-
valStr = String(v);
|
|
164
|
-
}
|
|
165
|
-
else if (typeof v === 'string') {
|
|
166
|
-
valStr = ToonConverter.needsQuotes(v) ? JSON.stringify(v) : v;
|
|
167
|
-
}
|
|
168
|
-
else if (typeof v === 'object') {
|
|
169
|
-
if (v instanceof Date) {
|
|
170
|
-
valStr = ToonConverter.formatCompactTimestamp(v);
|
|
171
|
-
}
|
|
172
|
-
else if (Array.isArray(v)) {
|
|
173
|
-
valStr = `[${v.length}]`;
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
valStr = ToonConverter.toToonObjectCompact(v);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
valStr = String(v);
|
|
181
|
-
}
|
|
182
|
-
return `${shortKey}:${valStr}`;
|
|
183
|
-
});
|
|
184
|
-
return `{${pairs.join(',')}}`;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Formats a Date object to compact timestamp format.
|
|
188
|
-
*
|
|
189
|
-
* Converts ISO 8601 timestamp to compact format:
|
|
190
|
-
* - Input: 2025-01-21T12:00:00.000Z
|
|
191
|
-
* - Output: 20250121 120000
|
|
192
|
-
*
|
|
193
|
-
* This reduces token count by removing separators and milliseconds.
|
|
194
|
-
*
|
|
195
|
-
* @param date - Date object to format
|
|
196
|
-
* @returns Compact timestamp string
|
|
197
|
-
* @private
|
|
198
|
-
*/
|
|
199
|
-
static formatCompactTimestamp(date) {
|
|
200
|
-
return date
|
|
201
|
-
.toISOString()
|
|
202
|
-
.replace(/\.\d{3}Z$/, '') // Remove milliseconds and Z
|
|
203
|
-
.replace(/T/, ' ') // Replace T with space
|
|
204
|
-
.replace(/-/g, '') // Remove hyphens
|
|
205
|
-
.replace(/:/g, ''); // Remove colons
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Checks if a string value needs to be quoted in TOON format.
|
|
209
|
-
*
|
|
210
|
-
* Strings are quoted if they contain:
|
|
211
|
-
* - Spaces
|
|
212
|
-
* - Special characters (except hyphen and underscore)
|
|
213
|
-
* - Start with a number
|
|
214
|
-
* - Reserved keywords (null, undefined, true, false)
|
|
215
|
-
*
|
|
216
|
-
* @param value - String value to check
|
|
217
|
-
* @returns True if the string needs quotes
|
|
218
|
-
* @private
|
|
219
|
-
*/
|
|
220
|
-
static needsQuotes(value) {
|
|
221
|
-
// Empty strings need quotes
|
|
222
|
-
if (value.length === 0) {
|
|
223
|
-
return true;
|
|
224
|
-
}
|
|
225
|
-
// Reserved keywords need quotes
|
|
226
|
-
const reserved = ['null', 'undefined', 'true', 'false'];
|
|
227
|
-
if (reserved.includes(value)) {
|
|
228
|
-
return true;
|
|
229
|
-
}
|
|
230
|
-
// Check for special characters, spaces, or newlines
|
|
231
|
-
// Allow: alphanumeric, hyphen, underscore, forward slash, period, colon
|
|
232
|
-
const needsQuotesPattern = /[^a-zA-Z0-9\-_/.:\u3000-\u9fff]/;
|
|
233
|
-
return needsQuotesPattern.test(value);
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Converts TOON format string back to JSON-compatible data.
|
|
237
|
-
*
|
|
238
|
-
* This method reverses the convertToToon operation, restoring the original data structure.
|
|
239
|
-
* - Expands short keys back to full keys
|
|
240
|
-
* - Parses compact timestamps back to Date objects
|
|
241
|
-
* - Reconstructs arrays and objects from TOON notation
|
|
242
|
-
*
|
|
243
|
-
* @param toonString - TOON-formatted string to convert
|
|
244
|
-
* @returns JSON-compatible data
|
|
245
|
-
*
|
|
246
|
-
* @example
|
|
247
|
-
* ```typescript
|
|
248
|
-
* const toonStr = "sid:abc123,agt:rule-advisor,h:[1,]{ts:20250121 120000},cat:20250121 120000"
|
|
249
|
-
* const data = ToonConverter.convertToJson(toonStr)
|
|
250
|
-
* // Returns: { sessionId: 'abc123', agentType: 'rule-advisor', history: [...], ... }
|
|
251
|
-
* ```
|
|
252
|
-
*/
|
|
253
|
-
static convertToJson(toonString) {
|
|
254
|
-
try {
|
|
255
|
-
return ToonConverter.parseToonString(toonString);
|
|
256
|
-
}
|
|
257
|
-
catch (error) {
|
|
258
|
-
// Fallback to JSON.parse on error
|
|
259
|
-
console.error('TOON parsing failed, attempting JSON.parse:', error);
|
|
260
|
-
try {
|
|
261
|
-
return JSON.parse(toonString);
|
|
262
|
-
}
|
|
263
|
-
catch {
|
|
264
|
-
throw new Error(`Failed to parse TOON string: ${error instanceof Error ? error.message : String(error)}`);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Parses a TOON format string into a JSON-compatible value.
|
|
270
|
-
*
|
|
271
|
-
* @param input - TOON string to parse
|
|
272
|
-
* @returns Parsed value
|
|
273
|
-
* @private
|
|
274
|
-
*/
|
|
275
|
-
static parseToonString(input) {
|
|
276
|
-
const trimmed = input.trim();
|
|
277
|
-
// Handle null
|
|
278
|
-
if (trimmed === 'null') {
|
|
279
|
-
return null;
|
|
280
|
-
}
|
|
281
|
-
// Handle undefined
|
|
282
|
-
if (trimmed === 'undefined') {
|
|
283
|
-
return undefined;
|
|
284
|
-
}
|
|
285
|
-
// Handle boolean
|
|
286
|
-
if (trimmed === 'true') {
|
|
287
|
-
return true;
|
|
288
|
-
}
|
|
289
|
-
if (trimmed === 'false') {
|
|
290
|
-
return false;
|
|
291
|
-
}
|
|
292
|
-
// Handle number
|
|
293
|
-
if (/^-?\d+(\.\d+)?$/.test(trimmed)) {
|
|
294
|
-
return Number(trimmed);
|
|
295
|
-
}
|
|
296
|
-
// Handle compact timestamp (20250121 120000)
|
|
297
|
-
if (/^\d{8} \d{6}$/.test(trimmed)) {
|
|
298
|
-
return ToonConverter.parseCompactTimestamp(trimmed);
|
|
299
|
-
}
|
|
300
|
-
// Handle array notation [length,]items
|
|
301
|
-
if (trimmed.startsWith('[') && trimmed.includes(',]')) {
|
|
302
|
-
return ToonConverter.parseArray(trimmed);
|
|
303
|
-
}
|
|
304
|
-
// Handle explicit object notation with braces
|
|
305
|
-
if (trimmed.startsWith('{') && trimmed.endsWith('}')) {
|
|
306
|
-
return ToonConverter.parseObject(trimmed);
|
|
307
|
-
}
|
|
308
|
-
// Handle object notation (key:value pairs)
|
|
309
|
-
if (trimmed.includes(':') && !trimmed.startsWith('"')) {
|
|
310
|
-
return ToonConverter.parseObject(trimmed);
|
|
311
|
-
}
|
|
312
|
-
// Handle quoted strings
|
|
313
|
-
if (trimmed.startsWith('"') && trimmed.endsWith('"')) {
|
|
314
|
-
return JSON.parse(trimmed);
|
|
315
|
-
}
|
|
316
|
-
// Return as-is string
|
|
317
|
-
return trimmed;
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* Parses a compact timestamp string back to Date object.
|
|
321
|
-
*
|
|
322
|
-
* Converts compact format to ISO 8601:
|
|
323
|
-
* - Input: 20250121 120000
|
|
324
|
-
* - Output: Date('2025-01-21T12:00:00.000Z')
|
|
325
|
-
*
|
|
326
|
-
* @param timestamp - Compact timestamp string
|
|
327
|
-
* @returns Date object
|
|
328
|
-
* @private
|
|
329
|
-
*/
|
|
330
|
-
static parseCompactTimestamp(timestamp) {
|
|
331
|
-
const parts = timestamp.split(' ');
|
|
332
|
-
if (parts.length !== 2 || !parts[0] || !parts[1]) {
|
|
333
|
-
throw new Error(`Invalid compact timestamp format: ${timestamp}`);
|
|
334
|
-
}
|
|
335
|
-
const datePart = parts[0];
|
|
336
|
-
const timePart = parts[1];
|
|
337
|
-
const year = datePart.slice(0, 4);
|
|
338
|
-
const month = datePart.slice(4, 6);
|
|
339
|
-
const day = datePart.slice(6, 8);
|
|
340
|
-
const hour = timePart.slice(0, 2);
|
|
341
|
-
const minute = timePart.slice(2, 4);
|
|
342
|
-
const second = timePart.slice(4, 6);
|
|
343
|
-
return new Date(`${year}-${month}-${day}T${hour}:${minute}:${second}.000Z`);
|
|
344
|
-
}
|
|
345
|
-
/**
|
|
346
|
-
* Parses TOON array notation.
|
|
347
|
-
*
|
|
348
|
-
* Format: [length,]item1,item2,item3
|
|
349
|
-
* or [length,]{item1},{item2}
|
|
350
|
-
*
|
|
351
|
-
* @param input - TOON array string
|
|
352
|
-
* @returns Parsed array
|
|
353
|
-
* @private
|
|
354
|
-
*/
|
|
355
|
-
static parseArray(input) {
|
|
356
|
-
// Extract length from [length,]
|
|
357
|
-
const lengthMatch = input.match(/^\[(\d+),\]/);
|
|
358
|
-
if (!lengthMatch || !lengthMatch[1]) {
|
|
359
|
-
return [];
|
|
360
|
-
}
|
|
361
|
-
const length = Number.parseInt(lengthMatch[1], 10);
|
|
362
|
-
if (length === 0) {
|
|
363
|
-
return [];
|
|
364
|
-
}
|
|
365
|
-
// Extract items after [length,]
|
|
366
|
-
const itemsStr = input.slice(lengthMatch[0].length);
|
|
367
|
-
if (itemsStr.length === 0) {
|
|
368
|
-
return [];
|
|
369
|
-
}
|
|
370
|
-
// Parse items (handling nested objects and arrays)
|
|
371
|
-
const items = [];
|
|
372
|
-
let currentItem = '';
|
|
373
|
-
let depth = 0;
|
|
374
|
-
let inString = false;
|
|
375
|
-
for (let i = 0; i < itemsStr.length; i++) {
|
|
376
|
-
const char = itemsStr[i];
|
|
377
|
-
if (char === '"' && (i === 0 || itemsStr[i - 1] !== '\\')) {
|
|
378
|
-
inString = !inString;
|
|
379
|
-
currentItem += char;
|
|
380
|
-
continue;
|
|
381
|
-
}
|
|
382
|
-
if (inString) {
|
|
383
|
-
currentItem += char;
|
|
384
|
-
continue;
|
|
385
|
-
}
|
|
386
|
-
if (char === '{' || char === '[') {
|
|
387
|
-
depth++;
|
|
388
|
-
currentItem += char;
|
|
389
|
-
}
|
|
390
|
-
else if (char === '}' || char === ']') {
|
|
391
|
-
depth--;
|
|
392
|
-
currentItem += char;
|
|
393
|
-
// When we complete a nested object/array at depth 0, treat it as end of item
|
|
394
|
-
if (depth === 0 && (char === '}' || char === ']')) {
|
|
395
|
-
if (currentItem.trim().length > 0) {
|
|
396
|
-
items.push(ToonConverter.parseToonString(currentItem.trim()));
|
|
397
|
-
currentItem = '';
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
else if (char === ',' && depth === 0) {
|
|
402
|
-
if (currentItem.trim().length > 0) {
|
|
403
|
-
items.push(ToonConverter.parseToonString(currentItem.trim()));
|
|
404
|
-
}
|
|
405
|
-
currentItem = '';
|
|
406
|
-
}
|
|
407
|
-
else {
|
|
408
|
-
currentItem += char;
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
// Add last item
|
|
412
|
-
if (currentItem.trim().length > 0) {
|
|
413
|
-
items.push(ToonConverter.parseToonString(currentItem.trim()));
|
|
414
|
-
}
|
|
415
|
-
return items;
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Parses TOON object notation.
|
|
419
|
-
*
|
|
420
|
-
* Format: key1:value1,key2:value2
|
|
421
|
-
* or {key1:value1,key2:value2}
|
|
422
|
-
*
|
|
423
|
-
* @param input - TOON object string
|
|
424
|
-
* @returns Parsed object
|
|
425
|
-
* @private
|
|
426
|
-
*/
|
|
427
|
-
static parseObject(input) {
|
|
428
|
-
let objectStr = input.trim();
|
|
429
|
-
// Remove outer braces if present
|
|
430
|
-
if (objectStr.startsWith('{') && objectStr.endsWith('}')) {
|
|
431
|
-
objectStr = objectStr.slice(1, -1);
|
|
432
|
-
}
|
|
433
|
-
const result = {};
|
|
434
|
-
let currentPair = '';
|
|
435
|
-
let depth = 0;
|
|
436
|
-
let inString = false;
|
|
437
|
-
let inArrayNotation = false; // Track if we're in array notation [N,]
|
|
438
|
-
let arrayItemsRemaining = 0; // Number of array items to parse
|
|
439
|
-
for (let i = 0; i < objectStr.length; i++) {
|
|
440
|
-
const char = objectStr[i];
|
|
441
|
-
if (char === '"' && (i === 0 || objectStr[i - 1] !== '\\')) {
|
|
442
|
-
inString = !inString;
|
|
443
|
-
currentPair += char;
|
|
444
|
-
continue;
|
|
445
|
-
}
|
|
446
|
-
if (inString) {
|
|
447
|
-
currentPair += char;
|
|
448
|
-
continue;
|
|
449
|
-
}
|
|
450
|
-
if (char === '[') {
|
|
451
|
-
// Check if this is array notation [N,]
|
|
452
|
-
const remaining = objectStr.slice(i);
|
|
453
|
-
const arrayMatch = remaining.match(/^\[(\d+),\]/);
|
|
454
|
-
if (arrayMatch?.[1]) {
|
|
455
|
-
inArrayNotation = true;
|
|
456
|
-
arrayItemsRemaining = Number.parseInt(arrayMatch[1], 10);
|
|
457
|
-
depth++; // Count the array as depth
|
|
458
|
-
}
|
|
459
|
-
else {
|
|
460
|
-
depth++;
|
|
461
|
-
}
|
|
462
|
-
currentPair += char;
|
|
463
|
-
}
|
|
464
|
-
else if (char === ']') {
|
|
465
|
-
currentPair += char;
|
|
466
|
-
if (inArrayNotation && depth === 1) {
|
|
467
|
-
// Don't decrease depth for the closing ] of [N,]
|
|
468
|
-
inArrayNotation = false;
|
|
469
|
-
// If the array is empty, reset depth to 0
|
|
470
|
-
if (arrayItemsRemaining === 0) {
|
|
471
|
-
depth = 0;
|
|
472
|
-
}
|
|
473
|
-
// Keep depth at 1 for non-empty arrays because we're still inside the array value
|
|
474
|
-
}
|
|
475
|
-
else {
|
|
476
|
-
depth--;
|
|
477
|
-
if (depth < 0) {
|
|
478
|
-
break;
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
else if (char === '{') {
|
|
483
|
-
if (arrayItemsRemaining > 0 && depth === 1) {
|
|
484
|
-
// This is the start of an array item
|
|
485
|
-
// Don't increment depth relative to array level
|
|
486
|
-
}
|
|
487
|
-
depth++;
|
|
488
|
-
currentPair += char;
|
|
489
|
-
}
|
|
490
|
-
else if (char === '}') {
|
|
491
|
-
depth--;
|
|
492
|
-
currentPair += char;
|
|
493
|
-
if (arrayItemsRemaining > 0 && depth === 1) {
|
|
494
|
-
// Completed an array item
|
|
495
|
-
arrayItemsRemaining--;
|
|
496
|
-
if (arrayItemsRemaining === 0) {
|
|
497
|
-
// Array is complete, reset depth
|
|
498
|
-
depth = 0;
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
if (depth < 0) {
|
|
502
|
-
break;
|
|
503
|
-
}
|
|
504
|
-
}
|
|
505
|
-
else if (char === ',' && depth === 0) {
|
|
506
|
-
// Only treat as separator if we're at depth 0
|
|
507
|
-
if (currentPair.trim().length > 0) {
|
|
508
|
-
ToonConverter.parseKeyValue(currentPair.trim(), result);
|
|
509
|
-
}
|
|
510
|
-
currentPair = '';
|
|
511
|
-
arrayItemsRemaining = 0; // Reset
|
|
512
|
-
}
|
|
513
|
-
else {
|
|
514
|
-
currentPair += char;
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
// Add last pair
|
|
518
|
-
if (currentPair.trim().length > 0) {
|
|
519
|
-
ToonConverter.parseKeyValue(currentPair.trim(), result);
|
|
520
|
-
}
|
|
521
|
-
return result;
|
|
522
|
-
}
|
|
523
|
-
/**
|
|
524
|
-
* Parses a key:value pair and adds it to the result object.
|
|
525
|
-
*
|
|
526
|
-
* @param pair - Key:value pair string
|
|
527
|
-
* @param result - Result object to add to
|
|
528
|
-
* @private
|
|
529
|
-
*/
|
|
530
|
-
static parseKeyValue(pair, result) {
|
|
531
|
-
// Find the first colon that's not inside quotes or nested structures
|
|
532
|
-
let colonIndex = -1;
|
|
533
|
-
let inString = false;
|
|
534
|
-
let depth = 0;
|
|
535
|
-
for (let i = 0; i < pair.length; i++) {
|
|
536
|
-
const char = pair[i];
|
|
537
|
-
if (char === '"' && (i === 0 || pair[i - 1] !== '\\')) {
|
|
538
|
-
inString = !inString;
|
|
539
|
-
}
|
|
540
|
-
else if (!inString) {
|
|
541
|
-
if (char === '{' || char === '[') {
|
|
542
|
-
depth++;
|
|
543
|
-
}
|
|
544
|
-
else if (char === '}' || char === ']') {
|
|
545
|
-
depth--;
|
|
546
|
-
}
|
|
547
|
-
else if (char === ':' && depth === 0) {
|
|
548
|
-
colonIndex = i;
|
|
549
|
-
break;
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
if (colonIndex === -1) {
|
|
554
|
-
return;
|
|
555
|
-
}
|
|
556
|
-
let key = pair.slice(0, colonIndex).trim();
|
|
557
|
-
const valueStr = pair.slice(colonIndex + 1).trim();
|
|
558
|
-
// Remove quotes from key if present (for JSON compatibility)
|
|
559
|
-
if (key.startsWith('"') && key.endsWith('"')) {
|
|
560
|
-
key = JSON.parse(key);
|
|
561
|
-
}
|
|
562
|
-
// Expand short key to full key
|
|
563
|
-
const fullKey = ToonConverter.REVERSE_KEY_MAP[key] || key;
|
|
564
|
-
// Parse value
|
|
565
|
-
const value = ToonConverter.parseToonString(valueStr);
|
|
566
|
-
result[fullKey] = value;
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
exports.ToonConverter = ToonConverter;
|
|
570
|
-
/**
|
|
571
|
-
* Map of common long keys to short keys for token reduction.
|
|
572
|
-
* @private
|
|
573
|
-
*/
|
|
574
|
-
ToonConverter.KEY_MAP = {
|
|
575
|
-
sessionId: 'sid',
|
|
576
|
-
agentType: 'agt',
|
|
577
|
-
timestamp: 'ts',
|
|
578
|
-
request: 'req',
|
|
579
|
-
response: 'res',
|
|
580
|
-
createdAt: 'cat',
|
|
581
|
-
lastUpdatedAt: 'uat',
|
|
582
|
-
stdout: 'out',
|
|
583
|
-
stderr: 'err',
|
|
584
|
-
exitCode: 'ec',
|
|
585
|
-
executionTime: 'et',
|
|
586
|
-
history: 'h',
|
|
587
|
-
};
|
|
588
|
-
/**
|
|
589
|
-
* Reverse map from short keys to original keys.
|
|
590
|
-
* @private
|
|
591
|
-
*/
|
|
592
|
-
ToonConverter.REVERSE_KEY_MAP = Object.fromEntries(Object.entries(ToonConverter.KEY_MAP).map(([long, short]) => [short, long]));
|
|
593
|
-
//# sourceMappingURL=ToonConverter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToonConverter.js","sourceRoot":"","sources":["../../src/session/ToonConverter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TOON format utilities for SessionData
|
|
3
|
-
*
|
|
4
|
-
* Provides type-safe encode/decode functions for SessionData with Date handling.
|
|
5
|
-
*/
|
|
6
|
-
import type { SessionData } from '../types/SessionData';
|
|
7
|
-
/**
|
|
8
|
-
* Encodes SessionData to TOON format.
|
|
9
|
-
*
|
|
10
|
-
* @param sessionData - Session data to encode
|
|
11
|
-
* @returns TOON-formatted string
|
|
12
|
-
*/
|
|
13
|
-
export declare function encodeSessionData(sessionData: SessionData): string;
|
|
14
|
-
/**
|
|
15
|
-
* Decodes TOON format string to SessionData.
|
|
16
|
-
*
|
|
17
|
-
* Handles Date conversion from ISO strings to Date objects.
|
|
18
|
-
*
|
|
19
|
-
* @param toonString - TOON-formatted string
|
|
20
|
-
* @returns Decoded SessionData with proper Date types
|
|
21
|
-
*/
|
|
22
|
-
export declare function decodeSessionData(toonString: string): SessionData;
|
|
23
|
-
//# sourceMappingURL=ToonUtils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToonUtils.d.ts","sourceRoot":"","sources":["../../src/session/ToonUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAElE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAUjE"}
|