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 +14 -10
- package/dist/{index-CrdDs5Zu.mjs → index-Cq3BnI2T.mjs} +33 -23
- package/dist/{index-DNKf0EWI.cjs → index-DorsFBUD.cjs} +35 -25
- package/dist/index.cjs +2 -3
- package/dist/index.mjs +2 -3
- package/dist/lib.cjs +1 -1
- package/dist/lib.mjs +1 -1
- package/dist/{runCCR-t634DjTX.cjs → runCCR-CGH5HTKg.cjs} +2 -3
- package/dist/{runCCR-Bm1lmplW.mjs → runCCR-Dlh0bRKi.mjs} +2 -3
- package/dist/{runCodex-BqN-utAt.mjs → runCodex-8gWeehcl.mjs} +2 -3
- package/dist/{runCodex-DzKedphU.cjs → runCodex-iG8dNNS8.cjs} +2 -3
- package/dist/{status-BZx2LsYl.cjs → status-0SavEMdm.cjs} +1 -1
- package/dist/{status-BOgN42vk.cjs → status-BXVKEnXX.cjs} +1 -1
- package/dist/{status-21JwMBwu.mjs → status-CImKlTHF.mjs} +1 -1
- package/dist/{status-BogOEm8z.cjs → status-CmPaH0SP.cjs} +1 -1
- package/dist/{status-Dkse6lq1.mjs → status-DZYEDjQb.mjs} +1 -1
- package/dist/{status-B-SCr9Dl.mjs → status-Df-Nf8Eh.mjs} +1 -1
- package/dist/{types-DnkWjM5s.mjs → types-BZBppaDC.mjs} +17 -9
- package/dist/{types-0_Y8HPbp.cjs → types-DlbOjNGw.cjs} +18 -10
- package/package.json +13 -7
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[](https://nodejs.org/)
|
|
12
12
|
[](https://www.typescriptlang.org/)
|
|
13
13
|
|
|
14
|
-
[Website](https://zenflo.
|
|
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.
|
|
124
|
-
|
|
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.
|
|
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.
|
|
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) │ │
|
|
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](../
|
|
376
|
-
- [
|
|
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.
|
|
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-
|
|
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
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
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.
|
|
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-
|
|
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-
|
|
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-
|
|
6451
|
+
statusModule = await import('./status-DZYEDjQb.mjs');
|
|
6442
6452
|
break;
|
|
6443
6453
|
case "win32":
|
|
6444
|
-
statusModule = await import('./status-
|
|
6454
|
+
statusModule = await import('./status-Df-Nf8Eh.mjs');
|
|
6445
6455
|
break;
|
|
6446
6456
|
case "linux":
|
|
6447
|
-
statusModule = await import('./status-
|
|
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-
|
|
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
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
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-
|
|
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-
|
|
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.
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
5
|
-
require('./types-
|
|
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-
|
|
3
|
-
import './types-
|
|
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
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-
|
|
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-
|
|
4
|
-
var types = require('./types-
|
|
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-
|
|
2
|
-
import { l as logger } from './types-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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');
|
|
@@ -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-
|
|
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-
|
|
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-
|
|
6
|
+
import { r as readDaemonState } from './types-BZBppaDC.mjs';
|
|
7
7
|
import 'axios';
|
|
8
8
|
import 'node:fs';
|
|
9
9
|
import 'node:os';
|
|
@@ -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.
|
|
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://
|
|
30
|
-
var bugs =
|
|
31
|
-
|
|
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: "
|
|
34
|
-
"zenflo-mcp": "
|
|
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.
|
|
187
|
-
this.webappUrl = process.env.ZENFLO_WEBAPP_URL || "https://app.
|
|
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.
|
|
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://
|
|
51
|
-
var bugs =
|
|
52
|
-
|
|
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: "
|
|
55
|
-
"zenflo-mcp": "
|
|
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.
|
|
208
|
-
this.webappUrl = process.env.ZENFLO_WEBAPP_URL || "https://app.
|
|
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-
|
|
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.
|
|
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://
|
|
9
|
-
"bugs":
|
|
10
|
-
|
|
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": "
|
|
13
|
-
"zenflo-mcp": "
|
|
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
|
}
|