@chatpanel/events 0.295.0 → 0.332.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.
Files changed (51) hide show
  1. package/agent-card-view.js +1 -1
  2. package/agent-permission.js +2 -2
  3. package/agent-session-open.js +1 -0
  4. package/agent-thread.js +5 -0
  5. package/attached-paths.js +1 -1
  6. package/browser-relay.js +1 -1
  7. package/capability-uses.js +1 -1
  8. package/client-prefs.js +1 -1
  9. package/clock.js +1 -0
  10. package/compaction.js +4 -4
  11. package/context-select.js +2 -0
  12. package/context-window.js +1 -1
  13. package/dialect-a2a.js +1 -1
  14. package/dialect-claude.js +1 -1
  15. package/digest.js +7 -0
  16. package/fetched.js +2 -2
  17. package/find-tool.js +1 -1
  18. package/harness-cards.js +1 -1
  19. package/history-search.js +6 -6
  20. package/identity.js +1 -0
  21. package/index.js +1 -1
  22. package/link-connect.js +1 -1
  23. package/link-protocol.js +1 -1
  24. package/link-routes.js +2 -0
  25. package/memory.js +2 -2
  26. package/model-candidates.js +1 -1
  27. package/note-tool.js +2 -2
  28. package/own-instructions.js +5 -0
  29. package/package.json +25 -1
  30. package/prefetch.js +4 -2
  31. package/provider-presets.js +1 -1
  32. package/research.js +7 -7
  33. package/retrieval-plan.js +1 -0
  34. package/sandbox-policy.js +1 -1
  35. package/search-modes.js +6 -6
  36. package/service-standby.js +1 -0
  37. package/settings-registry.js +1 -1
  38. package/stitch.js +16 -14
  39. package/thread-send.js +1 -0
  40. package/tool-group-data.js +1 -1
  41. package/tool-hints.js +4 -4
  42. package/tool-hub.js +9 -7
  43. package/tool-need.js +3 -3
  44. package/tool-result.js +2 -2
  45. package/turn-intent.js +3 -0
  46. package/turn-loop.js +4 -4
  47. package/vault.js +1 -1
  48. package/voice-intents.js +2 -2
  49. package/voice-sample.js +1 -1
  50. package/weather-tool.js +10 -1
  51. package/weather.js +2 -2
package/index.js CHANGED
@@ -1 +1 @@
1
- import{CURRENT_VERSION as o,EVENT_TYPES as t,ALL_TYPES as a,ACTOR_KINDS as i,SCOPE_KINDS as s,CLASSES as n,EFFECTS as S,EGRESS as E,EventError as l,validateEvent as m,isValidEvent as c,createAppender as T}from"./event.js";import{REF_KINDS as _,RESOLUTION as d,makeRef as R,isRef as A,resolveRef as f}from"./ref.js";import{linearize as O,compareEvents as u,causesAreWellFormed as N}from"./order.js";import{pendingQueue as C,isQueued as M,dequeue as P,moveQueued as L,promoteQueued as x}from"./queue.js";import{groupModels as F,filterSections as D,defaultModelId as k,modelSummary as y,withRecent as U,rememberRecent as b}from"./model-picker.js";import{composerChips as B,chipText as G}from"./composer-chips.js";import{NOTE_ACTIONS as K,NOTE_ACTION_ORDER as H,NOTE_ACTION_TEMPERATURE as V,NOTE_ACTION_ERRORS as W,NOTE_COMMANDS as X,NOTE_COMMAND_TEMPERATURE as Y,NOTE_COMMAND_MAX_TOKENS as z,frameNoteAction as J,noteActionLabel as j,noteActionItems as Q,filterNoteActions as q,commandLineAt as Z,triggerQueryAt as $}from"./note-actions.js";import{parseAgentMention as re,agentMentionAt as oe,parseSkillMention as te,mergeSkillPrompt as ae,findSkillByName as ie,findTargetByName as se,mentionAnswerPrefix as ne}from"./note-mentions.js";import{wikiQueryAt as Ee,rankLinkTargets as le}from"./note-links.js";import{SWARM_ROLES as ce,roleById as Te,classifyModel as pe,supportsSubagents as _e,appoint as de,routeTeam as Re}from"./cowriter-router.js";import{SEARCH_ENGINES as fe,RESULTS_PER_ENGINE as Ie,buildSearchUrl as Oe,unwrapRedirect as ue,isResultHost as Ne,pickResults as ge,mergeEngineResults as Ce,engineOrder as Me}from"./web-search.js";import{MAX_GRAPH_NODES as Le,buildNoteGraph as xe,egoGraph as he,trimGraph as Fe,graphStats as De}from"./note-graph.js";import{lintText as ye,wordDiff as Ue,filterTypoEdits as be,editKey as ve,applyEdits as Be,COWRITER_SYSTEM as Ge,COWRITER_TEMPERATURE as we}from"./cowriter.js";import{salientTerms as He,topicTerms as Ve,researchRelevance as We,webQuery as Xe,researchSnippet as Ye,rankResearchCards as ze,mergeResearchLanes as Je}from"./note-research.js";import{PLAN_ROLES as Qe,PLAN_AUTHORS as qe,PLAN_DECOMPOSE_SYSTEM as Ze,PLAN_DECOMPOSE_MAX_TOKENS as $e,PLAN_DECOMPOSE_TEMPERATURE as er,PLAN_SECTION_MAX_TOKENS as rr,PLAN_SECTION_TEMPERATURE as or,planSectionSystem as tr,parsePlanTasks as ar,planTitleFor as ir,planParts as sr,planBody as nr,planAttribution as Sr}from"./note-plan.js";import{REACH as lr,reachRank as mr,reachSatisfies as cr}from"./reach.js";import{UPCASTERS as pr,upcast as _r,upcastAll as dr}from"./upcast.js";import{validateCapability as Ar,validateInvocation as fr,canSatisfy as Ir,toModelSchema as Or,toModelSchemas as ur}from"./capability.js";import{checkInvariants as gr,INVARIANTS as Cr}from"./invariants.js";import{createMemoryAdapter as Pr,createLogStore as Lr,createBlobStore as xr}from"./store.js";import{createRegistry as Fr,REGISTRY_STATES as Dr}from"./registry.js";import{defineSearchEngine as yr,reconcileEngines as Ur,attemptOrder as br,ENGINE_KINDS as vr,SearchEngineError as Br}from"./search-engines.js";import{getWeather as wr,weatherUrl as Kr,parseWeather as Hr,formatWeather as Vr,areaLabel as Wr,isAmbiguousLocation as Xr,WEATHER_HOST as Yr,WEATHER_TIMEOUT_MS as zr,WeatherError as Jr}from"./weather.js";import{defineToolGroup as Qr,createToolGroupRegistry as qr,ToolGroupError as Zr}from"./tool-groups.js";import{toolNeedFor as eo,grantsNeededFor as ro,equipmentFor as oo,isPleasantry as to}from"./tool-need.js";import{housekeepingTarget as io,hasSubstance as so,isLocalHelper as no}from"./housekeeping.js";import{parseFlowchart as Eo,layoutFlowchart as lo,renderFlowchartSvg as mo}from"./flowchart.js";import{validateView as To,validateViewInvocation as po,viewResult as _o}from"./view.js";import{validateWidget as Ao,validateWidgetMessage as fo,effectiveGrants as Io,widgetIcon as Oo,WIDGET_SURFACES as uo}from"./widget.js";import{fuseRRF as go,planQueries as Co,multiSearch as Mo}from"./rrf.js";import{SUBJECT_KINDS as Lo,DEFAULT_THRESHOLD as xo,MAX_SUBJECTS as ho,MAX_SUBJECT_CHARS as Fo,normalizeSubject as Do,subjectKey as ko,subjectTokens as yo,isSubjectCandidate as Uo,aliasMap as bo,resolveSubjects as vo,earnsBrief as Bo,rankSubjects as Go,REDACTION_TOKEN_TYPES as wo,isRedactionToken as Ko,SELF_LABELS as Ho,isSelfLabel as Vo,stripQualifiers as Wo,suggestMerges as Xo}from"./entity.js";import{BRIEF_STATES as zo,CLAIM_KINDS as Jo,MAX_CLAIMS as jo,MAX_CLAIM_REFS as Qo,MAX_BRIEF_RECORDS as qo,MAX_BRIEF_CHARS as Zo,contentHash as $o,briefId as et,briefToText as rt,briefTerms as ot,briefLinks as tt,checkKnowledgeInvariants as at,parseBriefText as it}from"./knowledge.js";import{deriveBrief as nt,deriveBriefs as St,driftedRefs as Et}from"./knowledge-derive.js";import{SYNTHESIS_SCHEMA as mt,synthesisPrompt as ct,claimsFromSynthesis as Tt,MAX_SYNTHESIS_CLAIMS as pt,MAX_EXCERPTS as _t,MAX_EXCERPT_CHARS as dt}from"./synthesis.js";import{PROPOSAL_STATES as At,SUPERSEDE_OVERLAP as ft,propose as It,accept as Ot,reject as ut,diffProposal as Nt,converge as gt,linkClaims as Ct}from"./promotion.js";import{normalizeRecord as Pt,normalizeRecords as Lt,wikilinksIn as xt,redactedTokensIn as ht,redactionCost as Ft,wantedPages as Dt,orphanRecords as kt,duplicateTitles as yt,vocabularyDrift as Ut,mentionsFrom as bt,spanningQuestions as vt,surveyCorpus as Bt,thresholdSweep as Gt,formatSurvey as wt,NEAR_TITLE_DISTANCE as Kt,SPAN_MIN_TERMS as Ht}from"./curate.js";import{PDF_MAX_CHARS as Wt,linesFromItems as Xt,orderLines as Yt,paragraphsFromLines as zt,pageTextFromItems as Jt,looksScanned as jt,buildPdfDocument as Qt}from"./pdf-layout.js";import{YOUTUBE_HOSTS as Zt,TRANSCRIPT_MAX_CHARS as $t,parseYouTubeUrl as ea,isYouTubeUrl as ra,captionTracksFromPlayerResponse as oa,videoMetaFromPlayerResponse as ta,pickCaptionTrack as aa,timedTextUrl as ia,parseTimedText as sa,groupSegments as na,formatTimestamp as Sa,formatTranscript as Ea,buildTranscriptDocument as la,transcriptFromTracks as ma}from"./media-transcript.js";import{ACCESS_LOG_VERSION as Ta,ACCESS_LOG_MAX as pa,redactAccessArgs as _a,makeAccessEvent as da,createAccessLog as Ra,makeStorageTier as Aa,formatBytes as fa}from"./observability.js";import{routeGraph as Oa,projectChain as ua}from"./route-graph.js";import{defineAdapter as ga,createAdapterRegistry as Ca,AdapterError as Ma}from"./adapters.js";import{linkifyCitations as La,repairCitedLinks as xa,markdownUrl as ha,sourcesFromToolText as Fa,createCitationCollector as Da,RETRIEVAL_TOOLS as ka}from"./citations.js";import{buildTrajectory as Ua,phasesOf as ba,lanesOf as va,filterEntries as Ba,displayName as Ga,ENTRY_KINDS as wa,threadsOf as Ka,threadTitle as Ha,promptEntries as Va,turnsOf as Wa,threadTree as Xa}from"./trajectory.js";import{createTurnRunner as za,createStepRecorder as Ja,argsShape as ja,defineLoop as Qa,LOOP_KINDS as qa,LoopError as Za,abortCause as $a,errorFacts as ei}from"./loop.js";import{defineModel as oi,defineMiddleware as ti,defineRouteStrategy as ai,createModelRouter as ii,signalsFrom as si,requirementsFor as ni,requirementsForStep as Si,preferenceFor as Ei,failoverOrder as li,pinnedOrderOf as mi,FAILOVER_CLASS_GAP as ci,FAILOVER_CAPABILITY_GAP as Ti,sameModelKey as pi,RouterError as _i}from"./router.js";import{makeSourceStore as Ri,manifestText as Ai,shortUrl as fi,readSource as Ii,sourceId as Oi}from"./sources-retrieval.js";import{classifySource as Ni,extractUrls as gi,hostMatches as Ci,meetReach as Mi,sourcePolicyFor as Pi,sourceUrlsOf as Li,DEFAULT_INTERNAL_PATTERNS as xi,INTERNAL_PATTERN_CATALOG as hi}from"./sources.js";import{defineRule as Di,createRuleEngine as ki,SUPPRESSED as yi,RuleError as Ui}from"./rules.js";import{VAULT_VERSION as vi,KDF_ITERATIONS as Bi,KDF_HASH as Gi,DEFAULT_LOCK_MS as wi,VaultError as Ki,MAX_TITLE_CHARS as Hi,MAX_NOTE_CHARS as Vi,MAX_SECRET_CHARS as Wi,MAX_ENTRIES as Xi,createVault as Yi,unlockVault as zi,deriveKey as Ji,sealEntry as ji,openEntry as Qi,validateEntry as qi,entryMeta as Zi,searchEntries as $i,isLocked as es,lockedSummary as rs,canAddEntry as os,toB64 as ts,fromB64 as as}from"./vault.js";import{SCHEDULE_KINDS as ss,TRIGGER_KINDS as ns,JOB_ACTIONS as Ss,MISSED_POLICIES as Es,ScheduleError as ls,validateSchedule as ms,nextFireAt as cs,occurrencesBetween as Ts,nextWakeAt as ps,parseCron as _s,defineTrigger as ds,createTriggerRegistry as Rs,BUILTIN_TRIGGERS as As,timerTrigger as fs,meetingStartedTrigger as Is,meetingEndedTrigger as Os,personJoinedTrigger as us,phraseTrigger as Ns,topicTrigger as gs,questionTrigger as Cs,voiceCommandTrigger as Ms,defineJob as Ps,dueJobs as Ls,jobsForEvent as xs,occurrenceKey as hs,clipText as Fs,matchSummary as Ds}from"./schedule.js";import{defineMeetingAnalyzer as ys,createAnalyzerRegistry as Us,CADENCES as bs,AnalyzerError as vs}from"./meeting-analyzers.js";import{DEFAULT_WAKE as Gs,MAX_COMMANDS_PER_DELTA as ws,DAYPART_HOUR as Ks,VoiceIntentError as Hs,compileWake as Vs,wakeFor as Ws,findWakeCommand as Xs,parseCommand as Ys,commandsFromSegments as zs,parseDuration as Js,parseClock as js,parseWhen as Qs,parseNumberWords as qs,normalizeSpeech as Zs,tokenize as $s,editDistance as en,defineVoiceIntent as rn,createVoiceIntentRegistry as on,defaultVoiceIntents as tn,BUILTIN_VOICE_INTENTS as an,timerIntent as sn,reminderIntent as nn,scheduleIntent as Sn,noteIntent as En,monitorIntent as ln,REFINEMENT_SCHEMA as mn,refinementPrompt as cn,refinementFormat as Tn,parseRefinement as pn,refinementStream as _n,settleRefinement as dn,refineSpokenCommand as Rn,isFillerSentence as An,gistText as fn,gistOpening as In,commandLooksFinished as On,sameUtterance as un,createUtteranceGate as Nn,UTTERANCE_SETTLE_MS as gn,UTTERANCE_DANGLING_MS as Cn}from"./voice-intents.js";import{MAX_TOPICS as Pn,MAX_TOPIC_CHARS as Ln,TOPICS_SCHEMA as xn,topicsSchema as hn,topicsPrompt as Fn,topicsFormat as Dn,parseTopics as kn,normalizeTopic as yn,normalizeTopics as Un,topicsStream as bn,ENTITY_TYPES as vn,ENTITIES_SCHEMA as Bn,entitiesPrompt as Gn,entitiesFormat as wn,parseEntities as Kn,coerceEntities as Hn,entitiesStream as Vn,MAX_SUGGESTIONS as Wn,MAX_SUGGESTION_CHARS as Xn,SUGGESTIONS_SCHEMA as Yn,suggestionsPrompt as zn,suggestionsFormat as Jn,parseSuggestions as jn,suggestionsStream as Qn}from"./extraction.js";import{FIELD_TYPES as Zn,RESPONSE_MODES as $n,StructuredError as eS,defineSchema as rS,describeSchema as oS,toJsonSchema as tS,responseFormat as aS,unfence as iS,findJson as sS,rewriteJson as nS,repairJson as SS,isNothing as ES,coerce as lS,parseStructured as mS,createStructuredStream as cS}from"./structured.js";import{explainMcpError as pS,packageFromArgs as _S,isStaleMcpSession as dS,installHintFor as RS,missingCommandMessage as AS,missingCommandIn as fS,normalizePlatform as IS}from"./mcp-errors.js";import{parseSignInPrompt as uS,signInError as NS,signInFromError as gS,signInToolResult as CS,MCP_SIGN_IN_CODE as MS}from"./mcp-signin.js";import{parseAuthChallenge as LS,wellKnownUrls as xS,canonicalResource as hS,readResourceMetadata as FS,readAuthServerMetadata as DS,registrationRequest as kS,readRegistration as yS,authorizeUrl as US,tokenRequest as bS,readTokenResponse as vS,tokenExpired as BS,authHeader as GS,discoverMcpAuth as wS,registerMcpClient as KS,fetchMcpToken as HS,TOKEN_SKEW_MS as VS}from"./mcp-oauth.js";import{toolTraits as XS,bareToolName as YS,canRunConcurrently as zS,isCacheable as JS,needsConfirmation as jS,traitsIndex as QS,effectiveToolName as qS,parallelEligible as ZS,PARALLEL_LOCAL_RE as $S}from"./tool-traits.js";import{planToolRound as rE,runToolRound as oE}from"./tool-round.js";import{createToolLoopGuard as aE,roundSignature as iE,stableToolCallKey as sE,toolMadeProgress as nE,isLoopableTool as SE,blockedToolResult as EE,OBSERVATION_TOOLS as lE,INPUT_PROGRESS_TOOLS as mE}from"./tool-loop-guard.js";import{classifyFailure as TE,createModelHealth as pE,COOLDOWN_MS as _E,UNAVAILABLE_REASONS as dE,normModelName as RE}from"./model-health.js";import{runWithFailover as fE,failoverExhausted as IE,FAILOVER_MAX_ATTEMPTS as OE}from"./failover.js";import{sourcePolicySettings as NE,sourceGuardFor as gE,sourceGate as CE,isSourceGateError as ME,withinReach as PE}from"./source-gate.js";import{runTurnLoop as xE,createCallRunner as hE,roundCap as FE,withToolSystem as DE,describeCall as kE,stepResultText as yE,addUsage as UE,normalizeUsage as bE,openAiTranscript as vE,anthropicTranscript as BE,DEFAULT_MAX_ROUNDS as GE,DEFAULT_MAX_FINISH_TRIES as wE,FINISH_NUDGES as KE,LOOPING_NUDGE as HE,EXHAUSTED_NOTE as VE,ROUND_SEPARATOR as WE}from"./turn-loop.js";import{createResultStore as YE,shieldToolResult as zE,runResultQuery as JE,withResultShield as jE,describeShape as QE,compactValue as qE,resultToolSpec as ZE,RESULT_TOOL_NAME as $E,DEFAULT_SHIELD as el,DEFAULT_STORE as rl}from"./tool-result.js";import{PERMISSION_EVENT as tl,PERMISSION_ANSWERS as al,PERMISSION_TIMEOUT_MS as il,PERMISSION_TOOL_NAME as sl,permissionToolSpec as nl,isPermissionTool as Sl,permissionRequestFromClaude as El,permissionKeys as ll,describePermission as ml,permissionAnswer as cl,permissionAllowed as Tl,rememberPermission as pl,recallPermission as _l,claudePermissionResponse as dl,permissionLine as Rl,permissionIcon as Al,createPermissionDesk as fl}from"./agent-permission.js";import{findTools as Ol,findToolsResult as ul,findActionArgs as Nl,oneLiner as gl,overlapRank as Cl,FIND_ACTION as Ml}from"./tool-discovery.js";import{rankFused as Ll,fusedRanker as xl,rerankThrough as hl,toolDoc as Fl,FUSED_CANDIDATES as Dl,FUSED_BUDGET_MS as kl}from"./tool-rank-fused.js";import{makeToolHub as Ul,hubSpec as bl,HUB_TOOL_NAME as vl,withHint as Bl,lastUserText as Gl}from"./tool-hub.js";import{withPromptedTools as Kl,promptedTranscript as Hl,makePromptedTranscript as Vl,promptedToolsSystem as Wl,parseToolCalls as Xl,visiblePrefix as Yl,toolChannel as zl,transcriptFor as Jl}from"./prompted-tools.js";import{REVEAL as Ql,revealStep as ql,revealCut as Zl}from"./stream-reveal.js";import{buildToolset as em}from"./toolset.js";import{DESCRIBE_ACTION as om,actionMenu as tm,buildGroupDispatchSpec as am,validateAction as im,makeGroupDispatchExecutor as sm,withGuidance as nm,makeDispatchProvider as Sm,estimateTokens as Em}from"./tool-dispatch.js";import{FIND_TOOL_NAME as mm,FIND_DESCRIPTION as cm,FIND_RESIDENT as Tm,findDispatchProvider as pm}from"./find-tool.js";import{WEB_SEARCH_TOOL_NAME as dm,WEB_SEARCH_TOOL_SYSTEM as Rm,WEB_SEARCH_SPEC as Am,searchResultsToText as fm,webSearchToolProvider as Im}from"./web-search-tool.js";import{compressToolSpec as um,compressToolSpecs as Nm,compressionStats as gm,trimDescription as Cm,COMPRESSION_MODES as Mm,DEFAULT_COMPRESSION as Pm}from"./tool-schema.js";import{validateRecipe as xm,expandRecipe as hm,recipeParams as Fm,mapInput as Dm,dryRunRecipe as km,runPlan as ym,runRecipe as Um,RecipeError as bm,RECIPE_MODES as vm}from"./recipe.js";import{recipeToolProvider as Gm,recipeToolSpec as wm,describeRecipeForApproval as Km,RECIPE_TOOL_NAME as Hm}from"./recipe-tool.js";import{createBudget as Wm,validateBudget as Xm,normalizeBudget as Ym,usageOf as zm,BudgetError as Jm,BUDGET_DIMENSIONS as jm}from"./budget.js";import{defineTeam as qm,validateTeam as Zm,normalizeTeam as $m,normalizeGrants as ec,grantAllows as rc,scmAllows as oc,describeRole as tc,TeamError as ac,ROLE_MODES as ic,MERGE_POLICIES as sc,PLAN_MODES as nc,GRANTABLE as Sc,WORK_GRANTS as Ec,GRANT_RE as lc,AGENT_REF_RE as mc,STARTER_TEAMS as cc,starterTeams as Tc,blankTeam as pc,teamFromForm as _c,slugTeamName as dc}from"./team.js";import{fixedPlan as Ac,parsePlan as fc,plannerPrompt as Ic,waves as Oc,breakCycles as uc,TEAM_PLAN_SCHEMA as Nc}from"./team-plan.js";import{createBoard as Cc,parseFindings as Mc,boardText as Pc,findingsInstruction as Lc,toBriefClaims as xc,FINDINGS_SCHEMA as hc,FINDING_KINDS as Fc,THREAD_KINDS as Dc,THREAD_STATUSES as kc,POST_KINDS as yc,POST_STATUSES as Uc,ASK_TYPES as bc,emptyBoardState as vc,foldBoard as Bc,findingsOf as Gc}from"./team-board.js";import{boardToolProvider as Kc,boardToolSpec as Hc,createAnswerBox as Vc,withBoardTool as Wc,BOARD_TOOL_NAME as Xc,DEFAULT_ASK_TIMEOUT_MS as Yc}from"./board-tool.js";import{createRunCache as Jc,withRunCache as jc}from"./team-cache.js";import{emptyRun as qc,foldRun as Zc,runFromEvents as $c,checkpointFrom as eT,isResumable as rT,LIVE_RUN_STATUSES as oT,RESUMABLE_RUN_STATUSES as tT,spendOf as aT,describeSpend as iT,runState as sT,priorWorkFor as nT,STALLED_AFTER_MS as ST}from"./team-record.js";import{validateProject as lT,normalizeProject as mT,defineProject as cT,canTransition as TT,blankProject as pT,projectFromForm as _T,emptyProjectRecord as dT,foldProject as RT,projectProgress as AT,ProjectError as fT,PROJECT_STATUSES as IT,PROJECT_ID_RE as OT}from"./project.js";import{validateJob as NT,normalizeJob as gT,defineJob as CT,canTransition as MT,applyAll as PT,jobToRole as LT,readyJobs as xT,blankJob as hT,jobFromForm as FT,JobError as DT,JOB_STATUSES as kT,JOB_ID_RE as yT}from"./job.js";import{validateGate as bT,normalizeGate as vT,effectiveGate as BT,gateAllows as GT,DEFAULT_GATE as wT,AUTONOMY as KT,HUMAN_FLAGS as HT,CHECKS as VT}from"./gate.js";import{runProject as XT,roundJobs as YT,teamForRound as zT,jobResults as JT,roundBudget as jT,parseJobs as QT,parseReview as qT,jobsPrompt as ZT,reviewPrompt as $T,PROJECT_JOBS_SCHEMA as ep,PROJECT_REVIEW_SCHEMA as rp,ProjectRunError as op,EXECUTIVE as tp,MAX_JOBS_PER_ROUND as ap,MAX_ROUNDS as ip,PROJECT_RUN_STATUSES as sp}from"./project-run.js";import{canonical as Sp,sha256 as Ep,makeEntry as lp,verifyChain as mp,attest as cp,verifyAttested as Tp,summarize as pp,fit as _p,adjustSummary as dp,normalizeEngine as Rp,engineKey as Ap,normalizeScm as fp,SCORECARD_ENTRY_KINDS as Ip,ROLE_KINDS as Op,SCORECARD_VERSION as up,ENGINE_KINDS as Np}from"./scorecard.js";import{ENGINE_KINDS as Cp,ROUTE_PREFERS as Mp,normalizePolicy as Pp,normalizeEngineSpec as Lp,validateEngineSpec as xp,engineRef as hp,engineKeyOf as Fp,describeEngine as Dp,tierOf as kp}from"./engine.js";import{AGENT_ID_RE as Up,APPLIES_TO as bp,EGRESS_CLASSES as vp,ASSISTANT_ID as Bp,AgentError as Gp,validateAgent as wp,normalizeAgent as Kp,defineAgent as Hp,assistantAgent as Vp,engineOf as Wp,describeAgent as Xp,slugAgentId as Yp,resolveTeam as zp,STARTER_AGENTS as Jp,starterAgents as jp,blankAgent as Qp,agentFromForm as qp,poolFor as Zp}from"./agent.js";import{LEDGER_VERSION as e_,LEDGER_ENTRY_KINDS as r_,DECLINE_REASONS as o_,WITHDRAW_AFTER as t_,ledgerKey as a_,normalizeCall as i_,makeLedgerEntry as s_,summarizeEngine as n_}from"./model-ledger.js";import{RECRUIT_SCHEMA as E_,MIN_FIT as l_,engineRow as m_,engineRows as c_,needForJob as T_,routeFor as p_,engineWorth as __,applications as d_,evaluatorPrompt as R_,parseEvaluation as A_,decide as f_,recruitForRun as I_,proposalFromNeeds as O_,proposalToAgent as u_,carveBudget as N_,recruitEvents as g_,recruitJob as C_}from"./recruit.js";import{DEFAULT_MIN_CALLS as P_,cardOverride as L_,applyCard as x_}from"./model-candidates.js";import{SCM_KINDS as F_,validateConnection as D_,normalizeConnection as k_,parseRemote as y_,connectionFor as U_,branchFor as b_,worktreeDirFor as v_,credentialEnv as B_,describeConnection as G_,blankConnection as w_,connectionFromForm as K_}from"./scm-connection.js";import{messagesFor as V_,mergeTranscript as W_,clipTranscript as X_,clipMessage as Y_,newSteps as z_,continuationNote as J_,createControl as j_,STEP_MAX_CHARS as Q_,TASK_TRANSCRIPT_MAX_CHARS as q_}from"./team-task.js";import{runTeam as $_,resumeTeam as ed,dryRunTeam as rd,isModelUnavailable as od,TeamRunError as td,RUN_STATUSES as ad}from"./team-run.js";import{teamToolProvider as sd,teamToolSpec as nd,teamToolTimeoutMs as Sd,describeTeamForApproval as Ed,TEAM_TOOL_NAME as ld,TEAM_MANUAL as md}from"./team-tool.js";import{workLogFor as Td,workLogText as pd,workLogEvidence as _d,describeCall as dd,WORKLOG_KINDS as Rd}from"./team-worklog.js";import{normalizeRequest as fd,subtaskFromRequest as Id,takeUp as Od,takeUpLine as ud,holdsGrants as Nd,jobFromSubtask as gd,extendDependents as Cd,taskTree as Md,threadRows as Pd,MAX_SUBTASKS as Ld,MAX_DEPTH as xd,MIN_TAKEUP_FIT as hd}from"./team-subtask.js";import{teamLine as Dd,teamLanes as kd}from"./team-trail.js";import{promoteRoles as Ud,starterTeam as bd,missingStarters as vd,teamHealth as Bd,teamShape as Gd,describeTeamShape as wd,whereItWorks as Kd,rosterRows as Hd,agentKind as Vd,agentHue as Wd,agentColor as Xd,agentInitials as Yd,roleCardId as zd,cardNumbers as Jd,upsertAgents as jd,soloTeam as Qd,teamsWithSolos as qd,builtinOrg as Zd,isBuiltin as $d,grantChoices as eR,grantsFromChoices as rR,skillChoices as oR,GRANT_INFO as tR,SOLO_BUDGET as aR,TEAM_SHAPES as iR,ROSTER_KINDS as sR}from"./team-org.js";import{observeInbox as SR,observeStrip as ER,runLanes as lR,spendRows as mR,engineStrip as cR}from"./team-observe.js";import{mcpDispatchProvider as pR,MCP_TOOL_NAME as _R}from"./mcp-dispatch.js";import{createManifest as RR,ManifestError as AR,SOURCES as fR}from"./manifest.js";import{createKernel as OR,meetDecisions as uR,KernelError as NR,REQUIRED_PLUGINS as gR,ALLOW_ALL as CR}from"./kernel.js";import{replay as PR,formatReport as LR,parseJsonl as xR,toJsonl as hR}from"./harness.js";import{compileQuery as DR,findMatches as kR,matchIndexFor as yR,expandReplacement as UR,replaceMatch as bR,replaceAll as vR,replaceAllInRange as BR,MAX_MATCHES as GR}from"./text-search.js";import{DATA_SCOPES as KR}from"./scopes.js";import{MEMORY_VERSION as VR,MEMORY_KINDS as WR,MEMORY_KIND_NAMES as XR,AMBIENT_KINDS as YR,MAX_MEMORY_CHARS as zR,MIN_MEMORY_CHARS as JR,DEFAULT_MAX_MEMORIES as jR,DEFAULT_BLOCK_CHARS as QR,SAME_FACT as qR,MEMORY_TOOL_SPEC as ZR,MEMORY_UPCASTERS as $R,MemoryError as eA,normalizeMemory as rA,isValidMemory as oA,memoryKey as tA,slotOf as aA,similarity as iA,containment as sA,candidatesFrom as nA,reconcile as SA,matchForForget as EA,recall as lA,saysWhere as mA,needsWhere as cA,memoryBlock as TA,markUsed as pA,pruneMemories as _A,memoryToolSystem as dA,upcastMemory as RA,sameMemory as AA,AMBIENT_MAX_WORDS as fA}from"./memory.js";import{linksToRead as OA,storyLinkOf as uA,linkAttachments as NA,asksOnlyAboutPage as gA,pageInstruction as CA}from"./message-links.js";import{frontPagesAskedAbout as PA,frontPageInstruction as LA,FRONT_PAGES as xA}from"./site-pages.js";import{SOURCE_TRUST as FA,SkillSourceError as DA,defineSkillSource as kA,createSkillSourceRegistry as yA}from"./skill-sources.js";import{SKILL_MANIFEST_VERSION as bA,SKILL_CONTEXTS as vA,SKILL_HISTORY_SCOPES as BA,SKILL_MCP_MODES as GA,SKILL_TRUST as wA,SKILL_FILE_KINDS as KA,SKILL_UPCASTERS as HA,SkillManifestError as VA,isSafeSkillPath as WA,originOf as XA,trustOf as YA,skillFiles as zA,needsBridge as JA,declaredAccess as jA,originLabel as QA,sameSkillOrigin as qA,skillIsStale as ZA,validateSkill as $A,upcastSkill as ef,upcastSkills as rf,normalizeSkill as of}from"./skill-manifest.js";import{SKILL_VARS as af,SKILL_VAR_NAMES as sf,skillVar as nf,skillVarPattern as Sf,parseSkillVars as Ef,lintSkillPrompt as lf,suggestSkillVar as mf,substituteSkillVars as cf,expandSkillPrompt as Tf,skillVarGuidance as pf,SkillVarError as _f}from"./skill-vars.js";import{lineAt as Rf,writerAffordance as Af,INSTRUCTION_RE as ff,instructionOnLine as If,GOAL_MIN_NEW as Of,goalDraftAllowed as uf,createSpendMeter as Nf,writerTail as gf,draftSeparator as Cf,groundingBlock as Mf,writerRequest as Pf,AUTOCOMPLETE_SYSTEM as Lf,AUTOCOMPLETE_MAX_TOKENS as xf,AUTOCOMPLETE_TEMPERATURE as hf,clipCompletion as Ff,GEARS as Df,WRITER_PREFS as kf,WRITER_PREF_DEFAULTS as yf,normalizeWriterPrefs as Uf,normalizeIntent as bf}from"./cowriter-writer.js";import{SLASH_TYPING_RE as Bf,NEW_THREAD_SLASH_ITEMS as Gf,parseNewThread as wf,BUG_REPORT_SLASH_ITEMS as Kf,parseBugCommand as Hf,isSkillEnabled as Vf,enabledSkills as Wf,slashCommandItems as Xf,matchSlashSkill as Yf,matchSlashRecipe as zf,recipeInvocationText as Jf,matchSlashTeam as jf,teamInvocationText as Qf,slashCommandInsert as qf,skillInvocationOf as Zf,skillInvocationLabel as $f}from"./slash-commands.js";import{outlineOf as rI,parseListItem as oI,continueList as tI,indentSelection as aI,toggleWrap as iI,toggleLinePrefix as sI,toggleTask as nI,toggleLink as SI,docStats as EI,selectionStats as lI}from"./markdown-authoring.js";import{MAX_TAG_LENGTH as cI,MAX_TAGS as TI,normalizeTag as pI,normalizeTags as _I,hasTag as dI,addTag as RI,removeTag as AI,toggleTag as fI,sameTags as II,formatTag as OI,parseTagQuery as uI,hasTagTerms as NI,formatTagQuery as gI,matchesTagFilter as CI,filterByTags as MI,tagFacets as PI,suggestExistingTags as LI,tagsSearchText as xI}from"./tags.js";import{UNTITLED_MEETING as FI,MAX_TITLE_LENGTH as DI,TITLE_RULES_VERSION as kI,cleanTitle as yI,isGenericTitle as UI,titleFromSummary as bI,titleFromTopics as vI,titleFromParticipants as BI,titleFromDate as GI,readableWhen as wI,deriveMeetingTitle as KI,shouldAutoTitle as HI,isBetterTitleSource as VI,meetingTitlePrompt as WI,parseTitleResponse as XI}from"./titles.js";import{RECORD_KINDS as zI,MAX_TITLE_LEN as JI,LibraryError as jI,parseRecordId as QI,makeRecordId as qI,isRecordId as ZI,normalizeStoredRecord as $I,isValidStoredRecord as eO,toSearchRecord as rO,searchTextFor as oO,toIndexEntry as tO,deriveTitle as aO,snippetOf as iO,wordCount as sO,findRecordRefs as nO,linkRecordRefs as SO,repairAnswerMarkup as EO}from"./library.js";import{CLOCK_TOLERANCE_MS as mO,SyncError as cO,stampOf as TO,decide as pO,planSync as _O,isSettled as dO,forkConflict as RO,advanceBases as AO}from"./sync-plan.js";import{ENCRYPTED_TYPE as IO,COMPRESSIONS as OO,BackupError as uO,KDF_ITERATIONS as NO,encryptBackup as gO,decryptBackup as CO,isEncryptedBackup as MO,RECORD_TYPE as PO,deriveBackupKey as LO,sealRecord as xO,openRecord as hO,isSealedRecord as FO,keyCache as DO,identityCodec as kO,streamCodec as yO,nodeCodec as UO,bestCodec as bO}from"./backup-envelope.js";import{recordsFromBackup as BO,backupFromRecords as GO}from"./backup-records.js";import{DEFAULT_POLICY as KO,SLOW_POLICY as HO,scalePolicy as VO,pickProfile as WO,adaptProfile as XO,policyFor as YO,SLOW_FLUSH_MS as zO,FAST_FLUSH_MS as JO,FAST_STREAK as jO,createJournal as QO,JournalError as qO,ENTRY_VERSION as ZO,makeEntry as $O,tombstone as eu,isTombstone as ru,isEntry as ou,entryStamp as tu,supersedes as au,BOUNDS as iu,createSegment as su,applyEntry as nu,segmentBytes as Su,segmentEntries as Eu,shouldRotate as lu,mergeSegments as mu,segmentName as cu,parseSegmentName as Tu,SEGMENT_RE as pu,boundSegments as _u,segmentsFor as du,overlay as Ru,catchUpPlan as Au}from"./journal.js";import{OMNI_MODES as Iu,OMNI_GRAMMAR as Ou,parseOmni as uu,extractFilters as Nu,resolveSince as gu,wantsModel as Cu,isActionable as Mu}from"./omni.js";import{THEMES as Lu,LIGHT as xu,DARK as hu,PALETTES as Fu,SHAPE as Du,TOKEN_NAMES as ku,TOKEN_ROLES as yu,paletteFor as Uu,cssVarName as bu,toCssVars as vu,themeStylesheet as Bu,resolveTheme as Gu}from"./theme.js";import{PLANS as Ku,API_BASE as Hu,ENDPOINTS as Vu,ENTITLEMENT_PUBLIC_JWK as Wu,UPGRADE_URL as Xu,FEATURE_TIER as Yu,PRO_FEATURES as zu,TEAM_FEATURES as Ju,FREE_LIMITS as ju,COUNTED as Qu,freeCap as qu,observeSince as Zu,RECHECK_INTERVAL_MS as $u,EntitlementError as eN,checkoutUrl as rN,planOf as oN,planLabel as tN,isPro as aN,isTeam as iN,can as sN,tierFor as nN,withinFreeLimit as SN,verifyEntitlement as EN,verifySignedToken as lN,licenseFromPayload as mN,needsRecheck as cN}from"./entitlement.js";import{generateDeviceKey as pN,exportDevicePublicKey as _N,signChallenge as dN}from"./device-proof.js";import{renderMarkdown as AN,defaultLinkPolicy as fN,defaultImagePolicy as IN}from"./markdown-render.js";import{NOTE_IMAGE_SCHEME as uN,MAX_NOTE_IMAGE_BYTES as NN,NOTE_IMAGE_TYPES as gN,noteImageId as CN,noteImageRef as MN,noteImageIds as PN,noteImageRefs as LN,stripNoteImageRefs as xN,orphanNoteImages as hN,newNoteImageId as FN}from"./note-images.js";import{parseMeetingText as kN,speakerStats as yN,densityRibbon as UN}from"./meeting-text.js";import{speakerBreakdown as vN,speakerTimeline as BN,formatTalkTime as GN,SPEAKER_SLOTS as wN}from"./meeting-shape.js";import{isSpeakerImageValue as HN,speakerLabeller as VN}from"./meeting-shape.js";import{SORT_MODES as XN,SORT_LABELS as YN,sortStamp as zN,sortRecords as JN,filterRecords as jN,dayBucket as QN,rowTime as qN,groupRecords as ZN}from"./record-list.js";import{INSIGHT_KINDS as eg,summarySections as rg,insightKindOf as og,meetingInsights as tg,hasInsights as ag}from"./meeting-insights.js";import{demd as sg,NOTE_SECTIONS as ng,noteSectionKind as Sg,MOMENT_BADGES as Eg,momentBadge as lg,parseMeetingNotes as mg,groupActionsByOwner as cg}from"./meeting-insights.js";import{PREF_SECTIONS as pg,PREF_SECTION_IDS as _g,DESKTOP_SECTION_IDS as dg,sectionSpec as Rg,sectionValue as Ag,pickSections as fg,applySections as Ig,sectionHash as Og,mergeStamped as ug,changedSections as Ng}from"./client-prefs.js";import{SETTINGS_GROUPS as Cg,SETTINGS_PAGES as Mg,REQUIREMENTS as Pg,BOOKKEEPING_KEYS as Lg,listRows as xg,findRow as hg,pageById as Fg,groupById as Dg,pagesOf as kg,quickRows as yg,breadcrumb as Ug,linkTo as bg,linkToRow as vg,parseLink as Bg,valueOf as Gg,setValue as wg,effectiveValue as Kg,describeValue as Hg,SETTINGS_OPEN_DEFAULT as Vg,settingsOpenMode as Wg,searchSettings as Xg,statusOf as Yg,statusAll as zg,homeChecklist as Jg,gateOf as jg,sectionOfRow as Qg}from"./settings-registry.js";import{pointsAtGateway as Zg,destinationFromEndpoint as $g,destinationFromAgent as eC,availableDestinations as rC,seedDestinations as oC,shouldSeedDestinations as tC,mergeEndpointDestinations as aC}from"./gateway-dests.js";import{McpClient as sC,mcpProvider as nC}from"./mcp-client.js";import{mcpSharedSystem as EC,mcpInventorySystem as lC,sourceCitationSystem as mC,combineSystemPrompt as cC,toolStatus as TC,widgetAuthoringSystem as pC,vaultWidgetSystem as _C,wantsVaultGuidance as dC}from"./tool-hints.js";import{adaptiveToolRetryHint as AC,createAdaptiveToolPolicy as fC,isInvalidToolParametersResult as IC}from"./adaptive-tool-policy.js";import{getMcpProviders as uC,testMcpServer as NC,resetMcp as gC,mcpBackoff as CC}from"./mcp-manager.js";import{SIDELINE_COMMANDS as PC,BRINGBACK_COMMAND as LC,THREAD_TOOL_NAME as xC,SIDELINE_SLASH_ITEMS as hC,THREAD_TOOL_SPEC as FC,parseSideline as DC,parseBringBack as kC,resolveSidelineTarget as yC,threadManifest as UC,threadToolProvider as bC,readThread as vC,briefPrompt as BC,foldBackNote as GC,foldNotes as wC,nextSidelineIndex as KC,sourceOf as HC,noteUnits as VC,sidelinePath as WC,foldBackFor as XC,SIDELINE_TOOL_NAME as YC,SIDELINE_TOOL_SPEC as zC,sidelineToolProvider as JC}from"./sideline.js";import{WEATHER_TOOL_NAME as QC,WEATHER_TOOL_SYSTEM as qC,weatherToolProvider as ZC}from"./weather-tool.js";import{DECIDE_TOOL_NAME as eM,RERANK_TOOL_NAME as rM,CAPABILITY_TOOLS_SYSTEM as oM,capabilityToolsProvider as tM}from"./capability-tools.js";import{openDecision as iM,distributionConfidence as sM}from"./open-decision.js";import{IN_PROCESS_IDS as SM,inProcessView as EM,capabilityView as lM,choicePatch as mM,choiceNote as cM,inProcessPatch as TM}from"./runtime-in-process.js";import{renderContent as _M,toChatMessages as dM,toMultimodalMessages as RM,imageAttachmentsOf as AM,deferAttachedSources as fM,withSourceTool as IM,SOURCE_TOOL_SPEC as OM}from"./context-attachments.js";import{prefetchPlan as NM,prefetchAttachment as gM,runResearchItem as CM,weatherPlace as MM,weatherFollowupPlace as PM,newsAsk as LM}from"./prefetch.js";import{createFetchedStore as hM,withFetchedMemo as FM,fetchKey as DM,fetchTitle as kM,fetchedAsSources as yM,fetchedFacts as UM,defaultTtl as bM,exchangeOf as vM,FETCHED_TTL_MS as BM}from"./fetched.js";import{windowOf as wM,fitFor as KM,keepRecentFor as HM,minWindowFor as VM,isContextLimitError as WM,FIT_HEADROOM as XM}from"./context-window.js";import{planCompaction as zM,compactionPrompt as JM,compactionRecord as jM,messagesAfter as QM,systemWithSummary as qM,compactable as ZM,COMPACTION_SYSTEM as $M}from"./compaction.js";import{splitBlocks as rP,mergeNote as oP,syncNote as tP,conflictsIn as aP,resolveConflict as iP}from"./note-merge.js";import{STITCH_LIMITS as nP,CUT_FINISH as SP,partChars as EP,splitForWindow as lP,partPrompt as mP,mapParts as cP,reduceNotes as TP,fitAttachments as pP,isNone as _P,continuationMessages as dP,trimOverlap as RP,withStitching as AP,CONTINUE_TEXT as fP}from"./stitch.js";import{presenceFor as OP,presenceDelta as uP,reachOf as NP,withPresence as gP,presenceBlock as CP,roundCount as MP,roundMinutes as PP,PRESENCE_BUDGET_TOKENS as LP,PRESENCE_KINDS as xP}from"./presence.js";import{PolicyError as FP,POLICY_VERSION as DP,POLICY_TOKEN_TYPE as kP,REDACTION_TIERS as yP,LOCKABLE as UP,FEATURES as bP,PERMISSION_MODES as vP,PRODUCT_HOSTS as BP,normalizeOrgPolicy as GP,endpointAllowed as wP,modelAllowed as KP,agentAllowed as HP,permissionMode as VP,routeAllowed as WP,redactionTier as XP,egressAllowed as YP,settingLocked as zP,featureEnabled as JP,applyPolicyToSettings as jP,policyLabel as QP,policyHash as qP,verifyPolicyToken as ZP,globToRegExp as $P}from"./policy.js";import{languageInstruction as rL,RESPONSE_LANGUAGES as oL}from"./response-language.js";import{NOTE_TOOL_SPECS as aL,makeNoteToolExecutor as iL}from"./note-tool.js";import{memoryToolProvider as nL}from"./memory-tool.js";import{captureFromMessage as EL}from"./memory-capture.js";import{skillRunFromSkill as mL,skillPackageFiles as cL,filterMcpServersForSkill as TL,skillToolSystem as pL,skillHandle as _L,rankSkills as dL,skillCatalogSystem as RL}from"./skill-runtime.js";import{skillFileProvider as fL,SKILL_FILE_TOOL as IL,skillEntry as OL,skillDiscoveryProvider as uL}from"./skill-files.js";import{SKILL_DRAFT_SCHEMA as gL,MAX_SKILL_FILE_BYTES as CL,MAX_SKILL_PACKAGE_BYTES as ML,skillCreatorPrompt as PL,skillIdFrom as LL,admitPackage as xL,skillFromDraft as hL,packagesFromFiles as FL}from"./skill-creator.js";import{PATH_KIND as kL,FILES_TOOL as yL,checkAttachablePath as UL,secretReason as bL,isSecretPath as vL,pathAttachment as BL,describeAttachedPath as GL,describePathSize as wL,displayPath as KL,pathAttachmentsOf as HL,withAbsolutePaths as VL,attachedFilesProvider as WL,sniffType as XL,normalizePath as YL,collapseDots as zL,basenameOf as JL,SKIP_DIR_NAMES as jL}from"./attached-paths.js";import{EXTRACT_ROUTE as qL,EXTRACT_PROVIDER_ID as ZL,MAX_DOCUMENT_BYTES as $L,PAGE_CHARS as ex,EXTRACT_TYPES as rx,validateExtractRequest as ox,validateExtractResponse as tx,paginateText as ax,gatewayExtractor as ix,extractorChain as sx}from"./extract-capability.js";import{MCP_REGISTRY_API as Sx,MCP_CATALOG as Ex,registryListUrl as lx,fetchMcpRegistryPage as mx,normalizeRegistryPage as cx,normalizeRegistryEntry as Tx,mcpServerFromCatalogItem as px}from"./mcp-registry.js";import{CE_SPECVERSION as dx,CE_TYPE_PREFIX as Rx,CE_SOURCE_PREFIX as Ax,rfc3339 as fx,ceSourceOf as Ix,ceHostOf as Ox,toCloudEvent as ux,fromCloudEvent as Nx,toCloudEventLines as gx,fromCloudEventLines as Cx,toCloudEventBatch as Mx}from"./cloudevents.js";import{PUSH_LIMITS as Lx,planEventPush as xx,ingestCloudEvents as hx,cursorOf as Fx}from"./event-sync.js";import{eventStats as kx,projectYear as yx}from"./event-stats.js";import{SEALED_TYPE as bx,SEALED_VERSION as vx,SealError as Bx,webCryptoSealer as Gx,nodeSealer as wx,newDeviceKey as Kx,sealBlob as Hx,openBlob as Vx,shredBlob as Wx,isSealedBlob as Xx,isShredded as Yx}from"./blob-envelope.js";import{USAGE_RING_MAX as Jx,COST_BASES as jx,usageRecord as Qx,usageFromEvent as qx,usageFromOpenAi as Zx,rollupKey as $x,applyUsage as eh,summarizeUsage as rh,formatTurnUsage as oh,describeTurnUsage as th,promptTokensOf as ah}from"./usage.js";import{rateFor as sh,costFor as nh,formatUsd as Sh,PRICING_BASES as Eh,PRICING_LABELS as lh,normalizePricing as mh,priceUsage as ch}from"./usage-pricing.js";import{FACTCHECK_SCHEMA as ph,FACTCHECK_VERDICTS as _h,lastClaimOf as dh,factcheckPrompt as Rh,factcheckVerdict as Ah,factcheckKey as fh}from"./cowriter-factcheck.js";import{createVoiceLoop as Oh,VOICE_STATES as uh,MUTE_GRACE_MS as Nh,MAX_PENDING_CHARS as gh,CONTINUATION_WINDOW_MS as Ch,ECHO_OVERLAP as Mh,ECHO_TAIL_MS as Ph,MIN_BARGE_IN_WORDS as Lh,looksLikeEcho as xh}from"./voice-loop.js";import{voiceStep as Fh,initialVoiceState as Dh,voiceSpeaker as kh,isFarewell as yh,ANOTHER_VOICE as Uh}from"./voice-brain.js";import{speakStream as vh,speakable as Bh,SPOKEN_REPLY_HINT as Gh}from"./speak-stream.js";import{createVad as Kh,lowBandEnergy as Hh,pcmEnergy as Vh,VAD_DEFAULTS as Wh}from"./voice-vad.js";import{HF_API as Yh,TTS_ARCH_LABEL as zh,ttsArchOf as Jh,partitionTtsModels as jh,modelSearchUrl as Qh,searchModels as qh,normalizeModel as Zh,formatDownloads as $h,describeSearchResult as eF}from"./model-registry.js";import{SAMPLE_RATE as oF,MIN_SECONDS as tF,TARGET_SECONDS as aF,MAX_SECONDS as iF,PROMPT_TEXT as sF,sampleSeconds as nF,sampleTooShort as SF,defaultVoiceName as EF,microphoneError as lF,webMedia as mF,startRecording as cF}from"./voice-sample.js";import{TIER_LABEL as pF,modelRows as _F,catalogStatus as dF,dtypePicker as RF,voicePicker as AF,voiceListRows as fF,diarizeRows as IF,switchOutcome as OF,saveVoiceFailure as uF,saveTimedOut as NF,catalogUnavailable as gF}from"./voice-models.js";import{dictToText as MF,textToDict as PF}from"./redaction-dictionary.js";import{groupRuns as xF,summarizeRun as hF,findRepeats as FF,withCost as DF,verdict as kF,toSanitizedReport as yF}from"./run-details.js";import{parseMcpConfig as bF,parseArgsInput as vF,argsToText as BF,parseEnvInput as GF,envToText as wF,envLikeArgs as KF}from"./mcp-config-import.js";import{mutableRef as VF,refreshArgs as WF,canRefresh as XF,describeRuntime as YF}from"./mcp-launcher.js";import{defaultMcpServers as JF,isDefaultMcpServer as jF}from"./default-mcp-servers.js";import{MONITOR_SOURCES as qF,DEFAULT_MONITOR_PROFILE as ZF,monitorProfile as $F,monitorWindowMs as eD,monitorNeedsTools as rD,filterMonitorTools as oD,recentFindings as tD,describeMonitorProfile as aD}from"./monitor-profile.js";import{NOTHING_NEW as sD,isNothingNew as nD,accumulates as SD,priorFindingsText as ED,deltaInstruction as lD,monitorPrompt as mD,applyMonitorReply as cD}from"./monitor-turn.js";import{defaultSkills as pD,meetingNotesSkill as _D}from"./default-skills.js";import{SURFACES as RD,FEATURES as AD,listFeatures as fD,featureIds as ID}from"./feature-map.js";import{ISSUE_REPO as uD,NEW_ISSUE_BASE as ND,ISSUE_SEARCH_API as gD,MAX_ISSUE_URL as CD,scrubReportText as MD,diagnosticsText as PD,buildBugReport as LD,newIssueUrl as xD,titleTerms as hD,issueSearchUrl as FD,matchIssues as DD,findExistingIssues as kD,issueCommentText as yD}from"./bug-report.js";import{WEB_RESEARCH_LIMITS as bD,WEB_TASK_DOMAINS as vD,researchAsk as BD,refineQueries as GD,parseSearchText as wD,cleanUrl as KD,pageKey as HD,passagesOf as VD,webResearch as WD,researchBrief as XD,researchCall as YD,runResearch as zD}from"./web-research.js";import{parseAmount as jD,moneyIn as QD,basisAt as qD,qualifierAt as ZD,quoteAround as $D,offersIn as ek,rankOffers as rk,comparable as ok,basisLabel as tk,formatValue as ak,unverifiedAmounts as ik,quoteFormIn as sk}from"./offers.js";import{isSecretField as Sk,maskSecretFields as Ek,isPersonalField as lk,commitKind as mk,commitQuestion as ck,captchaIn as Tk,captchaHandoff as pk,fenceUntrusted as _k,isFenced as dk}from"./page-guard.js";import{BROWSER_RELAY as Ak,BROWSER_KINDS as fk,validateBrowserCall as Ik,validateBrowserAnnounce as Ok,validateBrowserResult as uk,createBrowserRelay as Nk,browserRelaySystem as gk}from"./browser-relay.js";export{pa as ACCESS_LOG_MAX,Ta as ACCESS_LOG_VERSION,i as ACTOR_KINDS,Up as AGENT_ID_RE,mc as AGENT_REF_RE,CR as ALLOW_ALL,a as ALL_TYPES,YR as AMBIENT_KINDS,fA as AMBIENT_MAX_WORDS,Uh as ANOTHER_VOICE,Hu as API_BASE,bp as APPLIES_TO,bc as ASK_TYPES,Bp as ASSISTANT_ID,xf as AUTOCOMPLETE_MAX_TOKENS,Lf as AUTOCOMPLETE_SYSTEM,hf as AUTOCOMPLETE_TEMPERATURE,KT as AUTONOMY,Ma as AdapterError,Gp as AgentError,vs as AnalyzerError,NO as BACKUP_KDF_ITERATIONS,Xc as BOARD_TOOL_NAME,Lg as BOOKKEEPING_KEYS,zo as BRIEF_STATES,LC as BRINGBACK_COMMAND,fk as BROWSER_KINDS,Ak as BROWSER_RELAY,jm as BUDGET_DIMENSIONS,Kf as BUG_REPORT_SLASH_ITEMS,As as BUILTIN_TRIGGERS,an as BUILTIN_VOICE_INTENTS,uO as BackupError,Jm as BudgetError,bs as CADENCES,oM as CAPABILITY_TOOLS_SYSTEM,Ax as CE_SOURCE_PREFIX,dx as CE_SPECVERSION,Rx as CE_TYPE_PREFIX,VT as CHECKS,Jo as CLAIM_KINDS,n as CLASSES,mO as CLOCK_TOLERANCE_MS,$M as COMPACTION_SYSTEM,OO as COMPRESSIONS,Mm as COMPRESSION_MODES,Ch as CONTINUATION_WINDOW_MS,fP as CONTINUE_TEXT,_E as COOLDOWN_MS,jx as COST_BASES,Qu as COUNTED,Ge as COWRITER_SYSTEM,we as COWRITER_TEMPERATURE,o as CURRENT_VERSION,SP as CUT_FINISH,hu as DARK,KR as DATA_SCOPES,Ks as DAYPART_HOUR,eM as DECIDE_TOOL_NAME,o_ as DECLINE_REASONS,Yc as DEFAULT_ASK_TIMEOUT_MS,QR as DEFAULT_BLOCK_CHARS,Pm as DEFAULT_COMPRESSION,wT as DEFAULT_GATE,xi as DEFAULT_INTERNAL_PATTERNS,wi as DEFAULT_LOCK_MS,wE as DEFAULT_MAX_FINISH_TRIES,jR as DEFAULT_MAX_MEMORIES,GE as DEFAULT_MAX_ROUNDS,P_ as DEFAULT_MIN_CALLS,ZF as DEFAULT_MONITOR_PROFILE,KO as DEFAULT_POLICY,el as DEFAULT_SHIELD,rl as DEFAULT_STORE,xo as DEFAULT_THRESHOLD,Gs as DEFAULT_WAKE,om as DESCRIBE_ACTION,dg as DESKTOP_SECTION_IDS,Mh as ECHO_OVERLAP,Ph as ECHO_TAIL_MS,S as EFFECTS,E as EGRESS,vp as EGRESS_CLASSES,IO as ENCRYPTED_TYPE,Vu as ENDPOINTS,vr as ENGINE_KINDS,Cp as ENGINE_SPEC_KINDS,Bn as ENTITIES_SCHEMA,Wu as ENTITLEMENT_PUBLIC_JWK,vn as ENTITY_TYPES,wa as ENTRY_KINDS,ZO as ENTRY_VERSION,t as EVENT_TYPES,tp as EXECUTIVE,VE as EXHAUSTED_NOTE,ZL as EXTRACT_PROVIDER_ID,qL as EXTRACT_ROUTE,rx as EXTRACT_TYPES,eN as EntitlementError,l as EventError,ph as FACTCHECK_SCHEMA,_h as FACTCHECK_VERDICTS,Ti as FAILOVER_CAPABILITY_GAP,ci as FAILOVER_CLASS_GAP,OE as FAILOVER_MAX_ATTEMPTS,JO as FAST_FLUSH_MS,jO as FAST_STREAK,bP as FEATURES,AD as FEATURE_MAP,RD as FEATURE_SURFACES,Yu as FEATURE_TIER,BM as FETCHED_TTL_MS,Zn as FIELD_TYPES,yL as FILES_TOOL,hc as FINDINGS_SCHEMA,Fc as FINDING_KINDS,Ml as FIND_ACTION,cm as FIND_DESCRIPTION,Tm as FIND_RESIDENT,mm as FIND_TOOL_NAME,KE as FINISH_NUDGES,XM as FIT_HEADROOM,ju as FREE_LIMITS,xA as FRONT_PAGES,kl as FUSED_BUDGET_MS,Dl as FUSED_CANDIDATES,Df as GEARS,Of as GOAL_MIN_NEW,Sc as GRANTABLE,tR as GRANT_INFO,lc as GRANT_RE,Yh as HF_API,vl as HUB_TOOL_NAME,HT as HUMAN_FLAGS,mE as INPUT_PROGRESS_TOOLS,eg as INSIGHT_KINDS,ff as INSTRUCTION_RE,hi as INTERNAL_PATTERN_CATALOG,Cr as INVARIANTS,SM as IN_PROCESS_IDS,uD as ISSUE_REPO,gD as ISSUE_SEARCH_API,Ss as JOB_ACTIONS,yT as JOB_POST_ID_RE,kT as JOB_POST_STATUSES,iu as JOURNAL_BOUNDS,DT as JobPostError,qO as JournalError,Gi as KDF_HASH,Bi as KDF_ITERATIONS,NR as KernelError,r_ as LEDGER_ENTRY_KINDS,e_ as LEDGER_VERSION,xu as LIGHT,oT as LIVE_RUN_STATUSES,UP as LOCKABLE,HE as LOOPING_NUDGE,qa as LOOP_KINDS,jI as LibraryError,Za as LoopError,Zo as MAX_BRIEF_CHARS,qo as MAX_BRIEF_RECORDS,jo as MAX_CLAIMS,Qo as MAX_CLAIM_REFS,ws as MAX_COMMANDS_PER_DELTA,xd as MAX_DEPTH,$L as MAX_DOCUMENT_BYTES,Xi as MAX_ENTRIES,_t as MAX_EXCERPTS,dt as MAX_EXCERPT_CHARS,Le as MAX_GRAPH_NODES,CD as MAX_ISSUE_URL,ap as MAX_JOBS_PER_ROUND,GR as MAX_MATCHES,zR as MAX_MEMORY_CHARS,Vi as MAX_NOTE_CHARS,NN as MAX_NOTE_IMAGE_BYTES,gh as MAX_PENDING_CHARS,ip as MAX_ROUNDS,iF as MAX_SECONDS,Wi as MAX_SECRET_CHARS,CL as MAX_SKILL_FILE_BYTES,ML as MAX_SKILL_PACKAGE_BYTES,ho as MAX_SUBJECTS,Fo as MAX_SUBJECT_CHARS,Ld as MAX_SUBTASKS,Wn as MAX_SUGGESTIONS,Xn as MAX_SUGGESTION_CHARS,pt as MAX_SYNTHESIS_CLAIMS,TI as MAX_TAGS,cI as MAX_TAG_LENGTH,Hi as MAX_TITLE_CHARS,JI as MAX_TITLE_LEN,DI as MAX_TITLE_LENGTH,Pn as MAX_TOPICS,Ln as MAX_TOPIC_CHARS,Ex as MCP_CATALOG,Sx as MCP_REGISTRY_API,MS as MCP_SIGN_IN_CODE,_R as MCP_TOOL_NAME,WR as MEMORY_KINDS,XR as MEMORY_KIND_NAMES,ZR as MEMORY_TOOL_SPEC,$R as MEMORY_UPCASTERS,VR as MEMORY_VERSION,sc as MERGE_POLICIES,Lh as MIN_BARGE_IN_WORDS,l_ as MIN_FIT,JR as MIN_MEMORY_CHARS,tF as MIN_SECONDS,hd as MIN_TAKEUP_FIT,Es as MISSED_POLICIES,Eg as MOMENT_BADGES,qF as MONITOR_SOURCES,Nh as MUTE_GRACE_MS,AR as ManifestError,sC as McpClient,eA as MemoryError,Kt as NEAR_TITLE_DISTANCE,ND as NEW_ISSUE_BASE,Gf as NEW_THREAD_SLASH_ITEMS,K as NOTE_ACTIONS,W as NOTE_ACTION_ERRORS,H as NOTE_ACTION_ORDER,V as NOTE_ACTION_TEMPERATURE,X as NOTE_COMMANDS,z as NOTE_COMMAND_MAX_TOKENS,Y as NOTE_COMMAND_TEMPERATURE,uN as NOTE_IMAGE_SCHEME,gN as NOTE_IMAGE_TYPES,ng as NOTE_SECTIONS,aL as NOTE_TOOL_SPECS,sD as NOTHING_NEW,lE as OBSERVATION_TOOLS,Ou as OMNI_GRAMMAR,Iu as OMNI_MODES,ex as PAGE_CHARS,Fu as PALETTES,$S as PARALLEL_LOCAL_RE,kL as PATH_KIND,Wt as PDF_MAX_CHARS,al as PERMISSION_ANSWERS,tl as PERMISSION_EVENT,vP as PERMISSION_MODES,il as PERMISSION_TIMEOUT_MS,sl as PERMISSION_TOOL_NAME,Ku as PLANS,qe as PLAN_AUTHORS,$e as PLAN_DECOMPOSE_MAX_TOKENS,Ze as PLAN_DECOMPOSE_SYSTEM,er as PLAN_DECOMPOSE_TEMPERATURE,nc as PLAN_MODES,Qe as PLAN_ROLES,rr as PLAN_SECTION_MAX_TOKENS,or as PLAN_SECTION_TEMPERATURE,kP as POLICY_TOKEN_TYPE,DP as POLICY_VERSION,yc as POST_KINDS,Uc as POST_STATUSES,pg as PREF_SECTIONS,_g as PREF_SECTION_IDS,LP as PRESENCE_BUDGET_TOKENS,xP as PRESENCE_KINDS,Eh as PRICING_BASES,lh as PRICING_LABELS,BP as PRODUCT_HOSTS,OT as PROJECT_ID_RE,ep as PROJECT_JOBS_SCHEMA,rp as PROJECT_REVIEW_SCHEMA,sp as PROJECT_RUN_STATUSES,IT as PROJECT_STATUSES,sF as PROMPT_TEXT,At as PROPOSAL_STATES,zu as PRO_FEATURES,Lx as PUSH_LIMITS,FP as PolicyError,fT as ProjectError,op as ProjectRunError,lr as REACH,$u as RECHECK_INTERVAL_MS,vm as RECIPE_MODES,Hm as RECIPE_TOOL_NAME,Np as RECORD_ENGINE_KINDS,zI as RECORD_KINDS,PO as RECORD_TYPE,E_ as RECRUIT_SCHEMA,yP as REDACTION_TIERS,wo as REDACTION_TOKEN_TYPES,mn as REFINEMENT_SCHEMA,_ as REF_KINDS,Dr as REGISTRY_STATES,gR as REQUIRED_PLUGINS,Pg as REQUIREMENTS,rM as RERANK_TOOL_NAME,d as RESOLUTION,oL as RESPONSE_LANGUAGES,$n as RESPONSE_MODES,Ie as RESULTS_PER_ENGINE,$E as RESULT_TOOL_NAME,tT as RESUMABLE_RUN_STATUSES,ka as RETRIEVAL_TOOLS,Ql as REVEAL,Op as ROLE_KINDS,ic as ROLE_MODES,sR as ROSTER_KINDS,WE as ROUND_SEPARATOR,Mp as ROUTE_PREFERS,ad as RUN_STATUSES,bm as RecipeError,_i as RouterError,Ui as RuleError,qR as SAME_FACT,oF as SAMPLE_RATE,ss as SCHEDULE_KINDS,F_ as SCM_KINDS,s as SCOPE_KINDS,Ip as SCORECARD_ENTRY_KINDS,up as SCORECARD_VERSION,bx as SEALED_TYPE,vx as SEALED_VERSION,fe as SEARCH_ENGINES,pu as SEGMENT_RE,Ho as SELF_LABELS,Cg as SETTINGS_GROUPS,Vg as SETTINGS_OPEN_DEFAULT,Mg as SETTINGS_PAGES,Du as SHAPE,PC as SIDELINE_COMMANDS,hC as SIDELINE_SLASH_ITEMS,YC as SIDELINE_TOOL_NAME,zC as SIDELINE_TOOL_SPEC,vA as SKILL_CONTEXTS,gL as SKILL_DRAFT_SCHEMA,KA as SKILL_FILE_KINDS,IL as SKILL_FILE_TOOL,BA as SKILL_HISTORY_SCOPES,bA as SKILL_MANIFEST_VERSION,GA as SKILL_MCP_MODES,wA as SKILL_TRUST,HA as SKILL_UPCASTERS,af as SKILL_VARS,sf as SKILL_VAR_NAMES,jL as SKIP_DIR_NAMES,Bf as SLASH_TYPING_RE,zO as SLOW_FLUSH_MS,HO as SLOW_POLICY,aR as SOLO_BUDGET,YN as SORT_LABELS,XN as SORT_MODES,fR as SOURCES,OM as SOURCE_TOOL_SPEC,FA as SOURCE_TRUST,Ht as SPAN_MIN_TERMS,wN as SPEAKER_SLOTS,Gh as SPOKEN_REPLY_HINT,ST as STALLED_AFTER_MS,Jp as STARTER_AGENTS,cc as STARTER_TEAMS,Q_ as STEP_MAX_CHARS,nP as STITCH_LIMITS,Lo as SUBJECT_KINDS,Yn as SUGGESTIONS_SCHEMA,ft as SUPERSEDE_OVERLAP,yi as SUPPRESSED,ce as SWARM_ROLES,mt as SYNTHESIS_SCHEMA,ls as ScheduleError,Bx as SealError,Br as SearchEngineError,VA as SkillManifestError,DA as SkillSourceError,_f as SkillVarError,eS as StructuredError,cO as SyncError,aF as TARGET_SECONDS,q_ as TASK_TRANSCRIPT_MAX_CHARS,Ju as TEAM_FEATURES,md as TEAM_MANUAL,Nc as TEAM_PLAN_SCHEMA,iR as TEAM_SHAPES,ld as TEAM_TOOL_NAME,Lu as THEMES,Dc as THREAD_KINDS,kc as THREAD_STATUSES,xC as THREAD_TOOL_NAME,FC as THREAD_TOOL_SPEC,pF as TIER_LABEL,kI as TITLE_RULES_VERSION,ku as TOKEN_NAMES,yu as TOKEN_ROLES,VS as TOKEN_SKEW_MS,xn as TOPICS_SCHEMA,$t as TRANSCRIPT_MAX_CHARS,ns as TRIGGER_KINDS,zh as TTS_ARCH_LABEL,ac as TeamError,td as TeamRunError,Zr as ToolGroupError,dE as UNAVAILABLE_REASONS,FI as UNTITLED_MEETING,pr as UPCASTERS,Xu as UPGRADE_URL,Jx as USAGE_RING_MAX,Cn as UTTERANCE_DANGLING_MS,gn as UTTERANCE_SETTLE_MS,Wh as VAD_DEFAULTS,vi as VAULT_VERSION,uh as VOICE_STATES,Ki as VaultError,Hs as VoiceIntentError,Yr as WEATHER_HOST,zr as WEATHER_TIMEOUT_MS,QC as WEATHER_TOOL_NAME,qC as WEATHER_TOOL_SYSTEM,bD as WEB_RESEARCH_LIMITS,Am as WEB_SEARCH_SPEC,dm as WEB_SEARCH_TOOL_NAME,Rm as WEB_SEARCH_TOOL_SYSTEM,vD as WEB_TASK_DOMAINS,uo as WIDGET_SURFACES,t_ as WITHDRAW_AFTER,Rd as WORKLOG_KINDS,Ec as WORK_GRANTS,kf as WRITER_PREFS,yf as WRITER_PREF_DEFAULTS,Jr as WeatherError,Zt as YOUTUBE_HOSTS,$a as abortCause,Ot as accept,SD as accumulates,tm as actionMenu,XO as adaptProfile,AC as adaptiveToolRetryHint,RI as addTag,UE as addUsage,dp as adjustSummary,xL as admitPackage,AO as advanceBases,HP as agentAllowed,Xd as agentColor,qp as agentFromForm,Wd as agentHue,Yd as agentInitials,Vd as agentKind,oe as agentMentionAt,bo as aliasMap,BE as anthropicTranscript,PT as applyAll,x_ as applyCard,Be as applyEdits,nu as applyEntry,cD as applyMonitorReply,jP as applyPolicyToSettings,Ig as applySections,eh as applyUsage,de as appoint,Wr as areaLabel,ja as argsShape,BF as argsToText,gA as asksOnlyAboutPage,Vp as assistantAgent,WL as attachedFilesProvider,br as attemptOrder,cp as attest,GS as authHeader,US as authorizeUrl,rC as availableDestinations,GO as backupFromRecords,YS as bareToolName,JL as basenameOf,qD as basisAt,tk as basisLabel,bO as bestCodec,Qp as blankAgent,w_ as blankConnection,hT as blankJobPost,pT as blankProject,pc as blankTeam,EE as blockedToolResult,Pc as boardText,Kc as boardToolProvider,Hc as boardToolSpec,_u as boundSegments,b_ as branchFor,Ug as breadcrumb,uc as breakCycles,et as briefId,tt as briefLinks,BC as briefPrompt,ot as briefTerms,rt as briefToText,gk as browserRelaySystem,LD as buildBugReport,am as buildGroupDispatchSpec,xe as buildNoteGraph,Qt as buildPdfDocument,Oe as buildSearchUrl,em as buildToolset,Ua as buildTrajectory,la as buildTranscriptDocument,Zd as builtinOrg,sN as can,os as canAddEntry,MT as canJobPostTransition,TT as canProjectTransition,XF as canRefresh,zS as canRunConcurrently,Ir as canSatisfy,nA as candidatesFrom,Sp as canonical,hS as canonicalResource,tM as capabilityToolsProvider,lM as capabilityView,pk as captchaHandoff,Tk as captchaIn,oa as captionTracksFromPlayerResponse,EL as captureFromMessage,Jd as cardNumbers,L_ as cardOverride,N_ as carveBudget,dF as catalogStatus,gF as catalogUnavailable,Au as catchUpPlan,N as causesAreWellFormed,Ox as ceHostOf,Ix as ceSourceOf,Ng as changedSections,UL as checkAttachablePath,gr as checkInvariants,at as checkKnowledgeInvariants,rN as checkoutUrl,eT as checkpointFrom,G as chipText,cM as choiceNote,mM as choicePatch,Tt as claimsFromSynthesis,TE as classifyFailure,pe as classifyModel,Ni as classifySource,dl as claudePermissionResponse,yI as cleanTitle,KD as cleanUrl,Ff as clipCompletion,Y_ as clipMessage,Fs as clipText,X_ as clipTranscript,lS as coerce,Hn as coerceEntities,zL as collapseDots,cC as combineSystemPrompt,Z as commandLineAt,On as commandLooksFinished,zs as commandsFromSegments,mk as commitKind,ck as commitQuestion,qE as compactValue,ZM as compactable,JM as compactionPrompt,jM as compactionRecord,ok as comparable,u as compareEvents,DR as compileQuery,Vs as compileWake,B as composerChips,um as compressToolSpec,Nm as compressToolSpecs,gm as compressionStats,U_ as connectionFor,K_ as connectionFromForm,sA as containment,$o as contentHash,dP as continuationMessages,J_ as continuationNote,tI as continueList,gt as converge,nh as costFor,Ra as createAccessLog,Ca as createAdapterRegistry,fC as createAdaptiveToolPolicy,Us as createAnalyzerRegistry,Vc as createAnswerBox,T as createAppender,xr as createBlobStore,Cc as createBoard,Nk as createBrowserRelay,Wm as createBudget,hE as createCallRunner,Da as createCitationCollector,j_ as createControl,hM as createFetchedStore,QO as createJournal,OR as createKernel,Lr as createLogStore,RR as createManifest,Pr as createMemoryAdapter,pE as createModelHealth,ii as createModelRouter,fl as createPermissionDesk,Fr as createRegistry,YE as createResultStore,ki as createRuleEngine,Jc as createRunCache,su as createSegment,yA as createSkillSourceRegistry,Nf as createSpendMeter,Ja as createStepRecorder,cS as createStructuredStream,qr as createToolGroupRegistry,aE as createToolLoopGuard,Rs as createTriggerRegistry,za as createTurnRunner,Nn as createUtteranceGate,Kh as createVad,Yi as createVault,on as createVoiceIntentRegistry,Oh as createVoiceLoop,B_ as credentialEnv,bu as cssVarName,Fx as cursorOf,QN as dayBucket,pO as decide,f_ as decideRecruit,jA as declaredAccess,CO as decryptBackup,IN as defaultImagePolicy,fN as defaultLinkPolicy,JF as defaultMcpServers,k as defaultModelId,pD as defaultSkills,bM as defaultTtl,tn as defaultVoiceIntents,EF as defaultVoiceName,fM as deferAttachedSources,ga as defineAdapter,Hp as defineAgent,Ps as defineJob,CT as defineJobPost,Qa as defineLoop,ys as defineMeetingAnalyzer,ti as defineMiddleware,oi as defineModel,cT as defineProject,ai as defineRouteStrategy,Di as defineRule,rS as defineSchema,yr as defineSearchEngine,kA as defineSkillSource,qm as defineTeam,Qr as defineToolGroup,ds as defineTrigger,rn as defineVoiceIntent,lD as deltaInstruction,sg as demd,UN as densityRibbon,P as dequeue,LO as deriveBackupKey,nt as deriveBrief,St as deriveBriefs,Ji as deriveKey,KI as deriveMeetingTitle,aO as deriveTitle,Xp as describeAgent,GL as describeAttachedPath,dd as describeCall,G_ as describeConnection,Dp as describeEngine,aD as describeMonitorProfile,wL as describePathSize,ml as describePermission,Km as describeRecipeForApproval,tc as describeRole,YF as describeRuntime,oS as describeSchema,eF as describeSearchResult,Hg as describeSettingValue,QE as describeShape,iT as describeSpend,Ed as describeTeamForApproval,wd as describeTeamShape,kE as describeToolCall,th as describeTurnUsage,eC as destinationFromAgent,$g as destinationFromEndpoint,PD as diagnosticsText,IF as diarizeRows,MF as dictToText,Nt as diffProposal,wS as discoverMcpAuth,Ga as displayName,KL as displayPath,sM as distributionConfidence,EI as docStats,Cf as draftSeparator,Et as driftedRefs,km as dryRunRecipe,rd as dryRunTeam,RF as dtypePicker,Ls as dueJobs,yt as duplicateTitles,Bo as earnsBrief,en as editDistance,ve as editKey,BT as effectiveGate,Io as effectiveGrants,Kg as effectiveSettingValue,qS as effectiveToolName,he as egoGraph,YP as egressAllowed,vc as emptyBoardState,dT as emptyProjectRecord,qc as emptyRun,Wf as enabledSkills,gO as encryptBackup,wP as endpointAllowed,Ap as engineKey,Fp as engineKeyOf,Wp as engineOf,Me as engineOrder,hp as engineRef,m_ as engineRow,c_ as engineRows,cR as engineStrip,__ as engineWorth,wn as entitiesFormat,Gn as entitiesPrompt,Vn as entitiesStream,Zi as entryMeta,tu as entryStamp,KF as envLikeArgs,wF as envToText,oo as equipmentFor,ei as errorFacts,Em as estimateTokens,R_ as evaluatorPrompt,kx as eventStats,vM as exchangeOf,hm as expandRecipe,UR as expandReplacement,Tf as expandSkillPrompt,pS as explainMcpError,_N as exportDevicePublicKey,Cd as extendDependents,Nu as extractFilters,gi as extractUrls,sx as extractorChain,fh as factcheckKey,Rh as factcheckPrompt,Ah as factcheckVerdict,IE as failoverExhausted,li as failoverOrder,JP as featureEnabled,ID as featureIds,_k as fenceUntrusted,DM as fetchKey,mx as fetchMcpRegistryPage,HS as fetchMcpToken,kM as fetchTitle,yM as fetchedAsSources,UM as fetchedFacts,MI as filterByTags,Ba as filterEntries,TL as filterMcpServersForSkill,oD as filterMonitorTools,q as filterNoteActions,jN as filterRecords,D as filterSections,be as filterTypoEdits,Nl as findActionArgs,pm as findDispatchProvider,kD as findExistingIssues,sS as findJson,kR as findMatches,nO as findRecordRefs,FF as findRepeats,hg as findRow,ie as findSkillByName,se as findTargetByName,Ol as findTools,ul as findToolsResult,Xs as findWakeCommand,Lc as findingsInstruction,Gc as findingsOf,_p as fit,pP as fitAttachments,KM as fitFor,Ac as fixedPlan,XC as foldBackFor,GC as foldBackNote,Bc as foldBoard,wC as foldNotes,RT as foldProject,Zc as foldRun,RO as forkConflict,fa as formatBytes,$h as formatDownloads,LR as formatReport,wt as formatSurvey,OI as formatTag,gI as formatTagQuery,GN as formatTalkTime,Sa as formatTimestamp,Ea as formatTranscript,oh as formatTurnUsage,Sh as formatUsd,ak as formatValue,Vr as formatWeather,J as frameNoteAction,qu as freeCap,as as fromB64,Nx as fromCloudEvent,Cx as fromCloudEventLines,LA as frontPageInstruction,PA as frontPagesAskedAbout,go as fuseRRF,xl as fusedRanker,GT as gateAllows,ix as gatewayExtractor,pN as generateDeviceKey,uC as getMcpProviders,wr as getWeather,In as gistOpening,fn as gistText,$P as globToRegExp,uf as goalDraftAllowed,rc as grantAllows,eR as grantChoices,rR as grantsFromChoices,ro as grantsNeededFor,De as graphStats,Mf as groundingBlock,cg as groupActionsByOwner,Dg as groupById,F as groupModels,ZN as groupRecords,xF as groupRuns,na as groupSegments,ag as hasInsights,so as hasSubstance,dI as hasTag,NI as hasTagTerms,Nd as holdsGrants,Jg as homeChecklist,Ci as hostMatches,io as housekeepingTarget,bl as hubSpec,kO as identityCodec,AM as imageAttachmentsOf,TM as inProcessPatch,EM as inProcessView,aI as indentSelection,hx as ingestCloudEvents,Dh as initialVoiceState,og as insightKindOf,RS as installHintFor,If as instructionOnLine,Mu as isActionable,Xr as isAmbiguousLocation,VI as isBetterTitleSource,$d as isBuiltin,JS as isCacheable,WM as isContextLimitError,jF as isDefaultMcpServer,MO as isEncryptedBackup,ou as isEntry,yh as isFarewell,dk as isFenced,An as isFillerSentence,UI as isGenericTitle,IC as isInvalidToolParametersResult,no as isLocalHelper,es as isLocked,SE as isLoopableTool,od as isModelUnavailable,_P as isNoneNote,ES as isNothing,nD as isNothingNew,Sl as isPermissionTool,lk as isPersonalField,to as isPleasantry,aN as isPro,M as isQueued,ZI as isRecordId,Ko as isRedactionToken,A as isRef,Ne as isResultHost,rT as isResumable,WA as isSafeSkillPath,Xx as isSealedBlob,FO as isSealedRecord,Sk as isSecretField,vL as isSecretPath,Vo as isSelfLabel,dO as isSettled,Yx as isShredded,Vf as isSkillEnabled,ME as isSourceGateError,HN as isSpeakerImageValue,dS as isStaleMcpSession,Uo as isSubjectCandidate,iN as isTeam,ru as isTombstone,c as isValidEvent,oA as isValidMemory,eO as isValidStoredRecord,ra as isYouTubeUrl,yD as issueCommentText,FD as issueSearchUrl,d_ as jobApplications,gd as jobFromSubtask,FT as jobPostFromForm,JT as jobResults,LT as jobToRole,xs as jobsForEvent,ZT as jobsPrompt,HM as keepRecentFor,DO as keyCache,va as lanesOf,rL as languageInstruction,dh as lastClaimOf,Gl as lastUserText,lo as layoutFlowchart,a_ as ledgerKey,mN as licenseFromPayload,Rf as lineAt,O as linearize,Xt as linesFromItems,NA as linkAttachments,Ct as linkClaims,SO as linkRecordRefs,bg as linkTo,vg as linkToRow,La as linkifyCitations,OA as linksToRead,lf as lintSkillPrompt,ye as lintText,fD as listFeatures,xg as listRows,rs as lockedSummary,xh as looksLikeEcho,jt as looksScanned,Hh as lowBandEnergy,da as makeAccessEvent,Sm as makeDispatchProvider,lp as makeEntry,sm as makeGroupDispatchExecutor,$O as makeJournalEntry,s_ as makeLedgerEntry,iL as makeNoteToolExecutor,Vl as makePromptedTranscript,qI as makeRecordId,R as makeRef,Ri as makeSourceStore,Aa as makeStorageTier,Ul as makeToolHub,Ai as manifestText,Dm as mapInput,cP as mapParts,pA as markUsed,ha as markdownUrl,Ek as maskSecretFields,EA as matchForForget,yR as matchIndexFor,DD as matchIssues,zf as matchSlashRecipe,Yf as matchSlashSkill,jf as matchSlashTeam,Ds as matchSummary,CI as matchesTagFilter,CC as mcpBackoff,pR as mcpDispatchProvider,lC as mcpInventorySystem,nC as mcpProvider,px as mcpServerFromCatalogItem,EC as mcpSharedSystem,uR as meetDecisions,Mi as meetReach,Os as meetingEndedTrigger,tg as meetingInsights,_D as meetingNotesSkill,Is as meetingStartedTrigger,WI as meetingTitlePrompt,TA as memoryBlock,tA as memoryKey,nL as memoryToolProvider,dA as memoryToolSystem,ne as mentionAnswerPrefix,bt as mentionsFrom,aC as mergeEndpointDestinations,Ce as mergeEngineResults,oP as mergeNote,Je as mergeResearchLanes,mu as mergeSegments,ae as mergeSkillPrompt,ug as mergeStamped,W_ as mergeTranscript,QM as messagesAfter,V_ as messagesFor,lF as microphoneError,VM as minWindowFor,fS as missingCommandIn,AS as missingCommandMessage,vd as missingStarters,KP as modelAllowed,_F as modelRows,Qh as modelSearchUrl,y as modelSummary,lg as momentBadge,QD as moneyIn,ln as monitorIntent,rD as monitorNeedsTools,$F as monitorProfile,mD as monitorPrompt,eD as monitorWindowMs,L as moveQueued,Mo as multiSearch,VF as mutableRef,T_ as needForJob,JA as needsBridge,jS as needsConfirmation,cN as needsRecheck,cA as needsWhere,Kx as newDeviceKey,xD as newIssueUrl,FN as newNoteImageId,z_ as newSteps,LM as newsAsk,cs as nextFireAt,KC as nextSidelineIndex,ps as nextWakeAt,UO as nodeCodec,wx as nodeSealer,RE as normModelName,Kp as normalizeAgent,Ym as normalizeBudget,i_ as normalizeCall,k_ as normalizeConnection,Rp as normalizeEngine,Lp as normalizeEngineSpec,vT as normalizeGate,ec as normalizeGrants,bf as normalizeIntent,gT as normalizeJobPost,rA as normalizeMemory,Zh as normalizeModel,GP as normalizeOrgPolicy,YL as normalizePath,IS as normalizePlatform,Pp as normalizePolicy,mh as normalizePricing,mT as normalizeProject,Pt as normalizeRecord,Lt as normalizeRecords,Tx as normalizeRegistryEntry,cx as normalizeRegistryPage,fd as normalizeRequest,fp as normalizeScm,of as normalizeSkill,Zs as normalizeSpeech,$I as normalizeStoredRecord,Do as normalizeSubject,pI as normalizeTag,_I as normalizeTags,$m as normalizeTeam,yn as normalizeTopic,Un as normalizeTopics,bE as normalizeUsage,Uf as normalizeWriterPrefs,Q as noteActionItems,j as noteActionLabel,aP as noteConflictsIn,CN as noteImageId,PN as noteImageIds,MN as noteImageRef,LN as noteImageRefs,En as noteIntent,Sg as noteSectionKind,VC as noteUnits,SR as observeInbox,Zu as observeSince,ER as observeStrip,hs as occurrenceKey,Ts as occurrencesBetween,ek as offersIn,gl as oneLiner,vE as openAiTranscript,Vx as openBlob,iM as openDecision,Qi as openEntry,hO as openRecord,Yt as orderLines,QA as originLabel,XA as originOf,hN as orphanNoteImages,kt as orphanRecords,rI as outlineOf,Cl as overlapRank,Ru as overlayEntries,_S as packageFromArgs,FL as packagesFromFiles,Fg as pageById,CA as pageInstruction,HD as pageKey,Jt as pageTextFromItems,kg as pagesOf,ax as paginateText,Uu as paletteFor,zt as paragraphsFromLines,ZS as parallelEligible,re as parseAgentMention,jD as parseAmount,vF as parseArgsInput,LS as parseAuthChallenge,it as parseBriefText,kC as parseBringBack,Hf as parseBugCommand,js as parseClock,Ys as parseCommand,_s as parseCron,Js as parseDuration,Kn as parseEntities,GF as parseEnvInput,A_ as parseEvaluation,Mc as parseFindings,Eo as parseFlowchart,QT as parseJobs,xR as parseJsonl,Bg as parseLink,oI as parseListItem,bF as parseMcpConfig,mg as parseMeetingNotes,kN as parseMeetingText,wf as parseNewThread,qs as parseNumberWords,uu as parseOmni,fc as parsePlan,ar as parsePlanTasks,QI as parseRecordId,pn as parseRefinement,y_ as parseRemote,qT as parseReview,wD as parseSearchText,Tu as parseSegmentName,DC as parseSideline,uS as parseSignInPrompt,te as parseSkillMention,Ef as parseSkillVars,mS as parseStructured,jn as parseSuggestions,uI as parseTagQuery,sa as parseTimedText,XI as parseTitleResponse,Xl as parseToolCalls,kn as parseTopics,Hr as parseWeather,Qs as parseWhen,ea as parseYouTubeUrl,EP as partChars,mP as partPrompt,jh as partitionTtsModels,VD as passagesOf,BL as pathAttachment,HL as pathAttachmentsOf,Vh as pcmEnergy,C as pendingQueue,Tl as permissionAllowed,cl as permissionAnswer,Al as permissionIcon,ll as permissionKeys,Rl as permissionLine,VP as permissionMode,El as permissionRequestFromClaude,nl as permissionToolSpec,us as personJoinedTrigger,ba as phasesOf,Ns as phraseTrigger,aa as pickCaptionTrack,WO as pickProfile,ge as pickResults,fg as pickSections,mi as pinnedOrderOf,Sr as planAttribution,nr as planBody,zM as planCompaction,xx as planEventPush,tN as planLabel,oN as planOf,sr as planParts,Co as planQueries,tr as planSectionSystem,_O as planSync,ir as planTitleFor,rE as planToolRound,Ic as plannerPrompt,Zg as pointsAtGateway,YO as policyFor,qP as policyHash,QP as policyLabel,Zp as poolFor,Ei as preferenceFor,gM as prefetchAttachment,NM as prefetchPlan,CP as presenceBlock,uP as presenceDelta,OP as presenceFor,ch as priceUsage,ED as priorFindingsText,nT as priorWorkFor,ua as projectChain,_T as projectFromForm,AT as projectProgress,yx as projectYear,x as promoteQueued,Ud as promoteRoles,Va as promptEntries,ah as promptTokensOf,Wl as promptedToolsSystem,Hl as promptedTranscript,O_ as proposalFromNeeds,u_ as proposalToAgent,It as propose,_A as pruneMemories,ZD as qualifierAt,Cs as questionTrigger,yg as quickRows,$D as quoteAround,sk as quoteFormIn,Ll as rankFused,le as rankLinkTargets,rk as rankOffers,ze as rankResearchCards,dL as rankSkills,Go as rankSubjects,sh as rateFor,NP as reachOf,mr as reachRank,cr as reachSatisfies,DS as readAuthServerMetadata,yS as readRegistration,FS as readResourceMetadata,Ii as readSource,vC as readThread,vS as readTokenResponse,wI as readableWhen,xT as readyJobs,lA as recall,_l as recallPermission,tD as recentFindings,Jf as recipeInvocationText,Fm as recipeParams,Gm as recipeToolProvider,wm as recipeToolSpec,SA as reconcile,Ur as reconcileEngines,BO as recordsFromBackup,g_ as recruitEvents,I_ as recruitForRun,C_ as recruitJob,_a as redactAccessArgs,ht as redactedTokensIn,Ft as redactionCost,XP as redactionTier,TP as reduceNotes,GD as refineQueries,Rn as refineSpokenCommand,Tn as refinementFormat,cn as refinementPrompt,_n as refinementStream,WF as refreshArgs,KS as registerMcpClient,kS as registrationRequest,lx as registryListUrl,ut as reject,pl as rememberPermission,b as rememberRecent,nn as reminderIntent,AI as removeTag,_M as renderContent,mo as renderFlowchartSvg,AN as renderMarkdown,EO as repairAnswerMarkup,xa as repairCitedLinks,SS as repairJson,vR as replaceAll,BR as replaceAllInRange,bR as replaceMatch,PR as replay,ni as requirementsFor,Si as requirementsForStep,hl as rerankThrough,BD as researchAsk,XD as researchBrief,YD as researchCall,We as researchRelevance,Ye as researchSnippet,gC as resetMcp,iP as resolveNoteConflict,f as resolveRef,yC as resolveSidelineTarget,gu as resolveSince,vo as resolveSubjects,zp as resolveTeam,Gu as resolveTheme,aS as responseFormat,ZE as resultToolSpec,ed as resumeTeam,Zl as revealCut,ql as revealStep,$T as reviewPrompt,nS as rewriteJson,fx as rfc3339,Te as roleById,zd as roleCardId,$x as rollupKey,Hd as rosterRows,jT as roundBudget,FE as roundCap,MP as roundCount,YT as roundJobs,PP as roundMinutes,iE as roundSignature,WP as routeAllowed,p_ as routeFor,Oa as routeGraph,Re as routeTeam,qN as rowTime,$c as runFromEvents,lR as runLanes,ym as runPlan,XT as runProject,Um as runRecipe,zD as runResearch,CM as runResearchItem,JE as runResultQuery,sT as runState,$_ as runTeam,oE as runToolRound,xE as runTurnLoop,fE as runWithFailover,He as salientTerms,AA as sameMemory,pi as sameModelKey,qA as sameSkillOrigin,II as sameTags,un as sameUtterance,nF as sampleSeconds,SF as sampleTooShort,NF as saveTimedOut,uF as saveVoiceFailure,mA as saysWhere,VO as scalePolicy,Sn as scheduleIntent,oc as scmAllows,MD as scrubReportText,Hx as sealBlob,ji as sealEntry,xO as sealRecord,$i as searchEntries,qh as searchModels,fm as searchResultsToText,Xg as searchSettings,oO as searchTextFor,bL as secretReason,Og as sectionHash,Qg as sectionOfRow,Rg as sectionSpec,Ag as sectionValue,oC as seedDestinations,Su as segmentBytes,Eu as segmentEntries,cu as segmentName,du as segmentsFor,lI as selectionStats,wg as setSettingValue,zP as settingLocked,Gg as settingValue,jg as settingsGateOf,Wg as settingsOpenMode,zg as settingsStatusAll,Yg as settingsStatusOf,dn as settleRefinement,Ep as sha256,zE as shieldToolResult,fi as shortUrl,HI as shouldAutoTitle,lu as shouldRotate,tC as shouldSeedDestinations,Wx as shredBlob,WC as sidelinePath,JC as sidelineToolProvider,dN as signChallenge,NS as signInError,gS as signInFromError,CS as signInToolResult,si as signalsFrom,iA as similarity,RL as skillCatalogSystem,oR as skillChoices,PL as skillCreatorPrompt,uL as skillDiscoveryProvider,OL as skillEntry,fL as skillFileProvider,zA as skillFiles,hL as skillFromDraft,_L as skillHandle,LL as skillIdFrom,$f as skillInvocationLabel,Zf as skillInvocationOf,ZA as skillIsStale,cL as skillPackageFiles,mL as skillRunFromSkill,pL as skillToolSystem,nf as skillVar,pf as skillVarGuidance,Sf as skillVarPattern,qf as slashCommandInsert,Xf as slashCommandItems,aA as slotOf,Yp as slugAgentId,dc as slugTeamName,XL as sniffType,iO as snippetOf,Qd as soloTeam,JN as sortRecords,zN as sortStamp,mC as sourceCitationSystem,CE as sourceGate,gE as sourceGuardFor,Oi as sourceId,HC as sourceOf,Pi as sourcePolicyFor,NE as sourcePolicySettings,Li as sourceUrlsOf,Fa as sourcesFromToolText,vt as spanningQuestions,vh as speakStream,Bh as speakable,vN as speakerBreakdown,VN as speakerLabeller,yN as speakerStats,BN as speakerTimeline,aT as spendOf,mR as spendRows,lP as splitForWindow,rP as splitNoteBlocks,sE as stableToolCallKey,TO as stampOf,cF as startRecording,jp as starterAgents,bd as starterTeam,Tc as starterTeams,yE as stepResultText,uA as storyLinkOf,yO as streamCodec,xN as stripNoteImageRefs,Wo as stripQualifiers,ko as subjectKey,yo as subjectTokens,cf as substituteSkillVars,Id as subtaskFromRequest,LI as suggestExistingTags,Xo as suggestMerges,mf as suggestSkillVar,Jn as suggestionsFormat,zn as suggestionsPrompt,Qn as suggestionsStream,pp as summarize,n_ as summarizeEngine,hF as summarizeRun,rh as summarizeUsage,rg as summarySections,au as supersedes,_e as supportsSubagents,Bt as surveyCorpus,OF as switchOutcome,tP as syncNote,ct as synthesisPrompt,qM as systemWithSummary,PI as tagFacets,xI as tagsSearchText,Od as takeUp,ud as takeUpLine,Md as taskTree,zT as teamForRound,_c as teamFromForm,Bd as teamHealth,Qf as teamInvocationText,kd as teamLanes,Dd as teamLine,Gd as teamShape,sd as teamToolProvider,nd as teamToolSpec,Sd as teamToolTimeoutMs,qd as teamsWithSolos,NC as testMcpServer,PF as textToDict,Bu as themeStylesheet,UC as threadManifest,Pd as threadRows,Ha as threadTitle,bC as threadToolProvider,Xa as threadTree,Ka as threadsOf,Gt as thresholdSweep,nN as tierFor,kp as tierOf,ia as timedTextUrl,sn as timerIntent,fs as timerTrigger,GI as titleFromDate,BI as titleFromParticipants,bI as titleFromSummary,vI as titleFromTopics,hD as titleTerms,ts as toB64,xc as toBriefClaims,dM as toChatMessages,ux as toCloudEvent,Mx as toCloudEventBatch,gx as toCloudEventLines,vu as toCssVars,tO as toIndexEntry,tS as toJsonSchema,hR as toJsonl,Or as toModelSchema,ur as toModelSchemas,RM as toMultimodalMessages,yF as toSanitizedReport,rO as toSearchRecord,sI as toggleLinePrefix,SI as toggleLink,fI as toggleTag,nI as toggleTask,iI as toggleWrap,BS as tokenExpired,bS as tokenRequest,$s as tokenize,eu as tombstone,zl as toolChannel,Fl as toolDoc,nE as toolMadeProgress,eo as toolNeedFor,TC as toolStatus,XS as toolTraits,Ve as topicTerms,gs as topicTrigger,Dn as topicsFormat,Fn as topicsPrompt,hn as topicsSchema,bn as topicsStream,QS as traitsIndex,Jl as transcriptFor,ma as transcriptFromTracks,$ as triggerQueryAt,Cm as trimDescription,Fe as trimGraph,RP as trimOverlap,YA as trustOf,Jh as ttsArchOf,Wa as turnsOf,iS as unfence,zi as unlockVault,ik as unverifiedAmounts,ue as unwrapRedirect,_r as upcast,dr as upcastAll,RA as upcastMemory,ef as upcastSkill,rf as upcastSkills,jd as upsertAgents,qx as usageFromEvent,Zx as usageFromOpenAi,zm as usageOf,Qx as usageRecord,im as validateAction,wp as validateAgent,Ok as validateBrowserAnnounce,Ik as validateBrowserCall,uk as validateBrowserResult,Xm as validateBudget,Ar as validateCapability,D_ as validateConnection,xp as validateEngineSpec,qi as validateEntry,m as validateEvent,ox as validateExtractRequest,tx as validateExtractResponse,bT as validateGate,fr as validateInvocation,NT as validateJobPost,lT as validateProject,xm as validateRecipe,ms as validateSchedule,$A as validateSkill,Zm as validateTeam,To as validateView,po as validateViewInvocation,Ao as validateWidget,fo as validateWidgetMessage,_C as vaultWidgetSystem,kF as verdict,Tp as verifyAttested,mp as verifyChain,EN as verifyEntitlement,ZP as verifyPolicyToken,lN as verifySignedToken,ta as videoMetaFromPlayerResponse,_o as viewResult,Yl as visiblePrefix,Ut as vocabularyDrift,Ms as voiceCommandTrigger,fF as voiceListRows,AF as voicePicker,kh as voiceSpeaker,Fh as voiceStep,Ws as wakeFor,Dt as wantedPages,Cu as wantsModel,dC as wantsVaultGuidance,Oc as waves,PM as weatherFollowupPlace,MM as weatherPlace,ZC as weatherToolProvider,Kr as weatherUrl,Gx as webCryptoSealer,mF as webMedia,Xe as webQuery,WD as webResearch,Im as webSearchToolProvider,xS as wellKnownUrls,Kd as whereItWorks,pC as widgetAuthoringSystem,Oo as widgetIcon,Ee as wikiQueryAt,xt as wikilinksIn,wM as windowOf,VL as withAbsolutePaths,Wc as withBoardTool,DF as withCost,FM as withFetchedMemo,nm as withGuidance,Bl as withHint,gP as withPresence,Kl as withPromptedTools,U as withRecent,jE as withResultShield,jc as withRunCache,IM as withSourceTool,AP as withStitching,DE as withToolSystem,SN as withinFreeLimit,PE as withinReach,sO as wordCount,Ue as wordDiff,_d as workLogEvidence,Td as workLogFor,pd as workLogText,v_ as worktreeDirFor,Af as writerAffordance,Pf as writerRequest,gf as writerTail};
1
+ import{CURRENT_VERSION as o,EVENT_TYPES as t,ALL_TYPES as a,ACTOR_KINDS as i,SCOPE_KINDS as s,CLASSES as n,EFFECTS as S,EGRESS as l,EventError as E,validateEvent as m,isValidEvent as c,createAppender as p}from"./event.js";import{REF_KINDS as _,RESOLUTION as d,makeRef as R,isRef as A,resolveRef as f}from"./ref.js";import{linearize as O,compareEvents as u,causesAreWellFormed as N}from"./order.js";import{pendingQueue as C,isQueued as M,dequeue as P,moveQueued as L,promoteQueued as x}from"./queue.js";import{groupModels as F,filterSections as D,defaultModelId as k,modelSummary as y,withRecent as U,rememberRecent as b}from"./model-picker.js";import{composerChips as B,chipText as w}from"./composer-chips.js";import{NOTE_ACTIONS as K,NOTE_ACTION_ORDER as H,NOTE_ACTION_TEMPERATURE as V,NOTE_ACTION_ERRORS as W,NOTE_COMMANDS as X,NOTE_COMMAND_TEMPERATURE as Y,NOTE_COMMAND_MAX_TOKENS as z,frameNoteAction as J,noteActionLabel as j,noteActionItems as Q,filterNoteActions as q,commandLineAt as Z,triggerQueryAt as $}from"./note-actions.js";import{parseAgentMention as re,agentMentionAt as oe,parseSkillMention as te,mergeSkillPrompt as ae,findSkillByName as ie,findTargetByName as se,mentionAnswerPrefix as ne}from"./note-mentions.js";import{wikiQueryAt as le,rankLinkTargets as Ee}from"./note-links.js";import{SWARM_ROLES as ce,roleById as pe,classifyModel as Te,supportsSubagents as _e,appoint as de,routeTeam as Re}from"./cowriter-router.js";import{SEARCH_ENGINES as fe,RESULTS_PER_ENGINE as Ie,buildSearchUrl as Oe,unwrapRedirect as ue,isResultHost as Ne,pickResults as ge,mergeEngineResults as Ce,engineOrder as Me}from"./web-search.js";import{MAX_GRAPH_NODES as Le,buildNoteGraph as xe,egoGraph as he,trimGraph as Fe,graphStats as De}from"./note-graph.js";import{lintText as ye,wordDiff as Ue,filterTypoEdits as be,editKey as ve,applyEdits as Be,COWRITER_SYSTEM as we,COWRITER_TEMPERATURE as Ge}from"./cowriter.js";import{salientTerms as He,topicTerms as Ve,researchRelevance as We,webQuery as Xe,researchSnippet as Ye,rankResearchCards as ze,mergeResearchLanes as Je}from"./note-research.js";import{PLAN_ROLES as Qe,PLAN_AUTHORS as qe,PLAN_DECOMPOSE_SYSTEM as Ze,PLAN_DECOMPOSE_MAX_TOKENS as $e,PLAN_DECOMPOSE_TEMPERATURE as er,PLAN_SECTION_MAX_TOKENS as rr,PLAN_SECTION_TEMPERATURE as or,planSectionSystem as tr,parsePlanTasks as ar,planTitleFor as ir,planParts as sr,planBody as nr,planAttribution as Sr}from"./note-plan.js";import{REACH as Er,reachRank as mr,reachSatisfies as cr}from"./reach.js";import{UPCASTERS as Tr,upcast as _r,upcastAll as dr}from"./upcast.js";import{validateCapability as Ar,validateInvocation as fr,canSatisfy as Ir,toModelSchema as Or,toModelSchemas as ur}from"./capability.js";import{checkInvariants as gr,INVARIANTS as Cr}from"./invariants.js";import{createMemoryAdapter as Pr,createLogStore as Lr,createBlobStore as xr}from"./store.js";import{createRegistry as Fr,REGISTRY_STATES as Dr}from"./registry.js";import{defineSearchEngine as yr,reconcileEngines as Ur,attemptOrder as br,ENGINE_KINDS as vr,SearchEngineError as Br}from"./search-engines.js";import{getWeather as Gr,weatherUrl as Kr,parseWeather as Hr,formatWeather as Vr,areaLabel as Wr,isAmbiguousLocation as Xr,WEATHER_HOST as Yr,WEATHER_TIMEOUT_MS as zr,WeatherError as Jr}from"./weather.js";import{defineToolGroup as Qr,createToolGroupRegistry as qr,ToolGroupError as Zr}from"./tool-groups.js";import{toolNeedFor as eo,grantsNeededFor as ro,equipmentFor as oo,isPleasantry as to}from"./tool-need.js";import{housekeepingTarget as io,hasSubstance as so,isLocalHelper as no}from"./housekeeping.js";import{parseFlowchart as lo,layoutFlowchart as Eo,renderFlowchartSvg as mo}from"./flowchart.js";import{validateView as po,validateViewInvocation as To,viewResult as _o}from"./view.js";import{validateWidget as Ao,validateWidgetMessage as fo,effectiveGrants as Io,widgetIcon as Oo,WIDGET_SURFACES as uo}from"./widget.js";import{fuseRRF as go,planQueries as Co,multiSearch as Mo}from"./rrf.js";import{SUBJECT_KINDS as Lo,DEFAULT_THRESHOLD as xo,MAX_SUBJECTS as ho,MAX_SUBJECT_CHARS as Fo,normalizeSubject as Do,subjectKey as ko,subjectTokens as yo,isSubjectCandidate as Uo,aliasMap as bo,resolveSubjects as vo,earnsBrief as Bo,rankSubjects as wo,REDACTION_TOKEN_TYPES as Go,isRedactionToken as Ko,SELF_LABELS as Ho,isSelfLabel as Vo,stripQualifiers as Wo,suggestMerges as Xo}from"./entity.js";import{BRIEF_STATES as zo,CLAIM_KINDS as Jo,MAX_CLAIMS as jo,MAX_CLAIM_REFS as Qo,MAX_BRIEF_RECORDS as qo,MAX_BRIEF_CHARS as Zo,contentHash as $o,briefId as et,briefToText as rt,briefTerms as ot,briefLinks as tt,checkKnowledgeInvariants as at,parseBriefText as it}from"./knowledge.js";import{deriveBrief as nt,deriveBriefs as St,driftedRefs as lt}from"./knowledge-derive.js";import{SYNTHESIS_SCHEMA as mt,synthesisPrompt as ct,claimsFromSynthesis as pt,MAX_SYNTHESIS_CLAIMS as Tt,MAX_EXCERPTS as _t,MAX_EXCERPT_CHARS as dt}from"./synthesis.js";import{PROPOSAL_STATES as At,SUPERSEDE_OVERLAP as ft,propose as It,accept as Ot,reject as ut,diffProposal as Nt,converge as gt,linkClaims as Ct}from"./promotion.js";import{normalizeRecord as Pt,normalizeRecords as Lt,wikilinksIn as xt,redactedTokensIn as ht,redactionCost as Ft,wantedPages as Dt,orphanRecords as kt,duplicateTitles as yt,vocabularyDrift as Ut,mentionsFrom as bt,spanningQuestions as vt,surveyCorpus as Bt,thresholdSweep as wt,formatSurvey as Gt,NEAR_TITLE_DISTANCE as Kt,SPAN_MIN_TERMS as Ht}from"./curate.js";import{PDF_MAX_CHARS as Wt,linesFromItems as Xt,orderLines as Yt,paragraphsFromLines as zt,pageTextFromItems as Jt,looksScanned as jt,buildPdfDocument as Qt}from"./pdf-layout.js";import{YOUTUBE_HOSTS as Zt,TRANSCRIPT_MAX_CHARS as $t,parseYouTubeUrl as ea,isYouTubeUrl as ra,captionTracksFromPlayerResponse as oa,videoMetaFromPlayerResponse as ta,pickCaptionTrack as aa,timedTextUrl as ia,parseTimedText as sa,groupSegments as na,formatTimestamp as Sa,formatTranscript as la,buildTranscriptDocument as Ea,transcriptFromTracks as ma}from"./media-transcript.js";import{ACCESS_LOG_VERSION as pa,ACCESS_LOG_MAX as Ta,redactAccessArgs as _a,makeAccessEvent as da,createAccessLog as Ra,makeStorageTier as Aa,formatBytes as fa}from"./observability.js";import{routeGraph as Oa,projectChain as ua}from"./route-graph.js";import{defineAdapter as ga,createAdapterRegistry as Ca,AdapterError as Ma}from"./adapters.js";import{linkifyCitations as La,repairCitedLinks as xa,markdownUrl as ha,sourcesFromToolText as Fa,createCitationCollector as Da,RETRIEVAL_TOOLS as ka}from"./citations.js";import{buildTrajectory as Ua,phasesOf as ba,lanesOf as va,filterEntries as Ba,displayName as wa,ENTRY_KINDS as Ga,threadsOf as Ka,threadTitle as Ha,promptEntries as Va,turnsOf as Wa,threadTree as Xa}from"./trajectory.js";import{createTurnRunner as za,createStepRecorder as Ja,argsShape as ja,defineLoop as Qa,LOOP_KINDS as qa,LoopError as Za,abortCause as $a,errorFacts as ei}from"./loop.js";import{defineModel as oi,defineMiddleware as ti,defineRouteStrategy as ai,createModelRouter as ii,signalsFrom as si,requirementsFor as ni,requirementsForStep as Si,preferenceFor as li,failoverOrder as Ei,pinnedOrderOf as mi,FAILOVER_CLASS_GAP as ci,FAILOVER_CAPABILITY_GAP as pi,sameModelKey as Ti,RouterError as _i}from"./router.js";import{makeSourceStore as Ri,manifestText as Ai,shortUrl as fi,readSource as Ii,sourceId as Oi}from"./sources-retrieval.js";import{classifySource as Ni,extractUrls as gi,hostMatches as Ci,meetReach as Mi,sourcePolicyFor as Pi,sourceUrlsOf as Li,DEFAULT_INTERNAL_PATTERNS as xi,INTERNAL_PATTERN_CATALOG as hi}from"./sources.js";import{defineRule as Di,createRuleEngine as ki,SUPPRESSED as yi,RuleError as Ui}from"./rules.js";import{VAULT_VERSION as vi,KDF_ITERATIONS as Bi,KDF_HASH as wi,DEFAULT_LOCK_MS as Gi,VaultError as Ki,MAX_TITLE_CHARS as Hi,MAX_NOTE_CHARS as Vi,MAX_SECRET_CHARS as Wi,MAX_ENTRIES as Xi,createVault as Yi,unlockVault as zi,deriveKey as Ji,sealEntry as ji,openEntry as Qi,validateEntry as qi,entryMeta as Zi,searchEntries as $i,isLocked as es,lockedSummary as rs,canAddEntry as os,toB64 as ts,fromB64 as as}from"./vault.js";import{SCHEDULE_KINDS as ss,TRIGGER_KINDS as ns,JOB_ACTIONS as Ss,MISSED_POLICIES as ls,ScheduleError as Es,validateSchedule as ms,nextFireAt as cs,occurrencesBetween as ps,nextWakeAt as Ts,parseCron as _s,defineTrigger as ds,createTriggerRegistry as Rs,BUILTIN_TRIGGERS as As,timerTrigger as fs,meetingStartedTrigger as Is,meetingEndedTrigger as Os,personJoinedTrigger as us,phraseTrigger as Ns,topicTrigger as gs,questionTrigger as Cs,voiceCommandTrigger as Ms,defineJob as Ps,dueJobs as Ls,jobsForEvent as xs,occurrenceKey as hs,clipText as Fs,matchSummary as Ds}from"./schedule.js";import{defineMeetingAnalyzer as ys,createAnalyzerRegistry as Us,CADENCES as bs,AnalyzerError as vs}from"./meeting-analyzers.js";import{DEFAULT_WAKE as ws,ASSISTANT_NAME as Gs,MAX_COMMANDS_PER_DELTA as Ks,DAYPART_HOUR as Hs,VoiceIntentError as Vs,compileWake as Ws,wakeFor as Xs,findWakeCommand as Ys,parseCommand as zs,commandsFromSegments as Js,parseDuration as js,parseClock as Qs,parseWhen as qs,parseNumberWords as Zs,normalizeSpeech as $s,tokenize as en,editDistance as rn,defineVoiceIntent as on,createVoiceIntentRegistry as tn,defaultVoiceIntents as an,BUILTIN_VOICE_INTENTS as sn,timerIntent as nn,reminderIntent as Sn,scheduleIntent as ln,noteIntent as En,monitorIntent as mn,REFINEMENT_SCHEMA as cn,refinementPrompt as pn,refinementFormat as Tn,parseRefinement as _n,refinementStream as dn,settleRefinement as Rn,refineSpokenCommand as An,isFillerSentence as fn,gistText as In,gistOpening as On,commandLooksFinished as un,sameUtterance as Nn,createUtteranceGate as gn,UTTERANCE_SETTLE_MS as Cn,UTTERANCE_DANGLING_MS as Mn}from"./voice-intents.js";import{MAX_TOPICS as Ln,MAX_TOPIC_CHARS as xn,TOPICS_SCHEMA as hn,topicsSchema as Fn,topicsPrompt as Dn,topicsFormat as kn,parseTopics as yn,normalizeTopic as Un,normalizeTopics as bn,topicsStream as vn,ENTITY_TYPES as Bn,ENTITIES_SCHEMA as wn,entitiesPrompt as Gn,entitiesFormat as Kn,parseEntities as Hn,coerceEntities as Vn,entitiesStream as Wn,MAX_SUGGESTIONS as Xn,MAX_SUGGESTION_CHARS as Yn,SUGGESTIONS_SCHEMA as zn,suggestionsPrompt as Jn,suggestionsFormat as jn,parseSuggestions as Qn,suggestionsStream as qn}from"./extraction.js";import{FIELD_TYPES as $n,RESPONSE_MODES as eS,StructuredError as rS,defineSchema as oS,describeSchema as tS,toJsonSchema as aS,responseFormat as iS,unfence as sS,findJson as nS,rewriteJson as SS,repairJson as lS,isNothing as ES,coerce as mS,parseStructured as cS,createStructuredStream as pS}from"./structured.js";import{explainMcpError as _S,packageFromArgs as dS,isStaleMcpSession as RS,installHintFor as AS,missingCommandMessage as fS,missingCommandIn as IS,normalizePlatform as OS}from"./mcp-errors.js";import{parseSignInPrompt as NS,signInError as gS,signInFromError as CS,signInToolResult as MS,MCP_SIGN_IN_CODE as PS}from"./mcp-signin.js";import{parseAuthChallenge as xS,wellKnownUrls as hS,canonicalResource as FS,readResourceMetadata as DS,readAuthServerMetadata as kS,registrationRequest as yS,readRegistration as US,authorizeUrl as bS,tokenRequest as vS,readTokenResponse as BS,tokenExpired as wS,authHeader as GS,discoverMcpAuth as KS,registerMcpClient as HS,fetchMcpToken as VS,TOKEN_SKEW_MS as WS}from"./mcp-oauth.js";import{toolTraits as YS,bareToolName as zS,canRunConcurrently as JS,isCacheable as jS,needsConfirmation as QS,traitsIndex as qS,effectiveToolName as ZS,parallelEligible as $S,PARALLEL_LOCAL_RE as el}from"./tool-traits.js";import{planToolRound as ol,runToolRound as tl}from"./tool-round.js";import{createToolLoopGuard as il,roundSignature as sl,stableToolCallKey as nl,toolMadeProgress as Sl,isLoopableTool as ll,blockedToolResult as El,OBSERVATION_TOOLS as ml,INPUT_PROGRESS_TOOLS as cl}from"./tool-loop-guard.js";import{classifyFailure as Tl,createModelHealth as _l,COOLDOWN_MS as dl,UNAVAILABLE_REASONS as Rl,normModelName as Al}from"./model-health.js";import{runWithFailover as Il,failoverExhausted as Ol,FAILOVER_MAX_ATTEMPTS as ul}from"./failover.js";import{sourcePolicySettings as gl,sourceGuardFor as Cl,sourceGate as Ml,isSourceGateError as Pl,withinReach as Ll}from"./source-gate.js";import{runTurnLoop as hl,createCallRunner as Fl,roundCap as Dl,withToolSystem as kl,describeCall as yl,stepResultText as Ul,addUsage as bl,normalizeUsage as vl,openAiTranscript as Bl,anthropicTranscript as wl,DEFAULT_MAX_ROUNDS as Gl,DEFAULT_MAX_FINISH_TRIES as Kl,FINISH_NUDGES as Hl,LOOPING_NUDGE as Vl,EXHAUSTED_NOTE as Wl,ROUND_SEPARATOR as Xl}from"./turn-loop.js";import{createResultStore as zl,shieldToolResult as Jl,runResultQuery as jl,withResultShield as Ql,describeShape as ql,compactValue as Zl,resultToolSpec as $l,RESULT_TOOL_NAME as eE,DEFAULT_SHIELD as rE,DEFAULT_STORE as oE}from"./tool-result.js";import{PERMISSION_EVENT as aE,PERMISSION_ANSWERS as iE,PERMISSION_TIMEOUT_MS as sE,PERMISSION_TOOL_NAME as nE,permissionToolSpec as SE,isPermissionTool as lE,permissionRequestFromClaude as EE,permissionKeys as mE,describePermission as cE,permissionAnswer as pE,permissionAllowed as TE,rememberPermission as _E,recallPermission as dE,claudePermissionResponse as RE,permissionLine as AE,permissionIcon as fE,createPermissionDesk as IE}from"./agent-permission.js";import{findTools as uE,findToolsResult as NE,findActionArgs as gE,oneLiner as CE,overlapRank as ME,FIND_ACTION as PE}from"./tool-discovery.js";import{rankFused as xE,fusedRanker as hE,rerankThrough as FE,toolDoc as DE,FUSED_CANDIDATES as kE,FUSED_BUDGET_MS as yE}from"./tool-rank-fused.js";import{makeToolHub as bE,hubSpec as vE,HUB_TOOL_NAME as BE,withHint as wE,withLead as GE,lastUserText as KE}from"./tool-hub.js";import{withPromptedTools as VE,promptedTranscript as WE,makePromptedTranscript as XE,promptedToolsSystem as YE,parseToolCalls as zE,visiblePrefix as JE,toolChannel as jE,transcriptFor as QE}from"./prompted-tools.js";import{REVEAL as ZE,revealStep as $E,revealCut as em}from"./stream-reveal.js";import{buildToolset as om}from"./toolset.js";import{DESCRIBE_ACTION as am,actionMenu as im,buildGroupDispatchSpec as sm,validateAction as nm,makeGroupDispatchExecutor as Sm,withGuidance as lm,makeDispatchProvider as Em,estimateTokens as mm}from"./tool-dispatch.js";import{FIND_TOOL_NAME as pm,FIND_DESCRIPTION as Tm,FIND_RESIDENT as _m,findDispatchProvider as dm}from"./find-tool.js";import{WEB_SEARCH_TOOL_NAME as Am,WEB_SEARCH_TOOL_SYSTEM as fm,WEB_SEARCH_SPEC as Im,searchResultsToText as Om,webSearchToolProvider as um}from"./web-search-tool.js";import{compressToolSpec as gm,compressToolSpecs as Cm,compressionStats as Mm,trimDescription as Pm,COMPRESSION_MODES as Lm,DEFAULT_COMPRESSION as xm}from"./tool-schema.js";import{validateRecipe as Fm,expandRecipe as Dm,recipeParams as km,mapInput as ym,dryRunRecipe as Um,runPlan as bm,runRecipe as vm,RecipeError as Bm,RECIPE_MODES as wm}from"./recipe.js";import{recipeToolProvider as Km,recipeToolSpec as Hm,describeRecipeForApproval as Vm,RECIPE_TOOL_NAME as Wm}from"./recipe-tool.js";import{createBudget as Ym,validateBudget as zm,normalizeBudget as Jm,usageOf as jm,BudgetError as Qm,BUDGET_DIMENSIONS as qm}from"./budget.js";import{defineTeam as $m,validateTeam as ec,normalizeTeam as rc,normalizeGrants as oc,grantAllows as tc,scmAllows as ac,describeRole as ic,TeamError as sc,ROLE_MODES as nc,MERGE_POLICIES as Sc,PLAN_MODES as lc,GRANTABLE as Ec,WORK_GRANTS as mc,GRANT_RE as cc,AGENT_REF_RE as pc,STARTER_TEAMS as Tc,starterTeams as _c,blankTeam as dc,teamFromForm as Rc,slugTeamName as Ac}from"./team.js";import{fixedPlan as Ic,parsePlan as Oc,plannerPrompt as uc,waves as Nc,breakCycles as gc,TEAM_PLAN_SCHEMA as Cc}from"./team-plan.js";import{createBoard as Pc,parseFindings as Lc,boardText as xc,findingsInstruction as hc,toBriefClaims as Fc,FINDINGS_SCHEMA as Dc,FINDING_KINDS as kc,THREAD_KINDS as yc,THREAD_STATUSES as Uc,POST_KINDS as bc,POST_STATUSES as vc,ASK_TYPES as Bc,emptyBoardState as wc,foldBoard as Gc,findingsOf as Kc}from"./team-board.js";import{boardToolProvider as Vc,boardToolSpec as Wc,createAnswerBox as Xc,withBoardTool as Yc,BOARD_TOOL_NAME as zc,DEFAULT_ASK_TIMEOUT_MS as Jc}from"./board-tool.js";import{createRunCache as Qc,withRunCache as qc}from"./team-cache.js";import{emptyRun as $c,foldRun as ep,runFromEvents as rp,checkpointFrom as op,isResumable as tp,LIVE_RUN_STATUSES as ap,RESUMABLE_RUN_STATUSES as ip,spendOf as sp,describeSpend as np,runState as Sp,priorWorkFor as lp,STALLED_AFTER_MS as Ep}from"./team-record.js";import{validateProject as cp,normalizeProject as pp,defineProject as Tp,canTransition as _p,blankProject as dp,projectFromForm as Rp,emptyProjectRecord as Ap,foldProject as fp,projectProgress as Ip,ProjectError as Op,PROJECT_STATUSES as up,PROJECT_ID_RE as Np}from"./project.js";import{validateJob as Cp,normalizeJob as Mp,defineJob as Pp,canTransition as Lp,applyAll as xp,jobToRole as hp,readyJobs as Fp,blankJob as Dp,jobFromForm as kp,JobError as yp,JOB_STATUSES as Up,JOB_ID_RE as bp}from"./job.js";import{validateGate as Bp,normalizeGate as wp,effectiveGate as Gp,gateAllows as Kp,DEFAULT_GATE as Hp,AUTONOMY as Vp,HUMAN_FLAGS as Wp,CHECKS as Xp}from"./gate.js";import{runProject as zp,roundJobs as Jp,teamForRound as jp,jobResults as Qp,roundBudget as qp,parseJobs as Zp,parseReview as $p,jobsPrompt as eT,reviewPrompt as rT,PROJECT_JOBS_SCHEMA as oT,PROJECT_REVIEW_SCHEMA as tT,ProjectRunError as aT,EXECUTIVE as iT,MAX_JOBS_PER_ROUND as sT,MAX_ROUNDS as nT,PROJECT_RUN_STATUSES as ST}from"./project-run.js";import{canonical as ET,sha256 as mT,makeEntry as cT,verifyChain as pT,attest as TT,verifyAttested as _T,summarize as dT,fit as RT,adjustSummary as AT,normalizeEngine as fT,engineKey as IT,normalizeScm as OT,SCORECARD_ENTRY_KINDS as uT,ROLE_KINDS as NT,SCORECARD_VERSION as gT,ENGINE_KINDS as CT}from"./scorecard.js";import{ENGINE_KINDS as PT,ROUTE_PREFERS as LT,normalizePolicy as xT,normalizeEngineSpec as hT,validateEngineSpec as FT,engineRef as DT,engineKeyOf as kT,describeEngine as yT,tierOf as UT}from"./engine.js";import{AGENT_ID_RE as vT,APPLIES_TO as BT,EGRESS_CLASSES as wT,ASSISTANT_ID as GT,AgentError as KT,validateAgent as HT,normalizeAgent as VT,defineAgent as WT,assistantAgent as XT,engineOf as YT,describeAgent as zT,slugAgentId as JT,resolveTeam as jT,STARTER_AGENTS as QT,starterAgents as qT,blankAgent as ZT,agentFromForm as $T,poolFor as e_}from"./agent.js";import{LEDGER_VERSION as o_,LEDGER_ENTRY_KINDS as t_,DECLINE_REASONS as a_,WITHDRAW_AFTER as i_,ledgerKey as s_,normalizeCall as n_,makeLedgerEntry as S_,summarizeEngine as l_}from"./model-ledger.js";import{RECRUIT_SCHEMA as m_,MIN_FIT as c_,engineRow as p_,engineRows as T_,needForJob as __,routeFor as d_,engineWorth as R_,applications as A_,evaluatorPrompt as f_,parseEvaluation as I_,decide as O_,recruitForRun as u_,proposalFromNeeds as N_,proposalToAgent as g_,carveBudget as C_,recruitEvents as M_,recruitJob as P_}from"./recruit.js";import{DEFAULT_MIN_CALLS as x_,cardOverride as h_,applyCard as F_}from"./model-candidates.js";import{SCM_KINDS as k_,validateConnection as y_,normalizeConnection as U_,parseRemote as b_,connectionFor as v_,branchFor as B_,worktreeDirFor as w_,credentialEnv as G_,describeConnection as K_,blankConnection as H_,connectionFromForm as V_}from"./scm-connection.js";import{messagesFor as X_,mergeTranscript as Y_,clipTranscript as z_,clipMessage as J_,newSteps as j_,continuationNote as Q_,createControl as q_,STEP_MAX_CHARS as Z_,TASK_TRANSCRIPT_MAX_CHARS as $_}from"./team-task.js";import{runTeam as rd,resumeTeam as od,dryRunTeam as td,isModelUnavailable as ad,TeamRunError as id,RUN_STATUSES as sd}from"./team-run.js";import{teamToolProvider as Sd,teamToolSpec as ld,teamToolTimeoutMs as Ed,describeTeamForApproval as md,TEAM_TOOL_NAME as cd,TEAM_MANUAL as pd}from"./team-tool.js";import{workLogFor as _d,workLogText as dd,workLogEvidence as Rd,describeCall as Ad,WORKLOG_KINDS as fd}from"./team-worklog.js";import{normalizeRequest as Od,subtaskFromRequest as ud,takeUp as Nd,takeUpLine as gd,holdsGrants as Cd,jobFromSubtask as Md,extendDependents as Pd,taskTree as Ld,threadRows as xd,MAX_SUBTASKS as hd,MAX_DEPTH as Fd,MIN_TAKEUP_FIT as Dd}from"./team-subtask.js";import{teamLine as yd,teamLanes as Ud}from"./team-trail.js";import{promoteRoles as vd,starterTeam as Bd,missingStarters as wd,teamHealth as Gd,teamShape as Kd,describeTeamShape as Hd,whereItWorks as Vd,rosterRows as Wd,agentKind as Xd,agentHue as Yd,agentColor as zd,agentInitials as Jd,roleCardId as jd,cardNumbers as Qd,upsertAgents as qd,soloTeam as Zd,teamsWithSolos as $d,builtinOrg as eR,isBuiltin as rR,grantChoices as oR,grantsFromChoices as tR,skillChoices as aR,GRANT_INFO as iR,SOLO_BUDGET as sR,TEAM_SHAPES as nR,ROSTER_KINDS as SR}from"./team-org.js";import{observeInbox as ER,observeStrip as mR,runLanes as cR,spendRows as pR,engineStrip as TR}from"./team-observe.js";import{mcpDispatchProvider as dR,MCP_TOOL_NAME as RR}from"./mcp-dispatch.js";import{createManifest as fR,ManifestError as IR,SOURCES as OR}from"./manifest.js";import{createKernel as NR,meetDecisions as gR,KernelError as CR,REQUIRED_PLUGINS as MR,ALLOW_ALL as PR}from"./kernel.js";import{replay as xR,formatReport as hR,parseJsonl as FR,toJsonl as DR}from"./harness.js";import{compileQuery as yR,findMatches as UR,matchIndexFor as bR,expandReplacement as vR,replaceMatch as BR,replaceAll as wR,replaceAllInRange as GR,MAX_MATCHES as KR}from"./text-search.js";import{DATA_SCOPES as VR}from"./scopes.js";import{MEMORY_VERSION as XR,MEMORY_KINDS as YR,MEMORY_KIND_NAMES as zR,AMBIENT_KINDS as JR,MAX_MEMORY_CHARS as jR,MIN_MEMORY_CHARS as QR,DEFAULT_MAX_MEMORIES as qR,DEFAULT_BLOCK_CHARS as ZR,SAME_FACT as $R,MEMORY_TOOL_SPEC as eA,MEMORY_UPCASTERS as rA,MemoryError as oA,normalizeMemory as tA,isValidMemory as aA,memoryKey as iA,slotOf as sA,similarity as nA,containment as SA,candidatesFrom as lA,reconcile as EA,matchForForget as mA,recall as cA,saysWhere as pA,homePlace as TA,needsWhere as _A,memoryBlock as dA,markUsed as RA,pruneMemories as AA,memoryToolSystem as fA,upcastMemory as IA,sameMemory as OA,AMBIENT_MAX_WORDS as uA}from"./memory.js";import{linksToRead as gA,storyLinkOf as CA,linkAttachments as MA,asksOnlyAboutPage as PA,pageInstruction as LA}from"./message-links.js";import{frontPagesAskedAbout as hA,frontPageInstruction as FA,FRONT_PAGES as DA}from"./site-pages.js";import{SOURCE_TRUST as yA,SkillSourceError as UA,defineSkillSource as bA,createSkillSourceRegistry as vA}from"./skill-sources.js";import{SKILL_MANIFEST_VERSION as wA,SKILL_CONTEXTS as GA,SKILL_HISTORY_SCOPES as KA,SKILL_MCP_MODES as HA,SKILL_TRUST as VA,SKILL_FILE_KINDS as WA,SKILL_UPCASTERS as XA,SkillManifestError as YA,isSafeSkillPath as zA,originOf as JA,trustOf as jA,skillFiles as QA,needsBridge as qA,declaredAccess as ZA,originLabel as $A,sameSkillOrigin as ef,skillIsStale as rf,validateSkill as of,upcastSkill as tf,upcastSkills as af,normalizeSkill as sf}from"./skill-manifest.js";import{SKILL_VARS as Sf,SKILL_VAR_NAMES as lf,skillVar as Ef,skillVarPattern as mf,parseSkillVars as cf,lintSkillPrompt as pf,suggestSkillVar as Tf,substituteSkillVars as _f,expandSkillPrompt as df,skillVarGuidance as Rf,SkillVarError as Af}from"./skill-vars.js";import{lineAt as If,writerAffordance as Of,INSTRUCTION_RE as uf,instructionOnLine as Nf,GOAL_MIN_NEW as gf,goalDraftAllowed as Cf,createSpendMeter as Mf,writerTail as Pf,draftSeparator as Lf,groundingBlock as xf,writerRequest as hf,AUTOCOMPLETE_SYSTEM as Ff,AUTOCOMPLETE_MAX_TOKENS as Df,AUTOCOMPLETE_TEMPERATURE as kf,clipCompletion as yf,GEARS as Uf,WRITER_PREFS as bf,WRITER_PREF_DEFAULTS as vf,normalizeWriterPrefs as Bf,normalizeIntent as wf}from"./cowriter-writer.js";import{SLASH_TYPING_RE as Kf,NEW_THREAD_SLASH_ITEMS as Hf,parseNewThread as Vf,BUG_REPORT_SLASH_ITEMS as Wf,parseBugCommand as Xf,isSkillEnabled as Yf,enabledSkills as zf,slashCommandItems as Jf,matchSlashSkill as jf,matchSlashRecipe as Qf,recipeInvocationText as qf,matchSlashTeam as Zf,teamInvocationText as $f,slashCommandInsert as eI,skillInvocationOf as rI,skillInvocationLabel as oI}from"./slash-commands.js";import{outlineOf as aI,parseListItem as iI,continueList as sI,indentSelection as nI,toggleWrap as SI,toggleLinePrefix as lI,toggleTask as EI,toggleLink as mI,docStats as cI,selectionStats as pI}from"./markdown-authoring.js";import{MAX_TAG_LENGTH as _I,MAX_TAGS as dI,normalizeTag as RI,normalizeTags as AI,hasTag as fI,addTag as II,removeTag as OI,toggleTag as uI,sameTags as NI,formatTag as gI,parseTagQuery as CI,hasTagTerms as MI,formatTagQuery as PI,matchesTagFilter as LI,filterByTags as xI,tagFacets as hI,suggestExistingTags as FI,tagsSearchText as DI}from"./tags.js";import{UNTITLED_MEETING as yI,MAX_TITLE_LENGTH as UI,TITLE_RULES_VERSION as bI,cleanTitle as vI,isGenericTitle as BI,titleFromSummary as wI,titleFromTopics as GI,titleFromParticipants as KI,titleFromDate as HI,readableWhen as VI,deriveMeetingTitle as WI,shouldAutoTitle as XI,isBetterTitleSource as YI,meetingTitlePrompt as zI,parseTitleResponse as JI}from"./titles.js";import{RECORD_KINDS as QI,MAX_TITLE_LEN as qI,LibraryError as ZI,parseRecordId as $I,makeRecordId as eO,isRecordId as rO,normalizeStoredRecord as oO,isValidStoredRecord as tO,toSearchRecord as aO,searchTextFor as iO,toIndexEntry as sO,deriveTitle as nO,snippetOf as SO,wordCount as lO,findRecordRefs as EO,linkRecordRefs as mO,repairAnswerMarkup as cO}from"./library.js";import{CLOCK_TOLERANCE_MS as TO,SyncError as _O,stampOf as dO,decide as RO,planSync as AO,isSettled as fO,forkConflict as IO,advanceBases as OO}from"./sync-plan.js";import{ENCRYPTED_TYPE as NO,COMPRESSIONS as gO,BackupError as CO,KDF_ITERATIONS as MO,encryptBackup as PO,decryptBackup as LO,isEncryptedBackup as xO,RECORD_TYPE as hO,deriveBackupKey as FO,sealRecord as DO,openRecord as kO,isSealedRecord as yO,keyCache as UO,identityCodec as bO,streamCodec as vO,nodeCodec as BO,bestCodec as wO}from"./backup-envelope.js";import{recordsFromBackup as KO,backupFromRecords as HO}from"./backup-records.js";import{DEFAULT_POLICY as WO,SLOW_POLICY as XO,scalePolicy as YO,pickProfile as zO,adaptProfile as JO,policyFor as jO,SLOW_FLUSH_MS as QO,FAST_FLUSH_MS as qO,FAST_STREAK as ZO,createJournal as $O,JournalError as eu,ENTRY_VERSION as ru,makeEntry as ou,tombstone as tu,isTombstone as au,isEntry as iu,entryStamp as su,supersedes as nu,BOUNDS as Su,createSegment as lu,applyEntry as Eu,segmentBytes as mu,segmentEntries as cu,shouldRotate as pu,mergeSegments as Tu,segmentName as _u,parseSegmentName as du,SEGMENT_RE as Ru,boundSegments as Au,segmentsFor as fu,overlay as Iu,catchUpPlan as Ou}from"./journal.js";import{OMNI_MODES as Nu,OMNI_GRAMMAR as gu,parseOmni as Cu,extractFilters as Mu,resolveSince as Pu,wantsModel as Lu,isActionable as xu}from"./omni.js";import{THEMES as Fu,LIGHT as Du,DARK as ku,PALETTES as yu,SHAPE as Uu,TOKEN_NAMES as bu,TOKEN_ROLES as vu,paletteFor as Bu,cssVarName as wu,toCssVars as Gu,themeStylesheet as Ku,resolveTheme as Hu}from"./theme.js";import{PLANS as Wu,API_BASE as Xu,ENDPOINTS as Yu,ENTITLEMENT_PUBLIC_JWK as zu,UPGRADE_URL as Ju,FEATURE_TIER as ju,PRO_FEATURES as Qu,TEAM_FEATURES as qu,FREE_LIMITS as Zu,COUNTED as $u,freeCap as eN,observeSince as rN,RECHECK_INTERVAL_MS as oN,EntitlementError as tN,checkoutUrl as aN,planOf as iN,planLabel as sN,isPro as nN,isTeam as SN,can as lN,tierFor as EN,withinFreeLimit as mN,verifyEntitlement as cN,verifySignedToken as pN,licenseFromPayload as TN,needsRecheck as _N}from"./entitlement.js";import{generateDeviceKey as RN,exportDevicePublicKey as AN,signChallenge as fN}from"./device-proof.js";import{renderMarkdown as ON,defaultLinkPolicy as uN,defaultImagePolicy as NN}from"./markdown-render.js";import{NOTE_IMAGE_SCHEME as CN,MAX_NOTE_IMAGE_BYTES as MN,NOTE_IMAGE_TYPES as PN,noteImageId as LN,noteImageRef as xN,noteImageIds as hN,noteImageRefs as FN,stripNoteImageRefs as DN,orphanNoteImages as kN,newNoteImageId as yN}from"./note-images.js";import{parseMeetingText as bN,speakerStats as vN,densityRibbon as BN}from"./meeting-text.js";import{speakerBreakdown as GN,speakerTimeline as KN,formatTalkTime as HN,SPEAKER_SLOTS as VN}from"./meeting-shape.js";import{isSpeakerImageValue as XN,speakerLabeller as YN}from"./meeting-shape.js";import{SORT_MODES as JN,SORT_LABELS as jN,sortStamp as QN,sortRecords as qN,filterRecords as ZN,dayBucket as $N,rowTime as eg,groupRecords as rg}from"./record-list.js";import{INSIGHT_KINDS as tg,summarySections as ag,insightKindOf as ig,meetingInsights as sg,hasInsights as ng}from"./meeting-insights.js";import{demd as lg,NOTE_SECTIONS as Eg,noteSectionKind as mg,MOMENT_BADGES as cg,momentBadge as pg,parseMeetingNotes as Tg,groupActionsByOwner as _g}from"./meeting-insights.js";import{PREF_SECTIONS as Rg,PREF_SECTION_IDS as Ag,DESKTOP_SECTION_IDS as fg,sectionSpec as Ig,sectionValue as Og,pickSections as ug,applySections as Ng,sectionHash as gg,mergeStamped as Cg,changedSections as Mg}from"./client-prefs.js";import{SETTINGS_GROUPS as Lg,SETTINGS_PAGES as xg,REQUIREMENTS as hg,BOOKKEEPING_KEYS as Fg,listRows as Dg,findRow as kg,pageById as yg,groupById as Ug,pagesOf as bg,quickRows as vg,breadcrumb as Bg,linkTo as wg,linkToRow as Gg,parseLink as Kg,valueOf as Hg,setValue as Vg,effectiveValue as Wg,describeValue as Xg,SETTINGS_OPEN_DEFAULT as Yg,settingsOpenMode as zg,searchSettings as Jg,statusOf as jg,statusAll as Qg,homeChecklist as qg,gateOf as Zg,sectionOfRow as $g}from"./settings-registry.js";import{pointsAtGateway as rC,destinationFromEndpoint as oC,destinationFromAgent as tC,availableDestinations as aC,seedDestinations as iC,shouldSeedDestinations as sC,mergeEndpointDestinations as nC}from"./gateway-dests.js";import{McpClient as lC,mcpProvider as EC}from"./mcp-client.js";import{mcpSharedSystem as cC,mcpInventorySystem as pC,sourceCitationSystem as TC,combineSystemPrompt as _C,toolStatus as dC,widgetAuthoringSystem as RC,vaultWidgetSystem as AC,wantsVaultGuidance as fC}from"./tool-hints.js";import{adaptiveToolRetryHint as OC,createAdaptiveToolPolicy as uC,isInvalidToolParametersResult as NC}from"./adaptive-tool-policy.js";import{getMcpProviders as CC,testMcpServer as MC,resetMcp as PC,mcpBackoff as LC}from"./mcp-manager.js";import{SIDELINE_COMMANDS as hC,BRINGBACK_COMMAND as FC,THREAD_TOOL_NAME as DC,SIDELINE_SLASH_ITEMS as kC,THREAD_TOOL_SPEC as yC,parseSideline as UC,parseBringBack as bC,resolveSidelineTarget as vC,threadManifest as BC,threadToolProvider as wC,readThread as GC,briefPrompt as KC,foldBackNote as HC,foldNotes as VC,nextSidelineIndex as WC,sourceOf as XC,noteUnits as YC,sidelinePath as zC,foldBackFor as JC,SIDELINE_TOOL_NAME as jC,SIDELINE_TOOL_SPEC as QC,sidelineToolProvider as qC}from"./sideline.js";import{WEATHER_TOOL_NAME as $C,WEATHER_TOOL_SYSTEM as eM,weatherToolProvider as rM,weatherFromSearch as oM}from"./weather-tool.js";import{DECIDE_TOOL_NAME as aM,RERANK_TOOL_NAME as iM,CAPABILITY_TOOLS_SYSTEM as sM,capabilityToolsProvider as nM}from"./capability-tools.js";import{openDecision as lM,distributionConfidence as EM}from"./open-decision.js";import{IN_PROCESS_IDS as cM,inProcessView as pM,capabilityView as TM,choicePatch as _M,choiceNote as dM,inProcessPatch as RM}from"./runtime-in-process.js";import{renderContent as fM,toChatMessages as IM,toMultimodalMessages as OM,imageAttachmentsOf as uM,deferAttachedSources as NM,withSourceTool as gM,SOURCE_TOOL_SPEC as CM}from"./context-attachments.js";import{prefetchPlan as PM,prefetchAttachment as LM,runResearchItem as xM,weatherPlace as hM,weatherFollowupPlace as FM,newsAsk as DM,pageAsk as kM,answeredByPrefetch as yM,webRedoAsk as UM,aboutOwnPast as bM,offeredSearch as vM}from"./prefetch.js";import{createFetchedStore as wM,withFetchedMemo as GM,fetchKey as KM,fetchTitle as HM,fetchedAsSources as VM,fetchedFacts as WM,defaultTtl as XM,exchangeOf as YM,FETCHED_TTL_MS as zM}from"./fetched.js";import{windowOf as jM,fitFor as QM,keepRecentFor as qM,minWindowFor as ZM,isContextLimitError as $M,FIT_HEADROOM as eP,SMALL_WINDOW as rP,isSmallWindow as oP,SMALL_WINDOW_ROUNDS as tP}from"./context-window.js";import{planCompaction as iP,compactionPrompt as sP,compactionRecord as nP,messagesAfter as SP,systemWithSummary as lP,compactable as EP,COMPACTION_SYSTEM as mP}from"./compaction.js";import{selectContext as pP}from"./context-select.js";import{withoutOwnInstructions as _P}from"./own-instructions.js";import{digest as RP,needsWhole as AP}from"./digest.js";import{planRetrieval as IP,toolsWanted as OP,worldAnswered as uP,toolPlan as NP,contextPlan as gP,placeItems as CP,planTurn as MP}from"./retrieval-plan.js";import{intentNeeds as LP,intentSchema as xP,intentPrompt as hP,intentFromReply as FP,intentItems as DP,wantsIntent as kP,decideIntent as yP}from"./turn-intent.js";import{asksIdentity as bP,identitySystem as vP,identityHint as BP}from"./identity.js";import{splitBlocks as GP,mergeNote as KP,syncNote as HP,conflictsIn as VP,resolveConflict as WP}from"./note-merge.js";import{STITCH_LIMITS as YP,CUT_FINISH as zP,partChars as JP,splitForWindow as jP,partPrompt as QP,mapParts as qP,reduceNotes as ZP,fitAttachments as $P,isNone as eL,continuationMessages as rL,trimOverlap as oL,withStitching as tL,CONTINUE_TEXT as aL}from"./stitch.js";import{presenceFor as sL,presenceDelta as nL,reachOf as SL,withPresence as lL,presenceBlock as EL,roundCount as mL,roundMinutes as cL,PRESENCE_BUDGET_TOKENS as pL,PRESENCE_KINDS as TL}from"./presence.js";import{PolicyError as dL,POLICY_VERSION as RL,POLICY_TOKEN_TYPE as AL,REDACTION_TIERS as fL,LOCKABLE as IL,FEATURES as OL,PERMISSION_MODES as uL,PRODUCT_HOSTS as NL,normalizeOrgPolicy as gL,endpointAllowed as CL,modelAllowed as ML,agentAllowed as PL,permissionMode as LL,routeAllowed as xL,redactionTier as hL,egressAllowed as FL,settingLocked as DL,featureEnabled as kL,applyPolicyToSettings as yL,policyLabel as UL,policyHash as bL,verifyPolicyToken as vL,globToRegExp as BL}from"./policy.js";import{languageInstruction as GL,RESPONSE_LANGUAGES as KL}from"./response-language.js";import{NOTE_TOOL_SPECS as VL,makeNoteToolExecutor as WL}from"./note-tool.js";import{memoryToolProvider as YL}from"./memory-tool.js";import{captureFromMessage as JL}from"./memory-capture.js";import{skillRunFromSkill as QL,skillPackageFiles as qL,filterMcpServersForSkill as ZL,skillToolSystem as $L,skillHandle as ex,rankSkills as rx,skillCatalogSystem as ox}from"./skill-runtime.js";import{skillFileProvider as ax,SKILL_FILE_TOOL as ix,skillEntry as sx,skillDiscoveryProvider as nx}from"./skill-files.js";import{SKILL_DRAFT_SCHEMA as lx,MAX_SKILL_FILE_BYTES as Ex,MAX_SKILL_PACKAGE_BYTES as mx,skillCreatorPrompt as cx,skillIdFrom as px,admitPackage as Tx,skillFromDraft as _x,packagesFromFiles as dx}from"./skill-creator.js";import{PATH_KIND as Ax,FILES_TOOL as fx,checkAttachablePath as Ix,secretReason as Ox,isSecretPath as ux,pathAttachment as Nx,describeAttachedPath as gx,describePathSize as Cx,displayPath as Mx,pathAttachmentsOf as Px,withAbsolutePaths as Lx,attachedFilesProvider as xx,sniffType as hx,normalizePath as Fx,collapseDots as Dx,basenameOf as kx,SKIP_DIR_NAMES as yx}from"./attached-paths.js";import{EXTRACT_ROUTE as bx,EXTRACT_PROVIDER_ID as vx,MAX_DOCUMENT_BYTES as Bx,PAGE_CHARS as wx,EXTRACT_TYPES as Gx,validateExtractRequest as Kx,validateExtractResponse as Hx,paginateText as Vx,gatewayExtractor as Wx,extractorChain as Xx}from"./extract-capability.js";import{MCP_REGISTRY_API as zx,MCP_CATALOG as Jx,registryListUrl as jx,fetchMcpRegistryPage as Qx,normalizeRegistryPage as qx,normalizeRegistryEntry as Zx,mcpServerFromCatalogItem as $x}from"./mcp-registry.js";import{CE_SPECVERSION as rh,CE_TYPE_PREFIX as oh,CE_SOURCE_PREFIX as th,rfc3339 as ah,ceSourceOf as ih,ceHostOf as sh,toCloudEvent as nh,fromCloudEvent as Sh,toCloudEventLines as lh,fromCloudEventLines as Eh,toCloudEventBatch as mh}from"./cloudevents.js";import{PUSH_LIMITS as ph,planEventPush as Th,ingestCloudEvents as _h,cursorOf as dh}from"./event-sync.js";import{eventStats as Ah,projectYear as fh}from"./event-stats.js";import{SEALED_TYPE as Oh,SEALED_VERSION as uh,SealError as Nh,webCryptoSealer as gh,nodeSealer as Ch,newDeviceKey as Mh,sealBlob as Ph,openBlob as Lh,shredBlob as xh,isSealedBlob as hh,isShredded as Fh}from"./blob-envelope.js";import{USAGE_RING_MAX as kh,COST_BASES as yh,usageRecord as Uh,usageFromEvent as bh,usageFromOpenAi as vh,rollupKey as Bh,applyUsage as wh,summarizeUsage as Gh,formatTurnUsage as Kh,describeTurnUsage as Hh,promptTokensOf as Vh}from"./usage.js";import{rateFor as Xh,costFor as Yh,formatUsd as zh,PRICING_BASES as Jh,PRICING_LABELS as jh,normalizePricing as Qh,priceUsage as qh}from"./usage-pricing.js";import{FACTCHECK_SCHEMA as $h,FACTCHECK_VERDICTS as eF,lastClaimOf as rF,factcheckPrompt as oF,factcheckVerdict as tF,factcheckKey as aF}from"./cowriter-factcheck.js";import{createVoiceLoop as sF,VOICE_STATES as nF,MUTE_GRACE_MS as SF,MAX_PENDING_CHARS as lF,CONTINUATION_WINDOW_MS as EF,ECHO_OVERLAP as mF,ECHO_TAIL_MS as cF,MIN_BARGE_IN_WORDS as pF,looksLikeEcho as TF}from"./voice-loop.js";import{voiceStep as dF,initialVoiceState as RF,voiceSpeaker as AF,isFarewell as fF,ANOTHER_VOICE as IF}from"./voice-brain.js";import{speakStream as uF,speakable as NF,SPOKEN_REPLY_HINT as gF}from"./speak-stream.js";import{createVad as MF,lowBandEnergy as PF,pcmEnergy as LF,VAD_DEFAULTS as xF}from"./voice-vad.js";import{HF_API as FF,TTS_ARCH_LABEL as DF,ttsArchOf as kF,partitionTtsModels as yF,modelSearchUrl as UF,searchModels as bF,normalizeModel as vF,formatDownloads as BF,describeSearchResult as wF}from"./model-registry.js";import{SAMPLE_RATE as KF,MIN_SECONDS as HF,TARGET_SECONDS as VF,MAX_SECONDS as WF,PROMPT_TEXT as XF,sampleSeconds as YF,sampleTooShort as zF,defaultVoiceName as JF,microphoneError as jF,webMedia as QF,startRecording as qF}from"./voice-sample.js";import{TIER_LABEL as $F,modelRows as eD,catalogStatus as rD,dtypePicker as oD,voicePicker as tD,voiceListRows as aD,diarizeRows as iD,switchOutcome as sD,saveVoiceFailure as nD,saveTimedOut as SD,catalogUnavailable as lD}from"./voice-models.js";import{dictToText as mD,textToDict as cD}from"./redaction-dictionary.js";import{groupRuns as TD,summarizeRun as _D,findRepeats as dD,withCost as RD,verdict as AD,toSanitizedReport as fD}from"./run-details.js";import{parseMcpConfig as OD,parseArgsInput as uD,argsToText as ND,parseEnvInput as gD,envToText as CD,envLikeArgs as MD}from"./mcp-config-import.js";import{mutableRef as LD,refreshArgs as xD,canRefresh as hD,describeRuntime as FD}from"./mcp-launcher.js";import{defaultMcpServers as kD,isDefaultMcpServer as yD}from"./default-mcp-servers.js";import{MONITOR_SOURCES as bD,DEFAULT_MONITOR_PROFILE as vD,monitorProfile as BD,monitorWindowMs as wD,monitorNeedsTools as GD,filterMonitorTools as KD,recentFindings as HD,describeMonitorProfile as VD}from"./monitor-profile.js";import{NOTHING_NEW as XD,isNothingNew as YD,accumulates as zD,priorFindingsText as JD,deltaInstruction as jD,monitorPrompt as QD,applyMonitorReply as qD}from"./monitor-turn.js";import{defaultSkills as $D,meetingNotesSkill as ek}from"./default-skills.js";import{SURFACES as ok,FEATURES as tk,listFeatures as ak,featureIds as ik}from"./feature-map.js";import{ISSUE_REPO as nk,NEW_ISSUE_BASE as Sk,ISSUE_SEARCH_API as lk,MAX_ISSUE_URL as Ek,scrubReportText as mk,diagnosticsText as ck,buildBugReport as pk,newIssueUrl as Tk,titleTerms as _k,issueSearchUrl as dk,matchIssues as Rk,findExistingIssues as Ak,issueCommentText as fk}from"./bug-report.js";import{WEB_RESEARCH_LIMITS as Ok,WEB_TASK_DOMAINS as uk,researchAsk as Nk,refineQueries as gk,parseSearchText as Ck,cleanUrl as Mk,pageKey as Pk,passagesOf as Lk,webResearch as xk,researchBrief as hk,researchCall as Fk,runResearch as Dk}from"./web-research.js";import{parseAmount as yk,moneyIn as Uk,basisAt as bk,qualifierAt as vk,quoteAround as Bk,offersIn as wk,rankOffers as Gk,comparable as Kk,basisLabel as Hk,formatValue as Vk,unverifiedAmounts as Wk,quoteFormIn as Xk}from"./offers.js";import{isSecretField as zk,maskSecretFields as Jk,isPersonalField as jk,commitKind as Qk,commitQuestion as qk,captchaIn as Zk,captchaHandoff as $k,fenceUntrusted as ey,isFenced as ry}from"./page-guard.js";import{BROWSER_RELAY as ty,BROWSER_KINDS as ay,validateBrowserCall as iy,validateBrowserAnnounce as sy,validateBrowserResult as ny,createBrowserRelay as Sy,browserRelaySystem as ly}from"./browser-relay.js";export{Ta as ACCESS_LOG_MAX,pa as ACCESS_LOG_VERSION,i as ACTOR_KINDS,vT as AGENT_ID_RE,pc as AGENT_REF_RE,PR as ALLOW_ALL,a as ALL_TYPES,JR as AMBIENT_KINDS,uA as AMBIENT_MAX_WORDS,IF as ANOTHER_VOICE,Xu as API_BASE,BT as APPLIES_TO,Bc as ASK_TYPES,GT as ASSISTANT_ID,Gs as ASSISTANT_NAME,Df as AUTOCOMPLETE_MAX_TOKENS,Ff as AUTOCOMPLETE_SYSTEM,kf as AUTOCOMPLETE_TEMPERATURE,Vp as AUTONOMY,Ma as AdapterError,KT as AgentError,vs as AnalyzerError,MO as BACKUP_KDF_ITERATIONS,zc as BOARD_TOOL_NAME,Fg as BOOKKEEPING_KEYS,zo as BRIEF_STATES,FC as BRINGBACK_COMMAND,ay as BROWSER_KINDS,ty as BROWSER_RELAY,qm as BUDGET_DIMENSIONS,Wf as BUG_REPORT_SLASH_ITEMS,As as BUILTIN_TRIGGERS,sn as BUILTIN_VOICE_INTENTS,CO as BackupError,Qm as BudgetError,bs as CADENCES,sM as CAPABILITY_TOOLS_SYSTEM,th as CE_SOURCE_PREFIX,rh as CE_SPECVERSION,oh as CE_TYPE_PREFIX,Xp as CHECKS,Jo as CLAIM_KINDS,n as CLASSES,TO as CLOCK_TOLERANCE_MS,mP as COMPACTION_SYSTEM,gO as COMPRESSIONS,Lm as COMPRESSION_MODES,EF as CONTINUATION_WINDOW_MS,aL as CONTINUE_TEXT,dl as COOLDOWN_MS,yh as COST_BASES,$u as COUNTED,we as COWRITER_SYSTEM,Ge as COWRITER_TEMPERATURE,o as CURRENT_VERSION,zP as CUT_FINISH,ku as DARK,VR as DATA_SCOPES,Hs as DAYPART_HOUR,aM as DECIDE_TOOL_NAME,a_ as DECLINE_REASONS,Jc as DEFAULT_ASK_TIMEOUT_MS,ZR as DEFAULT_BLOCK_CHARS,xm as DEFAULT_COMPRESSION,Hp as DEFAULT_GATE,xi as DEFAULT_INTERNAL_PATTERNS,Gi as DEFAULT_LOCK_MS,Kl as DEFAULT_MAX_FINISH_TRIES,qR as DEFAULT_MAX_MEMORIES,Gl as DEFAULT_MAX_ROUNDS,x_ as DEFAULT_MIN_CALLS,vD as DEFAULT_MONITOR_PROFILE,WO as DEFAULT_POLICY,rE as DEFAULT_SHIELD,oE as DEFAULT_STORE,xo as DEFAULT_THRESHOLD,ws as DEFAULT_WAKE,am as DESCRIBE_ACTION,fg as DESKTOP_SECTION_IDS,mF as ECHO_OVERLAP,cF as ECHO_TAIL_MS,S as EFFECTS,l as EGRESS,wT as EGRESS_CLASSES,NO as ENCRYPTED_TYPE,Yu as ENDPOINTS,vr as ENGINE_KINDS,PT as ENGINE_SPEC_KINDS,wn as ENTITIES_SCHEMA,zu as ENTITLEMENT_PUBLIC_JWK,Bn as ENTITY_TYPES,Ga as ENTRY_KINDS,ru as ENTRY_VERSION,t as EVENT_TYPES,iT as EXECUTIVE,Wl as EXHAUSTED_NOTE,vx as EXTRACT_PROVIDER_ID,bx as EXTRACT_ROUTE,Gx as EXTRACT_TYPES,tN as EntitlementError,E as EventError,$h as FACTCHECK_SCHEMA,eF as FACTCHECK_VERDICTS,pi as FAILOVER_CAPABILITY_GAP,ci as FAILOVER_CLASS_GAP,ul as FAILOVER_MAX_ATTEMPTS,qO as FAST_FLUSH_MS,ZO as FAST_STREAK,OL as FEATURES,tk as FEATURE_MAP,ok as FEATURE_SURFACES,ju as FEATURE_TIER,zM as FETCHED_TTL_MS,$n as FIELD_TYPES,fx as FILES_TOOL,Dc as FINDINGS_SCHEMA,kc as FINDING_KINDS,PE as FIND_ACTION,Tm as FIND_DESCRIPTION,_m as FIND_RESIDENT,pm as FIND_TOOL_NAME,Hl as FINISH_NUDGES,eP as FIT_HEADROOM,Zu as FREE_LIMITS,DA as FRONT_PAGES,yE as FUSED_BUDGET_MS,kE as FUSED_CANDIDATES,Uf as GEARS,gf as GOAL_MIN_NEW,Ec as GRANTABLE,iR as GRANT_INFO,cc as GRANT_RE,FF as HF_API,BE as HUB_TOOL_NAME,Wp as HUMAN_FLAGS,cl as INPUT_PROGRESS_TOOLS,tg as INSIGHT_KINDS,uf as INSTRUCTION_RE,hi as INTERNAL_PATTERN_CATALOG,Cr as INVARIANTS,cM as IN_PROCESS_IDS,nk as ISSUE_REPO,lk as ISSUE_SEARCH_API,Ss as JOB_ACTIONS,bp as JOB_POST_ID_RE,Up as JOB_POST_STATUSES,Su as JOURNAL_BOUNDS,yp as JobPostError,eu as JournalError,wi as KDF_HASH,Bi as KDF_ITERATIONS,CR as KernelError,t_ as LEDGER_ENTRY_KINDS,o_ as LEDGER_VERSION,Du as LIGHT,ap as LIVE_RUN_STATUSES,IL as LOCKABLE,Vl as LOOPING_NUDGE,qa as LOOP_KINDS,ZI as LibraryError,Za as LoopError,Zo as MAX_BRIEF_CHARS,qo as MAX_BRIEF_RECORDS,jo as MAX_CLAIMS,Qo as MAX_CLAIM_REFS,Ks as MAX_COMMANDS_PER_DELTA,Fd as MAX_DEPTH,Bx as MAX_DOCUMENT_BYTES,Xi as MAX_ENTRIES,_t as MAX_EXCERPTS,dt as MAX_EXCERPT_CHARS,Le as MAX_GRAPH_NODES,Ek as MAX_ISSUE_URL,sT as MAX_JOBS_PER_ROUND,KR as MAX_MATCHES,jR as MAX_MEMORY_CHARS,Vi as MAX_NOTE_CHARS,MN as MAX_NOTE_IMAGE_BYTES,lF as MAX_PENDING_CHARS,nT as MAX_ROUNDS,WF as MAX_SECONDS,Wi as MAX_SECRET_CHARS,Ex as MAX_SKILL_FILE_BYTES,mx as MAX_SKILL_PACKAGE_BYTES,ho as MAX_SUBJECTS,Fo as MAX_SUBJECT_CHARS,hd as MAX_SUBTASKS,Xn as MAX_SUGGESTIONS,Yn as MAX_SUGGESTION_CHARS,Tt as MAX_SYNTHESIS_CLAIMS,dI as MAX_TAGS,_I as MAX_TAG_LENGTH,Hi as MAX_TITLE_CHARS,qI as MAX_TITLE_LEN,UI as MAX_TITLE_LENGTH,Ln as MAX_TOPICS,xn as MAX_TOPIC_CHARS,Jx as MCP_CATALOG,zx as MCP_REGISTRY_API,PS as MCP_SIGN_IN_CODE,RR as MCP_TOOL_NAME,YR as MEMORY_KINDS,zR as MEMORY_KIND_NAMES,eA as MEMORY_TOOL_SPEC,rA as MEMORY_UPCASTERS,XR as MEMORY_VERSION,Sc as MERGE_POLICIES,pF as MIN_BARGE_IN_WORDS,c_ as MIN_FIT,QR as MIN_MEMORY_CHARS,HF as MIN_SECONDS,Dd as MIN_TAKEUP_FIT,ls as MISSED_POLICIES,cg as MOMENT_BADGES,bD as MONITOR_SOURCES,SF as MUTE_GRACE_MS,IR as ManifestError,lC as McpClient,oA as MemoryError,Kt as NEAR_TITLE_DISTANCE,Sk as NEW_ISSUE_BASE,Hf as NEW_THREAD_SLASH_ITEMS,K as NOTE_ACTIONS,W as NOTE_ACTION_ERRORS,H as NOTE_ACTION_ORDER,V as NOTE_ACTION_TEMPERATURE,X as NOTE_COMMANDS,z as NOTE_COMMAND_MAX_TOKENS,Y as NOTE_COMMAND_TEMPERATURE,CN as NOTE_IMAGE_SCHEME,PN as NOTE_IMAGE_TYPES,Eg as NOTE_SECTIONS,VL as NOTE_TOOL_SPECS,XD as NOTHING_NEW,ml as OBSERVATION_TOOLS,gu as OMNI_GRAMMAR,Nu as OMNI_MODES,wx as PAGE_CHARS,yu as PALETTES,el as PARALLEL_LOCAL_RE,Ax as PATH_KIND,Wt as PDF_MAX_CHARS,iE as PERMISSION_ANSWERS,aE as PERMISSION_EVENT,uL as PERMISSION_MODES,sE as PERMISSION_TIMEOUT_MS,nE as PERMISSION_TOOL_NAME,Wu as PLANS,qe as PLAN_AUTHORS,$e as PLAN_DECOMPOSE_MAX_TOKENS,Ze as PLAN_DECOMPOSE_SYSTEM,er as PLAN_DECOMPOSE_TEMPERATURE,lc as PLAN_MODES,Qe as PLAN_ROLES,rr as PLAN_SECTION_MAX_TOKENS,or as PLAN_SECTION_TEMPERATURE,AL as POLICY_TOKEN_TYPE,RL as POLICY_VERSION,bc as POST_KINDS,vc as POST_STATUSES,Rg as PREF_SECTIONS,Ag as PREF_SECTION_IDS,pL as PRESENCE_BUDGET_TOKENS,TL as PRESENCE_KINDS,Jh as PRICING_BASES,jh as PRICING_LABELS,NL as PRODUCT_HOSTS,Np as PROJECT_ID_RE,oT as PROJECT_JOBS_SCHEMA,tT as PROJECT_REVIEW_SCHEMA,ST as PROJECT_RUN_STATUSES,up as PROJECT_STATUSES,XF as PROMPT_TEXT,At as PROPOSAL_STATES,Qu as PRO_FEATURES,ph as PUSH_LIMITS,dL as PolicyError,Op as ProjectError,aT as ProjectRunError,Er as REACH,oN as RECHECK_INTERVAL_MS,wm as RECIPE_MODES,Wm as RECIPE_TOOL_NAME,CT as RECORD_ENGINE_KINDS,QI as RECORD_KINDS,hO as RECORD_TYPE,m_ as RECRUIT_SCHEMA,fL as REDACTION_TIERS,Go as REDACTION_TOKEN_TYPES,cn as REFINEMENT_SCHEMA,_ as REF_KINDS,Dr as REGISTRY_STATES,MR as REQUIRED_PLUGINS,hg as REQUIREMENTS,iM as RERANK_TOOL_NAME,d as RESOLUTION,KL as RESPONSE_LANGUAGES,eS as RESPONSE_MODES,Ie as RESULTS_PER_ENGINE,eE as RESULT_TOOL_NAME,ip as RESUMABLE_RUN_STATUSES,ka as RETRIEVAL_TOOLS,ZE as REVEAL,NT as ROLE_KINDS,nc as ROLE_MODES,SR as ROSTER_KINDS,Xl as ROUND_SEPARATOR,LT as ROUTE_PREFERS,sd as RUN_STATUSES,Bm as RecipeError,_i as RouterError,Ui as RuleError,$R as SAME_FACT,KF as SAMPLE_RATE,ss as SCHEDULE_KINDS,k_ as SCM_KINDS,s as SCOPE_KINDS,uT as SCORECARD_ENTRY_KINDS,gT as SCORECARD_VERSION,Oh as SEALED_TYPE,uh as SEALED_VERSION,fe as SEARCH_ENGINES,Ru as SEGMENT_RE,Ho as SELF_LABELS,Lg as SETTINGS_GROUPS,Yg as SETTINGS_OPEN_DEFAULT,xg as SETTINGS_PAGES,Uu as SHAPE,hC as SIDELINE_COMMANDS,kC as SIDELINE_SLASH_ITEMS,jC as SIDELINE_TOOL_NAME,QC as SIDELINE_TOOL_SPEC,GA as SKILL_CONTEXTS,lx as SKILL_DRAFT_SCHEMA,WA as SKILL_FILE_KINDS,ix as SKILL_FILE_TOOL,KA as SKILL_HISTORY_SCOPES,wA as SKILL_MANIFEST_VERSION,HA as SKILL_MCP_MODES,VA as SKILL_TRUST,XA as SKILL_UPCASTERS,Sf as SKILL_VARS,lf as SKILL_VAR_NAMES,yx as SKIP_DIR_NAMES,Kf as SLASH_TYPING_RE,QO as SLOW_FLUSH_MS,XO as SLOW_POLICY,rP as SMALL_WINDOW,tP as SMALL_WINDOW_ROUNDS,sR as SOLO_BUDGET,jN as SORT_LABELS,JN as SORT_MODES,OR as SOURCES,CM as SOURCE_TOOL_SPEC,yA as SOURCE_TRUST,Ht as SPAN_MIN_TERMS,VN as SPEAKER_SLOTS,gF as SPOKEN_REPLY_HINT,Ep as STALLED_AFTER_MS,QT as STARTER_AGENTS,Tc as STARTER_TEAMS,Z_ as STEP_MAX_CHARS,YP as STITCH_LIMITS,Lo as SUBJECT_KINDS,zn as SUGGESTIONS_SCHEMA,ft as SUPERSEDE_OVERLAP,yi as SUPPRESSED,ce as SWARM_ROLES,mt as SYNTHESIS_SCHEMA,Es as ScheduleError,Nh as SealError,Br as SearchEngineError,YA as SkillManifestError,UA as SkillSourceError,Af as SkillVarError,rS as StructuredError,_O as SyncError,VF as TARGET_SECONDS,$_ as TASK_TRANSCRIPT_MAX_CHARS,qu as TEAM_FEATURES,pd as TEAM_MANUAL,Cc as TEAM_PLAN_SCHEMA,nR as TEAM_SHAPES,cd as TEAM_TOOL_NAME,Fu as THEMES,yc as THREAD_KINDS,Uc as THREAD_STATUSES,DC as THREAD_TOOL_NAME,yC as THREAD_TOOL_SPEC,$F as TIER_LABEL,bI as TITLE_RULES_VERSION,bu as TOKEN_NAMES,vu as TOKEN_ROLES,WS as TOKEN_SKEW_MS,hn as TOPICS_SCHEMA,$t as TRANSCRIPT_MAX_CHARS,ns as TRIGGER_KINDS,DF as TTS_ARCH_LABEL,sc as TeamError,id as TeamRunError,Zr as ToolGroupError,Rl as UNAVAILABLE_REASONS,yI as UNTITLED_MEETING,Tr as UPCASTERS,Ju as UPGRADE_URL,kh as USAGE_RING_MAX,Mn as UTTERANCE_DANGLING_MS,Cn as UTTERANCE_SETTLE_MS,xF as VAD_DEFAULTS,vi as VAULT_VERSION,nF as VOICE_STATES,Ki as VaultError,Vs as VoiceIntentError,Yr as WEATHER_HOST,zr as WEATHER_TIMEOUT_MS,$C as WEATHER_TOOL_NAME,eM as WEATHER_TOOL_SYSTEM,Ok as WEB_RESEARCH_LIMITS,Im as WEB_SEARCH_SPEC,Am as WEB_SEARCH_TOOL_NAME,fm as WEB_SEARCH_TOOL_SYSTEM,uk as WEB_TASK_DOMAINS,uo as WIDGET_SURFACES,i_ as WITHDRAW_AFTER,fd as WORKLOG_KINDS,mc as WORK_GRANTS,bf as WRITER_PREFS,vf as WRITER_PREF_DEFAULTS,Jr as WeatherError,Zt as YOUTUBE_HOSTS,$a as abortCause,bM as aboutOwnPast,Ot as accept,zD as accumulates,im as actionMenu,JO as adaptProfile,OC as adaptiveToolRetryHint,II as addTag,bl as addUsage,AT as adjustSummary,Tx as admitPackage,OO as advanceBases,PL as agentAllowed,zd as agentColor,$T as agentFromForm,Yd as agentHue,Jd as agentInitials,Xd as agentKind,oe as agentMentionAt,bo as aliasMap,yM as answeredByPrefetch,wl as anthropicTranscript,xp as applyAll,F_ as applyCard,Be as applyEdits,Eu as applyEntry,qD as applyMonitorReply,yL as applyPolicyToSettings,Ng as applySections,wh as applyUsage,de as appoint,Wr as areaLabel,ja as argsShape,ND as argsToText,bP as asksIdentity,PA as asksOnlyAboutPage,XT as assistantAgent,xx as attachedFilesProvider,br as attemptOrder,TT as attest,GS as authHeader,bS as authorizeUrl,aC as availableDestinations,HO as backupFromRecords,zS as bareToolName,kx as basenameOf,bk as basisAt,Hk as basisLabel,wO as bestCodec,ZT as blankAgent,H_ as blankConnection,Dp as blankJobPost,dp as blankProject,dc as blankTeam,El as blockedToolResult,xc as boardText,Vc as boardToolProvider,Wc as boardToolSpec,Au as boundSegments,B_ as branchFor,Bg as breadcrumb,gc as breakCycles,et as briefId,tt as briefLinks,KC as briefPrompt,ot as briefTerms,rt as briefToText,ly as browserRelaySystem,pk as buildBugReport,sm as buildGroupDispatchSpec,xe as buildNoteGraph,Qt as buildPdfDocument,Oe as buildSearchUrl,om as buildToolset,Ua as buildTrajectory,Ea as buildTranscriptDocument,eR as builtinOrg,lN as can,os as canAddEntry,Lp as canJobPostTransition,_p as canProjectTransition,hD as canRefresh,JS as canRunConcurrently,Ir as canSatisfy,lA as candidatesFrom,ET as canonical,FS as canonicalResource,nM as capabilityToolsProvider,TM as capabilityView,$k as captchaHandoff,Zk as captchaIn,oa as captionTracksFromPlayerResponse,JL as captureFromMessage,Qd as cardNumbers,h_ as cardOverride,C_ as carveBudget,rD as catalogStatus,lD as catalogUnavailable,Ou as catchUpPlan,N as causesAreWellFormed,sh as ceHostOf,ih as ceSourceOf,Mg as changedSections,Ix as checkAttachablePath,gr as checkInvariants,at as checkKnowledgeInvariants,aN as checkoutUrl,op as checkpointFrom,w as chipText,dM as choiceNote,_M as choicePatch,pt as claimsFromSynthesis,Tl as classifyFailure,Te as classifyModel,Ni as classifySource,RE as claudePermissionResponse,vI as cleanTitle,Mk as cleanUrl,yf as clipCompletion,J_ as clipMessage,Fs as clipText,z_ as clipTranscript,mS as coerce,Vn as coerceEntities,Dx as collapseDots,_C as combineSystemPrompt,Z as commandLineAt,un as commandLooksFinished,Js as commandsFromSegments,Qk as commitKind,qk as commitQuestion,Zl as compactValue,EP as compactable,sP as compactionPrompt,nP as compactionRecord,Kk as comparable,u as compareEvents,yR as compileQuery,Ws as compileWake,B as composerChips,gm as compressToolSpec,Cm as compressToolSpecs,Mm as compressionStats,v_ as connectionFor,V_ as connectionFromForm,SA as containment,$o as contentHash,gP as contextPlan,rL as continuationMessages,Q_ as continuationNote,sI as continueList,gt as converge,Yh as costFor,Ra as createAccessLog,Ca as createAdapterRegistry,uC as createAdaptiveToolPolicy,Us as createAnalyzerRegistry,Xc as createAnswerBox,p as createAppender,xr as createBlobStore,Pc as createBoard,Sy as createBrowserRelay,Ym as createBudget,Fl as createCallRunner,Da as createCitationCollector,q_ as createControl,wM as createFetchedStore,$O as createJournal,NR as createKernel,Lr as createLogStore,fR as createManifest,Pr as createMemoryAdapter,_l as createModelHealth,ii as createModelRouter,IE as createPermissionDesk,Fr as createRegistry,zl as createResultStore,ki as createRuleEngine,Qc as createRunCache,lu as createSegment,vA as createSkillSourceRegistry,Mf as createSpendMeter,Ja as createStepRecorder,pS as createStructuredStream,qr as createToolGroupRegistry,il as createToolLoopGuard,Rs as createTriggerRegistry,za as createTurnRunner,gn as createUtteranceGate,MF as createVad,Yi as createVault,tn as createVoiceIntentRegistry,sF as createVoiceLoop,G_ as credentialEnv,wu as cssVarName,dh as cursorOf,$N as dayBucket,RO as decide,yP as decideIntent,O_ as decideRecruit,ZA as declaredAccess,LO as decryptBackup,NN as defaultImagePolicy,uN as defaultLinkPolicy,kD as defaultMcpServers,k as defaultModelId,$D as defaultSkills,XM as defaultTtl,an as defaultVoiceIntents,JF as defaultVoiceName,NM as deferAttachedSources,ga as defineAdapter,WT as defineAgent,Ps as defineJob,Pp as defineJobPost,Qa as defineLoop,ys as defineMeetingAnalyzer,ti as defineMiddleware,oi as defineModel,Tp as defineProject,ai as defineRouteStrategy,Di as defineRule,oS as defineSchema,yr as defineSearchEngine,bA as defineSkillSource,$m as defineTeam,Qr as defineToolGroup,ds as defineTrigger,on as defineVoiceIntent,jD as deltaInstruction,lg as demd,BN as densityRibbon,P as dequeue,FO as deriveBackupKey,nt as deriveBrief,St as deriveBriefs,Ji as deriveKey,WI as deriveMeetingTitle,nO as deriveTitle,zT as describeAgent,gx as describeAttachedPath,Ad as describeCall,K_ as describeConnection,yT as describeEngine,VD as describeMonitorProfile,Cx as describePathSize,cE as describePermission,Vm as describeRecipeForApproval,ic as describeRole,FD as describeRuntime,tS as describeSchema,wF as describeSearchResult,Xg as describeSettingValue,ql as describeShape,np as describeSpend,md as describeTeamForApproval,Hd as describeTeamShape,yl as describeToolCall,Hh as describeTurnUsage,tC as destinationFromAgent,oC as destinationFromEndpoint,ck as diagnosticsText,iD as diarizeRows,mD as dictToText,Nt as diffProposal,RP as digest,KS as discoverMcpAuth,wa as displayName,Mx as displayPath,EM as distributionConfidence,cI as docStats,Lf as draftSeparator,lt as driftedRefs,Um as dryRunRecipe,td as dryRunTeam,oD as dtypePicker,Ls as dueJobs,yt as duplicateTitles,Bo as earnsBrief,rn as editDistance,ve as editKey,Gp as effectiveGate,Io as effectiveGrants,Wg as effectiveSettingValue,ZS as effectiveToolName,he as egoGraph,FL as egressAllowed,wc as emptyBoardState,Ap as emptyProjectRecord,$c as emptyRun,zf as enabledSkills,PO as encryptBackup,CL as endpointAllowed,IT as engineKey,kT as engineKeyOf,YT as engineOf,Me as engineOrder,DT as engineRef,p_ as engineRow,T_ as engineRows,TR as engineStrip,R_ as engineWorth,Kn as entitiesFormat,Gn as entitiesPrompt,Wn as entitiesStream,Zi as entryMeta,su as entryStamp,MD as envLikeArgs,CD as envToText,oo as equipmentFor,ei as errorFacts,mm as estimateTokens,f_ as evaluatorPrompt,Ah as eventStats,YM as exchangeOf,Dm as expandRecipe,vR as expandReplacement,df as expandSkillPrompt,_S as explainMcpError,AN as exportDevicePublicKey,Pd as extendDependents,Mu as extractFilters,gi as extractUrls,Xx as extractorChain,aF as factcheckKey,oF as factcheckPrompt,tF as factcheckVerdict,Ol as failoverExhausted,Ei as failoverOrder,kL as featureEnabled,ik as featureIds,ey as fenceUntrusted,KM as fetchKey,Qx as fetchMcpRegistryPage,VS as fetchMcpToken,HM as fetchTitle,VM as fetchedAsSources,WM as fetchedFacts,xI as filterByTags,Ba as filterEntries,ZL as filterMcpServersForSkill,KD as filterMonitorTools,q as filterNoteActions,ZN as filterRecords,D as filterSections,be as filterTypoEdits,gE as findActionArgs,dm as findDispatchProvider,Ak as findExistingIssues,nS as findJson,UR as findMatches,EO as findRecordRefs,dD as findRepeats,kg as findRow,ie as findSkillByName,se as findTargetByName,uE as findTools,NE as findToolsResult,Ys as findWakeCommand,hc as findingsInstruction,Kc as findingsOf,RT as fit,$P as fitAttachments,QM as fitFor,Ic as fixedPlan,JC as foldBackFor,HC as foldBackNote,Gc as foldBoard,VC as foldNotes,fp as foldProject,ep as foldRun,IO as forkConflict,fa as formatBytes,BF as formatDownloads,hR as formatReport,Gt as formatSurvey,gI as formatTag,PI as formatTagQuery,HN as formatTalkTime,Sa as formatTimestamp,la as formatTranscript,Kh as formatTurnUsage,zh as formatUsd,Vk as formatValue,Vr as formatWeather,J as frameNoteAction,eN as freeCap,as as fromB64,Sh as fromCloudEvent,Eh as fromCloudEventLines,FA as frontPageInstruction,hA as frontPagesAskedAbout,go as fuseRRF,hE as fusedRanker,Kp as gateAllows,Wx as gatewayExtractor,RN as generateDeviceKey,CC as getMcpProviders,Gr as getWeather,On as gistOpening,In as gistText,BL as globToRegExp,Cf as goalDraftAllowed,tc as grantAllows,oR as grantChoices,tR as grantsFromChoices,ro as grantsNeededFor,De as graphStats,xf as groundingBlock,_g as groupActionsByOwner,Ug as groupById,F as groupModels,rg as groupRecords,TD as groupRuns,na as groupSegments,ng as hasInsights,so as hasSubstance,fI as hasTag,MI as hasTagTerms,Cd as holdsGrants,qg as homeChecklist,TA as homePlace,Ci as hostMatches,io as housekeepingTarget,vE as hubSpec,bO as identityCodec,BP as identityHint,vP as identitySystem,uM as imageAttachmentsOf,RM as inProcessPatch,pM as inProcessView,nI as indentSelection,_h as ingestCloudEvents,RF as initialVoiceState,ig as insightKindOf,AS as installHintFor,Nf as instructionOnLine,FP as intentFromReply,DP as intentItems,LP as intentNeeds,hP as intentPrompt,xP as intentSchema,xu as isActionable,Xr as isAmbiguousLocation,YI as isBetterTitleSource,rR as isBuiltin,jS as isCacheable,$M as isContextLimitError,yD as isDefaultMcpServer,xO as isEncryptedBackup,iu as isEntry,fF as isFarewell,ry as isFenced,fn as isFillerSentence,BI as isGenericTitle,NC as isInvalidToolParametersResult,no as isLocalHelper,es as isLocked,ll as isLoopableTool,ad as isModelUnavailable,eL as isNoneNote,ES as isNothing,YD as isNothingNew,lE as isPermissionTool,jk as isPersonalField,to as isPleasantry,nN as isPro,M as isQueued,rO as isRecordId,Ko as isRedactionToken,A as isRef,Ne as isResultHost,tp as isResumable,zA as isSafeSkillPath,hh as isSealedBlob,yO as isSealedRecord,zk as isSecretField,ux as isSecretPath,Vo as isSelfLabel,fO as isSettled,Fh as isShredded,Yf as isSkillEnabled,oP as isSmallWindow,Pl as isSourceGateError,XN as isSpeakerImageValue,RS as isStaleMcpSession,Uo as isSubjectCandidate,SN as isTeam,au as isTombstone,c as isValidEvent,aA as isValidMemory,tO as isValidStoredRecord,ra as isYouTubeUrl,fk as issueCommentText,dk as issueSearchUrl,A_ as jobApplications,Md as jobFromSubtask,kp as jobPostFromForm,Qp as jobResults,hp as jobToRole,xs as jobsForEvent,eT as jobsPrompt,qM as keepRecentFor,UO as keyCache,va as lanesOf,GL as languageInstruction,rF as lastClaimOf,KE as lastUserText,Eo as layoutFlowchart,s_ as ledgerKey,TN as licenseFromPayload,If as lineAt,O as linearize,Xt as linesFromItems,MA as linkAttachments,Ct as linkClaims,mO as linkRecordRefs,wg as linkTo,Gg as linkToRow,La as linkifyCitations,gA as linksToRead,pf as lintSkillPrompt,ye as lintText,ak as listFeatures,Dg as listRows,rs as lockedSummary,TF as looksLikeEcho,jt as looksScanned,PF as lowBandEnergy,da as makeAccessEvent,Em as makeDispatchProvider,cT as makeEntry,Sm as makeGroupDispatchExecutor,ou as makeJournalEntry,S_ as makeLedgerEntry,WL as makeNoteToolExecutor,XE as makePromptedTranscript,eO as makeRecordId,R as makeRef,Ri as makeSourceStore,Aa as makeStorageTier,bE as makeToolHub,Ai as manifestText,ym as mapInput,qP as mapParts,RA as markUsed,ha as markdownUrl,Jk as maskSecretFields,mA as matchForForget,bR as matchIndexFor,Rk as matchIssues,Qf as matchSlashRecipe,jf as matchSlashSkill,Zf as matchSlashTeam,Ds as matchSummary,LI as matchesTagFilter,LC as mcpBackoff,dR as mcpDispatchProvider,pC as mcpInventorySystem,EC as mcpProvider,$x as mcpServerFromCatalogItem,cC as mcpSharedSystem,gR as meetDecisions,Mi as meetReach,Os as meetingEndedTrigger,sg as meetingInsights,ek as meetingNotesSkill,Is as meetingStartedTrigger,zI as meetingTitlePrompt,dA as memoryBlock,iA as memoryKey,YL as memoryToolProvider,fA as memoryToolSystem,ne as mentionAnswerPrefix,bt as mentionsFrom,nC as mergeEndpointDestinations,Ce as mergeEngineResults,KP as mergeNote,Je as mergeResearchLanes,Tu as mergeSegments,ae as mergeSkillPrompt,Cg as mergeStamped,Y_ as mergeTranscript,SP as messagesAfter,X_ as messagesFor,jF as microphoneError,ZM as minWindowFor,IS as missingCommandIn,fS as missingCommandMessage,wd as missingStarters,ML as modelAllowed,eD as modelRows,UF as modelSearchUrl,y as modelSummary,pg as momentBadge,Uk as moneyIn,mn as monitorIntent,GD as monitorNeedsTools,BD as monitorProfile,QD as monitorPrompt,wD as monitorWindowMs,L as moveQueued,Mo as multiSearch,LD as mutableRef,__ as needForJob,qA as needsBridge,QS as needsConfirmation,_N as needsRecheck,_A as needsWhere,AP as needsWhole,Mh as newDeviceKey,Tk as newIssueUrl,yN as newNoteImageId,j_ as newSteps,DM as newsAsk,cs as nextFireAt,WC as nextSidelineIndex,Ts as nextWakeAt,BO as nodeCodec,Ch as nodeSealer,Al as normModelName,VT as normalizeAgent,Jm as normalizeBudget,n_ as normalizeCall,U_ as normalizeConnection,fT as normalizeEngine,hT as normalizeEngineSpec,wp as normalizeGate,oc as normalizeGrants,wf as normalizeIntent,Mp as normalizeJobPost,tA as normalizeMemory,vF as normalizeModel,gL as normalizeOrgPolicy,Fx as normalizePath,OS as normalizePlatform,xT as normalizePolicy,Qh as normalizePricing,pp as normalizeProject,Pt as normalizeRecord,Lt as normalizeRecords,Zx as normalizeRegistryEntry,qx as normalizeRegistryPage,Od as normalizeRequest,OT as normalizeScm,sf as normalizeSkill,$s as normalizeSpeech,oO as normalizeStoredRecord,Do as normalizeSubject,RI as normalizeTag,AI as normalizeTags,rc as normalizeTeam,Un as normalizeTopic,bn as normalizeTopics,vl as normalizeUsage,Bf as normalizeWriterPrefs,Q as noteActionItems,j as noteActionLabel,VP as noteConflictsIn,LN as noteImageId,hN as noteImageIds,xN as noteImageRef,FN as noteImageRefs,En as noteIntent,mg as noteSectionKind,YC as noteUnits,ER as observeInbox,rN as observeSince,mR as observeStrip,hs as occurrenceKey,ps as occurrencesBetween,vM as offeredSearch,wk as offersIn,CE as oneLiner,Bl as openAiTranscript,Lh as openBlob,lM as openDecision,Qi as openEntry,kO as openRecord,Yt as orderLines,$A as originLabel,JA as originOf,kN as orphanNoteImages,kt as orphanRecords,aI as outlineOf,ME as overlapRank,Iu as overlayEntries,dS as packageFromArgs,dx as packagesFromFiles,kM as pageAsk,yg as pageById,LA as pageInstruction,Pk as pageKey,Jt as pageTextFromItems,bg as pagesOf,Vx as paginateText,Bu as paletteFor,zt as paragraphsFromLines,$S as parallelEligible,re as parseAgentMention,yk as parseAmount,uD as parseArgsInput,xS as parseAuthChallenge,it as parseBriefText,bC as parseBringBack,Xf as parseBugCommand,Qs as parseClock,zs as parseCommand,_s as parseCron,js as parseDuration,Hn as parseEntities,gD as parseEnvInput,I_ as parseEvaluation,Lc as parseFindings,lo as parseFlowchart,Zp as parseJobs,FR as parseJsonl,Kg as parseLink,iI as parseListItem,OD as parseMcpConfig,Tg as parseMeetingNotes,bN as parseMeetingText,Vf as parseNewThread,Zs as parseNumberWords,Cu as parseOmni,Oc as parsePlan,ar as parsePlanTasks,$I as parseRecordId,_n as parseRefinement,b_ as parseRemote,$p as parseReview,Ck as parseSearchText,du as parseSegmentName,UC as parseSideline,NS as parseSignInPrompt,te as parseSkillMention,cf as parseSkillVars,cS as parseStructured,Qn as parseSuggestions,CI as parseTagQuery,sa as parseTimedText,JI as parseTitleResponse,zE as parseToolCalls,yn as parseTopics,Hr as parseWeather,qs as parseWhen,ea as parseYouTubeUrl,JP as partChars,QP as partPrompt,yF as partitionTtsModels,Lk as passagesOf,Nx as pathAttachment,Px as pathAttachmentsOf,LF as pcmEnergy,C as pendingQueue,TE as permissionAllowed,pE as permissionAnswer,fE as permissionIcon,mE as permissionKeys,AE as permissionLine,LL as permissionMode,EE as permissionRequestFromClaude,SE as permissionToolSpec,us as personJoinedTrigger,ba as phasesOf,Ns as phraseTrigger,aa as pickCaptionTrack,zO as pickProfile,ge as pickResults,ug as pickSections,mi as pinnedOrderOf,CP as placeItems,Sr as planAttribution,nr as planBody,iP as planCompaction,Th as planEventPush,sN as planLabel,iN as planOf,sr as planParts,Co as planQueries,IP as planRetrieval,tr as planSectionSystem,AO as planSync,ir as planTitleFor,ol as planToolRound,MP as planTurn,uc as plannerPrompt,rC as pointsAtGateway,jO as policyFor,bL as policyHash,UL as policyLabel,e_ as poolFor,li as preferenceFor,LM as prefetchAttachment,PM as prefetchPlan,EL as presenceBlock,nL as presenceDelta,sL as presenceFor,qh as priceUsage,JD as priorFindingsText,lp as priorWorkFor,ua as projectChain,Rp as projectFromForm,Ip as projectProgress,fh as projectYear,x as promoteQueued,vd as promoteRoles,Va as promptEntries,Vh as promptTokensOf,YE as promptedToolsSystem,WE as promptedTranscript,N_ as proposalFromNeeds,g_ as proposalToAgent,It as propose,AA as pruneMemories,vk as qualifierAt,Cs as questionTrigger,vg as quickRows,Bk as quoteAround,Xk as quoteFormIn,xE as rankFused,Ee as rankLinkTargets,Gk as rankOffers,ze as rankResearchCards,rx as rankSkills,wo as rankSubjects,Xh as rateFor,SL as reachOf,mr as reachRank,cr as reachSatisfies,kS as readAuthServerMetadata,US as readRegistration,DS as readResourceMetadata,Ii as readSource,GC as readThread,BS as readTokenResponse,VI as readableWhen,Fp as readyJobs,cA as recall,dE as recallPermission,HD as recentFindings,qf as recipeInvocationText,km as recipeParams,Km as recipeToolProvider,Hm as recipeToolSpec,EA as reconcile,Ur as reconcileEngines,KO as recordsFromBackup,M_ as recruitEvents,u_ as recruitForRun,P_ as recruitJob,_a as redactAccessArgs,ht as redactedTokensIn,Ft as redactionCost,hL as redactionTier,ZP as reduceNotes,gk as refineQueries,An as refineSpokenCommand,Tn as refinementFormat,pn as refinementPrompt,dn as refinementStream,xD as refreshArgs,HS as registerMcpClient,yS as registrationRequest,jx as registryListUrl,ut as reject,_E as rememberPermission,b as rememberRecent,Sn as reminderIntent,OI as removeTag,fM as renderContent,mo as renderFlowchartSvg,ON as renderMarkdown,cO as repairAnswerMarkup,xa as repairCitedLinks,lS as repairJson,wR as replaceAll,GR as replaceAllInRange,BR as replaceMatch,xR as replay,ni as requirementsFor,Si as requirementsForStep,FE as rerankThrough,Nk as researchAsk,hk as researchBrief,Fk as researchCall,We as researchRelevance,Ye as researchSnippet,PC as resetMcp,WP as resolveNoteConflict,f as resolveRef,vC as resolveSidelineTarget,Pu as resolveSince,vo as resolveSubjects,jT as resolveTeam,Hu as resolveTheme,iS as responseFormat,$l as resultToolSpec,od as resumeTeam,em as revealCut,$E as revealStep,rT as reviewPrompt,SS as rewriteJson,ah as rfc3339,pe as roleById,jd as roleCardId,Bh as rollupKey,Wd as rosterRows,qp as roundBudget,Dl as roundCap,mL as roundCount,Jp as roundJobs,cL as roundMinutes,sl as roundSignature,xL as routeAllowed,d_ as routeFor,Oa as routeGraph,Re as routeTeam,eg as rowTime,rp as runFromEvents,cR as runLanes,bm as runPlan,zp as runProject,vm as runRecipe,Dk as runResearch,xM as runResearchItem,jl as runResultQuery,Sp as runState,rd as runTeam,tl as runToolRound,hl as runTurnLoop,Il as runWithFailover,He as salientTerms,OA as sameMemory,Ti as sameModelKey,ef as sameSkillOrigin,NI as sameTags,Nn as sameUtterance,YF as sampleSeconds,zF as sampleTooShort,SD as saveTimedOut,nD as saveVoiceFailure,pA as saysWhere,YO as scalePolicy,ln as scheduleIntent,ac as scmAllows,mk as scrubReportText,Ph as sealBlob,ji as sealEntry,DO as sealRecord,$i as searchEntries,bF as searchModels,Om as searchResultsToText,Jg as searchSettings,iO as searchTextFor,Ox as secretReason,gg as sectionHash,$g as sectionOfRow,Ig as sectionSpec,Og as sectionValue,iC as seedDestinations,mu as segmentBytes,cu as segmentEntries,_u as segmentName,fu as segmentsFor,pP as selectContext,pI as selectionStats,Vg as setSettingValue,DL as settingLocked,Hg as settingValue,Zg as settingsGateOf,zg as settingsOpenMode,Qg as settingsStatusAll,jg as settingsStatusOf,Rn as settleRefinement,mT as sha256,Jl as shieldToolResult,fi as shortUrl,XI as shouldAutoTitle,pu as shouldRotate,sC as shouldSeedDestinations,xh as shredBlob,zC as sidelinePath,qC as sidelineToolProvider,fN as signChallenge,gS as signInError,CS as signInFromError,MS as signInToolResult,si as signalsFrom,nA as similarity,ox as skillCatalogSystem,aR as skillChoices,cx as skillCreatorPrompt,nx as skillDiscoveryProvider,sx as skillEntry,ax as skillFileProvider,QA as skillFiles,_x as skillFromDraft,ex as skillHandle,px as skillIdFrom,oI as skillInvocationLabel,rI as skillInvocationOf,rf as skillIsStale,qL as skillPackageFiles,QL as skillRunFromSkill,$L as skillToolSystem,Ef as skillVar,Rf as skillVarGuidance,mf as skillVarPattern,eI as slashCommandInsert,Jf as slashCommandItems,sA as slotOf,JT as slugAgentId,Ac as slugTeamName,hx as sniffType,SO as snippetOf,Zd as soloTeam,qN as sortRecords,QN as sortStamp,TC as sourceCitationSystem,Ml as sourceGate,Cl as sourceGuardFor,Oi as sourceId,XC as sourceOf,Pi as sourcePolicyFor,gl as sourcePolicySettings,Li as sourceUrlsOf,Fa as sourcesFromToolText,vt as spanningQuestions,uF as speakStream,NF as speakable,GN as speakerBreakdown,YN as speakerLabeller,vN as speakerStats,KN as speakerTimeline,sp as spendOf,pR as spendRows,jP as splitForWindow,GP as splitNoteBlocks,nl as stableToolCallKey,dO as stampOf,qF as startRecording,qT as starterAgents,Bd as starterTeam,_c as starterTeams,Ul as stepResultText,CA as storyLinkOf,vO as streamCodec,DN as stripNoteImageRefs,Wo as stripQualifiers,ko as subjectKey,yo as subjectTokens,_f as substituteSkillVars,ud as subtaskFromRequest,FI as suggestExistingTags,Xo as suggestMerges,Tf as suggestSkillVar,jn as suggestionsFormat,Jn as suggestionsPrompt,qn as suggestionsStream,dT as summarize,l_ as summarizeEngine,_D as summarizeRun,Gh as summarizeUsage,ag as summarySections,nu as supersedes,_e as supportsSubagents,Bt as surveyCorpus,sD as switchOutcome,HP as syncNote,ct as synthesisPrompt,lP as systemWithSummary,hI as tagFacets,DI as tagsSearchText,Nd as takeUp,gd as takeUpLine,Ld as taskTree,jp as teamForRound,Rc as teamFromForm,Gd as teamHealth,$f as teamInvocationText,Ud as teamLanes,yd as teamLine,Kd as teamShape,Sd as teamToolProvider,ld as teamToolSpec,Ed as teamToolTimeoutMs,$d as teamsWithSolos,MC as testMcpServer,cD as textToDict,Ku as themeStylesheet,BC as threadManifest,xd as threadRows,Ha as threadTitle,wC as threadToolProvider,Xa as threadTree,Ka as threadsOf,wt as thresholdSweep,EN as tierFor,UT as tierOf,ia as timedTextUrl,nn as timerIntent,fs as timerTrigger,HI as titleFromDate,KI as titleFromParticipants,wI as titleFromSummary,GI as titleFromTopics,_k as titleTerms,ts as toB64,Fc as toBriefClaims,IM as toChatMessages,nh as toCloudEvent,mh as toCloudEventBatch,lh as toCloudEventLines,Gu as toCssVars,sO as toIndexEntry,aS as toJsonSchema,DR as toJsonl,Or as toModelSchema,ur as toModelSchemas,OM as toMultimodalMessages,fD as toSanitizedReport,aO as toSearchRecord,lI as toggleLinePrefix,mI as toggleLink,uI as toggleTag,EI as toggleTask,SI as toggleWrap,wS as tokenExpired,vS as tokenRequest,en as tokenize,tu as tombstone,jE as toolChannel,DE as toolDoc,Sl as toolMadeProgress,eo as toolNeedFor,NP as toolPlan,dC as toolStatus,YS as toolTraits,OP as toolsWanted,Ve as topicTerms,gs as topicTrigger,kn as topicsFormat,Dn as topicsPrompt,Fn as topicsSchema,vn as topicsStream,qS as traitsIndex,QE as transcriptFor,ma as transcriptFromTracks,$ as triggerQueryAt,Pm as trimDescription,Fe as trimGraph,oL as trimOverlap,jA as trustOf,kF as ttsArchOf,Wa as turnsOf,sS as unfence,zi as unlockVault,Wk as unverifiedAmounts,ue as unwrapRedirect,_r as upcast,dr as upcastAll,IA as upcastMemory,tf as upcastSkill,af as upcastSkills,qd as upsertAgents,bh as usageFromEvent,vh as usageFromOpenAi,jm as usageOf,Uh as usageRecord,nm as validateAction,HT as validateAgent,sy as validateBrowserAnnounce,iy as validateBrowserCall,ny as validateBrowserResult,zm as validateBudget,Ar as validateCapability,y_ as validateConnection,FT as validateEngineSpec,qi as validateEntry,m as validateEvent,Kx as validateExtractRequest,Hx as validateExtractResponse,Bp as validateGate,fr as validateInvocation,Cp as validateJobPost,cp as validateProject,Fm as validateRecipe,ms as validateSchedule,of as validateSkill,ec as validateTeam,po as validateView,To as validateViewInvocation,Ao as validateWidget,fo as validateWidgetMessage,AC as vaultWidgetSystem,AD as verdict,_T as verifyAttested,pT as verifyChain,cN as verifyEntitlement,vL as verifyPolicyToken,pN as verifySignedToken,ta as videoMetaFromPlayerResponse,_o as viewResult,JE as visiblePrefix,Ut as vocabularyDrift,Ms as voiceCommandTrigger,aD as voiceListRows,tD as voicePicker,AF as voiceSpeaker,dF as voiceStep,Xs as wakeFor,Dt as wantedPages,kP as wantsIntent,Lu as wantsModel,fC as wantsVaultGuidance,Nc as waves,FM as weatherFollowupPlace,oM as weatherFromSearch,hM as weatherPlace,rM as weatherToolProvider,Kr as weatherUrl,gh as webCryptoSealer,QF as webMedia,Xe as webQuery,UM as webRedoAsk,xk as webResearch,um as webSearchToolProvider,hS as wellKnownUrls,Vd as whereItWorks,RC as widgetAuthoringSystem,Oo as widgetIcon,le as wikiQueryAt,xt as wikilinksIn,jM as windowOf,Lx as withAbsolutePaths,Yc as withBoardTool,RD as withCost,GM as withFetchedMemo,lm as withGuidance,wE as withHint,GE as withLead,lL as withPresence,VE as withPromptedTools,U as withRecent,Ql as withResultShield,qc as withRunCache,gM as withSourceTool,tL as withStitching,kl as withToolSystem,mN as withinFreeLimit,Ll as withinReach,_P as withoutOwnInstructions,lO as wordCount,Ue as wordDiff,Rd as workLogEvidence,_d as workLogFor,dd as workLogText,w_ as worktreeDirFor,uP as worldAnswered,Of as writerAffordance,hf as writerRequest,Pf as writerTail};
package/link-connect.js CHANGED
@@ -1 +1 @@
1
- import{createHandshake as I,NOISE_PROTOCOLS as x,noiseCrypto as P}from"./link-noise.js";import{createLinkSession as U}from"./link-protocol.js";const D=new TextEncoder,$=new TextDecoder,M=D.encode("chatpanel-link:paired"),d=(i,s)=>!!i&&!!s&&i.length===s.length&&i.every((f,u)=>f===s[u]);function K({side:i,keyPair:s,psk:f=null,peerKey:u=null,laptopKey:y=null,name:N="",sendBytes:l,onRequest:C=null,onSession:T=()=>{},onEnd:h=()=>{},crypto:q=P()}={}){if(i!=="laptop"&&i!=="phone")throw new Error("link: side is laptop or phone");if(!s||typeof l!="function")throw new Error("link: keyPair and sendBytes are required");let c=u,w=f,a=null,o=null,p=0;const g=n=>{if(a=null,o){const e=o;o=null,e.close(n)}},k=n=>{a=null,h(n)};async function v(){const n=++p;g("the other side reconnected");const e=!c;if(e&&!w){h("not paired");return}const t=await I({protocol:e?x.pair:x.resume,initiator:i==="phone",s,rs:!e&&i==="phone"?c:null,psk:e?w:null,crypto:q});n===p&&(a={h:t,pairing:e,gen:n,name:""},i==="phone"&&l(await t.writeMessage()))}async function S(n,e=null){const t=e||await n.h.split(),r=t.remoteStatic;if(n.pairing){if(i==="phone"&&y&&!d(r,y))throw new Error("not the laptop in the pairing code")}else if(!d(r,c))throw new Error("a key this side did not pair");n.gen===p&&(a=null,n.pairing&&(c=r,w=null),n.pairing&&i==="laptop"&&l(await t.encrypt(M)),o=U({transport:t,send:l,side:i,onRequest:i==="laptop"?C:null,onClose:m=>{o=null,h(m)}}),T(o,{peerKey:r,name:n.name,paired:n.pairing}))}async function J(n){const e=a,{h:t,pairing:r}=e,m=await t.readMessage(n);if(i==="laptop")if(t.isDone()){if(r)try{e.name=String(JSON.parse($.decode(m))?.name||"").slice(0,60)}catch{e.name=""}}else l(await t.writeMessage());else if(!t.isDone()&&(l(await t.writeMessage(r?D.encode(JSON.stringify({name:String(N||"").slice(0,60)})):void 0)),r&&t.isDone())){e.confirm=await t.split();return}t.isDone()&&await S(e)}async function L(n){const e=a,t=e.confirm,r=await t.decrypt(n);if(!d(r,M))throw new Error("the laptop did not confirm the pairing");await S(e,t)}let O=Promise.resolve();const E=n=>{const e=O.then(n).catch(()=>{});return O=e,e};async function R(n){let e=null;try{e=JSON.parse(n)}catch{return}if(e?.t==="peer")if(e.up)try{await v()}catch(t){k(`handshake: ${t?.message||t}`)}else p++,g("the other side left")}async function A(n){if(o){await o.receive(n);return}if(a)try{await(a.confirm?L(n):J(n))}catch(e){k(`handshake: ${e?.message||e}`)}}return{onText:n=>E(()=>R(String(n))),onBinary:n=>E(()=>A(n instanceof Uint8Array?n:new Uint8Array(n))),close(n="closed"){p++,g(n)},get session(){return o},get paired(){return!!c}}}export{K as createLinkEndpoint};
1
+ import{createHandshake as _,NOISE_PROTOCOLS as x,noiseCrypto as $}from"./link-noise.js";import{createLinkSession as F,LINK_CAPS as H}from"./link-protocol.js";const y=new TextEncoder,A=new TextDecoder,C=y.encode("chatpanel-link:paired"),S=(i,o)=>!!i&&!!o&&i.length===o.length&&i.every((l,p)=>l===o[p]),D=i=>y.encode(JSON.stringify({caps:[...i]}));function J(i,o){if(!i?.length||i.length>1024)return[];try{const l=JSON.parse(A.decode(i))?.caps;return Array.isArray(l)?o.filter(p=>l.includes(p)):[]}catch{return[]}}function G({side:i,keyPair:o,psk:l=null,peerKey:p=null,laptopKey:k=null,name:L="",sendBytes:c,onRequest:P=null,onSession:T=()=>{},onEnd:g=()=>{},crypto:q=$(),caps:w=H}={}){if(i!=="laptop"&&i!=="phone")throw new Error("link: side is laptop or phone");if(!o||typeof c!="function")throw new Error("link: keyPair and sendBytes are required");let f=p,d=l,s=null,a=null,h=0;const m=e=>{if(s=null,a){const n=a;a=null,n.close(e)}},O=e=>{s=null,g(e)};async function v(){const e=++h;m("the other side reconnected");const n=!f;if(n&&!d){g("not paired");return}const t=await _({protocol:n?x.pair:x.resume,initiator:i==="phone",s:o,rs:!n&&i==="phone"?f:null,psk:n?d:null,crypto:q});e===h&&(s={h:t,pairing:n,gen:e,name:"",caps:[]},i==="phone"&&c(await t.writeMessage(n?void 0:D(w))))}async function N(e,n=null){const t=n||await e.h.split(),r=t.remoteStatic;if(e.pairing){if(i==="phone"&&k&&!S(r,k))throw new Error("not the laptop in the pairing code")}else if(!S(r,f))throw new Error("a key this side did not pair");e.gen===h&&(s=null,e.pairing&&(f=r,d=null),e.pairing&&i==="laptop"&&c(await t.encrypt(C)),a=F({transport:t,send:c,side:i,onRequest:i==="laptop"?P:null,onClose:u=>{a=null,g(u)},batch:e.caps.includes("batch")}),T(a,{peerKey:r,name:e.name,paired:e.pairing,caps:e.caps}))}async function I(e){const n=s,{h:t,pairing:r}=n,u=await t.readMessage(e);if(i==="laptop")if(t.isDone()){if(r)try{n.name=String(JSON.parse(A.decode(u))?.name||"").slice(0,60)}catch{n.name=""}}else r?c(await t.writeMessage()):(n.caps=J(u,w),c(await t.writeMessage(D(w))));else if(!r)n.caps=J(u,w);else if(!t.isDone()&&(c(await t.writeMessage(y.encode(JSON.stringify({name:String(L||"").slice(0,60)})))),r&&t.isDone())){n.confirm=await t.split();return}t.isDone()&&await N(n)}async function R(e){const n=s,t=n.confirm,r=await t.decrypt(e);if(!S(r,C))throw new Error("the laptop did not confirm the pairing");await N(n,t)}let E=Promise.resolve();const M=e=>{const n=E.then(e).catch(()=>{});return E=n,n};async function K(e){let n=null;try{n=JSON.parse(e)}catch{return}if(n?.t==="peer")if(n.up)try{await v()}catch(t){O(`handshake: ${t?.message||t}`)}else h++,m("the other side left")}async function U(e){if(a){await a.receive(e);return}if(s)try{await(s.confirm?R(e):I(e))}catch(n){O(`handshake: ${n?.message||n}`)}}return{onText:e=>M(()=>K(String(e))),onBinary:e=>M(()=>U(e instanceof Uint8Array?e:new Uint8Array(e))),close(e="closed"){h++,m(e)},get session(){return a},get paired(){return!!f}}}export{G as createLinkEndpoint};
package/link-protocol.js CHANGED
@@ -1 +1 @@
1
- import{concatBytes as F}from"./link-noise.js";const v=1,$="chatpanel-link",N=6e4,O=44e3,q=Object.freeze(["GET","POST","PUT","PATCH","DELETE"]),L=64,H=Object.freeze({bytesPerSecond:9e5,byteBurst:6e6,framesPerSecond:90,frameBurst:800});function J({bytesPerSecond:t,byteBurst:e,framesPerSecond:n,frameBurst:s}=H,{now:c=()=>Date.now(),sleep:a=l=>new Promise(w=>setTimeout(w,l))}={}){let l=e,w=s,S=c();return async b=>{for(;;){const p=c(),h=Math.max(0,p-S)/1e3;if(S=p,l=Math.min(e,l+h*t),w=Math.min(s,w+h*n),l>=b&&w>=1){l-=b,w-=1;return}const g=Math.max((b-l)/t,(1-w)/n)*1e3;await a(Math.max(1,Math.ceil(g)))}}}const x=new TextEncoder,I=new TextDecoder;function y(t){let e="";for(const n of t)e+=String.fromCharCode(n);return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Y(t){const e=String(t||"").replace(/-/g,"+").replace(/_/g,"/");if(!/^[A-Za-z0-9+/]*$/.test(e))throw new Error("link: not base64url");const n=atob(e+"=".repeat((4-e.length%4)%4));return Uint8Array.from(n,s=>s.charCodeAt(0))}const G=t=>{let e="";for(const n of t)e+=String.fromCharCode(n);return btoa(e)},V=t=>Uint8Array.from(atob(String(t||"")),e=>e.charCodeAt(0));function te({relay:t,room:e,key:n,secret:s,name:c=""}){const a=D({v:String(v),relay:t,room:y(e),key:y(n),psk:y(s),name:c}),l=new URLSearchParams({v:String(v),relay:a.relay,room:y(a.room),key:y(a.key),psk:y(a.secret)});return a.name&&l.set("name",a.name),`${$}:?${l.toString()}`}function re(t){const e=String(t||"").trim();if(!e.startsWith(`${$}:?`))throw new Error("link: not a ChatPanel pairing code");const n=new URLSearchParams(e.slice($.length+2));return D(Object.fromEntries(n.entries()))}function D(t){if(String(t.v)!==String(v))throw new Error(`link: pairing code version ${t.v} is not supported — update the app`);let e;try{e=new URL(String(t.relay||""))}catch{throw new Error("link: the pairing code has no relay address")}if(e.protocol!=="https:"||e.username||e.password)throw new Error("link: the relay must be an https address");const n=(c,a)=>{let l;try{l=Y(t[c])}catch{throw new Error(`link: ${c} is not readable`)}if(l.length!==a)throw new Error(`link: ${c} must be ${a} bytes`);return l},s=String(t.name||"").replace(/[\u0000-\u001f\u007f<>]/g,"").trim().slice(0,64);return{relay:e.origin,room:n("room",16),key:n("key",32),secret:n("psk",32),name:s}}async function ne(t,e,n,s=globalThis.crypto.subtle){if(n!=="laptop"&&n!=="phone")throw new Error("link: side is laptop or phone");const c=await s.importKey("raw",t,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),a=await s.sign("HMAC",c,x.encode(`chatpanel-link admit v${v}|${y(e)}|${n}`));return y(new Uint8Array(a))}async function oe(t,e=globalThis.crypto.subtle){const n=new Uint8Array(await e.digest("SHA-256",x.encode(String(t))));return Array.from(n,s=>s.toString(16).padStart(2,"0")).join("")}const W=/^(authorization|cookie|set-cookie|www-authenticate|host|proxy-.*|x-forwarded-.*|forwarded|x-real-ip|cf-.*|tailscale-.*|x-chatpanel-device|x-chatpanel-token|content-length|connection|transfer-encoding|upgrade)$/i;function M(t={}){const e={};for(const[n,s]of Object.entries(t||{})){const c=String(n).toLowerCase();!/^[a-z0-9-]{1,64}$/.test(c)||W.test(c)||(e[c]=String(s).replace(/[\r\n]+/g," ").slice(0,2048))}return e}function B(t){const e=String(t||"");if(!e.startsWith("/v1/")||e.length>2048)return!1;const n=e.split("?")[0];return!/(^|\/)\.\.?(\/|$)|%2e|%2f|%5c|\\|\/\//i.test(n)}const X=new Set(["req","body","end","res","cancel","error","ping","pong"]);function Q(t){const e=x.encode(JSON.stringify(t));if(e.length>N)throw new Error("link: frame too large");return e}function Z(t){if(t.length>N)throw new Error("link: frame too large");let e;try{e=JSON.parse(I.decode(t))}catch{throw new Error("link: frame is not JSON")}if(!e||typeof e!="object"||!X.has(e.t))throw new Error("link: unknown frame");if(e.t!=="ping"&&e.t!=="pong"&&!(Number.isInteger(e.id)&&e.id>0))throw new Error("link: frame without an id");if(e.t==="req"){if(!q.includes(e.method))throw new Error("link: method not allowed");if(!B(e.path))throw new Error("link: path not allowed");e.headers=M(e.headers)}if(e.t==="res"&&!(Number.isInteger(e.status)&&e.status>=100&&e.status<600))throw new Error("link: bad status");if(e.t==="body"&&typeof e.data!="string")throw new Error("link: body without data");return e}function K(){const t=[];let e=null,n=!1,s=null;const c=()=>{const a=e;e=null,a?.()};return{push(a){t.push(a),c()},end(){n=!0,c()},fail(a){s=a,n=!0,c()},async*[Symbol.asyncIterator](){for(;;){if(t.length){yield t.shift();continue}if(s)throw s;if(n)return;await new Promise(a=>{e=a})}},async bytes(){const a=[];for await(const l of this)a.push(l);return F(...a)},async text(){return I.decode(await this.bytes())}}}function ie({transport:t,send:e,side:n,onRequest:s=null,onClose:c=()=>{},pace:a=H,now:l,sleep:w}={}){if(!t||typeof e!="function")throw new Error("link: transport and send are required");if(n!=="phone"&&n!=="laptop")throw new Error("link: side is phone or laptop");let S=n==="phone"?1:2;const b=i=>i%2===(n==="phone"?1:0);let p=null;const h=new Map,g=new Map;let T=Promise.resolve();const j=a?J(a,{...l?{now:l}:{},...w?{sleep:w}:{}}):null,m=i=>{if(p)return Promise.reject(new Error(`link: session closed (${p})`));const r=Q(i),o=T.then(async()=>{if(p)return;const u=await t.encrypt(r);j&&await j(u.length),p||e(u)});return T=o.catch(()=>{}),o},A=i=>{i?.catch?.(()=>{})};let C=Promise.resolve();const U=async(i,r)=>{for(let o=0;o<r.length;o+=O)await m({t:"body",id:i,data:G(r.subarray(o,o+O))})};function P(i="closed"){if(p)return;p=i;const r=new Error(`link: session closed (${i})`);for(const o of h.values())o.reject?.(r),o.body?.fail(r);for(const o of g.values())o.body.fail(r);h.clear(),g.clear(),c(i)}async function z(i){if(!s||g.size>=L){A(m({t:"error",id:i.id,message:s?"too many open requests":"this side serves nothing"}));return}const r=K(),o={body:r,cancelled:!1};g.set(i.id,o);let u=!1;const f={head:(d,_={})=>(u=!0,m({t:"res",id:i.id,status:d,headers:M(_)})),write:d=>o.cancelled?Promise.resolve():U(i.id,d instanceof Uint8Array?d:x.encode(String(d))),end:()=>(g.delete(i.id),o.cancelled?Promise.resolve():m({t:"end",id:i.id})),fail:d=>(g.delete(i.id),m({t:"error",id:i.id,message:String(d).slice(0,500)})),get cancelled(){return o.cancelled}};Promise.resolve().then(()=>s({method:i.method,path:i.path,headers:i.headers,body:r},f)).catch(d=>A(u?f.end():f.fail(d?.message||"the request failed")))}return{get closed(){return p},close:P,receive(i){const r=C.then(()=>this._receive(i)).catch(o=>P(`bad frame: ${o?.message||o}`));return C=r,r},async _receive(i){if(p)return;let r;try{r=Z(await t.decrypt(i))}catch(f){P(/decrypt|operation|tag/i.test(String(f?.message||f?.name))?"tampered":`bad frame: ${f?.message}`);return}if(r.t==="ping"){A(m({t:"pong"}));return}if(r.t==="pong")return;if(r.t==="req"){if(b(r.id)){P("bad frame: a request in our id space");return}await z(r);return}const o=b(r.id)?h.get(r.id):null,u=b(r.id)?null:g.get(r.id);if(r.t==="res"&&o)o.resolve({status:r.status,headers:r.headers||{},body:o.body});else if(r.t==="body"&&(o||u))(o||u).body.push(V(r.data));else if(r.t==="end"&&o)o.body.end(),h.delete(r.id);else if(r.t==="end"&&u)u.body.end();else if(r.t==="error"&&o){const f=new Error(r.message||"the request failed");o.reject(f),o.body.fail(f),h.delete(r.id)}else r.t==="cancel"&&u&&(u.cancelled=!0,u.body.fail(new Error("cancelled")),g.delete(r.id))},request({method:i="GET",path:r,headers:o={},body:u=null,signal:f=null}={}){if(!q.includes(i))return Promise.reject(new Error("link: method not allowed"));if(!B(r))return Promise.reject(new Error("link: path not allowed"));if(h.size>=L)return Promise.reject(new Error("link: too many open requests"));const d=S;S+=2;const _=K(),R=new Promise((E,k)=>h.set(d,{resolve:E,reject:k,body:_}));return f?.addEventListener?.("abort",()=>{const E=h.get(d);if(!E)return;h.delete(d);const k=new Error("aborted");E.reject(k),E.body.fail(k),m({t:"cancel",id:d}).catch(()=>{})},{once:!0}),(async()=>{await m({t:"req",id:d,method:i,path:r,headers:M(o)}),u!=null&&await U(d,u instanceof Uint8Array?u:x.encode(String(u))),await m({t:"end",id:d})})().catch(E=>{const k=h.get(d);k&&(k.reject(E),h.delete(d))}),R},ping:()=>m({t:"ping"})}}export{O as BODY_CHUNK_BYTES,q as LINK_METHODS,H as LINK_PACE,$ as LINK_SCHEME,v as LINK_VERSION,N as MAX_FRAME_BYTES,ne as admissionToken,oe as admissionVerifier,ie as createLinkSession,Z as decodeFrame,Q as encodeFrame,Y as fromB64url,J as linkPacer,B as linkPathAllowed,te as pairingUri,re as parsePairingUri,M as sanitizeLinkHeaders,y as toB64url};
1
+ import{concatBytes as J}from"./link-noise.js";const C=1,U="chatpanel-link",P=6e4,G=44e3,W=Object.freeze(["GET","POST","PUT","PATCH","DELETE"]),Y=64,we=Object.freeze(["batch"]),re=2*P,V=Object.freeze({bytesPerSecond:9e5,byteBurst:6e6,framesPerSecond:90,frameBurst:800});function ne({bytesPerSecond:e,byteBurst:r,framesPerSecond:n,frameBurst:l}=V,{now:c=()=>Date.now(),sleep:u=a=>new Promise(s=>setTimeout(s,a))}={}){let a=r,s=l,d=c();return async E=>{for(;;){const p=c(),m=Math.max(0,p-d)/1e3;if(d=p,a=Math.min(r,a+m*e),s=Math.min(l,s+m*n),a>=E&&s>=1){a-=E,s-=1;return}const f=Math.max((E-a)/e,(1-s)/n)*1e3;await u(Math.max(1,Math.ceil(f)))}}}const _=new TextEncoder,I=new TextDecoder,q=Object.freeze({firstMs:0,windowMs:100,maxBytes:16e3});async function*fe(e,{firstMs:r=q.firstMs,windowMs:n=q.windowMs,maxBytes:l=q.maxBytes,setTimer:c=setTimeout,clearTimer:u=clearTimeout}={}){const a=e[Symbol.asyncIterator]();let s=[],d=0,E=!0,p=null;const m=()=>{const f=s.length===1?s[0]:J(...s);return s=[],d=0,E=!1,f};try{for(;;){if(p||=a.next(),!d){const h=await p;if(p=null,h.done)return;if(s.push(h.value),d+=h.value.length,E&&r<=0){yield m();continue}}let f=null;const g=new Promise(h=>{f=c(()=>h(null),E?r:n)});try{for(;d<l;){p||=a.next();const h=await Promise.race([p,g]);if(h===null)break;if(p=null,h.done){yield m();return}s.push(h.value),d+=h.value.length}}finally{u(f)}yield m()}}finally{p&&p.catch(()=>{});try{a.return?.()?.catch?.(()=>{})}catch{}}}function S(e){let r="";for(const n of e)r+=String.fromCharCode(n);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function oe(e){const r=String(e||"").replace(/-/g,"+").replace(/_/g,"/");if(!/^[A-Za-z0-9+/]*$/.test(r))throw new Error("link: not base64url");const n=atob(r+"=".repeat((4-r.length%4)%4));return Uint8Array.from(n,l=>l.charCodeAt(0))}const ie=e=>{let r="";for(const n of e)r+=String.fromCharCode(n);return btoa(r)},ae=e=>Uint8Array.from(atob(String(e||"")),r=>r.charCodeAt(0));function pe({relay:e=null,gw:r=null,room:n,key:l,secret:c,name:u=""}){const a=X({v:String(C),relay:e,gw:r,room:S(n),key:S(l),psk:S(c),name:u}),s=new URLSearchParams({v:String(C)});return a.relay&&s.set("relay",a.relay),s.set("room",S(a.room)),s.set("key",S(a.key)),s.set("psk",S(a.secret)),a.gw&&s.set("gw",a.gw),a.name&&s.set("name",a.name),`${U}:?${s.toString()}`}function ge(e){const r=String(e||"").trim();if(!r.startsWith(`${U}:?`))throw new Error("link: not a ChatPanel pairing code");const n=new URLSearchParams(r.slice(U.length+2));return X(Object.fromEntries(n.entries()))}function X(e){if(String(e.v)!==String(C))throw new Error(`link: pairing code version ${e.v} is not supported — update the app`);const r=(a,s)=>{let d;try{d=new URL(String(a))}catch{throw new Error(`link: the pairing code's ${s} address is not readable`)}if(d.protocol!=="https:"||d.username||d.password)throw new Error(`link: the ${s} must be an https address`);return d.origin},n=e.relay?r(e.relay,"relay"):null,l=e.gw?r(e.gw,"tunnel"):null;if(!n&&!l)throw new Error("link: the pairing code has no relay address");const c=(a,s)=>{let d;try{d=oe(e[a])}catch{throw new Error(`link: ${a} is not readable`)}if(d.length!==s)throw new Error(`link: ${a} must be ${s} bytes`);return d},u=String(e.name||"").replace(/[\u0000-\u001f\u007f<>]/g,"").trim().slice(0,64);return{relay:n,gw:l,room:c("room",16),key:c("key",32),secret:c("psk",32),name:u}}async function me(e,r,n,l=globalThis.crypto.subtle){if(n!=="laptop"&&n!=="phone")throw new Error("link: side is laptop or phone");const c=await l.importKey("raw",e,{name:"HMAC",hash:"SHA-256"},!1,["sign"]),u=await l.sign("HMAC",c,_.encode(`chatpanel-link admit v${C}|${S(r)}|${n}`));return S(new Uint8Array(u))}async function ye(e,r=globalThis.crypto.subtle){const n=new Uint8Array(await r.digest("SHA-256",_.encode(String(e))));return Array.from(n,l=>l.toString(16).padStart(2,"0")).join("")}const se=/^(authorization|cookie|set-cookie|www-authenticate|host|proxy-.*|x-forwarded-.*|forwarded|x-real-ip|cf-.*|tailscale-.*|x-chatpanel-device|x-chatpanel-token|content-length|connection|transfer-encoding|upgrade)$/i;function H(e={}){const r={};for(const[n,l]of Object.entries(e||{})){const c=String(n).toLowerCase();!/^[a-z0-9-]{1,64}$/.test(c)||se.test(c)||(r[c]=String(l).replace(/[\r\n]+/g," ").slice(0,2048))}return r}function Q(e){const r=String(e||"");if(!r.startsWith("/v1/")||r.length>2048)return!1;const n=r.split("?")[0];return!/(^|\/)\.\.?(\/|$)|%2e|%2f|%5c|\\|\/\//i.test(n)}const le=new Set(["req","body","end","res","cancel","error","ping","pong"]);function ce(e){const r=_.encode(JSON.stringify(e));if(r.length>P)throw new Error("link: frame too large");return r}function ue(e){if(!e.length)throw new Error("link: an empty batch");const r=e.reduce((c,u)=>c+u.length+1,1);if(r>P)throw new Error("link: batch too large");const n=new Uint8Array(r);n[0]=91;let l=1;return e.forEach((c,u)=>{n.set(c,l),l+=c.length,n[l++]=u===e.length-1?93:44}),n}function be(e){if(e.length>P)throw new Error("link: frame too large");let r;try{r=JSON.parse(I.decode(e))}catch{throw new Error("link: frame is not JSON")}return z(r)}function de(e,{batch:r=!1}={}){if(e.length>P)throw new Error("link: frame too large");let n;try{n=JSON.parse(I.decode(e))}catch{throw new Error("link: frame is not JSON")}if(!Array.isArray(n))return[z(n)];if(!r)throw new Error("link: a batch this session did not agree to");if(!n.length)throw new Error("link: an empty batch");return n.map(z)}function z(e){if(!e||typeof e!="object"||Array.isArray(e)||!le.has(e.t))throw new Error("link: unknown frame");if(e.t!=="ping"&&e.t!=="pong"&&!(Number.isInteger(e.id)&&e.id>0))throw new Error("link: frame without an id");if(e.t==="req"){if(!W.includes(e.method))throw new Error("link: method not allowed");if(!Q(e.path))throw new Error("link: path not allowed");e.headers=H(e.headers)}if(e.t==="res"&&!(Number.isInteger(e.status)&&e.status>=100&&e.status<600))throw new Error("link: bad status");if(e.t==="body"&&typeof e.data!="string")throw new Error("link: body without data");return e}function Z(){const e=[];let r=null,n=!1,l=null;const c=()=>{const u=r;r=null,u?.()};return{push(u){e.push(u),c()},end(){n=!0,c()},fail(u){l=u,n=!0,c()},async*[Symbol.asyncIterator](){for(;;){if(e.length){yield e.shift();continue}if(l)throw l;if(n)return;await new Promise(u=>{r=u})}},async bytes(){const u=[];for await(const a of this)u.push(a);return J(...u)},async text(){return I.decode(await this.bytes())}}}function Ee({transport:e,send:r,side:n,onRequest:l=null,onClose:c=()=>{},pace:u=V,now:a,sleep:s,batch:d=!1,defer:E=p=>setTimeout(p,0)}={}){if(!e||typeof r!="function")throw new Error("link: transport and send are required");if(n!=="phone"&&n!=="laptop")throw new Error("link: side is phone or laptop");let p=n==="phone"?1:2;const m=t=>t%2===(n==="phone"?1:0);let f=null;const g=new Map,h=new Map;let M=Promise.resolve();const B=u?ne(u,{...a?{now:a}:{},...s?{sleep:s}:{}}):null,K=t=>{const o=M.then(async()=>{if(f)return;const i=await e.encrypt(t);B&&await B(i.length),f||r(i)});return M=o.catch(()=>{}),o};let k=[],T=1,O=null,N=0;const D=()=>{if(O=null,!k.length||f){k=[],T=1;return}const t=k.length===1?k[0]:ue(k);k=[],T=1,N+=t.length,K(t).finally(()=>{N-=t.length}).catch(()=>{})},y=t=>{if(f)return Promise.reject(new Error(`link: session closed (${f})`));const o=ce(t);return d?(T+o.length+1>P&&D(),k.push(o),T+=o.length+1,O||(O=E(D)||!0),N>re?M:Promise.resolve()):K(o)},j=t=>{t?.catch?.(()=>{})};let R=Promise.resolve();const F=async(t,o)=>{for(let i=0;i<o.length;i+=G)await y({t:"body",id:t,data:ie(o.subarray(i,i+G))})};function $(t="closed"){if(f)return;f=t;const o=new Error(`link: session closed (${t})`);for(const i of g.values())i.reject?.(o),i.body?.fail(o);for(const i of h.values())i.body.fail(o);g.clear(),h.clear(),k=[],c(t)}async function ee(t){if(!l||h.size>=Y){j(y({t:"error",id:t.id,message:l?"too many open requests":"this side serves nothing"}));return}const o=Z(),i={body:o,cancelled:!1};h.set(t.id,i);let b=!1;const v={head:(w,L={})=>(b=!0,y({t:"res",id:t.id,status:w,headers:H(L)})),write:w=>i.cancelled?Promise.resolve():F(t.id,w instanceof Uint8Array?w:_.encode(String(w))),end:()=>(h.delete(t.id),i.cancelled?Promise.resolve():y({t:"end",id:t.id})),fail:w=>(h.delete(t.id),y({t:"error",id:t.id,message:String(w).slice(0,500)})),get cancelled(){return i.cancelled}};Promise.resolve().then(()=>l({method:t.method,path:t.path,headers:t.headers,body:o},v)).catch(w=>j(b?v.end():v.fail(w?.message||"the request failed")))}return{get closed(){return f},close:$,receive(t){const o=R.then(()=>this._receive(t)).catch(i=>$(`bad frame: ${i?.message||i}`));return R=o,o},async _receive(t){if(f)return;let o;try{o=de(await e.decrypt(t),{batch:d})}catch(i){$(/decrypt|operation|tag/i.test(String(i?.message||i?.name))?"tampered":`bad frame: ${i?.message}`);return}for(const i of o){if(f)return;await this._frame(i)}},async _frame(t){if(t.t==="ping"){j(y({t:"pong"}));return}if(t.t==="pong")return;if(t.t==="req"){if(m(t.id)){$("bad frame: a request in our id space");return}await ee(t);return}const o=m(t.id)?g.get(t.id):null,i=m(t.id)?null:h.get(t.id);if(t.t==="res"&&o)o.resolve({status:t.status,headers:t.headers||{},body:o.body});else if(t.t==="body"&&(o||i))(o||i).body.push(ae(t.data));else if(t.t==="end"&&o)o.body.end(),g.delete(t.id);else if(t.t==="end"&&i)i.body.end();else if(t.t==="error"&&o){const b=new Error(t.message||"the request failed");o.reject(b),o.body.fail(b),g.delete(t.id)}else t.t==="cancel"&&i&&(i.cancelled=!0,i.body.fail(new Error("cancelled")),h.delete(t.id))},request({method:t="GET",path:o,headers:i={},body:b=null,signal:v=null}={}){if(!W.includes(t))return Promise.reject(new Error("link: method not allowed"));if(!Q(o))return Promise.reject(new Error("link: path not allowed"));if(g.size>=Y)return Promise.reject(new Error("link: too many open requests"));const w=p;p+=2;const L=Z(),te=new Promise((x,A)=>g.set(w,{resolve:x,reject:A,body:L}));return v?.addEventListener?.("abort",()=>{const x=g.get(w);if(!x)return;g.delete(w);const A=new Error("aborted");x.reject(A),x.body.fail(A),y({t:"cancel",id:w}).catch(()=>{})},{once:!0}),(async()=>{await y({t:"req",id:w,method:t,path:o,headers:H(i)}),b!=null&&await F(w,b instanceof Uint8Array?b:_.encode(String(b))),await y({t:"end",id:w})})().catch(x=>{const A=g.get(w);A&&(A.reject(x),g.delete(w))}),te},ping:()=>y({t:"ping"})}}export{G as BODY_CHUNK_BYTES,we as LINK_CAPS,q as LINK_COALESCE,W as LINK_METHODS,V as LINK_PACE,U as LINK_SCHEME,C as LINK_VERSION,P as MAX_FRAME_BYTES,me as admissionToken,ye as admissionVerifier,fe as coalesceChunks,Ee as createLinkSession,be as decodeFrame,de as decodeFrames,ue as encodeBatch,ce as encodeFrame,oe as fromB64url,ne as linkPacer,Q as linkPathAllowed,pe as pairingUri,ge as parsePairingUri,H as sanitizeLinkHeaders,S as toB64url};
package/link-routes.js ADDED
@@ -0,0 +1,2 @@
1
+ const o="https://link.chatpanel.net",s="/v1/link",h=`${s}/room/`,f=Object.freeze([Object.freeze({id:"link",kind:"relay",label:"ChatPanel Link",hosted:!0,summary:"Our relay at link.chatpanel.net carries the encrypted bytes. Nothing to set up."}),Object.freeze({id:"tailscale",kind:"tunnel",label:"Tailscale",summary:"Your own tailnet. Only your devices can reach it; the phone needs the Tailscale app."}),Object.freeze({id:"cloudflare",kind:"tunnel",label:"Cloudflare Tunnel",summary:"Your own Cloudflare Tunnel and a hostname you own."}),Object.freeze({id:"relay",kind:"relay",label:"Your own relay",summary:"A Link relay you run. Your server, your operations; ChatPanel only dials it."})]),c=e=>f.find(t=>t.id===e)||null,a=e=>{throw Object.assign(new Error(e),{code:"bad_route"})};function y(e,t){let n;try{n=new URL(String(e||"").trim())}catch{a(`${t}: not an address — it starts with https://`)}n.protocol!=="https:"&&a(`${t}: must be an https:// address`),(n.username||n.password)&&a(`${t}: no user name or password in the address`);const r=n.hostname.toLowerCase();return(r==="localhost"||/^[\d.]+$/.test(r)||r.includes(":"))&&a(`${t}: a name the phone can look up, not ${r}`),n.origin}function m({id:e="link",url:t=""}={}){const n=c(e);if(n||a(`unknown Link route "${e}"`),e==="link")return{id:e,url:o};const r=y(t,n.label),l=new URL(r).hostname;return e==="tailscale"&&!l.endsWith(".ts.net")&&a("Tailscale: the address `tailscale serve` prints ends in .ts.net"),e==="cloudflare"&&l.endsWith(".trycloudflare.com")&&a("Cloudflare Tunnel: a quick tunnel (trycloudflare.com) gets a new name on every start — use a named tunnel on your own hostname"),e==="relay"&&r===o?{id:"link",url:o}:{id:e,url:r}}function w(e={}){const t=e||{},n=t.relayUrl&&String(t.relayUrl).replace(/\/+$/,"")!==o?String(t.relayUrl):"",r=t.route||(n?"relay":"link");let l;try{l=m({id:r,url:r==="relay"?t.relayUrl||"":t.tunnelUrl||""})}catch(p){return{route:"link",relay:o,tunnel:null,problem:p.message}}const i=c(l.id).kind==="tunnel"?l.url:null,d=i?t.fallback===!1?null:o:l.url;return{route:l.id,relay:d,tunnel:i}}const u=e=>String(e).replace(/^https:/,"wss:").replace(/^http:/,"ws:"),g=(e,t)=>`${u(e)}/v1/room/${t}`,b=(e,t)=>`${u(e)}${h}${t}`;function $(e,{port:t=4320,url:n=""}={}){const r=`http://127.0.0.1:${Number(t)||4320}`,l=(()=>{try{return new URL(n).hostname}catch{return"link.example.com"}})();return e==="tailscale"?{commands:[`tailscale serve --bg --set-path=${s} ${r}${s}`],notes:["Run it on this computer, then paste the https://…ts.net address it prints (`tailscale serve status` shows it again).","On the phone: install Tailscale and sign in to the same tailnet. Use serve, not funnel: serve is reachable from your devices only."]}:e==="cloudflare"?{commands:["cloudflared tunnel create chatpanel-link",`cloudflared tunnel route dns chatpanel-link ${l}`,"cloudflared tunnel run chatpanel-link"],config:["tunnel: chatpanel-link","ingress:",` - hostname: ${l}`,` path: ^${s}/`,` service: ${r}`," - service: http_status:404"].join(`
2
+ `),notes:["The config goes in ~/.cloudflared/config.yml (add the credentials-file line `tunnel create` prints). Only the Link path is mapped; everything else answers 404.","Cloudflare Access in front is an optional extra wall — the phone must then pass it, so leave it off unless you know you want it."]}:e==="relay"?{commands:[],notes:["Give the https address of your relay. It must speak the Link relay wire (rooms at /v1/room/<room>, the admission token as a WebSocket subprotocol)."]}:{commands:[],notes:[]}}const k=/^(cf-connecting-ip|cf-ray|cf-ipcountry|cf-visitor|cf-warp-tag-id|cdn-loop|x-forwarded-for|x-forwarded-host|x-forwarded-proto|x-real-ip|forwarded|tailscale-user-login|tailscale-user-name|tailscale-user-profile-pic|tailscale-headers-info|tailscale-app-capabilities|tailscale-funnel-request)$/i;function L(e={}){return(typeof e?.keys=="function"&&!Array.isArray(e)?[...e.keys()]:Object.keys(e||{})).find(n=>k.test(n))||null}export{o as DEFAULT_LINK_RELAY,f as LINK_ROUTES,s as LINK_TUNNEL_PATH,h as LINK_TUNNEL_ROOM_PATH,m as checkLinkRoute,w as linkPaths,c as linkRoute,g as relaySocketUrl,L as tunnelHeader,$ as tunnelSetup,b as tunnelSocketUrl};
package/memory.js CHANGED
@@ -1,2 +1,2 @@
1
- const ae=1,k=Object.freeze({identity:{label:"Identity",ambient:!0,hint:"Who the user is — name, role, pronouns, language, timezone."},preference:{label:"Preference",ambient:!0,hint:"How they want things done — tone, format, defaults, things never to do."},project:{label:"Project",ambient:!1,hint:"Ongoing work, goals and constraints not derivable from the material itself."},fact:{label:"Fact",ambient:!1,hint:"A durable fact about their world — systems, teams, environments, conventions."},reference:{label:"Reference",ambient:!1,hint:"A pointer to something external — a URL, a dashboard, a ticket, a doc."}}),O=Object.freeze(Object.keys(k)),F=Object.freeze(O.filter(e=>k[e].ambient)),S=280,v=3,U=200,R=1200;class $ extends Error{constructor(r){super(r),this.name="MemoryError"}}function _(e={},{now:r=0,newId:s=null}={}){const o=f(e.text);if(o.length<v)throw new $("a memory needs text");if(o.length>S)throw new $(`a memory must be at most ${S} characters — save longer material as a note`);const t=k[e.kind]?e.kind:"fact",a=Number(e.createdAt)||Number(r)||0;return{id:String(e.id||(s?s():"")||""),v:1,text:o,kind:t,scope:String(e.scope||"global"),key:y(o),slot:f(e.slot).toLowerCase()||P(o),tags:[...new Set((e.tags||[]).map(n=>f(n).toLowerCase()).filter(Boolean))].slice(0,8),pinned:!!e.pinned,source:{via:String(e.source?.via||"user"),surface:String(e.source?.surface||""),ref:String(e.source?.ref||""),agent:String(e.source?.agent||"")},confidence:ie(e.confidence==null?1:Number(e.confidence)),createdAt:a,updatedAt:Number(e.updatedAt)||a,usedAt:Number(e.usedAt)||0,useCount:Math.max(0,Math.floor(Number(e.useCount)||0)),expiresAt:e.expiresAt?Number(e.expiresAt):null,history:(e.history||[]).slice(-5).map(n=>({text:f(n.text),at:Number(n.at)||0}))}}function ce(e){try{return _(e,{now:e?.createdAt||1}),!!e?.id}catch{return!1}}function y(e){const r=f(e).toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").split(/\s+/).filter(s=>s&&!z.has(s));return[...new Set(r)].sort().join(" ")}const z=new Set(["a","an","the","i","im","me","my","mine","we","our","us","you","your","is","am","are","was","were","be","been","being","do","does","did","to","of","in","on","at","for","with","and","or","that","this","it","please","always","usually","generally","really","just","very","so","remember","note","noting","user","prefer","prefers","preferred","like","likes"]);function P(e){const r=f(e).toLowerCase().replace(/^the\s+/,"");if(/^(?:goes by|name is|is called|called)\b/.test(r))return"name";if(/^pronouns\b/.test(r))return"pronouns";const s=/^(?:my\s+|their\s+)?([\p{L}\p{N}][\p{L}\p{N} '-]{0,28}?)\s+(?:is|are|was|were)\b/u.exec(r);if(!s)return"";const o=s[1].split(/\s+/).filter(t=>!z.has(t)).join(" ");return o.length>=3?o:""}function j(e,r){const s=new Set(y(e).split(" ").filter(Boolean)),o=new Set(y(r).split(" ").filter(Boolean));if(!s.size||!o.size)return 0;let t=0;for(const a of s)o.has(a)&&(t+=1);return t/(s.size+o.size-t)}function W(e,r){const s=new Set(y(e).split(" ").filter(Boolean)),o=new Set(y(r).split(" ").filter(Boolean));if(!s.size||!o.size)return 0;let t=0;for(const a of s)o.has(a)&&(t+=1);return t/Math.min(s.size,o.size)}const K=.8,V=[{re:/^(?:please\s+)?(?:remember|memorize|memorise)(?:\s+that|\s+this)?[:,]?\s+(.+)$/i,kind:"fact"},{re:/^(?:please\s+)?(?:keep in mind|bear in mind|don'?t forget|do not forget)(?:\s+that)?[:,]?\s+(.+)$/i,kind:"fact"},{re:/^(?:please\s+)?(?:make a note|note)(?:\s+that|\s+of)[:,]?\s+(.+)$/i,kind:"fact"},{re:/^(?:from now on|going forward|in future|in the future|henceforth)[:,]?\s+(.+)$/i,kind:"preference"},{re:/^(?:call me|i go by|refer to me as)\s+(.+)$/i,kind:"identity",rebuild:e=>`Goes by ${x(e[1])}`},{re:/^my name(?:'s| is)\s+(.+)$/i,kind:"identity",rebuild:e=>`Name is ${x(e[1])}`},{re:/^(?:always|never)\s+(.+)$/i,kind:"preference",rebuild:(e,r)=>N(r)}],I=/^(?:(?:no|nope|yes|yeah|yep|ok|okay|sure|well|and|also|just|so|oh|hey|actually|then|but)[,.!]?\s+){1,3}/i,L=/^(?:please\s+)?(?:remember|memorize|memorise|save|note|keep)\s+(?:it|this|that)(?:\s+(?:for me|please))?\s*[.!]*$/i,H=[{re:/^i (?:prefer|like|want|need)\s+(.+)$/i,kind:"preference",confidence:.7},{re:/^i (?:hate|dislike|don'?t like|do not like|can'?t stand)\s+(.+)$/i,kind:"preference",confidence:.7},{re:/^i(?:'m| am)(?: a| an| the)?\s+(.+)$/i,kind:"identity",confidence:.6},{re:/^i (?:work|working) (?:on|at|with)\s+(.+)$/i,kind:"project",confidence:.6},{re:/^i(?:'m| am) (?:working|building|writing) (?:on\s+)?(.+)$/i,kind:"project",confidence:.6},{re:/^(?:we|our team|my team) (?:use|uses|are using|run|runs|deploy|deploys)\s+(.+)$/i,kind:"fact",confidence:.6},{re:/^my (?:\w+\s){0,2}?(?:is|are)\s+(.+)$/i,kind:"fact",confidence:.55}],G=[/^(?:please\s+)?forget(?:\s+that|\s+about)?[:,]?\s+(.+)$/i,/^(?:please\s+)?(?:stop remembering|no longer remember|un-?remember)[:,]?\s+(.+)$/i],q=/(?:^|\s)(?:do|does|did|can|could|would|will|what|when|where|who|why|how|are|is)\s+(?:you|i|we|it)\b/i,X=/\b(?:can'?t|cannot|don'?t|do not|couldn'?t|never|didn'?t)\s+(?:seem to\s+)?(?:remember|recall|forget)\b/i;function le(e,{maxCandidates:r=3,includeReveals:s=!0,previous:o=""}={}){const t=[],n=String(e||"").replace(/```[\s\S]*?```/g," ").replace(/`[^`]*`/g," ");for(const i of B(n)){if(t.length>=r)break;if(i.length<v||X.test(i))continue;let h=!1;for(const l of G){const u=l.exec(i);if(!u)continue;const p=E(x(u[1]));p.length>=v&&(t.push({op:"forget",text:p,kind:"fact",confidence:1,explicit:!0,trigger:"forget"}),h=!0);break}if(h||q.test(i))continue;const d=i.replace(I,"");if(L.test(d)){const l=B(String(o||"").replace(/```[\s\S]*?```/g," ")).map(u=>u.trim()).find(u=>u.length>=v&&!L.test(u.replace(I,"")));l&&t.push({op:"remember",text:E(N(x(l))),kind:"fact",confidence:1,explicit:!0,trigger:"command"});continue}for(const{re:l,kind:u,rebuild:p}of V){const g=l.exec(d);if(!g)continue;const b=E(p?p(g,d):N(x(g[1])));b.length>=v&&(t.push({op:"remember",text:b,kind:u,confidence:1,explicit:!0,trigger:"command"}),h=!0);break}if(!(h||!s))for(const{re:l,kind:u,confidence:p}of H){if(!l.test(i))continue;const g=E(N(i));g.split(/\s+/).length>=3&&t.push({op:"remember",text:g,kind:u,confidence:p,explicit:!1,trigger:"reveal"});break}}return t.slice(0,r)}function de(e,r,{now:s=0,newId:o=null}={}){const t=_(r,{now:s,newId:o}),a=(e||[]).filter(i=>i&&i.scope===t.scope),n=t.slot&&a.find(i=>i.slot===t.slot)||a.find(i=>i.key===t.key)||a.find(i=>i.kind===t.kind&&j(i.text,t.text)>=K);return n?f(n.text).toLowerCase()===t.text.toLowerCase()?{action:"duplicate",record:{...n,updatedAt:Number(s)||n.updatedAt,useCount:n.useCount+1},replaces:n}:{action:"update",record:{...n,text:t.text,key:t.key,slot:t.slot,kind:t.kind,tags:t.tags.length?t.tags:n.tags,confidence:t.confidence,source:t.source,updatedAt:Number(s)||n.updatedAt,history:[...n.history,{text:n.text,at:n.updatedAt}].slice(-5)},replaces:n}:{action:"create",record:t,replaces:null}}function ue(e,r,{limit:s=5}={}){const o=f(r);if(!o)return[];const t=(e||[]).filter(n=>n.id===o);if(t.length)return t;const a=y(o);return(e||[]).map(n=>({m:n,s:n.key===a?1:Math.max(j(n.text,o),W(o,n.text))})).filter(n=>n.s>=.5).sort((n,i)=>i.s-n.s).slice(0,s).map(n=>n.m)}const Z=/\b(?:(?:i|we|user|they)\s+(?:live|lives|stay|stays|reside|resides|am based|are based|is based|am located|are located|is located|moved|have moved)\s+(?:in|at|near|to|around|outside)|(?:i'?m|i am|we'?re|we are|user is|they are|they'?re)\s+(?:from|based in|located in|living in|in the)\b|(?:my|our|user'?s|their)\s+(?:home|home ?town|city|town|address|location|zip|postcode|neighbou?rhood|area)\b|\blives?\s+(?:in|at|near)|\bhome is\b)/i,J=/\b(?:how far|how long (?:does it take |will it take |would it take |is the (?:drive|flight|ride|walk) )?to (?:get|drive|walk|fly|reach|go)|distance (?:to|from)|drive to|driving to|commute|directions? to|route to|get(?:ting)? to|near(?:by| me| here)|(?:around|from|over) (?:here|me)|close to me|in my area|local (?:time|news|weather|restaurants?|shops?|stores?|events?)|where i (?:am|live)|(?:rain|snow|weather|sunny|cold|hot|warm|windy) here)\b|^\s*(?:what(?:'s| is) the |how(?:'s| is) the )?(?:weather|forecast|temperature|sunset|sunrise)\b/i,Q=/\bfrom\s+(?!here\b|home\b|me\b|my\b|where\b)[\p{L}]/iu;function ee(e){return Z.test(String(e?.text||""))}function te(e){const r=String(e||"");return J.test(r)&&!Q.test(r)}function fe(e,{text:r="",scopes:s=["global"],kinds:o=null,now:t=0,limit:a=24,maxChars:n=R,includeAmbient:i=!0,ambientKinds:h=F}={}){const d=new Set(s.length?s:["global"]),l=new Set(y(r).split(" ").filter(Boolean)),u=te(r),g=(e||[]).filter(c=>c&&c.text).filter(c=>d.has(c.scope)).filter(c=>!o||o.includes(c.kind)).filter(c=>!c.expiresAt||!t||c.expiresAt>t).map(c=>{const A=new Set(c.key.split(" ").filter(Boolean));let M=0;for(const Y of A)l.has(Y)&&(M+=1);const m=Math.max(A.size?M/A.size:0,u&&ee(c)?1:0),w=i&&h.includes(c.kind)&&k[c.kind]?.ambient&&A.size<=re,T=t&&c.updatedAt?Math.max(0,1-(t-c.updatedAt)/oe):0,D=Math.min(1,c.useCount/10);return{m:c,keep:c.pinned||w||m>0,score:(c.pinned?100:0)+(w?10:0)+m*8+T+D}}),b=[];let C=0;for(const{m:c,keep:A,score:M}of g.filter(m=>m.keep).sort((m,w)=>w.score-m.score)){if(b.length>=a)break;if(b.some(w=>ne(w,c)))continue;const m=c.text.length+c.kind.length+6;if(C+m>n&&b.length)break;C+=m,b.push(c)}return b}const re=14;function ne(e,r){const s=new Set(String(e?.key||"").split(" ").filter(Boolean)),o=new Set(String(r?.key||"").split(" ").filter(Boolean));if(!s.size||!o.size)return!1;const[t,a]=s.size<=o.size?[s,o]:[o,s];let n=0;for(const i of t)a.has(i)&&(n+=1);return n/t.size>=.7}const oe=365*24*60*60*1e3;function he(e,{heading:r="What you already know about this user",maxChars:s=R}={}){const o=(e||[]).filter(n=>n&&n.text);if(!o.length)return"";const t=[];let a=0;for(const n of o){const i=`- (${n.kind}) ${n.text}`;if(a+i.length>s&&t.length)break;a+=i.length+1,t.push(i)}return[`## ${r}`,"Saved by the user in ChatPanel and true across conversations, agents and devices.","Apply them without being asked and without announcing them.",...t,"If the user states something durable about themselves, their preferences or their work, save it with the `memory` tool. If they correct one of these, update it — do not just agree."].join(`
2
- `)}function me(e,r,{now:s=0}={}){const o=new Set(r||[]);return(e||[]).map(t=>o.has(t.id)?{...t,usedAt:Number(s)||t.usedAt,useCount:t.useCount+1}:t)}function pe(e,{now:r=0,max:s=U}={}){const o=(e||[]).filter(Boolean),t=r?o.filter(i=>i.expiresAt&&i.expiresAt<=r):[];let a=t.length?o.filter(i=>!t.includes(i)):o;const n=[...t];if(a.length>s){const i=d=>(d.pinned?3:0)+(k[d.kind]?.ambient?1:0),h=[...a].sort((d,l)=>i(l)-i(d)||l.useCount-d.useCount||(l.usedAt||l.updatedAt)-(d.usedAt||d.updatedAt));n.push(...h.slice(s)),a=h.slice(0,s)}return{kept:a,dropped:n}}const ge=Object.freeze({name:"memory",description:'Save, update or remove a durable fact about the USER in ChatPanel — carried into every future conversation, on every model and agent. Use it the moment they state a standing preference ("always be terse"), an identity fact ("call me Alex"), or a constraint about their work that will still be true next week. Do NOT use it for one-off task details, anything already obvious from the conversation, or content that belongs in a note. Keep each memory one short self-contained sentence. Use `forget` when the user says something is no longer true, and `list` to see what is already stored before adding.',parameters:{type:"object",properties:{action:{type:"string",enum:["remember","forget","list"],description:"What to do."},text:{type:"string",description:`The fact, as one short sentence written in the third person ("Prefers terse answers"). Max ${S} characters. Required for remember; for forget, the memory to drop (its text or id).`},kind:{type:"string",enum:O,description:O.map(e=>`${e}: ${k[e].hint}`).join(" ")},tags:{type:"array",items:{type:"string"},description:"Optional short tags for grouping."}},required:["action"]}});function be(){return"`memory` saves something durable the user says about themselves, how they want to be helped, or their ongoing work — never task details or transient state — and you say in a short clause what you saved."}const se=Object.freeze({});function ye(e){let r=e;for(let s=Number(r?.v)||1;s<1;s+=1){const o=se[s];if(!o)throw new $(`no upcaster from memory v${s}`);r=o(r)}return r}const f=e=>String(e??"").replace(/\s+/g," ").trim(),ie=e=>Number.isFinite(e)?Math.min(1,Math.max(0,e)):1,x=e=>f(e).replace(/[.,;:!]+$/,""),E=e=>e.length>S?`${e.slice(0,S-1).trimEnd()}…`:e,N=e=>{const r=x(e);return r&&r[0].toUpperCase()+r.slice(1)};function B(e){return String(e||"").split(/\n+/).flatMap(r=>f(r).replace(/^[-*+•]\s*|^\d+[.)]\s*/,"").split(/(?<=[.!?])\s+(?=[A-Z"'])/)).map(f).filter(Boolean)}export{F as AMBIENT_KINDS,re as AMBIENT_MAX_WORDS,R as DEFAULT_BLOCK_CHARS,U as DEFAULT_MAX_MEMORIES,S as MAX_MEMORY_CHARS,k as MEMORY_KINDS,O as MEMORY_KIND_NAMES,ge as MEMORY_TOOL_SPEC,se as MEMORY_UPCASTERS,ae as MEMORY_VERSION,v as MIN_MEMORY_CHARS,$ as MemoryError,K as SAME_FACT,le as candidatesFrom,W as containment,ce as isValidMemory,me as markUsed,ue as matchForForget,he as memoryBlock,y as memoryKey,be as memoryToolSystem,te as needsWhere,_ as normalizeMemory,pe as pruneMemories,fe as recall,de as reconcile,ne as sameMemory,ee as saysWhere,j as similarity,P as slotOf,ye as upcastMemory};
1
+ const ce=1,k=Object.freeze({identity:{label:"Identity",ambient:!0,hint:"Who the user is — name, role, pronouns, language, timezone."},preference:{label:"Preference",ambient:!0,hint:"How they want things done — tone, format, defaults, things never to do."},project:{label:"Project",ambient:!1,hint:"Ongoing work, goals and constraints not derivable from the material itself."},fact:{label:"Fact",ambient:!1,hint:"A durable fact about their world — systems, teams, environments, conventions."},reference:{label:"Reference",ambient:!1,hint:"A pointer to something external — a URL, a dashboard, a ticket, a doc."}}),O=Object.freeze(Object.keys(k)),U=Object.freeze(O.filter(e=>k[e].ambient)),S=280,v=3,P=200,R=1200;class $ extends Error{constructor(o){super(o),this.name="MemoryError"}}function _(e={},{now:o=0,newId:r=null}={}){const n=f(e.text);if(n.length<v)throw new $("a memory needs text");if(n.length>S)throw new $(`a memory must be at most ${S} characters — save longer material as a note`);const t=k[e.kind]?e.kind:"fact",a=Number(e.createdAt)||Number(o)||0;return{id:String(e.id||(r?r():"")||""),v:1,text:n,kind:t,scope:String(e.scope||"global"),key:y(n),slot:f(e.slot).toLowerCase()||W(n),tags:[...new Set((e.tags||[]).map(s=>f(s).toLowerCase()).filter(Boolean))].slice(0,8),pinned:!!e.pinned,source:{via:String(e.source?.via||"user"),surface:String(e.source?.surface||""),ref:String(e.source?.ref||""),agent:String(e.source?.agent||"")},confidence:ae(e.confidence==null?1:Number(e.confidence)),createdAt:a,updatedAt:Number(e.updatedAt)||a,usedAt:Number(e.usedAt)||0,useCount:Math.max(0,Math.floor(Number(e.useCount)||0)),expiresAt:e.expiresAt?Number(e.expiresAt):null,history:(e.history||[]).slice(-5).map(s=>({text:f(s.text),at:Number(s.at)||0}))}}function le(e){try{return _(e,{now:e?.createdAt||1}),!!e?.id}catch{return!1}}function y(e){const o=f(e).toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").split(/\s+/).filter(r=>r&&!z.has(r));return[...new Set(o)].sort().join(" ")}const z=new Set(["a","an","the","i","im","me","my","mine","we","our","us","you","your","is","am","are","was","were","be","been","being","do","does","did","to","of","in","on","at","for","with","and","or","that","this","it","please","always","usually","generally","really","just","very","so","remember","note","noting","user","prefer","prefers","preferred","like","likes"]);function W(e){const o=f(e).toLowerCase().replace(/^the\s+/,"");if(/^(?:goes by|name is|is called|called)\b/.test(o))return"name";if(/^pronouns\b/.test(o))return"pronouns";const r=/^(?:my\s+|their\s+)?([\p{L}\p{N}][\p{L}\p{N} '-]{0,28}?)\s+(?:is|are|was|were)\b/u.exec(o);if(!r)return"";const n=r[1].split(/\s+/).filter(t=>!z.has(t)).join(" ");return n.length>=3?n:""}function L(e,o){const r=new Set(y(e).split(" ").filter(Boolean)),n=new Set(y(o).split(" ").filter(Boolean));if(!r.size||!n.size)return 0;let t=0;for(const a of r)n.has(a)&&(t+=1);return t/(r.size+n.size-t)}function K(e,o){const r=new Set(y(e).split(" ").filter(Boolean)),n=new Set(y(o).split(" ").filter(Boolean));if(!r.size||!n.size)return 0;let t=0;for(const a of r)n.has(a)&&(t+=1);return t/Math.min(r.size,n.size)}const H=.8,V=[{re:/^(?:please\s+)?(?:remember|memorize|memorise)(?:\s+that|\s+this)?[:,]?\s+(.+)$/i,kind:"fact"},{re:/^(?:please\s+)?(?:keep in mind|bear in mind|don'?t forget|do not forget)(?:\s+that)?[:,]?\s+(.+)$/i,kind:"fact"},{re:/^(?:please\s+)?(?:make a note|note)(?:\s+that|\s+of)[:,]?\s+(.+)$/i,kind:"fact"},{re:/^(?:from now on|going forward|in future|in the future|henceforth)[:,]?\s+(.+)$/i,kind:"preference"},{re:/^(?:call me|i go by|refer to me as)\s+(.+)$/i,kind:"identity",rebuild:e=>`Goes by ${x(e[1])}`},{re:/^my name(?:'s| is)\s+(.+)$/i,kind:"identity",rebuild:e=>`Name is ${x(e[1])}`},{re:/^(?:always|never)\s+(.+)$/i,kind:"preference",rebuild:(e,o)=>N(o)}],j=/^(?:(?:no|nope|yes|yeah|yep|ok|okay|sure|well|and|also|just|so|oh|hey|actually|then|but)[,.!]?\s+){1,3}/i,I=/^(?:please\s+)?(?:remember|memorize|memorise|save|note|keep)\s+(?:it|this|that)(?:\s+(?:for me|please))?\s*[.!]*$/i,G=[{re:/^i (?:prefer|like|want|need)\s+(.+)$/i,kind:"preference",confidence:.7},{re:/^i (?:hate|dislike|don'?t like|do not like|can'?t stand)\s+(.+)$/i,kind:"preference",confidence:.7},{re:/^i(?:'m| am)(?: a| an| the)?\s+(.+)$/i,kind:"identity",confidence:.6},{re:/^i (?:work|working) (?:on|at|with)\s+(.+)$/i,kind:"project",confidence:.6},{re:/^i(?:'m| am) (?:working|building|writing) (?:on\s+)?(.+)$/i,kind:"project",confidence:.6},{re:/^(?:we|our team|my team) (?:use|uses|are using|run|runs|deploy|deploys)\s+(.+)$/i,kind:"fact",confidence:.6},{re:/^my (?:\w+\s){0,2}?(?:is|are)\s+(.+)$/i,kind:"fact",confidence:.55}],q=[/^(?:please\s+)?forget(?:\s+that|\s+about)?[:,]?\s+(.+)$/i,/^(?:please\s+)?(?:stop remembering|no longer remember|un-?remember)[:,]?\s+(.+)$/i],X=/(?:^|\s)(?:do|does|did|can|could|would|will|what|when|where|who|why|how|are|is)\s+(?:you|i|we|it)\b/i,Z=/\b(?:can'?t|cannot|don'?t|do not|couldn'?t|never|didn'?t)\s+(?:seem to\s+)?(?:remember|recall|forget)\b/i;function de(e,{maxCandidates:o=3,includeReveals:r=!0,previous:n=""}={}){const t=[],s=String(e||"").replace(/```[\s\S]*?```/g," ").replace(/`[^`]*`/g," ");for(const i of T(s)){if(t.length>=o)break;if(i.length<v||Z.test(i))continue;let h=!1;for(const l of q){const u=l.exec(i);if(!u)continue;const p=E(x(u[1]));p.length>=v&&(t.push({op:"forget",text:p,kind:"fact",confidence:1,explicit:!0,trigger:"forget"}),h=!0);break}if(h||X.test(i))continue;const d=i.replace(j,"");if(I.test(d)){const l=T(String(n||"").replace(/```[\s\S]*?```/g," ")).map(u=>u.trim()).find(u=>u.length>=v&&!I.test(u.replace(j,"")));l&&t.push({op:"remember",text:E(N(x(l))),kind:"fact",confidence:1,explicit:!0,trigger:"command"});continue}for(const{re:l,kind:u,rebuild:p}of V){const g=l.exec(d);if(!g)continue;const b=E(p?p(g,d):N(x(g[1])));b.length>=v&&(t.push({op:"remember",text:b,kind:u,confidence:1,explicit:!0,trigger:"command"}),h=!0);break}if(!(h||!r))for(const{re:l,kind:u,confidence:p}of G){if(!l.test(i))continue;const g=E(N(i));g.split(/\s+/).length>=3&&t.push({op:"remember",text:g,kind:u,confidence:p,explicit:!1,trigger:"reveal"});break}}return t.slice(0,o)}function ue(e,o,{now:r=0,newId:n=null}={}){const t=_(o,{now:r,newId:n}),a=(e||[]).filter(i=>i&&i.scope===t.scope),s=t.slot&&a.find(i=>i.slot===t.slot)||a.find(i=>i.key===t.key)||a.find(i=>i.kind===t.kind&&L(i.text,t.text)>=H);return s?f(s.text).toLowerCase()===t.text.toLowerCase()?{action:"duplicate",record:{...s,updatedAt:Number(r)||s.updatedAt,useCount:s.useCount+1},replaces:s}:{action:"update",record:{...s,text:t.text,key:t.key,slot:t.slot,kind:t.kind,tags:t.tags.length?t.tags:s.tags,confidence:t.confidence,source:t.source,updatedAt:Number(r)||s.updatedAt,history:[...s.history,{text:s.text,at:s.updatedAt}].slice(-5)},replaces:s}:{action:"create",record:t,replaces:null}}function fe(e,o,{limit:r=5}={}){const n=f(o);if(!n)return[];const t=(e||[]).filter(s=>s.id===n);if(t.length)return t;const a=y(n);return(e||[]).map(s=>({m:s,s:s.key===a?1:Math.max(L(s.text,n),K(n,s.text))})).filter(s=>s.s>=.5).sort((s,i)=>i.s-s.s).slice(0,r).map(s=>s.m)}const J=/\b(?:(?:i|we|user|they)\s+(?:live|lives|stay|stays|reside|resides|am based|are based|is based|am located|are located|is located|moved|have moved)\s+(?:in|at|near|to|around|outside)|(?:i'?m|i am|we'?re|we are|user is|they are|they'?re)\s+(?:from|based in|located in|living in)\b|(?:my|our|user'?s|their)\s+(?:home|home ?town|city|town|address|location|zip|postcode|neighbou?rhood|area)\b|\blives?\s+(?:in|at|near)|\bhome is\b)/i,Q=/\b(?:how far|how long (?:does it take |will it take |would it take |is the (?:drive|flight|ride|walk) )?to (?:get|drive|walk|fly|reach|go)|distance (?:to|from)|drive to|driving to|commute|directions? to|route to|get(?:ting)? to|near(?:by| me| here)|(?:around|from|over) (?:here|me)|close to me|in my area|local (?:time|news|weather|restaurants?|shops?|stores?|events?)|where i (?:am|live)|(?:rain|snow|weather|sunny|cold|hot|warm|windy) here)\b|^\s*(?:what(?:'s| is) the |how(?:'s| is) the )?(?:weather|forecast|temperature|sunset|sunrise)\b/i,ee=/\bfrom\s+(?!here\b|home\b|me\b|my\b|where\b)[\p{L}]/iu,te=/\b(?:live|lives|living|reside|resides|based|located|moved|home is|home ?town is)\s+(?:in|at|to|near|around)?\s*([\p{Lu}0-9][^.;!?\n]{1,60})/u;function he(e=[]){const o=(Array.isArray(e)?e:[]).filter(r=>r&&typeof r.text=="string"&&B(r)).sort((r,n)=>Number(n.pinned)-Number(r.pinned)||(n.updatedAt||0)-(r.updatedAt||0));for(const r of o){const n=te.exec(r.text);if(!n)continue;const t=n[1].split(/\s+(?:with|and|since|for|where|which|who|because|but)\b/i)[0].replace(/[,\s]+$/,"").trim();if(t)return t}return""}function B(e){return J.test(String(e?.text||""))}function re(e){const o=String(e||"");return Q.test(o)&&!ee.test(o)}function me(e,{text:o="",scopes:r=["global"],kinds:n=null,now:t=0,limit:a=24,maxChars:s=R,includeAmbient:i=!0,ambientKinds:h=U}={}){const d=new Set(r.length?r:["global"]),l=new Set(y(o).split(" ").filter(Boolean)),u=re(o),g=(e||[]).filter(c=>c&&c.text).filter(c=>d.has(c.scope)).filter(c=>!n||n.includes(c.kind)).filter(c=>!c.expiresAt||!t||c.expiresAt>t).map(c=>{const A=new Set(c.key.split(" ").filter(Boolean));let M=0;for(const F of A)l.has(F)&&(M+=1);const m=Math.max(A.size?M/A.size:0,u&&B(c)?1:0),w=i&&h.includes(c.kind)&&k[c.kind]?.ambient&&A.size<=ne,D=t&&c.updatedAt?Math.max(0,1-(t-c.updatedAt)/se):0,Y=Math.min(1,c.useCount/10);return{m:c,keep:c.pinned||w||m>0,score:(c.pinned?100:0)+(w?10:0)+m*8+D+Y}}),b=[];let C=0;for(const{m:c,keep:A,score:M}of g.filter(m=>m.keep).sort((m,w)=>w.score-m.score)){if(b.length>=a)break;if(b.some(w=>oe(w,c)))continue;const m=c.text.length+c.kind.length+6;if(C+m>s&&b.length)break;C+=m,b.push(c)}return b}const ne=14;function oe(e,o){const r=new Set(String(e?.key||"").split(" ").filter(Boolean)),n=new Set(String(o?.key||"").split(" ").filter(Boolean));if(!r.size||!n.size)return!1;const[t,a]=r.size<=n.size?[r,n]:[n,r];let s=0;for(const i of t)a.has(i)&&(s+=1);return s/t.size>=.7}const se=365*24*60*60*1e3;function pe(e,{heading:o="What you already know about this user",maxChars:r=R}={}){const n=(e||[]).filter(s=>s&&s.text);if(!n.length)return"";const t=[];let a=0;for(const s of n){const i=`- (${s.kind}) ${s.text}`;if(a+i.length>r&&t.length)break;a+=i.length+1,t.push(i)}return[`## ${o}`,"Saved by the user in Chap and true across conversations, agents and devices.","Apply them without being asked and without announcing them.",...t,"If the user states something durable about themselves, their preferences or their work, save it with the `memory` tool. If they correct one of these, update it — do not just agree."].join(`
2
+ `)}function ge(e,o,{now:r=0}={}){const n=new Set(o||[]);return(e||[]).map(t=>n.has(t.id)?{...t,usedAt:Number(r)||t.usedAt,useCount:t.useCount+1}:t)}function be(e,{now:o=0,max:r=P}={}){const n=(e||[]).filter(Boolean),t=o?n.filter(i=>i.expiresAt&&i.expiresAt<=o):[];let a=t.length?n.filter(i=>!t.includes(i)):n;const s=[...t];if(a.length>r){const i=d=>(d.pinned?3:0)+(k[d.kind]?.ambient?1:0),h=[...a].sort((d,l)=>i(l)-i(d)||l.useCount-d.useCount||(l.usedAt||l.updatedAt)-(d.usedAt||d.updatedAt));s.push(...h.slice(r)),a=h.slice(0,r)}return{kept:a,dropped:s}}const ye=Object.freeze({name:"memory",description:'Save, update or remove a durable fact about the USER in Chap — carried into every future conversation, on every model and agent. Use it the moment they state a standing preference ("always be terse"), an identity fact ("call me Alex"), or a constraint about their work that will still be true next week. Do NOT use it for one-off task details, anything already obvious from the conversation, or content that belongs in a note. Keep each memory one short self-contained sentence. Use `forget` when the user says something is no longer true, and `list` to see what is already stored before adding.',parameters:{type:"object",properties:{action:{type:"string",enum:["remember","forget","list"],description:"What to do."},text:{type:"string",description:`The fact, as one short sentence written in the third person ("Prefers terse answers"). Max ${S} characters. Required for remember; for forget, the memory to drop (its text or id).`},kind:{type:"string",enum:O,description:O.map(e=>`${e}: ${k[e].hint}`).join(" ")},tags:{type:"array",items:{type:"string"},description:"Optional short tags for grouping."}},required:["action"]}});function we(){return"`memory` saves something durable the user says about themselves, how they want to be helped, or their ongoing work — never task details or transient state — and you say in a short clause what you saved."}const ie=Object.freeze({});function ke(e){let o=e;for(let r=Number(o?.v)||1;r<1;r+=1){const n=ie[r];if(!n)throw new $(`no upcaster from memory v${r}`);o=n(o)}return o}const f=e=>String(e??"").replace(/\s+/g," ").trim(),ae=e=>Number.isFinite(e)?Math.min(1,Math.max(0,e)):1,x=e=>f(e).replace(/[.,;:!]+$/,""),E=e=>e.length>S?`${e.slice(0,S-1).trimEnd()}…`:e,N=e=>{const o=x(e);return o&&o[0].toUpperCase()+o.slice(1)};function T(e){return String(e||"").split(/\n+/).flatMap(o=>f(o).replace(/^[-*+•]\s*|^\d+[.)]\s*/,"").split(/(?<=[.!?])\s+(?=[A-Z"'])/)).map(f).filter(Boolean)}export{U as AMBIENT_KINDS,ne as AMBIENT_MAX_WORDS,R as DEFAULT_BLOCK_CHARS,P as DEFAULT_MAX_MEMORIES,S as MAX_MEMORY_CHARS,k as MEMORY_KINDS,O as MEMORY_KIND_NAMES,ye as MEMORY_TOOL_SPEC,ie as MEMORY_UPCASTERS,ce as MEMORY_VERSION,v as MIN_MEMORY_CHARS,$ as MemoryError,H as SAME_FACT,de as candidatesFrom,K as containment,he as homePlace,le as isValidMemory,ge as markUsed,fe as matchForForget,pe as memoryBlock,y as memoryKey,we as memoryToolSystem,re as needsWhere,_ as normalizeMemory,be as pruneMemories,me as recall,ue as reconcile,oe as sameMemory,B as saysWhere,L as similarity,W as slotOf,ke as upcastMemory};
@@ -1 +1 @@
1
- import{classifySource as R}from"./sources.js";import{defineModel as A}from"./router.js";import{windowOf as S}from"./context-window.js";const L=/^(ollama|lm-?studio|llama[-.]?cpp|llamafile|localai|local|vllm|mlx|mlx-lm|koboldcpp|jan|gpt4all|textgen|oobabooga)$/i;function b(e){const n=String(e||"").trim(),t=n.indexOf("/");return t>0&&L.test(n.slice(0,t))?"device":"any"}function g(e,n=null){if(e&&c.includes(e.reach))return e.reach;if(e?.provider_type==="agent"||e?.owned_by==="chatpanel-bridge"||n?.type==="agent"){const a=String(e?.id||""),o=e?.model||(a.includes("/")?a.slice(a.indexOf("/")+1):"");return b(o)}const i=String(n?.baseUrl||"");return i?p({baseUrl:i}):"any"}function p(e){if(e.kind==="bridge")return b(e.model);if(e.gatewayModel)return g(e);if(e.gateway){const i=String(e.model||""),a=(Array.isArray(e.modelOptions)?e.modelOptions:[]).find(o=>o&&typeof o=="object"&&o.id===i);return a?g(a):"any"}if(e.kind==="webllm")return"device";const n=String(e.baseUrl||e.url||"");if(/^https?:\/\/(localhost|127\.0\.0\.1|\[::1\]|0\.0\.0\.0)(:|\/|$)/i.test(n))return"device";const t=R(n);return t.internal&&t.matched!=="unparseable"?"trusted":"any"}const I=Object.freeze([{id:"tools",label:"Tools",hint:"Can call functions — needed for page actions, search and MCP."},{id:"vision",label:"Vision",hint:"Can read images and screenshots."},{id:"reasoning",label:"Reasoning",hint:"Thinks before answering — worth the wait on hard tasks."},{id:"long-context",label:"Long context",hint:"Handles large documents and long meetings."},{id:"coding",label:"Coding",hint:"Strong at writing and refactoring code."},{id:"json",label:"Structured output",hint:"Reliably returns valid JSON."},{id:"speech-in",label:"Speech in",hint:"Takes audio as input — a meeting, a voice note."},{id:"speech-out",label:"Speech out",hint:"Speaks its answer."},{id:"audio",label:"Audio",hint:"Understands audio content beyond speech — music, sounds."},{id:"image-out",label:"Image out",hint:"Generates images."}]);function E(e){const n=String(e.model||"").toLowerCase(),t=new Set(["json"]);return(e.kind==="bridge"||e.model)&&t.add("tools"),/gpt-4|gpt-5|claude|gemini|vision|vl\b|llava|pixtral/.test(n)&&t.add("vision"),/o1|o3|r1|reason|think|opus|sonnet|deepseek-r/.test(n)&&t.add("reasoning"),/200k|1m\b|long|gemini|claude|gpt-4\.1|gpt-5/.test(n)&&t.add("long-context"),/code|coder|codex|deepseek|qwen|opus|sonnet/.test(n)&&t.add("coding"),e.kind==="bridge"&&(t.add("coding"),t.add("reasoning")),[...t]}const y=[/localhost|127\.0\.0\.1|ollama|lm.?studio/i,/anthropic|openai\.com|api\.deepseek|googleapis|x\.ai/i,/(^|\W)bridge(\W|$)/i,/openrouter|huggingface|together|groq|fireworks|nvidia|replicate/i],k=1e3;function _(e,n){const t=`${e.baseUrl||e.url||""} ${e.name||""} ${n||e.kind||""}`;for(let i=0;i<y.length;i++)if(y[i].test(t))return k+i*10;return k+50}function w(e){const n=`${e.model||""} ${e.name||""}`.toLowerCase(),t=Number(/(\d+(?:\.\d+)?)\s*b\b/.exec(n)?.[1]);return Number.isFinite(t)?t>=60?.85:t>=20?.6:.3:/instant|mini|nano|tiny|lite|-small\b|haiku/.test(n)?.3:/opus|gpt-5|o1|o3|\bpro\b|ultra|deepseek-r|thinking/.test(n)?.9:/sonnet|gpt-4|flash|gemini|deepseek|qwen|mistral|codestral/.test(n)?.6:e.kind==="bridge"?.8:.5}function x(e,n){const t=e==="device"?1500:700,i=Number.isFinite(n)?n:.5;return Math.round(t*(.6+i))}function M(e,n){if(n==="device")return 0;const t=String(e.model||"").toLowerCase();return/opus|gpt-4|pro\b/.test(t)?5:/sonnet|mini|flash|haiku/.test(t)?1:2}function m(e){if(e==null||e===""||typeof e=="boolean")return null;const n=Number(e);return Number.isFinite(n)?n:null}function f(e,n={},{declared:t=!1}={}){if(!n||typeof n!="object")return e;const i={...e},a=m(n.providerRank);a!==null&&(i.providerRank=a,i.orderPinned=!0),Array.isArray(n.capabilities)&&(i.capabilities=[...n.capabilities]);for(const o of["costPer1k","latencyMs","quality","window"]){const l=m(n[o]);l!==null&&(i[o]=l)}if(typeof n.available=="boolean"&&(i.available=n.available),n.reach&&c.includes(n.reach)){const o=c.includes(e.reachDetected)?e.reachDetected:e.reach;i.reachDetected=o,s[n.reach]>s[e.reach]?i.reach=n.reach:t&&s[n.reach]<s[o]&&s[n.reach]>=s[v]&&(i.reach=n.reach,i.reachDeclared=!0)}return i}import{DEFAULT_MIN_CALLS as O,cardOverride as D}from"./model-ledger.js";import{cardOverride as V}from"./model-ledger.js";function H(e,n,{minCalls:t=O,jobKind:i=null,userOverride:a=null}={}){const{override:o,observed:l}=D(n,{minCalls:t,jobKind:i});let r=f(e,o);const u=new Set(n?.capabilities?.withdrawn||[]);return u.size&&Array.isArray(r.capabilities)&&(r={...r,capabilities:r.capabilities.filter(d=>!u.has(d))},l.push("capabilities")),a&&(r=f(r,a,{declared:!0})),{...r,observed:l}}const s={device:0,trusted:1,any:2},c=["device","trusted","any"],v="trusted";function N(e){const n=c.indexOf(e);return n<0?[...c]:c.slice(Math.min(n,s[v]))}function P(e,n){return!c.includes(n)||!c.includes(e)?!1:s[n]<s[e]}const C=Object.freeze([{id:"device",label:"On this device",hint:"The words never leave this machine."},{id:"trusted",label:"My machine/network",hint:"Your own machine, your own network, or a service your organisation runs and controls."},{id:"any",label:"Third party",hint:"Someone else’s service."}]),h=e=>C.find(n=>n.id===e)?.label||String(e||""),q='How far a request travels to reach it. ChatPanel reads this from the address, so a coding agent that answers from its vendor comes out as a third party — and you can say otherwise: further out to hold it at arm’s length, or "My machine/network" when your organisation’s own controls put it inside yours. That is your word rather than a detection, and the row says so. "On this device" is never offered: it means the words never leave this machine, which is a fact we detect rather than a level of trust anyone can grant.';function U(e){return N(e).map(n=>{const t=P(e,n);return{value:n,label:n===e?`${h(n)} (detected)`:t?`${h(n)} (you declare)`:h(n),detected:n===e,declares:t,hint:t?`ChatPanel detects ${h(e)}. Choose this only if it really is inside your machine or network — content from an internal source will then be allowed to reach it.`:C.find(i=>i.id===n)?.hint||""}})}function z(e,n=null){const t=p(e||{});return!n||typeof n!="object"||!n.reach?t:f({reach:t,reachDetected:t},n,{declared:!0}).reach}function B(e,n,{override:t=null,health:i=null}={}){if(!e||!e.model&&n!=="bridge"&&e.kind!=="bridge")return null;const a=e.id||e.name||e.model;if(!a)return null;const o=[e.name,e.model&&e.model!==e.name?e.model:null].filter(Boolean).join(" · ")||[e.bridgeAgent,e.model].filter(Boolean).join(" · ")||n||e.kind||String(a),l=n||e.kind,r=p(l==="bridge"?{...e,kind:"bridge"}:e),u={id:a,label:o,model:e.model||"",reach:r,reachDetected:r,classUsed:r==="device"?"L":l==="bridge"?"A":"C",capabilities:E({...e,kind:l}),window:S({...e,kind:l,reach:r}),costPer1k:M(e,r),latencyMs:x(r,w({...e,kind:l})),quality:w({...e,kind:l}),providerRank:_(e,l),available:e.enabled!==!1},d=f(u,t||{},{declared:!0});return e.enabled===!1&&(d.available=!1),m(t?.latencyMs)===null&&(d.latencyMs=x(r,d.quality)),A({...d,available:d.available&&(i?i.available!==!1:!0),rateLimited:!!i?.rateLimited})}export{O as DEFAULT_MIN_CALLS,I as KNOWN_CAPABILITIES,C as REACH_CHOICES,v as REACH_DECLARABLE_FLOOR,q as REACH_HELP,s as REACH_RANK,b as agentModelReach,H as applyCard,f as applyOverride,E as capabilitiesOf,V as cardOverride,M as costOf,B as inferCandidate,x as latencyOf,m as numericOverride,_ as providerRankOf,w as qualityOf,N as reachChoicesFor,z as reachFor,P as reachIsDeclaration,h as reachLabel,p as reachOf,g as reachOfGatewayModel,U as reachOptionsFor};
1
+ import{classifySource as A}from"./sources.js";import{defineModel as C}from"./router.js";import{windowOf as S}from"./context-window.js";const L=/^(ollama|lm-?studio|llama[-.]?cpp|llamafile|localai|local|vllm|mlx|mlx-lm|koboldcpp|jan|gpt4all|textgen|oobabooga)$/i;function b(e){const n=String(e||"").trim(),t=n.indexOf("/");return t>0&&L.test(n.slice(0,t))?"device":"any"}function g(e,n=null){if(e&&c.includes(e.reach))return e.reach;if(E(e)||n?.type==="agent"){const a=String(e?.id||""),o=e?.model||(a.includes("/")?a.slice(a.indexOf("/")+1):"");return b(o)}const i=String(n?.baseUrl||"");return i?p({baseUrl:i}):"any"}function E(e){return e?.provider_type==="agent"||e?.api==="agent"||e?.owned_by==="chatpanel-bridge"}function p(e){if(e.kind==="bridge")return b(e.model);if(e.gatewayModel)return g(e);if(e.gateway){const i=String(e.model||""),a=(Array.isArray(e.modelOptions)?e.modelOptions:[]).find(o=>o&&typeof o=="object"&&o.id===i);return a?g(a):"any"}if(e.kind==="webllm")return"device";const n=String(e.baseUrl||e.url||"");if(/^https?:\/\/(localhost|127\.0\.0\.1|\[::1\]|0\.0\.0\.0)(:|\/|$)/i.test(n))return"device";const t=A(n);return t.internal&&t.matched!=="unparseable"?"trusted":"any"}const H=Object.freeze([{id:"tools",label:"Tools",hint:"Can call functions — needed for page actions, search and MCP."},{id:"vision",label:"Vision",hint:"Can read images and screenshots."},{id:"reasoning",label:"Reasoning",hint:"Thinks before answering — worth the wait on hard tasks."},{id:"long-context",label:"Long context",hint:"Handles large documents and long meetings."},{id:"coding",label:"Coding",hint:"Strong at writing and refactoring code."},{id:"json",label:"Structured output",hint:"Reliably returns valid JSON."},{id:"speech-in",label:"Speech in",hint:"Takes audio as input — a meeting, a voice note."},{id:"speech-out",label:"Speech out",hint:"Speaks its answer."},{id:"audio",label:"Audio",hint:"Understands audio content beyond speech — music, sounds."},{id:"image-out",label:"Image out",hint:"Generates images."}]);function _(e){const n=String(e.model||"").toLowerCase(),t=new Set(["json"]);return(e.kind==="bridge"||e.model)&&t.add("tools"),/gpt-4|gpt-5|claude|gemini|vision|vl\b|llava|pixtral/.test(n)&&t.add("vision"),/o1|o3|r1|reason|think|opus|sonnet|deepseek-r/.test(n)&&t.add("reasoning"),/200k|1m\b|long|gemini|claude|gpt-4\.1|gpt-5/.test(n)&&t.add("long-context"),/code|coder|codex|deepseek|qwen|opus|sonnet/.test(n)&&t.add("coding"),e.kind==="bridge"&&(t.add("coding"),t.add("reasoning")),[...t]}const y=[/localhost|127\.0\.0\.1|ollama|lm.?studio/i,/anthropic|openai\.com|api\.deepseek|googleapis|x\.ai/i,/(^|\W)bridge(\W|$)/i,/openrouter|huggingface|together|groq|fireworks|nvidia|replicate/i],w=1e3;function M(e,n){const t=`${e.baseUrl||e.url||""} ${e.name||""} ${n||e.kind||""}`;for(let i=0;i<y.length;i++)if(y[i].test(t))return w+i*10;return w+50}function k(e){const n=`${e.model||""} ${e.name||""}`.toLowerCase(),t=Number(/(\d+(?:\.\d+)?)\s*b\b/.exec(n)?.[1]);return Number.isFinite(t)?t>=60?.85:t>=20?.6:.3:/instant|mini|nano|tiny|lite|-small\b|haiku/.test(n)?.3:/opus|gpt-5|o1|o3|\bpro\b|ultra|deepseek-r|thinking/.test(n)?.9:/sonnet|gpt-4|flash|gemini|deepseek|qwen|mistral|codestral/.test(n)?.6:e.kind==="bridge"?.8:.5}function x(e,n){const t=e==="device"?1500:700,i=Number.isFinite(n)?n:.5;return Math.round(t*(.6+i))}function D(e,n){if(n==="device")return 0;const t=String(e.model||"").toLowerCase();return/opus|gpt-4|pro\b/.test(t)?5:/sonnet|mini|flash|haiku/.test(t)?1:2}function m(e){if(e==null||e===""||typeof e=="boolean")return null;const n=Number(e);return Number.isFinite(n)?n:null}function f(e,n={},{declared:t=!1}={}){if(!n||typeof n!="object")return e;const i={...e},a=m(n.providerRank);a!==null&&(i.providerRank=a,i.orderPinned=!0),Array.isArray(n.capabilities)&&(i.capabilities=[...n.capabilities]);for(const o of["costPer1k","latencyMs","quality","window"]){const s=m(n[o]);s!==null&&(i[o]=s)}if(typeof n.available=="boolean"&&(i.available=n.available),n.reach&&c.includes(n.reach)){const o=c.includes(e.reachDetected)?e.reachDetected:e.reach;i.reachDetected=o,l[n.reach]>l[e.reach]?i.reach=n.reach:t&&l[n.reach]<l[o]&&l[n.reach]>=l[v]&&(i.reach=n.reach,i.reachDeclared=!0)}return i}import{DEFAULT_MIN_CALLS as O,cardOverride as N}from"./model-ledger.js";import{cardOverride as W}from"./model-ledger.js";function q(e,n,{minCalls:t=O,jobKind:i=null,userOverride:a=null}={}){const{override:o,observed:s}=N(n,{minCalls:t,jobKind:i});let r=f(e,o);const u=new Set(n?.capabilities?.withdrawn||[]);return u.size&&Array.isArray(r.capabilities)&&(r={...r,capabilities:r.capabilities.filter(d=>!u.has(d))},s.push("capabilities")),a&&(r=f(r,a,{declared:!0})),{...r,observed:s}}const l={device:0,trusted:1,any:2},c=["device","trusted","any"],v="trusted";function $(e){const n=c.indexOf(e);return n<0?[...c]:c.slice(Math.min(n,l[v]))}function j(e,n){return!c.includes(n)||!c.includes(e)?!1:l[n]<l[e]}const R=Object.freeze([{id:"device",label:"On this device",hint:"The words never leave this machine."},{id:"trusted",label:"My machine/network",hint:"Your own machine, your own network, or a service your organisation runs and controls."},{id:"any",label:"Third party",hint:"Someone else’s service."}]),h=e=>R.find(n=>n.id===e)?.label||String(e||""),U='How far a request travels to reach it. Chap reads this from the address, so a coding agent that answers from its vendor comes out as a third party — and you can say otherwise: further out to hold it at arm’s length, or "My machine/network" when your organisation’s own controls put it inside yours. That is your word rather than a detection, and the row says so. "On this device" is never offered: it means the words never leave this machine, which is a fact we detect rather than a level of trust anyone can grant.';function z(e){return $(e).map(n=>{const t=j(e,n);return{value:n,label:n===e?`${h(n)} (detected)`:t?`${h(n)} (you declare)`:h(n),detected:n===e,declares:t,hint:t?`Chap detects ${h(e)}. Choose this only if it really is inside your machine or network — content from an internal source will then be allowed to reach it.`:R.find(i=>i.id===n)?.hint||""}})}function B(e,n=null){const t=p(e||{});return!n||typeof n!="object"||!n.reach?t:f({reach:t,reachDetected:t},n,{declared:!0}).reach}function G(e,n,{override:t=null,health:i=null}={}){if(!e||!e.model&&n!=="bridge"&&e.kind!=="bridge")return null;const a=e.id||e.name||e.model;if(!a)return null;const o=[e.name,e.model&&e.model!==e.name?e.model:null].filter(Boolean).join(" · ")||[e.bridgeAgent,e.model].filter(Boolean).join(" · ")||n||e.kind||String(a),s=n||e.kind,r=p(s==="bridge"?{...e,kind:"bridge"}:e),u={id:a,label:o,model:e.model||"",reach:r,reachDetected:r,classUsed:r==="device"?"L":s==="bridge"?"A":"C",capabilities:_({...e,kind:s}),window:S({...e,kind:s,reach:r}),costPer1k:D(e,r),latencyMs:x(r,k({...e,kind:s})),quality:k({...e,kind:s}),providerRank:M(e,s),available:e.enabled!==!1},d=f(u,t||{},{declared:!0});return e.enabled===!1&&(d.available=!1),m(t?.latencyMs)===null&&(d.latencyMs=x(r,d.quality)),C({...d,available:d.available&&(i?i.available!==!1:!0),rateLimited:!!i?.rateLimited})}export{O as DEFAULT_MIN_CALLS,H as KNOWN_CAPABILITIES,R as REACH_CHOICES,v as REACH_DECLARABLE_FLOOR,U as REACH_HELP,l as REACH_RANK,b as agentModelReach,q as applyCard,f as applyOverride,_ as capabilitiesOf,W as cardOverride,D as costOf,G as inferCandidate,E as isGatewayAgentRow,x as latencyOf,m as numericOverride,M as providerRankOf,k as qualityOf,$ as reachChoicesFor,B as reachFor,j as reachIsDeclaration,h as reachLabel,p as reachOf,g as reachOfGatewayModel,z as reachOptionsFor};