@10play/expo-air 0.7.0 → 0.7.1

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.
@@ -73,6 +73,7 @@ if (!isInstalledFromNpm()) {
73
73
  .option("-w, --widget-port <port>", "Port for widget Metro server", "8082")
74
74
  .option("-m, --metro-port <port>", "Port for main app Metro server", "8081")
75
75
  .option("--project <path>", "Path to Expo project")
76
+ .option("-d, --device <name>", "Simulator name or UDID (omit for interactive picker)")
76
77
  .action(devCommand);
77
78
  }
78
79
  // Default command (just running `expo-air` starts everything)
@@ -1 +1 @@
1
- {"version":3,"file":"expo-air.js","sourceRoot":"","sources":["../../bin/expo-air.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expo-air.js","sourceRoot":"","sources":["../../bin/expo-air.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export interface DevOptions {
3
3
  widgetPort?: string;
4
4
  metroPort?: string;
5
5
  project?: string;
6
+ device?: string;
6
7
  }
7
8
  export declare function devCommand(options: DevOptions): Promise<void>;
8
9
  //# sourceMappingURL=dev.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../commands/dev.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0HnE"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../commands/dev.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAuKnE"}
@@ -2,7 +2,7 @@ import chalk from "chalk";
2
2
  import { spawn, execSync } from "child_process";
3
3
  import { existsSync, unlinkSync } from "fs";
4
4
  import { join } from "path";
5
- import { DevEnvironment } from "../runner/devEnvironment.js";
5
+ import { DevEnvironment, killProcessTree } from "../runner/devEnvironment.js";
6
6
  import { writeLocalConfig, updateInfoPlist, getPackageRoot } from "../utils/common.js";
7
7
  export async function devCommand(options) {
8
8
  console.log(chalk.blue("\n 🛠 expo-air dev\n"));
@@ -18,6 +18,39 @@ export async function devCommand(options) {
18
18
  metroCommand: "npm",
19
19
  watchServer: true,
20
20
  });
21
+ // Track the build process so we can kill it on shutdown
22
+ let buildProcess = null;
23
+ let isShuttingDown = false;
24
+ // Set up graceful shutdown early so Ctrl+C works at any point
25
+ // (during build, during runtime, etc.)
26
+ const shutdown = async () => {
27
+ if (isShuttingDown)
28
+ return;
29
+ isShuttingDown = true;
30
+ console.log(chalk.gray("\n Shutting down dev environment..."));
31
+ // Kill the build/run process tree if still running
32
+ if (buildProcess?.pid) {
33
+ await killProcessTree(buildProcess.pid);
34
+ }
35
+ // Kill all managed processes (Metro, prompt server, watchers)
36
+ const state = env.getState();
37
+ if (state.widgetProcess?.pid) {
38
+ await killProcessTree(state.widgetProcess.pid);
39
+ }
40
+ if (state.appProcess?.pid) {
41
+ await killProcessTree(state.appProcess.pid);
42
+ }
43
+ if (state.serverWatcher) {
44
+ await state.serverWatcher.close();
45
+ }
46
+ if (state.promptServer) {
47
+ await state.promptServer.stop();
48
+ }
49
+ console.log(chalk.green(" ✓ Dev environment stopped.\n"));
50
+ process.exit(0);
51
+ };
52
+ process.on("SIGINT", shutdown);
53
+ process.on("SIGTERM", shutdown);
21
54
  // Allocate ports
22
55
  await env.allocatePorts();
23
56
  // Resolve project directory
@@ -76,7 +109,15 @@ export async function devCommand(options) {
76
109
  console.log(chalk.blue("\n ─────────────────────────────────────────────"));
77
110
  console.log(chalk.blue(" 📱 Building for iOS Simulator..."));
78
111
  console.log(chalk.blue(" ─────────────────────────────────────────────\n"));
79
- const buildProcess = spawn("npx", ["expo", "run:ios", "--port", String(ports.appMetro)], {
112
+ const runArgs = ["expo", "run:ios", "--port", String(ports.appMetro)];
113
+ if (options.device) {
114
+ runArgs.push("--device", options.device);
115
+ }
116
+ else {
117
+ // Interactive device picker
118
+ runArgs.push("--device");
119
+ }
120
+ buildProcess = spawn("npx", runArgs, {
80
121
  cwd: projectRoot,
81
122
  stdio: "inherit",
82
123
  env: {
@@ -84,8 +125,9 @@ export async function devCommand(options) {
84
125
  FORCE_COLOR: "1",
85
126
  },
86
127
  });
128
+ const bp = buildProcess;
87
129
  await new Promise((resolve, reject) => {
88
- buildProcess.on("close", (code) => {
130
+ bp.on("close", (code) => {
89
131
  if (code === 0) {
90
132
  resolve();
91
133
  }
@@ -93,7 +135,7 @@ export async function devCommand(options) {
93
135
  reject(new Error(`Simulator build failed with code ${code}`));
94
136
  }
95
137
  });
96
- buildProcess.on("error", reject);
138
+ bp.on("error", reject);
97
139
  });
98
140
  // Build succeeded
99
141
  const state = env.getState();
@@ -107,7 +149,5 @@ export async function devCommand(options) {
107
149
  console.log(chalk.white(` App: http://localhost:${ports.appMetro}`));
108
150
  console.log(chalk.gray(" ─────────────────────────────────────────────"));
109
151
  console.log(chalk.yellow("\n Waiting for prompts... (Ctrl+C to stop)\n"));
110
- // Set up graceful shutdown
111
- env.setupShutdownHandlers("Shutting down dev environment...");
112
152
  }
113
153
  //# sourceMappingURL=dev.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../commands/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../commands/dev.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,10 @@ import chokidar from "chokidar";
3
3
  import { CloudflareTunnel } from "../tunnel/cloudflare.js";
4
4
  import { MetroCommand } from "../utils/metro.js";
5
5
  import { ExtraTunnelConfig } from "../utils/common.js";
6
+ /**
7
+ * Kill a process and all its children (process tree)
8
+ */
9
+ export declare function killProcessTree(pid: number): Promise<void>;
6
10
  export interface DevEnvironmentOptions {
7
11
  /** Port for prompt server (default: 3847) */
8
12
  port?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"devEnvironment.d.ts","sourceRoot":"","sources":["../../runner/devEnvironment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devEnvironment.d.ts","sourceRoot":"","sources":["../../runner/devEnvironment.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ const __dirname = path.dirname(__filename);
13
13
  /**
14
14
  * Kill a process and all its children (process tree)
15
15
  */
16
- function killProcessTree(pid) {
16
+ export function killProcessTree(pid) {
17
17
  return new Promise((resolve) => {
18
18
  treeKill(pid, "SIGTERM", (err) => {
19
19
  // Resolve even on error - process may already be dead
@@ -1 +1 @@
1
- {"version":3,"file":"devEnvironment.js","sourceRoot":"","sources":["../../runner/devEnvironment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devEnvironment.js","sourceRoot":"","sources":["../../runner/devEnvironment.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export function isPortAvailable(port) {
31
31
  * @param maxAttempts - Maximum number of consecutive ports to try
32
32
  * @param excludePorts - Ports to skip (already allocated by this session)
33
33
  */
34
- export async function findFreePort(startPort, maxAttempts = 10, excludePorts = []) {
34
+ export async function findFreePort(startPort, maxAttempts = 50, excludePorts = []) {
35
35
  for (let i = 0; i < maxAttempts; i++) {
36
36
  const port = startPort + i;
37
37
  // Skip ports we've already allocated in this session
@@ -534,10 +534,10 @@ __d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,'__esModule',{v
534
534
  __d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return c}});var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e},u=(r(d[1]).default,!1),o=0;function f(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];u||(u=!0,0===e[0]&&(n.default.vibrate(400),e=e.slice(1)),0!==e.length?setTimeout(()=>l(++o,e,t,1),e[0]):u=!1)}function l(e,t,f,v){if(u&&e===o){if(n.default.vibrate(400),v>=t.length){if(!f)return void(u=!1);v=0}setTimeout(()=>l(e,t,f,v+1),t[v])}}var v={vibrate:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:400,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!u)if('number'==typeof e)n.default.vibrate(e);else{if(!Array.isArray(e))throw new Error('Vibration pattern should be a number or array');f(e,t)}},cancel:function(){u=!1}},c=v},482,[483,60]);
535
535
  __d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var e=r(d[0]);Object.keys(e).forEach(function(t){'default'===t||Object.prototype.hasOwnProperty.call(_e,t)||Object.defineProperty(_e,t,{enumerable:!0,get:function(){return e[t]}})});var t,n=((t=e)&&t.__esModule?t:{default:t}).default},483,[484]);
536
536
  __d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return e}});var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).getEnforcing('Vibration')},484,[50]);
537
- __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.BubbleContent=function(e){e.size,e.color;var T=e.expanded,C=void 0!==T&&T,O=e.serverUrl,f=void 0===O?"ws://localhost:3847":O,A=(0,s.useState)("disconnected"),E=(0,n.default)(A,2),_=E[0],I=E[1],P=(0,s.useState)([]),D=(0,n.default)(P,2),N=D[0],k=D[1],w=(0,s.useState)([]),B=(0,n.default)(w,2),j=B[0],L=B[1],U=(0,s.useState)("main"),G=(0,n.default)(U,2),V=G[0],M=G[1],Y=(0,s.useState)([]),W=(0,n.default)(Y,2),H=W[0],Z=W[1],q=(0,s.useState)(!1),z=(0,n.default)(q,2),X=z[0],F=z[1],K=(0,s.useState)(),J=(0,n.default)(K,2),Q=J[0],$=J[1],ee=(0,s.useState)("chat"),te=(0,n.default)(ee,2),ne=te[0],ae=te[1],re=(0,s.useState)(!1),se=(0,n.default)(re,2),oe=se[0],ie=se[1],ce=(0,s.useState)([]),le=(0,n.default)(ce,2),ue=le[0],de=le[1],he=(0,s.useState)(null),Se=(0,n.default)(he,2),pe=Se[0],me=Se[1],Te=(0,s.useRef)(!1),be=(0,s.useRef)(0),ge=(0,s.useRef)([]),Ce=(0,s.useRef)(null),Oe=(0,s.useRef)(null);(0,s.useEffect)(()=>{C&&"chat"===ne&&setTimeout(()=>Oe.current?.focus(),100)},[C]);var fe=Q?.match(/\/pull\/(\d+)/)?.[1];(0,s.useEffect)(()=>{console.log("[expo-air] Connecting to:",f);var e=(0,h.createWebSocketClient)({url:f,onStatusChange:I,onMessage:xe,onError:e=>{console.error("[expo-air] WebSocket error:",e)}});return e.connect(),()=>{e.disconnect()}},[f]),(0,s.useEffect)(()=>(0,S.setupTapHandler)((e,t)=>{var n=(0,h.getWebSocketClient)();n&&!n.isConnected()&&n.connect()}),[]);var Re=(0,s.useCallback)((e,t)=>{var n=ge.current;if(n.length>0){var s={type:"assistant_parts",promptId:e,parts:n,isComplete:t,timestamp:Date.now()};k(e=>[...e,s])}ge.current=[],Ce.current=null,L([])},[]),xe=(0,s.useCallback)(e=>{switch(e.type){case"stream":if(e.promptId!==Ce.current&&(ge.current.length>0&&Ce.current&&Re(Ce.current,!1),Ce.current=e.promptId),!e.done&&e.chunk){var t=ge.current,n=t[t.length-1];"text"===n?.type?(n.content+=e.chunk,ge.current=[...t]):ge.current=[...t,{type:"text",id:"text-"+be.current++,content:e.chunk}],L([...ge.current])}break;case"tool":if("started"!==e.status){var s={type:"tool",id:"tool-"+be.current++,toolName:e.toolName,status:e.status,input:e.input,output:e.output,timestamp:e.timestamp};ge.current=[...ge.current,s],L([...ge.current])}break;case"result":if(ge.current.length>0){var o={type:"assistant_parts",promptId:e.promptId,parts:ge.current,isComplete:!0,timestamp:e.timestamp};if(void 0!==e.costUsd||void 0!==e.durationMs||!e.success&&e.error){var c={...e,result:void 0};k(e=>[...e,o,c])}else k(e=>[...e,o])}else(void 0!==e.costUsd||void 0!==e.durationMs||!e.success&&e.error)&&k(t=>[...t,e]);ge.current=[],Ce.current=null,L([]);break;case"error":if(ge.current.length>0&&Ce.current){var l={type:"assistant_parts",promptId:Ce.current,parts:ge.current,isComplete:!1,timestamp:Date.now()};k(t=>[...t,l,e])}else k(t=>[...t,e]);ge.current=[],Ce.current=null,L([]);break;case"status":break;case"session_cleared":k([]),ge.current=[],Ce.current=null,be.current=0,L([]);break;case"stopped":ge.current.length>0&&Ce.current?Re(Ce.current,!1):(ge.current=[],Ce.current=null,L([]));break;case"history":var u=e.entries.flatMap(e=>"user"===e.role?[{type:"user_prompt",content:e.content,timestamp:e.timestamp}]:"assistant"===e.role?[{type:"history_result",content:e.content,timestamp:e.timestamp}]:"tool"===e.role?[{type:"tool",promptId:"",toolName:e.toolName,status:e.status,input:e.input,output:e.output,timestamp:e.timestamp}]:"system"===e.role?[{type:"system_message",messageType:e.type,content:e.content,timestamp:e.timestamp}]:[]);k(u);break;case"git_status":M(e.branchName),Z(e.changes),F(e.hasPR),$(e.prUrl);break;case"branches_list":de(e.branches);break;case"branch_switched":case"branch_created":e.success?(ie(!1),me(null)):e.error&&me(e.error)}},[Re]),Ae=(0,s.useCallback)((function(){var e=(0,t.default)(function*(e){if(!Te.current){var t=yield(0,S.requestPushToken)();if(t){var n=(0,h.getWebSocketClient)();n?.isConnected()&&(n.sendPushToken(t),Te.current=!0)}}k(t=>[...t,{type:"user_prompt",content:e,timestamp:Date.now()}]),ge.current=[],Ce.current=null,L([]);var s=(0,h.getWebSocketClient)();s&&s.sendPrompt(e)});return function(t){return e.apply(this,arguments)}})(),[]),ve=(0,s.useCallback)(()=>{var e=(0,h.getWebSocketClient)();e&&e.requestNewSession()},[]),ye=(0,s.useCallback)(()=>{var e=(0,h.getWebSocketClient)();e&&e.requestStop()},[]),Ee=(0,s.useCallback)(()=>{ae("chat"),Ae("Look at my current git changes and create a commit with a good conventional commit message. Stage all changes and commit them.")},[Ae]),Ie=(0,s.useCallback)(()=>{ae("chat"),Ae("Create a pull request for my current branch. First commit any uncommitted changes with a good message. Then generate a title and description based on the commits, and use `gh pr create --title \"...\" --body \"...\"` (non-interactive mode) to create it. Push to remote first if needed.")},[Ae]),Pe=(0,s.useCallback)(()=>{Q&&o.Linking.openURL(Q)},[Q]),De=(0,s.useCallback)(()=>{var e=(0,h.getWebSocketClient)();e&&e.requestDiscardChanges()},[]),Ne=(0,s.useCallback)(()=>{if(ie(e=>!e),!oe){var e=(0,h.getWebSocketClient)();e&&e.requestBranches()}},[oe]),ke=(0,s.useCallback)(e=>{me(null);var t=(0,h.getWebSocketClient)();t&&t.requestSwitchBranch(e)},[]),we=(0,s.useCallback)(e=>{me(null);var t=(0,h.getWebSocketClient)();t&&t.requestCreateBranch(e)},[]);if(!C)return(0,b.jsx)(o.View,{style:y.collapsedPill,children:(0,b.jsx)(v,{status:_})});return(0,b.jsxs)(o.View,{style:y.expanded,children:[(0,b.jsx)(R,{status:_,branchName:V,onBranchPress:Ne}),(0,b.jsx)(x,{activeTab:ne,onTabChange:ae,onNewSession:ve,canStartNew:"connected"===_,hasPR:X,hasChanges:H.length>0,prNumber:fe,onCreatePR:Ie,onCommit:Ee,onViewPR:Pe}),(0,b.jsx)(o.View,{style:y.body,children:"chat"===ne?(0,b.jsx)(l.ResponseArea,{messages:N,currentParts:j}):(0,b.jsx)(u.GitChangesTab,{changes:H,onDiscard:De})}),"chat"===ne&&(0,b.jsx)(c.PromptInput,{ref:Oe,onSubmit:Ae,onStop:ye,disabled:"disconnected"===_,isProcessing:"processing"===_}),oe&&(0,b.jsx)(p.BranchSwitcher,{branches:ue,currentBranch:V,onSelect:ke,onCreate:we,onClose:()=>{ie(!1),me(null)},error:pe})]})};var t=e(r(d[0])),n=e(r(d[1])),s=r(d[2]),o=r(d[3]),c=r(d[4]),l=r(d[5]),u=r(d[6]),h=r(d[7]),S=r(d[8]),p=r(d[9]),T=r(d[10]),b=r(d[11]),C=o.NativeModules.WidgetBridge,O=o.NativeModules.ExpoAir;function f(){try{C?.collapse?C.collapse():O?.collapse?O.collapse():console.warn("[expo-air] No collapse method available")}catch(e){console.warn("[expo-air] Failed to collapse:",e)}}function R(e){var t=e.status,n=e.branchName,s=e.onBranchPress,c={disconnected:T.COLORS.STATUS_ERROR,connecting:T.COLORS.STATUS_INFO,connected:T.COLORS.STATUS_SUCCESS,processing:T.COLORS.STATUS_INFO};return(0,b.jsxs)(o.View,{style:y.header,children:[(0,b.jsx)(o.TouchableOpacity,{onPress:f,style:y.closeButton,children:(0,b.jsx)(o.Text,{style:y.closeButtonText,children:"\u2715"})}),(0,b.jsxs)(o.TouchableOpacity,{style:y.branchButton,onPress:s,children:[(0,b.jsx)(o.Text,{style:y.branchName,numberOfLines:1,children:n}),(0,b.jsx)(o.Text,{style:y.branchChevron,children:"\u25be"})]}),(0,b.jsx)(o.View,{style:[y.statusDot,{backgroundColor:c[t]}]})]})}function x(e){var t=e.activeTab,n=e.onTabChange,s=e.onNewSession,c=e.canStartNew,l=e.hasPR,u=e.hasChanges,h=e.prNumber,S=e.onCreatePR,p=e.onCommit,T=e.onViewPR;return(0,b.jsxs)(o.View,{style:y.tabBar,children:[(0,b.jsxs)(o.View,{style:y.tabButtons,children:[(0,b.jsx)(o.TouchableOpacity,{onPress:()=>n("chat"),children:(0,b.jsx)(o.Text,{style:[y.tabText,"chat"===t?y.tabTextActive:y.tabTextInactive],children:"Chat"})}),(0,b.jsx)(o.TouchableOpacity,{onPress:()=>n("changes"),children:(0,b.jsx)(o.Text,{style:[y.tabText,"changes"===t?y.tabTextActive:y.tabTextInactive],children:"Changes"})})]}),"chat"===t?(0,b.jsx)(o.TouchableOpacity,{onPress:s,style:[y.ctaButton,!c&&y.ctaButtonDisabled],disabled:!c,children:(0,b.jsx)(o.Text,{style:[y.ctaText,!c&&y.ctaTextDisabled],children:"New"})}):!l&&u?(0,b.jsx)(A,{onPress:S,children:"Create PR"}):l&&u?(0,b.jsx)(A,{onPress:p,children:"Commit"}):l&&!u&&h?(0,b.jsxs)(A,{onPress:T,children:["#",h]}):null]})}function A(e){var t=e.children,n=e.onPress,c=(0,s.useRef)(new o.Animated.Value(.6)).current;return(0,s.useEffect)(()=>{var e=o.Animated.loop(o.Animated.sequence([o.Animated.timing(c,{toValue:.9,duration:1500,easing:o.Easing.inOut(o.Easing.ease),useNativeDriver:!0}),o.Animated.timing(c,{toValue:.6,duration:1500,easing:o.Easing.inOut(o.Easing.ease),useNativeDriver:!0})]));return e.start(),()=>e.stop()},[c]),(0,b.jsx)(o.TouchableOpacity,{onPress:n,style:y.ctaButton,activeOpacity:.7,children:(0,b.jsx)(o.Animated.Text,{style:[y.ctaText,{opacity:c}],children:t})})}function v(e){var t=e.status,n={disconnected:T.COLORS.STATUS_ERROR,connecting:T.COLORS.STATUS_INFO,connected:T.COLORS.STATUS_SUCCESS,processing:T.COLORS.STATUS_INFO},c="processing"===t||"connecting"===t,l=(0,s.useRef)(new o.Animated.Value(1)).current,u=(0,s.useRef)(new o.Animated.Value(.4)).current;return(0,s.useEffect)(()=>{if(c){var e=o.Animated.loop(o.Animated.sequence([o.Animated.parallel([o.Animated.timing(l,{toValue:1.3,duration:1200,easing:o.Easing.inOut(o.Easing.ease),useNativeDriver:!0}),o.Animated.timing(u,{toValue:0,duration:1200,easing:o.Easing.inOut(o.Easing.ease),useNativeDriver:!0})]),o.Animated.parallel([o.Animated.timing(l,{toValue:1,duration:0,useNativeDriver:!0}),o.Animated.timing(u,{toValue:.4,duration:0,useNativeDriver:!0})])]));return e.start(),()=>e.stop()}l.setValue(1),u.setValue(.4)},[c,l,u]),(0,b.jsxs)(o.View,{style:y.indicatorContainer,children:[(0,b.jsx)(o.View,{style:[y.indicator,{backgroundColor:n[t]}]}),c&&(0,b.jsx)(o.Animated.View,{style:[y.indicatorRing,{borderColor:n[t],transform:[{scale:l}],opacity:u}]})]})}var y=o.StyleSheet.create({collapsedPill:{width:100,height:32,backgroundColor:"transparent",alignItems:"center",justifyContent:"center"},indicatorContainer:{width:20,height:20,alignItems:"center",justifyContent:"center"},indicator:{width:T.SIZES.STATUS_DOT,height:T.SIZES.STATUS_DOT,borderRadius:T.SIZES.STATUS_DOT/2},indicatorRing:{position:"absolute",width:16,height:16,borderRadius:8,borderWidth:1.5,opacity:.4},expanded:{flex:1,backgroundColor:T.COLORS.BACKGROUND,borderRadius:T.LAYOUT.BORDER_RADIUS_LG,overflow:"hidden"},header:{flexDirection:"row",alignItems:"center",paddingHorizontal:T.LAYOUT.CONTENT_PADDING_H,paddingVertical:T.SPACING.MD+2,borderBottomWidth:1,borderBottomColor:T.COLORS.BORDER},closeButton:{width:T.SIZES.CLOSE_BUTTON,height:T.SIZES.CLOSE_BUTTON,borderRadius:T.SIZES.CLOSE_BUTTON/2,backgroundColor:"transparent",alignItems:"center",justifyContent:"center",marginRight:T.SPACING.MD},closeButtonText:{color:"transparent",fontSize:T.TYPOGRAPHY.SIZE_MD,fontWeight:T.TYPOGRAPHY.WEIGHT_SEMIBOLD},branchButton:{flex:1,flexDirection:"row",alignItems:"center"},branchName:{flexShrink:1,color:T.COLORS.TEXT_SECONDARY,fontSize:T.TYPOGRAPHY.SIZE_MD,fontWeight:T.TYPOGRAPHY.WEIGHT_MEDIUM},branchChevron:{color:T.COLORS.TEXT_MUTED,fontSize:T.TYPOGRAPHY.SIZE_SM,marginLeft:T.SPACING.XS},statusDot:{width:T.SIZES.STATUS_DOT,height:T.SIZES.STATUS_DOT,borderRadius:T.SIZES.STATUS_DOT/2,marginLeft:T.SPACING.MD},ctaButton:{paddingHorizontal:T.SIZES.CTA_PADDING_H,paddingVertical:T.SIZES.CTA_PADDING_V,borderRadius:T.LAYOUT.BORDER_RADIUS_SM,backgroundColor:T.COLORS.BACKGROUND_INTERACTIVE},ctaButtonDisabled:{opacity:.4},ctaText:{color:T.COLORS.TEXT_PRIMARY,fontSize:T.TYPOGRAPHY.SIZE_SM,fontWeight:T.TYPOGRAPHY.WEIGHT_SEMIBOLD},ctaTextDisabled:{opacity:.6},tabBar:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:T.LAYOUT.CONTENT_PADDING_H,paddingVertical:T.SPACING.SM+2,borderBottomWidth:1,borderBottomColor:T.COLORS.BORDER},tabButtons:{flexDirection:"row",gap:T.SPACING.XL},tabText:{fontSize:T.TYPOGRAPHY.SIZE_LG,fontWeight:T.TYPOGRAPHY.WEIGHT_MEDIUM},tabTextActive:{color:T.COLORS.TEXT_PRIMARY},tabTextInactive:{color:T.COLORS.TEXT_MUTED},body:{flex:1,backgroundColor:T.COLORS.BACKGROUND_ELEVATED}})},485,[346,29,63,258,486,488,489,490,491,492,487,250]);
537
+ __d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.BubbleContent=function(e){e.size,e.color;var T=e.expanded,C=void 0!==T&&T,O=e.serverUrl,f=void 0===O?"ws://localhost:3847":O,R=(0,s.useState)("disconnected"),x=(0,n.default)(R,2),y=x[0],I=x[1],P=(0,s.useState)([]),D=(0,n.default)(P,2),N=D[0],k=D[1],w=(0,s.useState)([]),B=(0,n.default)(w,2),j=B[0],L=B[1],U=(0,s.useState)("main"),G=(0,n.default)(U,2),V=G[0],M=G[1],Y=(0,s.useState)([]),W=(0,n.default)(Y,2),H=W[0],Z=W[1],q=(0,s.useState)(!1),z=(0,n.default)(q,2),X=z[0],F=z[1],K=(0,s.useState)(),J=(0,n.default)(K,2),Q=J[0],$=J[1],ee=(0,s.useState)("chat"),te=(0,n.default)(ee,2),ne=te[0],ae=te[1],re=(0,s.useState)(!1),se=(0,n.default)(re,2),oe=se[0],ie=se[1],ce=(0,s.useState)([]),le=(0,n.default)(ce,2),ue=le[0],de=le[1],he=(0,s.useState)(null),Se=(0,n.default)(he,2),pe=Se[0],me=Se[1],Te=(0,s.useRef)(!1),be=(0,s.useRef)(0),ge=(0,s.useRef)([]),Ce=(0,s.useRef)(null),Oe=(0,s.useRef)(null);(0,s.useEffect)(()=>{C&&"chat"===ne&&setTimeout(()=>Oe.current?.focus(),100)},[C]);var fe=Q?.match(/\/pull\/(\d+)/)?.[1];(0,s.useEffect)(()=>{console.log("[expo-air] Connecting to:",f);var e=(0,h.createWebSocketClient)({url:f,onStatusChange:I,onMessage:xe,onError:e=>{console.error("[expo-air] WebSocket error:",e)}});return e.connect(),()=>{e.disconnect()}},[f]),(0,s.useEffect)(()=>(0,S.setupTapHandler)((e,t)=>{var n=(0,h.getWebSocketClient)();n&&!n.isConnected()&&n.connect()}),[]);var Re=(0,s.useCallback)((e,t)=>{var n=ge.current;if(n.length>0){var s={type:"assistant_parts",promptId:e,parts:n,isComplete:t,timestamp:Date.now()};k(e=>[...e,s])}ge.current=[],Ce.current=null,L([])},[]),xe=(0,s.useCallback)(e=>{switch(e.type){case"stream":if(e.promptId!==Ce.current&&(ge.current.length>0&&Ce.current&&Re(Ce.current,!1),Ce.current=e.promptId),!e.done&&e.chunk){var t=ge.current,n=t[t.length-1];"text"===n?.type?(n.content+=e.chunk,ge.current=[...t]):ge.current=[...t,{type:"text",id:"text-"+be.current++,content:e.chunk}],L([...ge.current])}break;case"tool":if("started"!==e.status){var s={type:"tool",id:"tool-"+be.current++,toolName:e.toolName,status:e.status,input:e.input,output:e.output,timestamp:e.timestamp};ge.current=[...ge.current,s],L([...ge.current])}break;case"result":if(ge.current.length>0){var o={type:"assistant_parts",promptId:e.promptId,parts:ge.current,isComplete:!0,timestamp:e.timestamp};if(void 0!==e.costUsd||void 0!==e.durationMs||!e.success&&e.error){var c={...e,result:void 0};k(e=>[...e,o,c])}else k(e=>[...e,o])}else(void 0!==e.costUsd||void 0!==e.durationMs||!e.success&&e.error)&&k(t=>[...t,e]);ge.current=[],Ce.current=null,L([]);break;case"error":if(ge.current.length>0&&Ce.current){var l={type:"assistant_parts",promptId:Ce.current,parts:ge.current,isComplete:!1,timestamp:Date.now()};k(t=>[...t,l,e])}else k(t=>[...t,e]);ge.current=[],Ce.current=null,L([]);break;case"status":break;case"session_cleared":k([]),ge.current=[],Ce.current=null,be.current=0,L([]);break;case"stopped":ge.current.length>0&&Ce.current?Re(Ce.current,!1):(ge.current=[],Ce.current=null,L([]));break;case"history":var u=e.entries.flatMap(e=>"user"===e.role?[{type:"user_prompt",content:e.content,timestamp:e.timestamp}]:"assistant"===e.role?[{type:"history_result",content:e.content,timestamp:e.timestamp}]:"tool"===e.role?[{type:"tool",promptId:"",toolName:e.toolName,status:e.status,input:e.input,output:e.output,timestamp:e.timestamp}]:"system"===e.role?[{type:"system_message",messageType:e.type,content:e.content,timestamp:e.timestamp}]:[]);k(u);break;case"git_status":M(e.branchName),Z(e.changes),F(e.hasPR),$(e.prUrl);break;case"branches_list":de(e.branches);break;case"branch_switched":case"branch_created":e.success?(ie(!1),me(null)):e.error&&me(e.error)}},[Re]),Ae=(0,s.useCallback)((function(){var e=(0,t.default)(function*(e){if(!Te.current){var t=yield(0,S.requestPushToken)();if(t){var n=(0,h.getWebSocketClient)();n?.isConnected()&&(n.sendPushToken(t),Te.current=!0)}}k(t=>[...t,{type:"user_prompt",content:e,timestamp:Date.now()}]),ge.current=[],Ce.current=null,L([]);var s=(0,h.getWebSocketClient)();s&&s.sendPrompt(e)});return function(t){return e.apply(this,arguments)}})(),[]),ve=(0,s.useCallback)(()=>{var e=(0,h.getWebSocketClient)();e&&e.requestNewSession()},[]),ye=(0,s.useCallback)(()=>{var e=(0,h.getWebSocketClient)();e&&e.requestStop()},[]),Ee=(0,s.useCallback)(()=>{ae("chat"),Ae("Look at my current git changes and create a commit with a good conventional commit message. Stage all changes and commit them.")},[Ae]),Ie=(0,s.useCallback)(()=>{ae("chat"),Ae("Create a pull request for my current branch. First commit any uncommitted changes with a good message. Then generate a title and description based on the commits, and use `gh pr create --title \"...\" --body \"...\"` (non-interactive mode) to create it. Push to remote first if needed.")},[Ae]),Pe=(0,s.useCallback)(()=>{Q&&o.Linking.openURL(Q)},[Q]),De=(0,s.useCallback)(()=>{var e=(0,h.getWebSocketClient)();e&&e.requestDiscardChanges()},[]),Ne=(0,s.useCallback)(()=>{if(ie(e=>!e),!oe){var e=(0,h.getWebSocketClient)();e&&e.requestBranches()}},[oe]),ke=(0,s.useCallback)(e=>{me(null);var t=(0,h.getWebSocketClient)();t&&t.requestSwitchBranch(e)},[]),we=(0,s.useCallback)(e=>{me(null);var t=(0,h.getWebSocketClient)();t&&t.requestCreateBranch(e)},[]);if(!C)return(0,b.jsx)(o.View,{style:_.collapsedPill,children:(0,b.jsx)(E,{status:y})});return(0,b.jsxs)(o.View,{style:_.expanded,children:[(0,b.jsx)(A,{status:y,branchName:V,onBranchPress:Ne}),(0,b.jsx)(v,{activeTab:ne,onTabChange:ae,onNewSession:ve,canStartNew:"connected"===y,hasPR:X,hasChanges:H.length>0,prNumber:fe,onCreatePR:Ie,onCommit:Ee,onViewPR:Pe}),(0,b.jsx)(o.View,{style:_.body,children:"chat"===ne?(0,b.jsx)(l.ResponseArea,{messages:N,currentParts:j}):(0,b.jsx)(u.GitChangesTab,{changes:H,onDiscard:De})}),"chat"===ne&&(0,b.jsx)(c.PromptInput,{ref:Oe,onSubmit:Ae,onStop:ye,disabled:"disconnected"===y,isProcessing:"processing"===y}),oe&&(0,b.jsx)(p.BranchSwitcher,{branches:ue,currentBranch:V,onSelect:ke,onCreate:we,onClose:()=>{ie(!1),me(null)},error:pe})]})};var t=e(r(d[0])),n=e(r(d[1])),s=r(d[2]),o=r(d[3]),c=r(d[4]),l=r(d[5]),u=r(d[6]),h=r(d[7]),S=r(d[8]),p=r(d[9]),T=r(d[10]),b=r(d[11]),C=o.Animated.Text,O=o.Animated.View,f=o.NativeModules.WidgetBridge,R=o.NativeModules.ExpoAir;function x(){try{f?.collapse?f.collapse():R?.collapse?R.collapse():console.warn("[expo-air] No collapse method available")}catch(e){console.warn("[expo-air] Failed to collapse:",e)}}function A(e){var t=e.status,n=e.branchName,s=e.onBranchPress,c={disconnected:T.COLORS.STATUS_ERROR,connecting:T.COLORS.STATUS_INFO,connected:T.COLORS.STATUS_SUCCESS,processing:T.COLORS.STATUS_INFO};return(0,b.jsxs)(o.View,{style:_.header,children:[(0,b.jsx)(o.TouchableOpacity,{onPress:x,style:_.closeButton,children:(0,b.jsx)(o.Text,{style:_.closeButtonText,children:"\u2715"})}),(0,b.jsxs)(o.TouchableOpacity,{style:_.branchButton,onPress:s,children:[(0,b.jsx)(o.Text,{style:_.branchName,numberOfLines:1,children:n}),(0,b.jsx)(o.Text,{style:_.branchChevron,children:"\u25be"})]}),(0,b.jsx)(o.View,{style:[_.statusDot,{backgroundColor:c[t]}]})]})}function v(e){var t=e.activeTab,n=e.onTabChange,s=e.onNewSession,c=e.canStartNew,l=e.hasPR,u=e.hasChanges,h=e.prNumber,S=e.onCreatePR,p=e.onCommit,T=e.onViewPR;return(0,b.jsxs)(o.View,{style:_.tabBar,children:[(0,b.jsxs)(o.View,{style:_.tabButtons,children:[(0,b.jsx)(o.TouchableOpacity,{onPress:()=>n("chat"),children:(0,b.jsx)(o.Text,{style:[_.tabText,"chat"===t?_.tabTextActive:_.tabTextInactive],children:"Chat"})}),(0,b.jsx)(o.TouchableOpacity,{onPress:()=>n("changes"),children:(0,b.jsx)(o.Text,{style:[_.tabText,"changes"===t?_.tabTextActive:_.tabTextInactive],children:"Changes"})})]}),"chat"===t?(0,b.jsx)(o.TouchableOpacity,{onPress:s,style:[_.ctaButton,!c&&_.ctaButtonDisabled],disabled:!c,children:(0,b.jsx)(o.Text,{style:[_.ctaText,!c&&_.ctaTextDisabled],children:"New"})}):!l&&u?(0,b.jsx)(y,{onPress:S,children:"Create PR"}):l&&u?(0,b.jsx)(y,{onPress:p,children:"Commit"}):l&&!u&&h?(0,b.jsxs)(y,{onPress:T,children:["#",h]}):null]})}function y(e){var t=e.children,n=e.onPress,c=(0,s.useRef)(new o.Animated.Value(.6)).current;return(0,s.useEffect)(()=>{var e=o.Animated.loop(o.Animated.sequence([o.Animated.timing(c,{toValue:.9,duration:1500,easing:o.Easing.inOut(o.Easing.ease),useNativeDriver:!0}),o.Animated.timing(c,{toValue:.6,duration:1500,easing:o.Easing.inOut(o.Easing.ease),useNativeDriver:!0})]));return e.start(),()=>e.stop()},[c]),(0,b.jsx)(o.TouchableOpacity,{onPress:n,style:_.ctaButton,activeOpacity:.7,children:(0,b.jsx)(C,{style:[_.ctaText,{opacity:c}],children:t})})}function E(e){var t=e.status,n={disconnected:T.COLORS.STATUS_ERROR,connecting:T.COLORS.STATUS_INFO,connected:T.COLORS.STATUS_SUCCESS,processing:T.COLORS.STATUS_INFO},c="processing"===t||"connecting"===t,l=(0,s.useRef)(new o.Animated.Value(1)).current,u=(0,s.useRef)(new o.Animated.Value(.4)).current;return(0,s.useEffect)(()=>{if(c){var e=o.Animated.loop(o.Animated.sequence([o.Animated.parallel([o.Animated.timing(l,{toValue:1.3,duration:1200,easing:o.Easing.inOut(o.Easing.ease),useNativeDriver:!0}),o.Animated.timing(u,{toValue:0,duration:1200,easing:o.Easing.inOut(o.Easing.ease),useNativeDriver:!0})]),o.Animated.parallel([o.Animated.timing(l,{toValue:1,duration:0,useNativeDriver:!0}),o.Animated.timing(u,{toValue:.4,duration:0,useNativeDriver:!0})])]));return e.start(),()=>e.stop()}l.setValue(1),u.setValue(.4)},[c,l,u]),(0,b.jsxs)(o.View,{style:_.indicatorContainer,children:[(0,b.jsx)(o.View,{style:[_.indicator,{backgroundColor:n[t]}]}),c&&(0,b.jsx)(O,{style:[_.indicatorRing,{borderColor:n[t],transform:[{scale:l}],opacity:u}]})]})}var _=o.StyleSheet.create({collapsedPill:{width:100,height:32,backgroundColor:"transparent",alignItems:"center",justifyContent:"center"},indicatorContainer:{width:20,height:20,alignItems:"center",justifyContent:"center"},indicator:{width:T.SIZES.STATUS_DOT,height:T.SIZES.STATUS_DOT,borderRadius:T.SIZES.STATUS_DOT/2},indicatorRing:{position:"absolute",width:16,height:16,borderRadius:8,borderWidth:1.5,opacity:.4},expanded:{flex:1,backgroundColor:T.COLORS.BACKGROUND,borderRadius:T.LAYOUT.BORDER_RADIUS_LG,overflow:"hidden"},header:{flexDirection:"row",alignItems:"center",paddingHorizontal:T.LAYOUT.CONTENT_PADDING_H,paddingVertical:T.SPACING.MD+2,borderBottomWidth:1,borderBottomColor:T.COLORS.BORDER},closeButton:{width:T.SIZES.CLOSE_BUTTON,height:T.SIZES.CLOSE_BUTTON,borderRadius:T.SIZES.CLOSE_BUTTON/2,backgroundColor:"transparent",alignItems:"center",justifyContent:"center",marginRight:T.SPACING.MD},closeButtonText:{color:"transparent",fontSize:T.TYPOGRAPHY.SIZE_MD,fontWeight:T.TYPOGRAPHY.WEIGHT_SEMIBOLD},branchButton:{flex:1,flexDirection:"row",alignItems:"center"},branchName:{flexShrink:1,color:T.COLORS.TEXT_SECONDARY,fontSize:T.TYPOGRAPHY.SIZE_MD,fontWeight:T.TYPOGRAPHY.WEIGHT_MEDIUM},branchChevron:{color:T.COLORS.TEXT_MUTED,fontSize:T.TYPOGRAPHY.SIZE_SM,marginLeft:T.SPACING.XS},statusDot:{width:T.SIZES.STATUS_DOT,height:T.SIZES.STATUS_DOT,borderRadius:T.SIZES.STATUS_DOT/2,marginLeft:T.SPACING.MD},ctaButton:{paddingHorizontal:T.SIZES.CTA_PADDING_H,paddingVertical:T.SIZES.CTA_PADDING_V,borderRadius:T.LAYOUT.BORDER_RADIUS_SM,backgroundColor:T.COLORS.BACKGROUND_INTERACTIVE},ctaButtonDisabled:{opacity:.4},ctaText:{color:T.COLORS.TEXT_PRIMARY,fontSize:T.TYPOGRAPHY.SIZE_SM,fontWeight:T.TYPOGRAPHY.WEIGHT_SEMIBOLD},ctaTextDisabled:{opacity:.6},tabBar:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:T.LAYOUT.CONTENT_PADDING_H,paddingVertical:T.SPACING.SM+2,borderBottomWidth:1,borderBottomColor:T.COLORS.BORDER},tabButtons:{flexDirection:"row",gap:T.SPACING.XL},tabText:{fontSize:T.TYPOGRAPHY.SIZE_LG,fontWeight:T.TYPOGRAPHY.WEIGHT_MEDIUM},tabTextActive:{color:T.COLORS.TEXT_PRIMARY},tabTextInactive:{color:T.COLORS.TEXT_MUTED},body:{flex:1,backgroundColor:T.COLORS.BACKGROUND_ELEVATED}})},485,[346,29,63,258,486,488,489,490,491,492,487,250]);
538
538
  __d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"PromptInput",{enumerable:!0,get:function(){return c}});var e,t=r(d[0]),o=(e=t)&&e.__esModule?e:{default:e},n=r(d[1]),s=r(d[2]),l=r(d[3]),u=r(d[4]),c=(0,n.forwardRef)((e,t)=>{var c=e.onSubmit,R=e.onStop,h=e.disabled,S=void 0!==h&&h,C=e.isProcessing,p=void 0!==C&&C,I=(0,n.useState)(""),f=(0,o.default)(I,2),y=f[0],B=f[1],_=(0,n.useRef)(null);(0,n.useImperativeHandle)(t,()=>({focus:()=>_.current?.focus()}));var L=()=>{var e=y.trim();!e||S||p||(c(e),B(""))},w=y.trim().length>0&&!S&&!p;return(0,u.jsxs)(s.View,{style:O.container,children:[(0,u.jsx)(s.TextInput,{ref:_,style:O.input,placeholder:"Ask Claude...",placeholderTextColor:l.COLORS.TEXT_TERTIARY,value:y,onChangeText:B,onSubmitEditing:L,editable:!p,multiline:!0,maxLength:2e3,returnKeyType:"send",blurOnSubmit:!0}),p?(0,u.jsx)(s.TouchableOpacity,{style:[O.submitButton,O.stopButton],onPress:R,activeOpacity:.7,children:(0,u.jsx)(b,{})}):(0,u.jsx)(s.TouchableOpacity,{style:[O.submitButton,!w&&O.submitButtonDisabled],onPress:L,disabled:!w,activeOpacity:.7,children:(0,u.jsx)(T,{})})]})});function T(){return(0,u.jsxs)(s.View,{style:O.arrowIcon,children:[(0,u.jsx)(s.View,{style:O.arrowLine}),(0,u.jsx)(s.View,{style:O.arrowHead})]})}function b(){return(0,u.jsx)(s.View,{style:O.stopIcon})}var O=s.StyleSheet.create({container:{flexDirection:"row",alignItems:"flex-end",paddingHorizontal:l.LAYOUT.CONTENT_PADDING_H,paddingVertical:l.SPACING.MD,borderTopWidth:1,borderTopColor:l.COLORS.BORDER,backgroundColor:l.COLORS.BACKGROUND},input:{flex:1,backgroundColor:l.COLORS.BACKGROUND_INPUT,borderRadius:22,paddingHorizontal:18,paddingVertical:l.SPACING.MD,color:l.COLORS.TEXT_PRIMARY,fontSize:l.TYPOGRAPHY.SIZE_LG,maxHeight:100},submitButton:{width:l.SIZES.SUBMIT_BUTTON,height:l.SIZES.SUBMIT_BUTTON,borderRadius:l.SIZES.SUBMIT_BUTTON/2,backgroundColor:l.COLORS.BACKGROUND_BUTTON,alignItems:"center",justifyContent:"center",marginLeft:l.SPACING.SM+2},submitButtonDisabled:{opacity:.4},stopButton:{backgroundColor:l.COLORS.STATUS_NEUTRAL},stopIcon:{width:12,height:12,backgroundColor:l.COLORS.TEXT_PRIMARY,borderRadius:2},arrowIcon:{width:16,height:16,alignItems:"center",justifyContent:"center"},arrowLine:{width:2,height:10,backgroundColor:l.COLORS.TEXT_PRIMARY,borderRadius:1},arrowHead:{position:"absolute",top:0,width:0,height:0,borderLeftWidth:5,borderRightWidth:5,borderBottomWidth:6,borderLeftColor:"transparent",borderRightColor:"transparent",borderBottomColor:l.COLORS.TEXT_PRIMARY}})},486,[29,63,258,487,250]);
539
539
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"SPACING",{enumerable:!0,get:function(){return T}}),Object.defineProperty(e,"LAYOUT",{enumerable:!0,get:function(){return _}}),Object.defineProperty(e,"COLORS",{enumerable:!0,get:function(){return E}}),Object.defineProperty(e,"TYPOGRAPHY",{enumerable:!0,get:function(){return S}}),Object.defineProperty(e,"SIZES",{enumerable:!0,get:function(){return D}});var T={XS:4,SM:8,MD:12,LG:16,XL:20,XXL:24},_={CONTENT_PADDING_H:T.LG,SECTION_PADDING_V:T.MD,ELEMENT_GAP:T.MD,BORDER_RADIUS_LG:32,BORDER_RADIUS_MD:20,BORDER_RADIUS_SM:14},E={BACKGROUND:"#000",BACKGROUND_ELEVATED:"rgba(255,255,255,0.03)",BACKGROUND_INTERACTIVE:"rgba(255,255,255,0.08)",BACKGROUND_INPUT:"rgba(255,255,255,0.1)",BACKGROUND_BUTTON:"rgba(255,255,255,0.15)",TEXT_PRIMARY:"#fff",TEXT_SECONDARY:"rgba(255,255,255,0.6)",TEXT_TERTIARY:"rgba(255,255,255,0.5)",TEXT_MUTED:"rgba(255,255,255,0.4)",BORDER:"rgba(255,255,255,0.08)",STATUS_SUCCESS:"#30D158",STATUS_ERROR:"#FF3B30",STATUS_INFO:"#007AFF",STATUS_NEUTRAL:"#8E8E93"},S={SIZE_XS:11,SIZE_SM:13,SIZE_MD:14,SIZE_LG:15,SIZE_XL:17,WEIGHT_NORMAL:"400",WEIGHT_MEDIUM:"500",WEIGHT_SEMIBOLD:"600"},D={STATUS_DOT:8,CLOSE_BUTTON:30,SUBMIT_BUTTON:40,CTA_PADDING_V:6,CTA_PADDING_H:12}},487,[]);
540
- __d(function(g,r,_i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.ResponseArea=function(e){var t=e.messages,i=e.currentParts,u=(0,l.useRef)(null),T=(0,l.useState)(!0),x=(0,n.default)(T,2),S=x[0],h=x[1],p=(0,l.useRef)(0),C=(0,l.useRef)(0),y=(0,l.useCallback)(e=>{var t=e.nativeEvent,n=t.contentOffset,l=t.contentSize,s=t.layoutMeasurement,i=l.height-s.height-n.y;h(i<50)},[]),P=(0,l.useCallback)((e,t)=>{p.current=t},[]),b=(0,l.useCallback)(e=>{C.current=e.nativeEvent.layout.height},[]);(0,l.useEffect)(()=>{if(S){var e=setTimeout(()=>{u.current?.scrollToEnd({animated:!1})},16);return()=>clearTimeout(e)}},[t,i,S]),(0,l.useEffect)(()=>{var e=t[t.length-1];"user_prompt"===e?.type&&(u.current?.scrollToEnd({animated:!0}),h(!0))},[t]),(0,l.useEffect)(()=>{var e=s.Keyboard.addListener("keyboardWillShow",()=>{S&&setTimeout(()=>{u.current?.scrollToEnd({animated:!0})},100)});return()=>e.remove()},[S]);var j=(0,l.useCallback)(()=>{u.current?.scrollToEnd({animated:!0}),h(!0)},[]);if(!(t.length>0||i.length>0))return(0,o.jsx)(s.View,{style:I.emptyContainer,children:(0,o.jsx)(s.Text,{style:I.emptyText,children:"Send a prompt to start coding with Claude"})});return(0,o.jsxs)(s.View,{style:I.wrapper,children:[(0,o.jsxs)(s.ScrollView,{ref:u,style:I.container,contentContainerStyle:I.content,showsVerticalScrollIndicator:!0,onScroll:y,onContentSizeChange:P,onLayout:b,scrollEventThrottle:16,children:[t.map((e,t)=>(0,o.jsx)(c,{message:e},t)),i.length>0&&(0,o.jsx)(f,{parts:i,isStreaming:!0})]}),!S&&(0,o.jsx)(s.TouchableOpacity,{style:I.scrollButton,onPress:j,activeOpacity:.8,children:(0,o.jsx)(s.Text,{style:I.scrollButtonText,children:"\u2193"})})]})};var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e},l=r(d[1]),s=r(d[2]),i=r(d[3]),o=r(d[4]);function c(e){var t=e.message;switch(t.type){case"stream":case"status":default:return null;case"tool":return(0,o.jsx)(b,{tool:t});case"result":return(0,o.jsx)(j,{result:t});case"error":return(0,o.jsx)(s.View,{style:I.errorContainer,children:(0,o.jsx)(s.Text,{style:I.errorText,children:t.message})});case"user_prompt":return(0,o.jsx)(u,{message:t});case"history_result":return(0,o.jsx)(T,{message:t});case"assistant_parts":return(0,o.jsx)(p,{message:t});case"system_message":return(0,o.jsx)(x,{message:t})}}function u(e){var t=e.message;return(0,o.jsx)(s.View,{style:I.userPromptContainer,children:(0,o.jsx)(s.Text,{style:I.userPromptText,selectable:!0,children:t.content})})}function T(e){var t=e.message;return(0,o.jsx)(s.View,{style:I.resultContainer,children:(0,o.jsx)(S,{content:t.content})})}function x(e){var t=e.message;return"error"===t.messageType?(0,o.jsx)(s.View,{style:I.errorContainer,children:(0,o.jsx)(s.Text,{style:I.errorText,children:t.content})}):(0,o.jsx)(s.View,{style:I.systemContainer,children:(0,o.jsx)(s.Text,{style:I.systemText,children:t.content})})}function S(e){for(var t=e.content,l=e.isStreaming,i=t.split('\n'),c=[],u=0;u<i.length;){var T=i[u],x=T.trim(),S=x.match(/^(\d+)\.\s+(.+)$/);if(S){var f=(0,n.default)(S,3),p=f[1],C=f[2];c.push((0,o.jsxs)(s.View,{style:I.listItem,children:[(0,o.jsxs)(s.Text,{style:I.listNumber,children:[p,"."]}),(0,o.jsx)(s.Text,{style:I.listText,selectable:!0,children:h(C)})]},u)),u++}else{var y=x.match(/^[-*]\s+(.+)$/);if(y)c.push((0,o.jsxs)(s.View,{style:I.listItem,children:[(0,o.jsx)(s.Text,{style:I.listBullet,children:"\u2022"}),(0,o.jsx)(s.Text,{style:I.listText,selectable:!0,children:h(y[1])})]},u)),u++;else if(x.startsWith('```')){var P=[],b=x.slice(3).trim();for(u++;u<i.length&&!i[u].trim().startsWith('```');)P.push(i[u]),u++;c.push((0,o.jsxs)(s.View,{style:I.codeBlock,children:[b&&(0,o.jsx)(s.Text,{style:I.codeLang,children:b}),(0,o.jsx)(s.Text,{style:I.codeText,selectable:!0,children:P.join('\n')})]},`code-${u}`)),u++}else x?(c.push((0,o.jsx)(s.Text,{style:I.responseText,selectable:!0,children:h(T)},u)),u++):(c.push((0,o.jsx)(s.View,{style:I.paragraphBreak},u)),u++)}}return(0,o.jsxs)(s.View,{style:I.formattedContainer,children:[c,l&&(0,o.jsx)(s.View,{style:I.cursor})]})}function h(e){var t=e.split(/(`[^`]+`)/g);return 1===t.length?e:t.map((e,t)=>e.startsWith('`')&&e.endsWith('`')?(0,o.jsx)(s.Text,{style:I.inlineCode,children:e.slice(1,-1)},t):e)}function f(e){var t=e.parts,n=e.isStreaming;return(0,o.jsx)(s.View,{style:I.partsContainer,children:t.map((e,l)=>{if("text"===e.type){var i=l===t.length-1;return(0,o.jsx)(s.View,{style:I.messageContainer,children:(0,o.jsx)(S,{content:e.content,isStreaming:n&&i})},e.id)}return"tool"===e.type?(0,o.jsx)(P,{part:e},e.id):null})})}function p(e){var t=e.message;return(0,o.jsxs)(s.View,{style:I.resultContainer,children:[(0,o.jsx)(f,{parts:t.parts,isStreaming:!1}),!t.isComplete&&(0,o.jsx)(s.Text,{style:I.interruptedText,children:"(interrupted)"})]})}function C(e,t){var n=e=>e.split('/').pop()||e;switch(e){case"Read":return{label:"read",value:n(t?.file_path||"file")};case"Edit":return{label:"edit",value:n(t?.file_path||"file")};case"Write":return{label:"write",value:n(t?.file_path||"file")};case"Bash":var l=t?.command||"";return{label:"$",value:l.length>45?l.slice(0,45)+"\u2026":l};case"Glob":return{label:"glob",value:t?.pattern||"*"};case"Grep":return{label:"grep",value:t?.pattern||"search"};case"Task":return{label:"agent",value:t?.description||"task"};default:return{label:e.toLowerCase(),value:""}}}function y(e){var t=e.toolName,n=e.input,l=e.isFailed,i=C(t,n),c=i.label,u=i.value;return(0,o.jsxs)(s.View,{style:I.toolLine,children:[(0,o.jsx)(s.Text,{style:l?I.toolLabelFailed:I.toolLabel,children:c}),(0,o.jsx)(s.Text,{style:l?I.toolValueFailed:I.toolValue,numberOfLines:1,children:u}),l&&(0,o.jsx)(s.Text,{style:I.toolLabelFailed,children:" \u2715"})]})}function P(e){var t=e.part;return"started"===t.status?null:(0,o.jsx)(y,{toolName:t.toolName,input:t.input,isFailed:"failed"===t.status})}function b(e){var t=e.tool;return"started"===t.status?null:(0,o.jsx)(y,{toolName:t.toolName,input:t.input,isFailed:"failed"===t.status})}function j(e){var t=e.result;return!t.success&&t.error?(0,o.jsx)(s.View,{style:I.errorContainer,children:(0,o.jsx)(s.Text,{style:I.errorText,children:t.error})}):(0,o.jsxs)(s.View,{style:I.resultContainer,children:[t.result&&(0,o.jsx)(s.Text,{style:I.responseText,selectable:!0,children:t.result}),(void 0!==t.costUsd||void 0!==t.durationMs)&&(0,o.jsxs)(s.Text,{style:I.metaText,children:[void 0!==t.durationMs&&`${t.durationMs}ms`,void 0!==t.costUsd&&void 0!==t.durationMs&&" \u2022 ",void 0!==t.costUsd&&`$${t.costUsd.toFixed(4)}`]})]})}var I=s.StyleSheet.create({wrapper:{flex:1,position:"relative"},container:{flex:1,backgroundColor:i.COLORS.BACKGROUND},content:{padding:i.LAYOUT.CONTENT_PADDING_H,paddingBottom:i.SPACING.XXL},emptyContainer:{flex:1,alignItems:"center",justifyContent:"center",padding:i.SPACING.XXL},emptyText:{color:i.COLORS.TEXT_MUTED,fontSize:i.TYPOGRAPHY.SIZE_LG,textAlign:"center",lineHeight:22},messageContainer:{flexDirection:"row",flexWrap:"wrap"},responseText:{color:"rgba(255,255,255,0.95)",fontSize:i.TYPOGRAPHY.SIZE_LG,lineHeight:22},cursor:{width:2,height:18,backgroundColor:i.COLORS.TEXT_PRIMARY,marginLeft:2,opacity:.7},resultContainer:{marginTop:i.SPACING.SM},partsContainer:{},formattedContainer:{flexDirection:"column"},listItem:{flexDirection:"row",marginVertical:i.SPACING.XS/2,paddingLeft:i.SPACING.SM},listNumber:{color:i.COLORS.TEXT_MUTED,fontSize:i.TYPOGRAPHY.SIZE_LG,lineHeight:22,width:24,fontWeight:i.TYPOGRAPHY.WEIGHT_MEDIUM},listBullet:{color:i.COLORS.TEXT_MUTED,fontSize:i.TYPOGRAPHY.SIZE_LG,lineHeight:22,width:18},listText:{flex:1,color:"rgba(255,255,255,0.95)",fontSize:i.TYPOGRAPHY.SIZE_LG,lineHeight:22},codeBlock:{backgroundColor:"rgba(255,255,255,0.06)",borderRadius:i.SPACING.SM,padding:i.SPACING.MD,marginVertical:i.SPACING.SM},codeLang:{color:i.COLORS.TEXT_MUTED,fontSize:i.TYPOGRAPHY.SIZE_XS,fontFamily:"Menlo",marginBottom:i.SPACING.XS,textTransform:"uppercase"},codeText:{color:"rgba(255,255,255,0.85)",fontSize:i.TYPOGRAPHY.SIZE_SM,fontFamily:"Menlo",lineHeight:18},inlineCode:{backgroundColor:"rgba(255,255,255,0.1)",color:"rgba(255,255,255,0.9)",fontFamily:"Menlo",fontSize:i.TYPOGRAPHY.SIZE_MD,paddingHorizontal:4,borderRadius:3},paragraphBreak:{height:i.SPACING.SM},interruptedText:{color:i.COLORS.TEXT_MUTED,fontSize:i.TYPOGRAPHY.SIZE_XS+1,fontStyle:"italic",marginTop:i.SPACING.XS},metaText:{color:i.COLORS.TEXT_MUTED,fontSize:i.TYPOGRAPHY.SIZE_XS+1,marginTop:i.SPACING.SM+2},errorContainer:{backgroundColor:"rgba(255,59,48,0.15)",borderRadius:i.SPACING.MD,padding:i.SPACING.MD,marginVertical:i.SPACING.SM-2},errorText:{color:"#FF6B6B",fontSize:i.TYPOGRAPHY.SIZE_MD},systemContainer:{backgroundColor:"rgba(255,255,255,0.05)",borderRadius:i.SPACING.MD,padding:i.SPACING.MD,marginVertical:i.SPACING.SM-2},systemText:{color:i.COLORS.TEXT_TERTIARY,fontSize:i.TYPOGRAPHY.SIZE_MD,fontStyle:"italic"},toolLine:{flexDirection:"row",alignItems:"center",marginVertical:i.SPACING.XS},toolLabel:{color:i.COLORS.TEXT_MUTED,fontSize:i.TYPOGRAPHY.SIZE_XS+1,fontFamily:"Menlo",marginRight:i.SPACING.SM,minWidth:36},toolLabelFailed:{color:"rgba(255,100,100,0.6)",fontSize:i.TYPOGRAPHY.SIZE_XS+1,fontFamily:"Menlo",marginRight:i.SPACING.SM,minWidth:36},toolValue:{color:"rgba(255,255,255,0.7)",fontSize:i.TYPOGRAPHY.SIZE_SM,fontFamily:"Menlo",flexShrink:1},toolValueFailed:{color:"rgba(255,100,100,0.7)",fontSize:i.TYPOGRAPHY.SIZE_SM,fontFamily:"Menlo",flexShrink:1},userPromptContainer:{backgroundColor:"rgba(0,122,255,0.15)",borderRadius:i.LAYOUT.BORDER_RADIUS_SM+2,padding:i.SPACING.MD,marginVertical:i.SPACING.SM,alignSelf:"flex-end",maxWidth:"85%"},userPromptText:{color:i.COLORS.TEXT_PRIMARY,fontSize:i.TYPOGRAPHY.SIZE_LG,lineHeight:20},scrollButton:{position:"absolute",bottom:i.LAYOUT.CONTENT_PADDING_H,alignSelf:"center",left:"50%",marginLeft:-18,width:36,height:36,borderRadius:18,backgroundColor:"rgba(255,255,255,0.12)",borderWidth:1,borderColor:"rgba(255,255,255,0.2)",alignItems:"center",justifyContent:"center"},scrollButtonText:{color:i.COLORS.TEXT_PRIMARY,fontSize:18,fontWeight:i.TYPOGRAPHY.WEIGHT_SEMIBOLD}})},488,[29,63,258,487,250]);
540
+ __d(function(g,r,_i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.ResponseArea=function(e){var l=e.messages,s=e.currentParts,u=(0,n.useRef)(null),h=(0,n.useState)(!0),T=(0,t.default)(h,2),S=T[0],x=T[1],f=(0,n.useRef)(0),p=(0,n.useRef)(0),C=(0,n.useCallback)(e=>{var t=e.nativeEvent,n=t.contentOffset,l=t.contentSize,i=t.layoutMeasurement,s=l.height-i.height-n.y;x(s<50)},[]),y=(0,n.useCallback)((e,t)=>{f.current=t},[]),I=(0,n.useCallback)(e=>{p.current=e.nativeEvent.layout.height},[]);(0,n.useEffect)(()=>{if(S){var e=setTimeout(()=>{u.current?.scrollToEnd({animated:!1})},16);return()=>clearTimeout(e)}},[l,s,S]),(0,n.useEffect)(()=>{var e=l[l.length-1];"user_prompt"===e?.type&&(u.current?.scrollToEnd({animated:!0}),x(!0))},[l]),(0,n.useEffect)(()=>{var e=i.Keyboard.addListener("keyboardWillShow",()=>{S&&setTimeout(()=>{u.current?.scrollToEnd({animated:!0})},100)});return()=>e.remove()},[S]);var G=(0,n.useCallback)(()=>{u.current?.scrollToEnd({animated:!0}),x(!0)},[]);if(!(l.length>0||s.length>0))return(0,o.jsx)(i.View,{style:A.emptyContainer,children:(0,o.jsx)(i.Text,{style:A.emptyText,children:"Send a prompt to start coding with Claude"})});return(0,o.jsxs)(i.View,{style:A.wrapper,children:[(0,o.jsxs)(i.ScrollView,{ref:u,style:A.container,contentContainerStyle:A.content,showsVerticalScrollIndicator:!0,onScroll:C,onContentSizeChange:y,onLayout:I,scrollEventThrottle:16,children:[l.map((e,t)=>(0,o.jsx)(c,{message:e},t)),s.length>0&&(0,o.jsx)(P,{parts:s,isStreaming:!0})]}),!S&&(0,o.jsx)(i.TouchableOpacity,{style:A.scrollButton,onPress:G,activeOpacity:.8,children:(0,o.jsx)(i.Text,{style:A.scrollButtonText,children:"\u2193"})})]})};var t=e(r(d[0])),n=r(d[1]),l=e(n),i=r(d[2]),s=r(d[3]),o=r(d[4]);function c(e){var t=e.message;switch(t.type){case"stream":case"status":default:return null;case"tool":return(0,o.jsx)(O,{tool:t});case"result":return(0,o.jsx)(b,{result:t});case"error":return(0,o.jsx)(i.View,{style:A.errorContainer,children:(0,o.jsx)(i.Text,{style:A.errorText,children:t.message})});case"user_prompt":return(0,o.jsx)(u,{message:t});case"history_result":return(0,o.jsx)(h,{message:t});case"assistant_parts":return(0,o.jsx)(C,{message:t});case"system_message":return(0,o.jsx)(T,{message:t})}}function u(e){var t=e.message;return(0,o.jsx)(i.View,{style:A.userPromptContainer,children:(0,o.jsx)(i.Text,{style:A.userPromptText,selectable:!0,children:t.content})})}function h(e){var t=e.message;return(0,o.jsx)(i.View,{style:A.resultContainer,children:(0,o.jsx)(S,{content:t.content})})}function T(e){var t=e.message;return"error"===t.messageType?(0,o.jsx)(i.View,{style:A.errorContainer,children:(0,o.jsx)(i.Text,{style:A.errorText,children:t.content})}):(0,o.jsx)(i.View,{style:A.systemContainer,children:(0,o.jsx)(i.Text,{style:A.systemText,children:t.content})})}function S(e){for(var n=e.content,l=e.isStreaming,c=n.split('\n'),u=[],h=0;h<c.length;){var T=c[h],S=T.trim();if(S.startsWith('```')){var f=[],p=S.slice(3).trim();for(h++;h<c.length&&!c[h].trim().startsWith('```');)f.push(c[h]),h++;u.push((0,o.jsxs)(i.View,{style:A.codeBlock,children:[p&&(0,o.jsx)(i.Text,{style:A.codeLang,children:p}),(0,o.jsx)(i.Text,{style:A.codeText,selectable:!0,children:f.join('\n')})]},`code-${h}`)),h++}else{var P=S.match(/^(#{1,6})\s+(.+)$/);if(P){var C=P[1].length,y=C<=2?A.heading1:C<=4?A.heading2:A.heading3;u.push((0,o.jsx)(i.Text,{style:y,selectable:!0,children:x(P[2])},h)),h++}else if(S.startsWith('> ')||'>'===S){for(var I=[];h<c.length&&(c[h].trim().startsWith('> ')||'>'===c[h].trim());){var G=c[h].trim().startsWith('> ')?c[h].trim().slice(2):'';I.push(G),h++}u.push((0,o.jsx)(i.View,{style:A.blockquote,children:(0,o.jsx)(i.Text,{style:A.blockquoteText,selectable:!0,children:x(I.join('\n'))})},`quote-${h}`))}else{var O=S.match(/^[-*]\s+\[([ xX])\]\s+(.+)$/);if(O){var b=' '!==O[1];u.push((0,o.jsxs)(i.View,{style:A.listItem,children:[(0,o.jsx)(i.Text,{style:A.listBullet,children:b?'\u2611':'\u2610'}),(0,o.jsx)(i.Text,{style:A.listText,selectable:!0,children:x(O[2])})]},h)),h++}else{var R=T.match(/^(\s*)(\d+)\.\s+(.+)$/);if(R){var j=Math.floor(R[1].length/2),E=(0,t.default)(R,4),M=E[2],L=E[3];u.push((0,o.jsxs)(i.View,{style:[A.listItem,j>0&&{paddingLeft:s.SPACING.SM+j*s.SPACING.LG}],children:[(0,o.jsxs)(i.Text,{style:A.listNumber,children:[M,"."]}),(0,o.jsx)(i.Text,{style:A.listText,selectable:!0,children:x(L)})]},h)),h++}else{var Y=T.match(/^(\s*)[-*]\s+(.+)$/);if(Y){var _=Math.floor(Y[1].length/2),v=0===_?'\u2022':1===_?'\u25e6':'\u25aa';u.push((0,o.jsxs)(i.View,{style:[A.listItem,_>0&&{paddingLeft:s.SPACING.SM+_*s.SPACING.LG}],children:[(0,o.jsx)(i.Text,{style:A.listBullet,children:v}),(0,o.jsx)(i.Text,{style:A.listText,selectable:!0,children:x(Y[2])})]},h)),h++}else/^[-*_]{3,}$/.test(S)?(u.push((0,o.jsx)(i.View,{style:A.horizontalRule},h)),h++):S?(u.push((0,o.jsx)(i.Text,{style:A.responseText,selectable:!0,children:x(T)},h)),h++):(u.push((0,o.jsx)(i.View,{style:A.paragraphBreak},h)),h++)}}}}}return(0,o.jsxs)(i.View,{style:A.formattedContainer,children:[u,l&&(0,o.jsx)(i.View,{style:A.cursor})]})}function x(e){var t=e.split(/(`[^`]+`)/g);return 1===t.length?f(e):t.map((e,t)=>e.startsWith('`')&&e.endsWith('`')?(0,o.jsx)(i.Text,{style:A.inlineCode,children:e.slice(1,-1)},t):(0,o.jsx)(l.default.Fragment,{children:f(e)},t))}function f(e){var t=e.split(/(\[[^\]]+\]\([^)]+\))/g);return 1===t.length?p(e):t.map((e,t)=>{var n=e.match(/^\[([^\]]+)\]\(([^)]+)\)$/);return n?(0,o.jsx)(i.Text,{style:A.linkText,onPress:()=>i.Linking.openURL(n[2]),children:n[1]},t):(0,o.jsx)(l.default.Fragment,{children:p(e)},t)})}function p(e){var t=e.split(/(\*\*[^*]+\*\*|~~[^~]+~~|\*[^*]+\*)/g);return 1===t.length?e:t.map((e,t)=>e.startsWith('**')&&e.endsWith('**')?(0,o.jsx)(i.Text,{style:A.boldText,children:e.slice(2,-2)},t):e.startsWith('~~')&&e.endsWith('~~')?(0,o.jsx)(i.Text,{style:A.strikethroughText,children:e.slice(2,-2)},t):e.startsWith('*')&&e.endsWith('*')?(0,o.jsx)(i.Text,{style:A.italicText,children:e.slice(1,-1)},t):e)}function P(e){var t=e.parts,n=e.isStreaming;return(0,o.jsx)(i.View,{style:A.partsContainer,children:t.map((e,l)=>{if("text"===e.type){var s=l===t.length-1;return(0,o.jsx)(i.View,{style:A.messageContainer,children:(0,o.jsx)(S,{content:e.content,isStreaming:n&&s})},e.id)}return"tool"===e.type?(0,o.jsx)(G,{part:e},e.id):null})})}function C(e){var t=e.message;return(0,o.jsxs)(i.View,{style:A.resultContainer,children:[(0,o.jsx)(P,{parts:t.parts,isStreaming:!1}),!t.isComplete&&(0,o.jsx)(i.Text,{style:A.interruptedText,children:"(interrupted)"})]})}function y(e,t){var n=e=>e.split('/').pop()||e;switch(e){case"Read":return{label:"read",value:n(t?.file_path||"file")};case"Edit":return{label:"edit",value:n(t?.file_path||"file")};case"Write":return{label:"write",value:n(t?.file_path||"file")};case"Bash":var l=t?.command||"";return{label:"$",value:l.length>45?l.slice(0,45)+"\u2026":l};case"Glob":return{label:"glob",value:t?.pattern||"*"};case"Grep":return{label:"grep",value:t?.pattern||"search"};case"Task":return{label:"agent",value:t?.description||"task"};default:return{label:e.toLowerCase(),value:""}}}function I(e){var t=e.toolName,n=e.input,l=e.isFailed,s=y(t,n),c=s.label,u=s.value;return(0,o.jsxs)(i.View,{style:A.toolLine,children:[(0,o.jsx)(i.Text,{style:l?A.toolLabelFailed:A.toolLabel,children:c}),(0,o.jsx)(i.Text,{style:l?A.toolValueFailed:A.toolValue,numberOfLines:1,children:u}),l&&(0,o.jsx)(i.Text,{style:A.toolLabelFailed,children:" \u2715"})]})}function G(e){var t=e.part;return"started"===t.status?null:(0,o.jsx)(I,{toolName:t.toolName,input:t.input,isFailed:"failed"===t.status})}function O(e){var t=e.tool;return"started"===t.status?null:(0,o.jsx)(I,{toolName:t.toolName,input:t.input,isFailed:"failed"===t.status})}function b(e){var t=e.result;return!t.success&&t.error?(0,o.jsx)(i.View,{style:A.errorContainer,children:(0,o.jsx)(i.Text,{style:A.errorText,children:t.error})}):(0,o.jsxs)(i.View,{style:A.resultContainer,children:[t.result&&(0,o.jsx)(i.Text,{style:A.responseText,selectable:!0,children:t.result}),(void 0!==t.costUsd||void 0!==t.durationMs)&&(0,o.jsxs)(i.Text,{style:A.metaText,children:[void 0!==t.durationMs&&`${t.durationMs}ms`,void 0!==t.costUsd&&void 0!==t.durationMs&&" \u2022 ",void 0!==t.costUsd&&`$${t.costUsd.toFixed(4)}`]})]})}var A=i.StyleSheet.create({wrapper:{flex:1,position:"relative"},container:{flex:1,backgroundColor:s.COLORS.BACKGROUND},content:{padding:s.LAYOUT.CONTENT_PADDING_H,paddingBottom:s.SPACING.XXL},emptyContainer:{flex:1,alignItems:"center",justifyContent:"center",padding:s.SPACING.XXL},emptyText:{color:s.COLORS.TEXT_MUTED,fontSize:s.TYPOGRAPHY.SIZE_LG,textAlign:"center",lineHeight:22},messageContainer:{flexDirection:"row",flexWrap:"wrap"},responseText:{color:"rgba(255,255,255,0.95)",fontSize:s.TYPOGRAPHY.SIZE_LG,lineHeight:22},cursor:{width:2,height:18,backgroundColor:s.COLORS.TEXT_PRIMARY,marginLeft:2,opacity:.7},resultContainer:{marginTop:s.SPACING.SM},partsContainer:{},formattedContainer:{flexDirection:"column"},listItem:{flexDirection:"row",marginVertical:s.SPACING.XS/2,paddingLeft:s.SPACING.SM},listNumber:{color:s.COLORS.TEXT_MUTED,fontSize:s.TYPOGRAPHY.SIZE_LG,lineHeight:22,width:24,fontWeight:s.TYPOGRAPHY.WEIGHT_MEDIUM},listBullet:{color:s.COLORS.TEXT_MUTED,fontSize:s.TYPOGRAPHY.SIZE_LG,lineHeight:22,width:18},listText:{flex:1,color:"rgba(255,255,255,0.95)",fontSize:s.TYPOGRAPHY.SIZE_LG,lineHeight:22},codeBlock:{backgroundColor:"rgba(255,255,255,0.06)",borderRadius:s.SPACING.SM,padding:s.SPACING.MD,marginVertical:s.SPACING.SM},codeLang:{color:s.COLORS.TEXT_MUTED,fontSize:s.TYPOGRAPHY.SIZE_XS,fontFamily:"Menlo",marginBottom:s.SPACING.XS,textTransform:"uppercase"},codeText:{color:"rgba(255,255,255,0.85)",fontSize:s.TYPOGRAPHY.SIZE_SM,fontFamily:"Menlo",lineHeight:18},inlineCode:{backgroundColor:"rgba(255,255,255,0.1)",color:"rgba(255,255,255,0.9)",fontFamily:"Menlo",fontSize:s.TYPOGRAPHY.SIZE_MD,paddingHorizontal:4,borderRadius:3},heading1:{color:s.COLORS.TEXT_PRIMARY,fontSize:s.TYPOGRAPHY.SIZE_XL,fontWeight:s.TYPOGRAPHY.WEIGHT_SEMIBOLD,lineHeight:24,marginTop:s.SPACING.MD,marginBottom:s.SPACING.XS},heading2:{color:"rgba(255,255,255,0.9)",fontSize:s.TYPOGRAPHY.SIZE_LG,fontWeight:s.TYPOGRAPHY.WEIGHT_SEMIBOLD,lineHeight:22,marginTop:s.SPACING.SM,marginBottom:s.SPACING.XS},heading3:{color:"rgba(255,255,255,0.85)",fontSize:s.TYPOGRAPHY.SIZE_LG,fontWeight:s.TYPOGRAPHY.WEIGHT_MEDIUM,lineHeight:22,marginTop:s.SPACING.SM,marginBottom:s.SPACING.XS},boldText:{fontWeight:s.TYPOGRAPHY.WEIGHT_SEMIBOLD,color:s.COLORS.TEXT_PRIMARY},italicText:{fontStyle:"italic",color:"rgba(255,255,255,0.85)"},strikethroughText:{textDecorationLine:"line-through",color:s.COLORS.TEXT_MUTED},linkText:{color:s.COLORS.STATUS_INFO,textDecorationLine:"underline"},blockquote:{borderLeftWidth:3,borderLeftColor:"rgba(255,255,255,0.15)",paddingLeft:s.SPACING.MD,marginVertical:s.SPACING.XS},blockquoteText:{color:s.COLORS.TEXT_SECONDARY,fontSize:s.TYPOGRAPHY.SIZE_LG,lineHeight:22,fontStyle:"italic"},horizontalRule:{height:1,backgroundColor:s.COLORS.BORDER,marginVertical:s.SPACING.MD},paragraphBreak:{height:s.SPACING.SM},interruptedText:{color:s.COLORS.TEXT_MUTED,fontSize:s.TYPOGRAPHY.SIZE_XS+1,fontStyle:"italic",marginTop:s.SPACING.XS},metaText:{color:s.COLORS.TEXT_MUTED,fontSize:s.TYPOGRAPHY.SIZE_XS+1,marginTop:s.SPACING.SM+2},errorContainer:{backgroundColor:"rgba(255,59,48,0.15)",borderRadius:s.SPACING.MD,padding:s.SPACING.MD,marginVertical:s.SPACING.SM-2},errorText:{color:"#FF6B6B",fontSize:s.TYPOGRAPHY.SIZE_MD},systemContainer:{backgroundColor:"rgba(255,255,255,0.05)",borderRadius:s.SPACING.MD,padding:s.SPACING.MD,marginVertical:s.SPACING.SM-2},systemText:{color:s.COLORS.TEXT_TERTIARY,fontSize:s.TYPOGRAPHY.SIZE_MD,fontStyle:"italic"},toolLine:{flexDirection:"row",alignItems:"center",marginVertical:s.SPACING.XS},toolLabel:{color:s.COLORS.TEXT_MUTED,fontSize:s.TYPOGRAPHY.SIZE_XS+1,fontFamily:"Menlo",marginRight:s.SPACING.SM,minWidth:36},toolLabelFailed:{color:"rgba(255,100,100,0.6)",fontSize:s.TYPOGRAPHY.SIZE_XS+1,fontFamily:"Menlo",marginRight:s.SPACING.SM,minWidth:36},toolValue:{color:"rgba(255,255,255,0.7)",fontSize:s.TYPOGRAPHY.SIZE_SM,fontFamily:"Menlo",flexShrink:1},toolValueFailed:{color:"rgba(255,100,100,0.7)",fontSize:s.TYPOGRAPHY.SIZE_SM,fontFamily:"Menlo",flexShrink:1},userPromptContainer:{backgroundColor:"rgba(0,122,255,0.15)",borderRadius:s.LAYOUT.BORDER_RADIUS_SM+2,padding:s.SPACING.MD,marginVertical:s.SPACING.SM,alignSelf:"flex-end",maxWidth:"85%"},userPromptText:{color:s.COLORS.TEXT_PRIMARY,fontSize:s.TYPOGRAPHY.SIZE_LG,lineHeight:20},scrollButton:{position:"absolute",bottom:s.LAYOUT.CONTENT_PADDING_H,alignSelf:"center",left:"50%",marginLeft:-18,width:36,height:36,borderRadius:18,backgroundColor:"rgba(255,255,255,0.12)",borderWidth:1,borderColor:"rgba(255,255,255,0.2)",alignItems:"center",justifyContent:"center"},scrollButtonText:{color:s.COLORS.TEXT_PRIMARY,fontSize:18,fontWeight:s.TYPOGRAPHY.WEIGHT_SEMIBOLD}})},488,[29,63,258,487,250]);
541
541
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.GitChangesTab=function(c){var f=c.changes,x=c.onDiscard;if(!(f.length>0))return(0,n.jsxs)(t.View,{style:s.emptyContainer,children:[(0,n.jsx)(t.Text,{style:s.emptyTitle,children:"No uncommitted changes"}),(0,n.jsx)(t.Text,{style:s.emptySubtext,children:"Your working directory is clean"})]});return(0,n.jsxs)(t.View,{style:s.container,children:[(0,n.jsx)(t.ScrollView,{style:s.fileList,contentContainerStyle:s.fileListContent,children:f.map((c,f)=>(0,n.jsxs)(t.View,{style:s.fileRow,children:[(0,n.jsx)(t.Text,{style:[s.statusIcon,{color:l[c.status]}],children:o[c.status]}),(0,n.jsx)(t.Text,{style:s.fileName,numberOfLines:1,children:c.file})]},`${c.file}-${f}`))}),(0,n.jsxs)(t.View,{style:s.footer,children:[(0,n.jsx)(t.TouchableOpacity,{style:s.discardButton,onPress:x,children:(0,n.jsx)(t.Text,{style:s.discardText,children:"Discard All Changes"})}),(0,n.jsx)(t.Text,{style:s.warningText,children:"Note: Discarding won't reset memory"})]})]})},r(d[0]);var t=r(d[1]),n=r(d[2]),o={added:"A",modified:"M",deleted:"D",renamed:"R",untracked:"?"},l={added:"#30D158",modified:"#FFD60A",deleted:"#FF453A",renamed:"#BF5AF2",untracked:"#8E8E93"};var s=t.StyleSheet.create({container:{flex:1,backgroundColor:"#000"},emptyContainer:{flex:1,backgroundColor:"#000",alignItems:"center",justifyContent:"center",padding:24},emptyTitle:{color:"rgba(255,255,255,0.6)",fontSize:16,fontWeight:"500",marginBottom:8},emptySubtext:{color:"rgba(255,255,255,0.4)",fontSize:14},fileList:{flex:1},fileListContent:{padding:16},fileRow:{flexDirection:"row",alignItems:"center",paddingVertical:8,borderBottomWidth:1,borderBottomColor:"rgba(255,255,255,0.06)"},statusIcon:{width:20,fontSize:13,fontWeight:"600",fontFamily:"Menlo"},fileName:{flex:1,color:"rgba(255,255,255,0.8)",fontSize:14,fontFamily:"Menlo"},footer:{padding:16,borderTopWidth:1,borderTopColor:"rgba(255,255,255,0.08)",alignItems:"center"},discardButton:{backgroundColor:"rgba(255,59,48,0.15)",borderRadius:12,paddingVertical:12,paddingHorizontal:24,marginBottom:8},discardText:{color:"#FF3B30",fontSize:15,fontWeight:"500"},warningText:{color:"rgba(255,255,255,0.3)",fontSize:12}})},489,[63,258,250]);
542
542
  __d(function(g,r,i,a,m,_e,d){"use strict";function t(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"WebSocketClient",{enumerable:!0,get:function(){return n}}),_e.getWebSocketClient=function(){return o},_e.createWebSocketClient=function(t){o&&o.disconnect();return o=new n(t)};var e=t(r(d[0])),s=t(r(d[1])),n=(function(){return(0,s.default)(function t(s){(0,e.default)(this,t),this.ws=null,this.reconnectAttempts=0,this.reconnectTimeout=null,this._status="disconnected",this.shouldReconnect=!0,this.options={reconnectInterval:3e3,maxReconnectAttempts:10,onConnect:()=>{},onDisconnect:()=>{},onMessage:()=>{},onError:()=>{},onStatusChange:()=>{},...s}},[{key:"status",get:function(){return this._status}},{key:"setStatus",value:function(t){this._status=t,this.options.onStatusChange(t)}},{key:"connect",value:function(){if(this.ws?.readyState!==WebSocket.OPEN){this.shouldReconnect=!0,this.setStatus("connecting");try{this.ws=new WebSocket(this.options.url),this.ws.onopen=()=>{this.reconnectAttempts=0,this.setStatus("connected"),this.options.onConnect()},this.ws.onclose=()=>{this.setStatus("disconnected"),this.options.onDisconnect(),this.attemptReconnect()},this.ws.onerror=()=>{var t=new Error("WebSocket error");this.options.onError(t)},this.ws.onmessage=t=>{try{var e=JSON.parse(t.data);this.handleMessage(e)}catch(t){console.error("[expo-air] Failed to parse message:",t)}}}catch(t){this.options.onError(t),this.attemptReconnect()}}}},{key:"handleMessage",value:function(t){"status"===t.type?"processing"===t.status?this.setStatus("processing"):"idle"!==t.status&&"connected"!==t.status||this.setStatus("connected"):"result"===t.type||"error"===t.type?this.setStatus("connected"):"stopped"!==t.type&&"session_cleared"!==t.type||this.setStatus("connected"),this.options.onMessage(t)}},{key:"attemptReconnect",value:function(){this.shouldReconnect&&(this.reconnectAttempts>=this.options.maxReconnectAttempts?console.log("[expo-air] Max reconnect attempts reached"):(this.reconnectTimeout&&clearTimeout(this.reconnectTimeout),this.reconnectAttempts++,console.log(`[expo-air] Reconnecting... (attempt ${this.reconnectAttempts}/${this.options.maxReconnectAttempts})`),this.reconnectTimeout=setTimeout(()=>{this.connect()},this.options.reconnectInterval)))}},{key:"disconnect",value:function(){this.shouldReconnect=!1,this.reconnectTimeout&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.ws&&(this.ws.close(),this.ws=null),this.setStatus("disconnected")}},{key:"sendPrompt",value:function(t){if(this.ws&&this.ws.readyState===WebSocket.OPEN){var e={type:"prompt",content:t,id:Math.random().toString(36).substring(2,15)};this.ws.send(JSON.stringify(e)),this.setStatus("processing")}else this.options.onError(new Error("Not connected"))}},{key:"requestNewSession",value:function(){this.ws&&this.ws.readyState===WebSocket.OPEN?this.ws.send(JSON.stringify({type:"new_session"})):this.options.onError(new Error("Not connected"))}},{key:"requestStop",value:function(){this.ws&&this.ws.readyState===WebSocket.OPEN?this.ws.send(JSON.stringify({type:"stop"})):this.options.onError(new Error("Not connected"))}},{key:"requestDiscardChanges",value:function(){this.ws&&this.ws.readyState===WebSocket.OPEN?this.ws.send(JSON.stringify({type:"discard_changes"})):this.options.onError(new Error("Not connected"))}},{key:"sendPushToken",value:function(t){this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.send(JSON.stringify({type:"register_push_token",token:t}))}},{key:"requestBranches",value:function(){this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.send(JSON.stringify({type:"list_branches"}))}},{key:"requestSwitchBranch",value:function(t){this.ws&&this.ws.readyState===WebSocket.OPEN?this.ws.send(JSON.stringify({type:"switch_branch",branchName:t})):this.options.onError(new Error("Not connected"))}},{key:"requestCreateBranch",value:function(t){this.ws&&this.ws.readyState===WebSocket.OPEN?this.ws.send(JSON.stringify({type:"create_branch",branchName:t})):this.options.onError(new Error("Not connected"))}},{key:"isConnected",value:function(){return this.ws?.readyState===WebSocket.OPEN}}])})();var o=null},490,[8,9]);
543
543
  __d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.requestPushToken=function(){return u.apply(this,arguments)},_e.setupTapHandler=function(e){return console.log("[expo-air] setupTapHandler: tap handling managed by main app"),()=>{}};var e,n=r(d[0]),o=(e=n)&&e.__esModule?e:{default:e},t=r(d[1]).NativeModules.WidgetBridge;function u(){return(u=(0,o.default)(function*(){try{if(!t?.requestPushToken)return console.log("[expo-air] WidgetBridge.requestPushToken not available"),null;console.log("[expo-air] Requesting push token via native bridge");var e=yield t.requestPushToken();return e?(console.log("[expo-air] Got push token:",e),e):(console.log("[expo-air] Push notification permission denied or token unavailable"),null)}catch(e){return console.error("[expo-air] Failed to get push token:",e),null}})).apply(this,arguments)}},491,[346,258]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@10play/expo-air",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Vibe Coding for React-Native",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -1,5 +1,5 @@
1
1
  import React, { useState, useEffect, useCallback, useRef } from "react";
2
- import { View, Text, StyleSheet, NativeModules, TouchableOpacity, Animated, Easing, Linking } from "react-native";
2
+ import { View, Text, StyleSheet, NativeModules, TouchableOpacity, Animated, Easing, Linking, type TextProps, type ViewProps } from "react-native";
3
3
  import { PromptInput, type PromptInputHandle } from "./components/PromptInput";
4
4
  import { ResponseArea } from "./components/ResponseArea";
5
5
  import { GitChangesTab } from "./components/GitChangesTab";
@@ -18,6 +18,10 @@ import { requestPushToken, setupTapHandler } from "./services/notifications";
18
18
  import { BranchSwitcher } from "./components/BranchSwitcher";
19
19
  import { SPACING, LAYOUT, COLORS, TYPOGRAPHY, SIZES } from "./constants/design";
20
20
 
21
+ // Typed animated components for React 19 compatibility
22
+ const AnimatedText = Animated.Text as React.ComponentClass<Animated.AnimatedProps<TextProps>>;
23
+ const AnimatedView = Animated.View as React.ComponentClass<Animated.AnimatedProps<ViewProps>>;
24
+
21
25
  // WidgetBridge is a simple native module available in the widget runtime
22
26
  // ExpoAir is the main app's module (fallback)
23
27
  const { WidgetBridge, ExpoAir } = NativeModules;
@@ -575,12 +579,7 @@ function TabBar({
575
579
  );
576
580
  }
577
581
 
578
- interface BreathingButtonProps {
579
- children: React.ReactNode;
580
- onPress: () => void;
581
- }
582
-
583
- function BreathingButton({ children, onPress }: BreathingButtonProps) {
582
+ function BreathingButton({ children, onPress }: React.PropsWithChildren<{ onPress: () => void }>) {
584
583
  const opacityAnim = useRef(new Animated.Value(0.6)).current;
585
584
 
586
585
  useEffect(() => {
@@ -606,9 +605,9 @@ function BreathingButton({ children, onPress }: BreathingButtonProps) {
606
605
 
607
606
  return (
608
607
  <TouchableOpacity onPress={onPress} style={styles.ctaButton} activeOpacity={0.7}>
609
- <Animated.Text style={[styles.ctaText, { opacity: opacityAnim }]}>
608
+ <AnimatedText style={[styles.ctaText, { opacity: opacityAnim }]}>
610
609
  {children}
611
- </Animated.Text>
610
+ </AnimatedText>
612
611
  </TouchableOpacity>
613
612
  );
614
613
  }
@@ -678,7 +677,7 @@ function PulsingIndicator({ status }: { status: ConnectionStatus }) {
678
677
  ]}
679
678
  />
680
679
  {isAnimating && (
681
- <Animated.View
680
+ <AnimatedView
682
681
  style={[
683
682
  styles.indicatorRing,
684
683
  {
@@ -1,5 +1,5 @@
1
1
  import React, { useRef, useEffect, useState, useCallback } from "react";
2
- import { View, Text, ScrollView, StyleSheet, TouchableOpacity, NativeScrollEvent, NativeSyntheticEvent, Keyboard, Platform } from "react-native";
2
+ import { View, Text, ScrollView, StyleSheet, TouchableOpacity, NativeScrollEvent, Keyboard, Platform, Linking } from "react-native";
3
3
  import type { ServerMessage, ToolMessage, ResultMessage, UserPromptMessage, HistoryResultMessage, SystemDisplayMessage, AssistantPart, AssistantPartsMessage } from "../services/websocket";
4
4
  import { SPACING, LAYOUT, COLORS, TYPOGRAPHY } from "../constants/design";
5
5
 
@@ -15,7 +15,7 @@ export function ResponseArea({ messages, currentParts }: ResponseAreaProps) {
15
15
  const scrollViewHeightRef = useRef(0);
16
16
 
17
17
  // Track if user is at bottom (within 50px threshold)
18
- const handleScroll = useCallback((event: NativeSyntheticEvent<NativeScrollEvent>) => {
18
+ const handleScroll = useCallback((event: { nativeEvent: NativeScrollEvent }) => {
19
19
  const { contentOffset, contentSize, layoutMeasurement } = event.nativeEvent;
20
20
  const distanceFromBottom = contentSize.height - layoutMeasurement.height - contentOffset.y;
21
21
  setIsAtBottom(distanceFromBottom < 50);
@@ -110,7 +110,7 @@ export function ResponseArea({ messages, currentParts }: ResponseAreaProps) {
110
110
  );
111
111
  }
112
112
 
113
- function MessageItem({ message }: { message: ServerMessage }) {
113
+ function MessageItem({ message }: { key?: React.Key; message: ServerMessage }) {
114
114
  switch (message.type) {
115
115
  case "stream":
116
116
  return null; // Handled by currentParts
@@ -192,49 +192,101 @@ function FormattedText({ content, isStreaming }: { content: string; isStreaming?
192
192
  const line = lines[i];
193
193
  const trimmed = line.trim();
194
194
 
195
- // Numbered list item (1. 2. 3.)
196
- const numberedMatch = trimmed.match(/^(\d+)\.\s+(.+)$/);
197
- if (numberedMatch) {
198
- const [, num, text] = numberedMatch;
195
+ // Code block start (check first to avoid matching content inside code blocks)
196
+ if (trimmed.startsWith('```')) {
197
+ const codeLines: string[] = [];
198
+ const lang = trimmed.slice(3).trim();
199
+ i++;
200
+ while (i < lines.length && !lines[i].trim().startsWith('```')) {
201
+ codeLines.push(lines[i]);
202
+ i++;
203
+ }
199
204
  elements.push(
200
- <View key={i} style={styles.listItem}>
201
- <Text style={styles.listNumber}>{num}.</Text>
202
- <Text style={styles.listText} selectable>{formatInlineText(text)}</Text>
205
+ <View key={`code-${i}`} style={styles.codeBlock}>
206
+ {lang && <Text style={styles.codeLang}>{lang}</Text>}
207
+ <Text style={styles.codeText} selectable>{codeLines.join('\n')}</Text>
203
208
  </View>
204
209
  );
210
+ i++; // skip closing ```
211
+ continue;
212
+ }
213
+
214
+ // Heading (# ## ### etc.)
215
+ const headingMatch = trimmed.match(/^(#{1,6})\s+(.+)$/);
216
+ if (headingMatch) {
217
+ const level = headingMatch[1].length;
218
+ const headingStyle = level <= 2 ? styles.heading1 : level <= 4 ? styles.heading2 : styles.heading3;
219
+ elements.push(
220
+ <Text key={i} style={headingStyle} selectable>{formatInlineText(headingMatch[2])}</Text>
221
+ );
205
222
  i++;
206
223
  continue;
207
224
  }
208
225
 
209
- // Bullet list item (- or *)
210
- const bulletMatch = trimmed.match(/^[-*]\s+(.+)$/);
211
- if (bulletMatch) {
226
+ // Blockquote (> text) - collect consecutive > lines
227
+ if (trimmed.startsWith('> ') || trimmed === '>') {
228
+ const quoteLines: string[] = [];
229
+ while (i < lines.length && (lines[i].trim().startsWith('> ') || lines[i].trim() === '>')) {
230
+ const qContent = lines[i].trim().startsWith('> ') ? lines[i].trim().slice(2) : '';
231
+ quoteLines.push(qContent);
232
+ i++;
233
+ }
234
+ elements.push(
235
+ <View key={`quote-${i}`} style={styles.blockquote}>
236
+ <Text style={styles.blockquoteText} selectable>{formatInlineText(quoteLines.join('\n'))}</Text>
237
+ </View>
238
+ );
239
+ continue;
240
+ }
241
+
242
+ // Task list item (- [ ] or - [x])
243
+ const taskMatch = trimmed.match(/^[-*]\s+\[([ xX])\]\s+(.+)$/);
244
+ if (taskMatch) {
245
+ const checked = taskMatch[1] !== ' ';
212
246
  elements.push(
213
247
  <View key={i} style={styles.listItem}>
214
- <Text style={styles.listBullet}>•</Text>
215
- <Text style={styles.listText} selectable>{formatInlineText(bulletMatch[1])}</Text>
248
+ <Text style={styles.listBullet}>{checked ? '☑' : '☐'}</Text>
249
+ <Text style={styles.listText} selectable>{formatInlineText(taskMatch[2])}</Text>
216
250
  </View>
217
251
  );
218
252
  i++;
219
253
  continue;
220
254
  }
221
255
 
222
- // Code block start
223
- if (trimmed.startsWith('```')) {
224
- const codeLines: string[] = [];
225
- const lang = trimmed.slice(3).trim();
256
+ // Numbered list item (1. 2. 3.) - with nesting via indentation
257
+ const numberedMatch = line.match(/^(\s*)(\d+)\.\s+(.+)$/);
258
+ if (numberedMatch) {
259
+ const indent = Math.floor(numberedMatch[1].length / 2);
260
+ const [, , num, text] = numberedMatch;
261
+ elements.push(
262
+ <View key={i} style={[styles.listItem, indent > 0 && { paddingLeft: SPACING.SM + indent * SPACING.LG }]}>
263
+ <Text style={styles.listNumber}>{num}.</Text>
264
+ <Text style={styles.listText} selectable>{formatInlineText(text)}</Text>
265
+ </View>
266
+ );
226
267
  i++;
227
- while (i < lines.length && !lines[i].trim().startsWith('```')) {
228
- codeLines.push(lines[i]);
229
- i++;
230
- }
268
+ continue;
269
+ }
270
+
271
+ // Bullet list item (- or *) - with nesting via indentation
272
+ const bulletMatch = line.match(/^(\s*)[-*]\s+(.+)$/);
273
+ if (bulletMatch) {
274
+ const indent = Math.floor(bulletMatch[1].length / 2);
275
+ const bulletChar = indent === 0 ? '•' : indent === 1 ? '◦' : '▪';
231
276
  elements.push(
232
- <View key={`code-${i}`} style={styles.codeBlock}>
233
- {lang && <Text style={styles.codeLang}>{lang}</Text>}
234
- <Text style={styles.codeText} selectable>{codeLines.join('\n')}</Text>
277
+ <View key={i} style={[styles.listItem, indent > 0 && { paddingLeft: SPACING.SM + indent * SPACING.LG }]}>
278
+ <Text style={styles.listBullet}>{bulletChar}</Text>
279
+ <Text style={styles.listText} selectable>{formatInlineText(bulletMatch[2])}</Text>
235
280
  </View>
236
281
  );
237
- i++; // skip closing ```
282
+ i++;
283
+ continue;
284
+ }
285
+
286
+ // Horizontal rule (---, ***, ___)
287
+ if (/^[-*_]{3,}$/.test(trimmed)) {
288
+ elements.push(<View key={i} style={styles.horizontalRule} />);
289
+ i++;
238
290
  continue;
239
291
  }
240
292
 
@@ -260,16 +312,60 @@ function FormattedText({ content, isStreaming }: { content: string; isStreaming?
260
312
  );
261
313
  }
262
314
 
263
- // Format inline elements (bold, code, etc.)
315
+ // Format inline elements: code spans first, then links, then emphasis
264
316
  function formatInlineText(text: string): React.ReactNode {
265
- // Simple inline code detection (`code`)
266
- const parts = text.split(/(`[^`]+`)/g);
267
- if (parts.length === 1) return text;
317
+ // Split on inline code first to avoid processing markdown inside code spans
318
+ const codeParts = text.split(/(`[^`]+`)/g);
319
+ if (codeParts.length === 1) {
320
+ return formatLinks(text);
321
+ }
268
322
 
269
- return parts.map((part, i) => {
323
+ return codeParts.map((part, i) => {
270
324
  if (part.startsWith('`') && part.endsWith('`')) {
271
325
  return <Text key={i} style={styles.inlineCode}>{part.slice(1, -1)}</Text>;
272
326
  }
327
+ return <React.Fragment key={i}>{formatLinks(part)}</React.Fragment>;
328
+ });
329
+ }
330
+
331
+ // Format markdown links [text](url)
332
+ function formatLinks(text: string): React.ReactNode {
333
+ const parts = text.split(/(\[[^\]]+\]\([^)]+\))/g);
334
+ if (parts.length === 1) return formatEmphasis(text);
335
+
336
+ return parts.map((part, i) => {
337
+ const linkMatch = part.match(/^\[([^\]]+)\]\(([^)]+)\)$/);
338
+ if (linkMatch) {
339
+ return (
340
+ <Text
341
+ key={i}
342
+ style={styles.linkText}
343
+ onPress={() => Linking.openURL(linkMatch[2])}
344
+ >
345
+ {linkMatch[1]}
346
+ </Text>
347
+ );
348
+ }
349
+ return <React.Fragment key={i}>{formatEmphasis(part)}</React.Fragment>;
350
+ });
351
+ }
352
+
353
+ // Format bold, italic, and strikethrough emphasis
354
+ function formatEmphasis(text: string): React.ReactNode {
355
+ // Match **bold**, ~~strikethrough~~, *italic*, and plain text segments
356
+ const parts = text.split(/(\*\*[^*]+\*\*|~~[^~]+~~|\*[^*]+\*)/g);
357
+ if (parts.length === 1) return text;
358
+
359
+ return parts.map((part, i) => {
360
+ if (part.startsWith('**') && part.endsWith('**')) {
361
+ return <Text key={i} style={styles.boldText}>{part.slice(2, -2)}</Text>;
362
+ }
363
+ if (part.startsWith('~~') && part.endsWith('~~')) {
364
+ return <Text key={i} style={styles.strikethroughText}>{part.slice(2, -2)}</Text>;
365
+ }
366
+ if (part.startsWith('*') && part.endsWith('*')) {
367
+ return <Text key={i} style={styles.italicText}>{part.slice(1, -1)}</Text>;
368
+ }
273
369
  return part;
274
370
  });
275
371
  }
@@ -347,7 +443,7 @@ function ToolDisplay({ toolName, input, isFailed }: { toolName: string; input?:
347
443
  }
348
444
 
349
445
  // Tool part renderer (for parts in AssistantPartsMessage)
350
- function ToolPartItem({ part }: { part: AssistantPart & { type: "tool" } }) {
446
+ function ToolPartItem({ part }: { key?: React.Key; part: AssistantPart & { type: "tool" } }) {
351
447
  if (part.status === "started") return null;
352
448
  return <ToolDisplay toolName={part.toolName} input={part.input} isFailed={part.status === "failed"} />;
353
449
  }
@@ -484,6 +580,63 @@ const styles = StyleSheet.create({
484
580
  paddingHorizontal: 4,
485
581
  borderRadius: 3,
486
582
  },
583
+ heading1: {
584
+ color: COLORS.TEXT_PRIMARY,
585
+ fontSize: TYPOGRAPHY.SIZE_XL,
586
+ fontWeight: TYPOGRAPHY.WEIGHT_SEMIBOLD,
587
+ lineHeight: 24,
588
+ marginTop: SPACING.MD,
589
+ marginBottom: SPACING.XS,
590
+ },
591
+ heading2: {
592
+ color: "rgba(255,255,255,0.9)",
593
+ fontSize: TYPOGRAPHY.SIZE_LG,
594
+ fontWeight: TYPOGRAPHY.WEIGHT_SEMIBOLD,
595
+ lineHeight: 22,
596
+ marginTop: SPACING.SM,
597
+ marginBottom: SPACING.XS,
598
+ },
599
+ heading3: {
600
+ color: "rgba(255,255,255,0.85)",
601
+ fontSize: TYPOGRAPHY.SIZE_LG,
602
+ fontWeight: TYPOGRAPHY.WEIGHT_MEDIUM,
603
+ lineHeight: 22,
604
+ marginTop: SPACING.SM,
605
+ marginBottom: SPACING.XS,
606
+ },
607
+ boldText: {
608
+ fontWeight: TYPOGRAPHY.WEIGHT_SEMIBOLD,
609
+ color: COLORS.TEXT_PRIMARY,
610
+ },
611
+ italicText: {
612
+ fontStyle: "italic",
613
+ color: "rgba(255,255,255,0.85)",
614
+ },
615
+ strikethroughText: {
616
+ textDecorationLine: "line-through",
617
+ color: COLORS.TEXT_MUTED,
618
+ },
619
+ linkText: {
620
+ color: COLORS.STATUS_INFO,
621
+ textDecorationLine: "underline",
622
+ },
623
+ blockquote: {
624
+ borderLeftWidth: 3,
625
+ borderLeftColor: "rgba(255,255,255,0.15)",
626
+ paddingLeft: SPACING.MD,
627
+ marginVertical: SPACING.XS,
628
+ },
629
+ blockquoteText: {
630
+ color: COLORS.TEXT_SECONDARY,
631
+ fontSize: TYPOGRAPHY.SIZE_LG,
632
+ lineHeight: 22,
633
+ fontStyle: "italic",
634
+ },
635
+ horizontalRule: {
636
+ height: 1,
637
+ backgroundColor: COLORS.BORDER,
638
+ marginVertical: SPACING.MD,
639
+ },
487
640
  paragraphBreak: {
488
641
  height: SPACING.SM,
489
642
  },