@chatpanel/events 0.108.1 → 0.110.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,12 +1,16 @@
1
- import{makeSourceStore as d,manifestText as l,readSource as f,approxTokens as p}from"./sources-retrieval.js";function h(n){let t=n.content||"";const i=(n.attachments||[]).filter(e=>e.kind!=="image");if(i.length){const e=i.map(r=>{const c=`[${r.kind||"context"}] ${r.title||r.url||""}`.trim();return`<context source="${(r.url||r.title||"").replace(/"/g,"")}">
2
- # ${c}
3
- ${r.text||""}
1
+ import{makeSourceStore as h,manifestText as l,readSource as d,approxTokens as p}from"./sources-retrieval.js";function g(t){const e=String(t||"").trim();return e?`<presence>
2
+ ${e}
3
+ </presence>`:""}function f(t){let e=t.content||"";const i=(t.attachments||[]).filter(s=>s.kind!=="image");if(i.length){const s=i.map(n=>{const a=`[${n.kind||"context"}] ${n.title||n.url||""}`.trim();return`<context source="${(n.url||n.title||"").replace(/"/g,"")}">
4
+ # ${a}
5
+ ${n.text||""}
4
6
  </context>`}).join(`
5
7
 
6
- `);t=t?`${t}
8
+ `);e=e?`${e}
7
9
 
8
- ${e}`:e}return t}function y(n){return n.filter(t=>t.role==="user"||t.role==="assistant").map(t=>({role:t.role,content:h(t)}))}function g(n){return(n.attachments||[]).filter(t=>t.kind==="image"&&t.dataUrl)}function k(n,t){return n.filter(i=>i.role==="user"||i.role==="assistant").map(i=>{const e=h(i),r=i.role==="user"?g(i):[];if(r.length===0)return{role:i.role,content:e};if(t==="anthropic"){const a=[];for(const s of r){const o=/^data:([^;]+);base64,(.+)$/s.exec(s.dataUrl);o&&a.push({type:"image",source:{type:"base64",media_type:o[1],data:o[2]}})}return e&&a.push({type:"text",text:e}),{role:"user",content:a.length?a:e}}const c=[];e&&c.push({type:"text",text:e});for(const a of r)c.push({type:"image_url",image_url:{url:a.dataUrl}});return{role:"user",content:c.length?c:e}})}function $(n,t,{minTokens:i=700}={}){if(!t?.specs?.length)return null;const e=[];for(const s of n||[])for(const o of s?.attachments||[])o?.kind==="image"||!o?.text||e.push(o);if(!e.length)return null;const r=d(e.map(s=>({kind:s.kind||"context",title:s.title,url:s.url,text:s.text})));if(r.tokens<i)return null;const c=new Map(e.map((s,o)=>[s,r.entries[o]?.id]));return{messages:(n||[]).map(s=>s?.attachments?.some(o=>c.get(o))?{...s,attachments:s.attachments.map(o=>{const u=c.get(o);return u?{...o,text:`(not included — read with \`source\`: id ${u}, ~${p(o.text)} tokens)`}:o})}:s),store:r}}const m={name:"source",description:"Read an attached source (a page, tab, selection or file the user attached). Their content is NOT in the conversation — read what you need from here.",parameters:{type:"object",properties:{id:{type:"string",description:"The source id from the manifest, e.g. page-1."},query:{type:"string",description:"What you are looking for. A large source returns the matching sections rather than its first page."}},required:["id"]}};function S(n,t){const i={...m},e=[n?.system,`${l(t)}
10
+ ${s}`:s}const r=g(t.presence);return r&&(e=e?`${e}
11
+
12
+ ${r}`:r),e}function k(t){return t.filter(e=>e.role==="user"||e.role==="assistant").map(e=>({role:e.role,content:f(e)}))}function m(t){return(t.attachments||[]).filter(e=>e.kind==="image"&&e.dataUrl)}function $(t,e){return t.filter(i=>i.role==="user"||i.role==="assistant").map(i=>{const r=f(i),s=i.role==="user"?m(i):[];if(s.length===0)return{role:i.role,content:r};if(e==="anthropic"){const a=[];for(const c of s){const o=/^data:([^;]+);base64,(.+)$/s.exec(c.dataUrl);o&&a.push({type:"image",source:{type:"base64",media_type:o[1],data:o[2]}})}return r&&a.push({type:"text",text:r}),{role:"user",content:a.length?a:r}}const n=[];r&&n.push({type:"text",text:r});for(const a of s)n.push({type:"image_url",image_url:{url:a.dataUrl}});return{role:"user",content:n.length?n:r}})}function S(t,e,{minTokens:i=700}={}){if(!e?.specs?.length)return null;const r=[];for(const c of t||[])for(const o of c?.attachments||[])o?.kind==="image"||!o?.text||o.kind!=="prefetch"&&r.push(o);if(!r.length)return null;const s=h(r.map(c=>({kind:c.kind||"context",title:c.title,url:c.url,text:c.text})));if(s.tokens<i)return null;const n=new Map(r.map((c,o)=>[c,s.entries[o]?.id]));return{messages:(t||[]).map(c=>c?.attachments?.some(o=>n.get(o))?{...c,attachments:c.attachments.map(o=>{const u=n.get(o);return u?{...o,text:`(not included — read with \`source\`: id ${u}, ~${p(o.text)} tokens)`}:o})}:c),store:s}}const x={name:"source",description:"Read an attached source (a page, tab, selection or file the user attached). Their content is NOT in the conversation — read what you need from here.",parameters:{type:"object",properties:{id:{type:"string",description:"The source id from the manifest, e.g. page-1."},query:{type:"string",description:"What you are looking for. A large source returns the matching sections rather than its first page."}},required:["id"]}};function T(t,e){const i={...x},r=[t?.system,`${l(e)}
9
13
 
10
14
  Their content is NOT in this conversation. Call \`source\` with an id — and a query when the source is large — to read what you need.`].filter(Boolean).join(`
11
15
 
12
- `);return{...n,specs:[...n?.specs||[],i],system:e,systemParts:{...n?.systemParts||{},source:p(l(t))},execute:async(r,c,a)=>r==="source"?JSON.stringify(f(t,typeof c=="string"?JSON.parse(c||"{}"):c||{})):n.execute(r,c,a)}}export{m as SOURCE_TOOL_SPEC,$ as deferAttachedSources,g as imageAttachmentsOf,h as renderContent,y as toChatMessages,k as toMultimodalMessages,S as withSourceTool};
16
+ `);return{...t,specs:[...t?.specs||[],i],system:r,systemParts:{...t?.systemParts||{},source:p(l(e))},execute:async(s,n,a)=>s==="source"?JSON.stringify(d(e,typeof n=="string"?JSON.parse(n||"{}"):n||{})):t.execute(s,n,a)}}export{x as SOURCE_TOOL_SPEC,S as deferAttachedSources,m as imageAttachmentsOf,g as presenceBlock,f as renderContent,k as toChatMessages,$ as toMultimodalMessages,T as withSourceTool};
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 n,CLASSES as s,EFFECTS as S,EGRESS as E,EventError as l,validateEvent as T,isValidEvent as m,createAppender as c}from"./event.js";import{REF_KINDS as _,RESOLUTION as d,makeRef as A,isRef as R,resolveRef as f}from"./ref.js";import{linearize as I,compareEvents as N,causesAreWellFormed as u}from"./order.js";import{pendingQueue as g,isQueued as C,dequeue as L,moveQueued as P,promoteQueued as x}from"./queue.js";import{groupModels as F,filterSections as h,defaultModelId as y,modelSummary as k}from"./model-picker.js";import{NOTE_ACTIONS as b,NOTE_ACTION_ORDER as v,NOTE_ACTION_TEMPERATURE as G,NOTE_ACTION_ERRORS as B,NOTE_COMMANDS as K,NOTE_COMMAND_TEMPERATURE as H,NOTE_COMMAND_MAX_TOKENS as w,frameNoteAction as V,noteActionLabel as X,noteActionItems as W,filterNoteActions as J,commandLineAt as Y,triggerQueryAt as z}from"./note-actions.js";import{parseAgentMention as Q,agentMentionAt as q,parseSkillMention as Z,mergeSkillPrompt as $,findSkillByName as ee,findTargetByName as re,mentionAnswerPrefix as oe}from"./note-mentions.js";import{wikiQueryAt as ae,rankLinkTargets as ie}from"./note-links.js";import{SWARM_ROLES as se,roleById as Se,classifyModel as Ee,supportsSubagents as le,appoint as Te,routeTeam as me}from"./cowriter-router.js";import{SEARCH_ENGINES as pe,RESULTS_PER_ENGINE as _e,buildSearchUrl as de,unwrapRedirect as Ae,isResultHost as Re,pickResults as fe,mergeEngineResults as Oe,engineOrder as Ie}from"./web-search.js";import{MAX_GRAPH_NODES as ue,buildNoteGraph as Me,egoGraph as ge,trimGraph as Ce,graphStats as Le}from"./note-graph.js";import{lintText as xe,wordDiff as De,filterTypoEdits as Fe,editKey as he,applyEdits as ye,COWRITER_SYSTEM as ke,COWRITER_TEMPERATURE as Ue}from"./cowriter.js";import{salientTerms as ve,topicTerms as Ge,researchRelevance as Be,webQuery as Ke,researchSnippet as He,rankResearchCards as we,mergeResearchLanes as Ve}from"./note-research.js";import{PLAN_ROLES as We,PLAN_AUTHORS as Je,PLAN_DECOMPOSE_SYSTEM as Ye,PLAN_DECOMPOSE_MAX_TOKENS as ze,PLAN_DECOMPOSE_TEMPERATURE as je,PLAN_SECTION_MAX_TOKENS as Qe,PLAN_SECTION_TEMPERATURE as qe,planSectionSystem as Ze,parsePlanTasks as $e,planTitleFor as er,planParts as rr,planBody as or,planAttribution as tr}from"./note-plan.js";import{REACH as ir,reachRank as nr,reachSatisfies as sr}from"./reach.js";import{UPCASTERS as Er,upcast as lr,upcastAll as Tr}from"./upcast.js";import{validateCapability as cr,validateInvocation as pr,canSatisfy as _r,toModelSchema as dr,toModelSchemas as Ar}from"./capability.js";import{checkInvariants as fr,INVARIANTS as Or}from"./invariants.js";import{createMemoryAdapter as Nr,createLogStore as ur,createBlobStore as Mr}from"./store.js";import{createRegistry as Cr,REGISTRY_STATES as Lr}from"./registry.js";import{defineSearchEngine as xr,reconcileEngines as Dr,attemptOrder as Fr,ENGINE_KINDS as hr,SearchEngineError as yr}from"./search-engines.js";import{getWeather as Ur,weatherUrl as br,parseWeather as vr,formatWeather as Gr,areaLabel as Br,isAmbiguousLocation as Kr,WEATHER_HOST as Hr,WEATHER_TIMEOUT_MS as wr,WeatherError as Vr}from"./weather.js";import{defineToolGroup as Wr,createToolGroupRegistry as Jr,ToolGroupError as Yr}from"./tool-groups.js";import{toolNeedFor as jr,grantsNeededFor as Qr}from"./tool-need.js";import{parseFlowchart as Zr,layoutFlowchart as $r,renderFlowchartSvg as eo}from"./flowchart.js";import{validateView as oo,validateViewInvocation as to,viewResult as ao}from"./view.js";import{validateWidget as no,validateWidgetMessage as so,effectiveGrants as So,widgetIcon as Eo,WIDGET_SURFACES as lo}from"./widget.js";import{fuseRRF as mo,planQueries as co,multiSearch as po}from"./rrf.js";import{SUBJECT_KINDS as Ao,DEFAULT_THRESHOLD as Ro,MAX_SUBJECTS as fo,MAX_SUBJECT_CHARS as Oo,normalizeSubject as Io,subjectKey as No,subjectTokens as uo,isSubjectCandidate as Mo,aliasMap as go,resolveSubjects as Co,earnsBrief as Lo,rankSubjects as Po,REDACTION_TOKEN_TYPES as xo,isRedactionToken as Do,SELF_LABELS as Fo,isSelfLabel as ho,stripQualifiers as yo,suggestMerges as ko}from"./entity.js";import{BRIEF_STATES as bo,CLAIM_KINDS as vo,MAX_CLAIMS as Go,MAX_CLAIM_REFS as Bo,MAX_BRIEF_RECORDS as Ko,MAX_BRIEF_CHARS as Ho,contentHash as wo,briefId as Vo,briefToText as Xo,briefTerms as Wo,briefLinks as Jo,checkKnowledgeInvariants as Yo,parseBriefText as zo}from"./knowledge.js";import{deriveBrief as Qo,deriveBriefs as qo,driftedRefs as Zo}from"./knowledge-derive.js";import{SYNTHESIS_SCHEMA as et,synthesisPrompt as rt,claimsFromSynthesis as ot,MAX_SYNTHESIS_CLAIMS as tt,MAX_EXCERPTS as at,MAX_EXCERPT_CHARS as it}from"./synthesis.js";import{PROPOSAL_STATES as st,SUPERSEDE_OVERLAP as St,propose as Et,accept as lt,reject as Tt,diffProposal as mt,converge as ct,linkClaims as pt}from"./promotion.js";import{normalizeRecord as dt,normalizeRecords as At,wikilinksIn as Rt,redactedTokensIn as ft,redactionCost as Ot,wantedPages as It,orphanRecords as Nt,duplicateTitles as ut,vocabularyDrift as Mt,mentionsFrom as gt,spanningQuestions as Ct,surveyCorpus as Lt,thresholdSweep as Pt,formatSurvey as xt,NEAR_TITLE_DISTANCE as Dt,SPAN_MIN_TERMS as Ft}from"./curate.js";import{PDF_MAX_CHARS as yt,linesFromItems as kt,orderLines as Ut,paragraphsFromLines as bt,pageTextFromItems as vt,looksScanned as Gt,buildPdfDocument as Bt}from"./pdf-layout.js";import{YOUTUBE_HOSTS as Ht,TRANSCRIPT_MAX_CHARS as wt,parseYouTubeUrl as Vt,isYouTubeUrl as Xt,captionTracksFromPlayerResponse as Wt,videoMetaFromPlayerResponse as Jt,pickCaptionTrack as Yt,timedTextUrl as zt,parseTimedText as jt,groupSegments as Qt,formatTimestamp as qt,formatTranscript as Zt,buildTranscriptDocument as $t,transcriptFromTracks as ea}from"./media-transcript.js";import{ACCESS_LOG_VERSION as oa,ACCESS_LOG_MAX as ta,redactAccessArgs as aa,makeAccessEvent as ia,createAccessLog as na,makeStorageTier as sa,formatBytes as Sa}from"./observability.js";import{routeGraph as la,projectChain as Ta}from"./route-graph.js";import{defineAdapter as ca,createAdapterRegistry as pa,AdapterError as _a}from"./adapters.js";import{linkifyCitations as Aa,sourcesFromToolText as Ra,createCitationCollector as fa,RETRIEVAL_TOOLS as Oa}from"./citations.js";import{buildTrajectory as Na,phasesOf as ua,lanesOf as Ma,filterEntries as ga,displayName as Ca,ENTRY_KINDS as La,threadsOf as Pa,threadTitle as xa,promptEntries as Da,turnsOf as Fa,threadTree as ha}from"./trajectory.js";import{createTurnRunner as ka,defineLoop as Ua,LOOP_KINDS as ba,LoopError as va}from"./loop.js";import{defineModel as Ba,defineMiddleware as Ka,defineRouteStrategy as Ha,createModelRouter as wa,signalsFrom as Va,requirementsFor as Xa,requirementsForStep as Wa,preferenceFor as Ja,failoverOrder as Ya,pinnedOrderOf as za,FAILOVER_CLASS_GAP as ja,FAILOVER_CAPABILITY_GAP as Qa,sameModelKey as qa,RouterError as Za}from"./router.js";import{makeSourceStore as ei,manifestText as ri,shortUrl as oi,readSource as ti,sourceId as ai}from"./sources-retrieval.js";import{classifySource as ni,extractUrls as si,hostMatches as Si,meetReach as Ei,sourcePolicyFor as li,sourceUrlsOf as Ti,DEFAULT_INTERNAL_PATTERNS as mi,INTERNAL_PATTERN_CATALOG as ci}from"./sources.js";import{defineRule as _i,createRuleEngine as di,SUPPRESSED as Ai,RuleError as Ri}from"./rules.js";import{VAULT_VERSION as Oi,KDF_ITERATIONS as Ii,KDF_HASH as Ni,DEFAULT_LOCK_MS as ui,VaultError as Mi,MAX_TITLE_CHARS as gi,MAX_NOTE_CHARS as Ci,MAX_SECRET_CHARS as Li,MAX_ENTRIES as Pi,createVault as xi,unlockVault as Di,deriveKey as Fi,sealEntry as hi,openEntry as yi,validateEntry as ki,entryMeta as Ui,searchEntries as bi,isLocked as vi,lockedSummary as Gi,canAddEntry as Bi,toB64 as Ki,fromB64 as Hi}from"./vault.js";import{SCHEDULE_KINDS as Vi,TRIGGER_KINDS as Xi,JOB_ACTIONS as Wi,MISSED_POLICIES as Ji,ScheduleError as Yi,validateSchedule as zi,nextFireAt as ji,occurrencesBetween as Qi,nextWakeAt as qi,defineTrigger as Zi,createTriggerRegistry as $i,BUILTIN_TRIGGERS as en,timerTrigger as rn,meetingStartedTrigger as on,meetingEndedTrigger as tn,personJoinedTrigger as an,phraseTrigger as nn,topicTrigger as sn,questionTrigger as Sn,voiceCommandTrigger as En,defineJob as ln,dueJobs as Tn,jobsForEvent as mn,occurrenceKey as cn,clipText as pn,matchSummary as _n}from"./schedule.js";import{defineMeetingAnalyzer as An,createAnalyzerRegistry as Rn,CADENCES as fn,AnalyzerError as On}from"./meeting-analyzers.js";import{DEFAULT_WAKE as Nn,MAX_COMMANDS_PER_DELTA as un,DAYPART_HOUR as Mn,VoiceIntentError as gn,compileWake as Cn,findWakeCommand as Ln,parseCommand as Pn,commandsFromSegments as xn,parseDuration as Dn,parseClock as Fn,parseWhen as hn,parseNumberWords as yn,normalizeSpeech as kn,tokenize as Un,editDistance as bn,defineVoiceIntent as vn,createVoiceIntentRegistry as Gn,defaultVoiceIntents as Bn,BUILTIN_VOICE_INTENTS as Kn,timerIntent as Hn,reminderIntent as wn,scheduleIntent as Vn,noteIntent as Xn,monitorIntent as Wn,REFINEMENT_SCHEMA as Jn,refinementPrompt as Yn,refinementFormat as zn,parseRefinement as jn,refinementStream as Qn,settleRefinement as qn,refineSpokenCommand as Zn,isFillerSentence as $n,gistText as es,gistOpening as rs,commandLooksFinished as os,sameUtterance as ts,createUtteranceGate as as,UTTERANCE_SETTLE_MS as is,UTTERANCE_DANGLING_MS as ns}from"./voice-intents.js";import{MAX_TOPICS as Ss,MAX_TOPIC_CHARS as Es,TOPICS_SCHEMA as ls,topicsSchema as Ts,topicsPrompt as ms,topicsFormat as cs,parseTopics as ps,normalizeTopic as _s,normalizeTopics as ds,topicsStream as As,ENTITY_TYPES as Rs,ENTITIES_SCHEMA as fs,entitiesPrompt as Os,entitiesFormat as Is,parseEntities as Ns,coerceEntities as us,entitiesStream as Ms,MAX_SUGGESTIONS as gs,MAX_SUGGESTION_CHARS as Cs,SUGGESTIONS_SCHEMA as Ls,suggestionsPrompt as Ps,suggestionsFormat as xs,parseSuggestions as Ds,suggestionsStream as Fs}from"./extraction.js";import{FIELD_TYPES as ys,RESPONSE_MODES as ks,StructuredError as Us,defineSchema as bs,describeSchema as vs,toJsonSchema as Gs,responseFormat as Bs,unfence as Ks,findJson as Hs,rewriteJson as ws,repairJson as Vs,isNothing as Xs,coerce as Ws,parseStructured as Js,createStructuredStream as Ys}from"./structured.js";import{explainMcpError as js,packageFromArgs as Qs,isStaleMcpSession as qs}from"./mcp-errors.js";import{toolTraits as $s,bareToolName as eS,canRunConcurrently as rS,isCacheable as oS,needsConfirmation as tS,traitsIndex as aS,effectiveToolName as iS,parallelEligible as nS,PARALLEL_LOCAL_RE as sS}from"./tool-traits.js";import{planToolRound as ES,runToolRound as lS}from"./tool-round.js";import{createToolLoopGuard as mS,roundSignature as cS,stableToolCallKey as pS,toolMadeProgress as _S,isLoopableTool as dS,blockedToolResult as AS,OBSERVATION_TOOLS as RS,INPUT_PROGRESS_TOOLS as fS}from"./tool-loop-guard.js";import{classifyFailure as IS,createModelHealth as NS,COOLDOWN_MS as uS,UNAVAILABLE_REASONS as MS,normModelName as gS}from"./model-health.js";import{runWithFailover as LS,failoverExhausted as PS,FAILOVER_MAX_ATTEMPTS as xS}from"./failover.js";import{sourcePolicySettings as FS,sourceGuardFor as hS,sourceGate as yS,isSourceGateError as kS,withinReach as US}from"./source-gate.js";import{runTurnLoop as vS,createCallRunner as GS,roundCap as BS,withToolSystem as KS,describeCall as HS,stepResultText as wS,addUsage as VS,normalizeUsage as XS,openAiTranscript as WS,anthropicTranscript as JS,DEFAULT_MAX_ROUNDS as YS,DEFAULT_MAX_FINISH_TRIES as zS,FINISH_NUDGES as jS,LOOPING_NUDGE as QS,EXHAUSTED_NOTE as qS,ROUND_SEPARATOR as ZS}from"./turn-loop.js";import{createResultStore as eE,shieldToolResult as rE,runResultQuery as oE,withResultShield as tE,describeShape as aE,compactValue as iE,resultToolSpec as nE,RESULT_TOOL_NAME as sE,DEFAULT_SHIELD as SE,DEFAULT_STORE as EE}from"./tool-result.js";import{findTools as TE,findToolsResult as mE,findActionArgs as cE,oneLiner as pE,overlapRank as _E,FIND_ACTION as dE}from"./tool-discovery.js";import{buildToolset as RE}from"./toolset.js";import{DESCRIBE_ACTION as OE,actionMenu as IE,buildGroupDispatchSpec as NE,validateAction as uE,makeGroupDispatchExecutor as ME,withGuidance as gE,makeDispatchProvider as CE,estimateTokens as LE}from"./tool-dispatch.js";import{FIND_TOOL_NAME as xE,FIND_DESCRIPTION as DE,FIND_RESIDENT as FE,findDispatchProvider as hE}from"./find-tool.js";import{WEB_SEARCH_TOOL_NAME as kE,WEB_SEARCH_TOOL_SYSTEM as UE,WEB_SEARCH_SPEC as bE,searchResultsToText as vE,webSearchToolProvider as GE}from"./web-search-tool.js";import{compressToolSpec as KE,compressToolSpecs as HE,compressionStats as wE,trimDescription as VE,COMPRESSION_MODES as XE,DEFAULT_COMPRESSION as WE}from"./tool-schema.js";import{validateRecipe as YE,expandRecipe as zE,recipeParams as jE,mapInput as QE,dryRunRecipe as qE,runPlan as ZE,runRecipe as $E,RecipeError as el,RECIPE_MODES as rl}from"./recipe.js";import{recipeToolProvider as tl,recipeToolSpec as al,describeRecipeForApproval as il,RECIPE_TOOL_NAME as nl}from"./recipe-tool.js";import{createBudget as Sl,validateBudget as El,normalizeBudget as ll,usageOf as Tl,BudgetError as ml,BUDGET_DIMENSIONS as cl}from"./budget.js";import{defineTeam as _l,validateTeam as dl,normalizeTeam as Al,normalizeGrants as Rl,grantAllows as fl,scmAllows as Ol,describeRole as Il,TeamError as Nl,ROLE_MODES as ul,MERGE_POLICIES as Ml,PLAN_MODES as gl,GRANTABLE as Cl,WORK_GRANTS as Ll,GRANT_RE as Pl,AGENT_REF_RE as xl,STARTER_TEAMS as Dl,starterTeams as Fl,blankTeam as hl,teamFromForm as yl,slugTeamName as kl}from"./team.js";import{fixedPlan as bl,parsePlan as vl,plannerPrompt as Gl,waves as Bl,breakCycles as Kl,TEAM_PLAN_SCHEMA as Hl}from"./team-plan.js";import{createBoard as Vl,parseFindings as Xl,boardText as Wl,findingsInstruction as Jl,toBriefClaims as Yl,FINDINGS_SCHEMA as zl,FINDING_KINDS as jl,THREAD_KINDS as Ql,THREAD_STATUSES as ql,POST_KINDS as Zl,POST_STATUSES as $l,ASK_TYPES as eT,emptyBoardState as rT,foldBoard as oT,findingsOf as tT}from"./team-board.js";import{boardToolProvider as iT,boardToolSpec as nT,createAnswerBox as sT,withBoardTool as ST,BOARD_TOOL_NAME as ET,DEFAULT_ASK_TIMEOUT_MS as lT}from"./board-tool.js";import{createRunCache as mT,withRunCache as cT}from"./team-cache.js";import{emptyRun as _T,foldRun as dT,runFromEvents as AT,checkpointFrom as RT,isResumable as fT,LIVE_RUN_STATUSES as OT,RESUMABLE_RUN_STATUSES as IT,spendOf as NT,describeSpend as uT,runState as MT,priorWorkFor as gT,STALLED_AFTER_MS as CT}from"./team-record.js";import{validateProject as PT,normalizeProject as xT,defineProject as DT,canTransition as FT,blankProject as hT,projectFromForm as yT,emptyProjectRecord as kT,foldProject as UT,projectProgress as bT,ProjectError as vT,PROJECT_STATUSES as GT,PROJECT_ID_RE as BT}from"./project.js";import{validateJob as HT,normalizeJob as wT,defineJob as VT,canTransition as XT,applyAll as WT,jobToRole as JT,readyJobs as YT,blankJob as zT,jobFromForm as jT,JobError as QT,JOB_STATUSES as qT,JOB_ID_RE as ZT}from"./job.js";import{validateGate as em,normalizeGate as rm,effectiveGate as om,gateAllows as tm,DEFAULT_GATE as am,AUTONOMY as im,HUMAN_FLAGS as nm,CHECKS as sm}from"./gate.js";import{runProject as Em,roundJobs as lm,teamForRound as Tm,jobResults as mm,roundBudget as cm,parseJobs as pm,parseReview as _m,jobsPrompt as dm,reviewPrompt as Am,PROJECT_JOBS_SCHEMA as Rm,PROJECT_REVIEW_SCHEMA as fm,ProjectRunError as Om,EXECUTIVE as Im,MAX_JOBS_PER_ROUND as Nm,MAX_ROUNDS as um,PROJECT_RUN_STATUSES as Mm}from"./project-run.js";import{canonical as Cm,sha256 as Lm,makeEntry as Pm,verifyChain as xm,attest as Dm,verifyAttested as Fm,summarize as hm,fit as ym,adjustSummary as km,normalizeEngine as Um,engineKey as bm,normalizeScm as vm,SCORECARD_ENTRY_KINDS as Gm,ROLE_KINDS as Bm,SCORECARD_VERSION as Km,ENGINE_KINDS as Hm}from"./scorecard.js";import{ENGINE_KINDS as Vm,ROUTE_PREFERS as Xm,normalizePolicy as Wm,normalizeEngineSpec as Jm,validateEngineSpec as Ym,engineRef as zm,engineKeyOf as jm,describeEngine as Qm,tierOf as qm}from"./engine.js";import{AGENT_ID_RE as $m,APPLIES_TO as ec,EGRESS_CLASSES as rc,ASSISTANT_ID as oc,AgentError as tc,validateAgent as ac,normalizeAgent as ic,defineAgent as nc,assistantAgent as sc,engineOf as Sc,describeAgent as Ec,slugAgentId as lc,resolveTeam as Tc,STARTER_AGENTS as mc,starterAgents as cc,blankAgent as pc,agentFromForm as _c,poolFor as dc}from"./agent.js";import{LEDGER_VERSION as Rc,LEDGER_ENTRY_KINDS as fc,DECLINE_REASONS as Oc,WITHDRAW_AFTER as Ic,ledgerKey as Nc,normalizeCall as uc,makeLedgerEntry as Mc,summarizeEngine as gc}from"./model-ledger.js";import{RECRUIT_SCHEMA as Lc,MIN_FIT as Pc,engineRow as xc,engineRows as Dc,needForJob as Fc,routeFor as hc,engineWorth as yc,applications as kc,evaluatorPrompt as Uc,parseEvaluation as bc,decide as vc,recruitForRun as Gc,proposalFromNeeds as Bc,proposalToAgent as Kc,carveBudget as Hc,recruitEvents as wc,recruitJob as Vc}from"./recruit.js";import{DEFAULT_MIN_CALLS as Wc,cardOverride as Jc,applyCard as Yc}from"./model-candidates.js";import{SCM_KINDS as jc,validateConnection as Qc,normalizeConnection as qc,parseRemote as Zc,connectionFor as $c,branchFor as ep,worktreeDirFor as rp,credentialEnv as op,describeConnection as tp,blankConnection as ap,connectionFromForm as ip}from"./scm-connection.js";import{messagesFor as sp,mergeTranscript as Sp,clipTranscript as Ep,clipMessage as lp,newSteps as Tp,continuationNote as mp,createControl as cp,STEP_MAX_CHARS as pp,TASK_TRANSCRIPT_MAX_CHARS as _p}from"./team-task.js";import{runTeam as Ap,resumeTeam as Rp,dryRunTeam as fp,isModelUnavailable as Op,TeamRunError as Ip,RUN_STATUSES as Np}from"./team-run.js";import{teamToolProvider as Mp,teamToolSpec as gp,teamToolTimeoutMs as Cp,describeTeamForApproval as Lp,TEAM_TOOL_NAME as Pp}from"./team-tool.js";import{workLogFor as Dp,workLogText as Fp,workLogEvidence as hp,describeCall as yp,WORKLOG_KINDS as kp}from"./team-worklog.js";import{normalizeRequest as bp,subtaskFromRequest as vp,takeUp as Gp,takeUpLine as Bp,holdsGrants as Kp,jobFromSubtask as Hp,extendDependents as wp,taskTree as Vp,threadRows as Xp,MAX_SUBTASKS as Wp,MAX_DEPTH as Jp,MIN_TAKEUP_FIT as Yp}from"./team-subtask.js";import{teamLine as jp,teamLanes as Qp}from"./team-trail.js";import{promoteRoles as Zp,starterTeam as $p,missingStarters as e_,teamHealth as r_,teamShape as o_,describeTeamShape as t_,whereItWorks as a_,rosterRows as i_,agentKind as n_,agentHue as s_,agentColor as S_,agentInitials as E_,roleCardId as l_,cardNumbers as T_,upsertAgents as m_,soloTeam as c_,teamsWithSolos as p_,builtinOrg as __,isBuiltin as d_,grantChoices as A_,grantsFromChoices as R_,skillChoices as f_,GRANT_INFO as O_,SOLO_BUDGET as I_,TEAM_SHAPES as N_,ROSTER_KINDS as u_}from"./team-org.js";import{observeInbox as g_,observeStrip as C_,runLanes as L_,spendRows as P_,engineStrip as x_}from"./team-observe.js";import{mcpDispatchProvider as F_,MCP_TOOL_NAME as h_}from"./mcp-dispatch.js";import{createManifest as k_,ManifestError as U_,SOURCES as b_}from"./manifest.js";import{createKernel as G_,meetDecisions as B_,KernelError as K_,REQUIRED_PLUGINS as H_,ALLOW_ALL as w_}from"./kernel.js";import{replay as X_,formatReport as W_,parseJsonl as J_,toJsonl as Y_}from"./harness.js";import{compileQuery as j_,findMatches as Q_,matchIndexFor as q_,expandReplacement as Z_,replaceMatch as $_,replaceAll as ed,replaceAllInRange as rd,MAX_MATCHES as od}from"./text-search.js";import{DATA_SCOPES as ad}from"./scopes.js";import{MEMORY_VERSION as nd,MEMORY_KINDS as sd,MEMORY_KIND_NAMES as Sd,AMBIENT_KINDS as Ed,MAX_MEMORY_CHARS as ld,MIN_MEMORY_CHARS as Td,DEFAULT_MAX_MEMORIES as md,DEFAULT_BLOCK_CHARS as cd,SAME_FACT as pd,MEMORY_TOOL_SPEC as _d,MEMORY_UPCASTERS as dd,MemoryError as Ad,normalizeMemory as Rd,isValidMemory as fd,memoryKey as Od,slotOf as Id,similarity as Nd,containment as ud,candidatesFrom as Md,reconcile as gd,matchForForget as Cd,recall as Ld,memoryBlock as Pd,markUsed as xd,pruneMemories as Dd,memoryToolSystem as Fd,upcastMemory as hd}from"./memory.js";import{SOURCE_TRUST as kd,SkillSourceError as Ud,defineSkillSource as bd,createSkillSourceRegistry as vd}from"./skill-sources.js";import{SKILL_MANIFEST_VERSION as Bd,SKILL_CONTEXTS as Kd,SKILL_HISTORY_SCOPES as Hd,SKILL_MCP_MODES as wd,SKILL_TRUST as Vd,SKILL_FILE_KINDS as Xd,SKILL_UPCASTERS as Wd,SkillManifestError as Jd,isSafeSkillPath as Yd,originOf as zd,trustOf as jd,skillFiles as Qd,needsBridge as qd,declaredAccess as Zd,originLabel as $d,sameSkillOrigin as eA,skillIsStale as rA,validateSkill as oA,upcastSkill as tA,upcastSkills as aA,normalizeSkill as iA}from"./skill-manifest.js";import{SKILL_VARS as sA,SKILL_VAR_NAMES as SA,skillVar as EA,skillVarPattern as lA,parseSkillVars as TA,lintSkillPrompt as mA,suggestSkillVar as cA,substituteSkillVars as pA,expandSkillPrompt as _A,skillVarGuidance as dA,SkillVarError as AA}from"./skill-vars.js";import{lineAt as fA,writerAffordance as OA,INSTRUCTION_RE as IA,instructionOnLine as NA,GOAL_MIN_NEW as uA,goalDraftAllowed as MA,createSpendMeter as gA,writerTail as CA,draftSeparator as LA,groundingBlock as PA,writerRequest as xA,AUTOCOMPLETE_SYSTEM as DA,AUTOCOMPLETE_MAX_TOKENS as FA,AUTOCOMPLETE_TEMPERATURE as hA,clipCompletion as yA,GEARS as kA,WRITER_PREFS as UA,WRITER_PREF_DEFAULTS as bA,normalizeWriterPrefs as vA,normalizeIntent as GA}from"./cowriter-writer.js";import{SLASH_TYPING_RE as KA,enabledSkills as HA,slashCommandItems as wA,matchSlashSkill as VA,matchSlashRecipe as XA,recipeInvocationText as WA,matchSlashTeam as JA,teamInvocationText as YA,slashCommandInsert as zA,skillInvocationOf as jA,skillInvocationLabel as QA}from"./slash-commands.js";import{outlineOf as ZA,parseListItem as $A,continueList as eR,indentSelection as rR,toggleWrap as oR,toggleLinePrefix as tR,toggleTask as aR,toggleLink as iR,docStats as nR,selectionStats as sR}from"./markdown-authoring.js";import{MAX_TAG_LENGTH as ER,MAX_TAGS as lR,normalizeTag as TR,normalizeTags as mR,hasTag as cR,addTag as pR,removeTag as _R,toggleTag as dR,sameTags as AR,formatTag as RR,parseTagQuery as fR,hasTagTerms as OR,formatTagQuery as IR,matchesTagFilter as NR,filterByTags as uR,tagFacets as MR,suggestExistingTags as gR,tagsSearchText as CR}from"./tags.js";import{UNTITLED_MEETING as PR,MAX_TITLE_LENGTH as xR,TITLE_RULES_VERSION as DR,cleanTitle as FR,isGenericTitle as hR,titleFromSummary as yR,titleFromTopics as kR,titleFromParticipants as UR,titleFromDate as bR,deriveMeetingTitle as vR,shouldAutoTitle as GR,isBetterTitleSource as BR,meetingTitlePrompt as KR,parseTitleResponse as HR}from"./titles.js";import{RECORD_KINDS as VR,MAX_TITLE_LEN as XR,LibraryError as WR,parseRecordId as JR,makeRecordId as YR,isRecordId as zR,normalizeStoredRecord as jR,isValidStoredRecord as QR,toSearchRecord as qR,searchTextFor as ZR,toIndexEntry as $R,deriveTitle as ef,snippetOf as rf,wordCount as of}from"./library.js";import{CLOCK_TOLERANCE_MS as af,SyncError as nf,stampOf as sf,decide as Sf,planSync as Ef,isSettled as lf,forkConflict as Tf,advanceBases as mf}from"./sync-plan.js";import{ENCRYPTED_TYPE as pf,COMPRESSIONS as _f,BackupError as df,KDF_ITERATIONS as Af,encryptBackup as Rf,decryptBackup as ff,isEncryptedBackup as Of,identityCodec as If,streamCodec as Nf,nodeCodec as uf,bestCodec as Mf}from"./backup-envelope.js";import{OMNI_MODES as Cf,OMNI_GRAMMAR as Lf,parseOmni as Pf,extractFilters as xf,resolveSince as Df,wantsModel as Ff,isActionable as hf}from"./omni.js";import{THEMES as kf,LIGHT as Uf,DARK as bf,PALETTES as vf,SHAPE as Gf,TOKEN_NAMES as Bf,TOKEN_ROLES as Kf,paletteFor as Hf,cssVarName as wf,toCssVars as Vf,themeStylesheet as Xf,resolveTheme as Wf}from"./theme.js";import{PLANS as Yf,API_BASE as zf,ENDPOINTS as jf,ENTITLEMENT_PUBLIC_JWK as Qf,UPGRADE_URL as qf,FEATURE_TIER as Zf,PRO_FEATURES as $f,TEAM_FEATURES as eO,FREE_LIMITS as rO,COUNTED as oO,freeCap as tO,observeSince as aO,RECHECK_INTERVAL_MS as iO,EntitlementError as nO,checkoutUrl as sO,planOf as SO,planLabel as EO,isPro as lO,isTeam as TO,can as mO,tierFor as cO,withinFreeLimit as pO,verifyEntitlement as _O,verifySignedToken as dO,licenseFromPayload as AO,needsRecheck as RO}from"./entitlement.js";import{renderMarkdown as OO,defaultLinkPolicy as IO}from"./markdown-render.js";import{parseMeetingText as uO,speakerStats as MO,densityRibbon as gO}from"./meeting-text.js";import{speakerBreakdown as LO,speakerTimeline as PO,formatTalkTime as xO,SPEAKER_SLOTS as DO}from"./meeting-shape.js";import{isSpeakerImageValue as hO,speakerLabeller as yO}from"./meeting-shape.js";import{SORT_MODES as UO,SORT_LABELS as bO,sortStamp as vO,sortRecords as GO,filterRecords as BO,dayBucket as KO,rowTime as HO,groupRecords as wO}from"./record-list.js";import{INSIGHT_KINDS as XO,summarySections as WO,insightKindOf as JO,meetingInsights as YO,hasInsights as zO}from"./meeting-insights.js";import{demd as QO,NOTE_SECTIONS as qO,noteSectionKind as ZO,MOMENT_BADGES as $O,momentBadge as eI,parseMeetingNotes as rI,groupActionsByOwner as oI}from"./meeting-insights.js";import{PREF_SECTIONS as aI,PREF_SECTION_IDS as iI,sectionValue as nI,pickSections as sI,applySections as SI,sectionHash as EI,mergeStamped as lI,changedSections as TI}from"./client-prefs.js";import{McpClient as cI,mcpProvider as pI}from"./mcp-client.js";import{mcpSharedSystem as dI,mcpInventorySystem as AI,sourceCitationSystem as RI,combineSystemPrompt as fI,toolStatus as OI,widgetAuthoringSystem as II,vaultWidgetSystem as NI,wantsVaultGuidance as uI}from"./tool-hints.js";import{adaptiveToolRetryHint as gI,createAdaptiveToolPolicy as CI,isInvalidToolParametersResult as LI}from"./adaptive-tool-policy.js";import{getMcpProviders as xI,testMcpServer as DI,resetMcp as FI,mcpBackoff as hI}from"./mcp-manager.js";import{SIDELINE_COMMANDS as kI,BRINGBACK_COMMAND as UI,THREAD_TOOL_NAME as bI,SIDELINE_SLASH_ITEMS as vI,THREAD_TOOL_SPEC as GI,parseSideline as BI,parseBringBack as KI,resolveSidelineTarget as HI,threadManifest as wI,threadToolProvider as VI,readThread as XI,briefPrompt as WI,foldBackNote as JI,foldNotes as YI,nextSidelineIndex as zI,sourceOf as jI,noteUnits as QI,sidelinePath as qI,foldBackFor as ZI,SIDELINE_TOOL_NAME as $I,SIDELINE_TOOL_SPEC as eN,sidelineToolProvider as rN}from"./sideline.js";import{WEATHER_TOOL_NAME as tN,WEATHER_TOOL_SYSTEM as aN,weatherToolProvider as iN}from"./weather-tool.js";import{renderContent as sN,toChatMessages as SN,toMultimodalMessages as EN,imageAttachmentsOf as lN,deferAttachedSources as TN,withSourceTool as mN,SOURCE_TOOL_SPEC as cN}from"./context-attachments.js";import{PolicyError as _N,POLICY_VERSION as dN,POLICY_TOKEN_TYPE as AN,REDACTION_TIERS as RN,LOCKABLE as fN,FEATURES as ON,PERMISSION_MODES as IN,PRODUCT_HOSTS as NN,normalizeOrgPolicy as uN,endpointAllowed as MN,modelAllowed as gN,agentAllowed as CN,permissionMode as LN,routeAllowed as PN,redactionTier as xN,egressAllowed as DN,settingLocked as FN,featureEnabled as hN,applyPolicyToSettings as yN,policyLabel as kN,policyHash as UN,verifyPolicyToken as bN,globToRegExp as vN}from"./policy.js";export{ta as ACCESS_LOG_MAX,oa as ACCESS_LOG_VERSION,i as ACTOR_KINDS,$m as AGENT_ID_RE,xl as AGENT_REF_RE,w_ as ALLOW_ALL,a as ALL_TYPES,Ed as AMBIENT_KINDS,zf as API_BASE,ec as APPLIES_TO,eT as ASK_TYPES,oc as ASSISTANT_ID,FA as AUTOCOMPLETE_MAX_TOKENS,DA as AUTOCOMPLETE_SYSTEM,hA as AUTOCOMPLETE_TEMPERATURE,im as AUTONOMY,_a as AdapterError,tc as AgentError,On as AnalyzerError,Af as BACKUP_KDF_ITERATIONS,ET as BOARD_TOOL_NAME,bo as BRIEF_STATES,UI as BRINGBACK_COMMAND,cl as BUDGET_DIMENSIONS,en as BUILTIN_TRIGGERS,Kn as BUILTIN_VOICE_INTENTS,df as BackupError,ml as BudgetError,fn as CADENCES,sm as CHECKS,vo as CLAIM_KINDS,s as CLASSES,af as CLOCK_TOLERANCE_MS,_f as COMPRESSIONS,XE as COMPRESSION_MODES,uS as COOLDOWN_MS,oO as COUNTED,ke as COWRITER_SYSTEM,Ue as COWRITER_TEMPERATURE,o as CURRENT_VERSION,bf as DARK,ad as DATA_SCOPES,Mn as DAYPART_HOUR,Oc as DECLINE_REASONS,lT as DEFAULT_ASK_TIMEOUT_MS,cd as DEFAULT_BLOCK_CHARS,WE as DEFAULT_COMPRESSION,am as DEFAULT_GATE,mi as DEFAULT_INTERNAL_PATTERNS,ui as DEFAULT_LOCK_MS,zS as DEFAULT_MAX_FINISH_TRIES,md as DEFAULT_MAX_MEMORIES,YS as DEFAULT_MAX_ROUNDS,Wc as DEFAULT_MIN_CALLS,SE as DEFAULT_SHIELD,EE as DEFAULT_STORE,Ro as DEFAULT_THRESHOLD,Nn as DEFAULT_WAKE,OE as DESCRIBE_ACTION,S as EFFECTS,E as EGRESS,rc as EGRESS_CLASSES,pf as ENCRYPTED_TYPE,jf as ENDPOINTS,hr as ENGINE_KINDS,Vm as ENGINE_SPEC_KINDS,fs as ENTITIES_SCHEMA,Qf as ENTITLEMENT_PUBLIC_JWK,Rs as ENTITY_TYPES,La as ENTRY_KINDS,t as EVENT_TYPES,Im as EXECUTIVE,qS as EXHAUSTED_NOTE,nO as EntitlementError,l as EventError,Qa as FAILOVER_CAPABILITY_GAP,ja as FAILOVER_CLASS_GAP,xS as FAILOVER_MAX_ATTEMPTS,ON as FEATURES,Zf as FEATURE_TIER,ys as FIELD_TYPES,zl as FINDINGS_SCHEMA,jl as FINDING_KINDS,dE as FIND_ACTION,DE as FIND_DESCRIPTION,FE as FIND_RESIDENT,xE as FIND_TOOL_NAME,jS as FINISH_NUDGES,rO as FREE_LIMITS,kA as GEARS,uA as GOAL_MIN_NEW,Cl as GRANTABLE,O_ as GRANT_INFO,Pl as GRANT_RE,nm as HUMAN_FLAGS,fS as INPUT_PROGRESS_TOOLS,XO as INSIGHT_KINDS,IA as INSTRUCTION_RE,ci as INTERNAL_PATTERN_CATALOG,Or as INVARIANTS,Wi as JOB_ACTIONS,ZT as JOB_POST_ID_RE,qT as JOB_POST_STATUSES,QT as JobPostError,Ni as KDF_HASH,Ii as KDF_ITERATIONS,K_ as KernelError,fc as LEDGER_ENTRY_KINDS,Rc as LEDGER_VERSION,Uf as LIGHT,OT as LIVE_RUN_STATUSES,fN as LOCKABLE,QS as LOOPING_NUDGE,ba as LOOP_KINDS,WR as LibraryError,va as LoopError,Ho as MAX_BRIEF_CHARS,Ko as MAX_BRIEF_RECORDS,Go as MAX_CLAIMS,Bo as MAX_CLAIM_REFS,un as MAX_COMMANDS_PER_DELTA,Jp as MAX_DEPTH,Pi as MAX_ENTRIES,at as MAX_EXCERPTS,it as MAX_EXCERPT_CHARS,ue as MAX_GRAPH_NODES,Nm as MAX_JOBS_PER_ROUND,od as MAX_MATCHES,ld as MAX_MEMORY_CHARS,Ci as MAX_NOTE_CHARS,um as MAX_ROUNDS,Li as MAX_SECRET_CHARS,fo as MAX_SUBJECTS,Oo as MAX_SUBJECT_CHARS,Wp as MAX_SUBTASKS,gs as MAX_SUGGESTIONS,Cs as MAX_SUGGESTION_CHARS,tt as MAX_SYNTHESIS_CLAIMS,lR as MAX_TAGS,ER as MAX_TAG_LENGTH,gi as MAX_TITLE_CHARS,XR as MAX_TITLE_LEN,xR as MAX_TITLE_LENGTH,Ss as MAX_TOPICS,Es as MAX_TOPIC_CHARS,h_ as MCP_TOOL_NAME,sd as MEMORY_KINDS,Sd as MEMORY_KIND_NAMES,_d as MEMORY_TOOL_SPEC,dd as MEMORY_UPCASTERS,nd as MEMORY_VERSION,Ml as MERGE_POLICIES,Pc as MIN_FIT,Td as MIN_MEMORY_CHARS,Yp as MIN_TAKEUP_FIT,Ji as MISSED_POLICIES,$O as MOMENT_BADGES,U_ as ManifestError,cI as McpClient,Ad as MemoryError,Dt as NEAR_TITLE_DISTANCE,b as NOTE_ACTIONS,B as NOTE_ACTION_ERRORS,v as NOTE_ACTION_ORDER,G as NOTE_ACTION_TEMPERATURE,K as NOTE_COMMANDS,w as NOTE_COMMAND_MAX_TOKENS,H as NOTE_COMMAND_TEMPERATURE,qO as NOTE_SECTIONS,RS as OBSERVATION_TOOLS,Lf as OMNI_GRAMMAR,Cf as OMNI_MODES,vf as PALETTES,sS as PARALLEL_LOCAL_RE,yt as PDF_MAX_CHARS,IN as PERMISSION_MODES,Yf as PLANS,Je as PLAN_AUTHORS,ze as PLAN_DECOMPOSE_MAX_TOKENS,Ye as PLAN_DECOMPOSE_SYSTEM,je as PLAN_DECOMPOSE_TEMPERATURE,gl as PLAN_MODES,We as PLAN_ROLES,Qe as PLAN_SECTION_MAX_TOKENS,qe as PLAN_SECTION_TEMPERATURE,AN as POLICY_TOKEN_TYPE,dN as POLICY_VERSION,Zl as POST_KINDS,$l as POST_STATUSES,aI as PREF_SECTIONS,iI as PREF_SECTION_IDS,NN as PRODUCT_HOSTS,BT as PROJECT_ID_RE,Rm as PROJECT_JOBS_SCHEMA,fm as PROJECT_REVIEW_SCHEMA,Mm as PROJECT_RUN_STATUSES,GT as PROJECT_STATUSES,st as PROPOSAL_STATES,$f as PRO_FEATURES,_N as PolicyError,vT as ProjectError,Om as ProjectRunError,ir as REACH,iO as RECHECK_INTERVAL_MS,rl as RECIPE_MODES,nl as RECIPE_TOOL_NAME,Hm as RECORD_ENGINE_KINDS,VR as RECORD_KINDS,Lc as RECRUIT_SCHEMA,RN as REDACTION_TIERS,xo as REDACTION_TOKEN_TYPES,Jn as REFINEMENT_SCHEMA,_ as REF_KINDS,Lr as REGISTRY_STATES,H_ as REQUIRED_PLUGINS,d as RESOLUTION,ks as RESPONSE_MODES,_e as RESULTS_PER_ENGINE,sE as RESULT_TOOL_NAME,IT as RESUMABLE_RUN_STATUSES,Oa as RETRIEVAL_TOOLS,Bm as ROLE_KINDS,ul as ROLE_MODES,u_ as ROSTER_KINDS,ZS as ROUND_SEPARATOR,Xm as ROUTE_PREFERS,Np as RUN_STATUSES,el as RecipeError,Za as RouterError,Ri as RuleError,pd as SAME_FACT,Vi as SCHEDULE_KINDS,jc as SCM_KINDS,n as SCOPE_KINDS,Gm as SCORECARD_ENTRY_KINDS,Km as SCORECARD_VERSION,pe as SEARCH_ENGINES,Fo as SELF_LABELS,Gf as SHAPE,kI as SIDELINE_COMMANDS,vI as SIDELINE_SLASH_ITEMS,$I as SIDELINE_TOOL_NAME,eN as SIDELINE_TOOL_SPEC,Kd as SKILL_CONTEXTS,Xd as SKILL_FILE_KINDS,Hd as SKILL_HISTORY_SCOPES,Bd as SKILL_MANIFEST_VERSION,wd as SKILL_MCP_MODES,Vd as SKILL_TRUST,Wd as SKILL_UPCASTERS,sA as SKILL_VARS,SA as SKILL_VAR_NAMES,KA as SLASH_TYPING_RE,I_ as SOLO_BUDGET,bO as SORT_LABELS,UO as SORT_MODES,b_ as SOURCES,cN as SOURCE_TOOL_SPEC,kd as SOURCE_TRUST,Ft as SPAN_MIN_TERMS,DO as SPEAKER_SLOTS,CT as STALLED_AFTER_MS,mc as STARTER_AGENTS,Dl as STARTER_TEAMS,pp as STEP_MAX_CHARS,Ao as SUBJECT_KINDS,Ls as SUGGESTIONS_SCHEMA,St as SUPERSEDE_OVERLAP,Ai as SUPPRESSED,se as SWARM_ROLES,et as SYNTHESIS_SCHEMA,Yi as ScheduleError,yr as SearchEngineError,Jd as SkillManifestError,Ud as SkillSourceError,AA as SkillVarError,Us as StructuredError,nf as SyncError,_p as TASK_TRANSCRIPT_MAX_CHARS,eO as TEAM_FEATURES,Hl as TEAM_PLAN_SCHEMA,N_ as TEAM_SHAPES,Pp as TEAM_TOOL_NAME,kf as THEMES,Ql as THREAD_KINDS,ql as THREAD_STATUSES,bI as THREAD_TOOL_NAME,GI as THREAD_TOOL_SPEC,DR as TITLE_RULES_VERSION,Bf as TOKEN_NAMES,Kf as TOKEN_ROLES,ls as TOPICS_SCHEMA,wt as TRANSCRIPT_MAX_CHARS,Xi as TRIGGER_KINDS,Nl as TeamError,Ip as TeamRunError,Yr as ToolGroupError,MS as UNAVAILABLE_REASONS,PR as UNTITLED_MEETING,Er as UPCASTERS,qf as UPGRADE_URL,ns as UTTERANCE_DANGLING_MS,is as UTTERANCE_SETTLE_MS,Oi as VAULT_VERSION,Mi as VaultError,gn as VoiceIntentError,Hr as WEATHER_HOST,wr as WEATHER_TIMEOUT_MS,tN as WEATHER_TOOL_NAME,aN as WEATHER_TOOL_SYSTEM,bE as WEB_SEARCH_SPEC,kE as WEB_SEARCH_TOOL_NAME,UE as WEB_SEARCH_TOOL_SYSTEM,lo as WIDGET_SURFACES,Ic as WITHDRAW_AFTER,kp as WORKLOG_KINDS,Ll as WORK_GRANTS,UA as WRITER_PREFS,bA as WRITER_PREF_DEFAULTS,Vr as WeatherError,Ht as YOUTUBE_HOSTS,lt as accept,IE as actionMenu,gI as adaptiveToolRetryHint,pR as addTag,VS as addUsage,km as adjustSummary,mf as advanceBases,CN as agentAllowed,S_ as agentColor,_c as agentFromForm,s_ as agentHue,E_ as agentInitials,n_ as agentKind,q as agentMentionAt,go as aliasMap,JS as anthropicTranscript,WT as applyAll,Yc as applyCard,ye as applyEdits,yN as applyPolicyToSettings,SI as applySections,Te as appoint,Br as areaLabel,sc as assistantAgent,Fr as attemptOrder,Dm as attest,eS as bareToolName,Mf as bestCodec,pc as blankAgent,ap as blankConnection,zT as blankJobPost,hT as blankProject,hl as blankTeam,AS as blockedToolResult,Wl as boardText,iT as boardToolProvider,nT as boardToolSpec,ep as branchFor,Kl as breakCycles,Vo as briefId,Jo as briefLinks,WI as briefPrompt,Wo as briefTerms,Xo as briefToText,NE as buildGroupDispatchSpec,Me as buildNoteGraph,Bt as buildPdfDocument,de as buildSearchUrl,RE as buildToolset,Na as buildTrajectory,$t as buildTranscriptDocument,__ as builtinOrg,mO as can,Bi as canAddEntry,XT as canJobPostTransition,FT as canProjectTransition,rS as canRunConcurrently,_r as canSatisfy,Md as candidatesFrom,Cm as canonical,Wt as captionTracksFromPlayerResponse,T_ as cardNumbers,Jc as cardOverride,Hc as carveBudget,u as causesAreWellFormed,TI as changedSections,fr as checkInvariants,Yo as checkKnowledgeInvariants,sO as checkoutUrl,RT as checkpointFrom,ot as claimsFromSynthesis,IS as classifyFailure,Ee as classifyModel,ni as classifySource,FR as cleanTitle,yA as clipCompletion,lp as clipMessage,pn as clipText,Ep as clipTranscript,Ws as coerce,us as coerceEntities,fI as combineSystemPrompt,Y as commandLineAt,os as commandLooksFinished,xn as commandsFromSegments,iE as compactValue,N as compareEvents,j_ as compileQuery,Cn as compileWake,KE as compressToolSpec,HE as compressToolSpecs,wE as compressionStats,$c as connectionFor,ip as connectionFromForm,ud as containment,wo as contentHash,mp as continuationNote,eR as continueList,ct as converge,na as createAccessLog,pa as createAdapterRegistry,CI as createAdaptiveToolPolicy,Rn as createAnalyzerRegistry,sT as createAnswerBox,c as createAppender,Mr as createBlobStore,Vl as createBoard,Sl as createBudget,GS as createCallRunner,fa as createCitationCollector,cp as createControl,G_ as createKernel,ur as createLogStore,k_ as createManifest,Nr as createMemoryAdapter,NS as createModelHealth,wa as createModelRouter,Cr as createRegistry,eE as createResultStore,di as createRuleEngine,mT as createRunCache,vd as createSkillSourceRegistry,gA as createSpendMeter,Ys as createStructuredStream,Jr as createToolGroupRegistry,mS as createToolLoopGuard,$i as createTriggerRegistry,ka as createTurnRunner,as as createUtteranceGate,xi as createVault,Gn as createVoiceIntentRegistry,op as credentialEnv,wf as cssVarName,KO as dayBucket,Sf as decide,vc as decideRecruit,Zd as declaredAccess,ff as decryptBackup,IO as defaultLinkPolicy,y as defaultModelId,Bn as defaultVoiceIntents,TN as deferAttachedSources,ca as defineAdapter,nc as defineAgent,ln as defineJob,VT as defineJobPost,Ua as defineLoop,An as defineMeetingAnalyzer,Ka as defineMiddleware,Ba as defineModel,DT as defineProject,Ha as defineRouteStrategy,_i as defineRule,bs as defineSchema,xr as defineSearchEngine,bd as defineSkillSource,_l as defineTeam,Wr as defineToolGroup,Zi as defineTrigger,vn as defineVoiceIntent,QO as demd,gO as densityRibbon,L as dequeue,Qo as deriveBrief,qo as deriveBriefs,Fi as deriveKey,vR as deriveMeetingTitle,ef as deriveTitle,Ec as describeAgent,yp as describeCall,tp as describeConnection,Qm as describeEngine,il as describeRecipeForApproval,Il as describeRole,vs as describeSchema,aE as describeShape,uT as describeSpend,Lp as describeTeamForApproval,t_ as describeTeamShape,HS as describeToolCall,mt as diffProposal,Ca as displayName,nR as docStats,LA as draftSeparator,Zo as driftedRefs,qE as dryRunRecipe,fp as dryRunTeam,Tn as dueJobs,ut as duplicateTitles,Lo as earnsBrief,bn as editDistance,he as editKey,om as effectiveGate,So as effectiveGrants,iS as effectiveToolName,ge as egoGraph,DN as egressAllowed,rT as emptyBoardState,kT as emptyProjectRecord,_T as emptyRun,HA as enabledSkills,Rf as encryptBackup,MN as endpointAllowed,bm as engineKey,jm as engineKeyOf,Sc as engineOf,Ie as engineOrder,zm as engineRef,xc as engineRow,Dc as engineRows,x_ as engineStrip,yc as engineWorth,Is as entitiesFormat,Os as entitiesPrompt,Ms as entitiesStream,Ui as entryMeta,LE as estimateTokens,Uc as evaluatorPrompt,zE as expandRecipe,Z_ as expandReplacement,_A as expandSkillPrompt,js as explainMcpError,wp as extendDependents,xf as extractFilters,si as extractUrls,PS as failoverExhausted,Ya as failoverOrder,hN as featureEnabled,uR as filterByTags,ga as filterEntries,J as filterNoteActions,BO as filterRecords,h as filterSections,Fe as filterTypoEdits,cE as findActionArgs,hE as findDispatchProvider,Hs as findJson,Q_ as findMatches,ee as findSkillByName,re as findTargetByName,TE as findTools,mE as findToolsResult,Ln as findWakeCommand,Jl as findingsInstruction,tT as findingsOf,ym as fit,bl as fixedPlan,ZI as foldBackFor,JI as foldBackNote,oT as foldBoard,YI as foldNotes,UT as foldProject,dT as foldRun,Tf as forkConflict,Sa as formatBytes,W_ as formatReport,xt as formatSurvey,RR as formatTag,IR as formatTagQuery,xO as formatTalkTime,qt as formatTimestamp,Zt as formatTranscript,Gr as formatWeather,V as frameNoteAction,tO as freeCap,Hi as fromB64,mo as fuseRRF,tm as gateAllows,xI as getMcpProviders,Ur as getWeather,rs as gistOpening,es as gistText,vN as globToRegExp,MA as goalDraftAllowed,fl as grantAllows,A_ as grantChoices,R_ as grantsFromChoices,Qr as grantsNeededFor,Le as graphStats,PA as groundingBlock,oI as groupActionsByOwner,F as groupModels,wO as groupRecords,Qt as groupSegments,zO as hasInsights,cR as hasTag,OR as hasTagTerms,Kp as holdsGrants,Si as hostMatches,If as identityCodec,lN as imageAttachmentsOf,rR as indentSelection,JO as insightKindOf,NA as instructionOnLine,hf as isActionable,Kr as isAmbiguousLocation,BR as isBetterTitleSource,d_ as isBuiltin,oS as isCacheable,Of as isEncryptedBackup,$n as isFillerSentence,hR as isGenericTitle,LI as isInvalidToolParametersResult,vi as isLocked,dS as isLoopableTool,Op as isModelUnavailable,Xs as isNothing,lO as isPro,C as isQueued,zR as isRecordId,Do as isRedactionToken,R as isRef,Re as isResultHost,fT as isResumable,Yd as isSafeSkillPath,ho as isSelfLabel,lf as isSettled,kS as isSourceGateError,hO as isSpeakerImageValue,qs as isStaleMcpSession,Mo as isSubjectCandidate,TO as isTeam,m as isValidEvent,fd as isValidMemory,QR as isValidStoredRecord,Xt as isYouTubeUrl,kc as jobApplications,Hp as jobFromSubtask,jT as jobPostFromForm,mm as jobResults,JT as jobToRole,mn as jobsForEvent,dm as jobsPrompt,Ma as lanesOf,$r as layoutFlowchart,Nc as ledgerKey,AO as licenseFromPayload,fA as lineAt,I as linearize,kt as linesFromItems,pt as linkClaims,Aa as linkifyCitations,mA as lintSkillPrompt,xe as lintText,Gi as lockedSummary,Gt as looksScanned,ia as makeAccessEvent,CE as makeDispatchProvider,Pm as makeEntry,ME as makeGroupDispatchExecutor,Mc as makeLedgerEntry,YR as makeRecordId,A as makeRef,ei as makeSourceStore,sa as makeStorageTier,ri as manifestText,QE as mapInput,xd as markUsed,Cd as matchForForget,q_ as matchIndexFor,XA as matchSlashRecipe,VA as matchSlashSkill,JA as matchSlashTeam,_n as matchSummary,NR as matchesTagFilter,hI as mcpBackoff,F_ as mcpDispatchProvider,AI as mcpInventorySystem,pI as mcpProvider,dI as mcpSharedSystem,B_ as meetDecisions,Ei as meetReach,tn as meetingEndedTrigger,YO as meetingInsights,on as meetingStartedTrigger,KR as meetingTitlePrompt,Pd as memoryBlock,Od as memoryKey,Fd as memoryToolSystem,oe as mentionAnswerPrefix,gt as mentionsFrom,Oe as mergeEngineResults,Ve as mergeResearchLanes,$ as mergeSkillPrompt,lI as mergeStamped,Sp as mergeTranscript,sp as messagesFor,e_ as missingStarters,gN as modelAllowed,k as modelSummary,eI as momentBadge,Wn as monitorIntent,P as moveQueued,po as multiSearch,Fc as needForJob,qd as needsBridge,tS as needsConfirmation,RO as needsRecheck,Tp as newSteps,ji as nextFireAt,zI as nextSidelineIndex,qi as nextWakeAt,uf as nodeCodec,gS as normModelName,ic as normalizeAgent,ll as normalizeBudget,uc as normalizeCall,qc as normalizeConnection,Um as normalizeEngine,Jm as normalizeEngineSpec,rm as normalizeGate,Rl as normalizeGrants,GA as normalizeIntent,wT as normalizeJobPost,Rd as normalizeMemory,uN as normalizeOrgPolicy,Wm as normalizePolicy,xT as normalizeProject,dt as normalizeRecord,At as normalizeRecords,bp as normalizeRequest,vm as normalizeScm,iA as normalizeSkill,kn as normalizeSpeech,jR as normalizeStoredRecord,Io as normalizeSubject,TR as normalizeTag,mR as normalizeTags,Al as normalizeTeam,_s as normalizeTopic,ds as normalizeTopics,XS as normalizeUsage,vA as normalizeWriterPrefs,W as noteActionItems,X as noteActionLabel,Xn as noteIntent,ZO as noteSectionKind,QI as noteUnits,g_ as observeInbox,aO as observeSince,C_ as observeStrip,cn as occurrenceKey,Qi as occurrencesBetween,pE as oneLiner,WS as openAiTranscript,yi as openEntry,Ut as orderLines,$d as originLabel,zd as originOf,Nt as orphanRecords,ZA as outlineOf,_E as overlapRank,Qs as packageFromArgs,vt as pageTextFromItems,Hf as paletteFor,bt as paragraphsFromLines,nS as parallelEligible,Q as parseAgentMention,zo as parseBriefText,KI as parseBringBack,Fn as parseClock,Pn as parseCommand,Dn as parseDuration,Ns as parseEntities,bc as parseEvaluation,Xl as parseFindings,Zr as parseFlowchart,pm as parseJobs,J_ as parseJsonl,$A as parseListItem,rI as parseMeetingNotes,uO as parseMeetingText,yn as parseNumberWords,Pf as parseOmni,vl as parsePlan,$e as parsePlanTasks,JR as parseRecordId,jn as parseRefinement,Zc as parseRemote,_m as parseReview,BI as parseSideline,Z as parseSkillMention,TA as parseSkillVars,Js as parseStructured,Ds as parseSuggestions,fR as parseTagQuery,jt as parseTimedText,HR as parseTitleResponse,ps as parseTopics,vr as parseWeather,hn as parseWhen,Vt as parseYouTubeUrl,g as pendingQueue,LN as permissionMode,an as personJoinedTrigger,ua as phasesOf,nn as phraseTrigger,Yt as pickCaptionTrack,fe as pickResults,sI as pickSections,za as pinnedOrderOf,tr as planAttribution,or as planBody,EO as planLabel,SO as planOf,rr as planParts,co as planQueries,Ze as planSectionSystem,Ef as planSync,er as planTitleFor,ES as planToolRound,Gl as plannerPrompt,UN as policyHash,kN as policyLabel,dc as poolFor,Ja as preferenceFor,gT as priorWorkFor,Ta as projectChain,yT as projectFromForm,bT as projectProgress,x as promoteQueued,Zp as promoteRoles,Da as promptEntries,Bc as proposalFromNeeds,Kc as proposalToAgent,Et as propose,Dd as pruneMemories,Sn as questionTrigger,ie as rankLinkTargets,we as rankResearchCards,Po as rankSubjects,nr as reachRank,sr as reachSatisfies,ti as readSource,XI as readThread,YT as readyJobs,Ld as recall,WA as recipeInvocationText,jE as recipeParams,tl as recipeToolProvider,al as recipeToolSpec,gd as reconcile,Dr as reconcileEngines,wc as recruitEvents,Gc as recruitForRun,Vc as recruitJob,aa as redactAccessArgs,ft as redactedTokensIn,Ot as redactionCost,xN as redactionTier,Zn as refineSpokenCommand,zn as refinementFormat,Yn as refinementPrompt,Qn as refinementStream,Tt as reject,wn as reminderIntent,_R as removeTag,sN as renderContent,eo as renderFlowchartSvg,OO as renderMarkdown,Vs as repairJson,ed as replaceAll,rd as replaceAllInRange,$_ as replaceMatch,X_ as replay,Xa as requirementsFor,Wa as requirementsForStep,Be as researchRelevance,He as researchSnippet,FI as resetMcp,f as resolveRef,HI as resolveSidelineTarget,Df as resolveSince,Co as resolveSubjects,Tc as resolveTeam,Wf as resolveTheme,Bs as responseFormat,nE as resultToolSpec,Rp as resumeTeam,Am as reviewPrompt,ws as rewriteJson,Se as roleById,l_ as roleCardId,i_ as rosterRows,cm as roundBudget,BS as roundCap,lm as roundJobs,cS as roundSignature,PN as routeAllowed,hc as routeFor,la as routeGraph,me as routeTeam,HO as rowTime,AT as runFromEvents,L_ as runLanes,ZE as runPlan,Em as runProject,$E as runRecipe,oE as runResultQuery,MT as runState,Ap as runTeam,lS as runToolRound,vS as runTurnLoop,LS as runWithFailover,ve as salientTerms,qa as sameModelKey,eA as sameSkillOrigin,AR as sameTags,ts as sameUtterance,Vn as scheduleIntent,Ol as scmAllows,hi as sealEntry,bi as searchEntries,vE as searchResultsToText,ZR as searchTextFor,EI as sectionHash,nI as sectionValue,sR as selectionStats,FN as settingLocked,qn as settleRefinement,Lm as sha256,rE as shieldToolResult,oi as shortUrl,GR as shouldAutoTitle,qI as sidelinePath,rN as sidelineToolProvider,Va as signalsFrom,Nd as similarity,f_ as skillChoices,Qd as skillFiles,QA as skillInvocationLabel,jA as skillInvocationOf,rA as skillIsStale,EA as skillVar,dA as skillVarGuidance,lA as skillVarPattern,zA as slashCommandInsert,wA as slashCommandItems,Id as slotOf,lc as slugAgentId,kl as slugTeamName,rf as snippetOf,c_ as soloTeam,GO as sortRecords,vO as sortStamp,RI as sourceCitationSystem,yS as sourceGate,hS as sourceGuardFor,ai as sourceId,jI as sourceOf,li as sourcePolicyFor,FS as sourcePolicySettings,Ti as sourceUrlsOf,Ra as sourcesFromToolText,Ct as spanningQuestions,LO as speakerBreakdown,yO as speakerLabeller,MO as speakerStats,PO as speakerTimeline,NT as spendOf,P_ as spendRows,pS as stableToolCallKey,sf as stampOf,cc as starterAgents,$p as starterTeam,Fl as starterTeams,wS as stepResultText,Nf as streamCodec,yo as stripQualifiers,No as subjectKey,uo as subjectTokens,pA as substituteSkillVars,vp as subtaskFromRequest,gR as suggestExistingTags,ko as suggestMerges,cA as suggestSkillVar,xs as suggestionsFormat,Ps as suggestionsPrompt,Fs as suggestionsStream,hm as summarize,gc as summarizeEngine,WO as summarySections,le as supportsSubagents,Lt as surveyCorpus,rt as synthesisPrompt,MR as tagFacets,CR as tagsSearchText,Gp as takeUp,Bp as takeUpLine,Vp as taskTree,Tm as teamForRound,yl as teamFromForm,r_ as teamHealth,YA as teamInvocationText,Qp as teamLanes,jp as teamLine,o_ as teamShape,Mp as teamToolProvider,gp as teamToolSpec,Cp as teamToolTimeoutMs,p_ as teamsWithSolos,DI as testMcpServer,Xf as themeStylesheet,wI as threadManifest,Xp as threadRows,xa as threadTitle,VI as threadToolProvider,ha as threadTree,Pa as threadsOf,Pt as thresholdSweep,cO as tierFor,qm as tierOf,zt as timedTextUrl,Hn as timerIntent,rn as timerTrigger,bR as titleFromDate,UR as titleFromParticipants,yR as titleFromSummary,kR as titleFromTopics,Ki as toB64,Yl as toBriefClaims,SN as toChatMessages,Vf as toCssVars,$R as toIndexEntry,Gs as toJsonSchema,Y_ as toJsonl,dr as toModelSchema,Ar as toModelSchemas,EN as toMultimodalMessages,qR as toSearchRecord,tR as toggleLinePrefix,iR as toggleLink,dR as toggleTag,aR as toggleTask,oR as toggleWrap,Un as tokenize,_S as toolMadeProgress,jr as toolNeedFor,OI as toolStatus,$s as toolTraits,Ge as topicTerms,sn as topicTrigger,cs as topicsFormat,ms as topicsPrompt,Ts as topicsSchema,As as topicsStream,aS as traitsIndex,ea as transcriptFromTracks,z as triggerQueryAt,VE as trimDescription,Ce as trimGraph,jd as trustOf,Fa as turnsOf,Ks as unfence,Di as unlockVault,Ae as unwrapRedirect,lr as upcast,Tr as upcastAll,hd as upcastMemory,tA as upcastSkill,aA as upcastSkills,m_ as upsertAgents,Tl as usageOf,uE as validateAction,ac as validateAgent,El as validateBudget,cr as validateCapability,Qc as validateConnection,Ym as validateEngineSpec,ki as validateEntry,T as validateEvent,em as validateGate,pr as validateInvocation,HT as validateJobPost,PT as validateProject,YE as validateRecipe,zi as validateSchedule,oA as validateSkill,dl as validateTeam,oo as validateView,to as validateViewInvocation,no as validateWidget,so as validateWidgetMessage,NI as vaultWidgetSystem,Fm as verifyAttested,xm as verifyChain,_O as verifyEntitlement,bN as verifyPolicyToken,dO as verifySignedToken,Jt as videoMetaFromPlayerResponse,ao as viewResult,Mt as vocabularyDrift,En as voiceCommandTrigger,It as wantedPages,Ff as wantsModel,uI as wantsVaultGuidance,Bl as waves,iN as weatherToolProvider,br as weatherUrl,Ke as webQuery,GE as webSearchToolProvider,a_ as whereItWorks,II as widgetAuthoringSystem,Eo as widgetIcon,ae as wikiQueryAt,Rt as wikilinksIn,ST as withBoardTool,gE as withGuidance,tE as withResultShield,cT as withRunCache,mN as withSourceTool,KS as withToolSystem,pO as withinFreeLimit,US as withinReach,of as wordCount,De as wordDiff,hp as workLogEvidence,Dp as workLogFor,Fp as workLogText,rp as worktreeDirFor,OA as writerAffordance,xA as writerRequest,CA as writerTail};
1
+ import{CURRENT_VERSION as o,EVENT_TYPES as t,ALL_TYPES as a,ACTOR_KINDS as i,SCOPE_KINDS as n,CLASSES as s,EFFECTS as S,EGRESS as E,EventError as l,validateEvent as T,isValidEvent as m,createAppender as c}from"./event.js";import{REF_KINDS as _,RESOLUTION as A,makeRef as d,isRef as R,resolveRef as f}from"./ref.js";import{linearize as I,compareEvents as N,causesAreWellFormed as u}from"./order.js";import{pendingQueue as g,isQueued as C,dequeue as L,moveQueued as P,promoteQueued as x}from"./queue.js";import{groupModels as F,filterSections as h,defaultModelId as y,modelSummary as k}from"./model-picker.js";import{NOTE_ACTIONS as b,NOTE_ACTION_ORDER as v,NOTE_ACTION_TEMPERATURE as G,NOTE_ACTION_ERRORS as B,NOTE_COMMANDS as K,NOTE_COMMAND_TEMPERATURE as H,NOTE_COMMAND_MAX_TOKENS as w,frameNoteAction as V,noteActionLabel as X,noteActionItems as W,filterNoteActions as J,commandLineAt as Y,triggerQueryAt as z}from"./note-actions.js";import{parseAgentMention as Q,agentMentionAt as q,parseSkillMention as Z,mergeSkillPrompt as $,findSkillByName as ee,findTargetByName as re,mentionAnswerPrefix as oe}from"./note-mentions.js";import{wikiQueryAt as ae,rankLinkTargets as ie}from"./note-links.js";import{SWARM_ROLES as se,roleById as Se,classifyModel as Ee,supportsSubagents as le,appoint as Te,routeTeam as me}from"./cowriter-router.js";import{SEARCH_ENGINES as pe,RESULTS_PER_ENGINE as _e,buildSearchUrl as Ae,unwrapRedirect as de,isResultHost as Re,pickResults as fe,mergeEngineResults as Oe,engineOrder as Ie}from"./web-search.js";import{MAX_GRAPH_NODES as ue,buildNoteGraph as Me,egoGraph as ge,trimGraph as Ce,graphStats as Le}from"./note-graph.js";import{lintText as xe,wordDiff as De,filterTypoEdits as Fe,editKey as he,applyEdits as ye,COWRITER_SYSTEM as ke,COWRITER_TEMPERATURE as Ue}from"./cowriter.js";import{salientTerms as ve,topicTerms as Ge,researchRelevance as Be,webQuery as Ke,researchSnippet as He,rankResearchCards as we,mergeResearchLanes as Ve}from"./note-research.js";import{PLAN_ROLES as We,PLAN_AUTHORS as Je,PLAN_DECOMPOSE_SYSTEM as Ye,PLAN_DECOMPOSE_MAX_TOKENS as ze,PLAN_DECOMPOSE_TEMPERATURE as je,PLAN_SECTION_MAX_TOKENS as Qe,PLAN_SECTION_TEMPERATURE as qe,planSectionSystem as Ze,parsePlanTasks as $e,planTitleFor as er,planParts as rr,planBody as or,planAttribution as tr}from"./note-plan.js";import{REACH as ir,reachRank as nr,reachSatisfies as sr}from"./reach.js";import{UPCASTERS as Er,upcast as lr,upcastAll as Tr}from"./upcast.js";import{validateCapability as cr,validateInvocation as pr,canSatisfy as _r,toModelSchema as Ar,toModelSchemas as dr}from"./capability.js";import{checkInvariants as fr,INVARIANTS as Or}from"./invariants.js";import{createMemoryAdapter as Nr,createLogStore as ur,createBlobStore as Mr}from"./store.js";import{createRegistry as Cr,REGISTRY_STATES as Lr}from"./registry.js";import{defineSearchEngine as xr,reconcileEngines as Dr,attemptOrder as Fr,ENGINE_KINDS as hr,SearchEngineError as yr}from"./search-engines.js";import{getWeather as Ur,weatherUrl as br,parseWeather as vr,formatWeather as Gr,areaLabel as Br,isAmbiguousLocation as Kr,WEATHER_HOST as Hr,WEATHER_TIMEOUT_MS as wr,WeatherError as Vr}from"./weather.js";import{defineToolGroup as Wr,createToolGroupRegistry as Jr,ToolGroupError as Yr}from"./tool-groups.js";import{toolNeedFor as jr,grantsNeededFor as Qr}from"./tool-need.js";import{parseFlowchart as Zr,layoutFlowchart as $r,renderFlowchartSvg as eo}from"./flowchart.js";import{validateView as oo,validateViewInvocation as to,viewResult as ao}from"./view.js";import{validateWidget as no,validateWidgetMessage as so,effectiveGrants as So,widgetIcon as Eo,WIDGET_SURFACES as lo}from"./widget.js";import{fuseRRF as mo,planQueries as co,multiSearch as po}from"./rrf.js";import{SUBJECT_KINDS as Ao,DEFAULT_THRESHOLD as Ro,MAX_SUBJECTS as fo,MAX_SUBJECT_CHARS as Oo,normalizeSubject as Io,subjectKey as No,subjectTokens as uo,isSubjectCandidate as Mo,aliasMap as go,resolveSubjects as Co,earnsBrief as Lo,rankSubjects as Po,REDACTION_TOKEN_TYPES as xo,isRedactionToken as Do,SELF_LABELS as Fo,isSelfLabel as ho,stripQualifiers as yo,suggestMerges as ko}from"./entity.js";import{BRIEF_STATES as bo,CLAIM_KINDS as vo,MAX_CLAIMS as Go,MAX_CLAIM_REFS as Bo,MAX_BRIEF_RECORDS as Ko,MAX_BRIEF_CHARS as Ho,contentHash as wo,briefId as Vo,briefToText as Xo,briefTerms as Wo,briefLinks as Jo,checkKnowledgeInvariants as Yo,parseBriefText as zo}from"./knowledge.js";import{deriveBrief as Qo,deriveBriefs as qo,driftedRefs as Zo}from"./knowledge-derive.js";import{SYNTHESIS_SCHEMA as et,synthesisPrompt as rt,claimsFromSynthesis as ot,MAX_SYNTHESIS_CLAIMS as tt,MAX_EXCERPTS as at,MAX_EXCERPT_CHARS as it}from"./synthesis.js";import{PROPOSAL_STATES as st,SUPERSEDE_OVERLAP as St,propose as Et,accept as lt,reject as Tt,diffProposal as mt,converge as ct,linkClaims as pt}from"./promotion.js";import{normalizeRecord as At,normalizeRecords as dt,wikilinksIn as Rt,redactedTokensIn as ft,redactionCost as Ot,wantedPages as It,orphanRecords as Nt,duplicateTitles as ut,vocabularyDrift as Mt,mentionsFrom as gt,spanningQuestions as Ct,surveyCorpus as Lt,thresholdSweep as Pt,formatSurvey as xt,NEAR_TITLE_DISTANCE as Dt,SPAN_MIN_TERMS as Ft}from"./curate.js";import{PDF_MAX_CHARS as yt,linesFromItems as kt,orderLines as Ut,paragraphsFromLines as bt,pageTextFromItems as vt,looksScanned as Gt,buildPdfDocument as Bt}from"./pdf-layout.js";import{YOUTUBE_HOSTS as Ht,TRANSCRIPT_MAX_CHARS as wt,parseYouTubeUrl as Vt,isYouTubeUrl as Xt,captionTracksFromPlayerResponse as Wt,videoMetaFromPlayerResponse as Jt,pickCaptionTrack as Yt,timedTextUrl as zt,parseTimedText as jt,groupSegments as Qt,formatTimestamp as qt,formatTranscript as Zt,buildTranscriptDocument as $t,transcriptFromTracks as ea}from"./media-transcript.js";import{ACCESS_LOG_VERSION as oa,ACCESS_LOG_MAX as ta,redactAccessArgs as aa,makeAccessEvent as ia,createAccessLog as na,makeStorageTier as sa,formatBytes as Sa}from"./observability.js";import{routeGraph as la,projectChain as Ta}from"./route-graph.js";import{defineAdapter as ca,createAdapterRegistry as pa,AdapterError as _a}from"./adapters.js";import{linkifyCitations as da,sourcesFromToolText as Ra,createCitationCollector as fa,RETRIEVAL_TOOLS as Oa}from"./citations.js";import{buildTrajectory as Na,phasesOf as ua,lanesOf as Ma,filterEntries as ga,displayName as Ca,ENTRY_KINDS as La,threadsOf as Pa,threadTitle as xa,promptEntries as Da,turnsOf as Fa,threadTree as ha}from"./trajectory.js";import{createTurnRunner as ka,defineLoop as Ua,LOOP_KINDS as ba,LoopError as va}from"./loop.js";import{defineModel as Ba,defineMiddleware as Ka,defineRouteStrategy as Ha,createModelRouter as wa,signalsFrom as Va,requirementsFor as Xa,requirementsForStep as Wa,preferenceFor as Ja,failoverOrder as Ya,pinnedOrderOf as za,FAILOVER_CLASS_GAP as ja,FAILOVER_CAPABILITY_GAP as Qa,sameModelKey as qa,RouterError as Za}from"./router.js";import{makeSourceStore as ei,manifestText as ri,shortUrl as oi,readSource as ti,sourceId as ai}from"./sources-retrieval.js";import{classifySource as ni,extractUrls as si,hostMatches as Si,meetReach as Ei,sourcePolicyFor as li,sourceUrlsOf as Ti,DEFAULT_INTERNAL_PATTERNS as mi,INTERNAL_PATTERN_CATALOG as ci}from"./sources.js";import{defineRule as _i,createRuleEngine as Ai,SUPPRESSED as di,RuleError as Ri}from"./rules.js";import{VAULT_VERSION as Oi,KDF_ITERATIONS as Ii,KDF_HASH as Ni,DEFAULT_LOCK_MS as ui,VaultError as Mi,MAX_TITLE_CHARS as gi,MAX_NOTE_CHARS as Ci,MAX_SECRET_CHARS as Li,MAX_ENTRIES as Pi,createVault as xi,unlockVault as Di,deriveKey as Fi,sealEntry as hi,openEntry as yi,validateEntry as ki,entryMeta as Ui,searchEntries as bi,isLocked as vi,lockedSummary as Gi,canAddEntry as Bi,toB64 as Ki,fromB64 as Hi}from"./vault.js";import{SCHEDULE_KINDS as Vi,TRIGGER_KINDS as Xi,JOB_ACTIONS as Wi,MISSED_POLICIES as Ji,ScheduleError as Yi,validateSchedule as zi,nextFireAt as ji,occurrencesBetween as Qi,nextWakeAt as qi,defineTrigger as Zi,createTriggerRegistry as $i,BUILTIN_TRIGGERS as en,timerTrigger as rn,meetingStartedTrigger as on,meetingEndedTrigger as tn,personJoinedTrigger as an,phraseTrigger as nn,topicTrigger as sn,questionTrigger as Sn,voiceCommandTrigger as En,defineJob as ln,dueJobs as Tn,jobsForEvent as mn,occurrenceKey as cn,clipText as pn,matchSummary as _n}from"./schedule.js";import{defineMeetingAnalyzer as dn,createAnalyzerRegistry as Rn,CADENCES as fn,AnalyzerError as On}from"./meeting-analyzers.js";import{DEFAULT_WAKE as Nn,MAX_COMMANDS_PER_DELTA as un,DAYPART_HOUR as Mn,VoiceIntentError as gn,compileWake as Cn,findWakeCommand as Ln,parseCommand as Pn,commandsFromSegments as xn,parseDuration as Dn,parseClock as Fn,parseWhen as hn,parseNumberWords as yn,normalizeSpeech as kn,tokenize as Un,editDistance as bn,defineVoiceIntent as vn,createVoiceIntentRegistry as Gn,defaultVoiceIntents as Bn,BUILTIN_VOICE_INTENTS as Kn,timerIntent as Hn,reminderIntent as wn,scheduleIntent as Vn,noteIntent as Xn,monitorIntent as Wn,REFINEMENT_SCHEMA as Jn,refinementPrompt as Yn,refinementFormat as zn,parseRefinement as jn,refinementStream as Qn,settleRefinement as qn,refineSpokenCommand as Zn,isFillerSentence as $n,gistText as es,gistOpening as rs,commandLooksFinished as os,sameUtterance as ts,createUtteranceGate as as,UTTERANCE_SETTLE_MS as is,UTTERANCE_DANGLING_MS as ns}from"./voice-intents.js";import{MAX_TOPICS as Ss,MAX_TOPIC_CHARS as Es,TOPICS_SCHEMA as ls,topicsSchema as Ts,topicsPrompt as ms,topicsFormat as cs,parseTopics as ps,normalizeTopic as _s,normalizeTopics as As,topicsStream as ds,ENTITY_TYPES as Rs,ENTITIES_SCHEMA as fs,entitiesPrompt as Os,entitiesFormat as Is,parseEntities as Ns,coerceEntities as us,entitiesStream as Ms,MAX_SUGGESTIONS as gs,MAX_SUGGESTION_CHARS as Cs,SUGGESTIONS_SCHEMA as Ls,suggestionsPrompt as Ps,suggestionsFormat as xs,parseSuggestions as Ds,suggestionsStream as Fs}from"./extraction.js";import{FIELD_TYPES as ys,RESPONSE_MODES as ks,StructuredError as Us,defineSchema as bs,describeSchema as vs,toJsonSchema as Gs,responseFormat as Bs,unfence as Ks,findJson as Hs,rewriteJson as ws,repairJson as Vs,isNothing as Xs,coerce as Ws,parseStructured as Js,createStructuredStream as Ys}from"./structured.js";import{explainMcpError as js,packageFromArgs as Qs,isStaleMcpSession as qs}from"./mcp-errors.js";import{toolTraits as $s,bareToolName as eS,canRunConcurrently as rS,isCacheable as oS,needsConfirmation as tS,traitsIndex as aS,effectiveToolName as iS,parallelEligible as nS,PARALLEL_LOCAL_RE as sS}from"./tool-traits.js";import{planToolRound as ES,runToolRound as lS}from"./tool-round.js";import{createToolLoopGuard as mS,roundSignature as cS,stableToolCallKey as pS,toolMadeProgress as _S,isLoopableTool as AS,blockedToolResult as dS,OBSERVATION_TOOLS as RS,INPUT_PROGRESS_TOOLS as fS}from"./tool-loop-guard.js";import{classifyFailure as IS,createModelHealth as NS,COOLDOWN_MS as uS,UNAVAILABLE_REASONS as MS,normModelName as gS}from"./model-health.js";import{runWithFailover as LS,failoverExhausted as PS,FAILOVER_MAX_ATTEMPTS as xS}from"./failover.js";import{sourcePolicySettings as FS,sourceGuardFor as hS,sourceGate as yS,isSourceGateError as kS,withinReach as US}from"./source-gate.js";import{runTurnLoop as vS,createCallRunner as GS,roundCap as BS,withToolSystem as KS,describeCall as HS,stepResultText as wS,addUsage as VS,normalizeUsage as XS,openAiTranscript as WS,anthropicTranscript as JS,DEFAULT_MAX_ROUNDS as YS,DEFAULT_MAX_FINISH_TRIES as zS,FINISH_NUDGES as jS,LOOPING_NUDGE as QS,EXHAUSTED_NOTE as qS,ROUND_SEPARATOR as ZS}from"./turn-loop.js";import{createResultStore as eE,shieldToolResult as rE,runResultQuery as oE,withResultShield as tE,describeShape as aE,compactValue as iE,resultToolSpec as nE,RESULT_TOOL_NAME as sE,DEFAULT_SHIELD as SE,DEFAULT_STORE as EE}from"./tool-result.js";import{findTools as TE,findToolsResult as mE,findActionArgs as cE,oneLiner as pE,overlapRank as _E,FIND_ACTION as AE}from"./tool-discovery.js";import{buildToolset as RE}from"./toolset.js";import{DESCRIBE_ACTION as OE,actionMenu as IE,buildGroupDispatchSpec as NE,validateAction as uE,makeGroupDispatchExecutor as ME,withGuidance as gE,makeDispatchProvider as CE,estimateTokens as LE}from"./tool-dispatch.js";import{FIND_TOOL_NAME as xE,FIND_DESCRIPTION as DE,FIND_RESIDENT as FE,findDispatchProvider as hE}from"./find-tool.js";import{WEB_SEARCH_TOOL_NAME as kE,WEB_SEARCH_TOOL_SYSTEM as UE,WEB_SEARCH_SPEC as bE,searchResultsToText as vE,webSearchToolProvider as GE}from"./web-search-tool.js";import{compressToolSpec as KE,compressToolSpecs as HE,compressionStats as wE,trimDescription as VE,COMPRESSION_MODES as XE,DEFAULT_COMPRESSION as WE}from"./tool-schema.js";import{validateRecipe as YE,expandRecipe as zE,recipeParams as jE,mapInput as QE,dryRunRecipe as qE,runPlan as ZE,runRecipe as $E,RecipeError as el,RECIPE_MODES as rl}from"./recipe.js";import{recipeToolProvider as tl,recipeToolSpec as al,describeRecipeForApproval as il,RECIPE_TOOL_NAME as nl}from"./recipe-tool.js";import{createBudget as Sl,validateBudget as El,normalizeBudget as ll,usageOf as Tl,BudgetError as ml,BUDGET_DIMENSIONS as cl}from"./budget.js";import{defineTeam as _l,validateTeam as Al,normalizeTeam as dl,normalizeGrants as Rl,grantAllows as fl,scmAllows as Ol,describeRole as Il,TeamError as Nl,ROLE_MODES as ul,MERGE_POLICIES as Ml,PLAN_MODES as gl,GRANTABLE as Cl,WORK_GRANTS as Ll,GRANT_RE as Pl,AGENT_REF_RE as xl,STARTER_TEAMS as Dl,starterTeams as Fl,blankTeam as hl,teamFromForm as yl,slugTeamName as kl}from"./team.js";import{fixedPlan as bl,parsePlan as vl,plannerPrompt as Gl,waves as Bl,breakCycles as Kl,TEAM_PLAN_SCHEMA as Hl}from"./team-plan.js";import{createBoard as Vl,parseFindings as Xl,boardText as Wl,findingsInstruction as Jl,toBriefClaims as Yl,FINDINGS_SCHEMA as zl,FINDING_KINDS as jl,THREAD_KINDS as Ql,THREAD_STATUSES as ql,POST_KINDS as Zl,POST_STATUSES as $l,ASK_TYPES as eT,emptyBoardState as rT,foldBoard as oT,findingsOf as tT}from"./team-board.js";import{boardToolProvider as iT,boardToolSpec as nT,createAnswerBox as sT,withBoardTool as ST,BOARD_TOOL_NAME as ET,DEFAULT_ASK_TIMEOUT_MS as lT}from"./board-tool.js";import{createRunCache as mT,withRunCache as cT}from"./team-cache.js";import{emptyRun as _T,foldRun as AT,runFromEvents as dT,checkpointFrom as RT,isResumable as fT,LIVE_RUN_STATUSES as OT,RESUMABLE_RUN_STATUSES as IT,spendOf as NT,describeSpend as uT,runState as MT,priorWorkFor as gT,STALLED_AFTER_MS as CT}from"./team-record.js";import{validateProject as PT,normalizeProject as xT,defineProject as DT,canTransition as FT,blankProject as hT,projectFromForm as yT,emptyProjectRecord as kT,foldProject as UT,projectProgress as bT,ProjectError as vT,PROJECT_STATUSES as GT,PROJECT_ID_RE as BT}from"./project.js";import{validateJob as HT,normalizeJob as wT,defineJob as VT,canTransition as XT,applyAll as WT,jobToRole as JT,readyJobs as YT,blankJob as zT,jobFromForm as jT,JobError as QT,JOB_STATUSES as qT,JOB_ID_RE as ZT}from"./job.js";import{validateGate as em,normalizeGate as rm,effectiveGate as om,gateAllows as tm,DEFAULT_GATE as am,AUTONOMY as im,HUMAN_FLAGS as nm,CHECKS as sm}from"./gate.js";import{runProject as Em,roundJobs as lm,teamForRound as Tm,jobResults as mm,roundBudget as cm,parseJobs as pm,parseReview as _m,jobsPrompt as Am,reviewPrompt as dm,PROJECT_JOBS_SCHEMA as Rm,PROJECT_REVIEW_SCHEMA as fm,ProjectRunError as Om,EXECUTIVE as Im,MAX_JOBS_PER_ROUND as Nm,MAX_ROUNDS as um,PROJECT_RUN_STATUSES as Mm}from"./project-run.js";import{canonical as Cm,sha256 as Lm,makeEntry as Pm,verifyChain as xm,attest as Dm,verifyAttested as Fm,summarize as hm,fit as ym,adjustSummary as km,normalizeEngine as Um,engineKey as bm,normalizeScm as vm,SCORECARD_ENTRY_KINDS as Gm,ROLE_KINDS as Bm,SCORECARD_VERSION as Km,ENGINE_KINDS as Hm}from"./scorecard.js";import{ENGINE_KINDS as Vm,ROUTE_PREFERS as Xm,normalizePolicy as Wm,normalizeEngineSpec as Jm,validateEngineSpec as Ym,engineRef as zm,engineKeyOf as jm,describeEngine as Qm,tierOf as qm}from"./engine.js";import{AGENT_ID_RE as $m,APPLIES_TO as ec,EGRESS_CLASSES as rc,ASSISTANT_ID as oc,AgentError as tc,validateAgent as ac,normalizeAgent as ic,defineAgent as nc,assistantAgent as sc,engineOf as Sc,describeAgent as Ec,slugAgentId as lc,resolveTeam as Tc,STARTER_AGENTS as mc,starterAgents as cc,blankAgent as pc,agentFromForm as _c,poolFor as Ac}from"./agent.js";import{LEDGER_VERSION as Rc,LEDGER_ENTRY_KINDS as fc,DECLINE_REASONS as Oc,WITHDRAW_AFTER as Ic,ledgerKey as Nc,normalizeCall as uc,makeLedgerEntry as Mc,summarizeEngine as gc}from"./model-ledger.js";import{RECRUIT_SCHEMA as Lc,MIN_FIT as Pc,engineRow as xc,engineRows as Dc,needForJob as Fc,routeFor as hc,engineWorth as yc,applications as kc,evaluatorPrompt as Uc,parseEvaluation as bc,decide as vc,recruitForRun as Gc,proposalFromNeeds as Bc,proposalToAgent as Kc,carveBudget as Hc,recruitEvents as wc,recruitJob as Vc}from"./recruit.js";import{DEFAULT_MIN_CALLS as Wc,cardOverride as Jc,applyCard as Yc}from"./model-candidates.js";import{SCM_KINDS as jc,validateConnection as Qc,normalizeConnection as qc,parseRemote as Zc,connectionFor as $c,branchFor as ep,worktreeDirFor as rp,credentialEnv as op,describeConnection as tp,blankConnection as ap,connectionFromForm as ip}from"./scm-connection.js";import{messagesFor as sp,mergeTranscript as Sp,clipTranscript as Ep,clipMessage as lp,newSteps as Tp,continuationNote as mp,createControl as cp,STEP_MAX_CHARS as pp,TASK_TRANSCRIPT_MAX_CHARS as _p}from"./team-task.js";import{runTeam as dp,resumeTeam as Rp,dryRunTeam as fp,isModelUnavailable as Op,TeamRunError as Ip,RUN_STATUSES as Np}from"./team-run.js";import{teamToolProvider as Mp,teamToolSpec as gp,teamToolTimeoutMs as Cp,describeTeamForApproval as Lp,TEAM_TOOL_NAME as Pp,TEAM_MANUAL as xp}from"./team-tool.js";import{workLogFor as Fp,workLogText as hp,workLogEvidence as yp,describeCall as kp,WORKLOG_KINDS as Up}from"./team-worklog.js";import{normalizeRequest as vp,subtaskFromRequest as Gp,takeUp as Bp,takeUpLine as Kp,holdsGrants as Hp,jobFromSubtask as wp,extendDependents as Vp,taskTree as Xp,threadRows as Wp,MAX_SUBTASKS as Jp,MAX_DEPTH as Yp,MIN_TAKEUP_FIT as zp}from"./team-subtask.js";import{teamLine as Qp,teamLanes as qp}from"./team-trail.js";import{promoteRoles as $p,starterTeam as e_,missingStarters as r_,teamHealth as o_,teamShape as t_,describeTeamShape as a_,whereItWorks as i_,rosterRows as n_,agentKind as s_,agentHue as S_,agentColor as E_,agentInitials as l_,roleCardId as T_,cardNumbers as m_,upsertAgents as c_,soloTeam as p_,teamsWithSolos as __,builtinOrg as A_,isBuiltin as d_,grantChoices as R_,grantsFromChoices as f_,skillChoices as O_,GRANT_INFO as I_,SOLO_BUDGET as N_,TEAM_SHAPES as u_,ROSTER_KINDS as M_}from"./team-org.js";import{observeInbox as C_,observeStrip as L_,runLanes as P_,spendRows as x_,engineStrip as D_}from"./team-observe.js";import{mcpDispatchProvider as h_,MCP_TOOL_NAME as y_}from"./mcp-dispatch.js";import{createManifest as U_,ManifestError as b_,SOURCES as v_}from"./manifest.js";import{createKernel as B_,meetDecisions as K_,KernelError as H_,REQUIRED_PLUGINS as w_,ALLOW_ALL as V_}from"./kernel.js";import{replay as W_,formatReport as J_,parseJsonl as Y_,toJsonl as z_}from"./harness.js";import{compileQuery as Q_,findMatches as q_,matchIndexFor as Z_,expandReplacement as $_,replaceMatch as eA,replaceAll as rA,replaceAllInRange as oA,MAX_MATCHES as tA}from"./text-search.js";import{DATA_SCOPES as iA}from"./scopes.js";import{MEMORY_VERSION as sA,MEMORY_KINDS as SA,MEMORY_KIND_NAMES as EA,AMBIENT_KINDS as lA,MAX_MEMORY_CHARS as TA,MIN_MEMORY_CHARS as mA,DEFAULT_MAX_MEMORIES as cA,DEFAULT_BLOCK_CHARS as pA,SAME_FACT as _A,MEMORY_TOOL_SPEC as AA,MEMORY_UPCASTERS as dA,MemoryError as RA,normalizeMemory as fA,isValidMemory as OA,memoryKey as IA,slotOf as NA,similarity as uA,containment as MA,candidatesFrom as gA,reconcile as CA,matchForForget as LA,recall as PA,memoryBlock as xA,markUsed as DA,pruneMemories as FA,memoryToolSystem as hA,upcastMemory as yA}from"./memory.js";import{SOURCE_TRUST as UA,SkillSourceError as bA,defineSkillSource as vA,createSkillSourceRegistry as GA}from"./skill-sources.js";import{SKILL_MANIFEST_VERSION as KA,SKILL_CONTEXTS as HA,SKILL_HISTORY_SCOPES as wA,SKILL_MCP_MODES as VA,SKILL_TRUST as XA,SKILL_FILE_KINDS as WA,SKILL_UPCASTERS as JA,SkillManifestError as YA,isSafeSkillPath as zA,originOf as jA,trustOf as QA,skillFiles as qA,needsBridge as ZA,declaredAccess as $A,originLabel as ed,sameSkillOrigin as rd,skillIsStale as od,validateSkill as td,upcastSkill as ad,upcastSkills as id,normalizeSkill as nd}from"./skill-manifest.js";import{SKILL_VARS as Sd,SKILL_VAR_NAMES as Ed,skillVar as ld,skillVarPattern as Td,parseSkillVars as md,lintSkillPrompt as cd,suggestSkillVar as pd,substituteSkillVars as _d,expandSkillPrompt as Ad,skillVarGuidance as dd,SkillVarError as Rd}from"./skill-vars.js";import{lineAt as Od,writerAffordance as Id,INSTRUCTION_RE as Nd,instructionOnLine as ud,GOAL_MIN_NEW as Md,goalDraftAllowed as gd,createSpendMeter as Cd,writerTail as Ld,draftSeparator as Pd,groundingBlock as xd,writerRequest as Dd,AUTOCOMPLETE_SYSTEM as Fd,AUTOCOMPLETE_MAX_TOKENS as hd,AUTOCOMPLETE_TEMPERATURE as yd,clipCompletion as kd,GEARS as Ud,WRITER_PREFS as bd,WRITER_PREF_DEFAULTS as vd,normalizeWriterPrefs as Gd,normalizeIntent as Bd}from"./cowriter-writer.js";import{SLASH_TYPING_RE as Hd,enabledSkills as wd,slashCommandItems as Vd,matchSlashSkill as Xd,matchSlashRecipe as Wd,recipeInvocationText as Jd,matchSlashTeam as Yd,teamInvocationText as zd,slashCommandInsert as jd,skillInvocationOf as Qd,skillInvocationLabel as qd}from"./slash-commands.js";import{outlineOf as $d,parseListItem as eR,continueList as rR,indentSelection as oR,toggleWrap as tR,toggleLinePrefix as aR,toggleTask as iR,toggleLink as nR,docStats as sR,selectionStats as SR}from"./markdown-authoring.js";import{MAX_TAG_LENGTH as lR,MAX_TAGS as TR,normalizeTag as mR,normalizeTags as cR,hasTag as pR,addTag as _R,removeTag as AR,toggleTag as dR,sameTags as RR,formatTag as fR,parseTagQuery as OR,hasTagTerms as IR,formatTagQuery as NR,matchesTagFilter as uR,filterByTags as MR,tagFacets as gR,suggestExistingTags as CR,tagsSearchText as LR}from"./tags.js";import{UNTITLED_MEETING as xR,MAX_TITLE_LENGTH as DR,TITLE_RULES_VERSION as FR,cleanTitle as hR,isGenericTitle as yR,titleFromSummary as kR,titleFromTopics as UR,titleFromParticipants as bR,titleFromDate as vR,deriveMeetingTitle as GR,shouldAutoTitle as BR,isBetterTitleSource as KR,meetingTitlePrompt as HR,parseTitleResponse as wR}from"./titles.js";import{RECORD_KINDS as XR,MAX_TITLE_LEN as WR,LibraryError as JR,parseRecordId as YR,makeRecordId as zR,isRecordId as jR,normalizeStoredRecord as QR,isValidStoredRecord as qR,toSearchRecord as ZR,searchTextFor as $R,toIndexEntry as ef,deriveTitle as rf,snippetOf as of,wordCount as tf}from"./library.js";import{CLOCK_TOLERANCE_MS as nf,SyncError as sf,stampOf as Sf,decide as Ef,planSync as lf,isSettled as Tf,forkConflict as mf,advanceBases as cf}from"./sync-plan.js";import{ENCRYPTED_TYPE as _f,COMPRESSIONS as Af,BackupError as df,KDF_ITERATIONS as Rf,encryptBackup as ff,decryptBackup as Of,isEncryptedBackup as If,identityCodec as Nf,streamCodec as uf,nodeCodec as Mf,bestCodec as gf}from"./backup-envelope.js";import{OMNI_MODES as Lf,OMNI_GRAMMAR as Pf,parseOmni as xf,extractFilters as Df,resolveSince as Ff,wantsModel as hf,isActionable as yf}from"./omni.js";import{THEMES as Uf,LIGHT as bf,DARK as vf,PALETTES as Gf,SHAPE as Bf,TOKEN_NAMES as Kf,TOKEN_ROLES as Hf,paletteFor as wf,cssVarName as Vf,toCssVars as Xf,themeStylesheet as Wf,resolveTheme as Jf}from"./theme.js";import{PLANS as zf,API_BASE as jf,ENDPOINTS as Qf,ENTITLEMENT_PUBLIC_JWK as qf,UPGRADE_URL as Zf,FEATURE_TIER as $f,PRO_FEATURES as eO,TEAM_FEATURES as rO,FREE_LIMITS as oO,COUNTED as tO,freeCap as aO,observeSince as iO,RECHECK_INTERVAL_MS as nO,EntitlementError as sO,checkoutUrl as SO,planOf as EO,planLabel as lO,isPro as TO,isTeam as mO,can as cO,tierFor as pO,withinFreeLimit as _O,verifyEntitlement as AO,verifySignedToken as dO,licenseFromPayload as RO,needsRecheck as fO}from"./entitlement.js";import{renderMarkdown as IO,defaultLinkPolicy as NO}from"./markdown-render.js";import{parseMeetingText as MO,speakerStats as gO,densityRibbon as CO}from"./meeting-text.js";import{speakerBreakdown as PO,speakerTimeline as xO,formatTalkTime as DO,SPEAKER_SLOTS as FO}from"./meeting-shape.js";import{isSpeakerImageValue as yO,speakerLabeller as kO}from"./meeting-shape.js";import{SORT_MODES as bO,SORT_LABELS as vO,sortStamp as GO,sortRecords as BO,filterRecords as KO,dayBucket as HO,rowTime as wO,groupRecords as VO}from"./record-list.js";import{INSIGHT_KINDS as WO,summarySections as JO,insightKindOf as YO,meetingInsights as zO,hasInsights as jO}from"./meeting-insights.js";import{demd as qO,NOTE_SECTIONS as ZO,noteSectionKind as $O,MOMENT_BADGES as eI,momentBadge as rI,parseMeetingNotes as oI,groupActionsByOwner as tI}from"./meeting-insights.js";import{PREF_SECTIONS as iI,PREF_SECTION_IDS as nI,sectionValue as sI,pickSections as SI,applySections as EI,sectionHash as lI,mergeStamped as TI,changedSections as mI}from"./client-prefs.js";import{McpClient as pI,mcpProvider as _I}from"./mcp-client.js";import{mcpSharedSystem as dI,mcpInventorySystem as RI,sourceCitationSystem as fI,combineSystemPrompt as OI,toolStatus as II,widgetAuthoringSystem as NI,vaultWidgetSystem as uI,wantsVaultGuidance as MI}from"./tool-hints.js";import{adaptiveToolRetryHint as CI,createAdaptiveToolPolicy as LI,isInvalidToolParametersResult as PI}from"./adaptive-tool-policy.js";import{getMcpProviders as DI,testMcpServer as FI,resetMcp as hI,mcpBackoff as yI}from"./mcp-manager.js";import{SIDELINE_COMMANDS as UI,BRINGBACK_COMMAND as bI,THREAD_TOOL_NAME as vI,SIDELINE_SLASH_ITEMS as GI,THREAD_TOOL_SPEC as BI,parseSideline as KI,parseBringBack as HI,resolveSidelineTarget as wI,threadManifest as VI,threadToolProvider as XI,readThread as WI,briefPrompt as JI,foldBackNote as YI,foldNotes as zI,nextSidelineIndex as jI,sourceOf as QI,noteUnits as qI,sidelinePath as ZI,foldBackFor as $I,SIDELINE_TOOL_NAME as eN,SIDELINE_TOOL_SPEC as rN,sidelineToolProvider as oN}from"./sideline.js";import{WEATHER_TOOL_NAME as aN,WEATHER_TOOL_SYSTEM as iN,weatherToolProvider as nN}from"./weather-tool.js";import{renderContent as SN,toChatMessages as EN,toMultimodalMessages as lN,imageAttachmentsOf as TN,deferAttachedSources as mN,withSourceTool as cN,SOURCE_TOOL_SPEC as pN}from"./context-attachments.js";import{prefetchPlan as AN,prefetchAttachment as dN,weatherPlace as RN,weatherFollowupPlace as fN}from"./prefetch.js";import{presenceFor as IN,presenceDelta as NN,reachOf as uN,withPresence as MN,presenceBlock as gN,roundCount as CN,roundMinutes as LN,PRESENCE_BUDGET_TOKENS as PN,PRESENCE_KINDS as xN}from"./presence.js";import{PolicyError as FN,POLICY_VERSION as hN,POLICY_TOKEN_TYPE as yN,REDACTION_TIERS as kN,LOCKABLE as UN,FEATURES as bN,PERMISSION_MODES as vN,PRODUCT_HOSTS as GN,normalizeOrgPolicy as BN,endpointAllowed as KN,modelAllowed as HN,agentAllowed as wN,permissionMode as VN,routeAllowed as XN,redactionTier as WN,egressAllowed as JN,settingLocked as YN,featureEnabled as zN,applyPolicyToSettings as jN,policyLabel as QN,policyHash as qN,verifyPolicyToken as ZN,globToRegExp as $N}from"./policy.js";export{ta as ACCESS_LOG_MAX,oa as ACCESS_LOG_VERSION,i as ACTOR_KINDS,$m as AGENT_ID_RE,xl as AGENT_REF_RE,V_ as ALLOW_ALL,a as ALL_TYPES,lA as AMBIENT_KINDS,jf as API_BASE,ec as APPLIES_TO,eT as ASK_TYPES,oc as ASSISTANT_ID,hd as AUTOCOMPLETE_MAX_TOKENS,Fd as AUTOCOMPLETE_SYSTEM,yd as AUTOCOMPLETE_TEMPERATURE,im as AUTONOMY,_a as AdapterError,tc as AgentError,On as AnalyzerError,Rf as BACKUP_KDF_ITERATIONS,ET as BOARD_TOOL_NAME,bo as BRIEF_STATES,bI as BRINGBACK_COMMAND,cl as BUDGET_DIMENSIONS,en as BUILTIN_TRIGGERS,Kn as BUILTIN_VOICE_INTENTS,df as BackupError,ml as BudgetError,fn as CADENCES,sm as CHECKS,vo as CLAIM_KINDS,s as CLASSES,nf as CLOCK_TOLERANCE_MS,Af as COMPRESSIONS,XE as COMPRESSION_MODES,uS as COOLDOWN_MS,tO as COUNTED,ke as COWRITER_SYSTEM,Ue as COWRITER_TEMPERATURE,o as CURRENT_VERSION,vf as DARK,iA as DATA_SCOPES,Mn as DAYPART_HOUR,Oc as DECLINE_REASONS,lT as DEFAULT_ASK_TIMEOUT_MS,pA as DEFAULT_BLOCK_CHARS,WE as DEFAULT_COMPRESSION,am as DEFAULT_GATE,mi as DEFAULT_INTERNAL_PATTERNS,ui as DEFAULT_LOCK_MS,zS as DEFAULT_MAX_FINISH_TRIES,cA as DEFAULT_MAX_MEMORIES,YS as DEFAULT_MAX_ROUNDS,Wc as DEFAULT_MIN_CALLS,SE as DEFAULT_SHIELD,EE as DEFAULT_STORE,Ro as DEFAULT_THRESHOLD,Nn as DEFAULT_WAKE,OE as DESCRIBE_ACTION,S as EFFECTS,E as EGRESS,rc as EGRESS_CLASSES,_f as ENCRYPTED_TYPE,Qf as ENDPOINTS,hr as ENGINE_KINDS,Vm as ENGINE_SPEC_KINDS,fs as ENTITIES_SCHEMA,qf as ENTITLEMENT_PUBLIC_JWK,Rs as ENTITY_TYPES,La as ENTRY_KINDS,t as EVENT_TYPES,Im as EXECUTIVE,qS as EXHAUSTED_NOTE,sO as EntitlementError,l as EventError,Qa as FAILOVER_CAPABILITY_GAP,ja as FAILOVER_CLASS_GAP,xS as FAILOVER_MAX_ATTEMPTS,bN as FEATURES,$f as FEATURE_TIER,ys as FIELD_TYPES,zl as FINDINGS_SCHEMA,jl as FINDING_KINDS,AE as FIND_ACTION,DE as FIND_DESCRIPTION,FE as FIND_RESIDENT,xE as FIND_TOOL_NAME,jS as FINISH_NUDGES,oO as FREE_LIMITS,Ud as GEARS,Md as GOAL_MIN_NEW,Cl as GRANTABLE,I_ as GRANT_INFO,Pl as GRANT_RE,nm as HUMAN_FLAGS,fS as INPUT_PROGRESS_TOOLS,WO as INSIGHT_KINDS,Nd as INSTRUCTION_RE,ci as INTERNAL_PATTERN_CATALOG,Or as INVARIANTS,Wi as JOB_ACTIONS,ZT as JOB_POST_ID_RE,qT as JOB_POST_STATUSES,QT as JobPostError,Ni as KDF_HASH,Ii as KDF_ITERATIONS,H_ as KernelError,fc as LEDGER_ENTRY_KINDS,Rc as LEDGER_VERSION,bf as LIGHT,OT as LIVE_RUN_STATUSES,UN as LOCKABLE,QS as LOOPING_NUDGE,ba as LOOP_KINDS,JR as LibraryError,va as LoopError,Ho as MAX_BRIEF_CHARS,Ko as MAX_BRIEF_RECORDS,Go as MAX_CLAIMS,Bo as MAX_CLAIM_REFS,un as MAX_COMMANDS_PER_DELTA,Yp as MAX_DEPTH,Pi as MAX_ENTRIES,at as MAX_EXCERPTS,it as MAX_EXCERPT_CHARS,ue as MAX_GRAPH_NODES,Nm as MAX_JOBS_PER_ROUND,tA as MAX_MATCHES,TA as MAX_MEMORY_CHARS,Ci as MAX_NOTE_CHARS,um as MAX_ROUNDS,Li as MAX_SECRET_CHARS,fo as MAX_SUBJECTS,Oo as MAX_SUBJECT_CHARS,Jp as MAX_SUBTASKS,gs as MAX_SUGGESTIONS,Cs as MAX_SUGGESTION_CHARS,tt as MAX_SYNTHESIS_CLAIMS,TR as MAX_TAGS,lR as MAX_TAG_LENGTH,gi as MAX_TITLE_CHARS,WR as MAX_TITLE_LEN,DR as MAX_TITLE_LENGTH,Ss as MAX_TOPICS,Es as MAX_TOPIC_CHARS,y_ as MCP_TOOL_NAME,SA as MEMORY_KINDS,EA as MEMORY_KIND_NAMES,AA as MEMORY_TOOL_SPEC,dA as MEMORY_UPCASTERS,sA as MEMORY_VERSION,Ml as MERGE_POLICIES,Pc as MIN_FIT,mA as MIN_MEMORY_CHARS,zp as MIN_TAKEUP_FIT,Ji as MISSED_POLICIES,eI as MOMENT_BADGES,b_ as ManifestError,pI as McpClient,RA as MemoryError,Dt as NEAR_TITLE_DISTANCE,b as NOTE_ACTIONS,B as NOTE_ACTION_ERRORS,v as NOTE_ACTION_ORDER,G as NOTE_ACTION_TEMPERATURE,K as NOTE_COMMANDS,w as NOTE_COMMAND_MAX_TOKENS,H as NOTE_COMMAND_TEMPERATURE,ZO as NOTE_SECTIONS,RS as OBSERVATION_TOOLS,Pf as OMNI_GRAMMAR,Lf as OMNI_MODES,Gf as PALETTES,sS as PARALLEL_LOCAL_RE,yt as PDF_MAX_CHARS,vN as PERMISSION_MODES,zf as PLANS,Je as PLAN_AUTHORS,ze as PLAN_DECOMPOSE_MAX_TOKENS,Ye as PLAN_DECOMPOSE_SYSTEM,je as PLAN_DECOMPOSE_TEMPERATURE,gl as PLAN_MODES,We as PLAN_ROLES,Qe as PLAN_SECTION_MAX_TOKENS,qe as PLAN_SECTION_TEMPERATURE,yN as POLICY_TOKEN_TYPE,hN as POLICY_VERSION,Zl as POST_KINDS,$l as POST_STATUSES,iI as PREF_SECTIONS,nI as PREF_SECTION_IDS,PN as PRESENCE_BUDGET_TOKENS,xN as PRESENCE_KINDS,GN as PRODUCT_HOSTS,BT as PROJECT_ID_RE,Rm as PROJECT_JOBS_SCHEMA,fm as PROJECT_REVIEW_SCHEMA,Mm as PROJECT_RUN_STATUSES,GT as PROJECT_STATUSES,st as PROPOSAL_STATES,eO as PRO_FEATURES,FN as PolicyError,vT as ProjectError,Om as ProjectRunError,ir as REACH,nO as RECHECK_INTERVAL_MS,rl as RECIPE_MODES,nl as RECIPE_TOOL_NAME,Hm as RECORD_ENGINE_KINDS,XR as RECORD_KINDS,Lc as RECRUIT_SCHEMA,kN as REDACTION_TIERS,xo as REDACTION_TOKEN_TYPES,Jn as REFINEMENT_SCHEMA,_ as REF_KINDS,Lr as REGISTRY_STATES,w_ as REQUIRED_PLUGINS,A as RESOLUTION,ks as RESPONSE_MODES,_e as RESULTS_PER_ENGINE,sE as RESULT_TOOL_NAME,IT as RESUMABLE_RUN_STATUSES,Oa as RETRIEVAL_TOOLS,Bm as ROLE_KINDS,ul as ROLE_MODES,M_ as ROSTER_KINDS,ZS as ROUND_SEPARATOR,Xm as ROUTE_PREFERS,Np as RUN_STATUSES,el as RecipeError,Za as RouterError,Ri as RuleError,_A as SAME_FACT,Vi as SCHEDULE_KINDS,jc as SCM_KINDS,n as SCOPE_KINDS,Gm as SCORECARD_ENTRY_KINDS,Km as SCORECARD_VERSION,pe as SEARCH_ENGINES,Fo as SELF_LABELS,Bf as SHAPE,UI as SIDELINE_COMMANDS,GI as SIDELINE_SLASH_ITEMS,eN as SIDELINE_TOOL_NAME,rN as SIDELINE_TOOL_SPEC,HA as SKILL_CONTEXTS,WA as SKILL_FILE_KINDS,wA as SKILL_HISTORY_SCOPES,KA as SKILL_MANIFEST_VERSION,VA as SKILL_MCP_MODES,XA as SKILL_TRUST,JA as SKILL_UPCASTERS,Sd as SKILL_VARS,Ed as SKILL_VAR_NAMES,Hd as SLASH_TYPING_RE,N_ as SOLO_BUDGET,vO as SORT_LABELS,bO as SORT_MODES,v_ as SOURCES,pN as SOURCE_TOOL_SPEC,UA as SOURCE_TRUST,Ft as SPAN_MIN_TERMS,FO as SPEAKER_SLOTS,CT as STALLED_AFTER_MS,mc as STARTER_AGENTS,Dl as STARTER_TEAMS,pp as STEP_MAX_CHARS,Ao as SUBJECT_KINDS,Ls as SUGGESTIONS_SCHEMA,St as SUPERSEDE_OVERLAP,di as SUPPRESSED,se as SWARM_ROLES,et as SYNTHESIS_SCHEMA,Yi as ScheduleError,yr as SearchEngineError,YA as SkillManifestError,bA as SkillSourceError,Rd as SkillVarError,Us as StructuredError,sf as SyncError,_p as TASK_TRANSCRIPT_MAX_CHARS,rO as TEAM_FEATURES,xp as TEAM_MANUAL,Hl as TEAM_PLAN_SCHEMA,u_ as TEAM_SHAPES,Pp as TEAM_TOOL_NAME,Uf as THEMES,Ql as THREAD_KINDS,ql as THREAD_STATUSES,vI as THREAD_TOOL_NAME,BI as THREAD_TOOL_SPEC,FR as TITLE_RULES_VERSION,Kf as TOKEN_NAMES,Hf as TOKEN_ROLES,ls as TOPICS_SCHEMA,wt as TRANSCRIPT_MAX_CHARS,Xi as TRIGGER_KINDS,Nl as TeamError,Ip as TeamRunError,Yr as ToolGroupError,MS as UNAVAILABLE_REASONS,xR as UNTITLED_MEETING,Er as UPCASTERS,Zf as UPGRADE_URL,ns as UTTERANCE_DANGLING_MS,is as UTTERANCE_SETTLE_MS,Oi as VAULT_VERSION,Mi as VaultError,gn as VoiceIntentError,Hr as WEATHER_HOST,wr as WEATHER_TIMEOUT_MS,aN as WEATHER_TOOL_NAME,iN as WEATHER_TOOL_SYSTEM,bE as WEB_SEARCH_SPEC,kE as WEB_SEARCH_TOOL_NAME,UE as WEB_SEARCH_TOOL_SYSTEM,lo as WIDGET_SURFACES,Ic as WITHDRAW_AFTER,Up as WORKLOG_KINDS,Ll as WORK_GRANTS,bd as WRITER_PREFS,vd as WRITER_PREF_DEFAULTS,Vr as WeatherError,Ht as YOUTUBE_HOSTS,lt as accept,IE as actionMenu,CI as adaptiveToolRetryHint,_R as addTag,VS as addUsage,km as adjustSummary,cf as advanceBases,wN as agentAllowed,E_ as agentColor,_c as agentFromForm,S_ as agentHue,l_ as agentInitials,s_ as agentKind,q as agentMentionAt,go as aliasMap,JS as anthropicTranscript,WT as applyAll,Yc as applyCard,ye as applyEdits,jN as applyPolicyToSettings,EI as applySections,Te as appoint,Br as areaLabel,sc as assistantAgent,Fr as attemptOrder,Dm as attest,eS as bareToolName,gf as bestCodec,pc as blankAgent,ap as blankConnection,zT as blankJobPost,hT as blankProject,hl as blankTeam,dS as blockedToolResult,Wl as boardText,iT as boardToolProvider,nT as boardToolSpec,ep as branchFor,Kl as breakCycles,Vo as briefId,Jo as briefLinks,JI as briefPrompt,Wo as briefTerms,Xo as briefToText,NE as buildGroupDispatchSpec,Me as buildNoteGraph,Bt as buildPdfDocument,Ae as buildSearchUrl,RE as buildToolset,Na as buildTrajectory,$t as buildTranscriptDocument,A_ as builtinOrg,cO as can,Bi as canAddEntry,XT as canJobPostTransition,FT as canProjectTransition,rS as canRunConcurrently,_r as canSatisfy,gA as candidatesFrom,Cm as canonical,Wt as captionTracksFromPlayerResponse,m_ as cardNumbers,Jc as cardOverride,Hc as carveBudget,u as causesAreWellFormed,mI as changedSections,fr as checkInvariants,Yo as checkKnowledgeInvariants,SO as checkoutUrl,RT as checkpointFrom,ot as claimsFromSynthesis,IS as classifyFailure,Ee as classifyModel,ni as classifySource,hR as cleanTitle,kd as clipCompletion,lp as clipMessage,pn as clipText,Ep as clipTranscript,Ws as coerce,us as coerceEntities,OI as combineSystemPrompt,Y as commandLineAt,os as commandLooksFinished,xn as commandsFromSegments,iE as compactValue,N as compareEvents,Q_ as compileQuery,Cn as compileWake,KE as compressToolSpec,HE as compressToolSpecs,wE as compressionStats,$c as connectionFor,ip as connectionFromForm,MA as containment,wo as contentHash,mp as continuationNote,rR as continueList,ct as converge,na as createAccessLog,pa as createAdapterRegistry,LI as createAdaptiveToolPolicy,Rn as createAnalyzerRegistry,sT as createAnswerBox,c as createAppender,Mr as createBlobStore,Vl as createBoard,Sl as createBudget,GS as createCallRunner,fa as createCitationCollector,cp as createControl,B_ as createKernel,ur as createLogStore,U_ as createManifest,Nr as createMemoryAdapter,NS as createModelHealth,wa as createModelRouter,Cr as createRegistry,eE as createResultStore,Ai as createRuleEngine,mT as createRunCache,GA as createSkillSourceRegistry,Cd as createSpendMeter,Ys as createStructuredStream,Jr as createToolGroupRegistry,mS as createToolLoopGuard,$i as createTriggerRegistry,ka as createTurnRunner,as as createUtteranceGate,xi as createVault,Gn as createVoiceIntentRegistry,op as credentialEnv,Vf as cssVarName,HO as dayBucket,Ef as decide,vc as decideRecruit,$A as declaredAccess,Of as decryptBackup,NO as defaultLinkPolicy,y as defaultModelId,Bn as defaultVoiceIntents,mN as deferAttachedSources,ca as defineAdapter,nc as defineAgent,ln as defineJob,VT as defineJobPost,Ua as defineLoop,dn as defineMeetingAnalyzer,Ka as defineMiddleware,Ba as defineModel,DT as defineProject,Ha as defineRouteStrategy,_i as defineRule,bs as defineSchema,xr as defineSearchEngine,vA as defineSkillSource,_l as defineTeam,Wr as defineToolGroup,Zi as defineTrigger,vn as defineVoiceIntent,qO as demd,CO as densityRibbon,L as dequeue,Qo as deriveBrief,qo as deriveBriefs,Fi as deriveKey,GR as deriveMeetingTitle,rf as deriveTitle,Ec as describeAgent,kp as describeCall,tp as describeConnection,Qm as describeEngine,il as describeRecipeForApproval,Il as describeRole,vs as describeSchema,aE as describeShape,uT as describeSpend,Lp as describeTeamForApproval,a_ as describeTeamShape,HS as describeToolCall,mt as diffProposal,Ca as displayName,sR as docStats,Pd as draftSeparator,Zo as driftedRefs,qE as dryRunRecipe,fp as dryRunTeam,Tn as dueJobs,ut as duplicateTitles,Lo as earnsBrief,bn as editDistance,he as editKey,om as effectiveGate,So as effectiveGrants,iS as effectiveToolName,ge as egoGraph,JN as egressAllowed,rT as emptyBoardState,kT as emptyProjectRecord,_T as emptyRun,wd as enabledSkills,ff as encryptBackup,KN as endpointAllowed,bm as engineKey,jm as engineKeyOf,Sc as engineOf,Ie as engineOrder,zm as engineRef,xc as engineRow,Dc as engineRows,D_ as engineStrip,yc as engineWorth,Is as entitiesFormat,Os as entitiesPrompt,Ms as entitiesStream,Ui as entryMeta,LE as estimateTokens,Uc as evaluatorPrompt,zE as expandRecipe,$_ as expandReplacement,Ad as expandSkillPrompt,js as explainMcpError,Vp as extendDependents,Df as extractFilters,si as extractUrls,PS as failoverExhausted,Ya as failoverOrder,zN as featureEnabled,MR as filterByTags,ga as filterEntries,J as filterNoteActions,KO as filterRecords,h as filterSections,Fe as filterTypoEdits,cE as findActionArgs,hE as findDispatchProvider,Hs as findJson,q_ as findMatches,ee as findSkillByName,re as findTargetByName,TE as findTools,mE as findToolsResult,Ln as findWakeCommand,Jl as findingsInstruction,tT as findingsOf,ym as fit,bl as fixedPlan,$I as foldBackFor,YI as foldBackNote,oT as foldBoard,zI as foldNotes,UT as foldProject,AT as foldRun,mf as forkConflict,Sa as formatBytes,J_ as formatReport,xt as formatSurvey,fR as formatTag,NR as formatTagQuery,DO as formatTalkTime,qt as formatTimestamp,Zt as formatTranscript,Gr as formatWeather,V as frameNoteAction,aO as freeCap,Hi as fromB64,mo as fuseRRF,tm as gateAllows,DI as getMcpProviders,Ur as getWeather,rs as gistOpening,es as gistText,$N as globToRegExp,gd as goalDraftAllowed,fl as grantAllows,R_ as grantChoices,f_ as grantsFromChoices,Qr as grantsNeededFor,Le as graphStats,xd as groundingBlock,tI as groupActionsByOwner,F as groupModels,VO as groupRecords,Qt as groupSegments,jO as hasInsights,pR as hasTag,IR as hasTagTerms,Hp as holdsGrants,Si as hostMatches,Nf as identityCodec,TN as imageAttachmentsOf,oR as indentSelection,YO as insightKindOf,ud as instructionOnLine,yf as isActionable,Kr as isAmbiguousLocation,KR as isBetterTitleSource,d_ as isBuiltin,oS as isCacheable,If as isEncryptedBackup,$n as isFillerSentence,yR as isGenericTitle,PI as isInvalidToolParametersResult,vi as isLocked,AS as isLoopableTool,Op as isModelUnavailable,Xs as isNothing,TO as isPro,C as isQueued,jR as isRecordId,Do as isRedactionToken,R as isRef,Re as isResultHost,fT as isResumable,zA as isSafeSkillPath,ho as isSelfLabel,Tf as isSettled,kS as isSourceGateError,yO as isSpeakerImageValue,qs as isStaleMcpSession,Mo as isSubjectCandidate,mO as isTeam,m as isValidEvent,OA as isValidMemory,qR as isValidStoredRecord,Xt as isYouTubeUrl,kc as jobApplications,wp as jobFromSubtask,jT as jobPostFromForm,mm as jobResults,JT as jobToRole,mn as jobsForEvent,Am as jobsPrompt,Ma as lanesOf,$r as layoutFlowchart,Nc as ledgerKey,RO as licenseFromPayload,Od as lineAt,I as linearize,kt as linesFromItems,pt as linkClaims,da as linkifyCitations,cd as lintSkillPrompt,xe as lintText,Gi as lockedSummary,Gt as looksScanned,ia as makeAccessEvent,CE as makeDispatchProvider,Pm as makeEntry,ME as makeGroupDispatchExecutor,Mc as makeLedgerEntry,zR as makeRecordId,d as makeRef,ei as makeSourceStore,sa as makeStorageTier,ri as manifestText,QE as mapInput,DA as markUsed,LA as matchForForget,Z_ as matchIndexFor,Wd as matchSlashRecipe,Xd as matchSlashSkill,Yd as matchSlashTeam,_n as matchSummary,uR as matchesTagFilter,yI as mcpBackoff,h_ as mcpDispatchProvider,RI as mcpInventorySystem,_I as mcpProvider,dI as mcpSharedSystem,K_ as meetDecisions,Ei as meetReach,tn as meetingEndedTrigger,zO as meetingInsights,on as meetingStartedTrigger,HR as meetingTitlePrompt,xA as memoryBlock,IA as memoryKey,hA as memoryToolSystem,oe as mentionAnswerPrefix,gt as mentionsFrom,Oe as mergeEngineResults,Ve as mergeResearchLanes,$ as mergeSkillPrompt,TI as mergeStamped,Sp as mergeTranscript,sp as messagesFor,r_ as missingStarters,HN as modelAllowed,k as modelSummary,rI as momentBadge,Wn as monitorIntent,P as moveQueued,po as multiSearch,Fc as needForJob,ZA as needsBridge,tS as needsConfirmation,fO as needsRecheck,Tp as newSteps,ji as nextFireAt,jI as nextSidelineIndex,qi as nextWakeAt,Mf as nodeCodec,gS as normModelName,ic as normalizeAgent,ll as normalizeBudget,uc as normalizeCall,qc as normalizeConnection,Um as normalizeEngine,Jm as normalizeEngineSpec,rm as normalizeGate,Rl as normalizeGrants,Bd as normalizeIntent,wT as normalizeJobPost,fA as normalizeMemory,BN as normalizeOrgPolicy,Wm as normalizePolicy,xT as normalizeProject,At as normalizeRecord,dt as normalizeRecords,vp as normalizeRequest,vm as normalizeScm,nd as normalizeSkill,kn as normalizeSpeech,QR as normalizeStoredRecord,Io as normalizeSubject,mR as normalizeTag,cR as normalizeTags,dl as normalizeTeam,_s as normalizeTopic,As as normalizeTopics,XS as normalizeUsage,Gd as normalizeWriterPrefs,W as noteActionItems,X as noteActionLabel,Xn as noteIntent,$O as noteSectionKind,qI as noteUnits,C_ as observeInbox,iO as observeSince,L_ as observeStrip,cn as occurrenceKey,Qi as occurrencesBetween,pE as oneLiner,WS as openAiTranscript,yi as openEntry,Ut as orderLines,ed as originLabel,jA as originOf,Nt as orphanRecords,$d as outlineOf,_E as overlapRank,Qs as packageFromArgs,vt as pageTextFromItems,wf as paletteFor,bt as paragraphsFromLines,nS as parallelEligible,Q as parseAgentMention,zo as parseBriefText,HI as parseBringBack,Fn as parseClock,Pn as parseCommand,Dn as parseDuration,Ns as parseEntities,bc as parseEvaluation,Xl as parseFindings,Zr as parseFlowchart,pm as parseJobs,Y_ as parseJsonl,eR as parseListItem,oI as parseMeetingNotes,MO as parseMeetingText,yn as parseNumberWords,xf as parseOmni,vl as parsePlan,$e as parsePlanTasks,YR as parseRecordId,jn as parseRefinement,Zc as parseRemote,_m as parseReview,KI as parseSideline,Z as parseSkillMention,md as parseSkillVars,Js as parseStructured,Ds as parseSuggestions,OR as parseTagQuery,jt as parseTimedText,wR as parseTitleResponse,ps as parseTopics,vr as parseWeather,hn as parseWhen,Vt as parseYouTubeUrl,g as pendingQueue,VN as permissionMode,an as personJoinedTrigger,ua as phasesOf,nn as phraseTrigger,Yt as pickCaptionTrack,fe as pickResults,SI as pickSections,za as pinnedOrderOf,tr as planAttribution,or as planBody,lO as planLabel,EO as planOf,rr as planParts,co as planQueries,Ze as planSectionSystem,lf as planSync,er as planTitleFor,ES as planToolRound,Gl as plannerPrompt,qN as policyHash,QN as policyLabel,Ac as poolFor,Ja as preferenceFor,dN as prefetchAttachment,AN as prefetchPlan,gN as presenceBlock,NN as presenceDelta,IN as presenceFor,gT as priorWorkFor,Ta as projectChain,yT as projectFromForm,bT as projectProgress,x as promoteQueued,$p as promoteRoles,Da as promptEntries,Bc as proposalFromNeeds,Kc as proposalToAgent,Et as propose,FA as pruneMemories,Sn as questionTrigger,ie as rankLinkTargets,we as rankResearchCards,Po as rankSubjects,uN as reachOf,nr as reachRank,sr as reachSatisfies,ti as readSource,WI as readThread,YT as readyJobs,PA as recall,Jd as recipeInvocationText,jE as recipeParams,tl as recipeToolProvider,al as recipeToolSpec,CA as reconcile,Dr as reconcileEngines,wc as recruitEvents,Gc as recruitForRun,Vc as recruitJob,aa as redactAccessArgs,ft as redactedTokensIn,Ot as redactionCost,WN as redactionTier,Zn as refineSpokenCommand,zn as refinementFormat,Yn as refinementPrompt,Qn as refinementStream,Tt as reject,wn as reminderIntent,AR as removeTag,SN as renderContent,eo as renderFlowchartSvg,IO as renderMarkdown,Vs as repairJson,rA as replaceAll,oA as replaceAllInRange,eA as replaceMatch,W_ as replay,Xa as requirementsFor,Wa as requirementsForStep,Be as researchRelevance,He as researchSnippet,hI as resetMcp,f as resolveRef,wI as resolveSidelineTarget,Ff as resolveSince,Co as resolveSubjects,Tc as resolveTeam,Jf as resolveTheme,Bs as responseFormat,nE as resultToolSpec,Rp as resumeTeam,dm as reviewPrompt,ws as rewriteJson,Se as roleById,T_ as roleCardId,n_ as rosterRows,cm as roundBudget,BS as roundCap,CN as roundCount,lm as roundJobs,LN as roundMinutes,cS as roundSignature,XN as routeAllowed,hc as routeFor,la as routeGraph,me as routeTeam,wO as rowTime,dT as runFromEvents,P_ as runLanes,ZE as runPlan,Em as runProject,$E as runRecipe,oE as runResultQuery,MT as runState,dp as runTeam,lS as runToolRound,vS as runTurnLoop,LS as runWithFailover,ve as salientTerms,qa as sameModelKey,rd as sameSkillOrigin,RR as sameTags,ts as sameUtterance,Vn as scheduleIntent,Ol as scmAllows,hi as sealEntry,bi as searchEntries,vE as searchResultsToText,$R as searchTextFor,lI as sectionHash,sI as sectionValue,SR as selectionStats,YN as settingLocked,qn as settleRefinement,Lm as sha256,rE as shieldToolResult,oi as shortUrl,BR as shouldAutoTitle,ZI as sidelinePath,oN as sidelineToolProvider,Va as signalsFrom,uA as similarity,O_ as skillChoices,qA as skillFiles,qd as skillInvocationLabel,Qd as skillInvocationOf,od as skillIsStale,ld as skillVar,dd as skillVarGuidance,Td as skillVarPattern,jd as slashCommandInsert,Vd as slashCommandItems,NA as slotOf,lc as slugAgentId,kl as slugTeamName,of as snippetOf,p_ as soloTeam,BO as sortRecords,GO as sortStamp,fI as sourceCitationSystem,yS as sourceGate,hS as sourceGuardFor,ai as sourceId,QI as sourceOf,li as sourcePolicyFor,FS as sourcePolicySettings,Ti as sourceUrlsOf,Ra as sourcesFromToolText,Ct as spanningQuestions,PO as speakerBreakdown,kO as speakerLabeller,gO as speakerStats,xO as speakerTimeline,NT as spendOf,x_ as spendRows,pS as stableToolCallKey,Sf as stampOf,cc as starterAgents,e_ as starterTeam,Fl as starterTeams,wS as stepResultText,uf as streamCodec,yo as stripQualifiers,No as subjectKey,uo as subjectTokens,_d as substituteSkillVars,Gp as subtaskFromRequest,CR as suggestExistingTags,ko as suggestMerges,pd as suggestSkillVar,xs as suggestionsFormat,Ps as suggestionsPrompt,Fs as suggestionsStream,hm as summarize,gc as summarizeEngine,JO as summarySections,le as supportsSubagents,Lt as surveyCorpus,rt as synthesisPrompt,gR as tagFacets,LR as tagsSearchText,Bp as takeUp,Kp as takeUpLine,Xp as taskTree,Tm as teamForRound,yl as teamFromForm,o_ as teamHealth,zd as teamInvocationText,qp as teamLanes,Qp as teamLine,t_ as teamShape,Mp as teamToolProvider,gp as teamToolSpec,Cp as teamToolTimeoutMs,__ as teamsWithSolos,FI as testMcpServer,Wf as themeStylesheet,VI as threadManifest,Wp as threadRows,xa as threadTitle,XI as threadToolProvider,ha as threadTree,Pa as threadsOf,Pt as thresholdSweep,pO as tierFor,qm as tierOf,zt as timedTextUrl,Hn as timerIntent,rn as timerTrigger,vR as titleFromDate,bR as titleFromParticipants,kR as titleFromSummary,UR as titleFromTopics,Ki as toB64,Yl as toBriefClaims,EN as toChatMessages,Xf as toCssVars,ef as toIndexEntry,Gs as toJsonSchema,z_ as toJsonl,Ar as toModelSchema,dr as toModelSchemas,lN as toMultimodalMessages,ZR as toSearchRecord,aR as toggleLinePrefix,nR as toggleLink,dR as toggleTag,iR as toggleTask,tR as toggleWrap,Un as tokenize,_S as toolMadeProgress,jr as toolNeedFor,II as toolStatus,$s as toolTraits,Ge as topicTerms,sn as topicTrigger,cs as topicsFormat,ms as topicsPrompt,Ts as topicsSchema,ds as topicsStream,aS as traitsIndex,ea as transcriptFromTracks,z as triggerQueryAt,VE as trimDescription,Ce as trimGraph,QA as trustOf,Fa as turnsOf,Ks as unfence,Di as unlockVault,de as unwrapRedirect,lr as upcast,Tr as upcastAll,yA as upcastMemory,ad as upcastSkill,id as upcastSkills,c_ as upsertAgents,Tl as usageOf,uE as validateAction,ac as validateAgent,El as validateBudget,cr as validateCapability,Qc as validateConnection,Ym as validateEngineSpec,ki as validateEntry,T as validateEvent,em as validateGate,pr as validateInvocation,HT as validateJobPost,PT as validateProject,YE as validateRecipe,zi as validateSchedule,td as validateSkill,Al as validateTeam,oo as validateView,to as validateViewInvocation,no as validateWidget,so as validateWidgetMessage,uI as vaultWidgetSystem,Fm as verifyAttested,xm as verifyChain,AO as verifyEntitlement,ZN as verifyPolicyToken,dO as verifySignedToken,Jt as videoMetaFromPlayerResponse,ao as viewResult,Mt as vocabularyDrift,En as voiceCommandTrigger,It as wantedPages,hf as wantsModel,MI as wantsVaultGuidance,Bl as waves,fN as weatherFollowupPlace,RN as weatherPlace,nN as weatherToolProvider,br as weatherUrl,Ke as webQuery,GE as webSearchToolProvider,i_ as whereItWorks,NI as widgetAuthoringSystem,Eo as widgetIcon,ae as wikiQueryAt,Rt as wikilinksIn,ST as withBoardTool,gE as withGuidance,MN as withPresence,tE as withResultShield,cT as withRunCache,cN as withSourceTool,KS as withToolSystem,_O as withinFreeLimit,US as withinReach,tf as wordCount,De as wordDiff,yp as workLogEvidence,Fp as workLogFor,hp as workLogText,rp as worktreeDirFor,Id as writerAffordance,Dd as writerRequest,Ld as writerTail};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chatpanel/events",
3
- "version": "0.108.1",
3
+ "version": "0.110.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",
@@ -143,7 +143,9 @@
143
143
  "./web-search-tool.js": "./web-search-tool.js",
144
144
  "./web-search.js": "./web-search.js",
145
145
  "./widget.js": "./widget.js",
146
- "./policy.js": "./policy.js"
146
+ "./policy.js": "./policy.js",
147
+ "./presence.js": "./presence.js",
148
+ "./prefetch.js": "./prefetch.js"
147
149
  },
148
150
  "files": [
149
151
  "LICENSE",
@@ -208,6 +210,8 @@
208
210
  "order.js",
209
211
  "pdf-layout.js",
210
212
  "policy.js",
213
+ "presence.js",
214
+ "prefetch.js",
211
215
  "promotion.js",
212
216
  "queue.js",
213
217
  "reach.js",
package/prefetch.js ADDED
@@ -0,0 +1,3 @@
1
+ const w=/(\bhow(?:'s| is| was|s) (?:the )?(?:weather|forecast|temperature)\b|\bwhat(?:'s| is|s) (?:the )?(?:weather|forecast|temperature)\b|\b(?:weather|forecast|temperature) (?:in|for|at|around|near)\b|\bis it (?:raining|snowing|hot|cold|warm|sunny|cloudy|windy)\b|\b(?:will|does) it (?:rain|snow)\b|\bhow (?:hot|cold|warm|humid|windy) is it\b|^\s*(?:weather|forecast)\b|\b(?:weather|forecast)\s*\??\s*$)/i,u=/\b(right now|now|today|tonight|this (?:morning|afternoon|evening|weekend|week)|tomorrow|currently|at the moment|these days|later)\b/gi,f=new Set(["here","there","home","outside","my location","my area","my city","where i am","it","that"]),p=8;function o(n){return String(n||"").replace(u," ").replace(/[?!.,;:]+$/g,"").replace(/^\s*(the|in|at|for|around|near|of)\s+/i,"").replace(/\s+/g," ").trim()}const d=/\b(how|what|what's|whats|is|are|was|will|do|does|can|should|why|when|the|a|an|tell|me|there|here|it|like|about)\b/i;function i(n){const e=n.toLowerCase();return e.length>=2&&e.length<=60&&!f.has(e)&&!d.test(e)&&!/^(weather|forecast|temperature)$/.test(e)&&/[\p{L}]/u.test(e)&&e.split(/\s+/).length<=5}function b(n){const e=String(n||"").trim();if(!w.test(e))return"";let t=/\b(?:in|at|for|around|near)\s+([^?!.;]+?)(?:\s+(?:right now|now|today|tonight|tomorrow|currently|this \w+))*\s*[?!.]*$/i.exec(e);return t&&i(o(t[1]))||(t=/^(?:what(?:'s| is) the\s+)?([\p{L}][\p{L}\s,.'-]{1,60}?)\s+(?:weather|forecast|temperature)\b/iu.exec(e),t&&i(o(t[1])))||(t=/\b(?:weather|forecast|temperature)\s*[:\-]?\s+([\p{L}][\p{L}\s,.'-]{1,60}?)\s*[?!.]*$/iu.exec(e),t&&i(o(t[1])))?o(t[1]):""}const m=/\b(summari[sz]e|explain|try|again|retry|do|make|write|show|tell|open|read|find|search|help|stop|continue|go|list|give|send|run|check|fix|thanks|thank|yes|no|please|this|that|my|page|note|file|meeting|chat)\b/i,c=/^(?:(?:and|also|ok|okay|now|then|so)[\s,]*)*(?:what about|how about|how(?:'s| is|s) it(?: like)?|what(?:'s| is|s) it(?: like)?|how(?:'s| is|s)|what(?:'s| is|s))\b[\s,]*/i;function g(n,e){if(!e||e.kind!=="weather")return"";let t=String(n||"").trim().replace(/[?!.]+$/,"").trim();if(!t||t.split(/\s+/).length>p)return"";const a=c.test(t)||/^(?:and|also|ok|okay|now|then|so)[\s,]+(?:in|at|for|around|near)\s+/i.test(t)||/^(?:in|at|for|around|near)\s+/i.test(t);t=t.replace(c,"").replace(/^(?:(?:and|also|ok|okay|now|then|so)[\s,]*)*/i,"").replace(/^(?:like\s+)?(?:in|at|for|around|near)\s+/i,"").trim();const r=o(t);return!r||!a&&r.split(/\s+/).length>2||!i(r)||m.test(r)?"":r}function y({text:n="",previous:e=null,reach:t=new Set}={}){const a=t instanceof Set?t:new Set(Array.isArray(t)?t:[]),r=[],h=a.has("find:weather"),l=a.has("weather");if(h||l){const s=b(n)||g(n,e);s&&r.push({kind:"weather",tool:h?"find":"weather",input:h?{action:"weather",args:{location:s}}:{location:s},label:`Weather — ${s}`})}return r}function k(n,e,{now:t=Date.now()}={}){const a=`(Fetched before this turn with ${n.tool}, for this question. Answer from it; do not call ${n.tool} again for the same place.)
2
+
3
+ ${String(e||"")}`;return{id:`prefetch_${n.kind}_${t}`,kind:"prefetch",prefetch:n.kind,title:n.label,text:a,chars:a.length}}export{k as prefetchAttachment,y as prefetchPlan,g as weatherFollowupPlace,b as weatherPlace};
package/presence.js ADDED
@@ -0,0 +1,3 @@
1
+ import{approxTokens as g}from"./sources-retrieval.js";const w=350,O=60,u=6;function K(e,t=[]){const n=new Set;for(const i of e?.specs||[]){const o=i?.name||i?.function?.name;if(!o)continue;n.add(o);const a=(i.parameters||i.function?.parameters||i.input_schema||null)?.properties?.action?.enum;if(Array.isArray(a))for(const c of a)typeof c=="string"&&n.add(`${o}:${c}`)}for(const i of t||[])i&&n.add(String(i));return n}function d(e,t=O){const n=String(e||"").replace(/\s+/g," ").trim();return n.length>t?n.slice(0,t-1).trimEnd()+"…":n}function p(e){const t=Math.max(0,Math.floor(Number(e)||0));return t<20?String(t):`${Math.floor(t/10)*10}+`}function D(e){const t=Math.max(0,Math.floor((Number(e)||0)/6e4));return t<10?`${t} min`:`~${Math.floor(t/5)*5} min`}function T(e){const t=Math.max(0,Math.floor((Number(e)||0)/6e4));return t<1?"just now":t<10?`${t} min ago`:`~${Math.floor(t/5)*5} min ago`}function x(e){try{return new URL(e).hostname.replace(/^www\./,"")}catch{return""}}function S(e){const t=new Date(Number(e)||0);return Number.isFinite(t.getTime())&&t.getTime()>0?t.toISOString().slice(0,10):""}const _=[{kind:"meeting",priority:1,via:["find:meeting_live_transcript","meeting_live_transcript"],applies:e=>!!e.meeting,key:e=>`${e.meeting.id||""}|${d(e.meeting.title)}|${e.meeting.platform||""}`,render:(e,t)=>{const n=e.meeting,i=[];return n.platform&&i.push(String(n.platform)),n.startedAt&&i.push(`${D(t-n.startedAt)} in`),Number(n.segments)>0&&i.push(`${p(n.segments)} captions`),n.lastCaptionAt&&i.push(`last ${T(t-n.lastCaptionAt)}`),n.hasSummary&&i.push("running summary kept"),`Live meeting: "${d(n.title||"Meeting")}"${i.length?` (${i.join(", ")})`:""} — read with find {"action":"meeting_live_transcript"} (args.sinceMinutes for the recent part). Not included here.`}},{kind:"page",priority:2,via:["page:read_page","read_page"],applies:e=>!!e.page&&(e.page.title||e.page.url),key:e=>`${x(e.page.url)}|${d(e.page.title)}`,render:e=>{const t=e.page,n=x(t.url);return`Active tab: "${d(t.title||n||"page")}"${n?` (${n})`:""} — read with page {"action":"read_page"} (args.query on a long page). Not included here.`}},{kind:"sidelines",priority:3,via:["find:history_search","find","history_search"],applies:e=>Array.isArray(e.sidelines)&&e.sidelines.length>0,key:e=>e.sidelines.map(t=>`${t.index}:${t.folded?"f":"o"}`).join(","),render:e=>{const t=e.sidelines.slice(0,u).map(i=>{const o=i.folded?"folded back":"open";return`#${i.index||"?"} "${d(i.title||"sideline",40)}" (${o})`}),n=e.sidelines.length>u?`, +${e.sidelines.length-u} more`:"";return`Sidelines of this thread: ${t.join("; ")}${n} — a sideline is a chat; find {"action":"history_search"} reads one.`}},{kind:"teams",priority:4,via:["team"],applies:e=>Array.isArray(e.teams)&&e.teams.length>0,key:e=>e.teams.map(t=>typeof t=="string"?t:t?.name).filter(Boolean).join(","),render:e=>{const t=e.teams.map(o=>typeof o=="string"?o:o?.name).filter(Boolean),n=t.slice(0,u).join(", "),i=t.length>u?`, +${t.length-u} more`:"";return`Teams & agents you can run: ${n}${i} — team {"action":"run","name":…}; {"action":"describe"} for how.`}},{kind:"notes",priority:5,via:["find:history_search","find","history_search"],applies:e=>e.notes&&Number(e.notes.count)>0,key:e=>p(e.notes.count),render:e=>{const t=(e.notes.recent||[]).slice(0,3).map(n=>`"${d(typeof n=="string"?n:n?.title,40)}"`).filter(n=>n!=='""');return`Notes: ${p(e.notes.count)}${t.length?` (recent: ${t.join(", ")})`:""} — find {"action":"history_search","args":{"query":…}} searches them.`}},{kind:"meetings",priority:6,via:["find:history_list_meetings","history_list_meetings"],applies:e=>e.meetings&&Number(e.meetings.count)>0,key:e=>`${p(e.meetings.count)}|${d(e.meetings.latest?.title,40)}`,render:e=>{const t=e.meetings.latest,n=t?` (latest: "${d(t.title,40)}"${S(t.date)?` ${S(t.date)}`:""})`:"";return`Past meetings: ${p(e.meetings.count)}${n} — find {"action":"history_list_meetings"}.`}},{kind:"skills",priority:7,via:["skill_open"],applies:e=>e.skills&&Number(e.skills.count)>0,key:e=>p(e.skills.count),render:e=>{const t=(e.skills.top||[]).slice(0,3).map(n=>typeof n=="string"?n:n?.name).filter(Boolean);return`Skills: ${p(e.skills.count)}${t.length?` (e.g. ${t.join(", ")})`:""} — skill_open {"name":…} loads one.`}},{kind:"memory",priority:8,via:["memory"],applies:e=>e.memory&&Number(e.memory.count)>0,key:e=>p(e.memory.count),render:e=>`Memory: ${p(e.memory.count)} durable facts about the user — memory {"action":"list"}.`},{kind:"chats",priority:9,via:["find:history_search","find","history_search"],applies:e=>e.chats&&Number(e.chats.count)>0,key:e=>p(e.chats.count),render:e=>`Past chats: ${p(e.chats.count)} — find {"action":"history_search","args":{"scope":"chats"}}.`}],P=Object.freeze(_.map(e=>e.kind)),A="Around this turn (NOT included — read what the question needs, one call):",N="Changed since your last turn:",B={meeting:"Live meeting ended — the transcript is now in past meetings.",page:"Active tab: none readable now.",sidelines:"Sidelines of this thread: none open now."};function v(e,t,n){const i=[],o=[];for(const r of _){if(!r.applies(e))continue;if(!r.via.some(c=>t.has(c))){o.push({kind:r.kind,why:"no reader armed"});continue}const a=`- ${r.render(e,n)}`;i.push({kind:r.kind,priority:r.priority,text:a,key:r.key(e),tokens:g(a)})}return{lines:i,omitted:o}}function E(e,t,n,i){let o=g(e)+t.reduce((a,c)=>a+c.tokens+1,0);const r=[...t];for(;o>n&&r.length>1;){let a=0;for(let l=1;l<r.length;l++)r[l].priority>r[a].priority&&(a=l);const[c]=r.splice(a,1);i.push({kind:c.kind,why:"over budget"}),o-=c.tokens+1}return r}const M=e=>e instanceof Set?e:new Set(Array.isArray(e)?e:[]);function C({facts:e={},reach:t=new Set,budget:n=w,now:i=Date.now()}={}){const{lines:o,omitted:r}=v(e||{},M(t),i);if(!o.length)return{text:"",lines:[],omitted:r,tokens:0,state:{}};const a=E(A,o,n,r),c=[A,...a.map(l=>l.text)].join(`
2
+ `);return{text:c,lines:a.map(({kind:l,text:h,tokens:m})=>({kind:l,text:h,tokens:m})),omitted:r,tokens:g(c),state:Object.fromEntries(a.map(l=>[l.kind,l.key]))}}function R({facts:e={},reach:t=new Set,previous:n=null,budget:i=w,now:o=Date.now()}={}){const r=n&&typeof n=="object"?n:null;if(!r||!Object.keys(r).length)return C({facts:e,reach:t,budget:i,now:o});const{lines:a,omitted:c}=v(e||{},M(t),o),l=new Map(a.map(s=>[s.kind,s])),h=a.filter(s=>r[s.kind]!==s.key),m=[];for(const s of Object.keys(r)){if(l.has(s))continue;const f=_.find($=>$.kind===s);m.push({kind:s,priority:f?f.priority:99,text:`- ${B[s]||`${s}: no longer available.`}`,tokens:0}),m[m.length-1].tokens=g(m[m.length-1].text)}const y=Object.fromEntries(a.map(s=>[s.kind,s.key]));if(!h.length&&!m.length)return{text:"",lines:[],omitted:c,tokens:0,state:y,unchanged:!0};const k=E(N,[...h,...m],i,c),b=[N,...k.map(s=>s.text)].join(`
3
+ `),j=new Set(k.map(s=>s.kind));for(const s of h)!j.has(s.kind)&&r[s.kind]!=null&&(y[s.kind]=r[s.kind]);return{text:b,lines:k.map(({kind:s,text:f,tokens:$})=>({kind:s,text:f,tokens:$})),omitted:c,tokens:g(b),state:y,unchanged:!1}}function I(e,t){const n=String(t||"").trim(),i=Array.isArray(e)?e:[];if(!n)return i;let o=-1;for(let r=i.length-1;r>=0;r--)if(i[r]?.role==="user"){o=r;break}return o<0?i:i.map((r,a)=>a===o?{...r,presence:n}:r)}import{presenceBlock as G}from"./context-attachments.js";export{w as PRESENCE_BUDGET_TOKENS,P as PRESENCE_KINDS,G as presenceBlock,R as presenceDelta,C as presenceFor,K as reachOf,p as roundCount,D as roundMinutes,I as withPresence};
package/team-tool.js CHANGED
@@ -1,2 +1,5 @@
1
- import{validateTeam as q,normalizeTeam as O,describeRole as D,slugTeamName as M}from"./team.js";import{dryRunTeam as S}from"./team-run.js";const I="team",_=t=>(t||[]).filter(d=>d?.name&&d.enabled!==!1&&q(d).ok);function W(t){const d=_(t);return d.length?`Saved teams: ${d.map(n=>`${n.name} (${(n.roles||[]).map(g=>g.id).join(", ")})${n.description?` — ${n.description}`:""}`).join("; ")}.`:"No teams saved yet."}function x(t){const d=Math.max(0,...(t||[]).map(n=>Number(n?.budget?.ms)||0));return Math.max(12e4,(d||10*6e4)+6e4)}function L(t){return{name:I,annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1},timeoutMs:x(t),description:`Saved agent teams — several roles working a request in parallel, merged into one answer. ${W(t)} Actions: {"action":"run","name":"<team>","request":"<what to do>"} runs one (streams; may take a while); {"action":"dry_run","name":"<team>","request":"…"} shows roles, models, tools and budget without running; {"action":"save","team":{…}} proposes a NEW team after a task that would benefit from several roles — the user approves it on a card. {"action":"project","goal":"<what done looks like>","title":"<short name>","doneWhen":"<a check the result can be held to>","budget":{"tokens":200000,"ms":3600000}} hands a GOAL to the executive: it posts jobs, recruits agents from the pool for each, runs them as teams in rounds, reviews the results against done-when, posts follow-ups, asks the user before spending or changing scope, and closes when done-when holds (may take a long while; use it for a goal with several parts, not a question). A team: {"name":"research" (a short identifier: letters, digits, - _; used as /research),"description":"…","roles":[{"id":"researcher","prompt":"…","prefer":"balanced","grants":["data","web"]},{"id":"writer","prompt":"…","prefer":"strong","grants":["none"]}],"merge":"judge","judge":"writer","budget":{"tokens":40000,"ms":300000}}. grants: none | data | web | history | mcp | mcp:<server> | shell | fs:write | scm:read | scm:push | scm:pr. A role may say "agent":"<id>" instead of a prompt to stand for an agent from the pool. merge: judge | converge | concat | first. A budget is required. Order the work with "dependsOn": a role that builds on another's findings (a budget checker on a researcher) lists it, so it runs after and reads the board instead of searching again. The judge does not need a task of its own - the merge is its work.`,parameters:{type:"object",properties:{action:{type:"string",enum:["run","dry_run","save","project"]},goal:{type:"string",description:"For project: the goal, in the user's words — what done looks like."},title:{type:"string",description:"For project: a short name."},doneWhen:{type:"string",description:"For project: the check the result is held to."},budget:{type:"object",description:'For project: {"tokens","ms","usd"} for the whole project.',additionalProperties:!0},name:{type:"string",description:"Team name, for run / dry_run."},request:{type:"string",description:"What the team should do, for run / dry_run."},team:{type:"object",description:"The team to save, for save.",additionalProperties:!0}},required:["action"]}}}function E(t,d){const n=[`${t.name}${t.description?` — ${t.description}`:""}`,`Plan: ${t.plan||"fixed"} · merge: ${t.merge||"concat"}${t.judge?` (judge: ${t.judge})`:""}`];for(const h of d?.roles||t.roles||[])n.push(`• ${D({...h,model:h.label||h.model||void 0})}${h.appointed===!1?" — NO MODEL AVAILABLE":""}`);const g=t.budget||{};return n.push(`Budget: ${Object.entries(g).map(([h,j])=>`${h} ${j}`).join(" · ")}`),n.push("Runs go through your own models and tools; a team may not act on a page. Nothing a team produces lands without you."),n.join(`
2
- `)}const o=t=>JSON.stringify(t);function R({teams:t=[],run:d=null,appoint:n=null,confirmSave:g=null,saveTeam:h=null,resolve:j=null,runProject:v=null}={}){const f=new Map(_(t).map(c=>[c.name,c])),k=c=>typeof j=="function"?j(c):c;let T=null;const w=new Map;return{id:"team",specs:[L(t)],system:[f.size?"Saved agent teams exist (see the `team` tool). When a request is broad enough that several roles would do it better research plus writing, several sources to reconcile run the matching team rather than doing it all in one turn.":"",v?'A GOAL with several parts (a project, not a question) goes to the executive: call the `team` tool with {"action":"project","goal":…,"doneWhen":…} and report what it produced.':"",g&&h?'When the user asks to create, make, set up or save a team (of agents / roles), do not run one: call the `team` tool with {"action":"save","team":{…}} pick roles, prompts, grants and a budget from what they said, and ask only for what you cannot infer. The user approves it on a card.':""].filter(Boolean).join(" "),bind(c){T=c},async execute(c,a){if(c!==I)return o({error:`Unknown tool: ${c}`});const y=String(a?.action||"");if(y==="save"){const s=a?.team&&typeof a.team=="object"?{...a.team,name:M(a.team.name)}:a?.team,e=q(s);if(!e.ok)return o({error:"The team is not valid.",problems:e.errors,hint:'A team needs a name (letters, digits, - _), roles with prompts and grants, and a budget such as {"tokens":40000,"ms":300000}.'});if(f.has(s.name))return o({error:`A team named "${s.name}" already exists. Pick another name.`});if(!g||!h)return o({error:"Saving a team needs the user's approval, which this surface cannot ask for. Describe the team and suggest saving it from the side panel or the desktop."});const u=O(s),i=S(k(u),"",{appoint:n});if(await g(E(u,i),u)!=="allow")return o({error:`The user did not save "${u.name}". Do not propose it again this turn.`,declined:!0});const l={...u,createdAt:Date.now()};return await h(l),f.set(l.name,l),o({saved:l.name,roles:l.roles.map(b=>b.id),hint:`Run it with {"action":"run","name":"${l.name}","request":""} or by typing /${l.name}.`})}if(y==="project"){const s=String(a?.goal||"").trim();if(!s)return o({error:"project needs a goal — what does done look like?"});if(typeof v!="function")return o({error:"This surface cannot run a project. Run a team instead, or describe the jobs."});if(w.has("project")){const m=w.get("project");return o({error:`A project already ran in this turn (${m.projectId}, ${m.status}). Report its result and ask the user how to proceed.`,...m})}let e;try{e=await v({goal:s,title:String(a?.title||"").trim(),doneWhen:String(a?.doneWhen||"").trim(),budget:a?.budget&&typeof a.budget=="object"?a.budget:null,toolset:T})}catch(m){return o({error:m?.message||String(m)})}const u={projectId:e.projectId,status:e.status,rounds:e.rounds,jobs:e.jobs,runs:e.runs,report:e.report,spend:e.spend,why:e.why||void 0};w.set("project",u);const i=e.status==="done"?"Done-when holds and the project is closed. Present the report as the answer; the jobs and their runs are on the board.":e.status==="over-budget"?"The project stopped at its budget; the report so far stands. Say so and ask whether to raise it.":e.status==="failed"?`The project FAILED — ${e.why||"see the jobs"}. Do not start it again this turn; tell the user which job failed and why.`:`The project is ${e.status}${e.why?` — ${e.why}`:""}. Present the report so far and say what is left; do not start it again this turn.`;return o({...u,hint:i})}const p=f.get(String(a?.name||""));if(!p)return o({error:`No team named "${a?.name}".`,available:[...f.keys()]});const $=String(a?.request||"").trim();if(y==="dry_run"){let s;try{s=S(k(p),$,{appoint:n})}catch(e){return o({error:e?.message||String(e)})}return o({name:p.name,ok:s.ok,missing:s.missing,roles:s.roles,plan:s.plan,tasks:s.tasks,merge:s.merge,budget:s.budget})}if(y==="run"){if(!$)return o({error:"run needs a request — what should the team do?"});if(typeof d!="function")return o({error:"This surface cannot run a team."});const s=p.name,e=w.get(s);if(e)return o({error:`The "${p.name}" team already ran in this turn (run ${e.runId}, ${e.status}). Do not run it again, even with a different request: report what it produced — ${e.summary} with its proposal, and ask the user how to proceed.`,runId:e.runId,status:e.status,tasks:e.tasks,proposal:e.proposal});let u;try{u=S(k(p),$,{appoint:n})}catch(r){return o({error:r?.message||String(r)})}if(!u.ok)return o({error:`No model is available for role(s): ${u.missing.join(", ")}.`,roles:u.roles});const i=await d({team:k(p),request:$,toolset:T}),m=(i.board||[]).map(r=>({role:r.role,kind:r.kind,text:r.text,refs:r.refs})),l=(i.tasks||[]).map(r=>({id:r.id,role:r.role,status:r.status,ms:r.ms,findings:(r.findings||[]).length,error:r.error||void 0})),b=l.filter(r=>r.status!=="ok"),A=b.length?b.map(r=>`${r.role} ${r.status}${r.error?` (${r.error})`:""}`).join("; "):`${m.length} findings`;w.set(s,{runId:i.runId,status:i.status,summary:A,tasks:l,proposal:i.proposal});const N=i.status==="over-budget"?"The team stopped at its budget; the proposal is what it had. Say so.":i.status==="failed"?`The run FAILED — ${A}. Do not run the team again this turn. Tell the user exactly which role failed and why, and ask whether to retry, change the team's models in Settings → Teams, or answer without the team.`:b.length?`Some roles did not finish — ${A}. Present the proposal as the team's answer and say which role did not finish; do NOT run the team again this turn.`:void 0;return o({name:p.name,runId:i.runId,status:i.status,proposal:i.proposal,tasks:l,findings:m,usage:i.usage,hint:N})}return o({error:`Unknown action "${y}". Use run, dry_run, save or project.`})}}}export{I as TEAM_TOOL_NAME,E as describeTeamForApproval,R as teamToolProvider,L as teamToolSpec,x as teamToolTimeoutMs};
1
+ import{validateTeam as I,normalizeTeam as _,describeRole as M,slugTeamName as x}from"./team.js";import{dryRunTeam as S}from"./team-run.js";const N="team",q=t=>(t||[]).filter(a=>a?.name&&a.enabled!==!1&&I(a).ok);function D(t){const a=q(t);return a.length?`Saved teams: ${a.map(n=>`${n.name} (${(n.roles||[]).map(p=>p.id).join(", ")})`).join("; ")}.`:"No teams saved yet."}function L(t){const a=q(t);return a.length?a.map(n=>`- ${n.name}: ${(n.roles||[]).map(p=>p.id).join(", ")}${n.description?` — ${n.description}`:""}`).join(`
2
+ `):"No teams saved yet."}const W=`A team: {"name":"research" (a short identifier: letters, digits, - _; used as /research),"description":"…","roles":[{"id":"researcher","prompt":"…","prefer":"balanced","grants":["data","web"]},{"id":"writer","prompt":"","prefer":"strong","grants":["none"]}],"merge":"judge","judge":"writer","budget":{"tokens":40000,"ms":300000}}. grants: none | data | web | history | mcp | mcp:<server> | shell | fs:write | scm:read | scm:push | scm:pr. A role may say "agent":"<id>" instead of a prompt to stand for an agent from the pool. merge: judge | converge | concat | first. A budget is required. Order the work with "dependsOn": a role that builds on another's findings (a budget checker on a researcher) lists it, so it runs after and reads the board instead of searching again. The judge does not need a task of its own - the merge is its work. A project ({"action":"project"}) hands a GOAL to the executive: it posts jobs, recruits agents from the pool for each, runs them as teams in rounds, reviews the results against done-when, posts follow-ups, asks the user before spending or changing scope, and closes when done-when holds.`;function E(t){const a=Math.max(0,...(t||[]).map(n=>Number(n?.budget?.ms)||0));return Math.max(12e4,(a||10*6e4)+6e4)}function F(t){return{name:N,annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1},timeoutMs:E(t),description:`Saved agent teams several roles working a request in parallel, merged into one answer. ${D(t)} Actions: {"action":"run","name":"<team>","request":"<what to do>"} runs one (streams; may take a while); {"action":"dry_run","name":"<team>","request":""} shows roles, models, tools and budget without running; {"action":"save","team":{}} proposes a NEW team after a task that would benefit from several roles the user approves it on a card; {"action":"project","goal":"<what done looks like>","title":"<short name>","doneWhen":"<a check the result can be held to>","budget":{"tokens":200000,"ms":3600000}} hands a GOAL with several parts (not a question) to the executive may take a long while; {"action":"describe"} returns the team format (roles, grants, merge, budget, dependsOn) and each team's description — read it before save or project.`,parameters:{type:"object",properties:{action:{type:"string",enum:["describe","run","dry_run","save","project"]},goal:{type:"string",description:"For project: the goal, in the user's words — what done looks like."},title:{type:"string",description:"For project: a short name."},doneWhen:{type:"string",description:"For project: the check the result is held to."},budget:{type:"object",description:'For project: {"tokens","ms","usd"} for the whole project.',additionalProperties:!0},name:{type:"string",description:"Team name, for run / dry_run."},request:{type:"string",description:"What the team should do, for run / dry_run."},team:{type:"object",description:"The team to save, for save.",additionalProperties:!0}},required:["action"]}}}function P(t,a){const n=[`${t.name}${t.description?` — ${t.description}`:""}`,`Plan: ${t.plan||"fixed"} · merge: ${t.merge||"concat"}${t.judge?` (judge: ${t.judge})`:""}`];for(const h of a?.roles||t.roles||[])n.push(`• ${M({...h,model:h.label||h.model||void 0})}${h.appointed===!1?" NO MODEL AVAILABLE":""}`);const p=t.budget||{};return n.push(`Budget: ${Object.entries(p).map(([h,j])=>`${h} ${j}`).join(" · ")}`),n.push("Runs go through your own models and tools; a team may not act on a page. Nothing a team produces lands without you."),n.join(`
3
+ `)}const o=t=>JSON.stringify(t);function B({teams:t=[],run:a=null,appoint:n=null,confirmSave:p=null,saveTeam:h=null,resolve:j=null,runProject:v=null}={}){const w=new Map(q(t).map(c=>[c.name,c])),k=c=>typeof j=="function"?j(c):c;let T=null;const y=new Map;return{id:"team",specs:[F(t)],system:[w.size?"Saved agent teams exist (see the `team` tool). When a request is broad enough that several roles would do it better — research plus writing, several sources to reconcile — run the matching team rather than doing it all in one turn.":"",v?'A GOAL with several parts (a project, not a question) goes to the executive: call the `team` tool with {"action":"project","goal":…,"doneWhen":…} and report what it produced.':"",p&&h?'When the user asks to create, make, set up or save a team (of agents / roles), do not run one: call the `team` tool with {"action":"save","team":{…}} — pick roles, prompts, grants and a budget from what they said, and ask only for what you cannot infer. The user approves it on a card.':""].filter(Boolean).join(" "),bind(c){T=c},async execute(c,i){if(c!==N)return o({error:`Unknown tool: ${c}`});const f=String(i?.action||"");if(f==="describe")return[W,L(t)].join(`
4
+
5
+ `);if(f==="save"){const s=i?.team&&typeof i.team=="object"?{...i.team,name:x(i.team.name)}:i?.team,e=I(s);if(!e.ok)return o({error:"The team is not valid.",problems:e.errors,hint:'A team needs a name (letters, digits, - _), roles with prompts and grants, and a budget such as {"tokens":40000,"ms":300000}.'});if(w.has(s.name))return o({error:`A team named "${s.name}" already exists. Pick another name.`});if(!p||!h)return o({error:"Saving a team needs the user's approval, which this surface cannot ask for. Describe the team and suggest saving it from the side panel or the desktop."});const u=_(s),d=S(k(u),"",{appoint:n});if(await p(P(u,d),u)!=="allow")return o({error:`The user did not save "${u.name}". Do not propose it again this turn.`,declined:!0});const l={...u,createdAt:Date.now()};return await h(l),w.set(l.name,l),o({saved:l.name,roles:l.roles.map(b=>b.id),hint:`Run it with {"action":"run","name":"${l.name}","request":"…"} or by typing /${l.name}.`})}if(f==="project"){const s=String(i?.goal||"").trim();if(!s)return o({error:"project needs a goal — what does done look like?"});if(typeof v!="function")return o({error:"This surface cannot run a project. Run a team instead, or describe the jobs."});if(y.has("project")){const m=y.get("project");return o({error:`A project already ran in this turn (${m.projectId}, ${m.status}). Report its result and ask the user how to proceed.`,...m})}let e;try{e=await v({goal:s,title:String(i?.title||"").trim(),doneWhen:String(i?.doneWhen||"").trim(),budget:i?.budget&&typeof i.budget=="object"?i.budget:null,toolset:T})}catch(m){return o({error:m?.message||String(m)})}const u={projectId:e.projectId,status:e.status,rounds:e.rounds,jobs:e.jobs,runs:e.runs,report:e.report,spend:e.spend,why:e.why||void 0};y.set("project",u);const d=e.status==="done"?"Done-when holds and the project is closed. Present the report as the answer; the jobs and their runs are on the board.":e.status==="over-budget"?"The project stopped at its budget; the report so far stands. Say so and ask whether to raise it.":e.status==="failed"?`The project FAILED — ${e.why||"see the jobs"}. Do not start it again this turn; tell the user which job failed and why.`:`The project is ${e.status}${e.why?` — ${e.why}`:""}. Present the report so far and say what is left; do not start it again this turn.`;return o({...u,hint:d})}const g=w.get(String(i?.name||""));if(!g)return o({error:`No team named "${i?.name}".`,available:[...w.keys()]});const $=String(i?.request||"").trim();if(f==="dry_run"){let s;try{s=S(k(g),$,{appoint:n})}catch(e){return o({error:e?.message||String(e)})}return o({name:g.name,ok:s.ok,missing:s.missing,roles:s.roles,plan:s.plan,tasks:s.tasks,merge:s.merge,budget:s.budget})}if(f==="run"){if(!$)return o({error:"run needs a request — what should the team do?"});if(typeof a!="function")return o({error:"This surface cannot run a team."});const s=g.name,e=y.get(s);if(e)return o({error:`The "${g.name}" team already ran in this turn (run ${e.runId}, ${e.status}). Do not run it again, even with a different request: report what it produced — ${e.summary} — with its proposal, and ask the user how to proceed.`,runId:e.runId,status:e.status,tasks:e.tasks,proposal:e.proposal});let u;try{u=S(k(g),$,{appoint:n})}catch(r){return o({error:r?.message||String(r)})}if(!u.ok)return o({error:`No model is available for role(s): ${u.missing.join(", ")}.`,roles:u.roles});const d=await a({team:k(g),request:$,toolset:T}),m=(d.board||[]).map(r=>({role:r.role,kind:r.kind,text:r.text,refs:r.refs})),l=(d.tasks||[]).map(r=>({id:r.id,role:r.role,status:r.status,ms:r.ms,findings:(r.findings||[]).length,error:r.error||void 0})),b=l.filter(r=>r.status!=="ok"),A=b.length?b.map(r=>`${r.role} ${r.status}${r.error?` (${r.error})`:""}`).join("; "):`${m.length} findings`;y.set(s,{runId:d.runId,status:d.status,summary:A,tasks:l,proposal:d.proposal});const O=d.status==="over-budget"?"The team stopped at its budget; the proposal is what it had. Say so.":d.status==="failed"?`The run FAILED — ${A}. Do not run the team again this turn. Tell the user exactly which role failed and why, and ask whether to retry, change the team's models in Settings → Teams, or answer without the team.`:b.length?`Some roles did not finish — ${A}. Present the proposal as the team's answer and say which role did not finish; do NOT run the team again this turn.`:void 0;return o({name:g.name,runId:d.runId,status:d.status,proposal:d.proposal,tasks:l,findings:m,usage:d.usage,hint:O})}return o({error:`Unknown action "${f}". Use run, dry_run, save or project.`})}}}export{W as TEAM_MANUAL,N as TEAM_TOOL_NAME,P as describeTeamForApproval,B as teamToolProvider,F as teamToolSpec,E as teamToolTimeoutMs};