@emaxe/agento 0.1.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.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +304 -0
  3. package/dist/bin/agento.d.ts +3 -0
  4. package/dist/bin/agento.d.ts.map +1 -0
  5. package/dist/bin/agento.js +44 -0
  6. package/dist/bin/agento.js.map +1 -0
  7. package/dist/src/adapters/base.d.ts +38 -0
  8. package/dist/src/adapters/base.d.ts.map +1 -0
  9. package/dist/src/adapters/base.js +2 -0
  10. package/dist/src/adapters/base.js.map +1 -0
  11. package/dist/src/adapters/claude-code.d.ts +13 -0
  12. package/dist/src/adapters/claude-code.d.ts.map +1 -0
  13. package/dist/src/adapters/claude-code.js +70 -0
  14. package/dist/src/adapters/claude-code.js.map +1 -0
  15. package/dist/src/adapters/codex.d.ts +15 -0
  16. package/dist/src/adapters/codex.d.ts.map +1 -0
  17. package/dist/src/adapters/codex.js +148 -0
  18. package/dist/src/adapters/codex.js.map +1 -0
  19. package/dist/src/adapters/opencode.d.ts +13 -0
  20. package/dist/src/adapters/opencode.d.ts.map +1 -0
  21. package/dist/src/adapters/opencode.js +62 -0
  22. package/dist/src/adapters/opencode.js.map +1 -0
  23. package/dist/src/adapters/qwen.d.ts +13 -0
  24. package/dist/src/adapters/qwen.d.ts.map +1 -0
  25. package/dist/src/adapters/qwen.js +84 -0
  26. package/dist/src/adapters/qwen.js.map +1 -0
  27. package/dist/src/cli/commands/agent.d.ts +3 -0
  28. package/dist/src/cli/commands/agent.d.ts.map +1 -0
  29. package/dist/src/cli/commands/agent.js +42 -0
  30. package/dist/src/cli/commands/agent.js.map +1 -0
  31. package/dist/src/cli/commands/launch.d.ts +3 -0
  32. package/dist/src/cli/commands/launch.d.ts.map +1 -0
  33. package/dist/src/cli/commands/launch.js +80 -0
  34. package/dist/src/cli/commands/launch.js.map +1 -0
  35. package/dist/src/cli/commands/profile.d.ts +3 -0
  36. package/dist/src/cli/commands/profile.d.ts.map +1 -0
  37. package/dist/src/cli/commands/profile.js +102 -0
  38. package/dist/src/cli/commands/profile.js.map +1 -0
  39. package/dist/src/cli/commands/provider.d.ts +3 -0
  40. package/dist/src/cli/commands/provider.d.ts.map +1 -0
  41. package/dist/src/cli/commands/provider.js +70 -0
  42. package/dist/src/cli/commands/provider.js.map +1 -0
  43. package/dist/src/cli/commands/restore.d.ts +3 -0
  44. package/dist/src/cli/commands/restore.d.ts.map +1 -0
  45. package/dist/src/cli/commands/restore.js +41 -0
  46. package/dist/src/cli/commands/restore.js.map +1 -0
  47. package/dist/src/config/schema.d.ts +218 -0
  48. package/dist/src/config/schema.d.ts.map +1 -0
  49. package/dist/src/config/schema.js +49 -0
  50. package/dist/src/config/schema.js.map +1 -0
  51. package/dist/src/config/store.d.ts +20 -0
  52. package/dist/src/config/store.d.ts.map +1 -0
  53. package/dist/src/config/store.js +59 -0
  54. package/dist/src/config/store.js.map +1 -0
  55. package/dist/src/launcher/child.d.ts +30 -0
  56. package/dist/src/launcher/child.d.ts.map +1 -0
  57. package/dist/src/launcher/child.js +115 -0
  58. package/dist/src/launcher/child.js.map +1 -0
  59. package/dist/src/launcher/independent.d.ts +25 -0
  60. package/dist/src/launcher/independent.d.ts.map +1 -0
  61. package/dist/src/launcher/independent.js +26 -0
  62. package/dist/src/launcher/independent.js.map +1 -0
  63. package/dist/src/launcher/shell-path-resolver.d.ts +17 -0
  64. package/dist/src/launcher/shell-path-resolver.d.ts.map +1 -0
  65. package/dist/src/launcher/shell-path-resolver.js +97 -0
  66. package/dist/src/launcher/shell-path-resolver.js.map +1 -0
  67. package/dist/src/profiles/profile-manager.d.ts +17 -0
  68. package/dist/src/profiles/profile-manager.d.ts.map +1 -0
  69. package/dist/src/profiles/profile-manager.js +74 -0
  70. package/dist/src/profiles/profile-manager.js.map +1 -0
  71. package/dist/src/providers/provider-manager.d.ts +13 -0
  72. package/dist/src/providers/provider-manager.d.ts.map +1 -0
  73. package/dist/src/providers/provider-manager.js +42 -0
  74. package/dist/src/providers/provider-manager.js.map +1 -0
  75. package/dist/src/tui/App.d.ts +10 -0
  76. package/dist/src/tui/App.d.ts.map +1 -0
  77. package/dist/src/tui/App.js +43 -0
  78. package/dist/src/tui/App.js.map +1 -0
  79. package/dist/src/tui/screens/Agents.d.ts +8 -0
  80. package/dist/src/tui/screens/Agents.d.ts.map +1 -0
  81. package/dist/src/tui/screens/Agents.js +70 -0
  82. package/dist/src/tui/screens/Agents.js.map +1 -0
  83. package/dist/src/tui/screens/LaunchAgent.d.ts +10 -0
  84. package/dist/src/tui/screens/LaunchAgent.d.ts.map +1 -0
  85. package/dist/src/tui/screens/LaunchAgent.js +119 -0
  86. package/dist/src/tui/screens/LaunchAgent.js.map +1 -0
  87. package/dist/src/tui/screens/MainMenu.d.ts +9 -0
  88. package/dist/src/tui/screens/MainMenu.d.ts.map +1 -0
  89. package/dist/src/tui/screens/MainMenu.js +32 -0
  90. package/dist/src/tui/screens/MainMenu.js.map +1 -0
  91. package/dist/src/tui/screens/Profiles.d.ts +7 -0
  92. package/dist/src/tui/screens/Profiles.d.ts.map +1 -0
  93. package/dist/src/tui/screens/Profiles.js +528 -0
  94. package/dist/src/tui/screens/Profiles.js.map +1 -0
  95. package/dist/src/tui/screens/Providers.d.ts +7 -0
  96. package/dist/src/tui/screens/Providers.d.ts.map +1 -0
  97. package/dist/src/tui/screens/Providers.js +235 -0
  98. package/dist/src/tui/screens/Providers.js.map +1 -0
  99. package/dist/src/tui/screens/Settings.d.ts +7 -0
  100. package/dist/src/tui/screens/Settings.d.ts.map +1 -0
  101. package/dist/src/tui/screens/Settings.js +49 -0
  102. package/dist/src/tui/screens/Settings.js.map +1 -0
  103. package/dist/src/tui/start.d.ts +6 -0
  104. package/dist/src/tui/start.d.ts.map +1 -0
  105. package/dist/src/tui/start.js +15 -0
  106. package/dist/src/tui/start.js.map +1 -0
  107. package/dist/src/tui/use-key-input.d.ts +9 -0
  108. package/dist/src/tui/use-key-input.d.ts.map +1 -0
  109. package/dist/src/tui/use-key-input.js +19 -0
  110. package/dist/src/tui/use-key-input.js.map +1 -0
  111. package/package.json +82 -0
@@ -0,0 +1,70 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useCallback } from 'react';
3
+ import { Box, Text } from 'ink';
4
+ import { useKeyInput } from '../use-key-input.js';
5
+ import { backupExists, readBackup, deleteBackup } from '../../config/store.js';
6
+ import { claudeCodeAdapter } from '../../adapters/claude-code.js';
7
+ import { openCodeAdapter } from '../../adapters/opencode.js';
8
+ import { qwenAdapter } from '../../adapters/qwen.js';
9
+ import { codexAdapter } from '../../adapters/codex.js';
10
+ const ALL_ADAPTERS = [claudeCodeAdapter, openCodeAdapter, qwenAdapter, codexAdapter];
11
+ const SCOPES = ['global', 'project'];
12
+ function getAdapters(dev = false) {
13
+ if (dev)
14
+ return ALL_ADAPTERS;
15
+ return ALL_ADAPTERS.filter((a) => !a.dev);
16
+ }
17
+ export function Agents({ dev, onBack }) {
18
+ const [statuses, setStatuses] = useState([]);
19
+ const [selectedIndex, setSelectedIndex] = useState(0);
20
+ const [status, setStatus] = useState('');
21
+ const loadStatuses = useCallback(() => {
22
+ const adapters = getAdapters(dev);
23
+ const result = [];
24
+ for (const adapter of adapters) {
25
+ const paths = adapter.configPaths();
26
+ for (const scope of SCOPES) {
27
+ result.push({
28
+ adapterId: adapter.id,
29
+ displayName: adapter.displayName,
30
+ scope,
31
+ configPath: paths[scope],
32
+ modified: backupExists(adapter.id, scope),
33
+ });
34
+ }
35
+ }
36
+ setStatuses(result);
37
+ }, [dev]);
38
+ useEffect(() => { loadStatuses(); }, [loadStatuses]);
39
+ useKeyInput((input, key) => {
40
+ if (key.escape || input === 'q') {
41
+ onBack();
42
+ return;
43
+ }
44
+ if (key.upArrow)
45
+ setSelectedIndex((i) => Math.max(0, i - 1));
46
+ else if (key.downArrow)
47
+ setSelectedIndex((i) => Math.min(statuses.length - 1, i + 1));
48
+ else if (input === 'r' && statuses[selectedIndex]?.modified) {
49
+ const s = statuses[selectedIndex];
50
+ if (!s)
51
+ return;
52
+ const adapter = getAdapters(dev).find((a) => a.id === s.adapterId);
53
+ if (!adapter)
54
+ return;
55
+ readBackup(s.adapterId, s.scope)
56
+ .then(async (backup) => {
57
+ if (!backup) {
58
+ setStatus('No backup found');
59
+ return;
60
+ }
61
+ await adapter.writeConfig(backup, s.scope);
62
+ await deleteBackup(s.adapterId, s.scope);
63
+ })
64
+ .then(() => { setStatus(`Restored ${s.displayName} [${s.scope}]`); loadStatuses(); })
65
+ .catch((err) => setStatus(`Error: ${String(err)}`));
66
+ }
67
+ });
68
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(Text, { bold: true, children: "Agent Config Status" }), _jsx(Text, { dimColor: true, children: "\u2191\u2193 navigate | r: restore (if modified) | Esc: back" }), status && _jsx(Text, { color: "green", children: status }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: statuses.map((s, i) => (_jsx(Box, { flexDirection: "column", children: _jsxs(Text, { color: i === selectedIndex ? 'green' : undefined, children: [i === selectedIndex ? '▶ ' : ' ', s.displayName, " [", s.scope, "]:", ' ', _jsx(Text, { color: s.modified ? 'yellow' : 'green', children: s.modified ? 'modified' : 'original' }), s.modified && i === selectedIndex && _jsx(Text, { dimColor: true, children: " (press r to restore)" })] }) }, `${s.adapterId}-${s.scope}`))) })] }));
69
+ }
70
+ //# sourceMappingURL=Agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Agents.js","sourceRoot":"","sources":["../../../../src/tui/screens/Agents.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { ExecRequest } from '../../launcher/independent.js';
3
+ interface LaunchAgentProps {
4
+ dev?: boolean;
5
+ onBack: () => void;
6
+ onExec?: (req: ExecRequest) => void;
7
+ }
8
+ export declare function LaunchAgent({ dev, onBack, onExec }: LaunchAgentProps): React.JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=LaunchAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LaunchAgent.d.ts","sourceRoot":"","sources":["../../../../src/tui/screens/LaunchAgent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAUnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAMjE,UAAU,gBAAgB;IACxB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CACrC;AAcD,wBAAgB,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiIxF"}
@@ -0,0 +1,119 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState, useEffect } from 'react';
3
+ import { Box, Text } from 'ink';
4
+ import { useKeyInput } from '../use-key-input.js';
5
+ import { readConfig } from '../../config/store.js';
6
+ import { claudeCodeAdapter } from '../../adapters/claude-code.js';
7
+ import { openCodeAdapter } from '../../adapters/opencode.js';
8
+ import { qwenAdapter } from '../../adapters/qwen.js';
9
+ import { codexAdapter } from '../../adapters/codex.js';
10
+ import { prepareChild } from '../../launcher/child.js';
11
+ import { launchIndependent } from '../../launcher/independent.js';
12
+ const ALL_AGENTS = [
13
+ { id: 'claude-code', label: 'Claude Code', adapter: claudeCodeAdapter, command: 'claude' },
14
+ { id: 'opencode', label: 'OpenCode', adapter: openCodeAdapter, command: 'opencode' },
15
+ { id: 'qwen', label: 'Qwen CLI', adapter: qwenAdapter, command: 'qwen' },
16
+ { id: 'codex', label: 'Codex CLI', adapter: codexAdapter, command: 'codex', args: ['-p', 'default'] },
17
+ ];
18
+ function getAgents(dev = false) {
19
+ if (dev)
20
+ return ALL_AGENTS;
21
+ return ALL_AGENTS.filter((a) => !a.adapter.dev);
22
+ }
23
+ export function LaunchAgent({ dev, onBack, onExec }) {
24
+ const [step, setStep] = useState('profile');
25
+ const [profiles, setProfiles] = useState([]);
26
+ const [providers, setProviders] = useState([]);
27
+ const [settings, setSettings] = useState(null);
28
+ const [selectedProfile, setSelectedProfile] = useState(0);
29
+ const [selectedAgent, setSelectedAgent] = useState(0);
30
+ const [status, setStatus] = useState('');
31
+ const [error, setError] = useState('');
32
+ useEffect(() => {
33
+ readConfig()
34
+ .then((config) => {
35
+ setProfiles(config.profiles);
36
+ setProviders(config.providers);
37
+ setSettings(config.settings);
38
+ })
39
+ .catch((err) => setError(String(err)));
40
+ }, []);
41
+ useKeyInput((input, key) => {
42
+ if (step === 'launching' && !error)
43
+ return;
44
+ if (key.escape || input === 'q') {
45
+ if (step === 'profile') {
46
+ onBack();
47
+ return;
48
+ }
49
+ const steps = ['profile', 'agent'];
50
+ const idx = steps.indexOf(step);
51
+ if (idx > 0)
52
+ setStep(steps[idx - 1]);
53
+ return;
54
+ }
55
+ const agents = getAgents(dev);
56
+ const items = step === 'profile' ? profiles : agents;
57
+ const selected = step === 'profile' ? selectedProfile : selectedAgent;
58
+ const setSelected = step === 'profile' ? setSelectedProfile : setSelectedAgent;
59
+ if (key.upArrow) {
60
+ setSelected(Math.max(0, selected - 1));
61
+ }
62
+ else if (key.downArrow) {
63
+ setSelected(Math.min(items.length - 1, selected + 1));
64
+ }
65
+ else if (key.return) {
66
+ if (step === 'profile' && profiles.length === 0) {
67
+ setError('No profiles configured. Add one first.');
68
+ return;
69
+ }
70
+ if (step === 'agent') {
71
+ const profile = profiles[selectedProfile];
72
+ const agentEntry = agents[selectedAgent];
73
+ if (!profile || !agentEntry || !settings) {
74
+ setError('Invalid selection');
75
+ return;
76
+ }
77
+ setStep('launching');
78
+ setStatus(`Launching ${agentEntry.label}...`);
79
+ const scope = settings.defaultConfigScope;
80
+ const mode = settings.defaultLaunchMode;
81
+ const launchOptions = {
82
+ adapter: agentEntry.adapter,
83
+ profile,
84
+ providers,
85
+ scope,
86
+ command: agentEntry.command,
87
+ args: agentEntry.args,
88
+ };
89
+ if (mode === 'child') {
90
+ prepareChild(launchOptions)
91
+ .then(({ execReq, cleanup }) => {
92
+ onExec?.({ ...execReq, relaunch: true, cleanup });
93
+ })
94
+ .catch((err) => setError(String(err)));
95
+ }
96
+ else {
97
+ launchIndependent(launchOptions)
98
+ .then((execReq) => {
99
+ onExec?.(execReq);
100
+ })
101
+ .catch((err) => setError(String(err)));
102
+ }
103
+ }
104
+ else {
105
+ setStep('agent');
106
+ }
107
+ }
108
+ });
109
+ if (error) {
110
+ return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsxs(Text, { color: "red", children: ["Error: ", error] }), _jsx(Text, { dimColor: true, children: "Press Esc to go back" })] }));
111
+ }
112
+ const renderList = (items, selected, title) => (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(Text, { bold: true, children: title }), _jsx(Text, { dimColor: true, children: "\u2191\u2193 navigate, Enter select, Esc back" }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [items.map((item, i) => (_jsxs(Text, { color: i === selected ? 'green' : undefined, children: [i === selected ? '▶ ' : ' ', 'label' in item ? item.label : item.name] }, i))), items.length === 0 && _jsx(Text, { dimColor: true, children: "No items available" })] })] }));
113
+ if (step === 'profile')
114
+ return renderList(profiles, selectedProfile, 'Select Profile');
115
+ if (step === 'agent')
116
+ return renderList(getAgents(dev), selectedAgent, 'Select Agent');
117
+ return (_jsx(Box, { flexDirection: "column", padding: 1, children: _jsx(Text, { children: status || 'Launching...' }) }));
118
+ }
119
+ //# sourceMappingURL=LaunchAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LaunchAgent.js","sourceRoot":"","sources":["../../../../src/tui/screens/LaunchAgent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { Screen } from '../App.js';
3
+ interface MainMenuProps {
4
+ onSelect: (screen: Screen) => void;
5
+ onExit: () => void;
6
+ }
7
+ export declare function MainMenu({ onSelect, onExit }: MainMenuProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=MainMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainMenu.d.ts","sourceRoot":"","sources":["../../../../src/tui/screens/MainMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAUxC,UAAU,aAAa;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgC/E"}
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { Box, Text } from 'ink';
4
+ import { useKeyInput } from '../use-key-input.js';
5
+ const MENU_ITEMS = [
6
+ { label: 'Launch Agent', screen: 'launch' },
7
+ { label: 'Providers', screen: 'providers' },
8
+ { label: 'Profiles', screen: 'profiles' },
9
+ { label: 'Agents', screen: 'agents' },
10
+ { label: 'Settings', screen: 'settings' },
11
+ ];
12
+ export function MainMenu({ onSelect, onExit }) {
13
+ const [selectedIndex, setSelectedIndex] = useState(0);
14
+ useKeyInput((input, key) => {
15
+ if (key.upArrow) {
16
+ setSelectedIndex((i) => Math.max(0, i - 1));
17
+ }
18
+ else if (key.downArrow) {
19
+ setSelectedIndex((i) => Math.min(MENU_ITEMS.length - 1, i + 1));
20
+ }
21
+ else if (key.return) {
22
+ const item = MENU_ITEMS[selectedIndex];
23
+ if (item)
24
+ onSelect(item.screen);
25
+ }
26
+ else if (input === 'q' || key.escape) {
27
+ onExit();
28
+ }
29
+ });
30
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", paddingX: 2, paddingY: 1, width: 40, children: [_jsxs(Box, { justifyContent: "space-between", marginBottom: 1, children: [_jsx(Text, { bold: true, children: "AgentO" }), _jsx(Text, { dimColor: true, children: "v0.1.0" })] }), _jsx(Box, { flexDirection: "column", children: MENU_ITEMS.map((item, i) => (_jsxs(Text, { color: i === selectedIndex ? 'green' : undefined, children: [i === selectedIndex ? '▶ ' : ' ', item.label] }, item.screen))) })] }));
31
+ }
32
+ //# sourceMappingURL=MainMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainMenu.js","sourceRoot":"","sources":["../../../../src/tui/screens/MainMenu.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,MAAM,UAAU,GAA6C;IAC3D,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;IAC3C,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;IACzC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;IACrC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;CAC1C,CAAC;AAOF,MAAM,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAiB;IAC1D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACzB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACzB,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;YACvC,IAAI,IAAI;gBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAC,OAAO,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,aACjF,MAAC,GAAG,IAAC,cAAc,EAAC,eAAe,EAAC,YAAY,EAAE,CAAC,aACjD,KAAC,IAAI,IAAC,IAAI,6BAAc,EACxB,KAAC,IAAI,IAAC,QAAQ,6BAAc,IACxB,EACN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3B,MAAC,IAAI,IAAmB,KAAK,EAAE,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,aACrE,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EACnC,IAAI,CAAC,KAAK,KAFF,IAAI,CAAC,MAAM,CAGf,CACR,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface ProfilesProps {
3
+ onBack: () => void;
4
+ }
5
+ export declare function Profiles({ onBack }: ProfilesProps): React.JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=Profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Profiles.d.ts","sourceRoot":"","sources":["../../../../src/tui/screens/Profiles.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAchE,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwrBrE"}