@chatpanel/events 0.213.0 → 0.221.0

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.
@@ -1 +1 @@
1
- import{CAPABILITIES as r}from"./capability-endpoints.js";const i=Object.freeze({chat:[{id:"chat",label:"Chat",what:"answers and drafts in the thread"},{id:"notes",label:"Notes",what:"the co-writer and the note actions"},{id:"meetings",label:"Meetings",what:"the running summary, insights and monitors"},{id:"jobs",label:"Jobs & teams",what:"scheduled and triggered work, team runs"}],stt:[{id:"dictation",label:"Dictation",what:"speaking into a composer"},{id:"voice",label:"Voice conversation",what:"talking with the assistant"},{id:"meetings",label:"Meetings",what:"the audio scribe — what is playing and the room"}],tts:[{id:"read-aloud",label:"Read aloud",what:"a reply spoken on request"},{id:"voice",label:"Voice conversation",what:"the assistant’s replies spoken"}],detect:[{id:"redaction",label:"Redaction",what:"names, places and secrets replaced before a model sees them"},{id:"fast-path",label:"Fast path",what:"an extraction asked in chat answered without a language model"}],decide:[{id:"routing",label:"Model routing",what:"which model a message goes to, when the decision model is set to route Auto (Routing › Decision model routes Auto)"},{id:"fast-path",label:"Fast path",what:"a classification asked in chat answered without a language model"},{id:"tools",label:"Tools for the model",what:"a turn’s decide tool, when the model asks for a typed judgement"},{id:"mcp",label:"MCP tool choice",what:"which server’s tools a message needs"},{id:"speaker-names",label:"Speaker naming",what:"“speaker 2 must be Priya” read from a chat message"},{id:"teams",label:"Teams",what:"the assignments a team run makes"}],rerank:[{id:"search",label:"Search",what:"history and web results ordered by relevance"},{id:"tools",label:"Tools for the model",what:"a turn’s rerank tool"},{id:"notes",label:"Notes research",what:"sources ordered for a plan note"}],embed:[{id:"search",label:"Semantic search",what:"meaning-based retrieval over notes, chats and meetings"}],search:[{id:"chat",label:"Chat",what:"web search in a turn"},{id:"notes",label:"Notes research",what:"sources for a plan note"}],read:[{id:"chat",label:"Chat",what:"a page read for a turn"},{id:"notes",label:"Notes research",what:"sources read for a note"}],extract:[{id:"attachments",label:"Attachments",what:"documents attached by reference, read by page"}],s2s:[{id:"voice",label:"Voice conversation",what:"speech in, speech out, no text in between"}]});for(const e of r)if(!i[e])throw new Error(`capability-uses: ${e} has no uses listed`);function l(e,a,t){return e?.ui?.capabilityUses?.[a]?.[t]!==!1}function h(e,a){return(i[a]||[]).map(t=>({...t,on:l(e,a,t.id)}))}function c(e,a,t,n){const s={...e?.ui?.capabilityUses||{}},o={...s[a]||{}};return n?delete o[t]:o[t]=!1,Object.keys(o).length?s[a]=o:delete s[a],{ui:{capabilityUses:s}}}export{i as CAPABILITY_USES,c as setUse,l as useAllowed,h as usesOf};
1
+ import{CAPABILITIES as r}from"./capability-endpoints.js";const i=Object.freeze({chat:[{id:"chat",label:"Chat",what:"answers and drafts in the thread"},{id:"notes",label:"Notes",what:"the co-writer and the note actions"},{id:"meetings",label:"Meetings",what:"the running summary, insights and monitors"},{id:"jobs",label:"Jobs & teams",what:"scheduled and triggered work, team runs"}],stt:[{id:"dictation",label:"Dictation",what:"speaking into a composer"},{id:"voice",label:"Voice conversation",what:"talking with the assistant"},{id:"meetings",label:"Meetings",what:"the audio scribe — what is playing and the room"}],tts:[{id:"read-aloud",label:"Read aloud",what:"a reply spoken on request"},{id:"voice",label:"Voice conversation",what:"the assistant’s replies spoken"}],detect:[{id:"redaction",label:"Redaction",what:"names, places and secrets replaced before a model sees them"},{id:"fast-path",label:"Fast path",what:"an extraction asked in chat answered without a language model"}],decide:[{id:"routing",label:"Model routing",what:"which model a message goes to, when the decision model is set to route Auto (Routing › Decision model routes Auto)"},{id:"fast-path",label:"Fast path",what:"a classification asked in chat answered without a language model"},{id:"tools",label:"Tools for the model",what:"a turn’s decide tool, when the model asks for a typed judgement"},{id:"mcp",label:"MCP tool choice",what:"which server’s tools a message needs"},{id:"speaker-names",label:"Speaker naming",what:"“speaker 2 must be Priya” read from a chat message"},{id:"teams",label:"Teams",what:"the assignments a team run makes"}],rerank:[{id:"search",label:"Search",what:"history and web results ordered by relevance"},{id:"tools",label:"Tools for the model",what:"a turn’s rerank tool"},{id:"mcp",label:"MCP tool choice",what:"the tools a lookup (find) returns from your MCP servers, ordered by meaning as well as words"},{id:"notes",label:"Notes research",what:"sources ordered for a plan note"}],embed:[{id:"search",label:"Semantic search",what:"meaning-based retrieval over notes, chats and meetings"}],search:[{id:"chat",label:"Chat",what:"web search in a turn"},{id:"notes",label:"Notes research",what:"sources for a plan note"}],read:[{id:"chat",label:"Chat",what:"a page read for a turn"},{id:"notes",label:"Notes research",what:"sources read for a note"}],extract:[{id:"attachments",label:"Attachments",what:"documents attached by reference, read by page"}],s2s:[{id:"voice",label:"Voice conversation",what:"speech in, speech out, no text in between"}]});for(const e of r)if(!i[e])throw new Error(`capability-uses: ${e} has no uses listed`);function l(e,a,t){return e?.ui?.capabilityUses?.[a]?.[t]!==!1}function h(e,a){return(i[a]||[]).map(t=>({...t,on:l(e,a,t.id)}))}function c(e,a,t,n){const s={...e?.ui?.capabilityUses||{}},o={...s[a]||{}};return n?delete o[t]:o[t]=!1,Object.keys(o).length?s[a]=o:delete s[a],{ui:{capabilityUses:s}}}export{i as CAPABILITY_USES,c as setUse,l as useAllowed,h as usesOf};
package/harness-cards.js CHANGED
@@ -1 +1 @@
1
- import{EventError as l}from"./event.js";const i=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"},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"},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"},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"},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"}}),c=t=>String(t||"").toLowerCase().replace(/[^a-z]/g,""),s={claudecode:"claude",githubcopilot:"copilot",copilotcli:"copilot",deepseekharness:"deepseek",gemini:"antigravity",geminicli:"antigravity"};function d(t){const o=c(t);if(i[o])return{id:o,...i[o]};if(s[o])return{id:s[o],...i[s[o]]};const e=Object.entries(i).find(([r,n])=>o.includes(r)||o.includes(c(n.label)));return e?{id:e[0],...e[1]}:null}function g(t,{repointed:o=null}={}){const e=d(t);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(t){if(t==null)return null;if(typeof t=="string")return u({flag:t,repeat:!0});if(typeof t!="object"||Array.isArray(t))throw new l("SHAPE","dirs: must be { flag, repeat } or { flag, separator }");const o=String(t.flag||"").trim();if(!/^--?[A-Za-z][\w-]*$/.test(o))throw new l("SHAPE",`dirs: not a flag: ${JSON.stringify(t.flag)}`);const e=t.separator==null?null:String(t.separator);if(e!=null&&(e.length===0||/\s/.test(e)))throw new l("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 f({harness:t,roots:o=[],dirs:e}={}){const r=(Array.isArray(o)?o:[]).map(a=>String(a||"").trim()).filter(Boolean);if(!r.length)return[];const n=u(e!==void 0?e:d(t)?.dirs??null);return n?n.separator?[n.flag,r.join(n.separator)]:r.flatMap(a=>[n.flag,a]):[]}function h(t,o){try{return!!u(o!==void 0?o:d(t)?.dirs??null)}catch{return!1}}export{i as HARNESS_CARDS,d as harnessCard,f as harnessDirArgs,g as harnessEgress,h as harnessTakesDirs,u as normalizeDirsSpec};
1
+ import{EventError as l}from"./event.js";const i=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"},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)"},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"},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"},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"}}),c=t=>String(t||"").toLowerCase().replace(/[^a-z]/g,""),s={claudecode:"claude",githubcopilot:"copilot",copilotcli:"copilot",deepseekharness:"deepseek",gemini:"antigravity",geminicli:"antigravity"};function d(t){const o=c(t);if(i[o])return{id:o,...i[o]};if(s[o])return{id:s[o],...i[s[o]]};const e=Object.entries(i).find(([r,n])=>o.includes(r)||o.includes(c(n.label)));return e?{id:e[0],...e[1]}:null}function g(t,{repointed:o=null}={}){const e=d(t);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(t){if(t==null)return null;if(typeof t=="string")return u({flag:t,repeat:!0});if(typeof t!="object"||Array.isArray(t))throw new l("SHAPE","dirs: must be { flag, repeat } or { flag, separator }");const o=String(t.flag||"").trim();if(!/^--?[A-Za-z][\w-]*$/.test(o))throw new l("SHAPE",`dirs: not a flag: ${JSON.stringify(t.flag)}`);const e=t.separator==null?null:String(t.separator);if(e!=null&&(e.length===0||/\s/.test(e)))throw new l("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 f({harness:t,roots:o=[],dirs:e}={}){const r=(Array.isArray(o)?o:[]).map(a=>String(a||"").trim()).filter(Boolean);if(!r.length)return[];const n=u(e!==void 0?e:d(t)?.dirs??null);return n?n.separator?[n.flag,r.join(n.separator)]:r.flatMap(a=>[n.flag,a]):[]}function h(t,o){try{return!!u(o!==void 0?o:d(t)?.dirs??null)}catch{return!1}}export{i as HARNESS_CARDS,d as harnessCard,f as harnessDirArgs,g as harnessEgress,h as harnessTakesDirs,u as normalizeDirsSpec};
@@ -0,0 +1 @@
1
+ import{reachOf as o}from"./model-candidates.js";import{isPleasantry as a}from"./tool-need.js";function s(e){return(Array.isArray(e)?e:[e]).some(n=>String(n||"").trim()&&!a(n))}function f(e){if(!e||e.enabled===!1||!e.model||e.kind==="bridge"||e.kind==="webllm")return!1;try{return o(e)==="device"}catch{return!1}}function u({job:e,conversation:t=null,candidates:n=[],chosen:i=null,userTexts:l=[]}={}){if(!s(l))return{target:null,why:"nothing said yet worth a model",wait:!0};if(i)return{target:i,why:"the model chosen for this in Settings",wait:!1};if(t&&t.kind!=="bridge")return{target:t,why:"the conversation's own model",wait:!1};const r=(n||[]).find(f);return r?{target:r,why:"a model on this device — a coding agent pays its whole context on every call",wait:!1}:e==="title"&&t?{target:t,why:"no model on this device — the conversation's own agent, once",wait:!1}:{target:null,why:"no model on this device, and nowhere new to send it",wait:!1}}export{s as hasSubstance,u as housekeepingTarget,f as isLocalHelper};
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 E,EGRESS as S,EventError as l,validateEvent as m,isValidEvent as T,createAppender as c}from"./event.js";import{REF_KINDS as _,RESOLUTION as d,makeRef as R,isRef as A,resolveRef as f}from"./ref.js";import{linearize as I,compareEvents as u,causesAreWellFormed as N}from"./order.js";import{pendingQueue as M,isQueued as C,dequeue as P,moveQueued as L,promoteQueued as x}from"./queue.js";import{groupModels as D,filterSections as F,defaultModelId as y,modelSummary as k,withRecent as U,rememberRecent as b}from"./model-picker.js";import{composerChips as G,chipText as B}from"./composer-chips.js";import{NOTE_ACTIONS as H,NOTE_ACTION_ORDER as w,NOTE_ACTION_TEMPERATURE as V,NOTE_ACTION_ERRORS as X,NOTE_COMMANDS as W,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 le}from"./note-links.js";import{SWARM_ROLES as Te,roleById as ce,classifyModel as pe,supportsSubagents as _e,appoint as de,routeTeam as Re}from"./cowriter-router.js";import{SEARCH_ENGINES as fe,RESULTS_PER_ENGINE as Oe,buildSearchUrl as Ie,unwrapRedirect as ue,isResultHost as Ne,pickResults as ge,mergeEngineResults as Me,engineOrder as Ce}from"./web-search.js";import{MAX_GRAPH_NODES as Le,buildNoteGraph as xe,egoGraph as he,trimGraph as De,graphStats as Fe}from"./note-graph.js";import{lintText as ke,wordDiff as Ue,filterTypoEdits as be,editKey as ve,applyEdits as Ge,COWRITER_SYSTEM as Be,COWRITER_TEMPERATURE as Ke}from"./cowriter.js";import{salientTerms as we,topicTerms as Ve,researchRelevance as Xe,webQuery as We,researchSnippet as Ye,rankResearchCards as ze,mergeResearchLanes as Je}from"./note-research.js";import{PLAN_ROLES as Qe,PLAN_AUTHORS as qe,PLAN_DECOMPOSE_SYSTEM as Ze,PLAN_DECOMPOSE_MAX_TOKENS as $e,PLAN_DECOMPOSE_TEMPERATURE as er,PLAN_SECTION_MAX_TOKENS as rr,PLAN_SECTION_TEMPERATURE as or,planSectionSystem as tr,parsePlanTasks as ar,planTitleFor as ir,planParts as sr,planBody as nr,planAttribution as Er}from"./note-plan.js";import{REACH as lr,reachRank as mr,reachSatisfies as Tr}from"./reach.js";import{UPCASTERS as pr,upcast as _r,upcastAll as dr}from"./upcast.js";import{validateCapability as Ar,validateInvocation as fr,canSatisfy as Or,toModelSchema as Ir,toModelSchemas as ur}from"./capability.js";import{checkInvariants as gr,INVARIANTS as Mr}from"./invariants.js";import{createMemoryAdapter as Pr,createLogStore as Lr,createBlobStore as xr}from"./store.js";import{createRegistry as Dr,REGISTRY_STATES as Fr}from"./registry.js";import{defineSearchEngine as kr,reconcileEngines as Ur,attemptOrder as br,ENGINE_KINDS as vr,SearchEngineError as Gr}from"./search-engines.js";import{getWeather as Kr,weatherUrl as Hr,parseWeather as wr,formatWeather as Vr,areaLabel as Xr,isAmbiguousLocation as Wr,WEATHER_HOST as Yr,WEATHER_TIMEOUT_MS as zr,WeatherError as Jr}from"./weather.js";import{defineToolGroup as Qr,createToolGroupRegistry as qr,ToolGroupError as Zr}from"./tool-groups.js";import{toolNeedFor as eo,grantsNeededFor as ro,equipmentFor as oo}from"./tool-need.js";import{parseFlowchart as ao,layoutFlowchart as io,renderFlowchartSvg as so}from"./flowchart.js";import{validateView as Eo,validateViewInvocation as So,viewResult as lo}from"./view.js";import{validateWidget as To,validateWidgetMessage as co,effectiveGrants as po,widgetIcon as _o,WIDGET_SURFACES as Ro}from"./widget.js";import{fuseRRF as fo,planQueries as Oo,multiSearch as Io}from"./rrf.js";import{SUBJECT_KINDS as No,DEFAULT_THRESHOLD as go,MAX_SUBJECTS as Mo,MAX_SUBJECT_CHARS as Co,normalizeSubject as Po,subjectKey as Lo,subjectTokens as xo,isSubjectCandidate as ho,aliasMap as Do,resolveSubjects as Fo,earnsBrief as yo,rankSubjects as ko,REDACTION_TOKEN_TYPES as Uo,isRedactionToken as bo,SELF_LABELS as vo,isSelfLabel as Go,stripQualifiers as Bo,suggestMerges as Ko}from"./entity.js";import{BRIEF_STATES as wo,CLAIM_KINDS as Vo,MAX_CLAIMS as Xo,MAX_CLAIM_REFS as Wo,MAX_BRIEF_RECORDS as Yo,MAX_BRIEF_CHARS as zo,contentHash as Jo,briefId as jo,briefToText as Qo,briefTerms as qo,briefLinks as Zo,checkKnowledgeInvariants as $o,parseBriefText as et}from"./knowledge.js";import{deriveBrief as ot,deriveBriefs as tt,driftedRefs as at}from"./knowledge-derive.js";import{SYNTHESIS_SCHEMA as st,synthesisPrompt as nt,claimsFromSynthesis as Et,MAX_SYNTHESIS_CLAIMS as St,MAX_EXCERPTS as lt,MAX_EXCERPT_CHARS as mt}from"./synthesis.js";import{PROPOSAL_STATES as ct,SUPERSEDE_OVERLAP as pt,propose as _t,accept as dt,reject as Rt,diffProposal as At,converge as ft,linkClaims as Ot}from"./promotion.js";import{normalizeRecord as ut,normalizeRecords as Nt,wikilinksIn as gt,redactedTokensIn as Mt,redactionCost as Ct,wantedPages as Pt,orphanRecords as Lt,duplicateTitles as xt,vocabularyDrift as ht,mentionsFrom as Dt,spanningQuestions as Ft,surveyCorpus as yt,thresholdSweep as kt,formatSurvey as Ut,NEAR_TITLE_DISTANCE as bt,SPAN_MIN_TERMS as vt}from"./curate.js";import{PDF_MAX_CHARS as Bt,linesFromItems as Kt,orderLines as Ht,paragraphsFromLines as wt,pageTextFromItems as Vt,looksScanned as Xt,buildPdfDocument as Wt}from"./pdf-layout.js";import{YOUTUBE_HOSTS as zt,TRANSCRIPT_MAX_CHARS as Jt,parseYouTubeUrl as jt,isYouTubeUrl as Qt,captionTracksFromPlayerResponse as qt,videoMetaFromPlayerResponse as Zt,pickCaptionTrack as $t,timedTextUrl as ea,parseTimedText as ra,groupSegments as oa,formatTimestamp as ta,formatTranscript as aa,buildTranscriptDocument as ia,transcriptFromTracks as sa}from"./media-transcript.js";import{ACCESS_LOG_VERSION as Ea,ACCESS_LOG_MAX as Sa,redactAccessArgs as la,makeAccessEvent as ma,createAccessLog as Ta,makeStorageTier as ca,formatBytes as pa}from"./observability.js";import{routeGraph as da,projectChain as Ra}from"./route-graph.js";import{defineAdapter as fa,createAdapterRegistry as Oa,AdapterError as Ia}from"./adapters.js";import{linkifyCitations as Na,sourcesFromToolText as ga,createCitationCollector as Ma,RETRIEVAL_TOOLS as Ca}from"./citations.js";import{buildTrajectory as La,phasesOf as xa,lanesOf as ha,filterEntries as Da,displayName as Fa,ENTRY_KINDS as ya,threadsOf as ka,threadTitle as Ua,promptEntries as ba,turnsOf as va,threadTree as Ga}from"./trajectory.js";import{createTurnRunner as Ka,createStepRecorder as Ha,argsShape as wa,defineLoop as Va,LOOP_KINDS as Xa,LoopError as Wa,abortCause as Ya,errorFacts as za}from"./loop.js";import{defineModel as ja,defineMiddleware as Qa,defineRouteStrategy as qa,createModelRouter as Za,signalsFrom as $a,requirementsFor as ei,requirementsForStep as ri,preferenceFor as oi,failoverOrder as ti,pinnedOrderOf as ai,FAILOVER_CLASS_GAP as ii,FAILOVER_CAPABILITY_GAP as si,sameModelKey as ni,RouterError as Ei}from"./router.js";import{makeSourceStore as li,manifestText as mi,shortUrl as Ti,readSource as ci,sourceId as pi}from"./sources-retrieval.js";import{classifySource as di,extractUrls as Ri,hostMatches as Ai,meetReach as fi,sourcePolicyFor as Oi,sourceUrlsOf as Ii,DEFAULT_INTERNAL_PATTERNS as ui,INTERNAL_PATTERN_CATALOG as Ni}from"./sources.js";import{defineRule as Mi,createRuleEngine as Ci,SUPPRESSED as Pi,RuleError as Li}from"./rules.js";import{VAULT_VERSION as hi,KDF_ITERATIONS as Di,KDF_HASH as Fi,DEFAULT_LOCK_MS as yi,VaultError as ki,MAX_TITLE_CHARS as Ui,MAX_NOTE_CHARS as bi,MAX_SECRET_CHARS as vi,MAX_ENTRIES as Gi,createVault as Bi,unlockVault as Ki,deriveKey as Hi,sealEntry as wi,openEntry as Vi,validateEntry as Xi,entryMeta as Wi,searchEntries as Yi,isLocked as zi,lockedSummary as Ji,canAddEntry as ji,toB64 as Qi,fromB64 as qi}from"./vault.js";import{SCHEDULE_KINDS as $i,TRIGGER_KINDS as es,JOB_ACTIONS as rs,MISSED_POLICIES as os,ScheduleError as ts,validateSchedule as as,nextFireAt as is,occurrencesBetween as ss,nextWakeAt as ns,parseCron as Es,defineTrigger as Ss,createTriggerRegistry as ls,BUILTIN_TRIGGERS as ms,timerTrigger as Ts,meetingStartedTrigger as cs,meetingEndedTrigger as ps,personJoinedTrigger as _s,phraseTrigger as ds,topicTrigger as Rs,questionTrigger as As,voiceCommandTrigger as fs,defineJob as Os,dueJobs as Is,jobsForEvent as us,occurrenceKey as Ns,clipText as gs,matchSummary as Ms}from"./schedule.js";import{defineMeetingAnalyzer as Ps,createAnalyzerRegistry as Ls,CADENCES as xs,AnalyzerError as hs}from"./meeting-analyzers.js";import{DEFAULT_WAKE as Fs,MAX_COMMANDS_PER_DELTA as ys,DAYPART_HOUR as ks,VoiceIntentError as Us,compileWake as bs,findWakeCommand as vs,parseCommand as Gs,commandsFromSegments as Bs,parseDuration as Ks,parseClock as Hs,parseWhen as ws,parseNumberWords as Vs,normalizeSpeech as Xs,tokenize as Ws,editDistance as Ys,defineVoiceIntent as zs,createVoiceIntentRegistry as Js,defaultVoiceIntents as js,BUILTIN_VOICE_INTENTS as Qs,timerIntent as qs,reminderIntent as Zs,scheduleIntent as $s,noteIntent as en,monitorIntent as rn,REFINEMENT_SCHEMA as on,refinementPrompt as tn,refinementFormat as an,parseRefinement as sn,refinementStream as nn,settleRefinement as En,refineSpokenCommand as Sn,isFillerSentence as ln,gistText as mn,gistOpening as Tn,commandLooksFinished as cn,sameUtterance as pn,createUtteranceGate as _n,UTTERANCE_SETTLE_MS as dn,UTTERANCE_DANGLING_MS as Rn}from"./voice-intents.js";import{MAX_TOPICS as fn,MAX_TOPIC_CHARS as On,TOPICS_SCHEMA as In,topicsSchema as un,topicsPrompt as Nn,topicsFormat as gn,parseTopics as Mn,normalizeTopic as Cn,normalizeTopics as Pn,topicsStream as Ln,ENTITY_TYPES as xn,ENTITIES_SCHEMA as hn,entitiesPrompt as Dn,entitiesFormat as Fn,parseEntities as yn,coerceEntities as kn,entitiesStream as Un,MAX_SUGGESTIONS as bn,MAX_SUGGESTION_CHARS as vn,SUGGESTIONS_SCHEMA as Gn,suggestionsPrompt as Bn,suggestionsFormat as Kn,parseSuggestions as Hn,suggestionsStream as wn}from"./extraction.js";import{FIELD_TYPES as Xn,RESPONSE_MODES as Wn,StructuredError as Yn,defineSchema as zn,describeSchema as Jn,toJsonSchema as jn,responseFormat as Qn,unfence as qn,findJson as Zn,rewriteJson as $n,repairJson as eE,isNothing as rE,coerce as oE,parseStructured as tE,createStructuredStream as aE}from"./structured.js";import{explainMcpError as sE,packageFromArgs as nE,isStaleMcpSession as EE,installHintFor as SE,missingCommandMessage as lE,missingCommandIn as mE,normalizePlatform as TE}from"./mcp-errors.js";import{parseSignInPrompt as pE,signInError as _E,signInFromError as dE,signInToolResult as RE,MCP_SIGN_IN_CODE as AE}from"./mcp-signin.js";import{parseAuthChallenge as OE,wellKnownUrls as IE,canonicalResource as uE,readResourceMetadata as NE,readAuthServerMetadata as gE,registrationRequest as ME,readRegistration as CE,authorizeUrl as PE,tokenRequest as LE,readTokenResponse as xE,tokenExpired as hE,authHeader as DE,discoverMcpAuth as FE,registerMcpClient as yE,fetchMcpToken as kE,TOKEN_SKEW_MS as UE}from"./mcp-oauth.js";import{toolTraits as vE,bareToolName as GE,canRunConcurrently as BE,isCacheable as KE,needsConfirmation as HE,traitsIndex as wE,effectiveToolName as VE,parallelEligible as XE,PARALLEL_LOCAL_RE as WE}from"./tool-traits.js";import{planToolRound as zE,runToolRound as JE}from"./tool-round.js";import{createToolLoopGuard as QE,roundSignature as qE,stableToolCallKey as ZE,toolMadeProgress as $E,isLoopableTool as eS,blockedToolResult as rS,OBSERVATION_TOOLS as oS,INPUT_PROGRESS_TOOLS as tS}from"./tool-loop-guard.js";import{classifyFailure as iS,createModelHealth as sS,COOLDOWN_MS as nS,UNAVAILABLE_REASONS as ES,normModelName as SS}from"./model-health.js";import{runWithFailover as mS,failoverExhausted as TS,FAILOVER_MAX_ATTEMPTS as cS}from"./failover.js";import{sourcePolicySettings as _S,sourceGuardFor as dS,sourceGate as RS,isSourceGateError as AS,withinReach as fS}from"./source-gate.js";import{runTurnLoop as IS,createCallRunner as uS,roundCap as NS,withToolSystem as gS,describeCall as MS,stepResultText as CS,addUsage as PS,normalizeUsage as LS,openAiTranscript as xS,anthropicTranscript as hS,DEFAULT_MAX_ROUNDS as DS,DEFAULT_MAX_FINISH_TRIES as FS,FINISH_NUDGES as yS,LOOPING_NUDGE as kS,EXHAUSTED_NOTE as US,ROUND_SEPARATOR as bS}from"./turn-loop.js";import{createResultStore as GS,shieldToolResult as BS,runResultQuery as KS,withResultShield as HS,describeShape as wS,compactValue as VS,resultToolSpec as XS,RESULT_TOOL_NAME as WS,DEFAULT_SHIELD as YS,DEFAULT_STORE as zS}from"./tool-result.js";import{PERMISSION_EVENT as jS,PERMISSION_ANSWERS as QS,PERMISSION_TIMEOUT_MS as qS,PERMISSION_TOOL_NAME as ZS,permissionToolSpec as $S,isPermissionTool as el,permissionRequestFromClaude as rl,permissionKeys as ol,describePermission as tl,permissionAnswer as al,permissionAllowed as il,rememberPermission as sl,recallPermission as nl,claudePermissionResponse as El,permissionLine as Sl,permissionIcon as ll,createPermissionDesk as ml}from"./agent-permission.js";import{findTools as cl,findToolsResult as pl,findActionArgs as _l,oneLiner as dl,overlapRank as Rl,FIND_ACTION as Al}from"./tool-discovery.js";import{buildToolset as Ol}from"./toolset.js";import{DESCRIBE_ACTION as ul,actionMenu as Nl,buildGroupDispatchSpec as gl,validateAction as Ml,makeGroupDispatchExecutor as Cl,withGuidance as Pl,makeDispatchProvider as Ll,estimateTokens as xl}from"./tool-dispatch.js";import{FIND_TOOL_NAME as Dl,FIND_DESCRIPTION as Fl,FIND_RESIDENT as yl,findDispatchProvider as kl}from"./find-tool.js";import{WEB_SEARCH_TOOL_NAME as bl,WEB_SEARCH_TOOL_SYSTEM as vl,WEB_SEARCH_SPEC as Gl,searchResultsToText as Bl,webSearchToolProvider as Kl}from"./web-search-tool.js";import{compressToolSpec as wl,compressToolSpecs as Vl,compressionStats as Xl,trimDescription as Wl,COMPRESSION_MODES as Yl,DEFAULT_COMPRESSION as zl}from"./tool-schema.js";import{validateRecipe as jl,expandRecipe as Ql,recipeParams as ql,mapInput as Zl,dryRunRecipe as $l,runPlan as em,runRecipe as rm,RecipeError as om,RECIPE_MODES as tm}from"./recipe.js";import{recipeToolProvider as im,recipeToolSpec as sm,describeRecipeForApproval as nm,RECIPE_TOOL_NAME as Em}from"./recipe-tool.js";import{createBudget as lm,validateBudget as mm,normalizeBudget as Tm,usageOf as cm,BudgetError as pm,BUDGET_DIMENSIONS as _m}from"./budget.js";import{defineTeam as Rm,validateTeam as Am,normalizeTeam as fm,normalizeGrants as Om,grantAllows as Im,scmAllows as um,describeRole as Nm,TeamError as gm,ROLE_MODES as Mm,MERGE_POLICIES as Cm,PLAN_MODES as Pm,GRANTABLE as Lm,WORK_GRANTS as xm,GRANT_RE as hm,AGENT_REF_RE as Dm,STARTER_TEAMS as Fm,starterTeams as ym,blankTeam as km,teamFromForm as Um,slugTeamName as bm}from"./team.js";import{fixedPlan as Gm,parsePlan as Bm,plannerPrompt as Km,waves as Hm,breakCycles as wm,TEAM_PLAN_SCHEMA as Vm}from"./team-plan.js";import{createBoard as Wm,parseFindings as Ym,boardText as zm,findingsInstruction as Jm,toBriefClaims as jm,FINDINGS_SCHEMA as Qm,FINDING_KINDS as qm,THREAD_KINDS as Zm,THREAD_STATUSES as $m,POST_KINDS as eT,POST_STATUSES as rT,ASK_TYPES as oT,emptyBoardState as tT,foldBoard as aT,findingsOf as iT}from"./team-board.js";import{boardToolProvider as nT,boardToolSpec as ET,createAnswerBox as ST,withBoardTool as lT,BOARD_TOOL_NAME as mT,DEFAULT_ASK_TIMEOUT_MS as TT}from"./board-tool.js";import{createRunCache as pT,withRunCache as _T}from"./team-cache.js";import{emptyRun as RT,foldRun as AT,runFromEvents as fT,checkpointFrom as OT,isResumable as IT,LIVE_RUN_STATUSES as uT,RESUMABLE_RUN_STATUSES as NT,spendOf as gT,describeSpend as MT,runState as CT,priorWorkFor as PT,STALLED_AFTER_MS as LT}from"./team-record.js";import{validateProject as hT,normalizeProject as DT,defineProject as FT,canTransition as yT,blankProject as kT,projectFromForm as UT,emptyProjectRecord as bT,foldProject as vT,projectProgress as GT,ProjectError as BT,PROJECT_STATUSES as KT,PROJECT_ID_RE as HT}from"./project.js";import{validateJob as VT,normalizeJob as XT,defineJob as WT,canTransition as YT,applyAll as zT,jobToRole as JT,readyJobs as jT,blankJob as QT,jobFromForm as qT,JobError as ZT,JOB_STATUSES as $T,JOB_ID_RE as ec}from"./job.js";import{validateGate as oc,normalizeGate as tc,effectiveGate as ac,gateAllows as ic,DEFAULT_GATE as sc,AUTONOMY as nc,HUMAN_FLAGS as Ec,CHECKS as Sc}from"./gate.js";import{runProject as mc,roundJobs as Tc,teamForRound as cc,jobResults as pc,roundBudget as _c,parseJobs as dc,parseReview as Rc,jobsPrompt as Ac,reviewPrompt as fc,PROJECT_JOBS_SCHEMA as Oc,PROJECT_REVIEW_SCHEMA as Ic,ProjectRunError as uc,EXECUTIVE as Nc,MAX_JOBS_PER_ROUND as gc,MAX_ROUNDS as Mc,PROJECT_RUN_STATUSES as Cc}from"./project-run.js";import{canonical as Lc,sha256 as xc,makeEntry as hc,verifyChain as Dc,attest as Fc,verifyAttested as yc,summarize as kc,fit as Uc,adjustSummary as bc,normalizeEngine as vc,engineKey as Gc,normalizeScm as Bc,SCORECARD_ENTRY_KINDS as Kc,ROLE_KINDS as Hc,SCORECARD_VERSION as wc,ENGINE_KINDS as Vc}from"./scorecard.js";import{ENGINE_KINDS as Wc,ROUTE_PREFERS as Yc,normalizePolicy as zc,normalizeEngineSpec as Jc,validateEngineSpec as jc,engineRef as Qc,engineKeyOf as qc,describeEngine as Zc,tierOf as $c}from"./engine.js";import{AGENT_ID_RE as rp,APPLIES_TO as op,EGRESS_CLASSES as tp,ASSISTANT_ID as ap,AgentError as ip,validateAgent as sp,normalizeAgent as np,defineAgent as Ep,assistantAgent as Sp,engineOf as lp,describeAgent as mp,slugAgentId as Tp,resolveTeam as cp,STARTER_AGENTS as pp,starterAgents as _p,blankAgent as dp,agentFromForm as Rp,poolFor as Ap}from"./agent.js";import{LEDGER_VERSION as Op,LEDGER_ENTRY_KINDS as Ip,DECLINE_REASONS as up,WITHDRAW_AFTER as Np,ledgerKey as gp,normalizeCall as Mp,makeLedgerEntry as Cp,summarizeEngine as Pp}from"./model-ledger.js";import{RECRUIT_SCHEMA as xp,MIN_FIT as hp,engineRow as Dp,engineRows as Fp,needForJob as yp,routeFor as kp,engineWorth as Up,applications as bp,evaluatorPrompt as vp,parseEvaluation as Gp,decide as Bp,recruitForRun as Kp,proposalFromNeeds as Hp,proposalToAgent as wp,carveBudget as Vp,recruitEvents as Xp,recruitJob as Wp}from"./recruit.js";import{DEFAULT_MIN_CALLS as zp,cardOverride as Jp,applyCard as jp}from"./model-candidates.js";import{SCM_KINDS as qp,validateConnection as Zp,normalizeConnection as $p,parseRemote as e_,connectionFor as r_,branchFor as o_,worktreeDirFor as t_,credentialEnv as a_,describeConnection as i_,blankConnection as s_,connectionFromForm as n_}from"./scm-connection.js";import{messagesFor as S_,mergeTranscript as l_,clipTranscript as m_,clipMessage as T_,newSteps as c_,continuationNote as p_,createControl as __,STEP_MAX_CHARS as d_,TASK_TRANSCRIPT_MAX_CHARS as R_}from"./team-task.js";import{runTeam as f_,resumeTeam as O_,dryRunTeam as I_,isModelUnavailable as u_,TeamRunError as N_,RUN_STATUSES as g_}from"./team-run.js";import{teamToolProvider as C_,teamToolSpec as P_,teamToolTimeoutMs as L_,describeTeamForApproval as x_,TEAM_TOOL_NAME as h_,TEAM_MANUAL as D_}from"./team-tool.js";import{workLogFor as y_,workLogText as k_,workLogEvidence as U_,describeCall as b_,WORKLOG_KINDS as v_}from"./team-worklog.js";import{normalizeRequest as B_,subtaskFromRequest as K_,takeUp as H_,takeUpLine as w_,holdsGrants as V_,jobFromSubtask as X_,extendDependents as W_,taskTree as Y_,threadRows as z_,MAX_SUBTASKS as J_,MAX_DEPTH as j_,MIN_TAKEUP_FIT as Q_}from"./team-subtask.js";import{teamLine as Z_,teamLanes as $_}from"./team-trail.js";import{promoteRoles as rd,starterTeam as od,missingStarters as td,teamHealth as ad,teamShape as id,describeTeamShape as sd,whereItWorks as nd,rosterRows as Ed,agentKind as Sd,agentHue as ld,agentColor as md,agentInitials as Td,roleCardId as cd,cardNumbers as pd,upsertAgents as _d,soloTeam as dd,teamsWithSolos as Rd,builtinOrg as Ad,isBuiltin as fd,grantChoices as Od,grantsFromChoices as Id,skillChoices as ud,GRANT_INFO as Nd,SOLO_BUDGET as gd,TEAM_SHAPES as Md,ROSTER_KINDS as Cd}from"./team-org.js";import{observeInbox as Ld,observeStrip as xd,runLanes as hd,spendRows as Dd,engineStrip as Fd}from"./team-observe.js";import{mcpDispatchProvider as kd,MCP_TOOL_NAME as Ud}from"./mcp-dispatch.js";import{createManifest as vd,ManifestError as Gd,SOURCES as Bd}from"./manifest.js";import{createKernel as Hd,meetDecisions as wd,KernelError as Vd,REQUIRED_PLUGINS as Xd,ALLOW_ALL as Wd}from"./kernel.js";import{replay as zd,formatReport as Jd,parseJsonl as jd,toJsonl as Qd}from"./harness.js";import{compileQuery as Zd,findMatches as $d,matchIndexFor as eR,expandReplacement as rR,replaceMatch as oR,replaceAll as tR,replaceAllInRange as aR,MAX_MATCHES as iR}from"./text-search.js";import{DATA_SCOPES as nR}from"./scopes.js";import{MEMORY_VERSION as SR,MEMORY_KINDS as lR,MEMORY_KIND_NAMES as mR,AMBIENT_KINDS as TR,MAX_MEMORY_CHARS as cR,MIN_MEMORY_CHARS as pR,DEFAULT_MAX_MEMORIES as _R,DEFAULT_BLOCK_CHARS as dR,SAME_FACT as RR,MEMORY_TOOL_SPEC as AR,MEMORY_UPCASTERS as fR,MemoryError as OR,normalizeMemory as IR,isValidMemory as uR,memoryKey as NR,slotOf as gR,similarity as MR,containment as CR,candidatesFrom as PR,reconcile as LR,matchForForget as xR,recall as hR,memoryBlock as DR,markUsed as FR,pruneMemories as yR,memoryToolSystem as kR,upcastMemory as UR,sameMemory as bR,AMBIENT_MAX_WORDS as vR}from"./memory.js";import{SOURCE_TRUST as BR,SkillSourceError as KR,defineSkillSource as HR,createSkillSourceRegistry as wR}from"./skill-sources.js";import{SKILL_MANIFEST_VERSION as XR,SKILL_CONTEXTS as WR,SKILL_HISTORY_SCOPES as YR,SKILL_MCP_MODES as zR,SKILL_TRUST as JR,SKILL_FILE_KINDS as jR,SKILL_UPCASTERS as QR,SkillManifestError as qR,isSafeSkillPath as ZR,originOf as $R,trustOf as eA,skillFiles as rA,needsBridge as oA,declaredAccess as tA,originLabel as aA,sameSkillOrigin as iA,skillIsStale as sA,validateSkill as nA,upcastSkill as EA,upcastSkills as SA,normalizeSkill as lA}from"./skill-manifest.js";import{SKILL_VARS as TA,SKILL_VAR_NAMES as cA,skillVar as pA,skillVarPattern as _A,parseSkillVars as dA,lintSkillPrompt as RA,suggestSkillVar as AA,substituteSkillVars as fA,expandSkillPrompt as OA,skillVarGuidance as IA,SkillVarError as uA}from"./skill-vars.js";import{lineAt as gA,writerAffordance as MA,INSTRUCTION_RE as CA,instructionOnLine as PA,GOAL_MIN_NEW as LA,goalDraftAllowed as xA,createSpendMeter as hA,writerTail as DA,draftSeparator as FA,groundingBlock as yA,writerRequest as kA,AUTOCOMPLETE_SYSTEM as UA,AUTOCOMPLETE_MAX_TOKENS as bA,AUTOCOMPLETE_TEMPERATURE as vA,clipCompletion as GA,GEARS as BA,WRITER_PREFS as KA,WRITER_PREF_DEFAULTS as HA,normalizeWriterPrefs as wA,normalizeIntent as VA}from"./cowriter-writer.js";import{SLASH_TYPING_RE as WA,NEW_THREAD_SLASH_ITEMS as YA,parseNewThread as zA,isSkillEnabled as JA,enabledSkills as jA,slashCommandItems as QA,matchSlashSkill as qA,matchSlashRecipe as ZA,recipeInvocationText as $A,matchSlashTeam as ef,teamInvocationText as rf,slashCommandInsert as of,skillInvocationOf as tf,skillInvocationLabel as af}from"./slash-commands.js";import{outlineOf as nf,parseListItem as Ef,continueList as Sf,indentSelection as lf,toggleWrap as mf,toggleLinePrefix as Tf,toggleTask as cf,toggleLink as pf,docStats as _f,selectionStats as df}from"./markdown-authoring.js";import{MAX_TAG_LENGTH as Af,MAX_TAGS as ff,normalizeTag as Of,normalizeTags as If,hasTag as uf,addTag as Nf,removeTag as gf,toggleTag as Mf,sameTags as Cf,formatTag as Pf,parseTagQuery as Lf,hasTagTerms as xf,formatTagQuery as hf,matchesTagFilter as Df,filterByTags as Ff,tagFacets as yf,suggestExistingTags as kf,tagsSearchText as Uf}from"./tags.js";import{UNTITLED_MEETING as vf,MAX_TITLE_LENGTH as Gf,TITLE_RULES_VERSION as Bf,cleanTitle as Kf,isGenericTitle as Hf,titleFromSummary as wf,titleFromTopics as Vf,titleFromParticipants as Xf,titleFromDate as Wf,deriveMeetingTitle as Yf,shouldAutoTitle as zf,isBetterTitleSource as Jf,meetingTitlePrompt as jf,parseTitleResponse as Qf}from"./titles.js";import{RECORD_KINDS as Zf,MAX_TITLE_LEN as $f,LibraryError as eO,parseRecordId as rO,makeRecordId as oO,isRecordId as tO,normalizeStoredRecord as aO,isValidStoredRecord as iO,toSearchRecord as sO,searchTextFor as nO,toIndexEntry as EO,deriveTitle as SO,snippetOf as lO,wordCount as mO}from"./library.js";import{CLOCK_TOLERANCE_MS as cO,SyncError as pO,stampOf as _O,decide as dO,planSync as RO,isSettled as AO,forkConflict as fO,advanceBases as OO}from"./sync-plan.js";import{ENCRYPTED_TYPE as uO,COMPRESSIONS as NO,BackupError as gO,KDF_ITERATIONS as MO,encryptBackup as CO,decryptBackup as PO,isEncryptedBackup as LO,RECORD_TYPE as xO,deriveBackupKey as hO,sealRecord as DO,openRecord as FO,isSealedRecord as yO,keyCache as kO,identityCodec as UO,streamCodec as bO,nodeCodec as vO,bestCodec as GO}from"./backup-envelope.js";import{recordsFromBackup as KO,backupFromRecords as HO}from"./backup-records.js";import{DEFAULT_POLICY as VO,SLOW_POLICY as XO,scalePolicy as WO,pickProfile as YO,adaptProfile as zO,policyFor as JO,SLOW_FLUSH_MS as jO,FAST_FLUSH_MS as QO,FAST_STREAK as qO,createJournal as ZO,JournalError as $O,ENTRY_VERSION as eI,makeEntry as rI,tombstone as oI,isTombstone as tI,isEntry as aI,entryStamp as iI,supersedes as sI,BOUNDS as nI,createSegment as EI,applyEntry as SI,segmentBytes as lI,segmentEntries as mI,shouldRotate as TI,mergeSegments as cI,segmentName as pI,parseSegmentName as _I,SEGMENT_RE as dI,boundSegments as RI,segmentsFor as AI,overlay as fI,catchUpPlan as OI}from"./journal.js";import{OMNI_MODES as uI,OMNI_GRAMMAR as NI,parseOmni as gI,extractFilters as MI,resolveSince as CI,wantsModel as PI,isActionable as LI}from"./omni.js";import{THEMES as hI,LIGHT as DI,DARK as FI,PALETTES as yI,SHAPE as kI,TOKEN_NAMES as UI,TOKEN_ROLES as bI,paletteFor as vI,cssVarName as GI,toCssVars as BI,themeStylesheet as KI,resolveTheme as HI}from"./theme.js";import{PLANS as VI,API_BASE as XI,ENDPOINTS as WI,ENTITLEMENT_PUBLIC_JWK as YI,UPGRADE_URL as zI,FEATURE_TIER as JI,PRO_FEATURES as jI,TEAM_FEATURES as QI,FREE_LIMITS as qI,COUNTED as ZI,freeCap as $I,observeSince as eu,RECHECK_INTERVAL_MS as ru,EntitlementError as ou,checkoutUrl as tu,planOf as au,planLabel as iu,isPro as su,isTeam as nu,can as Eu,tierFor as Su,withinFreeLimit as lu,verifyEntitlement as mu,verifySignedToken as Tu,licenseFromPayload as cu,needsRecheck as pu}from"./entitlement.js";import{generateDeviceKey as du,exportDevicePublicKey as Ru,signChallenge as Au}from"./device-proof.js";import{renderMarkdown as Ou,defaultLinkPolicy as Iu,defaultImagePolicy as uu}from"./markdown-render.js";import{NOTE_IMAGE_SCHEME as gu,MAX_NOTE_IMAGE_BYTES as Mu,NOTE_IMAGE_TYPES as Cu,noteImageId as Pu,noteImageRef as Lu,noteImageIds as xu,noteImageRefs as hu,stripNoteImageRefs as Du,orphanNoteImages as Fu,newNoteImageId as yu}from"./note-images.js";import{parseMeetingText as Uu,speakerStats as bu,densityRibbon as vu}from"./meeting-text.js";import{speakerBreakdown as Bu,speakerTimeline as Ku,formatTalkTime as Hu,SPEAKER_SLOTS as wu}from"./meeting-shape.js";import{isSpeakerImageValue as Xu,speakerLabeller as Wu}from"./meeting-shape.js";import{SORT_MODES as zu,SORT_LABELS as Ju,sortStamp as ju,sortRecords as Qu,filterRecords as qu,dayBucket as Zu,rowTime as $u,groupRecords as eN}from"./record-list.js";import{INSIGHT_KINDS as oN,summarySections as tN,insightKindOf as aN,meetingInsights as iN,hasInsights as sN}from"./meeting-insights.js";import{demd as EN,NOTE_SECTIONS as SN,noteSectionKind as lN,MOMENT_BADGES as mN,momentBadge as TN,parseMeetingNotes as cN,groupActionsByOwner as pN}from"./meeting-insights.js";import{PREF_SECTIONS as dN,PREF_SECTION_IDS as RN,DESKTOP_SECTION_IDS as AN,sectionSpec as fN,sectionValue as ON,pickSections as IN,applySections as uN,sectionHash as NN,mergeStamped as gN,changedSections as MN}from"./client-prefs.js";import{SETTINGS_GROUPS as PN,SETTINGS_PAGES as LN,REQUIREMENTS as xN,BOOKKEEPING_KEYS as hN,listRows as DN,findRow as FN,pageById as yN,groupById as kN,pagesOf as UN,quickRows as bN,breadcrumb as vN,linkTo as GN,linkToRow as BN,parseLink as KN,valueOf as HN,setValue as wN,effectiveValue as VN,describeValue as XN,SETTINGS_OPEN_DEFAULT as WN,settingsOpenMode as YN,searchSettings as zN,statusOf as JN,statusAll as jN,homeChecklist as QN,gateOf as qN,sectionOfRow as ZN}from"./settings-registry.js";import{pointsAtGateway as eg,destinationFromEndpoint as rg,destinationFromAgent as og,availableDestinations as tg,seedDestinations as ag,shouldSeedDestinations as ig,mergeEndpointDestinations as sg}from"./gateway-dests.js";import{McpClient as Eg,mcpProvider as Sg}from"./mcp-client.js";import{mcpSharedSystem as mg,mcpInventorySystem as Tg,sourceCitationSystem as cg,combineSystemPrompt as pg,toolStatus as _g,widgetAuthoringSystem as dg,vaultWidgetSystem as Rg,wantsVaultGuidance as Ag}from"./tool-hints.js";import{adaptiveToolRetryHint as Og,createAdaptiveToolPolicy as Ig,isInvalidToolParametersResult as ug}from"./adaptive-tool-policy.js";import{getMcpProviders as gg,testMcpServer as Mg,resetMcp as Cg,mcpBackoff as Pg}from"./mcp-manager.js";import{SIDELINE_COMMANDS as xg,BRINGBACK_COMMAND as hg,THREAD_TOOL_NAME as Dg,SIDELINE_SLASH_ITEMS as Fg,THREAD_TOOL_SPEC as yg,parseSideline as kg,parseBringBack as Ug,resolveSidelineTarget as bg,threadManifest as vg,threadToolProvider as Gg,readThread as Bg,briefPrompt as Kg,foldBackNote as Hg,foldNotes as wg,nextSidelineIndex as Vg,sourceOf as Xg,noteUnits as Wg,sidelinePath as Yg,foldBackFor as zg,SIDELINE_TOOL_NAME as Jg,SIDELINE_TOOL_SPEC as jg,sidelineToolProvider as Qg}from"./sideline.js";import{WEATHER_TOOL_NAME as Zg,WEATHER_TOOL_SYSTEM as $g,weatherToolProvider as eM}from"./weather-tool.js";import{DECIDE_TOOL_NAME as oM,RERANK_TOOL_NAME as tM,CAPABILITY_TOOLS_SYSTEM as aM,capabilityToolsProvider as iM}from"./capability-tools.js";import{renderContent as nM,toChatMessages as EM,toMultimodalMessages as SM,imageAttachmentsOf as lM,deferAttachedSources as mM,withSourceTool as TM,SOURCE_TOOL_SPEC as cM}from"./context-attachments.js";import{prefetchPlan as _M,prefetchAttachment as dM,weatherPlace as RM,weatherFollowupPlace as AM}from"./prefetch.js";import{createFetchedStore as OM,withFetchedMemo as IM,fetchKey as uM,fetchTitle as NM,fetchedAsSources as gM,fetchedFacts as MM,defaultTtl as CM,FETCHED_TTL_MS as PM}from"./fetched.js";import{windowOf as xM,fitFor as hM,keepRecentFor as DM,minWindowFor as FM,isContextLimitError as yM,FIT_HEADROOM as kM}from"./context-window.js";import{planCompaction as bM,compactionPrompt as vM,compactionRecord as GM,messagesAfter as BM,systemWithSummary as KM,compactable as HM,COMPACTION_SYSTEM as wM}from"./compaction.js";import{presenceFor as XM,presenceDelta as WM,reachOf as YM,withPresence as zM,presenceBlock as JM,roundCount as jM,roundMinutes as QM,PRESENCE_BUDGET_TOKENS as qM,PRESENCE_KINDS as ZM}from"./presence.js";import{PolicyError as eC,POLICY_VERSION as rC,POLICY_TOKEN_TYPE as oC,REDACTION_TIERS as tC,LOCKABLE as aC,FEATURES as iC,PERMISSION_MODES as sC,PRODUCT_HOSTS as nC,normalizeOrgPolicy as EC,endpointAllowed as SC,modelAllowed as lC,agentAllowed as mC,permissionMode as TC,routeAllowed as cC,redactionTier as pC,egressAllowed as _C,settingLocked as dC,featureEnabled as RC,applyPolicyToSettings as AC,policyLabel as fC,policyHash as OC,verifyPolicyToken as IC,globToRegExp as uC}from"./policy.js";import{languageInstruction as gC,RESPONSE_LANGUAGES as MC}from"./response-language.js";import{NOTE_TOOL_SPECS as PC,makeNoteToolExecutor as LC}from"./note-tool.js";import{memoryToolProvider as hC}from"./memory-tool.js";import{skillRunFromSkill as FC,skillPackageFiles as yC,filterMcpServersForSkill as kC,skillToolSystem as UC,skillHandle as bC,rankSkills as vC,skillCatalogSystem as GC}from"./skill-runtime.js";import{skillFileProvider as KC,SKILL_FILE_TOOL as HC,skillEntry as wC,skillDiscoveryProvider as VC}from"./skill-files.js";import{PATH_KIND as WC,FILES_TOOL as YC,checkAttachablePath as zC,secretReason as JC,isSecretPath as jC,pathAttachment as QC,describeAttachedPath as qC,describePathSize as ZC,displayPath as $C,pathAttachmentsOf as eP,withAbsolutePaths as rP,attachedFilesProvider as oP,sniffType as tP,normalizePath as aP,collapseDots as iP,basenameOf as sP,SKIP_DIR_NAMES as nP}from"./attached-paths.js";import{EXTRACT_ROUTE as SP,EXTRACT_PROVIDER_ID as lP,MAX_DOCUMENT_BYTES as mP,PAGE_CHARS as TP,EXTRACT_TYPES as cP,validateExtractRequest as pP,validateExtractResponse as _P,paginateText as dP,gatewayExtractor as RP,extractorChain as AP}from"./extract-capability.js";import{MCP_REGISTRY_API as OP,MCP_CATALOG as IP,registryListUrl as uP,fetchMcpRegistryPage as NP,normalizeRegistryPage as gP,normalizeRegistryEntry as MP,mcpServerFromCatalogItem as CP}from"./mcp-registry.js";import{CE_SPECVERSION as LP,CE_TYPE_PREFIX as xP,CE_SOURCE_PREFIX as hP,rfc3339 as DP,ceSourceOf as FP,ceHostOf as yP,toCloudEvent as kP,fromCloudEvent as UP,toCloudEventLines as bP,fromCloudEventLines as vP,toCloudEventBatch as GP}from"./cloudevents.js";import{PUSH_LIMITS as KP,planEventPush as HP,ingestCloudEvents as wP,cursorOf as VP}from"./event-sync.js";import{eventStats as WP,projectYear as YP}from"./event-stats.js";import{SEALED_TYPE as JP,SEALED_VERSION as jP,SealError as QP,webCryptoSealer as qP,nodeSealer as ZP,newDeviceKey as $P,sealBlob as eL,openBlob as rL,shredBlob as oL,isSealedBlob as tL,isShredded as aL}from"./blob-envelope.js";import{USAGE_RING_MAX as sL,COST_BASES as nL,usageRecord as EL,usageFromEvent as SL,usageFromOpenAi as lL,rollupKey as mL,applyUsage as TL,summarizeUsage as cL,formatTurnUsage as pL,describeTurnUsage as _L,promptTokensOf as dL}from"./usage.js";import{rateFor as AL,costFor as fL,formatUsd as OL,PRICING_BASES as IL,PRICING_LABELS as uL,normalizePricing as NL,priceUsage as gL}from"./usage-pricing.js";import{FACTCHECK_SCHEMA as CL,FACTCHECK_VERDICTS as PL,lastClaimOf as LL,factcheckPrompt as xL,factcheckVerdict as hL,factcheckKey as DL}from"./cowriter-factcheck.js";import{createVoiceLoop as yL,VOICE_STATES as kL,MUTE_GRACE_MS as UL,MAX_PENDING_CHARS as bL,CONTINUATION_WINDOW_MS as vL,ECHO_OVERLAP as GL,ECHO_TAIL_MS as BL}from"./voice-loop.js";import{speakStream as HL}from"./speak-stream.js";import{createVad as VL,lowBandEnergy as XL,VAD_DEFAULTS as WL}from"./voice-vad.js";import{HF_API as zL,TTS_ARCH_LABEL as JL,ttsArchOf as jL,partitionTtsModels as QL,modelSearchUrl as qL,searchModels as ZL,normalizeModel as $L,formatDownloads as ex,describeSearchResult as rx}from"./model-registry.js";import{SAMPLE_RATE as tx,MIN_SECONDS as ax,TARGET_SECONDS as ix,MAX_SECONDS as sx,PROMPT_TEXT as nx,sampleSeconds as Ex,sampleTooShort as Sx,defaultVoiceName as lx,microphoneError as mx,webMedia as Tx,startRecording as cx}from"./voice-sample.js";import{TIER_LABEL as _x,modelRows as dx,catalogStatus as Rx,dtypePicker as Ax,voicePicker as fx,voiceListRows as Ox,diarizeRows as Ix,switchOutcome as ux,saveVoiceFailure as Nx,saveTimedOut as gx,catalogUnavailable as Mx}from"./voice-models.js";import{dictToText as Px,textToDict as Lx}from"./redaction-dictionary.js";import{groupRuns as hx,summarizeRun as Dx,findRepeats as Fx,withCost as yx,verdict as kx,toSanitizedReport as Ux}from"./run-details.js";import{parseMcpConfig as vx,parseArgsInput as Gx,argsToText as Bx,parseEnvInput as Kx,envToText as Hx,envLikeArgs as wx}from"./mcp-config-import.js";import{mutableRef as Xx,refreshArgs as Wx,canRefresh as Yx,describeRuntime as zx}from"./mcp-launcher.js";import{defaultMcpServers as jx,isDefaultMcpServer as Qx}from"./default-mcp-servers.js";import{MONITOR_SOURCES as Zx,DEFAULT_MONITOR_PROFILE as $x,monitorProfile as eh,monitorWindowMs as rh,monitorNeedsTools as oh,filterMonitorTools as th,recentFindings as ah,describeMonitorProfile as ih}from"./monitor-profile.js";import{defaultSkills as nh,meetingNotesSkill as Eh}from"./default-skills.js";import{SURFACES as lh,FEATURES as mh,listFeatures as Th,featureIds as ch}from"./feature-map.js";export{Sa as ACCESS_LOG_MAX,Ea as ACCESS_LOG_VERSION,i as ACTOR_KINDS,rp as AGENT_ID_RE,Dm as AGENT_REF_RE,Wd as ALLOW_ALL,a as ALL_TYPES,TR as AMBIENT_KINDS,vR as AMBIENT_MAX_WORDS,XI as API_BASE,op as APPLIES_TO,oT as ASK_TYPES,ap as ASSISTANT_ID,bA as AUTOCOMPLETE_MAX_TOKENS,UA as AUTOCOMPLETE_SYSTEM,vA as AUTOCOMPLETE_TEMPERATURE,nc as AUTONOMY,Ia as AdapterError,ip as AgentError,hs as AnalyzerError,MO as BACKUP_KDF_ITERATIONS,mT as BOARD_TOOL_NAME,hN as BOOKKEEPING_KEYS,wo as BRIEF_STATES,hg as BRINGBACK_COMMAND,_m as BUDGET_DIMENSIONS,ms as BUILTIN_TRIGGERS,Qs as BUILTIN_VOICE_INTENTS,gO as BackupError,pm as BudgetError,xs as CADENCES,aM as CAPABILITY_TOOLS_SYSTEM,hP as CE_SOURCE_PREFIX,LP as CE_SPECVERSION,xP as CE_TYPE_PREFIX,Sc as CHECKS,Vo as CLAIM_KINDS,n as CLASSES,cO as CLOCK_TOLERANCE_MS,wM as COMPACTION_SYSTEM,NO as COMPRESSIONS,Yl as COMPRESSION_MODES,vL as CONTINUATION_WINDOW_MS,nS as COOLDOWN_MS,nL as COST_BASES,ZI as COUNTED,Be as COWRITER_SYSTEM,Ke as COWRITER_TEMPERATURE,o as CURRENT_VERSION,FI as DARK,nR as DATA_SCOPES,ks as DAYPART_HOUR,oM as DECIDE_TOOL_NAME,up as DECLINE_REASONS,TT as DEFAULT_ASK_TIMEOUT_MS,dR as DEFAULT_BLOCK_CHARS,zl as DEFAULT_COMPRESSION,sc as DEFAULT_GATE,ui as DEFAULT_INTERNAL_PATTERNS,yi as DEFAULT_LOCK_MS,FS as DEFAULT_MAX_FINISH_TRIES,_R as DEFAULT_MAX_MEMORIES,DS as DEFAULT_MAX_ROUNDS,zp as DEFAULT_MIN_CALLS,$x as DEFAULT_MONITOR_PROFILE,VO as DEFAULT_POLICY,YS as DEFAULT_SHIELD,zS as DEFAULT_STORE,go as DEFAULT_THRESHOLD,Fs as DEFAULT_WAKE,ul as DESCRIBE_ACTION,AN as DESKTOP_SECTION_IDS,GL as ECHO_OVERLAP,BL as ECHO_TAIL_MS,E as EFFECTS,S as EGRESS,tp as EGRESS_CLASSES,uO as ENCRYPTED_TYPE,WI as ENDPOINTS,vr as ENGINE_KINDS,Wc as ENGINE_SPEC_KINDS,hn as ENTITIES_SCHEMA,YI as ENTITLEMENT_PUBLIC_JWK,xn as ENTITY_TYPES,ya as ENTRY_KINDS,eI as ENTRY_VERSION,t as EVENT_TYPES,Nc as EXECUTIVE,US as EXHAUSTED_NOTE,lP as EXTRACT_PROVIDER_ID,SP as EXTRACT_ROUTE,cP as EXTRACT_TYPES,ou as EntitlementError,l as EventError,CL as FACTCHECK_SCHEMA,PL as FACTCHECK_VERDICTS,si as FAILOVER_CAPABILITY_GAP,ii as FAILOVER_CLASS_GAP,cS as FAILOVER_MAX_ATTEMPTS,QO as FAST_FLUSH_MS,qO as FAST_STREAK,iC as FEATURES,mh as FEATURE_MAP,lh as FEATURE_SURFACES,JI as FEATURE_TIER,PM as FETCHED_TTL_MS,Xn as FIELD_TYPES,YC as FILES_TOOL,Qm as FINDINGS_SCHEMA,qm as FINDING_KINDS,Al as FIND_ACTION,Fl as FIND_DESCRIPTION,yl as FIND_RESIDENT,Dl as FIND_TOOL_NAME,yS as FINISH_NUDGES,kM as FIT_HEADROOM,qI as FREE_LIMITS,BA as GEARS,LA as GOAL_MIN_NEW,Lm as GRANTABLE,Nd as GRANT_INFO,hm as GRANT_RE,zL as HF_API,Ec as HUMAN_FLAGS,tS as INPUT_PROGRESS_TOOLS,oN as INSIGHT_KINDS,CA as INSTRUCTION_RE,Ni as INTERNAL_PATTERN_CATALOG,Mr as INVARIANTS,rs as JOB_ACTIONS,ec as JOB_POST_ID_RE,$T as JOB_POST_STATUSES,nI as JOURNAL_BOUNDS,ZT as JobPostError,$O as JournalError,Fi as KDF_HASH,Di as KDF_ITERATIONS,Vd as KernelError,Ip as LEDGER_ENTRY_KINDS,Op as LEDGER_VERSION,DI as LIGHT,uT as LIVE_RUN_STATUSES,aC as LOCKABLE,kS as LOOPING_NUDGE,Xa as LOOP_KINDS,eO as LibraryError,Wa as LoopError,zo as MAX_BRIEF_CHARS,Yo as MAX_BRIEF_RECORDS,Xo as MAX_CLAIMS,Wo as MAX_CLAIM_REFS,ys as MAX_COMMANDS_PER_DELTA,j_ as MAX_DEPTH,mP as MAX_DOCUMENT_BYTES,Gi as MAX_ENTRIES,lt as MAX_EXCERPTS,mt as MAX_EXCERPT_CHARS,Le as MAX_GRAPH_NODES,gc as MAX_JOBS_PER_ROUND,iR as MAX_MATCHES,cR as MAX_MEMORY_CHARS,bi as MAX_NOTE_CHARS,Mu as MAX_NOTE_IMAGE_BYTES,bL as MAX_PENDING_CHARS,Mc as MAX_ROUNDS,sx as MAX_SECONDS,vi as MAX_SECRET_CHARS,Mo as MAX_SUBJECTS,Co as MAX_SUBJECT_CHARS,J_ as MAX_SUBTASKS,bn as MAX_SUGGESTIONS,vn as MAX_SUGGESTION_CHARS,St as MAX_SYNTHESIS_CLAIMS,ff as MAX_TAGS,Af as MAX_TAG_LENGTH,Ui as MAX_TITLE_CHARS,$f as MAX_TITLE_LEN,Gf as MAX_TITLE_LENGTH,fn as MAX_TOPICS,On as MAX_TOPIC_CHARS,IP as MCP_CATALOG,OP as MCP_REGISTRY_API,AE as MCP_SIGN_IN_CODE,Ud as MCP_TOOL_NAME,lR as MEMORY_KINDS,mR as MEMORY_KIND_NAMES,AR as MEMORY_TOOL_SPEC,fR as MEMORY_UPCASTERS,SR as MEMORY_VERSION,Cm as MERGE_POLICIES,hp as MIN_FIT,pR as MIN_MEMORY_CHARS,ax as MIN_SECONDS,Q_ as MIN_TAKEUP_FIT,os as MISSED_POLICIES,mN as MOMENT_BADGES,Zx as MONITOR_SOURCES,UL as MUTE_GRACE_MS,Gd as ManifestError,Eg as McpClient,OR as MemoryError,bt as NEAR_TITLE_DISTANCE,YA as NEW_THREAD_SLASH_ITEMS,H as NOTE_ACTIONS,X as NOTE_ACTION_ERRORS,w as NOTE_ACTION_ORDER,V as NOTE_ACTION_TEMPERATURE,W as NOTE_COMMANDS,z as NOTE_COMMAND_MAX_TOKENS,Y as NOTE_COMMAND_TEMPERATURE,gu as NOTE_IMAGE_SCHEME,Cu as NOTE_IMAGE_TYPES,SN as NOTE_SECTIONS,PC as NOTE_TOOL_SPECS,oS as OBSERVATION_TOOLS,NI as OMNI_GRAMMAR,uI as OMNI_MODES,TP as PAGE_CHARS,yI as PALETTES,WE as PARALLEL_LOCAL_RE,WC as PATH_KIND,Bt as PDF_MAX_CHARS,QS as PERMISSION_ANSWERS,jS as PERMISSION_EVENT,sC as PERMISSION_MODES,qS as PERMISSION_TIMEOUT_MS,ZS as PERMISSION_TOOL_NAME,VI as PLANS,qe as PLAN_AUTHORS,$e as PLAN_DECOMPOSE_MAX_TOKENS,Ze as PLAN_DECOMPOSE_SYSTEM,er as PLAN_DECOMPOSE_TEMPERATURE,Pm as PLAN_MODES,Qe as PLAN_ROLES,rr as PLAN_SECTION_MAX_TOKENS,or as PLAN_SECTION_TEMPERATURE,oC as POLICY_TOKEN_TYPE,rC as POLICY_VERSION,eT as POST_KINDS,rT as POST_STATUSES,dN as PREF_SECTIONS,RN as PREF_SECTION_IDS,qM as PRESENCE_BUDGET_TOKENS,ZM as PRESENCE_KINDS,IL as PRICING_BASES,uL as PRICING_LABELS,nC as PRODUCT_HOSTS,HT as PROJECT_ID_RE,Oc as PROJECT_JOBS_SCHEMA,Ic as PROJECT_REVIEW_SCHEMA,Cc as PROJECT_RUN_STATUSES,KT as PROJECT_STATUSES,nx as PROMPT_TEXT,ct as PROPOSAL_STATES,jI as PRO_FEATURES,KP as PUSH_LIMITS,eC as PolicyError,BT as ProjectError,uc as ProjectRunError,lr as REACH,ru as RECHECK_INTERVAL_MS,tm as RECIPE_MODES,Em as RECIPE_TOOL_NAME,Vc as RECORD_ENGINE_KINDS,Zf as RECORD_KINDS,xO as RECORD_TYPE,xp as RECRUIT_SCHEMA,tC as REDACTION_TIERS,Uo as REDACTION_TOKEN_TYPES,on as REFINEMENT_SCHEMA,_ as REF_KINDS,Fr as REGISTRY_STATES,Xd as REQUIRED_PLUGINS,xN as REQUIREMENTS,tM as RERANK_TOOL_NAME,d as RESOLUTION,MC as RESPONSE_LANGUAGES,Wn as RESPONSE_MODES,Oe as RESULTS_PER_ENGINE,WS as RESULT_TOOL_NAME,NT as RESUMABLE_RUN_STATUSES,Ca as RETRIEVAL_TOOLS,Hc as ROLE_KINDS,Mm as ROLE_MODES,Cd as ROSTER_KINDS,bS as ROUND_SEPARATOR,Yc as ROUTE_PREFERS,g_ as RUN_STATUSES,om as RecipeError,Ei as RouterError,Li as RuleError,RR as SAME_FACT,tx as SAMPLE_RATE,$i as SCHEDULE_KINDS,qp as SCM_KINDS,s as SCOPE_KINDS,Kc as SCORECARD_ENTRY_KINDS,wc as SCORECARD_VERSION,JP as SEALED_TYPE,jP as SEALED_VERSION,fe as SEARCH_ENGINES,dI as SEGMENT_RE,vo as SELF_LABELS,PN as SETTINGS_GROUPS,WN as SETTINGS_OPEN_DEFAULT,LN as SETTINGS_PAGES,kI as SHAPE,xg as SIDELINE_COMMANDS,Fg as SIDELINE_SLASH_ITEMS,Jg as SIDELINE_TOOL_NAME,jg as SIDELINE_TOOL_SPEC,WR as SKILL_CONTEXTS,jR as SKILL_FILE_KINDS,HC as SKILL_FILE_TOOL,YR as SKILL_HISTORY_SCOPES,XR as SKILL_MANIFEST_VERSION,zR as SKILL_MCP_MODES,JR as SKILL_TRUST,QR as SKILL_UPCASTERS,TA as SKILL_VARS,cA as SKILL_VAR_NAMES,nP as SKIP_DIR_NAMES,WA as SLASH_TYPING_RE,jO as SLOW_FLUSH_MS,XO as SLOW_POLICY,gd as SOLO_BUDGET,Ju as SORT_LABELS,zu as SORT_MODES,Bd as SOURCES,cM as SOURCE_TOOL_SPEC,BR as SOURCE_TRUST,vt as SPAN_MIN_TERMS,wu as SPEAKER_SLOTS,LT as STALLED_AFTER_MS,pp as STARTER_AGENTS,Fm as STARTER_TEAMS,d_ as STEP_MAX_CHARS,No as SUBJECT_KINDS,Gn as SUGGESTIONS_SCHEMA,pt as SUPERSEDE_OVERLAP,Pi as SUPPRESSED,Te as SWARM_ROLES,st as SYNTHESIS_SCHEMA,ts as ScheduleError,QP as SealError,Gr as SearchEngineError,qR as SkillManifestError,KR as SkillSourceError,uA as SkillVarError,Yn as StructuredError,pO as SyncError,ix as TARGET_SECONDS,R_ as TASK_TRANSCRIPT_MAX_CHARS,QI as TEAM_FEATURES,D_ as TEAM_MANUAL,Vm as TEAM_PLAN_SCHEMA,Md as TEAM_SHAPES,h_ as TEAM_TOOL_NAME,hI as THEMES,Zm as THREAD_KINDS,$m as THREAD_STATUSES,Dg as THREAD_TOOL_NAME,yg as THREAD_TOOL_SPEC,_x as TIER_LABEL,Bf as TITLE_RULES_VERSION,UI as TOKEN_NAMES,bI as TOKEN_ROLES,UE as TOKEN_SKEW_MS,In as TOPICS_SCHEMA,Jt as TRANSCRIPT_MAX_CHARS,es as TRIGGER_KINDS,JL as TTS_ARCH_LABEL,gm as TeamError,N_ as TeamRunError,Zr as ToolGroupError,ES as UNAVAILABLE_REASONS,vf as UNTITLED_MEETING,pr as UPCASTERS,zI as UPGRADE_URL,sL as USAGE_RING_MAX,Rn as UTTERANCE_DANGLING_MS,dn as UTTERANCE_SETTLE_MS,WL as VAD_DEFAULTS,hi as VAULT_VERSION,kL as VOICE_STATES,ki as VaultError,Us as VoiceIntentError,Yr as WEATHER_HOST,zr as WEATHER_TIMEOUT_MS,Zg as WEATHER_TOOL_NAME,$g as WEATHER_TOOL_SYSTEM,Gl as WEB_SEARCH_SPEC,bl as WEB_SEARCH_TOOL_NAME,vl as WEB_SEARCH_TOOL_SYSTEM,Ro as WIDGET_SURFACES,Np as WITHDRAW_AFTER,v_ as WORKLOG_KINDS,xm as WORK_GRANTS,KA as WRITER_PREFS,HA as WRITER_PREF_DEFAULTS,Jr as WeatherError,zt as YOUTUBE_HOSTS,Ya as abortCause,dt as accept,Nl as actionMenu,zO as adaptProfile,Og as adaptiveToolRetryHint,Nf as addTag,PS as addUsage,bc as adjustSummary,OO as advanceBases,mC as agentAllowed,md as agentColor,Rp as agentFromForm,ld as agentHue,Td as agentInitials,Sd as agentKind,oe as agentMentionAt,Do as aliasMap,hS as anthropicTranscript,zT as applyAll,jp as applyCard,Ge as applyEdits,SI as applyEntry,AC as applyPolicyToSettings,uN as applySections,TL as applyUsage,de as appoint,Xr as areaLabel,wa as argsShape,Bx as argsToText,Sp as assistantAgent,oP as attachedFilesProvider,br as attemptOrder,Fc as attest,DE as authHeader,PE as authorizeUrl,tg as availableDestinations,HO as backupFromRecords,GE as bareToolName,sP as basenameOf,GO as bestCodec,dp as blankAgent,s_ as blankConnection,QT as blankJobPost,kT as blankProject,km as blankTeam,rS as blockedToolResult,zm as boardText,nT as boardToolProvider,ET as boardToolSpec,RI as boundSegments,o_ as branchFor,vN as breadcrumb,wm as breakCycles,jo as briefId,Zo as briefLinks,Kg as briefPrompt,qo as briefTerms,Qo as briefToText,gl as buildGroupDispatchSpec,xe as buildNoteGraph,Wt as buildPdfDocument,Ie as buildSearchUrl,Ol as buildToolset,La as buildTrajectory,ia as buildTranscriptDocument,Ad as builtinOrg,Eu as can,ji as canAddEntry,YT as canJobPostTransition,yT as canProjectTransition,Yx as canRefresh,BE as canRunConcurrently,Or as canSatisfy,PR as candidatesFrom,Lc as canonical,uE as canonicalResource,iM as capabilityToolsProvider,qt as captionTracksFromPlayerResponse,pd as cardNumbers,Jp as cardOverride,Vp as carveBudget,Rx as catalogStatus,Mx as catalogUnavailable,OI as catchUpPlan,N as causesAreWellFormed,yP as ceHostOf,FP as ceSourceOf,MN as changedSections,zC as checkAttachablePath,gr as checkInvariants,$o as checkKnowledgeInvariants,tu as checkoutUrl,OT as checkpointFrom,B as chipText,Et as claimsFromSynthesis,iS as classifyFailure,pe as classifyModel,di as classifySource,El as claudePermissionResponse,Kf as cleanTitle,GA as clipCompletion,T_ as clipMessage,gs as clipText,m_ as clipTranscript,oE as coerce,kn as coerceEntities,iP as collapseDots,pg as combineSystemPrompt,Z as commandLineAt,cn as commandLooksFinished,Bs as commandsFromSegments,VS as compactValue,HM as compactable,vM as compactionPrompt,GM as compactionRecord,u as compareEvents,Zd as compileQuery,bs as compileWake,G as composerChips,wl as compressToolSpec,Vl as compressToolSpecs,Xl as compressionStats,r_ as connectionFor,n_ as connectionFromForm,CR as containment,Jo as contentHash,p_ as continuationNote,Sf as continueList,ft as converge,fL as costFor,Ta as createAccessLog,Oa as createAdapterRegistry,Ig as createAdaptiveToolPolicy,Ls as createAnalyzerRegistry,ST as createAnswerBox,c as createAppender,xr as createBlobStore,Wm as createBoard,lm as createBudget,uS as createCallRunner,Ma as createCitationCollector,__ as createControl,OM as createFetchedStore,ZO as createJournal,Hd as createKernel,Lr as createLogStore,vd as createManifest,Pr as createMemoryAdapter,sS as createModelHealth,Za as createModelRouter,ml as createPermissionDesk,Dr as createRegistry,GS as createResultStore,Ci as createRuleEngine,pT as createRunCache,EI as createSegment,wR as createSkillSourceRegistry,hA as createSpendMeter,Ha as createStepRecorder,aE as createStructuredStream,qr as createToolGroupRegistry,QE as createToolLoopGuard,ls as createTriggerRegistry,Ka as createTurnRunner,_n as createUtteranceGate,VL as createVad,Bi as createVault,Js as createVoiceIntentRegistry,yL as createVoiceLoop,a_ as credentialEnv,GI as cssVarName,VP as cursorOf,Zu as dayBucket,dO as decide,Bp as decideRecruit,tA as declaredAccess,PO as decryptBackup,uu as defaultImagePolicy,Iu as defaultLinkPolicy,jx as defaultMcpServers,y as defaultModelId,nh as defaultSkills,CM as defaultTtl,js as defaultVoiceIntents,lx as defaultVoiceName,mM as deferAttachedSources,fa as defineAdapter,Ep as defineAgent,Os as defineJob,WT as defineJobPost,Va as defineLoop,Ps as defineMeetingAnalyzer,Qa as defineMiddleware,ja as defineModel,FT as defineProject,qa as defineRouteStrategy,Mi as defineRule,zn as defineSchema,kr as defineSearchEngine,HR as defineSkillSource,Rm as defineTeam,Qr as defineToolGroup,Ss as defineTrigger,zs as defineVoiceIntent,EN as demd,vu as densityRibbon,P as dequeue,hO as deriveBackupKey,ot as deriveBrief,tt as deriveBriefs,Hi as deriveKey,Yf as deriveMeetingTitle,SO as deriveTitle,mp as describeAgent,qC as describeAttachedPath,b_ as describeCall,i_ as describeConnection,Zc as describeEngine,ih as describeMonitorProfile,ZC as describePathSize,tl as describePermission,nm as describeRecipeForApproval,Nm as describeRole,zx as describeRuntime,Jn as describeSchema,rx as describeSearchResult,XN as describeSettingValue,wS as describeShape,MT as describeSpend,x_ as describeTeamForApproval,sd as describeTeamShape,MS as describeToolCall,_L as describeTurnUsage,og as destinationFromAgent,rg as destinationFromEndpoint,Ix as diarizeRows,Px as dictToText,At as diffProposal,FE as discoverMcpAuth,Fa as displayName,$C as displayPath,_f as docStats,FA as draftSeparator,at as driftedRefs,$l as dryRunRecipe,I_ as dryRunTeam,Ax as dtypePicker,Is as dueJobs,xt as duplicateTitles,yo as earnsBrief,Ys as editDistance,ve as editKey,ac as effectiveGate,po as effectiveGrants,VN as effectiveSettingValue,VE as effectiveToolName,he as egoGraph,_C as egressAllowed,tT as emptyBoardState,bT as emptyProjectRecord,RT as emptyRun,jA as enabledSkills,CO as encryptBackup,SC as endpointAllowed,Gc as engineKey,qc as engineKeyOf,lp as engineOf,Ce as engineOrder,Qc as engineRef,Dp as engineRow,Fp as engineRows,Fd as engineStrip,Up as engineWorth,Fn as entitiesFormat,Dn as entitiesPrompt,Un as entitiesStream,Wi as entryMeta,iI as entryStamp,wx as envLikeArgs,Hx as envToText,oo as equipmentFor,za as errorFacts,xl as estimateTokens,vp as evaluatorPrompt,WP as eventStats,Ql as expandRecipe,rR as expandReplacement,OA as expandSkillPrompt,sE as explainMcpError,Ru as exportDevicePublicKey,W_ as extendDependents,MI as extractFilters,Ri as extractUrls,AP as extractorChain,DL as factcheckKey,xL as factcheckPrompt,hL as factcheckVerdict,TS as failoverExhausted,ti as failoverOrder,RC as featureEnabled,ch as featureIds,uM as fetchKey,NP as fetchMcpRegistryPage,kE as fetchMcpToken,NM as fetchTitle,gM as fetchedAsSources,MM as fetchedFacts,Ff as filterByTags,Da as filterEntries,kC as filterMcpServersForSkill,th as filterMonitorTools,q as filterNoteActions,qu as filterRecords,F as filterSections,be as filterTypoEdits,_l as findActionArgs,kl as findDispatchProvider,Zn as findJson,$d as findMatches,Fx as findRepeats,FN as findRow,ie as findSkillByName,se as findTargetByName,cl as findTools,pl as findToolsResult,vs as findWakeCommand,Jm as findingsInstruction,iT as findingsOf,Uc as fit,hM as fitFor,Gm as fixedPlan,zg as foldBackFor,Hg as foldBackNote,aT as foldBoard,wg as foldNotes,vT as foldProject,AT as foldRun,fO as forkConflict,pa as formatBytes,ex as formatDownloads,Jd as formatReport,Ut as formatSurvey,Pf as formatTag,hf as formatTagQuery,Hu as formatTalkTime,ta as formatTimestamp,aa as formatTranscript,pL as formatTurnUsage,OL as formatUsd,Vr as formatWeather,J as frameNoteAction,$I as freeCap,qi as fromB64,UP as fromCloudEvent,vP as fromCloudEventLines,fo as fuseRRF,ic as gateAllows,RP as gatewayExtractor,du as generateDeviceKey,gg as getMcpProviders,Kr as getWeather,Tn as gistOpening,mn as gistText,uC as globToRegExp,xA as goalDraftAllowed,Im as grantAllows,Od as grantChoices,Id as grantsFromChoices,ro as grantsNeededFor,Fe as graphStats,yA as groundingBlock,pN as groupActionsByOwner,kN as groupById,D as groupModels,eN as groupRecords,hx as groupRuns,oa as groupSegments,sN as hasInsights,uf as hasTag,xf as hasTagTerms,V_ as holdsGrants,QN as homeChecklist,Ai as hostMatches,UO as identityCodec,lM as imageAttachmentsOf,lf as indentSelection,wP as ingestCloudEvents,aN as insightKindOf,SE as installHintFor,PA as instructionOnLine,LI as isActionable,Wr as isAmbiguousLocation,Jf as isBetterTitleSource,fd as isBuiltin,KE as isCacheable,yM as isContextLimitError,Qx as isDefaultMcpServer,LO as isEncryptedBackup,aI as isEntry,ln as isFillerSentence,Hf as isGenericTitle,ug as isInvalidToolParametersResult,zi as isLocked,eS as isLoopableTool,u_ as isModelUnavailable,rE as isNothing,el as isPermissionTool,su as isPro,C as isQueued,tO as isRecordId,bo as isRedactionToken,A as isRef,Ne as isResultHost,IT as isResumable,ZR as isSafeSkillPath,tL as isSealedBlob,yO as isSealedRecord,jC as isSecretPath,Go as isSelfLabel,AO as isSettled,aL as isShredded,JA as isSkillEnabled,AS as isSourceGateError,Xu as isSpeakerImageValue,EE as isStaleMcpSession,ho as isSubjectCandidate,nu as isTeam,tI as isTombstone,T as isValidEvent,uR as isValidMemory,iO as isValidStoredRecord,Qt as isYouTubeUrl,bp as jobApplications,X_ as jobFromSubtask,qT as jobPostFromForm,pc as jobResults,JT as jobToRole,us as jobsForEvent,Ac as jobsPrompt,DM as keepRecentFor,kO as keyCache,ha as lanesOf,gC as languageInstruction,LL as lastClaimOf,io as layoutFlowchart,gp as ledgerKey,cu as licenseFromPayload,gA as lineAt,I as linearize,Kt as linesFromItems,Ot as linkClaims,GN as linkTo,BN as linkToRow,Na as linkifyCitations,RA as lintSkillPrompt,ke as lintText,Th as listFeatures,DN as listRows,Ji as lockedSummary,Xt as looksScanned,XL as lowBandEnergy,ma as makeAccessEvent,Ll as makeDispatchProvider,hc as makeEntry,Cl as makeGroupDispatchExecutor,rI as makeJournalEntry,Cp as makeLedgerEntry,LC as makeNoteToolExecutor,oO as makeRecordId,R as makeRef,li as makeSourceStore,ca as makeStorageTier,mi as manifestText,Zl as mapInput,FR as markUsed,xR as matchForForget,eR as matchIndexFor,ZA as matchSlashRecipe,qA as matchSlashSkill,ef as matchSlashTeam,Ms as matchSummary,Df as matchesTagFilter,Pg as mcpBackoff,kd as mcpDispatchProvider,Tg as mcpInventorySystem,Sg as mcpProvider,CP as mcpServerFromCatalogItem,mg as mcpSharedSystem,wd as meetDecisions,fi as meetReach,ps as meetingEndedTrigger,iN as meetingInsights,Eh as meetingNotesSkill,cs as meetingStartedTrigger,jf as meetingTitlePrompt,DR as memoryBlock,NR as memoryKey,hC as memoryToolProvider,kR as memoryToolSystem,ne as mentionAnswerPrefix,Dt as mentionsFrom,sg as mergeEndpointDestinations,Me as mergeEngineResults,Je as mergeResearchLanes,cI as mergeSegments,ae as mergeSkillPrompt,gN as mergeStamped,l_ as mergeTranscript,BM as messagesAfter,S_ as messagesFor,mx as microphoneError,FM as minWindowFor,mE as missingCommandIn,lE as missingCommandMessage,td as missingStarters,lC as modelAllowed,dx as modelRows,qL as modelSearchUrl,k as modelSummary,TN as momentBadge,rn as monitorIntent,oh as monitorNeedsTools,eh as monitorProfile,rh as monitorWindowMs,L as moveQueued,Io as multiSearch,Xx as mutableRef,yp as needForJob,oA as needsBridge,HE as needsConfirmation,pu as needsRecheck,$P as newDeviceKey,yu as newNoteImageId,c_ as newSteps,is as nextFireAt,Vg as nextSidelineIndex,ns as nextWakeAt,vO as nodeCodec,ZP as nodeSealer,SS as normModelName,np as normalizeAgent,Tm as normalizeBudget,Mp as normalizeCall,$p as normalizeConnection,vc as normalizeEngine,Jc as normalizeEngineSpec,tc as normalizeGate,Om as normalizeGrants,VA as normalizeIntent,XT as normalizeJobPost,IR as normalizeMemory,$L as normalizeModel,EC as normalizeOrgPolicy,aP as normalizePath,TE as normalizePlatform,zc as normalizePolicy,NL as normalizePricing,DT as normalizeProject,ut as normalizeRecord,Nt as normalizeRecords,MP as normalizeRegistryEntry,gP as normalizeRegistryPage,B_ as normalizeRequest,Bc as normalizeScm,lA as normalizeSkill,Xs as normalizeSpeech,aO as normalizeStoredRecord,Po as normalizeSubject,Of as normalizeTag,If as normalizeTags,fm as normalizeTeam,Cn as normalizeTopic,Pn as normalizeTopics,LS as normalizeUsage,wA as normalizeWriterPrefs,Q as noteActionItems,j as noteActionLabel,Pu as noteImageId,xu as noteImageIds,Lu as noteImageRef,hu as noteImageRefs,en as noteIntent,lN as noteSectionKind,Wg as noteUnits,Ld as observeInbox,eu as observeSince,xd as observeStrip,Ns as occurrenceKey,ss as occurrencesBetween,dl as oneLiner,xS as openAiTranscript,rL as openBlob,Vi as openEntry,FO as openRecord,Ht as orderLines,aA as originLabel,$R as originOf,Fu as orphanNoteImages,Lt as orphanRecords,nf as outlineOf,Rl as overlapRank,fI as overlayEntries,nE as packageFromArgs,yN as pageById,Vt as pageTextFromItems,UN as pagesOf,dP as paginateText,vI as paletteFor,wt as paragraphsFromLines,XE as parallelEligible,re as parseAgentMention,Gx as parseArgsInput,OE as parseAuthChallenge,et as parseBriefText,Ug as parseBringBack,Hs as parseClock,Gs as parseCommand,Es as parseCron,Ks as parseDuration,yn as parseEntities,Kx as parseEnvInput,Gp as parseEvaluation,Ym as parseFindings,ao as parseFlowchart,dc as parseJobs,jd as parseJsonl,KN as parseLink,Ef as parseListItem,vx as parseMcpConfig,cN as parseMeetingNotes,Uu as parseMeetingText,zA as parseNewThread,Vs as parseNumberWords,gI as parseOmni,Bm as parsePlan,ar as parsePlanTasks,rO as parseRecordId,sn as parseRefinement,e_ as parseRemote,Rc as parseReview,_I as parseSegmentName,kg as parseSideline,pE as parseSignInPrompt,te as parseSkillMention,dA as parseSkillVars,tE as parseStructured,Hn as parseSuggestions,Lf as parseTagQuery,ra as parseTimedText,Qf as parseTitleResponse,Mn as parseTopics,wr as parseWeather,ws as parseWhen,jt as parseYouTubeUrl,QL as partitionTtsModels,QC as pathAttachment,eP as pathAttachmentsOf,M as pendingQueue,il as permissionAllowed,al as permissionAnswer,ll as permissionIcon,ol as permissionKeys,Sl as permissionLine,TC as permissionMode,rl as permissionRequestFromClaude,$S as permissionToolSpec,_s as personJoinedTrigger,xa as phasesOf,ds as phraseTrigger,$t as pickCaptionTrack,YO as pickProfile,ge as pickResults,IN as pickSections,ai as pinnedOrderOf,Er as planAttribution,nr as planBody,bM as planCompaction,HP as planEventPush,iu as planLabel,au as planOf,sr as planParts,Oo as planQueries,tr as planSectionSystem,RO as planSync,ir as planTitleFor,zE as planToolRound,Km as plannerPrompt,eg as pointsAtGateway,JO as policyFor,OC as policyHash,fC as policyLabel,Ap as poolFor,oi as preferenceFor,dM as prefetchAttachment,_M as prefetchPlan,JM as presenceBlock,WM as presenceDelta,XM as presenceFor,gL as priceUsage,PT as priorWorkFor,Ra as projectChain,UT as projectFromForm,GT as projectProgress,YP as projectYear,x as promoteQueued,rd as promoteRoles,ba as promptEntries,dL as promptTokensOf,Hp as proposalFromNeeds,wp as proposalToAgent,_t as propose,yR as pruneMemories,As as questionTrigger,bN as quickRows,le as rankLinkTargets,ze as rankResearchCards,vC as rankSkills,ko as rankSubjects,AL as rateFor,YM as reachOf,mr as reachRank,Tr as reachSatisfies,gE as readAuthServerMetadata,CE as readRegistration,NE as readResourceMetadata,ci as readSource,Bg as readThread,xE as readTokenResponse,jT as readyJobs,hR as recall,nl as recallPermission,ah as recentFindings,$A as recipeInvocationText,ql as recipeParams,im as recipeToolProvider,sm as recipeToolSpec,LR as reconcile,Ur as reconcileEngines,KO as recordsFromBackup,Xp as recruitEvents,Kp as recruitForRun,Wp as recruitJob,la as redactAccessArgs,Mt as redactedTokensIn,Ct as redactionCost,pC as redactionTier,Sn as refineSpokenCommand,an as refinementFormat,tn as refinementPrompt,nn as refinementStream,Wx as refreshArgs,yE as registerMcpClient,ME as registrationRequest,uP as registryListUrl,Rt as reject,sl as rememberPermission,b as rememberRecent,Zs as reminderIntent,gf as removeTag,nM as renderContent,so as renderFlowchartSvg,Ou as renderMarkdown,eE as repairJson,tR as replaceAll,aR as replaceAllInRange,oR as replaceMatch,zd as replay,ei as requirementsFor,ri as requirementsForStep,Xe as researchRelevance,Ye as researchSnippet,Cg as resetMcp,f as resolveRef,bg as resolveSidelineTarget,CI as resolveSince,Fo as resolveSubjects,cp as resolveTeam,HI as resolveTheme,Qn as responseFormat,XS as resultToolSpec,O_ as resumeTeam,fc as reviewPrompt,$n as rewriteJson,DP as rfc3339,ce as roleById,cd as roleCardId,mL as rollupKey,Ed as rosterRows,_c as roundBudget,NS as roundCap,jM as roundCount,Tc as roundJobs,QM as roundMinutes,qE as roundSignature,cC as routeAllowed,kp as routeFor,da as routeGraph,Re as routeTeam,$u as rowTime,fT as runFromEvents,hd as runLanes,em as runPlan,mc as runProject,rm as runRecipe,KS as runResultQuery,CT as runState,f_ as runTeam,JE as runToolRound,IS as runTurnLoop,mS as runWithFailover,we as salientTerms,bR as sameMemory,ni as sameModelKey,iA as sameSkillOrigin,Cf as sameTags,pn as sameUtterance,Ex as sampleSeconds,Sx as sampleTooShort,gx as saveTimedOut,Nx as saveVoiceFailure,WO as scalePolicy,$s as scheduleIntent,um as scmAllows,eL as sealBlob,wi as sealEntry,DO as sealRecord,Yi as searchEntries,ZL as searchModels,Bl as searchResultsToText,zN as searchSettings,nO as searchTextFor,JC as secretReason,NN as sectionHash,ZN as sectionOfRow,fN as sectionSpec,ON as sectionValue,ag as seedDestinations,lI as segmentBytes,mI as segmentEntries,pI as segmentName,AI as segmentsFor,df as selectionStats,wN as setSettingValue,dC as settingLocked,HN as settingValue,qN as settingsGateOf,YN as settingsOpenMode,jN as settingsStatusAll,JN as settingsStatusOf,En as settleRefinement,xc as sha256,BS as shieldToolResult,Ti as shortUrl,zf as shouldAutoTitle,TI as shouldRotate,ig as shouldSeedDestinations,oL as shredBlob,Yg as sidelinePath,Qg as sidelineToolProvider,Au as signChallenge,_E as signInError,dE as signInFromError,RE as signInToolResult,$a as signalsFrom,MR as similarity,GC as skillCatalogSystem,ud as skillChoices,VC as skillDiscoveryProvider,wC as skillEntry,KC as skillFileProvider,rA as skillFiles,bC as skillHandle,af as skillInvocationLabel,tf as skillInvocationOf,sA as skillIsStale,yC as skillPackageFiles,FC as skillRunFromSkill,UC as skillToolSystem,pA as skillVar,IA as skillVarGuidance,_A as skillVarPattern,of as slashCommandInsert,QA as slashCommandItems,gR as slotOf,Tp as slugAgentId,bm as slugTeamName,tP as sniffType,lO as snippetOf,dd as soloTeam,Qu as sortRecords,ju as sortStamp,cg as sourceCitationSystem,RS as sourceGate,dS as sourceGuardFor,pi as sourceId,Xg as sourceOf,Oi as sourcePolicyFor,_S as sourcePolicySettings,Ii as sourceUrlsOf,ga as sourcesFromToolText,Ft as spanningQuestions,HL as speakStream,Bu as speakerBreakdown,Wu as speakerLabeller,bu as speakerStats,Ku as speakerTimeline,gT as spendOf,Dd as spendRows,ZE as stableToolCallKey,_O as stampOf,cx as startRecording,_p as starterAgents,od as starterTeam,ym as starterTeams,CS as stepResultText,bO as streamCodec,Du as stripNoteImageRefs,Bo as stripQualifiers,Lo as subjectKey,xo as subjectTokens,fA as substituteSkillVars,K_ as subtaskFromRequest,kf as suggestExistingTags,Ko as suggestMerges,AA as suggestSkillVar,Kn as suggestionsFormat,Bn as suggestionsPrompt,wn as suggestionsStream,kc as summarize,Pp as summarizeEngine,Dx as summarizeRun,cL as summarizeUsage,tN as summarySections,sI as supersedes,_e as supportsSubagents,yt as surveyCorpus,ux as switchOutcome,nt as synthesisPrompt,KM as systemWithSummary,yf as tagFacets,Uf as tagsSearchText,H_ as takeUp,w_ as takeUpLine,Y_ as taskTree,cc as teamForRound,Um as teamFromForm,ad as teamHealth,rf as teamInvocationText,$_ as teamLanes,Z_ as teamLine,id as teamShape,C_ as teamToolProvider,P_ as teamToolSpec,L_ as teamToolTimeoutMs,Rd as teamsWithSolos,Mg as testMcpServer,Lx as textToDict,KI as themeStylesheet,vg as threadManifest,z_ as threadRows,Ua as threadTitle,Gg as threadToolProvider,Ga as threadTree,ka as threadsOf,kt as thresholdSweep,Su as tierFor,$c as tierOf,ea as timedTextUrl,qs as timerIntent,Ts as timerTrigger,Wf as titleFromDate,Xf as titleFromParticipants,wf as titleFromSummary,Vf as titleFromTopics,Qi as toB64,jm as toBriefClaims,EM as toChatMessages,kP as toCloudEvent,GP as toCloudEventBatch,bP as toCloudEventLines,BI as toCssVars,EO as toIndexEntry,jn as toJsonSchema,Qd as toJsonl,Ir as toModelSchema,ur as toModelSchemas,SM as toMultimodalMessages,Ux as toSanitizedReport,sO as toSearchRecord,Tf as toggleLinePrefix,pf as toggleLink,Mf as toggleTag,cf as toggleTask,mf as toggleWrap,hE as tokenExpired,LE as tokenRequest,Ws as tokenize,oI as tombstone,$E as toolMadeProgress,eo as toolNeedFor,_g as toolStatus,vE as toolTraits,Ve as topicTerms,Rs as topicTrigger,gn as topicsFormat,Nn as topicsPrompt,un as topicsSchema,Ln as topicsStream,wE as traitsIndex,sa as transcriptFromTracks,$ as triggerQueryAt,Wl as trimDescription,De as trimGraph,eA as trustOf,jL as ttsArchOf,va as turnsOf,qn as unfence,Ki as unlockVault,ue as unwrapRedirect,_r as upcast,dr as upcastAll,UR as upcastMemory,EA as upcastSkill,SA as upcastSkills,_d as upsertAgents,SL as usageFromEvent,lL as usageFromOpenAi,cm as usageOf,EL as usageRecord,Ml as validateAction,sp as validateAgent,mm as validateBudget,Ar as validateCapability,Zp as validateConnection,jc as validateEngineSpec,Xi as validateEntry,m as validateEvent,pP as validateExtractRequest,_P as validateExtractResponse,oc as validateGate,fr as validateInvocation,VT as validateJobPost,hT as validateProject,jl as validateRecipe,as as validateSchedule,nA as validateSkill,Am as validateTeam,Eo as validateView,So as validateViewInvocation,To as validateWidget,co as validateWidgetMessage,Rg as vaultWidgetSystem,kx as verdict,yc as verifyAttested,Dc as verifyChain,mu as verifyEntitlement,IC as verifyPolicyToken,Tu as verifySignedToken,Zt as videoMetaFromPlayerResponse,lo as viewResult,ht as vocabularyDrift,fs as voiceCommandTrigger,Ox as voiceListRows,fx as voicePicker,Pt as wantedPages,PI as wantsModel,Ag as wantsVaultGuidance,Hm as waves,AM as weatherFollowupPlace,RM as weatherPlace,eM as weatherToolProvider,Hr as weatherUrl,qP as webCryptoSealer,Tx as webMedia,We as webQuery,Kl as webSearchToolProvider,IE as wellKnownUrls,nd as whereItWorks,dg as widgetAuthoringSystem,_o as widgetIcon,Se as wikiQueryAt,gt as wikilinksIn,xM as windowOf,rP as withAbsolutePaths,lT as withBoardTool,yx as withCost,IM as withFetchedMemo,Pl as withGuidance,zM as withPresence,U as withRecent,HS as withResultShield,_T as withRunCache,TM as withSourceTool,gS as withToolSystem,lu as withinFreeLimit,fS as withinReach,mO as wordCount,Ue as wordDiff,U_ as workLogEvidence,y_ as workLogFor,k_ as workLogText,t_ as worktreeDirFor,MA as writerAffordance,kA as writerRequest,DA 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 E,EGRESS as S,EventError as l,validateEvent as m,isValidEvent as T,createAppender as c}from"./event.js";import{REF_KINDS as _,RESOLUTION as d,makeRef as R,isRef as A,resolveRef as f}from"./ref.js";import{linearize as I,compareEvents as u,causesAreWellFormed as N}from"./order.js";import{pendingQueue as M,isQueued as C,dequeue as P,moveQueued as L,promoteQueued as x}from"./queue.js";import{groupModels as D,filterSections as F,defaultModelId as k,modelSummary as y,withRecent as U,rememberRecent as b}from"./model-picker.js";import{composerChips as G,chipText as B}from"./composer-chips.js";import{NOTE_ACTIONS as H,NOTE_ACTION_ORDER as w,NOTE_ACTION_TEMPERATURE as V,NOTE_ACTION_ERRORS as X,NOTE_COMMANDS as W,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 le}from"./note-links.js";import{SWARM_ROLES as Te,roleById as ce,classifyModel as pe,supportsSubagents as _e,appoint as de,routeTeam as Re}from"./cowriter-router.js";import{SEARCH_ENGINES as fe,RESULTS_PER_ENGINE as Oe,buildSearchUrl as Ie,unwrapRedirect as ue,isResultHost as Ne,pickResults as ge,mergeEngineResults as Me,engineOrder as Ce}from"./web-search.js";import{MAX_GRAPH_NODES as Le,buildNoteGraph as xe,egoGraph as he,trimGraph as De,graphStats as Fe}from"./note-graph.js";import{lintText as ye,wordDiff as Ue,filterTypoEdits as be,editKey as ve,applyEdits as Ge,COWRITER_SYSTEM as Be,COWRITER_TEMPERATURE as Ke}from"./cowriter.js";import{salientTerms as we,topicTerms as Ve,researchRelevance as Xe,webQuery as We,researchSnippet as Ye,rankResearchCards as ze,mergeResearchLanes as Je}from"./note-research.js";import{PLAN_ROLES as Qe,PLAN_AUTHORS as qe,PLAN_DECOMPOSE_SYSTEM as Ze,PLAN_DECOMPOSE_MAX_TOKENS as $e,PLAN_DECOMPOSE_TEMPERATURE as er,PLAN_SECTION_MAX_TOKENS as rr,PLAN_SECTION_TEMPERATURE as or,planSectionSystem as tr,parsePlanTasks as ar,planTitleFor as ir,planParts as sr,planBody as nr,planAttribution as Er}from"./note-plan.js";import{REACH as lr,reachRank as mr,reachSatisfies as Tr}from"./reach.js";import{UPCASTERS as pr,upcast as _r,upcastAll as dr}from"./upcast.js";import{validateCapability as Ar,validateInvocation as fr,canSatisfy as Or,toModelSchema as Ir,toModelSchemas as ur}from"./capability.js";import{checkInvariants as gr,INVARIANTS as Mr}from"./invariants.js";import{createMemoryAdapter as Pr,createLogStore as Lr,createBlobStore as xr}from"./store.js";import{createRegistry as Dr,REGISTRY_STATES as Fr}from"./registry.js";import{defineSearchEngine as yr,reconcileEngines as Ur,attemptOrder as br,ENGINE_KINDS as vr,SearchEngineError as Gr}from"./search-engines.js";import{getWeather as Kr,weatherUrl as Hr,parseWeather as wr,formatWeather as Vr,areaLabel as Xr,isAmbiguousLocation as Wr,WEATHER_HOST as Yr,WEATHER_TIMEOUT_MS as zr,WeatherError as Jr}from"./weather.js";import{defineToolGroup as Qr,createToolGroupRegistry as qr,ToolGroupError as Zr}from"./tool-groups.js";import{toolNeedFor as eo,grantsNeededFor as ro,equipmentFor as oo,isPleasantry as to}from"./tool-need.js";import{housekeepingTarget as io,hasSubstance as so,isLocalHelper as no}from"./housekeeping.js";import{parseFlowchart as So,layoutFlowchart as lo,renderFlowchartSvg as mo}from"./flowchart.js";import{validateView as co,validateViewInvocation as po,viewResult as _o}from"./view.js";import{validateWidget as Ao,validateWidgetMessage as fo,effectiveGrants as Oo,widgetIcon as Io,WIDGET_SURFACES as uo}from"./widget.js";import{fuseRRF as go,planQueries as Mo,multiSearch as Co}from"./rrf.js";import{SUBJECT_KINDS as Lo,DEFAULT_THRESHOLD as xo,MAX_SUBJECTS as ho,MAX_SUBJECT_CHARS as Do,normalizeSubject as Fo,subjectKey as ko,subjectTokens as yo,isSubjectCandidate as Uo,aliasMap as bo,resolveSubjects as vo,earnsBrief as Go,rankSubjects as Bo,REDACTION_TOKEN_TYPES as Ko,isRedactionToken as Ho,SELF_LABELS as wo,isSelfLabel as Vo,stripQualifiers as Xo,suggestMerges as Wo}from"./entity.js";import{BRIEF_STATES as zo,CLAIM_KINDS as Jo,MAX_CLAIMS as jo,MAX_CLAIM_REFS as Qo,MAX_BRIEF_RECORDS as qo,MAX_BRIEF_CHARS as Zo,contentHash as $o,briefId as et,briefToText as rt,briefTerms as ot,briefLinks as tt,checkKnowledgeInvariants as at,parseBriefText as it}from"./knowledge.js";import{deriveBrief as nt,deriveBriefs as Et,driftedRefs as St}from"./knowledge-derive.js";import{SYNTHESIS_SCHEMA as mt,synthesisPrompt as Tt,claimsFromSynthesis as ct,MAX_SYNTHESIS_CLAIMS as pt,MAX_EXCERPTS as _t,MAX_EXCERPT_CHARS as dt}from"./synthesis.js";import{PROPOSAL_STATES as At,SUPERSEDE_OVERLAP as ft,propose as Ot,accept as It,reject as ut,diffProposal as Nt,converge as gt,linkClaims as Mt}from"./promotion.js";import{normalizeRecord as Pt,normalizeRecords as Lt,wikilinksIn as xt,redactedTokensIn as ht,redactionCost as Dt,wantedPages as Ft,orphanRecords as kt,duplicateTitles as yt,vocabularyDrift as Ut,mentionsFrom as bt,spanningQuestions as vt,surveyCorpus as Gt,thresholdSweep as Bt,formatSurvey as Kt,NEAR_TITLE_DISTANCE as Ht,SPAN_MIN_TERMS as wt}from"./curate.js";import{PDF_MAX_CHARS as Xt,linesFromItems as Wt,orderLines as Yt,paragraphsFromLines as zt,pageTextFromItems as Jt,looksScanned as jt,buildPdfDocument as Qt}from"./pdf-layout.js";import{YOUTUBE_HOSTS as Zt,TRANSCRIPT_MAX_CHARS as $t,parseYouTubeUrl as ea,isYouTubeUrl as ra,captionTracksFromPlayerResponse as oa,videoMetaFromPlayerResponse as ta,pickCaptionTrack as aa,timedTextUrl as ia,parseTimedText as sa,groupSegments as na,formatTimestamp as Ea,formatTranscript as Sa,buildTranscriptDocument as la,transcriptFromTracks as ma}from"./media-transcript.js";import{ACCESS_LOG_VERSION as ca,ACCESS_LOG_MAX as pa,redactAccessArgs as _a,makeAccessEvent as da,createAccessLog as Ra,makeStorageTier as Aa,formatBytes as fa}from"./observability.js";import{routeGraph as Ia,projectChain as ua}from"./route-graph.js";import{defineAdapter as ga,createAdapterRegistry as Ma,AdapterError as Ca}from"./adapters.js";import{linkifyCitations as La,sourcesFromToolText as xa,createCitationCollector as ha,RETRIEVAL_TOOLS as Da}from"./citations.js";import{buildTrajectory as ka,phasesOf as ya,lanesOf as Ua,filterEntries as ba,displayName as va,ENTRY_KINDS as Ga,threadsOf as Ba,threadTitle as Ka,promptEntries as Ha,turnsOf as wa,threadTree as Va}from"./trajectory.js";import{createTurnRunner as Wa,createStepRecorder as Ya,argsShape as za,defineLoop as Ja,LOOP_KINDS as ja,LoopError as Qa,abortCause as qa,errorFacts as Za}from"./loop.js";import{defineModel as ei,defineMiddleware as ri,defineRouteStrategy as oi,createModelRouter as ti,signalsFrom as ai,requirementsFor as ii,requirementsForStep as si,preferenceFor as ni,failoverOrder as Ei,pinnedOrderOf as Si,FAILOVER_CLASS_GAP as li,FAILOVER_CAPABILITY_GAP as mi,sameModelKey as Ti,RouterError as ci}from"./router.js";import{makeSourceStore as _i,manifestText as di,shortUrl as Ri,readSource as Ai,sourceId as fi}from"./sources-retrieval.js";import{classifySource as Ii,extractUrls as ui,hostMatches as Ni,meetReach as gi,sourcePolicyFor as Mi,sourceUrlsOf as Ci,DEFAULT_INTERNAL_PATTERNS as Pi,INTERNAL_PATTERN_CATALOG as Li}from"./sources.js";import{defineRule as hi,createRuleEngine as Di,SUPPRESSED as Fi,RuleError as ki}from"./rules.js";import{VAULT_VERSION as Ui,KDF_ITERATIONS as bi,KDF_HASH as vi,DEFAULT_LOCK_MS as Gi,VaultError as Bi,MAX_TITLE_CHARS as Ki,MAX_NOTE_CHARS as Hi,MAX_SECRET_CHARS as wi,MAX_ENTRIES as Vi,createVault as Xi,unlockVault as Wi,deriveKey as Yi,sealEntry as zi,openEntry as Ji,validateEntry as ji,entryMeta as Qi,searchEntries as qi,isLocked as Zi,lockedSummary as $i,canAddEntry as es,toB64 as rs,fromB64 as os}from"./vault.js";import{SCHEDULE_KINDS as as,TRIGGER_KINDS as is,JOB_ACTIONS as ss,MISSED_POLICIES as ns,ScheduleError as Es,validateSchedule as Ss,nextFireAt as ls,occurrencesBetween as ms,nextWakeAt as Ts,parseCron as cs,defineTrigger as ps,createTriggerRegistry as _s,BUILTIN_TRIGGERS as ds,timerTrigger as Rs,meetingStartedTrigger as As,meetingEndedTrigger as fs,personJoinedTrigger as Os,phraseTrigger as Is,topicTrigger as us,questionTrigger as Ns,voiceCommandTrigger as gs,defineJob as Ms,dueJobs as Cs,jobsForEvent as Ps,occurrenceKey as Ls,clipText as xs,matchSummary as hs}from"./schedule.js";import{defineMeetingAnalyzer as Fs,createAnalyzerRegistry as ks,CADENCES as ys,AnalyzerError as Us}from"./meeting-analyzers.js";import{DEFAULT_WAKE as vs,MAX_COMMANDS_PER_DELTA as Gs,DAYPART_HOUR as Bs,VoiceIntentError as Ks,compileWake as Hs,findWakeCommand as ws,parseCommand as Vs,commandsFromSegments as Xs,parseDuration as Ws,parseClock as Ys,parseWhen as zs,parseNumberWords as Js,normalizeSpeech as js,tokenize as Qs,editDistance as qs,defineVoiceIntent as Zs,createVoiceIntentRegistry as $s,defaultVoiceIntents as en,BUILTIN_VOICE_INTENTS as rn,timerIntent as on,reminderIntent as tn,scheduleIntent as an,noteIntent as sn,monitorIntent as nn,REFINEMENT_SCHEMA as En,refinementPrompt as Sn,refinementFormat as ln,parseRefinement as mn,refinementStream as Tn,settleRefinement as cn,refineSpokenCommand as pn,isFillerSentence as _n,gistText as dn,gistOpening as Rn,commandLooksFinished as An,sameUtterance as fn,createUtteranceGate as On,UTTERANCE_SETTLE_MS as In,UTTERANCE_DANGLING_MS as un}from"./voice-intents.js";import{MAX_TOPICS as gn,MAX_TOPIC_CHARS as Mn,TOPICS_SCHEMA as Cn,topicsSchema as Pn,topicsPrompt as Ln,topicsFormat as xn,parseTopics as hn,normalizeTopic as Dn,normalizeTopics as Fn,topicsStream as kn,ENTITY_TYPES as yn,ENTITIES_SCHEMA as Un,entitiesPrompt as bn,entitiesFormat as vn,parseEntities as Gn,coerceEntities as Bn,entitiesStream as Kn,MAX_SUGGESTIONS as Hn,MAX_SUGGESTION_CHARS as wn,SUGGESTIONS_SCHEMA as Vn,suggestionsPrompt as Xn,suggestionsFormat as Wn,parseSuggestions as Yn,suggestionsStream as zn}from"./extraction.js";import{FIELD_TYPES as jn,RESPONSE_MODES as Qn,StructuredError as qn,defineSchema as Zn,describeSchema as $n,toJsonSchema as eE,responseFormat as rE,unfence as oE,findJson as tE,rewriteJson as aE,repairJson as iE,isNothing as sE,coerce as nE,parseStructured as EE,createStructuredStream as SE}from"./structured.js";import{explainMcpError as mE,packageFromArgs as TE,isStaleMcpSession as cE,installHintFor as pE,missingCommandMessage as _E,missingCommandIn as dE,normalizePlatform as RE}from"./mcp-errors.js";import{parseSignInPrompt as fE,signInError as OE,signInFromError as IE,signInToolResult as uE,MCP_SIGN_IN_CODE as NE}from"./mcp-signin.js";import{parseAuthChallenge as ME,wellKnownUrls as CE,canonicalResource as PE,readResourceMetadata as LE,readAuthServerMetadata as xE,registrationRequest as hE,readRegistration as DE,authorizeUrl as FE,tokenRequest as kE,readTokenResponse as yE,tokenExpired as UE,authHeader as bE,discoverMcpAuth as vE,registerMcpClient as GE,fetchMcpToken as BE,TOKEN_SKEW_MS as KE}from"./mcp-oauth.js";import{toolTraits as wE,bareToolName as VE,canRunConcurrently as XE,isCacheable as WE,needsConfirmation as YE,traitsIndex as zE,effectiveToolName as JE,parallelEligible as jE,PARALLEL_LOCAL_RE as QE}from"./tool-traits.js";import{planToolRound as ZE,runToolRound as $E}from"./tool-round.js";import{createToolLoopGuard as rS,roundSignature as oS,stableToolCallKey as tS,toolMadeProgress as aS,isLoopableTool as iS,blockedToolResult as sS,OBSERVATION_TOOLS as nS,INPUT_PROGRESS_TOOLS as ES}from"./tool-loop-guard.js";import{classifyFailure as lS,createModelHealth as mS,COOLDOWN_MS as TS,UNAVAILABLE_REASONS as cS,normModelName as pS}from"./model-health.js";import{runWithFailover as dS,failoverExhausted as RS,FAILOVER_MAX_ATTEMPTS as AS}from"./failover.js";import{sourcePolicySettings as OS,sourceGuardFor as IS,sourceGate as uS,isSourceGateError as NS,withinReach as gS}from"./source-gate.js";import{runTurnLoop as CS,createCallRunner as PS,roundCap as LS,withToolSystem as xS,describeCall as hS,stepResultText as DS,addUsage as FS,normalizeUsage as kS,openAiTranscript as yS,anthropicTranscript as US,DEFAULT_MAX_ROUNDS as bS,DEFAULT_MAX_FINISH_TRIES as vS,FINISH_NUDGES as GS,LOOPING_NUDGE as BS,EXHAUSTED_NOTE as KS,ROUND_SEPARATOR as HS}from"./turn-loop.js";import{createResultStore as VS,shieldToolResult as XS,runResultQuery as WS,withResultShield as YS,describeShape as zS,compactValue as JS,resultToolSpec as jS,RESULT_TOOL_NAME as QS,DEFAULT_SHIELD as qS,DEFAULT_STORE as ZS}from"./tool-result.js";import{PERMISSION_EVENT as el,PERMISSION_ANSWERS as rl,PERMISSION_TIMEOUT_MS as ol,PERMISSION_TOOL_NAME as tl,permissionToolSpec as al,isPermissionTool as il,permissionRequestFromClaude as sl,permissionKeys as nl,describePermission as El,permissionAnswer as Sl,permissionAllowed as ll,rememberPermission as ml,recallPermission as Tl,claudePermissionResponse as cl,permissionLine as pl,permissionIcon as _l,createPermissionDesk as dl}from"./agent-permission.js";import{findTools as Al,findToolsResult as fl,findActionArgs as Ol,oneLiner as Il,overlapRank as ul,FIND_ACTION as Nl}from"./tool-discovery.js";import{rankFused as Ml,fusedRanker as Cl,rerankThrough as Pl,toolDoc as Ll,FUSED_CANDIDATES as xl,FUSED_BUDGET_MS as hl}from"./tool-rank-fused.js";import{makeToolHub as Fl,hubSpec as kl,HUB_TOOL_NAME as yl,withHint as Ul,lastUserText as bl}from"./tool-hub.js";import{buildToolset as Gl}from"./toolset.js";import{DESCRIBE_ACTION as Kl,actionMenu as Hl,buildGroupDispatchSpec as wl,validateAction as Vl,makeGroupDispatchExecutor as Xl,withGuidance as Wl,makeDispatchProvider as Yl,estimateTokens as zl}from"./tool-dispatch.js";import{FIND_TOOL_NAME as jl,FIND_DESCRIPTION as Ql,FIND_RESIDENT as ql,findDispatchProvider as Zl}from"./find-tool.js";import{WEB_SEARCH_TOOL_NAME as em,WEB_SEARCH_TOOL_SYSTEM as rm,WEB_SEARCH_SPEC as om,searchResultsToText as tm,webSearchToolProvider as am}from"./web-search-tool.js";import{compressToolSpec as sm,compressToolSpecs as nm,compressionStats as Em,trimDescription as Sm,COMPRESSION_MODES as lm,DEFAULT_COMPRESSION as mm}from"./tool-schema.js";import{validateRecipe as cm,expandRecipe as pm,recipeParams as _m,mapInput as dm,dryRunRecipe as Rm,runPlan as Am,runRecipe as fm,RecipeError as Om,RECIPE_MODES as Im}from"./recipe.js";import{recipeToolProvider as Nm,recipeToolSpec as gm,describeRecipeForApproval as Mm,RECIPE_TOOL_NAME as Cm}from"./recipe-tool.js";import{createBudget as Lm,validateBudget as xm,normalizeBudget as hm,usageOf as Dm,BudgetError as Fm,BUDGET_DIMENSIONS as km}from"./budget.js";import{defineTeam as Um,validateTeam as bm,normalizeTeam as vm,normalizeGrants as Gm,grantAllows as Bm,scmAllows as Km,describeRole as Hm,TeamError as wm,ROLE_MODES as Vm,MERGE_POLICIES as Xm,PLAN_MODES as Wm,GRANTABLE as Ym,WORK_GRANTS as zm,GRANT_RE as Jm,AGENT_REF_RE as jm,STARTER_TEAMS as Qm,starterTeams as qm,blankTeam as Zm,teamFromForm as $m,slugTeamName as eT}from"./team.js";import{fixedPlan as oT,parsePlan as tT,plannerPrompt as aT,waves as iT,breakCycles as sT,TEAM_PLAN_SCHEMA as nT}from"./team-plan.js";import{createBoard as ST,parseFindings as lT,boardText as mT,findingsInstruction as TT,toBriefClaims as cT,FINDINGS_SCHEMA as pT,FINDING_KINDS as _T,THREAD_KINDS as dT,THREAD_STATUSES as RT,POST_KINDS as AT,POST_STATUSES as fT,ASK_TYPES as OT,emptyBoardState as IT,foldBoard as uT,findingsOf as NT}from"./team-board.js";import{boardToolProvider as MT,boardToolSpec as CT,createAnswerBox as PT,withBoardTool as LT,BOARD_TOOL_NAME as xT,DEFAULT_ASK_TIMEOUT_MS as hT}from"./board-tool.js";import{createRunCache as FT,withRunCache as kT}from"./team-cache.js";import{emptyRun as UT,foldRun as bT,runFromEvents as vT,checkpointFrom as GT,isResumable as BT,LIVE_RUN_STATUSES as KT,RESUMABLE_RUN_STATUSES as HT,spendOf as wT,describeSpend as VT,runState as XT,priorWorkFor as WT,STALLED_AFTER_MS as YT}from"./team-record.js";import{validateProject as JT,normalizeProject as jT,defineProject as QT,canTransition as qT,blankProject as ZT,projectFromForm as $T,emptyProjectRecord as ec,foldProject as rc,projectProgress as oc,ProjectError as tc,PROJECT_STATUSES as ac,PROJECT_ID_RE as ic}from"./project.js";import{validateJob as nc,normalizeJob as Ec,defineJob as Sc,canTransition as lc,applyAll as mc,jobToRole as Tc,readyJobs as cc,blankJob as pc,jobFromForm as _c,JobError as dc,JOB_STATUSES as Rc,JOB_ID_RE as Ac}from"./job.js";import{validateGate as Oc,normalizeGate as Ic,effectiveGate as uc,gateAllows as Nc,DEFAULT_GATE as gc,AUTONOMY as Mc,HUMAN_FLAGS as Cc,CHECKS as Pc}from"./gate.js";import{runProject as xc,roundJobs as hc,teamForRound as Dc,jobResults as Fc,roundBudget as kc,parseJobs as yc,parseReview as Uc,jobsPrompt as bc,reviewPrompt as vc,PROJECT_JOBS_SCHEMA as Gc,PROJECT_REVIEW_SCHEMA as Bc,ProjectRunError as Kc,EXECUTIVE as Hc,MAX_JOBS_PER_ROUND as wc,MAX_ROUNDS as Vc,PROJECT_RUN_STATUSES as Xc}from"./project-run.js";import{canonical as Yc,sha256 as zc,makeEntry as Jc,verifyChain as jc,attest as Qc,verifyAttested as qc,summarize as Zc,fit as $c,adjustSummary as ep,normalizeEngine as rp,engineKey as op,normalizeScm as tp,SCORECARD_ENTRY_KINDS as ap,ROLE_KINDS as ip,SCORECARD_VERSION as sp,ENGINE_KINDS as np}from"./scorecard.js";import{ENGINE_KINDS as Sp,ROUTE_PREFERS as lp,normalizePolicy as mp,normalizeEngineSpec as Tp,validateEngineSpec as cp,engineRef as pp,engineKeyOf as _p,describeEngine as dp,tierOf as Rp}from"./engine.js";import{AGENT_ID_RE as fp,APPLIES_TO as Op,EGRESS_CLASSES as Ip,ASSISTANT_ID as up,AgentError as Np,validateAgent as gp,normalizeAgent as Mp,defineAgent as Cp,assistantAgent as Pp,engineOf as Lp,describeAgent as xp,slugAgentId as hp,resolveTeam as Dp,STARTER_AGENTS as Fp,starterAgents as kp,blankAgent as yp,agentFromForm as Up,poolFor as bp}from"./agent.js";import{LEDGER_VERSION as Gp,LEDGER_ENTRY_KINDS as Bp,DECLINE_REASONS as Kp,WITHDRAW_AFTER as Hp,ledgerKey as wp,normalizeCall as Vp,makeLedgerEntry as Xp,summarizeEngine as Wp}from"./model-ledger.js";import{RECRUIT_SCHEMA as zp,MIN_FIT as Jp,engineRow as jp,engineRows as Qp,needForJob as qp,routeFor as Zp,engineWorth as $p,applications as e_,evaluatorPrompt as r_,parseEvaluation as o_,decide as t_,recruitForRun as a_,proposalFromNeeds as i_,proposalToAgent as s_,carveBudget as n_,recruitEvents as E_,recruitJob as S_}from"./recruit.js";import{DEFAULT_MIN_CALLS as m_,cardOverride as T_,applyCard as c_}from"./model-candidates.js";import{SCM_KINDS as __,validateConnection as d_,normalizeConnection as R_,parseRemote as A_,connectionFor as f_,branchFor as O_,worktreeDirFor as I_,credentialEnv as u_,describeConnection as N_,blankConnection as g_,connectionFromForm as M_}from"./scm-connection.js";import{messagesFor as P_,mergeTranscript as L_,clipTranscript as x_,clipMessage as h_,newSteps as D_,continuationNote as F_,createControl as k_,STEP_MAX_CHARS as y_,TASK_TRANSCRIPT_MAX_CHARS as U_}from"./team-task.js";import{runTeam as v_,resumeTeam as G_,dryRunTeam as B_,isModelUnavailable as K_,TeamRunError as H_,RUN_STATUSES as w_}from"./team-run.js";import{teamToolProvider as X_,teamToolSpec as W_,teamToolTimeoutMs as Y_,describeTeamForApproval as z_,TEAM_TOOL_NAME as J_,TEAM_MANUAL as j_}from"./team-tool.js";import{workLogFor as q_,workLogText as Z_,workLogEvidence as $_,describeCall as ed,WORKLOG_KINDS as rd}from"./team-worklog.js";import{normalizeRequest as td,subtaskFromRequest as ad,takeUp as id,takeUpLine as sd,holdsGrants as nd,jobFromSubtask as Ed,extendDependents as Sd,taskTree as ld,threadRows as md,MAX_SUBTASKS as Td,MAX_DEPTH as cd,MIN_TAKEUP_FIT as pd}from"./team-subtask.js";import{teamLine as dd,teamLanes as Rd}from"./team-trail.js";import{promoteRoles as fd,starterTeam as Od,missingStarters as Id,teamHealth as ud,teamShape as Nd,describeTeamShape as gd,whereItWorks as Md,rosterRows as Cd,agentKind as Pd,agentHue as Ld,agentColor as xd,agentInitials as hd,roleCardId as Dd,cardNumbers as Fd,upsertAgents as kd,soloTeam as yd,teamsWithSolos as Ud,builtinOrg as bd,isBuiltin as vd,grantChoices as Gd,grantsFromChoices as Bd,skillChoices as Kd,GRANT_INFO as Hd,SOLO_BUDGET as wd,TEAM_SHAPES as Vd,ROSTER_KINDS as Xd}from"./team-org.js";import{observeInbox as Yd,observeStrip as zd,runLanes as Jd,spendRows as jd,engineStrip as Qd}from"./team-observe.js";import{mcpDispatchProvider as Zd,MCP_TOOL_NAME as $d}from"./mcp-dispatch.js";import{createManifest as rR,ManifestError as oR,SOURCES as tR}from"./manifest.js";import{createKernel as iR,meetDecisions as sR,KernelError as nR,REQUIRED_PLUGINS as ER,ALLOW_ALL as SR}from"./kernel.js";import{replay as mR,formatReport as TR,parseJsonl as cR,toJsonl as pR}from"./harness.js";import{compileQuery as dR,findMatches as RR,matchIndexFor as AR,expandReplacement as fR,replaceMatch as OR,replaceAll as IR,replaceAllInRange as uR,MAX_MATCHES as NR}from"./text-search.js";import{DATA_SCOPES as MR}from"./scopes.js";import{MEMORY_VERSION as PR,MEMORY_KINDS as LR,MEMORY_KIND_NAMES as xR,AMBIENT_KINDS as hR,MAX_MEMORY_CHARS as DR,MIN_MEMORY_CHARS as FR,DEFAULT_MAX_MEMORIES as kR,DEFAULT_BLOCK_CHARS as yR,SAME_FACT as UR,MEMORY_TOOL_SPEC as bR,MEMORY_UPCASTERS as vR,MemoryError as GR,normalizeMemory as BR,isValidMemory as KR,memoryKey as HR,slotOf as wR,similarity as VR,containment as XR,candidatesFrom as WR,reconcile as YR,matchForForget as zR,recall as JR,memoryBlock as jR,markUsed as QR,pruneMemories as qR,memoryToolSystem as ZR,upcastMemory as $R,sameMemory as eA,AMBIENT_MAX_WORDS as rA}from"./memory.js";import{SOURCE_TRUST as tA,SkillSourceError as aA,defineSkillSource as iA,createSkillSourceRegistry as sA}from"./skill-sources.js";import{SKILL_MANIFEST_VERSION as EA,SKILL_CONTEXTS as SA,SKILL_HISTORY_SCOPES as lA,SKILL_MCP_MODES as mA,SKILL_TRUST as TA,SKILL_FILE_KINDS as cA,SKILL_UPCASTERS as pA,SkillManifestError as _A,isSafeSkillPath as dA,originOf as RA,trustOf as AA,skillFiles as fA,needsBridge as OA,declaredAccess as IA,originLabel as uA,sameSkillOrigin as NA,skillIsStale as gA,validateSkill as MA,upcastSkill as CA,upcastSkills as PA,normalizeSkill as LA}from"./skill-manifest.js";import{SKILL_VARS as hA,SKILL_VAR_NAMES as DA,skillVar as FA,skillVarPattern as kA,parseSkillVars as yA,lintSkillPrompt as UA,suggestSkillVar as bA,substituteSkillVars as vA,expandSkillPrompt as GA,skillVarGuidance as BA,SkillVarError as KA}from"./skill-vars.js";import{lineAt as wA,writerAffordance as VA,INSTRUCTION_RE as XA,instructionOnLine as WA,GOAL_MIN_NEW as YA,goalDraftAllowed as zA,createSpendMeter as JA,writerTail as jA,draftSeparator as QA,groundingBlock as qA,writerRequest as ZA,AUTOCOMPLETE_SYSTEM as $A,AUTOCOMPLETE_MAX_TOKENS as ef,AUTOCOMPLETE_TEMPERATURE as rf,clipCompletion as of,GEARS as tf,WRITER_PREFS as af,WRITER_PREF_DEFAULTS as sf,normalizeWriterPrefs as nf,normalizeIntent as Ef}from"./cowriter-writer.js";import{SLASH_TYPING_RE as lf,NEW_THREAD_SLASH_ITEMS as mf,parseNewThread as Tf,isSkillEnabled as cf,enabledSkills as pf,slashCommandItems as _f,matchSlashSkill as df,matchSlashRecipe as Rf,recipeInvocationText as Af,matchSlashTeam as ff,teamInvocationText as Of,slashCommandInsert as If,skillInvocationOf as uf,skillInvocationLabel as Nf}from"./slash-commands.js";import{outlineOf as Mf,parseListItem as Cf,continueList as Pf,indentSelection as Lf,toggleWrap as xf,toggleLinePrefix as hf,toggleTask as Df,toggleLink as Ff,docStats as kf,selectionStats as yf}from"./markdown-authoring.js";import{MAX_TAG_LENGTH as bf,MAX_TAGS as vf,normalizeTag as Gf,normalizeTags as Bf,hasTag as Kf,addTag as Hf,removeTag as wf,toggleTag as Vf,sameTags as Xf,formatTag as Wf,parseTagQuery as Yf,hasTagTerms as zf,formatTagQuery as Jf,matchesTagFilter as jf,filterByTags as Qf,tagFacets as qf,suggestExistingTags as Zf,tagsSearchText as $f}from"./tags.js";import{UNTITLED_MEETING as rO,MAX_TITLE_LENGTH as oO,TITLE_RULES_VERSION as tO,cleanTitle as aO,isGenericTitle as iO,titleFromSummary as sO,titleFromTopics as nO,titleFromParticipants as EO,titleFromDate as SO,deriveMeetingTitle as lO,shouldAutoTitle as mO,isBetterTitleSource as TO,meetingTitlePrompt as cO,parseTitleResponse as pO}from"./titles.js";import{RECORD_KINDS as dO,MAX_TITLE_LEN as RO,LibraryError as AO,parseRecordId as fO,makeRecordId as OO,isRecordId as IO,normalizeStoredRecord as uO,isValidStoredRecord as NO,toSearchRecord as gO,searchTextFor as MO,toIndexEntry as CO,deriveTitle as PO,snippetOf as LO,wordCount as xO}from"./library.js";import{CLOCK_TOLERANCE_MS as DO,SyncError as FO,stampOf as kO,decide as yO,planSync as UO,isSettled as bO,forkConflict as vO,advanceBases as GO}from"./sync-plan.js";import{ENCRYPTED_TYPE as KO,COMPRESSIONS as HO,BackupError as wO,KDF_ITERATIONS as VO,encryptBackup as XO,decryptBackup as WO,isEncryptedBackup as YO,RECORD_TYPE as zO,deriveBackupKey as JO,sealRecord as jO,openRecord as QO,isSealedRecord as qO,keyCache as ZO,identityCodec as $O,streamCodec as eI,nodeCodec as rI,bestCodec as oI}from"./backup-envelope.js";import{recordsFromBackup as aI,backupFromRecords as iI}from"./backup-records.js";import{DEFAULT_POLICY as nI,SLOW_POLICY as EI,scalePolicy as SI,pickProfile as lI,adaptProfile as mI,policyFor as TI,SLOW_FLUSH_MS as cI,FAST_FLUSH_MS as pI,FAST_STREAK as _I,createJournal as dI,JournalError as RI,ENTRY_VERSION as AI,makeEntry as fI,tombstone as OI,isTombstone as II,isEntry as uI,entryStamp as NI,supersedes as gI,BOUNDS as MI,createSegment as CI,applyEntry as PI,segmentBytes as LI,segmentEntries as xI,shouldRotate as hI,mergeSegments as DI,segmentName as FI,parseSegmentName as kI,SEGMENT_RE as yI,boundSegments as UI,segmentsFor as bI,overlay as vI,catchUpPlan as GI}from"./journal.js";import{OMNI_MODES as KI,OMNI_GRAMMAR as HI,parseOmni as wI,extractFilters as VI,resolveSince as XI,wantsModel as WI,isActionable as YI}from"./omni.js";import{THEMES as JI,LIGHT as jI,DARK as QI,PALETTES as qI,SHAPE as ZI,TOKEN_NAMES as $I,TOKEN_ROLES as eu,paletteFor as ru,cssVarName as ou,toCssVars as tu,themeStylesheet as au,resolveTheme as iu}from"./theme.js";import{PLANS as nu,API_BASE as Eu,ENDPOINTS as Su,ENTITLEMENT_PUBLIC_JWK as lu,UPGRADE_URL as mu,FEATURE_TIER as Tu,PRO_FEATURES as cu,TEAM_FEATURES as pu,FREE_LIMITS as _u,COUNTED as du,freeCap as Ru,observeSince as Au,RECHECK_INTERVAL_MS as fu,EntitlementError as Ou,checkoutUrl as Iu,planOf as uu,planLabel as Nu,isPro as gu,isTeam as Mu,can as Cu,tierFor as Pu,withinFreeLimit as Lu,verifyEntitlement as xu,verifySignedToken as hu,licenseFromPayload as Du,needsRecheck as Fu}from"./entitlement.js";import{generateDeviceKey as yu,exportDevicePublicKey as Uu,signChallenge as bu}from"./device-proof.js";import{renderMarkdown as Gu,defaultLinkPolicy as Bu,defaultImagePolicy as Ku}from"./markdown-render.js";import{NOTE_IMAGE_SCHEME as wu,MAX_NOTE_IMAGE_BYTES as Vu,NOTE_IMAGE_TYPES as Xu,noteImageId as Wu,noteImageRef as Yu,noteImageIds as zu,noteImageRefs as Ju,stripNoteImageRefs as ju,orphanNoteImages as Qu,newNoteImageId as qu}from"./note-images.js";import{parseMeetingText as $u,speakerStats as eN,densityRibbon as rN}from"./meeting-text.js";import{speakerBreakdown as tN,speakerTimeline as aN,formatTalkTime as iN,SPEAKER_SLOTS as sN}from"./meeting-shape.js";import{isSpeakerImageValue as EN,speakerLabeller as SN}from"./meeting-shape.js";import{SORT_MODES as mN,SORT_LABELS as TN,sortStamp as cN,sortRecords as pN,filterRecords as _N,dayBucket as dN,rowTime as RN,groupRecords as AN}from"./record-list.js";import{INSIGHT_KINDS as ON,summarySections as IN,insightKindOf as uN,meetingInsights as NN,hasInsights as gN}from"./meeting-insights.js";import{demd as CN,NOTE_SECTIONS as PN,noteSectionKind as LN,MOMENT_BADGES as xN,momentBadge as hN,parseMeetingNotes as DN,groupActionsByOwner as FN}from"./meeting-insights.js";import{PREF_SECTIONS as yN,PREF_SECTION_IDS as UN,DESKTOP_SECTION_IDS as bN,sectionSpec as vN,sectionValue as GN,pickSections as BN,applySections as KN,sectionHash as HN,mergeStamped as wN,changedSections as VN}from"./client-prefs.js";import{SETTINGS_GROUPS as WN,SETTINGS_PAGES as YN,REQUIREMENTS as zN,BOOKKEEPING_KEYS as JN,listRows as jN,findRow as QN,pageById as qN,groupById as ZN,pagesOf as $N,quickRows as eg,breadcrumb as rg,linkTo as og,linkToRow as tg,parseLink as ag,valueOf as ig,setValue as sg,effectiveValue as ng,describeValue as Eg,SETTINGS_OPEN_DEFAULT as Sg,settingsOpenMode as lg,searchSettings as mg,statusOf as Tg,statusAll as cg,homeChecklist as pg,gateOf as _g,sectionOfRow as dg}from"./settings-registry.js";import{pointsAtGateway as Ag,destinationFromEndpoint as fg,destinationFromAgent as Og,availableDestinations as Ig,seedDestinations as ug,shouldSeedDestinations as Ng,mergeEndpointDestinations as gg}from"./gateway-dests.js";import{McpClient as Cg,mcpProvider as Pg}from"./mcp-client.js";import{mcpSharedSystem as xg,mcpInventorySystem as hg,sourceCitationSystem as Dg,combineSystemPrompt as Fg,toolStatus as kg,widgetAuthoringSystem as yg,vaultWidgetSystem as Ug,wantsVaultGuidance as bg}from"./tool-hints.js";import{adaptiveToolRetryHint as Gg,createAdaptiveToolPolicy as Bg,isInvalidToolParametersResult as Kg}from"./adaptive-tool-policy.js";import{getMcpProviders as wg,testMcpServer as Vg,resetMcp as Xg,mcpBackoff as Wg}from"./mcp-manager.js";import{SIDELINE_COMMANDS as zg,BRINGBACK_COMMAND as Jg,THREAD_TOOL_NAME as jg,SIDELINE_SLASH_ITEMS as Qg,THREAD_TOOL_SPEC as qg,parseSideline as Zg,parseBringBack as $g,resolveSidelineTarget as eM,threadManifest as rM,threadToolProvider as oM,readThread as tM,briefPrompt as aM,foldBackNote as iM,foldNotes as sM,nextSidelineIndex as nM,sourceOf as EM,noteUnits as SM,sidelinePath as lM,foldBackFor as mM,SIDELINE_TOOL_NAME as TM,SIDELINE_TOOL_SPEC as cM,sidelineToolProvider as pM}from"./sideline.js";import{WEATHER_TOOL_NAME as dM,WEATHER_TOOL_SYSTEM as RM,weatherToolProvider as AM}from"./weather-tool.js";import{DECIDE_TOOL_NAME as OM,RERANK_TOOL_NAME as IM,CAPABILITY_TOOLS_SYSTEM as uM,capabilityToolsProvider as NM}from"./capability-tools.js";import{openDecision as MM,distributionConfidence as CM}from"./open-decision.js";import{IN_PROCESS_IDS as LM,inProcessView as xM,capabilityView as hM,choicePatch as DM,choiceNote as FM,inProcessPatch as kM}from"./runtime-in-process.js";import{renderContent as UM,toChatMessages as bM,toMultimodalMessages as vM,imageAttachmentsOf as GM,deferAttachedSources as BM,withSourceTool as KM,SOURCE_TOOL_SPEC as HM}from"./context-attachments.js";import{prefetchPlan as VM,prefetchAttachment as XM,weatherPlace as WM,weatherFollowupPlace as YM}from"./prefetch.js";import{createFetchedStore as JM,withFetchedMemo as jM,fetchKey as QM,fetchTitle as qM,fetchedAsSources as ZM,fetchedFacts as $M,defaultTtl as eC,FETCHED_TTL_MS as rC}from"./fetched.js";import{windowOf as tC,fitFor as aC,keepRecentFor as iC,minWindowFor as sC,isContextLimitError as nC,FIT_HEADROOM as EC}from"./context-window.js";import{planCompaction as lC,compactionPrompt as mC,compactionRecord as TC,messagesAfter as cC,systemWithSummary as pC,compactable as _C,COMPACTION_SYSTEM as dC}from"./compaction.js";import{presenceFor as AC,presenceDelta as fC,reachOf as OC,withPresence as IC,presenceBlock as uC,roundCount as NC,roundMinutes as gC,PRESENCE_BUDGET_TOKENS as MC,PRESENCE_KINDS as CC}from"./presence.js";import{PolicyError as LC,POLICY_VERSION as xC,POLICY_TOKEN_TYPE as hC,REDACTION_TIERS as DC,LOCKABLE as FC,FEATURES as kC,PERMISSION_MODES as yC,PRODUCT_HOSTS as UC,normalizeOrgPolicy as bC,endpointAllowed as vC,modelAllowed as GC,agentAllowed as BC,permissionMode as KC,routeAllowed as HC,redactionTier as wC,egressAllowed as VC,settingLocked as XC,featureEnabled as WC,applyPolicyToSettings as YC,policyLabel as zC,policyHash as JC,verifyPolicyToken as jC,globToRegExp as QC}from"./policy.js";import{languageInstruction as ZC,RESPONSE_LANGUAGES as $C}from"./response-language.js";import{NOTE_TOOL_SPECS as rP,makeNoteToolExecutor as oP}from"./note-tool.js";import{memoryToolProvider as aP}from"./memory-tool.js";import{skillRunFromSkill as sP,skillPackageFiles as nP,filterMcpServersForSkill as EP,skillToolSystem as SP,skillHandle as lP,rankSkills as mP,skillCatalogSystem as TP}from"./skill-runtime.js";import{skillFileProvider as pP,SKILL_FILE_TOOL as _P,skillEntry as dP,skillDiscoveryProvider as RP}from"./skill-files.js";import{PATH_KIND as fP,FILES_TOOL as OP,checkAttachablePath as IP,secretReason as uP,isSecretPath as NP,pathAttachment as gP,describeAttachedPath as MP,describePathSize as CP,displayPath as PP,pathAttachmentsOf as LP,withAbsolutePaths as xP,attachedFilesProvider as hP,sniffType as DP,normalizePath as FP,collapseDots as kP,basenameOf as yP,SKIP_DIR_NAMES as UP}from"./attached-paths.js";import{EXTRACT_ROUTE as vP,EXTRACT_PROVIDER_ID as GP,MAX_DOCUMENT_BYTES as BP,PAGE_CHARS as KP,EXTRACT_TYPES as HP,validateExtractRequest as wP,validateExtractResponse as VP,paginateText as XP,gatewayExtractor as WP,extractorChain as YP}from"./extract-capability.js";import{MCP_REGISTRY_API as JP,MCP_CATALOG as jP,registryListUrl as QP,fetchMcpRegistryPage as qP,normalizeRegistryPage as ZP,normalizeRegistryEntry as $P,mcpServerFromCatalogItem as eL}from"./mcp-registry.js";import{CE_SPECVERSION as oL,CE_TYPE_PREFIX as tL,CE_SOURCE_PREFIX as aL,rfc3339 as iL,ceSourceOf as sL,ceHostOf as nL,toCloudEvent as EL,fromCloudEvent as SL,toCloudEventLines as lL,fromCloudEventLines as mL,toCloudEventBatch as TL}from"./cloudevents.js";import{PUSH_LIMITS as pL,planEventPush as _L,ingestCloudEvents as dL,cursorOf as RL}from"./event-sync.js";import{eventStats as fL,projectYear as OL}from"./event-stats.js";import{SEALED_TYPE as uL,SEALED_VERSION as NL,SealError as gL,webCryptoSealer as ML,nodeSealer as CL,newDeviceKey as PL,sealBlob as LL,openBlob as xL,shredBlob as hL,isSealedBlob as DL,isShredded as FL}from"./blob-envelope.js";import{USAGE_RING_MAX as yL,COST_BASES as UL,usageRecord as bL,usageFromEvent as vL,usageFromOpenAi as GL,rollupKey as BL,applyUsage as KL,summarizeUsage as HL,formatTurnUsage as wL,describeTurnUsage as VL,promptTokensOf as XL}from"./usage.js";import{rateFor as YL,costFor as zL,formatUsd as JL,PRICING_BASES as jL,PRICING_LABELS as QL,normalizePricing as qL,priceUsage as ZL}from"./usage-pricing.js";import{FACTCHECK_SCHEMA as ex,FACTCHECK_VERDICTS as rx,lastClaimOf as ox,factcheckPrompt as tx,factcheckVerdict as ax,factcheckKey as ix}from"./cowriter-factcheck.js";import{createVoiceLoop as nx,VOICE_STATES as Ex,MUTE_GRACE_MS as Sx,MAX_PENDING_CHARS as lx,CONTINUATION_WINDOW_MS as mx,ECHO_OVERLAP as Tx,ECHO_TAIL_MS as cx}from"./voice-loop.js";import{speakStream as _x}from"./speak-stream.js";import{createVad as Rx,lowBandEnergy as Ax,VAD_DEFAULTS as fx}from"./voice-vad.js";import{HF_API as Ix,TTS_ARCH_LABEL as ux,ttsArchOf as Nx,partitionTtsModels as gx,modelSearchUrl as Mx,searchModels as Cx,normalizeModel as Px,formatDownloads as Lx,describeSearchResult as xx}from"./model-registry.js";import{SAMPLE_RATE as Dx,MIN_SECONDS as Fx,TARGET_SECONDS as kx,MAX_SECONDS as yx,PROMPT_TEXT as Ux,sampleSeconds as bx,sampleTooShort as vx,defaultVoiceName as Gx,microphoneError as Bx,webMedia as Kx,startRecording as Hx}from"./voice-sample.js";import{TIER_LABEL as Vx,modelRows as Xx,catalogStatus as Wx,dtypePicker as Yx,voicePicker as zx,voiceListRows as Jx,diarizeRows as jx,switchOutcome as Qx,saveVoiceFailure as qx,saveTimedOut as Zx,catalogUnavailable as $x}from"./voice-models.js";import{dictToText as rh,textToDict as oh}from"./redaction-dictionary.js";import{groupRuns as ah,summarizeRun as ih,findRepeats as sh,withCost as nh,verdict as Eh,toSanitizedReport as Sh}from"./run-details.js";import{parseMcpConfig as mh,parseArgsInput as Th,argsToText as ch,parseEnvInput as ph,envToText as _h,envLikeArgs as dh}from"./mcp-config-import.js";import{mutableRef as Ah,refreshArgs as fh,canRefresh as Oh,describeRuntime as Ih}from"./mcp-launcher.js";import{defaultMcpServers as Nh,isDefaultMcpServer as gh}from"./default-mcp-servers.js";import{MONITOR_SOURCES as Ch,DEFAULT_MONITOR_PROFILE as Ph,monitorProfile as Lh,monitorWindowMs as xh,monitorNeedsTools as hh,filterMonitorTools as Dh,recentFindings as Fh,describeMonitorProfile as kh}from"./monitor-profile.js";import{defaultSkills as Uh,meetingNotesSkill as bh}from"./default-skills.js";import{SURFACES as Gh,FEATURES as Bh,listFeatures as Kh,featureIds as Hh}from"./feature-map.js";export{pa as ACCESS_LOG_MAX,ca as ACCESS_LOG_VERSION,i as ACTOR_KINDS,fp as AGENT_ID_RE,jm as AGENT_REF_RE,SR as ALLOW_ALL,a as ALL_TYPES,hR as AMBIENT_KINDS,rA as AMBIENT_MAX_WORDS,Eu as API_BASE,Op as APPLIES_TO,OT as ASK_TYPES,up as ASSISTANT_ID,ef as AUTOCOMPLETE_MAX_TOKENS,$A as AUTOCOMPLETE_SYSTEM,rf as AUTOCOMPLETE_TEMPERATURE,Mc as AUTONOMY,Ca as AdapterError,Np as AgentError,Us as AnalyzerError,VO as BACKUP_KDF_ITERATIONS,xT as BOARD_TOOL_NAME,JN as BOOKKEEPING_KEYS,zo as BRIEF_STATES,Jg as BRINGBACK_COMMAND,km as BUDGET_DIMENSIONS,ds as BUILTIN_TRIGGERS,rn as BUILTIN_VOICE_INTENTS,wO as BackupError,Fm as BudgetError,ys as CADENCES,uM as CAPABILITY_TOOLS_SYSTEM,aL as CE_SOURCE_PREFIX,oL as CE_SPECVERSION,tL as CE_TYPE_PREFIX,Pc as CHECKS,Jo as CLAIM_KINDS,n as CLASSES,DO as CLOCK_TOLERANCE_MS,dC as COMPACTION_SYSTEM,HO as COMPRESSIONS,lm as COMPRESSION_MODES,mx as CONTINUATION_WINDOW_MS,TS as COOLDOWN_MS,UL as COST_BASES,du as COUNTED,Be as COWRITER_SYSTEM,Ke as COWRITER_TEMPERATURE,o as CURRENT_VERSION,QI as DARK,MR as DATA_SCOPES,Bs as DAYPART_HOUR,OM as DECIDE_TOOL_NAME,Kp as DECLINE_REASONS,hT as DEFAULT_ASK_TIMEOUT_MS,yR as DEFAULT_BLOCK_CHARS,mm as DEFAULT_COMPRESSION,gc as DEFAULT_GATE,Pi as DEFAULT_INTERNAL_PATTERNS,Gi as DEFAULT_LOCK_MS,vS as DEFAULT_MAX_FINISH_TRIES,kR as DEFAULT_MAX_MEMORIES,bS as DEFAULT_MAX_ROUNDS,m_ as DEFAULT_MIN_CALLS,Ph as DEFAULT_MONITOR_PROFILE,nI as DEFAULT_POLICY,qS as DEFAULT_SHIELD,ZS as DEFAULT_STORE,xo as DEFAULT_THRESHOLD,vs as DEFAULT_WAKE,Kl as DESCRIBE_ACTION,bN as DESKTOP_SECTION_IDS,Tx as ECHO_OVERLAP,cx as ECHO_TAIL_MS,E as EFFECTS,S as EGRESS,Ip as EGRESS_CLASSES,KO as ENCRYPTED_TYPE,Su as ENDPOINTS,vr as ENGINE_KINDS,Sp as ENGINE_SPEC_KINDS,Un as ENTITIES_SCHEMA,lu as ENTITLEMENT_PUBLIC_JWK,yn as ENTITY_TYPES,Ga as ENTRY_KINDS,AI as ENTRY_VERSION,t as EVENT_TYPES,Hc as EXECUTIVE,KS as EXHAUSTED_NOTE,GP as EXTRACT_PROVIDER_ID,vP as EXTRACT_ROUTE,HP as EXTRACT_TYPES,Ou as EntitlementError,l as EventError,ex as FACTCHECK_SCHEMA,rx as FACTCHECK_VERDICTS,mi as FAILOVER_CAPABILITY_GAP,li as FAILOVER_CLASS_GAP,AS as FAILOVER_MAX_ATTEMPTS,pI as FAST_FLUSH_MS,_I as FAST_STREAK,kC as FEATURES,Bh as FEATURE_MAP,Gh as FEATURE_SURFACES,Tu as FEATURE_TIER,rC as FETCHED_TTL_MS,jn as FIELD_TYPES,OP as FILES_TOOL,pT as FINDINGS_SCHEMA,_T as FINDING_KINDS,Nl as FIND_ACTION,Ql as FIND_DESCRIPTION,ql as FIND_RESIDENT,jl as FIND_TOOL_NAME,GS as FINISH_NUDGES,EC as FIT_HEADROOM,_u as FREE_LIMITS,hl as FUSED_BUDGET_MS,xl as FUSED_CANDIDATES,tf as GEARS,YA as GOAL_MIN_NEW,Ym as GRANTABLE,Hd as GRANT_INFO,Jm as GRANT_RE,Ix as HF_API,yl as HUB_TOOL_NAME,Cc as HUMAN_FLAGS,ES as INPUT_PROGRESS_TOOLS,ON as INSIGHT_KINDS,XA as INSTRUCTION_RE,Li as INTERNAL_PATTERN_CATALOG,Mr as INVARIANTS,LM as IN_PROCESS_IDS,ss as JOB_ACTIONS,Ac as JOB_POST_ID_RE,Rc as JOB_POST_STATUSES,MI as JOURNAL_BOUNDS,dc as JobPostError,RI as JournalError,vi as KDF_HASH,bi as KDF_ITERATIONS,nR as KernelError,Bp as LEDGER_ENTRY_KINDS,Gp as LEDGER_VERSION,jI as LIGHT,KT as LIVE_RUN_STATUSES,FC as LOCKABLE,BS as LOOPING_NUDGE,ja as LOOP_KINDS,AO as LibraryError,Qa as LoopError,Zo as MAX_BRIEF_CHARS,qo as MAX_BRIEF_RECORDS,jo as MAX_CLAIMS,Qo as MAX_CLAIM_REFS,Gs as MAX_COMMANDS_PER_DELTA,cd as MAX_DEPTH,BP as MAX_DOCUMENT_BYTES,Vi as MAX_ENTRIES,_t as MAX_EXCERPTS,dt as MAX_EXCERPT_CHARS,Le as MAX_GRAPH_NODES,wc as MAX_JOBS_PER_ROUND,NR as MAX_MATCHES,DR as MAX_MEMORY_CHARS,Hi as MAX_NOTE_CHARS,Vu as MAX_NOTE_IMAGE_BYTES,lx as MAX_PENDING_CHARS,Vc as MAX_ROUNDS,yx as MAX_SECONDS,wi as MAX_SECRET_CHARS,ho as MAX_SUBJECTS,Do as MAX_SUBJECT_CHARS,Td as MAX_SUBTASKS,Hn as MAX_SUGGESTIONS,wn as MAX_SUGGESTION_CHARS,pt as MAX_SYNTHESIS_CLAIMS,vf as MAX_TAGS,bf as MAX_TAG_LENGTH,Ki as MAX_TITLE_CHARS,RO as MAX_TITLE_LEN,oO as MAX_TITLE_LENGTH,gn as MAX_TOPICS,Mn as MAX_TOPIC_CHARS,jP as MCP_CATALOG,JP as MCP_REGISTRY_API,NE as MCP_SIGN_IN_CODE,$d as MCP_TOOL_NAME,LR as MEMORY_KINDS,xR as MEMORY_KIND_NAMES,bR as MEMORY_TOOL_SPEC,vR as MEMORY_UPCASTERS,PR as MEMORY_VERSION,Xm as MERGE_POLICIES,Jp as MIN_FIT,FR as MIN_MEMORY_CHARS,Fx as MIN_SECONDS,pd as MIN_TAKEUP_FIT,ns as MISSED_POLICIES,xN as MOMENT_BADGES,Ch as MONITOR_SOURCES,Sx as MUTE_GRACE_MS,oR as ManifestError,Cg as McpClient,GR as MemoryError,Ht as NEAR_TITLE_DISTANCE,mf as NEW_THREAD_SLASH_ITEMS,H as NOTE_ACTIONS,X as NOTE_ACTION_ERRORS,w as NOTE_ACTION_ORDER,V as NOTE_ACTION_TEMPERATURE,W as NOTE_COMMANDS,z as NOTE_COMMAND_MAX_TOKENS,Y as NOTE_COMMAND_TEMPERATURE,wu as NOTE_IMAGE_SCHEME,Xu as NOTE_IMAGE_TYPES,PN as NOTE_SECTIONS,rP as NOTE_TOOL_SPECS,nS as OBSERVATION_TOOLS,HI as OMNI_GRAMMAR,KI as OMNI_MODES,KP as PAGE_CHARS,qI as PALETTES,QE as PARALLEL_LOCAL_RE,fP as PATH_KIND,Xt as PDF_MAX_CHARS,rl as PERMISSION_ANSWERS,el as PERMISSION_EVENT,yC as PERMISSION_MODES,ol as PERMISSION_TIMEOUT_MS,tl as PERMISSION_TOOL_NAME,nu as PLANS,qe as PLAN_AUTHORS,$e as PLAN_DECOMPOSE_MAX_TOKENS,Ze as PLAN_DECOMPOSE_SYSTEM,er as PLAN_DECOMPOSE_TEMPERATURE,Wm as PLAN_MODES,Qe as PLAN_ROLES,rr as PLAN_SECTION_MAX_TOKENS,or as PLAN_SECTION_TEMPERATURE,hC as POLICY_TOKEN_TYPE,xC as POLICY_VERSION,AT as POST_KINDS,fT as POST_STATUSES,yN as PREF_SECTIONS,UN as PREF_SECTION_IDS,MC as PRESENCE_BUDGET_TOKENS,CC as PRESENCE_KINDS,jL as PRICING_BASES,QL as PRICING_LABELS,UC as PRODUCT_HOSTS,ic as PROJECT_ID_RE,Gc as PROJECT_JOBS_SCHEMA,Bc as PROJECT_REVIEW_SCHEMA,Xc as PROJECT_RUN_STATUSES,ac as PROJECT_STATUSES,Ux as PROMPT_TEXT,At as PROPOSAL_STATES,cu as PRO_FEATURES,pL as PUSH_LIMITS,LC as PolicyError,tc as ProjectError,Kc as ProjectRunError,lr as REACH,fu as RECHECK_INTERVAL_MS,Im as RECIPE_MODES,Cm as RECIPE_TOOL_NAME,np as RECORD_ENGINE_KINDS,dO as RECORD_KINDS,zO as RECORD_TYPE,zp as RECRUIT_SCHEMA,DC as REDACTION_TIERS,Ko as REDACTION_TOKEN_TYPES,En as REFINEMENT_SCHEMA,_ as REF_KINDS,Fr as REGISTRY_STATES,ER as REQUIRED_PLUGINS,zN as REQUIREMENTS,IM as RERANK_TOOL_NAME,d as RESOLUTION,$C as RESPONSE_LANGUAGES,Qn as RESPONSE_MODES,Oe as RESULTS_PER_ENGINE,QS as RESULT_TOOL_NAME,HT as RESUMABLE_RUN_STATUSES,Da as RETRIEVAL_TOOLS,ip as ROLE_KINDS,Vm as ROLE_MODES,Xd as ROSTER_KINDS,HS as ROUND_SEPARATOR,lp as ROUTE_PREFERS,w_ as RUN_STATUSES,Om as RecipeError,ci as RouterError,ki as RuleError,UR as SAME_FACT,Dx as SAMPLE_RATE,as as SCHEDULE_KINDS,__ as SCM_KINDS,s as SCOPE_KINDS,ap as SCORECARD_ENTRY_KINDS,sp as SCORECARD_VERSION,uL as SEALED_TYPE,NL as SEALED_VERSION,fe as SEARCH_ENGINES,yI as SEGMENT_RE,wo as SELF_LABELS,WN as SETTINGS_GROUPS,Sg as SETTINGS_OPEN_DEFAULT,YN as SETTINGS_PAGES,ZI as SHAPE,zg as SIDELINE_COMMANDS,Qg as SIDELINE_SLASH_ITEMS,TM as SIDELINE_TOOL_NAME,cM as SIDELINE_TOOL_SPEC,SA as SKILL_CONTEXTS,cA as SKILL_FILE_KINDS,_P as SKILL_FILE_TOOL,lA as SKILL_HISTORY_SCOPES,EA as SKILL_MANIFEST_VERSION,mA as SKILL_MCP_MODES,TA as SKILL_TRUST,pA as SKILL_UPCASTERS,hA as SKILL_VARS,DA as SKILL_VAR_NAMES,UP as SKIP_DIR_NAMES,lf as SLASH_TYPING_RE,cI as SLOW_FLUSH_MS,EI as SLOW_POLICY,wd as SOLO_BUDGET,TN as SORT_LABELS,mN as SORT_MODES,tR as SOURCES,HM as SOURCE_TOOL_SPEC,tA as SOURCE_TRUST,wt as SPAN_MIN_TERMS,sN as SPEAKER_SLOTS,YT as STALLED_AFTER_MS,Fp as STARTER_AGENTS,Qm as STARTER_TEAMS,y_ as STEP_MAX_CHARS,Lo as SUBJECT_KINDS,Vn as SUGGESTIONS_SCHEMA,ft as SUPERSEDE_OVERLAP,Fi as SUPPRESSED,Te as SWARM_ROLES,mt as SYNTHESIS_SCHEMA,Es as ScheduleError,gL as SealError,Gr as SearchEngineError,_A as SkillManifestError,aA as SkillSourceError,KA as SkillVarError,qn as StructuredError,FO as SyncError,kx as TARGET_SECONDS,U_ as TASK_TRANSCRIPT_MAX_CHARS,pu as TEAM_FEATURES,j_ as TEAM_MANUAL,nT as TEAM_PLAN_SCHEMA,Vd as TEAM_SHAPES,J_ as TEAM_TOOL_NAME,JI as THEMES,dT as THREAD_KINDS,RT as THREAD_STATUSES,jg as THREAD_TOOL_NAME,qg as THREAD_TOOL_SPEC,Vx as TIER_LABEL,tO as TITLE_RULES_VERSION,$I as TOKEN_NAMES,eu as TOKEN_ROLES,KE as TOKEN_SKEW_MS,Cn as TOPICS_SCHEMA,$t as TRANSCRIPT_MAX_CHARS,is as TRIGGER_KINDS,ux as TTS_ARCH_LABEL,wm as TeamError,H_ as TeamRunError,Zr as ToolGroupError,cS as UNAVAILABLE_REASONS,rO as UNTITLED_MEETING,pr as UPCASTERS,mu as UPGRADE_URL,yL as USAGE_RING_MAX,un as UTTERANCE_DANGLING_MS,In as UTTERANCE_SETTLE_MS,fx as VAD_DEFAULTS,Ui as VAULT_VERSION,Ex as VOICE_STATES,Bi as VaultError,Ks as VoiceIntentError,Yr as WEATHER_HOST,zr as WEATHER_TIMEOUT_MS,dM as WEATHER_TOOL_NAME,RM as WEATHER_TOOL_SYSTEM,om as WEB_SEARCH_SPEC,em as WEB_SEARCH_TOOL_NAME,rm as WEB_SEARCH_TOOL_SYSTEM,uo as WIDGET_SURFACES,Hp as WITHDRAW_AFTER,rd as WORKLOG_KINDS,zm as WORK_GRANTS,af as WRITER_PREFS,sf as WRITER_PREF_DEFAULTS,Jr as WeatherError,Zt as YOUTUBE_HOSTS,qa as abortCause,It as accept,Hl as actionMenu,mI as adaptProfile,Gg as adaptiveToolRetryHint,Hf as addTag,FS as addUsage,ep as adjustSummary,GO as advanceBases,BC as agentAllowed,xd as agentColor,Up as agentFromForm,Ld as agentHue,hd as agentInitials,Pd as agentKind,oe as agentMentionAt,bo as aliasMap,US as anthropicTranscript,mc as applyAll,c_ as applyCard,Ge as applyEdits,PI as applyEntry,YC as applyPolicyToSettings,KN as applySections,KL as applyUsage,de as appoint,Xr as areaLabel,za as argsShape,ch as argsToText,Pp as assistantAgent,hP as attachedFilesProvider,br as attemptOrder,Qc as attest,bE as authHeader,FE as authorizeUrl,Ig as availableDestinations,iI as backupFromRecords,VE as bareToolName,yP as basenameOf,oI as bestCodec,yp as blankAgent,g_ as blankConnection,pc as blankJobPost,ZT as blankProject,Zm as blankTeam,sS as blockedToolResult,mT as boardText,MT as boardToolProvider,CT as boardToolSpec,UI as boundSegments,O_ as branchFor,rg as breadcrumb,sT as breakCycles,et as briefId,tt as briefLinks,aM as briefPrompt,ot as briefTerms,rt as briefToText,wl as buildGroupDispatchSpec,xe as buildNoteGraph,Qt as buildPdfDocument,Ie as buildSearchUrl,Gl as buildToolset,ka as buildTrajectory,la as buildTranscriptDocument,bd as builtinOrg,Cu as can,es as canAddEntry,lc as canJobPostTransition,qT as canProjectTransition,Oh as canRefresh,XE as canRunConcurrently,Or as canSatisfy,WR as candidatesFrom,Yc as canonical,PE as canonicalResource,NM as capabilityToolsProvider,hM as capabilityView,oa as captionTracksFromPlayerResponse,Fd as cardNumbers,T_ as cardOverride,n_ as carveBudget,Wx as catalogStatus,$x as catalogUnavailable,GI as catchUpPlan,N as causesAreWellFormed,nL as ceHostOf,sL as ceSourceOf,VN as changedSections,IP as checkAttachablePath,gr as checkInvariants,at as checkKnowledgeInvariants,Iu as checkoutUrl,GT as checkpointFrom,B as chipText,FM as choiceNote,DM as choicePatch,ct as claimsFromSynthesis,lS as classifyFailure,pe as classifyModel,Ii as classifySource,cl as claudePermissionResponse,aO as cleanTitle,of as clipCompletion,h_ as clipMessage,xs as clipText,x_ as clipTranscript,nE as coerce,Bn as coerceEntities,kP as collapseDots,Fg as combineSystemPrompt,Z as commandLineAt,An as commandLooksFinished,Xs as commandsFromSegments,JS as compactValue,_C as compactable,mC as compactionPrompt,TC as compactionRecord,u as compareEvents,dR as compileQuery,Hs as compileWake,G as composerChips,sm as compressToolSpec,nm as compressToolSpecs,Em as compressionStats,f_ as connectionFor,M_ as connectionFromForm,XR as containment,$o as contentHash,F_ as continuationNote,Pf as continueList,gt as converge,zL as costFor,Ra as createAccessLog,Ma as createAdapterRegistry,Bg as createAdaptiveToolPolicy,ks as createAnalyzerRegistry,PT as createAnswerBox,c as createAppender,xr as createBlobStore,ST as createBoard,Lm as createBudget,PS as createCallRunner,ha as createCitationCollector,k_ as createControl,JM as createFetchedStore,dI as createJournal,iR as createKernel,Lr as createLogStore,rR as createManifest,Pr as createMemoryAdapter,mS as createModelHealth,ti as createModelRouter,dl as createPermissionDesk,Dr as createRegistry,VS as createResultStore,Di as createRuleEngine,FT as createRunCache,CI as createSegment,sA as createSkillSourceRegistry,JA as createSpendMeter,Ya as createStepRecorder,SE as createStructuredStream,qr as createToolGroupRegistry,rS as createToolLoopGuard,_s as createTriggerRegistry,Wa as createTurnRunner,On as createUtteranceGate,Rx as createVad,Xi as createVault,$s as createVoiceIntentRegistry,nx as createVoiceLoop,u_ as credentialEnv,ou as cssVarName,RL as cursorOf,dN as dayBucket,yO as decide,t_ as decideRecruit,IA as declaredAccess,WO as decryptBackup,Ku as defaultImagePolicy,Bu as defaultLinkPolicy,Nh as defaultMcpServers,k as defaultModelId,Uh as defaultSkills,eC as defaultTtl,en as defaultVoiceIntents,Gx as defaultVoiceName,BM as deferAttachedSources,ga as defineAdapter,Cp as defineAgent,Ms as defineJob,Sc as defineJobPost,Ja as defineLoop,Fs as defineMeetingAnalyzer,ri as defineMiddleware,ei as defineModel,QT as defineProject,oi as defineRouteStrategy,hi as defineRule,Zn as defineSchema,yr as defineSearchEngine,iA as defineSkillSource,Um as defineTeam,Qr as defineToolGroup,ps as defineTrigger,Zs as defineVoiceIntent,CN as demd,rN as densityRibbon,P as dequeue,JO as deriveBackupKey,nt as deriveBrief,Et as deriveBriefs,Yi as deriveKey,lO as deriveMeetingTitle,PO as deriveTitle,xp as describeAgent,MP as describeAttachedPath,ed as describeCall,N_ as describeConnection,dp as describeEngine,kh as describeMonitorProfile,CP as describePathSize,El as describePermission,Mm as describeRecipeForApproval,Hm as describeRole,Ih as describeRuntime,$n as describeSchema,xx as describeSearchResult,Eg as describeSettingValue,zS as describeShape,VT as describeSpend,z_ as describeTeamForApproval,gd as describeTeamShape,hS as describeToolCall,VL as describeTurnUsage,Og as destinationFromAgent,fg as destinationFromEndpoint,jx as diarizeRows,rh as dictToText,Nt as diffProposal,vE as discoverMcpAuth,va as displayName,PP as displayPath,CM as distributionConfidence,kf as docStats,QA as draftSeparator,St as driftedRefs,Rm as dryRunRecipe,B_ as dryRunTeam,Yx as dtypePicker,Cs as dueJobs,yt as duplicateTitles,Go as earnsBrief,qs as editDistance,ve as editKey,uc as effectiveGate,Oo as effectiveGrants,ng as effectiveSettingValue,JE as effectiveToolName,he as egoGraph,VC as egressAllowed,IT as emptyBoardState,ec as emptyProjectRecord,UT as emptyRun,pf as enabledSkills,XO as encryptBackup,vC as endpointAllowed,op as engineKey,_p as engineKeyOf,Lp as engineOf,Ce as engineOrder,pp as engineRef,jp as engineRow,Qp as engineRows,Qd as engineStrip,$p as engineWorth,vn as entitiesFormat,bn as entitiesPrompt,Kn as entitiesStream,Qi as entryMeta,NI as entryStamp,dh as envLikeArgs,_h as envToText,oo as equipmentFor,Za as errorFacts,zl as estimateTokens,r_ as evaluatorPrompt,fL as eventStats,pm as expandRecipe,fR as expandReplacement,GA as expandSkillPrompt,mE as explainMcpError,Uu as exportDevicePublicKey,Sd as extendDependents,VI as extractFilters,ui as extractUrls,YP as extractorChain,ix as factcheckKey,tx as factcheckPrompt,ax as factcheckVerdict,RS as failoverExhausted,Ei as failoverOrder,WC as featureEnabled,Hh as featureIds,QM as fetchKey,qP as fetchMcpRegistryPage,BE as fetchMcpToken,qM as fetchTitle,ZM as fetchedAsSources,$M as fetchedFacts,Qf as filterByTags,ba as filterEntries,EP as filterMcpServersForSkill,Dh as filterMonitorTools,q as filterNoteActions,_N as filterRecords,F as filterSections,be as filterTypoEdits,Ol as findActionArgs,Zl as findDispatchProvider,tE as findJson,RR as findMatches,sh as findRepeats,QN as findRow,ie as findSkillByName,se as findTargetByName,Al as findTools,fl as findToolsResult,ws as findWakeCommand,TT as findingsInstruction,NT as findingsOf,$c as fit,aC as fitFor,oT as fixedPlan,mM as foldBackFor,iM as foldBackNote,uT as foldBoard,sM as foldNotes,rc as foldProject,bT as foldRun,vO as forkConflict,fa as formatBytes,Lx as formatDownloads,TR as formatReport,Kt as formatSurvey,Wf as formatTag,Jf as formatTagQuery,iN as formatTalkTime,Ea as formatTimestamp,Sa as formatTranscript,wL as formatTurnUsage,JL as formatUsd,Vr as formatWeather,J as frameNoteAction,Ru as freeCap,os as fromB64,SL as fromCloudEvent,mL as fromCloudEventLines,go as fuseRRF,Cl as fusedRanker,Nc as gateAllows,WP as gatewayExtractor,yu as generateDeviceKey,wg as getMcpProviders,Kr as getWeather,Rn as gistOpening,dn as gistText,QC as globToRegExp,zA as goalDraftAllowed,Bm as grantAllows,Gd as grantChoices,Bd as grantsFromChoices,ro as grantsNeededFor,Fe as graphStats,qA as groundingBlock,FN as groupActionsByOwner,ZN as groupById,D as groupModels,AN as groupRecords,ah as groupRuns,na as groupSegments,gN as hasInsights,so as hasSubstance,Kf as hasTag,zf as hasTagTerms,nd as holdsGrants,pg as homeChecklist,Ni as hostMatches,io as housekeepingTarget,kl as hubSpec,$O as identityCodec,GM as imageAttachmentsOf,kM as inProcessPatch,xM as inProcessView,Lf as indentSelection,dL as ingestCloudEvents,uN as insightKindOf,pE as installHintFor,WA as instructionOnLine,YI as isActionable,Wr as isAmbiguousLocation,TO as isBetterTitleSource,vd as isBuiltin,WE as isCacheable,nC as isContextLimitError,gh as isDefaultMcpServer,YO as isEncryptedBackup,uI as isEntry,_n as isFillerSentence,iO as isGenericTitle,Kg as isInvalidToolParametersResult,no as isLocalHelper,Zi as isLocked,iS as isLoopableTool,K_ as isModelUnavailable,sE as isNothing,il as isPermissionTool,to as isPleasantry,gu as isPro,C as isQueued,IO as isRecordId,Ho as isRedactionToken,A as isRef,Ne as isResultHost,BT as isResumable,dA as isSafeSkillPath,DL as isSealedBlob,qO as isSealedRecord,NP as isSecretPath,Vo as isSelfLabel,bO as isSettled,FL as isShredded,cf as isSkillEnabled,NS as isSourceGateError,EN as isSpeakerImageValue,cE as isStaleMcpSession,Uo as isSubjectCandidate,Mu as isTeam,II as isTombstone,T as isValidEvent,KR as isValidMemory,NO as isValidStoredRecord,ra as isYouTubeUrl,e_ as jobApplications,Ed as jobFromSubtask,_c as jobPostFromForm,Fc as jobResults,Tc as jobToRole,Ps as jobsForEvent,bc as jobsPrompt,iC as keepRecentFor,ZO as keyCache,Ua as lanesOf,ZC as languageInstruction,ox as lastClaimOf,bl as lastUserText,lo as layoutFlowchart,wp as ledgerKey,Du as licenseFromPayload,wA as lineAt,I as linearize,Wt as linesFromItems,Mt as linkClaims,og as linkTo,tg as linkToRow,La as linkifyCitations,UA as lintSkillPrompt,ye as lintText,Kh as listFeatures,jN as listRows,$i as lockedSummary,jt as looksScanned,Ax as lowBandEnergy,da as makeAccessEvent,Yl as makeDispatchProvider,Jc as makeEntry,Xl as makeGroupDispatchExecutor,fI as makeJournalEntry,Xp as makeLedgerEntry,oP as makeNoteToolExecutor,OO as makeRecordId,R as makeRef,_i as makeSourceStore,Aa as makeStorageTier,Fl as makeToolHub,di as manifestText,dm as mapInput,QR as markUsed,zR as matchForForget,AR as matchIndexFor,Rf as matchSlashRecipe,df as matchSlashSkill,ff as matchSlashTeam,hs as matchSummary,jf as matchesTagFilter,Wg as mcpBackoff,Zd as mcpDispatchProvider,hg as mcpInventorySystem,Pg as mcpProvider,eL as mcpServerFromCatalogItem,xg as mcpSharedSystem,sR as meetDecisions,gi as meetReach,fs as meetingEndedTrigger,NN as meetingInsights,bh as meetingNotesSkill,As as meetingStartedTrigger,cO as meetingTitlePrompt,jR as memoryBlock,HR as memoryKey,aP as memoryToolProvider,ZR as memoryToolSystem,ne as mentionAnswerPrefix,bt as mentionsFrom,gg as mergeEndpointDestinations,Me as mergeEngineResults,Je as mergeResearchLanes,DI as mergeSegments,ae as mergeSkillPrompt,wN as mergeStamped,L_ as mergeTranscript,cC as messagesAfter,P_ as messagesFor,Bx as microphoneError,sC as minWindowFor,dE as missingCommandIn,_E as missingCommandMessage,Id as missingStarters,GC as modelAllowed,Xx as modelRows,Mx as modelSearchUrl,y as modelSummary,hN as momentBadge,nn as monitorIntent,hh as monitorNeedsTools,Lh as monitorProfile,xh as monitorWindowMs,L as moveQueued,Co as multiSearch,Ah as mutableRef,qp as needForJob,OA as needsBridge,YE as needsConfirmation,Fu as needsRecheck,PL as newDeviceKey,qu as newNoteImageId,D_ as newSteps,ls as nextFireAt,nM as nextSidelineIndex,Ts as nextWakeAt,rI as nodeCodec,CL as nodeSealer,pS as normModelName,Mp as normalizeAgent,hm as normalizeBudget,Vp as normalizeCall,R_ as normalizeConnection,rp as normalizeEngine,Tp as normalizeEngineSpec,Ic as normalizeGate,Gm as normalizeGrants,Ef as normalizeIntent,Ec as normalizeJobPost,BR as normalizeMemory,Px as normalizeModel,bC as normalizeOrgPolicy,FP as normalizePath,RE as normalizePlatform,mp as normalizePolicy,qL as normalizePricing,jT as normalizeProject,Pt as normalizeRecord,Lt as normalizeRecords,$P as normalizeRegistryEntry,ZP as normalizeRegistryPage,td as normalizeRequest,tp as normalizeScm,LA as normalizeSkill,js as normalizeSpeech,uO as normalizeStoredRecord,Fo as normalizeSubject,Gf as normalizeTag,Bf as normalizeTags,vm as normalizeTeam,Dn as normalizeTopic,Fn as normalizeTopics,kS as normalizeUsage,nf as normalizeWriterPrefs,Q as noteActionItems,j as noteActionLabel,Wu as noteImageId,zu as noteImageIds,Yu as noteImageRef,Ju as noteImageRefs,sn as noteIntent,LN as noteSectionKind,SM as noteUnits,Yd as observeInbox,Au as observeSince,zd as observeStrip,Ls as occurrenceKey,ms as occurrencesBetween,Il as oneLiner,yS as openAiTranscript,xL as openBlob,MM as openDecision,Ji as openEntry,QO as openRecord,Yt as orderLines,uA as originLabel,RA as originOf,Qu as orphanNoteImages,kt as orphanRecords,Mf as outlineOf,ul as overlapRank,vI as overlayEntries,TE as packageFromArgs,qN as pageById,Jt as pageTextFromItems,$N as pagesOf,XP as paginateText,ru as paletteFor,zt as paragraphsFromLines,jE as parallelEligible,re as parseAgentMention,Th as parseArgsInput,ME as parseAuthChallenge,it as parseBriefText,$g as parseBringBack,Ys as parseClock,Vs as parseCommand,cs as parseCron,Ws as parseDuration,Gn as parseEntities,ph as parseEnvInput,o_ as parseEvaluation,lT as parseFindings,So as parseFlowchart,yc as parseJobs,cR as parseJsonl,ag as parseLink,Cf as parseListItem,mh as parseMcpConfig,DN as parseMeetingNotes,$u as parseMeetingText,Tf as parseNewThread,Js as parseNumberWords,wI as parseOmni,tT as parsePlan,ar as parsePlanTasks,fO as parseRecordId,mn as parseRefinement,A_ as parseRemote,Uc as parseReview,kI as parseSegmentName,Zg as parseSideline,fE as parseSignInPrompt,te as parseSkillMention,yA as parseSkillVars,EE as parseStructured,Yn as parseSuggestions,Yf as parseTagQuery,sa as parseTimedText,pO as parseTitleResponse,hn as parseTopics,wr as parseWeather,zs as parseWhen,ea as parseYouTubeUrl,gx as partitionTtsModels,gP as pathAttachment,LP as pathAttachmentsOf,M as pendingQueue,ll as permissionAllowed,Sl as permissionAnswer,_l as permissionIcon,nl as permissionKeys,pl as permissionLine,KC as permissionMode,sl as permissionRequestFromClaude,al as permissionToolSpec,Os as personJoinedTrigger,ya as phasesOf,Is as phraseTrigger,aa as pickCaptionTrack,lI as pickProfile,ge as pickResults,BN as pickSections,Si as pinnedOrderOf,Er as planAttribution,nr as planBody,lC as planCompaction,_L as planEventPush,Nu as planLabel,uu as planOf,sr as planParts,Mo as planQueries,tr as planSectionSystem,UO as planSync,ir as planTitleFor,ZE as planToolRound,aT as plannerPrompt,Ag as pointsAtGateway,TI as policyFor,JC as policyHash,zC as policyLabel,bp as poolFor,ni as preferenceFor,XM as prefetchAttachment,VM as prefetchPlan,uC as presenceBlock,fC as presenceDelta,AC as presenceFor,ZL as priceUsage,WT as priorWorkFor,ua as projectChain,$T as projectFromForm,oc as projectProgress,OL as projectYear,x as promoteQueued,fd as promoteRoles,Ha as promptEntries,XL as promptTokensOf,i_ as proposalFromNeeds,s_ as proposalToAgent,Ot as propose,qR as pruneMemories,Ns as questionTrigger,eg as quickRows,Ml as rankFused,le as rankLinkTargets,ze as rankResearchCards,mP as rankSkills,Bo as rankSubjects,YL as rateFor,OC as reachOf,mr as reachRank,Tr as reachSatisfies,xE as readAuthServerMetadata,DE as readRegistration,LE as readResourceMetadata,Ai as readSource,tM as readThread,yE as readTokenResponse,cc as readyJobs,JR as recall,Tl as recallPermission,Fh as recentFindings,Af as recipeInvocationText,_m as recipeParams,Nm as recipeToolProvider,gm as recipeToolSpec,YR as reconcile,Ur as reconcileEngines,aI as recordsFromBackup,E_ as recruitEvents,a_ as recruitForRun,S_ as recruitJob,_a as redactAccessArgs,ht as redactedTokensIn,Dt as redactionCost,wC as redactionTier,pn as refineSpokenCommand,ln as refinementFormat,Sn as refinementPrompt,Tn as refinementStream,fh as refreshArgs,GE as registerMcpClient,hE as registrationRequest,QP as registryListUrl,ut as reject,ml as rememberPermission,b as rememberRecent,tn as reminderIntent,wf as removeTag,UM as renderContent,mo as renderFlowchartSvg,Gu as renderMarkdown,iE as repairJson,IR as replaceAll,uR as replaceAllInRange,OR as replaceMatch,mR as replay,ii as requirementsFor,si as requirementsForStep,Pl as rerankThrough,Xe as researchRelevance,Ye as researchSnippet,Xg as resetMcp,f as resolveRef,eM as resolveSidelineTarget,XI as resolveSince,vo as resolveSubjects,Dp as resolveTeam,iu as resolveTheme,rE as responseFormat,jS as resultToolSpec,G_ as resumeTeam,vc as reviewPrompt,aE as rewriteJson,iL as rfc3339,ce as roleById,Dd as roleCardId,BL as rollupKey,Cd as rosterRows,kc as roundBudget,LS as roundCap,NC as roundCount,hc as roundJobs,gC as roundMinutes,oS as roundSignature,HC as routeAllowed,Zp as routeFor,Ia as routeGraph,Re as routeTeam,RN as rowTime,vT as runFromEvents,Jd as runLanes,Am as runPlan,xc as runProject,fm as runRecipe,WS as runResultQuery,XT as runState,v_ as runTeam,$E as runToolRound,CS as runTurnLoop,dS as runWithFailover,we as salientTerms,eA as sameMemory,Ti as sameModelKey,NA as sameSkillOrigin,Xf as sameTags,fn as sameUtterance,bx as sampleSeconds,vx as sampleTooShort,Zx as saveTimedOut,qx as saveVoiceFailure,SI as scalePolicy,an as scheduleIntent,Km as scmAllows,LL as sealBlob,zi as sealEntry,jO as sealRecord,qi as searchEntries,Cx as searchModels,tm as searchResultsToText,mg as searchSettings,MO as searchTextFor,uP as secretReason,HN as sectionHash,dg as sectionOfRow,vN as sectionSpec,GN as sectionValue,ug as seedDestinations,LI as segmentBytes,xI as segmentEntries,FI as segmentName,bI as segmentsFor,yf as selectionStats,sg as setSettingValue,XC as settingLocked,ig as settingValue,_g as settingsGateOf,lg as settingsOpenMode,cg as settingsStatusAll,Tg as settingsStatusOf,cn as settleRefinement,zc as sha256,XS as shieldToolResult,Ri as shortUrl,mO as shouldAutoTitle,hI as shouldRotate,Ng as shouldSeedDestinations,hL as shredBlob,lM as sidelinePath,pM as sidelineToolProvider,bu as signChallenge,OE as signInError,IE as signInFromError,uE as signInToolResult,ai as signalsFrom,VR as similarity,TP as skillCatalogSystem,Kd as skillChoices,RP as skillDiscoveryProvider,dP as skillEntry,pP as skillFileProvider,fA as skillFiles,lP as skillHandle,Nf as skillInvocationLabel,uf as skillInvocationOf,gA as skillIsStale,nP as skillPackageFiles,sP as skillRunFromSkill,SP as skillToolSystem,FA as skillVar,BA as skillVarGuidance,kA as skillVarPattern,If as slashCommandInsert,_f as slashCommandItems,wR as slotOf,hp as slugAgentId,eT as slugTeamName,DP as sniffType,LO as snippetOf,yd as soloTeam,pN as sortRecords,cN as sortStamp,Dg as sourceCitationSystem,uS as sourceGate,IS as sourceGuardFor,fi as sourceId,EM as sourceOf,Mi as sourcePolicyFor,OS as sourcePolicySettings,Ci as sourceUrlsOf,xa as sourcesFromToolText,vt as spanningQuestions,_x as speakStream,tN as speakerBreakdown,SN as speakerLabeller,eN as speakerStats,aN as speakerTimeline,wT as spendOf,jd as spendRows,tS as stableToolCallKey,kO as stampOf,Hx as startRecording,kp as starterAgents,Od as starterTeam,qm as starterTeams,DS as stepResultText,eI as streamCodec,ju as stripNoteImageRefs,Xo as stripQualifiers,ko as subjectKey,yo as subjectTokens,vA as substituteSkillVars,ad as subtaskFromRequest,Zf as suggestExistingTags,Wo as suggestMerges,bA as suggestSkillVar,Wn as suggestionsFormat,Xn as suggestionsPrompt,zn as suggestionsStream,Zc as summarize,Wp as summarizeEngine,ih as summarizeRun,HL as summarizeUsage,IN as summarySections,gI as supersedes,_e as supportsSubagents,Gt as surveyCorpus,Qx as switchOutcome,Tt as synthesisPrompt,pC as systemWithSummary,qf as tagFacets,$f as tagsSearchText,id as takeUp,sd as takeUpLine,ld as taskTree,Dc as teamForRound,$m as teamFromForm,ud as teamHealth,Of as teamInvocationText,Rd as teamLanes,dd as teamLine,Nd as teamShape,X_ as teamToolProvider,W_ as teamToolSpec,Y_ as teamToolTimeoutMs,Ud as teamsWithSolos,Vg as testMcpServer,oh as textToDict,au as themeStylesheet,rM as threadManifest,md as threadRows,Ka as threadTitle,oM as threadToolProvider,Va as threadTree,Ba as threadsOf,Bt as thresholdSweep,Pu as tierFor,Rp as tierOf,ia as timedTextUrl,on as timerIntent,Rs as timerTrigger,SO as titleFromDate,EO as titleFromParticipants,sO as titleFromSummary,nO as titleFromTopics,rs as toB64,cT as toBriefClaims,bM as toChatMessages,EL as toCloudEvent,TL as toCloudEventBatch,lL as toCloudEventLines,tu as toCssVars,CO as toIndexEntry,eE as toJsonSchema,pR as toJsonl,Ir as toModelSchema,ur as toModelSchemas,vM as toMultimodalMessages,Sh as toSanitizedReport,gO as toSearchRecord,hf as toggleLinePrefix,Ff as toggleLink,Vf as toggleTag,Df as toggleTask,xf as toggleWrap,UE as tokenExpired,kE as tokenRequest,Qs as tokenize,OI as tombstone,Ll as toolDoc,aS as toolMadeProgress,eo as toolNeedFor,kg as toolStatus,wE as toolTraits,Ve as topicTerms,us as topicTrigger,xn as topicsFormat,Ln as topicsPrompt,Pn as topicsSchema,kn as topicsStream,zE as traitsIndex,ma as transcriptFromTracks,$ as triggerQueryAt,Sm as trimDescription,De as trimGraph,AA as trustOf,Nx as ttsArchOf,wa as turnsOf,oE as unfence,Wi as unlockVault,ue as unwrapRedirect,_r as upcast,dr as upcastAll,$R as upcastMemory,CA as upcastSkill,PA as upcastSkills,kd as upsertAgents,vL as usageFromEvent,GL as usageFromOpenAi,Dm as usageOf,bL as usageRecord,Vl as validateAction,gp as validateAgent,xm as validateBudget,Ar as validateCapability,d_ as validateConnection,cp as validateEngineSpec,ji as validateEntry,m as validateEvent,wP as validateExtractRequest,VP as validateExtractResponse,Oc as validateGate,fr as validateInvocation,nc as validateJobPost,JT as validateProject,cm as validateRecipe,Ss as validateSchedule,MA as validateSkill,bm as validateTeam,co as validateView,po as validateViewInvocation,Ao as validateWidget,fo as validateWidgetMessage,Ug as vaultWidgetSystem,Eh as verdict,qc as verifyAttested,jc as verifyChain,xu as verifyEntitlement,jC as verifyPolicyToken,hu as verifySignedToken,ta as videoMetaFromPlayerResponse,_o as viewResult,Ut as vocabularyDrift,gs as voiceCommandTrigger,Jx as voiceListRows,zx as voicePicker,Ft as wantedPages,WI as wantsModel,bg as wantsVaultGuidance,iT as waves,YM as weatherFollowupPlace,WM as weatherPlace,AM as weatherToolProvider,Hr as weatherUrl,ML as webCryptoSealer,Kx as webMedia,We as webQuery,am as webSearchToolProvider,CE as wellKnownUrls,Md as whereItWorks,yg as widgetAuthoringSystem,Io as widgetIcon,Se as wikiQueryAt,xt as wikilinksIn,tC as windowOf,xP as withAbsolutePaths,LT as withBoardTool,nh as withCost,jM as withFetchedMemo,Wl as withGuidance,Ul as withHint,IC as withPresence,U as withRecent,YS as withResultShield,kT as withRunCache,KM as withSourceTool,xS as withToolSystem,Lu as withinFreeLimit,gS as withinReach,xO as wordCount,Ue as wordDiff,$_ as workLogEvidence,q_ as workLogFor,Z_ as workLogText,I_ as worktreeDirFor,VA as writerAffordance,ZA as writerRequest,jA as writerTail};
@@ -0,0 +1,3 @@
1
+ import{EventError as w}from"./event.js";const m="This example is {}.",g=n=>{const i=Math.max(...n),s=n.map(e=>Math.exp(e-i)),t=s.reduce((e,o)=>e+o,0);return s.map(e=>e/t)},h=n=>n.replaceAll("_"," "),E=n=>`The answer to the question "${n}" is {}.`;function A(n){const i=Object.values(n);if(i.length<=1)return 1;const s=-i.reduce((t,e)=>t+(e>0?e*Math.log(e):0),0);return Math.max(0,Math.min(1,1-s/Math.log(i.length)))}async function S(n,i,s,t=m){const e=await n.nli(i,s.map(o=>t.replace("{}",o)));if(!Array.isArray(e)||e.length!==s.length)throw new w("SHAPE","open-decision: nli must return one logit row per hypothesis");return g(e.map(o=>o[n.entailment]))}async function y(n,{state:i,instructions:s,criteria:t,premise:e,candidates:o,hypothesis:c}){const a=e==="state_question"?`${i}
2
+
3
+ Question: ${s}`:i,r=Object.keys(t),p=[],d=new Set;for(const l of r){const u=t[l];let f=o==="label"?h(l):o==="label_description"?u?`${h(l)}: ${u}`:h(l):u||h(l);d.has(f)&&(f=`${h(l)}: ${f}`),d.add(f),p.push(f)}const O=await S(n,a,p,c==="question"?E(s):m),b=Object.fromEntries(r.map((l,u)=>[l,O[u]]));return{winner:r.reduce((l,u)=>b[u]>b[l]?u:l,r[0]),probabilities:b}}async function $(n,i,s,t){const e=await y(n,{state:i,instructions:s,criteria:t,premise:"state",candidates:"description",hypothesis:"question"}),o=await y(n,{state:i,instructions:s,criteria:t,premise:"state",candidates:"label_description",hypothesis:"default"});let c,a;if(e.winner===o.winner)c=e.winner,a=Object.fromEntries(Object.keys(t).map(r=>[r,(e.probabilities[r]+o.probabilities[r])/2]));else{const r=Object.fromEntries(Object.keys(t).filter(p=>p===e.winner||p===o.winner).map(p=>[p,t[p]]));({winner:c}=await y(n,{state:i,instructions:s,criteria:r,premise:"state_question",candidates:"label",hypothesis:"default"})),a=c===e.winner?e.probabilities:o.probabilities}return{type:"choice",choice:c,probabilities:a,confidence:A(a)}}async function j(n,i,s,t){const e=await S(n,i,t,E(s)),o=Object.fromEntries(t.map((c,a)=>[String(a),e[a]]));return{type:"score",score:t.reduce((c,a,r)=>c+r*e[r],0),legend:Object.fromEntries(t.map((c,a)=>[String(a),c])),probabilities:o,confidence:A(o)}}async function P(n,i,s){const[t]=await n.nli(i,[s]);return{type:"noul",noul:g(t)[n.entailment]}}async function H(n,i){if(!i||typeof i.nli!="function"||!Number.isInteger(i.entailment))throw new w("SHAPE","open-decision: a model { nli, entailment } is required");if(typeof n?.state!="string")throw new w("SHAPE","open-decision: state must be a string");const s={};for(const[t,e]of Object.entries(n.questions||{}))if(e.type==="choice"){if(!e.criteria||Object.keys(e.criteria).length<2)throw new w("SHAPE",`open-decision: ${t}: a choice needs at least two candidates`);s[t]=await $(i,n.state,e.instructions,e.criteria)}else if(e.type==="score"){if(!Array.isArray(e.criteria)||e.criteria.length<2)throw new w("SHAPE",`open-decision: ${t}: a score needs at least two levels`);if(new Set(e.criteria).size!==e.criteria.length)throw new w("SHAPE",`open-decision: ${t}: score levels must be unique`);s[t]=await j(i,n.state,e.instructions,e.criteria)}else if(e.type==="noul")s[t]=await P(i,n.state,e.instructions);else throw new w("SHAPE",`open-decision: ${t}: unknown question type ${JSON.stringify(e.type)}`);return{answers:s}}export{A as distributionConfidence,H as openDecision};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chatpanel/events",
3
- "version": "0.213.0",
3
+ "version": "0.221.0",
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",
@@ -28,6 +28,8 @@
28
28
  "./capability-uses.js": "./capability-uses.js",
29
29
  "./capability-client.js": "./capability-client.js",
30
30
  "./capability-adapters.js": "./capability-adapters.js",
31
+ "./open-decision.js": "./open-decision.js",
32
+ "./runtime-in-process.js": "./runtime-in-process.js",
31
33
  "./capability-providers.js": "./capability-providers.js",
32
34
  "./capability-tools.js": "./capability-tools.js",
33
35
  "./fast-path.js": "./fast-path.js",
@@ -186,12 +188,15 @@
186
188
  "./theme.js": "./theme.js",
187
189
  "./titles.js": "./titles.js",
188
190
  "./tool-discovery.js": "./tool-discovery.js",
191
+ "./tool-rank-fused.js": "./tool-rank-fused.js",
192
+ "./tool-hub.js": "./tool-hub.js",
189
193
  "./tool-dispatch.js": "./tool-dispatch.js",
190
194
  "./tool-groups.js": "./tool-groups.js",
191
195
  "./tool-group-capabilities.js": "./tool-group-capabilities.js",
192
196
  "./tool-group-data.js": "./tool-group-data.js",
193
197
  "./tool-hints.js": "./tool-hints.js",
194
198
  "./tool-need.js": "./tool-need.js",
199
+ "./housekeeping.js": "./housekeeping.js",
195
200
  "./tool-result.js": "./tool-result.js",
196
201
  "./agent-permission.js": "./agent-permission.js",
197
202
  "./tool-loop-guard.js": "./tool-loop-guard.js",
@@ -260,6 +265,8 @@
260
265
  "capability-uses.js",
261
266
  "capability-client.js",
262
267
  "capability-adapters.js",
268
+ "open-decision.js",
269
+ "runtime-in-process.js",
263
270
  "capability-providers.js",
264
271
  "capability-tools.js",
265
272
  "fast-path.js",
@@ -425,12 +432,15 @@
425
432
  "theme.js",
426
433
  "titles.js",
427
434
  "tool-discovery.js",
435
+ "tool-rank-fused.js",
436
+ "tool-hub.js",
428
437
  "tool-dispatch.js",
429
438
  "tool-groups.js",
430
439
  "tool-group-capabilities.js",
431
440
  "tool-group-data.js",
432
441
  "tool-hints.js",
433
442
  "tool-need.js",
443
+ "housekeeping.js",
434
444
  "tool-result.js",
435
445
  "agent-permission.js",
436
446
  "tool-loop-guard.js",
@@ -0,0 +1 @@
1
+ const u=Object.freeze(["rerank","decide"]),g={rerank:"Rerank",decide:"Decide"},h={rerank:"Orders sources by relevance — research in plan notes, search results, the tool finder.",decide:"Typed decisions — sentiment, routing, triage, naming a speaker — in one pass, no language model."},x={rerank:["reranker","Reranker"],decide:["opendecision","OpenDecision"]},m=/^[A-Za-z0-9][A-Za-z0-9._-]{0,95}\/[A-Za-z0-9][A-Za-z0-9._-]{0,95}$/;function p(t){const e=Number(t);return!Number.isFinite(e)||e<=0?"":e>=1024?`${(e/1024).toFixed(1).replace(/\.0$/,"")} GB`:`${Math.round(e)} MB`}function w(t){return[t?.label||t?.id||"",p(t?.mb),t?.languages||""].filter(Boolean).join(" · ")}function $(t){switch(t?.state){case"ready":return{text:"ready",cls:"ok"};case"loading":return{text:"loading",cls:""};case"downloading":{const e=Number(t.progress?.pct);return{text:`downloading${Number.isFinite(e)&&e>0?` ${Math.min(100,Math.round(e))}%`:""}`,cls:""}}case"down":return{text:`could not load${t.error?` — ${String(t.error).slice(0,160)}`:""}`,cls:"bad"};default:return{text:"loads on first use",cls:""}}}function y(t,e,o={}){const n=(Array.isArray(e?.models)?e.models:[]).filter(r=>r&&typeof r.id=="string"),d=n[0]?.id||null,l=["embedded","container","remote","none"].includes(e?.provider)?e.provider:"none",[f,b]=x[t]||[],a=o&&typeof o=="object"?o[f]:null,i=l==="embedded"?e.model||d:null,c=n.find(r=>r.id===i)||null;let s;if(l==="embedded"){const r=$(e);s={text:[`In ChatPanel${i&&i===d?" (default)":""}`,c?.label||i||"",p(c?.mb),r.text].filter(Boolean).join(" · "),cls:r.cls}}else l==="container"?s={text:`Container — ${a?.label||b||t}${a?.model?` · ${a.model}`:""}`,cls:"ok"}:l==="remote"?s={text:"A server set in the gateway’s config",cls:"ok"}:s={text:"Off — nothing answers it; a caller that asks carries on without it",cls:"warn"};return{id:t,title:g[t]||t,what:h[t]||"",provider:l,on:l!=="none",status:s,selected:i||"",placeholder:i?"":l==="none"?"Off — pick a model to turn it on":s.text,elsewhere:l==="container"||l==="remote",settling:l==="embedded"&&["downloading","loading"].includes(e?.state),models:n.map(r=>({id:r.id,text:`${w(r)}${r.id===d?" — default":""}`,note:r.note||""})),note:c?.note||"",threads:Number.isFinite(Number(e?.threads))&&Number(e.threads)>0?Number(e.threads):null,service:f||null}}function v(t){const e=t?.inProcess;if(!e||typeof e!="object")return null;const o=u.filter(n=>e[n]&&typeof e[n]=="object").map(n=>y(n,e[n],t.services));return o.length?o:null}function N(t,e={}){return u.includes(t)?typeof e.model=="string"?m.test(e.model)?{capabilities:{[t]:{provider:"embedded",model:e.model}}}:null:e.on===!1?{capabilities:{[t]:{provider:"none"}}}:e.on===!0?{capabilities:{[t]:null}}:null:null}function I(t,e={}){const o=t?.title||"It";if(typeof e.model=="string"){const n=(t?.models||[]).find(d=>d.id===e.model);return`✓ ${o} now runs ${n?n.text.split(" · ")[0]:e.model} in ChatPanel — downloaded on first use, unloaded when idle.`}return e.on===!1?`✓ ${o} is off — whoever asks carries on without it.`:`✓ ${o} is back on the default.`}function O(t){if(!t||typeof t!="object")return null;const e={};for(const o of u){if(!(o in t))continue;const n=t[o];n===null?e[o]=null:n?.provider==="none"?e[o]={provider:"none"}:n?.provider==="embedded"&&(n.model==null?e[o]={provider:"embedded"}:typeof n.model=="string"&&m.test(n.model)&&(e[o]={provider:"embedded",model:n.model}))}return Object.keys(e).length?e:null}export{u as IN_PROCESS_IDS,y as capabilityView,I as choiceNote,N as choicePatch,O as inProcessPatch,v as inProcessView,w as modelOptionText,p as sizeText,$ as stateText};
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,o)=>{if(!t)throw new n("SHAPE",o)},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(o=>o.trim().toLowerCase()).filter(Boolean))}function h(t){if(t==null)return{hosts:[],write:[]};i(a(t),"grant: must be an object");const o=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(r=>r.trim()).filter(Boolean):[];for(const r of o)i(typeof r=="string"&&r!=="*"&&f.test(r),`grant: not a host pattern: ${JSON.stringify(r)}`);for(const r of s)i(typeof r=="string"&&r.length>0&&r.length<1024&&!r.includes("\0"),`grant: not a path: ${JSON.stringify(r)}`);return{hosts:e(o.map(r=>r.toLowerCase())),write:e(s)}}function c(...t){const o=t.map(h);return{hosts:e(o.flatMap(s=>s.hosts)),write:e(o.flatMap(s=>s.write))}}export{c as mergeGrants,h as normalizeGrant,p as parseHostList};
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};
package/sandbox-policy.js CHANGED
@@ -1 +1 @@
1
- import{EventError as j}from"./event.js";import{normalizeGrant as A}from"./sandbox-grant.js";import{SECRET_DIR_NAMES as C,SECRET_DIR_PAIRS as P}from"./secret-names.js";const x=Object.freeze(["none","process","container","kubernetes"]),R=Object.freeze(["open","allowlist","none","gateway"]),y=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},_=(e,t)=>t&&(e==="~"||e.startsWith("~/")||e.startsWith("~\\"))?t+e.slice(1):e,m=e=>String(e||"").replace(/\\/g,"/"),O=(e,t)=>{const n=m(g(e)),r=m(g(t));return!!n&&!!r&&(n===r||n.startsWith(`${r}/`))},L=y.map(e=>m(g(e)).replace(/^~\//,"").split("/").filter(Boolean));function S(e,t=""){const n=m(g(_(g(e),t)));if(!n)return!1;for(const o of y)if(O(n,o)||t&&O(n,_(o,t)))return!0;const r=n.split("/").filter(Boolean).map(o=>o.toLowerCase());return L.some(o=>{for(let i=0;i+o.length<=r.length;i+=1)if(o.every((c,l)=>c.toLowerCase()===r[i+l]))return!0;return!1})}const $=Object.freeze([...[...C].map(e=>`~/**/${e}`),...P.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 F(e,{home:t="",globs:n=[...y,...$]}={}){const r=m(g(_(g(e),t)));if(!r)return null;const o=r.split("/").filter(Boolean),i=m(g(t));for(const c of n){const l=m(g(c));if(l){if(l.startsWith("~/**/")){if(i&&!O(r,i))continue;const a=l.slice(5).split("/").filter(Boolean).map(v);for(let s=0;s+a.length<=o.length;s+=1)if(a.every((f,p)=>f.test(o[s+p])))return c;continue}if(O(r,_(l,t)))return c}}return null}function v(e){return new RegExp(`^${e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,"[^/]*")}$`,"i")}const I=".cache/chatpanel/ca-bundle.crt",X=".cache/chatpanel/ca-bundle.pem";function V(e=""){const t=m(g(e));return t?`${t}/${I}`:`~/${I}`}const N=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"]),z=Object.freeze(["/tmp","/private/tmp","~/.cache","~/.npm","~/.local/share/uv","~/.local/state"]),W=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"]}),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=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),b=e=>Array.isArray(e)&&e.every(t=>typeof t=="string"&&t.length>0),d=(e,t)=>{if(!e)throw new j("SHAPE",t)},u=e=>[...new Set(e)];function D(e){d(h(e),"kit: must be an object"),d(typeof e.id=="string"&&e.id.length>0,"kit: id required"),d(h(e.network)&&R.includes(e.network.mode),`kit ${e.id}: network.mode must be one of ${R.join(", ")}`),d(b(e.network.allowedDomains||[]),`kit ${e.id}: network.allowedDomains must be string[]`),d(b(e.network.deniedDomains||[]),`kit ${e.id}: network.deniedDomains must be string[]`),d(h(e.filesystem),`kit ${e.id}: filesystem required`);for(const t of["allowWrite","denyWrite","allowRead","denyRead"])d(b(e.filesystem[t]||[]),`kit ${e.id}: filesystem.${t} must be string[]`);return d(b(e.filesystem.allowWrite)&&e.filesystem.allowWrite.length>0,`kit ${e.id}: filesystem.allowWrite must name at least the working directory`),e.image!=null&&d(typeof e.image=="string",`kit ${e.id}: image must be a string`),e.credentials!=null&&d(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:u(e.network.allowedDomains||[]),deniedDomains:u(e.network.deniedDomains||[])},filesystem:{allowWrite:u(e.filesystem.allowWrite),denyWrite:u(e.filesystem.denyWrite||[]),allowRead:u(e.filesystem.allowRead||[]),denyRead:u(e.filesystem.denyRead||[])},credentials:e.credentials||[],limits:h(e.limits)?{...e.limits}:{}}}import{normalizeGrant as ce,mergeGrants as le,parseHostList as fe}from"./sandbox-grant.js";function Q({engine:e="custom",cwd:t,mode:n="open",extraHosts:r=[],extraWrite:o=[],extraDenyRead:i=[],grant:c=null,home:l="",reads:a="enumerated"}={}){const s=W[e]||W.custom;d(typeof t=="string"&&t.length>0,"kit: cwd required");const f=A(c);return D({id:`${e}:${n}`,kind:"process",network:{mode:n,allowedDomains:n==="open"?["*"]:n==="none"?[]:u([...s.hosts,...T,...r,...f.hosts]),deniedDomains:[]},filesystem:{allowWrite:u([t,...z,...s.write,...[...o,...f.write].filter(p=>!S(p,l))]),denyWrite:[],allowRead:a==="inverted"?u([t,...N,...s.write,...H({grant:f,extraWrite:o,cwd:t,home:l})]):[t],denyRead:u([...a==="inverted"?["~",...l?[l]:[]]:[],...y,...$,...i])}})}function H({grant:e=null,extraWrite:t=[],cwd:n="",home:r=""}={}){const o=s=>r&&(s==="~"||s.startsWith("~/")||s.startsWith("~\\"))?r+s.slice(1):s,i=s=>{let f=String(s||"").trim();for(;f.length>1&&(f.endsWith("/")||f.endsWith("\\"));)f=f.slice(0,-1);return f},c=(s,f)=>s===f||s.startsWith(`${f}/`)||s.startsWith(`${f}\\`),l=i(o(n)),a=[];for(const s of[...A(e).write,...Array.isArray(t)?t:[]]){const f=i(o(i(s)));if(f&&!S(f,r)&&!(l&&c(f,l))&&!a.some(p=>c(f,p))){for(let p=a.length-1;p>=0;p--)c(a[p],f)&&a.splice(p,1);a.push(f)}}return a}function Z(e,{loopback:t=[],home:n="",platform:r="darwin"}={}){const o=D(e),i=l=>n&&l.startsWith("~")?n+l.slice(1):l,c=o.network.mode==="none"?[]:t.map(l=>`127.0.0.1:${l}`);return{network:{allowedDomains:u([...o.network.allowedDomains,...c]),deniedDomains:o.network.deniedDomains,allowLocalBinding:r==="darwin"&&c.length>0},filesystem:{denyRead:o.filesystem.denyRead.map(i),allowRead:o.filesystem.allowRead.map(i),allowWrite:o.filesystem.allowWrite.map(i),denyWrite:o.filesystem.denyWrite.map(i)}}}function J({layer:e="none",runtime:t=null,kitId:n=null,mode:r=null,reason:o=null,hosts:i=null}={}){return d(x.includes(e),`sandbox record: layer must be one of ${x.join(", ")}`),{layer:e,runtime:t,kit:n,mode:r,...e==="none"&&o?{reason:o}:{},...Array.isArray(i)&&i.length?{hosts:u(i)}:{}}}function k(e,{platform:t="darwin"}={}){const n=String(e);if(t==="win32"){d(!/[\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 i=0;for(;o<n.length&&n[o]==="\\";)i++,o++;if(o===n.length){r+="\\".repeat(i*2);break}n[o]==='"'?r+="\\".repeat(i*2+1)+'"':r+="\\".repeat(i)+n[o]}r+='"'}return r.replace(/[()%!^"<>&|]/g,"^$&")}return n===""?"''":/^[A-Za-z0-9_\-./=:@%+,]+$/.test(n)?n:`'${n.replace(/'/g,"'\\''")}'`}const K=Object.freeze(["SSL_CERT_FILE","REQUESTS_CA_BUNDLE","CURL_CA_BUNDLE","GIT_SSL_CAINFO"]);function ee(e={},{platform:t="darwin",caBundle:n=""}={}){const r={NODE_USE_ENV_PROXY:"1"};if(n)for(const o of K)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(i=>i.trim()).filter(i=>i&&!/^(localhost|127\.0\.0\.1|::1|\[::1\])$/i.test(i)).join(","));return r}function te(e,t=[],{platform:n="darwin"}={}){return[e,...t].map(r=>k(r,{platform:n})).join(" ")}const ne=/[\\/]+/,w=e=>String(e||"").replace(/\//g,"\\").replace(/\\+$/,"").toLowerCase(),U=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 Y(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 oe({kit:e,files:t=[],home:n}){d(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 s=r(a);!/^[a-z]:\\/i.test(s)&&!s.startsWith("\\\\")||(d(!U(s)&&w(s)!==w(n),`windows grants: a write on ${s} would hand the sandbox account the whole profile`),E(s,n)&&o.push(s))}const i=(a,s)=>s.some(f=>w(a)===w(f)||E(a,f)),c=[];for(const a of t){const s=Y(a);s&&E(s,n)&&c.push(s)}for(const a of e?.filesystem?.allowRead||[]){const s=r(a);E(s,n)&&c.push(s)}const l=u(c).filter(a=>!i(a,o));return{read:l.filter(a=>!l.some(s=>s!==a&&E(a,s))),write:u(o)}}const B=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 re({engine:e="custom",home:t,env:n={},base:r={},carry:o=B}={}){d(typeof t=="string"&&t.length>0,"windows env: home required");const i=t.replace(/\//g,"\\"),c=/^[a-z]:/i.test(i)?i.slice(0,2):"",l={USERPROFILE:i,...c?{HOMEDRIVE:c,HOMEPATH:i.slice(2)}:{}};for(const[a,s]of Object.entries(n))typeof s=="string"&&(r[a]!==s||o.includes(a))&&(l[a]=s);return e==="codex"&&!l.CODEX_HOME&&(l.CODEX_HOME=i+"\\.codex"),l}function se(e,t){d(Array.isArray(e),"srt-win argv: must be an array");const n=e.indexOf("exec"),r=n>=0?e.indexOf("--",n+1):-1;d(n>=0&&r>n,"srt-win argv: expected `exec … -- <shell> <command>`");const o=new Set;for(let c=n+1;c<r;c++)e[c]==="--env"&&typeof e[c+1]=="string"&&o.add(e[c+1].split("=")[0].toUpperCase());const i=[];for(const[c,l]of Object.entries(t||{}))d(/^[A-Za-z_][A-Za-z0-9_]*$/.test(c),`srt-win env: bad key ${c}`),d(!/[\r\n]/.test(l),`srt-win env: ${c} holds a newline`),o.has(c.toUpperCase())||i.push("--env",`${c}=${l}`);return[...e.slice(0,r),...i,...e.slice(r)]}export{I as CA_BUNDLE_RELPATH,X as CA_BUNDLE_RELPATH_LEGACY,z as COMMON_WRITE,T as DEVELOPER_HOSTS,W as ENGINE_KITS,R as NETWORK_MODES,x as SANDBOX_LAYERS,y as SECRET_PATHS,$ as SECRET_READ_GLOBS,N as TOOLCHAIN_READ,B as WINDOWS_CARRY_KEYS,V as caBundlePath,S as isSecretWritePath,Q as kitFor,le as mergeGrants,ce as normalizeGrant,fe as parseHostList,F as readDenialFor,ee as sandboxEnvOverlay,J as sandboxRecord,te as shellJoin,k as shellQuote,Z as toSrtSettings,E as underWindowsHome,D as validateKit,oe as windowsGrantsFor,Y as windowsInstallRoot,re as windowsSandboxEnv,se as withSrtWinEnv,H as writableRoots};
1
+ import{EventError as L}from"./event.js";import{normalizeGrant as x}from"./sandbox-grant.js";import{SECRET_DIR_NAMES as P,SECRET_DIR_PAIRS as N}from"./secret-names.js";const R=Object.freeze(["none","process","container","kubernetes"]),S=Object.freeze(["open","allowlist","none","gateway"]),E=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},_=(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}/`))},v=E.map(e=>m(g(e)).replace(/^~\//,"").split("/").filter(Boolean));function I(e,t=""){const n=m(g(_(g(e),t)));if(!n)return!1;for(const o of E)if(b(n,o)||t&&b(n,_(o,t)))return!0;const r=n.split("/").filter(Boolean).map(o=>o.toLowerCase());return v.some(o=>{for(let s=0;s+o.length<=r.length;s+=1)if(o.every((c,l)=>c.toLowerCase()===r[s+l]))return!0;return!1})}const $=Object.freeze([...[...P].map(e=>`~/**/${e}`),...N.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 Z(e,{home:t="",globs:n=[...E,...$]}={}){const r=m(g(_(g(e),t)));if(!r)return null;const o=r.split("/").filter(Boolean),s=m(g(t));for(const c of n){const l=m(g(c));if(l){if(l.startsWith("~/**/")){if(s&&!b(r,s))continue;const a=l.slice(5).split("/").filter(Boolean).map(z);for(let i=0;i+a.length<=o.length;i+=1)if(a.every((f,p)=>f.test(o[i+p])))return c;continue}if(b(r,_(l,t)))return c}}return null}function z(e){return new RegExp(`^${e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,"[^/]*")}$`,"i")}const W=".cache/chatpanel/ca-bundle.crt",J=".cache/chatpanel/ca-bundle.pem";function ee(e=""){const t=m(g(e));return t?`${t}/${W}`:`~/${W}`}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"]),D=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}),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\/?$/,k=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),O=e=>Array.isArray(e)&&e.every(t=>typeof t=="string"&&t.length>0),d=(e,t)=>{if(!e)throw new L("SHAPE",t)},u=e=>[...new Set(e)];function j(e){d(h(e),"kit: must be an object"),d(typeof e.id=="string"&&e.id.length>0,"kit: id required"),d(h(e.network)&&S.includes(e.network.mode),`kit ${e.id}: network.mode must be one of ${S.join(", ")}`),d(O(e.network.allowedDomains||[]),`kit ${e.id}: network.allowedDomains must be string[]`),d(O(e.network.deniedDomains||[]),`kit ${e.id}: network.deniedDomains must be string[]`),d(h(e.filesystem),`kit ${e.id}: filesystem required`);for(const t of["allowWrite","denyWrite","allowRead","denyRead"])d(O(e.filesystem[t]||[]),`kit ${e.id}: filesystem.${t} must be string[]`);return d(O(e.filesystem.allowWrite)&&e.filesystem.allowWrite.length>0,`kit ${e.id}: filesystem.allowWrite must name at least the working directory`),e.image!=null&&d(typeof e.image=="string",`kit ${e.id}: image must be a string`),e.credentials!=null&&d(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:u(e.network.allowedDomains||[]),deniedDomains:u(e.network.deniedDomains||[])},filesystem:{allowWrite:u(e.filesystem.allowWrite),denyWrite:u(e.filesystem.denyWrite||[]),allowRead:u(e.filesystem.allowRead||[]),denyRead:u(e.filesystem.denyRead||[])},credentials:e.credentials||[],limits:h(e.limits)?{...e.limits}:{}}}import{normalizeGrant as ue,mergeGrants as pe,parseHostList as ge}from"./sandbox-grant.js";function te({engine:e="custom",cwd:t,mode:n="open",extraHosts:r=[],extraWrite:o=[],extraDenyRead:s=[],grant:c=null,home:l="",reads:a="enumerated",readOnly:i=!1}={}){const f=C[e]||C.custom;d(typeof t=="string"&&t.length>0,"kit: cwd required");const p=x(c);return j({id:`${e}:${n}`,kind:"process",network:{mode:n,allowedDomains:n==="open"?["*"]:n==="none"?[]:u([...f.hosts,...k,...r,...p.hosts]),deniedDomains:[]},filesystem:{allowWrite:u(i?[...D,...f.write]:[t,...D,...f.write,...[...o,...p.write].filter(A=>!I(A,l))]),denyWrite:[],allowRead:a==="inverted"?u([t,...H,...f.write,...f.keychain?[T]:[],...U({grant:p,extraWrite:o,cwd:t,home:l})]):[t],denyRead:u([...a==="inverted"?["~",...l?[l]:[]]:[],...[...E,...$].filter(A=>!(f.keychain&&K.test(A))),...s])}})}function Y(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 U({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 f=String(i||"").trim();for(;f.length>1&&(f.endsWith("/")||f.endsWith("\\"));)f=f.slice(0,-1);return f},c=(i,f)=>i===f||i.startsWith(`${f}/`)||i.startsWith(`${f}\\`),l=s(o(n)),a=[];for(const i of[...x(e).write,...Array.isArray(t)?t:[]]){const f=Y(s(o(s(i))));if(f&&!I(f,r)&&!(l&&c(f,l))&&!a.some(p=>c(f,p))){for(let p=a.length-1;p>=0;p--)c(a[p],f)&&a.splice(p,1);a.push(f)}}return a}function ne(e,{loopback:t=[],home:n="",platform:r="darwin"}={}){const o=j(e),s=l=>n&&l.startsWith("~")?n+l.slice(1):l,c=o.network.mode==="none"?[]:t.map(l=>`127.0.0.1:${l}`);return{network:{allowedDomains:u([...o.network.allowedDomains,...c]),deniedDomains:o.network.deniedDomains,allowLocalBinding:r==="darwin"&&c.length>0},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 oe({layer:e="none",runtime:t=null,kitId:n=null,mode:r=null,reason:o=null,hosts:s=null}={}){return d(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:u(s)}:{}}}function B(e,{platform:t="darwin"}={}){const n=String(e);if(t==="win32"){d(!/[\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 G=Object.freeze(["SSL_CERT_FILE","REQUESTS_CA_BUNDLE","CURL_CA_BUNDLE","GIT_SSL_CAINFO"]);function re(e={},{platform:t="darwin",caBundle:n=""}={}){const r={NODE_USE_ENV_PROXY:"1"};if(n)for(const o of G)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 se(e,t=[],{platform:n="darwin"}={}){return[e,...t].map(r=>B(r,{platform:n})).join(" ")}const ie=/[\\/]+/,w=e=>String(e||"").replace(/\//g,"\\").replace(/\\+$/,"").toLowerCase(),M=e=>/^[a-z]:$/i.test(w(e))||w(e)==="";function y(e,t){const n=w(e),r=w(t);return!!r&&n!==r&&n.startsWith(r+"\\")}function q(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 ae({kit:e,files:t=[],home:n}){d(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("\\\\")||(d(!M(i)&&w(i)!==w(n),`windows grants: a write on ${i} would hand the sandbox account the whole profile`),y(i,n)&&o.push(i))}const s=(a,i)=>i.some(f=>w(a)===w(f)||y(a,f)),c=[];for(const a of t){const i=q(a);i&&y(i,n)&&c.push(i)}for(const a of e?.filesystem?.allowRead||[]){const i=r(a);y(i,n)&&c.push(i)}const l=u(c).filter(a=>!s(a,o));return{read:l.filter(a=>!l.some(i=>i!==a&&y(a,i))),write:u(o)}}const F=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 ce({engine:e="custom",home:t,env:n={},base:r={},carry:o=F}={}){d(typeof t=="string"&&t.length>0,"windows env: home required");const s=t.replace(/\//g,"\\"),c=/^[a-z]:/i.test(s)?s.slice(0,2):"",l={USERPROFILE:s,...c?{HOMEDRIVE:c,HOMEPATH:s.slice(2)}:{}};for(const[a,i]of Object.entries(n))typeof i=="string"&&(r[a]!==i||o.includes(a))&&(l[a]=i);return e==="codex"&&!l.CODEX_HOME&&(l.CODEX_HOME=s+"\\.codex"),l}function le(e,t){d(Array.isArray(e),"srt-win argv: must be an array");const n=e.indexOf("exec"),r=n>=0?e.indexOf("--",n+1):-1;d(n>=0&&r>n,"srt-win argv: expected `exec … -- <shell> <command>`");const o=new Set;for(let c=n+1;c<r;c++)e[c]==="--env"&&typeof e[c+1]=="string"&&o.add(e[c+1].split("=")[0].toUpperCase());const s=[];for(const[c,l]of Object.entries(t||{}))d(/^[A-Za-z_][A-Za-z0-9_]*$/.test(c),`srt-win env: bad key ${c}`),d(!/[\r\n]/.test(l),`srt-win env: ${c} holds a newline`),o.has(c.toUpperCase())||s.push("--env",`${c}=${l}`);return[...e.slice(0,r),...s,...e.slice(r)]}export{W as CA_BUNDLE_RELPATH,J as CA_BUNDLE_RELPATH_LEGACY,D as COMMON_WRITE,k as DEVELOPER_HOSTS,C as ENGINE_KITS,S as NETWORK_MODES,R as SANDBOX_LAYERS,E as SECRET_PATHS,$ as SECRET_READ_GLOBS,H as TOOLCHAIN_READ,F as WINDOWS_CARRY_KEYS,ee as caBundlePath,I as isSecretWritePath,te as kitFor,pe as mergeGrants,ue as normalizeGrant,ge as parseHostList,Z as readDenialFor,re as sandboxEnvOverlay,oe as sandboxRecord,se as shellJoin,B as shellQuote,ne as toSrtSettings,y as underWindowsHome,j as validateKit,ae as windowsGrantsFor,q as windowsInstallRoot,ce as windowsSandboxEnv,le as withSrtWinEnv,U as writableRoots};
package/tool-discovery.js CHANGED
@@ -1 +1 @@
1
- const d="find",l=new Set(["the","and","for","with","that","this","use","can","you","your","from","what","how","are","get","find","tool","tools"]),m=e=>String(e||"").toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>2&&!l.has(t));function f(e,t){const o=new Set(m(t));return o.size?e.map((n,r)=>{const a=`${n.name} ${n.description||""}`.toLowerCase();let s=0;for(const c of o)a.includes(c)&&(s+=1);return{s:n,i:r,n:s}}).sort((n,r)=>r.n-n.n||n.i-r.i).map(n=>n.s):[...e]}function h(e,t=110){const o=String(e||"").replace(/\s+/g," ").trim(),n=o.search(/[.!?]\s|\n/),r=n>20?o.slice(0,n+1):o;return r.length>t?`${r.slice(0,t-1).trimEnd()}…`:r}const g=e=>{const t=e?.parameters||e?.inputSchema;return Array.isArray(t?.required)?t.required.map(String):[]};function p(e,t,{limit:o=8,rank:n=f}={}){const r=(e||[]).filter(i=>i&&i.name),a=String(t||"").trim(),s=a?n(r,a):r,c=Math.max(1,Math.min(50,Number(o)||8));return s.slice(0,c).map(i=>({name:i.name,summary:h(i.description),required:g(i)}))}function y(e,t,{limit:o,rank:n,describeAction:r="describe",menu:a=[]}={}){const s=p(e,t,{limit:o,rank:n}),c=(e||[]).length,i=new Set(a.map(u=>typeof u=="string"?u:u?.name));return JSON.stringify({query:String(t||""),matches:s.map(u=>({...u,listed:i.size?i.has(u.name):void 0})),total:c,hint:s.length?`Call one as {"action":"<name>","args":{…}}. Unsure of its arguments? {"action":"${r}","args":{"tool":"<name>"}}.`:`No tool matched "${t}" among ${c}. Try other words, or describe the task differently.`})}function S(){return{query:{type:"string",description:`With action="${d}": words describing the task; returns matching tool names.`}}}export{d as FIND_ACTION,S as findActionArgs,p as findTools,y as findToolsResult,h as oneLiner,f as overlapRank};
1
+ const d="find",f=new Set(["the","and","for","with","that","this","use","can","you","your","from","what","how","are","get","find","tool","tools"]),m=e=>String(e||"").toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>2&&!f.has(t));function l(e,t){const i=new Set(m(t));return i.size?e.map((n,r)=>{const s=`${n.name} ${n.description||""}`.toLowerCase();let o=0;for(const c of i)s.includes(c)&&(o+=1);return{s:n,i:r,n:o}}).sort((n,r)=>r.n-n.n||n.i-r.i).map(n=>n.s):[...e]}function h(e,t=110){const i=String(e||"").replace(/\s+/g," ").trim(),n=i.search(/[.!?]\s|\n/),r=n>20?i.slice(0,n+1):i;return r.length>t?`${r.slice(0,t-1).trimEnd()}…`:r}const g=e=>{const t=e?.parameters||e?.inputSchema;return Array.isArray(t?.required)?t.required.map(String):[]};async function p(e,t,{limit:i=8,rank:n=l}={}){const r=(e||[]).filter(a=>a&&a.name),s=String(t||"").trim();let o=r;if(s){try{o=await n(r,s)}catch{o=null}Array.isArray(o)||(o=l(r,s))}const c=Math.max(1,Math.min(50,Number(i)||8));return o.slice(0,c).map(a=>({name:a.name,summary:h(a.description),required:g(a)}))}async function y(e,t,{limit:i,rank:n,describeAction:r="describe",menu:s=[]}={}){const o=await p(e,t,{limit:i,rank:n}),c=(e||[]).length,a=new Set(s.map(u=>typeof u=="string"?u:u?.name));return JSON.stringify({query:String(t||""),matches:o.map(u=>({...u,listed:a.size?a.has(u.name):void 0})),total:c,hint:o.length?`Call one as {"action":"<name>","args":{…}}. Unsure of its arguments? {"action":"${r}","args":{"tool":"<name>"}}.`:`No tool matched "${t}" among ${c}. Try other words, or describe the task differently.`})}function w(){return{query:{type:"string",description:`With action="${d}": words describing the task; returns matching tool names.`}}}export{d as FIND_ACTION,w as findActionArgs,p as findTools,y as findToolsResult,h as oneLiner,l as overlapRank};
package/tool-hub.js ADDED
@@ -0,0 +1,15 @@
1
+ import{findToolsResult as M,oneLiner as I}from"./tool-discovery.js";import{validateAction as U}from"./tool-dispatch.js";import{isPermissionTool as z}from"./agent-permission.js";const $="tools",v="find",g="describe",A=6,D=5,G=2,W=e=>{const s=e?.parameters||e?.inputSchema;return Array.isArray(s?.required)?s.required.map(String):[]},k=e=>`${e.name}(${W(e).join(", ")})`,P=e=>I(String(e||"").split(/\n\s*\n/)[0],140);function Y(){return{name:$,description:`Every action ChatPanel gives you — the user's own data, their connected integrations, the browser tab — in one tool. Run one: {"action":"<name>","args":{…}}. Not sure which: {"action":"find","query":"<what you need>"}. Its arguments: {"action":"describe","tool":"<name>"}.`,parameters:{type:"object",properties:{action:{type:"string",description:'The action to run — a name from the catalog, a hint or a find — or "find" / "describe".'},args:{type:"object",additionalProperties:!0,description:"The action's own arguments, verbatim. {} when it takes none."},query:{type:"string",description:'With action "find": what you need to do, in words.'},tool:{type:"string",description:'With action "describe": the action to describe.'}},required:["action"],additionalProperties:!0}}}const x=e=>z(e);function K(e){const s=e.hiddenVia instanceof Map?e.hiddenVia:new Map,o=new Set(s.values()),t=new Map;for(const n of e.reach||[])n?.name&&!x(n.name)&&!t.has(n.name)&&t.set(n.name,n);for(const n of e.specs||[])n?.name&&!x(n.name)&&!o.has(n.name)&&!t.has(n.name)&&t.set(n.name,n);return{leaves:t,hiddenVia:s,groups:o}}function Q(e,s){const o=n=>e.some(c=>n.test(c)),t=[];return o(/^(history_|recall$|memory_recall$|meeting_)/)&&t.push("You HAVE access to the user's own ChatPanel data — past chats, notes, meeting transcripts and summaries — here. For anything they discussed or wrote, search it FIRST (`history_search`) and answer from it; never say you cannot access their meetings, notes or history."),o(/^(weather|web_search)$/)&&t.push("For anything current — weather, prices, news — use `weather` / `web_search` here, not a search tool of your own; the user sees these calls as steps. A [prefetch] block in the message IS that call, already made: answer from it, no call."),s.size&&t.push("The user's connected integrations are here too — when a request matches one, call it rather than saying it is unavailable."),o(/^read_page$/)&&t.push("The browser tab the user is looking at can be read and acted on here — `read_page` first."),t}function X(e,s,o){const t=new Map;for(const[c,l]of o)s.has(c)&&(t.get(l)||t.set(l,[]).get(l)).push(c);const n=[];for(const c of e.specs||[]){const l=t.get(c.name);if(l?.length){const m=l.slice(0,A).join(", "),y=l.length>A?`, … (+${l.length-A} — find them)`:"";n.push(`- ${P(c.description)} — ${m}${y}`)}else s.has(c.name)&&n.push(`- ${k(c)}: ${P(c.description)}`)}return n}function ne(e,{rank:s,providerSystem:o=""}={}){if(!e||typeof e.execute!="function")return null;const{leaves:t,hiddenVia:n}=K(e);if(!t.size)return null;const c=e.residents instanceof Map?e.residents:new Map,l=r=>n.get(r)||r,m=r=>{const i=new Set(r instanceof Set?r:[]);for(const[a,h]of n)i.has(h)&&i.add(a);return i},y=m(e.remoteTools),C=m(e.serialTools),N=[...t.keys()],L=Q(N,new Set(N.filter(r=>y.has(r)))),B=new Set(n.values()),_=[...new Set([...c].filter(([r])=>t.has(r)&&!B.has(r)).map(([,r])=>r.trim()).filter(Boolean))],S=['Everything below is reached through ONE tool, `tools`: {"action":"<name>","args":{…}}. Not sure which action? {"action":"find","query":"<what you need>"} searches all of them. Not sure of its arguments? {"action":"describe","tool":"<name>"}.',...L,`Available:
2
+ ${X(e,t,n).join(`
3
+ `)}`,..._.length?[`Every tool the notes below name is an action of \`tools\`: call it as {"action":"<name>","args":{…}}.
4
+
5
+ ${_.join(`
6
+
7
+ `)}`]:[]].join(`
8
+ `),T=String(e.system||""),F=o&&T.includes(o)?T.replace(o,S):[T,S].filter(Boolean).join(`
9
+
10
+ `),j=(r,i,a)=>{const h=n.get(r);return h?e.execute(h,{action:r,args:i},a):e.execute(r,i,a)};async function H(r){const i=t.get(r);if(!i)return JSON.stringify({error:`Unknown action "${r}".`,hint:'{"action":"find","query":"<what you need>"} lists what exists.'});const a=[c.get(l(r))];if(n.has(r))try{const h=JSON.parse(await e.execute(n.get(r),{action:g,args:{tool:r}},{}));h?.guidance&&a.push(h.guidance)}catch{}return JSON.stringify({name:i.name,description:i.description||"",parameters:i.parameters||i.inputSchema||{type:"object",properties:{}},...a.filter(Boolean).length?{guidance:a.filter(Boolean).join(`
11
+
12
+ `)}:{},callAs:{action:i.name,args:"<the properties above>"}})}async function O(r,i,a={}){const h=i&&typeof i=="object"?i:{};if(r!==$)return t.has(r)&&!n.has(r)?e.execute(r,h,a):n.has(r)?j(r,h,a):e.execute(r,h,a);const{action:w,args:f,...b}=h,u=String(w||""),p={...b,...f&&typeof f=="object"?f:{}},d=f&&typeof f=="object"?String(f.action||""):"";if(u===v&&d&&d!==v&&d!==g&&t.has(d))return O($,{action:d,args:f.args&&typeof f.args=="object"?f.args:{}},a);if(u===v)return M([...t.values()],String(p.query??p.tool??""),{rank:s,describeAction:g});if(u===g)return H(String(p.tool||p.name||p.action||""));const E=t.get(u);if(!E){const V=JSON.parse(await M([...t.values()],u.replace(/[_-]+/g," "),{rank:s,describeAction:g,limit:5}));return JSON.stringify({error:`Unknown action "${u}".`,didYouMean:V.matches.map(R=>R.name),hint:'Call one of those, or {"action":"find","query":"<what you need>"}.'})}const q=U(E,p);return q?JSON.stringify(q):j(u,p,a)}function J(r,{score:i,limit:a=D,minScore:h=G}={}){const w=String(r||"").trim();if(!w||typeof i!="function")return"";let f;try{f=i([...t.values()],w)}catch{return""}const b=(f||[]).filter(u=>u&&u.n>h).slice(0,a).map(u=>u.s);return b.length?`[ChatPanel] Likely useful for this message, through \`tools\`: ${b.map(u=>`${k(u)} — ${I(u.description,90)}`).join("; ")}.`:""}return{...e,specs:[Y(),...(e.specs||[]).filter(r=>x(r?.name))],system:F,systemParts:{tools:Math.round(S.length/4)},remoteTools:y,serialTools:C,execute:O,hub:{leaves:[...t.keys()],hintFor:J,groupOf:l}}}function re(e){for(let s=(e||[]).length-1;s>=0;s--){const o=e[s];if(o?.role==="user")return typeof o.content=="string"?o.content:Array.isArray(o.content)?o.content.filter(t=>t?.type==="text").map(t=>t.text||"").join(`
13
+ `):""}return""}function oe(e,s){const o=Array.isArray(e)?e:[];if(!s)return o;let t=o.length-1;for(;t>=0&&o[t]?.role!=="user";)t--;if(t<0)return o;const n=o[t],c=typeof n.content=="string"?`${n.content}
14
+
15
+ ${s}`:Array.isArray(n.content)?[...n.content,{type:"text",text:s}]:n.content;return[...o.slice(0,t),{...n,content:c},...o.slice(t+1)]}export{$ as HUB_TOOL_NAME,Y as hubSpec,re as lastUserText,ne as makeToolHub,oe as withHint};
package/tool-need.js CHANGED
@@ -1,3 +1,3 @@
1
- import{signalsFrom as A}from"./router.js";const x=new Set(["hi","hii","hiya","hey","heya","hello","helo","yo","sup","howdy","greetings","good","morning","afternoon","evening","night","day","thanks","thank","thankyou","thx","tnx","ty","cheers","appreciated","ok","okay","k","kk","got","sounds","perfect","great","cool","nice","awesome","lol","haha","hah","hehe","nvm","yep","yeah","yes","no","nope","sure","bye","goodbye","later","ya","cya","ciao","welcome","worries","problem","np","please","there","again","all","everyone","team","friend","mate","buddy","you","u","so","much","very","well","and","a","the"]),R=6;function E(t){const o=String(t||"").toLowerCase().replace(/[^\p{L}\s']/gu," ").split(/\s+/).filter(Boolean);return!o.length||o.length>R?!1:o.every(i=>x.has(i))}function _({request:t=null,signals:o=null,attachments:i=[],explicit:c=!1}={}){if(c)return{tools:!0,why:"the turn asked for tools"};if((i||[]).some(a=>a&&!a.auto))return{tools:!0,why:"the turn carries an attachment"};const h=String(t?.text??(t?.messages||[]).map(a=>a?.content||"").join(`
2
- `));return E(h)?(o||A(t||{})).smalltalk?{tools:!1,why:"a greeting — nothing to look up"}:{tools:!0,why:"the request may need something fetched"}:{tools:!0,why:"the request may need something fetched"}}const j=Object.freeze([["web",/\b(search|google|look ?up|latest|current|recent|today|this (week|month|year)|news|price|prices|pricing|cost of|quote|stock|market|website|url|online|web|docs?umentation|release notes|changelog|versions?)\b/i],["history",/\b(our (meeting|call|notes?|chats?|conversation)|what (did|was) (we|i)|we (decided|agreed|discussed|said)|in (my|our) (notes?|meetings?|history|chats?)|past (chats?|meetings?|notes?)|earlier (meeting|conversation|chat|note)|transcript|standup|retro)\b/i],["data",/\b(attached|attachment|this (page|document|file|pdf|spreadsheet|sheet)|the (document|file|pdf|spreadsheet) (above|provided|attached))\b/i]]);function q(t,{held:o=null}={}){const i=String(t||"");if(!i.trim())return[];const c=j.filter(([,s])=>s.test(i)).map(([s])=>s);if(!o)return c;const h=new Set((Array.isArray(o)?o:[]).map(s=>String(s).toLowerCase()));return c.filter(s=>h.has(s)||s==="history"&&h.has("data"))}const b=Object.freeze(["page","data","mcp","memory","note","team","sideline","skills","widgets","recipes"]),f=Object.freeze(["data","mcp","memory"]),w="page_read",y=/\b(this|the|current|open|active|that|my) (page|tab|site|website|article|post|thread|document|doc|file|pdf|sheet|spreadsheet|form|canvas|board|diagram|screen|window|video|table|cell|button|field|link|image)\b|\bon (the|this) (page|screen|tab)\b|\bhere\b|\bthis\b(?!\s+(morning|afternoon|evening|week|weekend|month|year|time|is (a|the|my))\b)|\bthese\b|\bthose\b/i,k=/\b(click|tap|press|type|fill|enter|select|scroll|drag|draw|paint|sketch|navigate|go to|open|close|submit|upload|download|play|pause|screenshot|inspect|read (the|this)|zoom|highlight|copy|paste|log ?in|sign ?in|sign ?up|checkout|add to cart|search (on|in) (the|this)|watch|browse)\b/i,L=/\b(build|make|create|write|generate|draft|code|design|implement|prototype)\b[^.?!]{0,40}\b(app|widget|tool|timer|calculator|tracker|checklist|game|dashboard|form|page|site|script|component|converter|counter|scoreboard|clock|note|dice)\b|\b(widget|app)\b/i,O=/\b(run|use|ask|start|save|create|make|set ?up|open|launch|kick ?off|assign|delegate)\b[^.?!]{0,30}\b(team|teams|agent|agents|skill|skills|recipe|recipes|sideline|project)\b|\b(the|my|our|this|that)\s+(\w+[\s-]+)?(team|agent|skill|recipe|sideline|project)\b|\bask (the|our|my) \w+ (to|for)\b|\b(executive|breakout|workflow)\b|remember this|save (this|that) as|^\s*\//i,v=/\b(summar\w*|analy\w*|review|edit|rewrite|fix|refactor|debug|translate|convert|extract|compare|explain (this|that|the)|proofread|format|organi[sz]e|plan)\b/i,G=300;function F({request:t=null,signals:o=null,attachments:i=[],explicit:c=!1,stable:h=!1,ambient:s=null}={}){const a=n=>({tools:!0,tier:"full",groups:new Set(b),why:n});if(h)return a("a warm process keeps one tool set");const d=_({request:t,signals:o,attachments:i,explicit:c});if(!d.tools)return{tools:!1,tier:"none",groups:new Set,why:d.why};if(c)return a(d.why);if((i||[]).some(n=>n&&!n.auto))return a("the turn carries an attachment");const r=String(t?.text??(t?.messages||[]).map(n=>n?.content||"").join(`
3
- `));if(!r.trim())return a("no text to read");if(r.length>G||/```/.test(r))return a("a long or code-bearing request");const g=y.test(r)||k.test(r)||v.test(r),u=O.test(r),m=L.test(r),S=v.test(r),p=!!s?.page;if(!g&&!u&&!m){const n=new Set(f);return p&&n.add(w),{tools:!0,tier:"light",groups:n,why:p?"a lookup, asked from a readable tab — the user's data, the web, and a reader for the tab":"a lookup — the user's data and the web are enough"}}const e=new Set(f),l=[];return g&&(e.add("page"),e.add("note"),l.push(k.test(r)?"the request asks to act":y.test(r)?"the request refers to the page or to something in view":"the request is work, not a lookup")),(S||u)&&e.add("skills"),u&&(e.add("team"),e.add("sideline"),e.add("recipes"),e.add("note"),l.push("the request names a team, skill, recipe or command")),m&&(e.add("widgets"),e.add("note"),l.push("the request asks to make something")),p&&!e.has("page")&&e.add(w),b.every(n=>e.has(n))?a(l.join("; ")):{tools:!0,tier:"task",groups:e,why:l.join("; ")}}export{F as equipmentFor,q as grantsNeededFor,_ as toolNeedFor};
1
+ import{signalsFrom as x}from"./router.js";const A=new Set(["hi","hii","hiya","hey","heya","hello","helo","yo","sup","howdy","greetings","good","morning","afternoon","evening","night","day","thanks","thank","thankyou","thx","tnx","ty","cheers","appreciated","ok","okay","k","kk","got","sounds","perfect","great","cool","nice","awesome","lol","haha","hah","hehe","nvm","yep","yeah","yes","no","nope","sure","bye","goodbye","later","ya","cya","ciao","welcome","worries","problem","np","please","there","again","all","everyone","team","friend","mate","buddy","you","u","so","much","very","well","and","a","the"]),R=6;function E(t){const o=String(t||"").toLowerCase().replace(/[^\p{L}\s']/gu," ").split(/\s+/).filter(Boolean);return!o.length||o.length>R?!1:o.every(i=>A.has(i))}function _({request:t=null,signals:o=null,attachments:i=[],explicit:c=!1}={}){if(c)return{tools:!0,why:"the turn asked for tools"};if((i||[]).some(a=>a&&!a.auto))return{tools:!0,why:"the turn carries an attachment"};const h=String(t?.text??(t?.messages||[]).map(a=>a?.content||"").join(`
2
+ `));return E(h)?(o||x(t||{})).smalltalk?{tools:!1,why:"a greeting — nothing to look up"}:{tools:!0,why:"the request may need something fetched"}:{tools:!0,why:"the request may need something fetched"}}const j=Object.freeze([["web",/\b(search|google|look ?up|latest|current|recent|today|this (week|month|year)|news|price|prices|pricing|cost of|quote|stock|market|website|url|online|web|docs?umentation|release notes|changelog|versions?)\b/i],["history",/\b(our (meeting|call|notes?|chats?|conversation)|what (did|was) (we|i)|we (decided|agreed|discussed|said)|in (my|our) (notes?|meetings?|history|chats?)|past (chats?|meetings?|notes?)|earlier (meeting|conversation|chat|note)|transcript|standup|retro)\b/i],["data",/\b(attached|attachment|this (page|document|file|pdf|spreadsheet|sheet)|the (document|file|pdf|spreadsheet) (above|provided|attached))\b/i]]);function q(t,{held:o=null}={}){const i=String(t||"");if(!i.trim())return[];const c=j.filter(([,s])=>s.test(i)).map(([s])=>s);if(!o)return c;const h=new Set((Array.isArray(o)?o:[]).map(s=>String(s).toLowerCase()));return c.filter(s=>h.has(s)||s==="history"&&h.has("data"))}const b=Object.freeze(["page","data","mcp","memory","note","team","sideline","skills","widgets","recipes"]),f=Object.freeze(["data","mcp","memory"]),w="page_read",y=/\b(this|the|current|open|active|that|my) (page|tab|site|website|article|post|thread|document|doc|file|pdf|sheet|spreadsheet|form|canvas|board|diagram|screen|window|video|table|cell|button|field|link|image)\b|\bon (the|this) (page|screen|tab)\b|\bhere\b|\bthis\b(?!\s+(morning|afternoon|evening|week|weekend|month|year|time|is (a|the|my))\b)|\bthese\b|\bthose\b/i,k=/\b(click|tap|press|type|fill|enter|select|scroll|drag|draw|paint|sketch|navigate|go to|open|close|submit|upload|download|play|pause|screenshot|inspect|read (the|this)|zoom|highlight|copy|paste|log ?in|sign ?in|sign ?up|checkout|add to cart|search (on|in) (the|this)|watch|browse)\b/i,L=/\b(build|make|create|write|generate|draft|code|design|implement|prototype)\b[^.?!]{0,40}\b(app|widget|tool|timer|calculator|tracker|checklist|game|dashboard|form|page|site|script|component|converter|counter|scoreboard|clock|note|dice)\b|\b(widget|app)\b/i,O=/\b(run|use|ask|start|save|create|make|set ?up|open|launch|kick ?off|assign|delegate)\b[^.?!]{0,30}\b(team|teams|agent|agents|skill|skills|recipe|recipes|sideline|project)\b|\b(the|my|our|this|that)\s+(\w+[\s-]+)?(team|agent|skill|recipe|sideline|project)\b|\bask (the|our|my) \w+ (to|for)\b|\b(executive|breakout|workflow)\b|remember this|save (this|that) as|^\s*\//i,v=/\b(summar\w*|analy\w*|review|edit|rewrite|fix|refactor|debug|translate|convert|extract|compare|explain (this|that|the)|proofread|format|organi[sz]e|plan)\b/i,G=300;function F({request:t=null,signals:o=null,attachments:i=[],explicit:c=!1,stable:h=!1,ambient:s=null}={}){const a=n=>({tools:!0,tier:"full",groups:new Set(b),why:n});if(h)return a("a warm process keeps one tool set");const d=_({request:t,signals:o,attachments:i,explicit:c});if(!d.tools)return{tools:!1,tier:"none",groups:new Set,why:d.why};if(c)return a(d.why);if((i||[]).some(n=>n&&!n.auto))return a("the turn carries an attachment");const r=String(t?.text??(t?.messages||[]).map(n=>n?.content||"").join(`
3
+ `));if(!r.trim())return a("no text to read");if(r.length>G||/```/.test(r))return a("a long or code-bearing request");const g=y.test(r)||k.test(r)||v.test(r),u=O.test(r),m=L.test(r),S=v.test(r),p=!!s?.page;if(!g&&!u&&!m){const n=new Set(f);return p&&n.add(w),{tools:!0,tier:"light",groups:n,why:p?"a lookup, asked from a readable tab — the user's data, the web, and a reader for the tab":"a lookup — the user's data and the web are enough"}}const e=new Set(f),l=[];return g&&(e.add("page"),e.add("note"),l.push(k.test(r)?"the request asks to act":y.test(r)?"the request refers to the page or to something in view":"the request is work, not a lookup")),(S||u)&&e.add("skills"),u&&(e.add("team"),e.add("sideline"),e.add("recipes"),e.add("note"),l.push("the request names a team, skill, recipe or command")),m&&(e.add("widgets"),e.add("note"),l.push("the request asks to make something")),p&&!e.has("page")&&e.add(w),b.every(n=>e.has(n))?a(l.join("; ")):{tools:!0,tier:"task",groups:e,why:l.join("; ")}}export{F as equipmentFor,q as grantsNeededFor,E as isPleasantry,_ as toolNeedFor};
@@ -0,0 +1 @@
1
+ import{fuseRRF as _}from"./rrf.js";import{callFirstProvider as A}from"./capability-providers.js";const D=24,T=1500,E=9,w=Symbol("timed out");function $(r){const t=String(r?.name||"").replace(/^mcp_[^_]+__/,"").replace(/_/g," "),n=String(r?.description||"").replace(/\s+/g," ").trim(),o=n.search(/(?<=[.!?])\s/),s=(o>0?n.slice(0,o):n).slice(0,90);return s?`${t}: ${s}`:t}async function F(r,t,{lexical:n,rerank:o=null,candidates:s=D,budgetMs:a=T,now:c=Date.now}={}){const u=Array.isArray(r)?r:[],m=String(t||"").trim(),y=m?n(u,m):u,f=(e,i=0)=>({ranked:y,how:"lexical",reason:e,ms:i});if(typeof o!="function")return f("no reranker");if(!m)return f("no query");if(u.length<E)return f("too few tools to reorder");const l=y.slice(0,Math.max(2,s)),g=c();let k=null,d;try{d=await Promise.race([Promise.resolve().then(()=>o(m,l.map($),{timeoutMs:a})),new Promise(e=>{k=setTimeout(()=>e(w),a)})])}catch(e){return f(`reranker failed: ${String(e?.message||e).slice(0,120)}`,c()-g)}finally{clearTimeout(k)}const h=c()-g;if(d===w)return f(`reranker over its ${a} ms budget`,h);const S=new Set,p=[];for(const e of Array.isArray(d)?d:[]){const i=e?.index;!Number.isInteger(i)||i<0||i>=l.length||S.has(i)||(S.add(i),p.push(l[i].name))}if(!p.length)return f("reranker returned no usable order",h);const x=new Map(l.map(e=>[e.name,e]));return{ranked:[..._([l.map(e=>e.name),p]).map(e=>x.get(e.id)),...y.slice(l.length)],how:"fused",reason:`${p.length} of ${l.length} reranked`,ms:h}}function M({lexical:r,rerank:t=null,candidates:n,budgetMs:o,onRank:s=()=>{}}={}){if(typeof r!="function")throw new Error("fusedRanker: lexical(specs, query) required");return async(a,c)=>{const u=await F(a,c,{lexical:r,rerank:t,candidates:n,budgetMs:o});try{s(u)}catch{}return u.ranked}}function N({providers:r,fetch:t}={}){return!Array.isArray(r)||!r.length||typeof t!="function"?null:async(n,o,{timeoutMs:s}={})=>{const a={query:n,documents:o},{doc:c}=await A(r,"rerank",a,{fetch:t,timeoutMs:s,validateAgainst:a});return c.results}}export{T as FUSED_BUDGET_MS,D as FUSED_CANDIDATES,M as fusedRanker,F as rankFused,N as rerankThrough,$ as toolDoc};
package/tool-traits.js CHANGED
@@ -1 +1 @@
1
- const w=new Set(["get","list","search","read","find","fetch","query","describe","lookup","look","show","view","count","check","status","recall","inspect","screenshot","preview","browse","grep","glob","head","tail","cat","ls","stat","resolve","detect","validate","explain","summarize","summarise","summary","history","recent","latest","whoami","info","render","compare","diff","ping","health","select","retrieve","load","peek","watch","tools","schema","suggest","smart"]),b=new Set(["create","update","set","post","put","send","write","add","edit","move","rename","upload","run","execute","exec","click","type","submit","save","insert","patch","apply","merge","push","commit","start","stop","enable","disable","assign","close","reopen","login","logout","install","replace","transfer","pay","order","book","schedule","publish","deploy","restart","import","sync","remember","label","tag","mark","fill","press","scroll","navigate","open","goto","drag","invoke","call","trigger","act"]),v=new Set(["delete","remove","drop","purge","destroy","reset","clear","kill","wipe","revoke","truncate","erase","overwrite","rm","rmdir","uninstall","terminate","ban","force","unlink","discard","forget"]);function k(e){const t=String(e||""),r=t.lastIndexOf("__");return r>=0?t.slice(r+2):t.replace(/^mcp[_-]/i,"")}const x=e=>k(e).toLowerCase().split(/[^a-z0-9]+/).filter(Boolean);function _(e){return!!e&&typeof e=="object"&&["readOnlyHint","destructiveHint","idempotentHint","openWorldHint"].some(t=>typeof e[t]=="boolean")}function h(e){const t=typeof e=="string"?e:e?.name,r=typeof e=="object"&&e?e.annotations:null,c=x(t),l=c.some(o=>v.has(o)),d=!(l||c.some(o=>b.has(o)))&&c.some(o=>w.has(o));if(_(r)){const o=r.readOnlyHint===!0,f=o?!1:typeof r.destructiveHint=="boolean"?r.destructiveHint:l;return{readOnly:o,destructive:f,idempotent:o||r.idempotentHint===!0,openWorld:typeof r.openWorldHint=="boolean"?r.openWorldHint:!0,source:"annotations"}}return{readOnly:d,destructive:l,idempotent:d,openWorld:!0,source:"heuristic"}}const H=e=>!!e?.readOnly,S=e=>!!e?.readOnly,E=e=>e?.destructive===!0;function $(e=[]){const t=new Map;for(const r of e)r?.name&&t.set(r.name,h(r));return t}function R(e,{confirm:t=null,only:r=()=>!0,traitsOf:c=null,effectiveName:l=O}={}){if(!e||typeof e.execute!="function")return e;const u=e.execute.bind(e),d=new Map((e.specs||[]).filter(n=>n?.name).map(n=>[n.name,n])),o=new Set,f=c||((n,s)=>{const i=l(n,s);return e.traits?.get(i)||e.traits?.get(n)||h(d.get(i)||d.get(n)||{name:i})});return{...e,async execute(n,s,i){if(!r(n))return u(n,s,i);const m=f(n,s);if(!E(m))return u(n,s,i);const a=l(n,s);if(o.has(a))return u(n,s,i);if(!t)return JSON.stringify({error:`"${a}" is a destructive action and needs the user's confirmation, which this surface cannot ask for. Do not retry it; tell the user what you would do and let them run it from the side panel.`,blocked:!0,needsConfirmation:!0,tool:a});const p=await t({name:a,input:s,via:n===a?null:n,traits:m});return p==="always"&&o.add(a),p!=="allow"&&p!=="always"?JSON.stringify({error:`The user DECLINED "${a}". Do not retry it — stop and ask the user how to proceed.`,blocked:!0,declined:!0,tool:a}):u(n,s,i)}}}function y(e,t){const r=t&&typeof t=="object"?t.action:null;return typeof r=="string"&&r?r:e}const O=y,g=/^(find$|history_|web_search$|weather$|get_result$|skill_open$|skill_file$|recall$|memory_recall$|meeting_live_transcript$)/;function T(e,t,r){if(!r?.readOnly||e?.serialTools?.has(t.name))return!1;const c=y(t.name,t.input);return!!e?.remoteTools?.has(t.name)||g.test(c)||g.test(t.name)}export{g as PARALLEL_LOCAL_RE,k as bareToolName,H as canRunConcurrently,y as effectiveToolName,S as isCacheable,E as needsConfirmation,T as parallelEligible,h as toolTraits,$ as traitsIndex,R as withDestructiveGate};
1
+ const w=new Set(["get","list","search","read","find","fetch","query","describe","lookup","look","show","view","count","check","status","recall","inspect","screenshot","preview","browse","grep","glob","head","tail","cat","ls","stat","resolve","detect","validate","explain","summarize","summarise","summary","history","recent","latest","whoami","info","render","compare","diff","ping","health","select","retrieve","load","peek","watch","tools","schema","suggest","smart"]),b=new Set(["create","update","set","post","put","send","write","add","edit","move","rename","upload","run","execute","exec","click","type","submit","save","insert","patch","apply","merge","push","commit","start","stop","enable","disable","assign","close","reopen","login","logout","install","replace","transfer","pay","order","book","schedule","publish","deploy","restart","import","sync","remember","label","tag","mark","fill","press","scroll","navigate","open","goto","drag","invoke","call","trigger","act"]),v=new Set(["delete","remove","drop","purge","destroy","reset","clear","kill","wipe","revoke","truncate","erase","overwrite","rm","rmdir","uninstall","terminate","ban","force","unlink","discard","forget"]);function k(e){const t=String(e||""),r=t.lastIndexOf("__");return r>=0?t.slice(r+2):t.replace(/^mcp[_-]/i,"")}const x=e=>k(e).toLowerCase().split(/[^a-z0-9]+/).filter(Boolean);function _(e){return!!e&&typeof e=="object"&&["readOnlyHint","destructiveHint","idempotentHint","openWorldHint"].some(t=>typeof e[t]=="boolean")}function h(e){const t=typeof e=="string"?e:e?.name,r=typeof e=="object"&&e?e.annotations:null,s=x(t),l=s.some(o=>v.has(o)),d=!(l||s.some(o=>b.has(o)))&&s.some(o=>w.has(o));if(_(r)){const o=r.readOnlyHint===!0,f=o?!1:typeof r.destructiveHint=="boolean"?r.destructiveHint:l;return{readOnly:o,destructive:f,idempotent:o||r.idempotentHint===!0,openWorld:typeof r.openWorldHint=="boolean"?r.openWorldHint:!0,source:"annotations"}}return{readOnly:d,destructive:l,idempotent:d,openWorld:!0,source:"heuristic"}}const H=e=>!!e?.readOnly,S=e=>!!e?.readOnly,E=e=>e?.destructive===!0;function T(e=[]){const t=new Map;for(const r of e)r?.name&&t.set(r.name,h(r));return t}function $(e,{confirm:t=null,only:r=()=>!0,traitsOf:s=null,effectiveName:l=O}={}){if(!e||typeof e.execute!="function")return e;const u=e.execute.bind(e),d=new Map((e.specs||[]).filter(n=>n?.name).map(n=>[n.name,n])),o=new Set,f=s||((n,a)=>{const i=l(n,a);return e.traits?.get(i)||e.traits?.get(n)||h(d.get(i)||d.get(n)||{name:i})});return{...e,async execute(n,a,i){if(!r(n))return u(n,a,i);const m=f(n,a);if(!E(m))return u(n,a,i);const c=l(n,a);if(o.has(c))return u(n,a,i);if(!t)return JSON.stringify({error:`"${c}" is a destructive action and needs the user's confirmation, which this surface cannot ask for. Do not retry it; tell the user what you would do and let them run it from the side panel.`,blocked:!0,needsConfirmation:!0,tool:c});const p=await t({name:c,input:a,via:n===c?null:n,traits:m});return p==="always"&&o.add(c),p!=="allow"&&p!=="always"?JSON.stringify({error:`The user DECLINED "${c}". Do not retry it — stop and ask the user how to proceed.`,blocked:!0,declined:!0,tool:c}):u(n,a,i)}}}function y(e,t){const r=t&&typeof t=="object"?t.action:null;return typeof r=="string"&&r?r:e}const O=y,g=/^(find$|history_|web_search$|weather$|get_result$|skill_open$|skill_file$|recall$|memory_recall$|meeting_live_transcript$)/;function R(e,t,r){if(!r?.readOnly)return!1;const s=y(t.name,t.input);return e?.serialTools?.has(t.name)||e?.serialTools?.has(s)?!1:!!e?.remoteTools?.has(t.name)||!!e?.remoteTools?.has(s)||g.test(s)||g.test(t.name)}export{g as PARALLEL_LOCAL_RE,k as bareToolName,H as canRunConcurrently,y as effectiveToolName,S as isCacheable,E as needsConfirmation,R as parallelEligible,h as toolTraits,T as traitsIndex,$ as withDestructiveGate};
package/toolset.js CHANGED
@@ -1,3 +1,3 @@
1
- const l=/^mcp[_-]/i;function S(g,{mcpSystem:i=""}={}){const s=(g||[]).filter(t=>t&&t.specs?.length);if(!s.length)return;const o=[],a=new Map,h=new Set,c=new Map,m=new Set,d=[],f=new Map;for(const t of s){const n=t.remote===!0;if(t.traits instanceof Map)for(const[e,r]of t.traits)c.has(e)||c.set(e,r);if(Array.isArray(t.reach)&&t.specs.length===1)for(const e of t.reach)e?.name&&!f.has(e.name)&&(f.set(e.name,t.specs[0].name),d.push(e));for(const e of t.specs)a.has(e.name)||(o.push(e),a.set(e.name,t.execute),(n||l.test(String(e.name||"")))&&h.add(e.name),t.serial===!0&&m.add(e.name))}if(!o.length)return;const p=o.some(t=>l.test(String(t?.name||"")))?String((typeof i=="function"?i():i)||""):"",M=[p,...s.map(t=>t.system)].map(t=>String(t||"").trim()).filter(Boolean).join(`
1
+ const w=/^mcp[_-]/i;function x(S,{mcpSystem:f=""}={}){const a=(S||[]).filter(e=>e&&e.specs?.length);if(!a.length)return;const r=[],m=new Map,u=new Set,l=new Map,g=new Set,h=[],o=new Map,M=new Map;for(const e of a){const s=e.remote===!0;if(e.traits instanceof Map)for(const[n,t]of e.traits)l.has(n)||l.set(n,t);const i=e.hiddenVia instanceof Map;if(i){const n=new Map((Array.isArray(e.reach)?e.reach:[]).filter(t=>t?.name).map(t=>[t.name,t]));for(const[t,y]of e.hiddenVia)o.has(t)||!e.specs.some(E=>E?.name===y)||(o.set(t,y),n.has(t)&&h.push(n.get(t)))}else if(Array.isArray(e.reach)&&e.specs.length===1)for(const n of e.reach)n?.name&&!o.has(n.name)&&(o.set(n.name,e.specs[0].name),h.push(n));const c=e.remoteTools instanceof Set?e.remoteTools:null,A=e.serialTools instanceof Set?e.serialTools:null;for(const n of e.specs){if(m.has(n.name))continue;r.push(n),m.set(n.name,e.execute);const t=i&&e.residents instanceof Map?e.residents.get(n.name):e.system;t&&M.set(n.name,String(t)),(s||c?.has(n.name)||w.test(String(n.name||"")))&&u.add(n.name),(e.serial===!0||A?.has(n.name))&&g.add(n.name)}}if(!r.length)return;const p=r.some(e=>w.test(String(e?.name||"")))?String((typeof f=="function"?f():f)||""):"",T=[p,...a.map(e=>e.system)].map(e=>String(e||"").trim()).filter(Boolean).join(`
2
2
 
3
- `)||void 0,u={};p.trim()&&(u.mcp=Math.round(p.length/4));for(const t of s){const n=Math.round(String(t.system||"").trim().length/4);n&&(u[t.id||t.specs[0]?.name||"group"]=n)}return{specs:o,system:M,systemParts:u,remoteTools:h,traits:c,serialTools:m,reach:d,hiddenVia:f,async execute(t,n,e={}){const r=a.get(t);return r?r(t,n,e):JSON.stringify({error:`Unknown tool: ${t}`})}}}export{S as buildToolset};
3
+ `)||void 0,d={};p.trim()&&(d.mcp=Math.round(p.length/4));for(const e of a){const s=Math.round(String(e.system||"").trim().length/4);s&&(d[e.id||e.specs[0]?.name||"group"]=s)}return{specs:r,system:T,systemParts:d,remoteTools:u,traits:l,serialTools:g,reach:h,hiddenVia:o,residents:M,async execute(e,s,i={}){const c=m.get(e);return c?c(e,s,i):JSON.stringify({error:`Unknown tool: ${e}`})}}}export{x as buildToolset};