zenflo 0.11.15 → 0.11.17

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
@@ -11,7 +11,7 @@
11
11
  [![Node](https://img.shields.io/badge/Node-%3E%3D20-brightgreen)](https://nodejs.org/)
12
12
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue)](https://www.typescriptlang.org/)
13
13
 
14
- [Website](https://zenflo.app) • [Documentation](./CLAUDE.md) • [Report Bug](https://github.com/quinnbmay/zenflo/issues)
14
+ [Website](https://zenflo.dev) • [Documentation](./CLAUDE.md) • [Report Bug](https://github.com/quinnbmay/zenflo/issues)
15
15
 
16
16
  </div>
17
17
 
@@ -120,8 +120,9 @@ zenflo connect gemini # Store Gemini API key
120
120
 
121
121
  ```bash
122
122
  # Server Configuration
123
- ZENFLO_SERVER_URL=https://zenflo.combinedmemory.com
124
- ZENFLO_WEBAPP_URL=https://app.combinedmemory.com
123
+ ZENFLO_SERVER_URL=https://api.zenflo.dev # REST API endpoint
124
+ ZENFLO_WEBSOCKET_URL=wss://api.zenflo.dev # WebSocket endpoint (auto-derived if not set)
125
+ ZENFLO_WEBAPP_URL=https://app.zenflo.dev # Web interface
125
126
 
126
127
  # Local Development
127
128
  ZENFLO_HOME_DIR=~/.zenflo
@@ -139,7 +140,8 @@ Create `~/.zenflo/config.json` for persistent settings:
139
140
  {
140
141
  "defaultModel": "sonnet",
141
142
  "permissionMode": "default",
142
- "serverUrl": "https://zenflo.combinedmemory.com",
143
+ "serverUrl": "https://api.zenflo.dev",
144
+ "websocketUrl": "wss://api.zenflo.dev",
143
145
  "experimental": false
144
146
  }
145
147
  ```
@@ -300,7 +302,7 @@ zenflo auth login
300
302
  **"Connection timeout"**
301
303
  ```bash
302
304
  # Check server status
303
- curl https://zenflo.combinedmemory.com/health
305
+ curl https://api.zenflo.dev/health
304
306
 
305
307
  # Use local server for development
306
308
  ZENFLO_SERVER_URL=http://localhost:3005 zenflo
@@ -352,8 +354,10 @@ claude auth login
352
354
 
353
355
 
354
356
  ┌─────────────────┐ ┌──────────────────┐
355
- │ ZenFlo Server │◄────►│ Mobile App
356
- │ (Encrypted API) │ │ (iOS/Android)
357
+ │ ZenFlo Server │◄────►│ Mobile/Web App
358
+ │ (Encrypted API) │ │ (iOS/Android/Web)│
359
+ │ api.zenflo.dev │ │ │
360
+ │ wss:// (sync) │ │ │
357
361
  └─────────────────┘ └──────────────────┘
358
362
  ```
359
363
 
@@ -372,8 +376,8 @@ claude auth login
372
376
 
373
377
  - [CLI Development Guide](./CLAUDE.md)
374
378
  - [Architecture Overview](../docs/ARCHITECTURE.md)
375
- - [API Documentation](../backend/README.md)
376
- - [Mobile App Guide](../mobile/README.md)
379
+ - [API Documentation](../server/README.md)
380
+ - [UI Guide (iOS/Android/Web)](../UI/README.md)
377
381
 
378
382
  ---
379
383
 
@@ -435,7 +439,7 @@ MIT License - See [LICENSE](../LICENSE) for details.
435
439
 
436
440
  **Part of the ZenFlo Platform**
437
441
 
438
- [Website](https://zenflo.app) • [GitHub](https://github.com/quinnbmay/zenflo) • [Support](mailto:yesreply@zenflo.app)
442
+ [Website](https://zenflo.dev) • [GitHub](https://github.com/quinnbmay/zenflo) • [Support](mailto:yesreply@zenflo.dev)
439
443
 
440
444
  ⭐ Star us on GitHub if you find ZenFlo helpful!
441
445
 
@@ -1,7 +1,7 @@
1
1
  import chalk from 'chalk';
2
2
  import os$1, { homedir } from 'node:os';
3
3
  import { randomUUID, randomBytes } from 'node:crypto';
4
- import { l as logger, p as projectPath, e as backoff, f as delay, R as RawJSONLinesSchema, g as AsyncLock, c as configuration, r as readDaemonState, h as clearDaemonState, d as packageJson, b as readSettings, i as readCredentials, j as encodeBase64, u as updateSettings, k as encodeBase64Url, m as decodeBase64, w as writeCredentialsLegacy, n as writeCredentialsDataKey, o as acquireDaemonLock, q as writeDaemonState, A as ApiClient, s as releaseDaemonLock, t as clearCredentials, v as clearMachineId, x as getLatestDaemonLog } from './types-DnkWjM5s.mjs';
4
+ import { l as logger, p as projectPath, e as backoff, f as delay, R as RawJSONLinesSchema, g as AsyncLock, c as configuration, r as readDaemonState, h as clearDaemonState, d as packageJson, b as readSettings, i as readCredentials, j as encodeBase64, u as updateSettings, k as encodeBase64Url, m as decodeBase64, w as writeCredentialsLegacy, n as writeCredentialsDataKey, o as acquireDaemonLock, q as writeDaemonState, A as ApiClient, s as releaseDaemonLock, t as clearCredentials, v as clearMachineId, x as getLatestDaemonLog } from './types-BZBppaDC.mjs';
5
5
  import { spawn, execSync, execFileSync } from 'node:child_process';
6
6
  import { resolve, join } from 'node:path';
7
7
  import { createInterface } from 'node:readline';
@@ -10,7 +10,6 @@ import { readFile } from 'node:fs/promises';
10
10
  import fs, { watch as watch$1, access } from 'fs/promises';
11
11
  import { useStdout, useInput, Box, Text, render } from 'ink';
12
12
  import React, { useState, useRef, useEffect, useCallback } from 'react';
13
- import BigText from 'ink-big-text';
14
13
  import { fileURLToPath } from 'node:url';
15
14
  import axios from 'axios';
16
15
  import 'node:events';
@@ -782,17 +781,10 @@ const RemoteModeDisplay = ({ messageBuffer, logPath, onExit, onSwitchToLocal })
782
781
  const [messages, setMessages] = useState([]);
783
782
  const [confirmationMode, setConfirmationMode] = useState(null);
784
783
  const [actionInProgress, setActionInProgress] = useState(null);
785
- const [bannerPulse, setBannerPulse] = useState(true);
786
784
  const confirmationTimeoutRef = useRef(null);
787
785
  const { stdout } = useStdout();
788
786
  const terminalWidth = stdout.columns || 80;
789
787
  const terminalHeight = stdout.rows || 24;
790
- useEffect(() => {
791
- const interval = setInterval(() => {
792
- setBannerPulse((prev) => !prev);
793
- }, 1500);
794
- return () => clearInterval(interval);
795
- }, []);
796
788
  useEffect(() => {
797
789
  setMessages(messageBuffer.getMessages());
798
790
  const unsubscribe = messageBuffer.onUpdate((newMessages) => {
@@ -879,14 +871,32 @@ const RemoteModeDisplay = ({ messageBuffer, logPath, onExit, onSwitchToLocal })
879
871
  return chunks.join("\n");
880
872
  }).join("\n");
881
873
  };
882
- return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", width: terminalWidth, height: terminalHeight }, /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", marginBottom: 1 }, /* @__PURE__ */ React.createElement(
883
- BigText,
884
- {
885
- text: "ZENFLO",
886
- font: "chrome",
887
- colors: bannerPulse ? ["yellow"] : ["#ff8c00"]
888
- }
889
- )), /* @__PURE__ */ React.createElement(
874
+ const generateBanner = () => {
875
+ const asciiArt = [
876
+ " \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
877
+ " \u255A\u2550\u2550\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557 ",
878
+ " \u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 ",
879
+ " \u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 ",
880
+ " \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D ",
881
+ " \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D "
882
+ ];
883
+ const minWidth = 60;
884
+ const width = Math.max(terminalWidth, minWidth);
885
+ const contentWidth = width - 2;
886
+ const banner2 = [];
887
+ banner2.push("\u2554" + "\u2550".repeat(width - 2) + "\u2557");
888
+ for (const line of asciiArt) {
889
+ const trimmedLine = line.trimEnd();
890
+ const paddingNeeded = contentWidth - trimmedLine.length;
891
+ const leftPad = Math.floor(paddingNeeded / 2);
892
+ const rightPad = paddingNeeded - leftPad;
893
+ banner2.push("\u2551" + " ".repeat(leftPad) + trimmedLine + " ".repeat(rightPad) + "\u2551");
894
+ }
895
+ banner2.push("\u255A" + "\u2550".repeat(width - 2) + "\u255D");
896
+ return banner2;
897
+ };
898
+ const banner = generateBanner();
899
+ return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", width: terminalWidth, height: terminalHeight }, /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", marginBottom: 1 }, banner.map((line, i) => /* @__PURE__ */ React.createElement(Text, { key: i, color: "cyan", bold: true }, line))), /* @__PURE__ */ React.createElement(
890
900
  Box,
891
901
  {
892
902
  flexDirection: "column",
@@ -6236,7 +6246,7 @@ ${chalk.bold("Examples:")}
6236
6246
  ${chalk.bold("Notes:")}
6237
6247
  \u2022 You must be authenticated with Happy first (run 'happy auth login')
6238
6248
  \u2022 API keys are encrypted and stored securely in Happy cloud
6239
- \u2022 You can manage your stored keys at app.combinedmemory.com
6249
+ \u2022 You can manage your stored keys at app.zenflo.dev
6240
6250
  `);
6241
6251
  }
6242
6252
  async function handleConnectVendor(vendor, displayName) {
@@ -6314,7 +6324,7 @@ async function handleConnectVendor(vendor, displayName) {
6314
6324
  return;
6315
6325
  } else if (subcommand === "codex") {
6316
6326
  try {
6317
- const { runCodex } = await import('./runCodex-BqN-utAt.mjs');
6327
+ const { runCodex } = await import('./runCodex-8gWeehcl.mjs');
6318
6328
  let startedBy = void 0;
6319
6329
  for (let i = 1; i < args.length; i++) {
6320
6330
  if (args[i] === "--started-by") {
@@ -6335,7 +6345,7 @@ async function handleConnectVendor(vendor, displayName) {
6335
6345
  return;
6336
6346
  } else if (subcommand === "ccr" || subcommand === "glm") {
6337
6347
  try {
6338
- const { runCCR } = await import('./runCCR-Bm1lmplW.mjs');
6348
+ const { runCCR } = await import('./runCCR-Dlh0bRKi.mjs');
6339
6349
  let startedBy = void 0;
6340
6350
  for (let i = 1; i < args.length; i++) {
6341
6351
  if (args[i] === "--started-by") {
@@ -6438,13 +6448,13 @@ async function handleConnectVendor(vendor, displayName) {
6438
6448
  let statusModule;
6439
6449
  switch (process.platform) {
6440
6450
  case "darwin":
6441
- statusModule = await import('./status-Dkse6lq1.mjs');
6451
+ statusModule = await import('./status-DZYEDjQb.mjs');
6442
6452
  break;
6443
6453
  case "win32":
6444
- statusModule = await import('./status-B-SCr9Dl.mjs');
6454
+ statusModule = await import('./status-Df-Nf8Eh.mjs');
6445
6455
  break;
6446
6456
  case "linux":
6447
- statusModule = await import('./status-21JwMBwu.mjs');
6457
+ statusModule = await import('./status-CImKlTHF.mjs');
6448
6458
  break;
6449
6459
  default:
6450
6460
  console.error(chalk.red(`Status command not supported on platform: ${process.platform}`));
@@ -3,7 +3,7 @@
3
3
  var chalk = require('chalk');
4
4
  var os = require('node:os');
5
5
  var node_crypto = require('node:crypto');
6
- var types = require('./types-0_Y8HPbp.cjs');
6
+ var types = require('./types-DlbOjNGw.cjs');
7
7
  var node_child_process = require('node:child_process');
8
8
  var node_path = require('node:path');
9
9
  var node_readline = require('node:readline');
@@ -12,7 +12,6 @@ var promises = require('node:fs/promises');
12
12
  var fs$1 = require('fs/promises');
13
13
  var ink = require('ink');
14
14
  var React = require('react');
15
- var BigText = require('ink-big-text');
16
15
  var node_url = require('node:url');
17
16
  var axios = require('axios');
18
17
  require('node:events');
@@ -804,17 +803,10 @@ const RemoteModeDisplay = ({ messageBuffer, logPath, onExit, onSwitchToLocal })
804
803
  const [messages, setMessages] = React.useState([]);
805
804
  const [confirmationMode, setConfirmationMode] = React.useState(null);
806
805
  const [actionInProgress, setActionInProgress] = React.useState(null);
807
- const [bannerPulse, setBannerPulse] = React.useState(true);
808
806
  const confirmationTimeoutRef = React.useRef(null);
809
807
  const { stdout } = ink.useStdout();
810
808
  const terminalWidth = stdout.columns || 80;
811
809
  const terminalHeight = stdout.rows || 24;
812
- React.useEffect(() => {
813
- const interval = setInterval(() => {
814
- setBannerPulse((prev) => !prev);
815
- }, 1500);
816
- return () => clearInterval(interval);
817
- }, []);
818
810
  React.useEffect(() => {
819
811
  setMessages(messageBuffer.getMessages());
820
812
  const unsubscribe = messageBuffer.onUpdate((newMessages) => {
@@ -901,14 +893,32 @@ const RemoteModeDisplay = ({ messageBuffer, logPath, onExit, onSwitchToLocal })
901
893
  return chunks.join("\n");
902
894
  }).join("\n");
903
895
  };
904
- return /* @__PURE__ */ React.createElement(ink.Box, { flexDirection: "column", width: terminalWidth, height: terminalHeight }, /* @__PURE__ */ React.createElement(ink.Box, { flexDirection: "column", marginBottom: 1 }, /* @__PURE__ */ React.createElement(
905
- BigText,
906
- {
907
- text: "ZENFLO",
908
- font: "chrome",
909
- colors: bannerPulse ? ["yellow"] : ["#ff8c00"]
910
- }
911
- )), /* @__PURE__ */ React.createElement(
896
+ const generateBanner = () => {
897
+ const asciiArt = [
898
+ " \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
899
+ " \u255A\u2550\u2550\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557 ",
900
+ " \u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 ",
901
+ " \u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 ",
902
+ " \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D ",
903
+ " \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D "
904
+ ];
905
+ const minWidth = 60;
906
+ const width = Math.max(terminalWidth, minWidth);
907
+ const contentWidth = width - 2;
908
+ const banner2 = [];
909
+ banner2.push("\u2554" + "\u2550".repeat(width - 2) + "\u2557");
910
+ for (const line of asciiArt) {
911
+ const trimmedLine = line.trimEnd();
912
+ const paddingNeeded = contentWidth - trimmedLine.length;
913
+ const leftPad = Math.floor(paddingNeeded / 2);
914
+ const rightPad = paddingNeeded - leftPad;
915
+ banner2.push("\u2551" + " ".repeat(leftPad) + trimmedLine + " ".repeat(rightPad) + "\u2551");
916
+ }
917
+ banner2.push("\u255A" + "\u2550".repeat(width - 2) + "\u255D");
918
+ return banner2;
919
+ };
920
+ const banner = generateBanner();
921
+ return /* @__PURE__ */ React.createElement(ink.Box, { flexDirection: "column", width: terminalWidth, height: terminalHeight }, /* @__PURE__ */ React.createElement(ink.Box, { flexDirection: "column", marginBottom: 1 }, banner.map((line, i) => /* @__PURE__ */ React.createElement(ink.Text, { key: i, color: "cyan", bold: true }, line))), /* @__PURE__ */ React.createElement(
912
922
  ink.Box,
913
923
  {
914
924
  flexDirection: "column",
@@ -1036,7 +1046,7 @@ class AbortError extends Error {
1036
1046
  }
1037
1047
  }
1038
1048
 
1039
- const __filename$2 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-DNKf0EWI.cjs', document.baseURI).href)));
1049
+ const __filename$2 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-DorsFBUD.cjs', document.baseURI).href)));
1040
1050
  const __dirname$2 = node_path.join(__filename$2, "..");
1041
1051
  function getDefaultClaudeCodePath() {
1042
1052
  return node_path.join(__dirname$2, "..", "..", "..", "node_modules", "@anthropic-ai", "claude-code", "cli.js");
@@ -5055,7 +5065,7 @@ async function runClaude(credentials, options = {}) {
5055
5065
  process.exit(0);
5056
5066
  }
5057
5067
 
5058
- const __filename$1 = url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-DNKf0EWI.cjs', document.baseURI).href)));
5068
+ const __filename$1 = url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-DorsFBUD.cjs', document.baseURI).href)));
5059
5069
  const __dirname$1 = path.dirname(__filename$1);
5060
5070
  const PLIST_LABEL$1 = "com.zenflo.daemon";
5061
5071
  const LAUNCH_AGENTS_DIR$1 = path.join(os$1.homedir(), "Library", "LaunchAgents");
@@ -6258,7 +6268,7 @@ ${chalk.bold("Examples:")}
6258
6268
  ${chalk.bold("Notes:")}
6259
6269
  \u2022 You must be authenticated with Happy first (run 'happy auth login')
6260
6270
  \u2022 API keys are encrypted and stored securely in Happy cloud
6261
- \u2022 You can manage your stored keys at app.combinedmemory.com
6271
+ \u2022 You can manage your stored keys at app.zenflo.dev
6262
6272
  `);
6263
6273
  }
6264
6274
  async function handleConnectVendor(vendor, displayName) {
@@ -6336,7 +6346,7 @@ async function handleConnectVendor(vendor, displayName) {
6336
6346
  return;
6337
6347
  } else if (subcommand === "codex") {
6338
6348
  try {
6339
- const { runCodex } = await Promise.resolve().then(function () { return require('./runCodex-DzKedphU.cjs'); });
6349
+ const { runCodex } = await Promise.resolve().then(function () { return require('./runCodex-iG8dNNS8.cjs'); });
6340
6350
  let startedBy = void 0;
6341
6351
  for (let i = 1; i < args.length; i++) {
6342
6352
  if (args[i] === "--started-by") {
@@ -6357,7 +6367,7 @@ async function handleConnectVendor(vendor, displayName) {
6357
6367
  return;
6358
6368
  } else if (subcommand === "ccr" || subcommand === "glm") {
6359
6369
  try {
6360
- const { runCCR } = await Promise.resolve().then(function () { return require('./runCCR-t634DjTX.cjs'); });
6370
+ const { runCCR } = await Promise.resolve().then(function () { return require('./runCCR-CGH5HTKg.cjs'); });
6361
6371
  let startedBy = void 0;
6362
6372
  for (let i = 1; i < args.length; i++) {
6363
6373
  if (args[i] === "--started-by") {
@@ -6460,13 +6470,13 @@ async function handleConnectVendor(vendor, displayName) {
6460
6470
  let statusModule;
6461
6471
  switch (process.platform) {
6462
6472
  case "darwin":
6463
- statusModule = await Promise.resolve().then(function () { return require('./status-BogOEm8z.cjs'); });
6473
+ statusModule = await Promise.resolve().then(function () { return require('./status-CmPaH0SP.cjs'); });
6464
6474
  break;
6465
6475
  case "win32":
6466
- statusModule = await Promise.resolve().then(function () { return require('./status-BOgN42vk.cjs'); });
6476
+ statusModule = await Promise.resolve().then(function () { return require('./status-BXVKEnXX.cjs'); });
6467
6477
  break;
6468
6478
  case "linux":
6469
- statusModule = await Promise.resolve().then(function () { return require('./status-BZx2LsYl.cjs'); });
6479
+ statusModule = await Promise.resolve().then(function () { return require('./status-0SavEMdm.cjs'); });
6470
6480
  break;
6471
6481
  default:
6472
6482
  console.error(chalk.red(`Status command not supported on platform: ${process.platform}`));
package/dist/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  require('chalk');
4
- require('./index-DNKf0EWI.cjs');
5
- require('./types-0_Y8HPbp.cjs');
4
+ require('./index-DorsFBUD.cjs');
5
+ require('./types-DlbOjNGw.cjs');
6
6
  require('zod');
7
7
  require('node:child_process');
8
8
  require('node:os');
@@ -14,7 +14,6 @@ require('node:fs/promises');
14
14
  require('fs/promises');
15
15
  require('ink');
16
16
  require('react');
17
- require('ink-big-text');
18
17
  require('node:url');
19
18
  require('axios');
20
19
  require('node:events');
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import 'chalk';
2
- import './index-CrdDs5Zu.mjs';
3
- import './types-DnkWjM5s.mjs';
2
+ import './index-Cq3BnI2T.mjs';
3
+ import './types-BZBppaDC.mjs';
4
4
  import 'zod';
5
5
  import 'node:child_process';
6
6
  import 'node:os';
@@ -12,7 +12,6 @@ import 'node:fs/promises';
12
12
  import 'fs/promises';
13
13
  import 'ink';
14
14
  import 'react';
15
- import 'ink-big-text';
16
15
  import 'node:url';
17
16
  import 'axios';
18
17
  import 'node:events';
package/dist/lib.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var types = require('./types-0_Y8HPbp.cjs');
3
+ var types = require('./types-DlbOjNGw.cjs');
4
4
  require('axios');
5
5
  require('chalk');
6
6
  require('fs');
package/dist/lib.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-DnkWjM5s.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-BZBppaDC.mjs';
2
2
  import 'axios';
3
3
  import 'chalk';
4
4
  import 'fs';
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DNKf0EWI.cjs');
4
- var types = require('./types-0_Y8HPbp.cjs');
3
+ var index = require('./index-DorsFBUD.cjs');
4
+ var types = require('./types-DlbOjNGw.cjs');
5
5
  var node_child_process = require('node:child_process');
6
6
  require('chalk');
7
7
  require('node:os');
@@ -13,7 +13,6 @@ require('node:fs/promises');
13
13
  require('fs/promises');
14
14
  require('ink');
15
15
  require('react');
16
- require('ink-big-text');
17
16
  require('node:url');
18
17
  require('axios');
19
18
  require('node:events');
@@ -1,5 +1,5 @@
1
- import { r as runClaude } from './index-CrdDs5Zu.mjs';
2
- import { l as logger } from './types-DnkWjM5s.mjs';
1
+ import { r as runClaude } from './index-Cq3BnI2T.mjs';
2
+ import { l as logger } from './types-BZBppaDC.mjs';
3
3
  import { execSync } from 'node:child_process';
4
4
  import 'chalk';
5
5
  import 'node:os';
@@ -11,7 +11,6 @@ import 'node:fs/promises';
11
11
  import 'fs/promises';
12
12
  import 'ink';
13
13
  import 'react';
14
- import 'ink-big-text';
15
14
  import 'node:url';
16
15
  import 'axios';
17
16
  import 'node:events';
@@ -1,13 +1,13 @@
1
1
  import { useStdout, useInput, Box, Text, render } from 'ink';
2
2
  import React, { useState, useRef, useEffect, useCallback } from 'react';
3
- import { l as logger, A as ApiClient, b as readSettings, p as projectPath, c as configuration, d as packageJson } from './types-DnkWjM5s.mjs';
3
+ import { l as logger, A as ApiClient, b as readSettings, p as projectPath, c as configuration, d as packageJson } from './types-BZBppaDC.mjs';
4
4
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
5
5
  import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
6
6
  import { z } from 'zod';
7
7
  import { ElicitRequestSchema } from '@modelcontextprotocol/sdk/types.js';
8
8
  import { execSync } from 'child_process';
9
9
  import { randomUUID } from 'node:crypto';
10
- import { i as initialMachineMetadata, n as notifyDaemonSessionStarted, M as MessageQueue2, h as hashObject, a as registerKillSessionHandler, b as MessageBuffer, s as startZenfloServer, t as trimIdent, c as stopCaffeinate } from './index-CrdDs5Zu.mjs';
10
+ import { i as initialMachineMetadata, n as notifyDaemonSessionStarted, M as MessageQueue2, h as hashObject, a as registerKillSessionHandler, b as MessageBuffer, s as startZenfloServer, t as trimIdent, c as stopCaffeinate } from './index-Cq3BnI2T.mjs';
11
11
  import os from 'node:os';
12
12
  import { resolve, join } from 'node:path';
13
13
  import fs from 'node:fs';
@@ -27,7 +27,6 @@ import 'os';
27
27
  import 'expo-server-sdk';
28
28
  import 'node:child_process';
29
29
  import 'node:readline';
30
- import 'ink-big-text';
31
30
  import 'node:url';
32
31
  import 'ps-list';
33
32
  import 'cross-spawn';
@@ -2,14 +2,14 @@
2
2
 
3
3
  var ink = require('ink');
4
4
  var React = require('react');
5
- var types = require('./types-0_Y8HPbp.cjs');
5
+ var types = require('./types-DlbOjNGw.cjs');
6
6
  var index_js = require('@modelcontextprotocol/sdk/client/index.js');
7
7
  var stdio_js = require('@modelcontextprotocol/sdk/client/stdio.js');
8
8
  var z = require('zod');
9
9
  var types_js = require('@modelcontextprotocol/sdk/types.js');
10
10
  var child_process = require('child_process');
11
11
  var node_crypto = require('node:crypto');
12
- var index = require('./index-DNKf0EWI.cjs');
12
+ var index = require('./index-DorsFBUD.cjs');
13
13
  var os = require('node:os');
14
14
  var node_path = require('node:path');
15
15
  var fs = require('node:fs');
@@ -29,7 +29,6 @@ require('os');
29
29
  require('expo-server-sdk');
30
30
  require('node:child_process');
31
31
  require('node:readline');
32
- require('ink-big-text');
33
32
  require('node:url');
34
33
  require('ps-list');
35
34
  require('cross-spawn');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var fs = require('fs');
4
4
  var child_process = require('child_process');
5
- var types = require('./types-0_Y8HPbp.cjs');
5
+ var types = require('./types-DlbOjNGw.cjs');
6
6
  var os = require('os');
7
7
  var path = require('path');
8
8
  var chalk = require('chalk');
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var child_process = require('child_process');
4
- var types = require('./types-0_Y8HPbp.cjs');
4
+ var types = require('./types-DlbOjNGw.cjs');
5
5
  var chalk = require('chalk');
6
6
  require('axios');
7
7
  require('fs');
@@ -1,6 +1,6 @@
1
1
  import { existsSync } from 'fs';
2
2
  import { execSync } from 'child_process';
3
- import { r as readDaemonState, l as logger } from './types-DnkWjM5s.mjs';
3
+ import { r as readDaemonState, l as logger } from './types-BZBppaDC.mjs';
4
4
  import os from 'os';
5
5
  import path from 'path';
6
6
  import chalk from 'chalk';
@@ -5,7 +5,7 @@ var child_process = require('child_process');
5
5
  var os = require('os');
6
6
  var path = require('path');
7
7
  var chalk = require('chalk');
8
- var types = require('./types-0_Y8HPbp.cjs');
8
+ var types = require('./types-DlbOjNGw.cjs');
9
9
  require('axios');
10
10
  require('node:fs');
11
11
  require('node:os');
@@ -3,7 +3,7 @@ import { execSync } from 'child_process';
3
3
  import os from 'os';
4
4
  import path from 'path';
5
5
  import chalk from 'chalk';
6
- import { r as readDaemonState } from './types-DnkWjM5s.mjs';
6
+ import { r as readDaemonState } from './types-BZBppaDC.mjs';
7
7
  import 'axios';
8
8
  import 'node:fs';
9
9
  import 'node:os';
@@ -1,5 +1,5 @@
1
1
  import { execSync } from 'child_process';
2
- import { r as readDaemonState, l as logger } from './types-DnkWjM5s.mjs';
2
+ import { r as readDaemonState, l as logger } from './types-BZBppaDC.mjs';
3
3
  import chalk from 'chalk';
4
4
  import 'axios';
5
5
  import 'fs';
@@ -21,17 +21,22 @@ import { platform } from 'os';
21
21
  import { Expo } from 'expo-server-sdk';
22
22
 
23
23
  var name = "zenflo";
24
- var version = "0.11.15";
24
+ var version = "0.11.17";
25
25
  var description = "Mobile and Web client for Claude Code and Codex - ZenFlo edition";
26
26
  var author = "Combined Memory";
27
27
  var license = "MIT";
28
28
  var type = "module";
29
- var homepage = "https://github.com/combinedmemory/zenflo";
30
- var bugs = "https://github.com/combinedmemory/zenflo/issues";
31
- var repository = "combinedmemory/zenflo";
29
+ var homepage = "https://zenflo.dev";
30
+ var bugs = {
31
+ url: "https://github.com/zenflo/zenflo/issues"
32
+ };
33
+ var repository = {
34
+ type: "git",
35
+ url: "git+https://github.com/zenflo/zenflo.git"
36
+ };
32
37
  var bin = {
33
- zenflo: "./bin/zenflo.mjs",
34
- "zenflo-mcp": "./bin/zenflo-mcp.mjs"
38
+ zenflo: "bin/zenflo.mjs",
39
+ "zenflo-mcp": "bin/zenflo-mcp.mjs"
35
40
  };
36
41
  var main = "./dist/index.cjs";
37
42
  var module$1 = "./dist/index.mjs";
@@ -144,6 +149,8 @@ var publishConfig = {
144
149
  registry: "https://registry.npmjs.org"
145
150
  };
146
151
  var packageManager = "yarn@1.22.22";
152
+ var keywords = [
153
+ ];
147
154
  var packageJson = {
148
155
  name: name,
149
156
  version: version,
@@ -165,7 +172,8 @@ var packageJson = {
165
172
  devDependencies: devDependencies,
166
173
  resolutions: resolutions,
167
174
  publishConfig: publishConfig,
168
- packageManager: packageManager
175
+ packageManager: packageManager,
176
+ keywords: keywords
169
177
  };
170
178
 
171
179
  class Configuration {
@@ -183,8 +191,8 @@ class Configuration {
183
191
  isExperimentalEnabled;
184
192
  disableCaffeinate;
185
193
  constructor() {
186
- this.serverUrl = process.env.ZENFLO_SERVER_URL || "https://zenflo.combinedmemory.com";
187
- this.webappUrl = process.env.ZENFLO_WEBAPP_URL || "https://app.combinedmemory.com";
194
+ this.serverUrl = process.env.ZENFLO_SERVER_URL || "https://api.zenflo.dev";
195
+ this.webappUrl = process.env.ZENFLO_WEBAPP_URL || "https://app.zenflo.dev";
188
196
  const args = process.argv.slice(2);
189
197
  this.isDaemonProcess = args.length >= 2 && args[0] === "daemon" && args[1] === "start-sync";
190
198
  if (process.env.ZENFLO_HOME_DIR) {
@@ -42,17 +42,22 @@ function _interopNamespaceDefault(e) {
42
42
  var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
43
43
 
44
44
  var name = "zenflo";
45
- var version = "0.11.15";
45
+ var version = "0.11.17";
46
46
  var description = "Mobile and Web client for Claude Code and Codex - ZenFlo edition";
47
47
  var author = "Combined Memory";
48
48
  var license = "MIT";
49
49
  var type = "module";
50
- var homepage = "https://github.com/combinedmemory/zenflo";
51
- var bugs = "https://github.com/combinedmemory/zenflo/issues";
52
- var repository = "combinedmemory/zenflo";
50
+ var homepage = "https://zenflo.dev";
51
+ var bugs = {
52
+ url: "https://github.com/zenflo/zenflo/issues"
53
+ };
54
+ var repository = {
55
+ type: "git",
56
+ url: "git+https://github.com/zenflo/zenflo.git"
57
+ };
53
58
  var bin = {
54
- zenflo: "./bin/zenflo.mjs",
55
- "zenflo-mcp": "./bin/zenflo-mcp.mjs"
59
+ zenflo: "bin/zenflo.mjs",
60
+ "zenflo-mcp": "bin/zenflo-mcp.mjs"
56
61
  };
57
62
  var main = "./dist/index.cjs";
58
63
  var module$1 = "./dist/index.mjs";
@@ -165,6 +170,8 @@ var publishConfig = {
165
170
  registry: "https://registry.npmjs.org"
166
171
  };
167
172
  var packageManager = "yarn@1.22.22";
173
+ var keywords = [
174
+ ];
168
175
  var packageJson = {
169
176
  name: name,
170
177
  version: version,
@@ -186,7 +193,8 @@ var packageJson = {
186
193
  devDependencies: devDependencies,
187
194
  resolutions: resolutions,
188
195
  publishConfig: publishConfig,
189
- packageManager: packageManager
196
+ packageManager: packageManager,
197
+ keywords: keywords
190
198
  };
191
199
 
192
200
  class Configuration {
@@ -204,8 +212,8 @@ class Configuration {
204
212
  isExperimentalEnabled;
205
213
  disableCaffeinate;
206
214
  constructor() {
207
- this.serverUrl = process.env.ZENFLO_SERVER_URL || "https://zenflo.combinedmemory.com";
208
- this.webappUrl = process.env.ZENFLO_WEBAPP_URL || "https://app.combinedmemory.com";
215
+ this.serverUrl = process.env.ZENFLO_SERVER_URL || "https://api.zenflo.dev";
216
+ this.webappUrl = process.env.ZENFLO_WEBAPP_URL || "https://app.zenflo.dev";
209
217
  const args = process.argv.slice(2);
210
218
  this.isDaemonProcess = args.length >= 2 && args[0] === "daemon" && args[1] === "start-sync";
211
219
  if (process.env.ZENFLO_HOME_DIR) {
@@ -1020,7 +1028,7 @@ class RpcHandlerManager {
1020
1028
  }
1021
1029
  }
1022
1030
 
1023
- const __dirname$1 = path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('types-0_Y8HPbp.cjs', document.baseURI).href))));
1031
+ const __dirname$1 = path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('types-DlbOjNGw.cjs', document.baseURI).href))));
1024
1032
  function projectPath() {
1025
1033
  const path$1 = path.resolve(__dirname$1, "..");
1026
1034
  return path$1;
package/package.json CHANGED
@@ -1,16 +1,21 @@
1
1
  {
2
2
  "name": "zenflo",
3
- "version": "0.11.15",
3
+ "version": "0.11.17",
4
4
  "description": "Mobile and Web client for Claude Code and Codex - ZenFlo edition",
5
5
  "author": "Combined Memory",
6
6
  "license": "MIT",
7
7
  "type": "module",
8
- "homepage": "https://github.com/combinedmemory/zenflo",
9
- "bugs": "https://github.com/combinedmemory/zenflo/issues",
10
- "repository": "combinedmemory/zenflo",
8
+ "homepage": "https://zenflo.dev",
9
+ "bugs": {
10
+ "url": "https://github.com/zenflo/zenflo/issues"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/zenflo/zenflo.git"
15
+ },
11
16
  "bin": {
12
- "zenflo": "./bin/zenflo.mjs",
13
- "zenflo-mcp": "./bin/zenflo-mcp.mjs"
17
+ "zenflo": "bin/zenflo.mjs",
18
+ "zenflo-mcp": "bin/zenflo-mcp.mjs"
14
19
  },
15
20
  "main": "./dist/index.cjs",
16
21
  "module": "./dist/index.mjs",
@@ -122,5 +127,6 @@
122
127
  "publishConfig": {
123
128
  "registry": "https://registry.npmjs.org"
124
129
  },
125
- "packageManager": "yarn@1.22.22"
130
+ "packageManager": "yarn@1.22.22",
131
+ "keywords": []
126
132
  }