imcodes 2026.3.242 → 2026.3.244

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -45,9 +45,9 @@ Single-model output shouldn't be trusted blindly. Spawn quick discussion rounds
45
45
 
46
46
  Connect multiple dev machines to one dashboard. Each machine runs a lightweight daemon that manages local agent sessions via tmux. See all servers and sessions at a glance — start, stop, restart, or switch between them instantly. Sub-sessions let you spawn additional agents from within a running session for parallel tasks.
47
47
 
48
- ### File Transfer
48
+ ### File Browser & Preview
49
49
 
50
- Upload files from browser or phone (including camera capture). Files are relayed to the daemon and referenced in chat with `@path`. Download project files directly from the built-in file browser.
50
+ Browse project files, preview any file with syntax highlighting, and view git diffs with inline change comparison — all from the browser. Upload files from browser or phone (including camera capture), referenced in chat with `@path`.
51
51
 
52
52
  ### Mobile & Notifications
53
53
 
@@ -89,37 +89,37 @@ This binds your machine, starts the daemon, and registers it as a system service
89
89
 
90
90
  ## Self-Host
91
91
 
92
- Deploy your own IM.codes server with Docker Compose. Includes automatic HTTPS via Caddy and auto-updates via Watchtower.
92
+ ### One-Command Setup
93
+
94
+ Deploy server + daemon on a single machine. Requires Docker and a domain with DNS pointing to the server.
93
95
 
94
96
  ```bash
95
- # 1. Clone and configure
96
- git clone https://github.com/im4codes/imcodes.git
97
- cd imcodes
98
- cp .env.example .env
99
-
100
- # 2. Edit .env — set your domain, admin password, and secrets
101
- # DOMAIN=im.example.com
102
- # DEFAULT_ADMIN_PASSWORD=your-secure-password
103
- # POSTGRES_PASSWORD=$(openssl rand -hex 16)
104
- # JWT_SIGNING_KEY=$(openssl rand -hex 32)
105
-
106
- # 3. Start
107
- docker compose up -d
97
+ npm install -g imcodes
98
+ mkdir imcodes && cd imcodes
99
+ imcodes setup --domain imc.example.com
108
100
  ```
109
101
 
110
- Caddy automatically provisions a Let's Encrypt certificate for your domain. Watchtower checks for new images every 5 minutes and updates automatically.
102
+ This generates all config, starts PostgreSQL + server + Caddy with automatic HTTPS, creates the admin account, and binds the local daemon all in one step. Credentials are printed at the end.
111
103
 
112
- Point your DNS A record to the server IP, then visit `https://your-domain`.
104
+ To connect additional machines:
105
+
106
+ ```bash
107
+ npm install -g imcodes
108
+ imcodes bind https://imc.example.com/bind/<api-key>
109
+ ```
113
110
 
114
- Login with `admin` and the password you set in `DEFAULT_ADMIN_PASSWORD`. If not set, a random password is generated on first run — check `docker compose logs server` to find it.
111
+ ### Manual Setup
115
112
 
116
- After logging in, bind your dev machine:
113
+ If you prefer to configure manually:
117
114
 
118
115
  ```bash
119
- npm install -g imcodes
120
- imcodes bind https://your-domain/bind/<api-key>
116
+ git clone https://github.com/im4codes/imcodes.git && cd imcodes
117
+ ./gen-env.sh imc.example.com # generates .env with random secrets, prints admin password
118
+ docker compose up -d
121
119
  ```
122
120
 
121
+ Login at `https://your-domain` with `admin` and the printed password. Bind your dev machine with `imcodes bind`.
122
+
123
123
  ## Requirements
124
124
 
125
125
  - macOS or Linux (tested on both). Windows users need [WSL](https://learn.microsoft.com/en-us/windows/wsl/) — native Windows is not supported since the project uses tmux to manage agent sessions.
package/dist/index.js CHANGED
@@ -291,6 +291,15 @@ program
291
291
  .action(async (url, deviceName, opts) => {
292
292
  await (0, bind_flow_js_1.bindFlow)(url, deviceName, { force: opts?.force });
293
293
  });
294
+ program
295
+ .command('setup')
296
+ .description('Deploy IM.codes server + daemon on this machine (Docker required)')
297
+ .requiredOption('--domain <domain>', 'Domain name for HTTPS (e.g. imc.example.com)')
298
+ .option('--force', 'Overwrite existing setup')
299
+ .action(async (opts) => {
300
+ const { setupFlow } = await import('./setup/setup-flow.js');
301
+ await setupFlow(opts.domain, { force: opts.force });
302
+ });
294
303
  program
295
304
  .command('service')
296
305
  .description('Manage the imcodes system service')
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `imcodes setup --domain <domain>` — one-click server + daemon deployment.
3
+ *
4
+ * 1. Check prerequisites (docker, docker compose, ports)
5
+ * 2. Generate .env, docker-compose.yml, Caddyfile
6
+ * 3. Two-phase Docker startup (postgres → server → bootstrap DB → caddy)
7
+ * 4. Self-bind daemon (write server.json, install service)
8
+ * 5. Print credentials
9
+ */
10
+ export declare function setupFlow(domain: string, opts?: {
11
+ force?: boolean;
12
+ }): Promise<void>;
13
+ //# sourceMappingURL=setup-flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-flow.d.ts","sourceRoot":"","sources":["../../src/setup/setup-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyQH,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA+D7F"}
@@ -0,0 +1,295 @@
1
+ "use strict";
2
+ /**
3
+ * `imcodes setup --domain <domain>` — one-click server + daemon deployment.
4
+ *
5
+ * 1. Check prerequisites (docker, docker compose, ports)
6
+ * 2. Generate .env, docker-compose.yml, Caddyfile
7
+ * 3. Two-phase Docker startup (postgres → server → bootstrap DB → caddy)
8
+ * 4. Self-bind daemon (write server.json, install service)
9
+ * 5. Print credentials
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.setupFlow = setupFlow;
13
+ const node_crypto_1 = require("node:crypto");
14
+ const promises_1 = require("node:fs/promises");
15
+ const node_fs_1 = require("node:fs");
16
+ const node_child_process_1 = require("node:child_process");
17
+ const node_path_1 = require("node:path");
18
+ const node_os_1 = require("node:os");
19
+ const templates_js_1 = require("./templates.js");
20
+ const CREDS_DIR = (0, node_path_1.join)((0, node_os_1.homedir)(), '.imcodes');
21
+ const CREDS_PATH = (0, node_path_1.join)(CREDS_DIR, 'server.json');
22
+ // ── Helpers ──────────────────────────────────────────────────────────────────
23
+ function randomHex(bytes) {
24
+ return (0, node_crypto_1.randomBytes)(bytes).toString('hex');
25
+ }
26
+ function sha256Hex(input) {
27
+ return (0, node_crypto_1.createHash)('sha256').update(input, 'utf8').digest('hex');
28
+ }
29
+ function log(msg) {
30
+ console.log(` ${msg}`);
31
+ }
32
+ function fatal(msg) {
33
+ console.error(`\n Error: ${msg}`);
34
+ process.exit(1);
35
+ }
36
+ /** Try `docker compose` (v2 plugin) then `docker-compose` (v1 standalone). */
37
+ function detectDockerCompose() {
38
+ try {
39
+ (0, node_child_process_1.execSync)('docker compose version', { stdio: 'ignore' });
40
+ return 'docker compose';
41
+ }
42
+ catch { /* try v1 */ }
43
+ try {
44
+ (0, node_child_process_1.execSync)('docker-compose version', { stdio: 'ignore' });
45
+ return 'docker-compose';
46
+ }
47
+ catch { /* not found */ }
48
+ fatal('docker compose not found. Install Docker: https://docs.docker.com/get-docker/');
49
+ }
50
+ function run(cmd, cwd) {
51
+ (0, node_child_process_1.execSync)(cmd, { cwd, stdio: 'inherit' });
52
+ }
53
+ function runQuiet(cmd, cwd) {
54
+ return (0, node_child_process_1.execSync)(cmd, { cwd, encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
55
+ }
56
+ // ── Prerequisite checks ──────────────────────────────────────────────────────
57
+ function checkPrerequisites() {
58
+ // Docker
59
+ try {
60
+ (0, node_child_process_1.execSync)('docker info', { stdio: 'ignore' });
61
+ }
62
+ catch {
63
+ fatal('Docker is not running. Start Docker and try again.');
64
+ }
65
+ // Docker Compose
66
+ const compose = detectDockerCompose();
67
+ return compose;
68
+ }
69
+ function checkExistingSetup(dir, force) {
70
+ if ((0, node_fs_1.existsSync)((0, node_path_1.join)(dir, '.env')) && !force) {
71
+ fatal('Setup already exists in this directory. Use --force to overwrite.');
72
+ }
73
+ }
74
+ function checkDns(domain) {
75
+ try {
76
+ const result = (0, node_child_process_1.execFileSync)('dig', ['+short', domain], { encoding: 'utf8', timeout: 5000 }).trim();
77
+ if (!result) {
78
+ console.warn(`\n Warning: DNS for ${domain} does not resolve. Make sure your A record is configured.`);
79
+ }
80
+ }
81
+ catch {
82
+ // dig not available, skip check
83
+ }
84
+ }
85
+ function generateSecrets() {
86
+ return {
87
+ postgresPassword: randomHex(16),
88
+ jwtSigningKey: randomHex(32),
89
+ adminPassword: randomHex(16),
90
+ serverToken: randomHex(32),
91
+ serverId: randomHex(16),
92
+ apiKeyRaw: `deck_${randomHex(32)}`,
93
+ apiKeyId: randomHex(16),
94
+ };
95
+ }
96
+ async function writeConfigs(dir, domain, secrets) {
97
+ await (0, promises_1.writeFile)((0, node_path_1.join)(dir, '.env'), (0, templates_js_1.envTemplate)({
98
+ domain,
99
+ postgresPassword: secrets.postgresPassword,
100
+ jwtSigningKey: secrets.jwtSigningKey,
101
+ adminPassword: secrets.adminPassword,
102
+ }));
103
+ await (0, promises_1.writeFile)((0, node_path_1.join)(dir, 'docker-compose.yml'), templates_js_1.DOCKER_COMPOSE_TEMPLATE);
104
+ await (0, promises_1.writeFile)((0, node_path_1.join)(dir, 'Caddyfile'), (0, templates_js_1.caddyfileTemplate)(domain));
105
+ }
106
+ // ── Docker lifecycle ────────────────────────────────────────────────────────
107
+ function composeCmd(compose, dir, args) {
108
+ run(`${compose} -f ${(0, node_path_1.join)(dir, 'docker-compose.yml')} --env-file ${(0, node_path_1.join)(dir, '.env')} ${args}`, dir);
109
+ }
110
+ function composeCmdQuiet(compose, dir, args) {
111
+ return runQuiet(`${compose} -f ${(0, node_path_1.join)(dir, 'docker-compose.yml')} --env-file ${(0, node_path_1.join)(dir, '.env')} ${args}`, dir);
112
+ }
113
+ async function waitForService(compose, dir, service, timeoutMs = 30_000) {
114
+ const start = Date.now();
115
+ while (Date.now() - start < timeoutMs) {
116
+ try {
117
+ const health = composeCmdQuiet(compose, dir, `ps --format json ${service}`);
118
+ // docker compose ps --format json outputs one JSON object per line
119
+ for (const line of health.split('\n')) {
120
+ if (!line.trim())
121
+ continue;
122
+ try {
123
+ const obj = JSON.parse(line);
124
+ if (obj.Health === 'healthy' || obj.State === 'running')
125
+ return;
126
+ }
127
+ catch { /* not JSON */ }
128
+ }
129
+ }
130
+ catch { /* not ready */ }
131
+ await new Promise(r => setTimeout(r, 2000));
132
+ }
133
+ fatal(`Timed out waiting for ${service} to be ready.`);
134
+ }
135
+ // ── Database bootstrap ──────────────────────────────────────────────────────
136
+ function buildBootstrapSQL(secrets) {
137
+ const now = Date.now();
138
+ const keyHash = sha256Hex(secrets.apiKeyRaw);
139
+ const tokenHash = sha256Hex(secrets.serverToken);
140
+ const serverName = (0, node_os_1.hostname)();
141
+ return `
142
+ -- Bootstrap: create API key and server record for setup self-bind.
143
+ -- Admin user is created by the server's ensureDefaultAdmin on startup.
144
+
145
+ INSERT INTO api_keys (id, user_id, key_hash, label, created_at)
146
+ VALUES (
147
+ $$${secrets.apiKeyId}$$,
148
+ (SELECT id FROM users WHERE username = 'admin'),
149
+ $$${keyHash}$$,
150
+ $$setup-bootstrap$$,
151
+ ${now}
152
+ );
153
+
154
+ INSERT INTO servers (id, user_id, name, token_hash, bound_with_key_id, status, created_at)
155
+ VALUES (
156
+ $$${secrets.serverId}$$,
157
+ (SELECT id FROM users WHERE username = 'admin'),
158
+ $$${serverName}$$,
159
+ $$${tokenHash}$$,
160
+ $$${secrets.apiKeyId}$$,
161
+ 'online',
162
+ ${now}
163
+ );
164
+ `;
165
+ }
166
+ function bootstrapDatabase(compose, dir, secrets) {
167
+ const sql = buildBootstrapSQL(secrets);
168
+ try {
169
+ (0, node_child_process_1.execSync)(`${compose} -f ${(0, node_path_1.join)(dir, 'docker-compose.yml')} --env-file ${(0, node_path_1.join)(dir, '.env')} exec -T postgres psql -U imcodes -d imcodes`, { input: sql, cwd: dir, stdio: ['pipe', 'pipe', 'pipe'] });
170
+ }
171
+ catch (err) {
172
+ const stderr = err?.stderr?.toString() || '';
173
+ if (stderr.includes('duplicate key') || stderr.includes('already exists')) {
174
+ log('Database records already exist (re-setup). Continuing.');
175
+ }
176
+ else {
177
+ fatal(`Database bootstrap failed: ${stderr || err.message}`);
178
+ }
179
+ }
180
+ }
181
+ // ── Self-binding ────────────────────────────────────────────────────────────
182
+ async function selfBind(secrets) {
183
+ await (0, promises_1.mkdir)(CREDS_DIR, { recursive: true });
184
+ const creds = {
185
+ serverId: secrets.serverId,
186
+ token: secrets.serverToken,
187
+ workerUrl: 'http://localhost:19138',
188
+ serverName: (0, node_os_1.hostname)(),
189
+ boundAt: Date.now(),
190
+ };
191
+ await (0, promises_1.writeFile)(CREDS_PATH, JSON.stringify(creds, null, 2), { encoding: 'utf8', mode: 0o600 });
192
+ }
193
+ function installService() {
194
+ if (process.platform === 'linux') {
195
+ installSystemdService();
196
+ }
197
+ else if (process.platform === 'darwin') {
198
+ console.log(' Run "imcodes start" to start the daemon on macOS.');
199
+ }
200
+ else {
201
+ console.log(' Run "imcodes start" to start the daemon.');
202
+ }
203
+ }
204
+ function installSystemdService() {
205
+ const serviceDir = (0, node_path_1.join)((0, node_os_1.homedir)(), '.config', 'systemd', 'user');
206
+ const servicePath = (0, node_path_1.join)(serviceDir, 'imcodes.service');
207
+ const nodeExec = process.execPath;
208
+ const imcodesPath = process.argv[1];
209
+ const logPath = (0, node_path_1.join)(CREDS_DIR, 'daemon.log');
210
+ const unit = `[Unit]
211
+ Description=IM.codes Daemon
212
+ After=network.target
213
+
214
+ [Service]
215
+ Type=simple
216
+ ExecStart=${nodeExec} ${imcodesPath} start --foreground
217
+ Restart=on-failure
218
+ RestartSec=5
219
+ StandardOutput=append:${logPath}
220
+ StandardError=append:${logPath}
221
+ Environment=NODE_ENV=production
222
+
223
+ [Install]
224
+ WantedBy=default.target
225
+ `;
226
+ (0, node_child_process_1.execSync)(`mkdir -p "${serviceDir}"`);
227
+ (0, node_fs_1.writeFileSync)(servicePath, unit);
228
+ try {
229
+ (0, node_child_process_1.execSync)('systemctl --user daemon-reload', { stdio: 'ignore' });
230
+ (0, node_child_process_1.execSync)('systemctl --user enable imcodes', { stdio: 'ignore' });
231
+ (0, node_child_process_1.execSync)('systemctl --user restart imcodes', { stdio: 'ignore' });
232
+ // Enable lingering so the service runs without active login session
233
+ (0, node_child_process_1.execSync)('loginctl enable-linger', { stdio: 'ignore' });
234
+ }
235
+ catch {
236
+ console.log(' Could not start systemd service automatically. Run: systemctl --user start imcodes');
237
+ }
238
+ }
239
+ // ── Main flow ───────────────────────────────────────────────────────────────
240
+ async function setupFlow(domain, opts = {}) {
241
+ const dir = process.cwd();
242
+ console.log('\n IM.codes Setup\n');
243
+ // 1. Prerequisites
244
+ log('Checking prerequisites...');
245
+ const compose = checkPrerequisites();
246
+ checkExistingSetup(dir, opts.force ?? false);
247
+ checkDns(domain);
248
+ // 2. Generate config
249
+ log('Generating configuration...');
250
+ const secrets = generateSecrets();
251
+ await writeConfigs(dir, domain, secrets);
252
+ log('Created .env, docker-compose.yml, Caddyfile');
253
+ // 3. Phase 1: Start PostgreSQL
254
+ log('Starting PostgreSQL...');
255
+ composeCmd(compose, dir, 'up -d postgres');
256
+ await waitForService(compose, dir, 'postgres');
257
+ log('PostgreSQL ready.');
258
+ // 4. Phase 2: Start server (runs migrations + creates admin)
259
+ log('Starting server...');
260
+ composeCmd(compose, dir, 'up -d server');
261
+ // Wait a bit for migrations + admin creation
262
+ await new Promise(r => setTimeout(r, 5000));
263
+ await waitForService(compose, dir, 'server');
264
+ log('Server ready.');
265
+ // 5. Phase 3: Bootstrap database (api_keys + servers)
266
+ log('Bootstrapping database...');
267
+ bootstrapDatabase(compose, dir, secrets);
268
+ log('Database bootstrapped.');
269
+ // 6. Phase 4: Start remaining services
270
+ log('Starting Caddy and Watchtower...');
271
+ composeCmd(compose, dir, 'up -d');
272
+ log('All services running.');
273
+ // 7. Self-bind
274
+ log('Binding daemon to local server...');
275
+ await selfBind(secrets);
276
+ installService();
277
+ log('Daemon bound and running.');
278
+ // 8. Print summary
279
+ const bindUrl = `https://${domain}/bind/${secrets.apiKeyRaw}`;
280
+ console.log(`
281
+ ┌──────────────────────────────────────────────────────┐
282
+ │ IM.codes server running at https://${domain}
283
+
284
+ │ Admin login: admin / ${secrets.adminPassword}
285
+ │ Bind URL: ${bindUrl}
286
+
287
+ │ This machine is bound and daemon is running.
288
+
289
+ │ To connect another machine:
290
+ │ npm install -g imcodes
291
+ │ imcodes bind ${bindUrl}
292
+ └──────────────────────────────────────────────────────┘
293
+ `);
294
+ }
295
+ //# sourceMappingURL=setup-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-flow.js","sourceRoot":"","sources":["../../src/setup/setup-flow.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAyQH,8BA+DC;AAtUD,6CAAsD;AACtD,+CAAoD;AACpD,qCAAoD;AACpD,2DAA4D;AAC5D,yCAAiC;AACjC,qCAA4C;AAC5C,iDAAyF;AAEzF,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,UAAU,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAElD,gFAAgF;AAEhF,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,IAAA,yBAAW,EAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,GAAG,CAAC,GAAW;IACtB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,IAAA,6BAAQ,EAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACxB,IAAI,CAAC;QACH,IAAA,6BAAQ,EAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IAC3B,KAAK,CAAC,+EAA+E,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,GAAG,CAAC,GAAW,EAAE,GAAW;IACnC,IAAA,6BAAQ,EAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAW;IACxC,OAAO,IAAA,6BAAQ,EAAC,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1F,CAAC;AAED,gFAAgF;AAEhF,SAAS,kBAAkB;IACzB,SAAS;IACT,IAAI,CAAC;QACH,IAAA,6BAAQ,EAAC,aAAa,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC9D,CAAC;IAED,iBAAiB;IACjB,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IAEtC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,KAAc;IACrD,IAAI,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5C,KAAK,CAAC,mEAAmE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,iCAAY,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnG,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,wBAAwB,MAAM,2DAA2D,CAAC,CAAC;QAC1G,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;AACH,CAAC;AAcD,SAAS,eAAe;IACtB,OAAO;QACL,gBAAgB,EAAE,SAAS,CAAC,EAAE,CAAC;QAC/B,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;QAC5B,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;QAC5B,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;QAC1B,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QACvB,SAAS,EAAE,QAAQ,SAAS,CAAC,EAAE,CAAC,EAAE;QAClC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;KACxB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,MAAc,EAAE,OAAqB;IAC5E,MAAM,IAAA,oBAAS,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,MAAM,CAAC,EAAE,IAAA,0BAAW,EAAC;QAC7C,MAAM;QACN,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC,CAAC,CAAC;IAEJ,MAAM,IAAA,oBAAS,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,oBAAoB,CAAC,EAAE,sCAAuB,CAAC,CAAC;IAC1E,MAAM,IAAA,oBAAS,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,WAAW,CAAC,EAAE,IAAA,gCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,+EAA+E;AAE/E,SAAS,UAAU,CAAC,OAAe,EAAE,GAAW,EAAE,IAAY;IAC5D,GAAG,CAAC,GAAG,OAAO,OAAO,IAAA,gBAAI,EAAC,GAAG,EAAE,oBAAoB,CAAC,eAAe,IAAA,gBAAI,EAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,GAAW,EAAE,IAAY;IACjE,OAAO,QAAQ,CAAC,GAAG,OAAO,OAAO,IAAA,gBAAI,EAAC,GAAG,EAAE,oBAAoB,CAAC,eAAe,IAAA,gBAAI,EAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACnH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,GAAW,EAAE,OAAe,EAAE,SAAS,GAAG,MAAM;IAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC5E,mEAAmE;YACnE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC3B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;wBAAE,OAAO;gBAClE,CAAC;gBAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;QAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,KAAK,CAAC,yBAAyB,OAAO,eAAe,CAAC,CAAC;AACzD,CAAC;AAED,+EAA+E;AAE/E,SAAS,iBAAiB,CAAC,OAAqB;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,IAAA,kBAAQ,GAAE,CAAC;IAE9B,OAAO;;;;;;MAMH,OAAO,CAAC,QAAQ;;MAEhB,OAAO;;IAET,GAAG;;;;;MAKD,OAAO,CAAC,QAAQ;;MAEhB,UAAU;MACV,SAAS;MACT,OAAO,CAAC,QAAQ;;IAElB,GAAG;;CAEN,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,GAAW,EAAE,OAAqB;IAC5E,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,IAAA,6BAAQ,EACN,GAAG,OAAO,OAAO,IAAA,gBAAI,EAAC,GAAG,EAAE,oBAAoB,CAAC,eAAe,IAAA,gBAAI,EAAC,GAAG,EAAE,MAAM,CAAC,8CAA8C,EAC9H,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAC1D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,wDAAwD,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,8BAA8B,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,KAAK,UAAU,QAAQ,CAAC,OAAqB;IAC3C,MAAM,IAAA,gBAAK,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG;QACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,WAAW;QAC1B,SAAS,EAAE,wBAAwB;QACnC,UAAU,EAAE,IAAA,kBAAQ,GAAE;QACtB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;KACpB,CAAC;IACF,MAAM,IAAA,oBAAS,EAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,qBAAqB,EAAE,CAAC;IAC1B,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB;IAC5B,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAE9C,MAAM,IAAI,GAAG;;;;;;YAMH,QAAQ,IAAI,WAAW;;;wBAGX,OAAO;uBACR,OAAO;;;;;CAK7B,CAAC;IAEA,IAAA,6BAAQ,EAAC,aAAa,UAAU,GAAG,CAAC,CAAC;IACrC,IAAA,uBAAa,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,IAAA,6BAAQ,EAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChE,IAAA,6BAAQ,EAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,IAAA,6BAAQ,EAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClE,oEAAoE;QACpE,IAAA,6BAAQ,EAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC;IACtG,CAAC;AACH,CAAC;AAED,+EAA+E;AAExE,KAAK,UAAU,SAAS,CAAC,MAAc,EAAE,OAA4B,EAAE;IAC5E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAEpC,mBAAmB;IACnB,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;IAC7C,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEjB,qBAAqB;IACrB,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAEnD,+BAA+B;IAC/B,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC9B,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAC/C,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAEzB,6DAA6D;IAC7D,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC1B,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;IACzC,6CAA6C;IAC7C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5C,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7C,GAAG,CAAC,eAAe,CAAC,CAAC;IAErB,sDAAsD;IACtD,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACjC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACzC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAE9B,uCAAuC;IACvC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IACxC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAClC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAE7B,eAAe;IACf,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACzC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxB,cAAc,EAAE,CAAC;IACjB,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEjC,mBAAmB;IACnB,MAAM,OAAO,GAAG,WAAW,MAAM,SAAS,OAAO,CAAC,SAAS,EAAE,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC;;0CAE4B,MAAM;;+BAEjB,OAAO,CAAC,aAAa;uBAC7B,OAAO;;;;;;sBAMR,OAAO;;CAE5B,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** Embedded deployment templates for `imcodes setup`. */
2
+ export declare const DOCKER_COMPOSE_TEMPLATE = "services:\n postgres:\n image: postgres:16-alpine\n restart: unless-stopped\n environment:\n POSTGRES_DB: imcodes\n POSTGRES_USER: imcodes\n POSTGRES_PASSWORD: \"${POSTGRES_PASSWORD}\"\n volumes:\n - pgdata:/var/lib/postgresql/data\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U imcodes -d imcodes\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n server:\n image: ghcr.io/im4codes/imcodes:latest\n restart: unless-stopped\n ports:\n - \"127.0.0.1:19138:19138\"\n environment:\n DATABASE_URL: \"postgresql://imcodes:${POSTGRES_PASSWORD}@postgres:5432/imcodes\"\n JWT_SIGNING_KEY: \"${JWT_SIGNING_KEY}\"\n NODE_ENV: production\n PORT: \"19138\"\n SERVER_URL: \"https://${DOMAIN}\"\n ALLOWED_ORIGINS: \"https://${DOMAIN}\"\n WEBAUTHN_RP_ID: \"${WEBAUTHN_RP_ID:-${DOMAIN}}\"\n DEFAULT_ADMIN_PASSWORD: \"${DEFAULT_ADMIN_PASSWORD:-}\"\n TRUSTED_PROXIES: \"127.0.0.1,172.16.0.0/12,10.0.0.0/8,192.168.0.0/16\"\n labels:\n - com.centurylinklabs.watchtower.scope=imcodes\n depends_on:\n postgres:\n condition: service_healthy\n\n caddy:\n image: caddy:2-alpine\n restart: unless-stopped\n ports:\n - \"80:80\"\n - \"443:443\"\n - \"443:443/udp\"\n volumes:\n - ./Caddyfile:/etc/caddy/Caddyfile:ro\n - caddy_data:/data\n - caddy_config:/config\n depends_on:\n - server\n\n watchtower:\n image: containrrr/watchtower\n restart: unless-stopped\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock\n environment:\n WATCHTOWER_POLL_INTERVAL: 300\n WATCHTOWER_CLEANUP: \"true\"\n WATCHTOWER_SCOPE: imcodes\n labels:\n - com.centurylinklabs.watchtower.scope=imcodes\n command: --scope imcodes\n\nvolumes:\n pgdata:\n caddy_data:\n caddy_config:\n";
3
+ export declare function caddyfileTemplate(domain: string): string;
4
+ export declare function envTemplate(vars: {
5
+ domain: string;
6
+ postgresPassword: string;
7
+ jwtSigningKey: string;
8
+ adminPassword: string;
9
+ }): string;
10
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/setup/templates.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,eAAO,MAAM,uBAAuB,81DAoEnC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAMT"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ /** Embedded deployment templates for `imcodes setup`. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DOCKER_COMPOSE_TEMPLATE = void 0;
5
+ exports.caddyfileTemplate = caddyfileTemplate;
6
+ exports.envTemplate = envTemplate;
7
+ exports.DOCKER_COMPOSE_TEMPLATE = `services:
8
+ postgres:
9
+ image: postgres:16-alpine
10
+ restart: unless-stopped
11
+ environment:
12
+ POSTGRES_DB: imcodes
13
+ POSTGRES_USER: imcodes
14
+ POSTGRES_PASSWORD: "\${POSTGRES_PASSWORD}"
15
+ volumes:
16
+ - pgdata:/var/lib/postgresql/data
17
+ healthcheck:
18
+ test: ["CMD-SHELL", "pg_isready -U imcodes -d imcodes"]
19
+ interval: 5s
20
+ timeout: 5s
21
+ retries: 5
22
+
23
+ server:
24
+ image: ghcr.io/im4codes/imcodes:latest
25
+ restart: unless-stopped
26
+ ports:
27
+ - "127.0.0.1:19138:19138"
28
+ environment:
29
+ DATABASE_URL: "postgresql://imcodes:\${POSTGRES_PASSWORD}@postgres:5432/imcodes"
30
+ JWT_SIGNING_KEY: "\${JWT_SIGNING_KEY}"
31
+ NODE_ENV: production
32
+ PORT: "19138"
33
+ SERVER_URL: "https://\${DOMAIN}"
34
+ ALLOWED_ORIGINS: "https://\${DOMAIN}"
35
+ WEBAUTHN_RP_ID: "\${WEBAUTHN_RP_ID:-\${DOMAIN}}"
36
+ DEFAULT_ADMIN_PASSWORD: "\${DEFAULT_ADMIN_PASSWORD:-}"
37
+ TRUSTED_PROXIES: "127.0.0.1,172.16.0.0/12,10.0.0.0/8,192.168.0.0/16"
38
+ labels:
39
+ - com.centurylinklabs.watchtower.scope=imcodes
40
+ depends_on:
41
+ postgres:
42
+ condition: service_healthy
43
+
44
+ caddy:
45
+ image: caddy:2-alpine
46
+ restart: unless-stopped
47
+ ports:
48
+ - "80:80"
49
+ - "443:443"
50
+ - "443:443/udp"
51
+ volumes:
52
+ - ./Caddyfile:/etc/caddy/Caddyfile:ro
53
+ - caddy_data:/data
54
+ - caddy_config:/config
55
+ depends_on:
56
+ - server
57
+
58
+ watchtower:
59
+ image: containrrr/watchtower
60
+ restart: unless-stopped
61
+ volumes:
62
+ - /var/run/docker.sock:/var/run/docker.sock
63
+ environment:
64
+ WATCHTOWER_POLL_INTERVAL: 300
65
+ WATCHTOWER_CLEANUP: "true"
66
+ WATCHTOWER_SCOPE: imcodes
67
+ labels:
68
+ - com.centurylinklabs.watchtower.scope=imcodes
69
+ command: --scope imcodes
70
+
71
+ volumes:
72
+ pgdata:
73
+ caddy_data:
74
+ caddy_config:
75
+ `;
76
+ function caddyfileTemplate(domain) {
77
+ return `${domain} {
78
+ \treverse_proxy server:19138
79
+ }
80
+ `;
81
+ }
82
+ function envTemplate(vars) {
83
+ return `DOMAIN=${vars.domain}
84
+ POSTGRES_PASSWORD=${vars.postgresPassword}
85
+ JWT_SIGNING_KEY=${vars.jwtSigningKey}
86
+ DEFAULT_ADMIN_PASSWORD=${vars.adminPassword}
87
+ `;
88
+ }
89
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/setup/templates.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAwEzD,8CAKC;AAED,kCAWC;AAxFY,QAAA,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoEtC,CAAC;AAEF,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,OAAO,GAAG,MAAM;;;CAGjB,CAAC;AACF,CAAC;AAED,SAAgB,WAAW,CAAC,IAK3B;IACC,OAAO,UAAU,IAAI,CAAC,MAAM;oBACV,IAAI,CAAC,gBAAgB;kBACvB,IAAI,CAAC,aAAa;yBACX,IAAI,CAAC,aAAa;CAC1C,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imcodes",
3
- "version": "2026.3.242",
3
+ "version": "2026.3.244",
4
4
  "description": "A chat interface for AI coding agents — control Claude Code, Codex, Gemini CLI, OpenCode from browser and mobile",
5
5
  "license": "GPL-3.0-only",
6
6
  "repository": {