sincronizado 1.1.0 → 1.1.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.

Potentially problematic release.


This version of sincronizado might be problematic. Click here for more details.

Files changed (90) hide show
  1. package/bin/sincronizado +9 -0
  2. package/dist/App.d.ts +26 -0
  3. package/dist/App.d.ts.map +1 -0
  4. package/dist/App.js +52 -0
  5. package/dist/App.js.map +1 -0
  6. package/dist/components/Button.d.ts +17 -0
  7. package/dist/components/Button.d.ts.map +1 -0
  8. package/dist/components/Button.js +33 -0
  9. package/dist/components/Button.js.map +1 -0
  10. package/dist/components/CheckboxGroup.d.ts +13 -0
  11. package/dist/components/CheckboxGroup.d.ts.map +1 -0
  12. package/dist/components/CheckboxGroup.js +25 -0
  13. package/dist/components/CheckboxGroup.js.map +1 -0
  14. package/dist/components/Header.d.ts +6 -0
  15. package/dist/components/Header.d.ts.map +1 -0
  16. package/dist/components/Header.js +15 -0
  17. package/dist/components/Header.js.map +1 -0
  18. package/dist/components/ProgressBar.d.ts +9 -0
  19. package/dist/components/ProgressBar.d.ts.map +1 -0
  20. package/dist/components/ProgressBar.js +20 -0
  21. package/dist/components/ProgressBar.js.map +1 -0
  22. package/dist/components/RadioGroup.d.ts +13 -0
  23. package/dist/components/RadioGroup.d.ts.map +1 -0
  24. package/dist/components/RadioGroup.js +19 -0
  25. package/dist/components/RadioGroup.js.map +1 -0
  26. package/dist/components/TextInput.d.ts +10 -0
  27. package/dist/components/TextInput.d.ts.map +1 -0
  28. package/dist/components/TextInput.js +38 -0
  29. package/dist/components/TextInput.js.map +1 -0
  30. package/dist/index.d.ts +3 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +8 -36686
  33. package/dist/index.js.map +1 -0
  34. package/dist/lib/config.d.ts +16 -0
  35. package/dist/lib/config.d.ts.map +1 -0
  36. package/dist/lib/config.js +46 -0
  37. package/dist/lib/config.js.map +1 -0
  38. package/dist/lib/ssh.d.ts +10 -0
  39. package/dist/lib/ssh.d.ts.map +1 -0
  40. package/dist/lib/ssh.js +46 -0
  41. package/dist/lib/ssh.js.map +1 -0
  42. package/dist/screens/Addons.d.ts +11 -0
  43. package/dist/screens/Addons.d.ts.map +1 -0
  44. package/dist/screens/Addons.js +97 -0
  45. package/dist/screens/Addons.js.map +1 -0
  46. package/dist/screens/AgentSelect.d.ts +11 -0
  47. package/dist/screens/AgentSelect.d.ts.map +1 -0
  48. package/dist/screens/AgentSelect.js +22 -0
  49. package/dist/screens/AgentSelect.js.map +1 -0
  50. package/dist/screens/Complete.d.ts +9 -0
  51. package/dist/screens/Complete.d.ts.map +1 -0
  52. package/dist/screens/Complete.js +8 -0
  53. package/dist/screens/Complete.js.map +1 -0
  54. package/dist/screens/Config.d.ts +11 -0
  55. package/dist/screens/Config.d.ts.map +1 -0
  56. package/dist/screens/Config.js +9 -0
  57. package/dist/screens/Config.js.map +1 -0
  58. package/dist/screens/Confirm.d.ts +10 -0
  59. package/dist/screens/Confirm.d.ts.map +1 -0
  60. package/dist/screens/Confirm.js +37 -0
  61. package/dist/screens/Confirm.js.map +1 -0
  62. package/dist/screens/Install.d.ts +10 -0
  63. package/dist/screens/Install.d.ts.map +1 -0
  64. package/dist/screens/Install.js +116 -0
  65. package/dist/screens/Install.js.map +1 -0
  66. package/dist/screens/ModeSelect.d.ts +11 -0
  67. package/dist/screens/ModeSelect.d.ts.map +1 -0
  68. package/dist/screens/ModeSelect.js +32 -0
  69. package/dist/screens/ModeSelect.js.map +1 -0
  70. package/dist/screens/Provider.d.ts +11 -0
  71. package/dist/screens/Provider.d.ts.map +1 -0
  72. package/dist/screens/Provider.js +37 -0
  73. package/dist/screens/Provider.js.map +1 -0
  74. package/dist/screens/Welcome.d.ts +8 -0
  75. package/dist/screens/Welcome.d.ts.map +1 -0
  76. package/dist/screens/Welcome.js +9 -0
  77. package/dist/screens/Welcome.js.map +1 -0
  78. package/package.json +5 -6
  79. package/dist/cli.js +0 -2
  80. package/dist/highlights-eq9cgrbb.scm +0 -604
  81. package/dist/highlights-ghv9g403.scm +0 -205
  82. package/dist/highlights-hk7bwhj4.scm +0 -284
  83. package/dist/highlights-r812a2qc.scm +0 -150
  84. package/dist/highlights-x6tmsnaa.scm +0 -115
  85. package/dist/injections-73j83es3.scm +0 -27
  86. package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
  87. package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
  88. package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
  89. package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
  90. package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;AAC3C,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAC,GAAG,KAAG,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface InstallFlags {
2
+ agent: 'opencode' | 'claude';
3
+ mode: 'minimal' | 'standard' | 'full' | 'custom';
4
+ withKimaki?: boolean;
5
+ withLunaroute?: boolean;
6
+ withMCP?: boolean;
7
+ withWorktreeSession?: boolean;
8
+ withSessionHandoff?: boolean;
9
+ withAgentOfEmpires?: boolean;
10
+ noAgentOS?: boolean;
11
+ noCcmanager?: boolean;
12
+ noPlugins?: boolean;
13
+ }
14
+ export declare function generateInstallScript(flags: InstallFlags): string;
15
+ export declare function buildFlags(config: InstallFlags): string;
16
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAgBjE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAcvD"}
@@ -0,0 +1,46 @@
1
+ export function generateInstallScript(flags) {
2
+ const parts = ['#!/bin/bash', 'set -euo pipefail', ''];
3
+ parts.push(`./setup-vps.sh --agent=${flags.agent} --mode=${flags.mode}`);
4
+ if (flags.withKimaki)
5
+ parts.push('--with-kimaki');
6
+ if (flags.withLunaroute)
7
+ parts.push('--with-lunaroute');
8
+ if (flags.withMCP)
9
+ parts.push('--with-mcp');
10
+ if (flags.withWorktreeSession)
11
+ parts.push('--with-worktree-session');
12
+ if (flags.withSessionHandoff)
13
+ parts.push('--with-session-handoff');
14
+ if (flags.withAgentOfEmpires)
15
+ parts.push('--with-agent-of-empires');
16
+ if (flags.noAgentOS)
17
+ parts.push('--no-agent-os');
18
+ if (flags.noCcmanager)
19
+ parts.push('--no-ccmanager');
20
+ if (flags.noPlugins)
21
+ parts.push('--no-plugins');
22
+ return parts.join(' ');
23
+ }
24
+ export function buildFlags(config) {
25
+ const flags = [`--agent=${config.agent}`, `--mode=${config.mode}`];
26
+ if (config.withKimaki)
27
+ flags.push('--with-kimaki');
28
+ if (config.withLunaroute)
29
+ flags.push('--with-lunaroute');
30
+ if (config.withMCP)
31
+ flags.push('--with-mcp');
32
+ if (config.withWorktreeSession)
33
+ flags.push('--with-worktree-session');
34
+ if (config.withSessionHandoff)
35
+ flags.push('--with-session-handoff');
36
+ if (config.withAgentOfEmpires)
37
+ flags.push('--with-agent-of-empires');
38
+ if (config.noAgentOS)
39
+ flags.push('--no-agent-os');
40
+ if (config.noCcmanager)
41
+ flags.push('--no-ccmanager');
42
+ if (config.noPlugins)
43
+ flags.push('--no-plugins');
44
+ return flags.join(' ');
45
+ }
46
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,qBAAqB,CAAC,KAAmB;IACvD,MAAM,KAAK,GAAa,CAAC,aAAa,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAEjE,KAAK,CAAC,IAAI,CAAC,0BAA0B,KAAK,CAAC,KAAK,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAEzE,IAAI,KAAK,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,mBAAmB;QAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACrE,IAAI,KAAK,CAAC,kBAAkB;QAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACnE,IAAI,KAAK,CAAC,kBAAkB;QAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEhD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,MAAM,KAAK,GAAa,CAAC,WAAW,MAAM,CAAC,KAAK,EAAE,EAAE,UAAU,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAE7E,IAAI,MAAM,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,mBAAmB;QAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,kBAAkB;QAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,kBAAkB;QAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEjD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface SSHOptions {
2
+ hostname: string;
3
+ user: string;
4
+ command: string;
5
+ onOutput?: (data: string) => void;
6
+ onError?: (error: Error) => void;
7
+ }
8
+ export declare function runSSH({ hostname, user, command, onOutput, onError }: SSHOptions): Promise<number>;
9
+ export declare function testConnection(hostname: string, user: string): Promise<boolean>;
10
+ //# sourceMappingURL=ssh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssh.d.ts","sourceRoot":"","sources":["../../src/lib/ssh.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAmClG;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWrF"}
@@ -0,0 +1,46 @@
1
+ import { spawn } from "child_process";
2
+ export function runSSH({ hostname, user, command, onOutput, onError }) {
3
+ return new Promise((resolve, reject) => {
4
+ const sshCommand = `ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 ${user}@${hostname} "${command}"`;
5
+ const proc = spawn("sh", ["-c", sshCommand], {
6
+ stdio: ["pipe", "pipe", "pipe"],
7
+ });
8
+ let output = "";
9
+ proc.stdout?.on("data", (data) => {
10
+ const chunk = data.toString();
11
+ output += chunk;
12
+ onOutput?.(chunk);
13
+ });
14
+ proc.stderr?.on("data", (data) => {
15
+ const chunk = data.toString();
16
+ output += chunk;
17
+ onOutput?.(chunk);
18
+ });
19
+ proc.on("close", (code) => {
20
+ if (code === 0) {
21
+ resolve(code);
22
+ }
23
+ else {
24
+ reject(new Error(`SSH command failed with code ${code}: ${output}`));
25
+ }
26
+ });
27
+ proc.on("error", (error) => {
28
+ onError?.(error);
29
+ reject(error);
30
+ });
31
+ });
32
+ }
33
+ export async function testConnection(hostname, user) {
34
+ try {
35
+ await runSSH({
36
+ hostname,
37
+ user,
38
+ command: "echo 'connected'",
39
+ });
40
+ return true;
41
+ }
42
+ catch {
43
+ return false;
44
+ }
45
+ }
46
+ //# sourceMappingURL=ssh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../src/lib/ssh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAUtC,MAAM,UAAU,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAc;IAC/E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,wDAAwD,IAAI,IAAI,QAAQ,KAAK,OAAO,GAAG,CAAC;QAE3G,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YAC3C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC;YAChB,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC;YAChB,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,IAAY;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,CAAC;YACX,QAAQ;YACR,IAAI;YACJ,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { InstallConfig } from '../App.js';
3
+ interface AddonsProps {
4
+ config: InstallConfig;
5
+ onChange: (updates: Partial<InstallConfig>) => void;
6
+ onContinue: () => void;
7
+ onBack: () => void;
8
+ }
9
+ export declare function Addons({ config, onChange, onContinue, onBack }: AddonsProps): React.ReactNode;
10
+ export {};
11
+ //# sourceMappingURL=Addons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Addons.d.ts","sourceRoot":"","sources":["../../src/screens/Addons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,UAAU,WAAW;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AA0DD,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,WAAW,mBAkE3E"}
@@ -0,0 +1,97 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
2
+ import { CheckboxGroup } from '../components/CheckboxGroup.js';
3
+ import { ButtonGroup } from '../components/Button.js';
4
+ const addonOptions = [
5
+ {
6
+ value: 'withKimaki',
7
+ label: 'Kimaki (Discord Bot)',
8
+ description: 'Control agents via Discord with voice support',
9
+ },
10
+ {
11
+ value: 'withLunaroute',
12
+ label: 'LunaRoute (AI Proxy)',
13
+ description: 'Debug AI interactions and track token usage',
14
+ },
15
+ {
16
+ value: 'withWorktreeSession',
17
+ label: 'Worktree Sessions',
18
+ description: 'Git worktree per OpenCode session',
19
+ },
20
+ {
21
+ value: 'withSessionHandoff',
22
+ label: 'Session Handoff',
23
+ description: 'Seamless context continuation between sessions',
24
+ },
25
+ {
26
+ value: 'withAgentOfEmpires',
27
+ label: 'Agent of Empires',
28
+ description: 'Alternative session manager (replaces ccmanager)',
29
+ },
30
+ {
31
+ value: 'withOpenSync',
32
+ label: 'OpenSync (Session Analytics)',
33
+ description: 'Track all AI sessions, token usage, and export eval datasets',
34
+ },
35
+ {
36
+ value: 'setupAlias',
37
+ label: 'Setup shell alias',
38
+ description: "Type 'opencode' or 'claude' from anywhere",
39
+ },
40
+ ];
41
+ const skipOptions = [
42
+ {
43
+ value: 'noAgentOS',
44
+ label: 'Skip Agent-OS',
45
+ description: 'No web UI for mobile access',
46
+ },
47
+ {
48
+ value: 'noCcmanager',
49
+ label: 'Skip ccmanager',
50
+ description: 'No session TUI (use agent-of-empires instead)',
51
+ },
52
+ {
53
+ value: 'noPlugins',
54
+ label: 'Skip OpenCode plugins',
55
+ description: 'No direnv, agentmap, sync, ai-sessions',
56
+ },
57
+ ];
58
+ export function Addons({ config, onChange, onContinue, onBack }) {
59
+ const selectedAddons = [
60
+ ...(config.withKimaki ? ['withKimaki'] : []),
61
+ ...(config.withLunaroute ? ['withLunaroute'] : []),
62
+ ...(config.withWorktreeSession ? ['withWorktreeSession'] : []),
63
+ ...(config.withSessionHandoff ? ['withSessionHandoff'] : []),
64
+ ...(config.withAgentOfEmpires ? ['withAgentOfEmpires'] : []),
65
+ ...(config.withOpenSync ? ['withOpenSync'] : []),
66
+ ...(config.setupAlias ? ['setupAlias'] : []),
67
+ ];
68
+ const selectedSkips = [
69
+ ...(config.noAgentOS ? ['noAgentOS'] : []),
70
+ ...(config.noCcmanager ? ['noCcmanager'] : []),
71
+ ...(config.noPlugins ? ['noPlugins'] : []),
72
+ ];
73
+ const handleAddonChange = (values) => {
74
+ onChange({
75
+ withKimaki: values.includes('withKimaki'),
76
+ withLunaroute: values.includes('withLunaroute'),
77
+ withWorktreeSession: values.includes('withWorktreeSession'),
78
+ withSessionHandoff: values.includes('withSessionHandoff'),
79
+ withAgentOfEmpires: values.includes('withAgentOfEmpires'),
80
+ withOpenSync: values.includes('withOpenSync'),
81
+ setupAlias: values.includes('setupAlias'),
82
+ noCcmanager: values.includes('withAgentOfEmpires'),
83
+ });
84
+ };
85
+ const handleSkipChange = (values) => {
86
+ onChange({
87
+ noAgentOS: values.includes('noAgentOS'),
88
+ noCcmanager: values.includes('noCcmanager'),
89
+ noPlugins: values.includes('noPlugins'),
90
+ });
91
+ };
92
+ return (_jsxs("box", { flexDirection: "column", paddingTop: 2, children: [_jsx("box", { paddingBottom: 1, children: _jsx("text", { bold: true, children: "Add optional features:" }) }), _jsx("box", { paddingBottom: 1, children: _jsx(CheckboxGroup, { options: addonOptions, values: selectedAddons, onChange: handleAddonChange }) }), _jsx("box", { paddingTop: 1, paddingBottom: 1, children: _jsx("text", { bold: true, children: "Skip default components:" }) }), _jsx("box", { paddingBottom: 2, children: _jsx(CheckboxGroup, { options: skipOptions, values: selectedSkips, onChange: handleSkipChange }) }), _jsx("box", { paddingTop: 1, children: _jsx(ButtonGroup, { buttons: [
93
+ { label: 'Continue', onClick: onContinue, variant: 'primary' },
94
+ { label: 'Back', onClick: onBack, variant: 'secondary' },
95
+ ] }) })] }));
96
+ }
97
+ //# sourceMappingURL=Addons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Addons.js","sourceRoot":"","sources":["../../src/screens/Addons.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { InstallConfig } from '../App.js';
3
+ interface AgentSelectProps {
4
+ config: InstallConfig;
5
+ onChange: (updates: Partial<InstallConfig>) => void;
6
+ onContinue: () => void;
7
+ onBack: () => void;
8
+ }
9
+ export declare function AgentSelect({ config, onChange, onContinue, onBack }: AgentSelectProps): React.ReactNode;
10
+ export {};
11
+ //# sourceMappingURL=AgentSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentSelect.d.ts","sourceRoot":"","sources":["../../src/screens/AgentSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,aAAa,EAAW,MAAM,WAAW,CAAC;AAExD,UAAU,gBAAgB;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAeD,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,gBAAgB,mBAuBrF"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
2
+ import { RadioGroup } from '../components/RadioGroup.js';
3
+ import { ButtonGroup } from '../components/Button.js';
4
+ const agents = [
5
+ {
6
+ value: 'opencode',
7
+ label: 'OpenCode',
8
+ description: 'Open-source AI coding assistant with plugin ecosystem',
9
+ },
10
+ {
11
+ value: 'claude',
12
+ label: 'Claude Code',
13
+ description: "Anthropic's Claude with MCP server support",
14
+ },
15
+ ];
16
+ export function AgentSelect({ config, onChange, onContinue, onBack }) {
17
+ return (_jsxs("box", { flexDirection: "column", paddingTop: 2, children: [_jsx("box", { paddingBottom: 1, children: _jsx("text", { children: "Select your AI agent:" }) }), _jsx("box", { paddingBottom: 2, children: _jsx(RadioGroup, { options: agents, value: config.agent, onChange: (agent) => onChange({ agent }) }) }), _jsx("box", { paddingTop: 2, children: _jsx(ButtonGroup, { buttons: [
18
+ { label: 'Continue', onClick: onContinue, variant: 'primary' },
19
+ { label: 'Back', onClick: onBack, variant: 'secondary' },
20
+ ] }) })] }));
21
+ }
22
+ //# sourceMappingURL=AgentSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentSelect.js","sourceRoot":"","sources":["../../src/screens/AgentSelect.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAUtD,MAAM,MAAM,GAA6D;IACvE;QACE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,uDAAuD;KACrE;IACD;QACE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,4CAA4C;KAC1D;CACF,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAoB;IACpF,OAAO,CACL,eAAK,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,aACvC,cAAK,aAAa,EAAE,CAAC,YACnB,mDAAkC,GAC9B,EACN,cAAK,aAAa,EAAE,CAAC,YACnB,KAAC,UAAU,IACT,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,GACxC,GACE,EACN,cAAK,UAAU,EAAE,CAAC,YAChB,KAAC,WAAW,IACV,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE;wBAC9D,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;qBACzD,GACD,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { InstallConfig } from '../App.js';
3
+ interface CompleteProps {
4
+ config: InstallConfig;
5
+ onExit: () => void;
6
+ }
7
+ export declare function Complete({ config, onExit }: CompleteProps): React.ReactNode;
8
+ export {};
9
+ //# sourceMappingURL=Complete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Complete.d.ts","sourceRoot":"","sources":["../../src/screens/Complete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,UAAU,aAAa;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,aAAa,mBA2KzD"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
2
+ import { ButtonGroup } from '../components/Button.js';
3
+ export function Complete({ config, onExit }) {
4
+ const ip = config.hostname || '<hostname>';
5
+ let stepNum = 1;
6
+ return (_jsxs("box", { flexDirection: "column", paddingTop: 2, children: [_jsx("box", { paddingBottom: 1, children: _jsx("text", { color: "green", bold: true, children: "\u2713 Installation complete!" }) }), _jsx("box", { paddingTop: 1, paddingBottom: 1, children: _jsx("text", { bold: true, children: "Next steps:" }) }), _jsxs("box", { paddingLeft: 2, children: [_jsxs("text", { children: [stepNum++, ". Run: ./launcher/opencode.ps1 (Windows)"] }), _jsx("text", { children: " Or: ./launcher/opencode.sh (macOS/Linux)" })] }), config.setupAlias && (_jsxs("box", { paddingLeft: 2, paddingTop: 1, children: [_jsxs("text", { children: [stepNum++, ". Setup shell alias:"] }), _jsx("text", { children: " Windows (PowerShell):" }), _jsx("text", { children: ' echo "function opencode { & \'~/sincronizado/launcher/opencode.ps1\' $args }" | Add-Content $PROFILE' }), _jsx("text", { children: " macOS/Linux:" }), _jsx("text", { children: ' echo \'alias opencode="~/sincronizado/launcher/opencode.sh"\' >> ~/.bashrc' }), _jsx("text", { children: " source ~/.bashrc" })] })), !config.noAgentOS && (_jsx("box", { paddingLeft: 2, paddingTop: 1, children: _jsxs("text", { children: [stepNum++, ". Access mobile UI: http://", ip, ":3000"] }) })), config.withOpenSync && (_jsxs("box", { paddingLeft: 2, paddingTop: 1, children: [_jsxs("text", { children: [stepNum++, ". Install OpenSync plugin:"] }), _jsx("text", { children: " npm install -g opencode-sync-plugin" }), _jsx("text", { children: " opencode-sync login" }), _jsx("text", { dimColor: true, children: " Then add to opencode.json plugins array" })] })), config.withLunaroute && (_jsx("box", { paddingLeft: 2, paddingTop: 1, children: _jsxs("text", { children: [stepNum++, ". AI proxy dashboard: http://", ip, ":8082"] }) })), config.withKimaki && (_jsxs("box", { paddingLeft: 2, paddingTop: 1, children: [_jsxs("text", { children: [stepNum++, ". Configure Discord bot:"] }), _jsxs("text", { children: [' ', "ssh ", config.sshUser, "@", ip] }), _jsx("text", { children: " npx kimaki" })] })), _jsx("box", { paddingTop: 3, children: _jsx(ButtonGroup, { buttons: [{ label: 'Exit', onClick: onExit, variant: 'primary' }] }) }), _jsxs("box", { paddingTop: 2, children: [_jsx("text", { color: "#FFFFC5", dimColor: true, children: ' ██ ██ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' ████ ███ ███ █████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' █████ ████ ████ █████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' ████ ███ ███ ████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' ████ ██ ███ ███ ███ ████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' ████████ ████ ████ ████ ██ ██ ████ ████████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' ████████████ ████ ████ ████ ███ █████████████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' █████████ ████ ███ ██████████████████████ ███████████████████████ ███ ████ █████████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' █████████ ████ ████ ███ ██████████████████████ ███████████████████████ ███ ███ ████ █████████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' ████████ █████████ ████ ███ ██████████ ████████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' █████████ ██████ ████ ████ ██████ █████████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' ████████ ████ █ ████ █████████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' █████████ ████ ███ ████ █████████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' ████████ ████ ██████ ████ ████████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' ████ █████ ███ ███ █████ ████ ' }), _jsx("text", { color: "#FFFFC5", dimColor: true, children: ' ██ ██ █ ███ ' })] }), config.withOpenSync && (_jsx("box", { paddingTop: 1, children: _jsx("text", { color: "#FFFFC5", dimColor: true, children: "\uD83D\uDCCA OpenSync: Track sessions anywhere" }) }))] }));
7
+ }
8
+ //# sourceMappingURL=Complete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Complete.js","sourceRoot":"","sources":["../../src/screens/Complete.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { InstallConfig } from '../App.js';
3
+ interface ConfigProps {
4
+ config: InstallConfig;
5
+ onChange: (updates: Partial<InstallConfig>) => void;
6
+ onContinue: () => void;
7
+ onBack: () => void;
8
+ }
9
+ export declare function Config({ config, onChange, onContinue, onBack }: ConfigProps): React.ReactNode;
10
+ export {};
11
+ //# sourceMappingURL=Config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/screens/Config.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,UAAU,WAAW;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,WAAW,mBAoC3E"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
2
+ import { ButtonGroup } from '../components/Button.js';
3
+ export function Config({ config, onChange, onContinue, onBack }) {
4
+ return (_jsxs("box", { flexDirection: "column", paddingTop: 2, children: [_jsx("box", { paddingBottom: 1, children: _jsx("text", { bold: true, children: "VPS Connection Details" }) }), _jsxs("box", { paddingBottom: 1, children: [_jsx("text", { children: "Hostname/IP: " }), _jsx("text", { color: "#FFFFC5", children: config.hostname || '<not set>' })] }), _jsxs("box", { paddingBottom: 1, children: [_jsx("text", { children: "SSH User: " }), _jsx("text", { color: "#FFFFC5", children: config.sshUser })] }), _jsxs("box", { paddingBottom: 1, children: [_jsx("text", { children: "Project Root: " }), _jsx("text", { color: "#FFFFC5", children: config.projectRoot })] }), _jsx("box", { paddingTop: 2, children: _jsx("text", { dimColor: true, children: "Configure these in your .opencode.config.json or via environment variables:" }) }), _jsx("box", { paddingTop: 1, paddingLeft: 2, children: _jsx("text", { dimColor: true, children: "SINC_HOSTNAME, SINC_SSH_USER, SINC_PROJECT_ROOT" }) }), _jsx("box", { paddingTop: 3, children: _jsx(ButtonGroup, { buttons: [
5
+ { label: 'Continue', onClick: onContinue, variant: 'primary' },
6
+ { label: 'Back', onClick: onBack, variant: 'secondary' },
7
+ ] }) })] }));
8
+ }
9
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/screens/Config.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAUtD,MAAM,UAAU,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAe;IAC1E,OAAO,CACL,eAAK,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,aACvC,cAAK,aAAa,EAAE,CAAC,YACnB,eAAM,IAAI,6CAA8B,GACpC,EACN,eAAK,aAAa,EAAE,CAAC,aACnB,2CAA0B,EAC1B,eAAM,KAAK,EAAC,SAAS,YAAE,MAAM,CAAC,QAAQ,IAAI,WAAW,GAAQ,IACzD,EACN,eAAK,aAAa,EAAE,CAAC,aACnB,wCAAuB,EACvB,eAAM,KAAK,EAAC,SAAS,YAAE,MAAM,CAAC,OAAO,GAAQ,IACzC,EACN,eAAK,aAAa,EAAE,CAAC,aACnB,4CAA2B,EAC3B,eAAM,KAAK,EAAC,SAAS,YAAE,MAAM,CAAC,WAAW,GAAQ,IAC7C,EACN,cAAK,UAAU,EAAE,CAAC,YAChB,eAAM,QAAQ,kGAEP,GACH,EACN,cAAK,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,YAChC,eAAM,QAAQ,sEAAuD,GACjE,EACN,cAAK,UAAU,EAAE,CAAC,YAChB,KAAC,WAAW,IACV,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE;wBAC9D,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;qBACzD,GACD,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { InstallConfig } from '../App.js';
3
+ interface ConfirmProps {
4
+ config: InstallConfig;
5
+ onInstall: () => void;
6
+ onBack: () => void;
7
+ }
8
+ export declare function Confirm({ config, onInstall, onBack }: ConfirmProps): React.ReactNode;
9
+ export {};
10
+ //# sourceMappingURL=Confirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Confirm.d.ts","sourceRoot":"","sources":["../../src/screens/Confirm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,UAAU,YAAY;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,YAAY,mBA6DlE"}
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
2
+ import { ButtonGroup } from '../components/Button.js';
3
+ export function Confirm({ config, onInstall, onBack }) {
4
+ const renderAddons = () => {
5
+ const addons = [];
6
+ if (config.withKimaki)
7
+ addons.push('Kimaki');
8
+ if (config.withLunaroute)
9
+ addons.push('LunaRoute');
10
+ if (config.withWorktreeSession)
11
+ addons.push('Worktree Sessions');
12
+ if (config.withSessionHandoff)
13
+ addons.push('Session Handoff');
14
+ if (config.withAgentOfEmpires)
15
+ addons.push('Agent of Empires');
16
+ if (addons.length === 0)
17
+ return 'None';
18
+ return addons.join(', ');
19
+ };
20
+ const renderSkips = () => {
21
+ const skips = [];
22
+ if (config.noAgentOS)
23
+ skips.push('Agent-OS');
24
+ if (config.noCcmanager)
25
+ skips.push('ccmanager');
26
+ if (config.noPlugins)
27
+ skips.push('OpenCode plugins');
28
+ if (skips.length === 0)
29
+ return 'None';
30
+ return skips.join(', ');
31
+ };
32
+ return (_jsxs("box", { flexDirection: "column", paddingTop: 2, children: [_jsx("box", { paddingBottom: 1, children: _jsx("text", { bold: true, children: "Review your installation:" }) }), _jsxs("box", { paddingLeft: 2, children: [_jsxs("text", { children: [_jsx("text", { bold: true, children: "Mode:" }), " ", config.mode] }), _jsxs("text", { children: [_jsx("text", { bold: true, children: "Provider:" }), " ", config.provider] }), _jsxs("text", { children: [_jsx("text", { bold: true, children: "Hostname:" }), " ", config.hostname || '<not set>'] }), _jsxs("text", { children: [_jsx("text", { bold: true, children: "SSH User:" }), " ", config.sshUser] }), _jsxs("text", { children: [_jsx("text", { bold: true, children: "Add-ons:" }), " ", renderAddons()] }), _jsxs("text", { children: [_jsx("text", { bold: true, children: "Skip:" }), " ", renderSkips()] })] }), _jsx("box", { paddingTop: 2, children: _jsx("text", { dimColor: true, children: "This will SSH into your VPS and run the installation script." }) }), _jsx("box", { paddingTop: 3, children: _jsx(ButtonGroup, { buttons: [
33
+ { label: 'Install', onClick: onInstall, variant: 'primary' },
34
+ { label: 'Back', onClick: onBack, variant: 'secondary' },
35
+ ] }) })] }));
36
+ }
37
+ //# sourceMappingURL=Confirm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Confirm.js","sourceRoot":"","sources":["../../src/screens/Confirm.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAStD,MAAM,UAAU,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAgB;IACjE,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,UAAU;YAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,aAAa;YAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,mBAAmB;YAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,kBAAkB;YAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,kBAAkB;YAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE/D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QACvC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAErD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QACtC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,aACvC,cAAK,aAAa,EAAE,CAAC,YACnB,eAAM,IAAI,gDAAiC,GACvC,EACN,eAAK,WAAW,EAAE,CAAC,aACjB,2BACE,eAAM,IAAI,4BAAa,OAAE,MAAM,CAAC,IAAI,IAC/B,EACP,2BACE,eAAM,IAAI,gCAAiB,OAAE,MAAM,CAAC,QAAQ,IACvC,EACP,2BACE,eAAM,IAAI,gCAAiB,OAAE,MAAM,CAAC,QAAQ,IAAI,WAAW,IACtD,EACP,2BACE,eAAM,IAAI,gCAAiB,OAAE,MAAM,CAAC,OAAO,IACtC,EACP,2BACE,eAAM,IAAI,+BAAgB,OAAE,YAAY,EAAE,IACrC,EACP,2BACE,eAAM,IAAI,4BAAa,OAAE,WAAW,EAAE,IACjC,IACH,EACN,cAAK,UAAU,EAAE,CAAC,YAChB,eAAM,QAAQ,mFAAoE,GAC9E,EACN,cAAK,UAAU,EAAE,CAAC,YAChB,KAAC,WAAW,IACV,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;wBAC5D,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;qBACzD,GACD,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { InstallConfig } from '../App.js';
3
+ interface InstallProps {
4
+ config: InstallConfig;
5
+ onComplete: () => void;
6
+ onBack: () => void;
7
+ }
8
+ export declare function Install({ config, onComplete, onBack }: InstallProps): React.ReactNode;
9
+ export {};
10
+ //# sourceMappingURL=Install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Install.d.ts","sourceRoot":"","sources":["../../src/screens/Install.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,UAAU,YAAY;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AASD,wBAAgB,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,YAAY,mBAqInE"}
@@ -0,0 +1,116 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "@opentui/react/jsx-runtime";
2
+ import { useState, useEffect } from 'react';
3
+ import { useKeyboard } from '@opentui/react';
4
+ import { ProgressBar } from '../components/ProgressBar.js';
5
+ import { Button } from '../components/Button.js';
6
+ import { spawn } from 'child_process';
7
+ export function Install({ config, onComplete, onBack }) {
8
+ const [steps, setSteps] = useState([
9
+ { name: 'Connect to VPS', command: '', progress: 0, status: 'pending' },
10
+ { name: 'Install base dependencies', command: '', progress: 0, status: 'pending' },
11
+ { name: 'Install Eternal Terminal', command: '', progress: 0, status: 'pending' },
12
+ { name: 'Install OpenCode', command: '', progress: 0, status: 'pending' },
13
+ { name: 'Install components', command: '', progress: 0, status: 'pending' },
14
+ { name: 'Configure firewall', command: '', progress: 0, status: 'pending' },
15
+ ]);
16
+ const [currentStep, setCurrentStep] = useState(0);
17
+ const [isCancelled, setIsCancelled] = useState(false);
18
+ const [output, setOutput] = useState([]);
19
+ useEffect(() => {
20
+ if (isCancelled)
21
+ return;
22
+ runInstallation();
23
+ }, []);
24
+ const runInstallation = async () => {
25
+ const flags = buildFlags(config);
26
+ const hostname = config.hostname || 'localhost';
27
+ for (let i = 0; i < steps.length; i++) {
28
+ if (isCancelled)
29
+ break;
30
+ setCurrentStep(i);
31
+ updateStep(i, { status: 'running' });
32
+ try {
33
+ await runSSHCommand(hostname, config.sshUser, flags, i);
34
+ updateStep(i, { status: 'complete', progress: 100 });
35
+ }
36
+ catch (error) {
37
+ updateStep(i, { status: 'error' });
38
+ break;
39
+ }
40
+ }
41
+ if (!isCancelled) {
42
+ onComplete();
43
+ }
44
+ };
45
+ const runSSHCommand = (hostname, user, flags, step) => {
46
+ return new Promise((resolve, reject) => {
47
+ const scriptUrl = 'https://raw.githubusercontent.com/microck/sincronizado/main/scripts/setup-vps.sh';
48
+ const command = `ssh ${user}@${hostname} "curl -fsSL ${scriptUrl} | sudo bash -s -- ${flags}"`;
49
+ const proc = spawn('sh', ['-c', command], { stdio: ['pipe', 'pipe', 'pipe'] });
50
+ proc.stdout?.on('data', (data) => {
51
+ const lines = data.toString().split('\n');
52
+ setOutput((prev) => [...prev.slice(-10), ...lines]);
53
+ const progress = estimateProgress(lines.join('\n'), step);
54
+ updateStep(step, { progress });
55
+ });
56
+ proc.stderr?.on('data', (data) => {
57
+ setOutput((prev) => [...prev.slice(-10), data.toString().trim()]);
58
+ });
59
+ proc.on('close', (code) => {
60
+ if (code === 0) {
61
+ resolve();
62
+ }
63
+ else {
64
+ reject(new Error(`Exit code: ${code}`));
65
+ }
66
+ });
67
+ proc.on('error', reject);
68
+ });
69
+ };
70
+ const estimateProgress = (output, step) => {
71
+ const markers = {
72
+ 0: ['Connecting', 'connected'],
73
+ 1: ['Updating packages', 'Dependencies installed'],
74
+ 2: ['Installing Eternal Terminal', 'Eternal Terminal installed'],
75
+ 3: ['Installing OpenCode', 'OpenCode installed'],
76
+ 4: ['Installing', 'installed'],
77
+ 5: ['Configuring firewall', 'Firewall configured'],
78
+ };
79
+ const stepMarkers = markers[step] || [];
80
+ if (output.includes(stepMarkers[1] || ''))
81
+ return 100;
82
+ if (output.includes(stepMarkers[0] || ''))
83
+ return 50;
84
+ return 25;
85
+ };
86
+ const updateStep = (index, updates) => {
87
+ setSteps((prev) => prev.map((step, i) => (i === index ? { ...step, ...updates } : step)));
88
+ };
89
+ useKeyboard((key) => {
90
+ if (key.name === 'escape') {
91
+ setIsCancelled(true);
92
+ }
93
+ });
94
+ return (_jsxs("box", { flexDirection: "column", paddingTop: 2, children: [_jsxs("box", { paddingBottom: 1, children: [_jsxs("text", { children: ["Installing on ", config.hostname || 'VPS', "..."] }), _jsx("text", { dimColor: true, children: "Press ESC to cancel" })] }), _jsx("box", { flexDirection: "column", paddingBottom: 1, children: steps.map((step, index) => (_jsx("box", { paddingBottom: 1, children: _jsx(ProgressBar, { progress: step.progress, label: step.name, status: step.status }) }, step.name))) }), output.length > 0 && (_jsx("box", { borderStyle: "single", paddingX: 1, height: 6, children: _jsx("text", { dimColor: true, children: output.slice(-5).join('\n') }) })), isCancelled && (_jsx("box", { paddingTop: 2, children: _jsx(Button, { label: "Back", onClick: onBack, variant: "secondary" }) }))] }));
95
+ }
96
+ function buildFlags(config) {
97
+ const flags = [`--mode=${config.mode}`];
98
+ if (config.withKimaki)
99
+ flags.push('--with-kimaki');
100
+ if (config.withLunaroute)
101
+ flags.push('--with-lunaroute');
102
+ if (config.withWorktreeSession)
103
+ flags.push('--with-worktree-session');
104
+ if (config.withSessionHandoff)
105
+ flags.push('--with-session-handoff');
106
+ if (config.withAgentOfEmpires)
107
+ flags.push('--with-agent-of-empires');
108
+ if (config.noAgentOS)
109
+ flags.push('--no-agent-os');
110
+ if (config.noCcmanager)
111
+ flags.push('--no-ccmanager');
112
+ if (config.noPlugins)
113
+ flags.push('--no-plugins');
114
+ return flags.join(' ');
115
+ }
116
+ //# sourceMappingURL=Install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Install.js","sourceRoot":"","sources":["../../src/screens/Install.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { InstallConfig } from '../App.js';
3
+ interface ModeSelectProps {
4
+ config: InstallConfig;
5
+ onChange: (updates: Partial<InstallConfig>) => void;
6
+ onContinue: () => void;
7
+ onBack: () => void;
8
+ }
9
+ export declare function ModeSelect({ config, onChange, onContinue, onBack }: ModeSelectProps): React.ReactNode;
10
+ export {};
11
+ //# sourceMappingURL=ModeSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModeSelect.d.ts","sourceRoot":"","sources":["../../src/screens/ModeSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,WAAW,CAAC;AAE5D,UAAU,eAAe;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAyBD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,eAAe,mBAmBnF"}