@chatpanel/events 0.353.0 → 0.356.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.
package/agent-run-hint.js CHANGED
@@ -1 +1 @@
1
- const r=["default","acceptEdits","bypassPermissions"];function u(t,n){const e=Array.isArray(t?.agents)?t.agents:[],i=String(n||"");return i&&e.find(s=>s&&(s.bridgeAgent===i||s.id===i))||null}function l(t){if(!t||typeof t!="object")return null;const n={},e=String(t.permissionMode||"");r.includes(e)&&e!=="default"&&(n.permissionMode=e);const i=String(t.workingDir||"").trim();i&&/^([A-Za-z]:[\\/]|\/|~)/.test(i)&&(n.workingDir=i);const s=String(t.sandboxHosts||"").split(/[\s,;]+/).map(o=>o.trim().toLowerCase()).filter(Boolean);return s.length&&(n.sandbox={hosts:[...new Set(s)]}),t.outsideSandbox===!0&&(n.sandbox={...n.sandbox||{},outside:!0}),Object.keys(n).length?n:null}export{u as agentCardFor,l as runHintFor};
1
+ import{SIGN_IN_NAMES as g}from"./sandbox-grant.js";const l=["default","acceptEdits","bypassPermissions"];function f(n,t){const e=Array.isArray(n?.agents)?n.agents:[],i=String(t||"");return i&&e.find(s=>s&&(s.bridgeAgent===i||s.id===i))||null}function d(n){if(!n||typeof n!="object")return null;const t={},e=String(n.permissionMode||"");l.includes(e)&&e!=="default"&&(t.permissionMode=e);const i=String(n.workingDir||"").trim();i&&/^([A-Za-z]:[\\/]|\/|~)/.test(i)&&(t.workingDir=i);const s=String(n.sandboxHosts||"").split(/[\s,;]+/).map(o=>o.trim().toLowerCase()).filter(Boolean);s.length&&(t.sandbox={hosts:[...new Set(s)]}),n.outsideSandbox===!0&&(t.sandbox={...t.sandbox||{},outside:!0});const r=(Array.isArray(n.signIn)?n.signIn:String(n.signIn||"").split(/[\s,;]+/)).map(o=>String(o).trim().toLowerCase()).filter(o=>g.includes(o));return r.length&&(t.sandbox={...t.sandbox||{},signIn:[...new Set(r)]}),Object.keys(t).length?t:null}export{f as agentCardFor,d as runHintFor};
package/date-filter.js ADDED
@@ -0,0 +1 @@
1
+ import{resolveSince as O}from"./omni.js";const p=e=>Number.isFinite(Number(e))?Number(e):0,F=e=>String(e).padStart(2,"0");function h(e){const t=new Date(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()}function l(e,t){const n=new Date(e);return new Date(n.getFullYear(),n.getMonth(),n.getDate()+t).getTime()}function y(e){const t=new Date(e);return`${t.getFullYear()}-${F(t.getMonth()+1)}-${F(t.getDate())}`}const $=Object.freeze([Object.freeze({id:"today",label:"Today"}),Object.freeze({id:"yesterday",label:"Yesterday"}),Object.freeze({id:"7d",label:"Last 7 days"}),Object.freeze({id:"30d",label:"Last 30 days"}),Object.freeze({id:"month",label:"This month"})]),f=(e,t)=>({from:e||0,to:t||0});function Y(e){const t=/^(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?$/.exec(e);if(!t)return null;const n=Number(t[1]);if(t[2]===void 0)return f(new Date(n,0,1).getTime(),new Date(n+1,0,1).getTime());const r=Number(t[2])-1;if(r<0||r>11)return null;if(t[3]===void 0)return f(new Date(n,r,1).getTime(),new Date(n,r+1,1).getTime());const o=Number(t[3]),a=new Date(n,r,o);return a.getMonth()!==r||a.getDate()!==o?null:f(a.getTime(),new Date(n,r,o+1).getTime())}function b(e,t){const n=String(e||"").trim().toLowerCase();if(!n)return null;const r=h(t);if(n==="today")return f(r,l(r,1));if(n==="yesterday")return f(l(r,-1),r);if(n==="month"){const a=new Date(t);return f(new Date(a.getFullYear(),a.getMonth(),1).getTime(),l(r,1))}if(n==="year")return f(new Date(new Date(t).getFullYear(),0,1).getTime(),l(r,1));const o=/^(\d{1,4})([dw])$/.exec(n);if(o){const a=Number(o[1])*(o[2]==="w"?7:1);return a>0?f(l(r,1-a),l(r,1)):null}return Y(n)}function L(e,{now:t=Date.now()}={}){const n=String(e||"").trim();if(!n.includes(".."))return b(n,t);const[r,o,a]=n.split("..");if(a!==void 0||!r&&!o)return null;const u=r?b(r,t):null,s=o?b(o,t):null;if(r&&!u||o&&!s)return null;const i=f(u?u.from:0,s?s.to:0);return i.from&&i.to&&i.to<=i.from?f(s.from,u.to):i}function S(e,t){const n=String(e||"").trim().toLowerCase(),r=n==="today"||n==="yesterday"?b(n,t):Y(n);return r?r.from:O(n,t)}function w(e,t){return e?t?f(Math.max(e.from,t.from),e.to&&t.to?Math.min(e.to,t.to):e.to||t.to):e:t}function j(e={},{now:t=Date.now()}={}){let n=null;if(e.date&&(n=w(n,L(e.date,{now:t}))),e.since){const r=S(e.since,t);r&&(n=w(n,f(r,0)))}if(e.before){const r=S(e.before,t);r&&(n=w(n,f(0,r)))}return n}const E=/(^|\s)(date|since|before):("[^"]*"|[^\s"]+)/giu;function x(e,{now:t=Date.now()}={}){const n=[];let r=null,o=String(e??"").replace(E,(a,u,s,i)=>{const c=s.toLowerCase(),m=i.replace(/^"|"$/g,""),g=j({[c]:m},{now:t});return g?(r=w(r,g),n.push({key:c,value:m}),u||""):a});return o=o.replace(/\s+/g," ").trim(),{range:r,text:o,terms:n}}function v(e,t){return x(e,t).terms.length>0}function M(e){return!!e&&!!e.from&&e.to===l(e.from,1)}function z(e){if(!e)return"";if(typeof e=="string")return $.some(r=>r.id===e)?`date:${e}`:"";const t=p(e.from),n=p(e.to);return!t&&!n?"":M({from:t,to:n})?`date:${y(t)}`:`date:${t?y(t):""}..${n?y(n-1):""}`}function I(e,t,n){const{text:r}=x(e,n);return[z(t),r].filter(Boolean).join(" ")}function C(e,t){return!t||!t.from&&!t.to?!0:(Array.isArray(e)?e:[e]).some(r=>{const o=p(r);return o>0&&(!t.from||o>=t.from)&&(!t.to||o<t.to)})}const k=e=>[e?.createdAt,e?.updatedAt];function W(e,t,n=k){const r=Array.isArray(e)?e:[];return!t||!t.from&&!t.to?r:r.filter(o=>C(n(o),t))}const T=["January","February","March","April","May","June","July","August","September","October","November","December"],A=["Su","Mo","Tu","We","Th","Fr","Sa"];function d(e,t,n){const r=new Date(e),o=`${T[r.getMonth()].slice(0,3)} ${r.getDate()}`;return n||r.getFullYear()!==new Date(t).getFullYear()?`${o}, ${r.getFullYear()}`:o}function N(e,{now:t=Date.now()}={}){if(!e||!e.from&&!e.to)return"";const n=h(t);if(M(e))return e.from===n?"Today":e.from===l(n,-1)?"Yesterday":d(e.from,t);if(!e.to)return`Since ${d(e.from,t)}`;const r=e.to-1;if(!e.from)return`Until ${d(r,t)}`;const o=new Date(e.from),a=new Date(r);if(o.getFullYear()!==a.getFullYear())return`${d(e.from,t,!0)} – ${d(r,t,!0)}`;if(o.getMonth()===a.getMonth()){const u=o.getFullYear()!==new Date(t).getFullYear()?`, ${o.getFullYear()}`:"";return`${T[o.getMonth()].slice(0,3)} ${o.getDate()} – ${a.getDate()}${u}`}return`${d(e.from,t)} – ${d(r,t)}`}function B(e,{now:t=Date.now()}={}){const{range:n,terms:r}=x(e,{now:t});if(!n)return"";if(r.length===1&&r[0].key==="date"){const o=$.find(a=>a.id===r[0].value.toLowerCase());if(o)return o.label}return N(n,{now:t})}function J(e){const{terms:t}=x(e);return t.length!==1||t[0].key!=="date"?"":$.find(n=>n.id===t[0].value.toLowerCase())?.id||""}function _(e,t){const n=h(t),r=f(n,l(n,1));return M(e)?e.from===n?null:n<e.from?f(n,e.to):f(e.from,r.to):r}function K({year:e,month:t},n){const r=new Date(e,t+n,1);return{year:r.getFullYear(),month:r.getMonth()}}function P(e,t,{weekStart:n=0,now:r=Date.now()}={}){const o=new Date(e,t,1),a=(o.getDay()-n+7)%7,u=h(r),s=[];for(let i=0;i<6;i+=1){const c=[];for(let m=0;m<7;m+=1){const g=new Date(e,t,1-a+i*7+m),D=g.getTime();c.push({ts:D,key:y(D),day:g.getDate(),inMonth:g.getMonth()===o.getMonth(),today:D===u,future:D>u})}s.push(c)}return{year:o.getFullYear(),month:o.getMonth(),label:`${T[o.getMonth()]} ${o.getFullYear()}`,weekdays:A.map((i,c)=>A[(c+n)%7]),weeks:s}}function G(e,t=k){const n=new Map;for(const r of Array.isArray(e)?e:[]){const o=new Set;for(const a of[].concat(t(r)??[])){const u=p(a);u>0&&o.add(y(u))}for(const a of o)n.set(a,(n.get(a)||0)+1)}return n}function H(e,t,{limit:n=3,now:r=Date.now()}={}){if(!t||!t.from&&!t.to||!(e instanceof Map))return[];const o=[];for(const[a,u]of e){const s=/^(\d{4})-(\d{2})-(\d{2})$/.exec(a);if(!s||!u)continue;const i=new Date(Number(s[1]),Number(s[2])-1,Number(s[3])).getTime(),c=t.from&&i<t.from,m=t.to&&i>=t.to;!c&&!m||o.push({key:a,ts:i,count:u,away:c?t.from-i:i-t.to+1})}return o.sort((a,u)=>a.away-u.away).slice(0,Math.max(0,n)).sort((a,u)=>a.ts-u.ts).map(({key:a,ts:u,count:s})=>({key:a,ts:u,count:s,label:N(f(u,l(u,1)),{now:r})}))}function Q(e){try{const t=new Intl.Locale(e||new Intl.DateTimeFormat().resolvedOptions().locale),n=(typeof t.getWeekInfo=="function"?t.getWeekInfo():t.weekInfo)?.firstDay;if(n>=1&&n<=7)return n%7}catch{}return 0}export{$ as DATE_PRESETS,J as activePreset,l as addDays,B as dateFilterLabel,j as dateRangeOf,G as dayCounts,y as dayKey,N as describeDateRange,W as filterByDate,z as formatDateTerm,v as hasDateTerms,M as isSingleDay,Q as localeWeekStart,C as matchesDateRange,P as monthGrid,H as nearbyDays,x as parseDateQuery,_ as pickDay,L as resolveDateValue,I as setDateTerm,K as shiftMonth,h as startOfDay};
package/feature-map.js CHANGED
@@ -1 +1 @@
1
- const s=["chat","privacy","notes","knowledge","meetings","voice","automation","sync","runtime","browser"],t=[{id:"chat.streaming-turn",surface:"chat",title:"Streaming turns",what:"A turn streams into the thread through its tool rounds, with a stop.",shared:["turn-loop.js","tool-round.js"]},{id:"chat.toolset",surface:"chat",title:"Per-turn toolset",what:"The tools a turn may call, chosen per target and policy.",shared:["toolset.js","tool-dispatch.js"]},{id:"chat.slash-skills",surface:"chat",title:"Skills as /commands",what:"The user’s skills and the packages the bridge found, offered as slash commands in every composer.",shared:["slash-commands.js","skill-vars.js"]},{id:"chat.slash-builtins",surface:"chat",title:"Built-in /commands",what:"/search and /history as commands, not tools the model may or may not call.",shared:["slash-commands.js"]},{id:"chat.bug-report",surface:"chat",title:"Report a problem",what:"/bug and About → Report a problem: a prefilled GitHub issue with whitelisted, scrubbed diagnostics, checked against existing issues first.",shared:["bug-report.js"]},{id:"chat.suggestions",surface:"chat",title:"Empty-chat suggestions",what:"Prompt suggestions on an empty thread, from the page or the recent history.",shared:[]},{id:"chat.attachments",surface:"chat",title:"Attachments",what:"Text, PDF and by-reference files attached to a turn.",shared:["context-attachments.js","attached-paths.js","pdf-layout.js"]},{id:"chat.html-artifacts",surface:"chat",title:"HTML artifacts",what:"An HTML reply rendered in a sandbox, never in the panel.",shared:[]},{id:"chat.diagram-artifacts",surface:"chat",title:"Diagram artifacts",what:"A mermaid block becomes a Diagram | Code card with zoom and copy.",shared:[]},{id:"chat.model-routing",surface:"chat",title:"Auto model routing",what:"An Auto target picks a candidate per message and fails over on error.",shared:["model-candidates.js","route-strategies.js","route-decider.js","failover.js"]},{id:"chat.history-rag",surface:"chat",title:"History in the turn",what:"Past chats, notes and meetings retrieved into a turn automatically, not only on request.",shared:["sources-retrieval.js","text-search.js"]},{id:"chat.history-search-tool",surface:"chat",title:"history_search tool",what:"The model searches the local history and reads one record in full.",shared:["sources.js"]},{id:"chat.sideline",surface:"chat",title:"Sideline",what:"A side conversation beside the thread, on the same context.",shared:["sideline.js"]},{id:"chat.fast-path",surface:"chat",title:"Fast path",what:"A turn answered without the model when a local answer exists.",shared:["fast-path.js"]},{id:"chat.capability-tools",surface:"chat",title:"decide / rerank tools",what:"The model hands a judgement or an ordering to a small local model mid-turn.",shared:["capability-tools.js","capability-providers.js"]},{id:"chat.presence",surface:"chat",title:"Situational presence",what:"What the client knows about the moment (time, place, page) stated to the model as facts.",shared:["presence.js"]},{id:"chat.usage",surface:"chat",title:"Usage meter",what:"Tokens and cost per turn and per day.",shared:["usage.js","usage-pricing.js"]},{id:"chat.web-search",surface:"chat",title:"Web search",what:"Web search as a tool, client-side or through the gateway.",shared:["web-search.js","web-search-tool.js"]},{id:"chat.weather",surface:"chat",title:"Weather",what:"Weather as a tool.",shared:["weather.js","weather-tool.js"]},{id:"chat.event-log",surface:"chat",title:"Event log",what:"What happened in a turn, in order, with where the time went.",shared:["event.js","trajectory.js"]},{id:"chat.teams",surface:"chat",title:"Agent teams",what:"Several agents on one task with a board, a plan and a trail.",shared:["team.js","team-run.js"]},{id:"chat.mcp",surface:"chat",title:"MCP servers",what:"MCP servers as tools.",shared:["mcp-client.js","mcp-manager.js"]},{id:"chat.mcp-oauth",surface:"chat",title:"MCP sign-in",what:"Signing in to an MCP server that asks for OAuth.",shared:["mcp-oauth.js","mcp-signin.js"]},{id:"chat.omni-search",surface:"chat",title:"Omni search",what:"One palette searching notes, chats and meetings at once.",shared:["omni.js"]},{id:"chat.memory",surface:"chat",title:"Memory",what:"Facts remembered across conversations, and the tool that writes them.",shared:["memory.js","memory-tool.js"]},{id:"chat.tool-result-shield",surface:"chat",title:"Tool-result shield",what:"A tool result is redacted before the model sees it.",shared:["tool-result.js"]},{id:"chat.read-aloud",surface:"chat",title:"Read aloud",what:"A reply spoken as it streams.",shared:["speak-stream.js"]},{id:"chat.structured-output",surface:"chat",title:"Typed answers",what:"A model call that expects a shape goes through one schema.",shared:["structured.js"]},{id:"chat.media-transcript",surface:"chat",title:"Video transcripts",what:"“Summarise this video” from a caption track.",shared:["media-transcript.js"]},{id:"privacy.redaction",surface:"privacy",title:"On-device redaction",what:"PII redacted before a cloud model and restored on the way back.",shared:["redaction-tokens.js","redaction-dictionary.js"]},{id:"privacy.redaction-preview",surface:"privacy",title:"Show what the model sees",what:"The redacted text, by type, before it leaves.",shared:[]},{id:"privacy.access-log",surface:"privacy",title:"Access log",what:"What left this device, on the record.",shared:["observability.js"]},{id:"privacy.vault",surface:"privacy",title:"Vault",what:"Records kept encrypted at rest.",shared:["vault.js"]},{id:"privacy.encrypted-backup",surface:"privacy",title:"Encrypted backup",what:"A backup sealed with the user’s key.",shared:["backup-envelope.js"]},{id:"notes.editor",surface:"notes",title:"Live-preview editor",what:"The note editor with regions, follow-tail and rich paste.",shared:[]},{id:"notes.images",surface:"notes",title:"Images in a note",what:"A picture pasted or dropped into a note, stored beside it and placed by reference.",shared:["note-images.js"]},{id:"notes.cowriter",surface:"notes",title:"Co-writer",what:"A writer swarm working the note, routed per section.",shared:["cowriter.js","cowriter-router.js"]},{id:"notes.fact-check",surface:"notes",title:"Fact check",what:"Claims in a note checked against sources.",shared:["cowriter-factcheck.js"]},{id:"notes.research",surface:"notes",title:"Note research",what:"Research gathered for a note from the web and the history.",shared:["note-research.js"]},{id:"notes.graph",surface:"notes",title:"Note graph",what:"Links and mentions between notes as a graph.",shared:["note-graph.js"]},{id:"notes.tags",surface:"notes",title:"Tags",what:"Tags on notes, with tag queries in search.",shared:["tags.js"]},{id:"knowledge.briefs",surface:"knowledge",title:"Briefs",what:"Briefs read with first-class citations.",shared:["knowledge.js"]},{id:"knowledge.brief-curation",surface:"knowledge",title:"Brief curation",what:"Briefs derived from the sources — the curator.",shared:["knowledge-derive.js","synthesis.js"]},{id:"knowledge.topics",surface:"knowledge",title:"Topics",what:"Topics extracted from chats, notes and meetings, and the index they build.",shared:[]},{id:"knowledge.corpus",surface:"knowledge",title:"Corpus overview",what:"What the local corpus holds, by kind and by time.",shared:[]},{id:"meetings.live-transcript",surface:"meetings",title:"Live transcript",what:"A meeting transcribed as it happens, kept as a record.",shared:["meeting-shape.js","meeting-text.js"]},{id:"meetings.charts",surface:"meetings",title:"Meeting charts",what:"Who spoke, how much, when.",shared:[]},{id:"meetings.insights",surface:"meetings",title:"Meeting insights",what:"Decisions, actions and the moments that need you, from the transcript.",shared:["meeting-insights.js","meeting-analyzers.js"]},{id:"meetings.monitors",surface:"meetings",title:"Monitors",what:"A profile watching meetings for what matters to it.",shared:["monitor-profile.js"]},{id:"meetings.transcript-import",surface:"meetings",title:"Transcript import",what:"A transcript pasted from Zoom, Teams or Meet becomes a meeting record.",shared:[]},{id:"meetings.speaker-names",surface:"meetings",title:"Speaker names",what:"Who “Speaker 1” is: named in the transcript or by typing “Speaker 1 is Sarah” in the chat, applied on every read and to every later line.",shared:["meeting-speakers.js","meeting-speakers-typed.js"]},{id:"meetings.voice-commands",surface:"meetings",title:"Spoken commands",what:"Commands spoken during a meeting, matched from the transcript.",shared:["voice-intents.js"]},{id:"meetings.audio-scribe",surface:"meetings",title:"Audio scribe",what:"A meeting with no captions, a desktop app, a playing video or a conversation in the room, transcribed locally from what is playing and the microphone as separate channels — a mic held by one person is You, everything else is diarized.",shared:["voice-channels.js","voice-scribe.js","speaker-cluster.js"]},{id:"voice.dictation",surface:"voice",title:"Dictation",what:"Speak into any composer.",shared:["voice-vad.js"]},{id:"voice.mode",surface:"voice",title:"Voice mode",what:"A spoken conversation with barge-in.",shared:["voice-loop.js"]},{id:"voice.tts",surface:"voice",title:"Speech",what:"Text to speech with the chosen voice, including the user’s own.",shared:["voice-speaker.js","voice-models.js"]},{id:"automation.jobs",surface:"automation",title:"Jobs",what:"Scheduled and triggered work that runs without a turn.",shared:["job.js","schedule.js"]},{id:"automation.text-triggers",surface:"automation",title:"Text triggers",what:"A phrase arriving anywhere, matched against the user’s jobs.",shared:[]},{id:"automation.alert-sound",surface:"automation",title:"Timer sound",what:"A timer that goes off makes a sound, not only a notification.",shared:[]},{id:"automation.widgets",surface:"automation",title:"Widgets",what:"Small HTML plugins the user or an agent wrote, hosted in a frame.",shared:["widget.js"]},{id:"automation.projects",surface:"automation",title:"Projects",what:"A folder an agent works in, with its runs.",shared:["project.js","project-run.js"]},{id:"automation.skills",surface:"automation",title:"Skills",what:"Skills written by the user or found on the machine.",shared:["skill-manifest.js","skill-runtime.js","skill-sources.js"]},{id:"automation.recipes",surface:"automation",title:"Recipes",what:"Saved multi-step prompts.",shared:["recipe.js"]},{id:"automation.channels",surface:"automation",title:"Channels",what:"Telegram and WhatsApp surfaces to the agents.",shared:[]},{id:"automation.channel-pairing-qr",surface:"automation",title:"Pairing QR",what:"The channel pairing link as a QR code, read from another device.",shared:[]},{id:"sync.auto-backup",surface:"sync",title:"Auto backup",what:"A backup written on a schedule.",shared:["backup-records.js"]},{id:"sync.warm",surface:"sync",title:"Warm sync",what:"Records pulled from and pushed to the gateway.",shared:["sync-plan.js"]},{id:"sync.prefs",surface:"sync",title:"Settings travel",what:"Every setting shared between the clients, live.",shared:["client-prefs.js"]},{id:"sync.link",surface:"sync",title:"Link your phone",what:"A phone paired by QR reaches this computer’s models, agents and knowledge through the end-to-end encrypted relay.",shared:["link-connect.js","link-protocol.js","link-noise.js","qr.js"]},{id:"sync.drive",surface:"sync",title:"Google Drive backup",what:"Backups to and from the user’s Drive.",shared:["drive-backup.js"]},{id:"runtime.model-place",surface:"runtime",title:"One model place",what:"Every model of every type — chat, vision, embeddings, speech, entity recognition, decisions, ranking — added by type and runtime, listed in one place with where it runs and which jobs may use it.",shared:["model-roles.js","capability-uses.js","model-entries.js"]},{id:"runtime.model-fusion",surface:"runtime",title:"Model fusion",what:"Several models as one — a union for recall (the entity detector with companions), a draft + target for speed (a server drafting with a small model or the model’s MTP head), a fallback for reliability (the next member answers when one is down) — shown with their members in the model place.",shared:["model-fusion.js"]},{id:"runtime.license",surface:"runtime",title:"Licence",what:"Pro and Team verified offline against the signed token.",shared:["entitlement.js"]},{id:"runtime.free-caps",surface:"runtime",title:"Free caps",what:"The Free limits on the workspace surfaces, asked the same way everywhere.",shared:["entitlement.js"]},{id:"runtime.managed",surface:"runtime",title:"Managed mode",what:"The organisation’s configuration, pushed by IT.",shared:[]},{id:"runtime.updates",surface:"runtime",title:"Updates",what:"The client, the gateway and the bridge know when a newer version exists.",shared:[]},{id:"runtime.bridge-health",surface:"runtime",title:"Runtime health",what:"The bridge and the gateway watched, with what to do when one is down.",shared:[]},{id:"runtime.local-pairing",surface:"runtime",title:"Local pairing",what:"This client paired with the local servers by token or pin.",shared:[]},{id:"runtime.model-roles",surface:"runtime",title:"What runs where",what:"Every model in use by job, where it runs, a jump to swap it.",shared:["model-roles.js"]},{id:"browser.page-actions",surface:"browser",title:"Page actions",what:"The agent acts on the open page.",shared:[]},{id:"browser.page-tools",surface:"browser",title:"Page tools",what:"The open page read, matched and calibrated as a tool.",shared:[]},{id:"browser.canvas",surface:"browser",title:"Canvas adapters",what:"Web apps (docs, sheets, whiteboards) driven through their canvas.",shared:[]},{id:"browser.in-browser-model",surface:"browser",title:"In-browser model",what:"A model run in the browser on WebGPU.",shared:[]},{id:"browser.floating-launcher",surface:"browser",title:"Floating launcher",what:"The button on web pages that opens the panel.",shared:[]}];function r(e){return e?t.filter(a=>a.surface===e):t.slice()}function i(){return t.map(e=>e.id)}export{t as FEATURES,s as SURFACES,i as featureIds,r as listFeatures};
1
+ const s=["chat","privacy","notes","knowledge","meetings","voice","automation","sync","runtime","browser"],t=[{id:"chat.streaming-turn",surface:"chat",title:"Streaming turns",what:"A turn streams into the thread through its tool rounds, with a stop.",shared:["turn-loop.js","tool-round.js"]},{id:"chat.toolset",surface:"chat",title:"Per-turn toolset",what:"The tools a turn may call, chosen per target and policy.",shared:["toolset.js","tool-dispatch.js"]},{id:"chat.slash-skills",surface:"chat",title:"Skills as /commands",what:"The user’s skills and the packages the bridge found, offered as slash commands in every composer.",shared:["slash-commands.js","skill-vars.js"]},{id:"chat.slash-builtins",surface:"chat",title:"Built-in /commands",what:"/search and /history as commands, not tools the model may or may not call.",shared:["slash-commands.js"]},{id:"chat.bug-report",surface:"chat",title:"Report a problem",what:"/bug and About → Report a problem: a prefilled GitHub issue with whitelisted, scrubbed diagnostics, checked against existing issues first.",shared:["bug-report.js"]},{id:"chat.suggestions",surface:"chat",title:"Empty-chat suggestions",what:"Prompt suggestions on an empty thread, from the page or the recent history.",shared:[]},{id:"chat.attachments",surface:"chat",title:"Attachments",what:"Text, PDF and by-reference files attached to a turn.",shared:["context-attachments.js","attached-paths.js","pdf-layout.js"]},{id:"chat.html-artifacts",surface:"chat",title:"HTML artifacts",what:"An HTML reply rendered in a sandbox, never in the panel.",shared:[]},{id:"chat.diagram-artifacts",surface:"chat",title:"Diagram artifacts",what:"A mermaid block becomes a Diagram | Code card with zoom and copy.",shared:[]},{id:"chat.model-routing",surface:"chat",title:"Auto model routing",what:"An Auto target picks a candidate per message and fails over on error.",shared:["model-candidates.js","route-strategies.js","route-decider.js","failover.js"]},{id:"chat.history-rag",surface:"chat",title:"History in the turn",what:"Past chats, notes and meetings retrieved into a turn automatically, not only on request.",shared:["sources-retrieval.js","text-search.js"]},{id:"chat.history-search-tool",surface:"chat",title:"history_search tool",what:"The model searches the local history and reads one record in full.",shared:["sources.js"]},{id:"chat.sideline",surface:"chat",title:"Sideline",what:"A side conversation beside the thread, on the same context.",shared:["sideline.js"]},{id:"chat.fast-path",surface:"chat",title:"Fast path",what:"A turn answered without the model when a local answer exists.",shared:["fast-path.js"]},{id:"chat.capability-tools",surface:"chat",title:"decide / rerank tools",what:"The model hands a judgement or an ordering to a small local model mid-turn.",shared:["capability-tools.js","capability-providers.js"]},{id:"chat.presence",surface:"chat",title:"Situational presence",what:"What the client knows about the moment (time, place, page) stated to the model as facts.",shared:["presence.js"]},{id:"chat.usage",surface:"chat",title:"Usage meter",what:"Tokens and cost per turn and per day.",shared:["usage.js","usage-pricing.js"]},{id:"chat.web-search",surface:"chat",title:"Web search",what:"Web search as a tool, client-side or through the gateway.",shared:["web-search.js","web-search-tool.js"]},{id:"chat.weather",surface:"chat",title:"Weather",what:"Weather as a tool.",shared:["weather.js","weather-tool.js"]},{id:"chat.event-log",surface:"chat",title:"Event log",what:"What happened in a turn, in order, with where the time went.",shared:["event.js","trajectory.js"]},{id:"chat.teams",surface:"chat",title:"Agent teams",what:"Several agents on one task with a board, a plan and a trail.",shared:["team.js","team-run.js"]},{id:"chat.mcp",surface:"chat",title:"MCP servers",what:"MCP servers as tools.",shared:["mcp-client.js","mcp-manager.js"]},{id:"chat.mcp-oauth",surface:"chat",title:"MCP sign-in",what:"Signing in to an MCP server that asks for OAuth.",shared:["mcp-oauth.js","mcp-signin.js"]},{id:"chat.omni-search",surface:"chat",title:"Omni search",what:"One palette searching notes, chats and meetings at once.",shared:["omni.js"]},{id:"chat.date-filter",surface:"chat",title:"Calendar filter",what:"A calendar on every list and search of chats, notes and meetings: pick a day or a span, or type date:2026-09-30, and only what was made or changed then is listed.",shared:["date-filter.js"]},{id:"chat.memory",surface:"chat",title:"Memory",what:"Facts remembered across conversations, and the tool that writes them.",shared:["memory.js","memory-tool.js"]},{id:"chat.tool-result-shield",surface:"chat",title:"Tool-result shield",what:"A tool result is redacted before the model sees it.",shared:["tool-result.js"]},{id:"chat.read-aloud",surface:"chat",title:"Read aloud",what:"A reply spoken as it streams.",shared:["speak-stream.js"]},{id:"chat.structured-output",surface:"chat",title:"Typed answers",what:"A model call that expects a shape goes through one schema.",shared:["structured.js"]},{id:"chat.media-transcript",surface:"chat",title:"Video transcripts",what:"“Summarise this video” from a caption track.",shared:["media-transcript.js"]},{id:"privacy.redaction",surface:"privacy",title:"On-device redaction",what:"PII redacted before a cloud model and restored on the way back.",shared:["redaction-tokens.js","redaction-dictionary.js"]},{id:"privacy.redaction-preview",surface:"privacy",title:"Show what the model sees",what:"The redacted text, by type, before it leaves.",shared:[]},{id:"privacy.access-log",surface:"privacy",title:"Access log",what:"What left this device, on the record.",shared:["observability.js"]},{id:"privacy.vault",surface:"privacy",title:"Vault",what:"Records kept encrypted at rest.",shared:["vault.js"]},{id:"privacy.encrypted-backup",surface:"privacy",title:"Encrypted backup",what:"A backup sealed with the user’s key.",shared:["backup-envelope.js"]},{id:"notes.editor",surface:"notes",title:"Live-preview editor",what:"The note editor with regions, follow-tail and rich paste.",shared:[]},{id:"notes.images",surface:"notes",title:"Images in a note",what:"A picture pasted or dropped into a note, stored beside it and placed by reference.",shared:["note-images.js"]},{id:"notes.cowriter",surface:"notes",title:"Co-writer",what:"A writer swarm working the note, routed per section.",shared:["cowriter.js","cowriter-router.js"]},{id:"notes.fact-check",surface:"notes",title:"Fact check",what:"Claims in a note checked against sources.",shared:["cowriter-factcheck.js"]},{id:"notes.research",surface:"notes",title:"Note research",what:"Research gathered for a note from the web and the history.",shared:["note-research.js"]},{id:"notes.graph",surface:"notes",title:"Note graph",what:"Links and mentions between notes as a graph.",shared:["note-graph.js"]},{id:"notes.tags",surface:"notes",title:"Tags",what:"Tags on notes, with tag queries in search.",shared:["tags.js"]},{id:"knowledge.briefs",surface:"knowledge",title:"Briefs",what:"Briefs read with first-class citations.",shared:["knowledge.js"]},{id:"knowledge.brief-curation",surface:"knowledge",title:"Brief curation",what:"Briefs derived from the sources — the curator.",shared:["knowledge-derive.js","synthesis.js"]},{id:"knowledge.topics",surface:"knowledge",title:"Topics",what:"Topics extracted from chats, notes and meetings, and the index they build.",shared:[]},{id:"knowledge.corpus",surface:"knowledge",title:"Corpus overview",what:"What the local corpus holds, by kind and by time.",shared:[]},{id:"meetings.live-transcript",surface:"meetings",title:"Live transcript",what:"A meeting transcribed as it happens, kept as a record.",shared:["meeting-shape.js","meeting-text.js"]},{id:"meetings.charts",surface:"meetings",title:"Meeting charts",what:"Who spoke, how much, when.",shared:[]},{id:"meetings.insights",surface:"meetings",title:"Meeting insights",what:"Decisions, actions and the moments that need you, from the transcript.",shared:["meeting-insights.js","meeting-analyzers.js"]},{id:"meetings.monitors",surface:"meetings",title:"Monitors",what:"A profile watching meetings for what matters to it.",shared:["monitor-profile.js"]},{id:"meetings.transcript-import",surface:"meetings",title:"Transcript import",what:"A transcript pasted from Zoom, Teams or Meet becomes a meeting record.",shared:[]},{id:"meetings.speaker-names",surface:"meetings",title:"Speaker names",what:"Who “Speaker 1” is: named in the transcript or by typing “Speaker 1 is Sarah” in the chat, applied on every read and to every later line.",shared:["meeting-speakers.js","meeting-speakers-typed.js"]},{id:"meetings.voice-commands",surface:"meetings",title:"Spoken commands",what:"Commands spoken during a meeting, matched from the transcript.",shared:["voice-intents.js"]},{id:"meetings.audio-scribe",surface:"meetings",title:"Audio scribe",what:"A meeting with no captions, a desktop app, a playing video or a conversation in the room, transcribed locally from what is playing and the microphone as separate channels — a mic held by one person is You, everything else is diarized.",shared:["voice-channels.js","voice-scribe.js","speaker-cluster.js"]},{id:"voice.dictation",surface:"voice",title:"Dictation",what:"Speak into any composer.",shared:["voice-vad.js"]},{id:"voice.mode",surface:"voice",title:"Voice mode",what:"A spoken conversation with barge-in.",shared:["voice-loop.js"]},{id:"voice.tts",surface:"voice",title:"Speech",what:"Text to speech with the chosen voice, including the user’s own.",shared:["voice-speaker.js","voice-models.js"]},{id:"automation.jobs",surface:"automation",title:"Jobs",what:"Scheduled and triggered work that runs without a turn.",shared:["job.js","schedule.js"]},{id:"automation.text-triggers",surface:"automation",title:"Text triggers",what:"A phrase arriving anywhere, matched against the user’s jobs.",shared:[]},{id:"automation.alert-sound",surface:"automation",title:"Timer sound",what:"A timer that goes off makes a sound, not only a notification.",shared:[]},{id:"automation.widgets",surface:"automation",title:"Widgets",what:"Small HTML plugins the user or an agent wrote, hosted in a frame.",shared:["widget.js"]},{id:"automation.projects",surface:"automation",title:"Projects",what:"A folder an agent works in, with its runs.",shared:["project.js","project-run.js"]},{id:"automation.skills",surface:"automation",title:"Skills",what:"Skills written by the user or found on the machine.",shared:["skill-manifest.js","skill-runtime.js","skill-sources.js"]},{id:"automation.recipes",surface:"automation",title:"Recipes",what:"Saved multi-step prompts.",shared:["recipe.js"]},{id:"automation.channels",surface:"automation",title:"Channels",what:"Telegram and WhatsApp surfaces to the agents.",shared:[]},{id:"automation.channel-pairing-qr",surface:"automation",title:"Pairing QR",what:"The channel pairing link as a QR code, read from another device.",shared:[]},{id:"sync.auto-backup",surface:"sync",title:"Auto backup",what:"A backup written on a schedule.",shared:["backup-records.js"]},{id:"sync.warm",surface:"sync",title:"Warm sync",what:"Records pulled from and pushed to the gateway.",shared:["sync-plan.js"]},{id:"sync.prefs",surface:"sync",title:"Settings travel",what:"Every setting shared between the clients, live.",shared:["client-prefs.js"]},{id:"sync.link",surface:"sync",title:"Link your phone",what:"A phone paired by QR reaches this computer’s models, agents and knowledge through the end-to-end encrypted relay.",shared:["link-connect.js","link-protocol.js","link-noise.js","qr.js"]},{id:"sync.drive",surface:"sync",title:"Google Drive backup",what:"Backups to and from the user’s Drive.",shared:["drive-backup.js"]},{id:"runtime.model-place",surface:"runtime",title:"One model place",what:"Every model of every type — chat, vision, embeddings, speech, entity recognition, decisions, ranking — added by type and runtime, listed in one place with where it runs and which jobs may use it.",shared:["model-roles.js","capability-uses.js","model-entries.js"]},{id:"runtime.model-fusion",surface:"runtime",title:"Model fusion",what:"Several models as one — a union for recall (the entity detector with companions), a draft + target for speed (a server drafting with a small model or the model’s MTP head), a fallback for reliability (the next member answers when one is down) — shown with their members in the model place.",shared:["model-fusion.js"]},{id:"runtime.license",surface:"runtime",title:"Licence",what:"Pro and Team verified offline against the signed token.",shared:["entitlement.js"]},{id:"runtime.free-caps",surface:"runtime",title:"Free caps",what:"The Free limits on the workspace surfaces, asked the same way everywhere.",shared:["entitlement.js"]},{id:"runtime.managed",surface:"runtime",title:"Managed mode",what:"The organisation’s configuration, pushed by IT.",shared:[]},{id:"runtime.updates",surface:"runtime",title:"Updates",what:"The client, the gateway and the bridge know when a newer version exists.",shared:[]},{id:"runtime.bridge-health",surface:"runtime",title:"Runtime health",what:"The bridge and the gateway watched, with what to do when one is down.",shared:[]},{id:"runtime.local-pairing",surface:"runtime",title:"Local pairing",what:"This client paired with the local servers by token or pin.",shared:[]},{id:"runtime.model-roles",surface:"runtime",title:"What runs where",what:"Every model in use by job, where it runs, a jump to swap it.",shared:["model-roles.js"]},{id:"browser.page-actions",surface:"browser",title:"Page actions",what:"The agent acts on the open page.",shared:[]},{id:"browser.page-tools",surface:"browser",title:"Page tools",what:"The open page read, matched and calibrated as a tool.",shared:[]},{id:"browser.canvas",surface:"browser",title:"Canvas adapters",what:"Web apps (docs, sheets, whiteboards) driven through their canvas.",shared:[]},{id:"browser.in-browser-model",surface:"browser",title:"In-browser model",what:"A model run in the browser on WebGPU.",shared:[]},{id:"browser.floating-launcher",surface:"browser",title:"Floating launcher",what:"The button on web pages that opens the panel.",shared:[]}];function r(e){return e?t.filter(a=>a.surface===e):t.slice()}function i(){return t.map(e=>e.id)}export{t as FEATURES,s as SURFACES,i as featureIds,r as listFeatures};
package/harness-cards.js CHANGED
@@ -1 +1 @@
1
- import{EventError as a}from"./event.js";const l=Object.freeze({claude:{label:"Claude Code",vendor:"Anthropic",hosts:["api.anthropic.com"],repoint:"limited",how:"ANTHROPIC_BASE_URL (+ ANTHROPIC_AUTH_TOKEN) to an Anthropic-compatible endpoint — this gateway’s /v1/messages qualifies",dirs:{flag:"--add-dir",repeat:!0},defaultModel:"cloud",session:{resume:["--resume","{id}"],off:["--no-session-persistence"],name:["--name","{name}"]}},codex:{label:"Codex",vendor:"OpenAI",hosts:["api.openai.com","chatgpt.com"],repoint:"limited",how:"OPENAI_BASE_URL, or a model_provider in ~/.codex/config.toml pointing at an OpenAI-compatible endpoint",dirs:{flag:"--add-dir",repeat:!0},defaultModel:"cloud",ownSandbox:"computer use (controlling the browser and other apps)",session:{resume:["resume","{id}"],off:["--ephemeral"]}},antigravity:{label:"Antigravity",vendor:"Google",hosts:["*.googleapis.com"],repoint:"no",how:"",dirs:null,defaultModel:"cloud"},kiro:{label:"Kiro",vendor:"AWS",hosts:["*.amazonaws.com"],repoint:"no",how:"",dirs:null,defaultModel:"cloud"},copilot:{label:"GitHub Copilot",vendor:"GitHub",hosts:["api.githubcopilot.com","*.github.com"],repoint:"no",how:"",dirs:{flag:"--add-dir",repeat:!0},defaultModel:"cloud",session:{resume:["--session-id","{id}"],off:null,name:["--name","{name}"]}},deepseek:{label:"DeepSeek Harness",vendor:"DeepSeek",hosts:["api.deepseek.com"],repoint:"limited",how:"its base URL setting, to an OpenAI-compatible endpoint",dirs:null,defaultModel:"cloud"},opencode:{label:"OpenCode",vendor:null,hosts:[],repoint:"yes",how:"a provider in its config — any OpenAI-compatible endpoint, Ollama, LM Studio, or this gateway",dirs:null,defaultModel:"configurable",session:{resume:["--session","{id}"],off:null,name:["--title","{name}"]}},pi:{label:"Pi",vendor:null,hosts:[],repoint:"yes",how:"a provider in its config — any OpenAI-compatible endpoint, or this gateway",dirs:null,defaultModel:"configurable"},hermes:{label:"Hermes",vendor:null,hosts:[],repoint:"yes",how:"a provider in its config — a local model is a first-class choice",dirs:null,defaultModel:"configurable"}}),p=n=>String(n||"").toLowerCase().replace(/[^a-z]/g,""),d={claudecode:"claude",githubcopilot:"copilot",copilotcli:"copilot",deepseekharness:"deepseek",gemini:"antigravity",geminicli:"antigravity"};function s(n){const o=p(n);if(l[o])return{id:o,...l[o]};if(d[o])return{id:d[o],...l[d[o]]};const e=Object.entries(l).find(([i,t])=>o.includes(i)||o.includes(p(t.label)));return e?{id:e[0],...e[1]}:null}function m(n,{repointed:o=null}={}){const e=s(n);return e?o?{egress:"configurable",where:`a coding agent · model at ${o}`,note:`Re-pointed by you; ${e.how||"its own setting"}.`}:e.repoint==="yes"?{egress:"configurable",where:"a coding agent · model of your choosing",note:`Its model is a setting of its own — ${e.how}. Until you set one, whatever it defaults to.`}:e.repoint==="limited"?{egress:"internet",where:`a coding agent · model at ${e.vendor}`,note:`The conversation goes to ${e.vendor} with your own login. It can be re-pointed: ${e.how}.`}:{egress:"internet",where:`a coding agent · model at ${e.vendor}`,note:`The conversation goes to ${e.vendor} with your own login; this agent cannot be pointed elsewhere.`}:{egress:"internet",where:"a coding agent · its own model, elsewhere",note:"No card for this agent — assume its model is a vendor’s until you know otherwise."}}function u(n){if(n==null)return null;if(typeof n=="string")return u({flag:n,repeat:!0});if(typeof n!="object"||Array.isArray(n))throw new a("SHAPE","dirs: must be { flag, repeat } or { flag, separator }");const o=String(n.flag||"").trim();if(!/^--?[A-Za-z][\w-]*$/.test(o))throw new a("SHAPE",`dirs: not a flag: ${JSON.stringify(n.flag)}`);const e=n.separator==null?null:String(n.separator);if(e!=null&&(e.length===0||/\s/.test(e)))throw new a("SHAPE","dirs: separator must be a non-empty run of non-space characters");return e!=null?{flag:o,separator:e}:{flag:o,repeat:!0}}function h({harness:n,roots:o=[],dirs:e}={}){const i=(Array.isArray(o)?o:[]).map(r=>String(r||"").trim()).filter(Boolean);if(!i.length)return[];const t=u(e!==void 0?e:s(n)?.dirs??null);return t?t.separator?[t.flag,i.join(t.separator)]:i.flatMap(r=>[t.flag,r]):[]}function w(n,o){try{return!!u(o!==void 0?o:s(n)?.dirs??null)}catch{return!1}}const f=/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/;function A({harness:n,mode:o,id:e="",name:i=""}={}){const t=s(n)?.session;if(!t)return[];if(o==="off")return Array.isArray(t.off)?[...t.off]:[];if(o==="name"){const r=String(i??"").replace(/\s+/g," ").trim().slice(0,120);return!r||r.startsWith("-")||!Array.isArray(t.name)?[]:t.name.map(c=>c==="{name}"?r:c)}if(o!=="resume"||!Array.isArray(t.resume))return[];if(!f.test(String(e)))throw new a("SHAPE",`harness session: ${JSON.stringify(String(e).slice(0,40))} is not a session id`);return t.resume.map(r=>r==="{id}"?String(e):r)}const y=n=>Array.isArray(s(n)?.session?.resume);export{l as HARNESS_CARDS,s as harnessCard,h as harnessDirArgs,m as harnessEgress,y as harnessResumes,A as harnessSessionArgs,w as harnessTakesDirs,u as normalizeDirsSpec};
1
+ import{EventError as a}from"./event.js";const l=Object.freeze({claude:{label:"Claude Code",vendor:"Anthropic",hosts:["api.anthropic.com"],repoint:"limited",how:"ANTHROPIC_BASE_URL (+ ANTHROPIC_AUTH_TOKEN) to an Anthropic-compatible endpoint — this gateway’s /v1/messages qualifies",dirs:{flag:"--add-dir",repeat:!0},defaultModel:"cloud",session:{resume:["--resume","{id}"],off:["--no-session-persistence"],name:["--name","{name}"]},envFrom:["~/.claude/settings.json","/etc/claude-code/managed-settings.json","/Library/Application Support/ClaudeCode/managed-settings.json"]},codex:{label:"Codex",vendor:"OpenAI",hosts:["api.openai.com","chatgpt.com"],repoint:"limited",how:"OPENAI_BASE_URL, or a model_provider in ~/.codex/config.toml pointing at an OpenAI-compatible endpoint",dirs:{flag:"--add-dir",repeat:!0},defaultModel:"cloud",ownSandbox:"computer use (controlling the browser and other apps)",session:{resume:["resume","{id}"],off:["--ephemeral"]}},antigravity:{label:"Antigravity",vendor:"Google",hosts:["*.googleapis.com"],repoint:"no",how:"",dirs:null,defaultModel:"cloud"},kiro:{label:"Kiro",vendor:"AWS",hosts:["*.amazonaws.com"],repoint:"no",how:"",dirs:null,defaultModel:"cloud"},copilot:{label:"GitHub Copilot",vendor:"GitHub",hosts:["api.githubcopilot.com","*.github.com"],repoint:"no",how:"",dirs:{flag:"--add-dir",repeat:!0},defaultModel:"cloud",session:{resume:["--session-id","{id}"],off:null,name:["--name","{name}"]}},deepseek:{label:"DeepSeek Harness",vendor:"DeepSeek",hosts:["api.deepseek.com"],repoint:"limited",how:"its base URL setting, to an OpenAI-compatible endpoint",dirs:null,defaultModel:"cloud"},opencode:{label:"OpenCode",vendor:null,hosts:[],repoint:"yes",how:"a provider in its config — any OpenAI-compatible endpoint, Ollama, LM Studio, or this gateway",dirs:null,defaultModel:"configurable",session:{resume:["--session","{id}"],off:null,name:["--title","{name}"]}},pi:{label:"Pi",vendor:null,hosts:[],repoint:"yes",how:"a provider in its config — any OpenAI-compatible endpoint, or this gateway",dirs:null,defaultModel:"configurable"},hermes:{label:"Hermes",vendor:null,hosts:[],repoint:"yes",how:"a provider in its config — a local model is a first-class choice",dirs:null,defaultModel:"configurable"}}),p=o=>String(o||"").toLowerCase().replace(/[^a-z]/g,""),d={claudecode:"claude",githubcopilot:"copilot",copilotcli:"copilot",deepseekharness:"deepseek",gemini:"antigravity",geminicli:"antigravity"};function s(o){const n=p(o);if(l[n])return{id:n,...l[n]};if(d[n])return{id:d[n],...l[d[n]]};const e=Object.entries(l).find(([i,t])=>n.includes(i)||n.includes(p(t.label)));return e?{id:e[0],...e[1]}:null}function m(o,{repointed:n=null}={}){const e=s(o);return e?n?{egress:"configurable",where:`a coding agent · model at ${n}`,note:`Re-pointed by you; ${e.how||"its own setting"}.`}:e.repoint==="yes"?{egress:"configurable",where:"a coding agent · model of your choosing",note:`Its model is a setting of its own — ${e.how}. Until you set one, whatever it defaults to.`}:e.repoint==="limited"?{egress:"internet",where:`a coding agent · model at ${e.vendor}`,note:`The conversation goes to ${e.vendor} with your own login. It can be re-pointed: ${e.how}.`}:{egress:"internet",where:`a coding agent · model at ${e.vendor}`,note:`The conversation goes to ${e.vendor} with your own login; this agent cannot be pointed elsewhere.`}:{egress:"internet",where:"a coding agent · its own model, elsewhere",note:"No card for this agent — assume its model is a vendor’s until you know otherwise."}}function u(o){if(o==null)return null;if(typeof o=="string")return u({flag:o,repeat:!0});if(typeof o!="object"||Array.isArray(o))throw new a("SHAPE","dirs: must be { flag, repeat } or { flag, separator }");const n=String(o.flag||"").trim();if(!/^--?[A-Za-z][\w-]*$/.test(n))throw new a("SHAPE",`dirs: not a flag: ${JSON.stringify(o.flag)}`);const e=o.separator==null?null:String(o.separator);if(e!=null&&(e.length===0||/\s/.test(e)))throw new a("SHAPE","dirs: separator must be a non-empty run of non-space characters");return e!=null?{flag:n,separator:e}:{flag:n,repeat:!0}}function h({harness:o,roots:n=[],dirs:e}={}){const i=(Array.isArray(n)?n:[]).map(r=>String(r||"").trim()).filter(Boolean);if(!i.length)return[];const t=u(e!==void 0?e:s(o)?.dirs??null);return t?t.separator?[t.flag,i.join(t.separator)]:i.flatMap(r=>[t.flag,r]):[]}function w(o,n){try{return!!u(n!==void 0?n:s(o)?.dirs??null)}catch{return!1}}const f=/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/;function A({harness:o,mode:n,id:e="",name:i=""}={}){const t=s(o)?.session;if(!t)return[];if(n==="off")return Array.isArray(t.off)?[...t.off]:[];if(n==="name"){const r=String(i??"").replace(/\s+/g," ").trim().slice(0,120);return!r||r.startsWith("-")||!Array.isArray(t.name)?[]:t.name.map(c=>c==="{name}"?r:c)}if(n!=="resume"||!Array.isArray(t.resume))return[];if(!f.test(String(e)))throw new a("SHAPE",`harness session: ${JSON.stringify(String(e).slice(0,40))} is not a session id`);return t.resume.map(r=>r==="{id}"?String(e):r)}const y=o=>Array.isArray(s(o)?.session?.resume);export{l as HARNESS_CARDS,s as harnessCard,h as harnessDirArgs,m as harnessEgress,y as harnessResumes,A as harnessSessionArgs,w as harnessTakesDirs,u as normalizeDirsSpec};
package/index.js CHANGED
@@ -1 +1 @@
1
- import{CURRENT_VERSION as o,EVENT_TYPES as t,ALL_TYPES as a,ACTOR_KINDS as i,SCOPE_KINDS as s,CLASSES as n,EFFECTS as S,EGRESS as l,EventError as E,validateEvent as m,isValidEvent as c,createAppender as p}from"./event.js";import{REF_KINDS as _,RESOLUTION as d,makeRef as A,isRef as R,resolveRef as f}from"./ref.js";import{linearize as u,compareEvents as O,causesAreWellFormed as N}from"./order.js";import{pendingQueue as C,isQueued as M,dequeue as P,moveQueued as L,promoteQueued as x}from"./queue.js";import{groupModels as F,filterSections as D,defaultModelId as k,modelSummary as y,withRecent as U,rememberRecent as b}from"./model-picker.js";import{composerChips as w,chipText as B}from"./composer-chips.js";import{NOTE_ACTIONS as H,NOTE_ACTION_ORDER as K,NOTE_ACTION_TEMPERATURE as V,NOTE_ACTION_ERRORS as W,NOTE_COMMANDS as X,NOTE_COMMAND_TEMPERATURE as Y,NOTE_COMMAND_MAX_TOKENS as z,frameNoteAction as J,noteActionLabel as j,noteActionItems as Q,filterNoteActions as q,commandLineAt as Z,triggerQueryAt as $}from"./note-actions.js";import{parseAgentMention as re,agentMentionAt as oe,parseSkillMention as te,mergeSkillPrompt as ae,findSkillByName as ie,findTargetByName as se,mentionAnswerPrefix as ne}from"./note-mentions.js";import{wikiQueryAt as le,rankLinkTargets as Ee}from"./note-links.js";import{SWARM_ROLES as ce,roleById as pe,classifyModel as Te,supportsSubagents as _e,appoint as de,routeTeam as Ae}from"./cowriter-router.js";import{SEARCH_ENGINES as fe,RESULTS_PER_ENGINE as Ie,buildSearchUrl as ue,unwrapRedirect as Oe,isResultHost as Ne,pickResults as ge,mergeEngineResults as Ce,engineOrder as Me,offTopic as Pe,isSearchPage as Le}from"./web-search.js";import{PACER_DEFAULTS as he,classifyAnswer as Fe,createEnginePacer as De,searchPolitely as ke,retryAfterMs as ye}from"./engine-pacer.js";import{SEARCH_API_PRESETS as be,SearchApiError as ve,defineSearchApi as we,missingVars as Be,buildApiRequest as Ge,readApiResponse as He,apiEngine as Ke,DEFAULT_API_ENGINES as Ve,apiEnginesFrom as We,patchApiEntries as Xe,viewApiEntries as Ye,searchApiChoices as ze,apiTrialVerdict as Je}from"./search-api.js";import{SEARCH_STATUS as Qe,viaOf as qe,tagResults as Ze,searchStatus as $e,engineLabel as er,summarizeSearch as rr}from"./search-outcome.js";import{MAX_GRAPH_NODES as tr,buildNoteGraph as ar,egoGraph as ir,trimGraph as sr,graphStats as nr}from"./note-graph.js";import{lintText as lr,wordDiff as Er,filterTypoEdits as mr,editKey as cr,applyEdits as pr,COWRITER_SYSTEM as Tr,COWRITER_TEMPERATURE as _r}from"./cowriter.js";import{salientTerms as Ar,topicTerms as Rr,researchRelevance as fr,webQuery as Ir,researchSnippet as ur,rankResearchCards as Or,mergeResearchLanes as Nr}from"./note-research.js";import{PLAN_ROLES as Cr,PLAN_AUTHORS as Mr,PLAN_DECOMPOSE_SYSTEM as Pr,PLAN_DECOMPOSE_MAX_TOKENS as Lr,PLAN_DECOMPOSE_TEMPERATURE as xr,PLAN_SECTION_MAX_TOKENS as hr,PLAN_SECTION_TEMPERATURE as Fr,planSectionSystem as Dr,parsePlanTasks as kr,planTitleFor as yr,planParts as Ur,planBody as br,planAttribution as vr}from"./note-plan.js";import{REACH as Br,reachRank as Gr,reachSatisfies as Hr}from"./reach.js";import{UPCASTERS as Vr,upcast as Wr,upcastAll as Xr}from"./upcast.js";import{validateCapability as zr,validateInvocation as Jr,canSatisfy as jr,toModelSchema as Qr,toModelSchemas as qr}from"./capability.js";import{checkInvariants as $r,INVARIANTS as eo}from"./invariants.js";import{createMemoryAdapter as oo,createLogStore as to,createBlobStore as ao}from"./store.js";import{createRegistry as so,REGISTRY_STATES as no}from"./registry.js";import{defineSearchEngine as lo,reconcileEngines as Eo,attemptOrder as mo,ENGINE_KINDS as co,SearchEngineError as po,inheritEngineDefaults as To,ENGINES_REV as _o}from"./search-engines.js";import{getWeather as Ro,weatherUrl as fo,parseWeather as Io,formatWeather as uo,areaLabel as Oo,isAmbiguousLocation as No,WEATHER_HOST as go,WEATHER_TIMEOUT_MS as Co,WeatherError as Mo}from"./weather.js";import{defineToolGroup as Lo,createToolGroupRegistry as xo,ToolGroupError as ho}from"./tool-groups.js";import{toolNeedFor as Do,grantsNeededFor as ko,equipmentFor as yo,isPleasantry as Uo}from"./tool-need.js";import{housekeepingTarget as vo,hasSubstance as wo,isLocalHelper as Bo,isSystemModel as Go,lightestLocalHelper as Ho}from"./housekeeping.js";import{parseFlowchart as Vo,layoutFlowchart as Wo,renderFlowchartSvg as Xo}from"./flowchart.js";import{validateView as zo,validateViewInvocation as Jo,viewResult as jo}from"./view.js";import{validateWidget as qo,validateWidgetMessage as Zo,effectiveGrants as $o,widgetIcon as et,WIDGET_SURFACES as rt}from"./widget.js";import{fuseRRF as tt,planQueries as at,multiSearch as it}from"./rrf.js";import{SUBJECT_KINDS as nt,DEFAULT_THRESHOLD as St,MAX_SUBJECTS as lt,MAX_SUBJECT_CHARS as Et,normalizeSubject as mt,subjectKey as ct,subjectTokens as pt,isSubjectCandidate as Tt,aliasMap as _t,resolveSubjects as dt,earnsBrief as At,rankSubjects as Rt,REDACTION_TOKEN_TYPES as ft,isRedactionToken as It,SELF_LABELS as ut,isSelfLabel as Ot,stripQualifiers as Nt,suggestMerges as gt}from"./entity.js";import{BRIEF_STATES as Mt,CLAIM_KINDS as Pt,MAX_CLAIMS as Lt,MAX_CLAIM_REFS as xt,MAX_BRIEF_RECORDS as ht,MAX_BRIEF_CHARS as Ft,contentHash as Dt,briefId as kt,briefToText as yt,briefTerms as Ut,briefLinks as bt,checkKnowledgeInvariants as vt,parseBriefText as wt}from"./knowledge.js";import{deriveBrief as Gt,deriveBriefs as Ht,driftedRefs as Kt}from"./knowledge-derive.js";import{SYNTHESIS_SCHEMA as Wt,synthesisPrompt as Xt,claimsFromSynthesis as Yt,MAX_SYNTHESIS_CLAIMS as zt,MAX_EXCERPTS as Jt,MAX_EXCERPT_CHARS as jt}from"./synthesis.js";import{PROPOSAL_STATES as qt,SUPERSEDE_OVERLAP as Zt,propose as $t,accept as ea,reject as ra,diffProposal as oa,converge as ta,linkClaims as aa}from"./promotion.js";import{normalizeRecord as sa,normalizeRecords as na,wikilinksIn as Sa,redactedTokensIn as la,redactionCost as Ea,wantedPages as ma,orphanRecords as ca,duplicateTitles as pa,vocabularyDrift as Ta,mentionsFrom as _a,spanningQuestions as da,surveyCorpus as Aa,thresholdSweep as Ra,formatSurvey as fa,NEAR_TITLE_DISTANCE as Ia,SPAN_MIN_TERMS as ua}from"./curate.js";import{PDF_MAX_CHARS as Na,linesFromItems as ga,orderLines as Ca,paragraphsFromLines as Ma,pageTextFromItems as Pa,looksScanned as La,buildPdfDocument as xa}from"./pdf-layout.js";import{YOUTUBE_HOSTS as Fa,TRANSCRIPT_MAX_CHARS as Da,parseYouTubeUrl as ka,isYouTubeUrl as ya,captionTracksFromPlayerResponse as Ua,videoMetaFromPlayerResponse as ba,pickCaptionTrack as va,timedTextUrl as wa,parseTimedText as Ba,groupSegments as Ga,formatTimestamp as Ha,formatTranscript as Ka,buildTranscriptDocument as Va,transcriptFromTracks as Wa}from"./media-transcript.js";import{ACCESS_LOG_VERSION as Ya,ACCESS_LOG_MAX as za,redactAccessArgs as Ja,makeAccessEvent as ja,createAccessLog as Qa,makeStorageTier as qa,formatBytes as Za}from"./observability.js";import{routeGraph as ei,projectChain as ri}from"./route-graph.js";import{defineAdapter as ti,createAdapterRegistry as ai,AdapterError as ii}from"./adapters.js";import{linkifyCitations as ni,repairCitedLinks as Si,markdownUrl as li,sourcesFromToolText as Ei,createCitationCollector as mi,RETRIEVAL_TOOLS as ci}from"./citations.js";import{buildTrajectory as Ti,phasesOf as _i,lanesOf as di,filterEntries as Ai,displayName as Ri,ENTRY_KINDS as fi,threadsOf as Ii,threadTitle as ui,promptEntries as Oi,turnsOf as Ni,threadTree as gi}from"./trajectory.js";import{createTurnRunner as Mi,createStepRecorder as Pi,argsShape as Li,defineLoop as xi,LOOP_KINDS as hi,LoopError as Fi,abortCause as Di,errorFacts as ki}from"./loop.js";import{defineModel as Ui,defineMiddleware as bi,defineRouteStrategy as vi,createModelRouter as wi,signalsFrom as Bi,requirementsFor as Gi,requirementsForStep as Hi,preferenceFor as Ki,failoverOrder as Vi,pinnedOrderOf as Wi,FAILOVER_CLASS_GAP as Xi,FAILOVER_CAPABILITY_GAP as Yi,sameModelKey as zi,RouterError as Ji}from"./router.js";import{makeSourceStore as Qi,manifestText as qi,shortUrl as Zi,readSource as $i,sourceId as es}from"./sources-retrieval.js";import{classifySource as os,extractUrls as ts,hostMatches as as,meetReach as is,sourcePolicyFor as ss,sourceUrlsOf as ns,DEFAULT_INTERNAL_PATTERNS as Ss,INTERNAL_PATTERN_CATALOG as ls}from"./sources.js";import{defineRule as ms,createRuleEngine as cs,SUPPRESSED as ps,RuleError as Ts}from"./rules.js";import{VAULT_VERSION as ds,KDF_ITERATIONS as As,KDF_HASH as Rs,DEFAULT_LOCK_MS as fs,VaultError as Is,MAX_TITLE_CHARS as us,MAX_NOTE_CHARS as Os,MAX_SECRET_CHARS as Ns,MAX_ENTRIES as gs,createVault as Cs,unlockVault as Ms,deriveKey as Ps,sealEntry as Ls,openEntry as xs,validateEntry as hs,entryMeta as Fs,searchEntries as Ds,isLocked as ks,lockedSummary as ys,canAddEntry as Us,toB64 as bs,fromB64 as vs}from"./vault.js";import{SCHEDULE_KINDS as Bs,TRIGGER_KINDS as Gs,JOB_ACTIONS as Hs,MISSED_POLICIES as Ks,ScheduleError as Vs,validateSchedule as Ws,nextFireAt as Xs,occurrencesBetween as Ys,nextWakeAt as zs,parseCron as Js,defineTrigger as js,createTriggerRegistry as Qs,BUILTIN_TRIGGERS as qs,timerTrigger as Zs,meetingStartedTrigger as $s,meetingEndedTrigger as en,personJoinedTrigger as rn,phraseTrigger as on,topicTrigger as tn,questionTrigger as an,voiceCommandTrigger as sn,defineJob as nn,dueJobs as Sn,jobsForEvent as ln,occurrenceKey as En,clipText as mn,matchSummary as cn}from"./schedule.js";import{defineMeetingAnalyzer as Tn,createAnalyzerRegistry as _n,CADENCES as dn,AnalyzerError as An}from"./meeting-analyzers.js";import{DEFAULT_WAKE as fn,ASSISTANT_NAME as In,MAX_COMMANDS_PER_DELTA as un,DAYPART_HOUR as On,VoiceIntentError as Nn,compileWake as gn,wakeFor as Cn,findWakeCommand as Mn,parseCommand as Pn,commandsFromSegments as Ln,parseDuration as xn,parseClock as hn,parseWhen as Fn,parseNumberWords as Dn,normalizeSpeech as kn,tokenize as yn,editDistance as Un,defineVoiceIntent as bn,createVoiceIntentRegistry as vn,defaultVoiceIntents as wn,BUILTIN_VOICE_INTENTS as Bn,timerIntent as Gn,reminderIntent as Hn,scheduleIntent as Kn,noteIntent as Vn,monitorIntent as Wn,REFINEMENT_SCHEMA as Xn,refinementPrompt as Yn,refinementFormat as zn,parseRefinement as Jn,refinementStream as jn,settleRefinement as Qn,refineSpokenCommand as qn,isFillerSentence as Zn,gistText as $n,gistOpening as eS,commandLooksFinished as rS,sameUtterance as oS,createUtteranceGate as tS,UTTERANCE_SETTLE_MS as aS,UTTERANCE_DANGLING_MS as iS}from"./voice-intents.js";import{MAX_TOPICS as nS,MAX_TOPIC_CHARS as SS,TOPICS_SCHEMA as lS,topicsSchema as ES,topicsPrompt as mS,topicsFormat as cS,parseTopics as pS,normalizeTopic as TS,normalizeTopics as _S,topicsStream as dS,ENTITY_TYPES as AS,ENTITIES_SCHEMA as RS,entitiesPrompt as fS,entitiesFormat as IS,parseEntities as uS,coerceEntities as OS,entitiesStream as NS,MAX_SUGGESTIONS as gS,MAX_SUGGESTION_CHARS as CS,SUGGESTIONS_SCHEMA as MS,suggestionsPrompt as PS,suggestionsFormat as LS,parseSuggestions as xS,suggestionsStream as hS}from"./extraction.js";import{FIELD_TYPES as DS,RESPONSE_MODES as kS,StructuredError as yS,defineSchema as US,describeSchema as bS,toJsonSchema as vS,responseFormat as wS,unfence as BS,findJson as GS,rewriteJson as HS,repairJson as KS,isNothing as VS,coerce as WS,parseStructured as XS,createStructuredStream as YS}from"./structured.js";import{explainMcpError as JS,packageFromArgs as jS,isStaleMcpSession as QS,installHintFor as qS,missingCommandMessage as ZS,missingCommandIn as $S,normalizePlatform as el}from"./mcp-errors.js";import{parseSignInPrompt as ol,signInError as tl,signInFromError as al,signInToolResult as il,MCP_SIGN_IN_CODE as sl}from"./mcp-signin.js";import{parseAuthChallenge as Sl,wellKnownUrls as ll,canonicalResource as El,readResourceMetadata as ml,readAuthServerMetadata as cl,registrationRequest as pl,readRegistration as Tl,authorizeUrl as _l,tokenRequest as dl,readTokenResponse as Al,tokenExpired as Rl,authHeader as fl,discoverMcpAuth as Il,registerMcpClient as ul,fetchMcpToken as Ol,TOKEN_SKEW_MS as Nl}from"./mcp-oauth.js";import{toolTraits as Cl,bareToolName as Ml,canRunConcurrently as Pl,isCacheable as Ll,needsConfirmation as xl,traitsIndex as hl,effectiveToolName as Fl,parallelEligible as Dl,PARALLEL_LOCAL_RE as kl}from"./tool-traits.js";import{planToolRound as Ul,runToolRound as bl}from"./tool-round.js";import{createToolLoopGuard as wl,roundSignature as Bl,stableToolCallKey as Gl,toolMadeProgress as Hl,isLoopableTool as Kl,blockedToolResult as Vl,OBSERVATION_TOOLS as Wl,INPUT_PROGRESS_TOOLS as Xl}from"./tool-loop-guard.js";import{classifyFailure as zl,createModelHealth as Jl,COOLDOWN_MS as jl,UNAVAILABLE_REASONS as Ql,normModelName as ql}from"./model-health.js";import{runWithFailover as $l,failoverExhausted as eE,FAILOVER_MAX_ATTEMPTS as rE}from"./failover.js";import{sourcePolicySettings as tE,sourceGuardFor as aE,sourceGate as iE,isSourceGateError as sE,withinReach as nE}from"./source-gate.js";import{runTurnLoop as lE,createCallRunner as EE,roundCap as mE,withToolSystem as cE,describeCall as pE,stepResultText as TE,addUsage as _E,normalizeUsage as dE,openAiTranscript as AE,anthropicTranscript as RE,DEFAULT_MAX_ROUNDS as fE,DEFAULT_MAX_FINISH_TRIES as IE,FINISH_NUDGES as uE,LOOPING_NUDGE as OE,EXHAUSTED_NOTE as NE,ROUND_SEPARATOR as gE}from"./turn-loop.js";import{createResultStore as ME,shieldToolResult as PE,runResultQuery as LE,withResultShield as xE,describeShape as hE,compactValue as FE,resultToolSpec as DE,RESULT_TOOL_NAME as kE,DEFAULT_SHIELD as yE,DEFAULT_STORE as UE}from"./tool-result.js";import{PERMISSION_EVENT as vE,PERMISSION_ANSWERS as wE,PERMISSION_TIMEOUT_MS as BE,PERMISSION_TOOL_NAME as GE,permissionToolSpec as HE,isPermissionTool as KE,permissionRequestFromClaude as VE,permissionKeys as WE,describePermission as XE,permissionAnswer as YE,permissionAllowed as zE,rememberPermission as JE,recallPermission as jE,claudePermissionResponse as QE,permissionLine as qE,permissionIcon as ZE,createPermissionDesk as $E}from"./agent-permission.js";import{findTools as rm,findToolsResult as om,findActionArgs as tm,oneLiner as am,overlapRank as im,FIND_ACTION as sm}from"./tool-discovery.js";import{rankFused as Sm,fusedRanker as lm,rerankThrough as Em,toolDoc as mm,FUSED_CANDIDATES as cm,FUSED_BUDGET_MS as pm}from"./tool-rank-fused.js";import{makeToolHub as _m,hubSpec as dm,HUB_TOOL_NAME as Am,withHint as Rm,withLead as fm,lastUserText as Im}from"./tool-hub.js";import{withPromptedTools as Om,promptedTranscript as Nm,makePromptedTranscript as gm,promptedToolsSystem as Cm,parseToolCalls as Mm,visiblePrefix as Pm,toolChannel as Lm,transcriptFor as xm}from"./prompted-tools.js";import{REVEAL as Fm,revealStep as Dm,revealCut as km}from"./stream-reveal.js";import{buildToolset as Um}from"./toolset.js";import{DESCRIBE_ACTION as vm,actionMenu as wm,buildGroupDispatchSpec as Bm,validateAction as Gm,makeGroupDispatchExecutor as Hm,withGuidance as Km,makeDispatchProvider as Vm,estimateTokens as Wm}from"./tool-dispatch.js";import{FIND_TOOL_NAME as Ym,FIND_DESCRIPTION as zm,FIND_RESIDENT as Jm,findDispatchProvider as jm}from"./find-tool.js";import{WEB_SEARCH_TOOL_NAME as qm,WEB_SEARCH_TOOL_SYSTEM as Zm,WEB_SEARCH_SPEC as $m,searchResultsToText as ec,searchFailureOf as rc,webSearchToolProvider as oc}from"./web-search-tool.js";import{compressToolSpec as ac,compressToolSpecs as ic,compressionStats as sc,trimDescription as nc,COMPRESSION_MODES as Sc,DEFAULT_COMPRESSION as lc}from"./tool-schema.js";import{validateRecipe as mc,expandRecipe as cc,recipeParams as pc,mapInput as Tc,dryRunRecipe as _c,runPlan as dc,runRecipe as Ac,RecipeError as Rc,RECIPE_MODES as fc}from"./recipe.js";import{recipeToolProvider as uc,recipeToolSpec as Oc,describeRecipeForApproval as Nc,RECIPE_TOOL_NAME as gc}from"./recipe-tool.js";import{createBudget as Mc,validateBudget as Pc,normalizeBudget as Lc,usageOf as xc,BudgetError as hc,BUDGET_DIMENSIONS as Fc}from"./budget.js";import{defineTeam as kc,validateTeam as yc,normalizeTeam as Uc,normalizeGrants as bc,grantAllows as vc,scmAllows as wc,describeRole as Bc,TeamError as Gc,ROLE_MODES as Hc,MERGE_POLICIES as Kc,PLAN_MODES as Vc,GRANTABLE as Wc,WORK_GRANTS as Xc,GRANT_RE as Yc,AGENT_REF_RE as zc,STARTER_TEAMS as Jc,starterTeams as jc,blankTeam as Qc,teamFromForm as qc,slugTeamName as Zc}from"./team.js";import{fixedPlan as ep,parsePlan as rp,plannerPrompt as op,waves as tp,breakCycles as ap,TEAM_PLAN_SCHEMA as ip}from"./team-plan.js";import{createBoard as np,parseFindings as Sp,boardText as lp,findingsInstruction as Ep,toBriefClaims as mp,FINDINGS_SCHEMA as cp,FINDING_KINDS as pp,THREAD_KINDS as Tp,THREAD_STATUSES as _p,POST_KINDS as dp,POST_STATUSES as Ap,ASK_TYPES as Rp,emptyBoardState as fp,foldBoard as Ip,findingsOf as up}from"./team-board.js";import{boardToolProvider as Np,boardToolSpec as gp,createAnswerBox as Cp,withBoardTool as Mp,BOARD_TOOL_NAME as Pp,DEFAULT_ASK_TIMEOUT_MS as Lp}from"./board-tool.js";import{createRunCache as hp,withRunCache as Fp}from"./team-cache.js";import{emptyRun as kp,foldRun as yp,runFromEvents as Up,checkpointFrom as bp,isResumable as vp,LIVE_RUN_STATUSES as wp,RESUMABLE_RUN_STATUSES as Bp,spendOf as Gp,describeSpend as Hp,runState as Kp,priorWorkFor as Vp,STALLED_AFTER_MS as Wp}from"./team-record.js";import{validateProject as Yp,normalizeProject as zp,defineProject as Jp,canTransition as jp,blankProject as Qp,projectFromForm as qp,emptyProjectRecord as Zp,foldProject as $p,projectProgress as eT,ProjectError as rT,PROJECT_STATUSES as oT,PROJECT_ID_RE as tT}from"./project.js";import{validateJob as iT,normalizeJob as sT,defineJob as nT,canTransition as ST,applyAll as lT,jobToRole as ET,readyJobs as mT,blankJob as cT,jobFromForm as pT,JobError as TT,JOB_STATUSES as _T,JOB_ID_RE as dT}from"./job.js";import{validateGate as RT,normalizeGate as fT,effectiveGate as IT,gateAllows as uT,DEFAULT_GATE as OT,AUTONOMY as NT,HUMAN_FLAGS as gT,CHECKS as CT}from"./gate.js";import{runProject as PT,roundJobs as LT,teamForRound as xT,jobResults as hT,roundBudget as FT,parseJobs as DT,parseReview as kT,jobsPrompt as yT,reviewPrompt as UT,PROJECT_JOBS_SCHEMA as bT,PROJECT_REVIEW_SCHEMA as vT,ProjectRunError as wT,EXECUTIVE as BT,MAX_JOBS_PER_ROUND as GT,MAX_ROUNDS as HT,PROJECT_RUN_STATUSES as KT}from"./project-run.js";import{canonical as WT,sha256 as XT,makeEntry as YT,verifyChain as zT,attest as JT,verifyAttested as jT,summarize as QT,fit as qT,adjustSummary as ZT,normalizeEngine as $T,engineKey as e_,normalizeScm as r_,SCORECARD_ENTRY_KINDS as o_,ROLE_KINDS as t_,SCORECARD_VERSION as a_,ENGINE_KINDS as i_}from"./scorecard.js";import{ENGINE_KINDS as n_,ROUTE_PREFERS as S_,normalizePolicy as l_,normalizeEngineSpec as E_,validateEngineSpec as m_,engineRef as c_,engineKeyOf as p_,describeEngine as T_,tierOf as __}from"./engine.js";import{AGENT_ID_RE as A_,APPLIES_TO as R_,EGRESS_CLASSES as f_,ASSISTANT_ID as I_,AgentError as u_,validateAgent as O_,normalizeAgent as N_,defineAgent as g_,assistantAgent as C_,engineOf as M_,describeAgent as P_,slugAgentId as L_,resolveTeam as x_,STARTER_AGENTS as h_,starterAgents as F_,blankAgent as D_,agentFromForm as k_,poolFor as y_}from"./agent.js";import{LEDGER_VERSION as b_,LEDGER_ENTRY_KINDS as v_,DECLINE_REASONS as w_,WITHDRAW_AFTER as B_,ledgerKey as G_,normalizeCall as H_,makeLedgerEntry as K_,summarizeEngine as V_}from"./model-ledger.js";import{RECRUIT_SCHEMA as X_,MIN_FIT as Y_,engineRow as z_,engineRows as J_,needForJob as j_,routeFor as Q_,engineWorth as q_,applications as Z_,evaluatorPrompt as $_,parseEvaluation as ed,decide as rd,recruitForRun as od,proposalFromNeeds as td,proposalToAgent as ad,carveBudget as id,recruitEvents as sd,recruitJob as nd}from"./recruit.js";import{DEFAULT_MIN_CALLS as ld,cardOverride as Ed,applyCard as md}from"./model-candidates.js";import{SCM_KINDS as pd,validateConnection as Td,normalizeConnection as _d,parseRemote as dd,connectionFor as Ad,branchFor as Rd,worktreeDirFor as fd,credentialEnv as Id,describeConnection as ud,blankConnection as Od,connectionFromForm as Nd}from"./scm-connection.js";import{messagesFor as Cd,mergeTranscript as Md,clipTranscript as Pd,clipMessage as Ld,newSteps as xd,continuationNote as hd,createControl as Fd,STEP_MAX_CHARS as Dd,TASK_TRANSCRIPT_MAX_CHARS as kd}from"./team-task.js";import{runTeam as Ud,resumeTeam as bd,dryRunTeam as vd,isModelUnavailable as wd,TeamRunError as Bd,RUN_STATUSES as Gd}from"./team-run.js";import{teamToolProvider as Kd,teamToolSpec as Vd,teamToolTimeoutMs as Wd,describeTeamForApproval as Xd,TEAM_TOOL_NAME as Yd,TEAM_MANUAL as zd}from"./team-tool.js";import{workLogFor as jd,workLogText as Qd,workLogEvidence as qd,describeCall as Zd,WORKLOG_KINDS as $d}from"./team-worklog.js";import{normalizeRequest as rA,subtaskFromRequest as oA,takeUp as tA,takeUpLine as aA,holdsGrants as iA,jobFromSubtask as sA,extendDependents as nA,taskTree as SA,threadRows as lA,MAX_SUBTASKS as EA,MAX_DEPTH as mA,MIN_TAKEUP_FIT as cA}from"./team-subtask.js";import{teamLine as TA,teamLanes as _A}from"./team-trail.js";import{promoteRoles as AA,starterTeam as RA,missingStarters as fA,teamHealth as IA,teamShape as uA,describeTeamShape as OA,whereItWorks as NA,rosterRows as gA,agentKind as CA,agentHue as MA,agentColor as PA,agentInitials as LA,roleCardId as xA,cardNumbers as hA,upsertAgents as FA,soloTeam as DA,teamsWithSolos as kA,builtinOrg as yA,isBuiltin as UA,grantChoices as bA,grantsFromChoices as vA,skillChoices as wA,GRANT_INFO as BA,SOLO_BUDGET as GA,TEAM_SHAPES as HA,ROSTER_KINDS as KA}from"./team-org.js";import{observeInbox as WA,observeStrip as XA,runLanes as YA,spendRows as zA,engineStrip as JA}from"./team-observe.js";import{mcpDispatchProvider as QA,MCP_TOOL_NAME as qA}from"./mcp-dispatch.js";import{createManifest as $A,ManifestError as eR,SOURCES as rR}from"./manifest.js";import{createKernel as tR,meetDecisions as aR,KernelError as iR,REQUIRED_PLUGINS as sR,ALLOW_ALL as nR}from"./kernel.js";import{replay as lR,formatReport as ER,parseJsonl as mR,toJsonl as cR}from"./harness.js";import{compileQuery as TR,findMatches as _R,matchIndexFor as dR,expandReplacement as AR,replaceMatch as RR,replaceAll as fR,replaceAllInRange as IR,MAX_MATCHES as uR}from"./text-search.js";import{DATA_SCOPES as NR}from"./scopes.js";import{MEMORY_VERSION as CR,MEMORY_KINDS as MR,MEMORY_KIND_NAMES as PR,AMBIENT_KINDS as LR,MAX_MEMORY_CHARS as xR,MIN_MEMORY_CHARS as hR,DEFAULT_MAX_MEMORIES as FR,DEFAULT_BLOCK_CHARS as DR,SAME_FACT as kR,MEMORY_TOOL_SPEC as yR,MEMORY_UPCASTERS as UR,MemoryError as bR,normalizeMemory as vR,isValidMemory as wR,memoryKey as BR,slotOf as GR,similarity as HR,containment as KR,candidatesFrom as VR,reconcile as WR,matchForForget as XR,recall as YR,saysWhere as zR,homePlace as JR,needsWhere as jR,memoryBlock as QR,markUsed as qR,pruneMemories as ZR,memoryToolSystem as $R,upcastMemory as ef,sameMemory as rf,AMBIENT_MAX_WORDS as of}from"./memory.js";import{linksToRead as af,storyLinkOf as sf,linkAttachments as nf,asksOnlyAboutPage as Sf,pageInstruction as lf}from"./message-links.js";import{frontPagesAskedAbout as mf,frontPageInstruction as cf,FRONT_PAGES as pf}from"./site-pages.js";import{SOURCE_TRUST as _f,SkillSourceError as df,defineSkillSource as Af,createSkillSourceRegistry as Rf}from"./skill-sources.js";import{SKILL_MANIFEST_VERSION as If,SKILL_CONTEXTS as uf,SKILL_HISTORY_SCOPES as Of,SKILL_MCP_MODES as Nf,SKILL_TRUST as gf,SKILL_FILE_KINDS as Cf,SKILL_UPCASTERS as Mf,SkillManifestError as Pf,isSafeSkillPath as Lf,originOf as xf,trustOf as hf,skillFiles as Ff,needsBridge as Df,declaredAccess as kf,originLabel as yf,sameSkillOrigin as Uf,skillIsStale as bf,validateSkill as vf,upcastSkill as wf,upcastSkills as Bf,normalizeSkill as Gf}from"./skill-manifest.js";import{SKILL_VARS as Kf,SKILL_VAR_NAMES as Vf,skillVar as Wf,skillVarPattern as Xf,parseSkillVars as Yf,lintSkillPrompt as zf,suggestSkillVar as Jf,substituteSkillVars as jf,expandSkillPrompt as Qf,skillVarGuidance as qf,SkillVarError as Zf}from"./skill-vars.js";import{lineAt as eI,writerAffordance as rI,INSTRUCTION_RE as oI,instructionOnLine as tI,GOAL_MIN_NEW as aI,goalDraftAllowed as iI,createSpendMeter as sI,writerTail as nI,draftSeparator as SI,groundingBlock as lI,writerRequest as EI,AUTOCOMPLETE_SYSTEM as mI,AUTOCOMPLETE_MAX_TOKENS as cI,AUTOCOMPLETE_TEMPERATURE as pI,clipCompletion as TI,GEARS as _I,WRITER_PREFS as dI,WRITER_PREF_DEFAULTS as AI,normalizeWriterPrefs as RI,normalizeIntent as fI}from"./cowriter-writer.js";import{SLASH_TYPING_RE as uI,NEW_THREAD_SLASH_ITEMS as OI,parseNewThread as NI,BUG_REPORT_SLASH_ITEMS as gI,parseBugCommand as CI,isSkillEnabled as MI,enabledSkills as PI,slashCommandItems as LI,matchSlashSkill as xI,matchSlashRecipe as hI,recipeInvocationText as FI,matchSlashTeam as DI,teamInvocationText as kI,slashCommandInsert as yI,skillInvocationOf as UI,skillInvocationLabel as bI}from"./slash-commands.js";import{outlineOf as wI,parseListItem as BI,continueList as GI,indentSelection as HI,toggleWrap as KI,toggleLinePrefix as VI,toggleTask as WI,toggleLink as XI,docStats as YI,selectionStats as zI}from"./markdown-authoring.js";import{MAX_TAG_LENGTH as jI,MAX_TAGS as QI,normalizeTag as qI,normalizeTags as ZI,hasTag as $I,addTag as eu,removeTag as ru,toggleTag as ou,sameTags as tu,formatTag as au,parseTagQuery as iu,hasTagTerms as su,formatTagQuery as nu,matchesTagFilter as Su,filterByTags as lu,tagFacets as Eu,suggestExistingTags as mu,tagsSearchText as cu}from"./tags.js";import{UNTITLED_MEETING as Tu,MAX_TITLE_LENGTH as _u,TITLE_RULES_VERSION as du,cleanTitle as Au,isGenericTitle as Ru,titleFromSummary as fu,titleFromTopics as Iu,titleFromParticipants as uu,titleFromDate as Ou,readableWhen as Nu,deriveMeetingTitle as gu,shouldAutoTitle as Cu,isBetterTitleSource as Mu,meetingTitlePrompt as Pu,parseTitleResponse as Lu}from"./titles.js";import{RECORD_KINDS as hu,MAX_TITLE_LEN as Fu,LibraryError as Du,parseRecordId as ku,makeRecordId as yu,isRecordId as Uu,normalizeStoredRecord as bu,isValidStoredRecord as vu,toSearchRecord as wu,searchTextFor as Bu,toIndexEntry as Gu,deriveTitle as Hu,snippetOf as Ku,wordCount as Vu,findRecordRefs as Wu,linkRecordRefs as Xu,repairAnswerMarkup as Yu}from"./library.js";import{CLOCK_TOLERANCE_MS as Ju,SyncError as ju,stampOf as Qu,decide as qu,planSync as Zu,isSettled as $u,forkConflict as eO,advanceBases as rO}from"./sync-plan.js";import{ENCRYPTED_TYPE as tO,COMPRESSIONS as aO,BackupError as iO,KDF_ITERATIONS as sO,encryptBackup as nO,decryptBackup as SO,isEncryptedBackup as lO,RECORD_TYPE as EO,deriveBackupKey as mO,sealRecord as cO,openRecord as pO,isSealedRecord as TO,keyCache as _O,identityCodec as dO,streamCodec as AO,nodeCodec as RO,bestCodec as fO}from"./backup-envelope.js";import{recordsFromBackup as uO,backupFromRecords as OO}from"./backup-records.js";import{DEFAULT_POLICY as gO,SLOW_POLICY as CO,scalePolicy as MO,pickProfile as PO,adaptProfile as LO,policyFor as xO,SLOW_FLUSH_MS as hO,FAST_FLUSH_MS as FO,FAST_STREAK as DO,createJournal as kO,JournalError as yO,ENTRY_VERSION as UO,makeEntry as bO,tombstone as vO,isTombstone as wO,isEntry as BO,entryStamp as GO,supersedes as HO,BOUNDS as KO,createSegment as VO,applyEntry as WO,segmentBytes as XO,segmentEntries as YO,shouldRotate as zO,mergeSegments as JO,segmentName as jO,parseSegmentName as QO,SEGMENT_RE as qO,boundSegments as ZO,segmentsFor as $O,overlay as eN,catchUpPlan as rN}from"./journal.js";import{OMNI_MODES as tN,OMNI_GRAMMAR as aN,parseOmni as iN,extractFilters as sN,resolveSince as nN,wantsModel as SN,isActionable as lN}from"./omni.js";import{THEMES as mN,LIGHT as cN,DARK as pN,PALETTES as TN,SHAPE as _N,TOKEN_NAMES as dN,TOKEN_ROLES as AN,paletteFor as RN,cssVarName as fN,toCssVars as IN,themeStylesheet as uN,resolveTheme as ON}from"./theme.js";import{PLANS as gN,API_BASE as CN,ENDPOINTS as MN,ENTITLEMENT_PUBLIC_JWK as PN,UPGRADE_URL as LN,FEATURE_TIER as xN,PRO_FEATURES as hN,TEAM_FEATURES as FN,FREE_LIMITS as DN,COUNTED as kN,freeCap as yN,observeSince as UN,RECHECK_INTERVAL_MS as bN,EntitlementError as vN,checkoutUrl as wN,planOf as BN,planLabel as GN,isPro as HN,isTeam as KN,can as VN,tierFor as WN,withinFreeLimit as XN,verifyEntitlement as YN,verifySignedToken as zN,licenseFromPayload as JN,needsRecheck as jN}from"./entitlement.js";import{generateDeviceKey as qN,exportDevicePublicKey as ZN,signChallenge as $N}from"./device-proof.js";import{renderMarkdown as rg,defaultLinkPolicy as og,defaultImagePolicy as tg}from"./markdown-render.js";import{NOTE_IMAGE_SCHEME as ig,MAX_NOTE_IMAGE_BYTES as sg,NOTE_IMAGE_TYPES as ng,noteImageId as Sg,noteImageRef as lg,noteImageIds as Eg,noteImageRefs as mg,stripNoteImageRefs as cg,orphanNoteImages as pg,newNoteImageId as Tg}from"./note-images.js";import{parseMeetingText as dg,speakerStats as Ag,densityRibbon as Rg}from"./meeting-text.js";import{speakerBreakdown as Ig,speakerTimeline as ug,formatTalkTime as Og,SPEAKER_SLOTS as Ng}from"./meeting-shape.js";import{isSpeakerImageValue as Cg,speakerLabeller as Mg}from"./meeting-shape.js";import{SORT_MODES as Lg,SORT_LABELS as xg,sortStamp as hg,sortRecords as Fg,filterRecords as Dg,dayBucket as kg,rowTime as yg,groupRecords as Ug}from"./record-list.js";import{INSIGHT_KINDS as vg,summarySections as wg,insightKindOf as Bg,meetingInsights as Gg,hasInsights as Hg}from"./meeting-insights.js";import{demd as Vg,NOTE_SECTIONS as Wg,noteSectionKind as Xg,MOMENT_BADGES as Yg,momentBadge as zg,parseMeetingNotes as Jg,groupActionsByOwner as jg}from"./meeting-insights.js";import{PREF_SECTIONS as qg,PREF_SECTION_IDS as Zg,DESKTOP_SECTION_IDS as $g,sectionSpec as eC,sectionValue as rC,pickSections as oC,applySections as tC,sectionHash as aC,mergeStamped as iC,changedSections as sC}from"./client-prefs.js";import{SETTINGS_GROUPS as SC,SETTINGS_PAGES as lC,REQUIREMENTS as EC,BOOKKEEPING_KEYS as mC,listRows as cC,findRow as pC,pageById as TC,groupById as _C,pagesOf as dC,quickRows as AC,breadcrumb as RC,linkTo as fC,linkToRow as IC,parseLink as uC,valueOf as OC,setValue as NC,effectiveValue as gC,describeValue as CC,SETTINGS_OPEN_DEFAULT as MC,settingsOpenMode as PC,searchSettings as LC,statusOf as xC,statusAll as hC,homeChecklist as FC,gateOf as DC,sectionOfRow as kC}from"./settings-registry.js";import{pointsAtGateway as UC,destinationFromEndpoint as bC,destinationFromAgent as vC,availableDestinations as wC,seedDestinations as BC,shouldSeedDestinations as GC,mergeEndpointDestinations as HC}from"./gateway-dests.js";import{McpClient as VC,mcpProvider as WC}from"./mcp-client.js";import{mcpSharedSystem as YC,mcpInventorySystem as zC,sourceCitationSystem as JC,combineSystemPrompt as jC,toolStatus as QC,widgetAuthoringSystem as qC,vaultWidgetSystem as ZC,wantsVaultGuidance as $C}from"./tool-hints.js";import{adaptiveToolRetryHint as rM,createAdaptiveToolPolicy as oM,isInvalidToolParametersResult as tM}from"./adaptive-tool-policy.js";import{getMcpProviders as iM,testMcpServer as sM,resetMcp as nM,mcpBackoff as SM}from"./mcp-manager.js";import{SIDELINE_COMMANDS as EM,BRINGBACK_COMMAND as mM,THREAD_TOOL_NAME as cM,SIDELINE_SLASH_ITEMS as pM,THREAD_TOOL_SPEC as TM,parseSideline as _M,parseBringBack as dM,resolveSidelineTarget as AM,threadManifest as RM,threadToolProvider as fM,readThread as IM,briefPrompt as uM,foldBackNote as OM,foldNotes as NM,nextSidelineIndex as gM,sourceOf as CM,noteUnits as MM,sidelinePath as PM,foldBackFor as LM,SIDELINE_TOOL_NAME as xM,SIDELINE_TOOL_SPEC as hM,sidelineToolProvider as FM}from"./sideline.js";import{WEATHER_TOOL_NAME as kM,WEATHER_TOOL_SYSTEM as yM,weatherToolProvider as UM,weatherFromSearch as bM}from"./weather-tool.js";import{DECIDE_TOOL_NAME as wM,RERANK_TOOL_NAME as BM,CAPABILITY_TOOLS_SYSTEM as GM,capabilityToolsProvider as HM}from"./capability-tools.js";import{openDecision as VM,distributionConfidence as WM}from"./open-decision.js";import{IN_PROCESS_IDS as YM,inProcessView as zM,capabilityView as JM,choicePatch as jM,choiceNote as QM,inProcessPatch as qM}from"./runtime-in-process.js";import{renderContent as $M,toChatMessages as eP,toMultimodalMessages as rP,imageAttachmentsOf as oP,deferAttachedSources as tP,withSourceTool as aP,SOURCE_TOOL_SPEC as iP}from"./context-attachments.js";import{prefetchPlan as nP,prefetchAttachment as SP,lookupResult as lP,lookupLabel as EP,runResearchItem as mP,weatherPlace as cP,weatherFollowupPlace as pP,newsAsk as TP,pageAsk as _P,answeredByPrefetch as dP,webRedoAsk as AP,aboutOwnPast as RP,offeredSearch as fP,prefetchBudgetMs as IP}from"./prefetch.js";import{createFetchedStore as OP,withFetchedMemo as NP,fetchKey as gP,fetchTitle as CP,fetchedAsSources as MP,fetchedFacts as PP,defaultTtl as LP,exchangeOf as xP,FETCHED_TTL_MS as hP}from"./fetched.js";import{windowOf as DP,fitFor as kP,keepRecentFor as yP,minWindowFor as UP,isContextLimitError as bP,FIT_HEADROOM as vP,SMALL_WINDOW as wP,isSmallWindow as BP,SMALL_WINDOW_ROUNDS as GP}from"./context-window.js";import{planCompaction as KP,compactionPrompt as VP,compactionRecord as WP,messagesAfter as XP,systemWithSummary as YP,compactable as zP,COMPACTION_SYSTEM as JP}from"./compaction.js";import{selectContext as QP}from"./context-select.js";import{withoutOwnInstructions as ZP}from"./own-instructions.js";import{digest as eL,needsWhole as rL}from"./digest.js";import{planRetrieval as tL,toolsWanted as aL,worldAnswered as iL,worldPlanned as sL,toolPlan as nL,contextPlan as SL,historyContext as lL,HISTORY_NOTE as EL,placeItems as mL,planTurn as cL}from"./retrieval-plan.js";import{intentNeeds as TL,intentSchema as _L,intentPrompt as dL,intentFromReply as AL,intentItems as RL,wantsIntent as fL,wantsDecision as IL,decideIntent as uL,questionsIn as OL,partQueries as NL,MAX_PARTS as gL,EXPECTS as CL,expectsOf as ML}from"./turn-intent.js";import{figuresIn as LL,unsupportedFigures as xL,unsupportedNote as hL,groundingNote as FL,turnGroundingNote as DL}from"./answer-grounding.js";import{turnFlow as yL,turnFlowChart as UL,flowWorthDrawing as bL,stepAction as vL,stepState as wL}from"./turn-flow.js";import{runTurnPipeline as GL,finishTurn as HL,routeByRule as KL,defineLane as VL,listLanes as WL,TURN_STAGES as XL}from"./turn-pipeline.js";import{gatherItems as zL,isMiss as JL,isWebSearch as jL,GATHER_LIMITS as QL}from"./turn-gather.js";import{TURN_EVENTS as ZL,createTurnEvents as $L,activityOf as ex,applyStateDelta as rx}from"./turn-events.js";import{QUESTION_PLAN_LIMITS as tx,SEARCH_UNAVAILABLE as ax,factSchema as ix,factSchemaFor as sx,partsOf as nx,plainEvidence as Sx,evidenceFor as lx,rankedEvidence as Ex,factPrompt as mx,fitsExpected as cx,snapQuote as px,standsOn as Tx,subjectsOf as _x,factFromReply as dx,carried as Ax,againQuery as Rx,pointsBack as fx,dependsOn as Ix,partsPlan as ux,notFoundLines as Ox,factsList as Nx,sourcesOf as gx,finishAnswer as Cx,gatherFacts as Mx}from"./question-plan.js";import{createCassette as Lx,gradeAnswer as xx,scoreRuns as hx,textKey as Fx,ReplayMiss as Dx}from"./turn-replay.js";import{asksIdentity as yx,identitySystem as Ux,identityHint as bx}from"./identity.js";import{splitBlocks as wx,mergeNote as Bx,syncNote as Gx,conflictsIn as Hx,resolveConflict as Kx}from"./note-merge.js";import{STITCH_LIMITS as Wx,CUT_FINISH as Xx,partChars as Yx,splitForWindow as zx,partPrompt as Jx,mapParts as jx,reduceNotes as Qx,fitAttachments as qx,isNone as Zx,continuationMessages as $x,trimOverlap as eh,withStitching as rh,CONTINUE_TEXT as oh}from"./stitch.js";import{presenceFor as ah,presenceDelta as ih,reachOf as sh,withPresence as nh,presenceBlock as Sh,roundCount as lh,roundMinutes as Eh,PRESENCE_BUDGET_TOKENS as mh,PRESENCE_KINDS as ch}from"./presence.js";import{PolicyError as Th,POLICY_VERSION as _h,POLICY_TOKEN_TYPE as dh,REDACTION_TIERS as Ah,LOCKABLE as Rh,FEATURES as fh,PERMISSION_MODES as Ih,PRODUCT_HOSTS as uh,normalizeOrgPolicy as Oh,endpointAllowed as Nh,modelAllowed as gh,agentAllowed as Ch,permissionMode as Mh,routeAllowed as Ph,redactionTier as Lh,egressAllowed as xh,settingLocked as hh,featureEnabled as Fh,applyPolicyToSettings as Dh,policyLabel as kh,policyHash as yh,verifyPolicyToken as Uh,globToRegExp as bh}from"./policy.js";import{languageInstruction as wh,RESPONSE_LANGUAGES as Bh}from"./response-language.js";import{NOTE_TOOL_SPECS as Hh,makeNoteToolExecutor as Kh}from"./note-tool.js";import{memoryToolProvider as Wh}from"./memory-tool.js";import{captureFromMessage as Yh}from"./memory-capture.js";import{skillRunFromSkill as Jh,skillPackageFiles as jh,filterMcpServersForSkill as Qh,skillToolSystem as qh,skillHandle as Zh,rankSkills as $h,skillCatalogSystem as eF}from"./skill-runtime.js";import{skillFileProvider as oF,SKILL_FILE_TOOL as tF,skillEntry as aF,skillDiscoveryProvider as iF}from"./skill-files.js";import{SKILL_DRAFT_SCHEMA as nF,MAX_SKILL_FILE_BYTES as SF,MAX_SKILL_PACKAGE_BYTES as lF,skillCreatorPrompt as EF,skillIdFrom as mF,admitPackage as cF,skillFromDraft as pF,packagesFromFiles as TF}from"./skill-creator.js";import{PATH_KIND as dF,FILES_TOOL as AF,checkAttachablePath as RF,secretReason as fF,isSecretPath as IF,pathAttachment as uF,describeAttachedPath as OF,describePathSize as NF,displayPath as gF,pathAttachmentsOf as CF,withAbsolutePaths as MF,attachedFilesProvider as PF,sniffType as LF,normalizePath as xF,collapseDots as hF,basenameOf as FF,SKIP_DIR_NAMES as DF}from"./attached-paths.js";import{EXTRACT_ROUTE as yF,EXTRACT_PROVIDER_ID as UF,MAX_DOCUMENT_BYTES as bF,PAGE_CHARS as vF,EXTRACT_TYPES as wF,validateExtractRequest as BF,validateExtractResponse as GF,paginateText as HF,gatewayExtractor as KF,extractorChain as VF}from"./extract-capability.js";import{MCP_REGISTRY_API as XF,MCP_CATALOG as YF,registryListUrl as zF,fetchMcpRegistryPage as JF,normalizeRegistryPage as jF,normalizeRegistryEntry as QF,mcpServerFromCatalogItem as qF}from"./mcp-registry.js";import{CE_SPECVERSION as $F,CE_TYPE_PREFIX as eD,CE_SOURCE_PREFIX as rD,rfc3339 as oD,ceSourceOf as tD,ceHostOf as aD,toCloudEvent as iD,fromCloudEvent as sD,toCloudEventLines as nD,fromCloudEventLines as SD,toCloudEventBatch as lD}from"./cloudevents.js";import{PUSH_LIMITS as mD,planEventPush as cD,ingestCloudEvents as pD,cursorOf as TD}from"./event-sync.js";import{eventStats as dD,projectYear as AD}from"./event-stats.js";import{SEALED_TYPE as fD,SEALED_VERSION as ID,SealError as uD,webCryptoSealer as OD,nodeSealer as ND,newDeviceKey as gD,sealBlob as CD,openBlob as MD,shredBlob as PD,isSealedBlob as LD,isShredded as xD}from"./blob-envelope.js";import{USAGE_RING_MAX as FD,COST_BASES as DD,usageRecord as kD,usageFromEvent as yD,usageFromOpenAi as UD,rollupKey as bD,applyUsage as vD,summarizeUsage as wD,formatTurnUsage as BD,describeTurnUsage as GD,promptTokensOf as HD}from"./usage.js";import{rateFor as VD,costFor as WD,formatUsd as XD,PRICING_BASES as YD,PRICING_LABELS as zD,normalizePricing as JD,priceUsage as jD}from"./usage-pricing.js";import{FACTCHECK_SCHEMA as qD,FACTCHECK_VERDICTS as ZD,lastClaimOf as $D,factcheckPrompt as ek,factcheckVerdict as rk,factcheckKey as ok}from"./cowriter-factcheck.js";import{createVoiceLoop as ak,VOICE_STATES as ik,MUTE_GRACE_MS as sk,MAX_PENDING_CHARS as nk,CONTINUATION_WINDOW_MS as Sk,ECHO_OVERLAP as lk,ECHO_TAIL_MS as Ek,MIN_BARGE_IN_WORDS as mk,looksLikeEcho as ck}from"./voice-loop.js";import{voiceStep as Tk,initialVoiceState as _k,voiceSpeaker as dk,isFarewell as Ak,ANOTHER_VOICE as Rk}from"./voice-brain.js";import{speakStream as Ik,speakable as uk,SPOKEN_REPLY_HINT as Ok}from"./speak-stream.js";import{createVad as gk,lowBandEnergy as Ck,pcmEnergy as Mk,VAD_DEFAULTS as Pk}from"./voice-vad.js";import{HF_API as xk,TTS_ARCH_LABEL as hk,ttsArchOf as Fk,partitionTtsModels as Dk,modelSearchUrl as kk,searchModels as yk,normalizeModel as Uk,formatDownloads as bk,describeSearchResult as vk}from"./model-registry.js";import{SAMPLE_RATE as Bk,MIN_SECONDS as Gk,TARGET_SECONDS as Hk,MAX_SECONDS as Kk,PROMPT_TEXT as Vk,sampleSeconds as Wk,sampleTooShort as Xk,defaultVoiceName as Yk,microphoneError as zk,webMedia as Jk,startRecording as jk}from"./voice-sample.js";import{TIER_LABEL as qk,modelRows as Zk,catalogStatus as $k,dtypePicker as ey,voicePicker as ry,voiceListRows as oy,diarizeRows as ty,switchOutcome as ay,saveVoiceFailure as iy,saveTimedOut as sy,catalogUnavailable as ny}from"./voice-models.js";import{dictToText as ly,textToDict as Ey}from"./redaction-dictionary.js";import{groupRuns as cy,summarizeRun as py,findRepeats as Ty,withCost as _y,verdict as dy,toSanitizedReport as Ay}from"./run-details.js";import{parseMcpConfig as fy,parseArgsInput as Iy,argsToText as uy,parseEnvInput as Oy,envToText as Ny,envLikeArgs as gy}from"./mcp-config-import.js";import{mutableRef as My,refreshArgs as Py,canRefresh as Ly,describeRuntime as xy}from"./mcp-launcher.js";import{defaultMcpServers as Fy,isDefaultMcpServer as Dy}from"./default-mcp-servers.js";import{MONITOR_SOURCES as yy,DEFAULT_MONITOR_PROFILE as Uy,monitorProfile as by,monitorWindowMs as vy,monitorNeedsTools as wy,filterMonitorTools as By,recentFindings as Gy,describeMonitorProfile as Hy}from"./monitor-profile.js";import{NOTHING_NEW as Vy,isNothingNew as Wy,accumulates as Xy,priorFindingsText as Yy,deltaInstruction as zy,monitorPrompt as Jy,applyMonitorReply as jy}from"./monitor-turn.js";import{defaultSkills as qy,meetingNotesSkill as Zy}from"./default-skills.js";import{SURFACES as eU,FEATURES as rU,listFeatures as oU,featureIds as tU}from"./feature-map.js";import{ISSUE_REPO as iU,NEW_ISSUE_BASE as sU,ISSUE_SEARCH_API as nU,MAX_ISSUE_URL as SU,scrubReportText as lU,diagnosticsText as EU,buildBugReport as mU,newIssueUrl as cU,titleTerms as pU,issueSearchUrl as TU,matchIssues as _U,findExistingIssues as dU,issueCommentText as AU}from"./bug-report.js";import{WEB_RESEARCH_LIMITS as fU,WEB_TASK_DOMAINS as IU,researchAsk as uU,refineQueries as OU,parseSearchText as NU,cleanUrl as gU,pageKey as CU,passagesOf as MU,webResearch as PU,researchBrief as LU,researchCall as xU,runResearch as hU}from"./web-research.js";import{parseAmount as DU,moneyIn as kU,basisAt as yU,qualifierAt as UU,quoteAround as bU,offersIn as vU,rankOffers as wU,comparable as BU,basisLabel as GU,formatValue as HU,unverifiedAmounts as KU,quoteFormIn as VU}from"./offers.js";import{isSecretField as XU,maskSecretFields as YU,isPersonalField as zU,commitKind as JU,commitQuestion as jU,captchaIn as QU,captchaHandoff as qU,fenceUntrusted as ZU,isFenced as $U}from"./page-guard.js";import{BROWSER_RELAY as rb,BROWSER_KINDS as ob,validateBrowserCall as tb,validateBrowserAnnounce as ab,validateBrowserResult as ib,createBrowserRelay as sb,browserRelaySystem as nb}from"./browser-relay.js";export{za as ACCESS_LOG_MAX,Ya as ACCESS_LOG_VERSION,i as ACTOR_KINDS,A_ as AGENT_ID_RE,zc as AGENT_REF_RE,nR as ALLOW_ALL,a as ALL_TYPES,LR as AMBIENT_KINDS,of as AMBIENT_MAX_WORDS,Rk as ANOTHER_VOICE,CN as API_BASE,R_ as APPLIES_TO,Rp as ASK_TYPES,I_ as ASSISTANT_ID,In as ASSISTANT_NAME,cI as AUTOCOMPLETE_MAX_TOKENS,mI as AUTOCOMPLETE_SYSTEM,pI as AUTOCOMPLETE_TEMPERATURE,NT as AUTONOMY,ii as AdapterError,u_ as AgentError,An as AnalyzerError,sO as BACKUP_KDF_ITERATIONS,Pp as BOARD_TOOL_NAME,mC as BOOKKEEPING_KEYS,Mt as BRIEF_STATES,mM as BRINGBACK_COMMAND,ob as BROWSER_KINDS,rb as BROWSER_RELAY,Fc as BUDGET_DIMENSIONS,gI as BUG_REPORT_SLASH_ITEMS,qs as BUILTIN_TRIGGERS,Bn as BUILTIN_VOICE_INTENTS,iO as BackupError,hc as BudgetError,dn as CADENCES,GM as CAPABILITY_TOOLS_SYSTEM,rD as CE_SOURCE_PREFIX,$F as CE_SPECVERSION,eD as CE_TYPE_PREFIX,CT as CHECKS,Pt as CLAIM_KINDS,n as CLASSES,Ju as CLOCK_TOLERANCE_MS,JP as COMPACTION_SYSTEM,aO as COMPRESSIONS,Sc as COMPRESSION_MODES,Sk as CONTINUATION_WINDOW_MS,oh as CONTINUE_TEXT,jl as COOLDOWN_MS,DD as COST_BASES,kN as COUNTED,Tr as COWRITER_SYSTEM,_r as COWRITER_TEMPERATURE,o as CURRENT_VERSION,Xx as CUT_FINISH,pN as DARK,NR as DATA_SCOPES,On as DAYPART_HOUR,wM as DECIDE_TOOL_NAME,w_ as DECLINE_REASONS,Ve as DEFAULT_API_ENGINES,Lp as DEFAULT_ASK_TIMEOUT_MS,DR as DEFAULT_BLOCK_CHARS,lc as DEFAULT_COMPRESSION,OT as DEFAULT_GATE,Ss as DEFAULT_INTERNAL_PATTERNS,fs as DEFAULT_LOCK_MS,IE as DEFAULT_MAX_FINISH_TRIES,FR as DEFAULT_MAX_MEMORIES,fE as DEFAULT_MAX_ROUNDS,ld as DEFAULT_MIN_CALLS,Uy as DEFAULT_MONITOR_PROFILE,gO as DEFAULT_POLICY,yE as DEFAULT_SHIELD,UE as DEFAULT_STORE,St as DEFAULT_THRESHOLD,fn as DEFAULT_WAKE,vm as DESCRIBE_ACTION,$g as DESKTOP_SECTION_IDS,lk as ECHO_OVERLAP,Ek as ECHO_TAIL_MS,S as EFFECTS,l as EGRESS,f_ as EGRESS_CLASSES,tO as ENCRYPTED_TYPE,MN as ENDPOINTS,_o as ENGINES_REV,co as ENGINE_KINDS,n_ as ENGINE_SPEC_KINDS,RS as ENTITIES_SCHEMA,PN as ENTITLEMENT_PUBLIC_JWK,AS as ENTITY_TYPES,fi as ENTRY_KINDS,UO as ENTRY_VERSION,t as EVENT_TYPES,BT as EXECUTIVE,NE as EXHAUSTED_NOTE,CL as EXPECTS,UF as EXTRACT_PROVIDER_ID,yF as EXTRACT_ROUTE,wF as EXTRACT_TYPES,vN as EntitlementError,E as EventError,qD as FACTCHECK_SCHEMA,ZD as FACTCHECK_VERDICTS,Yi as FAILOVER_CAPABILITY_GAP,Xi as FAILOVER_CLASS_GAP,rE as FAILOVER_MAX_ATTEMPTS,FO as FAST_FLUSH_MS,DO as FAST_STREAK,fh as FEATURES,rU as FEATURE_MAP,eU as FEATURE_SURFACES,xN as FEATURE_TIER,hP as FETCHED_TTL_MS,DS as FIELD_TYPES,AF as FILES_TOOL,cp as FINDINGS_SCHEMA,pp as FINDING_KINDS,sm as FIND_ACTION,zm as FIND_DESCRIPTION,Jm as FIND_RESIDENT,Ym as FIND_TOOL_NAME,uE as FINISH_NUDGES,vP as FIT_HEADROOM,DN as FREE_LIMITS,pf as FRONT_PAGES,pm as FUSED_BUDGET_MS,cm as FUSED_CANDIDATES,QL as GATHER_LIMITS,_I as GEARS,aI as GOAL_MIN_NEW,Wc as GRANTABLE,BA as GRANT_INFO,Yc as GRANT_RE,xk as HF_API,EL as HISTORY_NOTE,Am as HUB_TOOL_NAME,gT as HUMAN_FLAGS,Xl as INPUT_PROGRESS_TOOLS,vg as INSIGHT_KINDS,oI as INSTRUCTION_RE,ls as INTERNAL_PATTERN_CATALOG,eo as INVARIANTS,YM as IN_PROCESS_IDS,iU as ISSUE_REPO,nU as ISSUE_SEARCH_API,Hs as JOB_ACTIONS,dT as JOB_POST_ID_RE,_T as JOB_POST_STATUSES,KO as JOURNAL_BOUNDS,TT as JobPostError,yO as JournalError,Rs as KDF_HASH,As as KDF_ITERATIONS,iR as KernelError,v_ as LEDGER_ENTRY_KINDS,b_ as LEDGER_VERSION,cN as LIGHT,wp as LIVE_RUN_STATUSES,Rh as LOCKABLE,OE as LOOPING_NUDGE,hi as LOOP_KINDS,Du as LibraryError,Fi as LoopError,Ft as MAX_BRIEF_CHARS,ht as MAX_BRIEF_RECORDS,Lt as MAX_CLAIMS,xt as MAX_CLAIM_REFS,un as MAX_COMMANDS_PER_DELTA,mA as MAX_DEPTH,bF as MAX_DOCUMENT_BYTES,gs as MAX_ENTRIES,Jt as MAX_EXCERPTS,jt as MAX_EXCERPT_CHARS,tr as MAX_GRAPH_NODES,SU as MAX_ISSUE_URL,GT as MAX_JOBS_PER_ROUND,uR as MAX_MATCHES,xR as MAX_MEMORY_CHARS,Os as MAX_NOTE_CHARS,sg as MAX_NOTE_IMAGE_BYTES,gL as MAX_PARTS,nk as MAX_PENDING_CHARS,HT as MAX_ROUNDS,Kk as MAX_SECONDS,Ns as MAX_SECRET_CHARS,SF as MAX_SKILL_FILE_BYTES,lF as MAX_SKILL_PACKAGE_BYTES,lt as MAX_SUBJECTS,Et as MAX_SUBJECT_CHARS,EA as MAX_SUBTASKS,gS as MAX_SUGGESTIONS,CS as MAX_SUGGESTION_CHARS,zt as MAX_SYNTHESIS_CLAIMS,QI as MAX_TAGS,jI as MAX_TAG_LENGTH,us as MAX_TITLE_CHARS,Fu as MAX_TITLE_LEN,_u as MAX_TITLE_LENGTH,nS as MAX_TOPICS,SS as MAX_TOPIC_CHARS,YF as MCP_CATALOG,XF as MCP_REGISTRY_API,sl as MCP_SIGN_IN_CODE,qA as MCP_TOOL_NAME,MR as MEMORY_KINDS,PR as MEMORY_KIND_NAMES,yR as MEMORY_TOOL_SPEC,UR as MEMORY_UPCASTERS,CR as MEMORY_VERSION,Kc as MERGE_POLICIES,mk as MIN_BARGE_IN_WORDS,Y_ as MIN_FIT,hR as MIN_MEMORY_CHARS,Gk as MIN_SECONDS,cA as MIN_TAKEUP_FIT,Ks as MISSED_POLICIES,Yg as MOMENT_BADGES,yy as MONITOR_SOURCES,sk as MUTE_GRACE_MS,eR as ManifestError,VC as McpClient,bR as MemoryError,Ia as NEAR_TITLE_DISTANCE,sU as NEW_ISSUE_BASE,OI as NEW_THREAD_SLASH_ITEMS,H as NOTE_ACTIONS,W as NOTE_ACTION_ERRORS,K as NOTE_ACTION_ORDER,V as NOTE_ACTION_TEMPERATURE,X as NOTE_COMMANDS,z as NOTE_COMMAND_MAX_TOKENS,Y as NOTE_COMMAND_TEMPERATURE,ig as NOTE_IMAGE_SCHEME,ng as NOTE_IMAGE_TYPES,Wg as NOTE_SECTIONS,Hh as NOTE_TOOL_SPECS,Vy as NOTHING_NEW,Wl as OBSERVATION_TOOLS,aN as OMNI_GRAMMAR,tN as OMNI_MODES,he as PACER_DEFAULTS,vF as PAGE_CHARS,TN as PALETTES,kl as PARALLEL_LOCAL_RE,dF as PATH_KIND,Na as PDF_MAX_CHARS,wE as PERMISSION_ANSWERS,vE as PERMISSION_EVENT,Ih as PERMISSION_MODES,BE as PERMISSION_TIMEOUT_MS,GE as PERMISSION_TOOL_NAME,gN as PLANS,Mr as PLAN_AUTHORS,Lr as PLAN_DECOMPOSE_MAX_TOKENS,Pr as PLAN_DECOMPOSE_SYSTEM,xr as PLAN_DECOMPOSE_TEMPERATURE,Vc as PLAN_MODES,Cr as PLAN_ROLES,hr as PLAN_SECTION_MAX_TOKENS,Fr as PLAN_SECTION_TEMPERATURE,dh as POLICY_TOKEN_TYPE,_h as POLICY_VERSION,dp as POST_KINDS,Ap as POST_STATUSES,qg as PREF_SECTIONS,Zg as PREF_SECTION_IDS,mh as PRESENCE_BUDGET_TOKENS,ch as PRESENCE_KINDS,YD as PRICING_BASES,zD as PRICING_LABELS,uh as PRODUCT_HOSTS,tT as PROJECT_ID_RE,bT as PROJECT_JOBS_SCHEMA,vT as PROJECT_REVIEW_SCHEMA,KT as PROJECT_RUN_STATUSES,oT as PROJECT_STATUSES,Vk as PROMPT_TEXT,qt as PROPOSAL_STATES,hN as PRO_FEATURES,mD as PUSH_LIMITS,Th as PolicyError,rT as ProjectError,wT as ProjectRunError,tx as QUESTION_PLAN_LIMITS,Br as REACH,bN as RECHECK_INTERVAL_MS,fc as RECIPE_MODES,gc as RECIPE_TOOL_NAME,i_ as RECORD_ENGINE_KINDS,hu as RECORD_KINDS,EO as RECORD_TYPE,X_ as RECRUIT_SCHEMA,Ah as REDACTION_TIERS,ft as REDACTION_TOKEN_TYPES,Xn as REFINEMENT_SCHEMA,_ as REF_KINDS,no as REGISTRY_STATES,sR as REQUIRED_PLUGINS,EC as REQUIREMENTS,BM as RERANK_TOOL_NAME,d as RESOLUTION,Bh as RESPONSE_LANGUAGES,kS as RESPONSE_MODES,Ie as RESULTS_PER_ENGINE,kE as RESULT_TOOL_NAME,Bp as RESUMABLE_RUN_STATUSES,ci as RETRIEVAL_TOOLS,Fm as REVEAL,t_ as ROLE_KINDS,Hc as ROLE_MODES,KA as ROSTER_KINDS,gE as ROUND_SEPARATOR,S_ as ROUTE_PREFERS,Gd as RUN_STATUSES,Rc as RecipeError,Dx as ReplayMiss,Ji as RouterError,Ts as RuleError,kR as SAME_FACT,Bk as SAMPLE_RATE,Bs as SCHEDULE_KINDS,pd as SCM_KINDS,s as SCOPE_KINDS,o_ as SCORECARD_ENTRY_KINDS,a_ as SCORECARD_VERSION,fD as SEALED_TYPE,ID as SEALED_VERSION,be as SEARCH_API_PRESETS,fe as SEARCH_ENGINES,Qe as SEARCH_STATUS,ax as SEARCH_UNAVAILABLE,qO as SEGMENT_RE,ut as SELF_LABELS,SC as SETTINGS_GROUPS,MC as SETTINGS_OPEN_DEFAULT,lC as SETTINGS_PAGES,_N as SHAPE,EM as SIDELINE_COMMANDS,pM as SIDELINE_SLASH_ITEMS,xM as SIDELINE_TOOL_NAME,hM as SIDELINE_TOOL_SPEC,uf as SKILL_CONTEXTS,nF as SKILL_DRAFT_SCHEMA,Cf as SKILL_FILE_KINDS,tF as SKILL_FILE_TOOL,Of as SKILL_HISTORY_SCOPES,If as SKILL_MANIFEST_VERSION,Nf as SKILL_MCP_MODES,gf as SKILL_TRUST,Mf as SKILL_UPCASTERS,Kf as SKILL_VARS,Vf as SKILL_VAR_NAMES,DF as SKIP_DIR_NAMES,uI as SLASH_TYPING_RE,hO as SLOW_FLUSH_MS,CO as SLOW_POLICY,wP as SMALL_WINDOW,GP as SMALL_WINDOW_ROUNDS,GA as SOLO_BUDGET,xg as SORT_LABELS,Lg as SORT_MODES,rR as SOURCES,iP as SOURCE_TOOL_SPEC,_f as SOURCE_TRUST,ua as SPAN_MIN_TERMS,Ng as SPEAKER_SLOTS,Ok as SPOKEN_REPLY_HINT,Wp as STALLED_AFTER_MS,h_ as STARTER_AGENTS,Jc as STARTER_TEAMS,Dd as STEP_MAX_CHARS,Wx as STITCH_LIMITS,nt as SUBJECT_KINDS,MS as SUGGESTIONS_SCHEMA,Zt as SUPERSEDE_OVERLAP,ps as SUPPRESSED,ce as SWARM_ROLES,Wt as SYNTHESIS_SCHEMA,Vs as ScheduleError,uD as SealError,ve as SearchApiError,po as SearchEngineError,Pf as SkillManifestError,df as SkillSourceError,Zf as SkillVarError,yS as StructuredError,ju as SyncError,Hk as TARGET_SECONDS,kd as TASK_TRANSCRIPT_MAX_CHARS,FN as TEAM_FEATURES,zd as TEAM_MANUAL,ip as TEAM_PLAN_SCHEMA,HA as TEAM_SHAPES,Yd as TEAM_TOOL_NAME,mN as THEMES,Tp as THREAD_KINDS,_p as THREAD_STATUSES,cM as THREAD_TOOL_NAME,TM as THREAD_TOOL_SPEC,qk as TIER_LABEL,du as TITLE_RULES_VERSION,dN as TOKEN_NAMES,AN as TOKEN_ROLES,Nl as TOKEN_SKEW_MS,lS as TOPICS_SCHEMA,Da as TRANSCRIPT_MAX_CHARS,Gs as TRIGGER_KINDS,hk as TTS_ARCH_LABEL,ZL as TURN_EVENTS,XL as TURN_STAGES,Gc as TeamError,Bd as TeamRunError,ho as ToolGroupError,Ql as UNAVAILABLE_REASONS,Tu as UNTITLED_MEETING,Vr as UPCASTERS,LN as UPGRADE_URL,FD as USAGE_RING_MAX,iS as UTTERANCE_DANGLING_MS,aS as UTTERANCE_SETTLE_MS,Pk as VAD_DEFAULTS,ds as VAULT_VERSION,ik as VOICE_STATES,Is as VaultError,Nn as VoiceIntentError,go as WEATHER_HOST,Co as WEATHER_TIMEOUT_MS,kM as WEATHER_TOOL_NAME,yM as WEATHER_TOOL_SYSTEM,fU as WEB_RESEARCH_LIMITS,$m as WEB_SEARCH_SPEC,qm as WEB_SEARCH_TOOL_NAME,Zm as WEB_SEARCH_TOOL_SYSTEM,IU as WEB_TASK_DOMAINS,rt as WIDGET_SURFACES,B_ as WITHDRAW_AFTER,$d as WORKLOG_KINDS,Xc as WORK_GRANTS,dI as WRITER_PREFS,AI as WRITER_PREF_DEFAULTS,Mo as WeatherError,Fa as YOUTUBE_HOSTS,Di as abortCause,RP as aboutOwnPast,ea as accept,Xy as accumulates,wm as actionMenu,ex as activityOf,LO as adaptProfile,rM as adaptiveToolRetryHint,eu as addTag,_E as addUsage,ZT as adjustSummary,cF as admitPackage,rO as advanceBases,Rx as againQuery,Ch as agentAllowed,PA as agentColor,k_ as agentFromForm,MA as agentHue,LA as agentInitials,CA as agentKind,oe as agentMentionAt,_t as aliasMap,dP as answeredByPrefetch,RE as anthropicTranscript,Ke as apiEngine,We as apiEnginesFrom,Je as apiTrialVerdict,lT as applyAll,md as applyCard,pr as applyEdits,WO as applyEntry,jy as applyMonitorReply,Dh as applyPolicyToSettings,tC as applySections,rx as applyStateDelta,vD as applyUsage,de as appoint,Oo as areaLabel,Li as argsShape,uy as argsToText,yx as asksIdentity,Sf as asksOnlyAboutPage,C_ as assistantAgent,PF as attachedFilesProvider,mo as attemptOrder,JT as attest,fl as authHeader,_l as authorizeUrl,wC as availableDestinations,OO as backupFromRecords,Ml as bareToolName,FF as basenameOf,yU as basisAt,GU as basisLabel,fO as bestCodec,D_ as blankAgent,Od as blankConnection,cT as blankJobPost,Qp as blankProject,Qc as blankTeam,Vl as blockedToolResult,lp as boardText,Np as boardToolProvider,gp as boardToolSpec,ZO as boundSegments,Rd as branchFor,RC as breadcrumb,ap as breakCycles,kt as briefId,bt as briefLinks,uM as briefPrompt,Ut as briefTerms,yt as briefToText,nb as browserRelaySystem,Ge as buildApiRequest,mU as buildBugReport,Bm as buildGroupDispatchSpec,ar as buildNoteGraph,xa as buildPdfDocument,ue as buildSearchUrl,Um as buildToolset,Ti as buildTrajectory,Va as buildTranscriptDocument,yA as builtinOrg,VN as can,Us as canAddEntry,ST as canJobPostTransition,jp as canProjectTransition,Ly as canRefresh,Pl as canRunConcurrently,jr as canSatisfy,VR as candidatesFrom,WT as canonical,El as canonicalResource,HM as capabilityToolsProvider,JM as capabilityView,qU as captchaHandoff,QU as captchaIn,Ua as captionTracksFromPlayerResponse,Yh as captureFromMessage,hA as cardNumbers,Ed as cardOverride,Ax as carried,id as carveBudget,$k as catalogStatus,ny as catalogUnavailable,rN as catchUpPlan,N as causesAreWellFormed,aD as ceHostOf,tD as ceSourceOf,sC as changedSections,RF as checkAttachablePath,$r as checkInvariants,vt as checkKnowledgeInvariants,wN as checkoutUrl,bp as checkpointFrom,B as chipText,QM as choiceNote,jM as choicePatch,Yt as claimsFromSynthesis,Fe as classifyAnswer,zl as classifyFailure,Te as classifyModel,os as classifySource,QE as claudePermissionResponse,Au as cleanTitle,gU as cleanUrl,TI as clipCompletion,Ld as clipMessage,mn as clipText,Pd as clipTranscript,WS as coerce,OS as coerceEntities,hF as collapseDots,jC as combineSystemPrompt,Z as commandLineAt,rS as commandLooksFinished,Ln as commandsFromSegments,JU as commitKind,jU as commitQuestion,FE as compactValue,zP as compactable,VP as compactionPrompt,WP as compactionRecord,BU as comparable,O as compareEvents,TR as compileQuery,gn as compileWake,w as composerChips,ac as compressToolSpec,ic as compressToolSpecs,sc as compressionStats,Ad as connectionFor,Nd as connectionFromForm,KR as containment,Dt as contentHash,SL as contextPlan,$x as continuationMessages,hd as continuationNote,GI as continueList,ta as converge,WD as costFor,Qa as createAccessLog,ai as createAdapterRegistry,oM as createAdaptiveToolPolicy,_n as createAnalyzerRegistry,Cp as createAnswerBox,p as createAppender,ao as createBlobStore,np as createBoard,sb as createBrowserRelay,Mc as createBudget,EE as createCallRunner,Lx as createCassette,mi as createCitationCollector,Fd as createControl,De as createEnginePacer,OP as createFetchedStore,kO as createJournal,tR as createKernel,to as createLogStore,$A as createManifest,oo as createMemoryAdapter,Jl as createModelHealth,wi as createModelRouter,$E as createPermissionDesk,so as createRegistry,ME as createResultStore,cs as createRuleEngine,hp as createRunCache,VO as createSegment,Rf as createSkillSourceRegistry,sI as createSpendMeter,Pi as createStepRecorder,YS as createStructuredStream,xo as createToolGroupRegistry,wl as createToolLoopGuard,Qs as createTriggerRegistry,$L as createTurnEvents,Mi as createTurnRunner,tS as createUtteranceGate,gk as createVad,Cs as createVault,vn as createVoiceIntentRegistry,ak as createVoiceLoop,Id as credentialEnv,fN as cssVarName,TD as cursorOf,kg as dayBucket,qu as decide,uL as decideIntent,rd as decideRecruit,kf as declaredAccess,SO as decryptBackup,tg as defaultImagePolicy,og as defaultLinkPolicy,Fy as defaultMcpServers,k as defaultModelId,qy as defaultSkills,LP as defaultTtl,wn as defaultVoiceIntents,Yk as defaultVoiceName,tP as deferAttachedSources,ti as defineAdapter,g_ as defineAgent,nn as defineJob,nT as defineJobPost,VL as defineLane,xi as defineLoop,Tn as defineMeetingAnalyzer,bi as defineMiddleware,Ui as defineModel,Jp as defineProject,vi as defineRouteStrategy,ms as defineRule,US as defineSchema,we as defineSearchApi,lo as defineSearchEngine,Af as defineSkillSource,kc as defineTeam,Lo as defineToolGroup,js as defineTrigger,bn as defineVoiceIntent,zy as deltaInstruction,Vg as demd,Rg as densityRibbon,Ix as dependsOn,P as dequeue,mO as deriveBackupKey,Gt as deriveBrief,Ht as deriveBriefs,Ps as deriveKey,gu as deriveMeetingTitle,Hu as deriveTitle,P_ as describeAgent,OF as describeAttachedPath,Zd as describeCall,ud as describeConnection,T_ as describeEngine,Hy as describeMonitorProfile,NF as describePathSize,XE as describePermission,Nc as describeRecipeForApproval,Bc as describeRole,xy as describeRuntime,bS as describeSchema,vk as describeSearchResult,CC as describeSettingValue,hE as describeShape,Hp as describeSpend,Xd as describeTeamForApproval,OA as describeTeamShape,pE as describeToolCall,GD as describeTurnUsage,vC as destinationFromAgent,bC as destinationFromEndpoint,EU as diagnosticsText,ty as diarizeRows,ly as dictToText,oa as diffProposal,eL as digest,Il as discoverMcpAuth,Ri as displayName,gF as displayPath,WM as distributionConfidence,YI as docStats,SI as draftSeparator,Kt as driftedRefs,_c as dryRunRecipe,vd as dryRunTeam,ey as dtypePicker,Sn as dueJobs,pa as duplicateTitles,At as earnsBrief,Un as editDistance,cr as editKey,IT as effectiveGate,$o as effectiveGrants,gC as effectiveSettingValue,Fl as effectiveToolName,ir as egoGraph,xh as egressAllowed,fp as emptyBoardState,Zp as emptyProjectRecord,kp as emptyRun,PI as enabledSkills,nO as encryptBackup,Nh as endpointAllowed,e_ as engineKey,p_ as engineKeyOf,er as engineLabel,M_ as engineOf,Me as engineOrder,c_ as engineRef,z_ as engineRow,J_ as engineRows,JA as engineStrip,q_ as engineWorth,IS as entitiesFormat,fS as entitiesPrompt,NS as entitiesStream,Fs as entryMeta,GO as entryStamp,gy as envLikeArgs,Ny as envToText,yo as equipmentFor,ki as errorFacts,Wm as estimateTokens,$_ as evaluatorPrompt,dD as eventStats,lx as evidenceFor,xP as exchangeOf,cc as expandRecipe,AR as expandReplacement,Qf as expandSkillPrompt,ML as expectsOf,JS as explainMcpError,ZN as exportDevicePublicKey,nA as extendDependents,sN as extractFilters,ts as extractUrls,VF as extractorChain,dx as factFromReply,mx as factPrompt,ix as factSchema,sx as factSchemaFor,ok as factcheckKey,ek as factcheckPrompt,rk as factcheckVerdict,Nx as factsList,eE as failoverExhausted,Vi as failoverOrder,Fh as featureEnabled,tU as featureIds,ZU as fenceUntrusted,gP as fetchKey,JF as fetchMcpRegistryPage,Ol as fetchMcpToken,CP as fetchTitle,MP as fetchedAsSources,PP as fetchedFacts,LL as figuresIn,lu as filterByTags,Ai as filterEntries,Qh as filterMcpServersForSkill,By as filterMonitorTools,q as filterNoteActions,Dg as filterRecords,D as filterSections,mr as filterTypoEdits,tm as findActionArgs,jm as findDispatchProvider,dU as findExistingIssues,GS as findJson,_R as findMatches,Wu as findRecordRefs,Ty as findRepeats,pC as findRow,ie as findSkillByName,se as findTargetByName,rm as findTools,om as findToolsResult,Mn as findWakeCommand,Ep as findingsInstruction,up as findingsOf,Cx as finishAnswer,HL as finishTurn,qT as fit,qx as fitAttachments,kP as fitFor,cx as fitsExpected,ep as fixedPlan,bL as flowWorthDrawing,LM as foldBackFor,OM as foldBackNote,Ip as foldBoard,NM as foldNotes,$p as foldProject,yp as foldRun,eO as forkConflict,Za as formatBytes,bk as formatDownloads,ER as formatReport,fa as formatSurvey,au as formatTag,nu as formatTagQuery,Og as formatTalkTime,Ha as formatTimestamp,Ka as formatTranscript,BD as formatTurnUsage,XD as formatUsd,HU as formatValue,uo as formatWeather,J as frameNoteAction,yN as freeCap,vs as fromB64,sD as fromCloudEvent,SD as fromCloudEventLines,cf as frontPageInstruction,mf as frontPagesAskedAbout,tt as fuseRRF,lm as fusedRanker,uT as gateAllows,KF as gatewayExtractor,Mx as gatherFacts,zL as gatherItems,qN as generateDeviceKey,iM as getMcpProviders,Ro as getWeather,eS as gistOpening,$n as gistText,bh as globToRegExp,iI as goalDraftAllowed,xx as gradeAnswer,vc as grantAllows,bA as grantChoices,vA as grantsFromChoices,ko as grantsNeededFor,nr as graphStats,lI as groundingBlock,FL as groundingNote,jg as groupActionsByOwner,_C as groupById,F as groupModels,Ug as groupRecords,cy as groupRuns,Ga as groupSegments,Hg as hasInsights,wo as hasSubstance,$I as hasTag,su as hasTagTerms,lL as historyContext,iA as holdsGrants,FC as homeChecklist,JR as homePlace,as as hostMatches,vo as housekeepingTarget,dm as hubSpec,dO as identityCodec,bx as identityHint,Ux as identitySystem,oP as imageAttachmentsOf,qM as inProcessPatch,zM as inProcessView,HI as indentSelection,pD as ingestCloudEvents,To as inheritEngineDefaults,_k as initialVoiceState,Bg as insightKindOf,qS as installHintFor,tI as instructionOnLine,AL as intentFromReply,RL as intentItems,TL as intentNeeds,dL as intentPrompt,_L as intentSchema,lN as isActionable,No as isAmbiguousLocation,Mu as isBetterTitleSource,UA as isBuiltin,Ll as isCacheable,bP as isContextLimitError,Dy as isDefaultMcpServer,lO as isEncryptedBackup,BO as isEntry,Ak as isFarewell,$U as isFenced,Zn as isFillerSentence,Ru as isGenericTitle,tM as isInvalidToolParametersResult,Bo as isLocalHelper,ks as isLocked,Kl as isLoopableTool,JL as isMiss,wd as isModelUnavailable,Zx as isNoneNote,VS as isNothing,Wy as isNothingNew,KE as isPermissionTool,zU as isPersonalField,Uo as isPleasantry,HN as isPro,M as isQueued,Uu as isRecordId,It as isRedactionToken,R as isRef,Ne as isResultHost,vp as isResumable,Lf as isSafeSkillPath,LD as isSealedBlob,TO as isSealedRecord,Le as isSearchPage,XU as isSecretField,IF as isSecretPath,Ot as isSelfLabel,$u as isSettled,xD as isShredded,MI as isSkillEnabled,BP as isSmallWindow,sE as isSourceGateError,Cg as isSpeakerImageValue,QS as isStaleMcpSession,Tt as isSubjectCandidate,Go as isSystemModel,KN as isTeam,wO as isTombstone,c as isValidEvent,wR as isValidMemory,vu as isValidStoredRecord,jL as isWebSearch,ya as isYouTubeUrl,AU as issueCommentText,TU as issueSearchUrl,Z_ as jobApplications,sA as jobFromSubtask,pT as jobPostFromForm,hT as jobResults,ET as jobToRole,ln as jobsForEvent,yT as jobsPrompt,yP as keepRecentFor,_O as keyCache,di as lanesOf,wh as languageInstruction,$D as lastClaimOf,Im as lastUserText,Wo as layoutFlowchart,G_ as ledgerKey,JN as licenseFromPayload,Ho as lightestLocalHelper,eI as lineAt,u as linearize,ga as linesFromItems,nf as linkAttachments,aa as linkClaims,Xu as linkRecordRefs,fC as linkTo,IC as linkToRow,ni as linkifyCitations,af as linksToRead,zf as lintSkillPrompt,lr as lintText,oU as listFeatures,WL as listLanes,cC as listRows,ys as lockedSummary,ck as looksLikeEcho,La as looksScanned,EP as lookupLabel,lP as lookupResult,Ck as lowBandEnergy,ja as makeAccessEvent,Vm as makeDispatchProvider,YT as makeEntry,Hm as makeGroupDispatchExecutor,bO as makeJournalEntry,K_ as makeLedgerEntry,Kh as makeNoteToolExecutor,gm as makePromptedTranscript,yu as makeRecordId,A as makeRef,Qi as makeSourceStore,qa as makeStorageTier,_m as makeToolHub,qi as manifestText,Tc as mapInput,jx as mapParts,qR as markUsed,li as markdownUrl,YU as maskSecretFields,XR as matchForForget,dR as matchIndexFor,_U as matchIssues,hI as matchSlashRecipe,xI as matchSlashSkill,DI as matchSlashTeam,cn as matchSummary,Su as matchesTagFilter,SM as mcpBackoff,QA as mcpDispatchProvider,zC as mcpInventorySystem,WC as mcpProvider,qF as mcpServerFromCatalogItem,YC as mcpSharedSystem,aR as meetDecisions,is as meetReach,en as meetingEndedTrigger,Gg as meetingInsights,Zy as meetingNotesSkill,$s as meetingStartedTrigger,Pu as meetingTitlePrompt,QR as memoryBlock,BR as memoryKey,Wh as memoryToolProvider,$R as memoryToolSystem,ne as mentionAnswerPrefix,_a as mentionsFrom,HC as mergeEndpointDestinations,Ce as mergeEngineResults,Bx as mergeNote,Nr as mergeResearchLanes,JO as mergeSegments,ae as mergeSkillPrompt,iC as mergeStamped,Md as mergeTranscript,XP as messagesAfter,Cd as messagesFor,zk as microphoneError,UP as minWindowFor,$S as missingCommandIn,ZS as missingCommandMessage,fA as missingStarters,Be as missingVars,gh as modelAllowed,Zk as modelRows,kk as modelSearchUrl,y as modelSummary,zg as momentBadge,kU as moneyIn,Wn as monitorIntent,wy as monitorNeedsTools,by as monitorProfile,Jy as monitorPrompt,vy as monitorWindowMs,L as moveQueued,it as multiSearch,My as mutableRef,j_ as needForJob,Df as needsBridge,xl as needsConfirmation,jN as needsRecheck,jR as needsWhere,rL as needsWhole,gD as newDeviceKey,cU as newIssueUrl,Tg as newNoteImageId,xd as newSteps,TP as newsAsk,Xs as nextFireAt,gM as nextSidelineIndex,zs as nextWakeAt,RO as nodeCodec,ND as nodeSealer,ql as normModelName,N_ as normalizeAgent,Lc as normalizeBudget,H_ as normalizeCall,_d as normalizeConnection,$T as normalizeEngine,E_ as normalizeEngineSpec,fT as normalizeGate,bc as normalizeGrants,fI as normalizeIntent,sT as normalizeJobPost,vR as normalizeMemory,Uk as normalizeModel,Oh as normalizeOrgPolicy,xF as normalizePath,el as normalizePlatform,l_ as normalizePolicy,JD as normalizePricing,zp as normalizeProject,sa as normalizeRecord,na as normalizeRecords,QF as normalizeRegistryEntry,jF as normalizeRegistryPage,rA as normalizeRequest,r_ as normalizeScm,Gf as normalizeSkill,kn as normalizeSpeech,bu as normalizeStoredRecord,mt as normalizeSubject,qI as normalizeTag,ZI as normalizeTags,Uc as normalizeTeam,TS as normalizeTopic,_S as normalizeTopics,dE as normalizeUsage,RI as normalizeWriterPrefs,Ox as notFoundLines,Q as noteActionItems,j as noteActionLabel,Hx as noteConflictsIn,Sg as noteImageId,Eg as noteImageIds,lg as noteImageRef,mg as noteImageRefs,Vn as noteIntent,Xg as noteSectionKind,MM as noteUnits,WA as observeInbox,UN as observeSince,XA as observeStrip,En as occurrenceKey,Ys as occurrencesBetween,Pe as offTopic,fP as offeredSearch,vU as offersIn,am as oneLiner,AE as openAiTranscript,MD as openBlob,VM as openDecision,xs as openEntry,pO as openRecord,Ca as orderLines,yf as originLabel,xf as originOf,pg as orphanNoteImages,ca as orphanRecords,wI as outlineOf,im as overlapRank,eN as overlayEntries,jS as packageFromArgs,TF as packagesFromFiles,_P as pageAsk,TC as pageById,lf as pageInstruction,CU as pageKey,Pa as pageTextFromItems,dC as pagesOf,HF as paginateText,RN as paletteFor,Ma as paragraphsFromLines,Dl as parallelEligible,re as parseAgentMention,DU as parseAmount,Iy as parseArgsInput,Sl as parseAuthChallenge,wt as parseBriefText,dM as parseBringBack,CI as parseBugCommand,hn as parseClock,Pn as parseCommand,Js as parseCron,xn as parseDuration,uS as parseEntities,Oy as parseEnvInput,ed as parseEvaluation,Sp as parseFindings,Vo as parseFlowchart,DT as parseJobs,mR as parseJsonl,uC as parseLink,BI as parseListItem,fy as parseMcpConfig,Jg as parseMeetingNotes,dg as parseMeetingText,NI as parseNewThread,Dn as parseNumberWords,iN as parseOmni,rp as parsePlan,kr as parsePlanTasks,ku as parseRecordId,Jn as parseRefinement,dd as parseRemote,kT as parseReview,NU as parseSearchText,QO as parseSegmentName,_M as parseSideline,ol as parseSignInPrompt,te as parseSkillMention,Yf as parseSkillVars,XS as parseStructured,xS as parseSuggestions,iu as parseTagQuery,Ba as parseTimedText,Lu as parseTitleResponse,Mm as parseToolCalls,pS as parseTopics,Io as parseWeather,Fn as parseWhen,ka as parseYouTubeUrl,Yx as partChars,Jx as partPrompt,NL as partQueries,Dk as partitionTtsModels,nx as partsOf,ux as partsPlan,MU as passagesOf,Xe as patchApiEntries,uF as pathAttachment,CF as pathAttachmentsOf,Mk as pcmEnergy,C as pendingQueue,zE as permissionAllowed,YE as permissionAnswer,ZE as permissionIcon,WE as permissionKeys,qE as permissionLine,Mh as permissionMode,VE as permissionRequestFromClaude,HE as permissionToolSpec,rn as personJoinedTrigger,_i as phasesOf,on as phraseTrigger,va as pickCaptionTrack,PO as pickProfile,ge as pickResults,oC as pickSections,Wi as pinnedOrderOf,mL as placeItems,Sx as plainEvidence,vr as planAttribution,br as planBody,KP as planCompaction,cD as planEventPush,GN as planLabel,BN as planOf,Ur as planParts,at as planQueries,tL as planRetrieval,Dr as planSectionSystem,Zu as planSync,yr as planTitleFor,Ul as planToolRound,cL as planTurn,op as plannerPrompt,UC as pointsAtGateway,fx as pointsBack,xO as policyFor,yh as policyHash,kh as policyLabel,y_ as poolFor,Ki as preferenceFor,SP as prefetchAttachment,IP as prefetchBudgetMs,nP as prefetchPlan,Sh as presenceBlock,ih as presenceDelta,ah as presenceFor,jD as priceUsage,Yy as priorFindingsText,Vp as priorWorkFor,ri as projectChain,qp as projectFromForm,eT as projectProgress,AD as projectYear,x as promoteQueued,AA as promoteRoles,Oi as promptEntries,HD as promptTokensOf,Cm as promptedToolsSystem,Nm as promptedTranscript,td as proposalFromNeeds,ad as proposalToAgent,$t as propose,ZR as pruneMemories,UU as qualifierAt,an as questionTrigger,OL as questionsIn,AC as quickRows,bU as quoteAround,VU as quoteFormIn,Sm as rankFused,Ee as rankLinkTargets,wU as rankOffers,Or as rankResearchCards,$h as rankSkills,Rt as rankSubjects,Ex as rankedEvidence,VD as rateFor,sh as reachOf,Gr as reachRank,Hr as reachSatisfies,He as readApiResponse,cl as readAuthServerMetadata,Tl as readRegistration,ml as readResourceMetadata,$i as readSource,IM as readThread,Al as readTokenResponse,Nu as readableWhen,mT as readyJobs,YR as recall,jE as recallPermission,Gy as recentFindings,FI as recipeInvocationText,pc as recipeParams,uc as recipeToolProvider,Oc as recipeToolSpec,WR as reconcile,Eo as reconcileEngines,uO as recordsFromBackup,sd as recruitEvents,od as recruitForRun,nd as recruitJob,Ja as redactAccessArgs,la as redactedTokensIn,Ea as redactionCost,Lh as redactionTier,Qx as reduceNotes,OU as refineQueries,qn as refineSpokenCommand,zn as refinementFormat,Yn as refinementPrompt,jn as refinementStream,Py as refreshArgs,ul as registerMcpClient,pl as registrationRequest,zF as registryListUrl,ra as reject,JE as rememberPermission,b as rememberRecent,Hn as reminderIntent,ru as removeTag,$M as renderContent,Xo as renderFlowchartSvg,rg as renderMarkdown,Yu as repairAnswerMarkup,Si as repairCitedLinks,KS as repairJson,fR as replaceAll,IR as replaceAllInRange,RR as replaceMatch,lR as replay,Gi as requirementsFor,Hi as requirementsForStep,Em as rerankThrough,uU as researchAsk,LU as researchBrief,xU as researchCall,fr as researchRelevance,ur as researchSnippet,nM as resetMcp,Kx as resolveNoteConflict,f as resolveRef,AM as resolveSidelineTarget,nN as resolveSince,dt as resolveSubjects,x_ as resolveTeam,ON as resolveTheme,wS as responseFormat,DE as resultToolSpec,bd as resumeTeam,ye as retryAfterMs,km as revealCut,Dm as revealStep,UT as reviewPrompt,HS as rewriteJson,oD as rfc3339,pe as roleById,xA as roleCardId,bD as rollupKey,gA as rosterRows,FT as roundBudget,mE as roundCap,lh as roundCount,LT as roundJobs,Eh as roundMinutes,Bl as roundSignature,Ph as routeAllowed,KL as routeByRule,Q_ as routeFor,ei as routeGraph,Ae as routeTeam,yg as rowTime,Up as runFromEvents,YA as runLanes,dc as runPlan,PT as runProject,Ac as runRecipe,hU as runResearch,mP as runResearchItem,LE as runResultQuery,Kp as runState,Ud as runTeam,bl as runToolRound,lE as runTurnLoop,GL as runTurnPipeline,$l as runWithFailover,Ar as salientTerms,rf as sameMemory,zi as sameModelKey,Uf as sameSkillOrigin,tu as sameTags,oS as sameUtterance,Wk as sampleSeconds,Xk as sampleTooShort,sy as saveTimedOut,iy as saveVoiceFailure,zR as saysWhere,MO as scalePolicy,Kn as scheduleIntent,wc as scmAllows,hx as scoreRuns,lU as scrubReportText,CD as sealBlob,Ls as sealEntry,cO as sealRecord,ze as searchApiChoices,Ds as searchEntries,rc as searchFailureOf,yk as searchModels,ke as searchPolitely,ec as searchResultsToText,LC as searchSettings,$e as searchStatus,Bu as searchTextFor,fF as secretReason,aC as sectionHash,kC as sectionOfRow,eC as sectionSpec,rC as sectionValue,BC as seedDestinations,XO as segmentBytes,YO as segmentEntries,jO as segmentName,$O as segmentsFor,QP as selectContext,zI as selectionStats,NC as setSettingValue,hh as settingLocked,OC as settingValue,DC as settingsGateOf,PC as settingsOpenMode,hC as settingsStatusAll,xC as settingsStatusOf,Qn as settleRefinement,XT as sha256,PE as shieldToolResult,Zi as shortUrl,Cu as shouldAutoTitle,zO as shouldRotate,GC as shouldSeedDestinations,PD as shredBlob,PM as sidelinePath,FM as sidelineToolProvider,$N as signChallenge,tl as signInError,al as signInFromError,il as signInToolResult,Bi as signalsFrom,HR as similarity,eF as skillCatalogSystem,wA as skillChoices,EF as skillCreatorPrompt,iF as skillDiscoveryProvider,aF as skillEntry,oF as skillFileProvider,Ff as skillFiles,pF as skillFromDraft,Zh as skillHandle,mF as skillIdFrom,bI as skillInvocationLabel,UI as skillInvocationOf,bf as skillIsStale,jh as skillPackageFiles,Jh as skillRunFromSkill,qh as skillToolSystem,Wf as skillVar,qf as skillVarGuidance,Xf as skillVarPattern,yI as slashCommandInsert,LI as slashCommandItems,GR as slotOf,L_ as slugAgentId,Zc as slugTeamName,px as snapQuote,LF as sniffType,Ku as snippetOf,DA as soloTeam,Fg as sortRecords,hg as sortStamp,JC as sourceCitationSystem,iE as sourceGate,aE as sourceGuardFor,es as sourceId,CM as sourceOf,ss as sourcePolicyFor,tE as sourcePolicySettings,ns as sourceUrlsOf,Ei as sourcesFromToolText,gx as sourcesOf,da as spanningQuestions,Ik as speakStream,uk as speakable,Ig as speakerBreakdown,Mg as speakerLabeller,Ag as speakerStats,ug as speakerTimeline,Gp as spendOf,zA as spendRows,zx as splitForWindow,wx as splitNoteBlocks,Gl as stableToolCallKey,Qu as stampOf,Tx as standsOn,jk as startRecording,F_ as starterAgents,RA as starterTeam,jc as starterTeams,vL as stepAction,TE as stepResultText,wL as stepState,sf as storyLinkOf,AO as streamCodec,cg as stripNoteImageRefs,Nt as stripQualifiers,ct as subjectKey,pt as subjectTokens,_x as subjectsOf,jf as substituteSkillVars,oA as subtaskFromRequest,mu as suggestExistingTags,gt as suggestMerges,Jf as suggestSkillVar,LS as suggestionsFormat,PS as suggestionsPrompt,hS as suggestionsStream,QT as summarize,V_ as summarizeEngine,py as summarizeRun,rr as summarizeSearch,wD as summarizeUsage,wg as summarySections,HO as supersedes,_e as supportsSubagents,Aa as surveyCorpus,ay as switchOutcome,Gx as syncNote,Xt as synthesisPrompt,YP as systemWithSummary,Eu as tagFacets,Ze as tagResults,cu as tagsSearchText,tA as takeUp,aA as takeUpLine,SA as taskTree,xT as teamForRound,qc as teamFromForm,IA as teamHealth,kI as teamInvocationText,_A as teamLanes,TA as teamLine,uA as teamShape,Kd as teamToolProvider,Vd as teamToolSpec,Wd as teamToolTimeoutMs,kA as teamsWithSolos,sM as testMcpServer,Fx as textKey,Ey as textToDict,uN as themeStylesheet,RM as threadManifest,lA as threadRows,ui as threadTitle,fM as threadToolProvider,gi as threadTree,Ii as threadsOf,Ra as thresholdSweep,WN as tierFor,__ as tierOf,wa as timedTextUrl,Gn as timerIntent,Zs as timerTrigger,Ou as titleFromDate,uu as titleFromParticipants,fu as titleFromSummary,Iu as titleFromTopics,pU as titleTerms,bs as toB64,mp as toBriefClaims,eP as toChatMessages,iD as toCloudEvent,lD as toCloudEventBatch,nD as toCloudEventLines,IN as toCssVars,Gu as toIndexEntry,vS as toJsonSchema,cR as toJsonl,Qr as toModelSchema,qr as toModelSchemas,rP as toMultimodalMessages,Ay as toSanitizedReport,wu as toSearchRecord,VI as toggleLinePrefix,XI as toggleLink,ou as toggleTag,WI as toggleTask,KI as toggleWrap,Rl as tokenExpired,dl as tokenRequest,yn as tokenize,vO as tombstone,Lm as toolChannel,mm as toolDoc,Hl as toolMadeProgress,Do as toolNeedFor,nL as toolPlan,QC as toolStatus,Cl as toolTraits,aL as toolsWanted,Rr as topicTerms,tn as topicTrigger,cS as topicsFormat,mS as topicsPrompt,ES as topicsSchema,dS as topicsStream,hl as traitsIndex,xm as transcriptFor,Wa as transcriptFromTracks,$ as triggerQueryAt,nc as trimDescription,sr as trimGraph,eh as trimOverlap,hf as trustOf,Fk as ttsArchOf,yL as turnFlow,UL as turnFlowChart,DL as turnGroundingNote,Ni as turnsOf,BS as unfence,Ms as unlockVault,xL as unsupportedFigures,hL as unsupportedNote,KU as unverifiedAmounts,Oe as unwrapRedirect,Wr as upcast,Xr as upcastAll,ef as upcastMemory,wf as upcastSkill,Bf as upcastSkills,FA as upsertAgents,yD as usageFromEvent,UD as usageFromOpenAi,xc as usageOf,kD as usageRecord,Gm as validateAction,O_ as validateAgent,ab as validateBrowserAnnounce,tb as validateBrowserCall,ib as validateBrowserResult,Pc as validateBudget,zr as validateCapability,Td as validateConnection,m_ as validateEngineSpec,hs as validateEntry,m as validateEvent,BF as validateExtractRequest,GF as validateExtractResponse,RT as validateGate,Jr as validateInvocation,iT as validateJobPost,Yp as validateProject,mc as validateRecipe,Ws as validateSchedule,vf as validateSkill,yc as validateTeam,zo as validateView,Jo as validateViewInvocation,qo as validateWidget,Zo as validateWidgetMessage,ZC as vaultWidgetSystem,dy as verdict,jT as verifyAttested,zT as verifyChain,YN as verifyEntitlement,Uh as verifyPolicyToken,zN as verifySignedToken,qe as viaOf,ba as videoMetaFromPlayerResponse,Ye as viewApiEntries,jo as viewResult,Pm as visiblePrefix,Ta as vocabularyDrift,sn as voiceCommandTrigger,oy as voiceListRows,ry as voicePicker,dk as voiceSpeaker,Tk as voiceStep,Cn as wakeFor,ma as wantedPages,IL as wantsDecision,fL as wantsIntent,SN as wantsModel,$C as wantsVaultGuidance,tp as waves,pP as weatherFollowupPlace,bM as weatherFromSearch,cP as weatherPlace,UM as weatherToolProvider,fo as weatherUrl,OD as webCryptoSealer,Jk as webMedia,Ir as webQuery,AP as webRedoAsk,PU as webResearch,oc as webSearchToolProvider,ll as wellKnownUrls,NA as whereItWorks,qC as widgetAuthoringSystem,et as widgetIcon,le as wikiQueryAt,Sa as wikilinksIn,DP as windowOf,MF as withAbsolutePaths,Mp as withBoardTool,_y as withCost,NP as withFetchedMemo,Km as withGuidance,Rm as withHint,fm as withLead,nh as withPresence,Om as withPromptedTools,U as withRecent,xE as withResultShield,Fp as withRunCache,aP as withSourceTool,rh as withStitching,cE as withToolSystem,XN as withinFreeLimit,nE as withinReach,ZP as withoutOwnInstructions,Vu as wordCount,Er as wordDiff,qd as workLogEvidence,jd as workLogFor,Qd as workLogText,fd as worktreeDirFor,iL as worldAnswered,sL as worldPlanned,rI as writerAffordance,EI as writerRequest,nI as writerTail};
1
+ import{CURRENT_VERSION as o,EVENT_TYPES as t,ALL_TYPES as a,ACTOR_KINDS as i,SCOPE_KINDS as s,CLASSES as n,EFFECTS as l,EGRESS as S,EventError as E,validateEvent as m,isValidEvent as c,createAppender as p}from"./event.js";import{REF_KINDS as d,RESOLUTION as _,makeRef as A,isRef as R,resolveRef as f}from"./ref.js";import{linearize as u,compareEvents as O,causesAreWellFormed as N}from"./order.js";import{pendingQueue as C,isQueued as M,dequeue as P,moveQueued as L,promoteQueued as x}from"./queue.js";import{groupModels as F,filterSections as D,defaultModelId as y,modelSummary as k,withRecent as U,rememberRecent as b}from"./model-picker.js";import{composerChips as w,chipText as B}from"./composer-chips.js";import{NOTE_ACTIONS as H,NOTE_ACTION_ORDER as K,NOTE_ACTION_TEMPERATURE as V,NOTE_ACTION_ERRORS as W,NOTE_COMMANDS as X,NOTE_COMMAND_TEMPERATURE as Y,NOTE_COMMAND_MAX_TOKENS as z,frameNoteAction as J,noteActionLabel as j,noteActionItems as Q,filterNoteActions as q,commandLineAt as Z,triggerQueryAt as $}from"./note-actions.js";import{parseAgentMention as re,agentMentionAt as oe,parseSkillMention as te,mergeSkillPrompt as ae,findSkillByName as ie,findTargetByName as se,mentionAnswerPrefix as ne}from"./note-mentions.js";import{wikiQueryAt as Se,rankLinkTargets as Ee}from"./note-links.js";import{SWARM_ROLES as ce,roleById as pe,classifyModel as Te,supportsSubagents as de,appoint as _e,routeTeam as Ae}from"./cowriter-router.js";import{SEARCH_ENGINES as fe,RESULTS_PER_ENGINE as Ie,buildSearchUrl as ue,unwrapRedirect as Oe,isResultHost as Ne,pickResults as ge,mergeEngineResults as Ce,engineOrder as Me,offTopic as Pe,isSearchPage as Le}from"./web-search.js";import{PACER_DEFAULTS as he,classifyAnswer as Fe,createEnginePacer as De,searchPolitely as ye,retryAfterMs as ke}from"./engine-pacer.js";import{SEARCH_API_PRESETS as be,SearchApiError as ve,defineSearchApi as we,missingVars as Be,buildApiRequest as Ge,readApiResponse as He,apiEngine as Ke,DEFAULT_API_ENGINES as Ve,apiEnginesFrom as We,patchApiEntries as Xe,viewApiEntries as Ye,searchApiChoices as ze,apiTrialVerdict as Je}from"./search-api.js";import{SEARCH_STATUS as Qe,viaOf as qe,tagResults as Ze,searchStatus as $e,engineLabel as er,summarizeSearch as rr}from"./search-outcome.js";import{MAX_GRAPH_NODES as tr,buildNoteGraph as ar,egoGraph as ir,trimGraph as sr,graphStats as nr}from"./note-graph.js";import{lintText as Sr,wordDiff as Er,filterTypoEdits as mr,editKey as cr,applyEdits as pr,COWRITER_SYSTEM as Tr,COWRITER_TEMPERATURE as dr}from"./cowriter.js";import{salientTerms as Ar,topicTerms as Rr,researchRelevance as fr,webQuery as Ir,researchSnippet as ur,rankResearchCards as Or,mergeResearchLanes as Nr}from"./note-research.js";import{PLAN_ROLES as Cr,PLAN_AUTHORS as Mr,PLAN_DECOMPOSE_SYSTEM as Pr,PLAN_DECOMPOSE_MAX_TOKENS as Lr,PLAN_DECOMPOSE_TEMPERATURE as xr,PLAN_SECTION_MAX_TOKENS as hr,PLAN_SECTION_TEMPERATURE as Fr,planSectionSystem as Dr,parsePlanTasks as yr,planTitleFor as kr,planParts as Ur,planBody as br,planAttribution as vr}from"./note-plan.js";import{REACH as Br,reachRank as Gr,reachSatisfies as Hr}from"./reach.js";import{UPCASTERS as Vr,upcast as Wr,upcastAll as Xr}from"./upcast.js";import{validateCapability as zr,validateInvocation as Jr,canSatisfy as jr,toModelSchema as Qr,toModelSchemas as qr}from"./capability.js";import{checkInvariants as $r,INVARIANTS as eo}from"./invariants.js";import{createMemoryAdapter as oo,createLogStore as to,createBlobStore as ao}from"./store.js";import{createRegistry as so,REGISTRY_STATES as no}from"./registry.js";import{defineSearchEngine as So,reconcileEngines as Eo,attemptOrder as mo,ENGINE_KINDS as co,SearchEngineError as po,inheritEngineDefaults as To,ENGINES_REV as _o}from"./search-engines.js";import{getWeather as Ro,weatherUrl as fo,parseWeather as Io,formatWeather as uo,areaLabel as Oo,isAmbiguousLocation as No,WEATHER_HOST as go,WEATHER_TIMEOUT_MS as Co,WeatherError as Mo}from"./weather.js";import{defineToolGroup as Lo,createToolGroupRegistry as xo,ToolGroupError as ho}from"./tool-groups.js";import{toolNeedFor as Do,grantsNeededFor as yo,equipmentFor as ko,isPleasantry as Uo}from"./tool-need.js";import{housekeepingTarget as vo,hasSubstance as wo,isLocalHelper as Bo,isSystemModel as Go,lightestLocalHelper as Ho}from"./housekeeping.js";import{parseFlowchart as Vo,layoutFlowchart as Wo,renderFlowchartSvg as Xo}from"./flowchart.js";import{validateView as zo,validateViewInvocation as Jo,viewResult as jo}from"./view.js";import{validateWidget as qo,validateWidgetMessage as Zo,effectiveGrants as $o,widgetIcon as et,WIDGET_SURFACES as rt}from"./widget.js";import{fuseRRF as tt,planQueries as at,multiSearch as it}from"./rrf.js";import{SUBJECT_KINDS as nt,DEFAULT_THRESHOLD as lt,MAX_SUBJECTS as St,MAX_SUBJECT_CHARS as Et,normalizeSubject as mt,subjectKey as ct,subjectTokens as pt,isSubjectCandidate as Tt,aliasMap as dt,resolveSubjects as _t,earnsBrief as At,rankSubjects as Rt,REDACTION_TOKEN_TYPES as ft,isRedactionToken as It,SELF_LABELS as ut,isSelfLabel as Ot,stripQualifiers as Nt,suggestMerges as gt}from"./entity.js";import{BRIEF_STATES as Mt,CLAIM_KINDS as Pt,MAX_CLAIMS as Lt,MAX_CLAIM_REFS as xt,MAX_BRIEF_RECORDS as ht,MAX_BRIEF_CHARS as Ft,contentHash as Dt,briefId as yt,briefToText as kt,briefTerms as Ut,briefLinks as bt,checkKnowledgeInvariants as vt,parseBriefText as wt}from"./knowledge.js";import{deriveBrief as Gt,deriveBriefs as Ht,driftedRefs as Kt}from"./knowledge-derive.js";import{SYNTHESIS_SCHEMA as Wt,synthesisPrompt as Xt,claimsFromSynthesis as Yt,MAX_SYNTHESIS_CLAIMS as zt,MAX_EXCERPTS as Jt,MAX_EXCERPT_CHARS as jt}from"./synthesis.js";import{PROPOSAL_STATES as qt,SUPERSEDE_OVERLAP as Zt,propose as $t,accept as ea,reject as ra,diffProposal as oa,converge as ta,linkClaims as aa}from"./promotion.js";import{normalizeRecord as sa,normalizeRecords as na,wikilinksIn as la,redactedTokensIn as Sa,redactionCost as Ea,wantedPages as ma,orphanRecords as ca,duplicateTitles as pa,vocabularyDrift as Ta,mentionsFrom as da,spanningQuestions as _a,surveyCorpus as Aa,thresholdSweep as Ra,formatSurvey as fa,NEAR_TITLE_DISTANCE as Ia,SPAN_MIN_TERMS as ua}from"./curate.js";import{PDF_MAX_CHARS as Na,linesFromItems as ga,orderLines as Ca,paragraphsFromLines as Ma,pageTextFromItems as Pa,looksScanned as La,buildPdfDocument as xa}from"./pdf-layout.js";import{YOUTUBE_HOSTS as Fa,TRANSCRIPT_MAX_CHARS as Da,parseYouTubeUrl as ya,isYouTubeUrl as ka,captionTracksFromPlayerResponse as Ua,videoMetaFromPlayerResponse as ba,pickCaptionTrack as va,timedTextUrl as wa,parseTimedText as Ba,groupSegments as Ga,formatTimestamp as Ha,formatTranscript as Ka,buildTranscriptDocument as Va,transcriptFromTracks as Wa}from"./media-transcript.js";import{ACCESS_LOG_VERSION as Ya,ACCESS_LOG_MAX as za,redactAccessArgs as Ja,makeAccessEvent as ja,createAccessLog as Qa,makeStorageTier as qa,formatBytes as Za}from"./observability.js";import{routeGraph as ei,projectChain as ri}from"./route-graph.js";import{defineAdapter as ti,createAdapterRegistry as ai,AdapterError as ii}from"./adapters.js";import{linkifyCitations as ni,repairCitedLinks as li,markdownUrl as Si,sourcesFromToolText as Ei,createCitationCollector as mi,RETRIEVAL_TOOLS as ci}from"./citations.js";import{buildTrajectory as Ti,phasesOf as di,lanesOf as _i,filterEntries as Ai,displayName as Ri,ENTRY_KINDS as fi,threadsOf as Ii,threadTitle as ui,promptEntries as Oi,turnsOf as Ni,threadTree as gi}from"./trajectory.js";import{createTurnRunner as Mi,createStepRecorder as Pi,argsShape as Li,defineLoop as xi,LOOP_KINDS as hi,LoopError as Fi,abortCause as Di,errorFacts as yi}from"./loop.js";import{defineModel as Ui,defineMiddleware as bi,defineRouteStrategy as vi,createModelRouter as wi,signalsFrom as Bi,requirementsFor as Gi,requirementsForStep as Hi,preferenceFor as Ki,failoverOrder as Vi,pinnedOrderOf as Wi,FAILOVER_CLASS_GAP as Xi,FAILOVER_CAPABILITY_GAP as Yi,sameModelKey as zi,RouterError as Ji}from"./router.js";import{makeSourceStore as Qi,manifestText as qi,shortUrl as Zi,readSource as $i,sourceId as es}from"./sources-retrieval.js";import{classifySource as os,extractUrls as ts,hostMatches as as,meetReach as is,sourcePolicyFor as ss,sourceUrlsOf as ns,DEFAULT_INTERNAL_PATTERNS as ls,INTERNAL_PATTERN_CATALOG as Ss}from"./sources.js";import{defineRule as ms,createRuleEngine as cs,SUPPRESSED as ps,RuleError as Ts}from"./rules.js";import{VAULT_VERSION as _s,KDF_ITERATIONS as As,KDF_HASH as Rs,DEFAULT_LOCK_MS as fs,VaultError as Is,MAX_TITLE_CHARS as us,MAX_NOTE_CHARS as Os,MAX_SECRET_CHARS as Ns,MAX_ENTRIES as gs,createVault as Cs,unlockVault as Ms,deriveKey as Ps,sealEntry as Ls,openEntry as xs,validateEntry as hs,entryMeta as Fs,searchEntries as Ds,isLocked as ys,lockedSummary as ks,canAddEntry as Us,toB64 as bs,fromB64 as vs}from"./vault.js";import{SCHEDULE_KINDS as Bs,TRIGGER_KINDS as Gs,JOB_ACTIONS as Hs,MISSED_POLICIES as Ks,ScheduleError as Vs,validateSchedule as Ws,nextFireAt as Xs,occurrencesBetween as Ys,nextWakeAt as zs,parseCron as Js,defineTrigger as js,createTriggerRegistry as Qs,BUILTIN_TRIGGERS as qs,timerTrigger as Zs,meetingStartedTrigger as $s,meetingEndedTrigger as en,personJoinedTrigger as rn,phraseTrigger as on,topicTrigger as tn,questionTrigger as an,voiceCommandTrigger as sn,defineJob as nn,dueJobs as ln,jobsForEvent as Sn,occurrenceKey as En,clipText as mn,matchSummary as cn}from"./schedule.js";import{defineMeetingAnalyzer as Tn,createAnalyzerRegistry as dn,CADENCES as _n,AnalyzerError as An}from"./meeting-analyzers.js";import{DEFAULT_WAKE as fn,ASSISTANT_NAME as In,MAX_COMMANDS_PER_DELTA as un,DAYPART_HOUR as On,VoiceIntentError as Nn,compileWake as gn,wakeFor as Cn,findWakeCommand as Mn,parseCommand as Pn,commandsFromSegments as Ln,parseDuration as xn,parseClock as hn,parseWhen as Fn,parseNumberWords as Dn,normalizeSpeech as yn,tokenize as kn,editDistance as Un,defineVoiceIntent as bn,createVoiceIntentRegistry as vn,defaultVoiceIntents as wn,BUILTIN_VOICE_INTENTS as Bn,timerIntent as Gn,reminderIntent as Hn,scheduleIntent as Kn,noteIntent as Vn,monitorIntent as Wn,REFINEMENT_SCHEMA as Xn,refinementPrompt as Yn,refinementFormat as zn,parseRefinement as Jn,refinementStream as jn,settleRefinement as Qn,refineSpokenCommand as qn,isFillerSentence as Zn,gistText as $n,gistOpening as el,commandLooksFinished as rl,sameUtterance as ol,createUtteranceGate as tl,UTTERANCE_SETTLE_MS as al,UTTERANCE_DANGLING_MS as il}from"./voice-intents.js";import{MAX_TOPICS as nl,MAX_TOPIC_CHARS as ll,TOPICS_SCHEMA as Sl,topicsSchema as El,topicsPrompt as ml,topicsFormat as cl,parseTopics as pl,normalizeTopic as Tl,normalizeTopics as dl,topicsStream as _l,ENTITY_TYPES as Al,ENTITIES_SCHEMA as Rl,entitiesPrompt as fl,entitiesFormat as Il,parseEntities as ul,coerceEntities as Ol,entitiesStream as Nl,MAX_SUGGESTIONS as gl,MAX_SUGGESTION_CHARS as Cl,SUGGESTIONS_SCHEMA as Ml,suggestionsPrompt as Pl,suggestionsFormat as Ll,parseSuggestions as xl,suggestionsStream as hl}from"./extraction.js";import{FIELD_TYPES as Dl,RESPONSE_MODES as yl,StructuredError as kl,defineSchema as Ul,describeSchema as bl,toJsonSchema as vl,responseFormat as wl,unfence as Bl,findJson as Gl,rewriteJson as Hl,repairJson as Kl,isNothing as Vl,coerce as Wl,parseStructured as Xl,createStructuredStream as Yl}from"./structured.js";import{explainMcpError as Jl,packageFromArgs as jl,isStaleMcpSession as Ql,installHintFor as ql,missingCommandMessage as Zl,missingCommandIn as $l,normalizePlatform as eS}from"./mcp-errors.js";import{explainInstallFailure as oS,gatewayNotBackAdvice as tS,adviceText as aS,npmInstallCommand as iS,standaloneInstallCommand as sS,nodeSatisfies as nS,PUBLIC_REGISTRY as lS}from"./install-advice.js";import{parseSignInPrompt as ES,signInError as mS,signInFromError as cS,signInToolResult as pS,MCP_SIGN_IN_CODE as TS}from"./mcp-signin.js";import{parseAuthChallenge as _S,wellKnownUrls as AS,canonicalResource as RS,readResourceMetadata as fS,readAuthServerMetadata as IS,registrationRequest as uS,readRegistration as OS,authorizeUrl as NS,tokenRequest as gS,readTokenResponse as CS,tokenExpired as MS,authHeader as PS,discoverMcpAuth as LS,registerMcpClient as xS,fetchMcpToken as hS,TOKEN_SKEW_MS as FS}from"./mcp-oauth.js";import{toolTraits as yS,bareToolName as kS,canRunConcurrently as US,isCacheable as bS,needsConfirmation as vS,traitsIndex as wS,effectiveToolName as BS,parallelEligible as GS,PARALLEL_LOCAL_RE as HS}from"./tool-traits.js";import{planToolRound as VS,runToolRound as WS}from"./tool-round.js";import{createToolLoopGuard as YS,roundSignature as zS,stableToolCallKey as JS,toolMadeProgress as jS,isLoopableTool as QS,blockedToolResult as qS,OBSERVATION_TOOLS as ZS,INPUT_PROGRESS_TOOLS as $S}from"./tool-loop-guard.js";import{classifyFailure as rE,createModelHealth as oE,COOLDOWN_MS as tE,UNAVAILABLE_REASONS as aE,normModelName as iE}from"./model-health.js";import{runWithFailover as nE,failoverExhausted as lE,FAILOVER_MAX_ATTEMPTS as SE}from"./failover.js";import{sourcePolicySettings as mE,sourceGuardFor as cE,sourceGate as pE,isSourceGateError as TE,withinReach as dE}from"./source-gate.js";import{runTurnLoop as AE,createCallRunner as RE,roundCap as fE,withToolSystem as IE,describeCall as uE,stepResultText as OE,addUsage as NE,normalizeUsage as gE,openAiTranscript as CE,anthropicTranscript as ME,DEFAULT_MAX_ROUNDS as PE,DEFAULT_MAX_FINISH_TRIES as LE,FINISH_NUDGES as xE,LOOPING_NUDGE as hE,EXHAUSTED_NOTE as FE,ROUND_SEPARATOR as DE}from"./turn-loop.js";import{createResultStore as kE,shieldToolResult as UE,runResultQuery as bE,withResultShield as vE,describeShape as wE,compactValue as BE,resultToolSpec as GE,RESULT_TOOL_NAME as HE,DEFAULT_SHIELD as KE,DEFAULT_STORE as VE}from"./tool-result.js";import{PERMISSION_EVENT as XE,PERMISSION_ANSWERS as YE,PERMISSION_TIMEOUT_MS as zE,PERMISSION_TOOL_NAME as JE,permissionToolSpec as jE,isPermissionTool as QE,permissionRequestFromClaude as qE,permissionKeys as ZE,describePermission as $E,permissionAnswer as em,permissionAllowed as rm,rememberPermission as om,recallPermission as tm,claudePermissionResponse as am,permissionLine as im,permissionIcon as sm,createPermissionDesk as nm}from"./agent-permission.js";import{findTools as Sm,findToolsResult as Em,findActionArgs as mm,oneLiner as cm,overlapRank as pm,FIND_ACTION as Tm}from"./tool-discovery.js";import{rankFused as _m,fusedRanker as Am,rerankThrough as Rm,toolDoc as fm,FUSED_CANDIDATES as Im,FUSED_BUDGET_MS as um}from"./tool-rank-fused.js";import{makeToolHub as Nm,hubSpec as gm,HUB_TOOL_NAME as Cm,withHint as Mm,withLead as Pm,lastUserText as Lm}from"./tool-hub.js";import{withPromptedTools as hm,promptedTranscript as Fm,makePromptedTranscript as Dm,promptedToolsSystem as ym,parseToolCalls as km,visiblePrefix as Um,toolChannel as bm,transcriptFor as vm}from"./prompted-tools.js";import{REVEAL as Bm,revealStep as Gm,revealCut as Hm}from"./stream-reveal.js";import{buildToolset as Vm}from"./toolset.js";import{DESCRIBE_ACTION as Xm,actionMenu as Ym,buildGroupDispatchSpec as zm,validateAction as Jm,makeGroupDispatchExecutor as jm,withGuidance as Qm,makeDispatchProvider as qm,estimateTokens as Zm}from"./tool-dispatch.js";import{FIND_TOOL_NAME as ec,FIND_DESCRIPTION as rc,FIND_RESIDENT as oc,findDispatchProvider as tc}from"./find-tool.js";import{WEB_SEARCH_TOOL_NAME as ic,WEB_SEARCH_TOOL_SYSTEM as sc,WEB_SEARCH_SPEC as nc,searchResultsToText as lc,searchFailureOf as Sc,webSearchToolProvider as Ec}from"./web-search-tool.js";import{compressToolSpec as cc,compressToolSpecs as pc,compressionStats as Tc,trimDescription as dc,COMPRESSION_MODES as _c,DEFAULT_COMPRESSION as Ac}from"./tool-schema.js";import{validateRecipe as fc,expandRecipe as Ic,recipeParams as uc,mapInput as Oc,dryRunRecipe as Nc,runPlan as gc,runRecipe as Cc,RecipeError as Mc,RECIPE_MODES as Pc}from"./recipe.js";import{recipeToolProvider as xc,recipeToolSpec as hc,describeRecipeForApproval as Fc,RECIPE_TOOL_NAME as Dc}from"./recipe-tool.js";import{createBudget as kc,validateBudget as Uc,normalizeBudget as bc,usageOf as vc,BudgetError as wc,BUDGET_DIMENSIONS as Bc}from"./budget.js";import{defineTeam as Hc,validateTeam as Kc,normalizeTeam as Vc,normalizeGrants as Wc,grantAllows as Xc,scmAllows as Yc,describeRole as zc,TeamError as Jc,ROLE_MODES as jc,MERGE_POLICIES as Qc,PLAN_MODES as qc,GRANTABLE as Zc,WORK_GRANTS as $c,GRANT_RE as ep,AGENT_REF_RE as rp,STARTER_TEAMS as op,starterTeams as tp,blankTeam as ap,teamFromForm as ip,slugTeamName as sp}from"./team.js";import{fixedPlan as lp,parsePlan as Sp,plannerPrompt as Ep,waves as mp,breakCycles as cp,TEAM_PLAN_SCHEMA as pp}from"./team-plan.js";import{createBoard as dp,parseFindings as _p,boardText as Ap,findingsInstruction as Rp,toBriefClaims as fp,FINDINGS_SCHEMA as Ip,FINDING_KINDS as up,THREAD_KINDS as Op,THREAD_STATUSES as Np,POST_KINDS as gp,POST_STATUSES as Cp,ASK_TYPES as Mp,emptyBoardState as Pp,foldBoard as Lp,findingsOf as xp}from"./team-board.js";import{boardToolProvider as Fp,boardToolSpec as Dp,createAnswerBox as yp,withBoardTool as kp,BOARD_TOOL_NAME as Up,DEFAULT_ASK_TIMEOUT_MS as bp}from"./board-tool.js";import{createRunCache as wp,withRunCache as Bp}from"./team-cache.js";import{emptyRun as Hp,foldRun as Kp,runFromEvents as Vp,checkpointFrom as Wp,isResumable as Xp,LIVE_RUN_STATUSES as Yp,RESUMABLE_RUN_STATUSES as zp,spendOf as Jp,describeSpend as jp,runState as Qp,priorWorkFor as qp,STALLED_AFTER_MS as Zp}from"./team-record.js";import{validateProject as eT,normalizeProject as rT,defineProject as oT,canTransition as tT,blankProject as aT,projectFromForm as iT,emptyProjectRecord as sT,foldProject as nT,projectProgress as lT,ProjectError as ST,PROJECT_STATUSES as ET,PROJECT_ID_RE as mT}from"./project.js";import{validateJob as pT,normalizeJob as TT,defineJob as dT,canTransition as _T,applyAll as AT,jobToRole as RT,readyJobs as fT,blankJob as IT,jobFromForm as uT,JobError as OT,JOB_STATUSES as NT,JOB_ID_RE as gT}from"./job.js";import{validateGate as MT,normalizeGate as PT,effectiveGate as LT,gateAllows as xT,DEFAULT_GATE as hT,AUTONOMY as FT,HUMAN_FLAGS as DT,CHECKS as yT}from"./gate.js";import{runProject as UT,roundJobs as bT,teamForRound as vT,jobResults as wT,roundBudget as BT,parseJobs as GT,parseReview as HT,jobsPrompt as KT,reviewPrompt as VT,PROJECT_JOBS_SCHEMA as WT,PROJECT_REVIEW_SCHEMA as XT,ProjectRunError as YT,EXECUTIVE as zT,MAX_JOBS_PER_ROUND as JT,MAX_ROUNDS as jT,PROJECT_RUN_STATUSES as QT}from"./project-run.js";import{canonical as ZT,sha256 as $T,makeEntry as ed,verifyChain as rd,attest as od,verifyAttested as td,summarize as ad,fit as id,adjustSummary as sd,normalizeEngine as nd,engineKey as ld,normalizeScm as Sd,SCORECARD_ENTRY_KINDS as Ed,ROLE_KINDS as md,SCORECARD_VERSION as cd,ENGINE_KINDS as pd}from"./scorecard.js";import{ENGINE_KINDS as dd,ROUTE_PREFERS as _d,normalizePolicy as Ad,normalizeEngineSpec as Rd,validateEngineSpec as fd,engineRef as Id,engineKeyOf as ud,describeEngine as Od,tierOf as Nd}from"./engine.js";import{AGENT_ID_RE as Cd,APPLIES_TO as Md,EGRESS_CLASSES as Pd,ASSISTANT_ID as Ld,AgentError as xd,validateAgent as hd,normalizeAgent as Fd,defineAgent as Dd,assistantAgent as yd,engineOf as kd,describeAgent as Ud,slugAgentId as bd,resolveTeam as vd,STARTER_AGENTS as wd,starterAgents as Bd,blankAgent as Gd,agentFromForm as Hd,poolFor as Kd}from"./agent.js";import{LEDGER_VERSION as Wd,LEDGER_ENTRY_KINDS as Xd,DECLINE_REASONS as Yd,WITHDRAW_AFTER as zd,ledgerKey as Jd,normalizeCall as jd,makeLedgerEntry as Qd,summarizeEngine as qd}from"./model-ledger.js";import{RECRUIT_SCHEMA as $d,MIN_FIT as e_,engineRow as r_,engineRows as o_,needForJob as t_,routeFor as a_,engineWorth as i_,applications as s_,evaluatorPrompt as n_,parseEvaluation as l_,decide as S_,recruitForRun as E_,proposalFromNeeds as m_,proposalToAgent as c_,carveBudget as p_,recruitEvents as T_,recruitJob as d_}from"./recruit.js";import{DEFAULT_MIN_CALLS as A_,cardOverride as R_,applyCard as f_}from"./model-candidates.js";import{SCM_KINDS as u_,validateConnection as O_,normalizeConnection as N_,parseRemote as g_,connectionFor as C_,branchFor as M_,worktreeDirFor as P_,credentialEnv as L_,describeConnection as x_,blankConnection as h_,connectionFromForm as F_}from"./scm-connection.js";import{messagesFor as y_,mergeTranscript as k_,clipTranscript as U_,clipMessage as b_,newSteps as v_,continuationNote as w_,createControl as B_,STEP_MAX_CHARS as G_,TASK_TRANSCRIPT_MAX_CHARS as H_}from"./team-task.js";import{runTeam as V_,resumeTeam as W_,dryRunTeam as X_,isModelUnavailable as Y_,TeamRunError as z_,RUN_STATUSES as J_}from"./team-run.js";import{teamToolProvider as Q_,teamToolSpec as q_,teamToolTimeoutMs as Z_,describeTeamForApproval as $_,TEAM_TOOL_NAME as eA,TEAM_MANUAL as rA}from"./team-tool.js";import{workLogFor as tA,workLogText as aA,workLogEvidence as iA,describeCall as sA,WORKLOG_KINDS as nA}from"./team-worklog.js";import{normalizeRequest as SA,subtaskFromRequest as EA,takeUp as mA,takeUpLine as cA,holdsGrants as pA,jobFromSubtask as TA,extendDependents as dA,taskTree as _A,threadRows as AA,MAX_SUBTASKS as RA,MAX_DEPTH as fA,MIN_TAKEUP_FIT as IA}from"./team-subtask.js";import{teamLine as OA,teamLanes as NA}from"./team-trail.js";import{promoteRoles as CA,starterTeam as MA,missingStarters as PA,teamHealth as LA,teamShape as xA,describeTeamShape as hA,whereItWorks as FA,rosterRows as DA,agentKind as yA,agentHue as kA,agentColor as UA,agentInitials as bA,roleCardId as vA,cardNumbers as wA,upsertAgents as BA,soloTeam as GA,teamsWithSolos as HA,builtinOrg as KA,isBuiltin as VA,grantChoices as WA,grantsFromChoices as XA,skillChoices as YA,GRANT_INFO as zA,SOLO_BUDGET as JA,TEAM_SHAPES as jA,ROSTER_KINDS as QA}from"./team-org.js";import{observeInbox as ZA,observeStrip as $A,runLanes as eR,spendRows as rR,engineStrip as oR}from"./team-observe.js";import{mcpDispatchProvider as aR,MCP_TOOL_NAME as iR}from"./mcp-dispatch.js";import{createManifest as nR,ManifestError as lR,SOURCES as SR}from"./manifest.js";import{createKernel as mR,meetDecisions as cR,KernelError as pR,REQUIRED_PLUGINS as TR,ALLOW_ALL as dR}from"./kernel.js";import{replay as AR,formatReport as RR,parseJsonl as fR,toJsonl as IR}from"./harness.js";import{compileQuery as OR,findMatches as NR,matchIndexFor as gR,expandReplacement as CR,replaceMatch as MR,replaceAll as PR,replaceAllInRange as LR,MAX_MATCHES as xR}from"./text-search.js";import{DATA_SCOPES as FR}from"./scopes.js";import{MEMORY_VERSION as yR,MEMORY_KINDS as kR,MEMORY_KIND_NAMES as UR,AMBIENT_KINDS as bR,MAX_MEMORY_CHARS as vR,MIN_MEMORY_CHARS as wR,DEFAULT_MAX_MEMORIES as BR,DEFAULT_BLOCK_CHARS as GR,SAME_FACT as HR,MEMORY_TOOL_SPEC as KR,MEMORY_UPCASTERS as VR,MemoryError as WR,normalizeMemory as XR,isValidMemory as YR,memoryKey as zR,slotOf as JR,similarity as jR,containment as QR,candidatesFrom as qR,reconcile as ZR,matchForForget as $R,recall as ef,saysWhere as rf,homePlace as of,needsWhere as tf,memoryBlock as af,markUsed as sf,pruneMemories as nf,memoryToolSystem as lf,upcastMemory as Sf,sameMemory as Ef,AMBIENT_MAX_WORDS as mf}from"./memory.js";import{linksToRead as pf,storyLinkOf as Tf,linkAttachments as df,asksOnlyAboutPage as _f,pageInstruction as Af}from"./message-links.js";import{frontPagesAskedAbout as ff,frontPageInstruction as If,FRONT_PAGES as uf}from"./site-pages.js";import{SOURCE_TRUST as Nf,SkillSourceError as gf,defineSkillSource as Cf,createSkillSourceRegistry as Mf}from"./skill-sources.js";import{SKILL_MANIFEST_VERSION as Lf,SKILL_CONTEXTS as xf,SKILL_HISTORY_SCOPES as hf,SKILL_MCP_MODES as Ff,SKILL_TRUST as Df,SKILL_FILE_KINDS as yf,SKILL_UPCASTERS as kf,SkillManifestError as Uf,isSafeSkillPath as bf,originOf as vf,trustOf as wf,skillFiles as Bf,needsBridge as Gf,declaredAccess as Hf,originLabel as Kf,sameSkillOrigin as Vf,skillIsStale as Wf,validateSkill as Xf,upcastSkill as Yf,upcastSkills as zf,normalizeSkill as Jf}from"./skill-manifest.js";import{SKILL_VARS as Qf,SKILL_VAR_NAMES as qf,skillVar as Zf,skillVarPattern as $f,parseSkillVars as eI,lintSkillPrompt as rI,suggestSkillVar as oI,substituteSkillVars as tI,expandSkillPrompt as aI,skillVarGuidance as iI,SkillVarError as sI}from"./skill-vars.js";import{lineAt as lI,writerAffordance as SI,INSTRUCTION_RE as EI,instructionOnLine as mI,GOAL_MIN_NEW as cI,goalDraftAllowed as pI,createSpendMeter as TI,writerTail as dI,draftSeparator as _I,groundingBlock as AI,writerRequest as RI,AUTOCOMPLETE_SYSTEM as fI,AUTOCOMPLETE_MAX_TOKENS as II,AUTOCOMPLETE_TEMPERATURE as uI,clipCompletion as OI,GEARS as NI,WRITER_PREFS as gI,WRITER_PREF_DEFAULTS as CI,normalizeWriterPrefs as MI,normalizeIntent as PI}from"./cowriter-writer.js";import{SLASH_TYPING_RE as xI,NEW_THREAD_SLASH_ITEMS as hI,parseNewThread as FI,BUG_REPORT_SLASH_ITEMS as DI,parseBugCommand as yI,isSkillEnabled as kI,enabledSkills as UI,slashCommandItems as bI,matchSlashSkill as vI,matchSlashRecipe as wI,recipeInvocationText as BI,matchSlashTeam as GI,teamInvocationText as HI,slashCommandInsert as KI,skillInvocationOf as VI,skillInvocationLabel as WI}from"./slash-commands.js";import{outlineOf as YI,parseListItem as zI,continueList as JI,indentSelection as jI,toggleWrap as QI,toggleLinePrefix as qI,toggleTask as ZI,toggleLink as $I,docStats as eu,selectionStats as ru}from"./markdown-authoring.js";import{MAX_TAG_LENGTH as tu,MAX_TAGS as au,normalizeTag as iu,normalizeTags as su,hasTag as nu,addTag as lu,removeTag as Su,toggleTag as Eu,sameTags as mu,formatTag as cu,parseTagQuery as pu,hasTagTerms as Tu,formatTagQuery as du,matchesTagFilter as _u,filterByTags as Au,tagFacets as Ru,suggestExistingTags as fu,tagsSearchText as Iu}from"./tags.js";import{UNTITLED_MEETING as Ou,MAX_TITLE_LENGTH as Nu,TITLE_RULES_VERSION as gu,cleanTitle as Cu,isGenericTitle as Mu,titleFromSummary as Pu,titleFromTopics as Lu,titleFromParticipants as xu,titleFromDate as hu,readableWhen as Fu,deriveMeetingTitle as Du,shouldAutoTitle as yu,isBetterTitleSource as ku,meetingTitlePrompt as Uu,parseTitleResponse as bu}from"./titles.js";import{RECORD_KINDS as wu,MAX_TITLE_LEN as Bu,LibraryError as Gu,parseRecordId as Hu,makeRecordId as Ku,isRecordId as Vu,normalizeStoredRecord as Wu,isValidStoredRecord as Xu,toSearchRecord as Yu,searchTextFor as zu,toIndexEntry as Ju,deriveTitle as ju,snippetOf as Qu,wordCount as qu,findRecordRefs as Zu,linkRecordRefs as $u,repairAnswerMarkup as eO}from"./library.js";import{CLOCK_TOLERANCE_MS as oO,SyncError as tO,stampOf as aO,decide as iO,planSync as sO,isSettled as nO,forkConflict as lO,advanceBases as SO}from"./sync-plan.js";import{ENCRYPTED_TYPE as mO,COMPRESSIONS as cO,BackupError as pO,KDF_ITERATIONS as TO,encryptBackup as dO,decryptBackup as _O,isEncryptedBackup as AO,RECORD_TYPE as RO,deriveBackupKey as fO,sealRecord as IO,openRecord as uO,isSealedRecord as OO,keyCache as NO,identityCodec as gO,streamCodec as CO,nodeCodec as MO,bestCodec as PO}from"./backup-envelope.js";import{recordsFromBackup as xO,backupFromRecords as hO}from"./backup-records.js";import{DEFAULT_POLICY as DO,SLOW_POLICY as yO,scalePolicy as kO,pickProfile as UO,adaptProfile as bO,policyFor as vO,SLOW_FLUSH_MS as wO,FAST_FLUSH_MS as BO,FAST_STREAK as GO,createJournal as HO,JournalError as KO,ENTRY_VERSION as VO,makeEntry as WO,tombstone as XO,isTombstone as YO,isEntry as zO,entryStamp as JO,supersedes as jO,BOUNDS as QO,createSegment as qO,applyEntry as ZO,segmentBytes as $O,segmentEntries as eN,shouldRotate as rN,mergeSegments as oN,segmentName as tN,parseSegmentName as aN,SEGMENT_RE as iN,boundSegments as sN,segmentsFor as nN,overlay as lN,catchUpPlan as SN}from"./journal.js";import{OMNI_MODES as mN,OMNI_GRAMMAR as cN,parseOmni as pN,extractFilters as TN,resolveSince as dN,wantsModel as _N,isActionable as AN}from"./omni.js";import{THEMES as fN,LIGHT as IN,DARK as uN,PALETTES as ON,SHAPE as NN,TOKEN_NAMES as gN,TOKEN_ROLES as CN,paletteFor as MN,cssVarName as PN,toCssVars as LN,themeStylesheet as xN,resolveTheme as hN}from"./theme.js";import{PLANS as DN,API_BASE as yN,ENDPOINTS as kN,ENTITLEMENT_PUBLIC_JWK as UN,UPGRADE_URL as bN,FEATURE_TIER as vN,PRO_FEATURES as wN,TEAM_FEATURES as BN,FREE_LIMITS as GN,COUNTED as HN,freeCap as KN,observeSince as VN,RECHECK_INTERVAL_MS as WN,EntitlementError as XN,checkoutUrl as YN,planOf as zN,planLabel as JN,isPro as jN,isTeam as QN,can as qN,tierFor as ZN,withinFreeLimit as $N,verifyEntitlement as eg,verifySignedToken as rg,licenseFromPayload as og,needsRecheck as tg}from"./entitlement.js";import{generateDeviceKey as ig,exportDevicePublicKey as sg,signChallenge as ng}from"./device-proof.js";import{renderMarkdown as Sg,defaultLinkPolicy as Eg,defaultImagePolicy as mg}from"./markdown-render.js";import{NOTE_IMAGE_SCHEME as pg,MAX_NOTE_IMAGE_BYTES as Tg,NOTE_IMAGE_TYPES as dg,noteImageId as _g,noteImageRef as Ag,noteImageIds as Rg,noteImageRefs as fg,stripNoteImageRefs as Ig,orphanNoteImages as ug,newNoteImageId as Og}from"./note-images.js";import{parseMeetingText as gg,speakerStats as Cg,densityRibbon as Mg}from"./meeting-text.js";import{speakerBreakdown as Lg,speakerTimeline as xg,formatTalkTime as hg,SPEAKER_SLOTS as Fg}from"./meeting-shape.js";import{isSpeakerImageValue as yg,speakerLabeller as kg}from"./meeting-shape.js";import{SORT_MODES as bg,SORT_LABELS as vg,sortStamp as wg,sortRecords as Bg,filterRecords as Gg,dayBucket as Hg,rowTime as Kg,groupRecords as Vg}from"./record-list.js";import{DATE_PRESETS as Xg,startOfDay as Yg,addDays as zg,dayKey as Jg,resolveDateValue as jg,dateRangeOf as Qg,parseDateQuery as qg,hasDateTerms as Zg,isSingleDay as $g,formatDateTerm as eC,setDateTerm as rC,matchesDateRange as oC,filterByDate as tC,describeDateRange as aC,dateFilterLabel as iC,activePreset as sC,pickDay as nC,shiftMonth as lC,monthGrid as SC,dayCounts as EC,nearbyDays as mC,localeWeekStart as cC}from"./date-filter.js";import{INSIGHT_KINDS as TC,summarySections as dC,insightKindOf as _C,meetingInsights as AC,hasInsights as RC}from"./meeting-insights.js";import{demd as IC,NOTE_SECTIONS as uC,noteSectionKind as OC,MOMENT_BADGES as NC,momentBadge as gC,parseMeetingNotes as CC,groupActionsByOwner as MC}from"./meeting-insights.js";import{PREF_SECTIONS as LC,PREF_SECTION_IDS as xC,DESKTOP_SECTION_IDS as hC,sectionSpec as FC,sectionValue as DC,pickSections as yC,applySections as kC,sectionHash as UC,mergeStamped as bC,changedSections as vC}from"./client-prefs.js";import{SETTINGS_GROUPS as BC,SETTINGS_PAGES as GC,REQUIREMENTS as HC,BOOKKEEPING_KEYS as KC,listRows as VC,findRow as WC,pageById as XC,groupById as YC,pagesOf as zC,quickRows as JC,breadcrumb as jC,linkTo as QC,linkToRow as qC,parseLink as ZC,valueOf as $C,setValue as eM,effectiveValue as rM,describeValue as oM,SETTINGS_OPEN_DEFAULT as tM,settingsOpenMode as aM,searchSettings as iM,statusOf as sM,statusAll as nM,homeChecklist as lM,gateOf as SM,sectionOfRow as EM}from"./settings-registry.js";import{pointsAtGateway as cM,destinationFromEndpoint as pM,destinationFromAgent as TM,availableDestinations as dM,seedDestinations as _M,shouldSeedDestinations as AM,mergeEndpointDestinations as RM}from"./gateway-dests.js";import{McpClient as IM,mcpProvider as uM}from"./mcp-client.js";import{mcpSharedSystem as NM,mcpInventorySystem as gM,sourceCitationSystem as CM,combineSystemPrompt as MM,toolStatus as PM,widgetAuthoringSystem as LM,vaultWidgetSystem as xM,wantsVaultGuidance as hM}from"./tool-hints.js";import{adaptiveToolRetryHint as DM,createAdaptiveToolPolicy as yM,isInvalidToolParametersResult as kM}from"./adaptive-tool-policy.js";import{getMcpProviders as bM,testMcpServer as vM,resetMcp as wM,mcpBackoff as BM}from"./mcp-manager.js";import{SIDELINE_COMMANDS as HM,BRINGBACK_COMMAND as KM,THREAD_TOOL_NAME as VM,SIDELINE_SLASH_ITEMS as WM,THREAD_TOOL_SPEC as XM,parseSideline as YM,parseBringBack as zM,resolveSidelineTarget as JM,threadManifest as jM,threadToolProvider as QM,readThread as qM,briefPrompt as ZM,foldBackNote as $M,foldNotes as eP,nextSidelineIndex as rP,sourceOf as oP,noteUnits as tP,sidelinePath as aP,foldBackFor as iP,SIDELINE_TOOL_NAME as sP,SIDELINE_TOOL_SPEC as nP,sidelineToolProvider as lP}from"./sideline.js";import{WEATHER_TOOL_NAME as EP,WEATHER_TOOL_SYSTEM as mP,weatherToolProvider as cP,weatherFromSearch as pP}from"./weather-tool.js";import{DECIDE_TOOL_NAME as dP,RERANK_TOOL_NAME as _P,CAPABILITY_TOOLS_SYSTEM as AP,capabilityToolsProvider as RP}from"./capability-tools.js";import{openDecision as IP,distributionConfidence as uP}from"./open-decision.js";import{IN_PROCESS_IDS as NP,inProcessView as gP,capabilityView as CP,choicePatch as MP,choiceNote as PP,inProcessPatch as LP}from"./runtime-in-process.js";import{renderContent as hP,toChatMessages as FP,toMultimodalMessages as DP,imageAttachmentsOf as yP,deferAttachedSources as kP,withSourceTool as UP,SOURCE_TOOL_SPEC as bP}from"./context-attachments.js";import{prefetchPlan as wP,prefetchAttachment as BP,lookupResult as GP,lookupLabel as HP,runResearchItem as KP,weatherPlace as VP,weatherFollowupPlace as WP,newsAsk as XP,pageAsk as YP,answeredByPrefetch as zP,webRedoAsk as JP,aboutOwnPast as jP,offeredSearch as QP,prefetchBudgetMs as qP}from"./prefetch.js";import{createFetchedStore as $P,withFetchedMemo as eL,fetchKey as rL,fetchTitle as oL,fetchedAsSources as tL,fetchedFacts as aL,defaultTtl as iL,exchangeOf as sL,FETCHED_TTL_MS as nL}from"./fetched.js";import{windowOf as SL,fitFor as EL,keepRecentFor as mL,minWindowFor as cL,isContextLimitError as pL,FIT_HEADROOM as TL,SMALL_WINDOW as dL,isSmallWindow as _L,SMALL_WINDOW_ROUNDS as AL}from"./context-window.js";import{planCompaction as fL,compactionPrompt as IL,compactionRecord as uL,messagesAfter as OL,systemWithSummary as NL,compactable as gL,COMPACTION_SYSTEM as CL}from"./compaction.js";import{selectContext as PL}from"./context-select.js";import{withoutOwnInstructions as xL}from"./own-instructions.js";import{digest as FL,needsWhole as DL}from"./digest.js";import{planRetrieval as kL,toolsWanted as UL,worldAnswered as bL,worldPlanned as vL,toolPlan as wL,contextPlan as BL,historyContext as GL,HISTORY_NOTE as HL,placeItems as KL,planTurn as VL}from"./retrieval-plan.js";import{intentNeeds as XL,intentSchema as YL,intentPrompt as zL,intentFromReply as JL,intentItems as jL,wantsIntent as QL,wantsDecision as qL,decideIntent as ZL,questionsIn as $L,partQueries as ex,MAX_PARTS as rx,EXPECTS as ox,expectsOf as tx}from"./turn-intent.js";import{figuresIn as ix,unsupportedFigures as sx,unsupportedNote as nx,groundingNote as lx,turnGroundingNote as Sx}from"./answer-grounding.js";import{turnFlow as mx,turnFlowChart as cx,flowWorthDrawing as px,stepAction as Tx,stepState as dx}from"./turn-flow.js";import{runTurnPipeline as Ax,finishTurn as Rx,routeByRule as fx,defineLane as Ix,listLanes as ux,TURN_STAGES as Ox}from"./turn-pipeline.js";import{gatherItems as gx,isMiss as Cx,isWebSearch as Mx,GATHER_LIMITS as Px}from"./turn-gather.js";import{TURN_EVENTS as xx,createTurnEvents as hx,activityOf as Fx,applyStateDelta as Dx}from"./turn-events.js";import{QUESTION_PLAN_LIMITS as kx,SEARCH_UNAVAILABLE as Ux,factSchema as bx,factSchemaFor as vx,partsOf as wx,plainEvidence as Bx,evidenceFor as Gx,rankedEvidence as Hx,factPrompt as Kx,fitsExpected as Vx,snapQuote as Wx,standsOn as Xx,subjectsOf as Yx,factFromReply as zx,carried as Jx,againQuery as jx,pointsBack as Qx,dependsOn as qx,partsPlan as Zx,notFoundLines as $x,factsList as eh,sourcesOf as rh,finishAnswer as oh,gatherFacts as th}from"./question-plan.js";import{createCassette as ih,gradeAnswer as sh,scoreRuns as nh,textKey as lh,ReplayMiss as Sh}from"./turn-replay.js";import{asksIdentity as mh,identitySystem as ch,identityHint as ph}from"./identity.js";import{splitBlocks as dh,mergeNote as _h,syncNote as Ah,conflictsIn as Rh,resolveConflict as fh}from"./note-merge.js";import{STITCH_LIMITS as uh,CUT_FINISH as Oh,partChars as Nh,splitForWindow as gh,partPrompt as Ch,mapParts as Mh,reduceNotes as Ph,fitAttachments as Lh,isNone as xh,continuationMessages as hh,trimOverlap as Fh,withStitching as Dh,CONTINUE_TEXT as yh}from"./stitch.js";import{presenceFor as Uh,presenceDelta as bh,reachOf as vh,withPresence as wh,presenceBlock as Bh,roundCount as Gh,roundMinutes as Hh,PRESENCE_BUDGET_TOKENS as Kh,PRESENCE_KINDS as Vh}from"./presence.js";import{PolicyError as Xh,POLICY_VERSION as Yh,POLICY_TOKEN_TYPE as zh,REDACTION_TIERS as Jh,LOCKABLE as jh,FEATURES as Qh,PERMISSION_MODES as qh,PRODUCT_HOSTS as Zh,normalizeOrgPolicy as $h,endpointAllowed as eF,modelAllowed as rF,agentAllowed as oF,permissionMode as tF,routeAllowed as aF,redactionTier as iF,egressAllowed as sF,settingLocked as nF,featureEnabled as lF,applyPolicyToSettings as SF,policyLabel as EF,policyHash as mF,verifyPolicyToken as cF,globToRegExp as pF}from"./policy.js";import{languageInstruction as dF,RESPONSE_LANGUAGES as _F}from"./response-language.js";import{NOTE_TOOL_SPECS as RF,makeNoteToolExecutor as fF}from"./note-tool.js";import{memoryToolProvider as uF}from"./memory-tool.js";import{captureFromMessage as NF}from"./memory-capture.js";import{skillRunFromSkill as CF,skillPackageFiles as MF,filterMcpServersForSkill as PF,skillToolSystem as LF,skillHandle as xF,rankSkills as hF,skillCatalogSystem as FF}from"./skill-runtime.js";import{skillFileProvider as yF,SKILL_FILE_TOOL as kF,skillEntry as UF,skillDiscoveryProvider as bF}from"./skill-files.js";import{SKILL_DRAFT_SCHEMA as wF,MAX_SKILL_FILE_BYTES as BF,MAX_SKILL_PACKAGE_BYTES as GF,skillCreatorPrompt as HF,skillIdFrom as KF,admitPackage as VF,skillFromDraft as WF,packagesFromFiles as XF}from"./skill-creator.js";import{PATH_KIND as zF,FILES_TOOL as JF,checkAttachablePath as jF,secretReason as QF,isSecretPath as qF,pathAttachment as ZF,describeAttachedPath as $F,describePathSize as eD,displayPath as rD,pathAttachmentsOf as oD,withAbsolutePaths as tD,attachedFilesProvider as aD,sniffType as iD,normalizePath as sD,collapseDots as nD,basenameOf as lD,SKIP_DIR_NAMES as SD}from"./attached-paths.js";import{EXTRACT_ROUTE as mD,EXTRACT_PROVIDER_ID as cD,MAX_DOCUMENT_BYTES as pD,PAGE_CHARS as TD,EXTRACT_TYPES as dD,validateExtractRequest as _D,validateExtractResponse as AD,paginateText as RD,gatewayExtractor as fD,extractorChain as ID}from"./extract-capability.js";import{MCP_REGISTRY_API as OD,MCP_CATALOG as ND,registryListUrl as gD,fetchMcpRegistryPage as CD,normalizeRegistryPage as MD,normalizeRegistryEntry as PD,mcpServerFromCatalogItem as LD}from"./mcp-registry.js";import{CE_SPECVERSION as hD,CE_TYPE_PREFIX as FD,CE_SOURCE_PREFIX as DD,rfc3339 as yD,ceSourceOf as kD,ceHostOf as UD,toCloudEvent as bD,fromCloudEvent as vD,toCloudEventLines as wD,fromCloudEventLines as BD,toCloudEventBatch as GD}from"./cloudevents.js";import{PUSH_LIMITS as KD,planEventPush as VD,ingestCloudEvents as WD,cursorOf as XD}from"./event-sync.js";import{eventStats as zD,projectYear as JD}from"./event-stats.js";import{SEALED_TYPE as QD,SEALED_VERSION as qD,SealError as ZD,webCryptoSealer as $D,nodeSealer as ey,newDeviceKey as ry,sealBlob as oy,openBlob as ty,shredBlob as ay,isSealedBlob as iy,isShredded as sy}from"./blob-envelope.js";import{USAGE_RING_MAX as ly,COST_BASES as Sy,usageRecord as Ey,usageFromEvent as my,usageFromOpenAi as cy,rollupKey as py,applyUsage as Ty,summarizeUsage as dy,formatTurnUsage as _y,describeTurnUsage as Ay,promptTokensOf as Ry}from"./usage.js";import{rateFor as Iy,costFor as uy,formatUsd as Oy,PRICING_BASES as Ny,PRICING_LABELS as gy,normalizePricing as Cy,priceUsage as My}from"./usage-pricing.js";import{FACTCHECK_SCHEMA as Ly,FACTCHECK_VERDICTS as xy,lastClaimOf as hy,factcheckPrompt as Fy,factcheckVerdict as Dy,factcheckKey as yy}from"./cowriter-factcheck.js";import{createVoiceLoop as Uy,VOICE_STATES as by,MUTE_GRACE_MS as vy,MAX_PENDING_CHARS as wy,CONTINUATION_WINDOW_MS as By,ECHO_OVERLAP as Gy,ECHO_TAIL_MS as Hy,MIN_BARGE_IN_WORDS as Ky,looksLikeEcho as Vy}from"./voice-loop.js";import{voiceStep as Xy,initialVoiceState as Yy,voiceSpeaker as zy,isFarewell as Jy,ANOTHER_VOICE as jy}from"./voice-brain.js";import{speakStream as qy,speakable as Zy,SPOKEN_REPLY_HINT as $y}from"./speak-stream.js";import{createVad as rk,lowBandEnergy as ok,pcmEnergy as tk,VAD_DEFAULTS as ak}from"./voice-vad.js";import{HF_API as sk,TTS_ARCH_LABEL as nk,ttsArchOf as lk,partitionTtsModels as Sk,modelSearchUrl as Ek,searchModels as mk,normalizeModel as ck,formatDownloads as pk,describeSearchResult as Tk}from"./model-registry.js";import{SAMPLE_RATE as _k,MIN_SECONDS as Ak,TARGET_SECONDS as Rk,MAX_SECONDS as fk,PROMPT_TEXT as Ik,sampleSeconds as uk,sampleTooShort as Ok,defaultVoiceName as Nk,microphoneError as gk,webMedia as Ck,startRecording as Mk}from"./voice-sample.js";import{TIER_LABEL as Lk,modelRows as xk,catalogStatus as hk,dtypePicker as Fk,voicePicker as Dk,voiceListRows as yk,diarizeRows as kk,switchOutcome as Uk,saveVoiceFailure as bk,saveTimedOut as vk,catalogUnavailable as wk}from"./voice-models.js";import{dictToText as Gk,textToDict as Hk}from"./redaction-dictionary.js";import{groupRuns as Vk,summarizeRun as Wk,findRepeats as Xk,withCost as Yk,verdict as zk,toSanitizedReport as Jk}from"./run-details.js";import{parseMcpConfig as Qk,parseArgsInput as qk,argsToText as Zk,parseEnvInput as $k,envToText as eU,envLikeArgs as rU}from"./mcp-config-import.js";import{mutableRef as tU,refreshArgs as aU,canRefresh as iU,describeRuntime as sU}from"./mcp-launcher.js";import{defaultMcpServers as lU,isDefaultMcpServer as SU}from"./default-mcp-servers.js";import{MONITOR_SOURCES as mU,DEFAULT_MONITOR_PROFILE as cU,monitorProfile as pU,monitorWindowMs as TU,monitorNeedsTools as dU,filterMonitorTools as _U,recentFindings as AU,describeMonitorProfile as RU}from"./monitor-profile.js";import{NOTHING_NEW as IU,isNothingNew as uU,accumulates as OU,priorFindingsText as NU,deltaInstruction as gU,monitorPrompt as CU,applyMonitorReply as MU}from"./monitor-turn.js";import{defaultSkills as LU,meetingNotesSkill as xU}from"./default-skills.js";import{SURFACES as FU,FEATURES as DU,listFeatures as yU,featureIds as kU}from"./feature-map.js";import{ISSUE_REPO as bU,NEW_ISSUE_BASE as vU,ISSUE_SEARCH_API as wU,MAX_ISSUE_URL as BU,scrubReportText as GU,diagnosticsText as HU,buildBugReport as KU,newIssueUrl as VU,titleTerms as WU,issueSearchUrl as XU,matchIssues as YU,findExistingIssues as zU,issueCommentText as JU}from"./bug-report.js";import{WEB_RESEARCH_LIMITS as QU,WEB_TASK_DOMAINS as qU,researchAsk as ZU,refineQueries as $U,parseSearchText as eb,cleanUrl as rb,pageKey as ob,passagesOf as tb,webResearch as ab,researchBrief as ib,researchCall as sb,runResearch as nb}from"./web-research.js";import{parseAmount as Sb,moneyIn as Eb,basisAt as mb,qualifierAt as cb,quoteAround as pb,offersIn as Tb,rankOffers as db,comparable as _b,basisLabel as Ab,formatValue as Rb,unverifiedAmounts as fb,quoteFormIn as Ib}from"./offers.js";import{isSecretField as Ob,maskSecretFields as Nb,isPersonalField as gb,commitKind as Cb,commitQuestion as Mb,captchaIn as Pb,captchaHandoff as Lb,fenceUntrusted as xb,isFenced as hb}from"./page-guard.js";import{BROWSER_RELAY as Db,BROWSER_KINDS as yb,validateBrowserCall as kb,validateBrowserAnnounce as Ub,validateBrowserResult as bb,createBrowserRelay as vb,browserRelaySystem as wb}from"./browser-relay.js";export{za as ACCESS_LOG_MAX,Ya as ACCESS_LOG_VERSION,i as ACTOR_KINDS,Cd as AGENT_ID_RE,rp as AGENT_REF_RE,dR as ALLOW_ALL,a as ALL_TYPES,bR as AMBIENT_KINDS,mf as AMBIENT_MAX_WORDS,jy as ANOTHER_VOICE,yN as API_BASE,Md as APPLIES_TO,Mp as ASK_TYPES,Ld as ASSISTANT_ID,In as ASSISTANT_NAME,II as AUTOCOMPLETE_MAX_TOKENS,fI as AUTOCOMPLETE_SYSTEM,uI as AUTOCOMPLETE_TEMPERATURE,FT as AUTONOMY,ii as AdapterError,xd as AgentError,An as AnalyzerError,TO as BACKUP_KDF_ITERATIONS,Up as BOARD_TOOL_NAME,KC as BOOKKEEPING_KEYS,Mt as BRIEF_STATES,KM as BRINGBACK_COMMAND,yb as BROWSER_KINDS,Db as BROWSER_RELAY,Bc as BUDGET_DIMENSIONS,DI as BUG_REPORT_SLASH_ITEMS,qs as BUILTIN_TRIGGERS,Bn as BUILTIN_VOICE_INTENTS,pO as BackupError,wc as BudgetError,_n as CADENCES,AP as CAPABILITY_TOOLS_SYSTEM,DD as CE_SOURCE_PREFIX,hD as CE_SPECVERSION,FD as CE_TYPE_PREFIX,yT as CHECKS,Pt as CLAIM_KINDS,n as CLASSES,oO as CLOCK_TOLERANCE_MS,CL as COMPACTION_SYSTEM,cO as COMPRESSIONS,_c as COMPRESSION_MODES,By as CONTINUATION_WINDOW_MS,yh as CONTINUE_TEXT,tE as COOLDOWN_MS,Sy as COST_BASES,HN as COUNTED,Tr as COWRITER_SYSTEM,dr as COWRITER_TEMPERATURE,o as CURRENT_VERSION,Oh as CUT_FINISH,uN as DARK,FR as DATA_SCOPES,Xg as DATE_PRESETS,On as DAYPART_HOUR,dP as DECIDE_TOOL_NAME,Yd as DECLINE_REASONS,Ve as DEFAULT_API_ENGINES,bp as DEFAULT_ASK_TIMEOUT_MS,GR as DEFAULT_BLOCK_CHARS,Ac as DEFAULT_COMPRESSION,hT as DEFAULT_GATE,ls as DEFAULT_INTERNAL_PATTERNS,fs as DEFAULT_LOCK_MS,LE as DEFAULT_MAX_FINISH_TRIES,BR as DEFAULT_MAX_MEMORIES,PE as DEFAULT_MAX_ROUNDS,A_ as DEFAULT_MIN_CALLS,cU as DEFAULT_MONITOR_PROFILE,DO as DEFAULT_POLICY,KE as DEFAULT_SHIELD,VE as DEFAULT_STORE,lt as DEFAULT_THRESHOLD,fn as DEFAULT_WAKE,Xm as DESCRIBE_ACTION,hC as DESKTOP_SECTION_IDS,Gy as ECHO_OVERLAP,Hy as ECHO_TAIL_MS,l as EFFECTS,S as EGRESS,Pd as EGRESS_CLASSES,mO as ENCRYPTED_TYPE,kN as ENDPOINTS,_o as ENGINES_REV,co as ENGINE_KINDS,dd as ENGINE_SPEC_KINDS,Rl as ENTITIES_SCHEMA,UN as ENTITLEMENT_PUBLIC_JWK,Al as ENTITY_TYPES,fi as ENTRY_KINDS,VO as ENTRY_VERSION,t as EVENT_TYPES,zT as EXECUTIVE,FE as EXHAUSTED_NOTE,ox as EXPECTS,cD as EXTRACT_PROVIDER_ID,mD as EXTRACT_ROUTE,dD as EXTRACT_TYPES,XN as EntitlementError,E as EventError,Ly as FACTCHECK_SCHEMA,xy as FACTCHECK_VERDICTS,Yi as FAILOVER_CAPABILITY_GAP,Xi as FAILOVER_CLASS_GAP,SE as FAILOVER_MAX_ATTEMPTS,BO as FAST_FLUSH_MS,GO as FAST_STREAK,Qh as FEATURES,DU as FEATURE_MAP,FU as FEATURE_SURFACES,vN as FEATURE_TIER,nL as FETCHED_TTL_MS,Dl as FIELD_TYPES,JF as FILES_TOOL,Ip as FINDINGS_SCHEMA,up as FINDING_KINDS,Tm as FIND_ACTION,rc as FIND_DESCRIPTION,oc as FIND_RESIDENT,ec as FIND_TOOL_NAME,xE as FINISH_NUDGES,TL as FIT_HEADROOM,GN as FREE_LIMITS,uf as FRONT_PAGES,um as FUSED_BUDGET_MS,Im as FUSED_CANDIDATES,Px as GATHER_LIMITS,NI as GEARS,cI as GOAL_MIN_NEW,Zc as GRANTABLE,zA as GRANT_INFO,ep as GRANT_RE,sk as HF_API,HL as HISTORY_NOTE,Cm as HUB_TOOL_NAME,DT as HUMAN_FLAGS,$S as INPUT_PROGRESS_TOOLS,TC as INSIGHT_KINDS,EI as INSTRUCTION_RE,Ss as INTERNAL_PATTERN_CATALOG,eo as INVARIANTS,NP as IN_PROCESS_IDS,bU as ISSUE_REPO,wU as ISSUE_SEARCH_API,Hs as JOB_ACTIONS,gT as JOB_POST_ID_RE,NT as JOB_POST_STATUSES,QO as JOURNAL_BOUNDS,OT as JobPostError,KO as JournalError,Rs as KDF_HASH,As as KDF_ITERATIONS,pR as KernelError,Xd as LEDGER_ENTRY_KINDS,Wd as LEDGER_VERSION,IN as LIGHT,Yp as LIVE_RUN_STATUSES,jh as LOCKABLE,hE as LOOPING_NUDGE,hi as LOOP_KINDS,Gu as LibraryError,Fi as LoopError,Ft as MAX_BRIEF_CHARS,ht as MAX_BRIEF_RECORDS,Lt as MAX_CLAIMS,xt as MAX_CLAIM_REFS,un as MAX_COMMANDS_PER_DELTA,fA as MAX_DEPTH,pD as MAX_DOCUMENT_BYTES,gs as MAX_ENTRIES,Jt as MAX_EXCERPTS,jt as MAX_EXCERPT_CHARS,tr as MAX_GRAPH_NODES,BU as MAX_ISSUE_URL,JT as MAX_JOBS_PER_ROUND,xR as MAX_MATCHES,vR as MAX_MEMORY_CHARS,Os as MAX_NOTE_CHARS,Tg as MAX_NOTE_IMAGE_BYTES,rx as MAX_PARTS,wy as MAX_PENDING_CHARS,jT as MAX_ROUNDS,fk as MAX_SECONDS,Ns as MAX_SECRET_CHARS,BF as MAX_SKILL_FILE_BYTES,GF as MAX_SKILL_PACKAGE_BYTES,St as MAX_SUBJECTS,Et as MAX_SUBJECT_CHARS,RA as MAX_SUBTASKS,gl as MAX_SUGGESTIONS,Cl as MAX_SUGGESTION_CHARS,zt as MAX_SYNTHESIS_CLAIMS,au as MAX_TAGS,tu as MAX_TAG_LENGTH,us as MAX_TITLE_CHARS,Bu as MAX_TITLE_LEN,Nu as MAX_TITLE_LENGTH,nl as MAX_TOPICS,ll as MAX_TOPIC_CHARS,ND as MCP_CATALOG,OD as MCP_REGISTRY_API,TS as MCP_SIGN_IN_CODE,iR as MCP_TOOL_NAME,kR as MEMORY_KINDS,UR as MEMORY_KIND_NAMES,KR as MEMORY_TOOL_SPEC,VR as MEMORY_UPCASTERS,yR as MEMORY_VERSION,Qc as MERGE_POLICIES,Ky as MIN_BARGE_IN_WORDS,e_ as MIN_FIT,wR as MIN_MEMORY_CHARS,Ak as MIN_SECONDS,IA as MIN_TAKEUP_FIT,Ks as MISSED_POLICIES,NC as MOMENT_BADGES,mU as MONITOR_SOURCES,vy as MUTE_GRACE_MS,lR as ManifestError,IM as McpClient,WR as MemoryError,Ia as NEAR_TITLE_DISTANCE,vU as NEW_ISSUE_BASE,hI as NEW_THREAD_SLASH_ITEMS,H as NOTE_ACTIONS,W as NOTE_ACTION_ERRORS,K as NOTE_ACTION_ORDER,V as NOTE_ACTION_TEMPERATURE,X as NOTE_COMMANDS,z as NOTE_COMMAND_MAX_TOKENS,Y as NOTE_COMMAND_TEMPERATURE,pg as NOTE_IMAGE_SCHEME,dg as NOTE_IMAGE_TYPES,uC as NOTE_SECTIONS,RF as NOTE_TOOL_SPECS,IU as NOTHING_NEW,ZS as OBSERVATION_TOOLS,cN as OMNI_GRAMMAR,mN as OMNI_MODES,he as PACER_DEFAULTS,TD as PAGE_CHARS,ON as PALETTES,HS as PARALLEL_LOCAL_RE,zF as PATH_KIND,Na as PDF_MAX_CHARS,YE as PERMISSION_ANSWERS,XE as PERMISSION_EVENT,qh as PERMISSION_MODES,zE as PERMISSION_TIMEOUT_MS,JE as PERMISSION_TOOL_NAME,DN as PLANS,Mr as PLAN_AUTHORS,Lr as PLAN_DECOMPOSE_MAX_TOKENS,Pr as PLAN_DECOMPOSE_SYSTEM,xr as PLAN_DECOMPOSE_TEMPERATURE,qc as PLAN_MODES,Cr as PLAN_ROLES,hr as PLAN_SECTION_MAX_TOKENS,Fr as PLAN_SECTION_TEMPERATURE,zh as POLICY_TOKEN_TYPE,Yh as POLICY_VERSION,gp as POST_KINDS,Cp as POST_STATUSES,LC as PREF_SECTIONS,xC as PREF_SECTION_IDS,Kh as PRESENCE_BUDGET_TOKENS,Vh as PRESENCE_KINDS,Ny as PRICING_BASES,gy as PRICING_LABELS,Zh as PRODUCT_HOSTS,mT as PROJECT_ID_RE,WT as PROJECT_JOBS_SCHEMA,XT as PROJECT_REVIEW_SCHEMA,QT as PROJECT_RUN_STATUSES,ET as PROJECT_STATUSES,Ik as PROMPT_TEXT,qt as PROPOSAL_STATES,wN as PRO_FEATURES,lS as PUBLIC_REGISTRY,KD as PUSH_LIMITS,Xh as PolicyError,ST as ProjectError,YT as ProjectRunError,kx as QUESTION_PLAN_LIMITS,Br as REACH,WN as RECHECK_INTERVAL_MS,Pc as RECIPE_MODES,Dc as RECIPE_TOOL_NAME,pd as RECORD_ENGINE_KINDS,wu as RECORD_KINDS,RO as RECORD_TYPE,$d as RECRUIT_SCHEMA,Jh as REDACTION_TIERS,ft as REDACTION_TOKEN_TYPES,Xn as REFINEMENT_SCHEMA,d as REF_KINDS,no as REGISTRY_STATES,TR as REQUIRED_PLUGINS,HC as REQUIREMENTS,_P as RERANK_TOOL_NAME,_ as RESOLUTION,_F as RESPONSE_LANGUAGES,yl as RESPONSE_MODES,Ie as RESULTS_PER_ENGINE,HE as RESULT_TOOL_NAME,zp as RESUMABLE_RUN_STATUSES,ci as RETRIEVAL_TOOLS,Bm as REVEAL,md as ROLE_KINDS,jc as ROLE_MODES,QA as ROSTER_KINDS,DE as ROUND_SEPARATOR,_d as ROUTE_PREFERS,J_ as RUN_STATUSES,Mc as RecipeError,Sh as ReplayMiss,Ji as RouterError,Ts as RuleError,HR as SAME_FACT,_k as SAMPLE_RATE,Bs as SCHEDULE_KINDS,u_ as SCM_KINDS,s as SCOPE_KINDS,Ed as SCORECARD_ENTRY_KINDS,cd as SCORECARD_VERSION,QD as SEALED_TYPE,qD as SEALED_VERSION,be as SEARCH_API_PRESETS,fe as SEARCH_ENGINES,Qe as SEARCH_STATUS,Ux as SEARCH_UNAVAILABLE,iN as SEGMENT_RE,ut as SELF_LABELS,BC as SETTINGS_GROUPS,tM as SETTINGS_OPEN_DEFAULT,GC as SETTINGS_PAGES,NN as SHAPE,HM as SIDELINE_COMMANDS,WM as SIDELINE_SLASH_ITEMS,sP as SIDELINE_TOOL_NAME,nP as SIDELINE_TOOL_SPEC,xf as SKILL_CONTEXTS,wF as SKILL_DRAFT_SCHEMA,yf as SKILL_FILE_KINDS,kF as SKILL_FILE_TOOL,hf as SKILL_HISTORY_SCOPES,Lf as SKILL_MANIFEST_VERSION,Ff as SKILL_MCP_MODES,Df as SKILL_TRUST,kf as SKILL_UPCASTERS,Qf as SKILL_VARS,qf as SKILL_VAR_NAMES,SD as SKIP_DIR_NAMES,xI as SLASH_TYPING_RE,wO as SLOW_FLUSH_MS,yO as SLOW_POLICY,dL as SMALL_WINDOW,AL as SMALL_WINDOW_ROUNDS,JA as SOLO_BUDGET,vg as SORT_LABELS,bg as SORT_MODES,SR as SOURCES,bP as SOURCE_TOOL_SPEC,Nf as SOURCE_TRUST,ua as SPAN_MIN_TERMS,Fg as SPEAKER_SLOTS,$y as SPOKEN_REPLY_HINT,Zp as STALLED_AFTER_MS,wd as STARTER_AGENTS,op as STARTER_TEAMS,G_ as STEP_MAX_CHARS,uh as STITCH_LIMITS,nt as SUBJECT_KINDS,Ml as SUGGESTIONS_SCHEMA,Zt as SUPERSEDE_OVERLAP,ps as SUPPRESSED,ce as SWARM_ROLES,Wt as SYNTHESIS_SCHEMA,Vs as ScheduleError,ZD as SealError,ve as SearchApiError,po as SearchEngineError,Uf as SkillManifestError,gf as SkillSourceError,sI as SkillVarError,kl as StructuredError,tO as SyncError,Rk as TARGET_SECONDS,H_ as TASK_TRANSCRIPT_MAX_CHARS,BN as TEAM_FEATURES,rA as TEAM_MANUAL,pp as TEAM_PLAN_SCHEMA,jA as TEAM_SHAPES,eA as TEAM_TOOL_NAME,fN as THEMES,Op as THREAD_KINDS,Np as THREAD_STATUSES,VM as THREAD_TOOL_NAME,XM as THREAD_TOOL_SPEC,Lk as TIER_LABEL,gu as TITLE_RULES_VERSION,gN as TOKEN_NAMES,CN as TOKEN_ROLES,FS as TOKEN_SKEW_MS,Sl as TOPICS_SCHEMA,Da as TRANSCRIPT_MAX_CHARS,Gs as TRIGGER_KINDS,nk as TTS_ARCH_LABEL,xx as TURN_EVENTS,Ox as TURN_STAGES,Jc as TeamError,z_ as TeamRunError,ho as ToolGroupError,aE as UNAVAILABLE_REASONS,Ou as UNTITLED_MEETING,Vr as UPCASTERS,bN as UPGRADE_URL,ly as USAGE_RING_MAX,il as UTTERANCE_DANGLING_MS,al as UTTERANCE_SETTLE_MS,ak as VAD_DEFAULTS,_s as VAULT_VERSION,by as VOICE_STATES,Is as VaultError,Nn as VoiceIntentError,go as WEATHER_HOST,Co as WEATHER_TIMEOUT_MS,EP as WEATHER_TOOL_NAME,mP as WEATHER_TOOL_SYSTEM,QU as WEB_RESEARCH_LIMITS,nc as WEB_SEARCH_SPEC,ic as WEB_SEARCH_TOOL_NAME,sc as WEB_SEARCH_TOOL_SYSTEM,qU as WEB_TASK_DOMAINS,rt as WIDGET_SURFACES,zd as WITHDRAW_AFTER,nA as WORKLOG_KINDS,$c as WORK_GRANTS,gI as WRITER_PREFS,CI as WRITER_PREF_DEFAULTS,Mo as WeatherError,Fa as YOUTUBE_HOSTS,Di as abortCause,jP as aboutOwnPast,ea as accept,OU as accumulates,Ym as actionMenu,sC as activePreset,Fx as activityOf,bO as adaptProfile,DM as adaptiveToolRetryHint,zg as addDays,lu as addTag,NE as addUsage,sd as adjustSummary,VF as admitPackage,SO as advanceBases,aS as adviceText,jx as againQuery,oF as agentAllowed,UA as agentColor,Hd as agentFromForm,kA as agentHue,bA as agentInitials,yA as agentKind,oe as agentMentionAt,dt as aliasMap,zP as answeredByPrefetch,ME as anthropicTranscript,Ke as apiEngine,We as apiEnginesFrom,Je as apiTrialVerdict,AT as applyAll,f_ as applyCard,pr as applyEdits,ZO as applyEntry,MU as applyMonitorReply,SF as applyPolicyToSettings,kC as applySections,Dx as applyStateDelta,Ty as applyUsage,_e as appoint,Oo as areaLabel,Li as argsShape,Zk as argsToText,mh as asksIdentity,_f as asksOnlyAboutPage,yd as assistantAgent,aD as attachedFilesProvider,mo as attemptOrder,od as attest,PS as authHeader,NS as authorizeUrl,dM as availableDestinations,hO as backupFromRecords,kS as bareToolName,lD as basenameOf,mb as basisAt,Ab as basisLabel,PO as bestCodec,Gd as blankAgent,h_ as blankConnection,IT as blankJobPost,aT as blankProject,ap as blankTeam,qS as blockedToolResult,Ap as boardText,Fp as boardToolProvider,Dp as boardToolSpec,sN as boundSegments,M_ as branchFor,jC as breadcrumb,cp as breakCycles,yt as briefId,bt as briefLinks,ZM as briefPrompt,Ut as briefTerms,kt as briefToText,wb as browserRelaySystem,Ge as buildApiRequest,KU as buildBugReport,zm as buildGroupDispatchSpec,ar as buildNoteGraph,xa as buildPdfDocument,ue as buildSearchUrl,Vm as buildToolset,Ti as buildTrajectory,Va as buildTranscriptDocument,KA as builtinOrg,qN as can,Us as canAddEntry,_T as canJobPostTransition,tT as canProjectTransition,iU as canRefresh,US as canRunConcurrently,jr as canSatisfy,qR as candidatesFrom,ZT as canonical,RS as canonicalResource,RP as capabilityToolsProvider,CP as capabilityView,Lb as captchaHandoff,Pb as captchaIn,Ua as captionTracksFromPlayerResponse,NF as captureFromMessage,wA as cardNumbers,R_ as cardOverride,Jx as carried,p_ as carveBudget,hk as catalogStatus,wk as catalogUnavailable,SN as catchUpPlan,N as causesAreWellFormed,UD as ceHostOf,kD as ceSourceOf,vC as changedSections,jF as checkAttachablePath,$r as checkInvariants,vt as checkKnowledgeInvariants,YN as checkoutUrl,Wp as checkpointFrom,B as chipText,PP as choiceNote,MP as choicePatch,Yt as claimsFromSynthesis,Fe as classifyAnswer,rE as classifyFailure,Te as classifyModel,os as classifySource,am as claudePermissionResponse,Cu as cleanTitle,rb as cleanUrl,OI as clipCompletion,b_ as clipMessage,mn as clipText,U_ as clipTranscript,Wl as coerce,Ol as coerceEntities,nD as collapseDots,MM as combineSystemPrompt,Z as commandLineAt,rl as commandLooksFinished,Ln as commandsFromSegments,Cb as commitKind,Mb as commitQuestion,BE as compactValue,gL as compactable,IL as compactionPrompt,uL as compactionRecord,_b as comparable,O as compareEvents,OR as compileQuery,gn as compileWake,w as composerChips,cc as compressToolSpec,pc as compressToolSpecs,Tc as compressionStats,C_ as connectionFor,F_ as connectionFromForm,QR as containment,Dt as contentHash,BL as contextPlan,hh as continuationMessages,w_ as continuationNote,JI as continueList,ta as converge,uy as costFor,Qa as createAccessLog,ai as createAdapterRegistry,yM as createAdaptiveToolPolicy,dn as createAnalyzerRegistry,yp as createAnswerBox,p as createAppender,ao as createBlobStore,dp as createBoard,vb as createBrowserRelay,kc as createBudget,RE as createCallRunner,ih as createCassette,mi as createCitationCollector,B_ as createControl,De as createEnginePacer,$P as createFetchedStore,HO as createJournal,mR as createKernel,to as createLogStore,nR as createManifest,oo as createMemoryAdapter,oE as createModelHealth,wi as createModelRouter,nm as createPermissionDesk,so as createRegistry,kE as createResultStore,cs as createRuleEngine,wp as createRunCache,qO as createSegment,Mf as createSkillSourceRegistry,TI as createSpendMeter,Pi as createStepRecorder,Yl as createStructuredStream,xo as createToolGroupRegistry,YS as createToolLoopGuard,Qs as createTriggerRegistry,hx as createTurnEvents,Mi as createTurnRunner,tl as createUtteranceGate,rk as createVad,Cs as createVault,vn as createVoiceIntentRegistry,Uy as createVoiceLoop,L_ as credentialEnv,PN as cssVarName,XD as cursorOf,iC as dateFilterLabel,Qg as dateRangeOf,Hg as dayBucket,EC as dayCounts,Jg as dayKey,iO as decide,ZL as decideIntent,S_ as decideRecruit,Hf as declaredAccess,_O as decryptBackup,mg as defaultImagePolicy,Eg as defaultLinkPolicy,lU as defaultMcpServers,y as defaultModelId,LU as defaultSkills,iL as defaultTtl,wn as defaultVoiceIntents,Nk as defaultVoiceName,kP as deferAttachedSources,ti as defineAdapter,Dd as defineAgent,nn as defineJob,dT as defineJobPost,Ix as defineLane,xi as defineLoop,Tn as defineMeetingAnalyzer,bi as defineMiddleware,Ui as defineModel,oT as defineProject,vi as defineRouteStrategy,ms as defineRule,Ul as defineSchema,we as defineSearchApi,So as defineSearchEngine,Cf as defineSkillSource,Hc as defineTeam,Lo as defineToolGroup,js as defineTrigger,bn as defineVoiceIntent,gU as deltaInstruction,IC as demd,Mg as densityRibbon,qx as dependsOn,P as dequeue,fO as deriveBackupKey,Gt as deriveBrief,Ht as deriveBriefs,Ps as deriveKey,Du as deriveMeetingTitle,ju as deriveTitle,Ud as describeAgent,$F as describeAttachedPath,sA as describeCall,x_ as describeConnection,aC as describeDateRange,Od as describeEngine,RU as describeMonitorProfile,eD as describePathSize,$E as describePermission,Fc as describeRecipeForApproval,zc as describeRole,sU as describeRuntime,bl as describeSchema,Tk as describeSearchResult,oM as describeSettingValue,wE as describeShape,jp as describeSpend,$_ as describeTeamForApproval,hA as describeTeamShape,uE as describeToolCall,Ay as describeTurnUsage,TM as destinationFromAgent,pM as destinationFromEndpoint,HU as diagnosticsText,kk as diarizeRows,Gk as dictToText,oa as diffProposal,FL as digest,LS as discoverMcpAuth,Ri as displayName,rD as displayPath,uP as distributionConfidence,eu as docStats,_I as draftSeparator,Kt as driftedRefs,Nc as dryRunRecipe,X_ as dryRunTeam,Fk as dtypePicker,ln as dueJobs,pa as duplicateTitles,At as earnsBrief,Un as editDistance,cr as editKey,LT as effectiveGate,$o as effectiveGrants,rM as effectiveSettingValue,BS as effectiveToolName,ir as egoGraph,sF as egressAllowed,Pp as emptyBoardState,sT as emptyProjectRecord,Hp as emptyRun,UI as enabledSkills,dO as encryptBackup,eF as endpointAllowed,ld as engineKey,ud as engineKeyOf,er as engineLabel,kd as engineOf,Me as engineOrder,Id as engineRef,r_ as engineRow,o_ as engineRows,oR as engineStrip,i_ as engineWorth,Il as entitiesFormat,fl as entitiesPrompt,Nl as entitiesStream,Fs as entryMeta,JO as entryStamp,rU as envLikeArgs,eU as envToText,ko as equipmentFor,yi as errorFacts,Zm as estimateTokens,n_ as evaluatorPrompt,zD as eventStats,Gx as evidenceFor,sL as exchangeOf,Ic as expandRecipe,CR as expandReplacement,aI as expandSkillPrompt,tx as expectsOf,oS as explainInstallFailure,Jl as explainMcpError,sg as exportDevicePublicKey,dA as extendDependents,TN as extractFilters,ts as extractUrls,ID as extractorChain,zx as factFromReply,Kx as factPrompt,bx as factSchema,vx as factSchemaFor,yy as factcheckKey,Fy as factcheckPrompt,Dy as factcheckVerdict,eh as factsList,lE as failoverExhausted,Vi as failoverOrder,lF as featureEnabled,kU as featureIds,xb as fenceUntrusted,rL as fetchKey,CD as fetchMcpRegistryPage,hS as fetchMcpToken,oL as fetchTitle,tL as fetchedAsSources,aL as fetchedFacts,ix as figuresIn,tC as filterByDate,Au as filterByTags,Ai as filterEntries,PF as filterMcpServersForSkill,_U as filterMonitorTools,q as filterNoteActions,Gg as filterRecords,D as filterSections,mr as filterTypoEdits,mm as findActionArgs,tc as findDispatchProvider,zU as findExistingIssues,Gl as findJson,NR as findMatches,Zu as findRecordRefs,Xk as findRepeats,WC as findRow,ie as findSkillByName,se as findTargetByName,Sm as findTools,Em as findToolsResult,Mn as findWakeCommand,Rp as findingsInstruction,xp as findingsOf,oh as finishAnswer,Rx as finishTurn,id as fit,Lh as fitAttachments,EL as fitFor,Vx as fitsExpected,lp as fixedPlan,px as flowWorthDrawing,iP as foldBackFor,$M as foldBackNote,Lp as foldBoard,eP as foldNotes,nT as foldProject,Kp as foldRun,lO as forkConflict,Za as formatBytes,eC as formatDateTerm,pk as formatDownloads,RR as formatReport,fa as formatSurvey,cu as formatTag,du as formatTagQuery,hg as formatTalkTime,Ha as formatTimestamp,Ka as formatTranscript,_y as formatTurnUsage,Oy as formatUsd,Rb as formatValue,uo as formatWeather,J as frameNoteAction,KN as freeCap,vs as fromB64,vD as fromCloudEvent,BD as fromCloudEventLines,If as frontPageInstruction,ff as frontPagesAskedAbout,tt as fuseRRF,Am as fusedRanker,xT as gateAllows,fD as gatewayExtractor,tS as gatewayNotBackAdvice,th as gatherFacts,gx as gatherItems,ig as generateDeviceKey,bM as getMcpProviders,Ro as getWeather,el as gistOpening,$n as gistText,pF as globToRegExp,pI as goalDraftAllowed,sh as gradeAnswer,Xc as grantAllows,WA as grantChoices,XA as grantsFromChoices,yo as grantsNeededFor,nr as graphStats,AI as groundingBlock,lx as groundingNote,MC as groupActionsByOwner,YC as groupById,F as groupModels,Vg as groupRecords,Vk as groupRuns,Ga as groupSegments,Zg as hasDateTerms,RC as hasInsights,wo as hasSubstance,nu as hasTag,Tu as hasTagTerms,GL as historyContext,pA as holdsGrants,lM as homeChecklist,of as homePlace,as as hostMatches,vo as housekeepingTarget,gm as hubSpec,gO as identityCodec,ph as identityHint,ch as identitySystem,yP as imageAttachmentsOf,LP as inProcessPatch,gP as inProcessView,jI as indentSelection,WD as ingestCloudEvents,To as inheritEngineDefaults,Yy as initialVoiceState,_C as insightKindOf,ql as installHintFor,mI as instructionOnLine,JL as intentFromReply,jL as intentItems,XL as intentNeeds,zL as intentPrompt,YL as intentSchema,AN as isActionable,No as isAmbiguousLocation,ku as isBetterTitleSource,VA as isBuiltin,bS as isCacheable,pL as isContextLimitError,SU as isDefaultMcpServer,AO as isEncryptedBackup,zO as isEntry,Jy as isFarewell,hb as isFenced,Zn as isFillerSentence,Mu as isGenericTitle,kM as isInvalidToolParametersResult,Bo as isLocalHelper,ys as isLocked,QS as isLoopableTool,Cx as isMiss,Y_ as isModelUnavailable,xh as isNoneNote,Vl as isNothing,uU as isNothingNew,QE as isPermissionTool,gb as isPersonalField,Uo as isPleasantry,jN as isPro,M as isQueued,Vu as isRecordId,It as isRedactionToken,R as isRef,Ne as isResultHost,Xp as isResumable,bf as isSafeSkillPath,iy as isSealedBlob,OO as isSealedRecord,Le as isSearchPage,Ob as isSecretField,qF as isSecretPath,Ot as isSelfLabel,nO as isSettled,sy as isShredded,$g as isSingleDay,kI as isSkillEnabled,_L as isSmallWindow,TE as isSourceGateError,yg as isSpeakerImageValue,Ql as isStaleMcpSession,Tt as isSubjectCandidate,Go as isSystemModel,QN as isTeam,YO as isTombstone,c as isValidEvent,YR as isValidMemory,Xu as isValidStoredRecord,Mx as isWebSearch,ka as isYouTubeUrl,JU as issueCommentText,XU as issueSearchUrl,s_ as jobApplications,TA as jobFromSubtask,uT as jobPostFromForm,wT as jobResults,RT as jobToRole,Sn as jobsForEvent,KT as jobsPrompt,mL as keepRecentFor,NO as keyCache,_i as lanesOf,dF as languageInstruction,hy as lastClaimOf,Lm as lastUserText,Wo as layoutFlowchart,Jd as ledgerKey,og as licenseFromPayload,Ho as lightestLocalHelper,lI as lineAt,u as linearize,ga as linesFromItems,df as linkAttachments,aa as linkClaims,$u as linkRecordRefs,QC as linkTo,qC as linkToRow,ni as linkifyCitations,pf as linksToRead,rI as lintSkillPrompt,Sr as lintText,yU as listFeatures,ux as listLanes,VC as listRows,cC as localeWeekStart,ks as lockedSummary,Vy as looksLikeEcho,La as looksScanned,HP as lookupLabel,GP as lookupResult,ok as lowBandEnergy,ja as makeAccessEvent,qm as makeDispatchProvider,ed as makeEntry,jm as makeGroupDispatchExecutor,WO as makeJournalEntry,Qd as makeLedgerEntry,fF as makeNoteToolExecutor,Dm as makePromptedTranscript,Ku as makeRecordId,A as makeRef,Qi as makeSourceStore,qa as makeStorageTier,Nm as makeToolHub,qi as manifestText,Oc as mapInput,Mh as mapParts,sf as markUsed,Si as markdownUrl,Nb as maskSecretFields,$R as matchForForget,gR as matchIndexFor,YU as matchIssues,wI as matchSlashRecipe,vI as matchSlashSkill,GI as matchSlashTeam,cn as matchSummary,oC as matchesDateRange,_u as matchesTagFilter,BM as mcpBackoff,aR as mcpDispatchProvider,gM as mcpInventorySystem,uM as mcpProvider,LD as mcpServerFromCatalogItem,NM as mcpSharedSystem,cR as meetDecisions,is as meetReach,en as meetingEndedTrigger,AC as meetingInsights,xU as meetingNotesSkill,$s as meetingStartedTrigger,Uu as meetingTitlePrompt,af as memoryBlock,zR as memoryKey,uF as memoryToolProvider,lf as memoryToolSystem,ne as mentionAnswerPrefix,da as mentionsFrom,RM as mergeEndpointDestinations,Ce as mergeEngineResults,_h as mergeNote,Nr as mergeResearchLanes,oN as mergeSegments,ae as mergeSkillPrompt,bC as mergeStamped,k_ as mergeTranscript,OL as messagesAfter,y_ as messagesFor,gk as microphoneError,cL as minWindowFor,$l as missingCommandIn,Zl as missingCommandMessage,PA as missingStarters,Be as missingVars,rF as modelAllowed,xk as modelRows,Ek as modelSearchUrl,k as modelSummary,gC as momentBadge,Eb as moneyIn,Wn as monitorIntent,dU as monitorNeedsTools,pU as monitorProfile,CU as monitorPrompt,TU as monitorWindowMs,SC as monthGrid,L as moveQueued,it as multiSearch,tU as mutableRef,mC as nearbyDays,t_ as needForJob,Gf as needsBridge,vS as needsConfirmation,tg as needsRecheck,tf as needsWhere,DL as needsWhole,ry as newDeviceKey,VU as newIssueUrl,Og as newNoteImageId,v_ as newSteps,XP as newsAsk,Xs as nextFireAt,rP as nextSidelineIndex,zs as nextWakeAt,MO as nodeCodec,nS as nodeSatisfies,ey as nodeSealer,iE as normModelName,Fd as normalizeAgent,bc as normalizeBudget,jd as normalizeCall,N_ as normalizeConnection,nd as normalizeEngine,Rd as normalizeEngineSpec,PT as normalizeGate,Wc as normalizeGrants,PI as normalizeIntent,TT as normalizeJobPost,XR as normalizeMemory,ck as normalizeModel,$h as normalizeOrgPolicy,sD as normalizePath,eS as normalizePlatform,Ad as normalizePolicy,Cy as normalizePricing,rT as normalizeProject,sa as normalizeRecord,na as normalizeRecords,PD as normalizeRegistryEntry,MD as normalizeRegistryPage,SA as normalizeRequest,Sd as normalizeScm,Jf as normalizeSkill,yn as normalizeSpeech,Wu as normalizeStoredRecord,mt as normalizeSubject,iu as normalizeTag,su as normalizeTags,Vc as normalizeTeam,Tl as normalizeTopic,dl as normalizeTopics,gE as normalizeUsage,MI as normalizeWriterPrefs,$x as notFoundLines,Q as noteActionItems,j as noteActionLabel,Rh as noteConflictsIn,_g as noteImageId,Rg as noteImageIds,Ag as noteImageRef,fg as noteImageRefs,Vn as noteIntent,OC as noteSectionKind,tP as noteUnits,iS as npmInstallCommand,ZA as observeInbox,VN as observeSince,$A as observeStrip,En as occurrenceKey,Ys as occurrencesBetween,Pe as offTopic,QP as offeredSearch,Tb as offersIn,cm as oneLiner,CE as openAiTranscript,ty as openBlob,IP as openDecision,xs as openEntry,uO as openRecord,Ca as orderLines,Kf as originLabel,vf as originOf,ug as orphanNoteImages,ca as orphanRecords,YI as outlineOf,pm as overlapRank,lN as overlayEntries,jl as packageFromArgs,XF as packagesFromFiles,YP as pageAsk,XC as pageById,Af as pageInstruction,ob as pageKey,Pa as pageTextFromItems,zC as pagesOf,RD as paginateText,MN as paletteFor,Ma as paragraphsFromLines,GS as parallelEligible,re as parseAgentMention,Sb as parseAmount,qk as parseArgsInput,_S as parseAuthChallenge,wt as parseBriefText,zM as parseBringBack,yI as parseBugCommand,hn as parseClock,Pn as parseCommand,Js as parseCron,qg as parseDateQuery,xn as parseDuration,ul as parseEntities,$k as parseEnvInput,l_ as parseEvaluation,_p as parseFindings,Vo as parseFlowchart,GT as parseJobs,fR as parseJsonl,ZC as parseLink,zI as parseListItem,Qk as parseMcpConfig,CC as parseMeetingNotes,gg as parseMeetingText,FI as parseNewThread,Dn as parseNumberWords,pN as parseOmni,Sp as parsePlan,yr as parsePlanTasks,Hu as parseRecordId,Jn as parseRefinement,g_ as parseRemote,HT as parseReview,eb as parseSearchText,aN as parseSegmentName,YM as parseSideline,ES as parseSignInPrompt,te as parseSkillMention,eI as parseSkillVars,Xl as parseStructured,xl as parseSuggestions,pu as parseTagQuery,Ba as parseTimedText,bu as parseTitleResponse,km as parseToolCalls,pl as parseTopics,Io as parseWeather,Fn as parseWhen,ya as parseYouTubeUrl,Nh as partChars,Ch as partPrompt,ex as partQueries,Sk as partitionTtsModels,wx as partsOf,Zx as partsPlan,tb as passagesOf,Xe as patchApiEntries,ZF as pathAttachment,oD as pathAttachmentsOf,tk as pcmEnergy,C as pendingQueue,rm as permissionAllowed,em as permissionAnswer,sm as permissionIcon,ZE as permissionKeys,im as permissionLine,tF as permissionMode,qE as permissionRequestFromClaude,jE as permissionToolSpec,rn as personJoinedTrigger,di as phasesOf,on as phraseTrigger,va as pickCaptionTrack,nC as pickDay,UO as pickProfile,ge as pickResults,yC as pickSections,Wi as pinnedOrderOf,KL as placeItems,Bx as plainEvidence,vr as planAttribution,br as planBody,fL as planCompaction,VD as planEventPush,JN as planLabel,zN as planOf,Ur as planParts,at as planQueries,kL as planRetrieval,Dr as planSectionSystem,sO as planSync,kr as planTitleFor,VS as planToolRound,VL as planTurn,Ep as plannerPrompt,cM as pointsAtGateway,Qx as pointsBack,vO as policyFor,mF as policyHash,EF as policyLabel,Kd as poolFor,Ki as preferenceFor,BP as prefetchAttachment,qP as prefetchBudgetMs,wP as prefetchPlan,Bh as presenceBlock,bh as presenceDelta,Uh as presenceFor,My as priceUsage,NU as priorFindingsText,qp as priorWorkFor,ri as projectChain,iT as projectFromForm,lT as projectProgress,JD as projectYear,x as promoteQueued,CA as promoteRoles,Oi as promptEntries,Ry as promptTokensOf,ym as promptedToolsSystem,Fm as promptedTranscript,m_ as proposalFromNeeds,c_ as proposalToAgent,$t as propose,nf as pruneMemories,cb as qualifierAt,an as questionTrigger,$L as questionsIn,JC as quickRows,pb as quoteAround,Ib as quoteFormIn,_m as rankFused,Ee as rankLinkTargets,db as rankOffers,Or as rankResearchCards,hF as rankSkills,Rt as rankSubjects,Hx as rankedEvidence,Iy as rateFor,vh as reachOf,Gr as reachRank,Hr as reachSatisfies,He as readApiResponse,IS as readAuthServerMetadata,OS as readRegistration,fS as readResourceMetadata,$i as readSource,qM as readThread,CS as readTokenResponse,Fu as readableWhen,fT as readyJobs,ef as recall,tm as recallPermission,AU as recentFindings,BI as recipeInvocationText,uc as recipeParams,xc as recipeToolProvider,hc as recipeToolSpec,ZR as reconcile,Eo as reconcileEngines,xO as recordsFromBackup,T_ as recruitEvents,E_ as recruitForRun,d_ as recruitJob,Ja as redactAccessArgs,Sa as redactedTokensIn,Ea as redactionCost,iF as redactionTier,Ph as reduceNotes,$U as refineQueries,qn as refineSpokenCommand,zn as refinementFormat,Yn as refinementPrompt,jn as refinementStream,aU as refreshArgs,xS as registerMcpClient,uS as registrationRequest,gD as registryListUrl,ra as reject,om as rememberPermission,b as rememberRecent,Hn as reminderIntent,Su as removeTag,hP as renderContent,Xo as renderFlowchartSvg,Sg as renderMarkdown,eO as repairAnswerMarkup,li as repairCitedLinks,Kl as repairJson,PR as replaceAll,LR as replaceAllInRange,MR as replaceMatch,AR as replay,Gi as requirementsFor,Hi as requirementsForStep,Rm as rerankThrough,ZU as researchAsk,ib as researchBrief,sb as researchCall,fr as researchRelevance,ur as researchSnippet,wM as resetMcp,jg as resolveDateValue,fh as resolveNoteConflict,f as resolveRef,JM as resolveSidelineTarget,dN as resolveSince,_t as resolveSubjects,vd as resolveTeam,hN as resolveTheme,wl as responseFormat,GE as resultToolSpec,W_ as resumeTeam,ke as retryAfterMs,Hm as revealCut,Gm as revealStep,VT as reviewPrompt,Hl as rewriteJson,yD as rfc3339,pe as roleById,vA as roleCardId,py as rollupKey,DA as rosterRows,BT as roundBudget,fE as roundCap,Gh as roundCount,bT as roundJobs,Hh as roundMinutes,zS as roundSignature,aF as routeAllowed,fx as routeByRule,a_ as routeFor,ei as routeGraph,Ae as routeTeam,Kg as rowTime,Vp as runFromEvents,eR as runLanes,gc as runPlan,UT as runProject,Cc as runRecipe,nb as runResearch,KP as runResearchItem,bE as runResultQuery,Qp as runState,V_ as runTeam,WS as runToolRound,AE as runTurnLoop,Ax as runTurnPipeline,nE as runWithFailover,Ar as salientTerms,Ef as sameMemory,zi as sameModelKey,Vf as sameSkillOrigin,mu as sameTags,ol as sameUtterance,uk as sampleSeconds,Ok as sampleTooShort,vk as saveTimedOut,bk as saveVoiceFailure,rf as saysWhere,kO as scalePolicy,Kn as scheduleIntent,Yc as scmAllows,nh as scoreRuns,GU as scrubReportText,oy as sealBlob,Ls as sealEntry,IO as sealRecord,ze as searchApiChoices,Ds as searchEntries,Sc as searchFailureOf,mk as searchModels,ye as searchPolitely,lc as searchResultsToText,iM as searchSettings,$e as searchStatus,zu as searchTextFor,QF as secretReason,UC as sectionHash,EM as sectionOfRow,FC as sectionSpec,DC as sectionValue,_M as seedDestinations,$O as segmentBytes,eN as segmentEntries,tN as segmentName,nN as segmentsFor,PL as selectContext,ru as selectionStats,rC as setDateTerm,eM as setSettingValue,nF as settingLocked,$C as settingValue,SM as settingsGateOf,aM as settingsOpenMode,nM as settingsStatusAll,sM as settingsStatusOf,Qn as settleRefinement,$T as sha256,UE as shieldToolResult,lC as shiftMonth,Zi as shortUrl,yu as shouldAutoTitle,rN as shouldRotate,AM as shouldSeedDestinations,ay as shredBlob,aP as sidelinePath,lP as sidelineToolProvider,ng as signChallenge,mS as signInError,cS as signInFromError,pS as signInToolResult,Bi as signalsFrom,jR as similarity,FF as skillCatalogSystem,YA as skillChoices,HF as skillCreatorPrompt,bF as skillDiscoveryProvider,UF as skillEntry,yF as skillFileProvider,Bf as skillFiles,WF as skillFromDraft,xF as skillHandle,KF as skillIdFrom,WI as skillInvocationLabel,VI as skillInvocationOf,Wf as skillIsStale,MF as skillPackageFiles,CF as skillRunFromSkill,LF as skillToolSystem,Zf as skillVar,iI as skillVarGuidance,$f as skillVarPattern,KI as slashCommandInsert,bI as slashCommandItems,JR as slotOf,bd as slugAgentId,sp as slugTeamName,Wx as snapQuote,iD as sniffType,Qu as snippetOf,GA as soloTeam,Bg as sortRecords,wg as sortStamp,CM as sourceCitationSystem,pE as sourceGate,cE as sourceGuardFor,es as sourceId,oP as sourceOf,ss as sourcePolicyFor,mE as sourcePolicySettings,ns as sourceUrlsOf,Ei as sourcesFromToolText,rh as sourcesOf,_a as spanningQuestions,qy as speakStream,Zy as speakable,Lg as speakerBreakdown,kg as speakerLabeller,Cg as speakerStats,xg as speakerTimeline,Jp as spendOf,rR as spendRows,gh as splitForWindow,dh as splitNoteBlocks,JS as stableToolCallKey,aO as stampOf,sS as standaloneInstallCommand,Xx as standsOn,Yg as startOfDay,Mk as startRecording,Bd as starterAgents,MA as starterTeam,tp as starterTeams,Tx as stepAction,OE as stepResultText,dx as stepState,Tf as storyLinkOf,CO as streamCodec,Ig as stripNoteImageRefs,Nt as stripQualifiers,ct as subjectKey,pt as subjectTokens,Yx as subjectsOf,tI as substituteSkillVars,EA as subtaskFromRequest,fu as suggestExistingTags,gt as suggestMerges,oI as suggestSkillVar,Ll as suggestionsFormat,Pl as suggestionsPrompt,hl as suggestionsStream,ad as summarize,qd as summarizeEngine,Wk as summarizeRun,rr as summarizeSearch,dy as summarizeUsage,dC as summarySections,jO as supersedes,de as supportsSubagents,Aa as surveyCorpus,Uk as switchOutcome,Ah as syncNote,Xt as synthesisPrompt,NL as systemWithSummary,Ru as tagFacets,Ze as tagResults,Iu as tagsSearchText,mA as takeUp,cA as takeUpLine,_A as taskTree,vT as teamForRound,ip as teamFromForm,LA as teamHealth,HI as teamInvocationText,NA as teamLanes,OA as teamLine,xA as teamShape,Q_ as teamToolProvider,q_ as teamToolSpec,Z_ as teamToolTimeoutMs,HA as teamsWithSolos,vM as testMcpServer,lh as textKey,Hk as textToDict,xN as themeStylesheet,jM as threadManifest,AA as threadRows,ui as threadTitle,QM as threadToolProvider,gi as threadTree,Ii as threadsOf,Ra as thresholdSweep,ZN as tierFor,Nd as tierOf,wa as timedTextUrl,Gn as timerIntent,Zs as timerTrigger,hu as titleFromDate,xu as titleFromParticipants,Pu as titleFromSummary,Lu as titleFromTopics,WU as titleTerms,bs as toB64,fp as toBriefClaims,FP as toChatMessages,bD as toCloudEvent,GD as toCloudEventBatch,wD as toCloudEventLines,LN as toCssVars,Ju as toIndexEntry,vl as toJsonSchema,IR as toJsonl,Qr as toModelSchema,qr as toModelSchemas,DP as toMultimodalMessages,Jk as toSanitizedReport,Yu as toSearchRecord,qI as toggleLinePrefix,$I as toggleLink,Eu as toggleTag,ZI as toggleTask,QI as toggleWrap,MS as tokenExpired,gS as tokenRequest,kn as tokenize,XO as tombstone,bm as toolChannel,fm as toolDoc,jS as toolMadeProgress,Do as toolNeedFor,wL as toolPlan,PM as toolStatus,yS as toolTraits,UL as toolsWanted,Rr as topicTerms,tn as topicTrigger,cl as topicsFormat,ml as topicsPrompt,El as topicsSchema,_l as topicsStream,wS as traitsIndex,vm as transcriptFor,Wa as transcriptFromTracks,$ as triggerQueryAt,dc as trimDescription,sr as trimGraph,Fh as trimOverlap,wf as trustOf,lk as ttsArchOf,mx as turnFlow,cx as turnFlowChart,Sx as turnGroundingNote,Ni as turnsOf,Bl as unfence,Ms as unlockVault,sx as unsupportedFigures,nx as unsupportedNote,fb as unverifiedAmounts,Oe as unwrapRedirect,Wr as upcast,Xr as upcastAll,Sf as upcastMemory,Yf as upcastSkill,zf as upcastSkills,BA as upsertAgents,my as usageFromEvent,cy as usageFromOpenAi,vc as usageOf,Ey as usageRecord,Jm as validateAction,hd as validateAgent,Ub as validateBrowserAnnounce,kb as validateBrowserCall,bb as validateBrowserResult,Uc as validateBudget,zr as validateCapability,O_ as validateConnection,fd as validateEngineSpec,hs as validateEntry,m as validateEvent,_D as validateExtractRequest,AD as validateExtractResponse,MT as validateGate,Jr as validateInvocation,pT as validateJobPost,eT as validateProject,fc as validateRecipe,Ws as validateSchedule,Xf as validateSkill,Kc as validateTeam,zo as validateView,Jo as validateViewInvocation,qo as validateWidget,Zo as validateWidgetMessage,xM as vaultWidgetSystem,zk as verdict,td as verifyAttested,rd as verifyChain,eg as verifyEntitlement,cF as verifyPolicyToken,rg as verifySignedToken,qe as viaOf,ba as videoMetaFromPlayerResponse,Ye as viewApiEntries,jo as viewResult,Um as visiblePrefix,Ta as vocabularyDrift,sn as voiceCommandTrigger,yk as voiceListRows,Dk as voicePicker,zy as voiceSpeaker,Xy as voiceStep,Cn as wakeFor,ma as wantedPages,qL as wantsDecision,QL as wantsIntent,_N as wantsModel,hM as wantsVaultGuidance,mp as waves,WP as weatherFollowupPlace,pP as weatherFromSearch,VP as weatherPlace,cP as weatherToolProvider,fo as weatherUrl,$D as webCryptoSealer,Ck as webMedia,Ir as webQuery,JP as webRedoAsk,ab as webResearch,Ec as webSearchToolProvider,AS as wellKnownUrls,FA as whereItWorks,LM as widgetAuthoringSystem,et as widgetIcon,Se as wikiQueryAt,la as wikilinksIn,SL as windowOf,tD as withAbsolutePaths,kp as withBoardTool,Yk as withCost,eL as withFetchedMemo,Qm as withGuidance,Mm as withHint,Pm as withLead,wh as withPresence,hm as withPromptedTools,U as withRecent,vE as withResultShield,Bp as withRunCache,UP as withSourceTool,Dh as withStitching,IE as withToolSystem,$N as withinFreeLimit,dE as withinReach,xL as withoutOwnInstructions,qu as wordCount,Er as wordDiff,iA as workLogEvidence,tA as workLogFor,aA as workLogText,P_ as worktreeDirFor,bL as worldAnswered,vL as worldPlanned,SI as writerAffordance,RI as writerRequest,dI as writerTail};
@@ -0,0 +1,3 @@
1
+ const m="https://registry.npmjs.org",w="@chatpanel/gateway",g=e=>/^win/i.test(String(e||""));function h(e=""){return g(e)?"irm https://dl.chatpanel.net/install.ps1 | iex":"curl -fsSL https://dl.chatpanel.net/install.sh | bash"}function f({pkg:e=w,platform:t="",systemCa:n=!1,register:a=!1}={}){const r=`npm i -g ${e}@latest --registry=${m} --ignore-scripts`;return g(t)?`${n?"$env:NODE_OPTIONS='--use-system-ca'; ":""}chatpanel-gateway --stop; ${r}; chatpanel-gateway --install`:`${n?"NODE_OPTIONS=--use-system-ca ":""}${r}${a?" && chatpanel-gateway --install":""}`}function k(e,t){const n=/^\s*>=\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?\s*$/.exec(String(t||"")),a=/^\s*v?(\d+)\.(\d+)(?:\.(\d+))?/.exec(String(e||""));if(!n||!a)return null;for(let r=1;r<=3;r+=1){const l=Number(a[r]||0)-Number(n[r]||0);if(l)return l>0}return!0}const N=/UNABLE_TO_VERIFY_LEAF_SIGNATURE|SELF_SIGNED_CERT_IN_CHAIN|DEPTH_ZERO_SELF_SIGNED_CERT|UNABLE_TO_GET_ISSUER_CERT(?:_LOCALLY)?|CERT_UNTRUSTED|unable to verify the first certificate|self[- ]signed certificate|unable to get local issuer certificate/i,b=/needs Node\.js v?([\d.]+) or newer/i,O=/\b(?:E401|E403|ENEEDAUTH)\b|401 Unauthorized|403 Forbidden/,S=/\b(?:E404|ETARGET)\b|No matching version found|404 Not Found/,T=/\b(?:ETIMEDOUT|ESOCKETTIMEDOUT|ECONNRESET|ECONNREFUSED|ENOTFOUND|EAI_AGAIN|ERR_SOCKET_TIMEOUT)\b|socket hang up|was still running after \d+ minutes|did not answer within/i,I=/launches a copy npm did not update|came back still on v/;function _(e){const t=/request to (https?:\/\/[^/\s]+)/i.exec(e);return t?t[1].replace(/\/$/,""):""}function R(e,{platform:t="",node:n="",needsNode:a="",pkg:r=w,channel:l="npm"}={}){const s=String(e||""),o=(/npm (?:error|ERR!) code (\S+)/.exec(s)||[])[1]||"",d=_(s),p=d&&d!==m?` (${d})`:"",c=(i={})=>f({pkg:r,platform:t,...i}),u={say:"Or use the standalone build — it carries its own runtime and needs no npm",run:h(t)};if(l==="binary"){const i={say:"Run the installer again — it downloads with the certificates this computer already trusts",run:h(t)};return N.test(s)?{kind:"certificate",why:"A proxy on this network re-signs secure connections (usual on a company network or VPN), and the gateway’s own downloader does not trust its certificate — so the download was refused.",steps:[i]}:T.test(s)?{kind:"network",why:"The gateway could not reach the download server — no connection, or a VPN or firewall in the way.",steps:[{say:"Check the connection (or switch the VPN), then update again"},i]}:null}if(N.test(s))return{kind:"certificate",why:"A proxy on this network re-signs secure connections (usual on a company network or VPN), and npm does not trust its certificate — so the download was refused.",steps:[{say:"Let Node use the certificates this computer already trusts (Node 22.15 or newer)",run:c({systemCa:!0,register:!0})},{say:"Or point npm at your company’s certificate file (IT knows where it is), then update again",run:"npm config set cafile /path/to/company-ca.pem"},u],avoid:"Do not switch certificate checks off (strict-ssl=false): that removes the check for every package you install."};const y=b.exec(s);if(o==="EBADENGINE"||!!y||a&&n&&k(n,a)===!1){const i=y?y[1]:String(a||"").replace(/^\s*>=\s*/,""),E=String(n||"").replace(/^v/,"");return{kind:"node",why:`This version needs Node.js${i?` ${i} or newer`:" newer than the one installed"}${E?` — the gateway is running on Node ${E}`:""}.`,steps:[{say:"Install a current Node.js (https://nodejs.org, or `nvm install --lts`)"},{say:"Then install the gateway with it and register that copy, so the background service uses the new Node",run:c({register:!0})},u]}}return O.test(s)?{kind:"registry-auth",why:`The registry npm asked${p} wants a sign-in. ChatPanel is on the public npm registry, which needs none — a registry set in ~/.npmrc answered instead.`,steps:[{say:"Install from the public registry",run:c({register:!0})},u]}:S.test(s)?{kind:"registry-missing",why:`The registry npm asked${p} does not have this version — a company mirror can lag the public registry or leave packages out.`,steps:[{say:"Install from the public registry",run:c({register:!0})},u]}:T.test(s)?{kind:"network",why:`npm could not reach the registry${p} — no connection, or a VPN or firewall in the way.`,steps:[{say:"Check the connection (or switch the VPN), then update again"},{say:"Or install from the public registry by hand",run:c({register:!0})},u]}:o==="EBUSY"||g(t)&&o==="EPERM"?{kind:"busy",why:"The running gateway holds files npm has to replace, so the install stopped half way.",steps:[{say:"Stop the gateway, install, and start it again",run:f({pkg:r,platform:t||"win32"})}]}:o==="EACCES"||o==="EPERM"?{kind:"permission",why:"npm is not allowed to write its global folder — usually because an earlier `sudo npm i -g` left part of it owned by root.",steps:[{say:"The standalone build needs no npm and no sudo",run:h(t)}]}:o==="ENOSPC"||/\bENOSPC\b/.test(s)?{kind:"disk",why:"The disk is full, so npm could not unpack the update.",steps:[{say:"Free some space, then update again"}]}:I.test(s)?{kind:"other-copy",why:"npm updated a different copy from the one the background service runs — each Node install (nvm, Homebrew, the official one) keeps its own global folder.",steps:[{say:"In a terminal, install with the Node you use and register that copy as the service",run:c({register:!0})},{say:"To see which copy the service launches",run:"chatpanel-gateway --status"}]}:null}function C({platform:e="",pkg:t=w}={}){return{kind:"not-back",why:"The update was installed, but the gateway has not answered since.",steps:[{say:"Give it a minute — the first start after an update loads its models — then check again"},{say:"Still not back? Ask it what is wrong, in a terminal",run:"chatpanel-gateway --status"},{say:"If it says it needs a newer Node.js: update Node, then install and register the gateway with it",run:f({pkg:t,platform:e,register:!0})},{say:"Or use the standalone build — it carries its own runtime and needs no npm",run:h(e)}]}}function A(e){if(!e)return"";const t=(e.steps||[]).map((n,a)=>`${a+1}. ${n.say}${n.run?`:
2
+ ${n.run}`:""}`);return[e.why,...t,...e.avoid?[e.avoid]:[]].join(`
3
+ `)}export{m as PUBLIC_REGISTRY,A as adviceText,R as explainInstallFailure,C as gatewayNotBackAdvice,k as nodeSatisfies,f as npmInstallCommand,h as standaloneInstallCommand};
package/omni.js CHANGED
@@ -1 +1 @@
1
- const l=Object.freeze(["search","ask","subject","tag","command"]),f=Object.freeze([Object.freeze({mode:"search",prefix:"",hint:"search"}),Object.freeze({mode:"ask",prefix:"?",hint:"ask"}),Object.freeze({mode:"subject",prefix:"@",hint:"subject"}),Object.freeze({mode:"tag",prefix:"#",hint:"tag"}),Object.freeze({mode:"command",prefix:">",hint:"command"})]),m=new Map(f.filter(e=>e.prefix).map(e=>[e.prefix,e.mode])),u=new Set(["type","since","before","in","limit"]);function d(e){const n=String(e??""),r=n.trimStart(),o=r.slice(0,1),c=m.get(o)||"search",t=c==="search"?"":o;let s=t?r.slice(1):r;s=s.replace(/^\s+/,"");const{query:i,filters:a}=p(s);return{mode:c,prefix:t,query:i,filters:a,raw:n}}function p(e){const n={},r=[],o=String(e||"").match(/(?:[A-Za-z]+:)?"[^"]*"|\S+/g)||[];for(const c of o){const t=/^([a-z]+):(.*)$/i.exec(c);if(t&&u.has(t[1].toLowerCase())){const s=t[1].toLowerCase(),i=t[2].replace(/^"|"$/g,"");i&&(n[s]=i);continue}r.push(c.replace(/^"|"$/g,""))}return{query:r.join(" ").trim(),filters:n}}function x(e,n=Date.now()){const r=String(e||"").trim().toLowerCase();if(!r)return 0;if(r==="today"){const t=new Date(n);return t.setHours(0,0,0,0),t.getTime()}if(r==="yesterday"){const t=new Date(n);return t.setHours(0,0,0,0),t.getTime()-864e5}const o=/^(\d+)\s*([mhdw])$/.exec(r);if(o){const t=Number(o[1]),s={m:6e4,h:36e5,d:864e5,w:6048e5}[o[2]];return n-t*s}const c=Date.parse(r);return Number.isFinite(c)?c:0}function h(e){return!!e&&e.mode==="ask"}function b(e,{minChars:n=2}={}){return e?e.mode==="command"?e.query.length>=1:e.query.length>=n:!1}export{f as OMNI_GRAMMAR,l as OMNI_MODES,p as extractFilters,b as isActionable,d as parseOmni,x as resolveSince,h as wantsModel};
1
+ const d=Object.freeze(["search","ask","subject","tag","command"]),f=Object.freeze([Object.freeze({mode:"search",prefix:"",hint:"search"}),Object.freeze({mode:"ask",prefix:"?",hint:"ask"}),Object.freeze({mode:"subject",prefix:"@",hint:"subject"}),Object.freeze({mode:"tag",prefix:"#",hint:"tag"}),Object.freeze({mode:"command",prefix:">",hint:"command"})]),m=new Map(f.filter(e=>e.prefix).map(e=>[e.prefix,e.mode])),u=new Set(["type","since","before","date","in","limit"]);function l(e){const n=String(e??""),r=n.trimStart(),o=r.slice(0,1),c=m.get(o)||"search",t=c==="search"?"":o;let s=t?r.slice(1):r;s=s.replace(/^\s+/,"");const{query:i,filters:a}=p(s);return{mode:c,prefix:t,query:i,filters:a,raw:n}}function p(e){const n={},r=[],o=String(e||"").match(/(?:[A-Za-z]+:)?"[^"]*"|\S+/g)||[];for(const c of o){const t=/^([a-z]+):(.*)$/i.exec(c);if(t&&u.has(t[1].toLowerCase())){const s=t[1].toLowerCase(),i=t[2].replace(/^"|"$/g,"");i&&(n[s]=i);continue}r.push(c.replace(/^"|"$/g,""))}return{query:r.join(" ").trim(),filters:n}}function x(e,n=Date.now()){const r=String(e||"").trim().toLowerCase();if(!r)return 0;if(r==="today"){const t=new Date(n);return t.setHours(0,0,0,0),t.getTime()}if(r==="yesterday"){const t=new Date(n);return t.setHours(0,0,0,0),t.getTime()-864e5}const o=/^(\d+)\s*([mhdw])$/.exec(r);if(o){const t=Number(o[1]),s={m:6e4,h:36e5,d:864e5,w:6048e5}[o[2]];return n-t*s}const c=Date.parse(r);return Number.isFinite(c)?c:0}function h(e){return!!e&&e.mode==="ask"}function b(e,{minChars:n=2}={}){return e?e.mode==="command"?e.query.length>=1:e.query.length>=n:!1}export{f as OMNI_GRAMMAR,d as OMNI_MODES,p as extractFilters,b as isActionable,l as parseOmni,x as resolveSince,h as wantsModel};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chatpanel/events",
3
- "version": "0.353.0",
3
+ "version": "0.356.1",
4
4
  "description": "The canonical ChatPanel event-log and capability contracts — typed durable facts, clock-free deterministic linearization, schema upcasting, and the invariants the replay harness asserts. Pure, dependency-free ESM shared by the ChatPanel extension, gateway and bridge.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -99,6 +99,7 @@
99
99
  "./mcp-args-env.js": "./mcp-args-env.js",
100
100
  "./mcp-dispatch.js": "./mcp-dispatch.js",
101
101
  "./mcp-errors.js": "./mcp-errors.js",
102
+ "./install-advice.js": "./install-advice.js",
102
103
  "./mcp-manager.js": "./mcp-manager.js",
103
104
  "./mcp-registry.js": "./mcp-registry.js",
104
105
  "./mcp-launcher.js": "./mcp-launcher.js",
@@ -161,6 +162,7 @@
161
162
  "./response-language.js": "./response-language.js",
162
163
  "./recruit.js": "./recruit.js",
163
164
  "./record-list.js": "./record-list.js",
165
+ "./date-filter.js": "./date-filter.js",
164
166
  "./redaction-dictionary.js": "./redaction-dictionary.js",
165
167
  "./redaction-tokens.js": "./redaction-tokens.js",
166
168
  "./ref.js": "./ref.js",
@@ -404,6 +406,7 @@
404
406
  "mcp-args-env.js",
405
407
  "mcp-dispatch.js",
406
408
  "mcp-errors.js",
409
+ "install-advice.js",
407
410
  "mcp-manager.js",
408
411
  "mcp-registry.js",
409
412
  "mcp-launcher.js",
@@ -487,6 +490,7 @@
487
490
  "response-language.js",
488
491
  "recruit.js",
489
492
  "record-list.js",
493
+ "date-filter.js",
490
494
  "redaction-dictionary.js",
491
495
  "redaction-tokens.js",
492
496
  "ref.js",
package/record-list.js CHANGED
@@ -1,2 +1,2 @@
1
- const f=Object.freeze(["recent","started","title"]),k=Object.freeze({recent:"Recently active",started:"Date started",title:"Title A–Z"}),i=e=>Number.isFinite(Number(e))?Number(e):0;function l(e,t="recent"){return t==="started"?i(e?.createdAt)||i(e?.updatedAt):i(e?.updatedAt)||i(e?.createdAt)}function h(e,t="recent"){const s=Array.isArray(e)?[...e]:[];if(t==="title")return s.sort((o,r)=>String(o?.title||"").localeCompare(String(r?.title||""),void 0,{sensitivity:"base"})||l(r)-l(o));const u=f.includes(t)?t:"recent";return s.sort((o,r)=>l(r,u)-l(o,u))}function p(e,t){const s=String(t||"").toLowerCase().split(/\s+/).filter(Boolean),u=Array.isArray(e)?e:[];return s.length?u.filter(o=>{const r=`${o?.title||""}
2
- ${o?.snippet||""}`.toLowerCase();return s.every(n=>r.includes(n))}):u}const b=864e5;function c(e){const t=new Date(e);return t.setHours(0,0,0,0),t.getTime()}const d=["January","February","March","April","May","June","July","August","September","October","November","December"],m=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function y(e,t=Date.now()){const s=i(e);if(!s)return{key:"undated",label:"Undated",order:9e15};const u=c(t),o=c(s),r=Math.round((u-o)/b);if(r<=0)return{key:"today",label:"Today",order:0};if(r===1)return{key:"yesterday",label:"Yesterday",order:1};if(r<7)return{key:"week",label:"Earlier this week",order:2};const n=new Date(s),a=new Date(t);if(n.getFullYear()===a.getFullYear()&&n.getMonth()===a.getMonth())return{key:"month",label:"Earlier this month",order:3};const g=n.getFullYear()===a.getFullYear()?d[n.getMonth()]:`${d[n.getMonth()]} ${n.getFullYear()}`;return{key:`m-${n.getFullYear()}-${n.getMonth()}`,label:g,order:4+(a.getFullYear()*12+a.getMonth())-(n.getFullYear()*12+n.getMonth())}}function D(e,t=Date.now(),{locale:s=void 0}={}){const u=i(e);if(!u)return"";const o=y(u,t),r=new Date(u);if(o.key==="today"||o.key==="yesterday")return r.toLocaleTimeString(s,{hour:"numeric",minute:"2-digit"});if(o.key==="week")return m[r.getDay()];const n=r.getFullYear()===new Date(t).getFullYear();return r.toLocaleDateString(s,{month:"short",day:"numeric",...n?{}:{year:"numeric"}})}function A(e,{mode:t="recent",query:s="",now:u=Date.now()}={}){const o=h(p(e,s),t);if(t==="title")return o.length?[{key:"all",label:"",items:o}]:[];const r=new Map;for(const n of o){const a=y(l(n,t),u);r.has(a.key)||r.set(a.key,{key:a.key,label:a.label,order:a.order,items:[]}),r.get(a.key).items.push(n)}return[...r.values()].sort((n,a)=>n.order-a.order).map(({order:n,...a})=>a)}export{k as SORT_LABELS,f as SORT_MODES,y as dayBucket,p as filterRecords,A as groupRecords,D as rowTime,h as sortRecords,l as sortStamp};
1
+ import{parseDateQuery as g,filterByDate as p}from"./date-filter.js";const m=Object.freeze(["recent","started","title"]),M=Object.freeze({recent:"Recently active",started:"Date started",title:"Title A–Z"}),i=r=>Number.isFinite(Number(r))?Number(r):0;function l(r,n="recent"){return n==="started"?i(r?.createdAt)||i(r?.updatedAt):i(r?.updatedAt)||i(r?.createdAt)}function h(r,n="recent"){const u=Array.isArray(r)?[...r]:[];if(n==="title")return u.sort((a,e)=>String(a?.title||"").localeCompare(String(e?.title||""),void 0,{sensitivity:"base"})||l(e)-l(a));const s=m.includes(n)?n:"recent";return u.sort((a,e)=>l(e,s)-l(a,s))}function b(r,n,{now:u=Date.now()}={}){const s=g(n,{now:u}),a=s.text.toLowerCase().split(/\s+/).filter(Boolean),e=p(r,s.range);return a.length?e.filter(t=>{const o=`${t?.title||""}
2
+ ${t?.snippet||""}`.toLowerCase();return a.every(c=>o.includes(c))}):e}const k=864e5;function d(r){const n=new Date(r);return n.setHours(0,0,0,0),n.getTime()}const y=["January","February","March","April","May","June","July","August","September","October","November","December"],D=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function f(r,n=Date.now()){const u=i(r);if(!u)return{key:"undated",label:"Undated",order:9e15};const s=d(n),a=d(u),e=Math.round((s-a)/k);if(e<=0)return{key:"today",label:"Today",order:0};if(e===1)return{key:"yesterday",label:"Yesterday",order:1};if(e<7)return{key:"week",label:"Earlier this week",order:2};const t=new Date(u),o=new Date(n);if(t.getFullYear()===o.getFullYear()&&t.getMonth()===o.getMonth())return{key:"month",label:"Earlier this month",order:3};const c=t.getFullYear()===o.getFullYear()?y[t.getMonth()]:`${y[t.getMonth()]} ${t.getFullYear()}`;return{key:`m-${t.getFullYear()}-${t.getMonth()}`,label:c,order:4+(o.getFullYear()*12+o.getMonth())-(t.getFullYear()*12+t.getMonth())}}function S(r,n=Date.now(),{locale:u=void 0}={}){const s=i(r);if(!s)return"";const a=f(s,n),e=new Date(s);if(a.key==="today"||a.key==="yesterday")return e.toLocaleTimeString(u,{hour:"numeric",minute:"2-digit"});if(a.key==="week")return D[e.getDay()];const t=e.getFullYear()===new Date(n).getFullYear();return e.toLocaleDateString(u,{month:"short",day:"numeric",...t?{}:{year:"numeric"}})}function Y(r,{mode:n="recent",query:u="",now:s=Date.now()}={}){const a=h(b(r,u,{now:s}),n);if(n==="title")return a.length?[{key:"all",label:"",items:a}]:[];const e=new Map;for(const t of a){const o=f(l(t,n),s);e.has(o.key)||e.set(o.key,{key:o.key,label:o.label,order:o.order,items:[]}),e.get(o.key).items.push(t)}return[...e.values()].sort((t,o)=>t.order-o.order).map(({order:t,...o})=>o)}export{M as SORT_LABELS,m as SORT_MODES,f as dayBucket,b as filterRecords,Y as groupRecords,S as rowTime,h as sortRecords,l as sortStamp};
package/retrieval-plan.js CHANGED
@@ -1,2 +1,2 @@
1
- import{needsWhole as R}from"./digest.js";import{lookupSubject as q,prefetchPlan as E,answeredByPrefetch as C}from"./prefetch.js";import{partChars as P,STITCH_LIMITS as _}from"./stitch.js";import{isSmallWindow as b,FIT_HEADROOM as D,SMALL_WINDOW_ROUNDS as M}from"./context-window.js";import{isPleasantry as W}from"./tool-need.js";const F=4,L={device:3,api:2,agent:8};function Z({question:n="",sources:t=[],fixedTokens:r=0,target:o={}}={}){const a=o.kind||"api",s=Number(o.window)||0,i=b(s),d=R(n),g=Math.max(1,Number(o.concurrency)||(a==="device"?1:4)),k=Number(o.secondsPerCall)||L[a]||2,h=(Array.isArray(t)?t:[]).filter(Boolean).map(e=>({...e,chars:Math.max(0,Number(e.chars)||0)})),m=s?Math.floor(s*D)-(Number(o.reserve)||1024)-(Number(r)||0):1/0,y=Number.isFinite(m)?Math.max(0,m)*F:1/0,f=new Map,c=new Set;let u=y;for(let e=!0;e;){e=!1;const l=h.filter(w=>!c.has(w.id)),p=l.length?u/l.length:0;for(const w of l)w.chars<=p&&(c.add(w.id),u-=w.chars,e=!0)}const v=h.filter(e=>!c.has(e.id)).reduce((e,l)=>e+l.chars,0);for(const e of h)f.set(e.id,c.has(e.id)?e.chars:Math.floor(u*e.chars/(v||1)));const x=P({windowTokens:s,reserveTokens:450})||0,S=h.map(e=>{const l={id:e.id,kind:e.kind,title:e.title||"",chars:e.chars,share:f.get(e.id)};if(a==="agent")return{...l,how:"agent",calls:0,why:"an agent reads it itself — handed the material, not a digest"};if(c.has(e.id)||!Number.isFinite(y))return{...l,how:"whole",calls:0,why:"it fits"};if(!i)return{...l,how:"merge",calls:Math.ceil(e.chars/Math.max(1,l.share)),why:"a large window: what does not fit is merged by the model"};if(d&&x>0){const p=Math.min(_.parts,Math.ceil(e.chars/x)),w=Math.ceil(e.chars/x),O=Math.max(1,Math.ceil(p/4));return{...l,how:"digest",parts:p,calls:p+O,unread:Math.max(0,w-p),why:"the question needs all of it, and it does not fit: read in parts, the notes combined"}}return{...l,how:"cut",calls:0,why:d?"no room to read it in parts: the parts that bear on the question":"a focused question: the parts that bear on it, by relevance"}}),T=h.some(e=>e.prefetched),I=a==="agent"?{offer:!0,rounds:null,why:"an agent keeps its own tools"}:i&&T?{offer:!1,rounds:1,why:"a small window, and a prefetch already answered"}:i?{offer:!0,rounds:M,why:"a small window: one tool round, then the answer"}:{offer:!0,rounds:null,why:""},A=S.reduce((e,l)=>e+(l.calls||0),0),$=Math.round((Math.ceil(A/g)+1)*k);return{sources:S,tools:I,estimate:{calls:A+1,seconds:$},say:j(S,$)}}function j(n,t){const r=n.filter(i=>i.how==="digest");if(!r.length)return"";const o=r.length===1?`"${r[0].title||"what is attached"}"`:`${r.length} attachments`,a=r.reduce((i,d)=>i+d.parts,0),s=r.reduce((i,d)=>i+(d.unread||0),0);return`Reading all of ${o} in ${a} part${a===1?"":"s"} first, so the answer covers the whole of it${s?` (the last ${s} part${s===1?"":"s"} will not fit)`:""} — about ${t} s.`}const H=/\b(?:schedule|reschedule|remind(?:er)?|calendar|invite|e-?mail|inbox|send|reply|draft|create|add|save|write (?:a |an )?note|open|click|fill|book|order|cancel|delete|rename|move|upload|download|run|execute|deploy|commit|share|post)\b/i,B=/\b(?:find out|find more|more (?:info|information|details)|look into|latest|current(?:ly)?|today|tonight|tomorrow|right now|this (?:week|weekend|month|year)|price|prices|cost|stock|shares?|score|news|headlines?|weather|forecast|hours|near me|nearby|directions|traffic|flight|look (?:it |that )?up|search|google|website|link|url|https?:\/\/|who(?:'s| is| was| are)|where(?:'s| is| are)|when(?:'s| is| does| do))\b/i,U=/\b(?:my|mine|our|ours|we|us|did i|have i|i (?:said|asked|wrote|told|had|was)|remember|last time|earlier today|meetings?|notes?|transcripts?|conversations?|chats?)\b/i;function K(n){const t=String(n||"").trim();return t?H.test(t)||B.test(t)||U.test(t)||!!q(t):!1}const N=new Set(["weather","stock","news","page","web","research"]);function ee(n=[]){return(Array.isArray(n)?n:[]).some(t=>t?.kind==="prefetch"&&N.has(t.prefetch)&&String(t.text||"").trim())}function te(n=[]){return(Array.isArray(n)?n:[]).some(t=>t&&N.has(t.kind))}function Y({window:n=0,question:t="",answered:r=!1,decided:o=""}={}){return b(n)?r?{offer:!1,rounds:1,why:"a small window, and a prefetch already answered"}:o==="none"?{offer:!1,rounds:1,why:"a small window, and the decider found nothing to look up"}:o?{offer:!0,rounds:M,why:`a small window, the decider asked for ${o}, and the fetch found nothing`}:K(t)?{offer:!0,rounds:M,why:"a small window: one tool round, then the answer"}:{offer:!1,rounds:1,why:"a small window, and a question that needs no tools"}:{offer:!0,rounds:null,why:""}}function re({window:n=0,question:t="",answered:r=!1}={}){if(!b(n))return{history:"all",memories:"all",before:!1,why:""};const o=W(t);return{history:r?"none":"all",memories:o?"none":r?"pinned":"matched",before:!0,why:[r?"a small window a fetch answered: the evidence, the question and pinned memories":"",o?"a greeting: no memories":r?"":"a small window: only the memories that bear on it"].filter(Boolean).join("; ")}}const z="From the user's own history. It may have nothing to do with the question: use it only if it answers it, otherwise answer from your own knowledge.";function ne(n=[],t={}){const r=(Array.isArray(n)?n:[]).filter(o=>o&&typeof o=="object");return t?.before?r.map(o=>({...o,before:!0,text:`${z}
2
- ${String(o.text||"")}`})):r}function oe(n=[],t=""){const r=String(t||"").trim();if(!r)return n;const o=/^(?:here|near me|nearby|my (?:location|area|city))$/i;return(Array.isArray(n)?n:[]).map(a=>{const s=a?.input?.args||a?.input;if(!s)return a;if(a.kind==="weather"&&o.test(String(s.location||"").trim())){const i={...s,location:r};return{...a,input:a.input.args?{...a.input,args:i}:i,label:`Weather — ${r}`}}if(typeof s.query=="string"&&/\bnear (?:me|here)\b|\bnearby\b|\baround here\b/i.test(s.query)){const i=s.query.replace(/\bnear (?:me|here)\b|\bnearby\b|\baround here\b/i,`near ${r}`);return{...a,input:a.input.args?{...a.input,args:{...s,query:i}}:{...s,query:i},subject:i,label:String(a.label||"").replace(/\bnear (?:me|here)\b|\bnearby\b|\baround here\b/i,`near ${r}`)}}return a})}function ae({question:n="",previousText:t="",previousAnswer:r="",previous:o=null,reach:a=new Set,window:s=0,personal:i=!1,lookup:d=null,now:g=Date.now()}={}){const k=b(s),h=E({text:n,previous:o,previousText:t,previousAnswer:r,reach:a,research:!0,page:!0,lookup:d??k,now:g}),m=h.some(u=>["weather","stock","news","page","web","research"].includes(u.kind)),y=!!i&&!m,f=[];h.length&&f.push(`fetch first: ${h.map(u=>u.label||u.kind).join(", ")}`),i&&m&&f.push("a world fact — the person's history is not searched for it");const c=Y({window:s,question:n,answered:h.length>0});return c.why&&f.push(c.why),{prefetch:h,world:m,research:y,tools:c,why:f}}export{z as HISTORY_NOTE,C as answeredByPrefetch,re as contextPlan,ne as historyContext,oe as placeItems,Z as planRetrieval,ae as planTurn,Y as toolPlan,K as toolsWanted,ee as worldAnswered,te as worldPlanned};
1
+ import{needsWhole as E}from"./digest.js";import{lookupSubject as q,prefetchPlan as C,answeredByPrefetch as P}from"./prefetch.js";import{partChars as _,STITCH_LIMITS as D}from"./stitch.js";import{isSmallWindow as b,FIT_HEADROOM as W,SMALL_WINDOW_ROUNDS as g}from"./context-window.js";import{isPleasantry as F}from"./tool-need.js";const L=4,j={device:3,api:2,agent:8};function Z({question:n="",sources:t=[],fixedTokens:r=0,target:o={}}={}){const a=o.kind||"api",s=Number(o.window)||0,i=b(s),d=E(n),k=Math.max(1,Number(o.concurrency)||(a==="device"?1:4)),x=Number(o.secondsPerCall)||j[a]||2,h=(Array.isArray(t)?t:[]).filter(Boolean).map(e=>({...e,chars:Math.max(0,Number(e.chars)||0)})),m=s?Math.floor(s*W)-(Number(o.reserve)||1024)-(Number(r)||0):1/0,y=Number.isFinite(m)?Math.max(0,m)*L:1/0,f=new Map,c=new Set;let u=y;for(let e=!0;e;){e=!1;const l=h.filter(w=>!c.has(w.id)),p=l.length?u/l.length:0;for(const w of l)w.chars<=p&&(c.add(w.id),u-=w.chars,e=!0)}const T=h.filter(e=>!c.has(e.id)).reduce((e,l)=>e+l.chars,0);for(const e of h)f.set(e.id,c.has(e.id)?e.chars:Math.floor(u*e.chars/(T||1)));const S=_({windowTokens:s,reserveTokens:450})||0,M=h.map(e=>{const l={id:e.id,kind:e.kind,title:e.title||"",chars:e.chars,share:f.get(e.id)};if(a==="agent")return{...l,how:"agent",calls:0,why:"an agent reads it itself — handed the material, not a digest"};if(c.has(e.id)||!Number.isFinite(y))return{...l,how:"whole",calls:0,why:"it fits"};if(!i)return{...l,how:"merge",calls:Math.ceil(e.chars/Math.max(1,l.share)),why:"a large window: what does not fit is merged by the model"};if(d&&S>0){const p=Math.min(D.parts,Math.ceil(e.chars/S)),w=Math.ceil(e.chars/S),R=Math.max(1,Math.ceil(p/4));return{...l,how:"digest",parts:p,calls:p+R,unread:Math.max(0,w-p),why:"the question needs all of it, and it does not fit: read in parts, the notes combined"}}return{...l,how:"cut",calls:0,why:d?"no room to read it in parts: the parts that bear on the question":"a focused question: the parts that bear on it, by relevance"}}),I=h.some(e=>e.prefetched),O=a==="agent"?{offer:!0,rounds:null,why:"an agent keeps its own tools"}:i&&I?{offer:!1,rounds:1,why:"a small window, and a prefetch already answered"}:i?{offer:!0,rounds:g,why:"a small window: one tool round, then the answer"}:{offer:!0,rounds:null,why:""},A=M.reduce((e,l)=>e+(l.calls||0),0),$=Math.round((Math.ceil(A/k)+1)*x);return{sources:M,tools:O,estimate:{calls:A+1,seconds:$},say:H(M,$)}}function H(n,t){const r=n.filter(i=>i.how==="digest");if(!r.length)return"";const o=r.length===1?`"${r[0].title||"what is attached"}"`:`${r.length} attachments`,a=r.reduce((i,d)=>i+d.parts,0),s=r.reduce((i,d)=>i+(d.unread||0),0);return`Reading all of ${o} in ${a} part${a===1?"":"s"} first, so the answer covers the whole of it${s?` (the last ${s} part${s===1?"":"s"} will not fit)`:""} — about ${t} s.`}const N=/\b(?:schedule|reschedule|remind(?:er)?|calendar|invite|e-?mail|inbox|send|reply|draft|create|add|save|write (?:a |an )?note|open|click|fill|book|order|cancel|delete|rename|move|upload|download|run|execute|deploy|commit|share|post)\b/i,B=/\b(?:find out|find more|more (?:info|information|details)|look into|latest|current(?:ly)?|today|tonight|tomorrow|right now|this (?:week|weekend|month|year)|price|prices|cost|stock|shares?|score|news|headlines?|weather|forecast|hours|near me|nearby|directions|traffic|flight|look (?:it |that )?up|search|google|website|link|url|https?:\/\/|who(?:'s| is| was| are)|where(?:'s| is| are)|when(?:'s| is| does| do))\b/i,U=/\b(?:my|mine|our|ours|we|us|did i|have i|i (?:said|asked|wrote|told|had|was)|remember|last time|earlier today|meetings?|notes?|transcripts?|conversations?|chats?)\b/i;function K(n){const t=String(n||"").trim();return t?N.test(t)||B.test(t)||U.test(t)||!!q(t):!1}const v=new Set(["weather","stock","news","page","web","research"]);function ee(n=[]){return(Array.isArray(n)?n:[]).some(t=>t?.kind==="prefetch"&&v.has(t.prefetch)&&String(t.text||"").trim())}function te(n=[]){return(Array.isArray(n)?n:[]).some(t=>t&&v.has(t.kind))}function Y({window:n=0,question:t="",answered:r=!1,decided:o=""}={}){return b(n)?r?{offer:!1,rounds:1,why:"a small window, and a prefetch already answered"}:o==="none"?N.test(String(t||""))?{offer:!0,rounds:g,why:"a small window: nothing to look up, and something to do"}:{offer:!1,rounds:1,why:"a small window, and the decider found nothing to look up"}:o?{offer:!0,rounds:g,why:`a small window, the decider asked for ${o}, and the fetch found nothing`}:K(t)?{offer:!0,rounds:g,why:"a small window: one tool round, then the answer"}:{offer:!1,rounds:1,why:"a small window, and a question that needs no tools"}:{offer:!0,rounds:null,why:""}}function re({window:n=0,question:t="",answered:r=!1}={}){if(!b(n))return{history:"all",memories:"all",before:!1,why:""};const o=F(t);return{history:r?"none":"all",memories:o?"none":r?"pinned":"matched",before:!0,why:[r?"a small window a fetch answered: the evidence, the question and pinned memories":"",o?"a greeting: no memories":r?"":"a small window: only the memories that bear on it"].filter(Boolean).join("; ")}}const z="From the user's own history. It may have nothing to do with the question: use it only if it answers it, otherwise answer from your own knowledge.";function ne(n=[],t={}){const r=(Array.isArray(n)?n:[]).filter(o=>o&&typeof o=="object");return t?.before?r.map(o=>({...o,before:!0,text:`${z}
2
+ ${String(o.text||"")}`})):r}function oe(n=[],t=""){const r=String(t||"").trim();if(!r)return n;const o=/^(?:here|near me|nearby|my (?:location|area|city))$/i;return(Array.isArray(n)?n:[]).map(a=>{const s=a?.input?.args||a?.input;if(!s)return a;if(a.kind==="weather"&&o.test(String(s.location||"").trim())){const i={...s,location:r};return{...a,input:a.input.args?{...a.input,args:i}:i,label:`Weather — ${r}`}}if(typeof s.query=="string"&&/\bnear (?:me|here)\b|\bnearby\b|\baround here\b/i.test(s.query)){const i=s.query.replace(/\bnear (?:me|here)\b|\bnearby\b|\baround here\b/i,`near ${r}`);return{...a,input:a.input.args?{...a.input,args:{...s,query:i}}:{...s,query:i},subject:i,label:String(a.label||"").replace(/\bnear (?:me|here)\b|\bnearby\b|\baround here\b/i,`near ${r}`)}}return a})}function ae({question:n="",previousText:t="",previousAnswer:r="",previous:o=null,reach:a=new Set,window:s=0,personal:i=!1,lookup:d=null,now:k=Date.now()}={}){const x=b(s),h=C({text:n,previous:o,previousText:t,previousAnswer:r,reach:a,research:!0,page:!0,lookup:d??x,now:k}),m=h.some(u=>["weather","stock","news","page","web","research"].includes(u.kind)),y=!!i&&!m,f=[];h.length&&f.push(`fetch first: ${h.map(u=>u.label||u.kind).join(", ")}`),i&&m&&f.push("a world fact — the person's history is not searched for it");const c=Y({window:s,question:n,answered:h.length>0});return c.why&&f.push(c.why),{prefetch:h,world:m,research:y,tools:c,why:f}}export{z as HISTORY_NOTE,P as answeredByPrefetch,re as contextPlan,ne as historyContext,oe as placeItems,Z as planRetrieval,ae as planTurn,Y as toolPlan,K as toolsWanted,ee as worldAnswered,te as worldPlanned};
package/sandbox-grant.js CHANGED
@@ -1 +1 @@
1
- import{EventError as n}from"./event.js";const a=t=>!!t&&typeof t=="object"&&!Array.isArray(t),e=t=>[...new Set(t)],i=(t,r)=>{if(!t)throw new n("SHAPE",r)},f=/^(\*\.)?[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*(:\d{1,5})?$/i;function p(t){return e(String(t||"").split(/[\s,;]+/).map(r=>r.trim().toLowerCase()).filter(Boolean))}function h(t){if(t==null)return{hosts:[],write:[]};i(a(t),"grant: must be an object");const r=Array.isArray(t.hosts)?t.hosts:typeof t.hosts=="string"?p(t.hosts):[],s=Array.isArray(t.write)?t.write:typeof t.write=="string"?t.write.split(/[\n,]+/).map(o=>o.trim()).filter(Boolean):[];for(const o of r)i(typeof o=="string"&&o!=="*"&&f.test(o),`grant: not a host pattern: ${JSON.stringify(o)}`);for(const o of s)i(typeof o=="string"&&o.length>0&&o.length<1024&&!o.includes("\0"),`grant: not a path: ${JSON.stringify(o)}`);return{hosts:e(r.map(o=>o.toLowerCase())),write:e(s),...t.outside===!0?{outside:!0}:{}}}function c(...t){const r=t.map(h);return{hosts:e(r.flatMap(s=>s.hosts)),write:e(r.flatMap(s=>s.write))}}export{c as mergeGrants,h as normalizeGrant,p as parseHostList};
1
+ import{EventError as p}from"./event.js";const c=t=>!!t&&typeof t=="object"&&!Array.isArray(t),n=t=>[...new Set(t)],i=(t,s)=>{if(!t)throw new p("SHAPE",s)},l=/^(\*\.)?[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*(:\d{1,5})?$/i,u=Object.freeze({aws:"AWS",oci:"Oracle Cloud",gcloud:"Google Cloud",azure:"Azure"}),a=Object.freeze(Object.keys(u));function y(t){return n(String(t||"").split(/[\s,;]+/).map(s=>s.trim().toLowerCase()).filter(Boolean))}function f(t){if(t==null)return{hosts:[],write:[]};i(c(t),"grant: must be an object");const s=Array.isArray(t.hosts)?t.hosts:typeof t.hosts=="string"?y(t.hosts):[],o=Array.isArray(t.write)?t.write:typeof t.write=="string"?t.write.split(/[\n,]+/).map(e=>e.trim()).filter(Boolean):[];for(const e of s)i(typeof e=="string"&&e!=="*"&&l.test(e),`grant: not a host pattern: ${JSON.stringify(e)}`);for(const e of o)i(typeof e=="string"&&e.length>0&&e.length<1024&&!e.includes("\0"),`grant: not a path: ${JSON.stringify(e)}`);const r=(Array.isArray(t.signIn)?t.signIn:typeof t.signIn=="string"?t.signIn.split(/[\s,;]+/):[]).map(e=>typeof e=="string"?e.trim().toLowerCase():e).filter(e=>e!=="");for(const e of r)i(a.includes(e),`grant: not a sign-in (${a.join(", ")}): ${JSON.stringify(e)}`);return{hosts:n(s.map(e=>e.toLowerCase())),write:n(o),...t.outside===!0?{outside:!0}:{},...r.length?{signIn:n(r)}:{}}}function h(...t){const s=t.map(f);return{hosts:n(s.flatMap(o=>o.hosts)),write:n(s.flatMap(o=>o.write))}}function w(...t){const s=t.map(f),o=n(s.flatMap(r=>r.signIn||[]));return{...h(...s),...s.some(r=>r.outside)?{outside:!0}:{},...o.length?{signIn:o}:{}}}export{u as SIGN_IN_LABELS,a as SIGN_IN_NAMES,h as mergeGrants,w as mergePersonGrants,f as normalizeGrant,y as parseHostList};
package/sandbox-policy.js CHANGED
@@ -1 +1 @@
1
- import{EventError as L}from"./event.js";import{normalizeGrant as S}from"./sandbox-grant.js";import{SECRET_DIR_NAMES as P,SECRET_DIR_PAIRS as v}from"./secret-names.js";const R=Object.freeze(["none","process","container","kubernetes"]),$=Object.freeze(["open","allowlist","none","gateway"]),_=Object.freeze(["~/.chatpanel","~/.ssh","~/.gnupg","~/.aws","~/.azure","~/.config/gcloud","~/.kube","~/.netrc","~/.docker/config.json","~/.npmrc","~/.pypirc"]),g=e=>{let t=String(e||"").trim();for(;t.length>1&&(t.endsWith("/")||t.endsWith("\\"));)t=t.slice(0,-1);return t},x=(e,t)=>t&&(e==="~"||e.startsWith("~/")||e.startsWith("~\\"))?t+e.slice(1):e,m=e=>String(e||"").replace(/\\/g,"/"),b=(e,t)=>{const n=m(g(e)),r=m(g(t));return!!n&&!!r&&(n===r||n.startsWith(`${r}/`))},N=_.map(e=>m(g(e)).replace(/^~\//,"").split("/").filter(Boolean));function I(e,t=""){const n=m(g(x(g(e),t)));if(!n)return!1;for(const o of _)if(b(n,o)||t&&b(n,x(o,t)))return!0;const r=n.split("/").filter(Boolean).map(o=>o.toLowerCase());return N.some(o=>{for(let s=0;s+o.length<=r.length;s+=1)if(o.every((a,l)=>a.toLowerCase()===r[s+l]))return!0;return!1})}const W=Object.freeze([...[...P].map(e=>`~/**/${e}`),...v.map(([e,t])=>`~/**/${e}/${t}`),...[".env",".netrc","_netrc",".git-credentials",".pgpass",".my.cnf",".npmrc",".pypirc",".htpasswd",".terraformrc",".vault-token","credentials","credentials.toml","id_rsa","id_dsa","id_ecdsa","id_ed25519","*.pem","*.p12","*.pfx","*.jks","*.keystore","*.kdbx","*.ppk"].map(e=>`~/**/${e}`)]);function ee(e,{home:t="",globs:n=[..._,...W]}={}){const r=m(g(x(g(e),t)));if(!r)return null;const o=r.split("/").filter(Boolean),s=m(g(t));for(const a of n){const l=m(g(a));if(l){if(l.startsWith("~/**/")){if(s&&!b(r,s))continue;const c=l.slice(5).split("/").filter(Boolean).map(z);for(let i=0;i+c.length<=o.length;i+=1)if(c.every((d,u)=>d.test(o[i+u])))return a;continue}if(b(r,x(l,t)))return a}}return null}function z(e){return new RegExp(`^${e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,"[^/]*")}$`,"i")}const D=".cache/chatpanel/ca-bundle.crt",te=".cache/chatpanel/ca-bundle.pem";function ne(e=""){const t=m(g(e));return t?`${t}/${D}`:`~/${D}`}const H=Object.freeze(["~/.npm","~/.cache","~/.local","~/Library/Caches","~/.nvm","~/.volta","~/.asdf","~/.nodenv","~/.bun","~/.deno","~/.pyenv","~/.rye","~/.pdm","~/.cargo","~/.rustup","~/go","~/.goenv","~/.m2","~/.gradle","~/.sdkman","~/.jenv","~/.gem","~/.rbenv","~/.bundle","~/.composer","~/.nuget","~/.dotnet","~/.stack","~/.ghcup","~/.opam","~/.pub-cache","~/.gitconfig","~/.config/git"]),k=Object.freeze(["/tmp","/private/tmp","~/.cache","~/.npm","~/.local/share/uv","~/.local/state"]),C=Object.freeze({codex:Object.freeze({hosts:["api.openai.com","chatgpt.com","auth.openai.com","*.openai.com"],write:["~/.codex"]}),claude:Object.freeze({hosts:["api.anthropic.com","*.anthropic.com","claude.ai","statsig.anthropic.com"],write:["~/.claude","~/.claude.json"],keychain:!0,sockets:["/tmp/cc-socks","/private/tmp/cc-socks"]}),antigravity:Object.freeze({hosts:["*.googleapis.com","*.google.com","oauth2.googleapis.com"],write:["~/.gemini","~/.antigravity","~/.config/antigravity"]}),custom:Object.freeze({hosts:[],write:[]}),mcp:Object.freeze({hosts:[],write:[]}),extract:Object.freeze({hosts:[],write:[]}),"model-server":Object.freeze({hosts:["huggingface.co","*.huggingface.co","*.hf.co","cdn-lfs.huggingface.co","cas-bridge.xethub.hf.co","dl.chatpanel.net"],write:[]})}),T="~/Library/Keychains",K=/(^|\/)Keychains\/?$/,Y=Object.freeze(["github.com","*.github.com","*.githubusercontent.com","gitlab.com","bitbucket.org","registry.npmjs.org","pypi.org","files.pythonhosted.org","crates.io","static.crates.io","proxy.golang.org","sum.golang.org","huggingface.co","*.huggingface.co"]),h=e=>!!e&&typeof e=="object"&&!Array.isArray(e),y=e=>Array.isArray(e)&&e.every(t=>typeof t=="string"&&t.length>0),f=(e,t)=>{if(!e)throw new L("SHAPE",t)},p=e=>[...new Set(e)];function j(e){f(h(e),"kit: must be an object"),f(typeof e.id=="string"&&e.id.length>0,"kit: id required"),f(h(e.network)&&$.includes(e.network.mode),`kit ${e.id}: network.mode must be one of ${$.join(", ")}`),f(y(e.network.allowedDomains||[]),`kit ${e.id}: network.allowedDomains must be string[]`),f(y(e.network.deniedDomains||[]),`kit ${e.id}: network.deniedDomains must be string[]`),f(h(e.filesystem),`kit ${e.id}: filesystem required`);for(const t of["allowWrite","denyWrite","allowRead","denyRead"])f(y(e.filesystem[t]||[]),`kit ${e.id}: filesystem.${t} must be string[]`);return f(y(e.filesystem.allowWrite)&&e.filesystem.allowWrite.length>0,`kit ${e.id}: filesystem.allowWrite must name at least the working directory`),f(y(e.network.unixSockets||[])&&(e.network.unixSockets||[]).every(t=>t.startsWith("/")&&t.replace(/\/+$/,"")!==""),`kit ${e.id}: network.unixSockets must be absolute folders, never /`),e.image!=null&&f(typeof e.image=="string",`kit ${e.id}: image must be a string`),e.credentials!=null&&f(Array.isArray(e.credentials)&&e.credentials.every(t=>h(t)&&typeof t.name=="string"&&typeof t.forHost=="string"),`kit ${e.id}: credentials must be [{ name, forHost }]`),{id:e.id,kind:e.kind||"process",image:e.image||null,network:{mode:e.network.mode,allowedDomains:p(e.network.allowedDomains||[]),deniedDomains:p(e.network.deniedDomains||[]),...(e.network.unixSockets||[]).length?{unixSockets:p(e.network.unixSockets)}:{}},filesystem:{allowWrite:p(e.filesystem.allowWrite),denyWrite:p(e.filesystem.denyWrite||[]),allowRead:p(e.filesystem.allowRead||[]),denyRead:p(e.filesystem.denyRead||[])},credentials:e.credentials||[],limits:h(e.limits)?{...e.limits}:{}}}import{normalizeGrant as ge,mergeGrants as me,parseHostList as we}from"./sandbox-grant.js";const U=e=>String(e).replace(/([\\/])\*$/,"$1**");function oe({engine:e="custom",cwd:t,mode:n="open",extraHosts:r=[],extraWrite:o=[],extraDenyRead:s=[],grant:a=null,home:l="",reads:c="enumerated",readOnly:i=!1,peers:d=!0}={}){const u=C[e]||C.custom;f(typeof t=="string"&&t.length>0,"kit: cwd required");const O=S(a);return j({id:`${e}:${n}`,kind:"process",network:{mode:n,allowedDomains:n==="open"?["*"]:n==="none"?[]:p([...u.hosts,...Y,...r,...O.hosts]),deniedDomains:[],unixSockets:d?[...u.sockets||[]]:[]},filesystem:{allowWrite:p(i?[...k,...u.write]:[t,...k,...u.write,...[...o,...O.write].filter(A=>!I(A,l)).map(U)]),denyWrite:[],allowRead:c==="inverted"?p([t,...H,...u.write,...u.keychain?[T]:[],...G({grant:O,extraWrite:o,cwd:t,home:l})]):[t],denyRead:p([...c==="inverted"?["~",...l?[l]:[]]:[],...[..._,...W].filter(A=>!(u.keychain&&K.test(A))),...s])}})}function B(e){if(!/[*?[{]/.test(e))return e;const t=e.split(/[\\/]/),n=t.findIndex(s=>/[*?[{]/.test(s)),r=e.includes("\\")&&!e.includes("/")?"\\":"/",o=t.slice(0,n).join(r);return o&&o!=="~"?o:""}function G({grant:e=null,extraWrite:t=[],cwd:n="",home:r=""}={}){const o=i=>r&&(i==="~"||i.startsWith("~/")||i.startsWith("~\\"))?r+i.slice(1):i,s=i=>{let d=String(i||"").trim();for(;d.length>1&&(d.endsWith("/")||d.endsWith("\\"));)d=d.slice(0,-1);return d},a=(i,d)=>i===d||i.startsWith(`${d}/`)||i.startsWith(`${d}\\`),l=s(o(n)),c=[];for(const i of[...S(e).write,...Array.isArray(t)?t:[]]){const d=B(s(o(s(i))));if(d&&!I(d,r)&&!(l&&a(d,l))&&!c.some(u=>a(d,u))){for(let u=c.length-1;u>=0;u--)a(c[u],d)&&c.splice(u,1);c.push(d)}}return c}function re(e,{loopback:t=[],home:n="",platform:r="darwin"}={}){const o=j(e),s=l=>n&&l.startsWith("~")?n+l.slice(1):l,a=o.network.mode==="none"?[]:t.map(l=>`127.0.0.1:${l}`);return{network:{allowedDomains:p([...o.network.allowedDomains,...a]),deniedDomains:o.network.deniedDomains,allowLocalBinding:r==="darwin"&&a.length>0,...r==="darwin"&&o.network.unixSockets?.length?{allowUnixSockets:o.network.unixSockets}:{}},filesystem:{denyRead:o.filesystem.denyRead.map(s),allowRead:o.filesystem.allowRead.map(s),allowWrite:o.filesystem.allowWrite.map(s),denyWrite:o.filesystem.denyWrite.map(s)}}}function se({layer:e="none",runtime:t=null,kitId:n=null,mode:r=null,reason:o=null,hosts:s=null}={}){return f(R.includes(e),`sandbox record: layer must be one of ${R.join(", ")}`),{layer:e,runtime:t,kit:n,mode:r,...e==="none"&&o?{reason:o}:{},...Array.isArray(s)&&s.length?{hosts:p(s)}:{}}}function M(e,{platform:t="darwin"}={}){const n=String(e);if(t==="win32"){f(!/[\r\n]/.test(n),"win32 command line: an argument holds a newline, which cmd.exe cannot carry");let r=n;if(n===""||/[ \t\v"]/.test(n)){r='"';for(let o=0;o<n.length;o++){let s=0;for(;o<n.length&&n[o]==="\\";)s++,o++;if(o===n.length){r+="\\".repeat(s*2);break}n[o]==='"'?r+="\\".repeat(s*2+1)+'"':r+="\\".repeat(s)+n[o]}r+='"'}return r.replace(/[()%!^"<>&|]/g,"^$&")}return n===""?"''":/^[A-Za-z0-9_\-./=:@%+,]+$/.test(n)?n:`'${n.replace(/'/g,"'\\''")}'`}const q=Object.freeze(["SSL_CERT_FILE","REQUESTS_CA_BUNDLE","CURL_CA_BUNDLE","GIT_SSL_CAINFO"]);function ie(e={},{platform:t="darwin",caBundle:n=""}={}){const r={NODE_USE_ENV_PROXY:"1"};if(n)for(const o of q)e[o]||(r[o]=n);if(t==="linux")for(const o of["no_proxy","NO_PROXY"])typeof e[o]=="string"&&(r[o]=e[o].split(",").map(s=>s.trim()).filter(s=>s&&!/^(localhost|127\.0\.0\.1|::1|\[::1\])$/i.test(s)).join(","));return r}function ce(e,t=[],{platform:n="darwin"}={}){return[e,...t].map(r=>M(r,{platform:n})).join(" ")}const ae=/[\\/]+/,w=e=>String(e||"").replace(/\//g,"\\").replace(/\\+$/,"").toLowerCase(),F=e=>/^[a-z]:$/i.test(w(e))||w(e)==="";function E(e,t){const n=w(e),r=w(t);return!!r&&n!==r&&n.startsWith(r+"\\")}function X(e){const t=String(e||"").replace(/\//g,"\\").split("\\");if(t.length<2)return"";const n=t.findIndex(r=>r.toLowerCase()==="node_modules");return(n>0?t.slice(0,n):t.slice(0,-1)).join("\\")}function le({kit:e,files:t=[],home:n}){f(typeof n=="string"&&n.length>0,"windows grants: home required");const r=c=>(c.startsWith("~")?n+c.slice(1):c).replace(/\//g,"\\"),o=[];for(const c of e?.filesystem?.allowWrite||[]){const i=r(c);!/^[a-z]:\\/i.test(i)&&!i.startsWith("\\\\")||(f(!F(i)&&w(i)!==w(n),`windows grants: a write on ${i} would hand the sandbox account the whole profile`),E(i,n)&&o.push(i))}const s=(c,i)=>i.some(d=>w(c)===w(d)||E(c,d)),a=[];for(const c of t){const i=X(c);i&&E(i,n)&&a.push(i)}for(const c of e?.filesystem?.allowRead||[]){const i=r(c);E(i,n)&&a.push(i)}const l=p(a).filter(c=>!s(c,o));return{read:l.filter(c=>!l.some(i=>i!==c&&E(c,i))),write:p(o)}}const V=Object.freeze(["ANTHROPIC_API_KEY","ANTHROPIC_AUTH_TOKEN","ANTHROPIC_BASE_URL","CLAUDE_CONFIG_DIR","OPENAI_API_KEY","OPENAI_BASE_URL","OPENAI_API_BASE","CODEX_HOME","GEMINI_API_KEY","GOOGLE_API_KEY","DEEPSEEK_API_KEY","DSH_HOME","OPENROUTER_API_KEY","GROQ_API_KEY","XAI_API_KEY","MISTRAL_API_KEY"]);function de({engine:e="custom",home:t,env:n={},base:r={},carry:o=V}={}){f(typeof t=="string"&&t.length>0,"windows env: home required");const s=t.replace(/\//g,"\\"),a=/^[a-z]:/i.test(s)?s.slice(0,2):"",l={USERPROFILE:s,...a?{HOMEDRIVE:a,HOMEPATH:s.slice(2)}:{}};for(const[c,i]of Object.entries(n))typeof i=="string"&&(r[c]!==i||o.includes(c))&&(l[c]=i);return e==="codex"&&!l.CODEX_HOME&&(l.CODEX_HOME=s+"\\.codex"),l}function fe(e,t){f(Array.isArray(e),"srt-win argv: must be an array");const n=e.indexOf("exec"),r=n>=0?e.indexOf("--",n+1):-1;f(n>=0&&r>n,"srt-win argv: expected `exec … -- <shell> <command>`");const o=new Set;for(let a=n+1;a<r;a++)e[a]==="--env"&&typeof e[a+1]=="string"&&o.add(e[a+1].split("=")[0].toUpperCase());const s=[];for(const[a,l]of Object.entries(t||{}))f(/^[A-Za-z_][A-Za-z0-9_]*$/.test(a),`srt-win env: bad key ${a}`),f(!/[\r\n]/.test(l),`srt-win env: ${a} holds a newline`),o.has(a.toUpperCase())||s.push("--env",`${a}=${l}`);return[...e.slice(0,r),...s,...e.slice(r)]}export{D as CA_BUNDLE_RELPATH,te as CA_BUNDLE_RELPATH_LEGACY,k as COMMON_WRITE,Y as DEVELOPER_HOSTS,C as ENGINE_KITS,$ as NETWORK_MODES,R as SANDBOX_LAYERS,_ as SECRET_PATHS,W as SECRET_READ_GLOBS,H as TOOLCHAIN_READ,V as WINDOWS_CARRY_KEYS,ne as caBundlePath,I as isSecretWritePath,oe as kitFor,me as mergeGrants,ge as normalizeGrant,we as parseHostList,ee as readDenialFor,ie as sandboxEnvOverlay,se as sandboxRecord,ce as shellJoin,M as shellQuote,re as toSrtSettings,E as underWindowsHome,j as validateKit,le as windowsGrantsFor,X as windowsInstallRoot,de as windowsSandboxEnv,fe as withSrtWinEnv,G as writableRoots};
1
+ import{EventError as L}from"./event.js";import{normalizeGrant as y,SIGN_IN_NAMES as P,SIGN_IN_LABELS as x}from"./sandbox-grant.js";import{SECRET_DIR_NAMES as T,SECRET_DIR_PAIRS as H}from"./secret-names.js";const $=Object.freeze(["none","process","container","kubernetes"]),N=Object.freeze(["open","allowlist","none","gateway"]),S=Object.freeze(["~/.chatpanel","~/.ssh","~/.gnupg","~/.aws","~/.azure","~/.config/gcloud","~/.kube","~/.netrc","~/.docker/config.json","~/.npmrc","~/.pypirc"]),p=e=>{let t=String(e||"").trim();for(;t.length>1&&(t.endsWith("/")||t.endsWith("\\"));)t=t.slice(0,-1);return t},O=(e,t)=>t&&(e==="~"||e.startsWith("~/")||e.startsWith("~\\"))?t+e.slice(1):e,m=e=>String(e||"").replace(/\\/g,"/"),A=(e,t)=>{const n=m(p(e)),r=m(p(t));return!!n&&!!r&&(n===r||n.startsWith(`${r}/`))},G=S.map(e=>m(p(e)).replace(/^~\//,"").split("/").filter(Boolean));function C(e,t=""){const n=m(p(O(p(e),t)));if(!n)return!1;for(const o of S)if(A(n,o)||t&&A(n,O(o,t)))return!0;const r=n.split("/").filter(Boolean).map(o=>o.toLowerCase());return G.some(o=>{for(let s=0;s+o.length<=r.length;s+=1)if(o.every((l,c)=>l.toLowerCase()===r[s+c]))return!0;return!1})}const z=Object.freeze([...[...T].map(e=>`~/**/${e}`),...H.map(([e,t])=>`~/**/${e}/${t}`),...[".env",".netrc","_netrc",".git-credentials",".pgpass",".my.cnf",".npmrc",".pypirc",".htpasswd",".terraformrc",".vault-token","credentials","credentials.toml","id_rsa","id_dsa","id_ecdsa","id_ed25519","*.pem","*.p12","*.pfx","*.jks","*.keystore","*.kdbx","*.ppk"].map(e=>`~/**/${e}`)]);function se(e,{home:t="",globs:n=[...S,...z]}={}){const r=m(p(O(p(e),t)));if(!r)return null;const o=r.split("/").filter(Boolean),s=m(p(t));for(const l of n){const c=m(p(l));if(c){if(c.startsWith("~/**/")){if(s&&!A(r,s))continue;const a=c.slice(5).split("/").filter(Boolean).map(K);for(let i=0;i+a.length<=o.length;i+=1)if(a.every((d,g)=>d.test(o[i+g])))return l;continue}if(A(r,O(c,t)))return l}}return null}function K(e){return new RegExp(`^${e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,"[^/]*")}$`,"i")}const D=".cache/chatpanel/ca-bundle.crt",ie=".cache/chatpanel/ca-bundle.pem";function ae(e=""){const t=m(p(e));return t?`${t}/${D}`:`~/${D}`}const U=Object.freeze(["~/.npm","~/.cache","~/.local","~/Library/Caches","~/.nvm","~/.volta","~/.asdf","~/.nodenv","~/.bun","~/.deno","~/.pyenv","~/.rye","~/.pdm","~/.cargo","~/.rustup","~/go","~/.goenv","~/.m2","~/.gradle","~/.sdkman","~/.jenv","~/.gem","~/.rbenv","~/.bundle","~/.composer","~/.nuget","~/.dotnet","~/.stack","~/.ghcup","~/.opam","~/.pub-cache","~/.gitconfig","~/.config/git"]),W=Object.freeze(["/tmp","/private/tmp","~/.cache","~/.npm","~/.local/share/uv","~/.local/state"]),j=Object.freeze({codex:Object.freeze({hosts:["api.openai.com","chatgpt.com","auth.openai.com","*.openai.com"],write:["~/.codex"]}),claude:Object.freeze({hosts:["api.anthropic.com","*.anthropic.com","claude.ai","statsig.anthropic.com"],write:["~/.claude","~/.claude.json"],keychain:!0,sockets:["/tmp/cc-socks","/private/tmp/cc-socks"]}),antigravity:Object.freeze({hosts:["*.googleapis.com","*.google.com","oauth2.googleapis.com"],write:["~/.gemini","~/.antigravity","~/.config/antigravity"]}),custom:Object.freeze({hosts:[],write:[]}),mcp:Object.freeze({hosts:[],write:[]}),extract:Object.freeze({hosts:[],write:[]}),"model-server":Object.freeze({hosts:["huggingface.co","*.huggingface.co","*.hf.co","cdn-lfs.huggingface.co","cas-bridge.xethub.hf.co","dl.chatpanel.net"],write:[]})}),Y="~/Library/Keychains",B=/(^|\/)Keychains\/?$/,R=Object.freeze({aws:Object.freeze({label:x.aws,where:"~/.aws",read:["~/.aws","~/.aws/credentials","~/.aws/sso"],hosts:["*.amazonaws.com","*.api.aws"],failure:/could not load (aws )?credentials|unable to locate credentials|CredentialsProviderError|NoCredentialProviders|failed to refresh cached credentials|aws credentials? (not found|could not be)/i}),oci:Object.freeze({label:x.oci,where:"~/.oci",read:["~/.oci","~/.oci/**/*.pem"],hosts:["*.oraclecloud.com"],failure:/could not find config file at .*\.oci|ConfigFileNotFound|oci config(uration)? (file )?(was )?not found|\.oci[\\/]config.*(not found|no such file|not permitted|permission denied)/i}),gcloud:Object.freeze({label:x.gcloud,where:"~/.config/gcloud",read:["~/.config/gcloud"],hosts:["*.googleapis.com","accounts.google.com"],failure:/could not load the default credentials|DefaultCredentialsError|could not (automatically )?(find|determine) (default )?credentials|application default credentials (were|are) not (found|available)/i}),azure:Object.freeze({label:x.azure,where:"~/.azure",read:["~/.azure"],hosts:["*.azure.com","login.microsoftonline.com"],failure:/DefaultAzureCredential failed|CredentialUnavailableError|please run 'az login'|AzureCliCredential authentication (unavailable|failed)/i})});function k(e){return f((y(e).signIn||[]).flatMap(t=>R[t].read))}function M(e){return f((y(e).signIn||[]).flatMap(t=>R[t].hosts))}function ce(e,{grant:t=null,sandboxed:n=!0,agentLabel:r="This agent",agent:o=""}={}){if(!n)return null;let s=[];try{s=y(t).signIn||[]}catch{}const l=String(e||"");for(const c of P){const a=R[c];if(!(s.includes(c)||!a.failure.test(l)))return{store:c,line:`${r} could not sign in to ${a.label}: the ChatPanel sandbox keeps your ${a.label} sign-in (${a.where}) from every agent until you allow it. To allow it for this agent only, turn on ${a.label} under "May sign in with" in its Coding Agents settings${o?`, or run: chatpanel-gateway sandbox allow ${o} ${c}`:""}. Nothing else it is denied changes.`}}return null}const F=Object.freeze(["github.com","*.github.com","*.githubusercontent.com","gitlab.com","bitbucket.org","registry.npmjs.org","pypi.org","files.pythonhosted.org","crates.io","static.crates.io","proxy.golang.org","sum.golang.org","huggingface.co","*.huggingface.co"]),E=e=>!!e&&typeof e=="object"&&!Array.isArray(e),_=e=>Array.isArray(e)&&e.every(t=>typeof t=="string"&&t.length>0),u=(e,t)=>{if(!e)throw new L("SHAPE",t)},f=e=>[...new Set(e)];function v(e){u(E(e),"kit: must be an object"),u(typeof e.id=="string"&&e.id.length>0,"kit: id required"),u(E(e.network)&&N.includes(e.network.mode),`kit ${e.id}: network.mode must be one of ${N.join(", ")}`),u(_(e.network.allowedDomains||[]),`kit ${e.id}: network.allowedDomains must be string[]`),u(_(e.network.deniedDomains||[]),`kit ${e.id}: network.deniedDomains must be string[]`),u(E(e.filesystem),`kit ${e.id}: filesystem required`);for(const t of["allowWrite","denyWrite","allowRead","denyRead"])u(_(e.filesystem[t]||[]),`kit ${e.id}: filesystem.${t} must be string[]`);return u(_(e.filesystem.allowWrite)&&e.filesystem.allowWrite.length>0,`kit ${e.id}: filesystem.allowWrite must name at least the working directory`),u(_(e.network.unixSockets||[])&&(e.network.unixSockets||[]).every(t=>t.startsWith("/")&&t.replace(/\/+$/,"")!==""),`kit ${e.id}: network.unixSockets must be absolute folders, never /`),e.image!=null&&u(typeof e.image=="string",`kit ${e.id}: image must be a string`),e.credentials!=null&&u(Array.isArray(e.credentials)&&e.credentials.every(t=>E(t)&&typeof t.name=="string"&&typeof t.forHost=="string"),`kit ${e.id}: credentials must be [{ name, forHost }]`),{id:e.id,kind:e.kind||"process",image:e.image||null,network:{mode:e.network.mode,allowedDomains:f(e.network.allowedDomains||[]),deniedDomains:f(e.network.deniedDomains||[]),...(e.network.unixSockets||[]).length?{unixSockets:f(e.network.unixSockets)}:{}},filesystem:{allowWrite:f(e.filesystem.allowWrite),denyWrite:f(e.filesystem.denyWrite||[]),allowRead:f(e.filesystem.allowRead||[]),denyRead:f(e.filesystem.denyRead||[])},credentials:e.credentials||[],limits:E(e.limits)?{...e.limits}:{}}}import{normalizeGrant as _e,mergeGrants as be,mergePersonGrants as xe,parseHostList as Se,SIGN_IN_NAMES as Oe,SIGN_IN_LABELS as Ae}from"./sandbox-grant.js";const q=e=>String(e).replace(/([\\/])\*$/,"$1**");function le({engine:e="custom",cwd:t,mode:n="open",extraHosts:r=[],extraWrite:o=[],extraDenyRead:s=[],grant:l=null,home:c="",reads:a="enumerated",readOnly:i=!1,peers:d=!0}={}){const g=j[e]||j.custom;u(typeof t=="string"&&t.length>0,"kit: cwd required");const h=y(l);return v({id:`${e}:${n}`,kind:"process",network:{mode:n,allowedDomains:n==="open"?["*"]:n==="none"?[]:f([...g.hosts,...F,...r,...h.hosts,...M(h)]),deniedDomains:[],unixSockets:d?[...g.sockets||[]]:[]},filesystem:{allowWrite:f(i?[...W,...g.write]:[t,...W,...g.write,...[...o,...h.write].filter(I=>!C(I,c)).map(q)]),denyWrite:[],allowRead:f(a==="inverted"?[t,...U,...g.write,...g.keychain?[Y]:[],...V({grant:h,extraWrite:o,cwd:t,home:c}),...k(h)]:[t,...k(h)]),denyRead:f([...a==="inverted"?["~",...c?[c]:[]]:[],...[...S,...z].filter(I=>!(g.keychain&&B.test(I))),...s])}})}function X(e){if(!/[*?[{]/.test(e))return e;const t=e.split(/[\\/]/),n=t.findIndex(s=>/[*?[{]/.test(s)),r=e.includes("\\")&&!e.includes("/")?"\\":"/",o=t.slice(0,n).join(r);return o&&o!=="~"?o:""}function V({grant:e=null,extraWrite:t=[],cwd:n="",home:r=""}={}){const o=i=>r&&(i==="~"||i.startsWith("~/")||i.startsWith("~\\"))?r+i.slice(1):i,s=i=>{let d=String(i||"").trim();for(;d.length>1&&(d.endsWith("/")||d.endsWith("\\"));)d=d.slice(0,-1);return d},l=(i,d)=>i===d||i.startsWith(`${d}/`)||i.startsWith(`${d}\\`),c=s(o(n)),a=[];for(const i of[...y(e).write,...Array.isArray(t)?t:[]]){const d=X(s(o(s(i))));if(d&&!C(d,r)&&!(c&&l(d,c))&&!a.some(g=>l(d,g))){for(let g=a.length-1;g>=0;g--)l(a[g],d)&&a.splice(g,1);a.push(d)}}return a}function de(e,{loopback:t=[],home:n="",platform:r="darwin"}={}){const o=v(e),s=c=>n&&c.startsWith("~")?n+c.slice(1):c,l=o.network.mode==="none"?[]:t.map(c=>`127.0.0.1:${c}`);return{network:{allowedDomains:f([...o.network.allowedDomains,...l]),deniedDomains:o.network.deniedDomains,allowLocalBinding:r==="darwin"&&l.length>0,...r==="darwin"&&o.network.unixSockets?.length?{allowUnixSockets:o.network.unixSockets}:{}},filesystem:{denyRead:o.filesystem.denyRead.map(s),allowRead:o.filesystem.allowRead.map(s),allowWrite:o.filesystem.allowWrite.map(s),denyWrite:o.filesystem.denyWrite.map(s)}}}function ue({layer:e="none",runtime:t=null,kitId:n=null,mode:r=null,reason:o=null,hosts:s=null}={}){return u($.includes(e),`sandbox record: layer must be one of ${$.join(", ")}`),{layer:e,runtime:t,kit:n,mode:r,...e==="none"&&o?{reason:o}:{},...Array.isArray(s)&&s.length?{hosts:f(s)}:{}}}function Q(e,{platform:t="darwin"}={}){const n=String(e);if(t==="win32"){u(!/[\r\n]/.test(n),"win32 command line: an argument holds a newline, which cmd.exe cannot carry");let r=n;if(n===""||/[ \t\v"]/.test(n)){r='"';for(let o=0;o<n.length;o++){let s=0;for(;o<n.length&&n[o]==="\\";)s++,o++;if(o===n.length){r+="\\".repeat(s*2);break}n[o]==='"'?r+="\\".repeat(s*2+1)+'"':r+="\\".repeat(s)+n[o]}r+='"'}return r.replace(/[()%!^"<>&|]/g,"^$&")}return n===""?"''":/^[A-Za-z0-9_\-./=:@%+,]+$/.test(n)?n:`'${n.replace(/'/g,"'\\''")}'`}const Z=Object.freeze(["SSL_CERT_FILE","REQUESTS_CA_BUNDLE","CURL_CA_BUNDLE","GIT_SSL_CAINFO"]);function fe(e={},{platform:t="darwin",caBundle:n=""}={}){const r={NODE_USE_ENV_PROXY:"1"};if(n)for(const o of Z)e[o]||(r[o]=n);if(t==="linux")for(const o of["no_proxy","NO_PROXY"])typeof e[o]=="string"&&(r[o]=e[o].split(",").map(s=>s.trim()).filter(s=>s&&!/^(localhost|127\.0\.0\.1|::1|\[::1\])$/i.test(s)).join(","));return r}function ge(e,t=[],{platform:n="darwin"}={}){return[e,...t].map(r=>Q(r,{platform:n})).join(" ")}const pe=/[\\/]+/,w=e=>String(e||"").replace(/\//g,"\\").replace(/\\+$/,"").toLowerCase(),J=e=>/^[a-z]:$/i.test(w(e))||w(e)==="";function b(e,t){const n=w(e),r=w(t);return!!r&&n!==r&&n.startsWith(r+"\\")}function ee(e){const t=String(e||"").replace(/\//g,"\\").split("\\");if(t.length<2)return"";const n=t.findIndex(r=>r.toLowerCase()==="node_modules");return(n>0?t.slice(0,n):t.slice(0,-1)).join("\\")}function me({kit:e,files:t=[],home:n}){u(typeof n=="string"&&n.length>0,"windows grants: home required");const r=a=>(a.startsWith("~")?n+a.slice(1):a).replace(/\//g,"\\"),o=[];for(const a of e?.filesystem?.allowWrite||[]){const i=r(a);!/^[a-z]:\\/i.test(i)&&!i.startsWith("\\\\")||(u(!J(i)&&w(i)!==w(n),`windows grants: a write on ${i} would hand the sandbox account the whole profile`),b(i,n)&&o.push(i))}const s=(a,i)=>i.some(d=>w(a)===w(d)||b(a,d)),l=[];for(const a of t){const i=ee(a);i&&b(i,n)&&l.push(i)}for(const a of e?.filesystem?.allowRead||[]){if(/[*?[]/.test(a))continue;const i=r(a);b(i,n)&&l.push(i)}const c=f(l).filter(a=>!s(a,o));return{read:c.filter(a=>!c.some(i=>i!==a&&b(a,i))),write:f(o)}}const te=Object.freeze(["ANTHROPIC_API_KEY","ANTHROPIC_AUTH_TOKEN","ANTHROPIC_BASE_URL","CLAUDE_CONFIG_DIR","OPENAI_API_KEY","OPENAI_BASE_URL","OPENAI_API_BASE","CODEX_HOME","GEMINI_API_KEY","GOOGLE_API_KEY","DEEPSEEK_API_KEY","DSH_HOME","OPENROUTER_API_KEY","GROQ_API_KEY","XAI_API_KEY","MISTRAL_API_KEY"]);function we({engine:e="custom",home:t,env:n={},base:r={},carry:o=te}={}){u(typeof t=="string"&&t.length>0,"windows env: home required");const s=t.replace(/\//g,"\\"),l=/^[a-z]:/i.test(s)?s.slice(0,2):"",c={USERPROFILE:s,...l?{HOMEDRIVE:l,HOMEPATH:s.slice(2)}:{}};for(const[a,i]of Object.entries(n))typeof i=="string"&&(r[a]!==i||o.includes(a))&&(c[a]=i);return e==="codex"&&!c.CODEX_HOME&&(c.CODEX_HOME=s+"\\.codex"),c}function he(e,t){u(Array.isArray(e),"srt-win argv: must be an array");const n=e.indexOf("exec"),r=n>=0?e.indexOf("--",n+1):-1;u(n>=0&&r>n,"srt-win argv: expected `exec … -- <shell> <command>`");const o=new Set;for(let l=n+1;l<r;l++)e[l]==="--env"&&typeof e[l+1]=="string"&&o.add(e[l+1].split("=")[0].toUpperCase());const s=[];for(const[l,c]of Object.entries(t||{}))u(/^[A-Za-z_][A-Za-z0-9_]*$/.test(l),`srt-win env: bad key ${l}`),u(!/[\r\n]/.test(c),`srt-win env: ${l} holds a newline`),o.has(l.toUpperCase())||s.push("--env",`${l}=${c}`);return[...e.slice(0,r),...s,...e.slice(r)]}export{D as CA_BUNDLE_RELPATH,ie as CA_BUNDLE_RELPATH_LEGACY,W as COMMON_WRITE,F as DEVELOPER_HOSTS,j as ENGINE_KITS,N as NETWORK_MODES,$ as SANDBOX_LAYERS,S as SECRET_PATHS,z as SECRET_READ_GLOBS,Ae as SIGN_IN_LABELS,Oe as SIGN_IN_NAMES,R as SIGN_IN_STORES,U as TOOLCHAIN_READ,te as WINDOWS_CARRY_KEYS,ae as caBundlePath,C as isSecretWritePath,le as kitFor,be as mergeGrants,xe as mergePersonGrants,_e as normalizeGrant,Se as parseHostList,se as readDenialFor,fe as sandboxEnvOverlay,ue as sandboxRecord,ge as shellJoin,Q as shellQuote,ce as signInDenial,M as signInHosts,k as signInRead,de as toSrtSettings,b as underWindowsHome,v as validateKit,me as windowsGrantsFor,ee as windowsInstallRoot,we as windowsSandboxEnv,he as withSrtWinEnv,V as writableRoots};