@hyperdrive.bot/fleet-server 0.3.109 → 0.3.110

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.
@@ -849,7 +849,7 @@ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{v
849
849
  __d(function(g,r,i,a,m,e,d){"use strict";var t=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.shouldAppendSitemap=u,e.shouldAppendNotFound=s,e.getRootStackRouteNames=function(){const t=[n.INTERNAL_SLOT_NAME];s()&&t.push(n.NOT_FOUND_ROUTE_NAME);u()&&t.push(n.SITEMAP_ROUTE_NAME);return t};const o=t(r(d[0])),n=r(d[1]);function u(){const t=o.default.expoConfig?.extra?.router;return!1!==t?.sitemap}function s(){const t=o.default.expoConfig?.extra?.router;return!1!==t?.notFound}},717,[718,721]);
850
850
  __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}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return N}}),Object.defineProperty(_e,"AppOwnership",{enumerable:!0,get:function(){return l.AppOwnership}}),Object.defineProperty(_e,"ExecutionEnvironment",{enumerable:!0,get:function(){return l.ExecutionEnvironment}}),Object.defineProperty(_e,"UserInterfaceIdiom",{enumerable:!0,get:function(){return l.UserInterfaceIdiom}});var n=e(r(d[0])),t=r(d[1]);r(d[2]);var u=e(r(d[3])),l=r(d[4]),o=e(r(d[5]));o.default||console.warn("No native ExponentConstants module found, are you sure the expo-constants's module is linked properly?");const s=(0,t.requireOptionalNativeModule)('ExpoUpdates');let f=null;if(s){let e;s.manifest?e=s.manifest:s.manifestString&&(e=JSON.parse(s.manifestString)),e&&Object.keys(e).length>0&&(f=e)}let c=null;if(u.default.EXDevLauncher){let e;u.default.EXDevLauncher.manifestString&&(e=JSON.parse(u.default.EXDevLauncher.manifestString)),e&&Object.keys(e).length>0&&(c=e)}let p=null;if(o.default&&o.default.manifest){const e=o.default.manifest;p='string'==typeof e?JSON.parse(e):e}let b=f??c??p;const E=o.default||{},{appOwnership:O}=E,x=(0,n.default)(E,["name","appOwnership"]),v=Object.assign({},x,{appOwnership:O??null});function _(e){return!h(e)}function h(e){return'metadata'in e}function S(e=!1){if(!b){const e=null===b?'null':'undefined';if(x.executionEnvironment,l.ExecutionEnvironment.Bare,x.executionEnvironment===l.ExecutionEnvironment.StoreClient||x.executionEnvironment===l.ExecutionEnvironment.Standalone)throw new t.CodedError('ERR_CONSTANTS_MANIFEST_UNAVAILABLE',`Constants.manifest is ${e}, must be an object.`)}return b}Object.defineProperties(v,{__unsafeNoWarnManifest:{get(){const e=S(!0);return e&&_(e)?e:null},enumerable:!1},__unsafeNoWarnManifest2:{get(){const e=S(!0);return e&&h(e)?e:null},enumerable:!1},manifest:{get(){const e=S();return e&&_(e)?e:null},enumerable:!0},manifest2:{get(){const e=S();return e&&h(e)?e:null},enumerable:!0},expoConfig:{get(){const e=S(!0);return e?s&&s.isEmbeddedLaunch?p:h(e)?e.extra?.expoClient??null:_(e)?e:null:null},enumerable:!0},expoGoConfig:{get(){const e=S(!0);return e?h(e)?e.extra?.expoGo??null:_(e)?e:null:null},enumerable:!0},easConfig:{get(){const e=S(!0);return e?h(e)?e.extra?.eas??null:_(e)?e:null:null},enumerable:!0},__rawManifest_TEST:{get:()=>b,set(e){b=e},enumerable:!1}});var N=v},718,[35,4,25,637,719,720]);
851
851
  __d(function(g,r,i,a,m,e,d){"use strict";var t,n,o;Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"AppOwnership",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"ExecutionEnvironment",{enumerable:!0,get:function(){return n}}),Object.defineProperty(e,"UserInterfaceIdiom",{enumerable:!0,get:function(){return o}}),(function(t){t.Expo="expo"})(t||(t={})),(function(t){t.Bare="bare",t.Standalone="standalone",t.StoreClient="storeClient"})(n||(n={})),(function(t){t.Handset="handset",t.Tablet="tablet",t.Desktop="desktop",t.TV="tv",t.Unsupported="unsupported"})(o||(o={}))},719,[]);
852
- __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 s}});var t=r(d[0]);const n=(Date.now()+'-'+Math.floor(1e9*Math.random())).toString();function o(){if('undefined'!=typeof navigator&&'string'==typeof navigator.userAgent){const t=navigator.userAgent.toLowerCase();if(t.includes('edge'))return'Edge';if(t.includes('edg'))return'Chromium Edge';if(t.includes('opr')&&'opr'in window&&window.opr)return'Opera';if(t.includes('chrome')&&'chrome'in window&&window.chrome)return'Chrome';if(t.includes('trident'))return'IE';if(t.includes('firefox'))return'Firefox';if(t.includes('safari'))return'Safari'}}var s={get appOwnership(){return null},get executionEnvironment(){return t.ExecutionEnvironment.Bare},get sessionId(){return n},get isHeadless(){return'undefined'==typeof navigator||/\bHeadlessChrome\//.test(navigator.userAgent)},get expoVersion(){return this.manifest.sdkVersion||null},get linkingUri(){return'undefined'!=typeof location?location.origin:''},get expoRuntimeVersion(){return this.expoVersion},get deviceName(){return o()},get systemFonts(){return[]},get statusBarHeight(){return 0},get deviceYearClass(){return null},get manifest(){return"{\"name\":\"Paseo\",\"slug\":\"paseo-hyperdrive\",\"version\":\"0.3.109\",\"orientation\":\"portrait\",\"icon\":\"./assets/images/icon.png\",\"scheme\":\"paseo\",\"userInterfaceStyle\":\"automatic\",\"newArchEnabled\":true,\"web\":{\"output\":\"single\",\"favicon\":\"./assets/images/favicon.png\",\"shortName\":\"Paseo\",\"orientation\":\"portrait\",\"name\":\"Paseo\"},\"autolinking\":{\"searchPaths\":[\"../../node_modules\",\"./node_modules\"]},\"experiments\":{\"typedRoutes\":true,\"reactCompiler\":true,\"autolinkingModuleResolution\":true},\"extra\":{\"router\":{},\"eas\":{\"build\":{\"experimental\":{\"ios\":{\"appExtensions\":[{\"bundleIdentifier\":\"bot.hyperdrive.paseo.AgentActivity\",\"targetName\":\"AgentActivity\"}]}}}}},\"sdkVersion\":\"54.0.0\",\"platforms\":[\"ios\",\"android\",\"web\"]}"},get manifest2(){return null},get experienceUrl(){return'undefined'!=typeof location?location.origin:''},get debugMode(){return!1},getWebViewUserAgentAsync:async()=>'undefined'!=typeof navigator?navigator.userAgent:null}},720,[719]);
852
+ __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 s}});var t=r(d[0]);const n=(Date.now()+'-'+Math.floor(1e9*Math.random())).toString();function o(){if('undefined'!=typeof navigator&&'string'==typeof navigator.userAgent){const t=navigator.userAgent.toLowerCase();if(t.includes('edge'))return'Edge';if(t.includes('edg'))return'Chromium Edge';if(t.includes('opr')&&'opr'in window&&window.opr)return'Opera';if(t.includes('chrome')&&'chrome'in window&&window.chrome)return'Chrome';if(t.includes('trident'))return'IE';if(t.includes('firefox'))return'Firefox';if(t.includes('safari'))return'Safari'}}var s={get appOwnership(){return null},get executionEnvironment(){return t.ExecutionEnvironment.Bare},get sessionId(){return n},get isHeadless(){return'undefined'==typeof navigator||/\bHeadlessChrome\//.test(navigator.userAgent)},get expoVersion(){return this.manifest.sdkVersion||null},get linkingUri(){return'undefined'!=typeof location?location.origin:''},get expoRuntimeVersion(){return this.expoVersion},get deviceName(){return o()},get systemFonts(){return[]},get statusBarHeight(){return 0},get deviceYearClass(){return null},get manifest(){return"{\"name\":\"Paseo\",\"slug\":\"paseo-hyperdrive\",\"version\":\"0.3.110\",\"orientation\":\"portrait\",\"icon\":\"./assets/images/icon.png\",\"scheme\":\"paseo\",\"userInterfaceStyle\":\"automatic\",\"newArchEnabled\":true,\"web\":{\"output\":\"single\",\"favicon\":\"./assets/images/favicon.png\",\"shortName\":\"Paseo\",\"orientation\":\"portrait\",\"name\":\"Paseo\"},\"autolinking\":{\"searchPaths\":[\"../../node_modules\",\"./node_modules\"]},\"experiments\":{\"typedRoutes\":true,\"reactCompiler\":true,\"autolinkingModuleResolution\":true},\"extra\":{\"router\":{},\"eas\":{\"build\":{\"experimental\":{\"ios\":{\"appExtensions\":[{\"bundleIdentifier\":\"bot.hyperdrive.paseo.AgentActivity\",\"targetName\":\"AgentActivity\"}]}}}}},\"sdkVersion\":\"54.0.0\",\"platforms\":[\"ios\",\"android\",\"web\"]}"},get manifest2(){return null},get experienceUrl(){return'undefined'!=typeof location?location.origin:''},get debugMode(){return!1},getWebViewUserAgentAsync:async()=>'undefined'!=typeof navigator?navigator.userAgent:null}},720,[719]);
853
853
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SITEMAP_ROUTE_NAME=e.NOT_FOUND_ROUTE_NAME=e.INTERNAL_SLOT_NAME=void 0,e.INTERNAL_SLOT_NAME='__root',e.NOT_FOUND_ROUTE_NAME='+not-found',e.SITEMAP_ROUTE_NAME='_sitemap'},721,[]);
854
854
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.resolveHref=void 0,e.resolveHrefStringWithSegments=function(t,{segments:n=[],params:s={}}={},{relativeToDirectory:o}={}){if(t.startsWith('.')){let c=n?.map(t=>{if(!t.startsWith('['))return t;if(t.startsWith('[...')){t=t.slice(4,-1);const n=s[t];return Array.isArray(n)?n.join('/'):n?.split(',')?.join('/')??''}return t=t.slice(1,-1),s[t]}).filter(Boolean).join('/')??'/';o&&(c=`${c}/`);const f=new URL(t,`http://hostname/${c}`);t=`${f.pathname}${f.search}`}return t};function t(t,s){for(const[o,c=""]of Object.entries(s)){const f=`[${o}]`,l=`[...${o}]`;if(t.includes(f))t=t.replace(f,n(c));else{if(!t.includes(l))continue;t=t.replace(l,n(c))}delete s[o]}return{pathname:t,params:s}}function n(t){return Array.isArray(t)?t.map(t=>n(t)).join('/'):encodeURIComponent(t.toString())}function s(t){return Object.entries(t).filter(([,t])=>null!=t).map(([t,n])=>`${t}=${encodeURIComponent(n.toString())}`).join('&')}e.resolveHref=n=>{if('string'==typeof n)return(0,e.resolveHref)({pathname:n});const o=n.pathname??'';if(!n?.params)return o;const{pathname:c,params:f}=t(o,Object.assign({},n.params)),l=s(f);return c+(l?`?${l}`:'')}},722,[]);
855
855
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isRoutePreloadedInStack=function(t,o){if(!t||'stack'!==t.type)return!1;return t.preloadedRoutes.some(t=>t.key===o.key)}},723,[]);
@@ -15057,7 +15057,7 @@ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{v
15057
15057
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"decodeOfferFragmentPayload",{enumerable:!0,get:function(){return n.decodeOfferFragmentPayload}}),Object.defineProperty(e,"buildDaemonWebSocketUrl",{enumerable:!0,get:function(){return t.buildDaemonWebSocketUrl}}),Object.defineProperty(e,"deriveLabelFromEndpoint",{enumerable:!0,get:function(){return t.deriveLabelFromEndpoint}}),Object.defineProperty(e,"extractHostPortFromWebSocketUrl",{enumerable:!0,get:function(){return t.extractHostPortFromWebSocketUrl}}),Object.defineProperty(e,"normalizeHostPort",{enumerable:!0,get:function(){return t.normalizeHostPort}}),Object.defineProperty(e,"parseConnectionUri",{enumerable:!0,get:function(){return t.parseConnectionUri}}),Object.defineProperty(e,"parseHostPort",{enumerable:!0,get:function(){return t.parseHostPort}}),Object.defineProperty(e,"serializeConnectionUri",{enumerable:!0,get:function(){return t.serializeConnectionUri}}),Object.defineProperty(e,"serializeConnectionUriForStorage",{enumerable:!0,get:function(){return t.serializeConnectionUriForStorage}}),Object.defineProperty(e,"shouldUseTlsForDefaultHostedRelay",{enumerable:!0,get:function(){return t.shouldUseTlsForDefaultHostedRelay}}),e.buildRelayWebSocketUrl=function(n){return(0,t.buildRelayWebSocketUrl)(Object.assign({},n,{role:"client"}))};var t=r(d[0]),n=r(d[1])},3412,[3392,3413]);
15058
15058
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"ConnectionOfferV2Schema",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"ConnectionOfferSchema",{enumerable:!0,get:function(){return o}}),e.decodeOfferFragmentPayload=l,e.parseConnectionOfferFromUrl=function(n){const t=f(n);if(!t)return null;const c=l(t);return o.parse(c)};var n=r(d[0]);const t=n.z.object({v:n.z.literal(2),serverId:n.z.string().min(1),daemonPublicKeyB64:n.z.string().min(1),relay:n.z.object({endpoint:n.z.string().min(1),useTls:n.z.boolean().optional()})}),o=t;function c(n){const t=n.replace(/-/g,"+").replace(/_/g,"/"),o=t.padEnd(t.length+(4-t.length%4)%4,"="),c=globalThis.atob(o),l=Uint8Array.from(c,n=>n.charCodeAt(0));return new TextDecoder("utf-8",{fatal:!0}).decode(l)}function l(n){const t=c(n);return JSON.parse(t)}const u="#offer=";function f(n){const t=n.trim();if(!t)return null;const o=t.indexOf(u);if(-1===o)return null;const c=t.slice(o+u.length).trim();return c.length>0?c:null}},3413,[3285]);
15059
15059
  __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.resolveAppVersion=function(){const e=u(t.default?.version);if(e)return e;const o=u(n.default.expoConfig?.version);if(o)return o;const f=u(n.default.manifest?.version);if(f)return f;return null};var n=e(r(d[0])),t=e(r(d[1]));function u(e){if("string"!=typeof e)return null;const n=e.trim();return 0===n.length?null:n}},3414,[718,3415]);
15060
- __d(function(e,t,r,a,i,o,n){i.exports={name:"@hyperdrive.bot/fleet-app",version:"0.3.109",private:!0,main:"index.ts",scripts:{start:"npm run start:expo","start:expo":"cross-env APP_VARIANT=development expo start","reset-project":"node ./scripts/reset-project.js","build:terminal-webview":"node ./scripts/build-terminal-webview-html.mjs","eas-build-post-install":"npm --prefix ../.. run build:app-deps && npm run build:terminal-webview",android:"npm run android:development","android:development":"npm --prefix ../.. run build:client && cross-env APP_VARIANT=development expo prebuild --platform android --non-interactive && cross-env APP_VARIANT=development expo run:android --variant=debug","android:production":"npm --prefix ../.. run build:client && cross-env APP_VARIANT=production expo prebuild --platform android --non-interactive && cross-env APP_VARIANT=production expo run:android --variant=release","android:release":"npm run android:production","android:clear":"node -e \"require('node:fs').rmSync('android', { recursive: true, force: true })\"",ios:"npm --prefix ../.. run build:client && expo run:ios","ios:release":"npm --prefix ../.. run build:client && expo run:ios --configuration Release",web:"npm --prefix ../.. run build:client && concurrently --kill-others --names protocol,client,expo --prefix-colors yellow,blue,magenta \"npm --prefix ../.. run watch:protocol\" \"npm --prefix ../.. run watch:client\" \"npm run web:expo\"","web:expo":"expo start --web",lint:"expo lint",typecheck:"tsgo --noEmit",test:"vitest run","test:browser":"vitest run --project browser","test:e2e":"playwright test --project='Desktop Chrome'","test:e2e:real":"cross-env E2E_FORK_PASEO_HOME_FROM=../../.dev/paseo-home playwright test --project=real-provider","test:e2e:ui":"playwright test --ui","test:coverage":"vitest run --project unit --coverage",build:"npm run build:web","build:web":"npm --prefix ../.. run build:app-deps && expo export --platform web --source-maps","profile:workspace-tabs":"node ./scripts/profile-workspace-tabs.mjs","deploy:web":"npm run build:web && wrangler pages deploy dist --project-name paseo-app --branch main"},dependencies:{"@bacons/apple-targets":"4.0.6","@datadog/browser-rum":"^6.23.0","@datadog/browser-rum-react":"^6.23.0","@datadog/mobile-react-native":"^2.7.0","@datadog/mobile-react-native-session-replay":"^2.14.8","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@expo/image-utils":"0.8.8","@expo/plist":"0.4.9","@expo/prebuild-config":"54.0.8","@floating-ui/react-native":"^0.10.7","@gorhom/bottom-sheet":"^5.2.14","@gorhom/portal":"^1.0.14","@hyperdrive.bot/fleet-client":"*","@hyperdrive.bot/fleet-expo-two-way-audio":"*","@hyperdrive.bot/fleet-extension-sdk":"*","@hyperdrive.bot/fleet-highlight":"*","@react-native-async-storage/async-storage":"2.2.0","@react-native-masked-view/masked-view":"^0.3.2","@react-native/normalize-colors":"^0.81.5","@react-navigation/native":"^7.1.8","@sentry/electron":"^6.11.0","@sentry/react-native":"^6.20.0","@tanstack/react-query":"^5.90.11","@tanstack/react-virtual":"^3.13.21","@xterm/addon-clipboard":"^0.3.0-beta.213","@xterm/addon-fit":"^0.12.0-beta.213","@xterm/addon-image":"^0.10.0-beta.213","@xterm/addon-ligatures":"0.11.0-beta.213","@xterm/addon-search":"^0.17.0-beta.213","@xterm/addon-unicode11":"^0.10.0-beta.213","@xterm/addon-web-links":"^0.13.0-beta.213","@xterm/addon-webgl":"^0.20.0-beta.212","@xterm/xterm":"^6.1.0-beta.213",buffer:"^6.0.3",expo:"^54.0.18","expo-asset":"~12.0.12","expo-audio":"~1.0.13","expo-background-fetch":"~14.0.9","expo-build-properties":"^1.0.9","expo-camera":"~17.0.10","expo-clipboard":"~8.0.7","expo-constants":"~18.0.9","expo-crypto":"^15.0.8","expo-dev-client":"^6.0.15","expo-document-picker":"~14.0.8","expo-file-system":"~19.0.17","expo-haptics":"~15.0.7","expo-image":"~3.0.10","expo-image-manipulator":"~14.0.8","expo-image-picker":"^17.0.8","expo-keep-awake":"^15.0.7","expo-linking":"~8.0.8","expo-localization":"~17.0.9","expo-notifications":"^0.32.16","expo-router":"~6.0.13","expo-sharing":"^14.0.8","expo-speech":"~14.0.8","expo-speech-recognition":"^56.0.1","expo-splash-screen":"~31.0.10","expo-system-ui":"~6.0.7","expo-task-manager":"~14.0.9","expo-video":"~3.0.16","fast-deep-equal":"^3.1.3",htmlparser2:"^12.0.0",i18next:"^26.3.0","lucide-react-native":"^0.546.0","markdown-it":"^10.0.0","mnemonic-id":"^3.2.7",qrcode:"^1.5.4",react:"19.1.0","react-dom":"19.1.0","react-i18next":"^17.0.8","react-native":"0.81.5","react-native-draggable-flatlist":"^4.0.3","react-native-edge-to-edge":"^1.7.0","react-native-gesture-handler":"~2.28.0","react-native-keyboard-controller":"^1.21.7","react-native-markdown-display":"^7.0.2","react-native-nitro-modules":"0.35.5","react-native-reanimated":"~4.3.1","react-native-safe-area-context":"~5.6.0","react-native-screens":"~4.16.0","react-native-svg":"^15.14.0","react-native-uitextview":"^2.2.0","react-native-unistyles":"^3.2.4","react-native-web":"~0.21.0","react-native-webview":"^13.16.0","react-native-worklets":"~0.8.3","tiny-invariant":"^1.3.3","use-sync-external-store":"^1.6.0",zod:"^4.4.3",zustand:"^5.0.9"},devDependencies:{"@playwright/test":"^1.56.1","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2","@types/chai":"^5.2.2","@types/markdown-it":"^14.1.2","@types/qrcode":"^1.5.6","@types/react":"~19.2.0","@types/ws":"^8.18.1","@vitest/browser":"^4.1.7","@vitest/browser-playwright":"^4.1.7","@vitest/coverage-v8":"^4.1.7","@xterm/headless":"^6.1.0-beta.213",dotenv:"^17.2.3",eslint:"^9.25.0","eslint-config-expo":"~10.0.0",jsdom:"^20.0.3","material-icon-theme":"^5.32.0",playwright:"^1.56.1","serve-sim":"^0.1.40",typescript:"~5.9.2",vitest:"^4.1.6",wrangler:"^4.105.0",ws:"^8.20.0"}}},3415,[]);
15060
+ __d(function(e,t,r,a,i,o,n){i.exports={name:"@hyperdrive.bot/fleet-app",version:"0.3.110",private:!0,main:"index.ts",scripts:{start:"npm run start:expo","start:expo":"cross-env APP_VARIANT=development expo start","reset-project":"node ./scripts/reset-project.js","build:terminal-webview":"node ./scripts/build-terminal-webview-html.mjs","eas-build-post-install":"npm --prefix ../.. run build:app-deps && npm run build:terminal-webview",android:"npm run android:development","android:development":"npm --prefix ../.. run build:client && cross-env APP_VARIANT=development expo prebuild --platform android --non-interactive && cross-env APP_VARIANT=development expo run:android --variant=debug","android:production":"npm --prefix ../.. run build:client && cross-env APP_VARIANT=production expo prebuild --platform android --non-interactive && cross-env APP_VARIANT=production expo run:android --variant=release","android:release":"npm run android:production","android:clear":"node -e \"require('node:fs').rmSync('android', { recursive: true, force: true })\"",ios:"npm --prefix ../.. run build:client && expo run:ios","ios:release":"npm --prefix ../.. run build:client && expo run:ios --configuration Release",web:"npm --prefix ../.. run build:client && concurrently --kill-others --names protocol,client,expo --prefix-colors yellow,blue,magenta \"npm --prefix ../.. run watch:protocol\" \"npm --prefix ../.. run watch:client\" \"npm run web:expo\"","web:expo":"expo start --web",lint:"expo lint",typecheck:"tsgo --noEmit",test:"vitest run","test:browser":"vitest run --project browser","test:e2e":"playwright test --project='Desktop Chrome'","test:e2e:real":"cross-env E2E_FORK_PASEO_HOME_FROM=../../.dev/paseo-home playwright test --project=real-provider","test:e2e:ui":"playwright test --ui","test:coverage":"vitest run --project unit --coverage",build:"npm run build:web","build:web":"npm --prefix ../.. run build:app-deps && expo export --platform web --source-maps","profile:workspace-tabs":"node ./scripts/profile-workspace-tabs.mjs","deploy:web":"npm run build:web && wrangler pages deploy dist --project-name paseo-app --branch main"},dependencies:{"@bacons/apple-targets":"4.0.6","@datadog/browser-rum":"^6.23.0","@datadog/browser-rum-react":"^6.23.0","@datadog/mobile-react-native":"^2.7.0","@datadog/mobile-react-native-session-replay":"^2.14.8","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@expo/image-utils":"0.8.8","@expo/plist":"0.4.9","@expo/prebuild-config":"54.0.8","@floating-ui/react-native":"^0.10.7","@gorhom/bottom-sheet":"^5.2.14","@gorhom/portal":"^1.0.14","@hyperdrive.bot/fleet-client":"*","@hyperdrive.bot/fleet-expo-two-way-audio":"*","@hyperdrive.bot/fleet-extension-sdk":"*","@hyperdrive.bot/fleet-highlight":"*","@react-native-async-storage/async-storage":"2.2.0","@react-native-masked-view/masked-view":"^0.3.2","@react-native/normalize-colors":"^0.81.5","@react-navigation/native":"^7.1.8","@sentry/electron":"^6.11.0","@sentry/react-native":"^6.20.0","@tanstack/react-query":"^5.90.11","@tanstack/react-virtual":"^3.13.21","@xterm/addon-clipboard":"^0.3.0-beta.213","@xterm/addon-fit":"^0.12.0-beta.213","@xterm/addon-image":"^0.10.0-beta.213","@xterm/addon-ligatures":"0.11.0-beta.213","@xterm/addon-search":"^0.17.0-beta.213","@xterm/addon-unicode11":"^0.10.0-beta.213","@xterm/addon-web-links":"^0.13.0-beta.213","@xterm/addon-webgl":"^0.20.0-beta.212","@xterm/xterm":"^6.1.0-beta.213",buffer:"^6.0.3",expo:"^54.0.18","expo-asset":"~12.0.12","expo-audio":"~1.0.13","expo-background-fetch":"~14.0.9","expo-build-properties":"^1.0.9","expo-camera":"~17.0.10","expo-clipboard":"~8.0.7","expo-constants":"~18.0.9","expo-crypto":"^15.0.8","expo-dev-client":"^6.0.15","expo-document-picker":"~14.0.8","expo-file-system":"~19.0.17","expo-haptics":"~15.0.7","expo-image":"~3.0.10","expo-image-manipulator":"~14.0.8","expo-image-picker":"^17.0.8","expo-keep-awake":"^15.0.7","expo-linking":"~8.0.8","expo-localization":"~17.0.9","expo-notifications":"^0.32.16","expo-router":"~6.0.13","expo-sharing":"^14.0.8","expo-speech":"~14.0.8","expo-speech-recognition":"^56.0.1","expo-splash-screen":"~31.0.10","expo-system-ui":"~6.0.7","expo-task-manager":"~14.0.9","expo-video":"~3.0.16","fast-deep-equal":"^3.1.3",htmlparser2:"^12.0.0",i18next:"^26.3.0","lucide-react-native":"^0.546.0","markdown-it":"^10.0.0","mnemonic-id":"^3.2.7",qrcode:"^1.5.4",react:"19.1.0","react-dom":"19.1.0","react-i18next":"^17.0.8","react-native":"0.81.5","react-native-draggable-flatlist":"^4.0.3","react-native-edge-to-edge":"^1.7.0","react-native-gesture-handler":"~2.28.0","react-native-keyboard-controller":"^1.21.7","react-native-markdown-display":"^7.0.2","react-native-nitro-modules":"0.35.5","react-native-reanimated":"~4.3.1","react-native-safe-area-context":"~5.6.0","react-native-screens":"~4.16.0","react-native-svg":"^15.14.0","react-native-uitextview":"^2.2.0","react-native-unistyles":"^3.2.4","react-native-web":"~0.21.0","react-native-webview":"^13.16.0","react-native-worklets":"~0.8.3","tiny-invariant":"^1.3.3","use-sync-external-store":"^1.6.0",zod:"^4.4.3",zustand:"^5.0.9"},devDependencies:{"@playwright/test":"^1.56.1","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2","@types/chai":"^5.2.2","@types/markdown-it":"^14.1.2","@types/qrcode":"^1.5.6","@types/react":"~19.2.0","@types/ws":"^8.18.1","@vitest/browser":"^4.1.7","@vitest/browser-playwright":"^4.1.7","@vitest/coverage-v8":"^4.1.7","@xterm/headless":"^6.1.0-beta.213",dotenv:"^17.2.3",eslint:"^9.25.0","eslint-config-expo":"~10.0.0",jsdom:"^20.0.3","material-icon-theme":"^5.32.0",playwright:"^1.56.1","serve-sim":"^0.1.40",typescript:"~5.9.2",vitest:"^4.1.6",wrangler:"^4.105.0",ws:"^8.20.0"}}},3415,[]);
15061
15061
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.shouldUseDesktopDaemon=function(){return(0,n.isElectronRuntime)()},e.getDesktopDaemonStatus=async function(){return c(await(0,t.invokeDesktopCommand)("desktop_daemon_status"))},e.startDesktopDaemon=async function(){return c(await(0,t.invokeDesktopCommand)("start_desktop_daemon"))},e.stopDesktopDaemon=async function(n="manual_ipc"){return c(await(0,t.invokeDesktopCommand)("stop_desktop_daemon",{reason:n}))},e.restartDesktopDaemon=async function(){return c(await(0,t.invokeDesktopCommand)("restart_desktop_daemon"))},e.getDesktopDaemonLogs=async function(){return p(await(0,t.invokeDesktopCommand)("desktop_daemon_logs"))},e.getDesktopDaemonPairing=async function(){return k(await(0,t.invokeDesktopCommand)("desktop_daemon_pairing"))},e.getCliDaemonStatus=async function(){const n=await(0,t.invokeDesktopCommand)("cli_daemon_status");if("string"!=typeof n)throw new Error("Unexpected CLI daemon status response.");return n},e.listenToLocalTransportEvents=async function(t){const u=(0,n.getDesktopHost)()?.events?.on;if("function"!=typeof u)throw new Error("Desktop events API is unavailable.");const c=await u("local-daemon-transport-event",n=>{o(n)&&t({sessionId:s(n.sessionId)??"",kind:s(n.kind)??"error",text:s(n.text),binaryBase64:s(n.binaryBase64),code:l(n.code),reason:s(n.reason),error:s(n.error)})});return"function"==typeof c?c:()=>{}},e.openLocalTransportSession=async function(n){const o=await(0,t.invokeDesktopCommand)("open_local_daemon_transport",n);if("string"!=typeof o||0===o.trim().length)throw new Error("Unexpected local transport session response.");return o},e.sendLocalTransportMessage=async function(n){await(0,t.invokeDesktopCommand)("send_local_daemon_transport_message",Object.assign({sessionId:n.sessionId},n.text?{text:n.text}:{},n.binaryBase64?{binaryBase64:n.binaryBase64}:{}))},e.closeLocalTransportSession=async function(n){await(0,t.invokeDesktopCommand)("close_local_daemon_transport",{sessionId:n})},e.getCliInstallStatus=async function(){return f(await(0,t.invokeDesktopCommand)("get_cli_install_status"))},e.installCli=async function(){return f(await(0,t.invokeDesktopCommand)("install_cli"))},e.getSkillsStatus=async function(){return y(await(0,t.invokeDesktopCommand)("get_skills_status"))},e.installSkills=async function(){return y(await(0,t.invokeDesktopCommand)("install_skills"))},e.updateSkills=async function(){return y(await(0,t.invokeDesktopCommand)("update_skills"))},e.uninstallSkills=async function(){return y(await(0,t.invokeDesktopCommand)("uninstall_skills"))};var n=r(d[0]),t=r(d[1]);function o(n){return"object"==typeof n&&null!==n}function s(n){return"string"==typeof n&&n.trim().length>0?n:null}function l(n){return"number"==typeof n&&Number.isFinite(n)?n:null}function u(n){const t=s(n)?.toLowerCase();switch(t){case"starting":return"starting";case"running":return"running";case"errored":case"error":return"errored";default:return"stopped"}}function c(n){if(!o(n))throw new Error("Unexpected desktop daemon status response.");return{serverId:s(n.serverId)??"",status:u(n.status),listen:s(n.listen),hostname:s(n.hostname),pid:l(n.pid),home:s(n.home)??"",version:s(n.version),desktopManaged:!0===n.desktopManaged,error:s(n.error)}}function p(n){if(!o(n))throw new Error("Unexpected desktop daemon logs response.");return{logPath:s(n.logPath)??"",contents:"string"==typeof n.contents?n.contents:""}}function k(n){if(!o(n))throw new Error("Unexpected desktop daemon pairing response.");return{relayEnabled:!0===n.relayEnabled,url:s(n.url),qr:s(n.qr)}}function f(n){if(!o(n))throw new Error("Unexpected install status response.");return{installed:!0===n.installed}}function w(n){switch(n){case"not-installed":case"up-to-date":case"drift":return n;default:throw new Error(`Unexpected skills status state: ${String(n)}`)}}function _(n){if(!o(n))throw new Error("Unexpected skill op response.");const t=s(n.name);if(!t)throw new Error("Skill op missing name.");switch(n.kind){case"add":return{kind:"add",name:t};case"update":return{kind:"update",name:t};case"delete":return{kind:"delete",name:t};default:throw new Error(`Unexpected skill op kind: ${String(n.kind)}`)}}function y(n){if(!o(n))throw new Error("Unexpected skills status response.");const t=Array.isArray(n.ops)?n.ops.map(_):[];return{state:w(n.state),ops:t}}},3416,[3417,3419]);
15062
15062
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.getDesktopHost=n,e.isElectronRuntime=o,e.isElectronRuntimeMac=function(){if(!o())return!1;if("undefined"==typeof navigator)return!1;const t=n()?.platform?.toLowerCase();if("darwin"===t||"mac"===t||"macos"===t)return!0;const u=navigator.userAgent;return u.includes("Mac OS")||u.includes("Macintosh")},r(d[0]);var t=r(d[1]);function n(){return(0,t.getElectronHost)()}function o(){return null!==n()}},3417,[25,3418]);
15063
15063
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.getElectronHost=function(){if("undefined"==typeof window)return null;const t=window.paseoDesktop;if(!t||"object"!=typeof t)return null;return t}},3418,[]);
@@ -16321,7 +16321,7 @@ __d(function(g,r,i,a,m,e,d){"use strict";function t(n){return null!=n&&("string"
16321
16321
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.isBinaryByPath=function(n){const s=o(n);return!!s&&t.has(s)};const t=new Set(["pdf","doc","docx","xls","xlsx","ppt","pptx","rtf","odt","ods","odp","png","jpg","jpeg","gif","webp","ico","bmp","tiff","tif","heic","heif","avif","mp3","wav","ogg","m4a","flac","opus","aac","mp4","webm","avi","mov","mkv","m4v","zip","tar","gz","bz2","xz","7z","rar","lz","zst","exe","dll","so","dylib","a","o","obj","lib","class","jar","war","dmg","iso","img","pkg","apk","ipa","msi","deb","rpm","ttf","otf","woff","woff2","eot","db","sqlite","sqlite3","mdb","pyc","pyo","pyd","bin","dat","pak"]);function o(t){if(!t)return null;const o=t.split("/").findLast(Boolean)??"";if(o.startsWith(".")&&-1===o.indexOf(".",1))return null;const n=o.lastIndexOf(".");if(n<=0)return null;const s=o.slice(n+1).toLowerCase();return 0===s.length?null:s}},4562,[]);
16322
16322
  __d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.HighlightedLines=function(e){const n=(0,o.c)(13),{lines:l,startLine:s}=e;if(void 0===s){let e,o;return n[0]!==l?(e=l.map(j),n[0]=l,n[1]=e):e=n[1],n[2]!==e?(o=(0,S.jsx)(t.View,{dataSet:f.CODE_SURFACE_DATASET,children:e}),n[2]=e,n[3]=o):o=n[3],o}const c=s+l.length-1,u=Math.max(2,String(c).length);let x,h;if(n[4]!==u||n[5]!==l||n[6]!==s){let e;n[8]!==u||n[9]!==s?(e=(e,t)=>(0,S.jsx)(T,{line:e,lineNumber:s+t,digits:u},e.key),n[8]=u,n[9]=s,n[10]=e):e=n[10],x=l.map(e),n[4]=u,n[5]=l,n[6]=s,n[7]=x}else x=n[7];n[11]!==x?(h=(0,S.jsx)(t.View,{dataSet:f.CODE_SURFACE_DATASET,children:x}),n[11]=x,n[12]=h):h=n[12];return h};var e,t=r(d[0]),n=r(d[1]),o=r(d[2]),l=r(d[3]),s=(e=l)&&e.__esModule?e:{default:e};r(d[4]),r(d[5]);var c=r(d[6]),u=r(d[7]),f=r(d[8]),x=r(d[9]),S=r(d[10]);const h="\u200b";function y(e){const t=(0,o.c)(4),{line:l}=e;let s,c;return t[0]!==l.tokens?(s=0===l.tokens.length?h:l.tokens.map(_),t[0]=l.tokens,t[1]=s):s=t[1],t[2]!==s?(c=(0,S.jsx)(n.Text,{selectable:!0,style:p.lineText,children:s}),t[2]=s,t[3]=c):c=t[3],c}function _(e){const{key:t,token:o}=e;return(0,S.jsx)(n.Text,{style:o.style?(0,x.syntaxTokenStyleFor)(o.style):void 0,children:o.text},t)}const T=s.default.memo(function(e){const l=(0,o.c)(10),{line:s,lineNumber:c,digits:u}=e,f=String(c);let x,h,_,T;return l[0]!==u||l[1]!==f?(x=f.padStart(u),l[0]=u,l[1]=f,l[2]=x):x=l[2],l[3]!==x?(h=(0,S.jsxs)(n.Text,{style:p.gutterText,children:[x," "]}),l[3]=x,l[4]=h):h=l[4],l[5]!==s?(_=(0,S.jsx)(y,{line:s}),l[5]=s,l[6]=_):_=l[6],l[7]!==h||l[8]!==_?(T=(0,S.jsxs)(t.View,{style:p.row,children:[h,_]}),l[7]=h,l[8]=_,l[9]=T):T=l[9],T});function j(e){return(0,S.jsx)(y,{line:e},e.key)}const p=c.StyleSheet.create(e=>({row:{flexDirection:"row",minHeight:18},gutterText:{fontFamily:e.fontFamily.mono,fontSize:e.fontSize.code,lineHeight:18,color:e.colors.foregroundMuted,opacity:.6,userSelect:"none",flexShrink:0,uni__dependencies:[0]},lineText:Object.assign({fontFamily:e.fontFamily.mono,fontSize:e.fontSize.code,color:e.colors.foreground,lineHeight:18},u.isWeb?{whiteSpace:"pre",overflowWrap:"normal"}:null,{uni__dependencies:[0]})}))},4563,[348,349,350,36,234,146,56,3420,3820,3821,279]);
16323
16323
  __d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.DiffViewer=function(e){const t=(0,l.c)(32),{diffLines:c,maxHeight:u,emptyLabel:y,fillAvailableHeight:h}=e,p=void 0!==h&&h,{t:S}=(0,x.useTranslation)(),[v,k]=s.default.useState(0);let C;t[0]!==y||t[1]!==S?(C=y??S("diffViewer.empty"),t[0]=y,t[1]=S,t[2]=C):C=t[2];const w=C,H=(0,f.useWebScrollbarStyle)();let L;t[3]===Symbol.for("react.memo_cache_sentinel")?(L=e=>k(e.nativeEvent.layout.width),t[3]=L):L=t[3];const E=L;let W;t[4]!==u?(W=void 0!==u&&(0,T.inlineUnistylesStyle)({maxHeight:u}),t[4]=u,t[5]=W):W=t[5];const F=p&&$.fillHeight;let M;t[6]!==W||t[7]!==F||t[8]!==H?(M=[$.verticalScroll,W,F,H],t[6]=W,t[7]=F,t[8]=H,t[9]=M):M=t[9];const A=M;let D,I;t[10]!==v?(D=v>0&&(0,T.inlineUnistylesStyle)({minWidth:v}),t[10]=v,t[11]=D):D=t[11];t[12]!==D?(I=[$.linesContainer,D],t[12]=D,t[13]=I):I=t[13];const O=I;let R;t[14]!==c?(R=c.map(z),t[14]=c,t[15]=R):R=t[15];const U=R,B=p&&$.fillHeight;let P;t[16]!==B?(P=[$.verticalContent,B],t[16]=B,t[17]=P):P=t[17];const G=P;if(!c.length){let e;return t[18]!==w?(e=(0,b.jsx)(o.View,{style:$.emptyState,children:(0,b.jsx)(n.Text,{style:$.emptyText,children:w})}),t[18]=w,t[19]=e):e=t[19],e}let q,J;t[20]!==U?(q=U.map(V),t[20]=U,t[21]=q):q=t[21];t[22]!==O||t[23]!==q?(J=(0,b.jsx)(o.View,{style:O,dataSet:_.CODE_SURFACE_DATASET,children:q}),t[22]=O,t[23]=q,t[24]=J):J=t[24];const K=J;let N;t[25]!==K||t[26]!==H?(N=(0,b.jsx)(j,{horizontal:!0,nestedScrollEnabled:!0,showsHorizontalScrollIndicator:!0,style:H,contentContainerStyle:$.horizontalContent,onLayout:E,children:K}),t[25]=K,t[26]=H,t[27]=N):N=t[27];const Q=N;let X;t[28]!==Q||t[29]!==A||t[30]!==G?(X=(0,b.jsx)(j,{style:A,contentContainerStyle:G,nestedScrollEnabled:!0,showsVerticalScrollIndicator:!0,children:Q}),t[28]=Q,t[29]=A,t[30]=G,t[31]=X):X=t[31];return X};var e,t=r(d[0]),n=r(d[1]),o=r(d[2]),l=r(d[3]),c=r(d[4]),s=(e=c)&&e.__esModule?e:{default:e},x=r(d[5]);r(d[6]),r(d[7]),r(d[8]);var u=r(d[9]),y=r(d[10]),h=r(d[11]),p=r(d[12]),f=r(d[13]),T=r(d[14]),S=r(d[15]),_=r(d[16]),v=r(d[17]),b=r(d[18]);const j=v.isWeb?t.ScrollView:u.ScrollView;function k(e){const t=(0,l.c)(35),{line:c}=e,s="header"===c.type&&$.headerLine,x="add"===c.type&&$.addLine,u="remove"===c.type&&$.removeLine,y="context"===c.type&&$.contextLine;let p;t[0]!==s||t[1]!==x||t[2]!==u||t[3]!==y?(p=[$.line,s,x,u,y],t[0]=s,t[1]=x,t[2]=u,t[3]=y,t[4]=p):p=t[4];const f=p,T="header"===c.type&&$.headerText,S="add"===c.type&&$.addText,_="remove"===c.type&&$.removeText,v="context"===c.type&&$.contextText;let j;t[5]!==T||t[6]!==S||t[7]!==_||t[8]!==v?(j=[$.lineText,T,S,_,v],t[5]=T,t[6]=S,t[7]=_,t[8]=v,t[9]=j):j=t[9];const k=j,w="add"===c.type&&$.addText,H="remove"===c.type&&$.removeText,V="context"===c.type&&$.contextText;let z;t[10]!==w||t[11]!==H||t[12]!==V?(z=[w,H,V],t[10]=w,t[11]=H,t[12]=V,t[13]=z):z=t[13];const E=z;if(c.tokens){let e,l,s,x,u;return t[14]!==c?(e=(0,h.diffLinePrefix)(c),t[14]=c,t[15]=e):e=t[15],t[16]!==E||t[17]!==e?(l=(0,b.jsx)(n.Text,{style:E,children:e}),t[16]=E,t[17]=e,t[18]=l):l=t[18],t[19]!==c.tokens?(s=(0,b.jsx)(C,{tokens:c.tokens}),t[19]=c.tokens,t[20]=s):s=t[20],t[21]!==l||t[22]!==s?(x=(0,b.jsxs)(n.Text,{style:$.lineText,children:[l,s]}),t[21]=l,t[22]=s,t[23]=x):x=t[23],t[24]!==f||t[25]!==x?(u=(0,b.jsx)(o.View,{style:f,children:x}),t[24]=f,t[25]=x,t[26]=u):u=t[26],u}let W,F;return t[27]!==c.content||t[28]!==c.segments||t[29]!==c.type||t[30]!==k?(W=c.segments?(0,b.jsxs)(n.Text,{style:$.lineText,children:[(0,b.jsx)(n.Text,{style:"add"===c.type?$.addText:$.removeText,children:c.content[0]}),c.segments.map(e=>(0,b.jsx)(L,{segment:e,lineType:c.type},`${e.changed?"c":"u"}:${e.text}`))]}):(0,b.jsx)(n.Text,{style:k,children:c.content}),t[27]=c.content,t[28]=c.segments,t[29]=c.type,t[30]=k,t[31]=W):W=t[31],t[32]!==f||t[33]!==W?(F=(0,b.jsx)(o.View,{style:f,children:W}),t[32]=f,t[33]=W,t[34]=F):F=t[34],F}function C(e){const t=(0,l.c)(6),{tokens:n}=e;let o;t[0]!==n?(o=n.map(H),t[0]=n,t[1]=o):o=t[1];const c=o;let s,x;return t[2]!==c?(s=c.map(w),t[2]=c,t[3]=s):s=t[3],t[4]!==s?(x=(0,b.jsx)(b.Fragment,{children:s}),t[4]=s,t[5]=x):x=t[5],x}function w(e){const{key:t,token:o}=e;return(0,b.jsx)(n.Text,{style:o.style?(0,p.syntaxTokenStyleFor)(o.style):void 0,children:o.text},t)}function H(e,t){return{key:`${t}-${e.text}`,token:e}}function L(e){const t=(0,l.c)(6),{segment:o,lineType:c}=e,s="add"===c?$.addText:$.removeText,x=o.changed&&("add"===c?$.addHighlight:$.removeHighlight);let u;t[0]!==s||t[1]!==x?(u=[s,x],t[0]=s,t[1]=x,t[2]=u):u=t[2];const y=u;let h;return t[3]!==o.text||t[4]!==y?(h=(0,b.jsx)(n.Text,{style:y,children:o.text}),t[3]=o.text,t[4]=y,t[5]=h):h=t[5],h}function V(e){const{key:t,line:n}=e;return(0,b.jsx)(k,{line:n},t)}function z(e,t){return{key:`${t}-${e.type}-${e.content}`,line:e}}const $=y.StyleSheet.create(e=>{const t=(0,S.getCodeInsets)(e);return{verticalScroll:{},fillHeight:{flex:1,minHeight:0},verticalContent:{flexGrow:1,paddingBottom:t.extraBottom},horizontalContent:{flexDirection:"column",paddingRight:t.extraRight},linesContainer:{alignSelf:"flex-start",padding:t.padding},line:{minWidth:"100%",paddingHorizontal:0,paddingVertical:e.spacing[1],uni__dependencies:[0]},lineText:Object.assign({fontFamily:e.fontFamily.mono,fontSize:e.fontSize.code,color:e.colors.foreground},v.isWeb?{whiteSpace:"pre",overflowWrap:"normal"}:null,{uni__dependencies:[0]}),headerLine:{backgroundColor:e.colors.surface1,uni__dependencies:[0]},headerText:{color:e.colors.foregroundMuted,uni__dependencies:[0]},addLine:{backgroundColor:"rgba(46, 160, 67, 0.15)"},addText:{color:e.colors.foreground,uni__dependencies:[0]},removeLine:{backgroundColor:"rgba(248, 81, 73, 0.1)"},removeText:{color:e.colors.foreground,uni__dependencies:[0]},addHighlight:{backgroundColor:"rgba(46, 160, 67, 0.4)"},removeHighlight:{backgroundColor:"rgba(248, 81, 73, 0.35)"},contextLine:{backgroundColor:e.colors.surface1,uni__dependencies:[0]},contextText:{color:e.colors.foregroundMuted,uni__dependencies:[0]},emptyState:{padding:e.spacing[4],alignItems:"center",justifyContent:"center",uni__dependencies:[0]},emptyText:{fontSize:e.fontSize.sm,color:e.colors.foregroundMuted,uni__dependencies:[0]}}})},4564,[2815,349,348,350,36,352,146,234,182,2482,56,4560,3821,3589,3486,3885,3820,3420,279]);
16324
- __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 t=r(d[0]);r(d[1]);var s=r(d[2]),n=r(d[3]),o=r(d[4]),l=r(d[5]),u=r(d[6]);function c(){const c=(0,t.c)(7),{serverId:p}=(0,s.useLocalSearchParams)();let v;c[0]!==p?(v=t=>{const s=t.sessions[p??""],n=s?.agents;return n?[...n.values()].map(t=>({id:t.id,serverId:p??"",title:t.title??t.id,statusBucket:t.status??"pending",tags:Object.entries(t.labels??{}).filter(b).map(f),digest:t.digest??null,kanban:t.labels?.kanban??null,provider:t.runtimeInfo?.provider??"claude",model:t.model??"opus-5",turns:0,age:"",snoozeCount:t.snooze?.count??0,snoozedUntil:t.snooze?.until??null})):[]},c[0]=p,c[1]=v):v=c[1];const S=(0,l.useSessionStore)((0,n.useShallow)(v));let j;if(c[2]!==S){const t=new Set;for(const s of S)for(const n of s.tags)t.add(n);j=[...t].sort(),c[2]=S,c[3]=j}else j=c[3];const z=j;let _;return c[4]!==z||c[5]!==S?(_=(0,u.jsx)(o.ReelsScreen,{sessions:S,allTags:z}),c[4]=z,c[5]=S,c[6]=_):_=c[6],_}function f(t){const[s]=t;return s.slice(4)}function b(t){const[s]=t;return s.startsWith("tag:")}},4565,[350,36,379,3462,4566,3427,279]);
16324
+ __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 u}});var t=r(d[0]);r(d[1]);var n=r(d[2]),s=r(d[3]),o=r(d[4]),l=r(d[5]);function u(){const u=(0,t.c)(11),{serverId:b}=(0,n.useLocalSearchParams)();let p;u[0]!==b?(p=t=>t.sessions[b??""]?.agents,u[0]=b,u[1]=p):p=u[1];const v=(0,o.useSessionStore)(p);let S;e:{if(!v){let t;u[2]===Symbol.for("react.memo_cache_sentinel")?(t=[],u[2]=t):t=u[2],S=t;break e}let t;u[3]!==v||u[4]!==b?(t=[...v.values()].map(t=>({id:t.id,serverId:b??"",title:t.title??t.id,statusBucket:t.status??"pending",tags:Object.entries(t.labels??{}).filter(f).map(c),digest:t.digest??null,kanban:t.labels?.kanban??null,provider:t.runtimeInfo?.provider??"claude",model:t.model??"opus-5",turns:0,age:"",snoozeCount:t.snooze?.count??0,snoozedUntil:t.snooze?.until??null})),u[3]=v,u[4]=b,u[5]=t):t=u[5],S=t}const _=S;let j;if(u[6]!==_){const t=new Set;for(const n of _)for(const s of n.tags)t.add(s);j=[...t].sort(),u[6]=_,u[7]=j}else j=u[7];const k=j;let z;return u[8]!==k||u[9]!==_?(z=(0,l.jsx)(s.ReelsScreen,{sessions:_,allTags:k}),u[8]=k,u[9]=_,u[10]=z):z=u[10],z}function c(t){const[n]=t;return n.slice(4)}function f(t){const[n]=t;return n.startsWith("tag:")}},4565,[350,36,379,4566,3427,279]);
16325
16325
  __d(function(g,r,i,_a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"ReelsScreen",{enumerable:!0,get:function(){return R}});var e,n=r(d[0]),s=r(d[1]),t=r(d[2]),o=r(d[3]),l=r(d[4]),c=r(d[5]),a=r(d[6]),u=r(d[7]),p=(e=u)&&e.__esModule?e:{default:e};r(d[8]),r(d[9]),r(d[10]),r(d[11]),r(d[12]);var h=r(d[13]),x=r(d[14]),b=r(d[15]),y=r(d[16]),f=r(d[17]),j=r(d[18]),k=r(d[19]);const _=p.default.get("window").height;const S=(0,a.memo)(function(e){const u=(0,c.c)(63),{session:p,onClose:h,onSend:x}=e,[b,y]=(0,a.useState)(""),f=p.digest;let j;u[0]!==x||u[1]!==b?(j=()=>{const e=b.trim();e.length>0&&(x(e),y(""))},u[0]=x,u[1]=b,u[2]=j):j=u[2];const _=j;let S,w,v,C,I;u[3]===Symbol.for("react.memo_cache_sentinel")?(S=(0,k.jsx)(n.View,{style:H.sheetHandle}),u[3]=S):S=u[3],u[4]!==p.title?(w=(0,k.jsx)(t.Text,{style:H.sheetTitle,children:p.title}),u[4]=p.title,u[5]=w):w=u[5],u[6]===Symbol.for("react.memo_cache_sentinel")?(v=(0,k.jsx)(t.Text,{style:H.link,children:"close"}),u[6]=v):v=u[6],u[7]!==h?(C=(0,k.jsx)(l.Pressable,{onPress:h,testID:"reels-caption-close",children:v}),u[7]=h,u[8]=C):C=u[8],u[9]!==w||u[10]!==C?(I=(0,k.jsxs)(n.View,{style:H.sheetHead,children:[w,C]}),u[9]=w,u[10]=C,u[11]=I):I=u[11];const V=f?.summary;let z;u[12]!==V?(z=(0,k.jsx)(T,{label:"Summary",value:V,derived:!0}),u[12]=V,u[13]=z):z=u[13];const P=f?.goal;let D;u[14]!==P?(D=(0,k.jsx)(T,{label:"Goal",value:P}),u[14]=P,u[15]=D):D=u[15];const R=f?.nextStep;let M,O,A,L,W,B,N,E,G,K,$;u[16]!==R?(M=(0,k.jsx)(T,{label:"Next step",value:R}),u[16]=R,u[17]=M):M=u[17],u[18]!==f?.blockers?(O=f?.blockers?.join("\n"),u[18]=f?.blockers,u[19]=O):O=u[19],u[20]!==O?(A=(0,k.jsx)(T,{label:"Blockers",value:O,danger:!0}),u[20]=O,u[21]=A):A=u[21],u[22]!==f?.accomplishments?(L=f?.accomplishments?.join("\n"),u[22]=f?.accomplishments,u[23]=L):L=u[23],u[24]!==L?(W=(0,k.jsx)(T,{label:"Accomplishments",value:L,derived:!0}),u[24]=L,u[25]=W):W=u[25],u[26]!==f?.keyFiles?(B=f?.keyFiles?.join("\n"),u[26]=f?.keyFiles,u[27]=B):B=u[27],u[28]!==B?(N=(0,k.jsx)(T,{label:"Key files",value:B,derived:!0}),u[28]=B,u[29]=N):N=u[29],u[30]!==f?.links?(E=f?.links?.map(F).join("\n"),u[30]=f?.links,u[31]=E):E=u[31],u[32]!==E?(G=(0,k.jsx)(T,{label:"Links",value:E}),u[32]=E,u[33]=G):G=u[33],u[34]!==p.tags?(K=p.tags.join(", ")||"no tag",u[34]=p.tags,u[35]=K):K=u[35],u[36]!==K?($=(0,k.jsx)(T,{label:"Tags",value:K}),u[36]=K,u[37]=$):$=u[37];const U=p.kanban??"inbox";let q,J,Q,X,Y,Z,ee;return u[38]!==U?(q=(0,k.jsx)(T,{label:"Kanban",value:U}),u[38]=U,u[39]=q):q=u[39],u[40]!==D||u[41]!==M||u[42]!==A||u[43]!==W||u[44]!==N||u[45]!==G||u[46]!==$||u[47]!==q||u[48]!==z?(J=(0,k.jsxs)(o.ScrollView,{style:H.sheetBody,testID:"reels-caption-body",children:[z,D,M,A,W,N,G,$,q]}),u[40]=D,u[41]=M,u[42]=A,u[43]=W,u[44]=N,u[45]=G,u[46]=$,u[47]=q,u[48]=z,u[49]=J):J=u[49],u[50]!==_||u[51]!==b?(Q=(0,k.jsx)(s.TextInput,{value:b,onChangeText:y,placeholder:"none of these? say what to do",style:H.composerInput,onSubmitEditing:_,testID:"reels-composer-input"}),u[50]=_,u[51]=b,u[52]=Q):Q=u[52],u[53]===Symbol.for("react.memo_cache_sentinel")?(X=(0,k.jsx)(t.Text,{style:H.link,children:"send"}),u[53]=X):X=u[53],u[54]!==_?(Y=(0,k.jsx)(l.Pressable,{onPress:_,style:H.composerSend,testID:"reels-composer-send",children:X}),u[54]=_,u[55]=Y):Y=u[55],u[56]!==Q||u[57]!==Y?(Z=(0,k.jsxs)(n.View,{style:H.composer,children:[Q,Y]}),u[56]=Q,u[57]=Y,u[58]=Z):Z=u[58],u[59]!==J||u[60]!==Z||u[61]!==I?(ee=(0,k.jsxs)(n.View,{style:H.captionSheet,testID:"reels-caption-sheet",children:[S,I,J,Z]}),u[59]=J,u[60]=Z,u[61]=I,u[62]=ee):ee=u[62],ee}),T=(0,a.memo)(function(e){const s=(0,c.c)(9),{label:o,value:l,derived:a,danger:u}=e;if(!l)return null;const p=a?" (derived)":"";let h;s[0]!==o||s[1]!==p?(h=(0,k.jsxs)(t.Text,{style:H.fieldLabel,children:[o,p]}),s[0]=o,s[1]=p,s[2]=h):h=s[2];const x=u?O:H.fieldValue;let b,y;return s[3]!==x||s[4]!==l?(b=(0,k.jsx)(t.Text,{style:x,children:l}),s[3]=x,s[4]=l,s[5]=b):b=s[5],s[6]!==h||s[7]!==b?(y=(0,k.jsxs)(n.View,{style:H.field,children:[h,b]}),s[6]=h,s[7]=b,s[8]=y):y=s[8],y}),w=(0,a.memo)(function(e){const n=(0,c.c)(21),{session:s,picked:o,isWinner:a,onToggle:u,onCrown:p}=e;let h;n[0]!==u||n[1]!==s.id?(h=()=>u(s.id),n[0]=u,n[1]=s.id,n[2]=h):h=n[2];const x=h;let b;n[3]!==p||n[4]!==s.id?(b=()=>p(s.id),n[3]=p,n[4]=s.id,n[5]=b):b=n[5];const y=b;let f="\u2610";o&&(f=a?"\u25c9":"\u2611");const j=o?A:H.pickRow,_=`reels-consolidate-pick-${s.id}`;let S,T;n[6]!==f?(S=(0,k.jsx)(t.Text,{style:H.pickMark,children:f}),n[6]=f,n[7]=S):S=n[7],n[8]!==s.title?(T=(0,k.jsx)(t.Text,{style:H.pickName,children:s.title}),n[8]=s.title,n[9]=T):T=n[9];const w=a&&o?" \xb7 survives":"";let v,C;return n[10]!==s.turns||n[11]!==w?(v=(0,k.jsxs)(t.Text,{style:H.pickAux,children:[s.turns," turns",w]}),n[10]=s.turns,n[11]=w,n[12]=v):v=n[12],n[13]!==y||n[14]!==j||n[15]!==_||n[16]!==S||n[17]!==T||n[18]!==v||n[19]!==x?(C=(0,k.jsxs)(l.Pressable,{onPress:x,onLongPress:y,style:j,testID:_,children:[S,T,v]}),n[13]=y,n[14]=j,n[15]=_,n[16]=S,n[17]=T,n[18]=v,n[19]=x,n[20]=C):C=n[20],C}),v=(0,a.memo)(function(e){const s=(0,c.c)(46),{candidates:u,onCancel:p,onConsolidate:h}=e;let x;s[0]===Symbol.for("react.memo_cache_sentinel")?(x={},s[0]=x):x=s[0];const[b,y]=(0,a.useState)(x);let f;if(s[1]!==u||s[2]!==b){let e;s[4]!==b?(e=e=>b[e.id],s[4]=b,s[5]=e):e=s[5],f=u.filter(e),s[1]=u,s[2]=b,s[3]=f}else f=s[3];const j=f,[_,S]=(0,a.useState)(null);let T;s[6]!==j||s[7]!==_?(T=_??j.slice().sort(E)[0]?.id??null,s[6]=j,s[7]=_,s[8]=T):T=s[8];const v=T;let C;s[9]===Symbol.for("react.memo_cache_sentinel")?(C=e=>{y(n=>{const s=Object.assign({},n);return s[e]?delete s[e]:s[e]=!0,s})},s[9]=C):C=s[9];const I=C;let V;if(s[10]!==j||s[11]!==v){let e;s[13]!==v?(e=e=>e.id!==v,s[13]=v,s[14]=e):e=s[14],V=j.filter(e).map(G),s[10]=j,s[11]=v,s[12]=V}else V=s[12];const z=V,P=j.length>=2&&null!==v;let D;s[15]!==h||s[16]!==z||s[17]!==v?(D=()=>{v&&h(v,z)},s[15]=h,s[16]=z,s[17]=v,s[18]=D):D=s[18];const R=D;let M,O,A,W,B,N;if(s[19]===Symbol.for("react.memo_cache_sentinel")?(M=(0,k.jsx)(t.Text,{style:H.sheetTitle,children:"Consolidate"}),O=(0,k.jsx)(t.Text,{style:H.hint,children:"The winner keeps its transcript. The others are archived and linked to it, both ways. Nothing is deleted."}),s[19]=M,s[20]=O):(M=s[19],O=s[20]),s[21]!==u||s[22]!==b||s[23]!==v){let e;s[25]!==b||s[26]!==v?(e=e=>(0,k.jsx)(w,{session:e,picked:Boolean(b[e.id]),isWinner:v===e.id,onToggle:I,onCrown:S},e.id),s[25]=b,s[26]=v,s[27]=e):e=s[27],A=u.map(e),s[21]=u,s[22]=b,s[23]=v,s[24]=A}else A=s[24];s[28]!==A?(W=(0,k.jsx)(o.ScrollView,{style:H.pickList,children:A}),s[28]=A,s[29]=W):W=s[29],s[30]===Symbol.for("react.memo_cache_sentinel")?(B=(0,k.jsx)(t.Text,{style:H.link,children:"cancel"}),s[30]=B):B=s[30],s[31]!==p?(N=(0,k.jsx)(l.Pressable,{onPress:p,style:H.send,testID:"reels-consolidate-cancel",children:B}),s[31]=p,s[32]=N):N=s[32];const F=!P,K=P?H.send:L;let $,U,q,J;return s[33]!==z.length?($=(0,k.jsxs)(t.Text,{style:H.link,children:["consolidate ",z.length]}),s[33]=z.length,s[34]=$):$=s[34],s[35]!==R||s[36]!==F||s[37]!==K||s[38]!==$?(U=(0,k.jsx)(l.Pressable,{onPress:R,disabled:F,style:K,testID:"reels-consolidate-commit",children:$}),s[35]=R,s[36]=F,s[37]=K,s[38]=$,s[39]=U):U=s[39],s[40]!==N||s[41]!==U?(q=(0,k.jsxs)(n.View,{style:H.rowGap,children:[N,U]}),s[40]=N,s[41]=U,s[42]=q):q=s[42],s[43]!==W||s[44]!==q?(J=(0,k.jsxs)(n.View,{style:H.sheet,testID:"reels-consolidate",children:[M,O,W,q]}),s[43]=W,s[44]=q,s[45]=J):J=s[45],J}),C=(0,a.memo)(function(e){const n=(0,c.c)(9),{verb:s,glyph:o,onVerb:a}=e;let u;n[0]!==a||n[1]!==s?(u=()=>a(s),n[0]=a,n[1]=s,n[2]=u):u=n[2];const p=u,h=`reels-verb-${s}`;let x,b;return n[3]!==o?(x=(0,k.jsx)(t.Text,{style:H.verbGlyph,children:o}),n[3]=o,n[4]=x):x=n[4],n[5]!==p||n[6]!==h||n[7]!==x?(b=(0,k.jsx)(l.Pressable,{onPress:p,style:H.verbChip,testID:h,children:x}),n[5]=p,n[6]=h,n[7]=x,n[8]=b):b=n[8],b}),I=(0,a.memo)(function(e){const s=(0,c.c)(17),{verb:o,glyph:a,label:u,detail:p,onVerb:h}=e;let x;s[0]!==h||s[1]!==o?(x=()=>h(o),s[0]=h,s[1]=o,s[2]=x):x=s[2];const b=x,y=`reels-taco-${o}`;let f,j,_,S,T;return s[3]!==a?(f=(0,k.jsx)(t.Text,{style:H.pickMark,children:a}),s[3]=a,s[4]=f):f=s[4],s[5]!==u?(j=(0,k.jsx)(t.Text,{style:H.pickName,children:u}),s[5]=u,s[6]=j):j=s[6],s[7]!==p?(_=(0,k.jsx)(t.Text,{style:H.hint,children:p}),s[7]=p,s[8]=_):_=s[8],s[9]!==j||s[10]!==_?(S=(0,k.jsxs)(n.View,{style:H.grow,children:[j,_]}),s[9]=j,s[10]=_,s[11]=S):S=s[11],s[12]!==b||s[13]!==y||s[14]!==f||s[15]!==S?(T=(0,k.jsxs)(l.Pressable,{onPress:b,style:H.pickRow,testID:y,children:[f,S]}),s[12]=b,s[13]=y,s[14]=f,s[15]=S,s[16]=T):T=s[16],T}),V=(0,a.memo)(function(e){const s=(0,c.c)(7),{mode:o,text:l}=e;if("off"===o)return null;const a="text"===o?W:H.background,u=`reels-background-${o}`;let p,h;return s[0]!==o||s[1]!==l?(p="text"===o?(0,k.jsx)(t.Text,{style:H.backgroundBody,numberOfLines:40,children:l}):null,s[0]=o,s[1]=l,s[2]=p):p=s[2],s[3]!==a||s[4]!==u||s[5]!==p?(h=(0,k.jsx)(n.View,{style:a,testID:u,children:p}),s[3]=a,s[4]=u,s[5]=p,s[6]=h):h=s[6],h}),z=(0,a.memo)(function(e){const s=(0,c.c)(7),{show:t,lap:o,ring:l}=e;if(!t)return null;const a=o+1,u=l.length;let p,h;return s[0]!==o||s[1]!==l?(p=(0,f.actedThisLap)(l,o),s[0]=o,s[1]=l,s[2]=p):p=s[2],s[3]!==l.length||s[4]!==a||s[5]!==p?(h=(0,k.jsx)(n.View,{pointerEvents:"none",style:H.seamHint,testID:"reels-seam-hint",children:(0,k.jsx)(b.LapSeam,{lap:a,ringSize:u,acted:p})}),s[3]=l.length,s[4]=a,s[5]=p,s[6]=h):h=s[6],h}),P=(0,a.memo)(function(e){const s=(0,c.c)(13),{gated:o,allTags:l,onPickTag:a,decision:u,decisions:p,serverId:h,agentId:y,onAnswered:f,onVerb:j}=e;if(o){let e;return s[0]!==l||s[1]!==a?(e=(0,k.jsx)(b.TagGate,{available:l,onPick:a}),s[0]=l,s[1]=a,s[2]=e):e=s[2],e}if(u){let e;return s[3]!==y||s[4]!==p||s[5]!==f||s[6]!==h?(e=(0,k.jsx)(x.DecisionChips,{serverId:h,agentId:y,decisions:p,onAnswered:f}),s[3]=y,s[4]=p,s[5]=f,s[6]=h,s[7]=e):e=s[7],e}let _,S,T;return s[8]===Symbol.for("react.memo_cache_sentinel")?(_=(0,k.jsx)(t.Text,{style:H.hint,children:"Nothing to decide. Why is this still open?"}),s[8]=_):_=s[8],s[9]!==j?(S=b.TACO_VERBS.map(e=>(0,k.jsx)(C,{verb:e.id,glyph:e.glyph,onVerb:j},e.id)),s[9]=j,s[10]=S):S=s[10],s[11]!==S?(T=(0,k.jsxs)(n.View,{testID:"reels-taco-row",children:[_,(0,k.jsx)(n.View,{style:H.rowGap,children:S})]}),s[11]=S,s[12]=T):T=s[12],T}),D=(0,a.memo)(function(e){const s=(0,c.c)(34),{overlay:a,session:u,ring:p,onClose:h,onSend:x,onSnooze:y,onConsolidate:f,onKanban:j,onVerb:_}=e,T=u;let w,C,V,z,P,D,R;return s[0]!==T||s[1]!==h||s[2]!==x||s[3]!==a.kind?(w="caption"===a.kind?(0,k.jsx)(S,{session:T,onClose:h,onSend:x}):null,s[0]=T,s[1]=h,s[2]=x,s[3]=a.kind,s[4]=w):w=s[4],s[5]!==T||s[6]!==h||s[7]!==y||s[8]!==a.kind?(C="snooze"===a.kind?(0,k.jsx)(n.View,{style:H.overlay,children:(0,k.jsx)(b.SnoozeSheet,{priorCount:T.snoozeCount,onCancel:h,onSnooze:y})}):null,s[5]=T,s[6]=h,s[7]=y,s[8]=a.kind,s[9]=C):C=s[9],s[10]!==h||s[11]!==f||s[12]!==a.kind||s[13]!==p?(V="consolidate"===a.kind?(0,k.jsx)(n.View,{style:H.overlay,children:(0,k.jsx)(v,{candidates:p,onCancel:h,onConsolidate:f})}):null,s[10]=h,s[11]=f,s[12]=a.kind,s[13]=p,s[14]=V):V=s[14],s[15]!==h||s[16]!==_||s[17]!==a.kind?(z="taco"===a.kind?(0,k.jsx)(n.View,{style:H.overlay,children:(0,k.jsxs)(n.View,{style:H.sheet,testID:"reels-taco-sheet",children:[(0,k.jsx)(t.Text,{style:H.sheetTitle,children:"TACO"}),b.TACO_VERBS.map(e=>(0,k.jsx)(I,{verb:e.id,glyph:e.glyph,label:e.label,detail:e.detail,onVerb:_},e.id)),(0,k.jsx)(l.Pressable,{onPress:h,style:H.send,children:(0,k.jsx)(t.Text,{style:H.link,children:"cancel"})})]})}):null,s[15]=h,s[16]=_,s[17]=a.kind,s[18]=z):z=s[18],s[19]!==h||s[20]!==a.kind?(P="share"===a.kind?(0,k.jsx)(n.View,{style:H.overlay,children:(0,k.jsxs)(n.View,{style:H.sheet,testID:"reels-share-sheet",children:[(0,k.jsx)(t.Text,{style:H.sheetTitle,children:"Send"}),(0,k.jsx)(t.Text,{style:H.hint,children:"Native share sheet on iOS. Electron and web have no share sheet, only shell.openExternal, so those fall back to wa.me and slack deep links."}),M.map(K),(0,k.jsx)(l.Pressable,{onPress:h,style:H.send,children:(0,k.jsx)(t.Text,{style:H.link,children:"cancel"})})]})}):null,s[19]=h,s[20]=a.kind,s[21]=P):P=s[21],s[22]!==T||s[23]!==h||s[24]!==j||s[25]!==a.kind?(D="options"===a.kind?(0,k.jsx)(n.View,{style:H.overlay,children:(0,k.jsxs)(o.ScrollView,{style:H.sheet,testID:"reels-options-sheet",children:[(0,k.jsx)(t.Text,{style:H.sheetTitle,children:"Session options"}),(0,k.jsx)(t.Text,{style:H.fieldLabel,children:"Kanban"}),(0,k.jsx)(b.KanbanPicker,{current:T.kanban,onPick:j}),(0,k.jsx)(t.Text,{style:H.fieldLabel,children:"Provider and model"}),(0,k.jsxs)(t.Text,{style:H.fieldValue,children:[T.provider,"/",T.model]}),(0,k.jsx)(t.Text,{style:H.hint,children:"One control in the app, not two: combined-model-selector with favourites."}),(0,k.jsx)(l.Pressable,{onPress:h,style:H.send,children:(0,k.jsx)(t.Text,{style:H.link,children:"close"})})]})}):null,s[22]=T,s[23]=h,s[24]=j,s[25]=a.kind,s[26]=D):D=s[26],s[27]!==w||s[28]!==C||s[29]!==V||s[30]!==z||s[31]!==P||s[32]!==D?(R=(0,k.jsxs)(k.Fragment,{children:[w,C,V,z,P,D]}),s[27]=w,s[28]=C,s[29]=V,s[30]=z,s[31]=P,s[32]=D,s[33]=R):R=s[33],R}),R=(0,a.memo)(function({sessions:e,allTags:s,actCap:o=j.DEFAULT_ACT_CAP,background:c="loop",now:u=new Date}){const p=(0,y.useReelsVerbs)(),[h,x]=(0,a.useState)(1),[_,S]=(0,a.useState)(0),[T,w]=(0,a.useState)(0),[v,C]=(0,a.useState)({kind:"none"}),[I,R]=(0,a.useState)({}),M=(0,a.useMemo)(()=>e.map(e=>Object.assign({},e,{tags:I[e.id]??e.tags})),[I,e]),O=(0,a.useMemo)(()=>(0,f.buildLap)({sessions:M,lap:h,now:u}),[h,u,M]),A=O[Math.min(T,Math.max(O.length-1,0))]??null,L=A?.id??"",W=A?.serverId??"",F=A?(E=A.digest,E?.pendingDecisions?.find(e=>!e.answeredAt)??null):null;var E;const G=(0,a.useMemo)(()=>F?[F]:[],[F]),K=!!A&&0===A.tags.length,$=(0,a.useCallback)(()=>{const e=T+1>=O.length;w(e?0:T+1),e&&x(h+1),C({kind:"none"})},[T,h,O.length]),U=(0,a.useMemo)(()=>[{id:"read",glyph:"\ud83d\udcd6",label:"read"},{id:"snooze",glyph:"\ud83d\ude34",label:"snooze",disabled:K},{id:"share",glyph:"\ud83d\udce4",label:"send"},{id:"taco",glyph:"\u2699\ufe0f",label:"TACO",disabled:K},{id:"options",glyph:"\u22ef",label:"options"}],[K]),q=(0,a.useCallback)(()=>C({kind:"caption"}),[]),J=(0,a.useCallback)(()=>C({kind:"none"}),[]),Q=(0,a.useCallback)(()=>C({kind:"options"}),[]),X=(0,a.useCallback)(e=>{const n=B[e];n&&C({kind:n})},[]),Y=(0,a.useCallback)(e=>{R(n=>Object.assign({},n,{[L]:[e]}))},[L]),Z=(0,a.useCallback)(()=>{S(e=>e+1),$()},[$]),ee=(0,a.useCallback)(async e=>{if("terminate"===e)return await p.terminate({serverId:W,agentId:L}),void $();C({kind:N[e]})},[$,L,W,p]),ne=(0,a.useCallback)(e=>{p.snooze({serverId:W,agentId:L},e.until,e.untilWhat,e.why),$()},[$,L,W,p]),se=(0,a.useCallback)((e,n)=>{p.consolidate({serverId:W,winnerId:e,sourceIds:n}),$()},[$,W,p]),te=(0,a.useCallback)(e=>{p.setKanban({serverId:W,agentId:L},e),C({kind:"none"})},[L,W,p]);return A?(0,k.jsxs)(n.View,{style:H.root,testID:"reels-screen",children:[(0,k.jsx)(V,{mode:c,text:A.digest?.summary??A.title}),(0,k.jsx)(b.ReelsHeader,{acts:_,cap:o,activeFilters:0,onFilter:Q}),(0,k.jsx)(n.View,{style:H.middle,children:(0,k.jsx)(b.ReelsRail,{actions:U,contextLabel:A.tags[0]??"untagged",onAction:X})}),(0,k.jsxs)(n.View,{style:H.bottom,children:[(0,k.jsxs)(l.Pressable,{onPress:q,testID:"reels-caption-open",children:[(0,k.jsx)(t.Text,{style:H.cardTitle,children:A.title}),(0,k.jsxs)(t.Text,{style:H.cardMeta,children:[String(A.statusBucket)," \xb7 ",A.age," \xb7 ",A.provider,"/",A.model," \xb7"," ",A.turns," turns"]}),(0,k.jsx)(t.Text,{style:H.cardSummary,numberOfLines:4,children:A.digest?.summary??A.digest?.goal??"No digest yet."}),(0,k.jsx)(t.Text,{style:H.cardTapHint,children:"tap for the whole digest and to talk to it"})]}),(0,k.jsx)(P,{gated:K,allTags:s,onPickTag:Y,decision:F,decisions:G,serverId:A.serverId,agentId:A.id,onAnswered:Z,onVerb:ee}),(0,k.jsx)(l.Pressable,{onPress:$,testID:"reels-next",children:(0,k.jsxs)(t.Text,{style:H.cardTapHint,children:[T+1,"/",O.length," \xb7 lap ",h," \xb7 next"]})})]}),(0,k.jsx)(D,{overlay:v,session:A,ring:O,onClose:J,onSend:J,onSnooze:ne,onConsolidate:se,onKanban:te,onVerb:ee}),(0,k.jsx)(z,{show:T===O.length-1,lap:h,ring:O})]}):(0,k.jsx)(n.View,{style:H.empty,testID:"reels-empty",children:(0,k.jsx)(t.Text,{style:H.fieldValue,children:"No sessions in the ring."})})}),H=h.StyleSheet.create(e=>({root:{flex:1,minHeight:.6*_,backgroundColor:e.colors.background,uni__dependencies:[0]},background:Object.assign({},h.StyleSheet.absoluteFillObject,{opacity:.35,backgroundColor:e.colors.surface0,uni__dependencies:[0]}),backgroundText:{padding:e.spacing[2],uni__dependencies:[0]},backgroundBody:{color:e.colors.foregroundMuted,fontSize:e.fontSize.xs,lineHeight:20,uni__dependencies:[0]},middle:{flex:1,alignItems:"flex-end",justifyContent:"flex-end",paddingHorizontal:e.spacing[2],uni__dependencies:[0]},bottom:{padding:e.spacing[2],gap:e.spacing[1],uni__dependencies:[0]},cardTitle:{color:e.colors.foreground,fontSize:e.fontSize.base,fontWeight:"600",uni__dependencies:[0]},cardMeta:{color:e.colors.foregroundMuted,fontSize:e.fontSize.xs,marginTop:2,uni__dependencies:[0]},cardSummary:{color:e.colors.foreground,fontSize:e.fontSize.sm,marginTop:6,lineHeight:19,uni__dependencies:[0]},cardTapHint:{color:e.colors.foregroundMuted,fontSize:10,marginTop:4,uni__dependencies:[0]},hint:{color:e.colors.foregroundMuted,fontSize:e.fontSize.xs,lineHeight:17,uni__dependencies:[0]},rowGap:{flexDirection:"row",flexWrap:"wrap",gap:e.spacing[1],alignItems:"center",uni__dependencies:[0]},verbChip:{borderWidth:1,borderColor:e.colors.border,borderRadius:e.borderRadius["2xl"],paddingHorizontal:e.spacing[2],paddingVertical:e.spacing[1],uni__dependencies:[0]},verbGlyph:{fontSize:20},overlay:Object.assign({},h.StyleSheet.absoluteFillObject,{backgroundColor:e.colors.background,uni__dependencies:[0]}),sheet:{padding:e.spacing[2],gap:e.spacing[1],uni__dependencies:[0]},sheetTitle:{color:e.colors.foreground,fontSize:e.fontSize.base,fontWeight:"600",uni__dependencies:[0]},captionSheet:{position:"absolute",left:0,right:0,bottom:0,top:"42%",backgroundColor:e.colors.background,borderTopWidth:1,borderTopColor:e.colors.border,borderTopLeftRadius:e.borderRadius["2xl"],borderTopRightRadius:e.borderRadius["2xl"],uni__dependencies:[0]},sheetHandle:{width:38,height:4,borderRadius:e.borderRadius.full,backgroundColor:e.colors.border,alignSelf:"center",marginTop:e.spacing[1],uni__dependencies:[0]},sheetHead:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",padding:e.spacing[2],borderBottomWidth:1,borderBottomColor:e.colors.border,uni__dependencies:[0]},sheetBody:{flex:1,padding:e.spacing[2],uni__dependencies:[0]},field:{marginBottom:e.spacing[1],uni__dependencies:[0]},fieldLabel:{color:e.colors.foregroundMuted,fontSize:9,textTransform:"uppercase",letterSpacing:.6,marginTop:e.spacing[1],uni__dependencies:[0]},fieldValue:{color:e.colors.foreground,fontSize:e.fontSize.xs,lineHeight:18,uni__dependencies:[0]},fieldDanger:{color:e.colors.destructive,uni__dependencies:[0]},composer:{flexDirection:"row",alignItems:"center",gap:e.spacing[1],padding:e.spacing[2],borderTopWidth:1,borderTopColor:e.colors.border,uni__dependencies:[0]},composerInput:{flex:1,borderWidth:1,borderColor:e.colors.border,borderRadius:e.borderRadius.full,paddingHorizontal:e.spacing[2],paddingVertical:e.spacing[1],color:e.colors.foreground,fontSize:e.fontSize.xs,uni__dependencies:[0]},composerSend:{paddingHorizontal:e.spacing[1],uni__dependencies:[0]},link:{color:e.colors.accent,fontSize:e.fontSize.xs,uni__dependencies:[0]},send:{borderWidth:1,borderColor:e.colors.accent,borderRadius:e.borderRadius["2xl"],paddingHorizontal:e.spacing[2],paddingVertical:e.spacing[1],alignSelf:"flex-start",uni__dependencies:[0]},dim:{opacity:.35},pickList:{maxHeight:220},pickRow:{flexDirection:"row",alignItems:"center",gap:e.spacing[1],paddingVertical:e.spacing[1],paddingHorizontal:e.spacing[1],borderWidth:1,borderColor:e.colors.border,borderRadius:e.borderRadius["2xl"],marginBottom:4,uni__dependencies:[0]},pickRowOn:{borderColor:e.colors.accent,uni__dependencies:[0]},pickMark:{color:e.colors.accent,fontSize:e.fontSize.sm,width:22,uni__dependencies:[0]},pickName:{color:e.colors.foreground,fontSize:e.fontSize.xs,fontWeight:"600",uni__dependencies:[0]},pickAux:{color:e.colors.foregroundMuted,fontSize:10,uni__dependencies:[0]},grow:{flex:1},empty:{flex:1,alignItems:"center",justifyContent:"center",padding:e.spacing[3],uni__dependencies:[0]},seamHint:{position:"absolute",bottom:0,left:0,right:0,opacity:.5}})),M=["WhatsApp","Slack","Copy summary"],O=[H.fieldValue,H.fieldDanger],A=[H.pickRow,H.pickRowOn],L=[H.send,H.dim],W=[H.background,H.backgroundText],B={read:"caption",snooze:"snooze",share:"share",taco:"taco",options:"options"},N={consolidate:"consolidate",outsource:"share",automate:"options"};function F(e){return`${e.kind}: ${e.label??e.url}`}function E(e,n){return n.turns-e.turns}function G(e){return e.id}function K(e){return(0,k.jsx)(l.Pressable,{style:H.pickRow,testID:`reels-share-${e}`,children:(0,k.jsx)(t.Text,{style:H.pickName,children:e})},e)}},4566,[348,2838,349,2815,2476,350,36,183,546,182,234,571,146,56,4013,4016,4567,4568,4017,279]);
16326
16326
  __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.consolidateSessions=u,e.useReelsVerbs=function(){const s=(0,t.c)(15),y=(0,n.useQueryClient)();let v;s[0]!==y?(v=t=>{y.invalidateQueries({queryKey:(0,o.agentHistoryQueryKey)(t)})},s[0]=y,s[1]=v):v=s[1];const I=v;let f;s[2]!==I?(f=async t=>{const{serverId:n,agentId:s}=t;await l(n).archiveAgent(s),I(n)},s[2]=I,s[3]=f):f=s[3];const w=f;let A;s[4]!==I?(A=async(t,n,s,o)=>{const{serverId:c,agentId:u}=t,y=await l(c).snoozeAgent(u,n,s,o);return I(c),y},s[4]=I,s[5]=A):A=s[5];const _=A;let K;s[6]!==I?(K=async(t,n)=>{const{serverId:s,agentId:o}=t;await l(s).updateAgent(o,{labels:{[c.KANBAN_LABEL_KEY]:n}}),I(s)},s[6]=I,s[7]=K):K=s[7];const b=K;let E;s[8]!==I?(E=async t=>{await u(t),I(t.serverId)},s[8]=I,s[9]=E):E=s[9];const N=E;let Q;s[10]!==N||s[11]!==b||s[12]!==_||s[13]!==w?(Q={terminate:w,snooze:_,consolidate:N,setKanban:b},s[10]=N,s[11]=b,s[12]=_,s[13]=w,s[14]=Q):Q=s[14];return Q};var t=r(d[0]);r(d[1]);var n=r(d[2]),s=r(d[3]),o=r(d[4]),c=r(d[5]);function l(t){const n=(0,s.getHostRuntimeStore)().getClient(t);if(!n)throw new Error(`No client for server ${t}`);return n}async function u({serverId:t,winnerId:n,sourceIds:s}){const o=l(t);await o.consolidateAgents(n,s.filter(t=>t!==n))}},4567,[350,36,3030,3274,4015,4008]);
16327
16327
  __d(function(g,r,i,_a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"RING_STATE_RANK",{enumerable:!0,get:function(){return t}}),e.isSnoozed=n,e.snoozeCancelledByFailure=u,e.isUntagged=o,e.buildLap=function({sessions:s,lap:a,now:c}){return[...s.filter(t=>u(t)||!n(t,c))].sort((n,u)=>{const s=o(n)?0:1,c=o(u)?0:1;if(s!==c)return s-c;if(1===s){const t=n.actedLap===a-1?1:0,o=u.actedLap===a-1?1:0;if(t!==o)return t-o}const l=t[n.statusBucket]??99,f=t[u.statusBucket]??99;return l!==f?l-f:n.id.localeCompare(u.id)})},e.actedThisLap=function(t,n){return t.filter(t=>t.actedLap===n).length};const t={needs_input:0,failed:1,attention:2,pending:3,running:4,done:5};function n(t,n){if(!t.snoozedUntil)return!1;const u=Date.parse(t.snoozedUntil);return Number.isFinite(u)&&u>n.getTime()}function u(t){return"failed"===t.statusBucket}function o(t){return 0===t.tags.length}},4568,[]);
@@ -16693,5 +16693,5 @@ __d(function(g,r,_i,a,_m,_e,d){"use strict";var e,t=r(d[0]),n=this&&this.__creat
16693
16693
  __r(694);
16694
16694
  __r(341);
16695
16695
  __r(0);
16696
- //# sourceMappingURL=/_expo/static/js/web/index-c04e03e53fe0304970b7ae7e733f709b.js.map
16697
- //# debugId=0822f994-59ec-41d0-9ef0-78e84bfe08cb
16696
+ //# sourceMappingURL=/_expo/static/js/web/index-39c8481afe843ac4009b1fa81729c604.js.map
16697
+ //# debugId=e04f5aac-cde4-475d-8130-0c0d64f2b653
@@ -191,6 +191,6 @@
191
191
  <body>
192
192
  <noscript>You need to enable JavaScript to run this app.</noscript>
193
193
  <div id="root"></div>
194
- <script src="/_expo/static/js/web/index-c04e03e53fe0304970b7ae7e733f709b.js" defer></script>
194
+ <script src="/_expo/static/js/web/index-39c8481afe843ac4009b1fa81729c604.js" defer></script>
195
195
  </body>
196
196
  </html>
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperdrive.bot/fleet-server",
3
- "version": "0.3.109",
3
+ "version": "0.3.110",
4
4
  "description": "Paseo backend server",
5
5
  "license": "Apache-2.0",
6
6
  "files": [
@@ -66,11 +66,11 @@
66
66
  "@agentclientprotocol/sdk": "^0.17.1",
67
67
  "@anthropic-ai/claude-agent-sdk": "^0.3.195",
68
68
  "@anthropic-ai/sdk": "^0.104.2",
69
- "@hyperdrive.bot/fleet-client": "0.3.109",
70
- "@hyperdrive.bot/fleet-extension-sdk": "0.3.109",
71
- "@hyperdrive.bot/fleet-highlight": "0.3.109",
72
- "@hyperdrive.bot/fleet-protocol": "0.3.109",
73
- "@hyperdrive.bot/fleet-relay": "0.3.109",
69
+ "@hyperdrive.bot/fleet-client": "0.3.110",
70
+ "@hyperdrive.bot/fleet-extension-sdk": "0.3.110",
71
+ "@hyperdrive.bot/fleet-highlight": "0.3.110",
72
+ "@hyperdrive.bot/fleet-protocol": "0.3.110",
73
+ "@hyperdrive.bot/fleet-relay": "0.3.110",
74
74
  "@isaacs/ttlcache": "^2.1.4",
75
75
  "@modelcontextprotocol/sdk": "^1.20.1",
76
76
  "@opencode-ai/sdk": "1.2.6",