very-happy-cli 0.2.152 → 0.2.153

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 (61) hide show
  1. package/dist/{AcpBackend-CogiKCng.cjs → AcpBackend-DSt8nTYm.cjs} +2 -2
  2. package/dist/{AcpBackend-Bs3wwYbt.mjs → AcpBackend-YDGv4E-g.mjs} +2 -2
  3. package/dist/{AcpSessionManager-BT8PJMEm.mjs → AcpSessionManager-Cxf5HQX1.mjs} +1 -1
  4. package/dist/{AcpSessionManager-BazkBuFo.cjs → AcpSessionManager-uov6I9C8.cjs} +1 -1
  5. package/dist/{agentGuidance-CqBn77AI.cjs → agentGuidance-BM4kMNyr.cjs} +1 -1
  6. package/dist/{agentGuidance-Daxn5Nvj.mjs → agentGuidance-C8unGWp7.mjs} +1 -1
  7. package/dist/{agentHome-CpJjrQZc.cjs → agentHome-BJ7bde35.cjs} +3 -3
  8. package/dist/{agentHome-CCYfs8Ec.mjs → agentHome-D68Xh2ae.mjs} +3 -3
  9. package/dist/{auto-DncmTDvw.cjs → auto-C-90ojIH.cjs} +7 -7
  10. package/dist/{auto-DV5emt1-.mjs → auto-CcXxfqkC.mjs} +7 -7
  11. package/dist/codex/happyMcpStdioBridge.cjs +2 -2
  12. package/dist/codex/happyMcpStdioBridge.mjs +2 -2
  13. package/dist/{config-DbKpQpdL.mjs → config-CHJ189UJ.mjs} +5 -5
  14. package/dist/{config-DeJgSMh-.cjs → config-D23kF0_u.cjs} +5 -5
  15. package/dist/{index-CN7OF2cU.mjs → index-BXA9fxbK.mjs} +5 -5
  16. package/dist/{index-BauTv2jB.mjs → index-BacwoXzs.mjs} +61 -41
  17. package/dist/{index-DahaLbu4.mjs → index-BgYZGODP.mjs} +9 -9
  18. package/dist/{index-CRaJ9k2p.cjs → index-D49WvbDT.cjs} +5 -5
  19. package/dist/{index-imt4mC41.cjs → index-DEOVn46R.cjs} +9 -9
  20. package/dist/{index-ZIW1jrYm.cjs → index-DHrwHxHf.cjs} +83 -62
  21. package/dist/index.cjs +5 -5
  22. package/dist/index.mjs +5 -5
  23. package/dist/{install-CDR3qBhs.cjs → install-BiOXBnnS.cjs} +1 -1
  24. package/dist/{install-C1K3nrxF.mjs → install-Ca7_Z3bV.mjs} +1 -1
  25. package/dist/{installPiTools-C-Lxv4Bt.mjs → installPiTools-Cj7yU9Fc.mjs} +2 -1
  26. package/dist/{installPiTools-BKnXjrVu.cjs → installPiTools-DuZ6jZvX.cjs} +3 -2
  27. package/dist/{installTerminalHooks-BoDxpaBO.cjs → installTerminalHooks-BF0kL0ae.cjs} +7 -7
  28. package/dist/{installTerminalHooks-VvmlO6Ue.mjs → installTerminalHooks-Bpl32K75.mjs} +6 -6
  29. package/dist/lib.cjs +3 -3
  30. package/dist/lib.mjs +3 -3
  31. package/dist/{limits-CKR_HJnO.mjs → limits-BtAuKRl2.mjs} +7 -7
  32. package/dist/{limits-BNTWyUaZ.cjs → limits-DY_sFA3J.cjs} +7 -7
  33. package/dist/{mcp-D4dAo5BQ.mjs → mcp-DQkmk4VV.mjs} +14 -7
  34. package/dist/{mcp-CCKCKL6l.cjs → mcp-JpqI2POW.cjs} +14 -6
  35. package/dist/piExtension.d.mts +4 -1
  36. package/dist/piExtension.mjs +24 -1
  37. package/dist/{piRuntime-CW-XA4rz.mjs → piRuntime-DBpe12NN.mjs} +2 -2
  38. package/dist/{piRuntime-Bn5ypbjH.cjs → piRuntime-DRbbeQ72.cjs} +2 -2
  39. package/dist/{piTerminal-BLSXK1u2.mjs → piTerminal-BoHvPEZ_.mjs} +8 -7
  40. package/dist/{piTerminal-B7K75aXB.cjs → piTerminal-qdJ9KZVL.cjs} +8 -7
  41. package/dist/{runGemini-Bgg1BzDK.cjs → runGemini-CtOEFvhf.cjs} +8 -8
  42. package/dist/{runGemini-D5N11LxO.mjs → runGemini-YqH7a-7O.mjs} +7 -7
  43. package/dist/{runOpenClaw-CCpyKbrn.mjs → runOpenClaw-DSSyFQBb.mjs} +6 -6
  44. package/dist/{runOpenClaw-B9qWHybc.cjs → runOpenClaw-DoqZXBvL.cjs} +6 -6
  45. package/dist/{send-wl9ei8yG.cjs → send-9075kHZP.cjs} +5 -5
  46. package/dist/{send-C44kcXz5.mjs → send-Cs-RwqNf.mjs} +5 -5
  47. package/dist/{sessions-DXJEcUg6.mjs → sessions-iBnYzVUK.mjs} +5 -5
  48. package/dist/{sessions-Tad8elmy.cjs → sessions-qULzUzlI.cjs} +5 -5
  49. package/dist/{spawn-BOlb5y1_.mjs → spawn-C6fRkedx.mjs} +5 -5
  50. package/dist/{spawn-DA8WAFmm.cjs → spawn-od9V23cc.cjs} +5 -5
  51. package/dist/{teams-Bs8lI887.mjs → teams-CkrWQ4uM.mjs} +6 -6
  52. package/dist/{teams-qVLrFcdd.cjs → teams-CrCzU-AV.cjs} +6 -6
  53. package/dist/terminalTitleSuggest-DKgX3osW.mjs +38 -0
  54. package/dist/terminalTitleSuggest-Dji8I0Jy.cjs +45 -0
  55. package/dist/{todo-mCMoGjJk.cjs → todo-BCT_ZPuV.cjs} +2 -2
  56. package/dist/{todo-nzsqGZqp.mjs → todo-aCZmSt27.mjs} +2 -2
  57. package/dist/{types-xKrxbCRv.mjs → types-BvqOVUOW.mjs} +11 -6
  58. package/dist/{types-CN28qJl7.cjs → types-CUCU7Vw8.cjs} +13 -8
  59. package/package.json +7 -7
  60. package/dist/projectPath-CSpqWdxp.mjs +0 -10
  61. package/dist/projectPath-ChLhdOyt.cjs +0 -13
@@ -3,8 +3,8 @@
3
3
  var node_child_process = require('node:child_process');
4
4
  var sdk = require('@agentclientprotocol/sdk');
5
5
  var node_crypto = require('node:crypto');
6
- var persistence = require('./limits-BNTWyUaZ.cjs');
7
- var index = require('./types-CN28qJl7.cjs');
6
+ var persistence = require('./limits-DY_sFA3J.cjs');
7
+ var index = require('./types-CUCU7Vw8.cjs');
8
8
 
9
9
  function acpImageBlocks(attachments, supportsImages) {
10
10
  return attachments.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => {
@@ -1,8 +1,8 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { ndJsonStream, ClientSideConnection } from '@agentclientprotocol/sdk';
3
3
  import { randomUUID } from 'node:crypto';
4
- import { l as logger, p as packageJson } from './limits-CKR_HJnO.mjs';
5
- import { u as contentLogMetadata, t as errorLogMetadata, c as delay } from './types-xKrxbCRv.mjs';
4
+ import { l as logger, p as packageJson } from './limits-BtAuKRl2.mjs';
5
+ import { u as contentLogMetadata, t as errorLogMetadata, c as delay } from './types-BvqOVUOW.mjs';
6
6
 
7
7
  function acpImageBlocks(attachments, supportsImages) {
8
8
  return attachments.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => {
@@ -1,5 +1,5 @@
1
1
  import { createId } from '@paralleldrive/cuid2';
2
- import { s as streamKeyOf, e as createEnvelope } from './limits-CKR_HJnO.mjs';
2
+ import { s as streamKeyOf, e as createEnvelope } from './limits-BtAuKRl2.mjs';
3
3
 
4
4
  function turnOptions(turnId, time) {
5
5
  return turnId ? { turn: turnId, time } : { time };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var cuid2 = require('@paralleldrive/cuid2');
4
- var persistence = require('./limits-BNTWyUaZ.cjs');
4
+ var persistence = require('./limits-DY_sFA3J.cjs');
5
5
 
6
6
  function turnOptions(turnId, time) {
7
7
  return turnId ? { turn: turnId, time } : { time };
@@ -2,7 +2,7 @@
2
2
 
3
3
  var z = require('zod');
4
4
  var node_crypto = require('node:crypto');
5
- var persistence = require('./limits-BNTWyUaZ.cjs');
5
+ var persistence = require('./limits-DY_sFA3J.cjs');
6
6
  var promises = require('node:fs/promises');
7
7
  var node_fs = require('node:fs');
8
8
  var path = require('node:path');
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { randomUUID } from 'node:crypto';
3
- import { o as normalizeHttpEndpoint, c as configuration, r as readSettings, d as readPersistedSessions, f as readCredentialsForConfiguredRelay, q as AutomationNameSchema, t as AutomationConcurrencySchema, v as AutomationActionSchema, x as AutomationTriggerSchema } from './limits-CKR_HJnO.mjs';
3
+ import { o as normalizeHttpEndpoint, c as configuration, r as readSettings, d as readPersistedSessions, f as readCredentialsForConfiguredRelay, q as AutomationNameSchema, t as AutomationConcurrencySchema, v as AutomationActionSchema, x as AutomationTriggerSchema } from './limits-BtAuKRl2.mjs';
4
4
  import { open, mkdir, rename, unlink } from 'node:fs/promises';
5
5
  import { constants } from 'node:fs';
6
6
  import { isAbsolute, join, dirname } from 'node:path';
@@ -2,9 +2,9 @@
2
2
 
3
3
  var chalk = require('chalk');
4
4
  var os = require('node:os');
5
- var persistence = require('./limits-BNTWyUaZ.cjs');
5
+ var persistence = require('./limits-DY_sFA3J.cjs');
6
6
  require('node:fs');
7
- var index = require('./types-CN28qJl7.cjs');
7
+ var index = require('./types-CUCU7Vw8.cjs');
8
8
  require('node:fs/promises');
9
9
  require('node:path');
10
10
  require('zod');
@@ -21,7 +21,7 @@ require('fs/promises');
21
21
  require('crypto');
22
22
  require('path');
23
23
  require('cross-spawn');
24
- require('./projectPath-ChLhdOyt.cjs');
24
+ require('./terminalTitleSuggest-Dji8I0Jy.cjs');
25
25
  require('url');
26
26
  require('os');
27
27
  require('node:child_process');
@@ -1,8 +1,8 @@
1
1
  import chalk from 'chalk';
2
2
  import { homedir } from 'node:os';
3
- import { r as readSettings, u as updateSettings } from './limits-CKR_HJnO.mjs';
3
+ import { r as readSettings, u as updateSettings } from './limits-BtAuKRl2.mjs';
4
4
  import 'node:fs';
5
- import { d as describeAgentHome, p as probeLoginShellEnv, r as resolveAgentHomes, e as expandHomePath, b as AGENT_HOME_ENV_NAMES } from './types-xKrxbCRv.mjs';
5
+ import { d as describeAgentHome, p as probeLoginShellEnv, r as resolveAgentHomes, e as expandHomePath, b as AGENT_HOME_ENV_NAMES } from './types-BvqOVUOW.mjs';
6
6
  import 'node:fs/promises';
7
7
  import 'node:path';
8
8
  import 'zod';
@@ -19,7 +19,7 @@ import 'fs/promises';
19
19
  import 'crypto';
20
20
  import 'path';
21
21
  import 'cross-spawn';
22
- import './projectPath-CSpqWdxp.mjs';
22
+ import './terminalTitleSuggest-DKgX3osW.mjs';
23
23
  import 'url';
24
24
  import 'os';
25
25
  import 'node:child_process';
@@ -4,12 +4,12 @@ var chalk = require('chalk');
4
4
  var os = require('node:os');
5
5
  var node_fs = require('node:fs');
6
6
  var path = require('node:path');
7
- var persistence = require('./limits-BNTWyUaZ.cjs');
8
- var agentGuidance = require('./agentGuidance-CqBn77AI.cjs');
9
- var index = require('./index-ZIW1jrYm.cjs');
10
- var install = require('./install-CDR3qBhs.cjs');
11
- var spawn = require('./spawn-DA8WAFmm.cjs');
12
- var index$1 = require('./types-CN28qJl7.cjs');
7
+ var persistence = require('./limits-DY_sFA3J.cjs');
8
+ var agentGuidance = require('./agentGuidance-BM4kMNyr.cjs');
9
+ var index = require('./index-DHrwHxHf.cjs');
10
+ var install = require('./install-BiOXBnnS.cjs');
11
+ var spawn = require('./spawn-od9V23cc.cjs');
12
+ var index$1 = require('./types-CUCU7Vw8.cjs');
13
13
  require('node:fs/promises');
14
14
  require('zod');
15
15
  require('node:crypto');
@@ -18,7 +18,7 @@ require('node:util');
18
18
  require('@paralleldrive/cuid2');
19
19
  require('cross-spawn');
20
20
  require('node:readline');
21
- require('./projectPath-ChLhdOyt.cjs');
21
+ require('./terminalTitleSuggest-Dji8I0Jy.cjs');
22
22
  require('path');
23
23
  require('url');
24
24
  require('fs/promises');
@@ -2,12 +2,12 @@ import chalk from 'chalk';
2
2
  import { homedir } from 'node:os';
3
3
  import { readFileSync } from 'node:fs';
4
4
  import { resolve } from 'node:path';
5
- import { A as AUTOMATION_NAME_PATTERN, i as isAutomationRunTerminal, c as configuration } from './limits-CKR_HJnO.mjs';
6
- import { d as authenticatedAutomationsClient, e as automationRunIdFromEnv, i as isAutomationsUnavailable, A as AUTOMATIONS_UNAVAILABLE_MESSAGE } from './agentGuidance-Daxn5Nvj.mjs';
7
- import { p as parseDuration, e as sessionWebUrl, t as triggerFromFlags, g as describeTrigger, h as describeAction, S as SPAWN_AGENTS, i as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES } from './index-BauTv2jB.mjs';
8
- import { A as AUTOMATION_SKILL, i as installAutomationSkill } from './install-C1K3nrxF.mjs';
9
- import { parseEnvAssignment } from './spawn-BOlb5y1_.mjs';
10
- import { c as delay } from './types-xKrxbCRv.mjs';
5
+ import { A as AUTOMATION_NAME_PATTERN, i as isAutomationRunTerminal, c as configuration } from './limits-BtAuKRl2.mjs';
6
+ import { d as authenticatedAutomationsClient, e as automationRunIdFromEnv, i as isAutomationsUnavailable, A as AUTOMATIONS_UNAVAILABLE_MESSAGE } from './agentGuidance-C8unGWp7.mjs';
7
+ import { p as parseDuration, e as sessionWebUrl, t as triggerFromFlags, g as describeTrigger, h as describeAction, S as SPAWN_AGENTS, i as sanitizeSpawnPermissionMode, A as ALLOWED_SPAWN_PERMISSION_MODES } from './index-BacwoXzs.mjs';
8
+ import { A as AUTOMATION_SKILL, i as installAutomationSkill } from './install-Ca7_Z3bV.mjs';
9
+ import { parseEnvAssignment } from './spawn-C6fRkedx.mjs';
10
+ import { c as delay } from './types-BvqOVUOW.mjs';
11
11
  import 'node:fs/promises';
12
12
  import 'zod';
13
13
  import 'node:crypto';
@@ -16,7 +16,7 @@ import 'node:util';
16
16
  import '@paralleldrive/cuid2';
17
17
  import 'cross-spawn';
18
18
  import 'node:readline';
19
- import './projectPath-CSpqWdxp.mjs';
19
+ import './terminalTitleSuggest-DKgX3osW.mjs';
20
20
  import 'path';
21
21
  import 'url';
22
22
  import 'fs/promises';
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var agentGuidance = require('../agentGuidance-CqBn77AI.cjs');
3
+ var agentGuidance = require('../agentGuidance-BM4kMNyr.cjs');
4
4
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
5
5
  var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
6
6
  var index_js = require('@modelcontextprotocol/sdk/client/index.js');
7
7
  var streamableHttp_js = require('@modelcontextprotocol/sdk/client/streamableHttp.js');
8
8
  var z = require('zod');
9
- var persistence = require('../limits-BNTWyUaZ.cjs');
9
+ var persistence = require('../limits-DY_sFA3J.cjs');
10
10
  require('node:crypto');
11
11
  require('node:fs/promises');
12
12
  require('node:fs');
@@ -1,10 +1,10 @@
1
- import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, r as registerTeamsTools, c as registerAutomationTools } from '../agentGuidance-Daxn5Nvj.mjs';
1
+ import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, r as registerTeamsTools, c as registerAutomationTools } from '../agentGuidance-C8unGWp7.mjs';
2
2
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
5
5
  import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
6
6
  import { z } from 'zod';
7
- import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION } from '../limits-CKR_HJnO.mjs';
7
+ import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION } from '../limits-BtAuKRl2.mjs';
8
8
  import 'node:crypto';
9
9
  import 'node:fs/promises';
10
10
  import 'node:fs';
@@ -2,8 +2,8 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
2
2
  import { join } from 'path';
3
3
  import { homedir } from 'os';
4
4
  import { execSync } from 'child_process';
5
- import { l as logger } from './limits-CKR_HJnO.mjs';
6
- import { f as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-BauTv2jB.mjs';
5
+ import { l as logger } from './limits-BtAuKRl2.mjs';
6
+ import { f as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-BacwoXzs.mjs';
7
7
  import 'node:fs/promises';
8
8
  import 'node:fs';
9
9
  import 'node:os';
@@ -14,7 +14,7 @@ import 'tweetnacl';
14
14
  import 'chalk';
15
15
  import 'node:util';
16
16
  import '@paralleldrive/cuid2';
17
- import './types-xKrxbCRv.mjs';
17
+ import './types-BvqOVUOW.mjs';
18
18
  import 'axios';
19
19
  import 'node:events';
20
20
  import 'socket.io-client';
@@ -22,14 +22,14 @@ import 'util';
22
22
  import 'fs/promises';
23
23
  import 'crypto';
24
24
  import 'cross-spawn';
25
- import './projectPath-CSpqWdxp.mjs';
25
+ import './terminalTitleSuggest-DKgX3osW.mjs';
26
26
  import 'url';
27
27
  import 'node:child_process';
28
28
  import 'node-pty';
29
29
  import 'node:readline';
30
30
  import '@anthropic-ai/sandbox-runtime';
31
31
  import 'expo-server-sdk';
32
- import './agentGuidance-Daxn5Nvj.mjs';
32
+ import './agentGuidance-C8unGWp7.mjs';
33
33
  import 'ink';
34
34
  import 'react';
35
35
  import '@anthropic-ai/claude-agent-sdk';
@@ -4,8 +4,8 @@ var fs = require('fs');
4
4
  var path = require('path');
5
5
  var os = require('os');
6
6
  var child_process = require('child_process');
7
- var persistence = require('./limits-BNTWyUaZ.cjs');
8
- var index = require('./index-ZIW1jrYm.cjs');
7
+ var persistence = require('./limits-DY_sFA3J.cjs');
8
+ var index = require('./index-DHrwHxHf.cjs');
9
9
  require('node:fs/promises');
10
10
  require('node:fs');
11
11
  require('node:os');
@@ -16,7 +16,7 @@ require('tweetnacl');
16
16
  require('chalk');
17
17
  require('node:util');
18
18
  require('@paralleldrive/cuid2');
19
- require('./types-CN28qJl7.cjs');
19
+ require('./types-CUCU7Vw8.cjs');
20
20
  require('axios');
21
21
  require('node:events');
22
22
  require('socket.io-client');
@@ -24,14 +24,14 @@ require('util');
24
24
  require('fs/promises');
25
25
  require('crypto');
26
26
  require('cross-spawn');
27
- require('./projectPath-ChLhdOyt.cjs');
27
+ require('./terminalTitleSuggest-Dji8I0Jy.cjs');
28
28
  require('url');
29
29
  require('node:child_process');
30
30
  require('node-pty');
31
31
  require('node:readline');
32
32
  require('@anthropic-ai/sandbox-runtime');
33
33
  require('expo-server-sdk');
34
- require('./agentGuidance-CqBn77AI.cjs');
34
+ require('./agentGuidance-BM4kMNyr.cjs');
35
35
  require('ink');
36
36
  require('react');
37
37
  require('@anthropic-ai/claude-agent-sdk');
@@ -1,11 +1,11 @@
1
- import { q as query } from './index-BauTv2jB.mjs';
1
+ import { q as query } from './index-BacwoXzs.mjs';
2
2
  export { AbortError } from '@anthropic-ai/claude-agent-sdk';
3
3
  import 'chalk';
4
4
  import 'node:os';
5
5
  import 'node:crypto';
6
- import './types-xKrxbCRv.mjs';
6
+ import './types-BvqOVUOW.mjs';
7
7
  import 'axios';
8
- import './limits-CKR_HJnO.mjs';
8
+ import './limits-BtAuKRl2.mjs';
9
9
  import 'node:fs/promises';
10
10
  import 'node:fs';
11
11
  import 'node:path';
@@ -21,7 +21,7 @@ import 'fs/promises';
21
21
  import 'crypto';
22
22
  import 'path';
23
23
  import 'cross-spawn';
24
- import './projectPath-CSpqWdxp.mjs';
24
+ import './terminalTitleSuggest-DKgX3osW.mjs';
25
25
  import 'url';
26
26
  import 'os';
27
27
  import 'node:child_process';
@@ -30,7 +30,7 @@ import 'fs';
30
30
  import 'node:readline';
31
31
  import '@anthropic-ai/sandbox-runtime';
32
32
  import 'expo-server-sdk';
33
- import './agentGuidance-Daxn5Nvj.mjs';
33
+ import './agentGuidance-C8unGWp7.mjs';
34
34
  import 'ink';
35
35
  import 'react';
36
36
  import 'ps-list';
@@ -1,14 +1,14 @@
1
1
  import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import chalk from 'chalk';
2
2
  import os, { homedir, userInfo, tmpdir } from 'node:os';
3
3
  import { randomUUID, randomInt, randomBytes, createHash as createHash$1, timingSafeEqual } from 'node:crypto';
4
- import { v as notifyDaemonSessionEvent, g as getProjectPath, w as initializeSandbox, x as wrapCommand, u as contentLogMetadata, I as InvalidateSync, R as RawJSONLinesSchema, c as delay, y as AsyncLock, M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES, z as notifyDaemonClaudeAuthFailed, B as commandOnPath, j as checkIfDaemonRunningAndCleanupStaleState, D as deriveLocalCliUpdateSummary, E as isClaudeSessionId, G as getLocalHappyAgentCredentialPath, H as readLocalHappyAgentCredentials, J as parseExactVersion, K as compareExactVersions, L as extractCompleteLines, N as decideBackfill, O as parseTerminalHookPayload, P as tmuxArgs, Q as scrubTmuxClientEnv, S as decideMirrorBinding, T as MIRROR_BACKFILL_LINES_DEFAULT, U as mirrorLineKey, V as mirrorLocalId, W as listDaemonSessions, k as stopDaemonSession, X as detectCLIAvailability, Y as detectResumeSupport, Z as refreshAgentHomes, d as describeAgentHome, _ as isDaemonRunningCurrentlyInstalledHappyVersion, $ as stopDaemon, a0 as TurnActivityTracker, a1 as summarizeSpawnSessionForLog, a2 as locateClaudeConversation, a3 as agentHomeSpawnEnv, a4 as shellescape, A as ApiClient, a5 as fetchCliUpdateState, a6 as resolveCliUpdateCheckInterval, a7 as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, a8 as cleanupDaemonState, i as isValidSessionId, s as spawnDaemonSession, a9 as listVhTerminals, aa as isValidTerminalId, ab as readVhTerminal, ac as sendToVhTerminal, ad as TITLE_PROMPT_PREFIX, ae as BOARD_ANALYZER_PROMPT_PREFIX, o as connectionState, af as startOfflineReconnection, q as notifyDaemonSessionStarted, C as CodexAppServerClient } from './types-xKrxbCRv.mjs';
5
- import { l as logger, k as BUILTIN_TODO_DISCOVERY, U as STREAM_DELTA_MAX_CHARS, V as ensurePrivateDirectory, W as hardenPrivateFile, c as configuration, p as packageJson, r as readSettings, X as readCredentials, L as credentialRelayProblem, F as readDaemonState, Y as AGENT_VERSION_SOURCES, j as encodeBase64, Z as readSettingsOutcome, u as updateSettings, _ as encodeBase64Url, E as decodeBase64, $ as writeCredentialsLegacy, a0 as writeCredentialsDataKey, f as readCredentialsForConfiguredRelay, z as encrypt, d as readPersistedSessions, w as writePrivateFileSync, a1 as decryptWithDataKey, a2 as decryptLegacy, a3 as persistSession, D as decrypt, m as ensurePrivateDirectorySync, a4 as getAgentCodeDefaults, a5 as normalizeAgentKey, a6 as isClaudeOpus55Model, a7 as supportsClaudeOpus55, a8 as AUTOMATION_SUMMARY_MAX_CHARS, a9 as AUTOMATION_CLAIM_MAX_RUNS, aa as AUTOMATION_DEFAULT_LEASE_MS, i as isAutomationRunTerminal, ab as acquireDaemonLock, ac as deletePersistedSessions, ad as writeDaemonState, ae as writeSettings, af as releaseDaemonLock, ag as ContextUsageSchema, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, h as CLIPBOARD_MAX_BYTES, ah as clearCredentials, ai as clearMachineId, aj as SandboxConfigSchema, e as createEnvelope, ak as getLatestDaemonLog } from './limits-CKR_HJnO.mjs';
4
+ import { v as notifyDaemonSessionEvent, g as getProjectPath, w as initializeSandbox, x as wrapCommand, u as contentLogMetadata, I as InvalidateSync, R as RawJSONLinesSchema, c as delay, y as AsyncLock, M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES, z as notifyDaemonClaudeAuthFailed, B as commandOnPath, j as checkIfDaemonRunningAndCleanupStaleState, D as deriveLocalCliUpdateSummary, E as isClaudeSessionId, G as getLocalHappyAgentCredentialPath, H as readLocalHappyAgentCredentials, J as parseExactVersion, K as compareExactVersions, L as extractCompleteLines, N as decideBackfill, O as parseTerminalHookPayload, P as tmuxArgs, Q as scrubTmuxClientEnv, S as decideMirrorBinding, T as MIRROR_BACKFILL_LINES_DEFAULT, U as mirrorLineKey, V as mirrorLocalId, W as listDaemonSessions, k as stopDaemonSession, X as detectCLIAvailability, Y as detectResumeSupport, Z as refreshAgentHomes, d as describeAgentHome, _ as isDaemonRunningCurrentlyInstalledHappyVersion, $ as stopDaemon, a0 as TurnActivityTracker, a1 as summarizeSpawnSessionForLog, a2 as locateClaudeConversation, a3 as agentHomeSpawnEnv, a4 as shellescape, A as ApiClient, a5 as fetchCliUpdateState, a6 as resolveCliUpdateCheckInterval, a7 as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, a8 as cleanupDaemonState, i as isValidSessionId, s as spawnDaemonSession, a9 as listVhTerminals, aa as isValidTerminalId, ab as readVhTerminal, ac as sendToVhTerminal, ad as TITLE_PROMPT_PREFIX, ae as BOARD_ANALYZER_PROMPT_PREFIX, o as connectionState, af as startOfflineReconnection, q as notifyDaemonSessionStarted, C as CodexAppServerClient } from './types-BvqOVUOW.mjs';
5
+ import { l as logger, k as BUILTIN_TODO_DISCOVERY, U as STREAM_DELTA_MAX_CHARS, V as ensurePrivateDirectory, W as hardenPrivateFile, c as configuration, p as packageJson, r as readSettings, X as readCredentials, L as credentialRelayProblem, F as readDaemonState, Y as AGENT_VERSION_SOURCES, j as encodeBase64, Z as readSettingsOutcome, u as updateSettings, _ as encodeBase64Url, E as decodeBase64, $ as writeCredentialsLegacy, a0 as writeCredentialsDataKey, f as readCredentialsForConfiguredRelay, z as encrypt, d as readPersistedSessions, w as writePrivateFileSync, a1 as decryptWithDataKey, a2 as decryptLegacy, a3 as persistSession, D as decrypt, m as ensurePrivateDirectorySync, a4 as getAgentCodeDefaults, a5 as normalizeAgentKey, a6 as isClaudeOpus55Model, a7 as supportsClaudeOpus55, a8 as AUTOMATION_SUMMARY_MAX_CHARS, a9 as AUTOMATION_CLAIM_MAX_RUNS, aa as AUTOMATION_DEFAULT_LEASE_MS, i as isAutomationRunTerminal, ab as acquireDaemonLock, ac as deletePersistedSessions, ad as writeDaemonState, ae as writeSettings, af as releaseDaemonLock, ag as ContextUsageSchema, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, h as CLIPBOARD_MAX_BYTES, ah as clearCredentials, ai as clearMachineId, aj as SandboxConfigSchema, e as createEnvelope, ak as getLatestDaemonLog } from './limits-BtAuKRl2.mjs';
6
6
  import spawn$1, { spawn } from 'cross-spawn';
7
7
  import path, { join, resolve, basename, delimiter, isAbsolute, dirname, sep, normalize } from 'node:path';
8
8
  import { createInterface } from 'node:readline';
9
9
  import { existsSync, readFileSync, readdirSync, statSync, mkdirSync, realpathSync, unlinkSync, renameSync, writeFileSync, accessSync, constants as constants$1, openSync, fsyncSync, closeSync, rmSync as rmSync$1, chmodSync as chmodSync$1 } from 'node:fs';
10
- import { p as projectPath } from './projectPath-CSpqWdxp.mjs';
11
- import { j as trimIdent, k as AGENT_GUIDANCE, l as createAutomationsClient, i as isAutomationsUnavailable, m as AutomationsRequestError, t as teamScopePath, T as TeamConnectionPreflightError, h as createTeamsClient, P as PREVIEW_TOOL_NAME, R as REPORT_PROGRESS_TOOL_NAME, n as TEAM_TOOL_NAMES, o as AUTOMATION_TOOL_NAMES, r as registerTeamsTools, c as registerAutomationTools, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, p as REPORT_PROGRESS_TOOL_TITLE, q as REPORT_PROGRESS_TOOL_DESCRIPTION } from './agentGuidance-Daxn5Nvj.mjs';
10
+ import { p as projectPath } from './terminalTitleSuggest-DKgX3osW.mjs';
11
+ import { j as trimIdent, k as AGENT_GUIDANCE, l as createAutomationsClient, i as isAutomationsUnavailable, m as AutomationsRequestError, t as teamScopePath, T as TeamConnectionPreflightError, h as createTeamsClient, P as PREVIEW_TOOL_NAME, R as REPORT_PROGRESS_TOOL_NAME, n as TEAM_TOOL_NAMES, o as AUTOMATION_TOOL_NAMES, r as registerTeamsTools, c as registerAutomationTools, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, p as REPORT_PROGRESS_TOOL_TITLE, q as REPORT_PROGRESS_TOOL_DESCRIPTION } from './agentGuidance-C8unGWp7.mjs';
12
12
  import { readFile, writeFile, rename, unlink, mkdir, access as access$1, symlink, rm, readlink, lstat, constants, stat, open as open$1, appendFile } from 'node:fs/promises';
13
13
  import fs, { watch, access } from 'fs/promises';
14
14
  import { useStdout, useInput, Box, Text, render } from 'ink';
@@ -5380,8 +5380,8 @@ ${typeLabels[type] || type}:`));
5380
5380
  }
5381
5381
  console.log(chalk.gray(" An external claude command is only needed for native terminal/mirror use."));
5382
5382
  try {
5383
- const { resolveAgentHomesForCli } = await import('./agentHome-CCYfs8Ec.mjs');
5384
- const { describeAgentHome } = await import('./types-xKrxbCRv.mjs').then(function (n) { return n.ag; });
5383
+ const { resolveAgentHomesForCli } = await import('./agentHome-D68Xh2ae.mjs');
5384
+ const { describeAgentHome } = await import('./types-BvqOVUOW.mjs').then(function (n) { return n.ag; });
5385
5385
  const homes = await resolveAgentHomesForCli();
5386
5386
  console.log(chalk.green(`\u2713 Claude config dir: ${describeAgentHome(homes.claudeConfigDir)}`));
5387
5387
  console.log(chalk.green(`\u2713 Codex home: ${describeAgentHome(homes.codexHome)}`));
@@ -9358,6 +9358,20 @@ export default async function(pi) {
9358
9358
  return data.result;
9359
9359
  }
9360
9360
  await rpc('initialize', {protocolVersion:'2024-11-05',capabilities:{},clientInfo:{name:'very-happy-pi-teams',version:'1'}});
9361
+ if (!managed && pi.setSessionName) {
9362
+ // B-500: name the pi session from its first prompt (managed sessions are titled by TitleGenerator).
9363
+ let titleArmed = false, generation = 0;
9364
+ pi.on('session_start', async () => { generation += 1; titleArmed = !pi.getSessionName?.(); });
9365
+ pi.on('before_agent_start', async (event) => {
9366
+ const prompt = event && typeof event.prompt === 'string' ? event.prompt : '';
9367
+ if (!titleArmed || !prompt.trim()) return;
9368
+ titleArmed = false;
9369
+ const expected = generation;
9370
+ rpc('very-happy/terminal-title-suggest', {prompt}).then(result => {
9371
+ if (result && result.title && expected === generation && !pi.getSessionName?.()) pi.setSessionName(result.title);
9372
+ }).catch(() => {});
9373
+ });
9374
+ }
9361
9375
  const available = await rpc('tools/list', {});
9362
9376
  for (const tool of available.tools || []) {
9363
9377
  pi.registerTool({name:tool.name,label:tool.name,description:tool.description || tool.name,parameters:tool.inputSchema,
@@ -13391,7 +13405,7 @@ function registerSideQuestionHandler(rpc, deps) {
13391
13405
  const retainMs = deps.retainMs ?? SIDE_QUESTION_RETAIN_MS;
13392
13406
  const maxRunMs = deps.maxRunMs ?? SIDE_QUESTION_MAX_RUN_MS;
13393
13407
  const fork = deps.run ?? (async (input) => {
13394
- const { query } = await import('./index-CN7OF2cU.mjs');
13408
+ const { query } = await import('./index-BXA9fxbK.mjs');
13395
13409
  return runSideQuestion(query, input);
13396
13410
  });
13397
13411
  const run = async (input, live) => {
@@ -13568,7 +13582,12 @@ function runClaudeOneShot(binary, prompt) {
13568
13582
  try {
13569
13583
  child = spawn$3(binary, ["-p", "--model", "haiku", prompt], {
13570
13584
  stdio: ["ignore", "pipe", "ignore"],
13571
- env: process.env
13585
+ // HAPPY_MANAGED=1: this claude is run BY happy. The user-wide
13586
+ // terminal-mirror SessionStart hook exits on it, so a one-shot
13587
+ // spawned from inside a vh web terminal (VH_TERMINAL_ID
13588
+ // inherited — B-500's pi terminal bridge, or `very-happy` typed
13589
+ // in a terminal) never binds a mirror session to itself.
13590
+ env: { ...process.env, HAPPY_MANAGED: "1" }
13572
13591
  });
13573
13592
  } catch (error) {
13574
13593
  logger.debug("[titleGenerator] spawn failed", { error: String(error) });
@@ -13603,6 +13622,18 @@ function runClaudeOneShot(binary, prompt) {
13603
13622
  });
13604
13623
  });
13605
13624
  }
13625
+ async function suggestTitleForPrompt(prompt) {
13626
+ const binary = resolveClaudeBinary();
13627
+ if (!binary) {
13628
+ logger.debug("[titleGenerator] no claude binary; skipping auto-title");
13629
+ return null;
13630
+ }
13631
+ const stdout = await runClaudeOneShot(binary, buildPrompt(prompt));
13632
+ if (stdout == null) return null;
13633
+ const title = sanitizeTitle(stdout);
13634
+ if (!title) logger.debug("[titleGenerator] empty/unusable title output; skipping");
13635
+ return title;
13636
+ }
13606
13637
  class TitleGenerator {
13607
13638
  constructor(session) {
13608
13639
  this.session = session;
@@ -13626,23 +13657,12 @@ class TitleGenerator {
13626
13657
  });
13627
13658
  }
13628
13659
  async generate(firstUserMessage) {
13629
- const binary = resolveClaudeBinary();
13630
- if (!binary) {
13631
- logger.debug("[titleGenerator] no claude binary; skipping auto-title");
13632
- return;
13633
- }
13634
13660
  if (this.session.getMetadata()?.summary?.text) {
13635
13661
  logger.debug("[titleGenerator] summary appeared before generation; skipping");
13636
13662
  return;
13637
13663
  }
13638
- const prompt = buildPrompt(firstUserMessage);
13639
- const stdout = await runClaudeOneShot(binary, prompt);
13640
- if (stdout == null) return;
13641
- const title = sanitizeTitle(stdout);
13642
- if (!title) {
13643
- logger.debug("[titleGenerator] empty/unusable title output; skipping");
13644
- return;
13645
- }
13664
+ const title = await suggestTitleForPrompt(firstUserMessage);
13665
+ if (!title) return;
13646
13666
  if (this.session.getMetadata()?.summary?.text) {
13647
13667
  logger.debug("[titleGenerator] summary set during generation; not overwriting");
13648
13668
  return;
@@ -18670,7 +18690,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18670
18690
  process.exit(0);
18671
18691
  } else if (subcommand === "install-pi-tools") {
18672
18692
  try {
18673
- const { handleInstallPiTools } = await import('./installPiTools-C-Lxv4Bt.mjs');
18693
+ const { handleInstallPiTools } = await import('./installPiTools-Cj7yU9Fc.mjs');
18674
18694
  await handleInstallPiTools(args.slice(1));
18675
18695
  } catch (error) {
18676
18696
  console.error(error instanceof Error ? error.message : "Pi tools installation failed");
@@ -18679,7 +18699,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18679
18699
  return;
18680
18700
  } else if (subcommand === "install-terminal-hooks") {
18681
18701
  try {
18682
- const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-VvmlO6Ue.mjs');
18702
+ const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-Bpl32K75.mjs');
18683
18703
  const command = parseTerminalHooksArgs(args.slice(1));
18684
18704
  if (command.action === "help") {
18685
18705
  console.log(TERMINAL_HOOKS_HELP);
@@ -18696,7 +18716,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18696
18716
  }
18697
18717
  } else if (subcommand === "agent-home") {
18698
18718
  try {
18699
- const { parseAgentHomeArgs, runAgentHomeCommand } = await import('./agentHome-CCYfs8Ec.mjs');
18719
+ const { parseAgentHomeArgs, runAgentHomeCommand } = await import('./agentHome-D68Xh2ae.mjs');
18700
18720
  await runAgentHomeCommand(parseAgentHomeArgs(args.slice(1)));
18701
18721
  process.exit(0);
18702
18722
  } catch (error) {
@@ -18705,7 +18725,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18705
18725
  }
18706
18726
  } else if (subcommand === "spawn") {
18707
18727
  try {
18708
- const { handleSpawnCommand } = await import('./spawn-BOlb5y1_.mjs');
18728
+ const { handleSpawnCommand } = await import('./spawn-C6fRkedx.mjs');
18709
18729
  await handleSpawnCommand(args.slice(1));
18710
18730
  } catch (error) {
18711
18731
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -18717,7 +18737,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18717
18737
  return;
18718
18738
  } else if (subcommand === "sessions") {
18719
18739
  try {
18720
- const { handleSessionsCommand } = await import('./sessions-DXJEcUg6.mjs');
18740
+ const { handleSessionsCommand } = await import('./sessions-iBnYzVUK.mjs');
18721
18741
  await handleSessionsCommand(args.slice(1));
18722
18742
  } catch (error) {
18723
18743
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -18729,7 +18749,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18729
18749
  return;
18730
18750
  } else if (subcommand === "send") {
18731
18751
  try {
18732
- const { handleSendCommand } = await import('./send-C44kcXz5.mjs');
18752
+ const { handleSendCommand } = await import('./send-Cs-RwqNf.mjs');
18733
18753
  await handleSendCommand(args.slice(1));
18734
18754
  } catch (error) {
18735
18755
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -18835,9 +18855,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18835
18855
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
18836
18856
  const projectId = args[3];
18837
18857
  try {
18838
- const { saveGoogleCloudProjectToConfig } = await import('./config-DbKpQpdL.mjs');
18839
- const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-CKR_HJnO.mjs').then(function (n) { return n.al; });
18840
- const { ApiClient: ApiClient2 } = await import('./types-xKrxbCRv.mjs').then(function (n) { return n.ah; });
18858
+ const { saveGoogleCloudProjectToConfig } = await import('./config-CHJ189UJ.mjs');
18859
+ const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-BtAuKRl2.mjs').then(function (n) { return n.al; });
18860
+ const { ApiClient: ApiClient2 } = await import('./types-BvqOVUOW.mjs').then(function (n) { return n.ah; });
18841
18861
  let userEmail = void 0;
18842
18862
  try {
18843
18863
  const credentials = await readCredentialsForConfiguredRelay2();
@@ -18868,7 +18888,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18868
18888
  }
18869
18889
  if (geminiSubcommand === "project" && args[2] === "get") {
18870
18890
  try {
18871
- const { readGeminiLocalConfig } = await import('./config-DbKpQpdL.mjs');
18891
+ const { readGeminiLocalConfig } = await import('./config-CHJ189UJ.mjs');
18872
18892
  const config = readGeminiLocalConfig();
18873
18893
  if (config.googleCloudProject) {
18874
18894
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -18908,7 +18928,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18908
18928
  process.exit(0);
18909
18929
  }
18910
18930
  try {
18911
- const { runGemini } = await import('./runGemini-D5N11LxO.mjs');
18931
+ const { runGemini } = await import('./runGemini-YqH7a-7O.mjs');
18912
18932
  let startedBy = void 0;
18913
18933
  for (let i = 1; i < args.length; i++) {
18914
18934
  if (args[i] === "--started-by") {
@@ -18931,7 +18951,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18931
18951
  } else if (subcommand === "pi") {
18932
18952
  if (args[1] === "--terminal") {
18933
18953
  try {
18934
- const { runPiTerminal } = await import('./piTerminal-BLSXK1u2.mjs');
18954
+ const { runPiTerminal } = await import('./piTerminal-BoHvPEZ_.mjs');
18935
18955
  process.exitCode = await runPiTerminal(args.slice(2));
18936
18956
  } catch (error) {
18937
18957
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -18948,7 +18968,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18948
18968
  }
18949
18969
  };
18950
18970
  try {
18951
- const { runAcp, resolveAcpAgentConfig } = await import('./index-DahaLbu4.mjs');
18971
+ const { runAcp, resolveAcpAgentConfig } = await import('./index-BgYZGODP.mjs');
18952
18972
  const parsed = parsePiRunnerArgs(args.slice(1));
18953
18973
  const resolved = resolveAcpAgentConfig(["pi", ...parsed.passthrough]);
18954
18974
  const { credentials } = await authAndSetupMachineIfNeeded();
@@ -18976,7 +18996,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18976
18996
  return;
18977
18997
  } else if (subcommand === "acp") {
18978
18998
  try {
18979
- const { runAcp, resolveAcpAgentConfig } = await import('./index-DahaLbu4.mjs');
18999
+ const { runAcp, resolveAcpAgentConfig } = await import('./index-BgYZGODP.mjs');
18980
19000
  let startedBy = void 0;
18981
19001
  let verbose = false;
18982
19002
  const acpArgs = [];
@@ -19016,7 +19036,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19016
19036
  return;
19017
19037
  } else if (subcommand === "openclaw") {
19018
19038
  try {
19019
- const { runOpenClaw } = await import('./runOpenClaw-CCpyKbrn.mjs');
19039
+ const { runOpenClaw } = await import('./runOpenClaw-DSSyFQBb.mjs');
19020
19040
  let startedBy = void 0;
19021
19041
  let verbose = false;
19022
19042
  let gatewayUrl;
@@ -19067,7 +19087,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19067
19087
  return;
19068
19088
  } else if (subcommand === "todo") {
19069
19089
  try {
19070
- const { handleTodoCommand } = await import('./todo-nzsqGZqp.mjs');
19090
+ const { handleTodoCommand } = await import('./todo-aCZmSt27.mjs');
19071
19091
  await handleTodoCommand(args.slice(1));
19072
19092
  } catch (error) {
19073
19093
  console.error(JSON.stringify({ error: error instanceof Error ? error.message : "Todo command failed" }));
@@ -19076,7 +19096,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19076
19096
  return;
19077
19097
  } else if (subcommand === "teams") {
19078
19098
  try {
19079
- const { handleTeamsCommand } = await import('./teams-Bs8lI887.mjs');
19099
+ const { handleTeamsCommand } = await import('./teams-CkrWQ4uM.mjs');
19080
19100
  await handleTeamsCommand(args.slice(1));
19081
19101
  } catch (error) {
19082
19102
  console.error(error instanceof Error ? error.message : "Teams command failed");
@@ -19085,7 +19105,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19085
19105
  return;
19086
19106
  } else if (subcommand === "auto") {
19087
19107
  try {
19088
- const { handleAutoCommand } = await import('./auto-DV5emt1-.mjs');
19108
+ const { handleAutoCommand } = await import('./auto-CcXxfqkC.mjs');
19089
19109
  await handleAutoCommand(args.slice(1));
19090
19110
  } catch (error) {
19091
19111
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Automation command failed");
@@ -19097,7 +19117,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19097
19117
  return;
19098
19118
  } else if (subcommand === "mcp" && (args.length === 1 || args.length === 2 && args[1] === "--terminal-tools")) {
19099
19119
  try {
19100
- const { handleMcpCommand } = await import('./mcp-D4dAo5BQ.mjs');
19120
+ const { handleMcpCommand } = await import('./mcp-DQkmk4VV.mjs');
19101
19121
  await handleMcpCommand(args[1] === "--terminal-tools");
19102
19122
  } catch (error) {
19103
19123
  process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
@@ -19467,4 +19487,4 @@ ${chalk.bold("Examples:")}
19467
19487
  }
19468
19488
  }
19469
19489
 
19470
- export { CHANGE_TITLE_INSTRUCTION as $, ALLOWED_SPAWN_PERMISSION_MODES as A, createSessionMetadata as B, setupOfflineReconnection as C, DEFAULT_RECENT_LIMIT as D, StreamRelay as E, MessageQueue2 as F, GEMINI_MODEL_ENV as G, hashObject as H, startHappyServer as I, registerAgentAttachmentDownloads as J, TitleGenerator as K, registerKillSessionHandler as L, MAX_READ_LIMIT as M, CLAUDE_ATTACHMENT_KINDS as N, stageClaudeAttachments as O, PI_TEAMS_EXTENSION as P, appendStagedAttachmentsToPrompt as Q, BasePermissionHandler as R, SPAWN_AGENTS as S, TurnWaitTimeoutError as T, writeSessionModeFile as U, normalizeAcpPermissionMode as V, removeSessionModeFile as W, GEMINI_API_KEY_ENV as X, GOOGLE_API_KEY_ENV as Y, BaseReasoningProcessor as Z, MessageBuffer as _, listSessions as a, resolvePermissionRequest as b, archiveSession as c, sendUserMessage as d, sessionWebUrl as e, DEFAULT_GEMINI_MODEL as f, describeTrigger as g, describeAction as h, sanitizeSpawnPermissionMode as i, tmuxSupportsSessionEnv as j, readSessionMetadata as k, listAccountSessions as l, resolveSpawnPermissionMode as m, resolveFirstMessageMeta as n, isValidSpawnOrigin as o, parseDuration as p, query as q, readSessionTranscript as r, stopSession as s, triggerFromFlags as t, waitForSessionKey as u, checkPreviewPath as v, waitForTurnEnd as w, registerAssistantSessionTools as x, TEAM_SKILL as y, initialMachineMetadata as z };
19490
+ export { MessageBuffer as $, ALLOWED_SPAWN_PERMISSION_MODES as A, initialMachineMetadata as B, createSessionMetadata as C, DEFAULT_RECENT_LIMIT as D, setupOfflineReconnection as E, StreamRelay as F, GEMINI_MODEL_ENV as G, MessageQueue2 as H, hashObject as I, startHappyServer as J, registerAgentAttachmentDownloads as K, TitleGenerator as L, MAX_READ_LIMIT as M, registerKillSessionHandler as N, CLAUDE_ATTACHMENT_KINDS as O, PI_TEAMS_EXTENSION as P, stageClaudeAttachments as Q, appendStagedAttachmentsToPrompt as R, SPAWN_AGENTS as S, TurnWaitTimeoutError as T, BasePermissionHandler as U, writeSessionModeFile as V, normalizeAcpPermissionMode as W, removeSessionModeFile as X, GEMINI_API_KEY_ENV as Y, GOOGLE_API_KEY_ENV as Z, BaseReasoningProcessor as _, listSessions as a, CHANGE_TITLE_INSTRUCTION as a0, resolvePermissionRequest as b, archiveSession as c, sendUserMessage as d, sessionWebUrl as e, DEFAULT_GEMINI_MODEL as f, describeTrigger as g, describeAction as h, sanitizeSpawnPermissionMode as i, tmuxSupportsSessionEnv as j, readSessionMetadata as k, listAccountSessions as l, resolveSpawnPermissionMode as m, resolveFirstMessageMeta as n, isValidSpawnOrigin as o, parseDuration as p, query as q, readSessionTranscript as r, stopSession as s, triggerFromFlags as t, waitForSessionKey as u, checkPreviewPath as v, waitForTurnEnd as w, registerAssistantSessionTools as x, suggestTitleForPrompt as y, TEAM_SKILL as z };
@@ -1,13 +1,13 @@
1
- import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-Bs3wwYbt.mjs';
2
- export { a as DEFAULT_IDLE_TIMEOUT_MS, b as DEFAULT_TOOL_CALL_TIMEOUT_MS, e as extractErrorDetail, f as formatDuration, c as formatDurationMinutes, h as handleAgentMessageChunk, d as handleAgentThoughtChunk, g as handleLegacyMessageChunk, i as handlePlanUpdate, j as handleThinkingUpdate, k as handleToolCall, l as handleToolCallUpdate, p as parseArgsFromContent } from './AcpBackend-Bs3wwYbt.mjs';
3
- import { r as readSettings, j as encodeBase64, l as logger, k as BUILTIN_TODO_DISCOVERY, c as configuration } from './limits-CKR_HJnO.mjs';
4
- import { A as AcpSessionManager } from './AcpSessionManager-BT8PJMEm.mjs';
5
- import { z as initialMachineMetadata, B as createSessionMetadata, C as setupOfflineReconnection, E as StreamRelay, F as MessageQueue2, H as hashObject, I as startHappyServer, J as registerAgentAttachmentDownloads, K as TitleGenerator, L as registerKillSessionHandler, N as CLAUDE_ATTACHMENT_KINDS, O as stageClaudeAttachments, Q as appendStagedAttachmentsToPrompt, R as BasePermissionHandler, U as writeSessionModeFile, V as normalizeAcpPermissionMode, W as removeSessionModeFile } from './index-BauTv2jB.mjs';
6
- import { p as preparePiTeamsRuntime } from './piRuntime-CW-XA4rz.mjs';
1
+ import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-YDGv4E-g.mjs';
2
+ export { a as DEFAULT_IDLE_TIMEOUT_MS, b as DEFAULT_TOOL_CALL_TIMEOUT_MS, e as extractErrorDetail, f as formatDuration, c as formatDurationMinutes, h as handleAgentMessageChunk, d as handleAgentThoughtChunk, g as handleLegacyMessageChunk, i as handlePlanUpdate, j as handleThinkingUpdate, k as handleToolCall, l as handleToolCallUpdate, p as parseArgsFromContent } from './AcpBackend-YDGv4E-g.mjs';
3
+ import { r as readSettings, j as encodeBase64, l as logger, k as BUILTIN_TODO_DISCOVERY, c as configuration } from './limits-BtAuKRl2.mjs';
4
+ import { A as AcpSessionManager } from './AcpSessionManager-Cxf5HQX1.mjs';
5
+ import { B as initialMachineMetadata, C as createSessionMetadata, E as setupOfflineReconnection, F as StreamRelay, H as MessageQueue2, I as hashObject, J as startHappyServer, K as registerAgentAttachmentDownloads, L as TitleGenerator, N as registerKillSessionHandler, O as CLAUDE_ATTACHMENT_KINDS, Q as stageClaudeAttachments, R as appendStagedAttachmentsToPrompt, U as BasePermissionHandler, V as writeSessionModeFile, W as normalizeAcpPermissionMode, X as removeSessionModeFile } from './index-BacwoXzs.mjs';
6
+ import { p as preparePiTeamsRuntime } from './piRuntime-DBpe12NN.mjs';
7
7
  import { randomUUID } from 'node:crypto';
8
8
  import { join } from 'node:path';
9
- import { o as connectionState, A as ApiClient, q as notifyDaemonSessionStarted } from './types-xKrxbCRv.mjs';
10
- import { p as projectPath } from './projectPath-CSpqWdxp.mjs';
9
+ import { o as connectionState, A as ApiClient, q as notifyDaemonSessionStarted } from './types-BvqOVUOW.mjs';
10
+ import { p as projectPath } from './terminalTitleSuggest-DKgX3osW.mjs';
11
11
  import 'node:child_process';
12
12
  import '@agentclientprotocol/sdk';
13
13
  import 'node:fs/promises';
@@ -20,7 +20,7 @@ import 'node:util';
20
20
  import '@paralleldrive/cuid2';
21
21
  import 'cross-spawn';
22
22
  import 'node:readline';
23
- import './agentGuidance-Daxn5Nvj.mjs';
23
+ import './agentGuidance-C8unGWp7.mjs';
24
24
  import 'fs/promises';
25
25
  import 'ink';
26
26
  import 'react';