@kernlang/terminal 3.1.6 → 3.1.7

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/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * @kernlang/terminal — ANSI terminal rendering transpiler + Ink (React) transpiler
3
3
  */
4
- export { transpileTerminal } from './transpiler-terminal.js';
5
4
  export { transpileInk } from './transpiler-ink.js';
5
+ export { transpileTerminal } from './transpiler-terminal.js';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @kernlang/terminal — ANSI terminal rendering transpiler + Ink (React) transpiler
3
3
  */
4
- export { transpileTerminal } from './transpiler-terminal.js';
5
4
  export { transpileInk } from './transpiler-ink.js';
5
+ export { transpileTerminal } from './transpiler-terminal.js';
6
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1,2 +1,2 @@
1
- import type { IRNode, TranspileResult, ResolvedKernConfig } from '@kernlang/core';
1
+ import type { IRNode, ResolvedKernConfig, TranspileResult } from '@kernlang/core';
2
2
  export declare function transpileInk(root: IRNode, _config?: ResolvedKernConfig): TranspileResult;
@@ -1,4 +1,4 @@
1
- import { countTokens, serializeIR, isCoreNode, generateCoreNode, generateMachineReducer, getProps, getChildren, dedent, buildDiagnostics, accountNode } from '@kernlang/core';
1
+ import { accountNode, buildDiagnostics, countTokens, dedent, generateCoreNode, generateMachineReducer, getChildren, getProps, isCoreNode, serializeIR, } from '@kernlang/core';
2
2
  /**
3
3
  * Ink Transpiler — generates React (Ink) TSX components for terminal UIs
4
4
  *
@@ -83,24 +83,34 @@ function inkColor(color) {
83
83
  function keyToCheck(key) {
84
84
  switch (key) {
85
85
  case 'return':
86
- case 'Enter': return 'key.return';
86
+ case 'Enter':
87
+ return 'key.return';
87
88
  case 'escape':
88
- case 'Escape': return 'key.escape';
89
+ case 'Escape':
90
+ return 'key.escape';
89
91
  case 'tab':
90
- case 'Tab': return 'key.tab';
92
+ case 'Tab':
93
+ return 'key.tab';
91
94
  case 'up':
92
- case 'ArrowUp': return 'key.upArrow';
95
+ case 'ArrowUp':
96
+ return 'key.upArrow';
93
97
  case 'down':
94
- case 'ArrowDown': return 'key.downArrow';
98
+ case 'ArrowDown':
99
+ return 'key.downArrow';
95
100
  case 'left':
96
- case 'ArrowLeft': return 'key.leftArrow';
101
+ case 'ArrowLeft':
102
+ return 'key.leftArrow';
97
103
  case 'right':
98
- case 'ArrowRight': return 'key.rightArrow';
104
+ case 'ArrowRight':
105
+ return 'key.rightArrow';
99
106
  case 'backspace':
100
- case 'Backspace': return 'key.backspace';
107
+ case 'Backspace':
108
+ return 'key.backspace';
101
109
  case 'delete':
102
- case 'Delete': return 'key.delete';
103
- default: return `input === '${key}'`;
110
+ case 'Delete':
111
+ return 'key.delete';
112
+ default:
113
+ return `input === '${key}'`;
104
114
  }
105
115
  }
106
116
  // ── Import tracker ──────────────────────────────────────────────────────
@@ -110,11 +120,21 @@ class ImportTracker {
110
120
  inkSpinner = false;
111
121
  inkTextInput = false;
112
122
  inkSelectInput = false;
113
- addReact(name) { this.reactImports.add(name); }
114
- addInk(name) { this.inkImports.add(name); }
115
- needSpinner() { this.inkSpinner = true; }
116
- needTextInput() { this.inkTextInput = true; }
117
- needSelectInput() { this.inkSelectInput = true; }
123
+ addReact(name) {
124
+ this.reactImports.add(name);
125
+ }
126
+ addInk(name) {
127
+ this.inkImports.add(name);
128
+ }
129
+ needSpinner() {
130
+ this.inkSpinner = true;
131
+ }
132
+ needTextInput() {
133
+ this.inkTextInput = true;
134
+ }
135
+ needSelectInput() {
136
+ this.inkSelectInput = true;
137
+ }
118
138
  emit() {
119
139
  const lines = [];
120
140
  if (this.reactImports.size > 0) {
@@ -146,18 +166,27 @@ function generateStateHook(stateNode, imports) {
146
166
  const initialProp = props.initial;
147
167
  if (name && initialProp !== undefined) {
148
168
  imports.addReact('useState');
149
- const initial = isExpr(initialProp)
150
- ? initialProp.code
151
- : String(initialProp);
152
- const initVal = isExpr(initialProp) ? initial
153
- : initial === 'null' ? 'null'
154
- : initial === 'true' ? 'true'
155
- : initial === 'false' ? 'false'
156
- : initial.startsWith('[') || initial.startsWith('{') ? initial
157
- : isNaN(Number(initial)) ? `'${initial}'`
158
- : String(initial);
169
+ const initial = isExpr(initialProp) ? initialProp.code : String(initialProp);
170
+ const initVal = isExpr(initialProp)
171
+ ? initial
172
+ : initial === 'null'
173
+ ? 'null'
174
+ : initial === 'true'
175
+ ? 'true'
176
+ : initial === 'false'
177
+ ? 'false'
178
+ : initial.startsWith('[') || initial.startsWith('{')
179
+ ? initial
180
+ : initial.startsWith("'") || initial.startsWith('"')
181
+ ? initial
182
+ : initial.includes('(') || initial.includes('.')
183
+ ? initial
184
+ : Number.isNaN(Number(initial))
185
+ ? `'${initial}'`
186
+ : String(initial);
159
187
  const setter = `set${capitalize(name)}`;
160
- lines.push(` const [${name}, ${setter}] = useState(${initVal});`);
188
+ const typeAnnotation = props.type ? `<${props.type}>` : '';
189
+ lines.push(` const [${name}, ${setter}] = useState${typeAnnotation}(${initVal});`);
161
190
  }
162
191
  return lines;
163
192
  }
@@ -169,10 +198,10 @@ function generateRefHook(refNode, imports) {
169
198
  const initialProp = props.initial;
170
199
  if (name) {
171
200
  imports.addReact('useRef');
172
- const initVal = initialProp === undefined ? 'null'
173
- : isExpr(initialProp) ? unwrapProp(initialProp)
174
- : String(initialProp);
175
- lines.push(` const ${name}Ref = useRef(${initVal});`);
201
+ const initVal = initialProp === undefined ? 'null' : isExpr(initialProp) ? unwrapProp(initialProp) : String(initialProp);
202
+ const refName = name.endsWith('Ref') ? name : `${name}Ref`;
203
+ const typeAnnotation = props.type ? `<${props.type}>` : '';
204
+ lines.push(` const ${refName} = useRef${typeAnnotation}(${initVal});`);
176
205
  }
177
206
  return lines;
178
207
  }
@@ -208,8 +237,10 @@ function generateStreamEffect(streamNode, imports) {
208
237
  function generateLogicEffect(logicNode, imports) {
209
238
  const lines = [];
210
239
  const props = getProps(logicNode);
211
- const code = props.code || '';
212
240
  const deps = props.deps;
241
+ // Support both inline code prop and handler child
242
+ const handlerChild = (logicNode.children || []).find((c) => c.type === 'handler');
243
+ const code = handlerChild ? getProps(handlerChild).code || '' : props.code || '';
213
244
  if (code) {
214
245
  imports.addReact('useEffect');
215
246
  const dedented = dedent(code);
@@ -229,10 +260,15 @@ function generateCallbackHook(callbackNode, imports) {
229
260
  const name = props.name;
230
261
  const params = props.params || '';
231
262
  const deps = props.deps;
232
- const handlerChild = (callbackNode.children || []).find(c => c.type === 'handler');
233
- const code = handlerChild ? (getProps(handlerChild).code || '') : '';
263
+ const handlerChild = (callbackNode.children || []).find((c) => c.type === 'handler');
264
+ const code = handlerChild ? getProps(handlerChild).code || '' : '';
234
265
  if (name && code) {
235
266
  imports.addReact('useCallback');
267
+ // Auto-detect hooks used inside callback handler code
268
+ if (code.includes('useMemo'))
269
+ imports.addReact('useMemo');
270
+ if (code.includes('useRef'))
271
+ imports.addReact('useRef');
236
272
  const dedented = dedent(code);
237
273
  const depsStr = deps ? `[${deps}]` : '[]';
238
274
  const isAsync = props.async === 'true' || props.async === true;
@@ -265,10 +301,13 @@ function generateOnHook(onNode, imports) {
265
301
  const event = (onProps.event || onProps.name);
266
302
  if (event === 'key' || event === 'input') {
267
303
  imports.addInk('useInput');
304
+ imports.addReact('useRef');
268
305
  const key = onProps.key;
269
- const handlerChild = (onNode.children || []).find(c => c.type === 'handler');
270
- const code = handlerChild ? (getProps(handlerChild).code || '') : '';
271
- lines.push(` useInput((input, key) => {`);
306
+ const handlerChild = (onNode.children || []).find((c) => c.type === 'handler');
307
+ const code = handlerChild ? getProps(handlerChild).code || '' : '';
308
+ // Use ref pattern for fresh closures — handler always sees current state
309
+ lines.push(` const _inputHandlerRef = useRef<(input: string, key: any) => void>(() => {});`);
310
+ lines.push(` _inputHandlerRef.current = (input: string, key: any) => {`);
272
311
  if (key) {
273
312
  lines.push(` if (!(${keyToCheck(key)})) return;`);
274
313
  }
@@ -278,7 +317,8 @@ function generateOnHook(onNode, imports) {
278
317
  lines.push(` ${line}`);
279
318
  }
280
319
  }
281
- lines.push(` });`);
320
+ lines.push(` };`);
321
+ lines.push(` useInput((input: string, key: any) => _inputHandlerRef.current(input, key));`);
282
322
  lines.push('');
283
323
  }
284
324
  return lines;
@@ -299,7 +339,7 @@ function renderInkText(p, indent, imports) {
299
339
  textProps.push(`color=${inkColor(styles.c || styles.color)}`);
300
340
  if (styles.bg)
301
341
  textProps.push(`backgroundColor=${inkColor(styles.bg)}`);
302
- const propsStr = textProps.length > 0 ? ' ' + textProps.join(' ') : '';
342
+ const propsStr = textProps.length > 0 ? ` ${textProps.join(' ')}` : '';
303
343
  if (isExpr(rawValue)) {
304
344
  return [`${indent}<Text${propsStr}>{${rawValue.code}}</Text>`];
305
345
  }
@@ -337,13 +377,13 @@ function renderInkBox(node, p, indent, imports) {
337
377
  boxProps.push(`paddingX={${paddingX}}`);
338
378
  if (paddingY)
339
379
  boxProps.push(`paddingY={${paddingY}}`);
340
- const propsStr = boxProps.length > 0 ? ' ' + boxProps.join(' ') : '';
380
+ const propsStr = boxProps.length > 0 ? ` ${boxProps.join(' ')}` : '';
341
381
  const lines = [];
342
382
  lines.push(`${indent}<Box${propsStr}>`);
343
383
  for (const child of node.children || []) {
344
384
  if (child.type === 'on')
345
385
  continue;
346
- lines.push(...renderInkNode(child, indent + ' ', imports));
386
+ lines.push(...renderInkNode(child, `${indent} `, imports));
347
387
  }
348
388
  lines.push(`${indent}</Box>`);
349
389
  return lines;
@@ -389,7 +429,7 @@ function renderInkScoreboard(node, p, indent, imports) {
389
429
  const mname = mp.name || '';
390
430
  const values = mp.values || '[]';
391
431
  lines.push(`${indent} <Box>`);
392
- lines.push(`${indent} <Text dimColor>{${JSON.stringify(mname + ':')}}</Text>`);
432
+ lines.push(`${indent} <Text dimColor>{${JSON.stringify(`${mname}:`)}}</Text>`);
393
433
  lines.push(`${indent} <Text>{' '}{(${values} as string[]).join(' | ')}</Text>`);
394
434
  lines.push(`${indent} </Box>`);
395
435
  }
@@ -402,13 +442,10 @@ function renderInkSpinner(p, indent, imports) {
402
442
  const rawMsg = p.message;
403
443
  const color = p.color;
404
444
  const spinnerColor = color ? ` color=${inkColor(color)}` : '';
405
- const msgContent = isExpr(rawMsg) ? `{${rawMsg.code}}` : `{' ${String(rawMsg ?? 'Loading...')}'}`;
406
- return [
407
- `${indent}<Text>`,
408
- `${indent} <Spinner${spinnerColor} />`,
409
- `${indent} ${msgContent}`,
410
- `${indent}</Text>`,
411
- ];
445
+ const msgContent = isExpr(rawMsg)
446
+ ? `{${rawMsg.code}}`
447
+ : `{' ${String(rawMsg ?? 'Loading...')}'}`;
448
+ return [`${indent}<Text>`, `${indent} <Spinner${spinnerColor} />`, `${indent} ${msgContent}`, `${indent}</Text>`];
412
449
  }
413
450
  function renderInkProgress(p, indent, imports) {
414
451
  imports.addInk('Box');
@@ -470,7 +507,7 @@ function renderInkInputArea(node, indent, imports) {
470
507
  for (const child of node.children || []) {
471
508
  if (child.type === 'on')
472
509
  continue;
473
- lines.push(...renderInkNode(child, indent + ' ', imports));
510
+ lines.push(...renderInkNode(child, `${indent} `, imports));
474
511
  }
475
512
  lines.push(`${indent}</Box>`);
476
513
  return lines;
@@ -482,7 +519,7 @@ function renderInkOutputArea(node, indent, imports) {
482
519
  for (const child of node.children || []) {
483
520
  if (child.type === 'on')
484
521
  continue;
485
- lines.push(...renderInkNode(child, indent + ' ', imports));
522
+ lines.push(...renderInkNode(child, `${indent} `, imports));
486
523
  }
487
524
  lines.push(`${indent}</Box>`);
488
525
  return lines;
@@ -510,7 +547,7 @@ function renderInkTextInput(p, indent, imports) {
510
547
  function renderInkSelectInput(p, indent, imports) {
511
548
  imports.needSelectInput();
512
549
  const rawItems = p.items;
513
- const items = isExpr(rawItems) ? rawItems.code : (rawItems || '[]');
550
+ const items = isExpr(rawItems) ? rawItems.code : rawItems || '[]';
514
551
  const onSelect = p.onSelect;
515
552
  const selectProps = [`items={${items}}`];
516
553
  if (onSelect) {
@@ -521,20 +558,22 @@ function renderInkSelectInput(p, indent, imports) {
521
558
  function renderInkHandler(p, indent) {
522
559
  const code = p.code || '';
523
560
  const dedented = dedent(code);
524
- return dedented.split('\n').map(line => `${indent}${line}`);
561
+ return dedented.split('\n').map((line) => `${indent}${line}`);
525
562
  }
526
563
  function renderInkEach(node, p, indent, imports) {
527
564
  const rawCollection = p.collection;
528
- const collection = isExpr(rawCollection) ? rawCollection.code : (rawCollection || '[]');
565
+ const collection = isExpr(rawCollection)
566
+ ? rawCollection.code
567
+ : rawCollection || '[]';
529
568
  const item = p.item || 'item';
530
569
  const index = p.index || 'i';
531
570
  const rawKey = p.key;
532
- const key = isExpr(rawKey) ? rawKey.code : (rawKey || index);
571
+ const key = isExpr(rawKey) ? rawKey.code : rawKey || index;
533
572
  const lines = [];
534
573
  lines.push(`${indent}{${collection}.map((${item}, ${index}) => (`);
535
574
  const children = node.children || [];
536
575
  if (children.length === 1) {
537
- const childLines = renderInkNode(children[0], indent + ' ', imports);
576
+ const childLines = renderInkNode(children[0], `${indent} `, imports);
538
577
  if (childLines.length > 0) {
539
578
  childLines[0] = childLines[0].replace(/^(\s*<\w+)/, `$1 key={${key}}`);
540
579
  }
@@ -543,7 +582,7 @@ function renderInkEach(node, p, indent, imports) {
543
582
  else {
544
583
  lines.push(`${indent} <React.Fragment key={${key}}>`);
545
584
  for (const child of children) {
546
- lines.push(...renderInkNode(child, indent + ' ', imports));
585
+ lines.push(...renderInkNode(child, `${indent} `, imports));
547
586
  }
548
587
  lines.push(`${indent} </React.Fragment>`);
549
588
  }
@@ -557,7 +596,7 @@ function renderInkConditional(node, p, indent, imports) {
557
596
  lines.push(`${indent}{${jsCondition} && (`);
558
597
  lines.push(`${indent} <>`);
559
598
  for (const child of node.children || []) {
560
- lines.push(...renderInkNode(child, indent + ' ', imports));
599
+ lines.push(...renderInkNode(child, `${indent} `, imports));
561
600
  }
562
601
  lines.push(`${indent} </>`);
563
602
  lines.push(`${indent})}`);
@@ -567,21 +606,36 @@ function renderInkConditional(node, p, indent, imports) {
567
606
  function renderInkNode(node, indent, imports) {
568
607
  const p = getProps(node);
569
608
  switch (node.type) {
570
- case 'text': return renderInkText(p, indent, imports);
571
- case 'separator': return renderInkSeparator(p, indent, imports);
572
- case 'box': return renderInkBox(node, p, indent, imports);
573
- case 'table': return renderInkTable(node, p, indent, imports);
574
- case 'scoreboard': return renderInkScoreboard(node, p, indent, imports);
575
- case 'spinner': return renderInkSpinner(p, indent, imports);
576
- case 'progress': return renderInkProgress(p, indent, imports);
577
- case 'gradient': return renderInkGradient(p, indent, imports);
578
- case 'input-area': return renderInkInputArea(node, indent, imports);
579
- case 'output-area': return renderInkOutputArea(node, indent, imports);
580
- case 'text-input': return renderInkTextInput(p, indent, imports);
581
- case 'select-input': return renderInkSelectInput(p, indent, imports);
582
- case 'handler': return renderInkHandler(p, indent);
583
- case 'each': return renderInkEach(node, p, indent, imports);
584
- case 'conditional': return renderInkConditional(node, p, indent, imports);
609
+ case 'text':
610
+ return renderInkText(p, indent, imports);
611
+ case 'separator':
612
+ return renderInkSeparator(p, indent, imports);
613
+ case 'box':
614
+ return renderInkBox(node, p, indent, imports);
615
+ case 'table':
616
+ return renderInkTable(node, p, indent, imports);
617
+ case 'scoreboard':
618
+ return renderInkScoreboard(node, p, indent, imports);
619
+ case 'spinner':
620
+ return renderInkSpinner(p, indent, imports);
621
+ case 'progress':
622
+ return renderInkProgress(p, indent, imports);
623
+ case 'gradient':
624
+ return renderInkGradient(p, indent, imports);
625
+ case 'input-area':
626
+ return renderInkInputArea(node, indent, imports);
627
+ case 'output-area':
628
+ return renderInkOutputArea(node, indent, imports);
629
+ case 'text-input':
630
+ return renderInkTextInput(p, indent, imports);
631
+ case 'select-input':
632
+ return renderInkSelectInput(p, indent, imports);
633
+ case 'handler':
634
+ return renderInkHandler(p, indent);
635
+ case 'each':
636
+ return renderInkEach(node, p, indent, imports);
637
+ case 'conditional':
638
+ return renderInkConditional(node, p, indent, imports);
585
639
  case 'state':
586
640
  case 'ref':
587
641
  case 'stream':
@@ -593,7 +647,7 @@ function renderInkNode(node, indent, imports) {
593
647
  const lines = [];
594
648
  if (isCoreNode(node.type)) {
595
649
  if (node.type === 'machine') {
596
- lines.push(...generateMachineReducer(node).map(l => l));
650
+ lines.push(...generateMachineReducer(node).map((l) => l));
597
651
  }
598
652
  else {
599
653
  lines.push(...generateCoreNode(node));
@@ -614,34 +668,68 @@ export function transpileInk(root, _config) {
614
668
  const sourceMap = [];
615
669
  const imports = new ImportTracker();
616
670
  const lines = [];
617
- const rootProps = getProps(root);
618
- const screenName = rootProps.name || 'App';
619
- // Feature #9: Component props from screen attributes
620
- const propsAttr = rootProps.props;
671
+ // Handle file-level AST: find the screen node, keep siblings as file-level nodes
672
+ const screenNode = root.type === 'screen' ? root : (root.children || []).find((c) => c.type === 'screen') || root;
673
+ const fileLevelNodes = root.type === 'screen' ? [] : (root.children || []).filter((c) => c !== screenNode);
674
+ const screenProps = getProps(screenNode);
675
+ const screenName = screenProps.name || 'App';
676
+ // Component props from screen attributes OR prop child nodes
677
+ const propsAttr = screenProps.props;
678
+ const propChildren = getChildren(screenNode, 'prop');
621
679
  const propParts = propsAttr ? splitPropsRespectingDepth(propsAttr) : [];
680
+ for (const pc of propChildren) {
681
+ const pp = getProps(pc);
682
+ const pName = pp.name;
683
+ const pType = pp.type || 'any';
684
+ const optional = pp.optional === 'true' || pp.optional === true;
685
+ if (pName)
686
+ propParts.push(`${pName}${optional ? '?' : ''}:${pType}`);
687
+ }
622
688
  const propsParam = propParts.length > 0
623
- ? `{ ${propParts.map(p => p.trim().split(':')[0].trim()).join(', ')} }: { ${propParts.map(p => {
689
+ ? `{ ${propParts.map((p) => p.trim().split(':')[0].replace('?', '').trim()).join(', ')} }: { ${propParts
690
+ .map((p) => {
624
691
  const trimmed = p.trim();
625
692
  if (trimmed.includes(':'))
626
693
  return trimmed;
627
694
  return `${trimmed}: any`;
628
- }).join('; ')} }`
695
+ })
696
+ .join('; ')} }`
629
697
  : '';
630
- // Separate node categories
631
- const stateNodes = getChildren(root, 'state');
632
- const refNodes = getChildren(root, 'ref');
633
- const onNodes = getChildren(root, 'on');
634
- const streamNodes = getChildren(root, 'stream');
635
- const logicNodes = getChildren(root, 'logic');
636
- const callbackNodes = getChildren(root, 'callback');
637
- // In Ink context, 'each' is a UI node (.map iteration), not a core node (for...of loop)
638
- const isInkUiNode = (type) => type === 'each' || type === 'conditional' || type === 'select'
639
- || type === 'model' || type === 'repository' || type === 'dependency' || type === 'cache';
640
- const coreChildren = (root.children || []).filter(c => isCoreNode(c.type) && c.type !== 'on' && !isInkUiNode(c.type));
641
- const uiChildren = (root.children || []).filter(c => c.type !== 'state' && c.type !== 'ref' && c.type !== 'on' && c.type !== 'stream'
642
- && c.type !== 'logic' && c.type !== 'callback' && (!isCoreNode(c.type) || isInkUiNode(c.type)));
698
+ // Separate node categories — search inside the screen node
699
+ const stateNodes = getChildren(screenNode, 'state');
700
+ const refNodes = getChildren(screenNode, 'ref');
701
+ const onNodes = getChildren(screenNode, 'on');
702
+ const streamNodes = getChildren(screenNode, 'stream');
703
+ const logicNodes = [...getChildren(screenNode, 'logic'), ...getChildren(screenNode, 'effect')];
704
+ const callbackNodes = getChildren(screenNode, 'callback');
705
+ const isInkUiNode = (type) => type === 'each' ||
706
+ type === 'conditional' ||
707
+ type === 'select' ||
708
+ type === 'model' ||
709
+ type === 'repository' ||
710
+ type === 'dependency' ||
711
+ type === 'cache';
712
+ // File-level imports go before component; file-level fn/const go after
713
+ const coreChildren = [
714
+ ...fileLevelNodes.filter((c) => isCoreNode(c.type) && c.type !== 'screen' && c.type !== 'fn' && c.type !== 'const'),
715
+ ...(screenNode.children || []).filter((c) => isCoreNode(c.type) && c.type !== 'on' && !isInkUiNode(c.type)),
716
+ ];
717
+ const memoNodes = getChildren(screenNode, 'memo');
718
+ const renderNode = getChildren(screenNode, 'render')[0];
719
+ const uiChildren = (screenNode.children || []).filter((c) => c.type !== 'state' &&
720
+ c.type !== 'ref' &&
721
+ c.type !== 'on' &&
722
+ c.type !== 'stream' &&
723
+ c.type !== 'logic' &&
724
+ c.type !== 'effect' &&
725
+ c.type !== 'callback' &&
726
+ c.type !== 'memo' &&
727
+ c.type !== 'render' &&
728
+ c.type !== 'prop' &&
729
+ (!isCoreNode(c.type) || isInkUiNode(c.type)));
730
+ const fileLevelFns = fileLevelNodes.filter((c) => c.type === 'fn' || c.type === 'const');
643
731
  // Bug #1: Collect nested on-nodes from UI tree and hoist to component level
644
- const nestedOnNodes = collectNestedOnNodes(root);
732
+ const nestedOnNodes = collectNestedOnNodes(screenNode);
645
733
  // Deduplicate — top-level on-nodes are already in onNodes
646
734
  const allOnNodes = [...onNodes];
647
735
  for (const nested of nestedOnNodes) {
@@ -655,10 +743,33 @@ export function transpileInk(root, _config) {
655
743
  coreLines.push('// ── Core ───────────────────────────────────────────────');
656
744
  for (const child of coreChildren) {
657
745
  if (child.type === 'machine') {
658
- // Machine nodes get useReducer treatment
659
746
  imports.addReact('useReducer');
660
747
  coreLines.push(...generateMachineReducer(child));
661
748
  }
749
+ else if (child.type === 'import') {
750
+ // Merge react/ink imports into tracker to avoid duplicates
751
+ const ip = getProps(child);
752
+ const from = ip.from;
753
+ if (from === 'react') {
754
+ const names = (ip.names || '')
755
+ .split(',')
756
+ .map((n) => n.trim())
757
+ .filter(Boolean);
758
+ for (const n of names)
759
+ imports.addReact(n);
760
+ continue;
761
+ }
762
+ if (from === 'ink') {
763
+ const names = (ip.names || '')
764
+ .split(',')
765
+ .map((n) => n.trim())
766
+ .filter(Boolean);
767
+ for (const n of names)
768
+ imports.addInk(n);
769
+ continue;
770
+ }
771
+ coreLines.push(...generateCoreNode(child));
772
+ }
662
773
  else {
663
774
  coreLines.push(...generateCoreNode(child));
664
775
  }
@@ -679,6 +790,25 @@ export function transpileInk(root, _config) {
679
790
  }
680
791
  if (refNodes.length > 0)
681
792
  bodyLines.push('');
793
+ // Memo hooks
794
+ for (const memoNode of memoNodes) {
795
+ const mp = getProps(memoNode);
796
+ const mName = mp.name;
797
+ const mDeps = mp.deps || '';
798
+ const mDepsArr = mDeps ? `[${mDeps}]` : '[]';
799
+ const handlerChild = (memoNode.children || []).find((c) => c.type === 'handler');
800
+ const code = handlerChild ? getProps(handlerChild).code || '' : '';
801
+ if (mName && code) {
802
+ imports.addReact('useMemo');
803
+ const dedented = dedent(code);
804
+ bodyLines.push(` const ${mName} = useMemo(() => {`);
805
+ for (const line of dedented.split('\n')) {
806
+ bodyLines.push(` ${line}`);
807
+ }
808
+ bodyLines.push(` }, ${mDepsArr});`);
809
+ bodyLines.push('');
810
+ }
811
+ }
682
812
  // Callback hooks (Feature #11)
683
813
  for (const callbackNode of callbackNodes) {
684
814
  bodyLines.push(...generateCallbackHook(callbackNode, imports));
@@ -698,15 +828,30 @@ export function transpileInk(root, _config) {
698
828
  bodyLines.push(...generateLogicEffect(logicNode, imports));
699
829
  bodyLines.push('');
700
830
  }
701
- // JSX return
702
- imports.addInk('Box');
703
- bodyLines.push(' return (');
704
- bodyLines.push(' <Box flexDirection="column">');
705
- for (const child of uiChildren) {
706
- bodyLines.push(...renderInkNode(child, ' ', imports));
831
+ // JSX return — use explicit render handler if present, otherwise auto-generate
832
+ if (renderNode) {
833
+ const handlerChild = (renderNode.children || []).find((c) => c.type === 'handler');
834
+ const code = handlerChild ? getProps(handlerChild).code || '' : '';
835
+ if (code.trim()) {
836
+ const dedented = dedent(code);
837
+ for (const line of dedented.split('\n')) {
838
+ bodyLines.push(` ${line}`);
839
+ }
840
+ }
841
+ else {
842
+ bodyLines.push(' return null;');
843
+ }
844
+ }
845
+ else {
846
+ imports.addInk('Box');
847
+ bodyLines.push(' return (');
848
+ bodyLines.push(' <Box flexDirection="column">');
849
+ for (const child of uiChildren) {
850
+ bodyLines.push(...renderInkNode(child, ' ', imports));
851
+ }
852
+ bodyLines.push(' </Box>');
853
+ bodyLines.push(' );');
707
854
  }
708
- bodyLines.push(' </Box>');
709
- bodyLines.push(' );');
710
855
  // ── Assemble ──
711
856
  // Imports (computed last since renderInkNode populates the tracker)
712
857
  lines.push(...imports.emit());
@@ -719,6 +864,14 @@ export function transpileInk(root, _config) {
719
864
  lines.push(`export default function ${screenName}(${propsParam}) {`);
720
865
  lines.push(...bodyLines);
721
866
  lines.push('}');
867
+ // File-level functions/constants emitted after the screen component
868
+ if (fileLevelFns.length > 0) {
869
+ lines.push('');
870
+ for (const fn of fileLevelFns) {
871
+ lines.push(...generateCoreNode(fn));
872
+ lines.push('');
873
+ }
874
+ }
722
875
  // Source map
723
876
  sourceMap.push({
724
877
  irLine: root.loc?.line || 0,
@@ -743,7 +896,7 @@ export function transpileInk(root, _config) {
743
896
  const CONSUMED = new Set(['state', 'on', 'handler']);
744
897
  for (const child of root.children || []) {
745
898
  if (CONSUMED.has(child.type))
746
- accountNode(accounted, child, 'consumed', child.type + ' pre-pass', true);
899
+ accountNode(accounted, child, 'consumed', `${child.type} pre-pass`, true);
747
900
  }
748
901
  return buildDiagnostics(root, accounted, 'ink');
749
902
  })(),
@@ -1 +1 @@
1
- {"version":3,"file":"transpiler-ink.js","sourceRoot":"","sources":["../src/transpiler-ink.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transpiler-ink.js","sourceRoot":"","sources":["../src/transpiler-ink.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import type { IRNode, TranspileResult, ResolvedKernConfig } from '@kernlang/core';
1
+ import type { IRNode, ResolvedKernConfig, TranspileResult } from '@kernlang/core';
2
2
  export declare function transpileTerminal(root: IRNode, _config?: ResolvedKernConfig): TranspileResult;
@@ -1,4 +1,4 @@
1
- import { countTokens, serializeIR, isCoreNode, generateCoreNode, getProps, getChildren, getFirstChild, buildDiagnostics, accountNode } from '@kernlang/core';
1
+ import { accountNode, buildDiagnostics, countTokens, generateCoreNode, getChildren, getFirstChild, getProps, isCoreNode, serializeIR, } from '@kernlang/core';
2
2
  /**
3
3
  * Terminal Transpiler — generates ANSI-based CLI rendering code
4
4
  *
@@ -130,14 +130,30 @@ function generateStateBlock(stateNode) {
130
130
  const name = props.name;
131
131
  const initial = props.initial;
132
132
  if (name && initial !== undefined) {
133
- const initVal = initial === 'null' ? 'null' : initial === 'true' ? 'true' : initial === 'false' ? 'false' : isNaN(Number(initial)) ? `'${initial}'` : String(initial);
133
+ const initVal = initial === 'null'
134
+ ? 'null'
135
+ : initial === 'true'
136
+ ? 'true'
137
+ : initial === 'false'
138
+ ? 'false'
139
+ : Number.isNaN(Number(initial))
140
+ ? `'${initial}'`
141
+ : String(initial);
134
142
  lines.push(`let ${name} = ${initVal};`);
135
143
  }
136
144
  else if (props.styles) {
137
145
  // State block with styles syntax: state {key:value}
138
146
  const styles = props.styles;
139
147
  for (const [key, val] of Object.entries(styles)) {
140
- const initVal = val === 'null' ? 'null' : val === 'true' ? 'true' : val === 'false' ? 'false' : isNaN(Number(val)) ? `'${val}'` : String(val);
148
+ const initVal = val === 'null'
149
+ ? 'null'
150
+ : val === 'true'
151
+ ? 'true'
152
+ : val === 'false'
153
+ ? 'false'
154
+ : Number.isNaN(Number(val))
155
+ ? `'${val}'`
156
+ : String(val);
141
157
  lines.push(`let ${key} = ${initVal};`);
142
158
  }
143
159
  }
@@ -237,22 +253,31 @@ function renderGradient(p, indent) {
237
253
  }
238
254
  function renderHandler(p, indent) {
239
255
  const code = p.code || '';
240
- return code.split('\n').map(line => `${indent}${line.trim()}`);
256
+ return code.split('\n').map((line) => `${indent}${line.trim()}`);
241
257
  }
242
258
  // ── Node renderer (dispatch) ─────────────────────────────────────────────
243
259
  function renderTerminalNode(node, indent) {
244
260
  const p = getProps(node);
245
261
  const lines = [];
246
262
  switch (node.type) {
247
- case 'text': return renderText(p, indent);
248
- case 'separator': return renderSeparator(p, indent);
249
- case 'table': return renderTable(node, p, indent);
250
- case 'scoreboard': return renderScoreboard(node, p, indent);
251
- case 'spinner': return renderSpinner(p, indent);
252
- case 'progress': return renderProgress(p, indent);
253
- case 'box': return renderBox(node, p, indent);
254
- case 'gradient': return renderGradient(p, indent);
255
- case 'handler': return renderHandler(p, indent);
263
+ case 'text':
264
+ return renderText(p, indent);
265
+ case 'separator':
266
+ return renderSeparator(p, indent);
267
+ case 'table':
268
+ return renderTable(node, p, indent);
269
+ case 'scoreboard':
270
+ return renderScoreboard(node, p, indent);
271
+ case 'spinner':
272
+ return renderSpinner(p, indent);
273
+ case 'progress':
274
+ return renderProgress(p, indent);
275
+ case 'box':
276
+ return renderBox(node, p, indent);
277
+ case 'gradient':
278
+ return renderGradient(p, indent);
279
+ case 'handler':
280
+ return renderHandler(p, indent);
256
281
  case 'state':
257
282
  case 'repl':
258
283
  break;
@@ -261,7 +286,7 @@ function renderTerminalNode(node, indent) {
261
286
  break;
262
287
  default:
263
288
  if (isCoreNode(node.type)) {
264
- lines.push(...generateCoreNode(node).map(l => `${indent}${l}`));
289
+ lines.push(...generateCoreNode(node).map((l) => `${indent}${l}`));
265
290
  break;
266
291
  }
267
292
  if (node.children) {
@@ -278,9 +303,9 @@ function generateParallelCode(node, indent) {
278
303
  const timeoutSec = Number(p.timeout) || 60;
279
304
  const lines = [];
280
305
  // Find each/dispatch children and then block
281
- const eachNode = (node.children || []).find(c => c.type === 'each');
306
+ const eachNode = (node.children || []).find((c) => c.type === 'each');
282
307
  const dispatchNodes = getChildren(node, 'dispatch');
283
- const thenNode = (node.children || []).find(c => c.type === 'then');
308
+ const thenNode = (node.children || []).find((c) => c.type === 'then');
284
309
  lines.push(`${indent}// ── Parallel dispatch ──────────────────────────`);
285
310
  lines.push(`${indent}await (async () => {`);
286
311
  lines.push(`${indent} const _ac = new AbortController();`);
@@ -299,8 +324,8 @@ function generateParallelCode(node, indent) {
299
324
  const prompt = dp.prompt || 'prompt';
300
325
  const resultVar = dp.result || 'result';
301
326
  // Check for on start/done events (Pattern B)
302
- const onStartNode = (innerDispatch.children || []).find(c => c.type === 'on' && (getProps(c).name === 'start' || getProps(c).event === 'start'));
303
- const onDoneNode = (innerDispatch.children || []).find(c => c.type === 'on' && (getProps(c).name === 'done' || getProps(c).event === 'done'));
327
+ const onStartNode = (innerDispatch.children || []).find((c) => c.type === 'on' && (getProps(c).name === 'start' || getProps(c).event === 'start'));
328
+ const onDoneNode = (innerDispatch.children || []).find((c) => c.type === 'on' && (getProps(c).name === 'done' || getProps(c).event === 'done'));
304
329
  lines.push(`${indent} const _tasks = (${collection} || []).map(async (${varName}) => {`);
305
330
  if (onStartNode) {
306
331
  const startHandler = getFirstChild(onStartNode, 'handler');
@@ -332,8 +357,8 @@ function generateParallelCode(node, indent) {
332
357
  const prompt = dp.prompt || 'prompt';
333
358
  const resultVar = dp.result || `${engine}Result`;
334
359
  // Check for on start/done events
335
- const onStartNode = (dn.children || []).find(c => c.type === 'on' && (getProps(c).name === 'start' || getProps(c).event === 'start'));
336
- const onDoneNode = (dn.children || []).find(c => c.type === 'on' && (getProps(c).name === 'done' || getProps(c).event === 'done'));
360
+ const onStartNode = (dn.children || []).find((c) => c.type === 'on' && (getProps(c).name === 'start' || getProps(c).event === 'start'));
361
+ const onDoneNode = (dn.children || []).find((c) => c.type === 'on' && (getProps(c).name === 'done' || getProps(c).event === 'done'));
337
362
  lines.push(`${indent} (async () => {`);
338
363
  if (onStartNode) {
339
364
  const startHandler = getFirstChild(onStartNode, 'handler');
@@ -408,9 +433,9 @@ export function transpileTerminal(root, _config) {
408
433
  lines.push('');
409
434
  }
410
435
  // REPL node detection — generate readline setup
411
- const replNode = (root.children || []).find(c => c.type === 'repl');
436
+ const replNode = (root.children || []).find((c) => c.type === 'repl');
412
437
  // Core language nodes (type, interface, fn, machine, etc.) — emit before output
413
- const coreChildren = (root.children || []).filter(c => isCoreNode(c.type));
438
+ const coreChildren = (root.children || []).filter((c) => isCoreNode(c.type));
414
439
  if (coreChildren.length > 0) {
415
440
  lines.push('// ── Core ───────────────────────────────────────────────');
416
441
  for (const child of coreChildren) {
@@ -419,8 +444,8 @@ export function transpileTerminal(root, _config) {
419
444
  }
420
445
  }
421
446
  // Render static nodes (text, separator, box, parallel, etc.) before REPL
422
- const staticChildren = (root.children || []).filter(c => c.type !== 'state' && c.type !== 'repl' && !isCoreNode(c.type));
423
- const hasAsync = staticChildren.some(c => c.type === 'parallel');
447
+ const staticChildren = (root.children || []).filter((c) => c.type !== 'state' && c.type !== 'repl' && !isCoreNode(c.type));
448
+ const hasAsync = staticChildren.some((c) => c.type === 'parallel');
424
449
  if (staticChildren.length > 0) {
425
450
  lines.push('// ── Output ─────────────────────────────────────────────');
426
451
  if (hasAsync)
@@ -459,7 +484,7 @@ export function transpileTerminal(root, _config) {
459
484
  const CONSUMED = new Set(['state', 'repl', 'on', 'handler']);
460
485
  for (const child of root.children || []) {
461
486
  if (CONSUMED.has(child.type))
462
- accountNode(accounted, child, 'consumed', child.type + ' pre-pass', true);
487
+ accountNode(accounted, child, 'consumed', `${child.type} pre-pass`, true);
463
488
  }
464
489
  return buildDiagnostics(root, accounted, 'terminal');
465
490
  })(),
@@ -476,11 +501,12 @@ function generateReplCode(replNode) {
476
501
  lines.push(`const rl = createInterface({`);
477
502
  lines.push(` input: process.stdin,`);
478
503
  lines.push(` output: process.stdout,`);
479
- lines.push(` prompt: ${JSON.stringify(prompt + ' ')},`);
504
+ lines.push(` prompt: ${JSON.stringify(`${prompt} `)},`);
480
505
  lines.push(`});`);
481
506
  lines.push('');
482
507
  // on line handler
483
- const onLineNode = (replNode.children || []).find(c => c.type === 'on' && ((getProps(c).name || getProps(c).event) === 'line' || (getProps(c).name || getProps(c).event) === 'input'));
508
+ const onLineNode = (replNode.children || []).find((c) => c.type === 'on' &&
509
+ ((getProps(c).name || getProps(c).event) === 'line' || (getProps(c).name || getProps(c).event) === 'input'));
484
510
  if (onLineNode) {
485
511
  const handlerNode = getFirstChild(onLineNode, 'handler');
486
512
  const handlerCode = handlerNode ? String(getProps(handlerNode).code || '') : '';
@@ -488,7 +514,7 @@ function generateReplCode(replNode) {
488
514
  lines.push(` const trimmed = input.trim();`);
489
515
  lines.push(` if (!trimmed) { rl.prompt(); return; }`);
490
516
  // Guard node — busy check
491
- const guardNode = (replNode.children || []).find(c => c.type === 'guard');
517
+ const guardNode = (replNode.children || []).find((c) => c.type === 'guard');
492
518
  if (guardNode) {
493
519
  const guardProp = getProps(guardNode);
494
520
  const condition = Object.entries(guardProp).find(([k]) => k !== 'styles' && k !== 'pseudoStyles' && k !== 'themeRefs');
@@ -511,7 +537,8 @@ function generateReplCode(replNode) {
511
537
  lines.push(`});`);
512
538
  }
513
539
  // on interrupt handler
514
- const onInterruptNode = (replNode.children || []).find(c => c.type === 'on' && ((getProps(c).name || getProps(c).event) === 'interrupt' || (getProps(c).name || getProps(c).event) === 'SIGINT'));
540
+ const onInterruptNode = (replNode.children || []).find((c) => c.type === 'on' &&
541
+ ((getProps(c).name || getProps(c).event) === 'interrupt' || (getProps(c).name || getProps(c).event) === 'SIGINT'));
515
542
  if (onInterruptNode) {
516
543
  lines.push('');
517
544
  lines.push(`rl.on('SIGINT', () => {`);
@@ -1 +1 @@
1
- {"version":3,"file":"transpiler-terminal.js","sourceRoot":"","sources":["../src/transpiler-terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transpiler-terminal.js","sourceRoot":"","sources":["../src/transpiler-terminal.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kernlang/terminal",
3
- "version": "3.1.6",
3
+ "version": "3.1.7",
4
4
  "description": "Kern ANSI terminal rendering transpiler",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,7 +25,7 @@
25
25
  ],
26
26
  "license": "AGPL-3.0",
27
27
  "dependencies": {
28
- "@kernlang/core": "3.1.6"
28
+ "@kernlang/core": "3.1.7"
29
29
  },
30
30
  "scripts": {
31
31
  "build": "tsc -b",