@chatpanel/events 0.114.1 → 0.116.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- class a extends Error{constructor(n){super(n),this.name="BackupError"}}const w="chatpanel-backup-encrypted",h=25e4,O=Object.freeze(["brotli","gzip","none"]),b=32768;function f(e){if(typeof Buffer<"u")return Buffer.from(e).toString("base64");let n="";for(let r=0;r<e.length;r+=b)n+=String.fromCharCode.apply(null,e.subarray(r,r+b));return btoa(n)}function l(e){const n=String(e||"");if(typeof Buffer<"u")return new Uint8Array(Buffer.from(n,"base64"));const r=atob(n),o=new Uint8Array(r.length);for(let t=0;t<r.length;t++)o[t]=r.charCodeAt(t);return o}const S=Object.freeze({name:"none",async compress(e){return e},async decompress(e){return e}});function g(e="gzip"){if(typeof CompressionStream>"u"||typeof DecompressionStream>"u")return null;try{new CompressionStream(e),new DecompressionStream(e)}catch{return null}const n=async(r,o)=>{const t=new Blob([r]).stream().pipeThrough(new o(e));return new Uint8Array(await new Response(t).arrayBuffer())};return Object.freeze({name:e,compress:r=>n(r,CompressionStream),decompress:r=>n(r,DecompressionStream)})}function C(e,n="brotli"){if(!e)return null;const r=n==="brotli"?[e.brotliCompressSync,e.brotliDecompressSync]:n==="gzip"?[e.gzipSync,e.gunzipSync]:null;if(!r||!r[0]||!r[1])return null;const[o,t]=r;return Object.freeze({name:n,async compress(c){return new Uint8Array(o(Buffer.from(c)))},async decompress(c){return new Uint8Array(t(Buffer.from(c)))}})}function x({zlib:e=null}={}){return e?C(e,"brotli")||C(e,"gzip")||S:g("brotli")||g("gzip")||S}async function k(e,n,r,o,t){const c=t||globalThis.crypto?.subtle;if(!c)throw new a("no WebCrypto available on this runtime");const i=await c.importKey("raw",new TextEncoder().encode(String(e)),"PBKDF2",!1,["deriveKey"]);return c.deriveKey({name:"PBKDF2",salt:n,iterations:r,hash:"SHA-256"},i,{name:"AES-GCM",length:256},!1,o)}function D(e){return!!e&&typeof e=="object"&&e.type===w}async function U(e,n,{codec:r=null,iterations:o=h,subtle:t=null,random:c=null,version:i=3}={}){if(!n)throw new a("a passphrase is required to encrypt a backup");const p=r||x(),s=c||(T=>globalThis.crypto.getRandomValues(new Uint8Array(T))),u=new TextEncoder().encode(JSON.stringify(e)),y=await p.compress(u),d=s(16),m=s(12),B=await k(n,d,o,["encrypt"],t),A=t||globalThis.crypto.subtle,E=new Uint8Array(await A.encrypt({name:"AES-GCM",iv:m},B,y));return{type:w,version:i,kdf:{iterations:o,salt:f(d)},cipher:"AES-GCM",compression:p.name,iv:f(m),ct:f(E)}}async function K(e,n,{codec:r=null,subtle:o=null}={}){if(!D(e))throw new a("not an encrypted ChatPanel backup");if(!n)throw new a("a passphrase is required to decrypt this backup");const t=l(e.kdf?.salt),c=Number(e.kdf?.iterations)||h,i=await k(n,t,c,["decrypt"],o),p=o||globalThis.crypto?.subtle;if(!p)throw new a("no WebCrypto available on this runtime");let s;try{s=new Uint8Array(await p.decrypt({name:"AES-GCM",iv:l(e.iv)},i,l(e.ct)))}catch{throw new a("wrong passphrase, or the backup file is corrupted")}const u=e.compression||"none";if(u!=="none"){const y=r||x();if(y.name!==u)throw new a(`this backup is ${u}-compressed; supply a matching codec`);s=await y.decompress(s)}return JSON.parse(new TextDecoder().decode(s))}export{a as BackupError,O as COMPRESSIONS,w as ENCRYPTED_TYPE,h as KDF_ITERATIONS,x as bestCodec,K as decryptBackup,U as encryptBackup,l as fromB64,S as identityCodec,D as isEncryptedBackup,C as nodeCodec,g as streamCodec,f as toB64};
1
+ class a extends Error{constructor(t){super(t),this.name="BackupError"}}const S="chatpanel-backup-encrypted",w=25e4,U=Object.freeze(["brotli","gzip","none"]),b=32768;function y(e){if(typeof Buffer<"u")return Buffer.from(e).toString("base64");let t="";for(let n=0;n<e.length;n+=b)t+=String.fromCharCode.apply(null,e.subarray(n,n+b));return btoa(t)}function d(e){const t=String(e||"");if(typeof Buffer<"u")return new Uint8Array(Buffer.from(t,"base64"));const n=atob(t),o=new Uint8Array(n.length);for(let r=0;r<n.length;r++)o[r]=n.charCodeAt(r);return o}const k=Object.freeze({name:"none",async compress(e){return e},async decompress(e){return e}});function C(e="gzip"){if(typeof CompressionStream>"u"||typeof DecompressionStream>"u")return null;try{new CompressionStream(e),new DecompressionStream(e)}catch{return null}const t=async(n,o)=>{const r=new Blob([n]).stream().pipeThrough(new o(e));return new Uint8Array(await new Response(r).arrayBuffer())};return Object.freeze({name:e,compress:n=>t(n,CompressionStream),decompress:n=>t(n,DecompressionStream)})}function x(e,t="brotli"){if(!e)return null;const n=t==="brotli"?[e.brotliCompressSync,e.brotliDecompressSync]:t==="gzip"?[e.gzipSync,e.gunzipSync]:null;if(!n||!n[0]||!n[1])return null;const[o,r]=n;return Object.freeze({name:t,async compress(c){return new Uint8Array(o(Buffer.from(c)))},async decompress(c){return new Uint8Array(r(Buffer.from(c)))}})}function m({zlib:e=null}={}){return e?x(e,"brotli")||x(e,"gzip")||k:C("brotli")||C("gzip")||k}async function h(e,t,n,o,r){const c=r||globalThis.crypto?.subtle;if(!c)throw new a("no WebCrypto available on this runtime");const s=await c.importKey("raw",new TextEncoder().encode(String(e)),"PBKDF2",!1,["deriveKey"]);return c.deriveKey({name:"PBKDF2",salt:t,iterations:n,hash:"SHA-256"},s,{name:"AES-GCM",length:256},!1,o)}function R(e){return!!e&&typeof e=="object"&&e.type===S}async function D(e,t,{codec:n=null,iterations:o=w,subtle:r=null,random:c=null,version:s=3}={}){if(!t)throw new a("a passphrase is required to encrypt a backup");const i=n||m(),p=c||(v=>globalThis.crypto.getRandomValues(new Uint8Array(v))),u=new TextEncoder().encode(JSON.stringify(e)),l=await i.compress(u),f=p(16),g=p(12),B=await h(t,f,o,["encrypt"],r),E=r||globalThis.crypto.subtle,T=new Uint8Array(await E.encrypt({name:"AES-GCM",iv:g},B,l));return{type:S,version:s,kdf:{iterations:o,salt:y(f)},cipher:"AES-GCM",compression:i.name,iv:y(g),ct:y(T)}}async function K(e,t,{codec:n=null,subtle:o=null}={}){if(!R(e))throw new a("not an encrypted ChatPanel backup");if(!t)throw new a("a passphrase is required to decrypt this backup");const r=d(e.kdf?.salt),c=Number(e.kdf?.iterations)||w,s=await h(t,r,c,["decrypt"],o),i=o||globalThis.crypto?.subtle;if(!i)throw new a("no WebCrypto available on this runtime");let p;try{p=new Uint8Array(await i.decrypt({name:"AES-GCM",iv:d(e.iv)},s,d(e.ct)))}catch{throw new a("wrong passphrase, or the backup file is corrupted")}const u=e.compression||"none";if(u!=="none"){const l=n||m();if(l.name!==u)throw new a(`this backup is ${u}-compressed; supply a matching codec`);p=await l.decompress(p)}return JSON.parse(new TextDecoder().decode(p))}const A="chatpanel-record-encrypted";async function N(e,{salt:t=null,iterations:n=w,subtle:o=null,random:r=null}={}){if(!e)throw new a("a passphrase is required to derive a backup key");const s=t?typeof t=="string"?d(t):t:(r||(p=>globalThis.crypto.getRandomValues(new Uint8Array(p))))(16),i=await h(e,s,n,["encrypt","decrypt"],o);return Object.freeze({key:i,salt:y(s),iterations:n})}async function M(e,t,{codec:n=null,subtle:o=null,random:r=null}={}){if(!t?.key)throw new a("sealRecord needs a key from deriveBackupKey");const c=n||m(),s=r||(f=>globalThis.crypto.getRandomValues(new Uint8Array(f))),i=o||globalThis.crypto?.subtle;if(!i)throw new a("no WebCrypto available on this runtime");const p=await c.compress(new TextEncoder().encode(JSON.stringify(e))),u=s(12),l=new Uint8Array(await i.encrypt({name:"AES-GCM",iv:u},t.key,p));return{type:A,kdf:{iterations:t.iterations,salt:t.salt},cipher:"AES-GCM",compression:c.name,iv:y(u),ct:y(l)}}function O(e){return!!e&&typeof e=="object"&&e.type===A}async function P(e,t,{codec:n=null,subtle:o=null}={}){if(!O(e))throw new a("not a sealed ChatPanel record");if(!t?.key)throw new a("openRecord needs a key from deriveBackupKey");if(e.kdf?.salt!==t.salt)throw new a("this record was sealed under a different salt; derive a key for it");const r=o||globalThis.crypto?.subtle;if(!r)throw new a("no WebCrypto available on this runtime");let c;try{c=new Uint8Array(await r.decrypt({name:"AES-GCM",iv:d(e.iv)},t.key,d(e.ct)))}catch{throw new a("wrong passphrase, or the record is corrupted")}const s=e.compression||"none";if(s!=="none"){const i=n||m();if(i.name!==s)throw new a(`this record is ${s}-compressed; supply a matching codec`);c=await i.decompress(c)}return JSON.parse(new TextDecoder().decode(c))}function G(e){const t=new Map;return n=>{const o=n?.kdf?.salt,r=Number(n?.kdf?.iterations)||w;if(!o)throw new a("a sealed record carries no salt");const c=`${r}:${o}`;return t.has(c)||t.set(c,e(o,r)),t.get(c)}}export{a as BackupError,U as COMPRESSIONS,S as ENCRYPTED_TYPE,w as KDF_ITERATIONS,A as RECORD_TYPE,m as bestCodec,K as decryptBackup,N as deriveBackupKey,D as encryptBackup,d as fromB64,k as identityCodec,R as isEncryptedBackup,O as isSealedRecord,G as keyCache,x as nodeCodec,P as openRecord,M as sealRecord,C as streamCodec,y as toB64};
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,equipmentFor as qr}from"./tool-need.js";import{parseFlowchart as $r,layoutFlowchart as eo,renderFlowchartSvg as ro}from"./flowchart.js";import{validateView as to,validateViewInvocation as ao,viewResult as io}from"./view.js";import{validateWidget as so,validateWidgetMessage as So,effectiveGrants as Eo,widgetIcon as lo,WIDGET_SURFACES as To}from"./widget.js";import{fuseRRF as co,planQueries as po,multiSearch as _o}from"./rrf.js";import{SUBJECT_KINDS as Ro,DEFAULT_THRESHOLD as fo,MAX_SUBJECTS as Oo,MAX_SUBJECT_CHARS as Io,normalizeSubject as No,subjectKey as uo,subjectTokens as Mo,isSubjectCandidate as go,aliasMap as Co,resolveSubjects as Lo,earnsBrief as Po,rankSubjects as xo,REDACTION_TOKEN_TYPES as Do,isRedactionToken as Fo,SELF_LABELS as ho,isSelfLabel as yo,stripQualifiers as ko,suggestMerges as Uo}from"./entity.js";import{BRIEF_STATES as vo,CLAIM_KINDS as Go,MAX_CLAIMS as Bo,MAX_CLAIM_REFS as Ko,MAX_BRIEF_RECORDS as Ho,MAX_BRIEF_CHARS as wo,contentHash as Vo,briefId as Xo,briefToText as Wo,briefTerms as Jo,briefLinks as Yo,checkKnowledgeInvariants as zo,parseBriefText as jo}from"./knowledge.js";import{deriveBrief as qo,deriveBriefs as Zo,driftedRefs as $o}from"./knowledge-derive.js";import{SYNTHESIS_SCHEMA as rt,synthesisPrompt as ot,claimsFromSynthesis as tt,MAX_SYNTHESIS_CLAIMS as at,MAX_EXCERPTS as it,MAX_EXCERPT_CHARS as nt}from"./synthesis.js";import{PROPOSAL_STATES as St,SUPERSEDE_OVERLAP as Et,propose as lt,accept as Tt,reject as mt,diffProposal as ct,converge as pt,linkClaims as _t}from"./promotion.js";import{normalizeRecord as At,normalizeRecords as Rt,wikilinksIn as ft,redactedTokensIn as Ot,redactionCost as It,wantedPages as Nt,orphanRecords as ut,duplicateTitles as Mt,vocabularyDrift as gt,mentionsFrom as Ct,spanningQuestions as Lt,surveyCorpus as Pt,thresholdSweep as xt,formatSurvey as Dt,NEAR_TITLE_DISTANCE as Ft,SPAN_MIN_TERMS as ht}from"./curate.js";import{PDF_MAX_CHARS as kt,linesFromItems as Ut,orderLines as bt,paragraphsFromLines as vt,pageTextFromItems as Gt,looksScanned as Bt,buildPdfDocument as Kt}from"./pdf-layout.js";import{YOUTUBE_HOSTS as wt,TRANSCRIPT_MAX_CHARS as Vt,parseYouTubeUrl as Xt,isYouTubeUrl as Wt,captionTracksFromPlayerResponse as Jt,videoMetaFromPlayerResponse as Yt,pickCaptionTrack as zt,timedTextUrl as jt,parseTimedText as Qt,groupSegments as qt,formatTimestamp as Zt,formatTranscript as $t,buildTranscriptDocument as ea,transcriptFromTracks as ra}from"./media-transcript.js";import{ACCESS_LOG_VERSION as ta,ACCESS_LOG_MAX as aa,redactAccessArgs as ia,makeAccessEvent as na,createAccessLog as sa,makeStorageTier as Sa,formatBytes as Ea}from"./observability.js";import{routeGraph as Ta,projectChain as ma}from"./route-graph.js";import{defineAdapter as pa,createAdapterRegistry as _a,AdapterError as da}from"./adapters.js";import{linkifyCitations as Ra,sourcesFromToolText as fa,createCitationCollector as Oa,RETRIEVAL_TOOLS as Ia}from"./citations.js";import{buildTrajectory as ua,phasesOf as Ma,lanesOf as ga,filterEntries as Ca,displayName as La,ENTRY_KINDS as Pa,threadsOf as xa,threadTitle as Da,promptEntries as Fa,turnsOf as ha,threadTree as ya}from"./trajectory.js";import{createTurnRunner as Ua,defineLoop as ba,LOOP_KINDS as va,LoopError as Ga}from"./loop.js";import{defineModel as Ka,defineMiddleware as Ha,defineRouteStrategy as wa,createModelRouter as Va,signalsFrom as Xa,requirementsFor as Wa,requirementsForStep as Ja,preferenceFor as Ya,failoverOrder as za,pinnedOrderOf as ja,FAILOVER_CLASS_GAP as Qa,FAILOVER_CAPABILITY_GAP as qa,sameModelKey as Za,RouterError as $a}from"./router.js";import{makeSourceStore as ri,manifestText as oi,shortUrl as ti,readSource as ai,sourceId as ii}from"./sources-retrieval.js";import{classifySource as si,extractUrls as Si,hostMatches as Ei,meetReach as li,sourcePolicyFor as Ti,sourceUrlsOf as mi,DEFAULT_INTERNAL_PATTERNS as ci,INTERNAL_PATTERN_CATALOG as pi}from"./sources.js";import{defineRule as di,createRuleEngine as Ai,SUPPRESSED as Ri,RuleError as fi}from"./rules.js";import{VAULT_VERSION as Ii,KDF_ITERATIONS as Ni,KDF_HASH as ui,DEFAULT_LOCK_MS as Mi,VaultError as gi,MAX_TITLE_CHARS as Ci,MAX_NOTE_CHARS as Li,MAX_SECRET_CHARS as Pi,MAX_ENTRIES as xi,createVault as Di,unlockVault as Fi,deriveKey as hi,sealEntry as yi,openEntry as ki,validateEntry as Ui,entryMeta as bi,searchEntries as vi,isLocked as Gi,lockedSummary as Bi,canAddEntry as Ki,toB64 as Hi,fromB64 as wi}from"./vault.js";import{SCHEDULE_KINDS as Xi,TRIGGER_KINDS as Wi,JOB_ACTIONS as Ji,MISSED_POLICIES as Yi,ScheduleError as zi,validateSchedule as ji,nextFireAt as Qi,occurrencesBetween as qi,nextWakeAt as Zi,defineTrigger as $i,createTriggerRegistry as en,BUILTIN_TRIGGERS as rn,timerTrigger as on,meetingStartedTrigger as tn,meetingEndedTrigger as an,personJoinedTrigger as nn,phraseTrigger as sn,topicTrigger as Sn,questionTrigger as En,voiceCommandTrigger as ln,defineJob as Tn,dueJobs as mn,jobsForEvent as cn,occurrenceKey as pn,clipText as _n,matchSummary as dn}from"./schedule.js";import{defineMeetingAnalyzer as Rn,createAnalyzerRegistry as fn,CADENCES as On,AnalyzerError as In}from"./meeting-analyzers.js";import{DEFAULT_WAKE as un,MAX_COMMANDS_PER_DELTA as Mn,DAYPART_HOUR as gn,VoiceIntentError as Cn,compileWake as Ln,findWakeCommand as Pn,parseCommand as xn,commandsFromSegments as Dn,parseDuration as Fn,parseClock as hn,parseWhen as yn,parseNumberWords as kn,normalizeSpeech as Un,tokenize as bn,editDistance as vn,defineVoiceIntent as Gn,createVoiceIntentRegistry as Bn,defaultVoiceIntents as Kn,BUILTIN_VOICE_INTENTS as Hn,timerIntent as wn,reminderIntent as Vn,scheduleIntent as Xn,noteIntent as Wn,monitorIntent as Jn,REFINEMENT_SCHEMA as Yn,refinementPrompt as zn,refinementFormat as jn,parseRefinement as Qn,refinementStream as qn,settleRefinement as Zn,refineSpokenCommand as $n,isFillerSentence as es,gistText as rs,gistOpening as os,commandLooksFinished as ts,sameUtterance as as,createUtteranceGate as is,UTTERANCE_SETTLE_MS as ns,UTTERANCE_DANGLING_MS as ss}from"./voice-intents.js";import{MAX_TOPICS as Es,MAX_TOPIC_CHARS as ls,TOPICS_SCHEMA as Ts,topicsSchema as ms,topicsPrompt as cs,topicsFormat as ps,parseTopics as _s,normalizeTopic as ds,normalizeTopics as As,topicsStream as Rs,ENTITY_TYPES as fs,ENTITIES_SCHEMA as Os,entitiesPrompt as Is,entitiesFormat as Ns,parseEntities as us,coerceEntities as Ms,entitiesStream as gs,MAX_SUGGESTIONS as Cs,MAX_SUGGESTION_CHARS as Ls,SUGGESTIONS_SCHEMA as Ps,suggestionsPrompt as xs,suggestionsFormat as Ds,parseSuggestions as Fs,suggestionsStream as hs}from"./extraction.js";import{FIELD_TYPES as ks,RESPONSE_MODES as Us,StructuredError as bs,defineSchema as vs,describeSchema as Gs,toJsonSchema as Bs,responseFormat as Ks,unfence as Hs,findJson as ws,rewriteJson as Vs,repairJson as Xs,isNothing as Ws,coerce as Js,parseStructured as Ys,createStructuredStream as zs}from"./structured.js";import{explainMcpError as Qs,packageFromArgs as qs,isStaleMcpSession as Zs}from"./mcp-errors.js";import{toolTraits as eS,bareToolName as rS,canRunConcurrently as oS,isCacheable as tS,needsConfirmation as aS,traitsIndex as iS,effectiveToolName as nS,parallelEligible as sS,PARALLEL_LOCAL_RE as SS}from"./tool-traits.js";import{planToolRound as lS,runToolRound as TS}from"./tool-round.js";import{createToolLoopGuard as cS,roundSignature as pS,stableToolCallKey as _S,toolMadeProgress as dS,isLoopableTool as AS,blockedToolResult as RS,OBSERVATION_TOOLS as fS,INPUT_PROGRESS_TOOLS as OS}from"./tool-loop-guard.js";import{classifyFailure as NS,createModelHealth as uS,COOLDOWN_MS as MS,UNAVAILABLE_REASONS as gS,normModelName as CS}from"./model-health.js";import{runWithFailover as PS,failoverExhausted as xS,FAILOVER_MAX_ATTEMPTS as DS}from"./failover.js";import{sourcePolicySettings as hS,sourceGuardFor as yS,sourceGate as kS,isSourceGateError as US,withinReach as bS}from"./source-gate.js";import{runTurnLoop as GS,createCallRunner as BS,roundCap as KS,withToolSystem as HS,describeCall as wS,stepResultText as VS,addUsage as XS,normalizeUsage as WS,openAiTranscript as JS,anthropicTranscript as YS,DEFAULT_MAX_ROUNDS as zS,DEFAULT_MAX_FINISH_TRIES as jS,FINISH_NUDGES as QS,LOOPING_NUDGE as qS,EXHAUSTED_NOTE as ZS,ROUND_SEPARATOR as $S}from"./turn-loop.js";import{createResultStore as rE,shieldToolResult as oE,runResultQuery as tE,withResultShield as aE,describeShape as iE,compactValue as nE,resultToolSpec as sE,RESULT_TOOL_NAME as SE,DEFAULT_SHIELD as EE,DEFAULT_STORE as lE}from"./tool-result.js";import{findTools as mE,findToolsResult as cE,findActionArgs as pE,oneLiner as _E,overlapRank as dE,FIND_ACTION as AE}from"./tool-discovery.js";import{buildToolset as fE}from"./toolset.js";import{DESCRIBE_ACTION as IE,actionMenu as NE,buildGroupDispatchSpec as uE,validateAction as ME,makeGroupDispatchExecutor as gE,withGuidance as CE,makeDispatchProvider as LE,estimateTokens as PE}from"./tool-dispatch.js";import{FIND_TOOL_NAME as DE,FIND_DESCRIPTION as FE,FIND_RESIDENT as hE,findDispatchProvider as yE}from"./find-tool.js";import{WEB_SEARCH_TOOL_NAME as UE,WEB_SEARCH_TOOL_SYSTEM as bE,WEB_SEARCH_SPEC as vE,searchResultsToText as GE,webSearchToolProvider as BE}from"./web-search-tool.js";import{compressToolSpec as HE,compressToolSpecs as wE,compressionStats as VE,trimDescription as XE,COMPRESSION_MODES as WE,DEFAULT_COMPRESSION as JE}from"./tool-schema.js";import{validateRecipe as zE,expandRecipe as jE,recipeParams as QE,mapInput as qE,dryRunRecipe as ZE,runPlan as $E,runRecipe as el,RecipeError as rl,RECIPE_MODES as ol}from"./recipe.js";import{recipeToolProvider as al,recipeToolSpec as il,describeRecipeForApproval as nl,RECIPE_TOOL_NAME as sl}from"./recipe-tool.js";import{createBudget as El,validateBudget as ll,normalizeBudget as Tl,usageOf as ml,BudgetError as cl,BUDGET_DIMENSIONS as pl}from"./budget.js";import{defineTeam as dl,validateTeam as Al,normalizeTeam as Rl,normalizeGrants as fl,grantAllows as Ol,scmAllows as Il,describeRole as Nl,TeamError as ul,ROLE_MODES as Ml,MERGE_POLICIES as gl,PLAN_MODES as Cl,GRANTABLE as Ll,WORK_GRANTS as Pl,GRANT_RE as xl,AGENT_REF_RE as Dl,STARTER_TEAMS as Fl,starterTeams as hl,blankTeam as yl,teamFromForm as kl,slugTeamName as Ul}from"./team.js";import{fixedPlan as vl,parsePlan as Gl,plannerPrompt as Bl,waves as Kl,breakCycles as Hl,TEAM_PLAN_SCHEMA as wl}from"./team-plan.js";import{createBoard as Xl,parseFindings as Wl,boardText as Jl,findingsInstruction as Yl,toBriefClaims as zl,FINDINGS_SCHEMA as jl,FINDING_KINDS as Ql,THREAD_KINDS as ql,THREAD_STATUSES as Zl,POST_KINDS as $l,POST_STATUSES as eT,ASK_TYPES as rT,emptyBoardState as oT,foldBoard as tT,findingsOf as aT}from"./team-board.js";import{boardToolProvider as nT,boardToolSpec as sT,createAnswerBox as ST,withBoardTool as ET,BOARD_TOOL_NAME as lT,DEFAULT_ASK_TIMEOUT_MS as TT}from"./board-tool.js";import{createRunCache as cT,withRunCache as pT}from"./team-cache.js";import{emptyRun as dT,foldRun as AT,runFromEvents as RT,checkpointFrom as fT,isResumable as OT,LIVE_RUN_STATUSES as IT,RESUMABLE_RUN_STATUSES as NT,spendOf as uT,describeSpend as MT,runState as gT,priorWorkFor as CT,STALLED_AFTER_MS as LT}from"./team-record.js";import{validateProject as xT,normalizeProject as DT,defineProject as FT,canTransition as hT,blankProject as yT,projectFromForm as kT,emptyProjectRecord as UT,foldProject as bT,projectProgress as vT,ProjectError as GT,PROJECT_STATUSES as BT,PROJECT_ID_RE as KT}from"./project.js";import{validateJob as wT,normalizeJob as VT,defineJob as XT,canTransition as WT,applyAll as JT,jobToRole as YT,readyJobs as zT,blankJob as jT,jobFromForm as QT,JobError as qT,JOB_STATUSES as ZT,JOB_ID_RE as $T}from"./job.js";import{validateGate as rm,normalizeGate as om,effectiveGate as tm,gateAllows as am,DEFAULT_GATE as im,AUTONOMY as nm,HUMAN_FLAGS as sm,CHECKS as Sm}from"./gate.js";import{runProject as lm,roundJobs as Tm,teamForRound as mm,jobResults as cm,roundBudget as pm,parseJobs as _m,parseReview as dm,jobsPrompt as Am,reviewPrompt as Rm,PROJECT_JOBS_SCHEMA as fm,PROJECT_REVIEW_SCHEMA as Om,ProjectRunError as Im,EXECUTIVE as Nm,MAX_JOBS_PER_ROUND as um,MAX_ROUNDS as Mm,PROJECT_RUN_STATUSES as gm}from"./project-run.js";import{canonical as Lm,sha256 as Pm,makeEntry as xm,verifyChain as Dm,attest as Fm,verifyAttested as hm,summarize as ym,fit as km,adjustSummary as Um,normalizeEngine as bm,engineKey as vm,normalizeScm as Gm,SCORECARD_ENTRY_KINDS as Bm,ROLE_KINDS as Km,SCORECARD_VERSION as Hm,ENGINE_KINDS as wm}from"./scorecard.js";import{ENGINE_KINDS as Xm,ROUTE_PREFERS as Wm,normalizePolicy as Jm,normalizeEngineSpec as Ym,validateEngineSpec as zm,engineRef as jm,engineKeyOf as Qm,describeEngine as qm,tierOf as Zm}from"./engine.js";import{AGENT_ID_RE as ec,APPLIES_TO as rc,EGRESS_CLASSES as oc,ASSISTANT_ID as tc,AgentError as ac,validateAgent as ic,normalizeAgent as nc,defineAgent as sc,assistantAgent as Sc,engineOf as Ec,describeAgent as lc,slugAgentId as Tc,resolveTeam as mc,STARTER_AGENTS as cc,starterAgents as pc,blankAgent as _c,agentFromForm as dc,poolFor as Ac}from"./agent.js";import{LEDGER_VERSION as fc,LEDGER_ENTRY_KINDS as Oc,DECLINE_REASONS as Ic,WITHDRAW_AFTER as Nc,ledgerKey as uc,normalizeCall as Mc,makeLedgerEntry as gc,summarizeEngine as Cc}from"./model-ledger.js";import{RECRUIT_SCHEMA as Pc,MIN_FIT as xc,engineRow as Dc,engineRows as Fc,needForJob as hc,routeFor as yc,engineWorth as kc,applications as Uc,evaluatorPrompt as bc,parseEvaluation as vc,decide as Gc,recruitForRun as Bc,proposalFromNeeds as Kc,proposalToAgent as Hc,carveBudget as wc,recruitEvents as Vc,recruitJob as Xc}from"./recruit.js";import{DEFAULT_MIN_CALLS as Jc,cardOverride as Yc,applyCard as zc}from"./model-candidates.js";import{SCM_KINDS as Qc,validateConnection as qc,normalizeConnection as Zc,parseRemote as $c,connectionFor as ep,branchFor as rp,worktreeDirFor as op,credentialEnv as tp,describeConnection as ap,blankConnection as ip,connectionFromForm as np}from"./scm-connection.js";import{messagesFor as Sp,mergeTranscript as Ep,clipTranscript as lp,clipMessage as Tp,newSteps as mp,continuationNote as cp,createControl as pp,STEP_MAX_CHARS as _p,TASK_TRANSCRIPT_MAX_CHARS as dp}from"./team-task.js";import{runTeam as Rp,resumeTeam as fp,dryRunTeam as Op,isModelUnavailable as Ip,TeamRunError as Np,RUN_STATUSES as up}from"./team-run.js";import{teamToolProvider as gp,teamToolSpec as Cp,teamToolTimeoutMs as Lp,describeTeamForApproval as Pp,TEAM_TOOL_NAME as xp,TEAM_MANUAL as Dp}from"./team-tool.js";import{workLogFor as hp,workLogText as yp,workLogEvidence as kp,describeCall as Up,WORKLOG_KINDS as bp}from"./team-worklog.js";import{normalizeRequest as Gp,subtaskFromRequest as Bp,takeUp as Kp,takeUpLine as Hp,holdsGrants as wp,jobFromSubtask as Vp,extendDependents as Xp,taskTree as Wp,threadRows as Jp,MAX_SUBTASKS as Yp,MAX_DEPTH as zp,MIN_TAKEUP_FIT as jp}from"./team-subtask.js";import{teamLine as qp,teamLanes as Zp}from"./team-trail.js";import{promoteRoles as e_,starterTeam as r_,missingStarters as o_,teamHealth as t_,teamShape as a_,describeTeamShape as i_,whereItWorks as n_,rosterRows as s_,agentKind as S_,agentHue as E_,agentColor as l_,agentInitials as T_,roleCardId as m_,cardNumbers as c_,upsertAgents as p_,soloTeam as __,teamsWithSolos as d_,builtinOrg as A_,isBuiltin as R_,grantChoices as f_,grantsFromChoices as O_,skillChoices as I_,GRANT_INFO as N_,SOLO_BUDGET as u_,TEAM_SHAPES as M_,ROSTER_KINDS as g_}from"./team-org.js";import{observeInbox as L_,observeStrip as P_,runLanes as x_,spendRows as D_,engineStrip as F_}from"./team-observe.js";import{mcpDispatchProvider as y_,MCP_TOOL_NAME as k_}from"./mcp-dispatch.js";import{createManifest as b_,ManifestError as v_,SOURCES as G_}from"./manifest.js";import{createKernel as K_,meetDecisions as H_,KernelError as w_,REQUIRED_PLUGINS as V_,ALLOW_ALL as X_}from"./kernel.js";import{replay as J_,formatReport as Y_,parseJsonl as z_,toJsonl as j_}from"./harness.js";import{compileQuery as q_,findMatches as Z_,matchIndexFor as $_,expandReplacement as ed,replaceMatch as rd,replaceAll as od,replaceAllInRange as td,MAX_MATCHES as ad}from"./text-search.js";import{DATA_SCOPES as nd}from"./scopes.js";import{MEMORY_VERSION as Sd,MEMORY_KINDS as Ed,MEMORY_KIND_NAMES as ld,AMBIENT_KINDS as Td,MAX_MEMORY_CHARS as md,MIN_MEMORY_CHARS as cd,DEFAULT_MAX_MEMORIES as pd,DEFAULT_BLOCK_CHARS as _d,SAME_FACT as dd,MEMORY_TOOL_SPEC as Ad,MEMORY_UPCASTERS as Rd,MemoryError as fd,normalizeMemory as Od,isValidMemory as Id,memoryKey as Nd,slotOf as ud,similarity as Md,containment as gd,candidatesFrom as Cd,reconcile as Ld,matchForForget as Pd,recall as xd,memoryBlock as Dd,markUsed as Fd,pruneMemories as hd,memoryToolSystem as yd,upcastMemory as kd,sameMemory as Ud,AMBIENT_MAX_WORDS as bd}from"./memory.js";import{SOURCE_TRUST as Gd,SkillSourceError as Bd,defineSkillSource as Kd,createSkillSourceRegistry as Hd}from"./skill-sources.js";import{SKILL_MANIFEST_VERSION as Vd,SKILL_CONTEXTS as Xd,SKILL_HISTORY_SCOPES as Wd,SKILL_MCP_MODES as Jd,SKILL_TRUST as Yd,SKILL_FILE_KINDS as zd,SKILL_UPCASTERS as jd,SkillManifestError as Qd,isSafeSkillPath as qd,originOf as Zd,trustOf as $d,skillFiles as eA,needsBridge as rA,declaredAccess as oA,originLabel as tA,sameSkillOrigin as aA,skillIsStale as iA,validateSkill as nA,upcastSkill as sA,upcastSkills as SA,normalizeSkill as EA}from"./skill-manifest.js";import{SKILL_VARS as TA,SKILL_VAR_NAMES as mA,skillVar as cA,skillVarPattern as pA,parseSkillVars as _A,lintSkillPrompt as dA,suggestSkillVar as AA,substituteSkillVars as RA,expandSkillPrompt as fA,skillVarGuidance as OA,SkillVarError as IA}from"./skill-vars.js";import{lineAt as uA,writerAffordance as MA,INSTRUCTION_RE as gA,instructionOnLine as CA,GOAL_MIN_NEW as LA,goalDraftAllowed as PA,createSpendMeter as xA,writerTail as DA,draftSeparator as FA,groundingBlock as hA,writerRequest as yA,AUTOCOMPLETE_SYSTEM as kA,AUTOCOMPLETE_MAX_TOKENS as UA,AUTOCOMPLETE_TEMPERATURE as bA,clipCompletion as vA,GEARS as GA,WRITER_PREFS as BA,WRITER_PREF_DEFAULTS as KA,normalizeWriterPrefs as HA,normalizeIntent as wA}from"./cowriter-writer.js";import{SLASH_TYPING_RE as XA,enabledSkills as WA,slashCommandItems as JA,matchSlashSkill as YA,matchSlashRecipe as zA,recipeInvocationText as jA,matchSlashTeam as QA,teamInvocationText as qA,slashCommandInsert as ZA,skillInvocationOf as $A,skillInvocationLabel as eR}from"./slash-commands.js";import{outlineOf as oR,parseListItem as tR,continueList as aR,indentSelection as iR,toggleWrap as nR,toggleLinePrefix as sR,toggleTask as SR,toggleLink as ER,docStats as lR,selectionStats as TR}from"./markdown-authoring.js";import{MAX_TAG_LENGTH as cR,MAX_TAGS as pR,normalizeTag as _R,normalizeTags as dR,hasTag as AR,addTag as RR,removeTag as fR,toggleTag as OR,sameTags as IR,formatTag as NR,parseTagQuery as uR,hasTagTerms as MR,formatTagQuery as gR,matchesTagFilter as CR,filterByTags as LR,tagFacets as PR,suggestExistingTags as xR,tagsSearchText as DR}from"./tags.js";import{UNTITLED_MEETING as hR,MAX_TITLE_LENGTH as yR,TITLE_RULES_VERSION as kR,cleanTitle as UR,isGenericTitle as bR,titleFromSummary as vR,titleFromTopics as GR,titleFromParticipants as BR,titleFromDate as KR,deriveMeetingTitle as HR,shouldAutoTitle as wR,isBetterTitleSource as VR,meetingTitlePrompt as XR,parseTitleResponse as WR}from"./titles.js";import{RECORD_KINDS as YR,MAX_TITLE_LEN as zR,LibraryError as jR,parseRecordId as QR,makeRecordId as qR,isRecordId as ZR,normalizeStoredRecord as $R,isValidStoredRecord as ef,toSearchRecord as rf,searchTextFor as of,toIndexEntry as tf,deriveTitle as af,snippetOf as nf,wordCount as sf}from"./library.js";import{CLOCK_TOLERANCE_MS as Ef,SyncError as lf,stampOf as Tf,decide as mf,planSync as cf,isSettled as pf,forkConflict as _f,advanceBases as df}from"./sync-plan.js";import{ENCRYPTED_TYPE as Rf,COMPRESSIONS as ff,BackupError as Of,KDF_ITERATIONS as If,encryptBackup as Nf,decryptBackup as uf,isEncryptedBackup as Mf,identityCodec as gf,streamCodec as Cf,nodeCodec as Lf,bestCodec as Pf}from"./backup-envelope.js";import{OMNI_MODES as Df,OMNI_GRAMMAR as Ff,parseOmni as hf,extractFilters as yf,resolveSince as kf,wantsModel as Uf,isActionable as bf}from"./omni.js";import{THEMES as Gf,LIGHT as Bf,DARK as Kf,PALETTES as Hf,SHAPE as wf,TOKEN_NAMES as Vf,TOKEN_ROLES as Xf,paletteFor as Wf,cssVarName as Jf,toCssVars as Yf,themeStylesheet as zf,resolveTheme as jf}from"./theme.js";import{PLANS as qf,API_BASE as Zf,ENDPOINTS as $f,ENTITLEMENT_PUBLIC_JWK as eO,UPGRADE_URL as rO,FEATURE_TIER as oO,PRO_FEATURES as tO,TEAM_FEATURES as aO,FREE_LIMITS as iO,COUNTED as nO,freeCap as sO,observeSince as SO,RECHECK_INTERVAL_MS as EO,EntitlementError as lO,checkoutUrl as TO,planOf as mO,planLabel as cO,isPro as pO,isTeam as _O,can as dO,tierFor as AO,withinFreeLimit as RO,verifyEntitlement as fO,verifySignedToken as OO,licenseFromPayload as IO,needsRecheck as NO}from"./entitlement.js";import{renderMarkdown as MO,defaultLinkPolicy as gO}from"./markdown-render.js";import{parseMeetingText as LO,speakerStats as PO,densityRibbon as xO}from"./meeting-text.js";import{speakerBreakdown as FO,speakerTimeline as hO,formatTalkTime as yO,SPEAKER_SLOTS as kO}from"./meeting-shape.js";import{isSpeakerImageValue as bO,speakerLabeller as vO}from"./meeting-shape.js";import{SORT_MODES as BO,SORT_LABELS as KO,sortStamp as HO,sortRecords as wO,filterRecords as VO,dayBucket as XO,rowTime as WO,groupRecords as JO}from"./record-list.js";import{INSIGHT_KINDS as zO,summarySections as jO,insightKindOf as QO,meetingInsights as qO,hasInsights as ZO}from"./meeting-insights.js";import{demd as eI,NOTE_SECTIONS as rI,noteSectionKind as oI,MOMENT_BADGES as tI,momentBadge as aI,parseMeetingNotes as iI,groupActionsByOwner as nI}from"./meeting-insights.js";import{PREF_SECTIONS as SI,PREF_SECTION_IDS as EI,sectionValue as lI,pickSections as TI,applySections as mI,sectionHash as cI,mergeStamped as pI,changedSections as _I}from"./client-prefs.js";import{McpClient as AI,mcpProvider as RI}from"./mcp-client.js";import{mcpSharedSystem as OI,mcpInventorySystem as II,sourceCitationSystem as NI,combineSystemPrompt as uI,toolStatus as MI,widgetAuthoringSystem as gI,vaultWidgetSystem as CI,wantsVaultGuidance as LI}from"./tool-hints.js";import{adaptiveToolRetryHint as xI,createAdaptiveToolPolicy as DI,isInvalidToolParametersResult as FI}from"./adaptive-tool-policy.js";import{getMcpProviders as yI,testMcpServer as kI,resetMcp as UI,mcpBackoff as bI}from"./mcp-manager.js";import{SIDELINE_COMMANDS as GI,BRINGBACK_COMMAND as BI,THREAD_TOOL_NAME as KI,SIDELINE_SLASH_ITEMS as HI,THREAD_TOOL_SPEC as wI,parseSideline as VI,parseBringBack as XI,resolveSidelineTarget as WI,threadManifest as JI,threadToolProvider as YI,readThread as zI,briefPrompt as jI,foldBackNote as QI,foldNotes as qI,nextSidelineIndex as ZI,sourceOf as $I,noteUnits as eN,sidelinePath as rN,foldBackFor as oN,SIDELINE_TOOL_NAME as tN,SIDELINE_TOOL_SPEC as aN,sidelineToolProvider as iN}from"./sideline.js";import{WEATHER_TOOL_NAME as sN,WEATHER_TOOL_SYSTEM as SN,weatherToolProvider as EN}from"./weather-tool.js";import{renderContent as TN,toChatMessages as mN,toMultimodalMessages as cN,imageAttachmentsOf as pN,deferAttachedSources as _N,withSourceTool as dN,SOURCE_TOOL_SPEC as AN}from"./context-attachments.js";import{prefetchPlan as fN,prefetchAttachment as ON,weatherPlace as IN,weatherFollowupPlace as NN}from"./prefetch.js";import{createFetchedStore as MN,withFetchedMemo as gN,fetchKey as CN,fetchTitle as LN,fetchedAsSources as PN,fetchedFacts as xN,defaultTtl as DN,FETCHED_TTL_MS as FN}from"./fetched.js";import{windowOf as yN,fitFor as kN,keepRecentFor as UN,minWindowFor as bN,isContextLimitError as vN,FIT_HEADROOM as GN}from"./context-window.js";import{planCompaction as KN,compactionPrompt as HN,compactionRecord as wN,messagesAfter as VN,systemWithSummary as XN,compactable as WN,COMPACTION_SYSTEM as JN}from"./compaction.js";import{presenceFor as zN,presenceDelta as jN,reachOf as QN,withPresence as qN,presenceBlock as ZN,roundCount as $N,roundMinutes as eu,PRESENCE_BUDGET_TOKENS as ru,PRESENCE_KINDS as ou}from"./presence.js";import{PolicyError as au,POLICY_VERSION as iu,POLICY_TOKEN_TYPE as nu,REDACTION_TIERS as su,LOCKABLE as Su,FEATURES as Eu,PERMISSION_MODES as lu,PRODUCT_HOSTS as Tu,normalizeOrgPolicy as mu,endpointAllowed as cu,modelAllowed as pu,agentAllowed as _u,permissionMode as du,routeAllowed as Au,redactionTier as Ru,egressAllowed as fu,settingLocked as Ou,featureEnabled as Iu,applyPolicyToSettings as Nu,policyLabel as uu,policyHash as Mu,verifyPolicyToken as gu,globToRegExp as Cu}from"./policy.js";export{aa as ACCESS_LOG_MAX,ta as ACCESS_LOG_VERSION,i as ACTOR_KINDS,ec as AGENT_ID_RE,Dl as AGENT_REF_RE,X_ as ALLOW_ALL,a as ALL_TYPES,Td as AMBIENT_KINDS,bd as AMBIENT_MAX_WORDS,Zf as API_BASE,rc as APPLIES_TO,rT as ASK_TYPES,tc as ASSISTANT_ID,UA as AUTOCOMPLETE_MAX_TOKENS,kA as AUTOCOMPLETE_SYSTEM,bA as AUTOCOMPLETE_TEMPERATURE,nm as AUTONOMY,da as AdapterError,ac as AgentError,In as AnalyzerError,If as BACKUP_KDF_ITERATIONS,lT as BOARD_TOOL_NAME,vo as BRIEF_STATES,BI as BRINGBACK_COMMAND,pl as BUDGET_DIMENSIONS,rn as BUILTIN_TRIGGERS,Hn as BUILTIN_VOICE_INTENTS,Of as BackupError,cl as BudgetError,On as CADENCES,Sm as CHECKS,Go as CLAIM_KINDS,s as CLASSES,Ef as CLOCK_TOLERANCE_MS,JN as COMPACTION_SYSTEM,ff as COMPRESSIONS,WE as COMPRESSION_MODES,MS as COOLDOWN_MS,nO as COUNTED,ke as COWRITER_SYSTEM,Ue as COWRITER_TEMPERATURE,o as CURRENT_VERSION,Kf as DARK,nd as DATA_SCOPES,gn as DAYPART_HOUR,Ic as DECLINE_REASONS,TT as DEFAULT_ASK_TIMEOUT_MS,_d as DEFAULT_BLOCK_CHARS,JE as DEFAULT_COMPRESSION,im as DEFAULT_GATE,ci as DEFAULT_INTERNAL_PATTERNS,Mi as DEFAULT_LOCK_MS,jS as DEFAULT_MAX_FINISH_TRIES,pd as DEFAULT_MAX_MEMORIES,zS as DEFAULT_MAX_ROUNDS,Jc as DEFAULT_MIN_CALLS,EE as DEFAULT_SHIELD,lE as DEFAULT_STORE,fo as DEFAULT_THRESHOLD,un as DEFAULT_WAKE,IE as DESCRIBE_ACTION,S as EFFECTS,E as EGRESS,oc as EGRESS_CLASSES,Rf as ENCRYPTED_TYPE,$f as ENDPOINTS,hr as ENGINE_KINDS,Xm as ENGINE_SPEC_KINDS,Os as ENTITIES_SCHEMA,eO as ENTITLEMENT_PUBLIC_JWK,fs as ENTITY_TYPES,Pa as ENTRY_KINDS,t as EVENT_TYPES,Nm as EXECUTIVE,ZS as EXHAUSTED_NOTE,lO as EntitlementError,l as EventError,qa as FAILOVER_CAPABILITY_GAP,Qa as FAILOVER_CLASS_GAP,DS as FAILOVER_MAX_ATTEMPTS,Eu as FEATURES,oO as FEATURE_TIER,FN as FETCHED_TTL_MS,ks as FIELD_TYPES,jl as FINDINGS_SCHEMA,Ql as FINDING_KINDS,AE as FIND_ACTION,FE as FIND_DESCRIPTION,hE as FIND_RESIDENT,DE as FIND_TOOL_NAME,QS as FINISH_NUDGES,GN as FIT_HEADROOM,iO as FREE_LIMITS,GA as GEARS,LA as GOAL_MIN_NEW,Ll as GRANTABLE,N_ as GRANT_INFO,xl as GRANT_RE,sm as HUMAN_FLAGS,OS as INPUT_PROGRESS_TOOLS,zO as INSIGHT_KINDS,gA as INSTRUCTION_RE,pi as INTERNAL_PATTERN_CATALOG,Or as INVARIANTS,Ji as JOB_ACTIONS,$T as JOB_POST_ID_RE,ZT as JOB_POST_STATUSES,qT as JobPostError,ui as KDF_HASH,Ni as KDF_ITERATIONS,w_ as KernelError,Oc as LEDGER_ENTRY_KINDS,fc as LEDGER_VERSION,Bf as LIGHT,IT as LIVE_RUN_STATUSES,Su as LOCKABLE,qS as LOOPING_NUDGE,va as LOOP_KINDS,jR as LibraryError,Ga as LoopError,wo as MAX_BRIEF_CHARS,Ho as MAX_BRIEF_RECORDS,Bo as MAX_CLAIMS,Ko as MAX_CLAIM_REFS,Mn as MAX_COMMANDS_PER_DELTA,zp as MAX_DEPTH,xi as MAX_ENTRIES,it as MAX_EXCERPTS,nt as MAX_EXCERPT_CHARS,ue as MAX_GRAPH_NODES,um as MAX_JOBS_PER_ROUND,ad as MAX_MATCHES,md as MAX_MEMORY_CHARS,Li as MAX_NOTE_CHARS,Mm as MAX_ROUNDS,Pi as MAX_SECRET_CHARS,Oo as MAX_SUBJECTS,Io as MAX_SUBJECT_CHARS,Yp as MAX_SUBTASKS,Cs as MAX_SUGGESTIONS,Ls as MAX_SUGGESTION_CHARS,at as MAX_SYNTHESIS_CLAIMS,pR as MAX_TAGS,cR as MAX_TAG_LENGTH,Ci as MAX_TITLE_CHARS,zR as MAX_TITLE_LEN,yR as MAX_TITLE_LENGTH,Es as MAX_TOPICS,ls as MAX_TOPIC_CHARS,k_ as MCP_TOOL_NAME,Ed as MEMORY_KINDS,ld as MEMORY_KIND_NAMES,Ad as MEMORY_TOOL_SPEC,Rd as MEMORY_UPCASTERS,Sd as MEMORY_VERSION,gl as MERGE_POLICIES,xc as MIN_FIT,cd as MIN_MEMORY_CHARS,jp as MIN_TAKEUP_FIT,Yi as MISSED_POLICIES,tI as MOMENT_BADGES,v_ as ManifestError,AI as McpClient,fd as MemoryError,Ft 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,rI as NOTE_SECTIONS,fS as OBSERVATION_TOOLS,Ff as OMNI_GRAMMAR,Df as OMNI_MODES,Hf as PALETTES,SS as PARALLEL_LOCAL_RE,kt as PDF_MAX_CHARS,lu as PERMISSION_MODES,qf as PLANS,Je as PLAN_AUTHORS,ze as PLAN_DECOMPOSE_MAX_TOKENS,Ye as PLAN_DECOMPOSE_SYSTEM,je as PLAN_DECOMPOSE_TEMPERATURE,Cl as PLAN_MODES,We as PLAN_ROLES,Qe as PLAN_SECTION_MAX_TOKENS,qe as PLAN_SECTION_TEMPERATURE,nu as POLICY_TOKEN_TYPE,iu as POLICY_VERSION,$l as POST_KINDS,eT as POST_STATUSES,SI as PREF_SECTIONS,EI as PREF_SECTION_IDS,ru as PRESENCE_BUDGET_TOKENS,ou as PRESENCE_KINDS,Tu as PRODUCT_HOSTS,KT as PROJECT_ID_RE,fm as PROJECT_JOBS_SCHEMA,Om as PROJECT_REVIEW_SCHEMA,gm as PROJECT_RUN_STATUSES,BT as PROJECT_STATUSES,St as PROPOSAL_STATES,tO as PRO_FEATURES,au as PolicyError,GT as ProjectError,Im as ProjectRunError,ir as REACH,EO as RECHECK_INTERVAL_MS,ol as RECIPE_MODES,sl as RECIPE_TOOL_NAME,wm as RECORD_ENGINE_KINDS,YR as RECORD_KINDS,Pc as RECRUIT_SCHEMA,su as REDACTION_TIERS,Do as REDACTION_TOKEN_TYPES,Yn as REFINEMENT_SCHEMA,_ as REF_KINDS,Lr as REGISTRY_STATES,V_ as REQUIRED_PLUGINS,d as RESOLUTION,Us as RESPONSE_MODES,_e as RESULTS_PER_ENGINE,SE as RESULT_TOOL_NAME,NT as RESUMABLE_RUN_STATUSES,Ia as RETRIEVAL_TOOLS,Km as ROLE_KINDS,Ml as ROLE_MODES,g_ as ROSTER_KINDS,$S as ROUND_SEPARATOR,Wm as ROUTE_PREFERS,up as RUN_STATUSES,rl as RecipeError,$a as RouterError,fi as RuleError,dd as SAME_FACT,Xi as SCHEDULE_KINDS,Qc as SCM_KINDS,n as SCOPE_KINDS,Bm as SCORECARD_ENTRY_KINDS,Hm as SCORECARD_VERSION,pe as SEARCH_ENGINES,ho as SELF_LABELS,wf as SHAPE,GI as SIDELINE_COMMANDS,HI as SIDELINE_SLASH_ITEMS,tN as SIDELINE_TOOL_NAME,aN as SIDELINE_TOOL_SPEC,Xd as SKILL_CONTEXTS,zd as SKILL_FILE_KINDS,Wd as SKILL_HISTORY_SCOPES,Vd as SKILL_MANIFEST_VERSION,Jd as SKILL_MCP_MODES,Yd as SKILL_TRUST,jd as SKILL_UPCASTERS,TA as SKILL_VARS,mA as SKILL_VAR_NAMES,XA as SLASH_TYPING_RE,u_ as SOLO_BUDGET,KO as SORT_LABELS,BO as SORT_MODES,G_ as SOURCES,AN as SOURCE_TOOL_SPEC,Gd as SOURCE_TRUST,ht as SPAN_MIN_TERMS,kO as SPEAKER_SLOTS,LT as STALLED_AFTER_MS,cc as STARTER_AGENTS,Fl as STARTER_TEAMS,_p as STEP_MAX_CHARS,Ro as SUBJECT_KINDS,Ps as SUGGESTIONS_SCHEMA,Et as SUPERSEDE_OVERLAP,Ri as SUPPRESSED,se as SWARM_ROLES,rt as SYNTHESIS_SCHEMA,zi as ScheduleError,yr as SearchEngineError,Qd as SkillManifestError,Bd as SkillSourceError,IA as SkillVarError,bs as StructuredError,lf as SyncError,dp as TASK_TRANSCRIPT_MAX_CHARS,aO as TEAM_FEATURES,Dp as TEAM_MANUAL,wl as TEAM_PLAN_SCHEMA,M_ as TEAM_SHAPES,xp as TEAM_TOOL_NAME,Gf as THEMES,ql as THREAD_KINDS,Zl as THREAD_STATUSES,KI as THREAD_TOOL_NAME,wI as THREAD_TOOL_SPEC,kR as TITLE_RULES_VERSION,Vf as TOKEN_NAMES,Xf as TOKEN_ROLES,Ts as TOPICS_SCHEMA,Vt as TRANSCRIPT_MAX_CHARS,Wi as TRIGGER_KINDS,ul as TeamError,Np as TeamRunError,Yr as ToolGroupError,gS as UNAVAILABLE_REASONS,hR as UNTITLED_MEETING,Er as UPCASTERS,rO as UPGRADE_URL,ss as UTTERANCE_DANGLING_MS,ns as UTTERANCE_SETTLE_MS,Ii as VAULT_VERSION,gi as VaultError,Cn as VoiceIntentError,Hr as WEATHER_HOST,wr as WEATHER_TIMEOUT_MS,sN as WEATHER_TOOL_NAME,SN as WEATHER_TOOL_SYSTEM,vE as WEB_SEARCH_SPEC,UE as WEB_SEARCH_TOOL_NAME,bE as WEB_SEARCH_TOOL_SYSTEM,To as WIDGET_SURFACES,Nc as WITHDRAW_AFTER,bp as WORKLOG_KINDS,Pl as WORK_GRANTS,BA as WRITER_PREFS,KA as WRITER_PREF_DEFAULTS,Vr as WeatherError,wt as YOUTUBE_HOSTS,Tt as accept,NE as actionMenu,xI as adaptiveToolRetryHint,RR as addTag,XS as addUsage,Um as adjustSummary,df as advanceBases,_u as agentAllowed,l_ as agentColor,dc as agentFromForm,E_ as agentHue,T_ as agentInitials,S_ as agentKind,q as agentMentionAt,Co as aliasMap,YS as anthropicTranscript,JT as applyAll,zc as applyCard,ye as applyEdits,Nu as applyPolicyToSettings,mI as applySections,Te as appoint,Br as areaLabel,Sc as assistantAgent,Fr as attemptOrder,Fm as attest,rS as bareToolName,Pf as bestCodec,_c as blankAgent,ip as blankConnection,jT as blankJobPost,yT as blankProject,yl as blankTeam,RS as blockedToolResult,Jl as boardText,nT as boardToolProvider,sT as boardToolSpec,rp as branchFor,Hl as breakCycles,Xo as briefId,Yo as briefLinks,jI as briefPrompt,Jo as briefTerms,Wo as briefToText,uE as buildGroupDispatchSpec,Me as buildNoteGraph,Kt as buildPdfDocument,de as buildSearchUrl,fE as buildToolset,ua as buildTrajectory,ea as buildTranscriptDocument,A_ as builtinOrg,dO as can,Ki as canAddEntry,WT as canJobPostTransition,hT as canProjectTransition,oS as canRunConcurrently,_r as canSatisfy,Cd as candidatesFrom,Lm as canonical,Jt as captionTracksFromPlayerResponse,c_ as cardNumbers,Yc as cardOverride,wc as carveBudget,u as causesAreWellFormed,_I as changedSections,fr as checkInvariants,zo as checkKnowledgeInvariants,TO as checkoutUrl,fT as checkpointFrom,tt as claimsFromSynthesis,NS as classifyFailure,Ee as classifyModel,si as classifySource,UR as cleanTitle,vA as clipCompletion,Tp as clipMessage,_n as clipText,lp as clipTranscript,Js as coerce,Ms as coerceEntities,uI as combineSystemPrompt,Y as commandLineAt,ts as commandLooksFinished,Dn as commandsFromSegments,nE as compactValue,WN as compactable,HN as compactionPrompt,wN as compactionRecord,N as compareEvents,q_ as compileQuery,Ln as compileWake,HE as compressToolSpec,wE as compressToolSpecs,VE as compressionStats,ep as connectionFor,np as connectionFromForm,gd as containment,Vo as contentHash,cp as continuationNote,aR as continueList,pt as converge,sa as createAccessLog,_a as createAdapterRegistry,DI as createAdaptiveToolPolicy,fn as createAnalyzerRegistry,ST as createAnswerBox,c as createAppender,Mr as createBlobStore,Xl as createBoard,El as createBudget,BS as createCallRunner,Oa as createCitationCollector,pp as createControl,MN as createFetchedStore,K_ as createKernel,ur as createLogStore,b_ as createManifest,Nr as createMemoryAdapter,uS as createModelHealth,Va as createModelRouter,Cr as createRegistry,rE as createResultStore,Ai as createRuleEngine,cT as createRunCache,Hd as createSkillSourceRegistry,xA as createSpendMeter,zs as createStructuredStream,Jr as createToolGroupRegistry,cS as createToolLoopGuard,en as createTriggerRegistry,Ua as createTurnRunner,is as createUtteranceGate,Di as createVault,Bn as createVoiceIntentRegistry,tp as credentialEnv,Jf as cssVarName,XO as dayBucket,mf as decide,Gc as decideRecruit,oA as declaredAccess,uf as decryptBackup,gO as defaultLinkPolicy,y as defaultModelId,DN as defaultTtl,Kn as defaultVoiceIntents,_N as deferAttachedSources,pa as defineAdapter,sc as defineAgent,Tn as defineJob,XT as defineJobPost,ba as defineLoop,Rn as defineMeetingAnalyzer,Ha as defineMiddleware,Ka as defineModel,FT as defineProject,wa as defineRouteStrategy,di as defineRule,vs as defineSchema,xr as defineSearchEngine,Kd as defineSkillSource,dl as defineTeam,Wr as defineToolGroup,$i as defineTrigger,Gn as defineVoiceIntent,eI as demd,xO as densityRibbon,L as dequeue,qo as deriveBrief,Zo as deriveBriefs,hi as deriveKey,HR as deriveMeetingTitle,af as deriveTitle,lc as describeAgent,Up as describeCall,ap as describeConnection,qm as describeEngine,nl as describeRecipeForApproval,Nl as describeRole,Gs as describeSchema,iE as describeShape,MT as describeSpend,Pp as describeTeamForApproval,i_ as describeTeamShape,wS as describeToolCall,ct as diffProposal,La as displayName,lR as docStats,FA as draftSeparator,$o as driftedRefs,ZE as dryRunRecipe,Op as dryRunTeam,mn as dueJobs,Mt as duplicateTitles,Po as earnsBrief,vn as editDistance,he as editKey,tm as effectiveGate,Eo as effectiveGrants,nS as effectiveToolName,ge as egoGraph,fu as egressAllowed,oT as emptyBoardState,UT as emptyProjectRecord,dT as emptyRun,WA as enabledSkills,Nf as encryptBackup,cu as endpointAllowed,vm as engineKey,Qm as engineKeyOf,Ec as engineOf,Ie as engineOrder,jm as engineRef,Dc as engineRow,Fc as engineRows,F_ as engineStrip,kc as engineWorth,Ns as entitiesFormat,Is as entitiesPrompt,gs as entitiesStream,bi as entryMeta,qr as equipmentFor,PE as estimateTokens,bc as evaluatorPrompt,jE as expandRecipe,ed as expandReplacement,fA as expandSkillPrompt,Qs as explainMcpError,Xp as extendDependents,yf as extractFilters,Si as extractUrls,xS as failoverExhausted,za as failoverOrder,Iu as featureEnabled,CN as fetchKey,LN as fetchTitle,PN as fetchedAsSources,xN as fetchedFacts,LR as filterByTags,Ca as filterEntries,J as filterNoteActions,VO as filterRecords,h as filterSections,Fe as filterTypoEdits,pE as findActionArgs,yE as findDispatchProvider,ws as findJson,Z_ as findMatches,ee as findSkillByName,re as findTargetByName,mE as findTools,cE as findToolsResult,Pn as findWakeCommand,Yl as findingsInstruction,aT as findingsOf,km as fit,kN as fitFor,vl as fixedPlan,oN as foldBackFor,QI as foldBackNote,tT as foldBoard,qI as foldNotes,bT as foldProject,AT as foldRun,_f as forkConflict,Ea as formatBytes,Y_ as formatReport,Dt as formatSurvey,NR as formatTag,gR as formatTagQuery,yO as formatTalkTime,Zt as formatTimestamp,$t as formatTranscript,Gr as formatWeather,V as frameNoteAction,sO as freeCap,wi as fromB64,co as fuseRRF,am as gateAllows,yI as getMcpProviders,Ur as getWeather,os as gistOpening,rs as gistText,Cu as globToRegExp,PA as goalDraftAllowed,Ol as grantAllows,f_ as grantChoices,O_ as grantsFromChoices,Qr as grantsNeededFor,Le as graphStats,hA as groundingBlock,nI as groupActionsByOwner,F as groupModels,JO as groupRecords,qt as groupSegments,ZO as hasInsights,AR as hasTag,MR as hasTagTerms,wp as holdsGrants,Ei as hostMatches,gf as identityCodec,pN as imageAttachmentsOf,iR as indentSelection,QO as insightKindOf,CA as instructionOnLine,bf as isActionable,Kr as isAmbiguousLocation,VR as isBetterTitleSource,R_ as isBuiltin,tS as isCacheable,vN as isContextLimitError,Mf as isEncryptedBackup,es as isFillerSentence,bR as isGenericTitle,FI as isInvalidToolParametersResult,Gi as isLocked,AS as isLoopableTool,Ip as isModelUnavailable,Ws as isNothing,pO as isPro,C as isQueued,ZR as isRecordId,Fo as isRedactionToken,R as isRef,Re as isResultHost,OT as isResumable,qd as isSafeSkillPath,yo as isSelfLabel,pf as isSettled,US as isSourceGateError,bO as isSpeakerImageValue,Zs as isStaleMcpSession,go as isSubjectCandidate,_O as isTeam,m as isValidEvent,Id as isValidMemory,ef as isValidStoredRecord,Wt as isYouTubeUrl,Uc as jobApplications,Vp as jobFromSubtask,QT as jobPostFromForm,cm as jobResults,YT as jobToRole,cn as jobsForEvent,Am as jobsPrompt,UN as keepRecentFor,ga as lanesOf,eo as layoutFlowchart,uc as ledgerKey,IO as licenseFromPayload,uA as lineAt,I as linearize,Ut as linesFromItems,_t as linkClaims,Ra as linkifyCitations,dA as lintSkillPrompt,xe as lintText,Bi as lockedSummary,Bt as looksScanned,na as makeAccessEvent,LE as makeDispatchProvider,xm as makeEntry,gE as makeGroupDispatchExecutor,gc as makeLedgerEntry,qR as makeRecordId,A as makeRef,ri as makeSourceStore,Sa as makeStorageTier,oi as manifestText,qE as mapInput,Fd as markUsed,Pd as matchForForget,$_ as matchIndexFor,zA as matchSlashRecipe,YA as matchSlashSkill,QA as matchSlashTeam,dn as matchSummary,CR as matchesTagFilter,bI as mcpBackoff,y_ as mcpDispatchProvider,II as mcpInventorySystem,RI as mcpProvider,OI as mcpSharedSystem,H_ as meetDecisions,li as meetReach,an as meetingEndedTrigger,qO as meetingInsights,tn as meetingStartedTrigger,XR as meetingTitlePrompt,Dd as memoryBlock,Nd as memoryKey,yd as memoryToolSystem,oe as mentionAnswerPrefix,Ct as mentionsFrom,Oe as mergeEngineResults,Ve as mergeResearchLanes,$ as mergeSkillPrompt,pI as mergeStamped,Ep as mergeTranscript,VN as messagesAfter,Sp as messagesFor,bN as minWindowFor,o_ as missingStarters,pu as modelAllowed,k as modelSummary,aI as momentBadge,Jn as monitorIntent,P as moveQueued,_o as multiSearch,hc as needForJob,rA as needsBridge,aS as needsConfirmation,NO as needsRecheck,mp as newSteps,Qi as nextFireAt,ZI as nextSidelineIndex,Zi as nextWakeAt,Lf as nodeCodec,CS as normModelName,nc as normalizeAgent,Tl as normalizeBudget,Mc as normalizeCall,Zc as normalizeConnection,bm as normalizeEngine,Ym as normalizeEngineSpec,om as normalizeGate,fl as normalizeGrants,wA as normalizeIntent,VT as normalizeJobPost,Od as normalizeMemory,mu as normalizeOrgPolicy,Jm as normalizePolicy,DT as normalizeProject,At as normalizeRecord,Rt as normalizeRecords,Gp as normalizeRequest,Gm as normalizeScm,EA as normalizeSkill,Un as normalizeSpeech,$R as normalizeStoredRecord,No as normalizeSubject,_R as normalizeTag,dR as normalizeTags,Rl as normalizeTeam,ds as normalizeTopic,As as normalizeTopics,WS as normalizeUsage,HA as normalizeWriterPrefs,W as noteActionItems,X as noteActionLabel,Wn as noteIntent,oI as noteSectionKind,eN as noteUnits,L_ as observeInbox,SO as observeSince,P_ as observeStrip,pn as occurrenceKey,qi as occurrencesBetween,_E as oneLiner,JS as openAiTranscript,ki as openEntry,bt as orderLines,tA as originLabel,Zd as originOf,ut as orphanRecords,oR as outlineOf,dE as overlapRank,qs as packageFromArgs,Gt as pageTextFromItems,Wf as paletteFor,vt as paragraphsFromLines,sS as parallelEligible,Q as parseAgentMention,jo as parseBriefText,XI as parseBringBack,hn as parseClock,xn as parseCommand,Fn as parseDuration,us as parseEntities,vc as parseEvaluation,Wl as parseFindings,$r as parseFlowchart,_m as parseJobs,z_ as parseJsonl,tR as parseListItem,iI as parseMeetingNotes,LO as parseMeetingText,kn as parseNumberWords,hf as parseOmni,Gl as parsePlan,$e as parsePlanTasks,QR as parseRecordId,Qn as parseRefinement,$c as parseRemote,dm as parseReview,VI as parseSideline,Z as parseSkillMention,_A as parseSkillVars,Ys as parseStructured,Fs as parseSuggestions,uR as parseTagQuery,Qt as parseTimedText,WR as parseTitleResponse,_s as parseTopics,vr as parseWeather,yn as parseWhen,Xt as parseYouTubeUrl,g as pendingQueue,du as permissionMode,nn as personJoinedTrigger,Ma as phasesOf,sn as phraseTrigger,zt as pickCaptionTrack,fe as pickResults,TI as pickSections,ja as pinnedOrderOf,tr as planAttribution,or as planBody,KN as planCompaction,cO as planLabel,mO as planOf,rr as planParts,po as planQueries,Ze as planSectionSystem,cf as planSync,er as planTitleFor,lS as planToolRound,Bl as plannerPrompt,Mu as policyHash,uu as policyLabel,Ac as poolFor,Ya as preferenceFor,ON as prefetchAttachment,fN as prefetchPlan,ZN as presenceBlock,jN as presenceDelta,zN as presenceFor,CT as priorWorkFor,ma as projectChain,kT as projectFromForm,vT as projectProgress,x as promoteQueued,e_ as promoteRoles,Fa as promptEntries,Kc as proposalFromNeeds,Hc as proposalToAgent,lt as propose,hd as pruneMemories,En as questionTrigger,ie as rankLinkTargets,we as rankResearchCards,xo as rankSubjects,QN as reachOf,nr as reachRank,sr as reachSatisfies,ai as readSource,zI as readThread,zT as readyJobs,xd as recall,jA as recipeInvocationText,QE as recipeParams,al as recipeToolProvider,il as recipeToolSpec,Ld as reconcile,Dr as reconcileEngines,Vc as recruitEvents,Bc as recruitForRun,Xc as recruitJob,ia as redactAccessArgs,Ot as redactedTokensIn,It as redactionCost,Ru as redactionTier,$n as refineSpokenCommand,jn as refinementFormat,zn as refinementPrompt,qn as refinementStream,mt as reject,Vn as reminderIntent,fR as removeTag,TN as renderContent,ro as renderFlowchartSvg,MO as renderMarkdown,Xs as repairJson,od as replaceAll,td as replaceAllInRange,rd as replaceMatch,J_ as replay,Wa as requirementsFor,Ja as requirementsForStep,Be as researchRelevance,He as researchSnippet,UI as resetMcp,f as resolveRef,WI as resolveSidelineTarget,kf as resolveSince,Lo as resolveSubjects,mc as resolveTeam,jf as resolveTheme,Ks as responseFormat,sE as resultToolSpec,fp as resumeTeam,Rm as reviewPrompt,Vs as rewriteJson,Se as roleById,m_ as roleCardId,s_ as rosterRows,pm as roundBudget,KS as roundCap,$N as roundCount,Tm as roundJobs,eu as roundMinutes,pS as roundSignature,Au as routeAllowed,yc as routeFor,Ta as routeGraph,me as routeTeam,WO as rowTime,RT as runFromEvents,x_ as runLanes,$E as runPlan,lm as runProject,el as runRecipe,tE as runResultQuery,gT as runState,Rp as runTeam,TS as runToolRound,GS as runTurnLoop,PS as runWithFailover,ve as salientTerms,Ud as sameMemory,Za as sameModelKey,aA as sameSkillOrigin,IR as sameTags,as as sameUtterance,Xn as scheduleIntent,Il as scmAllows,yi as sealEntry,vi as searchEntries,GE as searchResultsToText,of as searchTextFor,cI as sectionHash,lI as sectionValue,TR as selectionStats,Ou as settingLocked,Zn as settleRefinement,Pm as sha256,oE as shieldToolResult,ti as shortUrl,wR as shouldAutoTitle,rN as sidelinePath,iN as sidelineToolProvider,Xa as signalsFrom,Md as similarity,I_ as skillChoices,eA as skillFiles,eR as skillInvocationLabel,$A as skillInvocationOf,iA as skillIsStale,cA as skillVar,OA as skillVarGuidance,pA as skillVarPattern,ZA as slashCommandInsert,JA as slashCommandItems,ud as slotOf,Tc as slugAgentId,Ul as slugTeamName,nf as snippetOf,__ as soloTeam,wO as sortRecords,HO as sortStamp,NI as sourceCitationSystem,kS as sourceGate,yS as sourceGuardFor,ii as sourceId,$I as sourceOf,Ti as sourcePolicyFor,hS as sourcePolicySettings,mi as sourceUrlsOf,fa as sourcesFromToolText,Lt as spanningQuestions,FO as speakerBreakdown,vO as speakerLabeller,PO as speakerStats,hO as speakerTimeline,uT as spendOf,D_ as spendRows,_S as stableToolCallKey,Tf as stampOf,pc as starterAgents,r_ as starterTeam,hl as starterTeams,VS as stepResultText,Cf as streamCodec,ko as stripQualifiers,uo as subjectKey,Mo as subjectTokens,RA as substituteSkillVars,Bp as subtaskFromRequest,xR as suggestExistingTags,Uo as suggestMerges,AA as suggestSkillVar,Ds as suggestionsFormat,xs as suggestionsPrompt,hs as suggestionsStream,ym as summarize,Cc as summarizeEngine,jO as summarySections,le as supportsSubagents,Pt as surveyCorpus,ot as synthesisPrompt,XN as systemWithSummary,PR as tagFacets,DR as tagsSearchText,Kp as takeUp,Hp as takeUpLine,Wp as taskTree,mm as teamForRound,kl as teamFromForm,t_ as teamHealth,qA as teamInvocationText,Zp as teamLanes,qp as teamLine,a_ as teamShape,gp as teamToolProvider,Cp as teamToolSpec,Lp as teamToolTimeoutMs,d_ as teamsWithSolos,kI as testMcpServer,zf as themeStylesheet,JI as threadManifest,Jp as threadRows,Da as threadTitle,YI as threadToolProvider,ya as threadTree,xa as threadsOf,xt as thresholdSweep,AO as tierFor,Zm as tierOf,jt as timedTextUrl,wn as timerIntent,on as timerTrigger,KR as titleFromDate,BR as titleFromParticipants,vR as titleFromSummary,GR as titleFromTopics,Hi as toB64,zl as toBriefClaims,mN as toChatMessages,Yf as toCssVars,tf as toIndexEntry,Bs as toJsonSchema,j_ as toJsonl,dr as toModelSchema,Ar as toModelSchemas,cN as toMultimodalMessages,rf as toSearchRecord,sR as toggleLinePrefix,ER as toggleLink,OR as toggleTag,SR as toggleTask,nR as toggleWrap,bn as tokenize,dS as toolMadeProgress,jr as toolNeedFor,MI as toolStatus,eS as toolTraits,Ge as topicTerms,Sn as topicTrigger,ps as topicsFormat,cs as topicsPrompt,ms as topicsSchema,Rs as topicsStream,iS as traitsIndex,ra as transcriptFromTracks,z as triggerQueryAt,XE as trimDescription,Ce as trimGraph,$d as trustOf,ha as turnsOf,Hs as unfence,Fi as unlockVault,Ae as unwrapRedirect,lr as upcast,Tr as upcastAll,kd as upcastMemory,sA as upcastSkill,SA as upcastSkills,p_ as upsertAgents,ml as usageOf,ME as validateAction,ic as validateAgent,ll as validateBudget,cr as validateCapability,qc as validateConnection,zm as validateEngineSpec,Ui as validateEntry,T as validateEvent,rm as validateGate,pr as validateInvocation,wT as validateJobPost,xT as validateProject,zE as validateRecipe,ji as validateSchedule,nA as validateSkill,Al as validateTeam,to as validateView,ao as validateViewInvocation,so as validateWidget,So as validateWidgetMessage,CI as vaultWidgetSystem,hm as verifyAttested,Dm as verifyChain,fO as verifyEntitlement,gu as verifyPolicyToken,OO as verifySignedToken,Yt as videoMetaFromPlayerResponse,io as viewResult,gt as vocabularyDrift,ln as voiceCommandTrigger,Nt as wantedPages,Uf as wantsModel,LI as wantsVaultGuidance,Kl as waves,NN as weatherFollowupPlace,IN as weatherPlace,EN as weatherToolProvider,br as weatherUrl,Ke as webQuery,BE as webSearchToolProvider,n_ as whereItWorks,gI as widgetAuthoringSystem,lo as widgetIcon,ae as wikiQueryAt,ft as wikilinksIn,yN as windowOf,ET as withBoardTool,gN as withFetchedMemo,CE as withGuidance,qN as withPresence,aE as withResultShield,pT as withRunCache,dN as withSourceTool,HS as withToolSystem,RO as withinFreeLimit,bS as withinReach,sf as wordCount,De as wordDiff,kp as workLogEvidence,hp as workLogFor,yp as workLogText,op as worktreeDirFor,MA as writerAffordance,yA as writerRequest,DA as writerTail};
1
+ import{CURRENT_VERSION as o,EVENT_TYPES as t,ALL_TYPES as a,ACTOR_KINDS as i,SCOPE_KINDS as 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 B,NOTE_ACTION_ERRORS as G,NOTE_COMMANDS as K,NOTE_COMMAND_TEMPERATURE as H,NOTE_COMMAND_MAX_TOKENS as w,frameNoteAction as V,noteActionLabel as W,noteActionItems as X,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 Be,researchRelevance as Ge,webQuery as Ke,researchSnippet as He,rankResearchCards as we,mergeResearchLanes as Ve}from"./note-research.js";import{PLAN_ROLES as Xe,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 Br,areaLabel as Gr,isAmbiguousLocation as Kr,WEATHER_HOST as Hr,WEATHER_TIMEOUT_MS as wr,WeatherError as Vr}from"./weather.js";import{defineToolGroup as Xr,createToolGroupRegistry as Jr,ToolGroupError as Yr}from"./tool-groups.js";import{toolNeedFor as jr,grantsNeededFor as Qr,equipmentFor as qr}from"./tool-need.js";import{parseFlowchart as $r,layoutFlowchart as eo,renderFlowchartSvg as ro}from"./flowchart.js";import{validateView as to,validateViewInvocation as ao,viewResult as io}from"./view.js";import{validateWidget as so,validateWidgetMessage as So,effectiveGrants as Eo,widgetIcon as lo,WIDGET_SURFACES as To}from"./widget.js";import{fuseRRF as co,planQueries as po,multiSearch as _o}from"./rrf.js";import{SUBJECT_KINDS as Ro,DEFAULT_THRESHOLD as fo,MAX_SUBJECTS as Oo,MAX_SUBJECT_CHARS as Io,normalizeSubject as No,subjectKey as uo,subjectTokens as Mo,isSubjectCandidate as go,aliasMap as Co,resolveSubjects as Lo,earnsBrief as Po,rankSubjects as xo,REDACTION_TOKEN_TYPES as Do,isRedactionToken as Fo,SELF_LABELS as ho,isSelfLabel as yo,stripQualifiers as ko,suggestMerges as Uo}from"./entity.js";import{BRIEF_STATES as vo,CLAIM_KINDS as Bo,MAX_CLAIMS as Go,MAX_CLAIM_REFS as Ko,MAX_BRIEF_RECORDS as Ho,MAX_BRIEF_CHARS as wo,contentHash as Vo,briefId as Wo,briefToText as Xo,briefTerms as Jo,briefLinks as Yo,checkKnowledgeInvariants as zo,parseBriefText as jo}from"./knowledge.js";import{deriveBrief as qo,deriveBriefs as Zo,driftedRefs as $o}from"./knowledge-derive.js";import{SYNTHESIS_SCHEMA as rt,synthesisPrompt as ot,claimsFromSynthesis as tt,MAX_SYNTHESIS_CLAIMS as at,MAX_EXCERPTS as it,MAX_EXCERPT_CHARS as nt}from"./synthesis.js";import{PROPOSAL_STATES as St,SUPERSEDE_OVERLAP as Et,propose as lt,accept as Tt,reject as mt,diffProposal as ct,converge as pt,linkClaims as _t}from"./promotion.js";import{normalizeRecord as At,normalizeRecords as Rt,wikilinksIn as ft,redactedTokensIn as Ot,redactionCost as It,wantedPages as Nt,orphanRecords as ut,duplicateTitles as Mt,vocabularyDrift as gt,mentionsFrom as Ct,spanningQuestions as Lt,surveyCorpus as Pt,thresholdSweep as xt,formatSurvey as Dt,NEAR_TITLE_DISTANCE as Ft,SPAN_MIN_TERMS as ht}from"./curate.js";import{PDF_MAX_CHARS as kt,linesFromItems as Ut,orderLines as bt,paragraphsFromLines as vt,pageTextFromItems as Bt,looksScanned as Gt,buildPdfDocument as Kt}from"./pdf-layout.js";import{YOUTUBE_HOSTS as wt,TRANSCRIPT_MAX_CHARS as Vt,parseYouTubeUrl as Wt,isYouTubeUrl as Xt,captionTracksFromPlayerResponse as Jt,videoMetaFromPlayerResponse as Yt,pickCaptionTrack as zt,timedTextUrl as jt,parseTimedText as Qt,groupSegments as qt,formatTimestamp as Zt,formatTranscript as $t,buildTranscriptDocument as ea,transcriptFromTracks as ra}from"./media-transcript.js";import{ACCESS_LOG_VERSION as ta,ACCESS_LOG_MAX as aa,redactAccessArgs as ia,makeAccessEvent as na,createAccessLog as sa,makeStorageTier as Sa,formatBytes as Ea}from"./observability.js";import{routeGraph as Ta,projectChain as ma}from"./route-graph.js";import{defineAdapter as pa,createAdapterRegistry as _a,AdapterError as da}from"./adapters.js";import{linkifyCitations as Ra,sourcesFromToolText as fa,createCitationCollector as Oa,RETRIEVAL_TOOLS as Ia}from"./citations.js";import{buildTrajectory as ua,phasesOf as Ma,lanesOf as ga,filterEntries as Ca,displayName as La,ENTRY_KINDS as Pa,threadsOf as xa,threadTitle as Da,promptEntries as Fa,turnsOf as ha,threadTree as ya}from"./trajectory.js";import{createTurnRunner as Ua,defineLoop as ba,LOOP_KINDS as va,LoopError as Ba}from"./loop.js";import{defineModel as Ka,defineMiddleware as Ha,defineRouteStrategy as wa,createModelRouter as Va,signalsFrom as Wa,requirementsFor as Xa,requirementsForStep as Ja,preferenceFor as Ya,failoverOrder as za,pinnedOrderOf as ja,FAILOVER_CLASS_GAP as Qa,FAILOVER_CAPABILITY_GAP as qa,sameModelKey as Za,RouterError as $a}from"./router.js";import{makeSourceStore as ri,manifestText as oi,shortUrl as ti,readSource as ai,sourceId as ii}from"./sources-retrieval.js";import{classifySource as si,extractUrls as Si,hostMatches as Ei,meetReach as li,sourcePolicyFor as Ti,sourceUrlsOf as mi,DEFAULT_INTERNAL_PATTERNS as ci,INTERNAL_PATTERN_CATALOG as pi}from"./sources.js";import{defineRule as di,createRuleEngine as Ai,SUPPRESSED as Ri,RuleError as fi}from"./rules.js";import{VAULT_VERSION as Ii,KDF_ITERATIONS as Ni,KDF_HASH as ui,DEFAULT_LOCK_MS as Mi,VaultError as gi,MAX_TITLE_CHARS as Ci,MAX_NOTE_CHARS as Li,MAX_SECRET_CHARS as Pi,MAX_ENTRIES as xi,createVault as Di,unlockVault as Fi,deriveKey as hi,sealEntry as yi,openEntry as ki,validateEntry as Ui,entryMeta as bi,searchEntries as vi,isLocked as Bi,lockedSummary as Gi,canAddEntry as Ki,toB64 as Hi,fromB64 as wi}from"./vault.js";import{SCHEDULE_KINDS as Wi,TRIGGER_KINDS as Xi,JOB_ACTIONS as Ji,MISSED_POLICIES as Yi,ScheduleError as zi,validateSchedule as ji,nextFireAt as Qi,occurrencesBetween as qi,nextWakeAt as Zi,defineTrigger as $i,createTriggerRegistry as en,BUILTIN_TRIGGERS as rn,timerTrigger as on,meetingStartedTrigger as tn,meetingEndedTrigger as an,personJoinedTrigger as nn,phraseTrigger as sn,topicTrigger as Sn,questionTrigger as En,voiceCommandTrigger as ln,defineJob as Tn,dueJobs as mn,jobsForEvent as cn,occurrenceKey as pn,clipText as _n,matchSummary as dn}from"./schedule.js";import{defineMeetingAnalyzer as Rn,createAnalyzerRegistry as fn,CADENCES as On,AnalyzerError as In}from"./meeting-analyzers.js";import{DEFAULT_WAKE as un,MAX_COMMANDS_PER_DELTA as Mn,DAYPART_HOUR as gn,VoiceIntentError as Cn,compileWake as Ln,findWakeCommand as Pn,parseCommand as xn,commandsFromSegments as Dn,parseDuration as Fn,parseClock as hn,parseWhen as yn,parseNumberWords as kn,normalizeSpeech as Un,tokenize as bn,editDistance as vn,defineVoiceIntent as Bn,createVoiceIntentRegistry as Gn,defaultVoiceIntents as Kn,BUILTIN_VOICE_INTENTS as Hn,timerIntent as wn,reminderIntent as Vn,scheduleIntent as Wn,noteIntent as Xn,monitorIntent as Jn,REFINEMENT_SCHEMA as Yn,refinementPrompt as zn,refinementFormat as jn,parseRefinement as Qn,refinementStream as qn,settleRefinement as Zn,refineSpokenCommand as $n,isFillerSentence as es,gistText as rs,gistOpening as os,commandLooksFinished as ts,sameUtterance as as,createUtteranceGate as is,UTTERANCE_SETTLE_MS as ns,UTTERANCE_DANGLING_MS as ss}from"./voice-intents.js";import{MAX_TOPICS as Es,MAX_TOPIC_CHARS as ls,TOPICS_SCHEMA as Ts,topicsSchema as ms,topicsPrompt as cs,topicsFormat as ps,parseTopics as _s,normalizeTopic as ds,normalizeTopics as As,topicsStream as Rs,ENTITY_TYPES as fs,ENTITIES_SCHEMA as Os,entitiesPrompt as Is,entitiesFormat as Ns,parseEntities as us,coerceEntities as Ms,entitiesStream as gs,MAX_SUGGESTIONS as Cs,MAX_SUGGESTION_CHARS as Ls,SUGGESTIONS_SCHEMA as Ps,suggestionsPrompt as xs,suggestionsFormat as Ds,parseSuggestions as Fs,suggestionsStream as hs}from"./extraction.js";import{FIELD_TYPES as ks,RESPONSE_MODES as Us,StructuredError as bs,defineSchema as vs,describeSchema as Bs,toJsonSchema as Gs,responseFormat as Ks,unfence as Hs,findJson as ws,rewriteJson as Vs,repairJson as Ws,isNothing as Xs,coerce as Js,parseStructured as Ys,createStructuredStream as zs}from"./structured.js";import{explainMcpError as Qs,packageFromArgs as qs,isStaleMcpSession as Zs}from"./mcp-errors.js";import{toolTraits as eS,bareToolName as rS,canRunConcurrently as oS,isCacheable as tS,needsConfirmation as aS,traitsIndex as iS,effectiveToolName as nS,parallelEligible as sS,PARALLEL_LOCAL_RE as SS}from"./tool-traits.js";import{planToolRound as lS,runToolRound as TS}from"./tool-round.js";import{createToolLoopGuard as cS,roundSignature as pS,stableToolCallKey as _S,toolMadeProgress as dS,isLoopableTool as AS,blockedToolResult as RS,OBSERVATION_TOOLS as fS,INPUT_PROGRESS_TOOLS as OS}from"./tool-loop-guard.js";import{classifyFailure as NS,createModelHealth as uS,COOLDOWN_MS as MS,UNAVAILABLE_REASONS as gS,normModelName as CS}from"./model-health.js";import{runWithFailover as PS,failoverExhausted as xS,FAILOVER_MAX_ATTEMPTS as DS}from"./failover.js";import{sourcePolicySettings as hS,sourceGuardFor as yS,sourceGate as kS,isSourceGateError as US,withinReach as bS}from"./source-gate.js";import{runTurnLoop as BS,createCallRunner as GS,roundCap as KS,withToolSystem as HS,describeCall as wS,stepResultText as VS,addUsage as WS,normalizeUsage as XS,openAiTranscript as JS,anthropicTranscript as YS,DEFAULT_MAX_ROUNDS as zS,DEFAULT_MAX_FINISH_TRIES as jS,FINISH_NUDGES as QS,LOOPING_NUDGE as qS,EXHAUSTED_NOTE as ZS,ROUND_SEPARATOR as $S}from"./turn-loop.js";import{createResultStore as rE,shieldToolResult as oE,runResultQuery as tE,withResultShield as aE,describeShape as iE,compactValue as nE,resultToolSpec as sE,RESULT_TOOL_NAME as SE,DEFAULT_SHIELD as EE,DEFAULT_STORE as lE}from"./tool-result.js";import{findTools as mE,findToolsResult as cE,findActionArgs as pE,oneLiner as _E,overlapRank as dE,FIND_ACTION as AE}from"./tool-discovery.js";import{buildToolset as fE}from"./toolset.js";import{DESCRIBE_ACTION as IE,actionMenu as NE,buildGroupDispatchSpec as uE,validateAction as ME,makeGroupDispatchExecutor as gE,withGuidance as CE,makeDispatchProvider as LE,estimateTokens as PE}from"./tool-dispatch.js";import{FIND_TOOL_NAME as DE,FIND_DESCRIPTION as FE,FIND_RESIDENT as hE,findDispatchProvider as yE}from"./find-tool.js";import{WEB_SEARCH_TOOL_NAME as UE,WEB_SEARCH_TOOL_SYSTEM as bE,WEB_SEARCH_SPEC as vE,searchResultsToText as BE,webSearchToolProvider as GE}from"./web-search-tool.js";import{compressToolSpec as HE,compressToolSpecs as wE,compressionStats as VE,trimDescription as WE,COMPRESSION_MODES as XE,DEFAULT_COMPRESSION as JE}from"./tool-schema.js";import{validateRecipe as zE,expandRecipe as jE,recipeParams as QE,mapInput as qE,dryRunRecipe as ZE,runPlan as $E,runRecipe as el,RecipeError as rl,RECIPE_MODES as ol}from"./recipe.js";import{recipeToolProvider as al,recipeToolSpec as il,describeRecipeForApproval as nl,RECIPE_TOOL_NAME as sl}from"./recipe-tool.js";import{createBudget as El,validateBudget as ll,normalizeBudget as Tl,usageOf as ml,BudgetError as cl,BUDGET_DIMENSIONS as pl}from"./budget.js";import{defineTeam as dl,validateTeam as Al,normalizeTeam as Rl,normalizeGrants as fl,grantAllows as Ol,scmAllows as Il,describeRole as Nl,TeamError as ul,ROLE_MODES as Ml,MERGE_POLICIES as gl,PLAN_MODES as Cl,GRANTABLE as Ll,WORK_GRANTS as Pl,GRANT_RE as xl,AGENT_REF_RE as Dl,STARTER_TEAMS as Fl,starterTeams as hl,blankTeam as yl,teamFromForm as kl,slugTeamName as Ul}from"./team.js";import{fixedPlan as vl,parsePlan as Bl,plannerPrompt as Gl,waves as Kl,breakCycles as Hl,TEAM_PLAN_SCHEMA as wl}from"./team-plan.js";import{createBoard as Wl,parseFindings as Xl,boardText as Jl,findingsInstruction as Yl,toBriefClaims as zl,FINDINGS_SCHEMA as jl,FINDING_KINDS as Ql,THREAD_KINDS as ql,THREAD_STATUSES as Zl,POST_KINDS as $l,POST_STATUSES as eT,ASK_TYPES as rT,emptyBoardState as oT,foldBoard as tT,findingsOf as aT}from"./team-board.js";import{boardToolProvider as nT,boardToolSpec as sT,createAnswerBox as ST,withBoardTool as ET,BOARD_TOOL_NAME as lT,DEFAULT_ASK_TIMEOUT_MS as TT}from"./board-tool.js";import{createRunCache as cT,withRunCache as pT}from"./team-cache.js";import{emptyRun as dT,foldRun as AT,runFromEvents as RT,checkpointFrom as fT,isResumable as OT,LIVE_RUN_STATUSES as IT,RESUMABLE_RUN_STATUSES as NT,spendOf as uT,describeSpend as MT,runState as gT,priorWorkFor as CT,STALLED_AFTER_MS as LT}from"./team-record.js";import{validateProject as xT,normalizeProject as DT,defineProject as FT,canTransition as hT,blankProject as yT,projectFromForm as kT,emptyProjectRecord as UT,foldProject as bT,projectProgress as vT,ProjectError as BT,PROJECT_STATUSES as GT,PROJECT_ID_RE as KT}from"./project.js";import{validateJob as wT,normalizeJob as VT,defineJob as WT,canTransition as XT,applyAll as JT,jobToRole as YT,readyJobs as zT,blankJob as jT,jobFromForm as QT,JobError as qT,JOB_STATUSES as ZT,JOB_ID_RE as $T}from"./job.js";import{validateGate as rm,normalizeGate as om,effectiveGate as tm,gateAllows as am,DEFAULT_GATE as im,AUTONOMY as nm,HUMAN_FLAGS as sm,CHECKS as Sm}from"./gate.js";import{runProject as lm,roundJobs as Tm,teamForRound as mm,jobResults as cm,roundBudget as pm,parseJobs as _m,parseReview as dm,jobsPrompt as Am,reviewPrompt as Rm,PROJECT_JOBS_SCHEMA as fm,PROJECT_REVIEW_SCHEMA as Om,ProjectRunError as Im,EXECUTIVE as Nm,MAX_JOBS_PER_ROUND as um,MAX_ROUNDS as Mm,PROJECT_RUN_STATUSES as gm}from"./project-run.js";import{canonical as Lm,sha256 as Pm,makeEntry as xm,verifyChain as Dm,attest as Fm,verifyAttested as hm,summarize as ym,fit as km,adjustSummary as Um,normalizeEngine as bm,engineKey as vm,normalizeScm as Bm,SCORECARD_ENTRY_KINDS as Gm,ROLE_KINDS as Km,SCORECARD_VERSION as Hm,ENGINE_KINDS as wm}from"./scorecard.js";import{ENGINE_KINDS as Wm,ROUTE_PREFERS as Xm,normalizePolicy as Jm,normalizeEngineSpec as Ym,validateEngineSpec as zm,engineRef as jm,engineKeyOf as Qm,describeEngine as qm,tierOf as Zm}from"./engine.js";import{AGENT_ID_RE as ec,APPLIES_TO as rc,EGRESS_CLASSES as oc,ASSISTANT_ID as tc,AgentError as ac,validateAgent as ic,normalizeAgent as nc,defineAgent as sc,assistantAgent as Sc,engineOf as Ec,describeAgent as lc,slugAgentId as Tc,resolveTeam as mc,STARTER_AGENTS as cc,starterAgents as pc,blankAgent as _c,agentFromForm as dc,poolFor as Ac}from"./agent.js";import{LEDGER_VERSION as fc,LEDGER_ENTRY_KINDS as Oc,DECLINE_REASONS as Ic,WITHDRAW_AFTER as Nc,ledgerKey as uc,normalizeCall as Mc,makeLedgerEntry as gc,summarizeEngine as Cc}from"./model-ledger.js";import{RECRUIT_SCHEMA as Pc,MIN_FIT as xc,engineRow as Dc,engineRows as Fc,needForJob as hc,routeFor as yc,engineWorth as kc,applications as Uc,evaluatorPrompt as bc,parseEvaluation as vc,decide as Bc,recruitForRun as Gc,proposalFromNeeds as Kc,proposalToAgent as Hc,carveBudget as wc,recruitEvents as Vc,recruitJob as Wc}from"./recruit.js";import{DEFAULT_MIN_CALLS as Jc,cardOverride as Yc,applyCard as zc}from"./model-candidates.js";import{SCM_KINDS as Qc,validateConnection as qc,normalizeConnection as Zc,parseRemote as $c,connectionFor as ep,branchFor as rp,worktreeDirFor as op,credentialEnv as tp,describeConnection as ap,blankConnection as ip,connectionFromForm as np}from"./scm-connection.js";import{messagesFor as Sp,mergeTranscript as Ep,clipTranscript as lp,clipMessage as Tp,newSteps as mp,continuationNote as cp,createControl as pp,STEP_MAX_CHARS as _p,TASK_TRANSCRIPT_MAX_CHARS as dp}from"./team-task.js";import{runTeam as Rp,resumeTeam as fp,dryRunTeam as Op,isModelUnavailable as Ip,TeamRunError as Np,RUN_STATUSES as up}from"./team-run.js";import{teamToolProvider as gp,teamToolSpec as Cp,teamToolTimeoutMs as Lp,describeTeamForApproval as Pp,TEAM_TOOL_NAME as xp,TEAM_MANUAL as Dp}from"./team-tool.js";import{workLogFor as hp,workLogText as yp,workLogEvidence as kp,describeCall as Up,WORKLOG_KINDS as bp}from"./team-worklog.js";import{normalizeRequest as Bp,subtaskFromRequest as Gp,takeUp as Kp,takeUpLine as Hp,holdsGrants as wp,jobFromSubtask as Vp,extendDependents as Wp,taskTree as Xp,threadRows as Jp,MAX_SUBTASKS as Yp,MAX_DEPTH as zp,MIN_TAKEUP_FIT as jp}from"./team-subtask.js";import{teamLine as qp,teamLanes as Zp}from"./team-trail.js";import{promoteRoles as e_,starterTeam as r_,missingStarters as o_,teamHealth as t_,teamShape as a_,describeTeamShape as i_,whereItWorks as n_,rosterRows as s_,agentKind as S_,agentHue as E_,agentColor as l_,agentInitials as T_,roleCardId as m_,cardNumbers as c_,upsertAgents as p_,soloTeam as __,teamsWithSolos as d_,builtinOrg as A_,isBuiltin as R_,grantChoices as f_,grantsFromChoices as O_,skillChoices as I_,GRANT_INFO as N_,SOLO_BUDGET as u_,TEAM_SHAPES as M_,ROSTER_KINDS as g_}from"./team-org.js";import{observeInbox as L_,observeStrip as P_,runLanes as x_,spendRows as D_,engineStrip as F_}from"./team-observe.js";import{mcpDispatchProvider as y_,MCP_TOOL_NAME as k_}from"./mcp-dispatch.js";import{createManifest as b_,ManifestError as v_,SOURCES as B_}from"./manifest.js";import{createKernel as K_,meetDecisions as H_,KernelError as w_,REQUIRED_PLUGINS as V_,ALLOW_ALL as W_}from"./kernel.js";import{replay as J_,formatReport as Y_,parseJsonl as z_,toJsonl as j_}from"./harness.js";import{compileQuery as q_,findMatches as Z_,matchIndexFor as $_,expandReplacement as ed,replaceMatch as rd,replaceAll as od,replaceAllInRange as td,MAX_MATCHES as ad}from"./text-search.js";import{DATA_SCOPES as nd}from"./scopes.js";import{MEMORY_VERSION as Sd,MEMORY_KINDS as Ed,MEMORY_KIND_NAMES as ld,AMBIENT_KINDS as Td,MAX_MEMORY_CHARS as md,MIN_MEMORY_CHARS as cd,DEFAULT_MAX_MEMORIES as pd,DEFAULT_BLOCK_CHARS as _d,SAME_FACT as dd,MEMORY_TOOL_SPEC as Ad,MEMORY_UPCASTERS as Rd,MemoryError as fd,normalizeMemory as Od,isValidMemory as Id,memoryKey as Nd,slotOf as ud,similarity as Md,containment as gd,candidatesFrom as Cd,reconcile as Ld,matchForForget as Pd,recall as xd,memoryBlock as Dd,markUsed as Fd,pruneMemories as hd,memoryToolSystem as yd,upcastMemory as kd,sameMemory as Ud,AMBIENT_MAX_WORDS as bd}from"./memory.js";import{SOURCE_TRUST as Bd,SkillSourceError as Gd,defineSkillSource as Kd,createSkillSourceRegistry as Hd}from"./skill-sources.js";import{SKILL_MANIFEST_VERSION as Vd,SKILL_CONTEXTS as Wd,SKILL_HISTORY_SCOPES as Xd,SKILL_MCP_MODES as Jd,SKILL_TRUST as Yd,SKILL_FILE_KINDS as zd,SKILL_UPCASTERS as jd,SkillManifestError as Qd,isSafeSkillPath as qd,originOf as Zd,trustOf as $d,skillFiles as eA,needsBridge as rA,declaredAccess as oA,originLabel as tA,sameSkillOrigin as aA,skillIsStale as iA,validateSkill as nA,upcastSkill as sA,upcastSkills as SA,normalizeSkill as EA}from"./skill-manifest.js";import{SKILL_VARS as TA,SKILL_VAR_NAMES as mA,skillVar as cA,skillVarPattern as pA,parseSkillVars as _A,lintSkillPrompt as dA,suggestSkillVar as AA,substituteSkillVars as RA,expandSkillPrompt as fA,skillVarGuidance as OA,SkillVarError as IA}from"./skill-vars.js";import{lineAt as uA,writerAffordance as MA,INSTRUCTION_RE as gA,instructionOnLine as CA,GOAL_MIN_NEW as LA,goalDraftAllowed as PA,createSpendMeter as xA,writerTail as DA,draftSeparator as FA,groundingBlock as hA,writerRequest as yA,AUTOCOMPLETE_SYSTEM as kA,AUTOCOMPLETE_MAX_TOKENS as UA,AUTOCOMPLETE_TEMPERATURE as bA,clipCompletion as vA,GEARS as BA,WRITER_PREFS as GA,WRITER_PREF_DEFAULTS as KA,normalizeWriterPrefs as HA,normalizeIntent as wA}from"./cowriter-writer.js";import{SLASH_TYPING_RE as WA,enabledSkills as XA,slashCommandItems as JA,matchSlashSkill as YA,matchSlashRecipe as zA,recipeInvocationText as jA,matchSlashTeam as QA,teamInvocationText as qA,slashCommandInsert as ZA,skillInvocationOf as $A,skillInvocationLabel as eR}from"./slash-commands.js";import{outlineOf as oR,parseListItem as tR,continueList as aR,indentSelection as iR,toggleWrap as nR,toggleLinePrefix as sR,toggleTask as SR,toggleLink as ER,docStats as lR,selectionStats as TR}from"./markdown-authoring.js";import{MAX_TAG_LENGTH as cR,MAX_TAGS as pR,normalizeTag as _R,normalizeTags as dR,hasTag as AR,addTag as RR,removeTag as fR,toggleTag as OR,sameTags as IR,formatTag as NR,parseTagQuery as uR,hasTagTerms as MR,formatTagQuery as gR,matchesTagFilter as CR,filterByTags as LR,tagFacets as PR,suggestExistingTags as xR,tagsSearchText as DR}from"./tags.js";import{UNTITLED_MEETING as hR,MAX_TITLE_LENGTH as yR,TITLE_RULES_VERSION as kR,cleanTitle as UR,isGenericTitle as bR,titleFromSummary as vR,titleFromTopics as BR,titleFromParticipants as GR,titleFromDate as KR,deriveMeetingTitle as HR,shouldAutoTitle as wR,isBetterTitleSource as VR,meetingTitlePrompt as WR,parseTitleResponse as XR}from"./titles.js";import{RECORD_KINDS as YR,MAX_TITLE_LEN as zR,LibraryError as jR,parseRecordId as QR,makeRecordId as qR,isRecordId as ZR,normalizeStoredRecord as $R,isValidStoredRecord as ef,toSearchRecord as rf,searchTextFor as of,toIndexEntry as tf,deriveTitle as af,snippetOf as nf,wordCount as sf}from"./library.js";import{CLOCK_TOLERANCE_MS as Ef,SyncError as lf,stampOf as Tf,decide as mf,planSync as cf,isSettled as pf,forkConflict as _f,advanceBases as df}from"./sync-plan.js";import{ENCRYPTED_TYPE as Rf,COMPRESSIONS as ff,BackupError as Of,KDF_ITERATIONS as If,encryptBackup as Nf,decryptBackup as uf,isEncryptedBackup as Mf,RECORD_TYPE as gf,deriveBackupKey as Cf,sealRecord as Lf,openRecord as Pf,isSealedRecord as xf,keyCache as Df,identityCodec as Ff,streamCodec as hf,nodeCodec as yf,bestCodec as kf}from"./backup-envelope.js";import{DEFAULT_POLICY as bf,SLOW_POLICY as vf,scalePolicy as Bf,pickProfile as Gf,adaptProfile as Kf,policyFor as Hf,SLOW_FLUSH_MS as wf,FAST_FLUSH_MS as Vf,FAST_STREAK as Wf,createJournal as Xf,JournalError as Jf,ENTRY_VERSION as Yf,makeEntry as zf,tombstone as jf,isTombstone as Qf,isEntry as qf,entryStamp as Zf,supersedes as $f,BOUNDS as eO,createSegment as rO,applyEntry as oO,segmentBytes as tO,segmentEntries as aO,shouldRotate as iO,mergeSegments as nO,segmentName as sO,parseSegmentName as SO,SEGMENT_RE as EO,boundSegments as lO,segmentsFor as TO,overlay as mO,catchUpPlan as cO}from"./journal.js";import{OMNI_MODES as _O,OMNI_GRAMMAR as dO,parseOmni as AO,extractFilters as RO,resolveSince as fO,wantsModel as OO,isActionable as IO}from"./omni.js";import{THEMES as uO,LIGHT as MO,DARK as gO,PALETTES as CO,SHAPE as LO,TOKEN_NAMES as PO,TOKEN_ROLES as xO,paletteFor as DO,cssVarName as FO,toCssVars as hO,themeStylesheet as yO,resolveTheme as kO}from"./theme.js";import{PLANS as bO,API_BASE as vO,ENDPOINTS as BO,ENTITLEMENT_PUBLIC_JWK as GO,UPGRADE_URL as KO,FEATURE_TIER as HO,PRO_FEATURES as wO,TEAM_FEATURES as VO,FREE_LIMITS as WO,COUNTED as XO,freeCap as JO,observeSince as YO,RECHECK_INTERVAL_MS as zO,EntitlementError as jO,checkoutUrl as QO,planOf as qO,planLabel as ZO,isPro as $O,isTeam as eI,can as rI,tierFor as oI,withinFreeLimit as tI,verifyEntitlement as aI,verifySignedToken as iI,licenseFromPayload as nI,needsRecheck as sI}from"./entitlement.js";import{renderMarkdown as EI,defaultLinkPolicy as lI}from"./markdown-render.js";import{parseMeetingText as mI,speakerStats as cI,densityRibbon as pI}from"./meeting-text.js";import{speakerBreakdown as dI,speakerTimeline as AI,formatTalkTime as RI,SPEAKER_SLOTS as fI}from"./meeting-shape.js";import{isSpeakerImageValue as II,speakerLabeller as NI}from"./meeting-shape.js";import{SORT_MODES as MI,SORT_LABELS as gI,sortStamp as CI,sortRecords as LI,filterRecords as PI,dayBucket as xI,rowTime as DI,groupRecords as FI}from"./record-list.js";import{INSIGHT_KINDS as yI,summarySections as kI,insightKindOf as UI,meetingInsights as bI,hasInsights as vI}from"./meeting-insights.js";import{demd as GI,NOTE_SECTIONS as KI,noteSectionKind as HI,MOMENT_BADGES as wI,momentBadge as VI,parseMeetingNotes as WI,groupActionsByOwner as XI}from"./meeting-insights.js";import{PREF_SECTIONS as YI,PREF_SECTION_IDS as zI,sectionValue as jI,pickSections as QI,applySections as qI,sectionHash as ZI,mergeStamped as $I,changedSections as eN}from"./client-prefs.js";import{McpClient as oN,mcpProvider as tN}from"./mcp-client.js";import{mcpSharedSystem as iN,mcpInventorySystem as nN,sourceCitationSystem as sN,combineSystemPrompt as SN,toolStatus as EN,widgetAuthoringSystem as lN,vaultWidgetSystem as TN,wantsVaultGuidance as mN}from"./tool-hints.js";import{adaptiveToolRetryHint as pN,createAdaptiveToolPolicy as _N,isInvalidToolParametersResult as dN}from"./adaptive-tool-policy.js";import{getMcpProviders as RN,testMcpServer as fN,resetMcp as ON,mcpBackoff as IN}from"./mcp-manager.js";import{SIDELINE_COMMANDS as uN,BRINGBACK_COMMAND as MN,THREAD_TOOL_NAME as gN,SIDELINE_SLASH_ITEMS as CN,THREAD_TOOL_SPEC as LN,parseSideline as PN,parseBringBack as xN,resolveSidelineTarget as DN,threadManifest as FN,threadToolProvider as hN,readThread as yN,briefPrompt as kN,foldBackNote as UN,foldNotes as bN,nextSidelineIndex as vN,sourceOf as BN,noteUnits as GN,sidelinePath as KN,foldBackFor as HN,SIDELINE_TOOL_NAME as wN,SIDELINE_TOOL_SPEC as VN,sidelineToolProvider as WN}from"./sideline.js";import{WEATHER_TOOL_NAME as JN,WEATHER_TOOL_SYSTEM as YN,weatherToolProvider as zN}from"./weather-tool.js";import{renderContent as QN,toChatMessages as qN,toMultimodalMessages as ZN,imageAttachmentsOf as $N,deferAttachedSources as eu,withSourceTool as ru,SOURCE_TOOL_SPEC as ou}from"./context-attachments.js";import{prefetchPlan as au,prefetchAttachment as iu,weatherPlace as nu,weatherFollowupPlace as su}from"./prefetch.js";import{createFetchedStore as Eu,withFetchedMemo as lu,fetchKey as Tu,fetchTitle as mu,fetchedAsSources as cu,fetchedFacts as pu,defaultTtl as _u,FETCHED_TTL_MS as du}from"./fetched.js";import{windowOf as Ru,fitFor as fu,keepRecentFor as Ou,minWindowFor as Iu,isContextLimitError as Nu,FIT_HEADROOM as uu}from"./context-window.js";import{planCompaction as gu,compactionPrompt as Cu,compactionRecord as Lu,messagesAfter as Pu,systemWithSummary as xu,compactable as Du,COMPACTION_SYSTEM as Fu}from"./compaction.js";import{presenceFor as yu,presenceDelta as ku,reachOf as Uu,withPresence as bu,presenceBlock as vu,roundCount as Bu,roundMinutes as Gu,PRESENCE_BUDGET_TOKENS as Ku,PRESENCE_KINDS as Hu}from"./presence.js";import{PolicyError as Vu,POLICY_VERSION as Wu,POLICY_TOKEN_TYPE as Xu,REDACTION_TIERS as Ju,LOCKABLE as Yu,FEATURES as zu,PERMISSION_MODES as ju,PRODUCT_HOSTS as Qu,normalizeOrgPolicy as qu,endpointAllowed as Zu,modelAllowed as $u,agentAllowed as eM,permissionMode as rM,routeAllowed as oM,redactionTier as tM,egressAllowed as aM,settingLocked as iM,featureEnabled as nM,applyPolicyToSettings as sM,policyLabel as SM,policyHash as EM,verifyPolicyToken as lM,globToRegExp as TM}from"./policy.js";export{aa as ACCESS_LOG_MAX,ta as ACCESS_LOG_VERSION,i as ACTOR_KINDS,ec as AGENT_ID_RE,Dl as AGENT_REF_RE,W_ as ALLOW_ALL,a as ALL_TYPES,Td as AMBIENT_KINDS,bd as AMBIENT_MAX_WORDS,vO as API_BASE,rc as APPLIES_TO,rT as ASK_TYPES,tc as ASSISTANT_ID,UA as AUTOCOMPLETE_MAX_TOKENS,kA as AUTOCOMPLETE_SYSTEM,bA as AUTOCOMPLETE_TEMPERATURE,nm as AUTONOMY,da as AdapterError,ac as AgentError,In as AnalyzerError,If as BACKUP_KDF_ITERATIONS,lT as BOARD_TOOL_NAME,vo as BRIEF_STATES,MN as BRINGBACK_COMMAND,pl as BUDGET_DIMENSIONS,rn as BUILTIN_TRIGGERS,Hn as BUILTIN_VOICE_INTENTS,Of as BackupError,cl as BudgetError,On as CADENCES,Sm as CHECKS,Bo as CLAIM_KINDS,s as CLASSES,Ef as CLOCK_TOLERANCE_MS,Fu as COMPACTION_SYSTEM,ff as COMPRESSIONS,XE as COMPRESSION_MODES,MS as COOLDOWN_MS,XO as COUNTED,ke as COWRITER_SYSTEM,Ue as COWRITER_TEMPERATURE,o as CURRENT_VERSION,gO as DARK,nd as DATA_SCOPES,gn as DAYPART_HOUR,Ic as DECLINE_REASONS,TT as DEFAULT_ASK_TIMEOUT_MS,_d as DEFAULT_BLOCK_CHARS,JE as DEFAULT_COMPRESSION,im as DEFAULT_GATE,ci as DEFAULT_INTERNAL_PATTERNS,Mi as DEFAULT_LOCK_MS,jS as DEFAULT_MAX_FINISH_TRIES,pd as DEFAULT_MAX_MEMORIES,zS as DEFAULT_MAX_ROUNDS,Jc as DEFAULT_MIN_CALLS,bf as DEFAULT_POLICY,EE as DEFAULT_SHIELD,lE as DEFAULT_STORE,fo as DEFAULT_THRESHOLD,un as DEFAULT_WAKE,IE as DESCRIBE_ACTION,S as EFFECTS,E as EGRESS,oc as EGRESS_CLASSES,Rf as ENCRYPTED_TYPE,BO as ENDPOINTS,hr as ENGINE_KINDS,Wm as ENGINE_SPEC_KINDS,Os as ENTITIES_SCHEMA,GO as ENTITLEMENT_PUBLIC_JWK,fs as ENTITY_TYPES,Pa as ENTRY_KINDS,Yf as ENTRY_VERSION,t as EVENT_TYPES,Nm as EXECUTIVE,ZS as EXHAUSTED_NOTE,jO as EntitlementError,l as EventError,qa as FAILOVER_CAPABILITY_GAP,Qa as FAILOVER_CLASS_GAP,DS as FAILOVER_MAX_ATTEMPTS,Vf as FAST_FLUSH_MS,Wf as FAST_STREAK,zu as FEATURES,HO as FEATURE_TIER,du as FETCHED_TTL_MS,ks as FIELD_TYPES,jl as FINDINGS_SCHEMA,Ql as FINDING_KINDS,AE as FIND_ACTION,FE as FIND_DESCRIPTION,hE as FIND_RESIDENT,DE as FIND_TOOL_NAME,QS as FINISH_NUDGES,uu as FIT_HEADROOM,WO as FREE_LIMITS,BA as GEARS,LA as GOAL_MIN_NEW,Ll as GRANTABLE,N_ as GRANT_INFO,xl as GRANT_RE,sm as HUMAN_FLAGS,OS as INPUT_PROGRESS_TOOLS,yI as INSIGHT_KINDS,gA as INSTRUCTION_RE,pi as INTERNAL_PATTERN_CATALOG,Or as INVARIANTS,Ji as JOB_ACTIONS,$T as JOB_POST_ID_RE,ZT as JOB_POST_STATUSES,eO as JOURNAL_BOUNDS,qT as JobPostError,Jf as JournalError,ui as KDF_HASH,Ni as KDF_ITERATIONS,w_ as KernelError,Oc as LEDGER_ENTRY_KINDS,fc as LEDGER_VERSION,MO as LIGHT,IT as LIVE_RUN_STATUSES,Yu as LOCKABLE,qS as LOOPING_NUDGE,va as LOOP_KINDS,jR as LibraryError,Ba as LoopError,wo as MAX_BRIEF_CHARS,Ho as MAX_BRIEF_RECORDS,Go as MAX_CLAIMS,Ko as MAX_CLAIM_REFS,Mn as MAX_COMMANDS_PER_DELTA,zp as MAX_DEPTH,xi as MAX_ENTRIES,it as MAX_EXCERPTS,nt as MAX_EXCERPT_CHARS,ue as MAX_GRAPH_NODES,um as MAX_JOBS_PER_ROUND,ad as MAX_MATCHES,md as MAX_MEMORY_CHARS,Li as MAX_NOTE_CHARS,Mm as MAX_ROUNDS,Pi as MAX_SECRET_CHARS,Oo as MAX_SUBJECTS,Io as MAX_SUBJECT_CHARS,Yp as MAX_SUBTASKS,Cs as MAX_SUGGESTIONS,Ls as MAX_SUGGESTION_CHARS,at as MAX_SYNTHESIS_CLAIMS,pR as MAX_TAGS,cR as MAX_TAG_LENGTH,Ci as MAX_TITLE_CHARS,zR as MAX_TITLE_LEN,yR as MAX_TITLE_LENGTH,Es as MAX_TOPICS,ls as MAX_TOPIC_CHARS,k_ as MCP_TOOL_NAME,Ed as MEMORY_KINDS,ld as MEMORY_KIND_NAMES,Ad as MEMORY_TOOL_SPEC,Rd as MEMORY_UPCASTERS,Sd as MEMORY_VERSION,gl as MERGE_POLICIES,xc as MIN_FIT,cd as MIN_MEMORY_CHARS,jp as MIN_TAKEUP_FIT,Yi as MISSED_POLICIES,wI as MOMENT_BADGES,v_ as ManifestError,oN as McpClient,fd as MemoryError,Ft as NEAR_TITLE_DISTANCE,b as NOTE_ACTIONS,G as NOTE_ACTION_ERRORS,v as NOTE_ACTION_ORDER,B as NOTE_ACTION_TEMPERATURE,K as NOTE_COMMANDS,w as NOTE_COMMAND_MAX_TOKENS,H as NOTE_COMMAND_TEMPERATURE,KI as NOTE_SECTIONS,fS as OBSERVATION_TOOLS,dO as OMNI_GRAMMAR,_O as OMNI_MODES,CO as PALETTES,SS as PARALLEL_LOCAL_RE,kt as PDF_MAX_CHARS,ju as PERMISSION_MODES,bO as PLANS,Je as PLAN_AUTHORS,ze as PLAN_DECOMPOSE_MAX_TOKENS,Ye as PLAN_DECOMPOSE_SYSTEM,je as PLAN_DECOMPOSE_TEMPERATURE,Cl as PLAN_MODES,Xe as PLAN_ROLES,Qe as PLAN_SECTION_MAX_TOKENS,qe as PLAN_SECTION_TEMPERATURE,Xu as POLICY_TOKEN_TYPE,Wu as POLICY_VERSION,$l as POST_KINDS,eT as POST_STATUSES,YI as PREF_SECTIONS,zI as PREF_SECTION_IDS,Ku as PRESENCE_BUDGET_TOKENS,Hu as PRESENCE_KINDS,Qu as PRODUCT_HOSTS,KT as PROJECT_ID_RE,fm as PROJECT_JOBS_SCHEMA,Om as PROJECT_REVIEW_SCHEMA,gm as PROJECT_RUN_STATUSES,GT as PROJECT_STATUSES,St as PROPOSAL_STATES,wO as PRO_FEATURES,Vu as PolicyError,BT as ProjectError,Im as ProjectRunError,ir as REACH,zO as RECHECK_INTERVAL_MS,ol as RECIPE_MODES,sl as RECIPE_TOOL_NAME,wm as RECORD_ENGINE_KINDS,YR as RECORD_KINDS,gf as RECORD_TYPE,Pc as RECRUIT_SCHEMA,Ju as REDACTION_TIERS,Do as REDACTION_TOKEN_TYPES,Yn as REFINEMENT_SCHEMA,_ as REF_KINDS,Lr as REGISTRY_STATES,V_ as REQUIRED_PLUGINS,d as RESOLUTION,Us as RESPONSE_MODES,_e as RESULTS_PER_ENGINE,SE as RESULT_TOOL_NAME,NT as RESUMABLE_RUN_STATUSES,Ia as RETRIEVAL_TOOLS,Km as ROLE_KINDS,Ml as ROLE_MODES,g_ as ROSTER_KINDS,$S as ROUND_SEPARATOR,Xm as ROUTE_PREFERS,up as RUN_STATUSES,rl as RecipeError,$a as RouterError,fi as RuleError,dd as SAME_FACT,Wi as SCHEDULE_KINDS,Qc as SCM_KINDS,n as SCOPE_KINDS,Gm as SCORECARD_ENTRY_KINDS,Hm as SCORECARD_VERSION,pe as SEARCH_ENGINES,EO as SEGMENT_RE,ho as SELF_LABELS,LO as SHAPE,uN as SIDELINE_COMMANDS,CN as SIDELINE_SLASH_ITEMS,wN as SIDELINE_TOOL_NAME,VN as SIDELINE_TOOL_SPEC,Wd as SKILL_CONTEXTS,zd as SKILL_FILE_KINDS,Xd as SKILL_HISTORY_SCOPES,Vd as SKILL_MANIFEST_VERSION,Jd as SKILL_MCP_MODES,Yd as SKILL_TRUST,jd as SKILL_UPCASTERS,TA as SKILL_VARS,mA as SKILL_VAR_NAMES,WA as SLASH_TYPING_RE,wf as SLOW_FLUSH_MS,vf as SLOW_POLICY,u_ as SOLO_BUDGET,gI as SORT_LABELS,MI as SORT_MODES,B_ as SOURCES,ou as SOURCE_TOOL_SPEC,Bd as SOURCE_TRUST,ht as SPAN_MIN_TERMS,fI as SPEAKER_SLOTS,LT as STALLED_AFTER_MS,cc as STARTER_AGENTS,Fl as STARTER_TEAMS,_p as STEP_MAX_CHARS,Ro as SUBJECT_KINDS,Ps as SUGGESTIONS_SCHEMA,Et as SUPERSEDE_OVERLAP,Ri as SUPPRESSED,se as SWARM_ROLES,rt as SYNTHESIS_SCHEMA,zi as ScheduleError,yr as SearchEngineError,Qd as SkillManifestError,Gd as SkillSourceError,IA as SkillVarError,bs as StructuredError,lf as SyncError,dp as TASK_TRANSCRIPT_MAX_CHARS,VO as TEAM_FEATURES,Dp as TEAM_MANUAL,wl as TEAM_PLAN_SCHEMA,M_ as TEAM_SHAPES,xp as TEAM_TOOL_NAME,uO as THEMES,ql as THREAD_KINDS,Zl as THREAD_STATUSES,gN as THREAD_TOOL_NAME,LN as THREAD_TOOL_SPEC,kR as TITLE_RULES_VERSION,PO as TOKEN_NAMES,xO as TOKEN_ROLES,Ts as TOPICS_SCHEMA,Vt as TRANSCRIPT_MAX_CHARS,Xi as TRIGGER_KINDS,ul as TeamError,Np as TeamRunError,Yr as ToolGroupError,gS as UNAVAILABLE_REASONS,hR as UNTITLED_MEETING,Er as UPCASTERS,KO as UPGRADE_URL,ss as UTTERANCE_DANGLING_MS,ns as UTTERANCE_SETTLE_MS,Ii as VAULT_VERSION,gi as VaultError,Cn as VoiceIntentError,Hr as WEATHER_HOST,wr as WEATHER_TIMEOUT_MS,JN as WEATHER_TOOL_NAME,YN as WEATHER_TOOL_SYSTEM,vE as WEB_SEARCH_SPEC,UE as WEB_SEARCH_TOOL_NAME,bE as WEB_SEARCH_TOOL_SYSTEM,To as WIDGET_SURFACES,Nc as WITHDRAW_AFTER,bp as WORKLOG_KINDS,Pl as WORK_GRANTS,GA as WRITER_PREFS,KA as WRITER_PREF_DEFAULTS,Vr as WeatherError,wt as YOUTUBE_HOSTS,Tt as accept,NE as actionMenu,Kf as adaptProfile,pN as adaptiveToolRetryHint,RR as addTag,WS as addUsage,Um as adjustSummary,df as advanceBases,eM as agentAllowed,l_ as agentColor,dc as agentFromForm,E_ as agentHue,T_ as agentInitials,S_ as agentKind,q as agentMentionAt,Co as aliasMap,YS as anthropicTranscript,JT as applyAll,zc as applyCard,ye as applyEdits,oO as applyEntry,sM as applyPolicyToSettings,qI as applySections,Te as appoint,Gr as areaLabel,Sc as assistantAgent,Fr as attemptOrder,Fm as attest,rS as bareToolName,kf as bestCodec,_c as blankAgent,ip as blankConnection,jT as blankJobPost,yT as blankProject,yl as blankTeam,RS as blockedToolResult,Jl as boardText,nT as boardToolProvider,sT as boardToolSpec,lO as boundSegments,rp as branchFor,Hl as breakCycles,Wo as briefId,Yo as briefLinks,kN as briefPrompt,Jo as briefTerms,Xo as briefToText,uE as buildGroupDispatchSpec,Me as buildNoteGraph,Kt as buildPdfDocument,de as buildSearchUrl,fE as buildToolset,ua as buildTrajectory,ea as buildTranscriptDocument,A_ as builtinOrg,rI as can,Ki as canAddEntry,XT as canJobPostTransition,hT as canProjectTransition,oS as canRunConcurrently,_r as canSatisfy,Cd as candidatesFrom,Lm as canonical,Jt as captionTracksFromPlayerResponse,c_ as cardNumbers,Yc as cardOverride,wc as carveBudget,cO as catchUpPlan,u as causesAreWellFormed,eN as changedSections,fr as checkInvariants,zo as checkKnowledgeInvariants,QO as checkoutUrl,fT as checkpointFrom,tt as claimsFromSynthesis,NS as classifyFailure,Ee as classifyModel,si as classifySource,UR as cleanTitle,vA as clipCompletion,Tp as clipMessage,_n as clipText,lp as clipTranscript,Js as coerce,Ms as coerceEntities,SN as combineSystemPrompt,Y as commandLineAt,ts as commandLooksFinished,Dn as commandsFromSegments,nE as compactValue,Du as compactable,Cu as compactionPrompt,Lu as compactionRecord,N as compareEvents,q_ as compileQuery,Ln as compileWake,HE as compressToolSpec,wE as compressToolSpecs,VE as compressionStats,ep as connectionFor,np as connectionFromForm,gd as containment,Vo as contentHash,cp as continuationNote,aR as continueList,pt as converge,sa as createAccessLog,_a as createAdapterRegistry,_N as createAdaptiveToolPolicy,fn as createAnalyzerRegistry,ST as createAnswerBox,c as createAppender,Mr as createBlobStore,Wl as createBoard,El as createBudget,GS as createCallRunner,Oa as createCitationCollector,pp as createControl,Eu as createFetchedStore,Xf as createJournal,K_ as createKernel,ur as createLogStore,b_ as createManifest,Nr as createMemoryAdapter,uS as createModelHealth,Va as createModelRouter,Cr as createRegistry,rE as createResultStore,Ai as createRuleEngine,cT as createRunCache,rO as createSegment,Hd as createSkillSourceRegistry,xA as createSpendMeter,zs as createStructuredStream,Jr as createToolGroupRegistry,cS as createToolLoopGuard,en as createTriggerRegistry,Ua as createTurnRunner,is as createUtteranceGate,Di as createVault,Gn as createVoiceIntentRegistry,tp as credentialEnv,FO as cssVarName,xI as dayBucket,mf as decide,Bc as decideRecruit,oA as declaredAccess,uf as decryptBackup,lI as defaultLinkPolicy,y as defaultModelId,_u as defaultTtl,Kn as defaultVoiceIntents,eu as deferAttachedSources,pa as defineAdapter,sc as defineAgent,Tn as defineJob,WT as defineJobPost,ba as defineLoop,Rn as defineMeetingAnalyzer,Ha as defineMiddleware,Ka as defineModel,FT as defineProject,wa as defineRouteStrategy,di as defineRule,vs as defineSchema,xr as defineSearchEngine,Kd as defineSkillSource,dl as defineTeam,Xr as defineToolGroup,$i as defineTrigger,Bn as defineVoiceIntent,GI as demd,pI as densityRibbon,L as dequeue,Cf as deriveBackupKey,qo as deriveBrief,Zo as deriveBriefs,hi as deriveKey,HR as deriveMeetingTitle,af as deriveTitle,lc as describeAgent,Up as describeCall,ap as describeConnection,qm as describeEngine,nl as describeRecipeForApproval,Nl as describeRole,Bs as describeSchema,iE as describeShape,MT as describeSpend,Pp as describeTeamForApproval,i_ as describeTeamShape,wS as describeToolCall,ct as diffProposal,La as displayName,lR as docStats,FA as draftSeparator,$o as driftedRefs,ZE as dryRunRecipe,Op as dryRunTeam,mn as dueJobs,Mt as duplicateTitles,Po as earnsBrief,vn as editDistance,he as editKey,tm as effectiveGate,Eo as effectiveGrants,nS as effectiveToolName,ge as egoGraph,aM as egressAllowed,oT as emptyBoardState,UT as emptyProjectRecord,dT as emptyRun,XA as enabledSkills,Nf as encryptBackup,Zu as endpointAllowed,vm as engineKey,Qm as engineKeyOf,Ec as engineOf,Ie as engineOrder,jm as engineRef,Dc as engineRow,Fc as engineRows,F_ as engineStrip,kc as engineWorth,Ns as entitiesFormat,Is as entitiesPrompt,gs as entitiesStream,bi as entryMeta,Zf as entryStamp,qr as equipmentFor,PE as estimateTokens,bc as evaluatorPrompt,jE as expandRecipe,ed as expandReplacement,fA as expandSkillPrompt,Qs as explainMcpError,Wp as extendDependents,RO as extractFilters,Si as extractUrls,xS as failoverExhausted,za as failoverOrder,nM as featureEnabled,Tu as fetchKey,mu as fetchTitle,cu as fetchedAsSources,pu as fetchedFacts,LR as filterByTags,Ca as filterEntries,J as filterNoteActions,PI as filterRecords,h as filterSections,Fe as filterTypoEdits,pE as findActionArgs,yE as findDispatchProvider,ws as findJson,Z_ as findMatches,ee as findSkillByName,re as findTargetByName,mE as findTools,cE as findToolsResult,Pn as findWakeCommand,Yl as findingsInstruction,aT as findingsOf,km as fit,fu as fitFor,vl as fixedPlan,HN as foldBackFor,UN as foldBackNote,tT as foldBoard,bN as foldNotes,bT as foldProject,AT as foldRun,_f as forkConflict,Ea as formatBytes,Y_ as formatReport,Dt as formatSurvey,NR as formatTag,gR as formatTagQuery,RI as formatTalkTime,Zt as formatTimestamp,$t as formatTranscript,Br as formatWeather,V as frameNoteAction,JO as freeCap,wi as fromB64,co as fuseRRF,am as gateAllows,RN as getMcpProviders,Ur as getWeather,os as gistOpening,rs as gistText,TM as globToRegExp,PA as goalDraftAllowed,Ol as grantAllows,f_ as grantChoices,O_ as grantsFromChoices,Qr as grantsNeededFor,Le as graphStats,hA as groundingBlock,XI as groupActionsByOwner,F as groupModels,FI as groupRecords,qt as groupSegments,vI as hasInsights,AR as hasTag,MR as hasTagTerms,wp as holdsGrants,Ei as hostMatches,Ff as identityCodec,$N as imageAttachmentsOf,iR as indentSelection,UI as insightKindOf,CA as instructionOnLine,IO as isActionable,Kr as isAmbiguousLocation,VR as isBetterTitleSource,R_ as isBuiltin,tS as isCacheable,Nu as isContextLimitError,Mf as isEncryptedBackup,qf as isEntry,es as isFillerSentence,bR as isGenericTitle,dN as isInvalidToolParametersResult,Bi as isLocked,AS as isLoopableTool,Ip as isModelUnavailable,Xs as isNothing,$O as isPro,C as isQueued,ZR as isRecordId,Fo as isRedactionToken,R as isRef,Re as isResultHost,OT as isResumable,qd as isSafeSkillPath,xf as isSealedRecord,yo as isSelfLabel,pf as isSettled,US as isSourceGateError,II as isSpeakerImageValue,Zs as isStaleMcpSession,go as isSubjectCandidate,eI as isTeam,Qf as isTombstone,m as isValidEvent,Id as isValidMemory,ef as isValidStoredRecord,Xt as isYouTubeUrl,Uc as jobApplications,Vp as jobFromSubtask,QT as jobPostFromForm,cm as jobResults,YT as jobToRole,cn as jobsForEvent,Am as jobsPrompt,Ou as keepRecentFor,Df as keyCache,ga as lanesOf,eo as layoutFlowchart,uc as ledgerKey,nI as licenseFromPayload,uA as lineAt,I as linearize,Ut as linesFromItems,_t as linkClaims,Ra as linkifyCitations,dA as lintSkillPrompt,xe as lintText,Gi as lockedSummary,Gt as looksScanned,na as makeAccessEvent,LE as makeDispatchProvider,xm as makeEntry,gE as makeGroupDispatchExecutor,zf as makeJournalEntry,gc as makeLedgerEntry,qR as makeRecordId,A as makeRef,ri as makeSourceStore,Sa as makeStorageTier,oi as manifestText,qE as mapInput,Fd as markUsed,Pd as matchForForget,$_ as matchIndexFor,zA as matchSlashRecipe,YA as matchSlashSkill,QA as matchSlashTeam,dn as matchSummary,CR as matchesTagFilter,IN as mcpBackoff,y_ as mcpDispatchProvider,nN as mcpInventorySystem,tN as mcpProvider,iN as mcpSharedSystem,H_ as meetDecisions,li as meetReach,an as meetingEndedTrigger,bI as meetingInsights,tn as meetingStartedTrigger,WR as meetingTitlePrompt,Dd as memoryBlock,Nd as memoryKey,yd as memoryToolSystem,oe as mentionAnswerPrefix,Ct as mentionsFrom,Oe as mergeEngineResults,Ve as mergeResearchLanes,nO as mergeSegments,$ as mergeSkillPrompt,$I as mergeStamped,Ep as mergeTranscript,Pu as messagesAfter,Sp as messagesFor,Iu as minWindowFor,o_ as missingStarters,$u as modelAllowed,k as modelSummary,VI as momentBadge,Jn as monitorIntent,P as moveQueued,_o as multiSearch,hc as needForJob,rA as needsBridge,aS as needsConfirmation,sI as needsRecheck,mp as newSteps,Qi as nextFireAt,vN as nextSidelineIndex,Zi as nextWakeAt,yf as nodeCodec,CS as normModelName,nc as normalizeAgent,Tl as normalizeBudget,Mc as normalizeCall,Zc as normalizeConnection,bm as normalizeEngine,Ym as normalizeEngineSpec,om as normalizeGate,fl as normalizeGrants,wA as normalizeIntent,VT as normalizeJobPost,Od as normalizeMemory,qu as normalizeOrgPolicy,Jm as normalizePolicy,DT as normalizeProject,At as normalizeRecord,Rt as normalizeRecords,Bp as normalizeRequest,Bm as normalizeScm,EA as normalizeSkill,Un as normalizeSpeech,$R as normalizeStoredRecord,No as normalizeSubject,_R as normalizeTag,dR as normalizeTags,Rl as normalizeTeam,ds as normalizeTopic,As as normalizeTopics,XS as normalizeUsage,HA as normalizeWriterPrefs,X as noteActionItems,W as noteActionLabel,Xn as noteIntent,HI as noteSectionKind,GN as noteUnits,L_ as observeInbox,YO as observeSince,P_ as observeStrip,pn as occurrenceKey,qi as occurrencesBetween,_E as oneLiner,JS as openAiTranscript,ki as openEntry,Pf as openRecord,bt as orderLines,tA as originLabel,Zd as originOf,ut as orphanRecords,oR as outlineOf,dE as overlapRank,mO as overlayEntries,qs as packageFromArgs,Bt as pageTextFromItems,DO as paletteFor,vt as paragraphsFromLines,sS as parallelEligible,Q as parseAgentMention,jo as parseBriefText,xN as parseBringBack,hn as parseClock,xn as parseCommand,Fn as parseDuration,us as parseEntities,vc as parseEvaluation,Xl as parseFindings,$r as parseFlowchart,_m as parseJobs,z_ as parseJsonl,tR as parseListItem,WI as parseMeetingNotes,mI as parseMeetingText,kn as parseNumberWords,AO as parseOmni,Bl as parsePlan,$e as parsePlanTasks,QR as parseRecordId,Qn as parseRefinement,$c as parseRemote,dm as parseReview,SO as parseSegmentName,PN as parseSideline,Z as parseSkillMention,_A as parseSkillVars,Ys as parseStructured,Fs as parseSuggestions,uR as parseTagQuery,Qt as parseTimedText,XR as parseTitleResponse,_s as parseTopics,vr as parseWeather,yn as parseWhen,Wt as parseYouTubeUrl,g as pendingQueue,rM as permissionMode,nn as personJoinedTrigger,Ma as phasesOf,sn as phraseTrigger,zt as pickCaptionTrack,Gf as pickProfile,fe as pickResults,QI as pickSections,ja as pinnedOrderOf,tr as planAttribution,or as planBody,gu as planCompaction,ZO as planLabel,qO as planOf,rr as planParts,po as planQueries,Ze as planSectionSystem,cf as planSync,er as planTitleFor,lS as planToolRound,Gl as plannerPrompt,Hf as policyFor,EM as policyHash,SM as policyLabel,Ac as poolFor,Ya as preferenceFor,iu as prefetchAttachment,au as prefetchPlan,vu as presenceBlock,ku as presenceDelta,yu as presenceFor,CT as priorWorkFor,ma as projectChain,kT as projectFromForm,vT as projectProgress,x as promoteQueued,e_ as promoteRoles,Fa as promptEntries,Kc as proposalFromNeeds,Hc as proposalToAgent,lt as propose,hd as pruneMemories,En as questionTrigger,ie as rankLinkTargets,we as rankResearchCards,xo as rankSubjects,Uu as reachOf,nr as reachRank,sr as reachSatisfies,ai as readSource,yN as readThread,zT as readyJobs,xd as recall,jA as recipeInvocationText,QE as recipeParams,al as recipeToolProvider,il as recipeToolSpec,Ld as reconcile,Dr as reconcileEngines,Vc as recruitEvents,Gc as recruitForRun,Wc as recruitJob,ia as redactAccessArgs,Ot as redactedTokensIn,It as redactionCost,tM as redactionTier,$n as refineSpokenCommand,jn as refinementFormat,zn as refinementPrompt,qn as refinementStream,mt as reject,Vn as reminderIntent,fR as removeTag,QN as renderContent,ro as renderFlowchartSvg,EI as renderMarkdown,Ws as repairJson,od as replaceAll,td as replaceAllInRange,rd as replaceMatch,J_ as replay,Xa as requirementsFor,Ja as requirementsForStep,Ge as researchRelevance,He as researchSnippet,ON as resetMcp,f as resolveRef,DN as resolveSidelineTarget,fO as resolveSince,Lo as resolveSubjects,mc as resolveTeam,kO as resolveTheme,Ks as responseFormat,sE as resultToolSpec,fp as resumeTeam,Rm as reviewPrompt,Vs as rewriteJson,Se as roleById,m_ as roleCardId,s_ as rosterRows,pm as roundBudget,KS as roundCap,Bu as roundCount,Tm as roundJobs,Gu as roundMinutes,pS as roundSignature,oM as routeAllowed,yc as routeFor,Ta as routeGraph,me as routeTeam,DI as rowTime,RT as runFromEvents,x_ as runLanes,$E as runPlan,lm as runProject,el as runRecipe,tE as runResultQuery,gT as runState,Rp as runTeam,TS as runToolRound,BS as runTurnLoop,PS as runWithFailover,ve as salientTerms,Ud as sameMemory,Za as sameModelKey,aA as sameSkillOrigin,IR as sameTags,as as sameUtterance,Bf as scalePolicy,Wn as scheduleIntent,Il as scmAllows,yi as sealEntry,Lf as sealRecord,vi as searchEntries,BE as searchResultsToText,of as searchTextFor,ZI as sectionHash,jI as sectionValue,tO as segmentBytes,aO as segmentEntries,sO as segmentName,TO as segmentsFor,TR as selectionStats,iM as settingLocked,Zn as settleRefinement,Pm as sha256,oE as shieldToolResult,ti as shortUrl,wR as shouldAutoTitle,iO as shouldRotate,KN as sidelinePath,WN as sidelineToolProvider,Wa as signalsFrom,Md as similarity,I_ as skillChoices,eA as skillFiles,eR as skillInvocationLabel,$A as skillInvocationOf,iA as skillIsStale,cA as skillVar,OA as skillVarGuidance,pA as skillVarPattern,ZA as slashCommandInsert,JA as slashCommandItems,ud as slotOf,Tc as slugAgentId,Ul as slugTeamName,nf as snippetOf,__ as soloTeam,LI as sortRecords,CI as sortStamp,sN as sourceCitationSystem,kS as sourceGate,yS as sourceGuardFor,ii as sourceId,BN as sourceOf,Ti as sourcePolicyFor,hS as sourcePolicySettings,mi as sourceUrlsOf,fa as sourcesFromToolText,Lt as spanningQuestions,dI as speakerBreakdown,NI as speakerLabeller,cI as speakerStats,AI as speakerTimeline,uT as spendOf,D_ as spendRows,_S as stableToolCallKey,Tf as stampOf,pc as starterAgents,r_ as starterTeam,hl as starterTeams,VS as stepResultText,hf as streamCodec,ko as stripQualifiers,uo as subjectKey,Mo as subjectTokens,RA as substituteSkillVars,Gp as subtaskFromRequest,xR as suggestExistingTags,Uo as suggestMerges,AA as suggestSkillVar,Ds as suggestionsFormat,xs as suggestionsPrompt,hs as suggestionsStream,ym as summarize,Cc as summarizeEngine,kI as summarySections,$f as supersedes,le as supportsSubagents,Pt as surveyCorpus,ot as synthesisPrompt,xu as systemWithSummary,PR as tagFacets,DR as tagsSearchText,Kp as takeUp,Hp as takeUpLine,Xp as taskTree,mm as teamForRound,kl as teamFromForm,t_ as teamHealth,qA as teamInvocationText,Zp as teamLanes,qp as teamLine,a_ as teamShape,gp as teamToolProvider,Cp as teamToolSpec,Lp as teamToolTimeoutMs,d_ as teamsWithSolos,fN as testMcpServer,yO as themeStylesheet,FN as threadManifest,Jp as threadRows,Da as threadTitle,hN as threadToolProvider,ya as threadTree,xa as threadsOf,xt as thresholdSweep,oI as tierFor,Zm as tierOf,jt as timedTextUrl,wn as timerIntent,on as timerTrigger,KR as titleFromDate,GR as titleFromParticipants,vR as titleFromSummary,BR as titleFromTopics,Hi as toB64,zl as toBriefClaims,qN as toChatMessages,hO as toCssVars,tf as toIndexEntry,Gs as toJsonSchema,j_ as toJsonl,dr as toModelSchema,Ar as toModelSchemas,ZN as toMultimodalMessages,rf as toSearchRecord,sR as toggleLinePrefix,ER as toggleLink,OR as toggleTag,SR as toggleTask,nR as toggleWrap,bn as tokenize,jf as tombstone,dS as toolMadeProgress,jr as toolNeedFor,EN as toolStatus,eS as toolTraits,Be as topicTerms,Sn as topicTrigger,ps as topicsFormat,cs as topicsPrompt,ms as topicsSchema,Rs as topicsStream,iS as traitsIndex,ra as transcriptFromTracks,z as triggerQueryAt,WE as trimDescription,Ce as trimGraph,$d as trustOf,ha as turnsOf,Hs as unfence,Fi as unlockVault,Ae as unwrapRedirect,lr as upcast,Tr as upcastAll,kd as upcastMemory,sA as upcastSkill,SA as upcastSkills,p_ as upsertAgents,ml as usageOf,ME as validateAction,ic as validateAgent,ll as validateBudget,cr as validateCapability,qc as validateConnection,zm as validateEngineSpec,Ui as validateEntry,T as validateEvent,rm as validateGate,pr as validateInvocation,wT as validateJobPost,xT as validateProject,zE as validateRecipe,ji as validateSchedule,nA as validateSkill,Al as validateTeam,to as validateView,ao as validateViewInvocation,so as validateWidget,So as validateWidgetMessage,TN as vaultWidgetSystem,hm as verifyAttested,Dm as verifyChain,aI as verifyEntitlement,lM as verifyPolicyToken,iI as verifySignedToken,Yt as videoMetaFromPlayerResponse,io as viewResult,gt as vocabularyDrift,ln as voiceCommandTrigger,Nt as wantedPages,OO as wantsModel,mN as wantsVaultGuidance,Kl as waves,su as weatherFollowupPlace,nu as weatherPlace,zN as weatherToolProvider,br as weatherUrl,Ke as webQuery,GE as webSearchToolProvider,n_ as whereItWorks,lN as widgetAuthoringSystem,lo as widgetIcon,ae as wikiQueryAt,ft as wikilinksIn,Ru as windowOf,ET as withBoardTool,lu as withFetchedMemo,CE as withGuidance,bu as withPresence,aE as withResultShield,pT as withRunCache,ru as withSourceTool,HS as withToolSystem,tI as withinFreeLimit,bS as withinReach,sf as wordCount,De as wordDiff,kp as workLogEvidence,hp as workLogFor,yp as workLogText,op as worktreeDirFor,MA as writerAffordance,yA as writerRequest,DA as writerTail};
package/journal.js ADDED
@@ -0,0 +1 @@
1
+ import{parseRecordId as S}from"./library.js";import{stampOf as L,planSync as $,CLOCK_TOLERANCE_MS as I}from"./sync-plan.js";class m extends Error{constructor(t){super(t),this.name="JournalError"}}const a=e=>Number.isFinite(Number(e))?Number(e):0,M=Object.freeze({live:Object.freeze({quietMs:5e3,maxMs:3e4,liveMaxMs:6e4,maxDirty:50}),file:Object.freeze({quietMs:3e4,maxMs:3e5,liveMaxMs:3e5,maxDirty:50})});function F(e,t){const n={};for(const[o,s]of Object.entries(e))n[o]=Object.freeze({quietMs:Math.round(s.quietMs*t),maxMs:Math.round(s.maxMs*t),liveMaxMs:Math.round(s.liveMaxMs*t),maxDirty:s.maxDirty});return Object.freeze(n)}const q=F(M,2),B=50,D=20,J=3;function G({cores:e=0,onBattery:t=!1}={}){return t||a(e)>0&&a(e)<=4?"slow":"default"}function Q(e,t){const n=e?.profile==="slow"?"slow":"default",o=a(e?.fastStreak),s=a(t);if(s>B)return{profile:"slow",fastStreak:0};if(n==="slow"){const l=s<D?o+1:0;return l>=J?{profile:"default",fastStreak:0}:{profile:"slow",fastStreak:l}}return{profile:"default",fastStreak:0}}function V(e,{fast:t=M,slow:n=q}={}){return e==="slow"?n:t}function X({now:e=()=>Date.now(),policy:t=M}={}){const n=Object.keys(t);if(!n.length)throw new m("a journal needs at least one sink in its policy");const o=new Map(n.map(r=>[r,new Map])),s=r=>{if(!S(r))throw new m(`not a record id: ${JSON.stringify(r)}`)},l=(r,i,c)=>{for(const p of o.values()){const f=p.get(r);p.set(r,{since:f?f.since:i,touchedAt:i,live:f?f.live:!1,removed:f?f.removed:!1,...c})}},u={touch(r,{live:i=!1,at:c=e()}={}){return s(r),l(r,c,{live:!!i,removed:!1}),u},remove(r,{at:i=e()}={}){return s(r),l(r,i,{live:!1,removed:!0}),u},size(r=null){if(r)return(o.get(r)||new Map).size;const i=new Set;for(const c of o.values())for(const p of c.keys())i.add(p);return i.size},due(r,{at:i=e(),force:c=!1}={}){const p=t[r],f=o.get(r);if(!p||!f)throw new m(`unknown sink: ${r}`);if(!f.size)return{flush:!1,reason:null,ids:[],removed:[]};const d=[...f.keys()].sort(),w=h=>({ids:h,removed:h.filter(x=>f.get(x).removed)});if(c)return{flush:!0,reason:"force",...w(d)};if(f.size>=p.maxDirty)return{flush:!0,reason:"dirty",...w(d)};const v=[];let g=null;for(const h of d){const x=f.get(h),_=i-x.since,j=i-x.touchedAt,z=x.live&&!x.removed?p.liveMaxMs:p.maxMs;if(_>=z){v.push(h),g=g||"max";continue}!(x.live&&!x.removed)&&j>=p.quietMs&&(v.push(h),g=g||"quiet")}return v.length?{flush:!0,reason:g,...w(v)}:{flush:!1,reason:null,ids:[],removed:[]}},nextDueAt(r,i=e()){const c=t[r],p=o.get(r);if(!c||!p)throw new m(`unknown sink: ${r}`);let f=null;for(const d of p.values()){const w=d.live&&!d.removed,v=d.since+(w?c.liveMaxMs:c.maxMs),g=w?1/0:d.touchedAt+c.quietMs,h=Math.min(v,g);(f===null||h<f)&&(f=h)}return f===null?null:Math.max(f,i)},take(r,i){const c=o.get(r);if(!c)throw new m(`unknown sink: ${r}`);for(const p of i||[])c.delete(p);return u},toJSON(){const r={};for(const[i,c]of o)r[i]=Object.fromEntries(c);return{v:1,dirty:r}},restore(r){const i=r?.dirty&&typeof r.dirty=="object"?r.dirty:{};for(const[c,p]of o){p.clear();for(const[f,d]of Object.entries(i[c]||{}))!S(f)||!d||p.set(f,{since:a(d.since),touchedAt:a(d.touchedAt),live:!!d.live,removed:!!d.removed})}return u}};return u}const A=1;function T({host:e,seq:t,at:n,id:o,stamp:s,hash:l=null,blob:u=null}={}){if(!e||typeof e!="string")throw new m("an entry needs a host");if(!Number.isInteger(t)||t<0)throw new m("an entry needs a non-negative integer seq");if(!S(o))throw new m(`not a record id: ${JSON.stringify(o)}`);const r=a(s?.updatedAt),i=a(s?.deletedAt);if(!r&&!i)throw new m(`entry for ${o} has no stamp`);if(!i&&!u)throw new m(`entry for ${o} is neither a body nor a tombstone`);return{v:A,host:e,seq:t,at:a(n),id:o,stamp:{updatedAt:r,deletedAt:i},...l?{hash:String(l)}:{},...i?{}:{blob:u}}}function Z({host:e,seq:t,at:n,id:o,deletedAt:s,updatedAt:l=0}){return T({host:e,seq:t,at:n,id:o,stamp:{updatedAt:l,deletedAt:a(s)||a(n)}})}function P(e){return!!e&&a(e.stamp?.deletedAt)>0}function b(e){return!!e&&e.v===A&&typeof e.host=="string"&&Number.isInteger(e.seq)&&!!S(e.id)&&!!e.stamp&&(a(e.stamp.updatedAt)>0||a(e.stamp.deletedAt)>0)&&(P(e)||!!e.blob)}function O(e){return L(e?.stamp)}function N(e,t){if(!t)return!0;if(!e)return!1;const n=O(t),o=O(e);return o!==n?o>n:a(e.at)!==a(t.at)?a(e.at)>a(t.at):e.host===t.host?e.seq>t.seq:e.host>t.host}const k=Object.freeze({maxSegmentBytes:1024*1024,maxSegmentAgeMs:1440*60*1e3,maxSegmentsPerBase:16,maxJournalBytes:64*1024*1024});function ee({base:e,host:t,n=1,at:o=0}={}){if(!e||typeof e!="string")throw new m("a segment needs the base hash it applies to");if(!t||typeof t!="string")throw new m("a segment needs a host");if(!Number.isInteger(n)||n<1)throw new m("a segment number starts at 1");return{v:1,base:e,host:t,n,openedAt:a(o),entries:{}}}const C=e=>JSON.stringify(e).length+2;function R(e,t){if(!b(t))throw new m("applyEntry needs a valid entry");const n=e.entries[t.id];return n&&!N(t,n)?e:{...e,entries:{...e.entries,[t.id]:t}}}function y(e){let t=64;for(const n of Object.values(e?.entries||{}))t+=C(n);return t}function E(e){return Object.values(e?.entries||{})}function te(e,{now:t,bounds:n=k}={}){if(!e)return!1;if(y(e)>=n.maxSegmentBytes)return!0;const o=a(t)-a(e.openedAt);return a(e.openedAt)>0&&o>=n.maxSegmentAgeMs}function U(e,t){if(e.base!==t.base)throw new m("only segments of one base can be merged");let n={...e,n:Math.min(e.n,t.n),openedAt:Math.min(a(e.openedAt)||1/0,a(t.openedAt)||1/0),entries:{...e.entries}};Number.isFinite(n.openedAt)||(n.openedAt=0);for(const o of E(t))n=R(n,o);return n}const Y=/^[a-z0-9]{8,16}$/;function ne({device:e,base:t,n}){const o=String(e||"").toLowerCase(),s=String(t||"").toLowerCase().slice(0,8);if(!Y.test(o))throw new m("segmentName: device slot must be 8–16 [a-z0-9]");if(!/^[a-f0-9]{8}$/.test(s))throw new m("segmentName: base must be a hex content hash");if(!Number.isInteger(n)||n<1||n>9999)throw new m("segmentName: n must be 1–9999");return`chatpanel-journal-${o}-${s}-${String(n).padStart(4,"0")}.json`}const H=/^chatpanel-journal-([a-z0-9]{8,16})-([a-f0-9]{8})-(\d{4})\.json$/;function re(e){const t=H.exec(String(e||""));return t?{device:t[1],base:t[2],n:Number(t[3])}:null}function oe(e,{bounds:t=k}={}){let n=[...e||[]].sort((u,r)=>u.n-r.n),o=0;const s=[];for(;n.length>t.maxSegmentsPerBase;){const[u,r,...i]=n;n=[U(u,r),...i],o+=1}let l=n.reduce((u,r)=>u+y(r),0);for(;n.length>1&&l>t.maxJournalBytes;){const u=n.shift();s.push(u),l-=y(u)}return{keep:n,dropped:s,merged:o}}function se(e,t){return(t||[]).filter(n=>n&&n.base===e)}function ie(e){const t=new Map;for(const n of e||[]){const o=Array.isArray(n)?n:E(n);for(const s of o)b(s)&&N(s,t.get(s.id))&&t.set(s.id,s)}return t}function ae(e,t,{bases:n=null,tolerance:o=I}={}){const s=[];for(const u of t.values())s.push({id:u.id,updatedAt:a(u.stamp.updatedAt),deletedAt:a(u.stamp.deletedAt),lossy:!1});const l=$(e,s,{bases:n,tolerance:o});return{plan:l,pull:l.pull.map(u=>t.get(u)),push:l.push,conflicts:l.conflicts.map(u=>t.get(u))}}export{k as BOUNDS,M as DEFAULT_POLICY,A as ENTRY_VERSION,D as FAST_FLUSH_MS,J as FAST_STREAK,m as JournalError,H as SEGMENT_RE,B as SLOW_FLUSH_MS,q as SLOW_POLICY,Q as adaptProfile,R as applyEntry,oe as boundSegments,ae as catchUpPlan,X as createJournal,ee as createSegment,O as entryStamp,b as isEntry,P as isTombstone,T as makeEntry,U as mergeSegments,ie as overlay,re as parseSegmentName,G as pickProfile,V as policyFor,F as scalePolicy,y as segmentBytes,E as segmentEntries,ne as segmentName,se as segmentsFor,te as shouldRotate,N as supersedes,Z as tombstone};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chatpanel/events",
3
- "version": "0.114.1",
3
+ "version": "0.116.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",
@@ -108,6 +108,7 @@
108
108
  "./project.js": "./project.js",
109
109
  "./project-run.js": "./project-run.js",
110
110
  "./job.js": "./job.js",
111
+ "./journal.js": "./journal.js",
111
112
  "./gate.js": "./gate.js",
112
113
  "./team-plan.js": "./team-plan.js",
113
114
  "./team-run.js": "./team-run.js",
@@ -262,6 +263,7 @@
262
263
  "project.js",
263
264
  "project-run.js",
264
265
  "job.js",
266
+ "journal.js",
265
267
  "gate.js",
266
268
  "team-plan.js",
267
269
  "team-run.js",
package/presence.js CHANGED
@@ -1,3 +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 m(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 T(e){const t=Math.max(0,Math.floor((Number(e)||0)/6e4));return t<10?`${t} min`:`~${Math.floor(t/5)*5} min`}function D(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 A(e){try{return new URL(e).hostname.replace(/^www\./,"")}catch{return""}}function x(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||""}|${m(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(`${T(t-n.startedAt)} in`),Number(n.segments)>0&&i.push(`${p(n.segments)} captions`),n.lastCaptionAt&&i.push(`last ${D(t-n.lastCaptionAt)}`),n.hasSummary&&i.push("running summary kept"),`Live meeting: "${m(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=>`${A(e.page.url)}|${m(e.page.title)}`,render:e=>{const t=e.page,n=A(t.url);return`Active tab: "${m(t.title||n||"page")}"${n?` (${n})`:""} — read with page {"action":"read_page"} (args.query on a long page). Not included here.`}},{kind:"fetched",priority:3,via:["source"],applies:e=>Array.isArray(e.fetched)&&e.fetched.length>0,key:e=>e.fetched.map(t=>t.id).join(","),render:e=>`Already fetched in this conversation: ${e.fetched.slice(0,u).map(n=>`${n.id} ${m(n.title,40)} (${n.agoText||"earlier"})`).join("; ")} — read one with source {"id":"<id>"} (args.query for a part); do not fetch the same thing again.`},{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||"?"} "${m(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=>`"${m(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)}|${m(e.meetings.latest?.title,40)}`,render:e=>{const t=e.meetings.latest,n=t?` (latest: "${m(t.title,40)}"${x(t.date)?` ${x(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)),S="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 j=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||{},j(t),i);if(!o.length)return{text:"",lines:[],omitted:r,tokens:0,state:{}};const a=E(S,o,n,r),c=[S,...a.map(l=>l.text)].join(`
2
- `);return{text:c,lines:a.map(({kind:l,text:h,tokens:d})=>({kind:l,text:h,tokens:d})),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||{},j(t),o),l=new Map(a.map(s=>[s.kind,s])),h=a.filter(s=>r[s.kind]!==s.key),d=[];for(const s of Object.keys(r)){if(l.has(s))continue;const f=_.find($=>$.kind===s);d.push({kind:s,priority:f?f.priority:99,text:`- ${B[s]||`${s}: no longer available.`}`,tokens:0}),d[d.length-1].tokens=g(d[d.length-1].text)}const y=Object.fromEntries(a.map(s=>[s.kind,s.key]));if(!h.length&&!d.length)return{text:"",lines:[],omitted:c,tokens:0,state:y,unchanged:!0};const k=E(N,[...h,...d],i,c),b=[N,...k.map(s=>s.text)].join(`
3
- `),M=new Set(k.map(s=>s.kind));for(const s of h)!M.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 q(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,T as roundMinutes,q as withPresence};
1
+ import{approxTokens as g}from"./sources-retrieval.js";const w=350,O=60,u=6;function q(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 m(e,t=O){const n=String(e||"").replace(/\s+/g," ").trim();return n.length>t?n.slice(0,t-1).trimEnd()+"…":n}function d(e){const t=Math.max(0,Math.floor(Number(e)||0));return t<20?String(t):`${Math.floor(t/10)*10}+`}function T(e){const t=Math.max(0,Math.floor((Number(e)||0)/6e4));return t<10?`${t} min`:`~${Math.floor(t/5)*5} min`}function D(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 A(e){try{return new URL(e).hostname.replace(/^www\./,"")}catch{return""}}function x(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||""}|${m(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(`${T(t-n.startedAt)} in`),Number(n.segments)>0&&i.push(`${d(n.segments)} captions`),n.lastCaptionAt&&i.push(`last ${D(t-n.lastCaptionAt)}`),n.hasSummary&&i.push("running summary kept"),`Live meeting: "${m(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=>`${A(e.page.url)}|${m(e.page.title)}`,render:e=>{const t=e.page,n=A(t.url);return`Active tab: "${m(t.title||n||"page")}"${n?` (${n})`:""} — read with page {"action":"read_page"} (args.query on a long page). Not included here. A question about something this conversation has not mentioned ("it", "this", a name, a headline) is most likely about this tab: read it before searching history or the web.`}},{kind:"fetched",priority:3,via:["source"],applies:e=>Array.isArray(e.fetched)&&e.fetched.length>0,key:e=>e.fetched.map(t=>t.id).join(","),render:e=>`Already fetched in this conversation: ${e.fetched.slice(0,u).map(n=>`${n.id} ${m(n.title,40)} (${n.agoText||"earlier"})`).join("; ")} — read one with source {"id":"<id>"} (args.query for a part); do not fetch the same thing again.`},{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||"?"} "${m(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=>d(e.notes.count),render:e=>{const t=(e.notes.recent||[]).slice(0,3).map(n=>`"${m(typeof n=="string"?n:n?.title,40)}"`).filter(n=>n!=='""');return`Notes: ${d(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=>`${d(e.meetings.count)}|${m(e.meetings.latest?.title,40)}`,render:e=>{const t=e.meetings.latest,n=t?` (latest: "${m(t.title,40)}"${x(t.date)?` ${x(t.date)}`:""})`:"";return`Past meetings: ${d(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=>d(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: ${d(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=>d(e.memory.count),render:e=>`Memory: ${d(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=>d(e.chats.count),render:e=>`Past chats: ${d(e.chats.count)} — find {"action":"history_search","args":{"scope":"chats"}}.`}],K=Object.freeze(_.map(e=>e.kind)),S="Around this turn (NOT included — read what the question needs, one call):",v="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 N(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 j=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}=N(e||{},j(t),i);if(!o.length)return{text:"",lines:[],omitted:r,tokens:0,state:{}};const a=E(S,o,n,r),c=[S,...a.map(l=>l.text)].join(`
2
+ `);return{text:c,lines:a.map(({kind:l,text:h,tokens:p})=>({kind:l,text:h,tokens:p})),omitted:r,tokens:g(c),state:Object.fromEntries(a.map(l=>[l.kind,l.key]))}}function P({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}=N(e||{},j(t),o),l=new Map(a.map(s=>[s.kind,s])),h=a.filter(s=>r[s.kind]!==s.key),p=[];for(const s of Object.keys(r)){if(l.has(s))continue;const f=_.find($=>$.kind===s);p.push({kind:s,priority:f?f.priority:99,text:`- ${B[s]||`${s}: no longer available.`}`,tokens:0}),p[p.length-1].tokens=g(p[p.length-1].text)}const y=Object.fromEntries(a.map(s=>[s.kind,s.key]));if(!h.length&&!p.length)return{text:"",lines:[],omitted:c,tokens:0,state:y,unchanged:!0};const k=E(v,[...h,...p],i,c),b=[v,...k.map(s=>s.text)].join(`
3
+ `),M=new Set(k.map(s=>s.kind));for(const s of h)!M.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 R(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,K as PRESENCE_KINDS,G as presenceBlock,P as presenceDelta,C as presenceFor,q as reachOf,d as roundCount,T as roundMinutes,R as withPresence};
package/tool-need.js CHANGED
@@ -1,3 +1,3 @@
1
- import{signalsFrom as k}from"./router.js";const v=new Set(["hi","hii","hiya","hey","heya","hello","helo","yo","sup","howdy","greetings","good","morning","afternoon","evening","night","day","thanks","thank","thankyou","thx","tnx","ty","cheers","appreciated","ok","okay","k","kk","got","sounds","perfect","great","cool","nice","awesome","lol","haha","hah","hehe","nvm","yep","yeah","yes","no","nope","sure","bye","goodbye","later","ya","cya","ciao","welcome","worries","problem","np","please","there","again","all","everyone","team","friend","mate","buddy","you","u","so","much","very","well","and","a","the"]),S=6;function x(t){const o=String(t||"").toLowerCase().replace(/[^\p{L}\s']/gu," ").split(/\s+/).filter(Boolean);return!o.length||o.length>S?!1:o.every(a=>v.has(a))}function A({request:t=null,signals:o=null,attachments:a=[],explicit:c=!1}={}){if(c)return{tools:!0,why:"the turn asked for tools"};if((a||[]).some(n=>n&&!n.auto))return{tools:!0,why:"the turn carries an attachment"};const h=String(t?.text??(t?.messages||[]).map(n=>n?.content||"").join(`
2
- `));return x(h)?(o||k(t||{})).smalltalk?{tools:!1,why:"a greeting — nothing to look up"}:{tools:!0,why:"the request may need something fetched"}:{tools:!0,why:"the request may need something fetched"}}const j=Object.freeze([["web",/\b(search|google|look ?up|latest|current|recent|today|this (week|month|year)|news|price|prices|pricing|cost of|quote|stock|market|website|url|online|web|docs?umentation|release notes|changelog|versions?)\b/i],["history",/\b(our (meeting|call|notes?|chats?|conversation)|what (did|was) (we|i)|we (decided|agreed|discussed|said)|in (my|our) (notes?|meetings?|history|chats?)|past (chats?|meetings?|notes?)|earlier (meeting|conversation|chat|note)|transcript|standup|retro)\b/i],["data",/\b(attached|attachment|this (page|document|file|pdf|spreadsheet|sheet)|the (document|file|pdf|spreadsheet) (above|provided|attached))\b/i]]);function _(t,{held:o=null}={}){const a=String(t||"");if(!a.trim())return[];const c=j.filter(([,e])=>e.test(a)).map(([e])=>e);if(!o)return c;const h=new Set((Array.isArray(o)?o:[]).map(e=>String(e).toLowerCase()));return c.filter(e=>h.has(e)||e==="history"&&h.has("data"))}const m=Object.freeze(["page","data","mcp","memory","note","team","sideline","skills","widgets","recipes"]),g=Object.freeze(["data","mcp","memory"]),b=/\b(this|the|current|open|active|that|my) (page|tab|site|website|article|post|thread|document|doc|file|pdf|sheet|spreadsheet|form|canvas|board|diagram|screen|window|video|table|cell|button|field|link|image)\b|\bon (the|this) (page|screen|tab)\b|\bhere\b|\bthis\b(?!\s+(morning|afternoon|evening|week|weekend|month|year|time|is (a|the|my))\b)|\bthese\b|\bthose\b/i,f=/\b(click|tap|press|type|fill|enter|select|scroll|drag|draw|paint|sketch|navigate|go to|open|close|submit|upload|download|play|pause|screenshot|inspect|read (the|this)|zoom|highlight|copy|paste|log ?in|sign ?in|sign ?up|checkout|add to cart|search (on|in) (the|this)|watch|browse)\b/i,L=/\b(build|make|create|write|generate|draft|code|design|implement|prototype)\b[^.?!]{0,40}\b(app|widget|tool|timer|calculator|tracker|checklist|game|dashboard|form|page|site|script|component|converter|counter|scoreboard|clock|note|dice)\b|\b(widget|app)\b/i,R=/\b(run|use|ask|start|save|create|make|set ?up|open|launch|kick ?off|assign|delegate)\b[^.?!]{0,30}\b(team|teams|agent|agents|skill|skills|recipe|recipes|sideline|project)\b|\b(the|my|our|this|that)\s+(\w+[\s-]+)?(team|agent|skill|recipe|sideline|project)\b|\bask (the|our|my) \w+ (to|for)\b|\b(executive|breakout|workflow)\b|remember this|save (this|that) as|^\s*\//i,w=/\b(summar\w*|analy\w*|review|edit|rewrite|fix|refactor|debug|translate|convert|extract|compare|explain (this|that|the)|proofread|format|organi[sz]e|plan)\b/i,E=300;function G({request:t=null,signals:o=null,attachments:a=[],explicit:c=!1,stable:h=!1}={}){const e=i=>({tools:!0,tier:"full",groups:new Set(m),why:i});if(h)return e("a warm process keeps one tool set");const n=A({request:t,signals:o,attachments:a,explicit:c});if(!n.tools)return{tools:!1,tier:"none",groups:new Set,why:n.why};if(c)return e(n.why);if((a||[]).some(i=>i&&!i.auto))return e("the turn carries an attachment");const s=String(t?.text??(t?.messages||[]).map(i=>i?.content||"").join(`
3
- `));if(!s.trim())return e("no text to read");if(s.length>E||/```/.test(s))return e("a long or code-bearing request");const u=b.test(s)||f.test(s)||w.test(s),d=R.test(s),p=L.test(s),y=w.test(s);if(!u&&!d&&!p)return{tools:!0,tier:"light",groups:new Set(g),why:"a lookup — the user's data and the web are enough"};const r=new Set(g),l=[];return u&&(r.add("page"),r.add("note"),l.push(f.test(s)?"the request asks to act":b.test(s)?"the request refers to the page or to something in view":"the request is work, not a lookup")),(y||d)&&r.add("skills"),d&&(r.add("team"),r.add("sideline"),r.add("recipes"),r.add("note"),l.push("the request names a team, skill, recipe or command")),p&&(r.add("widgets"),r.add("note"),l.push("the request asks to make something")),m.every(i=>r.has(i))?e(l.join("; ")):{tools:!0,tier:"task",groups:r,why:l.join("; ")}}export{G as equipmentFor,_ as grantsNeededFor,A as toolNeedFor};
1
+ import{signalsFrom as A}from"./router.js";const x=new Set(["hi","hii","hiya","hey","heya","hello","helo","yo","sup","howdy","greetings","good","morning","afternoon","evening","night","day","thanks","thank","thankyou","thx","tnx","ty","cheers","appreciated","ok","okay","k","kk","got","sounds","perfect","great","cool","nice","awesome","lol","haha","hah","hehe","nvm","yep","yeah","yes","no","nope","sure","bye","goodbye","later","ya","cya","ciao","welcome","worries","problem","np","please","there","again","all","everyone","team","friend","mate","buddy","you","u","so","much","very","well","and","a","the"]),R=6;function E(t){const o=String(t||"").toLowerCase().replace(/[^\p{L}\s']/gu," ").split(/\s+/).filter(Boolean);return!o.length||o.length>R?!1:o.every(i=>x.has(i))}function _({request:t=null,signals:o=null,attachments:i=[],explicit:c=!1}={}){if(c)return{tools:!0,why:"the turn asked for tools"};if((i||[]).some(a=>a&&!a.auto))return{tools:!0,why:"the turn carries an attachment"};const h=String(t?.text??(t?.messages||[]).map(a=>a?.content||"").join(`
2
+ `));return E(h)?(o||A(t||{})).smalltalk?{tools:!1,why:"a greeting — nothing to look up"}:{tools:!0,why:"the request may need something fetched"}:{tools:!0,why:"the request may need something fetched"}}const j=Object.freeze([["web",/\b(search|google|look ?up|latest|current|recent|today|this (week|month|year)|news|price|prices|pricing|cost of|quote|stock|market|website|url|online|web|docs?umentation|release notes|changelog|versions?)\b/i],["history",/\b(our (meeting|call|notes?|chats?|conversation)|what (did|was) (we|i)|we (decided|agreed|discussed|said)|in (my|our) (notes?|meetings?|history|chats?)|past (chats?|meetings?|notes?)|earlier (meeting|conversation|chat|note)|transcript|standup|retro)\b/i],["data",/\b(attached|attachment|this (page|document|file|pdf|spreadsheet|sheet)|the (document|file|pdf|spreadsheet) (above|provided|attached))\b/i]]);function q(t,{held:o=null}={}){const i=String(t||"");if(!i.trim())return[];const c=j.filter(([,s])=>s.test(i)).map(([s])=>s);if(!o)return c;const h=new Set((Array.isArray(o)?o:[]).map(s=>String(s).toLowerCase()));return c.filter(s=>h.has(s)||s==="history"&&h.has("data"))}const b=Object.freeze(["page","data","mcp","memory","note","team","sideline","skills","widgets","recipes"]),f=Object.freeze(["data","mcp","memory"]),w="page_read",y=/\b(this|the|current|open|active|that|my) (page|tab|site|website|article|post|thread|document|doc|file|pdf|sheet|spreadsheet|form|canvas|board|diagram|screen|window|video|table|cell|button|field|link|image)\b|\bon (the|this) (page|screen|tab)\b|\bhere\b|\bthis\b(?!\s+(morning|afternoon|evening|week|weekend|month|year|time|is (a|the|my))\b)|\bthese\b|\bthose\b/i,k=/\b(click|tap|press|type|fill|enter|select|scroll|drag|draw|paint|sketch|navigate|go to|open|close|submit|upload|download|play|pause|screenshot|inspect|read (the|this)|zoom|highlight|copy|paste|log ?in|sign ?in|sign ?up|checkout|add to cart|search (on|in) (the|this)|watch|browse)\b/i,L=/\b(build|make|create|write|generate|draft|code|design|implement|prototype)\b[^.?!]{0,40}\b(app|widget|tool|timer|calculator|tracker|checklist|game|dashboard|form|page|site|script|component|converter|counter|scoreboard|clock|note|dice)\b|\b(widget|app)\b/i,O=/\b(run|use|ask|start|save|create|make|set ?up|open|launch|kick ?off|assign|delegate)\b[^.?!]{0,30}\b(team|teams|agent|agents|skill|skills|recipe|recipes|sideline|project)\b|\b(the|my|our|this|that)\s+(\w+[\s-]+)?(team|agent|skill|recipe|sideline|project)\b|\bask (the|our|my) \w+ (to|for)\b|\b(executive|breakout|workflow)\b|remember this|save (this|that) as|^\s*\//i,v=/\b(summar\w*|analy\w*|review|edit|rewrite|fix|refactor|debug|translate|convert|extract|compare|explain (this|that|the)|proofread|format|organi[sz]e|plan)\b/i,G=300;function F({request:t=null,signals:o=null,attachments:i=[],explicit:c=!1,stable:h=!1,ambient:s=null}={}){const a=n=>({tools:!0,tier:"full",groups:new Set(b),why:n});if(h)return a("a warm process keeps one tool set");const d=_({request:t,signals:o,attachments:i,explicit:c});if(!d.tools)return{tools:!1,tier:"none",groups:new Set,why:d.why};if(c)return a(d.why);if((i||[]).some(n=>n&&!n.auto))return a("the turn carries an attachment");const r=String(t?.text??(t?.messages||[]).map(n=>n?.content||"").join(`
3
+ `));if(!r.trim())return a("no text to read");if(r.length>G||/```/.test(r))return a("a long or code-bearing request");const g=y.test(r)||k.test(r)||v.test(r),u=O.test(r),m=L.test(r),S=v.test(r),p=!!s?.page;if(!g&&!u&&!m){const n=new Set(f);return p&&n.add(w),{tools:!0,tier:"light",groups:n,why:p?"a lookup, asked from a readable tab — the user's data, the web, and a reader for the tab":"a lookup — the user's data and the web are enough"}}const e=new Set(f),l=[];return g&&(e.add("page"),e.add("note"),l.push(k.test(r)?"the request asks to act":y.test(r)?"the request refers to the page or to something in view":"the request is work, not a lookup")),(S||u)&&e.add("skills"),u&&(e.add("team"),e.add("sideline"),e.add("recipes"),e.add("note"),l.push("the request names a team, skill, recipe or command")),m&&(e.add("widgets"),e.add("note"),l.push("the request asks to make something")),p&&!e.has("page")&&e.add(w),b.every(n=>e.has(n))?a(l.join("; ")):{tools:!0,tier:"task",groups:e,why:l.join("; ")}}export{F as equipmentFor,q as grantsNeededFor,_ as toolNeedFor};