@zonease/happy 0.6.40 → 0.6.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/{api-D6WL40-U.mjs → api-K2-jr9ar.mjs} +2 -2
  2. package/dist/{api-C7FyJfZ1.cjs → api-XeHlmApX.cjs} +3 -3
  3. package/dist/{auth-C7ZScWEw.cjs → auth-BQvEuSs5.cjs} +2 -2
  4. package/dist/{auth-DCsIoZLT.cjs → auth-BbvPcnkY.cjs} +4 -4
  5. package/dist/{auth-DO9GexAR.mjs → auth-CjLkoM3m.mjs} +4 -4
  6. package/dist/{auth-DxJ3VvrX.mjs → auth-DS8fzlin.mjs} +2 -2
  7. package/dist/{browser-AoVGRX7y.mjs → browser-C05Ak6RL.mjs} +1 -1
  8. package/dist/{browser-DzgO4oaD.cjs → browser-C05SP_Tt.cjs} +1 -1
  9. package/dist/{claudeLocal-C6BdzhDx.cjs → claudeLocal-CpDhLCcZ.cjs} +1 -1
  10. package/dist/{claudeLocal-CWNGpJ0-.mjs → claudeLocal-DJNRlHIC.mjs} +1 -1
  11. package/dist/{config-CclB3QW9.cjs → config-B0mns9fF.cjs} +1 -1
  12. package/dist/{config-DZk-mJ0K.mjs → config-DWWtjKQx.mjs} +1 -1
  13. package/dist/{connect-k9CqDJ-T.cjs → connect-BxCScVNX.cjs} +4 -4
  14. package/dist/{connect-BXLUKJ5P.mjs → connect-DXQC1CJe.mjs} +4 -4
  15. package/dist/{controlClient-B23M-WPp.cjs → controlClient-DgELDZgM.cjs} +1 -1
  16. package/dist/{controlClient-DB5tDU7V.mjs → controlClient-DgjVRN8D.mjs} +1 -1
  17. package/dist/{deviceKeys-C540DcXl.cjs → deviceKeys-BpIAWz13.cjs} +2 -2
  18. package/dist/{deviceKeys-BTdo34Uz.mjs → deviceKeys-CejCdWpw.mjs} +2 -2
  19. package/dist/{doctor-CU4JLGQ1.mjs → doctor-B-LCMVN9.mjs} +3 -3
  20. package/dist/{doctor-BQGLhrcI.cjs → doctor-DznasgP3.cjs} +3 -3
  21. package/dist/{downloadImage-cQ1Z7hkC.cjs → downloadImage-B_ygLAXY.cjs} +3 -3
  22. package/dist/{downloadImage-DZXI3mXL.mjs → downloadImage-ia5SzlCV.mjs} +3 -3
  23. package/dist/{enroll-Bo-CNio1.cjs → enroll-BvfpRUGJ.cjs} +3 -3
  24. package/dist/{enroll-B55BQR56.mjs → enroll-HjUqyGnD.mjs} +3 -3
  25. package/dist/{evidence-DTYRAaOZ.mjs → evidence-BEQd1dCh.mjs} +1 -1
  26. package/dist/{evidence-DQp8QWcv.cjs → evidence-CVgTjBrq.cjs} +1 -1
  27. package/dist/{formatImageMessage-CixDYY6G.cjs → formatImageMessage-CmJTP_hU.cjs} +1 -1
  28. package/dist/{formatImageMessage-DbKSSjMx.mjs → formatImageMessage-DVs57t3x.mjs} +1 -1
  29. package/dist/index.cjs +56 -41
  30. package/dist/index.mjs +56 -41
  31. package/dist/{install-D7Ir7ciZ.cjs → install-2Yl_L582.cjs} +2 -2
  32. package/dist/{install-CgUPGIoF.mjs → install-B3mMGISS.mjs} +1 -1
  33. package/dist/{install-DSDufaPd.cjs → install-Ck22tYHP.cjs} +1 -1
  34. package/dist/{install-B1e6rdy7.mjs → install-UTz_vYvB.mjs} +2 -2
  35. package/dist/lib.cjs +3 -3
  36. package/dist/lib.mjs +3 -3
  37. package/dist/{loadableToolOutput-Bfei9wPq.mjs → loadableToolOutput-4EvraaNY.mjs} +3 -3
  38. package/dist/{loadableToolOutput-CbLGtvST.cjs → loadableToolOutput-BZYlaqHn.cjs} +3 -3
  39. package/dist/{persistence-DKfF81pd.mjs → persistence-CIUFyOwz.mjs} +2 -2
  40. package/dist/{persistence-CBTtC_dm.cjs → persistence-DrfN7TzY.cjs} +1 -1
  41. package/dist/push-CCOXCcM_.cjs +80 -0
  42. package/dist/push-USXj_pv0.mjs +78 -0
  43. package/dist/{run-CURx7LhK.cjs → run-D3CopmEb.cjs} +8 -8
  44. package/dist/{run-BVZsMNwN.mjs → run-Dy6KX6m-.mjs} +8 -8
  45. package/dist/{runClaude-6Gi0sYQy.mjs → runClaude-CWux2RDq.mjs} +14 -14
  46. package/dist/{runClaude-CL3Kt5ex.cjs → runClaude-aHzvx6Ha.cjs} +15 -15
  47. package/dist/{runCodex-ClwEgJ7M.mjs → runCodex-D0ZxSj3O.mjs} +13 -13
  48. package/dist/{runCodex-YKyVBkJ3.cjs → runCodex-G-Aq531U.cjs} +13 -13
  49. package/dist/{runGemini-BPWxVr60.mjs → runGemini-DZC2i6vA.mjs} +15 -15
  50. package/dist/{runGemini-Xz2W1spn.cjs → runGemini-DxGgDAIM.cjs} +15 -15
  51. package/dist/{runOneShot-DjZyCvDI.cjs → runOneShot-BgT-JNMA.cjs} +2 -2
  52. package/dist/{runOneShot-CdCWiiLr.mjs → runOneShot-cxlk7VKA.mjs} +2 -2
  53. package/dist/{serve-B48JttQ3.mjs → serve-CKyvJNs0.mjs} +6 -6
  54. package/dist/{serve-B8vaWQA0.cjs → serve-Dr3wPrtK.cjs} +6 -6
  55. package/dist/{session-BZO25zxp.cjs → session-dYzbOo_W.cjs} +5 -5
  56. package/dist/{session-BXboDn2V.mjs → session-vf2ZjFto.mjs} +5 -5
  57. package/dist/{sessionKeyCache-B6cGadYL.mjs → sessionKeyCache-D2u3JUys.mjs} +1 -1
  58. package/dist/{sessionKeyCache-CDmexJ9p.cjs → sessionKeyCache-dDquDzn0.cjs} +1 -1
  59. package/dist/{sessionList-CgAYZpNj.mjs → sessionList-C1k2PNg_.mjs} +2 -2
  60. package/dist/{sessionList-lQ-nqEhc.cjs → sessionList-DmmtC7uR.cjs} +2 -2
  61. package/dist/{sessionSummary-DCWQoaDP.mjs → sessionSummary-5a1QtFVS.mjs} +3 -3
  62. package/dist/{sessionSummary-CcORiQSq.cjs → sessionSummary-DGLoVOxd.cjs} +3 -3
  63. package/dist/{spawnHappyCLI-KiazE3kL.cjs → spawnHappyCLI-CarRI4GM.cjs} +1 -1
  64. package/dist/{spawnHappyCLI-yBIP_Oqi.mjs → spawnHappyCLI-D3EkTFIn.mjs} +1 -1
  65. package/dist/{ssh-q5uZhqBf.mjs → ssh-B0hvEYIl.mjs} +9 -6
  66. package/dist/{ssh-yMllSHu5.cjs → ssh-CBgVwKsB.cjs} +9 -5
  67. package/dist/{task-_nr7J19j.cjs → task-CMunPKCV.cjs} +6 -6
  68. package/dist/{task-wNX1N2i4.mjs → task-CRo6W-3_.mjs} +6 -6
  69. package/dist/{uninstall-Dxf6_4mQ.mjs → uninstall-BALE2up0.mjs} +2 -2
  70. package/dist/{uninstall-Buaz7d-X.cjs → uninstall-BJ3eEGM4.cjs} +2 -2
  71. package/dist/{update-CGlIfa8e.cjs → update-Bb3iijy8.cjs} +3 -3
  72. package/dist/{update-CnnoX2cV.mjs → update-BfjtLrhO.mjs} +3 -3
  73. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { existsSync } from 'node:fs';
3
- import { c as claudeCliPath } from './claudeLocal-CWNGpJ0-.mjs';
4
- import { l as logger } from './persistence-DKfF81pd.mjs';
3
+ import { c as claudeCliPath } from './claudeLocal-DJNRlHIC.mjs';
4
+ import { l as logger } from './persistence-CIUFyOwz.mjs';
5
5
  import { i as isModelModeForAgent, M as MODEL_MODE_DEFAULT, p as parseCodexModelMode, a as parseClaudeModelMode } from './index-CPKdvi7J.mjs';
6
6
  import { i as isOrchestratorProvider, O as ORCHESTRATOR_ENV_KEYS, d as decodePromptFromBase64 } from './common-BdNgghUJ.mjs';
7
7
  import 'node:path';
@@ -1,10 +1,10 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
- import { c as configuration, g as encodeBase64, h as encrypt, f as decodeBase64, e as decrypt, r as readCredentials } from './persistence-DKfF81pd.mjs';
4
- import { s as sessionListInputSchema, r as runSessionList } from './sessionList-CgAYZpNj.mjs';
3
+ import { c as configuration, e as encodeBase64, f as encrypt, h as decodeBase64, g as decrypt, r as readCredentials } from './persistence-CIUFyOwz.mjs';
4
+ import { s as sessionListInputSchema, r as runSessionList } from './sessionList-C1k2PNg_.mjs';
5
5
  import axios from 'axios';
6
6
  import { z } from 'zod';
7
- import { f as fetchSessionById, a as decryptMessage, s as sessionSummaryInputSchema, r as runSessionSummary } from './sessionSummary-DCWQoaDP.mjs';
7
+ import { f as fetchSessionById, a as decryptMessage, s as sessionSummaryInputSchema, r as runSessionSummary } from './sessionSummary-5a1QtFVS.mjs';
8
8
  import { randomUUID } from 'node:crypto';
9
9
  import 'node:fs/promises';
10
10
  import 'node:fs';
@@ -13,14 +13,14 @@ import 'node:path';
13
13
  import 'tweetnacl';
14
14
  import 'chalk';
15
15
  import 'fs';
16
- import './auth-DxJ3VvrX.mjs';
16
+ import './auth-DS8fzlin.mjs';
17
17
  import 'qrcode-terminal';
18
18
  import './time-DgsBLJA_.mjs';
19
- import './browser-AoVGRX7y.mjs';
19
+ import './browser-C05Ak6RL.mjs';
20
20
  import 'open';
21
21
  import 'react';
22
22
  import 'ink';
23
- import './sessionKeyCache-B6cGadYL.mjs';
23
+ import './sessionKeyCache-D2u3JUys.mjs';
24
24
 
25
25
  const PREVIEW_LIMIT = 200;
26
26
  const TAIL_MESSAGES = 5;
@@ -2,11 +2,11 @@
2
2
 
3
3
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
4
4
  var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
5
- var logger = require('./persistence-CBTtC_dm.cjs');
6
- var sessionList = require('./sessionList-lQ-nqEhc.cjs');
5
+ var logger = require('./persistence-DrfN7TzY.cjs');
6
+ var sessionList = require('./sessionList-DmmtC7uR.cjs');
7
7
  var axios = require('axios');
8
8
  var z = require('zod');
9
- var sessionSummary = require('./sessionSummary-CcORiQSq.cjs');
9
+ var sessionSummary = require('./sessionSummary-DGLoVOxd.cjs');
10
10
  var node_crypto = require('node:crypto');
11
11
  require('node:fs/promises');
12
12
  require('node:fs');
@@ -15,14 +15,14 @@ require('node:path');
15
15
  require('tweetnacl');
16
16
  require('chalk');
17
17
  require('fs');
18
- require('./auth-C7ZScWEw.cjs');
18
+ require('./auth-BQvEuSs5.cjs');
19
19
  require('qrcode-terminal');
20
20
  require('./time-Bj2HRkKH.cjs');
21
- require('./browser-DzgO4oaD.cjs');
21
+ require('./browser-C05SP_Tt.cjs');
22
22
  require('open');
23
23
  require('react');
24
24
  require('ink');
25
- require('./sessionKeyCache-CDmexJ9p.cjs');
25
+ require('./sessionKeyCache-dDquDzn0.cjs');
26
26
 
27
27
  const PREVIEW_LIMIT = 200;
28
28
  const TAIL_MESSAGES = 5;
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var logger = require('./persistence-CBTtC_dm.cjs');
5
- var sessionSummary = require('./sessionSummary-CcORiQSq.cjs');
4
+ var logger = require('./persistence-DrfN7TzY.cjs');
5
+ var sessionSummary = require('./sessionSummary-DGLoVOxd.cjs');
6
6
  require('node:fs/promises');
7
7
  require('node:fs');
8
8
  require('node:os');
@@ -12,14 +12,14 @@ require('node:crypto');
12
12
  require('tweetnacl');
13
13
  require('fs');
14
14
  require('axios');
15
- require('./auth-C7ZScWEw.cjs');
15
+ require('./auth-BQvEuSs5.cjs');
16
16
  require('qrcode-terminal');
17
17
  require('./time-Bj2HRkKH.cjs');
18
- require('./browser-DzgO4oaD.cjs');
18
+ require('./browser-C05SP_Tt.cjs');
19
19
  require('open');
20
20
  require('react');
21
21
  require('ink');
22
- require('./sessionKeyCache-CDmexJ9p.cjs');
22
+ require('./sessionKeyCache-dDquDzn0.cjs');
23
23
 
24
24
  function printSessionHelp() {
25
25
  console.log(`
@@ -1,6 +1,6 @@
1
1
  import chalk from 'chalk';
2
- import { r as readCredentials } from './persistence-DKfF81pd.mjs';
3
- import { r as runSessionSummary } from './sessionSummary-DCWQoaDP.mjs';
2
+ import { r as readCredentials } from './persistence-CIUFyOwz.mjs';
3
+ import { r as runSessionSummary } from './sessionSummary-5a1QtFVS.mjs';
4
4
  import 'node:fs/promises';
5
5
  import 'node:fs';
6
6
  import 'node:os';
@@ -10,14 +10,14 @@ import 'node:crypto';
10
10
  import 'tweetnacl';
11
11
  import 'fs';
12
12
  import 'axios';
13
- import './auth-DxJ3VvrX.mjs';
13
+ import './auth-DS8fzlin.mjs';
14
14
  import 'qrcode-terminal';
15
15
  import './time-DgsBLJA_.mjs';
16
- import './browser-AoVGRX7y.mjs';
16
+ import './browser-C05Ak6RL.mjs';
17
17
  import 'open';
18
18
  import 'react';
19
19
  import 'ink';
20
- import './sessionKeyCache-B6cGadYL.mjs';
20
+ import './sessionKeyCache-D2u3JUys.mjs';
21
21
 
22
22
  function printSessionHelp() {
23
23
  console.log(`
@@ -1,7 +1,7 @@
1
1
  import { existsSync, mkdirSync, readFileSync } from 'node:fs';
2
2
  import { writeFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
- import { c as configuration, k as encryptWithDataKey, g as encodeBase64, m as decryptWithDataKey, f as decodeBase64 } from './persistence-DKfF81pd.mjs';
4
+ import { c as configuration, j as encryptWithDataKey, e as encodeBase64, k as decryptWithDataKey, h as decodeBase64 } from './persistence-CIUFyOwz.mjs';
5
5
 
6
6
  function keyPath(sessionId) {
7
7
  return join(configuration.sessionKeysDir, `${sessionId}.key`);
@@ -3,7 +3,7 @@
3
3
  var fs = require('node:fs');
4
4
  var promises = require('node:fs/promises');
5
5
  var path = require('node:path');
6
- var logger = require('./persistence-CBTtC_dm.cjs');
6
+ var logger = require('./persistence-DrfN7TzY.cjs');
7
7
 
8
8
  function keyPath(sessionId) {
9
9
  return path.join(logger.configuration.sessionKeysDir, `${sessionId}.key`);
@@ -1,7 +1,7 @@
1
1
  import axios from 'axios';
2
2
  import { z } from 'zod';
3
- import { c as configuration } from './persistence-DKfF81pd.mjs';
4
- import { d as decryptSessionRow } from './sessionSummary-DCWQoaDP.mjs';
3
+ import { c as configuration } from './persistence-CIUFyOwz.mjs';
4
+ import { d as decryptSessionRow } from './sessionSummary-5a1QtFVS.mjs';
5
5
 
6
6
  const sessionListInputSchema = {
7
7
  status: z.enum(["active", "archived", "all"]).optional().describe("Filter by session state. Default: all."),
@@ -2,8 +2,8 @@
2
2
 
3
3
  var axios = require('axios');
4
4
  var z = require('zod');
5
- var logger = require('./persistence-CBTtC_dm.cjs');
6
- var sessionSummary = require('./sessionSummary-CcORiQSq.cjs');
5
+ var logger = require('./persistence-DrfN7TzY.cjs');
6
+ var sessionSummary = require('./sessionSummary-DGLoVOxd.cjs');
7
7
 
8
8
  const sessionListInputSchema = {
9
9
  status: z.z.enum(["active", "archived", "all"]).optional().describe("Filter by session state. Default: all."),
@@ -1,8 +1,8 @@
1
1
  import axios from 'axios';
2
2
  import { z } from 'zod';
3
- import { q as decryptLegacy, f as decodeBase64, m as decryptWithDataKey, c as configuration } from './persistence-DKfF81pd.mjs';
4
- import { decryptWithEphemeralKey } from './auth-DxJ3VvrX.mjs';
5
- import { r as readCachedSessionKey } from './sessionKeyCache-B6cGadYL.mjs';
3
+ import { q as decryptLegacy, h as decodeBase64, k as decryptWithDataKey, c as configuration } from './persistence-CIUFyOwz.mjs';
4
+ import { decryptWithEphemeralKey } from './auth-DS8fzlin.mjs';
5
+ import { r as readCachedSessionKey } from './sessionKeyCache-D2u3JUys.mjs';
6
6
 
7
7
  function resolveSessionKey(credentials, dataEncryptionKey, sessionId) {
8
8
  if (credentials.encryption.type === "legacy") {
@@ -2,9 +2,9 @@
2
2
 
3
3
  var axios = require('axios');
4
4
  var z = require('zod');
5
- var logger = require('./persistence-CBTtC_dm.cjs');
6
- var auth = require('./auth-C7ZScWEw.cjs');
7
- var sessionKeyCache = require('./sessionKeyCache-CDmexJ9p.cjs');
5
+ var logger = require('./persistence-DrfN7TzY.cjs');
6
+ var auth = require('./auth-BQvEuSs5.cjs');
7
+ var sessionKeyCache = require('./sessionKeyCache-dDquDzn0.cjs');
8
8
 
9
9
  function resolveSessionKey(credentials, dataEncryptionKey, sessionId) {
10
10
  if (credentials.encryption.type === "legacy") {
@@ -3,7 +3,7 @@
3
3
  var child_process = require('child_process');
4
4
  var path = require('node:path');
5
5
  var projectPath = require('./projectPath-ChLhdOyt.cjs');
6
- var logger = require('./persistence-CBTtC_dm.cjs');
6
+ var logger = require('./persistence-DrfN7TzY.cjs');
7
7
  var fs = require('node:fs');
8
8
 
9
9
  let cachedRuntime = null;
@@ -1,7 +1,7 @@
1
1
  import { spawn } from 'child_process';
2
2
  import { join } from 'node:path';
3
3
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
4
- import { l as logger } from './persistence-DKfF81pd.mjs';
4
+ import { l as logger } from './persistence-CIUFyOwz.mjs';
5
5
  import { existsSync } from 'node:fs';
6
6
 
7
7
  let cachedRuntime = null;
@@ -1,7 +1,7 @@
1
1
  import { io } from 'socket.io-client';
2
- import { c as configuration, e as decrypt, f as decodeBase64, g as encodeBase64, h as encrypt } from './persistence-DKfF81pd.mjs';
3
- import { e as ensureDeviceKey, l as listDevices, r as readCachedDeviceNames, a as readCachedDeviceKey, p as pruneDeviceAliases, d as deviceExec } from './deviceKeys-BTdo34Uz.mjs';
4
- import { execOnDeviceViaDaemon } from './controlClient-DB5tDU7V.mjs';
2
+ import { c as configuration, g as decrypt, h as decodeBase64, e as encodeBase64, f as encrypt } from './persistence-CIUFyOwz.mjs';
3
+ import { e as ensureDeviceKey, l as listDevices, r as readCachedDeviceNames, a as readCachedDeviceKey, p as pruneDeviceAliases, d as deviceExec } from './deviceKeys-CejCdWpw.mjs';
4
+ import { execOnDeviceViaDaemon } from './controlClient-DgjVRN8D.mjs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:fs';
7
7
  import 'node:os';
@@ -12,10 +12,10 @@ import 'tweetnacl';
12
12
  import 'chalk';
13
13
  import 'fs';
14
14
  import 'axios';
15
- import './auth-DxJ3VvrX.mjs';
15
+ import './auth-DS8fzlin.mjs';
16
16
  import 'qrcode-terminal';
17
17
  import './time-DgsBLJA_.mjs';
18
- import './browser-AoVGRX7y.mjs';
18
+ import './browser-C05Ak6RL.mjs';
19
19
  import 'open';
20
20
  import 'react';
21
21
  import 'ink';
@@ -87,6 +87,9 @@ async function resolveFromServer(credentials, query) {
87
87
  await pruneDeviceAliases(device.id, device.name);
88
88
  return { device, key, variant };
89
89
  }
90
+ async function resolveDeviceForCommand(credentials, query) {
91
+ return await resolveFromCache(query) ?? await resolveFromServer(credentials, query);
92
+ }
90
93
  async function runOnDevice(credentials, query, command, options = {}) {
91
94
  const cached = await resolveFromCache(query);
92
95
  const resolved = cached ?? await resolveFromServer(credentials, query);
@@ -356,4 +359,4 @@ async function sshPickAndConnect(credentials) {
356
359
  return await sshDevice(credentials, chosen.id);
357
360
  }
358
361
 
359
- export { parseSshArgs, pickCachedDeviceId, runOnDevice, sshDevice, sshPickAndConnect };
362
+ export { parseSshArgs, pickCachedDeviceId, resolveDeviceForCommand, runOnDevice, sshDevice, sshPickAndConnect };
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var socket_ioClient = require('socket.io-client');
4
- var logger = require('./persistence-CBTtC_dm.cjs');
5
- var deviceKeys = require('./deviceKeys-C540DcXl.cjs');
6
- var controlClient = require('./controlClient-B23M-WPp.cjs');
4
+ var logger = require('./persistence-DrfN7TzY.cjs');
5
+ var deviceKeys = require('./deviceKeys-BpIAWz13.cjs');
6
+ var controlClient = require('./controlClient-DgELDZgM.cjs');
7
7
  require('node:fs/promises');
8
8
  require('node:fs');
9
9
  require('node:os');
@@ -14,10 +14,10 @@ require('tweetnacl');
14
14
  require('chalk');
15
15
  require('fs');
16
16
  require('axios');
17
- require('./auth-C7ZScWEw.cjs');
17
+ require('./auth-BQvEuSs5.cjs');
18
18
  require('qrcode-terminal');
19
19
  require('./time-Bj2HRkKH.cjs');
20
- require('./browser-DzgO4oaD.cjs');
20
+ require('./browser-C05SP_Tt.cjs');
21
21
  require('open');
22
22
  require('react');
23
23
  require('ink');
@@ -89,6 +89,9 @@ async function resolveFromServer(credentials, query) {
89
89
  await deviceKeys.pruneDeviceAliases(device.id, device.name);
90
90
  return { device, key, variant };
91
91
  }
92
+ async function resolveDeviceForCommand(credentials, query) {
93
+ return await resolveFromCache(query) ?? await resolveFromServer(credentials, query);
94
+ }
92
95
  async function runOnDevice(credentials, query, command, options = {}) {
93
96
  const cached = await resolveFromCache(query);
94
97
  const resolved = cached ?? await resolveFromServer(credentials, query);
@@ -360,6 +363,7 @@ async function sshPickAndConnect(credentials) {
360
363
 
361
364
  exports.parseSshArgs = parseSshArgs;
362
365
  exports.pickCachedDeviceId = pickCachedDeviceId;
366
+ exports.resolveDeviceForCommand = resolveDeviceForCommand;
363
367
  exports.runOnDevice = runOnDevice;
364
368
  exports.sshDevice = sshDevice;
365
369
  exports.sshPickAndConnect = sshPickAndConnect;
@@ -2,9 +2,9 @@
2
2
 
3
3
  var chalk = require('chalk');
4
4
  var path = require('node:path');
5
- var logger = require('./persistence-CBTtC_dm.cjs');
6
- var sessionList = require('./sessionList-lQ-nqEhc.cjs');
7
- var sessionSummary = require('./sessionSummary-CcORiQSq.cjs');
5
+ var logger = require('./persistence-DrfN7TzY.cjs');
6
+ var sessionList = require('./sessionList-DmmtC7uR.cjs');
7
+ var sessionSummary = require('./sessionSummary-DGLoVOxd.cjs');
8
8
  var workflowCommon = require('./workflowCommon-Bl568-rt.cjs');
9
9
  require('node:fs/promises');
10
10
  require('node:fs');
@@ -14,14 +14,14 @@ require('node:crypto');
14
14
  require('tweetnacl');
15
15
  require('fs');
16
16
  require('axios');
17
- require('./auth-C7ZScWEw.cjs');
17
+ require('./auth-BQvEuSs5.cjs');
18
18
  require('qrcode-terminal');
19
19
  require('./time-Bj2HRkKH.cjs');
20
- require('./browser-DzgO4oaD.cjs');
20
+ require('./browser-C05SP_Tt.cjs');
21
21
  require('open');
22
22
  require('react');
23
23
  require('ink');
24
- require('./sessionKeyCache-CDmexJ9p.cjs');
24
+ require('./sessionKeyCache-dDquDzn0.cjs');
25
25
 
26
26
  function printTaskHelp() {
27
27
  console.log(`
@@ -1,8 +1,8 @@
1
1
  import chalk from 'chalk';
2
2
  import { resolve } from 'node:path';
3
- import { r as readCredentials } from './persistence-DKfF81pd.mjs';
4
- import { r as runSessionList } from './sessionList-CgAYZpNj.mjs';
5
- import { r as runSessionSummary } from './sessionSummary-DCWQoaDP.mjs';
3
+ import { r as readCredentials } from './persistence-CIUFyOwz.mjs';
4
+ import { r as runSessionList } from './sessionList-C1k2PNg_.mjs';
5
+ import { r as runSessionSummary } from './sessionSummary-5a1QtFVS.mjs';
6
6
  import { p as parseWorkflowArgs, s as stringFlag, b as booleanFlag, n as numberFlag, a as printOrWriteOutput } from './workflowCommon-B0d01Y_a.mjs';
7
7
  import 'node:fs/promises';
8
8
  import 'node:fs';
@@ -12,14 +12,14 @@ import 'node:crypto';
12
12
  import 'tweetnacl';
13
13
  import 'fs';
14
14
  import 'axios';
15
- import './auth-DxJ3VvrX.mjs';
15
+ import './auth-DS8fzlin.mjs';
16
16
  import 'qrcode-terminal';
17
17
  import './time-DgsBLJA_.mjs';
18
- import './browser-AoVGRX7y.mjs';
18
+ import './browser-C05Ak6RL.mjs';
19
19
  import 'open';
20
20
  import 'react';
21
21
  import 'ink';
22
- import './sessionKeyCache-B6cGadYL.mjs';
22
+ import './sessionKeyCache-D2u3JUys.mjs';
23
23
 
24
24
  function printTaskHelp() {
25
25
  console.log(`
@@ -1,10 +1,10 @@
1
- import { l as logger } from './persistence-DKfF81pd.mjs';
1
+ import { l as logger } from './persistence-CIUFyOwz.mjs';
2
2
  import { existsSync, unlinkSync } from 'fs';
3
3
  import { execSync } from 'child_process';
4
4
  import { join } from 'path';
5
5
  import os from 'os';
6
6
  import { s as systemdScopeFor, i as isRootUser, S as SERVICE_NAME } from './systemdScope-BeOtAkhk.mjs';
7
- import { stopDaemon } from './controlClient-DB5tDU7V.mjs';
7
+ import { stopDaemon } from './controlClient-DgjVRN8D.mjs';
8
8
  import 'node:fs/promises';
9
9
  import 'node:fs';
10
10
  import 'node:os';
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./persistence-CBTtC_dm.cjs');
3
+ var logger = require('./persistence-DrfN7TzY.cjs');
4
4
  var fs = require('fs');
5
5
  var child_process = require('child_process');
6
6
  var path = require('path');
7
7
  var os = require('os');
8
8
  var systemdScope = require('./systemdScope-DW3-UoKB.cjs');
9
- var controlClient = require('./controlClient-B23M-WPp.cjs');
9
+ var controlClient = require('./controlClient-DgELDZgM.cjs');
10
10
  require('node:fs/promises');
11
11
  require('node:fs');
12
12
  require('node:os');
@@ -3,9 +3,9 @@
3
3
  var chalk = require('chalk');
4
4
  var node_child_process = require('node:child_process');
5
5
  var fs = require('node:fs');
6
- var logger = require('./persistence-CBTtC_dm.cjs');
7
- var controlClient = require('./controlClient-B23M-WPp.cjs');
8
- var spawnHappyCLI = require('./spawnHappyCLI-KiazE3kL.cjs');
6
+ var logger = require('./persistence-DrfN7TzY.cjs');
7
+ var controlClient = require('./controlClient-DgELDZgM.cjs');
8
+ var spawnHappyCLI = require('./spawnHappyCLI-CarRI4GM.cjs');
9
9
  require('node:fs/promises');
10
10
  require('node:os');
11
11
  require('node:path');
@@ -1,9 +1,9 @@
1
1
  import chalk from 'chalk';
2
2
  import { execFileSync, execSync } from 'node:child_process';
3
3
  import { realpathSync } from 'node:fs';
4
- import { p as packageJson } from './persistence-DKfF81pd.mjs';
5
- import { checkIfDaemonRunningAndCleanupStaleState, stopDaemon } from './controlClient-DB5tDU7V.mjs';
6
- import { s as spawnHappyCLI } from './spawnHappyCLI-yBIP_Oqi.mjs';
4
+ import { p as packageJson } from './persistence-CIUFyOwz.mjs';
5
+ import { checkIfDaemonRunningAndCleanupStaleState, stopDaemon } from './controlClient-DgjVRN8D.mjs';
6
+ import { s as spawnHappyCLI } from './spawnHappyCLI-D3EkTFIn.mjs';
7
7
  import 'node:fs/promises';
8
8
  import 'node:os';
9
9
  import 'node:path';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zonease/happy",
3
- "version": "0.6.40",
3
+ "version": "0.6.41",
4
4
  "description": "Mobile and Web client for Claude Code, Codex, and Gemini",
5
5
  "author": "ZonEaseTech",
6
6
  "license": "MIT",