zerg-ztc 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/App.d.ts.map +1 -1
  2. package/dist/App.js +71 -13
  3. package/dist/App.js.map +1 -1
  4. package/dist/agent/agent.d.ts.map +1 -1
  5. package/dist/agent/agent.js +3 -1
  6. package/dist/agent/agent.js.map +1 -1
  7. package/dist/agent/commands/index.d.ts.map +1 -1
  8. package/dist/agent/commands/index.js +3 -1
  9. package/dist/agent/commands/index.js.map +1 -1
  10. package/dist/agent/commands/input_mode.d.ts +3 -0
  11. package/dist/agent/commands/input_mode.d.ts.map +1 -0
  12. package/dist/agent/commands/input_mode.js +21 -0
  13. package/dist/agent/commands/input_mode.js.map +1 -0
  14. package/dist/agent/commands/keybindings.d.ts +3 -0
  15. package/dist/agent/commands/keybindings.d.ts.map +1 -0
  16. package/dist/agent/commands/keybindings.js +38 -0
  17. package/dist/agent/commands/keybindings.js.map +1 -0
  18. package/dist/agent/commands/types.d.ts +2 -0
  19. package/dist/agent/commands/types.d.ts.map +1 -1
  20. package/dist/cli.js +38 -1
  21. package/dist/cli.js.map +1 -1
  22. package/dist/components/FullScreen.d.ts.map +1 -1
  23. package/dist/components/FullScreen.js +29 -29
  24. package/dist/components/FullScreen.js.map +1 -1
  25. package/dist/components/InputArea.d.ts.map +1 -1
  26. package/dist/components/InputArea.js +476 -19
  27. package/dist/components/InputArea.js.map +1 -1
  28. package/dist/components/StatusBar.d.ts +1 -0
  29. package/dist/components/StatusBar.d.ts.map +1 -1
  30. package/dist/components/StatusBar.js +2 -1
  31. package/dist/components/StatusBar.js.map +1 -1
  32. package/dist/types.d.ts +1 -0
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/ui/core/input_segments.d.ts +1 -0
  35. package/dist/ui/core/input_segments.d.ts.map +1 -1
  36. package/dist/ui/core/input_segments.js +46 -14
  37. package/dist/ui/core/input_segments.js.map +1 -1
  38. package/dist/ui/core/types.d.ts +1 -0
  39. package/dist/ui/core/types.d.ts.map +1 -1
  40. package/dist/ui/ink/render.d.ts +3 -1
  41. package/dist/ui/ink/render.d.ts.map +1 -1
  42. package/dist/ui/ink/render.js +7 -5
  43. package/dist/ui/ink/render.js.map +1 -1
  44. package/dist/ui/views/app.d.ts +2 -1
  45. package/dist/ui/views/app.d.ts.map +1 -1
  46. package/dist/ui/views/app.js +2 -1
  47. package/dist/ui/views/app.js.map +1 -1
  48. package/dist/ui/views/header.d.ts.map +1 -1
  49. package/dist/ui/views/header.js +8 -5
  50. package/dist/ui/views/header.js.map +1 -1
  51. package/dist/ui/views/status_bar.d.ts +2 -1
  52. package/dist/ui/views/status_bar.d.ts.map +1 -1
  53. package/dist/ui/views/status_bar.js +5 -1
  54. package/dist/ui/views/status_bar.js.map +1 -1
  55. package/package.json +1 -1
  56. package/src/App.tsx +71 -13
  57. package/src/agent/agent.ts +3 -1
  58. package/src/agent/commands/index.ts +4 -0
  59. package/src/agent/commands/input_mode.ts +22 -0
  60. package/src/agent/commands/keybindings.ts +40 -0
  61. package/src/agent/commands/types.ts +2 -0
  62. package/src/cli.tsx +43 -1
  63. package/src/components/FullScreen.tsx +39 -34
  64. package/src/components/InputArea.tsx +489 -19
  65. package/src/components/StatusBar.tsx +3 -0
  66. package/src/types.ts +1 -0
  67. package/src/ui/core/input_segments.ts +49 -14
  68. package/src/ui/core/types.ts +1 -0
  69. package/src/ui/ink/render.tsx +16 -5
  70. package/src/ui/views/app.ts +3 -0
  71. package/src/ui/views/header.ts +8 -5
  72. package/src/ui/views/status_bar.ts +6 -0
@@ -1,40 +1,40 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect } from 'react';
2
+ import { useState, useEffect } from 'react';
3
3
  import { Box } from 'ink';
4
- const initialSize = {
5
- columns: process.stdout.columns || 80,
6
- rows: process.stdout.rows || 24,
7
- };
4
+ function getTerminalSize() {
5
+ return {
6
+ columns: process.stdout.columns || 80,
7
+ rows: process.stdout.rows || 24,
8
+ };
9
+ }
8
10
  export const FullScreen = ({ children, debug = false }) => {
9
- const isTty = Boolean(process.stdout.isTTY);
10
- const useAltScreen = isTty && process.env.ZTC_ALT_SCREEN === '1';
11
- useEffect(() => {
12
- if (!useAltScreen) {
13
- return;
14
- }
15
- // Enter alternate screen buffer
16
- process.stdout.write('\x1b[?1049h');
17
- // Hide cursor (we'll draw our own)
18
- process.stdout.write('\x1b[?25l');
19
- // Clear the alternate screen
20
- process.stdout.write('\x1b[2J');
21
- // Move cursor to top-left
22
- process.stdout.write('\x1b[H');
23
- // Cleanup: restore terminal state
24
- return () => {
25
- // Show cursor
26
- process.stdout.write('\x1b[?25h');
27
- // Exit alternate screen buffer (restores original content)
28
- process.stdout.write('\x1b[?1049l');
29
- };
30
- }, [useAltScreen]);
31
- return (_jsx(Box, { flexDirection: "column", borderStyle: debug ? 'single' : undefined, borderColor: debug ? 'red' : undefined, children: children }));
11
+ const { rows, columns } = useScreenSize();
12
+ return (_jsx(Box, { flexDirection: "column", width: columns, height: rows, overflow: "hidden", borderStyle: debug ? 'single' : undefined, borderColor: debug ? 'red' : undefined, children: children }));
32
13
  };
33
14
  /**
34
15
  * Hook to get current screen size with resize tracking
35
16
  */
36
17
  export function useScreenSize() {
37
- return initialSize;
18
+ const [size, setSize] = useState(getTerminalSize);
19
+ useEffect(() => {
20
+ const updateSize = () => {
21
+ const current = getTerminalSize();
22
+ setSize(prev => {
23
+ if (prev.rows !== current.rows || prev.columns !== current.columns) {
24
+ return current;
25
+ }
26
+ return prev;
27
+ });
28
+ };
29
+ process.stdout.on('resize', updateSize);
30
+ // Also check on an interval as a fallback for some terminals
31
+ const interval = setInterval(updateSize, 1000);
32
+ return () => {
33
+ process.stdout.off('resize', updateSize);
34
+ clearInterval(interval);
35
+ };
36
+ }, []);
37
+ return size;
38
38
  }
39
39
  export default FullScreen;
40
40
  //# sourceMappingURL=FullScreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FullScreen.js","sourceRoot":"","sources":["../../src/components/FullScreen.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAqB1B,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;IACrC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAA8B,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,EAAE;IACnF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,gCAAgC;QAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACpC,mCAAmC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,6BAA6B;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChC,0BAA0B;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE/B,kCAAkC;QAClC,OAAO,GAAG,EAAE;YACV,cAAc;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAClC,2DAA2D;YAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,CACL,KAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACzC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,YAErC,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"FullScreen.js","sourceRoot":"","sources":["../../src/components/FullScreen.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAqB,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAqB1B,SAAS,eAAe;IACtB,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;QACrC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAA8B,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,EAAE;IACnF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IAE1C,OAAO,CACL,KAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAC,QAAQ,EACjB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACzC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,YAErC,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;oBACnE,OAAO,OAAO,CAAC;gBACjB,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAExC,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE/C,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACzC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputArea.d.ts","sourceRoot":"","sources":["../../src/components/InputArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAIvD,OAAO,EAAE,QAAQ,EAAY,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAgB,MAAM,2BAA2B,CAAC;AAqBrE,UAAU,cAAc;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AA0D5D,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAsc9C,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"InputArea.d.ts","sourceRoot":"","sources":["../../src/components/InputArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAIvD,OAAO,EAAE,QAAQ,EAAY,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAgB,MAAM,2BAA2B,CAAC;AAqBrE,UAAU,cAAc;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AA0D5D,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA45B9C,CAAC;AAEF,eAAe,SAAS,CAAC"}