@chatpanel/events 0.156.0 → 0.161.2

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.
@@ -0,0 +1 @@
1
+ import{EventError as b}from"./event.js";const d=e=>!!e&&typeof e=="object"&&!Array.isArray(e),l=e=>typeof e=="number"&&Number.isFinite(e),a=e=>{throw new b("SHAPE",e)},y=e=>Math.min(1,Math.max(0,e));function x(e){const t={};for(const[o,n]of Object.entries(e.questions)){const r={type:n.type,instructions:n.instructions};n.type==="choice"?r.criteria=Object.fromEntries(n.options.map(s=>[s.value,s.describe||s.value])):n.type==="score"&&(r.criteria=n.options.map(s=>s.describe?`${s.value}: ${s.describe}`:s.value)),t[o]=r}return{state:e.state,...e.model?{model:e.model}:{},questions:t}}function k(e,t){d(e)&&d(e.answers)||a("systemone: answers {} missing");const o={};for(const[n,r]of Object.entries(t.questions)){const s=e.answers[n];d(s)||a(`systemone: no answer for ${n}`);const p=d(s.probabilities)?s.probabilities:{},f=l(s.confidence)?y(s.confidence):void 0;if(r.type==="choice"){const i=typeof s.choice=="string"?s.choice:a(`systemone: ${n}.choice missing`),m=r.options.map(c=>({value:c.value,p:y(l(p[c.value])?p[c.value]:0)}));o[n]={value:i,p:m.find(c=>c.value===i)?.p??0,options:m,...f!=null?{confidence:f}:{}}}else if(r.type==="score"){l(s.score)||a(`systemone: ${n}.score missing`);const i=r.options.map((c,u)=>({value:c.value,p:y(l(p[String(u)])?p[String(u)]:0)})),m=i.reduce((c,u)=>u.p>c.p?u:c,i[0]);o[n]={value:s.score,p:m.p,options:i,...f!=null?{confidence:f}:{}}}else{l(s.noul)||a(`systemone: ${n}.noul missing`);const i=y(s.noul);o[n]={value:i>=.5,p:i>=.5?i:1-i,options:[{value:!0,p:i},{value:!1,p:1-i}]}}}return{answers:o,...typeof e.model=="string"&&e.model?{model:e.model}:{}}}function O(e){return{query:e.query,texts:e.documents,raw_scores:!1,return_text:!1}}function _(e,t){Array.isArray(e)||a("tei: an array of { index, score } expected");const o=e.map(n=>d(n)&&Number.isInteger(n.index)&&l(n.score)?{index:n.index,relevance_score:n.score}:a("tei: a result needs index and score")).sort((n,r)=>r.relevance_score-n.relevance_score);return{results:t.top_n!=null?o.slice(0,t.top_n):o}}function j(e,t){d(e)&&Array.isArray(e.results)||a("rerank: results[] missing");const o=e.results.map(n=>d(n)&&Number.isInteger(n.index)&&l(n.relevance_score)?{index:n.index,relevance_score:n.relevance_score}:a("rerank: a result needs index and relevance_score")).sort((n,r)=>r.relevance_score-n.relevance_score);return{results:t.top_n!=null?o.slice(0,t.top_n):o,...typeof e.model=="string"&&e.model?{model:e.model}:{}}}function S(e){return d(e)&&d(e.answers)||a("decide: answers {} missing"),{answers:e.answers,...typeof e.model=="string"&&e.model?{model:e.model}:{},...typeof e.calibrated=="boolean"?{calibrated:e.calibrated}:{}}}const v=Object.freeze({systemone:Object.freeze({id:"systemone",capability:"decide",route:"/v1/systemone",label:"TypeSafe System One (Jev · OpenDecision · Laya)",request:x,response:k}),tei:Object.freeze({id:"tei",capability:"rerank",route:"/rerank",label:"Text Embeddings Inference",request:O,response:_}),"rerank-standard":Object.freeze({id:"rerank-standard",capability:"rerank",route:"/v1/rerank",label:"Cohere / Jina rerank",request:e=>({...e,budgetMs:void 0}),response:j}),"decide-standard":Object.freeze({id:"decide-standard",capability:"decide",route:"/v1/decide",label:"ChatPanel decide",request:e=>({...e,budgetMs:void 0}),response:S})});function g(e){const t=v[e];if(!t)throw new b("SHAPE",`capability adapter ${JSON.stringify(e)} unknown (${Object.keys(v).join(", ")})`);return t}function A(e,t){const o=g(e),n=o.request(t);for(const r of Object.keys(n))n[r]===void 0&&delete n[r];return{route:o.route,body:n}}function $(e,t,o){return g(e).response(t,o)}export{v as ADAPTERS,A as adaptRequest,$ as adaptResponse,g as adapterFor};
@@ -1 +1 @@
1
- import{EventError as f}from"./event.js";const g=Object.freeze(["detect","decide","rerank","embed","stt","tts","search","read","extract"]),c=Object.freeze({detect:"/v1/detect",decide:"/v1/decide",rerank:"/v1/rerank",embed:"/v1/embeddings",stt:"/v1/audio/transcriptions",tts:"/v1/audio/speech",search:"/v1/search",read:"/v1/read",extract:"/v1/extract"}),m=Object.freeze(new Set(["search","read","extract"])),o=Object.freeze(["day","week","month","year"]),p=Object.freeze(["login","paywall","rate_limited","robots","tdm"]),u=Object.freeze(["markdown","text"]),A="/v1/capabilities",h="over_budget",a=e=>!!e&&typeof e=="object"&&!Array.isArray(e),i=e=>typeof e=="string"&&e.length>0,n=e=>typeof e=="number"&&Number.isFinite(e),r=(e,s)=>{if(!e)throw new f("SHAPE",s)};function v(e,s){if(!a(e)||!(e.calls>0))return null;const t=n(e.p50Ms)?e.p50Ms:0,l=n(e.charsPerSec)&&e.charsPerSec>0&&n(s)?s/e.charsPerSec*1e3:0;return Math.round(Math.max(t,l))}function $(e,s,t){if(!n(t)||t<=0)return null;const l=v(e,s);return l===null||l<=t?null:{error:{type:h,message:`predicted ${l} ms is over the ${t} ms budget`,predictedMs:l,budgetMs:t}}}function q(e){r(a(e),"detect: body must be an object"),r(typeof e.text=="string","detect: text (string) required");const s={text:e.text};return e.model!=null&&(r(i(e.model),"detect: model must be a non-empty string"),s.model=e.model),e.labels!=null&&(r(Array.isArray(e.labels)&&e.labels.every(i),"detect: labels must be string[]"),s.labels=e.labels),e.budgetMs!=null&&(r(n(e.budgetMs)&&e.budgetMs>=0,"detect: budgetMs must be a number ≥ 0"),s.budgetMs=e.budgetMs),s}function S(e,s=null){r(a(e),"detect: response must be an object"),r(Array.isArray(e.entities),"detect: entities[] required"),r(i(e.model),"detect: model required"),r(n(e.ms)&&e.ms>=0,"detect: ms required");for(const t of e.entities)r(a(t)&&i(t.value)&&i(t.type),"detect: entity needs value and type"),r(Number.isInteger(t.start)&&Number.isInteger(t.end)&&t.start>=0&&t.end>t.start,`detect: entity ${JSON.stringify(t.value)} needs start < end`),r(n(t.score)&&t.score>=0&&t.score<=1,`detect: entity ${JSON.stringify(t.value)} needs a score in [0,1]`),typeof s=="string"&&r(s.slice(t.start,t.end)===t.value,`detect: entity ${JSON.stringify(t.value)} is not at ${t.start}–${t.end} of the text`);return e}const d=e=>{if(!i(e))return!1;try{const s=new URL(e);return s.protocol==="http:"||s.protocol==="https:"}catch{return!1}};function R(e){r(a(e),"search: body must be an object"),r(i(e.q)&&e.q.trim().length>0,"search: q (non-empty string) required");const s={q:e.q.trim()};return e.limit!=null&&(r(Number.isInteger(e.limit)&&e.limit>=1&&e.limit<=50,"search: limit must be an integer 1–50"),s.limit=e.limit),e.lang!=null&&(r(i(e.lang)&&/^[a-z]{2}(-[A-Za-z]{2})?$/.test(e.lang),"search: lang must be a BCP-47 tag like en or en-US"),s.lang=e.lang),e.site!=null&&(r(i(e.site)&&!/[\s/]/.test(e.site),"search: site must be a hostname"),s.site=e.site.toLowerCase()),e.freshness!=null&&(r(o.includes(e.freshness),`search: freshness must be one of ${o.join(", ")}`),s.freshness=e.freshness),e.read!=null&&(r(Number.isInteger(e.read)&&e.read>=0&&e.read<=10,"search: read must be an integer 0–10"),s.read=e.read),e.provider!=null&&(r(i(e.provider),"search: provider must be a non-empty string"),s.provider=e.provider),e.budgetMs!=null&&(r(n(e.budgetMs)&&e.budgetMs>=0,"search: budgetMs must be a number ≥ 0"),s.budgetMs=e.budgetMs),s}function M(e){return r(a(e),"search: response must be an object"),r(Array.isArray(e.results),"search: results[] required"),r(i(e.provider),"search: provider required"),r(n(e.ms)&&e.ms>=0,"search: ms required"),e.results.forEach((s,t)=>{r(a(s)&&s.rank===t+1,`search: result ${t} must carry rank ${t+1}`),r(d(s.url),`search: result ${t+1} needs an absolute http(s) url`),r(i(s.title),`search: result ${t+1} needs a title`),r(typeof s.snippet=="string",`search: result ${t+1} needs a snippet (may be empty)`),s.read!=null&&b(s.read)}),e}function I(e){r(a(e),"read: body must be an object"),r(d(e.url),"read: url (absolute http(s)) required");const s={url:e.url,format:"markdown"};return e.format!=null&&(r(u.includes(e.format),`read: format must be one of ${u.join(", ")}`),s.format=e.format),e.maxChars!=null&&(r(Number.isInteger(e.maxChars)&&e.maxChars>=200,"read: maxChars must be an integer ≥ 200"),s.maxChars=e.maxChars),e.snippet!=null&&(r(typeof e.snippet=="string","read: snippet must be a string"),s.snippet=e.snippet),e.provider!=null&&(r(i(e.provider),"read: provider must be a non-empty string"),s.provider=e.provider),e.budgetMs!=null&&(r(n(e.budgetMs)&&e.budgetMs>=0,"read: budgetMs must be a number ≥ 0"),s.budgetMs=e.budgetMs),s}function b(e){r(a(e),"read: response must be an object"),r(d(e.url),"read: url (absolute, where the page landed) required"),r(typeof e.title=="string","read: title (string, may be empty) required"),r(u.includes(e.format),"read: format required");const s=e[e.format];r(typeof s=="string",`read: ${e.format} (string) required`),r(Number.isInteger(e.chars)&&e.chars===s.length,"read: chars must equal the content length"),r(typeof e.truncated=="boolean","read: truncated (boolean) required"),r(i(e.provider),"read: provider required"),r(n(e.ms)&&e.ms>=0,"read: ms required"),r(Array.isArray(e.sections),"read: sections[] required");for(const t of e.sections)r(a(t)&&i(t.id)&&i(t.heading),"read: section needs id and heading"),r(Number.isInteger(t.level)&&t.level>=1&&t.level<=6,`read: section ${t.id} needs level 1–6`),r(Number.isInteger(t.offset)&&t.offset>=0&&t.offset<=s.length,`read: section ${t.id} offset must index the content`);return e.restricted!=null&&r(a(e.restricted)&&p.includes(e.restricted.reason),`read: restricted.reason must be one of ${p.join(", ")}`),e}function j(e){r(a(e),"capabilities: response must be an object"),r(Array.isArray(e.capabilities),"capabilities: capabilities[] required"),r(a(e.server)&&i(e.server.name)&&i(e.server.version),"capabilities: server {name, version} required");const s=new Set;for(const t of e.capabilities)r(a(t)&&g.includes(t.id),`capabilities: unknown capability id ${JSON.stringify(t?.id)}`),r(!s.has(t.id),`capabilities: ${t.id} listed twice`),s.add(t.id),r(t.route===c[t.id],`capabilities: ${t.id} must be served at ${c[t.id]}`),m.has(t.id)?(r(Array.isArray(t.providers)&&t.providers.length>0&&t.providers.every(i),`capabilities: ${t.id}.providers must be a non-empty string[]`),t.default!=null&&r(t.providers.includes(t.default),`capabilities: ${t.id}.default must be one of its providers`)):(r(Array.isArray(t.models)&&t.models.every(i),`capabilities: ${t.id}.models must be string[]`),t.default!=null&&r(t.models.includes(t.default),`capabilities: ${t.id}.default must be one of its models`)),t.labels!=null&&r(Array.isArray(t.labels)&&t.labels.every(i),`capabilities: ${t.id}.labels must be string[]`),t.stats!=null&&r(a(t.stats)&&(m.has(t.id)||n(t.stats.calls)),`capabilities: ${t.id}.stats needs calls`),t.runtime!=null&&r(a(t.runtime)&&i(t.runtime.state),`capabilities: ${t.id}.runtime needs state`);return e}function E(e){return(e?.capabilities||[]).map(s=>({id:s.id,route:s.route,models:s.models||[],providers:s.providers||[],ready:!s.runtime||["ready","external","idle"].includes(s.runtime.state),stats:s.stats||null,labels:s.labels||null}))}export{g as CAPABILITIES,c as CAPABILITY_ROUTES,A as DISCOVERY_ROUTE,h as OVER_BUDGET,m as PROVIDER_CAPABILITIES,u as READ_FORMATS,p as READ_RESTRICTIONS,o as SEARCH_FRESHNESS,E as offeredCapabilities,$ as overBudget,v as predictMs,j as validateCapabilitiesResponse,q as validateDetectRequest,S as validateDetectResponse,I as validateReadRequest,b as validateReadResponse,R as validateSearchRequest,M as validateSearchResponse};
1
+ import{EventError as v}from"./event.js";const q=Object.freeze(["detect","decide","rerank","embed","stt","tts","search","read","extract"]),p=Object.freeze({detect:"/v1/detect",decide:"/v1/decide",rerank:"/v1/rerank",embed:"/v1/embeddings",stt:"/v1/audio/transcriptions",tts:"/v1/audio/speech",search:"/v1/search",read:"/v1/read",extract:"/v1/extract"}),f=Object.freeze(new Set(["search","read","extract"])),g=Object.freeze(["day","week","month","year"]),b=Object.freeze(["login","paywall","rate_limited","robots","tdm"]),c=Object.freeze(["markdown","text"]),S="/v1/capabilities",$="over_budget",a=e=>!!e&&typeof e=="object"&&!Array.isArray(e),i=e=>typeof e=="string"&&e.length>0,d=e=>typeof e=="number"&&Number.isFinite(e),t=(e,s)=>{if(!e)throw new v("SHAPE",s)};function x(e,s){if(!a(e)||!(e.calls>0))return null;const r=d(e.p50Ms)?e.p50Ms:0,n=d(e.charsPerSec)&&e.charsPerSec>0&&d(s)?s/e.charsPerSec*1e3:0;return Math.round(Math.max(r,n))}function R(e,s,r){if(!d(r)||r<=0)return null;const n=x(e,s);return n===null||n<=r?null:{error:{type:$,message:`predicted ${n} ms is over the ${r} ms budget`,predictedMs:n,budgetMs:r}}}function j(e){t(a(e),"detect: body must be an object"),t(typeof e.text=="string","detect: text (string) required");const s={text:e.text};return e.model!=null&&(t(i(e.model),"detect: model must be a non-empty string"),s.model=e.model),e.labels!=null&&(t(Array.isArray(e.labels)&&e.labels.every(i),"detect: labels must be string[]"),s.labels=e.labels),e.budgetMs!=null&&(t(d(e.budgetMs)&&e.budgetMs>=0,"detect: budgetMs must be a number ≥ 0"),s.budgetMs=e.budgetMs),s}function w(e,s=null){t(a(e),"detect: response must be an object"),t(Array.isArray(e.entities),"detect: entities[] required"),t(i(e.model),"detect: model required"),t(d(e.ms)&&e.ms>=0,"detect: ms required");for(const r of e.entities)t(a(r)&&i(r.value)&&i(r.type),"detect: entity needs value and type"),t(Number.isInteger(r.start)&&Number.isInteger(r.end)&&r.start>=0&&r.end>r.start,`detect: entity ${JSON.stringify(r.value)} needs start < end`),t(d(r.score)&&r.score>=0&&r.score<=1,`detect: entity ${JSON.stringify(r.value)} needs a score in [0,1]`),typeof s=="string"&&t(s.slice(r.start,r.end)===r.value,`detect: entity ${JSON.stringify(r.value)} is not at ${r.start}–${r.end} of the text`);return e}const m=e=>{if(!i(e))return!1;try{const s=new URL(e);return s.protocol==="http:"||s.protocol==="https:"}catch{return!1}};function I(e){t(a(e),"search: body must be an object"),t(i(e.q)&&e.q.trim().length>0,"search: q (non-empty string) required");const s={q:e.q.trim()};return e.limit!=null&&(t(Number.isInteger(e.limit)&&e.limit>=1&&e.limit<=50,"search: limit must be an integer 1–50"),s.limit=e.limit),e.lang!=null&&(t(i(e.lang)&&/^[a-z]{2}(-[A-Za-z]{2})?$/.test(e.lang),"search: lang must be a BCP-47 tag like en or en-US"),s.lang=e.lang),e.site!=null&&(t(i(e.site)&&!/[\s/]/.test(e.site),"search: site must be a hostname"),s.site=e.site.toLowerCase()),e.freshness!=null&&(t(g.includes(e.freshness),`search: freshness must be one of ${g.join(", ")}`),s.freshness=e.freshness),e.read!=null&&(t(Number.isInteger(e.read)&&e.read>=0&&e.read<=10,"search: read must be an integer 0–10"),s.read=e.read),e.provider!=null&&(t(i(e.provider),"search: provider must be a non-empty string"),s.provider=e.provider),e.budgetMs!=null&&(t(d(e.budgetMs)&&e.budgetMs>=0,"search: budgetMs must be a number ≥ 0"),s.budgetMs=e.budgetMs),s}function _(e){return t(a(e),"search: response must be an object"),t(Array.isArray(e.results),"search: results[] required"),t(i(e.provider),"search: provider required"),t(d(e.ms)&&e.ms>=0,"search: ms required"),e.results.forEach((s,r)=>{t(a(s)&&s.rank===r+1,`search: result ${r} must carry rank ${r+1}`),t(m(s.url),`search: result ${r+1} needs an absolute http(s) url`),t(i(s.title),`search: result ${r+1} needs a title`),t(typeof s.snippet=="string",`search: result ${r+1} needs a snippet (may be empty)`),s.read!=null&&A(s.read)}),e}function O(e){t(a(e),"read: body must be an object"),t(m(e.url),"read: url (absolute http(s)) required");const s={url:e.url,format:"markdown"};return e.format!=null&&(t(c.includes(e.format),`read: format must be one of ${c.join(", ")}`),s.format=e.format),e.maxChars!=null&&(t(Number.isInteger(e.maxChars)&&e.maxChars>=200,"read: maxChars must be an integer ≥ 200"),s.maxChars=e.maxChars),e.snippet!=null&&(t(typeof e.snippet=="string","read: snippet must be a string"),s.snippet=e.snippet),e.provider!=null&&(t(i(e.provider),"read: provider must be a non-empty string"),s.provider=e.provider),e.budgetMs!=null&&(t(d(e.budgetMs)&&e.budgetMs>=0,"read: budgetMs must be a number ≥ 0"),s.budgetMs=e.budgetMs),s}function A(e){t(a(e),"read: response must be an object"),t(m(e.url),"read: url (absolute, where the page landed) required"),t(typeof e.title=="string","read: title (string, may be empty) required"),t(c.includes(e.format),"read: format required");const s=e[e.format];t(typeof s=="string",`read: ${e.format} (string) required`),t(Number.isInteger(e.chars)&&e.chars===s.length,"read: chars must equal the content length"),t(typeof e.truncated=="boolean","read: truncated (boolean) required"),t(i(e.provider),"read: provider required"),t(d(e.ms)&&e.ms>=0,"read: ms required"),t(Array.isArray(e.sections),"read: sections[] required");for(const r of e.sections)t(a(r)&&i(r.id)&&i(r.heading),"read: section needs id and heading"),t(Number.isInteger(r.level)&&r.level>=1&&r.level<=6,`read: section ${r.id} needs level 1–6`),t(Number.isInteger(r.offset)&&r.offset>=0&&r.offset<=s.length,`read: section ${r.id} offset must index the content`);return e.restricted!=null&&t(a(e.restricted)&&b.includes(e.restricted.reason),`read: restricted.reason must be one of ${b.join(", ")}`),e}const h=Object.freeze(["choice","score","noul"]),k=/^[A-Za-z_][A-Za-z0-9_]*$/;function E(e){t(a(e),"decide: body must be an object"),t(i(e.state),"decide: state (non-empty string) required"),t(a(e.questions)&&Object.keys(e.questions).length>0,"decide: questions {} required");const s={};for(const[n,u]of Object.entries(e.questions)){t(k.test(n),`decide: question key ${JSON.stringify(n)} must be an identifier`),t(a(u)&&h.includes(u.type),`decide: question ${n}.type must be one of ${h.join(", ")}`),t(i(u.instructions),`decide: question ${n} needs instructions`);const l={type:u.type,instructions:u.instructions};u.type==="noul"?t(u.options==null,`decide: question ${n}: a noul has no options`):(t(Array.isArray(u.options)&&u.options.length>=2&&u.options.length<=255,`decide: question ${n}.options needs 2–255 entries`),l.options=u.options.map(o=>i(o)?{value:o}:(t(a(o)&&i(o.value),`decide: question ${n}: an option is a string or { value, describe? }`),o.describe!=null?{value:o.value,describe:String(o.describe)}:{value:o.value})),t(new Set(l.options.map(o=>o.value)).size===l.options.length,`decide: question ${n}.options must be distinct`)),s[n]=l}const r={state:e.state,questions:s};return e.model!=null&&(t(i(e.model),"decide: model must be a non-empty string"),r.model=e.model),e.budgetMs!=null&&(t(d(e.budgetMs)&&e.budgetMs>=0,"decide: budgetMs must be a number ≥ 0"),r.budgetMs=e.budgetMs),r}function N(e,s=null){t(a(e),"decide: response must be an object"),t(a(e.answers),"decide: answers {} required"),t(i(e.model),"decide: model required"),t(d(e.ms)&&e.ms>=0,"decide: ms required"),e.calibrated!=null&&t(typeof e.calibrated=="boolean","decide: calibrated must be a boolean");const r=n=>d(n)&&n>=0&&n<=1;for(const n of Object.keys(s?s.questions:e.answers)){const u=e.answers[n];t(a(u),`decide: answer ${n} missing`),t(r(u.p),`decide: answer ${n}.p must be in [0,1]`),t(Array.isArray(u.options)&&u.options.every(o=>a(o)&&o.value!==void 0&&r(o.p)),`decide: answer ${n}.options must be [{ value, p }]`),u.confidence!=null&&t(r(u.confidence),`decide: answer ${n}.confidence must be in [0,1]`);const l=s?.questions?.[n];l?.type==="choice"&&t(l.options.some(o=>o.value===u.value),`decide: answer ${n}.value must be one of the options`),l?.type==="noul"&&t(typeof u.value=="boolean",`decide: answer ${n}.value must be a boolean`),l?.type==="score"&&t(d(u.value),`decide: answer ${n}.value must be a number`)}return e}function C(e){t(a(e),"rerank: body must be an object"),t(i(e.query),"rerank: query (non-empty string) required"),t(Array.isArray(e.documents)&&e.documents.length>=1&&e.documents.length<=1e3&&e.documents.every(r=>typeof r=="string"),"rerank: documents must be 1–1000 strings");const s={query:e.query,documents:e.documents.slice()};return e.top_n!=null&&(t(Number.isInteger(e.top_n)&&e.top_n>=1,"rerank: top_n must be an integer ≥ 1"),s.top_n=e.top_n),e.model!=null&&(t(i(e.model),"rerank: model must be a non-empty string"),s.model=e.model),e.budgetMs!=null&&(t(d(e.budgetMs)&&e.budgetMs>=0,"rerank: budgetMs must be a number ≥ 0"),s.budgetMs=e.budgetMs),s}function z(e,s=null){t(a(e),"rerank: response must be an object"),t(Array.isArray(e.results),"rerank: results[] required"),t(i(e.model),"rerank: model required"),t(d(e.ms)&&e.ms>=0,"rerank: ms required");const r=s?s.documents.length:1/0,n=new Set;let u=1/0;return e.results.forEach((l,o)=>{t(a(l)&&Number.isInteger(l.index)&&l.index>=0&&l.index<r,`rerank: result ${o} needs an index into the documents`),t(!n.has(l.index),`rerank: index ${l.index} listed twice`),n.add(l.index),t(d(l.relevance_score),`rerank: result ${o} needs relevance_score`),t(l.relevance_score<=u,"rerank: results must be ordered best first"),u=l.relevance_score}),s?.top_n!=null&&t(e.results.length<=s.top_n,`rerank: more than top_n (${s.top_n}) results`),e}function D(e){t(a(e),"capabilities: response must be an object"),t(Array.isArray(e.capabilities),"capabilities: capabilities[] required"),t(a(e.server)&&i(e.server.name)&&i(e.server.version),"capabilities: server {name, version} required");const s=new Set;for(const r of e.capabilities)t(a(r)&&q.includes(r.id),`capabilities: unknown capability id ${JSON.stringify(r?.id)}`),t(!s.has(r.id),`capabilities: ${r.id} listed twice`),s.add(r.id),t(r.route===p[r.id],`capabilities: ${r.id} must be served at ${p[r.id]}`),f.has(r.id)?(t(Array.isArray(r.providers)&&r.providers.length>0&&r.providers.every(i),`capabilities: ${r.id}.providers must be a non-empty string[]`),r.default!=null&&t(r.providers.includes(r.default),`capabilities: ${r.id}.default must be one of its providers`)):(t(Array.isArray(r.models)&&r.models.every(i),`capabilities: ${r.id}.models must be string[]`),r.default!=null&&t(r.models.includes(r.default),`capabilities: ${r.id}.default must be one of its models`)),r.labels!=null&&t(Array.isArray(r.labels)&&r.labels.every(i),`capabilities: ${r.id}.labels must be string[]`),r.stats!=null&&t(a(r.stats)&&(f.has(r.id)||d(r.stats.calls)),`capabilities: ${r.id}.stats needs calls`),r.runtime!=null&&t(a(r.runtime)&&i(r.runtime.state),`capabilities: ${r.id}.runtime needs state`);return e}function T(e){return(e?.capabilities||[]).map(s=>({id:s.id,route:s.route,models:s.models||[],providers:s.providers||[],ready:!s.runtime||["ready","external","idle"].includes(s.runtime.state),stats:s.stats||null,labels:s.labels||null}))}export{q as CAPABILITIES,p as CAPABILITY_ROUTES,h as DECIDE_QUESTION_TYPES,S as DISCOVERY_ROUTE,$ as OVER_BUDGET,f as PROVIDER_CAPABILITIES,c as READ_FORMATS,b as READ_RESTRICTIONS,g as SEARCH_FRESHNESS,T as offeredCapabilities,R as overBudget,x as predictMs,D as validateCapabilitiesResponse,E as validateDecideRequest,N as validateDecideResponse,j as validateDetectRequest,w as validateDetectResponse,O as validateReadRequest,A as validateReadResponse,C as validateRerankRequest,z as validateRerankResponse,I as validateSearchRequest,_ as validateSearchResponse};
@@ -0,0 +1,3 @@
1
+ import{validateDetectResponse as A,validateDecideResponse as q,validateRerankResponse as k,CAPABILITY_ROUTES as E}from"./capability-endpoints.js";const b=6e4,$=i=>String(i||"").replace(/\/+$/,"");function x(i,{gatewayUrl:y="http://127.0.0.1:4320",discovery:o=null,endpoints:d=[],detection:l=null}={}){const f=E[i];if(!f)return[];const c=[];i==="detect"&&l?.backend==="endpoint"&&l.url&&!l.bundled&&c.push({id:l.serverId||"custom",name:l.serverId?"your detector server":"your custom detector",url:l.url,apiKey:l.apiKey||"",where:"your detector server"});const e=$(y)||"http://127.0.0.1:4320",r=(o?.capabilities||[]).find(t=>t.id===i),a=!!r&&(!r.runtime||["ready","external","idle"].includes(r.runtime.state));(i==="detect"||a)&&c.push({id:"gateway",name:"the gateway",url:`${e}${f}`,where:r?.runtime?.name==="container"||r?.requirements?.egress==="none"||!r?"this device":"your server",...r?.default||r?.models?.[0]?{model:r.default||r.models[0]}:{},...typeof r?.calibrated=="boolean"?{calibrated:r.calibrated}:{}});for(const t of d||[]){if(!t||t.enabled===!1||!t.baseUrl||!Array.isArray(t.provides)||!t.provides.includes(i))continue;const n=t.providesInfo?.[i];c.push({id:t.id,name:t.name||t.baseUrl,url:`${$(t.baseUrl)}${f}`,apiKey:t.apiKey||"",where:t.name||"a server",...n?.models?.[0]?{model:n.models[0]}:{},...typeof n?.calibrated=="boolean"?{calibrated:n.calibrated}:{}})}return c}function T(i){return y=>{const o=i[y.kind];return!Array.isArray(o)||!o.length?null:{provider:o[0].id,providers:o,reason:`${o.length} ${y.kind} provider${o.length===1?"":"s"} at hand`}}}const R={detect:A,decide:q,rerank:k};async function I(i,y,o,{fetch:d,timeoutMs:l=8e3,validateAgainst:f=null}={}){if(typeof d!="function")throw new Error("capability: fetch is required");const c=await d(i.url,{method:"POST",headers:{"content-type":"application/json",accept:"application/json",...i.apiKey?{authorization:`Bearer ${i.apiKey}`}:{}},body:JSON.stringify(o),signal:AbortSignal.timeout(l)});let e=null;try{e=await c.json()}catch{e=null}if(!c.ok)throw new Error(`${i.id}: ${c.status}${e?.error?.type?` ${e.error.type}`:""}${e?.error?.message?` — ${e.error.message}`:""}`);return R[y](e,f)}async function K(i,y,o,{fetch:d,onTry:l=()=>{},...f}={}){let c="no provider";for(const e of i||[])try{return l(e),{doc:await I(e,y,o,{fetch:d,...f}),provider:e}}catch(r){const a=r?.message||String(r);c=a.startsWith(`${e.id}:`)?a:`${e.id}: ${a}`}throw new Error(c)}function O({fetch:i,normalizeEntities:y=d=>d.entities||[],budgetMs:o=5e3}={}){const d=async(e,r,a,t,n,u={})=>{const{doc:m,provider:p}=await K(e.assigned?.providers,a,t,{fetch:i,onTry:g=>r.partial?.({trying:g.id}),...u});return n(m,p)};async function l(e,r,a){const t=String(r.primary||"").slice(0,b);return d(e,a,"detect",{text:t,budgetMs:o},(n,u)=>{const m=y(n,{person:!0,org:!0,location:!0,number:!0}),p=[...new Set((n.entities||[]).map(g=>g.model).filter(Boolean))];return!p.length&&n.model&&p.push(n.model),{entities:m,models:p,provider:u.id,where:u.where}},{validateAgainst:t})}async function f(e,r,a){const t=String(r.primary||"").slice(0,b),n=e.questions||e.question||a.questions;if(!n||!Object.keys(n).length)throw new Error("decide: no questions on the step");return d(e,a,"decide",{state:t,questions:n,budgetMs:o},(m,p)=>({answers:m.answers,models:[m.model],calibrated:m.calibrated===!0,provider:p.id,where:p.where,ms:m.ms}),{timeoutMs:2e4})}async function c(e,r,a){const t=String(e.query||a.goal||"").trim(),n=r.primary;let u,m=s=>String(s),p;if(Array.isArray(n))u=n,m=s=>typeof s=="string"?s:String(s?.text??s?.snippet??s?.title??""),p=s=>s;else if(typeof n=="string"){const s=n.split(`
2
+ `);u=s.filter(h=>/^\s*[-*•]\s+/.test(h));const v=s.filter(h=>!/^\s*[-*•]\s+/.test(h));p=h=>[...h,...v].join(`
3
+ `)}else return n;if(!t||u.length<2)return n;const g=u.map(s=>m(s).replace(/\s+/g," ").trim().slice(0,2e3));return d(e,a,"rerank",{query:t,documents:g,budgetMs:o},s=>{const v=new Set(s.results.map(w=>w.index)),h=[...s.results.map(w=>u[w.index]),...u.filter((w,S)=>!v.has(S))];return p(h)},{validateAgainst:{documents:g}})}return{detect:l,decide:f,rerank:c}}export{I as callCapability,K as callFirstProvider,x as capabilityProviders,O as capabilityRunners,T as capabilitySource};
@@ -0,0 +1,3 @@
1
+ import{callFirstProvider as h}from"./capability-providers.js";import{DECIDE_QUESTION_TYPES as k,validateDecideRequest as A,validateRerankRequest as x}from"./capability-endpoints.js";const m="decide",g="rerank",v=6e4,E=200,O=2e3,f=160,q="A small DECISION MODEL and/or a RERANKER run on this device. For a sentiment, tone, urgency, spam/complaint, yes/no or pick-one judgement over text you already hold, call `decide` instead of judging it yourself — it answers in milliseconds with a probability per option. To order many candidates (search hits, comments, sections, options) by relevance to a question, call `rerank` instead of reading them all. Report its answer as the model's, with the probability, and say when it is marked uncalibrated.",_=Object.freeze({name:m,annotations:{readOnlyHint:!0,idempotentHint:!0},description:"Ask a small local decision model one or more typed questions about a text: a choice among options (sentiment, category, urgency), a score on an ordered rubric, or a yes/no. Returns the answer per question with its probability and the runner-up. Use it for any classification of text you already have — the whole thread, a comment, an email — rather than judging it yourself. Not a language model: it cannot explain, only decide.",parameters:{type:"object",properties:{text:{type:"string",description:"The text to judge, as-is. Up to ~60k characters."},questions:{type:"array",minItems:1,description:"One or more questions, each answered independently over the same text.",items:{type:"object",properties:{key:{type:"string",description:'A short identifier for the answer (e.g. "sentiment"). Optional.'},type:{type:"string",enum:[...k],description:'"choice" picks one option; "score" places the text on options read as an ordered rubric (worst first); "noul" is yes/no and takes no options.'},instructions:{type:"string",description:'What to decide, in one sentence — e.g. "The overall sentiment of the comments toward the company."'},options:{type:"array",items:{type:"string"},description:"For choice and score: 2–255 distinct options. Omit for noul."}},required:["type","instructions"],additionalProperties:!1}}},required:["text","questions"],additionalProperties:!1}}),S=Object.freeze({name:g,annotations:{readOnlyHint:!0,idempotentHint:!0},description:"Order candidate texts by relevance to a query with a local reranker (a cross-encoder). Give it the query and the candidates — search results, comments, paragraphs, options — and it returns them best first with a relevance score each. Use it to pick what to read or cite from many candidates instead of reading them all.",parameters:{type:"object",properties:{query:{type:"string",description:"What relevance is measured against — the question or the need."},documents:{type:"array",items:{type:"string"},minItems:2,description:"The candidates, 2–200 strings. Each is read up to ~2000 characters."},top_n:{type:"integer",minimum:1,description:"Return only the best N. Default: all, ordered."}},required:["query","documents"],additionalProperties:!1}}),N=/^[A-Za-z_][A-Za-z0-9_]*$/;function R(e){const o={};return(Array.isArray(e)?e:[]).forEach((t,s)=>{if(!t||typeof t!="object")return;let n=String(t.key||"").trim();(!N.test(n)||o[n])&&(n=`q${s+1}`);const r={type:String(t.type||""),instructions:String(t.instructions||"")};r.type!=="noul"&&Array.isArray(t.options)&&(r.options=t.options.map(p=>String(p))),o[n]=r}),o}const b=e=>`${Math.round(Number(e)*100)}%`,y=e=>String(e).replace(/\s+/g," ").trim();function w(e,o,t){const s=o.where?` on ${o.where}`:"",n=Number.isFinite(e.ms)?` in ${Math.round(e.ms)} ms`:"";return`Answered by ${e.model||o.id}${s}${n} — ${t}, not a language model.`}function T(e,o,t){const s=[];for(const[n,r]of Object.entries(e.answers||{})){const p=t[n],i=typeof r.value=="boolean"?r.value?"yes":"no":String(r.value),a=(r.options||[]).filter(d=>d.value!==r.value).sort((d,l)=>l.p-d.p),u=a.length?`; then ${typeof a[0].value=="boolean"?a[0].value?"yes":"no":a[0].value} ${b(a[0].p)}`:"";s.push(`${n}${p?.instructions?` (${y(p.instructions)})`:""}: ${i} — ${b(r.p)}${u}`)}return s.push("",w(e,o,"a decision model")),e.calibrated===!1&&s.push("Uncalibrated: the probabilities rank the options but are not confidence — say so if you quote them."),s.join(`
2
+ `)}function j(e,o,t,{query:s="",topN:n=null}={}){const r=e.results.map((i,a)=>`${a+1}. [doc ${i.index+1}] score ${Number(i.relevance_score).toFixed(3)} — ${y(t[i.index]).slice(0,f)}${t[i.index].length>f?"…":""}`);return[`${e.results.length} of ${t.length} candidate(s) for "${y(s).slice(0,120)}", best first${n?` (top ${n})`:""}. [doc N] is the 1-based position in the list you sent.`,...r,"",w(e,o,"a reranker")].join(`
3
+ `)}function I({providers:e={},fetch:o,budgetMs:t=8e3}={}){if(typeof o!="function")throw new Error("capabilityToolsProvider: fetch required");const s=Array.isArray(e.decide)?e.decide:[],n=Array.isArray(e.rerank)?e.rerank:[];if(!s.length&&!n.length)return null;const r=[];return s.length&&r.push(_),n.length&&r.push(S),{specs:r,system:q,async execute(p,i){if(p===m&&s.length){const a=String(i?.text||"").trim().slice(0,v),u=R(i?.questions);if(!a)return"decide needs `text` — the passage to judge.";if(!Object.keys(u).length)return"decide needs at least one question: { type, instructions, options? }.";let d;try{d=A({state:a,questions:u,budgetMs:t})}catch(l){return`decide could not take the questions (${l.message}). Fix them and call again: a choice or score needs 2–255 distinct options, a noul none.`}try{const{doc:l,provider:c}=await h(s,"decide",d,{fetch:o,timeoutMs:2e4,validateAgainst:d});return T(l,c,d.questions)}catch(l){return`No decision model answered (${l?.message||l}). Judge the text yourself now and say the answer is your own reading, not a model's probability.`}}if(p===g&&n.length){const a=String(i?.query||"").trim(),u=(Array.isArray(i?.documents)?i.documents:[]).map(c=>String(c??"")).filter(c=>c.trim()).slice(0,E);if(!a)return"rerank needs `query` — what relevance is measured against.";if(u.length<2)return u.length===1?"One candidate needs no ordering — it is the answer.":"rerank needs `documents` — two or more candidates.";const d=Number.isInteger(i?.top_n)&&i.top_n>=1?Math.min(i.top_n,u.length):null;let l;try{l=x({query:a,documents:u.map(c=>y(c).slice(0,O)),budgetMs:t,...d?{top_n:d}:{}})}catch(c){return`rerank could not take the candidates (${c.message}).`}try{const{doc:c,provider:$}=await h(n,"rerank",l,{fetch:o,validateAgainst:l});return j(c,$,u,{query:a,topN:d})}catch(c){return`No reranker answered (${c?.message||c}). Order the candidates yourself by reading them, and say the ordering is your own.`}}return JSON.stringify({error:`Unknown tool: ${p}`})}}}export{q as CAPABILITY_TOOLS_SYSTEM,m as DECIDE_TOOL_NAME,g as RERANK_TOOL_NAME,I as capabilityToolsProvider,R as questionsToWire,T as renderDecideResult,j as renderRerankResult};
package/fast-path.js CHANGED
@@ -1,6 +1,8 @@
1
- const g=/\b(extract|list|find|pull( out)?|identify|get|show( me)?|give me|what are|who are|which)\b/i,w=/\b(names?|people|persons?|person names?|places?|locations?|cities|countries|emails?|e-mails?|email addresses|phone numbers?|phones?|addresses|organi[sz]ations?|companies|company names|entities|named entities|pii|personal (data|information|info)|account numbers?|credit cards?|secrets?|passwords?)\b/i,$=/\b(in|from|of)\s+(this|that|these|the|the following|below|above|here|it)\b|:\s*$|\n/i,E=/\b(explain|why|how|summari[sz]e|summary|rewrite|translate|describe|analy[sz]e|compare|tell me about|what does|what do|opinion|think)\b/i,h=[["PERSON",/\b(names?|people|persons?)\b/i],["LOCATION",/\b(places?|locations?|cities|countries)\b/i],["ADDRESS",/\baddresses\b/i],["EMAIL",/\be-?mails?\b|email addresses/i],["PHONE",/\bphones?\b|phone numbers?/i],["ORG",/\borgani[sz]ations?|compan(y|ies)\b/i],["ID",/\baccount numbers?\b/i],["CREDITCARD",/\bcredit cards?\b/i],["SECRET",/\bsecrets?|passwords?\b/i]],b=h.map(([s])=>s),y=/\b(sentiment|tone)\b|\b(is|was) (this|that|it|the (review|message|email|comment|feedback))\s+(positive|negative|happy|angry|a complaint|spam|urgent)\b/i;function A(s){const a=String(s||""),e=/^(.*?)(?::\s*|\n\s*\n)([\s\S]{20,})$/s.exec(a);if(e)return{instruction:e[1].trim(),inline:e[2].trim()};const t=/^(.*?)["“]([\s\S]{20,})["”]\s*$/s.exec(a);return t?{instruction:t[1].trim(),inline:t[2].trim()}:{instruction:a.trim(),inline:""}}function S(s,{material:a="",providers:e={}}={}){const{instruction:t,inline:n}=A(s),o=n||String(a||"");if(!o||o.trim().length<20||E.test(t)||t.length>240)return null;if(e.detect&&g.test(t)&&w.test(t)&&(n||$.test(s)||a)){const c=h.filter(([,l])=>l.test(t)).map(([l])=>l),m=!c.length||/\b(entities|named entities|pii|personal (data|information|info))\b/i.test(t);return{capability:"detect",families:m?b:c,text:o,reason:`an extraction of ${m?"entities":c.join(", ").toLowerCase()} over ${n?"the pasted text":"the material"}`}}return e.decide&&y.test(t)?{capability:"decide",question:{sentiment:{type:"choice",instructions:"The overall sentiment of the text.",options:["positive","negative","neutral","mixed"]}},text:o,reason:"a sentiment judgement over the material"}:null}const p={PERSON:"People",LOCATION:"Places",ADDRESS:"Addresses",EMAIL:"Emails",PHONE:"Phone numbers",ORG:"Organisations",ID:"Identifiers",CREDITCARD:"Card numbers",SECRET:"Secrets",SSN:"National IDs",IBAN:"IBANs"};function I(s,a,e={}){const t=new Set(s.families),n=new Map;for(const i of a||[]){if(!i?.value||!t.has(i.type))continue;n.has(i.type)||n.set(i.type,[]);const u=n.get(i.type);u.some(f=>f.toLowerCase()===i.value.toLowerCase())||u.push(i.value)}const o=[];for(const i of s.families){const u=n.get(i);u?.length&&o.push(`**${p[i]||i}** (${u.length}): ${u.join(", ")}`)}const c=s.families.length===b.length?"entities":s.families.map(i=>(p[i]||i).toLowerCase()).join(", "),m=o.length?o.join(`
2
- `):`No ${c} found in the text (${s.text.length} characters checked).`,l=e.models?.length?e.models.join(" + "):"the local detector",r=e.where||"this device",d=typeof e.ms=="number"?` in ${e.ms} ms`:"";return`${m}
1
+ const T=/\b(extract|list|find|pull( out)?|identify|get|show( me)?|give me|what are|who are|which)\b/i,P=/\b(names?|people|persons?|person names?|places?|locations?|cities|countries|emails?|e-mails?|email addresses|phone numbers?|phones?|addresses|organi[sz]ations?|companies|company names|entities|named entities|pii|personal (data|information|info)|account numbers?|credit cards?|secrets?|passwords?)\b/i,_=/\b(in|from|of)\s+(this|that|these|the|the following|below|above|here|it)\b|:\s*$|\n/i,j=/\b(explain|why|how|summari[sz]e|summary|rewrite|translate|describe|analy[sz]e|compare|tell me about|what does|what do|opinion|think)\b/i,A=[["PERSON",/\b(names?|people|persons?)\b/i],["LOCATION",/\b(places?|locations?|cities|countries)\b/i],["ADDRESS",/\baddresses\b/i],["EMAIL",/\be-?mails?\b|email addresses/i],["PHONE",/\bphones?\b|phone numbers?/i],["ORG",/\borgani[sz]ations?|compan(y|ies)\b/i],["ID",/\baccount numbers?\b/i],["CREDITCARD",/\bcredit cards?\b/i],["SECRET",/\bsecrets?|passwords?\b/i]],I=A.map(([n])=>n),M=/\b(sentiment|tone)\b|\b(is|was) (this|that|it|the)( (review|message|email|comment|feedback|text|ticket|post|reply))?\s+(positive|negative|happy|angry|a complaint|spam|urgent|toxic|offensive|abusive)\b/i,q=[[/\bspam\b/i,{spam:{type:"noul",instructions:"Is this message spam or unsolicited promotion?"}}],[/\burgent\b/i,{urgent:{type:"noul",instructions:"Does this convey urgency — something that needs attention now?"}}],[/\ba complaint\b/i,{complaint:{type:"noul",instructions:"Is the writer complaining about a product, a service or an experience?"}}],[/\b(toxic|offensive|abusive)\b/i,{toxic:{type:"noul",instructions:"Is this text toxic, offensive or abusive?"}}]];function F(n){for(const[a,t]of q)if(a.test(n))return t;return{sentiment:{type:"choice",instructions:"The overall sentiment of the text.",options:["positive","negative","neutral","mixed"]}}}function z(n){const a=String(n||""),t=/^(.*?)(?::\s*|\n\s*\n)([\s\S]{20,})$/s.exec(a);if(t)return{instruction:t[1].trim(),inline:t[2].trim()};const s=/^(.*?)["“]([\s\S]{20,})["”]\s*$/s.exec(a);return s?{instruction:s[1].trim(),inline:s[2].trim()}:{instruction:a.trim(),inline:""}}function B(n,{material:a="",providers:t={}}={}){const{instruction:s,inline:i}=z(n),r=i||String(a||"");if(!r||r.trim().length<20||j.test(s)||s.length>240)return null;if(t.detect&&T.test(s)&&P.test(s)&&(i||_.test(n)||a)){const c=A.filter(([,o])=>o.test(s)).map(([o])=>o),l=!c.length||/\b(entities|named entities|pii|personal (data|information|info))\b/i.test(s);return{capability:"detect",families:l?I:c,text:r,reason:`an extraction of ${l?"entities":c.join(", ").toLowerCase()} over ${i?"the pasted text":"the material"}`}}if(t.decide&&M.test(s)){const c=F(s),l=Object.keys(c)[0];return{capability:"decide",question:c,text:r,reason:`a ${l==="sentiment"?"sentiment":l} judgement over the material`}}return null}const R={PERSON:"People",LOCATION:"Places",ADDRESS:"Addresses",EMAIL:"Emails",PHONE:"Phone numbers",ORG:"Organisations",ID:"Identifiers",CREDITCARD:"Card numbers",SECRET:"Secrets",SSN:"National IDs",IBAN:"IBANs"};function G(n,a,t={}){const s=new Set(n.families),i=new Map;for(const e of a||[]){if(!e?.value||!s.has(e.type))continue;i.has(e.type)||i.set(e.type,[]);const u=i.get(e.type);u.some(g=>g.toLowerCase()===e.value.toLowerCase())||u.push(e.value)}const r=[];for(const e of n.families){const u=i.get(e);u?.length&&r.push(`**${R[e]||e}** (${u.length}): ${u.join(", ")}`)}const c=n.families.length===I.length?"entities":n.families.map(e=>(R[e]||e).toLowerCase()).join(", "),l=r.length?r.join(`
2
+ `):`No ${c} found in the text (${n.text.length} characters checked).`,o=t.models?.length?t.models.join(" + "):"the local detector",m=t.where||"this device",d=typeof t.ms=="number"?` in ${t.ms} ms`:"";return`${l}
3
3
 
4
- _Answered by ${l} on ${r}${d} — entity detection, no language model._`}function R(s,a,e={}){const t=Object.keys(s.question)[0],n=a?.[t];if(!n)return null;const o=r=>`${Math.round((r||0)*100)}%`,c=(n.options||[]).filter(r=>r.value!==n.value).sort((r,d)=>d.p-r.p).slice(0,2).map(r=>`${r.value} ${o(r.p)}`).join(", "),m=e.models?.length?e.models.join(" + "):"the local decision model",l=typeof e.ms=="number"?` in ${e.ms} ms`:"";return`**${t}: ${n.value}** (${o(n.p)}${c?`; ${c}`:""})
4
+ _Answered by ${o} on ${m}${d} — entity detection, no language model._`}function H(n,a,t={}){const s=Object.keys(n.question)[0],i=a?.[s];if(!i)return null;const r=e=>`${Math.round((e||0)*100)}%`,c=typeof i.value=="boolean"?i.value?"yes":"no":i.value,l=typeof i.value=="boolean"?"":(i.options||[]).filter(e=>e.value!==i.value).sort((e,u)=>u.p-e.p).slice(0,2).map(e=>`${e.value} ${r(e.p)}`).join(", "),o=t.models?.length?t.models.map(e=>String(e).split("/").pop()).join(" + "):"the local decision model",m=typeof t.ms=="number"?` in ${t.ms} ms`:"",d=t.calibrated===!1?" The percentage is the model’s preference, not a calibrated probability.":"";return`**${s}: ${c}** (${r(i.p)}${l?`; ${l}`:""})
5
5
 
6
- _Answered by ${m} on ${e.where||"this device"}${l} — a typed decision, no language model._`}export{S as fastPathFor,R as renderDecideAnswer,I as renderDetectAnswer,A as splitPrompt};
6
+ _Answered by ${o} on ${t.where||"this device"}${m} — a typed decision, no language model.${d}_`}async function Q({prompt:n,material:a="",providers:t={},fetch:s,normalizeEntities:i,id:r="turn",enabled:c=!0}={}){if(c===!1)return null;const l={detect:(t.detect||[]).length>0,decide:(t.decide||[]).length>0},o=B(n,{material:a,providers:l});if(!o)return null;const[{assign:m,describePlan:d},{createExecutor:e},{capabilitySource:u,capabilityRunners:g}]=await Promise.all([import("./plan.js"),import("./plan-executor.js"),import("./capability-providers.js")]),L=o.capability==="detect"?{id:"extract",kind:"detect",title:o.reason,input:{from:"material"},requires:{maxLatencyMs:5e3},fallback:"skip"}:{id:"judge",kind:"decide",title:o.reason,input:{from:"material"},questions:o.question,requires:{maxLatencyMs:5e3},fallback:"skip"};let b;try{b=m({id:`fast-${r}`,origin:"chat",goal:n,steps:[L]},{capability:u(t)})}catch{return null}if(b.unassignable.length||b.steps[0].assigned?.skipped)return null;const k=e({runners:g({fetch:s,normalizeEntities:i})});let y;try{y=await k.run(b,{goal:n,material:o.text})}catch{return null}const p=y.steps[0];if(p.status!=="done"||!p.output)return null;const h=Math.round(p.cost?.ms||0),f=d(y);if(o.capability==="detect"){const{entities:S,models:v,where:N,provider:O}=p.output;return{capability:"detect",content:`${G(o,S,{models:v,ms:h,where:N})}
7
+ _Plan: ${f}_`,provider:O,models:v,ms:h,reason:o.reason,plan:f,entities:S}}const{answers:w,models:$,where:C,provider:D,calibrated:x}=p.output,E=H(o,w,{models:$,ms:h,where:C,calibrated:x});return E?{capability:"decide",content:`${E}
8
+ _Plan: ${f}_`,provider:D,models:$,ms:h,reason:o.reason,plan:f,answers:w,calibrated:x}:null}export{F as decideQuestionFor,B as fastPathFor,H as renderDecideAnswer,G as renderDetectAnswer,Q as runFastPath,z as splitPrompt};
package/feature-map.js ADDED
@@ -0,0 +1 @@
1
+ const s=["chat","privacy","notes","knowledge","meetings","voice","automation","sync","runtime","browser"],t=[{id:"chat.streaming-turn",surface:"chat",title:"Streaming turns",what:"A turn streams into the thread through its tool rounds, with a stop.",shared:["turn-loop.js","tool-round.js"]},{id:"chat.toolset",surface:"chat",title:"Per-turn toolset",what:"The tools a turn may call, chosen per target and policy.",shared:["toolset.js","tool-dispatch.js"]},{id:"chat.slash-skills",surface:"chat",title:"Skills as /commands",what:"The user’s skills and the packages the bridge found, offered as slash commands in every composer.",shared:["slash-commands.js","skill-vars.js"]},{id:"chat.slash-builtins",surface:"chat",title:"Built-in /commands",what:"/search and /history as commands, not tools the model may or may not call.",shared:["slash-commands.js"]},{id:"chat.suggestions",surface:"chat",title:"Empty-chat suggestions",what:"Prompt suggestions on an empty thread, from the page or the recent history.",shared:[]},{id:"chat.attachments",surface:"chat",title:"Attachments",what:"Text, PDF and by-reference files attached to a turn.",shared:["context-attachments.js","attached-paths.js","pdf-layout.js"]},{id:"chat.html-artifacts",surface:"chat",title:"HTML artifacts",what:"An HTML reply rendered in a sandbox, never in the panel.",shared:[]},{id:"chat.diagram-artifacts",surface:"chat",title:"Diagram artifacts",what:"A mermaid block becomes a Diagram | Code card with zoom and copy.",shared:[]},{id:"chat.model-routing",surface:"chat",title:"Auto model routing",what:"An Auto target picks a candidate per message and fails over on error.",shared:["model-candidates.js","route-strategies.js","failover.js"]},{id:"chat.history-rag",surface:"chat",title:"History in the turn",what:"Past chats, notes and meetings retrieved into a turn automatically, not only on request.",shared:["sources-retrieval.js","text-search.js"]},{id:"chat.history-search-tool",surface:"chat",title:"history_search tool",what:"The model searches the local history and reads one record in full.",shared:["sources.js"]},{id:"chat.sideline",surface:"chat",title:"Sideline",what:"A side conversation beside the thread, on the same context.",shared:["sideline.js"]},{id:"chat.fast-path",surface:"chat",title:"Fast path",what:"A turn answered without the model when a local answer exists.",shared:["fast-path.js"]},{id:"chat.capability-tools",surface:"chat",title:"decide / rerank tools",what:"The model hands a judgement or an ordering to a small local model mid-turn.",shared:["capability-tools.js","capability-providers.js"]},{id:"chat.presence",surface:"chat",title:"Situational presence",what:"What the client knows about the moment (time, place, page) stated to the model as facts.",shared:["presence.js"]},{id:"chat.usage",surface:"chat",title:"Usage meter",what:"Tokens and cost per turn and per day.",shared:["usage.js","usage-pricing.js"]},{id:"chat.web-search",surface:"chat",title:"Web search",what:"Web search as a tool, client-side or through the gateway.",shared:["web-search.js","web-search-tool.js"]},{id:"chat.weather",surface:"chat",title:"Weather",what:"Weather as a tool.",shared:["weather.js","weather-tool.js"]},{id:"chat.event-log",surface:"chat",title:"Event log",what:"What happened in a turn, in order, with where the time went.",shared:["event.js","trajectory.js"]},{id:"chat.teams",surface:"chat",title:"Agent teams",what:"Several agents on one task with a board, a plan and a trail.",shared:["team.js","team-run.js"]},{id:"chat.mcp",surface:"chat",title:"MCP servers",what:"MCP servers as tools.",shared:["mcp-client.js","mcp-manager.js"]},{id:"chat.mcp-oauth",surface:"chat",title:"MCP sign-in",what:"Signing in to an MCP server that asks for OAuth.",shared:["mcp-oauth.js","mcp-signin.js"]},{id:"chat.omni-search",surface:"chat",title:"Omni search",what:"One palette searching notes, chats and meetings at once.",shared:["omni.js"]},{id:"chat.memory",surface:"chat",title:"Memory",what:"Facts remembered across conversations, and the tool that writes them.",shared:["memory.js","memory-tool.js"]},{id:"chat.tool-result-shield",surface:"chat",title:"Tool-result shield",what:"A tool result is redacted before the model sees it.",shared:["tool-result.js"]},{id:"chat.read-aloud",surface:"chat",title:"Read aloud",what:"A reply spoken as it streams.",shared:["speak-stream.js"]},{id:"chat.structured-output",surface:"chat",title:"Typed answers",what:"A model call that expects a shape goes through one schema.",shared:["structured.js"]},{id:"chat.media-transcript",surface:"chat",title:"Video transcripts",what:"“Summarise this video” from a caption track.",shared:["media-transcript.js"]},{id:"privacy.redaction",surface:"privacy",title:"On-device redaction",what:"PII redacted before a cloud model and restored on the way back.",shared:["redaction-tokens.js","redaction-dictionary.js"]},{id:"privacy.redaction-preview",surface:"privacy",title:"Show what the model sees",what:"The redacted text, by type, before it leaves.",shared:[]},{id:"privacy.access-log",surface:"privacy",title:"Access log",what:"What left this device, on the record.",shared:["observability.js"]},{id:"privacy.vault",surface:"privacy",title:"Vault",what:"Records kept encrypted at rest.",shared:["vault.js"]},{id:"privacy.encrypted-backup",surface:"privacy",title:"Encrypted backup",what:"A backup sealed with the user’s key.",shared:["backup-envelope.js"]},{id:"notes.editor",surface:"notes",title:"Live-preview editor",what:"The note editor with regions, follow-tail and rich paste.",shared:[]},{id:"notes.cowriter",surface:"notes",title:"Co-writer",what:"A writer swarm working the note, routed per section.",shared:["cowriter.js","cowriter-router.js"]},{id:"notes.fact-check",surface:"notes",title:"Fact check",what:"Claims in a note checked against sources.",shared:["cowriter-factcheck.js"]},{id:"notes.research",surface:"notes",title:"Note research",what:"Research gathered for a note from the web and the history.",shared:["note-research.js"]},{id:"notes.graph",surface:"notes",title:"Note graph",what:"Links and mentions between notes as a graph.",shared:["note-graph.js"]},{id:"notes.tags",surface:"notes",title:"Tags",what:"Tags on notes, with tag queries in search.",shared:["tags.js"]},{id:"knowledge.briefs",surface:"knowledge",title:"Briefs",what:"Briefs read with first-class citations.",shared:["knowledge.js"]},{id:"knowledge.brief-curation",surface:"knowledge",title:"Brief curation",what:"Briefs derived from the sources — the curator.",shared:["knowledge-derive.js","synthesis.js"]},{id:"knowledge.topics",surface:"knowledge",title:"Topics",what:"Topics extracted from chats, notes and meetings, and the index they build.",shared:[]},{id:"knowledge.corpus",surface:"knowledge",title:"Corpus overview",what:"What the local corpus holds, by kind and by time.",shared:[]},{id:"meetings.live-transcript",surface:"meetings",title:"Live transcript",what:"A meeting transcribed as it happens, kept as a record.",shared:["meeting-shape.js","meeting-text.js"]},{id:"meetings.charts",surface:"meetings",title:"Meeting charts",what:"Who spoke, how much, when.",shared:[]},{id:"meetings.insights",surface:"meetings",title:"Meeting insights",what:"Decisions, actions and the moments that need you, from the transcript.",shared:["meeting-insights.js","meeting-analyzers.js"]},{id:"meetings.monitors",surface:"meetings",title:"Monitors",what:"A profile watching meetings for what matters to it.",shared:["monitor-profile.js"]},{id:"meetings.transcript-import",surface:"meetings",title:"Transcript import",what:"A transcript pasted from Zoom, Teams or Meet becomes a meeting record.",shared:[]},{id:"meetings.voice-commands",surface:"meetings",title:"Spoken commands",what:"Commands spoken during a meeting, matched from the transcript.",shared:["voice-intents.js"]},{id:"voice.dictation",surface:"voice",title:"Dictation",what:"Speak into any composer.",shared:["voice-vad.js"]},{id:"voice.mode",surface:"voice",title:"Voice mode",what:"A spoken conversation with barge-in.",shared:["voice-loop.js"]},{id:"voice.tts",surface:"voice",title:"Speech",what:"Text to speech with the chosen voice, including the user’s own.",shared:["voice-speaker.js","voice-models.js"]},{id:"automation.jobs",surface:"automation",title:"Jobs",what:"Scheduled and triggered work that runs without a turn.",shared:["job.js","schedule.js"]},{id:"automation.text-triggers",surface:"automation",title:"Text triggers",what:"A phrase arriving anywhere, matched against the user’s jobs.",shared:[]},{id:"automation.alert-sound",surface:"automation",title:"Timer sound",what:"A timer that goes off makes a sound, not only a notification.",shared:[]},{id:"automation.widgets",surface:"automation",title:"Widgets",what:"Small HTML plugins the user or an agent wrote, hosted in a frame.",shared:["widget.js"]},{id:"automation.projects",surface:"automation",title:"Projects",what:"A folder an agent works in, with its runs.",shared:["project.js","project-run.js"]},{id:"automation.skills",surface:"automation",title:"Skills",what:"Skills written by the user or found on the machine.",shared:["skill-manifest.js","skill-runtime.js","skill-sources.js"]},{id:"automation.recipes",surface:"automation",title:"Recipes",what:"Saved multi-step prompts.",shared:["recipe.js"]},{id:"automation.channels",surface:"automation",title:"Channels",what:"Telegram and WhatsApp surfaces to the agents.",shared:[]},{id:"automation.channel-pairing-qr",surface:"automation",title:"Pairing QR",what:"The channel pairing link as a QR code, read from another device.",shared:[]},{id:"sync.auto-backup",surface:"sync",title:"Auto backup",what:"A backup written on a schedule.",shared:["backup-records.js"]},{id:"sync.warm",surface:"sync",title:"Warm sync",what:"Records pulled from and pushed to the gateway.",shared:["sync-plan.js"]},{id:"sync.prefs",surface:"sync",title:"Settings travel",what:"Every setting shared between the clients, live.",shared:["client-prefs.js"]},{id:"sync.drive",surface:"sync",title:"Google Drive backup",what:"Backups to and from the user’s Drive.",shared:[]},{id:"runtime.license",surface:"runtime",title:"Licence",what:"Pro and Team verified offline against the signed token.",shared:["entitlement.js"]},{id:"runtime.free-caps",surface:"runtime",title:"Free caps",what:"The Free limits on the workspace surfaces, asked the same way everywhere.",shared:["entitlement.js"]},{id:"runtime.managed",surface:"runtime",title:"Managed mode",what:"The organisation’s configuration, pushed by IT.",shared:[]},{id:"runtime.updates",surface:"runtime",title:"Updates",what:"The client, the gateway and the bridge know when a newer version exists.",shared:[]},{id:"runtime.bridge-health",surface:"runtime",title:"Runtime health",what:"The bridge and the gateway watched, with what to do when one is down.",shared:[]},{id:"runtime.local-pairing",surface:"runtime",title:"Local pairing",what:"This client paired with the local servers by token or pin.",shared:[]},{id:"runtime.model-roles",surface:"runtime",title:"What runs where",what:"Every model in use by job, where it runs, a jump to swap it.",shared:["model-roles.js"]},{id:"browser.page-actions",surface:"browser",title:"Page actions",what:"The agent acts on the open page.",shared:[]},{id:"browser.page-tools",surface:"browser",title:"Page tools",what:"The open page read, matched and calibrated as a tool.",shared:[]},{id:"browser.canvas",surface:"browser",title:"Canvas adapters",what:"Web apps (docs, sheets, whiteboards) driven through their canvas.",shared:[]},{id:"browser.in-browser-model",surface:"browser",title:"In-browser model",what:"A model run in the browser on WebGPU.",shared:[]},{id:"browser.floating-launcher",surface:"browser",title:"Floating launcher",what:"The button on web pages that opens the panel.",shared:[]}];function r(e){return e?t.filter(a=>a.surface===e):t.slice()}function i(){return t.map(e=>e.id)}export{t as FEATURES,s as SURFACES,i as featureIds,r as listFeatures};
package/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 T,createAppender as c}from"./event.js";import{REF_KINDS as _,RESOLUTION as d,makeRef as R,isRef as A,resolveRef as f}from"./ref.js";import{linearize as I,compareEvents as u,causesAreWellFormed as N}from"./order.js";import{pendingQueue as M,isQueued as C,dequeue as P,moveQueued as L,promoteQueued as x}from"./queue.js";import{groupModels as D,filterSections as F,defaultModelId as k,modelSummary as y,withRecent as U,rememberRecent as v}from"./model-picker.js";import{composerChips as G,chipText as B}from"./composer-chips.js";import{NOTE_ACTIONS as H,NOTE_ACTION_ORDER as w,NOTE_ACTION_TEMPERATURE as V,NOTE_ACTION_ERRORS as X,NOTE_COMMANDS as W,NOTE_COMMAND_TEMPERATURE as z,NOTE_COMMAND_MAX_TOKENS as Y,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 Te,roleById as ce,classifyModel as pe,supportsSubagents as _e,appoint as de,routeTeam as Re}from"./cowriter-router.js";import{SEARCH_ENGINES as fe,RESULTS_PER_ENGINE as Oe,buildSearchUrl as Ie,unwrapRedirect as ue,isResultHost as Ne,pickResults as ge,mergeEngineResults as Me,engineOrder as Ce}from"./web-search.js";import{MAX_GRAPH_NODES as Le,buildNoteGraph as xe,egoGraph as he,trimGraph as De,graphStats as Fe}from"./note-graph.js";import{lintText as ye,wordDiff as Ue,filterTypoEdits as ve,editKey as be,applyEdits as Ge,COWRITER_SYSTEM as Be,COWRITER_TEMPERATURE as Ke}from"./cowriter.js";import{salientTerms as we,topicTerms as Ve,researchRelevance as Xe,webQuery as We,researchSnippet as ze,rankResearchCards as Ye,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 Tr}from"./reach.js";import{UPCASTERS as pr,upcast as _r,upcastAll as dr}from"./upcast.js";import{validateCapability as Ar,validateInvocation as fr,canSatisfy as Or,toModelSchema as Ir,toModelSchemas as ur}from"./capability.js";import{checkInvariants as gr,INVARIANTS as Mr}from"./invariants.js";import{createMemoryAdapter as Pr,createLogStore as Lr,createBlobStore as xr}from"./store.js";import{createRegistry as Dr,REGISTRY_STATES as Fr}from"./registry.js";import{defineSearchEngine as yr,reconcileEngines as Ur,attemptOrder as vr,ENGINE_KINDS as br,SearchEngineError as Gr}from"./search-engines.js";import{getWeather as Kr,weatherUrl as Hr,parseWeather as wr,formatWeather as Vr,areaLabel as Xr,isAmbiguousLocation as Wr,WEATHER_HOST as zr,WEATHER_TIMEOUT_MS as Yr,WeatherError as Jr}from"./weather.js";import{defineToolGroup as Qr,createToolGroupRegistry as qr,ToolGroupError as Zr}from"./tool-groups.js";import{toolNeedFor as eo,grantsNeededFor as ro,equipmentFor as oo}from"./tool-need.js";import{parseFlowchart as ao,layoutFlowchart as io,renderFlowchartSvg as so}from"./flowchart.js";import{validateView as So,validateViewInvocation as Eo,viewResult as lo}from"./view.js";import{validateWidget as To,validateWidgetMessage as co,effectiveGrants as po,widgetIcon as _o,WIDGET_SURFACES as Ro}from"./widget.js";import{fuseRRF as fo,planQueries as Oo,multiSearch as Io}from"./rrf.js";import{SUBJECT_KINDS as No,DEFAULT_THRESHOLD as go,MAX_SUBJECTS as Mo,MAX_SUBJECT_CHARS as Co,normalizeSubject as Po,subjectKey as Lo,subjectTokens as xo,isSubjectCandidate as ho,aliasMap as Do,resolveSubjects as Fo,earnsBrief as ko,rankSubjects as yo,REDACTION_TOKEN_TYPES as Uo,isRedactionToken as vo,SELF_LABELS as bo,isSelfLabel as Go,stripQualifiers as Bo,suggestMerges as Ko}from"./entity.js";import{BRIEF_STATES as wo,CLAIM_KINDS as Vo,MAX_CLAIMS as Xo,MAX_CLAIM_REFS as Wo,MAX_BRIEF_RECORDS as zo,MAX_BRIEF_CHARS as Yo,contentHash as Jo,briefId as jo,briefToText as Qo,briefTerms as qo,briefLinks as Zo,checkKnowledgeInvariants as $o,parseBriefText as et}from"./knowledge.js";import{deriveBrief as ot,deriveBriefs as tt,driftedRefs as at}from"./knowledge-derive.js";import{SYNTHESIS_SCHEMA as st,synthesisPrompt as nt,claimsFromSynthesis as St,MAX_SYNTHESIS_CLAIMS as Et,MAX_EXCERPTS as lt,MAX_EXCERPT_CHARS as mt}from"./synthesis.js";import{PROPOSAL_STATES as ct,SUPERSEDE_OVERLAP as pt,propose as _t,accept as dt,reject as Rt,diffProposal as At,converge as ft,linkClaims as Ot}from"./promotion.js";import{normalizeRecord as ut,normalizeRecords as Nt,wikilinksIn as gt,redactedTokensIn as Mt,redactionCost as Ct,wantedPages as Pt,orphanRecords as Lt,duplicateTitles as xt,vocabularyDrift as ht,mentionsFrom as Dt,spanningQuestions as Ft,surveyCorpus as kt,thresholdSweep as yt,formatSurvey as Ut,NEAR_TITLE_DISTANCE as vt,SPAN_MIN_TERMS as bt}from"./curate.js";import{PDF_MAX_CHARS as Bt,linesFromItems as Kt,orderLines as Ht,paragraphsFromLines as wt,pageTextFromItems as Vt,looksScanned as Xt,buildPdfDocument as Wt}from"./pdf-layout.js";import{YOUTUBE_HOSTS as Yt,TRANSCRIPT_MAX_CHARS as Jt,parseYouTubeUrl as jt,isYouTubeUrl as Qt,captionTracksFromPlayerResponse as qt,videoMetaFromPlayerResponse as Zt,pickCaptionTrack as $t,timedTextUrl as ea,parseTimedText as ra,groupSegments as oa,formatTimestamp as ta,formatTranscript as aa,buildTranscriptDocument as ia,transcriptFromTracks as sa}from"./media-transcript.js";import{ACCESS_LOG_VERSION as Sa,ACCESS_LOG_MAX as Ea,redactAccessArgs as la,makeAccessEvent as ma,createAccessLog as Ta,makeStorageTier as ca,formatBytes as pa}from"./observability.js";import{routeGraph as da,projectChain as Ra}from"./route-graph.js";import{defineAdapter as fa,createAdapterRegistry as Oa,AdapterError as Ia}from"./adapters.js";import{linkifyCitations as Na,sourcesFromToolText as ga,createCitationCollector as Ma,RETRIEVAL_TOOLS as Ca}from"./citations.js";import{buildTrajectory as La,phasesOf as xa,lanesOf as ha,filterEntries as Da,displayName as Fa,ENTRY_KINDS as ka,threadsOf as ya,threadTitle as Ua,promptEntries as va,turnsOf as ba,threadTree as Ga}from"./trajectory.js";import{createTurnRunner as Ka,defineLoop as Ha,LOOP_KINDS as wa,LoopError as Va}from"./loop.js";import{defineModel as Wa,defineMiddleware as za,defineRouteStrategy as Ya,createModelRouter as Ja,signalsFrom as ja,requirementsFor as Qa,requirementsForStep as qa,preferenceFor as Za,failoverOrder as $a,pinnedOrderOf as ei,FAILOVER_CLASS_GAP as ri,FAILOVER_CAPABILITY_GAP as oi,sameModelKey as ti,RouterError as ai}from"./router.js";import{makeSourceStore as si,manifestText as ni,shortUrl as Si,readSource as Ei,sourceId as li}from"./sources-retrieval.js";import{classifySource as Ti,extractUrls as ci,hostMatches as pi,meetReach as _i,sourcePolicyFor as di,sourceUrlsOf as Ri,DEFAULT_INTERNAL_PATTERNS as Ai,INTERNAL_PATTERN_CATALOG as fi}from"./sources.js";import{defineRule as Ii,createRuleEngine as ui,SUPPRESSED as Ni,RuleError as gi}from"./rules.js";import{VAULT_VERSION as Ci,KDF_ITERATIONS as Pi,KDF_HASH as Li,DEFAULT_LOCK_MS as xi,VaultError as hi,MAX_TITLE_CHARS as Di,MAX_NOTE_CHARS as Fi,MAX_SECRET_CHARS as ki,MAX_ENTRIES as yi,createVault as Ui,unlockVault as vi,deriveKey as bi,sealEntry as Gi,openEntry as Bi,validateEntry as Ki,entryMeta as Hi,searchEntries as wi,isLocked as Vi,lockedSummary as Xi,canAddEntry as Wi,toB64 as zi,fromB64 as Yi}from"./vault.js";import{SCHEDULE_KINDS as ji,TRIGGER_KINDS as Qi,JOB_ACTIONS as qi,MISSED_POLICIES as Zi,ScheduleError as $i,validateSchedule as es,nextFireAt as rs,occurrencesBetween as os,nextWakeAt as ts,defineTrigger as as,createTriggerRegistry as is,BUILTIN_TRIGGERS as ss,timerTrigger as ns,meetingStartedTrigger as Ss,meetingEndedTrigger as Es,personJoinedTrigger as ls,phraseTrigger as ms,topicTrigger as Ts,questionTrigger as cs,voiceCommandTrigger as ps,defineJob as _s,dueJobs as ds,jobsForEvent as Rs,occurrenceKey as As,clipText as fs,matchSummary as Os}from"./schedule.js";import{defineMeetingAnalyzer as us,createAnalyzerRegistry as Ns,CADENCES as gs,AnalyzerError as Ms}from"./meeting-analyzers.js";import{DEFAULT_WAKE as Ps,MAX_COMMANDS_PER_DELTA as Ls,DAYPART_HOUR as xs,VoiceIntentError as hs,compileWake as Ds,findWakeCommand as Fs,parseCommand as ks,commandsFromSegments as ys,parseDuration as Us,parseClock as vs,parseWhen as bs,parseNumberWords as Gs,normalizeSpeech as Bs,tokenize as Ks,editDistance as Hs,defineVoiceIntent as ws,createVoiceIntentRegistry as Vs,defaultVoiceIntents as Xs,BUILTIN_VOICE_INTENTS as Ws,timerIntent as zs,reminderIntent as Ys,scheduleIntent as Js,noteIntent as js,monitorIntent as Qs,REFINEMENT_SCHEMA as qs,refinementPrompt as Zs,refinementFormat as $s,parseRefinement as en,refinementStream as rn,settleRefinement as on,refineSpokenCommand as tn,isFillerSentence as an,gistText as sn,gistOpening as nn,commandLooksFinished as Sn,sameUtterance as En,createUtteranceGate as ln,UTTERANCE_SETTLE_MS as mn,UTTERANCE_DANGLING_MS as Tn}from"./voice-intents.js";import{MAX_TOPICS as pn,MAX_TOPIC_CHARS as _n,TOPICS_SCHEMA as dn,topicsSchema as Rn,topicsPrompt as An,topicsFormat as fn,parseTopics as On,normalizeTopic as In,normalizeTopics as un,topicsStream as Nn,ENTITY_TYPES as gn,ENTITIES_SCHEMA as Mn,entitiesPrompt as Cn,entitiesFormat as Pn,parseEntities as Ln,coerceEntities as xn,entitiesStream as hn,MAX_SUGGESTIONS as Dn,MAX_SUGGESTION_CHARS as Fn,SUGGESTIONS_SCHEMA as kn,suggestionsPrompt as yn,suggestionsFormat as Un,parseSuggestions as vn,suggestionsStream as bn}from"./extraction.js";import{FIELD_TYPES as Bn,RESPONSE_MODES as Kn,StructuredError as Hn,defineSchema as wn,describeSchema as Vn,toJsonSchema as Xn,responseFormat as Wn,unfence as zn,findJson as Yn,rewriteJson as Jn,repairJson as jn,isNothing as Qn,coerce as qn,parseStructured as Zn,createStructuredStream as $n}from"./structured.js";import{explainMcpError as rS,packageFromArgs as oS,isStaleMcpSession as tS,installHintFor as aS,missingCommandMessage as iS,missingCommandIn as sS,normalizePlatform as nS}from"./mcp-errors.js";import{parseSignInPrompt as ES,signInError as lS,signInFromError as mS,signInToolResult as TS,MCP_SIGN_IN_CODE as cS}from"./mcp-signin.js";import{parseAuthChallenge as _S,wellKnownUrls as dS,canonicalResource as RS,readResourceMetadata as AS,readAuthServerMetadata as fS,registrationRequest as OS,readRegistration as IS,authorizeUrl as uS,tokenRequest as NS,readTokenResponse as gS,tokenExpired as MS,authHeader as CS,discoverMcpAuth as PS,registerMcpClient as LS,fetchMcpToken as xS,TOKEN_SKEW_MS as hS}from"./mcp-oauth.js";import{toolTraits as FS,bareToolName as kS,canRunConcurrently as yS,isCacheable as US,needsConfirmation as vS,traitsIndex as bS,effectiveToolName as GS,parallelEligible as BS,PARALLEL_LOCAL_RE as KS}from"./tool-traits.js";import{planToolRound as wS,runToolRound as VS}from"./tool-round.js";import{createToolLoopGuard as WS,roundSignature as zS,stableToolCallKey as YS,toolMadeProgress as JS,isLoopableTool as jS,blockedToolResult as QS,OBSERVATION_TOOLS as qS,INPUT_PROGRESS_TOOLS as ZS}from"./tool-loop-guard.js";import{classifyFailure as eE,createModelHealth as rE,COOLDOWN_MS as oE,UNAVAILABLE_REASONS as tE,normModelName as aE}from"./model-health.js";import{runWithFailover as sE,failoverExhausted as nE,FAILOVER_MAX_ATTEMPTS as SE}from"./failover.js";import{sourcePolicySettings as lE,sourceGuardFor as mE,sourceGate as TE,isSourceGateError as cE,withinReach as pE}from"./source-gate.js";import{runTurnLoop as dE,createCallRunner as RE,roundCap as AE,withToolSystem as fE,describeCall as OE,stepResultText as IE,addUsage as uE,normalizeUsage as NE,openAiTranscript as gE,anthropicTranscript as ME,DEFAULT_MAX_ROUNDS as CE,DEFAULT_MAX_FINISH_TRIES as PE,FINISH_NUDGES as LE,LOOPING_NUDGE as xE,EXHAUSTED_NOTE as hE,ROUND_SEPARATOR as DE}from"./turn-loop.js";import{createResultStore as kE,shieldToolResult as yE,runResultQuery as UE,withResultShield as vE,describeShape as bE,compactValue as GE,resultToolSpec as BE,RESULT_TOOL_NAME as KE,DEFAULT_SHIELD as HE,DEFAULT_STORE as wE}from"./tool-result.js";import{findTools as XE,findToolsResult as WE,findActionArgs as zE,oneLiner as YE,overlapRank as JE,FIND_ACTION as jE}from"./tool-discovery.js";import{buildToolset as qE}from"./toolset.js";import{DESCRIBE_ACTION as $E,actionMenu as el,buildGroupDispatchSpec as rl,validateAction as ol,makeGroupDispatchExecutor as tl,withGuidance as al,makeDispatchProvider as il,estimateTokens as sl}from"./tool-dispatch.js";import{FIND_TOOL_NAME as Sl,FIND_DESCRIPTION as El,FIND_RESIDENT as ll,findDispatchProvider as ml}from"./find-tool.js";import{WEB_SEARCH_TOOL_NAME as cl,WEB_SEARCH_TOOL_SYSTEM as pl,WEB_SEARCH_SPEC as _l,searchResultsToText as dl,webSearchToolProvider as Rl}from"./web-search-tool.js";import{compressToolSpec as fl,compressToolSpecs as Ol,compressionStats as Il,trimDescription as ul,COMPRESSION_MODES as Nl,DEFAULT_COMPRESSION as gl}from"./tool-schema.js";import{validateRecipe as Cl,expandRecipe as Pl,recipeParams as Ll,mapInput as xl,dryRunRecipe as hl,runPlan as Dl,runRecipe as Fl,RecipeError as kl,RECIPE_MODES as yl}from"./recipe.js";import{recipeToolProvider as vl,recipeToolSpec as bl,describeRecipeForApproval as Gl,RECIPE_TOOL_NAME as Bl}from"./recipe-tool.js";import{createBudget as Hl,validateBudget as wl,normalizeBudget as Vl,usageOf as Xl,BudgetError as Wl,BUDGET_DIMENSIONS as zl}from"./budget.js";import{defineTeam as Jl,validateTeam as jl,normalizeTeam as Ql,normalizeGrants as ql,grantAllows as Zl,scmAllows as $l,describeRole as em,TeamError as rm,ROLE_MODES as om,MERGE_POLICIES as tm,PLAN_MODES as am,GRANTABLE as im,WORK_GRANTS as sm,GRANT_RE as nm,AGENT_REF_RE as Sm,STARTER_TEAMS as Em,starterTeams as lm,blankTeam as mm,teamFromForm as Tm,slugTeamName as cm}from"./team.js";import{fixedPlan as _m,parsePlan as dm,plannerPrompt as Rm,waves as Am,breakCycles as fm,TEAM_PLAN_SCHEMA as Om}from"./team-plan.js";import{createBoard as um,parseFindings as Nm,boardText as gm,findingsInstruction as Mm,toBriefClaims as Cm,FINDINGS_SCHEMA as Pm,FINDING_KINDS as Lm,THREAD_KINDS as xm,THREAD_STATUSES as hm,POST_KINDS as Dm,POST_STATUSES as Fm,ASK_TYPES as km,emptyBoardState as ym,foldBoard as Um,findingsOf as vm}from"./team-board.js";import{boardToolProvider as Gm,boardToolSpec as Bm,createAnswerBox as Km,withBoardTool as Hm,BOARD_TOOL_NAME as wm,DEFAULT_ASK_TIMEOUT_MS as Vm}from"./board-tool.js";import{createRunCache as Wm,withRunCache as zm}from"./team-cache.js";import{emptyRun as Jm,foldRun as jm,runFromEvents as Qm,checkpointFrom as qm,isResumable as Zm,LIVE_RUN_STATUSES as $m,RESUMABLE_RUN_STATUSES as eT,spendOf as rT,describeSpend as oT,runState as tT,priorWorkFor as aT,STALLED_AFTER_MS as iT}from"./team-record.js";import{validateProject as nT,normalizeProject as ST,defineProject as ET,canTransition as lT,blankProject as mT,projectFromForm as TT,emptyProjectRecord as cT,foldProject as pT,projectProgress as _T,ProjectError as dT,PROJECT_STATUSES as RT,PROJECT_ID_RE as AT}from"./project.js";import{validateJob as OT,normalizeJob as IT,defineJob as uT,canTransition as NT,applyAll as gT,jobToRole as MT,readyJobs as CT,blankJob as PT,jobFromForm as LT,JobError as xT,JOB_STATUSES as hT,JOB_ID_RE as DT}from"./job.js";import{validateGate as kT,normalizeGate as yT,effectiveGate as UT,gateAllows as vT,DEFAULT_GATE as bT,AUTONOMY as GT,HUMAN_FLAGS as BT,CHECKS as KT}from"./gate.js";import{runProject as wT,roundJobs as VT,teamForRound as XT,jobResults as WT,roundBudget as zT,parseJobs as YT,parseReview as JT,jobsPrompt as jT,reviewPrompt as QT,PROJECT_JOBS_SCHEMA as qT,PROJECT_REVIEW_SCHEMA as ZT,ProjectRunError as $T,EXECUTIVE as ec,MAX_JOBS_PER_ROUND as rc,MAX_ROUNDS as oc,PROJECT_RUN_STATUSES as tc}from"./project-run.js";import{canonical as ic,sha256 as sc,makeEntry as nc,verifyChain as Sc,attest as Ec,verifyAttested as lc,summarize as mc,fit as Tc,adjustSummary as cc,normalizeEngine as pc,engineKey as _c,normalizeScm as dc,SCORECARD_ENTRY_KINDS as Rc,ROLE_KINDS as Ac,SCORECARD_VERSION as fc,ENGINE_KINDS as Oc}from"./scorecard.js";import{ENGINE_KINDS as uc,ROUTE_PREFERS as Nc,normalizePolicy as gc,normalizeEngineSpec as Mc,validateEngineSpec as Cc,engineRef as Pc,engineKeyOf as Lc,describeEngine as xc,tierOf as hc}from"./engine.js";import{AGENT_ID_RE as Fc,APPLIES_TO as kc,EGRESS_CLASSES as yc,ASSISTANT_ID as Uc,AgentError as vc,validateAgent as bc,normalizeAgent as Gc,defineAgent as Bc,assistantAgent as Kc,engineOf as Hc,describeAgent as wc,slugAgentId as Vc,resolveTeam as Xc,STARTER_AGENTS as Wc,starterAgents as zc,blankAgent as Yc,agentFromForm as Jc,poolFor as jc}from"./agent.js";import{LEDGER_VERSION as qc,LEDGER_ENTRY_KINDS as Zc,DECLINE_REASONS as $c,WITHDRAW_AFTER as ep,ledgerKey as rp,normalizeCall as op,makeLedgerEntry as tp,summarizeEngine as ap}from"./model-ledger.js";import{RECRUIT_SCHEMA as sp,MIN_FIT as np,engineRow as Sp,engineRows as Ep,needForJob as lp,routeFor as mp,engineWorth as Tp,applications as cp,evaluatorPrompt as pp,parseEvaluation as _p,decide as dp,recruitForRun as Rp,proposalFromNeeds as Ap,proposalToAgent as fp,carveBudget as Op,recruitEvents as Ip,recruitJob as up}from"./recruit.js";import{DEFAULT_MIN_CALLS as gp,cardOverride as Mp,applyCard as Cp}from"./model-candidates.js";import{SCM_KINDS as Lp,validateConnection as xp,normalizeConnection as hp,parseRemote as Dp,connectionFor as Fp,branchFor as kp,worktreeDirFor as yp,credentialEnv as Up,describeConnection as vp,blankConnection as bp,connectionFromForm as Gp}from"./scm-connection.js";import{messagesFor as Kp,mergeTranscript as Hp,clipTranscript as wp,clipMessage as Vp,newSteps as Xp,continuationNote as Wp,createControl as zp,STEP_MAX_CHARS as Yp,TASK_TRANSCRIPT_MAX_CHARS as Jp}from"./team-task.js";import{runTeam as Qp,resumeTeam as qp,dryRunTeam as Zp,isModelUnavailable as $p,TeamRunError as e_,RUN_STATUSES as r_}from"./team-run.js";import{teamToolProvider as t_,teamToolSpec as a_,teamToolTimeoutMs as i_,describeTeamForApproval as s_,TEAM_TOOL_NAME as n_,TEAM_MANUAL as S_}from"./team-tool.js";import{workLogFor as l_,workLogText as m_,workLogEvidence as T_,describeCall as c_,WORKLOG_KINDS as p_}from"./team-worklog.js";import{normalizeRequest as d_,subtaskFromRequest as R_,takeUp as A_,takeUpLine as f_,holdsGrants as O_,jobFromSubtask as I_,extendDependents as u_,taskTree as N_,threadRows as g_,MAX_SUBTASKS as M_,MAX_DEPTH as C_,MIN_TAKEUP_FIT as P_}from"./team-subtask.js";import{teamLine as x_,teamLanes as h_}from"./team-trail.js";import{promoteRoles as F_,starterTeam as k_,missingStarters as y_,teamHealth as U_,teamShape as v_,describeTeamShape as b_,whereItWorks as G_,rosterRows as B_,agentKind as K_,agentHue as H_,agentColor as w_,agentInitials as V_,roleCardId as X_,cardNumbers as W_,upsertAgents as z_,soloTeam as Y_,teamsWithSolos as J_,builtinOrg as j_,isBuiltin as Q_,grantChoices as q_,grantsFromChoices as Z_,skillChoices as $_,GRANT_INFO as ed,SOLO_BUDGET as rd,TEAM_SHAPES as od,ROSTER_KINDS as td}from"./team-org.js";import{observeInbox as id,observeStrip as sd,runLanes as nd,spendRows as Sd,engineStrip as Ed}from"./team-observe.js";import{mcpDispatchProvider as md,MCP_TOOL_NAME as Td}from"./mcp-dispatch.js";import{createManifest as pd,ManifestError as _d,SOURCES as dd}from"./manifest.js";import{createKernel as Ad,meetDecisions as fd,KernelError as Od,REQUIRED_PLUGINS as Id,ALLOW_ALL as ud}from"./kernel.js";import{replay as gd,formatReport as Md,parseJsonl as Cd,toJsonl as Pd}from"./harness.js";import{compileQuery as xd,findMatches as hd,matchIndexFor as Dd,expandReplacement as Fd,replaceMatch as kd,replaceAll as yd,replaceAllInRange as Ud,MAX_MATCHES as vd}from"./text-search.js";import{DATA_SCOPES as Gd}from"./scopes.js";import{MEMORY_VERSION as Kd,MEMORY_KINDS as Hd,MEMORY_KIND_NAMES as wd,AMBIENT_KINDS as Vd,MAX_MEMORY_CHARS as Xd,MIN_MEMORY_CHARS as Wd,DEFAULT_MAX_MEMORIES as zd,DEFAULT_BLOCK_CHARS as Yd,SAME_FACT as Jd,MEMORY_TOOL_SPEC as jd,MEMORY_UPCASTERS as Qd,MemoryError as qd,normalizeMemory as Zd,isValidMemory as $d,memoryKey as eR,slotOf as rR,similarity as oR,containment as tR,candidatesFrom as aR,reconcile as iR,matchForForget as sR,recall as nR,memoryBlock as SR,markUsed as ER,pruneMemories as lR,memoryToolSystem as mR,upcastMemory as TR,sameMemory as cR,AMBIENT_MAX_WORDS as pR}from"./memory.js";import{SOURCE_TRUST as dR,SkillSourceError as RR,defineSkillSource as AR,createSkillSourceRegistry as fR}from"./skill-sources.js";import{SKILL_MANIFEST_VERSION as IR,SKILL_CONTEXTS as uR,SKILL_HISTORY_SCOPES as NR,SKILL_MCP_MODES as gR,SKILL_TRUST as MR,SKILL_FILE_KINDS as CR,SKILL_UPCASTERS as PR,SkillManifestError as LR,isSafeSkillPath as xR,originOf as hR,trustOf as DR,skillFiles as FR,needsBridge as kR,declaredAccess as yR,originLabel as UR,sameSkillOrigin as vR,skillIsStale as bR,validateSkill as GR,upcastSkill as BR,upcastSkills as KR,normalizeSkill as HR}from"./skill-manifest.js";import{SKILL_VARS as VR,SKILL_VAR_NAMES as XR,skillVar as WR,skillVarPattern as zR,parseSkillVars as YR,lintSkillPrompt as JR,suggestSkillVar as jR,substituteSkillVars as QR,expandSkillPrompt as qR,skillVarGuidance as ZR,SkillVarError as $R}from"./skill-vars.js";import{lineAt as rA,writerAffordance as oA,INSTRUCTION_RE as tA,instructionOnLine as aA,GOAL_MIN_NEW as iA,goalDraftAllowed as sA,createSpendMeter as nA,writerTail as SA,draftSeparator as EA,groundingBlock as lA,writerRequest as mA,AUTOCOMPLETE_SYSTEM as TA,AUTOCOMPLETE_MAX_TOKENS as cA,AUTOCOMPLETE_TEMPERATURE as pA,clipCompletion as _A,GEARS as dA,WRITER_PREFS as RA,WRITER_PREF_DEFAULTS as AA,normalizeWriterPrefs as fA,normalizeIntent as OA}from"./cowriter-writer.js";import{SLASH_TYPING_RE as uA,NEW_THREAD_SLASH_ITEMS as NA,parseNewThread as gA,isSkillEnabled as MA,enabledSkills as CA,slashCommandItems as PA,matchSlashSkill as LA,matchSlashRecipe as xA,recipeInvocationText as hA,matchSlashTeam as DA,teamInvocationText as FA,slashCommandInsert as kA,skillInvocationOf as yA,skillInvocationLabel as UA}from"./slash-commands.js";import{outlineOf as bA,parseListItem as GA,continueList as BA,indentSelection as KA,toggleWrap as HA,toggleLinePrefix as wA,toggleTask as VA,toggleLink as XA,docStats as WA,selectionStats as zA}from"./markdown-authoring.js";import{MAX_TAG_LENGTH as JA,MAX_TAGS as jA,normalizeTag as QA,normalizeTags as qA,hasTag as ZA,addTag as $A,removeTag as ef,toggleTag as rf,sameTags as of,formatTag as tf,parseTagQuery as af,hasTagTerms as sf,formatTagQuery as nf,matchesTagFilter as Sf,filterByTags as Ef,tagFacets as lf,suggestExistingTags as mf,tagsSearchText as Tf}from"./tags.js";import{UNTITLED_MEETING as pf,MAX_TITLE_LENGTH as _f,TITLE_RULES_VERSION as df,cleanTitle as Rf,isGenericTitle as Af,titleFromSummary as ff,titleFromTopics as Of,titleFromParticipants as If,titleFromDate as uf,deriveMeetingTitle as Nf,shouldAutoTitle as gf,isBetterTitleSource as Mf,meetingTitlePrompt as Cf,parseTitleResponse as Pf}from"./titles.js";import{RECORD_KINDS as xf,MAX_TITLE_LEN as hf,LibraryError as Df,parseRecordId as Ff,makeRecordId as kf,isRecordId as yf,normalizeStoredRecord as Uf,isValidStoredRecord as vf,toSearchRecord as bf,searchTextFor as Gf,toIndexEntry as Bf,deriveTitle as Kf,snippetOf as Hf,wordCount as wf}from"./library.js";import{CLOCK_TOLERANCE_MS as Xf,SyncError as Wf,stampOf as zf,decide as Yf,planSync as Jf,isSettled as jf,forkConflict as Qf,advanceBases as qf}from"./sync-plan.js";import{ENCRYPTED_TYPE as $f,COMPRESSIONS as eO,BackupError as rO,KDF_ITERATIONS as oO,encryptBackup as tO,decryptBackup as aO,isEncryptedBackup as iO,RECORD_TYPE as sO,deriveBackupKey as nO,sealRecord as SO,openRecord as EO,isSealedRecord as lO,keyCache as mO,identityCodec as TO,streamCodec as cO,nodeCodec as pO,bestCodec as _O}from"./backup-envelope.js";import{recordsFromBackup as RO,backupFromRecords as AO}from"./backup-records.js";import{DEFAULT_POLICY as OO,SLOW_POLICY as IO,scalePolicy as uO,pickProfile as NO,adaptProfile as gO,policyFor as MO,SLOW_FLUSH_MS as CO,FAST_FLUSH_MS as PO,FAST_STREAK as LO,createJournal as xO,JournalError as hO,ENTRY_VERSION as DO,makeEntry as FO,tombstone as kO,isTombstone as yO,isEntry as UO,entryStamp as vO,supersedes as bO,BOUNDS as GO,createSegment as BO,applyEntry as KO,segmentBytes as HO,segmentEntries as wO,shouldRotate as VO,mergeSegments as XO,segmentName as WO,parseSegmentName as zO,SEGMENT_RE as YO,boundSegments as JO,segmentsFor as jO,overlay as QO,catchUpPlan as qO}from"./journal.js";import{OMNI_MODES as $O,OMNI_GRAMMAR as eI,parseOmni as rI,extractFilters as oI,resolveSince as tI,wantsModel as aI,isActionable as iI}from"./omni.js";import{THEMES as nI,LIGHT as SI,DARK as EI,PALETTES as lI,SHAPE as mI,TOKEN_NAMES as TI,TOKEN_ROLES as cI,paletteFor as pI,cssVarName as _I,toCssVars as dI,themeStylesheet as RI,resolveTheme as AI}from"./theme.js";import{PLANS as OI,API_BASE as II,ENDPOINTS as uI,ENTITLEMENT_PUBLIC_JWK as NI,UPGRADE_URL as gI,FEATURE_TIER as MI,PRO_FEATURES as CI,TEAM_FEATURES as PI,FREE_LIMITS as LI,COUNTED as xI,freeCap as hI,observeSince as DI,RECHECK_INTERVAL_MS as FI,EntitlementError as kI,checkoutUrl as yI,planOf as UI,planLabel as vI,isPro as bI,isTeam as GI,can as BI,tierFor as KI,withinFreeLimit as HI,verifyEntitlement as wI,verifySignedToken as VI,licenseFromPayload as XI,needsRecheck as WI}from"./entitlement.js";import{renderMarkdown as YI,defaultLinkPolicy as JI}from"./markdown-render.js";import{parseMeetingText as QI,speakerStats as qI,densityRibbon as ZI}from"./meeting-text.js";import{speakerBreakdown as eu,speakerTimeline as ru,formatTalkTime as ou,SPEAKER_SLOTS as tu}from"./meeting-shape.js";import{isSpeakerImageValue as iu,speakerLabeller as su}from"./meeting-shape.js";import{SORT_MODES as Su,SORT_LABELS as Eu,sortStamp as lu,sortRecords as mu,filterRecords as Tu,dayBucket as cu,rowTime as pu,groupRecords as _u}from"./record-list.js";import{INSIGHT_KINDS as Ru,summarySections as Au,insightKindOf as fu,meetingInsights as Ou,hasInsights as Iu}from"./meeting-insights.js";import{demd as Nu,NOTE_SECTIONS as gu,noteSectionKind as Mu,MOMENT_BADGES as Cu,momentBadge as Pu,parseMeetingNotes as Lu,groupActionsByOwner as xu}from"./meeting-insights.js";import{PREF_SECTIONS as Du,PREF_SECTION_IDS as Fu,DESKTOP_SECTION_IDS as ku,sectionSpec as yu,sectionValue as Uu,pickSections as vu,applySections as bu,sectionHash as Gu,mergeStamped as Bu,changedSections as Ku}from"./client-prefs.js";import{SETTINGS_GROUPS as wu,SETTINGS_PAGES as Vu,REQUIREMENTS as Xu,BOOKKEEPING_KEYS as Wu,listRows as zu,findRow as Yu,pageById as Ju,groupById as ju,pagesOf as Qu,quickRows as qu,breadcrumb as Zu,linkTo as $u,linkToRow as eN,parseLink as rN,valueOf as oN,setValue as tN,effectiveValue as aN,describeValue as iN,SETTINGS_OPEN_DEFAULT as sN,settingsOpenMode as nN,searchSettings as SN,statusOf as EN,statusAll as lN,homeChecklist as mN,gateOf as TN,sectionOfRow as cN}from"./settings-registry.js";import{pointsAtGateway as _N,destinationFromEndpoint as dN,destinationFromAgent as RN,availableDestinations as AN,seedDestinations as fN,shouldSeedDestinations as ON,mergeEndpointDestinations as IN}from"./gateway-dests.js";import{McpClient as NN,mcpProvider as gN}from"./mcp-client.js";import{mcpSharedSystem as CN,mcpInventorySystem as PN,sourceCitationSystem as LN,combineSystemPrompt as xN,toolStatus as hN,widgetAuthoringSystem as DN,vaultWidgetSystem as FN,wantsVaultGuidance as kN}from"./tool-hints.js";import{adaptiveToolRetryHint as UN,createAdaptiveToolPolicy as vN,isInvalidToolParametersResult as bN}from"./adaptive-tool-policy.js";import{getMcpProviders as BN,testMcpServer as KN,resetMcp as HN,mcpBackoff as wN}from"./mcp-manager.js";import{SIDELINE_COMMANDS as XN,BRINGBACK_COMMAND as WN,THREAD_TOOL_NAME as zN,SIDELINE_SLASH_ITEMS as YN,THREAD_TOOL_SPEC as JN,parseSideline as jN,parseBringBack as QN,resolveSidelineTarget as qN,threadManifest as ZN,threadToolProvider as $N,readThread as eg,briefPrompt as rg,foldBackNote as og,foldNotes as tg,nextSidelineIndex as ag,sourceOf as ig,noteUnits as sg,sidelinePath as ng,foldBackFor as Sg,SIDELINE_TOOL_NAME as Eg,SIDELINE_TOOL_SPEC as lg,sidelineToolProvider as mg}from"./sideline.js";import{WEATHER_TOOL_NAME as cg,WEATHER_TOOL_SYSTEM as pg,weatherToolProvider as _g}from"./weather-tool.js";import{renderContent as Rg,toChatMessages as Ag,toMultimodalMessages as fg,imageAttachmentsOf as Og,deferAttachedSources as Ig,withSourceTool as ug,SOURCE_TOOL_SPEC as Ng}from"./context-attachments.js";import{prefetchPlan as Mg,prefetchAttachment as Cg,weatherPlace as Pg,weatherFollowupPlace as Lg}from"./prefetch.js";import{createFetchedStore as hg,withFetchedMemo as Dg,fetchKey as Fg,fetchTitle as kg,fetchedAsSources as yg,fetchedFacts as Ug,defaultTtl as vg,FETCHED_TTL_MS as bg}from"./fetched.js";import{windowOf as Bg,fitFor as Kg,keepRecentFor as Hg,minWindowFor as wg,isContextLimitError as Vg,FIT_HEADROOM as Xg}from"./context-window.js";import{planCompaction as zg,compactionPrompt as Yg,compactionRecord as Jg,messagesAfter as jg,systemWithSummary as Qg,compactable as qg,COMPACTION_SYSTEM as Zg}from"./compaction.js";import{presenceFor as eM,presenceDelta as rM,reachOf as oM,withPresence as tM,presenceBlock as aM,roundCount as iM,roundMinutes as sM,PRESENCE_BUDGET_TOKENS as nM,PRESENCE_KINDS as SM}from"./presence.js";import{PolicyError as lM,POLICY_VERSION as mM,POLICY_TOKEN_TYPE as TM,REDACTION_TIERS as cM,LOCKABLE as pM,FEATURES as _M,PERMISSION_MODES as dM,PRODUCT_HOSTS as RM,normalizeOrgPolicy as AM,endpointAllowed as fM,modelAllowed as OM,agentAllowed as IM,permissionMode as uM,routeAllowed as NM,redactionTier as gM,egressAllowed as MM,settingLocked as CM,featureEnabled as PM,applyPolicyToSettings as LM,policyLabel as xM,policyHash as hM,verifyPolicyToken as DM,globToRegExp as FM}from"./policy.js";import{languageInstruction as yM,RESPONSE_LANGUAGES as UM}from"./response-language.js";import{NOTE_TOOL_SPECS as bM,makeNoteToolExecutor as GM}from"./note-tool.js";import{memoryToolProvider as KM}from"./memory-tool.js";import{skillRunFromSkill as wM,skillPackageFiles as VM,filterMcpServersForSkill as XM,skillToolSystem as WM,skillHandle as zM,rankSkills as YM,skillCatalogSystem as JM}from"./skill-runtime.js";import{skillFileProvider as QM,SKILL_FILE_TOOL as qM,skillEntry as ZM,skillDiscoveryProvider as $M}from"./skill-files.js";import{PATH_KIND as rC,FILES_TOOL as oC,checkAttachablePath as tC,secretReason as aC,isSecretPath as iC,pathAttachment as sC,describeAttachedPath as nC,describePathSize as SC,displayPath as EC,pathAttachmentsOf as lC,withAbsolutePaths as mC,attachedFilesProvider as TC,sniffType as cC,normalizePath as pC,collapseDots as _C,basenameOf as dC,SKIP_DIR_NAMES as RC}from"./attached-paths.js";import{EXTRACT_ROUTE as fC,EXTRACT_PROVIDER_ID as OC,MAX_DOCUMENT_BYTES as IC,PAGE_CHARS as uC,EXTRACT_TYPES as NC,validateExtractRequest as gC,validateExtractResponse as MC,paginateText as CC,gatewayExtractor as PC,extractorChain as LC}from"./extract-capability.js";import{MCP_REGISTRY_API as hC,MCP_CATALOG as DC,registryListUrl as FC,fetchMcpRegistryPage as kC,normalizeRegistryPage as yC,normalizeRegistryEntry as UC,mcpServerFromCatalogItem as vC}from"./mcp-registry.js";import{CE_SPECVERSION as GC,CE_TYPE_PREFIX as BC,CE_SOURCE_PREFIX as KC,rfc3339 as HC,ceSourceOf as wC,ceHostOf as VC,toCloudEvent as XC,fromCloudEvent as WC,toCloudEventLines as zC,fromCloudEventLines as YC,toCloudEventBatch as JC}from"./cloudevents.js";import{USAGE_RING_MAX as QC,COST_BASES as qC,usageRecord as ZC,usageFromEvent as $C,usageFromOpenAi as eP,rollupKey as rP,applyUsage as oP,summarizeUsage as tP,formatTurnUsage as aP,describeTurnUsage as iP,promptTokensOf as sP}from"./usage.js";import{rateFor as SP,costFor as EP,formatUsd as lP,PRICING_BASES as mP,PRICING_LABELS as TP,normalizePricing as cP,priceUsage as pP}from"./usage-pricing.js";import{FACTCHECK_SCHEMA as dP,FACTCHECK_VERDICTS as RP,lastClaimOf as AP,factcheckPrompt as fP,factcheckVerdict as OP,factcheckKey as IP}from"./cowriter-factcheck.js";import{createVoiceLoop as NP,VOICE_STATES as gP,MUTE_GRACE_MS as MP,MAX_PENDING_CHARS as CP,CONTINUATION_WINDOW_MS as PP,ECHO_OVERLAP as LP,ECHO_TAIL_MS as xP}from"./voice-loop.js";import{speakStream as DP}from"./speak-stream.js";import{createVad as kP,lowBandEnergy as yP,VAD_DEFAULTS as UP}from"./voice-vad.js";import{HF_API as bP,TTS_ARCH_LABEL as GP,ttsArchOf as BP,partitionTtsModels as KP,modelSearchUrl as HP,searchModels as wP,normalizeModel as VP,formatDownloads as XP,describeSearchResult as WP}from"./model-registry.js";import{SAMPLE_RATE as YP,MIN_SECONDS as JP,TARGET_SECONDS as jP,MAX_SECONDS as QP,PROMPT_TEXT as qP,sampleSeconds as ZP,sampleTooShort as $P,defaultVoiceName as eL,microphoneError as rL,webMedia as oL,startRecording as tL}from"./voice-sample.js";import{TIER_LABEL as iL,modelRows as sL,catalogStatus as nL,dtypePicker as SL,voicePicker as EL,voiceListRows as lL,diarizeRow as mL,switchOutcome as TL,saveVoiceFailure as cL,saveTimedOut as pL,catalogUnavailable as _L}from"./voice-models.js";import{dictToText as RL,textToDict as AL}from"./redaction-dictionary.js";import{groupRuns as OL,summarizeRun as IL,findRepeats as uL,withCost as NL,verdict as gL,toSanitizedReport as ML}from"./run-details.js";import{parseMcpConfig as PL,parseArgsInput as LL,argsToText as xL,parseEnvInput as hL,envToText as DL,envLikeArgs as FL}from"./mcp-config-import.js";import{mutableRef as yL,refreshArgs as UL,canRefresh as vL,describeRuntime as bL}from"./mcp-launcher.js";import{defaultMcpServers as BL,isDefaultMcpServer as KL}from"./default-mcp-servers.js";import{MONITOR_SOURCES as wL,DEFAULT_MONITOR_PROFILE as VL,monitorProfile as XL,monitorWindowMs as WL,monitorNeedsTools as zL,filterMonitorTools as YL,recentFindings as JL,describeMonitorProfile as jL}from"./monitor-profile.js";import{defaultSkills as qL,meetingNotesSkill as ZL}from"./default-skills.js";export{Ea as ACCESS_LOG_MAX,Sa as ACCESS_LOG_VERSION,i as ACTOR_KINDS,Fc as AGENT_ID_RE,Sm as AGENT_REF_RE,ud as ALLOW_ALL,a as ALL_TYPES,Vd as AMBIENT_KINDS,pR as AMBIENT_MAX_WORDS,II as API_BASE,kc as APPLIES_TO,km as ASK_TYPES,Uc as ASSISTANT_ID,cA as AUTOCOMPLETE_MAX_TOKENS,TA as AUTOCOMPLETE_SYSTEM,pA as AUTOCOMPLETE_TEMPERATURE,GT as AUTONOMY,Ia as AdapterError,vc as AgentError,Ms as AnalyzerError,oO as BACKUP_KDF_ITERATIONS,wm as BOARD_TOOL_NAME,Wu as BOOKKEEPING_KEYS,wo as BRIEF_STATES,WN as BRINGBACK_COMMAND,zl as BUDGET_DIMENSIONS,ss as BUILTIN_TRIGGERS,Ws as BUILTIN_VOICE_INTENTS,rO as BackupError,Wl as BudgetError,gs as CADENCES,KC as CE_SOURCE_PREFIX,GC as CE_SPECVERSION,BC as CE_TYPE_PREFIX,KT as CHECKS,Vo as CLAIM_KINDS,n as CLASSES,Xf as CLOCK_TOLERANCE_MS,Zg as COMPACTION_SYSTEM,eO as COMPRESSIONS,Nl as COMPRESSION_MODES,PP as CONTINUATION_WINDOW_MS,oE as COOLDOWN_MS,qC as COST_BASES,xI as COUNTED,Be as COWRITER_SYSTEM,Ke as COWRITER_TEMPERATURE,o as CURRENT_VERSION,EI as DARK,Gd as DATA_SCOPES,xs as DAYPART_HOUR,$c as DECLINE_REASONS,Vm as DEFAULT_ASK_TIMEOUT_MS,Yd as DEFAULT_BLOCK_CHARS,gl as DEFAULT_COMPRESSION,bT as DEFAULT_GATE,Ai as DEFAULT_INTERNAL_PATTERNS,xi as DEFAULT_LOCK_MS,PE as DEFAULT_MAX_FINISH_TRIES,zd as DEFAULT_MAX_MEMORIES,CE as DEFAULT_MAX_ROUNDS,gp as DEFAULT_MIN_CALLS,VL as DEFAULT_MONITOR_PROFILE,OO as DEFAULT_POLICY,HE as DEFAULT_SHIELD,wE as DEFAULT_STORE,go as DEFAULT_THRESHOLD,Ps as DEFAULT_WAKE,$E as DESCRIBE_ACTION,ku as DESKTOP_SECTION_IDS,LP as ECHO_OVERLAP,xP as ECHO_TAIL_MS,S as EFFECTS,E as EGRESS,yc as EGRESS_CLASSES,$f as ENCRYPTED_TYPE,uI as ENDPOINTS,br as ENGINE_KINDS,uc as ENGINE_SPEC_KINDS,Mn as ENTITIES_SCHEMA,NI as ENTITLEMENT_PUBLIC_JWK,gn as ENTITY_TYPES,ka as ENTRY_KINDS,DO as ENTRY_VERSION,t as EVENT_TYPES,ec as EXECUTIVE,hE as EXHAUSTED_NOTE,OC as EXTRACT_PROVIDER_ID,fC as EXTRACT_ROUTE,NC as EXTRACT_TYPES,kI as EntitlementError,l as EventError,dP as FACTCHECK_SCHEMA,RP as FACTCHECK_VERDICTS,oi as FAILOVER_CAPABILITY_GAP,ri as FAILOVER_CLASS_GAP,SE as FAILOVER_MAX_ATTEMPTS,PO as FAST_FLUSH_MS,LO as FAST_STREAK,_M as FEATURES,MI as FEATURE_TIER,bg as FETCHED_TTL_MS,Bn as FIELD_TYPES,oC as FILES_TOOL,Pm as FINDINGS_SCHEMA,Lm as FINDING_KINDS,jE as FIND_ACTION,El as FIND_DESCRIPTION,ll as FIND_RESIDENT,Sl as FIND_TOOL_NAME,LE as FINISH_NUDGES,Xg as FIT_HEADROOM,LI as FREE_LIMITS,dA as GEARS,iA as GOAL_MIN_NEW,im as GRANTABLE,ed as GRANT_INFO,nm as GRANT_RE,bP as HF_API,BT as HUMAN_FLAGS,ZS as INPUT_PROGRESS_TOOLS,Ru as INSIGHT_KINDS,tA as INSTRUCTION_RE,fi as INTERNAL_PATTERN_CATALOG,Mr as INVARIANTS,qi as JOB_ACTIONS,DT as JOB_POST_ID_RE,hT as JOB_POST_STATUSES,GO as JOURNAL_BOUNDS,xT as JobPostError,hO as JournalError,Li as KDF_HASH,Pi as KDF_ITERATIONS,Od as KernelError,Zc as LEDGER_ENTRY_KINDS,qc as LEDGER_VERSION,SI as LIGHT,$m as LIVE_RUN_STATUSES,pM as LOCKABLE,xE as LOOPING_NUDGE,wa as LOOP_KINDS,Df as LibraryError,Va as LoopError,Yo as MAX_BRIEF_CHARS,zo as MAX_BRIEF_RECORDS,Xo as MAX_CLAIMS,Wo as MAX_CLAIM_REFS,Ls as MAX_COMMANDS_PER_DELTA,C_ as MAX_DEPTH,IC as MAX_DOCUMENT_BYTES,yi as MAX_ENTRIES,lt as MAX_EXCERPTS,mt as MAX_EXCERPT_CHARS,Le as MAX_GRAPH_NODES,rc as MAX_JOBS_PER_ROUND,vd as MAX_MATCHES,Xd as MAX_MEMORY_CHARS,Fi as MAX_NOTE_CHARS,CP as MAX_PENDING_CHARS,oc as MAX_ROUNDS,QP as MAX_SECONDS,ki as MAX_SECRET_CHARS,Mo as MAX_SUBJECTS,Co as MAX_SUBJECT_CHARS,M_ as MAX_SUBTASKS,Dn as MAX_SUGGESTIONS,Fn as MAX_SUGGESTION_CHARS,Et as MAX_SYNTHESIS_CLAIMS,jA as MAX_TAGS,JA as MAX_TAG_LENGTH,Di as MAX_TITLE_CHARS,hf as MAX_TITLE_LEN,_f as MAX_TITLE_LENGTH,pn as MAX_TOPICS,_n as MAX_TOPIC_CHARS,DC as MCP_CATALOG,hC as MCP_REGISTRY_API,cS as MCP_SIGN_IN_CODE,Td as MCP_TOOL_NAME,Hd as MEMORY_KINDS,wd as MEMORY_KIND_NAMES,jd as MEMORY_TOOL_SPEC,Qd as MEMORY_UPCASTERS,Kd as MEMORY_VERSION,tm as MERGE_POLICIES,np as MIN_FIT,Wd as MIN_MEMORY_CHARS,JP as MIN_SECONDS,P_ as MIN_TAKEUP_FIT,Zi as MISSED_POLICIES,Cu as MOMENT_BADGES,wL as MONITOR_SOURCES,MP as MUTE_GRACE_MS,_d as ManifestError,NN as McpClient,qd as MemoryError,vt as NEAR_TITLE_DISTANCE,NA as NEW_THREAD_SLASH_ITEMS,H as NOTE_ACTIONS,X as NOTE_ACTION_ERRORS,w as NOTE_ACTION_ORDER,V as NOTE_ACTION_TEMPERATURE,W as NOTE_COMMANDS,Y as NOTE_COMMAND_MAX_TOKENS,z as NOTE_COMMAND_TEMPERATURE,gu as NOTE_SECTIONS,bM as NOTE_TOOL_SPECS,qS as OBSERVATION_TOOLS,eI as OMNI_GRAMMAR,$O as OMNI_MODES,uC as PAGE_CHARS,lI as PALETTES,KS as PARALLEL_LOCAL_RE,rC as PATH_KIND,Bt as PDF_MAX_CHARS,dM as PERMISSION_MODES,OI as PLANS,qe as PLAN_AUTHORS,$e as PLAN_DECOMPOSE_MAX_TOKENS,Ze as PLAN_DECOMPOSE_SYSTEM,er as PLAN_DECOMPOSE_TEMPERATURE,am as PLAN_MODES,Qe as PLAN_ROLES,rr as PLAN_SECTION_MAX_TOKENS,or as PLAN_SECTION_TEMPERATURE,TM as POLICY_TOKEN_TYPE,mM as POLICY_VERSION,Dm as POST_KINDS,Fm as POST_STATUSES,Du as PREF_SECTIONS,Fu as PREF_SECTION_IDS,nM as PRESENCE_BUDGET_TOKENS,SM as PRESENCE_KINDS,mP as PRICING_BASES,TP as PRICING_LABELS,RM as PRODUCT_HOSTS,AT as PROJECT_ID_RE,qT as PROJECT_JOBS_SCHEMA,ZT as PROJECT_REVIEW_SCHEMA,tc as PROJECT_RUN_STATUSES,RT as PROJECT_STATUSES,qP as PROMPT_TEXT,ct as PROPOSAL_STATES,CI as PRO_FEATURES,lM as PolicyError,dT as ProjectError,$T as ProjectRunError,lr as REACH,FI as RECHECK_INTERVAL_MS,yl as RECIPE_MODES,Bl as RECIPE_TOOL_NAME,Oc as RECORD_ENGINE_KINDS,xf as RECORD_KINDS,sO as RECORD_TYPE,sp as RECRUIT_SCHEMA,cM as REDACTION_TIERS,Uo as REDACTION_TOKEN_TYPES,qs as REFINEMENT_SCHEMA,_ as REF_KINDS,Fr as REGISTRY_STATES,Id as REQUIRED_PLUGINS,Xu as REQUIREMENTS,d as RESOLUTION,UM as RESPONSE_LANGUAGES,Kn as RESPONSE_MODES,Oe as RESULTS_PER_ENGINE,KE as RESULT_TOOL_NAME,eT as RESUMABLE_RUN_STATUSES,Ca as RETRIEVAL_TOOLS,Ac as ROLE_KINDS,om as ROLE_MODES,td as ROSTER_KINDS,DE as ROUND_SEPARATOR,Nc as ROUTE_PREFERS,r_ as RUN_STATUSES,kl as RecipeError,ai as RouterError,gi as RuleError,Jd as SAME_FACT,YP as SAMPLE_RATE,ji as SCHEDULE_KINDS,Lp as SCM_KINDS,s as SCOPE_KINDS,Rc as SCORECARD_ENTRY_KINDS,fc as SCORECARD_VERSION,fe as SEARCH_ENGINES,YO as SEGMENT_RE,bo as SELF_LABELS,wu as SETTINGS_GROUPS,sN as SETTINGS_OPEN_DEFAULT,Vu as SETTINGS_PAGES,mI as SHAPE,XN as SIDELINE_COMMANDS,YN as SIDELINE_SLASH_ITEMS,Eg as SIDELINE_TOOL_NAME,lg as SIDELINE_TOOL_SPEC,uR as SKILL_CONTEXTS,CR as SKILL_FILE_KINDS,qM as SKILL_FILE_TOOL,NR as SKILL_HISTORY_SCOPES,IR as SKILL_MANIFEST_VERSION,gR as SKILL_MCP_MODES,MR as SKILL_TRUST,PR as SKILL_UPCASTERS,VR as SKILL_VARS,XR as SKILL_VAR_NAMES,RC as SKIP_DIR_NAMES,uA as SLASH_TYPING_RE,CO as SLOW_FLUSH_MS,IO as SLOW_POLICY,rd as SOLO_BUDGET,Eu as SORT_LABELS,Su as SORT_MODES,dd as SOURCES,Ng as SOURCE_TOOL_SPEC,dR as SOURCE_TRUST,bt as SPAN_MIN_TERMS,tu as SPEAKER_SLOTS,iT as STALLED_AFTER_MS,Wc as STARTER_AGENTS,Em as STARTER_TEAMS,Yp as STEP_MAX_CHARS,No as SUBJECT_KINDS,kn as SUGGESTIONS_SCHEMA,pt as SUPERSEDE_OVERLAP,Ni as SUPPRESSED,Te as SWARM_ROLES,st as SYNTHESIS_SCHEMA,$i as ScheduleError,Gr as SearchEngineError,LR as SkillManifestError,RR as SkillSourceError,$R as SkillVarError,Hn as StructuredError,Wf as SyncError,jP as TARGET_SECONDS,Jp as TASK_TRANSCRIPT_MAX_CHARS,PI as TEAM_FEATURES,S_ as TEAM_MANUAL,Om as TEAM_PLAN_SCHEMA,od as TEAM_SHAPES,n_ as TEAM_TOOL_NAME,nI as THEMES,xm as THREAD_KINDS,hm as THREAD_STATUSES,zN as THREAD_TOOL_NAME,JN as THREAD_TOOL_SPEC,iL as TIER_LABEL,df as TITLE_RULES_VERSION,TI as TOKEN_NAMES,cI as TOKEN_ROLES,hS as TOKEN_SKEW_MS,dn as TOPICS_SCHEMA,Jt as TRANSCRIPT_MAX_CHARS,Qi as TRIGGER_KINDS,GP as TTS_ARCH_LABEL,rm as TeamError,e_ as TeamRunError,Zr as ToolGroupError,tE as UNAVAILABLE_REASONS,pf as UNTITLED_MEETING,pr as UPCASTERS,gI as UPGRADE_URL,QC as USAGE_RING_MAX,Tn as UTTERANCE_DANGLING_MS,mn as UTTERANCE_SETTLE_MS,UP as VAD_DEFAULTS,Ci as VAULT_VERSION,gP as VOICE_STATES,hi as VaultError,hs as VoiceIntentError,zr as WEATHER_HOST,Yr as WEATHER_TIMEOUT_MS,cg as WEATHER_TOOL_NAME,pg as WEATHER_TOOL_SYSTEM,_l as WEB_SEARCH_SPEC,cl as WEB_SEARCH_TOOL_NAME,pl as WEB_SEARCH_TOOL_SYSTEM,Ro as WIDGET_SURFACES,ep as WITHDRAW_AFTER,p_ as WORKLOG_KINDS,sm as WORK_GRANTS,RA as WRITER_PREFS,AA as WRITER_PREF_DEFAULTS,Jr as WeatherError,Yt as YOUTUBE_HOSTS,dt as accept,el as actionMenu,gO as adaptProfile,UN as adaptiveToolRetryHint,$A as addTag,uE as addUsage,cc as adjustSummary,qf as advanceBases,IM as agentAllowed,w_ as agentColor,Jc as agentFromForm,H_ as agentHue,V_ as agentInitials,K_ as agentKind,oe as agentMentionAt,Do as aliasMap,ME as anthropicTranscript,gT as applyAll,Cp as applyCard,Ge as applyEdits,KO as applyEntry,LM as applyPolicyToSettings,bu as applySections,oP as applyUsage,de as appoint,Xr as areaLabel,xL as argsToText,Kc as assistantAgent,TC as attachedFilesProvider,vr as attemptOrder,Ec as attest,CS as authHeader,uS as authorizeUrl,AN as availableDestinations,AO as backupFromRecords,kS as bareToolName,dC as basenameOf,_O as bestCodec,Yc as blankAgent,bp as blankConnection,PT as blankJobPost,mT as blankProject,mm as blankTeam,QS as blockedToolResult,gm as boardText,Gm as boardToolProvider,Bm as boardToolSpec,JO as boundSegments,kp as branchFor,Zu as breadcrumb,fm as breakCycles,jo as briefId,Zo as briefLinks,rg as briefPrompt,qo as briefTerms,Qo as briefToText,rl as buildGroupDispatchSpec,xe as buildNoteGraph,Wt as buildPdfDocument,Ie as buildSearchUrl,qE as buildToolset,La as buildTrajectory,ia as buildTranscriptDocument,j_ as builtinOrg,BI as can,Wi as canAddEntry,NT as canJobPostTransition,lT as canProjectTransition,vL as canRefresh,yS as canRunConcurrently,Or as canSatisfy,aR as candidatesFrom,ic as canonical,RS as canonicalResource,qt as captionTracksFromPlayerResponse,W_ as cardNumbers,Mp as cardOverride,Op as carveBudget,nL as catalogStatus,_L as catalogUnavailable,qO as catchUpPlan,N as causesAreWellFormed,VC as ceHostOf,wC as ceSourceOf,Ku as changedSections,tC as checkAttachablePath,gr as checkInvariants,$o as checkKnowledgeInvariants,yI as checkoutUrl,qm as checkpointFrom,B as chipText,St as claimsFromSynthesis,eE as classifyFailure,pe as classifyModel,Ti as classifySource,Rf as cleanTitle,_A as clipCompletion,Vp as clipMessage,fs as clipText,wp as clipTranscript,qn as coerce,xn as coerceEntities,_C as collapseDots,xN as combineSystemPrompt,Z as commandLineAt,Sn as commandLooksFinished,ys as commandsFromSegments,GE as compactValue,qg as compactable,Yg as compactionPrompt,Jg as compactionRecord,u as compareEvents,xd as compileQuery,Ds as compileWake,G as composerChips,fl as compressToolSpec,Ol as compressToolSpecs,Il as compressionStats,Fp as connectionFor,Gp as connectionFromForm,tR as containment,Jo as contentHash,Wp as continuationNote,BA as continueList,ft as converge,EP as costFor,Ta as createAccessLog,Oa as createAdapterRegistry,vN as createAdaptiveToolPolicy,Ns as createAnalyzerRegistry,Km as createAnswerBox,c as createAppender,xr as createBlobStore,um as createBoard,Hl as createBudget,RE as createCallRunner,Ma as createCitationCollector,zp as createControl,hg as createFetchedStore,xO as createJournal,Ad as createKernel,Lr as createLogStore,pd as createManifest,Pr as createMemoryAdapter,rE as createModelHealth,Ja as createModelRouter,Dr as createRegistry,kE as createResultStore,ui as createRuleEngine,Wm as createRunCache,BO as createSegment,fR as createSkillSourceRegistry,nA as createSpendMeter,$n as createStructuredStream,qr as createToolGroupRegistry,WS as createToolLoopGuard,is as createTriggerRegistry,Ka as createTurnRunner,ln as createUtteranceGate,kP as createVad,Ui as createVault,Vs as createVoiceIntentRegistry,NP as createVoiceLoop,Up as credentialEnv,_I as cssVarName,cu as dayBucket,Yf as decide,dp as decideRecruit,yR as declaredAccess,aO as decryptBackup,JI as defaultLinkPolicy,BL as defaultMcpServers,k as defaultModelId,qL as defaultSkills,vg as defaultTtl,Xs as defaultVoiceIntents,eL as defaultVoiceName,Ig as deferAttachedSources,fa as defineAdapter,Bc as defineAgent,_s as defineJob,uT as defineJobPost,Ha as defineLoop,us as defineMeetingAnalyzer,za as defineMiddleware,Wa as defineModel,ET as defineProject,Ya as defineRouteStrategy,Ii as defineRule,wn as defineSchema,yr as defineSearchEngine,AR as defineSkillSource,Jl as defineTeam,Qr as defineToolGroup,as as defineTrigger,ws as defineVoiceIntent,Nu as demd,ZI as densityRibbon,P as dequeue,nO as deriveBackupKey,ot as deriveBrief,tt as deriveBriefs,bi as deriveKey,Nf as deriveMeetingTitle,Kf as deriveTitle,wc as describeAgent,nC as describeAttachedPath,c_ as describeCall,vp as describeConnection,xc as describeEngine,jL as describeMonitorProfile,SC as describePathSize,Gl as describeRecipeForApproval,em as describeRole,bL as describeRuntime,Vn as describeSchema,WP as describeSearchResult,iN as describeSettingValue,bE as describeShape,oT as describeSpend,s_ as describeTeamForApproval,b_ as describeTeamShape,OE as describeToolCall,iP as describeTurnUsage,RN as destinationFromAgent,dN as destinationFromEndpoint,mL as diarizeRow,RL as dictToText,At as diffProposal,PS as discoverMcpAuth,Fa as displayName,EC as displayPath,WA as docStats,EA as draftSeparator,at as driftedRefs,hl as dryRunRecipe,Zp as dryRunTeam,SL as dtypePicker,ds as dueJobs,xt as duplicateTitles,ko as earnsBrief,Hs as editDistance,be as editKey,UT as effectiveGate,po as effectiveGrants,aN as effectiveSettingValue,GS as effectiveToolName,he as egoGraph,MM as egressAllowed,ym as emptyBoardState,cT as emptyProjectRecord,Jm as emptyRun,CA as enabledSkills,tO as encryptBackup,fM as endpointAllowed,_c as engineKey,Lc as engineKeyOf,Hc as engineOf,Ce as engineOrder,Pc as engineRef,Sp as engineRow,Ep as engineRows,Ed as engineStrip,Tp as engineWorth,Pn as entitiesFormat,Cn as entitiesPrompt,hn as entitiesStream,Hi as entryMeta,vO as entryStamp,FL as envLikeArgs,DL as envToText,oo as equipmentFor,sl as estimateTokens,pp as evaluatorPrompt,Pl as expandRecipe,Fd as expandReplacement,qR as expandSkillPrompt,rS as explainMcpError,u_ as extendDependents,oI as extractFilters,ci as extractUrls,LC as extractorChain,IP as factcheckKey,fP as factcheckPrompt,OP as factcheckVerdict,nE as failoverExhausted,$a as failoverOrder,PM as featureEnabled,Fg as fetchKey,kC as fetchMcpRegistryPage,xS as fetchMcpToken,kg as fetchTitle,yg as fetchedAsSources,Ug as fetchedFacts,Ef as filterByTags,Da as filterEntries,XM as filterMcpServersForSkill,YL as filterMonitorTools,q as filterNoteActions,Tu as filterRecords,F as filterSections,ve as filterTypoEdits,zE as findActionArgs,ml as findDispatchProvider,Yn as findJson,hd as findMatches,uL as findRepeats,Yu as findRow,ie as findSkillByName,se as findTargetByName,XE as findTools,WE as findToolsResult,Fs as findWakeCommand,Mm as findingsInstruction,vm as findingsOf,Tc as fit,Kg as fitFor,_m as fixedPlan,Sg as foldBackFor,og as foldBackNote,Um as foldBoard,tg as foldNotes,pT as foldProject,jm as foldRun,Qf as forkConflict,pa as formatBytes,XP as formatDownloads,Md as formatReport,Ut as formatSurvey,tf as formatTag,nf as formatTagQuery,ou as formatTalkTime,ta as formatTimestamp,aa as formatTranscript,aP as formatTurnUsage,lP as formatUsd,Vr as formatWeather,J as frameNoteAction,hI as freeCap,Yi as fromB64,WC as fromCloudEvent,YC as fromCloudEventLines,fo as fuseRRF,vT as gateAllows,PC as gatewayExtractor,BN as getMcpProviders,Kr as getWeather,nn as gistOpening,sn as gistText,FM as globToRegExp,sA as goalDraftAllowed,Zl as grantAllows,q_ as grantChoices,Z_ as grantsFromChoices,ro as grantsNeededFor,Fe as graphStats,lA as groundingBlock,xu as groupActionsByOwner,ju as groupById,D as groupModels,_u as groupRecords,OL as groupRuns,oa as groupSegments,Iu as hasInsights,ZA as hasTag,sf as hasTagTerms,O_ as holdsGrants,mN as homeChecklist,pi as hostMatches,TO as identityCodec,Og as imageAttachmentsOf,KA as indentSelection,fu as insightKindOf,aS as installHintFor,aA as instructionOnLine,iI as isActionable,Wr as isAmbiguousLocation,Mf as isBetterTitleSource,Q_ as isBuiltin,US as isCacheable,Vg as isContextLimitError,KL as isDefaultMcpServer,iO as isEncryptedBackup,UO as isEntry,an as isFillerSentence,Af as isGenericTitle,bN as isInvalidToolParametersResult,Vi as isLocked,jS as isLoopableTool,$p as isModelUnavailable,Qn as isNothing,bI as isPro,C as isQueued,yf as isRecordId,vo as isRedactionToken,A as isRef,Ne as isResultHost,Zm as isResumable,xR as isSafeSkillPath,lO as isSealedRecord,iC as isSecretPath,Go as isSelfLabel,jf as isSettled,MA as isSkillEnabled,cE as isSourceGateError,iu as isSpeakerImageValue,tS as isStaleMcpSession,ho as isSubjectCandidate,GI as isTeam,yO as isTombstone,T as isValidEvent,$d as isValidMemory,vf as isValidStoredRecord,Qt as isYouTubeUrl,cp as jobApplications,I_ as jobFromSubtask,LT as jobPostFromForm,WT as jobResults,MT as jobToRole,Rs as jobsForEvent,jT as jobsPrompt,Hg as keepRecentFor,mO as keyCache,ha as lanesOf,yM as languageInstruction,AP as lastClaimOf,io as layoutFlowchart,rp as ledgerKey,XI as licenseFromPayload,rA as lineAt,I as linearize,Kt as linesFromItems,Ot as linkClaims,$u as linkTo,eN as linkToRow,Na as linkifyCitations,JR as lintSkillPrompt,ye as lintText,zu as listRows,Xi as lockedSummary,Xt as looksScanned,yP as lowBandEnergy,ma as makeAccessEvent,il as makeDispatchProvider,nc as makeEntry,tl as makeGroupDispatchExecutor,FO as makeJournalEntry,tp as makeLedgerEntry,GM as makeNoteToolExecutor,kf as makeRecordId,R as makeRef,si as makeSourceStore,ca as makeStorageTier,ni as manifestText,xl as mapInput,ER as markUsed,sR as matchForForget,Dd as matchIndexFor,xA as matchSlashRecipe,LA as matchSlashSkill,DA as matchSlashTeam,Os as matchSummary,Sf as matchesTagFilter,wN as mcpBackoff,md as mcpDispatchProvider,PN as mcpInventorySystem,gN as mcpProvider,vC as mcpServerFromCatalogItem,CN as mcpSharedSystem,fd as meetDecisions,_i as meetReach,Es as meetingEndedTrigger,Ou as meetingInsights,ZL as meetingNotesSkill,Ss as meetingStartedTrigger,Cf as meetingTitlePrompt,SR as memoryBlock,eR as memoryKey,KM as memoryToolProvider,mR as memoryToolSystem,ne as mentionAnswerPrefix,Dt as mentionsFrom,IN as mergeEndpointDestinations,Me as mergeEngineResults,Je as mergeResearchLanes,XO as mergeSegments,ae as mergeSkillPrompt,Bu as mergeStamped,Hp as mergeTranscript,jg as messagesAfter,Kp as messagesFor,rL as microphoneError,wg as minWindowFor,sS as missingCommandIn,iS as missingCommandMessage,y_ as missingStarters,OM as modelAllowed,sL as modelRows,HP as modelSearchUrl,y as modelSummary,Pu as momentBadge,Qs as monitorIntent,zL as monitorNeedsTools,XL as monitorProfile,WL as monitorWindowMs,L as moveQueued,Io as multiSearch,yL as mutableRef,lp as needForJob,kR as needsBridge,vS as needsConfirmation,WI as needsRecheck,Xp as newSteps,rs as nextFireAt,ag as nextSidelineIndex,ts as nextWakeAt,pO as nodeCodec,aE as normModelName,Gc as normalizeAgent,Vl as normalizeBudget,op as normalizeCall,hp as normalizeConnection,pc as normalizeEngine,Mc as normalizeEngineSpec,yT as normalizeGate,ql as normalizeGrants,OA as normalizeIntent,IT as normalizeJobPost,Zd as normalizeMemory,VP as normalizeModel,AM as normalizeOrgPolicy,pC as normalizePath,nS as normalizePlatform,gc as normalizePolicy,cP as normalizePricing,ST as normalizeProject,ut as normalizeRecord,Nt as normalizeRecords,UC as normalizeRegistryEntry,yC as normalizeRegistryPage,d_ as normalizeRequest,dc as normalizeScm,HR as normalizeSkill,Bs as normalizeSpeech,Uf as normalizeStoredRecord,Po as normalizeSubject,QA as normalizeTag,qA as normalizeTags,Ql as normalizeTeam,In as normalizeTopic,un as normalizeTopics,NE as normalizeUsage,fA as normalizeWriterPrefs,Q as noteActionItems,j as noteActionLabel,js as noteIntent,Mu as noteSectionKind,sg as noteUnits,id as observeInbox,DI as observeSince,sd as observeStrip,As as occurrenceKey,os as occurrencesBetween,YE as oneLiner,gE as openAiTranscript,Bi as openEntry,EO as openRecord,Ht as orderLines,UR as originLabel,hR as originOf,Lt as orphanRecords,bA as outlineOf,JE as overlapRank,QO as overlayEntries,oS as packageFromArgs,Ju as pageById,Vt as pageTextFromItems,Qu as pagesOf,CC as paginateText,pI as paletteFor,wt as paragraphsFromLines,BS as parallelEligible,re as parseAgentMention,LL as parseArgsInput,_S as parseAuthChallenge,et as parseBriefText,QN as parseBringBack,vs as parseClock,ks as parseCommand,Us as parseDuration,Ln as parseEntities,hL as parseEnvInput,_p as parseEvaluation,Nm as parseFindings,ao as parseFlowchart,YT as parseJobs,Cd as parseJsonl,rN as parseLink,GA as parseListItem,PL as parseMcpConfig,Lu as parseMeetingNotes,QI as parseMeetingText,gA as parseNewThread,Gs as parseNumberWords,rI as parseOmni,dm as parsePlan,ar as parsePlanTasks,Ff as parseRecordId,en as parseRefinement,Dp as parseRemote,JT as parseReview,zO as parseSegmentName,jN as parseSideline,ES as parseSignInPrompt,te as parseSkillMention,YR as parseSkillVars,Zn as parseStructured,vn as parseSuggestions,af as parseTagQuery,ra as parseTimedText,Pf as parseTitleResponse,On as parseTopics,wr as parseWeather,bs as parseWhen,jt as parseYouTubeUrl,KP as partitionTtsModels,sC as pathAttachment,lC as pathAttachmentsOf,M as pendingQueue,uM as permissionMode,ls as personJoinedTrigger,xa as phasesOf,ms as phraseTrigger,$t as pickCaptionTrack,NO as pickProfile,ge as pickResults,vu as pickSections,ei as pinnedOrderOf,Sr as planAttribution,nr as planBody,zg as planCompaction,vI as planLabel,UI as planOf,sr as planParts,Oo as planQueries,tr as planSectionSystem,Jf as planSync,ir as planTitleFor,wS as planToolRound,Rm as plannerPrompt,_N as pointsAtGateway,MO as policyFor,hM as policyHash,xM as policyLabel,jc as poolFor,Za as preferenceFor,Cg as prefetchAttachment,Mg as prefetchPlan,aM as presenceBlock,rM as presenceDelta,eM as presenceFor,pP as priceUsage,aT as priorWorkFor,Ra as projectChain,TT as projectFromForm,_T as projectProgress,x as promoteQueued,F_ as promoteRoles,va as promptEntries,sP as promptTokensOf,Ap as proposalFromNeeds,fp as proposalToAgent,_t as propose,lR as pruneMemories,cs as questionTrigger,qu as quickRows,le as rankLinkTargets,Ye as rankResearchCards,YM as rankSkills,yo as rankSubjects,SP as rateFor,oM as reachOf,mr as reachRank,Tr as reachSatisfies,fS as readAuthServerMetadata,IS as readRegistration,AS as readResourceMetadata,Ei as readSource,eg as readThread,gS as readTokenResponse,CT as readyJobs,nR as recall,JL as recentFindings,hA as recipeInvocationText,Ll as recipeParams,vl as recipeToolProvider,bl as recipeToolSpec,iR as reconcile,Ur as reconcileEngines,RO as recordsFromBackup,Ip as recruitEvents,Rp as recruitForRun,up as recruitJob,la as redactAccessArgs,Mt as redactedTokensIn,Ct as redactionCost,gM as redactionTier,tn as refineSpokenCommand,$s as refinementFormat,Zs as refinementPrompt,rn as refinementStream,UL as refreshArgs,LS as registerMcpClient,OS as registrationRequest,FC as registryListUrl,Rt as reject,v as rememberRecent,Ys as reminderIntent,ef as removeTag,Rg as renderContent,so as renderFlowchartSvg,YI as renderMarkdown,jn as repairJson,yd as replaceAll,Ud as replaceAllInRange,kd as replaceMatch,gd as replay,Qa as requirementsFor,qa as requirementsForStep,Xe as researchRelevance,ze as researchSnippet,HN as resetMcp,f as resolveRef,qN as resolveSidelineTarget,tI as resolveSince,Fo as resolveSubjects,Xc as resolveTeam,AI as resolveTheme,Wn as responseFormat,BE as resultToolSpec,qp as resumeTeam,QT as reviewPrompt,Jn as rewriteJson,HC as rfc3339,ce as roleById,X_ as roleCardId,rP as rollupKey,B_ as rosterRows,zT as roundBudget,AE as roundCap,iM as roundCount,VT as roundJobs,sM as roundMinutes,zS as roundSignature,NM as routeAllowed,mp as routeFor,da as routeGraph,Re as routeTeam,pu as rowTime,Qm as runFromEvents,nd as runLanes,Dl as runPlan,wT as runProject,Fl as runRecipe,UE as runResultQuery,tT as runState,Qp as runTeam,VS as runToolRound,dE as runTurnLoop,sE as runWithFailover,we as salientTerms,cR as sameMemory,ti as sameModelKey,vR as sameSkillOrigin,of as sameTags,En as sameUtterance,ZP as sampleSeconds,$P as sampleTooShort,pL as saveTimedOut,cL as saveVoiceFailure,uO as scalePolicy,Js as scheduleIntent,$l as scmAllows,Gi as sealEntry,SO as sealRecord,wi as searchEntries,wP as searchModels,dl as searchResultsToText,SN as searchSettings,Gf as searchTextFor,aC as secretReason,Gu as sectionHash,cN as sectionOfRow,yu as sectionSpec,Uu as sectionValue,fN as seedDestinations,HO as segmentBytes,wO as segmentEntries,WO as segmentName,jO as segmentsFor,zA as selectionStats,tN as setSettingValue,CM as settingLocked,oN as settingValue,TN as settingsGateOf,nN as settingsOpenMode,lN as settingsStatusAll,EN as settingsStatusOf,on as settleRefinement,sc as sha256,yE as shieldToolResult,Si as shortUrl,gf as shouldAutoTitle,VO as shouldRotate,ON as shouldSeedDestinations,ng as sidelinePath,mg as sidelineToolProvider,lS as signInError,mS as signInFromError,TS as signInToolResult,ja as signalsFrom,oR as similarity,JM as skillCatalogSystem,$_ as skillChoices,$M as skillDiscoveryProvider,ZM as skillEntry,QM as skillFileProvider,FR as skillFiles,zM as skillHandle,UA as skillInvocationLabel,yA as skillInvocationOf,bR as skillIsStale,VM as skillPackageFiles,wM as skillRunFromSkill,WM as skillToolSystem,WR as skillVar,ZR as skillVarGuidance,zR as skillVarPattern,kA as slashCommandInsert,PA as slashCommandItems,rR as slotOf,Vc as slugAgentId,cm as slugTeamName,cC as sniffType,Hf as snippetOf,Y_ as soloTeam,mu as sortRecords,lu as sortStamp,LN as sourceCitationSystem,TE as sourceGate,mE as sourceGuardFor,li as sourceId,ig as sourceOf,di as sourcePolicyFor,lE as sourcePolicySettings,Ri as sourceUrlsOf,ga as sourcesFromToolText,Ft as spanningQuestions,DP as speakStream,eu as speakerBreakdown,su as speakerLabeller,qI as speakerStats,ru as speakerTimeline,rT as spendOf,Sd as spendRows,YS as stableToolCallKey,zf as stampOf,tL as startRecording,zc as starterAgents,k_ as starterTeam,lm as starterTeams,IE as stepResultText,cO as streamCodec,Bo as stripQualifiers,Lo as subjectKey,xo as subjectTokens,QR as substituteSkillVars,R_ as subtaskFromRequest,mf as suggestExistingTags,Ko as suggestMerges,jR as suggestSkillVar,Un as suggestionsFormat,yn as suggestionsPrompt,bn as suggestionsStream,mc as summarize,ap as summarizeEngine,IL as summarizeRun,tP as summarizeUsage,Au as summarySections,bO as supersedes,_e as supportsSubagents,kt as surveyCorpus,TL as switchOutcome,nt as synthesisPrompt,Qg as systemWithSummary,lf as tagFacets,Tf as tagsSearchText,A_ as takeUp,f_ as takeUpLine,N_ as taskTree,XT as teamForRound,Tm as teamFromForm,U_ as teamHealth,FA as teamInvocationText,h_ as teamLanes,x_ as teamLine,v_ as teamShape,t_ as teamToolProvider,a_ as teamToolSpec,i_ as teamToolTimeoutMs,J_ as teamsWithSolos,KN as testMcpServer,AL as textToDict,RI as themeStylesheet,ZN as threadManifest,g_ as threadRows,Ua as threadTitle,$N as threadToolProvider,Ga as threadTree,ya as threadsOf,yt as thresholdSweep,KI as tierFor,hc as tierOf,ea as timedTextUrl,zs as timerIntent,ns as timerTrigger,uf as titleFromDate,If as titleFromParticipants,ff as titleFromSummary,Of as titleFromTopics,zi as toB64,Cm as toBriefClaims,Ag as toChatMessages,XC as toCloudEvent,JC as toCloudEventBatch,zC as toCloudEventLines,dI as toCssVars,Bf as toIndexEntry,Xn as toJsonSchema,Pd as toJsonl,Ir as toModelSchema,ur as toModelSchemas,fg as toMultimodalMessages,ML as toSanitizedReport,bf as toSearchRecord,wA as toggleLinePrefix,XA as toggleLink,rf as toggleTag,VA as toggleTask,HA as toggleWrap,MS as tokenExpired,NS as tokenRequest,Ks as tokenize,kO as tombstone,JS as toolMadeProgress,eo as toolNeedFor,hN as toolStatus,FS as toolTraits,Ve as topicTerms,Ts as topicTrigger,fn as topicsFormat,An as topicsPrompt,Rn as topicsSchema,Nn as topicsStream,bS as traitsIndex,sa as transcriptFromTracks,$ as triggerQueryAt,ul as trimDescription,De as trimGraph,DR as trustOf,BP as ttsArchOf,ba as turnsOf,zn as unfence,vi as unlockVault,ue as unwrapRedirect,_r as upcast,dr as upcastAll,TR as upcastMemory,BR as upcastSkill,KR as upcastSkills,z_ as upsertAgents,$C as usageFromEvent,eP as usageFromOpenAi,Xl as usageOf,ZC as usageRecord,ol as validateAction,bc as validateAgent,wl as validateBudget,Ar as validateCapability,xp as validateConnection,Cc as validateEngineSpec,Ki as validateEntry,m as validateEvent,gC as validateExtractRequest,MC as validateExtractResponse,kT as validateGate,fr as validateInvocation,OT as validateJobPost,nT as validateProject,Cl as validateRecipe,es as validateSchedule,GR as validateSkill,jl as validateTeam,So as validateView,Eo as validateViewInvocation,To as validateWidget,co as validateWidgetMessage,FN as vaultWidgetSystem,gL as verdict,lc as verifyAttested,Sc as verifyChain,wI as verifyEntitlement,DM as verifyPolicyToken,VI as verifySignedToken,Zt as videoMetaFromPlayerResponse,lo as viewResult,ht as vocabularyDrift,ps as voiceCommandTrigger,lL as voiceListRows,EL as voicePicker,Pt as wantedPages,aI as wantsModel,kN as wantsVaultGuidance,Am as waves,Lg as weatherFollowupPlace,Pg as weatherPlace,_g as weatherToolProvider,Hr as weatherUrl,oL as webMedia,We as webQuery,Rl as webSearchToolProvider,dS as wellKnownUrls,G_ as whereItWorks,DN as widgetAuthoringSystem,_o as widgetIcon,Ee as wikiQueryAt,gt as wikilinksIn,Bg as windowOf,mC as withAbsolutePaths,Hm as withBoardTool,NL as withCost,Dg as withFetchedMemo,al as withGuidance,tM as withPresence,U as withRecent,vE as withResultShield,zm as withRunCache,ug as withSourceTool,fE as withToolSystem,HI as withinFreeLimit,pE as withinReach,wf as wordCount,Ue as wordDiff,T_ as workLogEvidence,l_ as workLogFor,m_ as workLogText,yp as worktreeDirFor,oA as writerAffordance,mA as writerRequest,SA as writerTail};
1
+ import{CURRENT_VERSION as o,EVENT_TYPES as t,ALL_TYPES as a,ACTOR_KINDS as i,SCOPE_KINDS as s,CLASSES as n,EFFECTS as E,EGRESS as S,EventError as l,validateEvent as T,isValidEvent as m,createAppender as c}from"./event.js";import{REF_KINDS as _,RESOLUTION as d,makeRef as R,isRef as A,resolveRef as f}from"./ref.js";import{linearize as I,compareEvents as u,causesAreWellFormed as N}from"./order.js";import{pendingQueue as 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 v}from"./model-picker.js";import{composerChips as G,chipText as B}from"./composer-chips.js";import{NOTE_ACTIONS as H,NOTE_ACTION_ORDER as w,NOTE_ACTION_TEMPERATURE as V,NOTE_ACTION_ERRORS as X,NOTE_COMMANDS as W,NOTE_COMMAND_TEMPERATURE as Y,NOTE_COMMAND_MAX_TOKENS as z,frameNoteAction as J,noteActionLabel as j,noteActionItems as Q,filterNoteActions as q,commandLineAt as Z,triggerQueryAt as $}from"./note-actions.js";import{parseAgentMention as re,agentMentionAt as oe,parseSkillMention as te,mergeSkillPrompt as ae,findSkillByName as ie,findTargetByName as se,mentionAnswerPrefix as ne}from"./note-mentions.js";import{wikiQueryAt as Se,rankLinkTargets as le}from"./note-links.js";import{SWARM_ROLES as me,roleById as ce,classifyModel as pe,supportsSubagents as _e,appoint as de,routeTeam as Re}from"./cowriter-router.js";import{SEARCH_ENGINES as fe,RESULTS_PER_ENGINE as Oe,buildSearchUrl as Ie,unwrapRedirect as ue,isResultHost as Ne,pickResults as ge,mergeEngineResults as 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 ve,editKey as be,applyEdits as Ge,COWRITER_SYSTEM as Be,COWRITER_TEMPERATURE as Ke}from"./cowriter.js";import{salientTerms as we,topicTerms as Ve,researchRelevance as Xe,webQuery as We,researchSnippet as Ye,rankResearchCards as ze,mergeResearchLanes as Je}from"./note-research.js";import{PLAN_ROLES as Qe,PLAN_AUTHORS as qe,PLAN_DECOMPOSE_SYSTEM as Ze,PLAN_DECOMPOSE_MAX_TOKENS as $e,PLAN_DECOMPOSE_TEMPERATURE as er,PLAN_SECTION_MAX_TOKENS as rr,PLAN_SECTION_TEMPERATURE as or,planSectionSystem as tr,parsePlanTasks as ar,planTitleFor as ir,planParts as sr,planBody as nr,planAttribution as Er}from"./note-plan.js";import{REACH as lr,reachRank as Tr,reachSatisfies as mr}from"./reach.js";import{UPCASTERS as pr,upcast as _r,upcastAll as dr}from"./upcast.js";import{validateCapability as Ar,validateInvocation as fr,canSatisfy as Or,toModelSchema as Ir,toModelSchemas as ur}from"./capability.js";import{checkInvariants as gr,INVARIANTS as 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 vr,ENGINE_KINDS as br,SearchEngineError as Gr}from"./search-engines.js";import{getWeather as Kr,weatherUrl as Hr,parseWeather as wr,formatWeather as Vr,areaLabel as Xr,isAmbiguousLocation as Wr,WEATHER_HOST as Yr,WEATHER_TIMEOUT_MS as zr,WeatherError as Jr}from"./weather.js";import{defineToolGroup as Qr,createToolGroupRegistry as qr,ToolGroupError as Zr}from"./tool-groups.js";import{toolNeedFor as eo,grantsNeededFor as ro,equipmentFor as oo}from"./tool-need.js";import{parseFlowchart as ao,layoutFlowchart as io,renderFlowchartSvg as so}from"./flowchart.js";import{validateView as Eo,validateViewInvocation as So,viewResult as lo}from"./view.js";import{validateWidget as mo,validateWidgetMessage as co,effectiveGrants as po,widgetIcon as _o,WIDGET_SURFACES as Ro}from"./widget.js";import{fuseRRF as fo,planQueries as Oo,multiSearch as Io}from"./rrf.js";import{SUBJECT_KINDS as No,DEFAULT_THRESHOLD as go,MAX_SUBJECTS as Co,MAX_SUBJECT_CHARS as Mo,normalizeSubject as Po,subjectKey as Lo,subjectTokens as xo,isSubjectCandidate as ho,aliasMap as Fo,resolveSubjects as Do,earnsBrief as ko,rankSubjects as yo,REDACTION_TOKEN_TYPES as Uo,isRedactionToken as vo,SELF_LABELS as bo,isSelfLabel as Go,stripQualifiers as Bo,suggestMerges as Ko}from"./entity.js";import{BRIEF_STATES as wo,CLAIM_KINDS as Vo,MAX_CLAIMS as Xo,MAX_CLAIM_REFS as Wo,MAX_BRIEF_RECORDS as Yo,MAX_BRIEF_CHARS as zo,contentHash as Jo,briefId as jo,briefToText as Qo,briefTerms as qo,briefLinks as Zo,checkKnowledgeInvariants as $o,parseBriefText as et}from"./knowledge.js";import{deriveBrief as ot,deriveBriefs as tt,driftedRefs as at}from"./knowledge-derive.js";import{SYNTHESIS_SCHEMA as st,synthesisPrompt as nt,claimsFromSynthesis as Et,MAX_SYNTHESIS_CLAIMS as St,MAX_EXCERPTS as lt,MAX_EXCERPT_CHARS as Tt}from"./synthesis.js";import{PROPOSAL_STATES as ct,SUPERSEDE_OVERLAP as pt,propose as _t,accept as dt,reject as Rt,diffProposal as At,converge as ft,linkClaims as Ot}from"./promotion.js";import{normalizeRecord as ut,normalizeRecords as Nt,wikilinksIn as gt,redactedTokensIn as Ct,redactionCost as Mt,wantedPages as Pt,orphanRecords as Lt,duplicateTitles as xt,vocabularyDrift as ht,mentionsFrom as Ft,spanningQuestions as Dt,surveyCorpus as kt,thresholdSweep as yt,formatSurvey as Ut,NEAR_TITLE_DISTANCE as vt,SPAN_MIN_TERMS as bt}from"./curate.js";import{PDF_MAX_CHARS as Bt,linesFromItems as Kt,orderLines as Ht,paragraphsFromLines as wt,pageTextFromItems as Vt,looksScanned as Xt,buildPdfDocument as Wt}from"./pdf-layout.js";import{YOUTUBE_HOSTS as zt,TRANSCRIPT_MAX_CHARS as Jt,parseYouTubeUrl as jt,isYouTubeUrl as Qt,captionTracksFromPlayerResponse as qt,videoMetaFromPlayerResponse as Zt,pickCaptionTrack as $t,timedTextUrl as ea,parseTimedText as ra,groupSegments as oa,formatTimestamp as ta,formatTranscript as aa,buildTranscriptDocument as ia,transcriptFromTracks as sa}from"./media-transcript.js";import{ACCESS_LOG_VERSION as Ea,ACCESS_LOG_MAX as Sa,redactAccessArgs as la,makeAccessEvent as Ta,createAccessLog as ma,makeStorageTier as ca,formatBytes as pa}from"./observability.js";import{routeGraph as da,projectChain as Ra}from"./route-graph.js";import{defineAdapter as fa,createAdapterRegistry as Oa,AdapterError as Ia}from"./adapters.js";import{linkifyCitations as Na,sourcesFromToolText as ga,createCitationCollector as Ca,RETRIEVAL_TOOLS as Ma}from"./citations.js";import{buildTrajectory as La,phasesOf as xa,lanesOf as ha,filterEntries as Fa,displayName as Da,ENTRY_KINDS as ka,threadsOf as ya,threadTitle as Ua,promptEntries as va,turnsOf as ba,threadTree as Ga}from"./trajectory.js";import{createTurnRunner as Ka,defineLoop as Ha,LOOP_KINDS as wa,LoopError as Va,abortCause as Xa,errorFacts as Wa}from"./loop.js";import{defineModel as za,defineMiddleware as Ja,defineRouteStrategy as ja,createModelRouter as Qa,signalsFrom as qa,requirementsFor as Za,requirementsForStep as $a,preferenceFor as ei,failoverOrder as ri,pinnedOrderOf as oi,FAILOVER_CLASS_GAP as ti,FAILOVER_CAPABILITY_GAP as ai,sameModelKey as ii,RouterError as si}from"./router.js";import{makeSourceStore as Ei,manifestText as Si,shortUrl as li,readSource as Ti,sourceId as mi}from"./sources-retrieval.js";import{classifySource as pi,extractUrls as _i,hostMatches as di,meetReach as Ri,sourcePolicyFor as Ai,sourceUrlsOf as fi,DEFAULT_INTERNAL_PATTERNS as Oi,INTERNAL_PATTERN_CATALOG as Ii}from"./sources.js";import{defineRule as Ni,createRuleEngine as gi,SUPPRESSED as Ci,RuleError as Mi}from"./rules.js";import{VAULT_VERSION as Li,KDF_ITERATIONS as xi,KDF_HASH as hi,DEFAULT_LOCK_MS as Fi,VaultError as Di,MAX_TITLE_CHARS as ki,MAX_NOTE_CHARS as yi,MAX_SECRET_CHARS as Ui,MAX_ENTRIES as vi,createVault as bi,unlockVault as Gi,deriveKey as Bi,sealEntry as Ki,openEntry as Hi,validateEntry as wi,entryMeta as Vi,searchEntries as Xi,isLocked as Wi,lockedSummary as Yi,canAddEntry as zi,toB64 as Ji,fromB64 as ji}from"./vault.js";import{SCHEDULE_KINDS as qi,TRIGGER_KINDS as Zi,JOB_ACTIONS as $i,MISSED_POLICIES as es,ScheduleError as rs,validateSchedule as os,nextFireAt as ts,occurrencesBetween as as,nextWakeAt as is,defineTrigger as ss,createTriggerRegistry as ns,BUILTIN_TRIGGERS as Es,timerTrigger as Ss,meetingStartedTrigger as ls,meetingEndedTrigger as Ts,personJoinedTrigger as ms,phraseTrigger as cs,topicTrigger as ps,questionTrigger as _s,voiceCommandTrigger as ds,defineJob as Rs,dueJobs as As,jobsForEvent as fs,occurrenceKey as Os,clipText as Is,matchSummary as us}from"./schedule.js";import{defineMeetingAnalyzer as gs,createAnalyzerRegistry as Cs,CADENCES as Ms,AnalyzerError as Ps}from"./meeting-analyzers.js";import{DEFAULT_WAKE as xs,MAX_COMMANDS_PER_DELTA as hs,DAYPART_HOUR as Fs,VoiceIntentError as Ds,compileWake as ks,findWakeCommand as ys,parseCommand as Us,commandsFromSegments as vs,parseDuration as bs,parseClock as Gs,parseWhen as Bs,parseNumberWords as Ks,normalizeSpeech as Hs,tokenize as ws,editDistance as Vs,defineVoiceIntent as Xs,createVoiceIntentRegistry as Ws,defaultVoiceIntents as Ys,BUILTIN_VOICE_INTENTS as zs,timerIntent as Js,reminderIntent as js,scheduleIntent as Qs,noteIntent as qs,monitorIntent as Zs,REFINEMENT_SCHEMA as $s,refinementPrompt as en,refinementFormat as rn,parseRefinement as on,refinementStream as tn,settleRefinement as an,refineSpokenCommand as sn,isFillerSentence as nn,gistText as En,gistOpening as Sn,commandLooksFinished as ln,sameUtterance as Tn,createUtteranceGate as mn,UTTERANCE_SETTLE_MS as cn,UTTERANCE_DANGLING_MS as pn}from"./voice-intents.js";import{MAX_TOPICS as dn,MAX_TOPIC_CHARS as Rn,TOPICS_SCHEMA as An,topicsSchema as fn,topicsPrompt as On,topicsFormat as In,parseTopics as un,normalizeTopic as Nn,normalizeTopics as gn,topicsStream as Cn,ENTITY_TYPES as Mn,ENTITIES_SCHEMA as Pn,entitiesPrompt as Ln,entitiesFormat as xn,parseEntities as hn,coerceEntities as Fn,entitiesStream as Dn,MAX_SUGGESTIONS as kn,MAX_SUGGESTION_CHARS as yn,SUGGESTIONS_SCHEMA as Un,suggestionsPrompt as vn,suggestionsFormat as bn,parseSuggestions as Gn,suggestionsStream as Bn}from"./extraction.js";import{FIELD_TYPES as Hn,RESPONSE_MODES as wn,StructuredError as Vn,defineSchema as Xn,describeSchema as Wn,toJsonSchema as Yn,responseFormat as zn,unfence as Jn,findJson as jn,rewriteJson as Qn,repairJson as qn,isNothing as Zn,coerce as $n,parseStructured as eE,createStructuredStream as rE}from"./structured.js";import{explainMcpError as tE,packageFromArgs as aE,isStaleMcpSession as iE,installHintFor as sE,missingCommandMessage as nE,missingCommandIn as EE,normalizePlatform as SE}from"./mcp-errors.js";import{parseSignInPrompt as TE,signInError as mE,signInFromError as cE,signInToolResult as pE,MCP_SIGN_IN_CODE as _E}from"./mcp-signin.js";import{parseAuthChallenge as RE,wellKnownUrls as AE,canonicalResource as fE,readResourceMetadata as OE,readAuthServerMetadata as IE,registrationRequest as uE,readRegistration as NE,authorizeUrl as gE,tokenRequest as CE,readTokenResponse as ME,tokenExpired as PE,authHeader as LE,discoverMcpAuth as xE,registerMcpClient as hE,fetchMcpToken as FE,TOKEN_SKEW_MS as DE}from"./mcp-oauth.js";import{toolTraits as yE,bareToolName as UE,canRunConcurrently as vE,isCacheable as bE,needsConfirmation as GE,traitsIndex as BE,effectiveToolName as KE,parallelEligible as HE,PARALLEL_LOCAL_RE as wE}from"./tool-traits.js";import{planToolRound as XE,runToolRound as WE}from"./tool-round.js";import{createToolLoopGuard as zE,roundSignature as JE,stableToolCallKey as jE,toolMadeProgress as QE,isLoopableTool as qE,blockedToolResult as ZE,OBSERVATION_TOOLS as $E,INPUT_PROGRESS_TOOLS as eS}from"./tool-loop-guard.js";import{classifyFailure as oS,createModelHealth as tS,COOLDOWN_MS as aS,UNAVAILABLE_REASONS as iS,normModelName as sS}from"./model-health.js";import{runWithFailover as ES,failoverExhausted as SS,FAILOVER_MAX_ATTEMPTS as lS}from"./failover.js";import{sourcePolicySettings as mS,sourceGuardFor as cS,sourceGate as pS,isSourceGateError as _S,withinReach as dS}from"./source-gate.js";import{runTurnLoop as AS,createCallRunner as fS,roundCap as OS,withToolSystem as IS,describeCall as uS,stepResultText as NS,addUsage as gS,normalizeUsage as CS,openAiTranscript as MS,anthropicTranscript as PS,DEFAULT_MAX_ROUNDS as LS,DEFAULT_MAX_FINISH_TRIES as xS,FINISH_NUDGES as hS,LOOPING_NUDGE as FS,EXHAUSTED_NOTE as DS,ROUND_SEPARATOR as kS}from"./turn-loop.js";import{createResultStore as US,shieldToolResult as vS,runResultQuery as bS,withResultShield as GS,describeShape as BS,compactValue as KS,resultToolSpec as HS,RESULT_TOOL_NAME as wS,DEFAULT_SHIELD as VS,DEFAULT_STORE as XS}from"./tool-result.js";import{findTools as YS,findToolsResult as zS,findActionArgs as JS,oneLiner as jS,overlapRank as QS,FIND_ACTION as qS}from"./tool-discovery.js";import{buildToolset as $S}from"./toolset.js";import{DESCRIBE_ACTION as rl,actionMenu as ol,buildGroupDispatchSpec as tl,validateAction as al,makeGroupDispatchExecutor as il,withGuidance as sl,makeDispatchProvider as nl,estimateTokens as El}from"./tool-dispatch.js";import{FIND_TOOL_NAME as ll,FIND_DESCRIPTION as Tl,FIND_RESIDENT as ml,findDispatchProvider as cl}from"./find-tool.js";import{WEB_SEARCH_TOOL_NAME as _l,WEB_SEARCH_TOOL_SYSTEM as dl,WEB_SEARCH_SPEC as Rl,searchResultsToText as Al,webSearchToolProvider as fl}from"./web-search-tool.js";import{compressToolSpec as Il,compressToolSpecs as ul,compressionStats as Nl,trimDescription as gl,COMPRESSION_MODES as Cl,DEFAULT_COMPRESSION as Ml}from"./tool-schema.js";import{validateRecipe as Ll,expandRecipe as xl,recipeParams as hl,mapInput as Fl,dryRunRecipe as Dl,runPlan as kl,runRecipe as yl,RecipeError as Ul,RECIPE_MODES as vl}from"./recipe.js";import{recipeToolProvider as Gl,recipeToolSpec as Bl,describeRecipeForApproval as Kl,RECIPE_TOOL_NAME as Hl}from"./recipe-tool.js";import{createBudget as Vl,validateBudget as Xl,normalizeBudget as Wl,usageOf as Yl,BudgetError as zl,BUDGET_DIMENSIONS as Jl}from"./budget.js";import{defineTeam as Ql,validateTeam as ql,normalizeTeam as Zl,normalizeGrants as $l,grantAllows as eT,scmAllows as rT,describeRole as oT,TeamError as tT,ROLE_MODES as aT,MERGE_POLICIES as iT,PLAN_MODES as sT,GRANTABLE as nT,WORK_GRANTS as ET,GRANT_RE as ST,AGENT_REF_RE as lT,STARTER_TEAMS as TT,starterTeams as mT,blankTeam as cT,teamFromForm as pT,slugTeamName as _T}from"./team.js";import{fixedPlan as RT,parsePlan as AT,plannerPrompt as fT,waves as OT,breakCycles as IT,TEAM_PLAN_SCHEMA as uT}from"./team-plan.js";import{createBoard as gT,parseFindings as CT,boardText as MT,findingsInstruction as PT,toBriefClaims as LT,FINDINGS_SCHEMA as xT,FINDING_KINDS as hT,THREAD_KINDS as FT,THREAD_STATUSES as DT,POST_KINDS as kT,POST_STATUSES as yT,ASK_TYPES as UT,emptyBoardState as vT,foldBoard as bT,findingsOf as GT}from"./team-board.js";import{boardToolProvider as KT,boardToolSpec as HT,createAnswerBox as wT,withBoardTool as VT,BOARD_TOOL_NAME as XT,DEFAULT_ASK_TIMEOUT_MS as WT}from"./board-tool.js";import{createRunCache as zT,withRunCache as JT}from"./team-cache.js";import{emptyRun as QT,foldRun as qT,runFromEvents as ZT,checkpointFrom as $T,isResumable as em,LIVE_RUN_STATUSES as rm,RESUMABLE_RUN_STATUSES as om,spendOf as tm,describeSpend as am,runState as im,priorWorkFor as sm,STALLED_AFTER_MS as nm}from"./team-record.js";import{validateProject as Sm,normalizeProject as lm,defineProject as Tm,canTransition as mm,blankProject as cm,projectFromForm as pm,emptyProjectRecord as _m,foldProject as dm,projectProgress as Rm,ProjectError as Am,PROJECT_STATUSES as fm,PROJECT_ID_RE as Om}from"./project.js";import{validateJob as um,normalizeJob as Nm,defineJob as gm,canTransition as Cm,applyAll as Mm,jobToRole as Pm,readyJobs as Lm,blankJob as xm,jobFromForm as hm,JobError as Fm,JOB_STATUSES as Dm,JOB_ID_RE as km}from"./job.js";import{validateGate as Um,normalizeGate as vm,effectiveGate as bm,gateAllows as Gm,DEFAULT_GATE as Bm,AUTONOMY as Km,HUMAN_FLAGS as Hm,CHECKS as wm}from"./gate.js";import{runProject as Xm,roundJobs as Wm,teamForRound as Ym,jobResults as zm,roundBudget as Jm,parseJobs as jm,parseReview as Qm,jobsPrompt as qm,reviewPrompt as Zm,PROJECT_JOBS_SCHEMA as $m,PROJECT_REVIEW_SCHEMA as ec,ProjectRunError as rc,EXECUTIVE as oc,MAX_JOBS_PER_ROUND as tc,MAX_ROUNDS as ac,PROJECT_RUN_STATUSES as ic}from"./project-run.js";import{canonical as nc,sha256 as Ec,makeEntry as Sc,verifyChain as lc,attest as Tc,verifyAttested as mc,summarize as cc,fit as pc,adjustSummary as _c,normalizeEngine as dc,engineKey as Rc,normalizeScm as Ac,SCORECARD_ENTRY_KINDS as fc,ROLE_KINDS as Oc,SCORECARD_VERSION as Ic,ENGINE_KINDS as uc}from"./scorecard.js";import{ENGINE_KINDS as gc,ROUTE_PREFERS as Cc,normalizePolicy as Mc,normalizeEngineSpec as Pc,validateEngineSpec as Lc,engineRef as xc,engineKeyOf as hc,describeEngine as Fc,tierOf as Dc}from"./engine.js";import{AGENT_ID_RE as yc,APPLIES_TO as Uc,EGRESS_CLASSES as vc,ASSISTANT_ID as bc,AgentError as Gc,validateAgent as Bc,normalizeAgent as Kc,defineAgent as Hc,assistantAgent as wc,engineOf as Vc,describeAgent as Xc,slugAgentId as Wc,resolveTeam as Yc,STARTER_AGENTS as zc,starterAgents as Jc,blankAgent as jc,agentFromForm as Qc,poolFor as qc}from"./agent.js";import{LEDGER_VERSION as $c,LEDGER_ENTRY_KINDS as ep,DECLINE_REASONS as rp,WITHDRAW_AFTER as op,ledgerKey as tp,normalizeCall as ap,makeLedgerEntry as ip,summarizeEngine as sp}from"./model-ledger.js";import{RECRUIT_SCHEMA as Ep,MIN_FIT as Sp,engineRow as lp,engineRows as Tp,needForJob as mp,routeFor as cp,engineWorth as pp,applications as _p,evaluatorPrompt as dp,parseEvaluation as Rp,decide as Ap,recruitForRun as fp,proposalFromNeeds as Op,proposalToAgent as Ip,carveBudget as up,recruitEvents as Np,recruitJob as gp}from"./recruit.js";import{DEFAULT_MIN_CALLS as Mp,cardOverride as Pp,applyCard as Lp}from"./model-candidates.js";import{SCM_KINDS as hp,validateConnection as Fp,normalizeConnection as Dp,parseRemote as kp,connectionFor as yp,branchFor as Up,worktreeDirFor as vp,credentialEnv as bp,describeConnection as Gp,blankConnection as Bp,connectionFromForm as Kp}from"./scm-connection.js";import{messagesFor as wp,mergeTranscript as Vp,clipTranscript as Xp,clipMessage as Wp,newSteps as Yp,continuationNote as zp,createControl as Jp,STEP_MAX_CHARS as jp,TASK_TRANSCRIPT_MAX_CHARS as Qp}from"./team-task.js";import{runTeam as Zp,resumeTeam as $p,dryRunTeam as e_,isModelUnavailable as r_,TeamRunError as o_,RUN_STATUSES as t_}from"./team-run.js";import{teamToolProvider as i_,teamToolSpec as s_,teamToolTimeoutMs as n_,describeTeamForApproval as E_,TEAM_TOOL_NAME as S_,TEAM_MANUAL as l_}from"./team-tool.js";import{workLogFor as m_,workLogText as c_,workLogEvidence as p_,describeCall as __,WORKLOG_KINDS as d_}from"./team-worklog.js";import{normalizeRequest as A_,subtaskFromRequest as f_,takeUp as O_,takeUpLine as I_,holdsGrants as u_,jobFromSubtask as N_,extendDependents as g_,taskTree as C_,threadRows as M_,MAX_SUBTASKS as P_,MAX_DEPTH as L_,MIN_TAKEUP_FIT as x_}from"./team-subtask.js";import{teamLine as F_,teamLanes as D_}from"./team-trail.js";import{promoteRoles as y_,starterTeam as U_,missingStarters as v_,teamHealth as b_,teamShape as G_,describeTeamShape as B_,whereItWorks as K_,rosterRows as H_,agentKind as w_,agentHue as V_,agentColor as X_,agentInitials as W_,roleCardId as Y_,cardNumbers as z_,upsertAgents as J_,soloTeam as j_,teamsWithSolos as Q_,builtinOrg as q_,isBuiltin as Z_,grantChoices as $_,grantsFromChoices as ed,skillChoices as rd,GRANT_INFO as od,SOLO_BUDGET as td,TEAM_SHAPES as ad,ROSTER_KINDS as id}from"./team-org.js";import{observeInbox as nd,observeStrip as Ed,runLanes as Sd,spendRows as ld,engineStrip as Td}from"./team-observe.js";import{mcpDispatchProvider as cd,MCP_TOOL_NAME as pd}from"./mcp-dispatch.js";import{createManifest as dd,ManifestError as Rd,SOURCES as Ad}from"./manifest.js";import{createKernel as Od,meetDecisions as Id,KernelError as ud,REQUIRED_PLUGINS as Nd,ALLOW_ALL as gd}from"./kernel.js";import{replay as Md,formatReport as Pd,parseJsonl as Ld,toJsonl as xd}from"./harness.js";import{compileQuery as Fd,findMatches as Dd,matchIndexFor as kd,expandReplacement as yd,replaceMatch as Ud,replaceAll as vd,replaceAllInRange as bd,MAX_MATCHES as Gd}from"./text-search.js";import{DATA_SCOPES as Kd}from"./scopes.js";import{MEMORY_VERSION as wd,MEMORY_KINDS as Vd,MEMORY_KIND_NAMES as Xd,AMBIENT_KINDS as Wd,MAX_MEMORY_CHARS as Yd,MIN_MEMORY_CHARS as zd,DEFAULT_MAX_MEMORIES as Jd,DEFAULT_BLOCK_CHARS as jd,SAME_FACT as Qd,MEMORY_TOOL_SPEC as qd,MEMORY_UPCASTERS as Zd,MemoryError as $d,normalizeMemory as eR,isValidMemory as rR,memoryKey as oR,slotOf as tR,similarity as aR,containment as iR,candidatesFrom as sR,reconcile as nR,matchForForget as ER,recall as SR,memoryBlock as lR,markUsed as TR,pruneMemories as mR,memoryToolSystem as cR,upcastMemory as pR,sameMemory as _R,AMBIENT_MAX_WORDS as dR}from"./memory.js";import{SOURCE_TRUST as AR,SkillSourceError as fR,defineSkillSource as OR,createSkillSourceRegistry as IR}from"./skill-sources.js";import{SKILL_MANIFEST_VERSION as NR,SKILL_CONTEXTS as gR,SKILL_HISTORY_SCOPES as CR,SKILL_MCP_MODES as MR,SKILL_TRUST as PR,SKILL_FILE_KINDS as LR,SKILL_UPCASTERS as xR,SkillManifestError as hR,isSafeSkillPath as FR,originOf as DR,trustOf as kR,skillFiles as yR,needsBridge as UR,declaredAccess as vR,originLabel as bR,sameSkillOrigin as GR,skillIsStale as BR,validateSkill as KR,upcastSkill as HR,upcastSkills as wR,normalizeSkill as VR}from"./skill-manifest.js";import{SKILL_VARS as WR,SKILL_VAR_NAMES as YR,skillVar as zR,skillVarPattern as JR,parseSkillVars as jR,lintSkillPrompt as QR,suggestSkillVar as qR,substituteSkillVars as ZR,expandSkillPrompt as $R,skillVarGuidance as eA,SkillVarError as rA}from"./skill-vars.js";import{lineAt as tA,writerAffordance as aA,INSTRUCTION_RE as iA,instructionOnLine as sA,GOAL_MIN_NEW as nA,goalDraftAllowed as EA,createSpendMeter as SA,writerTail as lA,draftSeparator as TA,groundingBlock as mA,writerRequest as cA,AUTOCOMPLETE_SYSTEM as pA,AUTOCOMPLETE_MAX_TOKENS as _A,AUTOCOMPLETE_TEMPERATURE as dA,clipCompletion as RA,GEARS as AA,WRITER_PREFS as fA,WRITER_PREF_DEFAULTS as OA,normalizeWriterPrefs as IA,normalizeIntent as uA}from"./cowriter-writer.js";import{SLASH_TYPING_RE as gA,NEW_THREAD_SLASH_ITEMS as CA,parseNewThread as MA,isSkillEnabled as PA,enabledSkills as LA,slashCommandItems as xA,matchSlashSkill as hA,matchSlashRecipe as FA,recipeInvocationText as DA,matchSlashTeam as kA,teamInvocationText as yA,slashCommandInsert as UA,skillInvocationOf as vA,skillInvocationLabel as bA}from"./slash-commands.js";import{outlineOf as BA,parseListItem as KA,continueList as HA,indentSelection as wA,toggleWrap as VA,toggleLinePrefix as XA,toggleTask as WA,toggleLink as YA,docStats as zA,selectionStats as JA}from"./markdown-authoring.js";import{MAX_TAG_LENGTH as QA,MAX_TAGS as qA,normalizeTag as ZA,normalizeTags as $A,hasTag as ef,addTag as rf,removeTag as of,toggleTag as tf,sameTags as af,formatTag as sf,parseTagQuery as nf,hasTagTerms as Ef,formatTagQuery as Sf,matchesTagFilter as lf,filterByTags as Tf,tagFacets as mf,suggestExistingTags as cf,tagsSearchText as pf}from"./tags.js";import{UNTITLED_MEETING as df,MAX_TITLE_LENGTH as Rf,TITLE_RULES_VERSION as Af,cleanTitle as ff,isGenericTitle as Of,titleFromSummary as If,titleFromTopics as uf,titleFromParticipants as Nf,titleFromDate as gf,deriveMeetingTitle as Cf,shouldAutoTitle as Mf,isBetterTitleSource as Pf,meetingTitlePrompt as Lf,parseTitleResponse as xf}from"./titles.js";import{RECORD_KINDS as Ff,MAX_TITLE_LEN as Df,LibraryError as kf,parseRecordId as yf,makeRecordId as Uf,isRecordId as vf,normalizeStoredRecord as bf,isValidStoredRecord as Gf,toSearchRecord as Bf,searchTextFor as Kf,toIndexEntry as Hf,deriveTitle as wf,snippetOf as Vf,wordCount as Xf}from"./library.js";import{CLOCK_TOLERANCE_MS as Yf,SyncError as zf,stampOf as Jf,decide as jf,planSync as Qf,isSettled as qf,forkConflict as Zf,advanceBases as $f}from"./sync-plan.js";import{ENCRYPTED_TYPE as rO,COMPRESSIONS as oO,BackupError as tO,KDF_ITERATIONS as aO,encryptBackup as iO,decryptBackup as sO,isEncryptedBackup as nO,RECORD_TYPE as EO,deriveBackupKey as SO,sealRecord as lO,openRecord as TO,isSealedRecord as mO,keyCache as cO,identityCodec as pO,streamCodec as _O,nodeCodec as dO,bestCodec as RO}from"./backup-envelope.js";import{recordsFromBackup as fO,backupFromRecords as OO}from"./backup-records.js";import{DEFAULT_POLICY as uO,SLOW_POLICY as NO,scalePolicy as gO,pickProfile as CO,adaptProfile as MO,policyFor as PO,SLOW_FLUSH_MS as LO,FAST_FLUSH_MS as xO,FAST_STREAK as hO,createJournal as FO,JournalError as DO,ENTRY_VERSION as kO,makeEntry as yO,tombstone as UO,isTombstone as vO,isEntry as bO,entryStamp as GO,supersedes as BO,BOUNDS as KO,createSegment as HO,applyEntry as wO,segmentBytes as VO,segmentEntries as XO,shouldRotate as WO,mergeSegments as YO,segmentName as zO,parseSegmentName as JO,SEGMENT_RE as jO,boundSegments as QO,segmentsFor as qO,overlay as ZO,catchUpPlan as $O}from"./journal.js";import{OMNI_MODES as rI,OMNI_GRAMMAR as oI,parseOmni as tI,extractFilters as aI,resolveSince as iI,wantsModel as sI,isActionable as nI}from"./omni.js";import{THEMES as SI,LIGHT as lI,DARK as TI,PALETTES as mI,SHAPE as cI,TOKEN_NAMES as pI,TOKEN_ROLES as _I,paletteFor as dI,cssVarName as RI,toCssVars as AI,themeStylesheet as fI,resolveTheme as OI}from"./theme.js";import{PLANS as uI,API_BASE as NI,ENDPOINTS as gI,ENTITLEMENT_PUBLIC_JWK as CI,UPGRADE_URL as MI,FEATURE_TIER as PI,PRO_FEATURES as LI,TEAM_FEATURES as xI,FREE_LIMITS as hI,COUNTED as FI,freeCap as DI,observeSince as kI,RECHECK_INTERVAL_MS as yI,EntitlementError as UI,checkoutUrl as vI,planOf as bI,planLabel as GI,isPro as BI,isTeam as KI,can as HI,tierFor as wI,withinFreeLimit as VI,verifyEntitlement as XI,verifySignedToken as WI,licenseFromPayload as YI,needsRecheck as zI}from"./entitlement.js";import{renderMarkdown as jI,defaultLinkPolicy as QI}from"./markdown-render.js";import{parseMeetingText as ZI,speakerStats as $I,densityRibbon as eu}from"./meeting-text.js";import{speakerBreakdown as ou,speakerTimeline as tu,formatTalkTime as au,SPEAKER_SLOTS as iu}from"./meeting-shape.js";import{isSpeakerImageValue as nu,speakerLabeller as Eu}from"./meeting-shape.js";import{SORT_MODES as lu,SORT_LABELS as Tu,sortStamp as mu,sortRecords as cu,filterRecords as pu,dayBucket as _u,rowTime as du,groupRecords as Ru}from"./record-list.js";import{INSIGHT_KINDS as fu,summarySections as Ou,insightKindOf as Iu,meetingInsights as uu,hasInsights as Nu}from"./meeting-insights.js";import{demd as Cu,NOTE_SECTIONS as Mu,noteSectionKind as Pu,MOMENT_BADGES as Lu,momentBadge as xu,parseMeetingNotes as hu,groupActionsByOwner as Fu}from"./meeting-insights.js";import{PREF_SECTIONS as ku,PREF_SECTION_IDS as yu,DESKTOP_SECTION_IDS as Uu,sectionSpec as vu,sectionValue as bu,pickSections as Gu,applySections as Bu,sectionHash as Ku,mergeStamped as Hu,changedSections as wu}from"./client-prefs.js";import{SETTINGS_GROUPS as Xu,SETTINGS_PAGES as Wu,REQUIREMENTS as Yu,BOOKKEEPING_KEYS as zu,listRows as Ju,findRow as ju,pageById as Qu,groupById as qu,pagesOf as Zu,quickRows as $u,breadcrumb as eN,linkTo as rN,linkToRow as oN,parseLink as tN,valueOf as aN,setValue as iN,effectiveValue as sN,describeValue as nN,SETTINGS_OPEN_DEFAULT as EN,settingsOpenMode as SN,searchSettings as lN,statusOf as TN,statusAll as mN,homeChecklist as cN,gateOf as pN,sectionOfRow as _N}from"./settings-registry.js";import{pointsAtGateway as RN,destinationFromEndpoint as AN,destinationFromAgent as fN,availableDestinations as ON,seedDestinations as IN,shouldSeedDestinations as uN,mergeEndpointDestinations as NN}from"./gateway-dests.js";import{McpClient as CN,mcpProvider as MN}from"./mcp-client.js";import{mcpSharedSystem as LN,mcpInventorySystem as xN,sourceCitationSystem as hN,combineSystemPrompt as FN,toolStatus as DN,widgetAuthoringSystem as kN,vaultWidgetSystem as yN,wantsVaultGuidance as UN}from"./tool-hints.js";import{adaptiveToolRetryHint as bN,createAdaptiveToolPolicy as GN,isInvalidToolParametersResult as BN}from"./adaptive-tool-policy.js";import{getMcpProviders as HN,testMcpServer as wN,resetMcp as VN,mcpBackoff as XN}from"./mcp-manager.js";import{SIDELINE_COMMANDS as YN,BRINGBACK_COMMAND as zN,THREAD_TOOL_NAME as JN,SIDELINE_SLASH_ITEMS as jN,THREAD_TOOL_SPEC as QN,parseSideline as qN,parseBringBack as ZN,resolveSidelineTarget as $N,threadManifest as eg,threadToolProvider as rg,readThread as og,briefPrompt as tg,foldBackNote as ag,foldNotes as ig,nextSidelineIndex as sg,sourceOf as ng,noteUnits as Eg,sidelinePath as Sg,foldBackFor as lg,SIDELINE_TOOL_NAME as Tg,SIDELINE_TOOL_SPEC as mg,sidelineToolProvider as cg}from"./sideline.js";import{WEATHER_TOOL_NAME as _g,WEATHER_TOOL_SYSTEM as dg,weatherToolProvider as Rg}from"./weather-tool.js";import{DECIDE_TOOL_NAME as fg,RERANK_TOOL_NAME as Og,CAPABILITY_TOOLS_SYSTEM as Ig,capabilityToolsProvider as ug}from"./capability-tools.js";import{renderContent as gg,toChatMessages as Cg,toMultimodalMessages as Mg,imageAttachmentsOf as Pg,deferAttachedSources as Lg,withSourceTool as xg,SOURCE_TOOL_SPEC as hg}from"./context-attachments.js";import{prefetchPlan as Dg,prefetchAttachment as kg,weatherPlace as yg,weatherFollowupPlace as Ug}from"./prefetch.js";import{createFetchedStore as bg,withFetchedMemo as Gg,fetchKey as Bg,fetchTitle as Kg,fetchedAsSources as Hg,fetchedFacts as wg,defaultTtl as Vg,FETCHED_TTL_MS as Xg}from"./fetched.js";import{windowOf as Yg,fitFor as zg,keepRecentFor as Jg,minWindowFor as jg,isContextLimitError as Qg,FIT_HEADROOM as qg}from"./context-window.js";import{planCompaction as $g,compactionPrompt as eC,compactionRecord as rC,messagesAfter as oC,systemWithSummary as tC,compactable as aC,COMPACTION_SYSTEM as iC}from"./compaction.js";import{presenceFor as nC,presenceDelta as EC,reachOf as SC,withPresence as lC,presenceBlock as TC,roundCount as mC,roundMinutes as cC,PRESENCE_BUDGET_TOKENS as pC,PRESENCE_KINDS as _C}from"./presence.js";import{PolicyError as RC,POLICY_VERSION as AC,POLICY_TOKEN_TYPE as fC,REDACTION_TIERS as OC,LOCKABLE as IC,FEATURES as uC,PERMISSION_MODES as NC,PRODUCT_HOSTS as gC,normalizeOrgPolicy as CC,endpointAllowed as MC,modelAllowed as PC,agentAllowed as LC,permissionMode as xC,routeAllowed as hC,redactionTier as FC,egressAllowed as DC,settingLocked as kC,featureEnabled as yC,applyPolicyToSettings as UC,policyLabel as vC,policyHash as bC,verifyPolicyToken as GC,globToRegExp as BC}from"./policy.js";import{languageInstruction as HC,RESPONSE_LANGUAGES as wC}from"./response-language.js";import{NOTE_TOOL_SPECS as XC,makeNoteToolExecutor as WC}from"./note-tool.js";import{memoryToolProvider as zC}from"./memory-tool.js";import{skillRunFromSkill as jC,skillPackageFiles as QC,filterMcpServersForSkill as qC,skillToolSystem as ZC,skillHandle as $C,rankSkills as eM,skillCatalogSystem as rM}from"./skill-runtime.js";import{skillFileProvider as tM,SKILL_FILE_TOOL as aM,skillEntry as iM,skillDiscoveryProvider as sM}from"./skill-files.js";import{PATH_KIND as EM,FILES_TOOL as SM,checkAttachablePath as lM,secretReason as TM,isSecretPath as mM,pathAttachment as cM,describeAttachedPath as pM,describePathSize as _M,displayPath as dM,pathAttachmentsOf as RM,withAbsolutePaths as AM,attachedFilesProvider as fM,sniffType as OM,normalizePath as IM,collapseDots as uM,basenameOf as NM,SKIP_DIR_NAMES as gM}from"./attached-paths.js";import{EXTRACT_ROUTE as MM,EXTRACT_PROVIDER_ID as PM,MAX_DOCUMENT_BYTES as LM,PAGE_CHARS as xM,EXTRACT_TYPES as hM,validateExtractRequest as FM,validateExtractResponse as DM,paginateText as kM,gatewayExtractor as yM,extractorChain as UM}from"./extract-capability.js";import{MCP_REGISTRY_API as bM,MCP_CATALOG as GM,registryListUrl as BM,fetchMcpRegistryPage as KM,normalizeRegistryPage as HM,normalizeRegistryEntry as wM,mcpServerFromCatalogItem as VM}from"./mcp-registry.js";import{CE_SPECVERSION as WM,CE_TYPE_PREFIX as YM,CE_SOURCE_PREFIX as zM,rfc3339 as JM,ceSourceOf as jM,ceHostOf as QM,toCloudEvent as qM,fromCloudEvent as ZM,toCloudEventLines as $M,fromCloudEventLines as eP,toCloudEventBatch as rP}from"./cloudevents.js";import{USAGE_RING_MAX as tP,COST_BASES as aP,usageRecord as iP,usageFromEvent as sP,usageFromOpenAi as nP,rollupKey as EP,applyUsage as SP,summarizeUsage as lP,formatTurnUsage as TP,describeTurnUsage as mP,promptTokensOf as cP}from"./usage.js";import{rateFor as _P,costFor as dP,formatUsd as RP,PRICING_BASES as AP,PRICING_LABELS as fP,normalizePricing as OP,priceUsage as IP}from"./usage-pricing.js";import{FACTCHECK_SCHEMA as NP,FACTCHECK_VERDICTS as gP,lastClaimOf as CP,factcheckPrompt as MP,factcheckVerdict as PP,factcheckKey as LP}from"./cowriter-factcheck.js";import{createVoiceLoop as hP,VOICE_STATES as FP,MUTE_GRACE_MS as DP,MAX_PENDING_CHARS as kP,CONTINUATION_WINDOW_MS as yP,ECHO_OVERLAP as UP,ECHO_TAIL_MS as vP}from"./voice-loop.js";import{speakStream as GP}from"./speak-stream.js";import{createVad as KP,lowBandEnergy as HP,VAD_DEFAULTS as wP}from"./voice-vad.js";import{HF_API as XP,TTS_ARCH_LABEL as WP,ttsArchOf as YP,partitionTtsModels as zP,modelSearchUrl as JP,searchModels as jP,normalizeModel as QP,formatDownloads as qP,describeSearchResult as ZP}from"./model-registry.js";import{SAMPLE_RATE as eL,MIN_SECONDS as rL,TARGET_SECONDS as oL,MAX_SECONDS as tL,PROMPT_TEXT as aL,sampleSeconds as iL,sampleTooShort as sL,defaultVoiceName as nL,microphoneError as EL,webMedia as SL,startRecording as lL}from"./voice-sample.js";import{TIER_LABEL as mL,modelRows as cL,catalogStatus as pL,dtypePicker as _L,voicePicker as dL,voiceListRows as RL,diarizeRow as AL,switchOutcome as fL,saveVoiceFailure as OL,saveTimedOut as IL,catalogUnavailable as uL}from"./voice-models.js";import{dictToText as gL,textToDict as CL}from"./redaction-dictionary.js";import{groupRuns as PL,summarizeRun as LL,findRepeats as xL,withCost as hL,verdict as FL,toSanitizedReport as DL}from"./run-details.js";import{parseMcpConfig as yL,parseArgsInput as UL,argsToText as vL,parseEnvInput as bL,envToText as GL,envLikeArgs as BL}from"./mcp-config-import.js";import{mutableRef as HL,refreshArgs as wL,canRefresh as VL,describeRuntime as XL}from"./mcp-launcher.js";import{defaultMcpServers as YL,isDefaultMcpServer as zL}from"./default-mcp-servers.js";import{MONITOR_SOURCES as jL,DEFAULT_MONITOR_PROFILE as QL,monitorProfile as qL,monitorWindowMs as ZL,monitorNeedsTools as $L,filterMonitorTools as ex,recentFindings as rx,describeMonitorProfile as ox}from"./monitor-profile.js";import{defaultSkills as ax,meetingNotesSkill as ix}from"./default-skills.js";import{SURFACES as nx,FEATURES as Ex,listFeatures as Sx,featureIds as lx}from"./feature-map.js";export{Sa as ACCESS_LOG_MAX,Ea as ACCESS_LOG_VERSION,i as ACTOR_KINDS,yc as AGENT_ID_RE,lT as AGENT_REF_RE,gd as ALLOW_ALL,a as ALL_TYPES,Wd as AMBIENT_KINDS,dR as AMBIENT_MAX_WORDS,NI as API_BASE,Uc as APPLIES_TO,UT as ASK_TYPES,bc as ASSISTANT_ID,_A as AUTOCOMPLETE_MAX_TOKENS,pA as AUTOCOMPLETE_SYSTEM,dA as AUTOCOMPLETE_TEMPERATURE,Km as AUTONOMY,Ia as AdapterError,Gc as AgentError,Ps as AnalyzerError,aO as BACKUP_KDF_ITERATIONS,XT as BOARD_TOOL_NAME,zu as BOOKKEEPING_KEYS,wo as BRIEF_STATES,zN as BRINGBACK_COMMAND,Jl as BUDGET_DIMENSIONS,Es as BUILTIN_TRIGGERS,zs as BUILTIN_VOICE_INTENTS,tO as BackupError,zl as BudgetError,Ms as CADENCES,Ig as CAPABILITY_TOOLS_SYSTEM,zM as CE_SOURCE_PREFIX,WM as CE_SPECVERSION,YM as CE_TYPE_PREFIX,wm as CHECKS,Vo as CLAIM_KINDS,n as CLASSES,Yf as CLOCK_TOLERANCE_MS,iC as COMPACTION_SYSTEM,oO as COMPRESSIONS,Cl as COMPRESSION_MODES,yP as CONTINUATION_WINDOW_MS,aS as COOLDOWN_MS,aP as COST_BASES,FI as COUNTED,Be as COWRITER_SYSTEM,Ke as COWRITER_TEMPERATURE,o as CURRENT_VERSION,TI as DARK,Kd as DATA_SCOPES,Fs as DAYPART_HOUR,fg as DECIDE_TOOL_NAME,rp as DECLINE_REASONS,WT as DEFAULT_ASK_TIMEOUT_MS,jd as DEFAULT_BLOCK_CHARS,Ml as DEFAULT_COMPRESSION,Bm as DEFAULT_GATE,Oi as DEFAULT_INTERNAL_PATTERNS,Fi as DEFAULT_LOCK_MS,xS as DEFAULT_MAX_FINISH_TRIES,Jd as DEFAULT_MAX_MEMORIES,LS as DEFAULT_MAX_ROUNDS,Mp as DEFAULT_MIN_CALLS,QL as DEFAULT_MONITOR_PROFILE,uO as DEFAULT_POLICY,VS as DEFAULT_SHIELD,XS as DEFAULT_STORE,go as DEFAULT_THRESHOLD,xs as DEFAULT_WAKE,rl as DESCRIBE_ACTION,Uu as DESKTOP_SECTION_IDS,UP as ECHO_OVERLAP,vP as ECHO_TAIL_MS,E as EFFECTS,S as EGRESS,vc as EGRESS_CLASSES,rO as ENCRYPTED_TYPE,gI as ENDPOINTS,br as ENGINE_KINDS,gc as ENGINE_SPEC_KINDS,Pn as ENTITIES_SCHEMA,CI as ENTITLEMENT_PUBLIC_JWK,Mn as ENTITY_TYPES,ka as ENTRY_KINDS,kO as ENTRY_VERSION,t as EVENT_TYPES,oc as EXECUTIVE,DS as EXHAUSTED_NOTE,PM as EXTRACT_PROVIDER_ID,MM as EXTRACT_ROUTE,hM as EXTRACT_TYPES,UI as EntitlementError,l as EventError,NP as FACTCHECK_SCHEMA,gP as FACTCHECK_VERDICTS,ai as FAILOVER_CAPABILITY_GAP,ti as FAILOVER_CLASS_GAP,lS as FAILOVER_MAX_ATTEMPTS,xO as FAST_FLUSH_MS,hO as FAST_STREAK,uC as FEATURES,Ex as FEATURE_MAP,nx as FEATURE_SURFACES,PI as FEATURE_TIER,Xg as FETCHED_TTL_MS,Hn as FIELD_TYPES,SM as FILES_TOOL,xT as FINDINGS_SCHEMA,hT as FINDING_KINDS,qS as FIND_ACTION,Tl as FIND_DESCRIPTION,ml as FIND_RESIDENT,ll as FIND_TOOL_NAME,hS as FINISH_NUDGES,qg as FIT_HEADROOM,hI as FREE_LIMITS,AA as GEARS,nA as GOAL_MIN_NEW,nT as GRANTABLE,od as GRANT_INFO,ST as GRANT_RE,XP as HF_API,Hm as HUMAN_FLAGS,eS as INPUT_PROGRESS_TOOLS,fu as INSIGHT_KINDS,iA as INSTRUCTION_RE,Ii as INTERNAL_PATTERN_CATALOG,Cr as INVARIANTS,$i as JOB_ACTIONS,km as JOB_POST_ID_RE,Dm as JOB_POST_STATUSES,KO as JOURNAL_BOUNDS,Fm as JobPostError,DO as JournalError,hi as KDF_HASH,xi as KDF_ITERATIONS,ud as KernelError,ep as LEDGER_ENTRY_KINDS,$c as LEDGER_VERSION,lI as LIGHT,rm as LIVE_RUN_STATUSES,IC as LOCKABLE,FS as LOOPING_NUDGE,wa as LOOP_KINDS,kf as LibraryError,Va as LoopError,zo as MAX_BRIEF_CHARS,Yo as MAX_BRIEF_RECORDS,Xo as MAX_CLAIMS,Wo as MAX_CLAIM_REFS,hs as MAX_COMMANDS_PER_DELTA,L_ as MAX_DEPTH,LM as MAX_DOCUMENT_BYTES,vi as MAX_ENTRIES,lt as MAX_EXCERPTS,Tt as MAX_EXCERPT_CHARS,Le as MAX_GRAPH_NODES,tc as MAX_JOBS_PER_ROUND,Gd as MAX_MATCHES,Yd as MAX_MEMORY_CHARS,yi as MAX_NOTE_CHARS,kP as MAX_PENDING_CHARS,ac as MAX_ROUNDS,tL as MAX_SECONDS,Ui as MAX_SECRET_CHARS,Co as MAX_SUBJECTS,Mo as MAX_SUBJECT_CHARS,P_ as MAX_SUBTASKS,kn as MAX_SUGGESTIONS,yn as MAX_SUGGESTION_CHARS,St as MAX_SYNTHESIS_CLAIMS,qA as MAX_TAGS,QA as MAX_TAG_LENGTH,ki as MAX_TITLE_CHARS,Df as MAX_TITLE_LEN,Rf as MAX_TITLE_LENGTH,dn as MAX_TOPICS,Rn as MAX_TOPIC_CHARS,GM as MCP_CATALOG,bM as MCP_REGISTRY_API,_E as MCP_SIGN_IN_CODE,pd as MCP_TOOL_NAME,Vd as MEMORY_KINDS,Xd as MEMORY_KIND_NAMES,qd as MEMORY_TOOL_SPEC,Zd as MEMORY_UPCASTERS,wd as MEMORY_VERSION,iT as MERGE_POLICIES,Sp as MIN_FIT,zd as MIN_MEMORY_CHARS,rL as MIN_SECONDS,x_ as MIN_TAKEUP_FIT,es as MISSED_POLICIES,Lu as MOMENT_BADGES,jL as MONITOR_SOURCES,DP as MUTE_GRACE_MS,Rd as ManifestError,CN as McpClient,$d as MemoryError,vt as NEAR_TITLE_DISTANCE,CA as NEW_THREAD_SLASH_ITEMS,H as NOTE_ACTIONS,X as NOTE_ACTION_ERRORS,w as NOTE_ACTION_ORDER,V as NOTE_ACTION_TEMPERATURE,W as NOTE_COMMANDS,z as NOTE_COMMAND_MAX_TOKENS,Y as NOTE_COMMAND_TEMPERATURE,Mu as NOTE_SECTIONS,XC as NOTE_TOOL_SPECS,$E as OBSERVATION_TOOLS,oI as OMNI_GRAMMAR,rI as OMNI_MODES,xM as PAGE_CHARS,mI as PALETTES,wE as PARALLEL_LOCAL_RE,EM as PATH_KIND,Bt as PDF_MAX_CHARS,NC as PERMISSION_MODES,uI as PLANS,qe as PLAN_AUTHORS,$e as PLAN_DECOMPOSE_MAX_TOKENS,Ze as PLAN_DECOMPOSE_SYSTEM,er as PLAN_DECOMPOSE_TEMPERATURE,sT as PLAN_MODES,Qe as PLAN_ROLES,rr as PLAN_SECTION_MAX_TOKENS,or as PLAN_SECTION_TEMPERATURE,fC as POLICY_TOKEN_TYPE,AC as POLICY_VERSION,kT as POST_KINDS,yT as POST_STATUSES,ku as PREF_SECTIONS,yu as PREF_SECTION_IDS,pC as PRESENCE_BUDGET_TOKENS,_C as PRESENCE_KINDS,AP as PRICING_BASES,fP as PRICING_LABELS,gC as PRODUCT_HOSTS,Om as PROJECT_ID_RE,$m as PROJECT_JOBS_SCHEMA,ec as PROJECT_REVIEW_SCHEMA,ic as PROJECT_RUN_STATUSES,fm as PROJECT_STATUSES,aL as PROMPT_TEXT,ct as PROPOSAL_STATES,LI as PRO_FEATURES,RC as PolicyError,Am as ProjectError,rc as ProjectRunError,lr as REACH,yI as RECHECK_INTERVAL_MS,vl as RECIPE_MODES,Hl as RECIPE_TOOL_NAME,uc as RECORD_ENGINE_KINDS,Ff as RECORD_KINDS,EO as RECORD_TYPE,Ep as RECRUIT_SCHEMA,OC as REDACTION_TIERS,Uo as REDACTION_TOKEN_TYPES,$s as REFINEMENT_SCHEMA,_ as REF_KINDS,Dr as REGISTRY_STATES,Nd as REQUIRED_PLUGINS,Yu as REQUIREMENTS,Og as RERANK_TOOL_NAME,d as RESOLUTION,wC as RESPONSE_LANGUAGES,wn as RESPONSE_MODES,Oe as RESULTS_PER_ENGINE,wS as RESULT_TOOL_NAME,om as RESUMABLE_RUN_STATUSES,Ma as RETRIEVAL_TOOLS,Oc as ROLE_KINDS,aT as ROLE_MODES,id as ROSTER_KINDS,kS as ROUND_SEPARATOR,Cc as ROUTE_PREFERS,t_ as RUN_STATUSES,Ul as RecipeError,si as RouterError,Mi as RuleError,Qd as SAME_FACT,eL as SAMPLE_RATE,qi as SCHEDULE_KINDS,hp as SCM_KINDS,s as SCOPE_KINDS,fc as SCORECARD_ENTRY_KINDS,Ic as SCORECARD_VERSION,fe as SEARCH_ENGINES,jO as SEGMENT_RE,bo as SELF_LABELS,Xu as SETTINGS_GROUPS,EN as SETTINGS_OPEN_DEFAULT,Wu as SETTINGS_PAGES,cI as SHAPE,YN as SIDELINE_COMMANDS,jN as SIDELINE_SLASH_ITEMS,Tg as SIDELINE_TOOL_NAME,mg as SIDELINE_TOOL_SPEC,gR as SKILL_CONTEXTS,LR as SKILL_FILE_KINDS,aM as SKILL_FILE_TOOL,CR as SKILL_HISTORY_SCOPES,NR as SKILL_MANIFEST_VERSION,MR as SKILL_MCP_MODES,PR as SKILL_TRUST,xR as SKILL_UPCASTERS,WR as SKILL_VARS,YR as SKILL_VAR_NAMES,gM as SKIP_DIR_NAMES,gA as SLASH_TYPING_RE,LO as SLOW_FLUSH_MS,NO as SLOW_POLICY,td as SOLO_BUDGET,Tu as SORT_LABELS,lu as SORT_MODES,Ad as SOURCES,hg as SOURCE_TOOL_SPEC,AR as SOURCE_TRUST,bt as SPAN_MIN_TERMS,iu as SPEAKER_SLOTS,nm as STALLED_AFTER_MS,zc as STARTER_AGENTS,TT as STARTER_TEAMS,jp as STEP_MAX_CHARS,No as SUBJECT_KINDS,Un as SUGGESTIONS_SCHEMA,pt as SUPERSEDE_OVERLAP,Ci as SUPPRESSED,me as SWARM_ROLES,st as SYNTHESIS_SCHEMA,rs as ScheduleError,Gr as SearchEngineError,hR as SkillManifestError,fR as SkillSourceError,rA as SkillVarError,Vn as StructuredError,zf as SyncError,oL as TARGET_SECONDS,Qp as TASK_TRANSCRIPT_MAX_CHARS,xI as TEAM_FEATURES,l_ as TEAM_MANUAL,uT as TEAM_PLAN_SCHEMA,ad as TEAM_SHAPES,S_ as TEAM_TOOL_NAME,SI as THEMES,FT as THREAD_KINDS,DT as THREAD_STATUSES,JN as THREAD_TOOL_NAME,QN as THREAD_TOOL_SPEC,mL as TIER_LABEL,Af as TITLE_RULES_VERSION,pI as TOKEN_NAMES,_I as TOKEN_ROLES,DE as TOKEN_SKEW_MS,An as TOPICS_SCHEMA,Jt as TRANSCRIPT_MAX_CHARS,Zi as TRIGGER_KINDS,WP as TTS_ARCH_LABEL,tT as TeamError,o_ as TeamRunError,Zr as ToolGroupError,iS as UNAVAILABLE_REASONS,df as UNTITLED_MEETING,pr as UPCASTERS,MI as UPGRADE_URL,tP as USAGE_RING_MAX,pn as UTTERANCE_DANGLING_MS,cn as UTTERANCE_SETTLE_MS,wP as VAD_DEFAULTS,Li as VAULT_VERSION,FP as VOICE_STATES,Di as VaultError,Ds as VoiceIntentError,Yr as WEATHER_HOST,zr as WEATHER_TIMEOUT_MS,_g as WEATHER_TOOL_NAME,dg as WEATHER_TOOL_SYSTEM,Rl as WEB_SEARCH_SPEC,_l as WEB_SEARCH_TOOL_NAME,dl as WEB_SEARCH_TOOL_SYSTEM,Ro as WIDGET_SURFACES,op as WITHDRAW_AFTER,d_ as WORKLOG_KINDS,ET as WORK_GRANTS,fA as WRITER_PREFS,OA as WRITER_PREF_DEFAULTS,Jr as WeatherError,zt as YOUTUBE_HOSTS,Xa as abortCause,dt as accept,ol as actionMenu,MO as adaptProfile,bN as adaptiveToolRetryHint,rf as addTag,gS as addUsage,_c as adjustSummary,$f as advanceBases,LC as agentAllowed,X_ as agentColor,Qc as agentFromForm,V_ as agentHue,W_ as agentInitials,w_ as agentKind,oe as agentMentionAt,Fo as aliasMap,PS as anthropicTranscript,Mm as applyAll,Lp as applyCard,Ge as applyEdits,wO as applyEntry,UC as applyPolicyToSettings,Bu as applySections,SP as applyUsage,de as appoint,Xr as areaLabel,vL as argsToText,wc as assistantAgent,fM as attachedFilesProvider,vr as attemptOrder,Tc as attest,LE as authHeader,gE as authorizeUrl,ON as availableDestinations,OO as backupFromRecords,UE as bareToolName,NM as basenameOf,RO as bestCodec,jc as blankAgent,Bp as blankConnection,xm as blankJobPost,cm as blankProject,cT as blankTeam,ZE as blockedToolResult,MT as boardText,KT as boardToolProvider,HT as boardToolSpec,QO as boundSegments,Up as branchFor,eN as breadcrumb,IT as breakCycles,jo as briefId,Zo as briefLinks,tg as briefPrompt,qo as briefTerms,Qo as briefToText,tl as buildGroupDispatchSpec,xe as buildNoteGraph,Wt as buildPdfDocument,Ie as buildSearchUrl,$S as buildToolset,La as buildTrajectory,ia as buildTranscriptDocument,q_ as builtinOrg,HI as can,zi as canAddEntry,Cm as canJobPostTransition,mm as canProjectTransition,VL as canRefresh,vE as canRunConcurrently,Or as canSatisfy,sR as candidatesFrom,nc as canonical,fE as canonicalResource,ug as capabilityToolsProvider,qt as captionTracksFromPlayerResponse,z_ as cardNumbers,Pp as cardOverride,up as carveBudget,pL as catalogStatus,uL as catalogUnavailable,$O as catchUpPlan,N as causesAreWellFormed,QM as ceHostOf,jM as ceSourceOf,wu as changedSections,lM as checkAttachablePath,gr as checkInvariants,$o as checkKnowledgeInvariants,vI as checkoutUrl,$T as checkpointFrom,B as chipText,Et as claimsFromSynthesis,oS as classifyFailure,pe as classifyModel,pi as classifySource,ff as cleanTitle,RA as clipCompletion,Wp as clipMessage,Is as clipText,Xp as clipTranscript,$n as coerce,Fn as coerceEntities,uM as collapseDots,FN as combineSystemPrompt,Z as commandLineAt,ln as commandLooksFinished,vs as commandsFromSegments,KS as compactValue,aC as compactable,eC as compactionPrompt,rC as compactionRecord,u as compareEvents,Fd as compileQuery,ks as compileWake,G as composerChips,Il as compressToolSpec,ul as compressToolSpecs,Nl as compressionStats,yp as connectionFor,Kp as connectionFromForm,iR as containment,Jo as contentHash,zp as continuationNote,HA as continueList,ft as converge,dP as costFor,ma as createAccessLog,Oa as createAdapterRegistry,GN as createAdaptiveToolPolicy,Cs as createAnalyzerRegistry,wT as createAnswerBox,c as createAppender,xr as createBlobStore,gT as createBoard,Vl as createBudget,fS as createCallRunner,Ca as createCitationCollector,Jp as createControl,bg as createFetchedStore,FO as createJournal,Od as createKernel,Lr as createLogStore,dd as createManifest,Pr as createMemoryAdapter,tS as createModelHealth,Qa as createModelRouter,Fr as createRegistry,US as createResultStore,gi as createRuleEngine,zT as createRunCache,HO as createSegment,IR as createSkillSourceRegistry,SA as createSpendMeter,rE as createStructuredStream,qr as createToolGroupRegistry,zE as createToolLoopGuard,ns as createTriggerRegistry,Ka as createTurnRunner,mn as createUtteranceGate,KP as createVad,bi as createVault,Ws as createVoiceIntentRegistry,hP as createVoiceLoop,bp as credentialEnv,RI as cssVarName,_u as dayBucket,jf as decide,Ap as decideRecruit,vR as declaredAccess,sO as decryptBackup,QI as defaultLinkPolicy,YL as defaultMcpServers,k as defaultModelId,ax as defaultSkills,Vg as defaultTtl,Ys as defaultVoiceIntents,nL as defaultVoiceName,Lg as deferAttachedSources,fa as defineAdapter,Hc as defineAgent,Rs as defineJob,gm as defineJobPost,Ha as defineLoop,gs as defineMeetingAnalyzer,Ja as defineMiddleware,za as defineModel,Tm as defineProject,ja as defineRouteStrategy,Ni as defineRule,Xn as defineSchema,yr as defineSearchEngine,OR as defineSkillSource,Ql as defineTeam,Qr as defineToolGroup,ss as defineTrigger,Xs as defineVoiceIntent,Cu as demd,eu as densityRibbon,P as dequeue,SO as deriveBackupKey,ot as deriveBrief,tt as deriveBriefs,Bi as deriveKey,Cf as deriveMeetingTitle,wf as deriveTitle,Xc as describeAgent,pM as describeAttachedPath,__ as describeCall,Gp as describeConnection,Fc as describeEngine,ox as describeMonitorProfile,_M as describePathSize,Kl as describeRecipeForApproval,oT as describeRole,XL as describeRuntime,Wn as describeSchema,ZP as describeSearchResult,nN as describeSettingValue,BS as describeShape,am as describeSpend,E_ as describeTeamForApproval,B_ as describeTeamShape,uS as describeToolCall,mP as describeTurnUsage,fN as destinationFromAgent,AN as destinationFromEndpoint,AL as diarizeRow,gL as dictToText,At as diffProposal,xE as discoverMcpAuth,Da as displayName,dM as displayPath,zA as docStats,TA as draftSeparator,at as driftedRefs,Dl as dryRunRecipe,e_ as dryRunTeam,_L as dtypePicker,As as dueJobs,xt as duplicateTitles,ko as earnsBrief,Vs as editDistance,be as editKey,bm as effectiveGate,po as effectiveGrants,sN as effectiveSettingValue,KE as effectiveToolName,he as egoGraph,DC as egressAllowed,vT as emptyBoardState,_m as emptyProjectRecord,QT as emptyRun,LA as enabledSkills,iO as encryptBackup,MC as endpointAllowed,Rc as engineKey,hc as engineKeyOf,Vc as engineOf,Me as engineOrder,xc as engineRef,lp as engineRow,Tp as engineRows,Td as engineStrip,pp as engineWorth,xn as entitiesFormat,Ln as entitiesPrompt,Dn as entitiesStream,Vi as entryMeta,GO as entryStamp,BL as envLikeArgs,GL as envToText,oo as equipmentFor,Wa as errorFacts,El as estimateTokens,dp as evaluatorPrompt,xl as expandRecipe,yd as expandReplacement,$R as expandSkillPrompt,tE as explainMcpError,g_ as extendDependents,aI as extractFilters,_i as extractUrls,UM as extractorChain,LP as factcheckKey,MP as factcheckPrompt,PP as factcheckVerdict,SS as failoverExhausted,ri as failoverOrder,yC as featureEnabled,lx as featureIds,Bg as fetchKey,KM as fetchMcpRegistryPage,FE as fetchMcpToken,Kg as fetchTitle,Hg as fetchedAsSources,wg as fetchedFacts,Tf as filterByTags,Fa as filterEntries,qC as filterMcpServersForSkill,ex as filterMonitorTools,q as filterNoteActions,pu as filterRecords,D as filterSections,ve as filterTypoEdits,JS as findActionArgs,cl as findDispatchProvider,jn as findJson,Dd as findMatches,xL as findRepeats,ju as findRow,ie as findSkillByName,se as findTargetByName,YS as findTools,zS as findToolsResult,ys as findWakeCommand,PT as findingsInstruction,GT as findingsOf,pc as fit,zg as fitFor,RT as fixedPlan,lg as foldBackFor,ag as foldBackNote,bT as foldBoard,ig as foldNotes,dm as foldProject,qT as foldRun,Zf as forkConflict,pa as formatBytes,qP as formatDownloads,Pd as formatReport,Ut as formatSurvey,sf as formatTag,Sf as formatTagQuery,au as formatTalkTime,ta as formatTimestamp,aa as formatTranscript,TP as formatTurnUsage,RP as formatUsd,Vr as formatWeather,J as frameNoteAction,DI as freeCap,ji as fromB64,ZM as fromCloudEvent,eP as fromCloudEventLines,fo as fuseRRF,Gm as gateAllows,yM as gatewayExtractor,HN as getMcpProviders,Kr as getWeather,Sn as gistOpening,En as gistText,BC as globToRegExp,EA as goalDraftAllowed,eT as grantAllows,$_ as grantChoices,ed as grantsFromChoices,ro as grantsNeededFor,De as graphStats,mA as groundingBlock,Fu as groupActionsByOwner,qu as groupById,F as groupModels,Ru as groupRecords,PL as groupRuns,oa as groupSegments,Nu as hasInsights,ef as hasTag,Ef as hasTagTerms,u_ as holdsGrants,cN as homeChecklist,di as hostMatches,pO as identityCodec,Pg as imageAttachmentsOf,wA as indentSelection,Iu as insightKindOf,sE as installHintFor,sA as instructionOnLine,nI as isActionable,Wr as isAmbiguousLocation,Pf as isBetterTitleSource,Z_ as isBuiltin,bE as isCacheable,Qg as isContextLimitError,zL as isDefaultMcpServer,nO as isEncryptedBackup,bO as isEntry,nn as isFillerSentence,Of as isGenericTitle,BN as isInvalidToolParametersResult,Wi as isLocked,qE as isLoopableTool,r_ as isModelUnavailable,Zn as isNothing,BI as isPro,M as isQueued,vf as isRecordId,vo as isRedactionToken,A as isRef,Ne as isResultHost,em as isResumable,FR as isSafeSkillPath,mO as isSealedRecord,mM as isSecretPath,Go as isSelfLabel,qf as isSettled,PA as isSkillEnabled,_S as isSourceGateError,nu as isSpeakerImageValue,iE as isStaleMcpSession,ho as isSubjectCandidate,KI as isTeam,vO as isTombstone,m as isValidEvent,rR as isValidMemory,Gf as isValidStoredRecord,Qt as isYouTubeUrl,_p as jobApplications,N_ as jobFromSubtask,hm as jobPostFromForm,zm as jobResults,Pm as jobToRole,fs as jobsForEvent,qm as jobsPrompt,Jg as keepRecentFor,cO as keyCache,ha as lanesOf,HC as languageInstruction,CP as lastClaimOf,io as layoutFlowchart,tp as ledgerKey,YI as licenseFromPayload,tA as lineAt,I as linearize,Kt as linesFromItems,Ot as linkClaims,rN as linkTo,oN as linkToRow,Na as linkifyCitations,QR as lintSkillPrompt,ye as lintText,Sx as listFeatures,Ju as listRows,Yi as lockedSummary,Xt as looksScanned,HP as lowBandEnergy,Ta as makeAccessEvent,nl as makeDispatchProvider,Sc as makeEntry,il as makeGroupDispatchExecutor,yO as makeJournalEntry,ip as makeLedgerEntry,WC as makeNoteToolExecutor,Uf as makeRecordId,R as makeRef,Ei as makeSourceStore,ca as makeStorageTier,Si as manifestText,Fl as mapInput,TR as markUsed,ER as matchForForget,kd as matchIndexFor,FA as matchSlashRecipe,hA as matchSlashSkill,kA as matchSlashTeam,us as matchSummary,lf as matchesTagFilter,XN as mcpBackoff,cd as mcpDispatchProvider,xN as mcpInventorySystem,MN as mcpProvider,VM as mcpServerFromCatalogItem,LN as mcpSharedSystem,Id as meetDecisions,Ri as meetReach,Ts as meetingEndedTrigger,uu as meetingInsights,ix as meetingNotesSkill,ls as meetingStartedTrigger,Lf as meetingTitlePrompt,lR as memoryBlock,oR as memoryKey,zC as memoryToolProvider,cR as memoryToolSystem,ne as mentionAnswerPrefix,Ft as mentionsFrom,NN as mergeEndpointDestinations,Ce as mergeEngineResults,Je as mergeResearchLanes,YO as mergeSegments,ae as mergeSkillPrompt,Hu as mergeStamped,Vp as mergeTranscript,oC as messagesAfter,wp as messagesFor,EL as microphoneError,jg as minWindowFor,EE as missingCommandIn,nE as missingCommandMessage,v_ as missingStarters,PC as modelAllowed,cL as modelRows,JP as modelSearchUrl,y as modelSummary,xu as momentBadge,Zs as monitorIntent,$L as monitorNeedsTools,qL as monitorProfile,ZL as monitorWindowMs,L as moveQueued,Io as multiSearch,HL as mutableRef,mp as needForJob,UR as needsBridge,GE as needsConfirmation,zI as needsRecheck,Yp as newSteps,ts as nextFireAt,sg as nextSidelineIndex,is as nextWakeAt,dO as nodeCodec,sS as normModelName,Kc as normalizeAgent,Wl as normalizeBudget,ap as normalizeCall,Dp as normalizeConnection,dc as normalizeEngine,Pc as normalizeEngineSpec,vm as normalizeGate,$l as normalizeGrants,uA as normalizeIntent,Nm as normalizeJobPost,eR as normalizeMemory,QP as normalizeModel,CC as normalizeOrgPolicy,IM as normalizePath,SE as normalizePlatform,Mc as normalizePolicy,OP as normalizePricing,lm as normalizeProject,ut as normalizeRecord,Nt as normalizeRecords,wM as normalizeRegistryEntry,HM as normalizeRegistryPage,A_ as normalizeRequest,Ac as normalizeScm,VR as normalizeSkill,Hs as normalizeSpeech,bf as normalizeStoredRecord,Po as normalizeSubject,ZA as normalizeTag,$A as normalizeTags,Zl as normalizeTeam,Nn as normalizeTopic,gn as normalizeTopics,CS as normalizeUsage,IA as normalizeWriterPrefs,Q as noteActionItems,j as noteActionLabel,qs as noteIntent,Pu as noteSectionKind,Eg as noteUnits,nd as observeInbox,kI as observeSince,Ed as observeStrip,Os as occurrenceKey,as as occurrencesBetween,jS as oneLiner,MS as openAiTranscript,Hi as openEntry,TO as openRecord,Ht as orderLines,bR as originLabel,DR as originOf,Lt as orphanRecords,BA as outlineOf,QS as overlapRank,ZO as overlayEntries,aE as packageFromArgs,Qu as pageById,Vt as pageTextFromItems,Zu as pagesOf,kM as paginateText,dI as paletteFor,wt as paragraphsFromLines,HE as parallelEligible,re as parseAgentMention,UL as parseArgsInput,RE as parseAuthChallenge,et as parseBriefText,ZN as parseBringBack,Gs as parseClock,Us as parseCommand,bs as parseDuration,hn as parseEntities,bL as parseEnvInput,Rp as parseEvaluation,CT as parseFindings,ao as parseFlowchart,jm as parseJobs,Ld as parseJsonl,tN as parseLink,KA as parseListItem,yL as parseMcpConfig,hu as parseMeetingNotes,ZI as parseMeetingText,MA as parseNewThread,Ks as parseNumberWords,tI as parseOmni,AT as parsePlan,ar as parsePlanTasks,yf as parseRecordId,on as parseRefinement,kp as parseRemote,Qm as parseReview,JO as parseSegmentName,qN as parseSideline,TE as parseSignInPrompt,te as parseSkillMention,jR as parseSkillVars,eE as parseStructured,Gn as parseSuggestions,nf as parseTagQuery,ra as parseTimedText,xf as parseTitleResponse,un as parseTopics,wr as parseWeather,Bs as parseWhen,jt as parseYouTubeUrl,zP as partitionTtsModels,cM as pathAttachment,RM as pathAttachmentsOf,C as pendingQueue,xC as permissionMode,ms as personJoinedTrigger,xa as phasesOf,cs as phraseTrigger,$t as pickCaptionTrack,CO as pickProfile,ge as pickResults,Gu as pickSections,oi as pinnedOrderOf,Er as planAttribution,nr as planBody,$g as planCompaction,GI as planLabel,bI as planOf,sr as planParts,Oo as planQueries,tr as planSectionSystem,Qf as planSync,ir as planTitleFor,XE as planToolRound,fT as plannerPrompt,RN as pointsAtGateway,PO as policyFor,bC as policyHash,vC as policyLabel,qc as poolFor,ei as preferenceFor,kg as prefetchAttachment,Dg as prefetchPlan,TC as presenceBlock,EC as presenceDelta,nC as presenceFor,IP as priceUsage,sm as priorWorkFor,Ra as projectChain,pm as projectFromForm,Rm as projectProgress,x as promoteQueued,y_ as promoteRoles,va as promptEntries,cP as promptTokensOf,Op as proposalFromNeeds,Ip as proposalToAgent,_t as propose,mR as pruneMemories,_s as questionTrigger,$u as quickRows,le as rankLinkTargets,ze as rankResearchCards,eM as rankSkills,yo as rankSubjects,_P as rateFor,SC as reachOf,Tr as reachRank,mr as reachSatisfies,IE as readAuthServerMetadata,NE as readRegistration,OE as readResourceMetadata,Ti as readSource,og as readThread,ME as readTokenResponse,Lm as readyJobs,SR as recall,rx as recentFindings,DA as recipeInvocationText,hl as recipeParams,Gl as recipeToolProvider,Bl as recipeToolSpec,nR as reconcile,Ur as reconcileEngines,fO as recordsFromBackup,Np as recruitEvents,fp as recruitForRun,gp as recruitJob,la as redactAccessArgs,Ct as redactedTokensIn,Mt as redactionCost,FC as redactionTier,sn as refineSpokenCommand,rn as refinementFormat,en as refinementPrompt,tn as refinementStream,wL as refreshArgs,hE as registerMcpClient,uE as registrationRequest,BM as registryListUrl,Rt as reject,v as rememberRecent,js as reminderIntent,of as removeTag,gg as renderContent,so as renderFlowchartSvg,jI as renderMarkdown,qn as repairJson,vd as replaceAll,bd as replaceAllInRange,Ud as replaceMatch,Md as replay,Za as requirementsFor,$a as requirementsForStep,Xe as researchRelevance,Ye as researchSnippet,VN as resetMcp,f as resolveRef,$N as resolveSidelineTarget,iI as resolveSince,Do as resolveSubjects,Yc as resolveTeam,OI as resolveTheme,zn as responseFormat,HS as resultToolSpec,$p as resumeTeam,Zm as reviewPrompt,Qn as rewriteJson,JM as rfc3339,ce as roleById,Y_ as roleCardId,EP as rollupKey,H_ as rosterRows,Jm as roundBudget,OS as roundCap,mC as roundCount,Wm as roundJobs,cC as roundMinutes,JE as roundSignature,hC as routeAllowed,cp as routeFor,da as routeGraph,Re as routeTeam,du as rowTime,ZT as runFromEvents,Sd as runLanes,kl as runPlan,Xm as runProject,yl as runRecipe,bS as runResultQuery,im as runState,Zp as runTeam,WE as runToolRound,AS as runTurnLoop,ES as runWithFailover,we as salientTerms,_R as sameMemory,ii as sameModelKey,GR as sameSkillOrigin,af as sameTags,Tn as sameUtterance,iL as sampleSeconds,sL as sampleTooShort,IL as saveTimedOut,OL as saveVoiceFailure,gO as scalePolicy,Qs as scheduleIntent,rT as scmAllows,Ki as sealEntry,lO as sealRecord,Xi as searchEntries,jP as searchModels,Al as searchResultsToText,lN as searchSettings,Kf as searchTextFor,TM as secretReason,Ku as sectionHash,_N as sectionOfRow,vu as sectionSpec,bu as sectionValue,IN as seedDestinations,VO as segmentBytes,XO as segmentEntries,zO as segmentName,qO as segmentsFor,JA as selectionStats,iN as setSettingValue,kC as settingLocked,aN as settingValue,pN as settingsGateOf,SN as settingsOpenMode,mN as settingsStatusAll,TN as settingsStatusOf,an as settleRefinement,Ec as sha256,vS as shieldToolResult,li as shortUrl,Mf as shouldAutoTitle,WO as shouldRotate,uN as shouldSeedDestinations,Sg as sidelinePath,cg as sidelineToolProvider,mE as signInError,cE as signInFromError,pE as signInToolResult,qa as signalsFrom,aR as similarity,rM as skillCatalogSystem,rd as skillChoices,sM as skillDiscoveryProvider,iM as skillEntry,tM as skillFileProvider,yR as skillFiles,$C as skillHandle,bA as skillInvocationLabel,vA as skillInvocationOf,BR as skillIsStale,QC as skillPackageFiles,jC as skillRunFromSkill,ZC as skillToolSystem,zR as skillVar,eA as skillVarGuidance,JR as skillVarPattern,UA as slashCommandInsert,xA as slashCommandItems,tR as slotOf,Wc as slugAgentId,_T as slugTeamName,OM as sniffType,Vf as snippetOf,j_ as soloTeam,cu as sortRecords,mu as sortStamp,hN as sourceCitationSystem,pS as sourceGate,cS as sourceGuardFor,mi as sourceId,ng as sourceOf,Ai as sourcePolicyFor,mS as sourcePolicySettings,fi as sourceUrlsOf,ga as sourcesFromToolText,Dt as spanningQuestions,GP as speakStream,ou as speakerBreakdown,Eu as speakerLabeller,$I as speakerStats,tu as speakerTimeline,tm as spendOf,ld as spendRows,jE as stableToolCallKey,Jf as stampOf,lL as startRecording,Jc as starterAgents,U_ as starterTeam,mT as starterTeams,NS as stepResultText,_O as streamCodec,Bo as stripQualifiers,Lo as subjectKey,xo as subjectTokens,ZR as substituteSkillVars,f_ as subtaskFromRequest,cf as suggestExistingTags,Ko as suggestMerges,qR as suggestSkillVar,bn as suggestionsFormat,vn as suggestionsPrompt,Bn as suggestionsStream,cc as summarize,sp as summarizeEngine,LL as summarizeRun,lP as summarizeUsage,Ou as summarySections,BO as supersedes,_e as supportsSubagents,kt as surveyCorpus,fL as switchOutcome,nt as synthesisPrompt,tC as systemWithSummary,mf as tagFacets,pf as tagsSearchText,O_ as takeUp,I_ as takeUpLine,C_ as taskTree,Ym as teamForRound,pT as teamFromForm,b_ as teamHealth,yA as teamInvocationText,D_ as teamLanes,F_ as teamLine,G_ as teamShape,i_ as teamToolProvider,s_ as teamToolSpec,n_ as teamToolTimeoutMs,Q_ as teamsWithSolos,wN as testMcpServer,CL as textToDict,fI as themeStylesheet,eg as threadManifest,M_ as threadRows,Ua as threadTitle,rg as threadToolProvider,Ga as threadTree,ya as threadsOf,yt as thresholdSweep,wI as tierFor,Dc as tierOf,ea as timedTextUrl,Js as timerIntent,Ss as timerTrigger,gf as titleFromDate,Nf as titleFromParticipants,If as titleFromSummary,uf as titleFromTopics,Ji as toB64,LT as toBriefClaims,Cg as toChatMessages,qM as toCloudEvent,rP as toCloudEventBatch,$M as toCloudEventLines,AI as toCssVars,Hf as toIndexEntry,Yn as toJsonSchema,xd as toJsonl,Ir as toModelSchema,ur as toModelSchemas,Mg as toMultimodalMessages,DL as toSanitizedReport,Bf as toSearchRecord,XA as toggleLinePrefix,YA as toggleLink,tf as toggleTag,WA as toggleTask,VA as toggleWrap,PE as tokenExpired,CE as tokenRequest,ws as tokenize,UO as tombstone,QE as toolMadeProgress,eo as toolNeedFor,DN as toolStatus,yE as toolTraits,Ve as topicTerms,ps as topicTrigger,In as topicsFormat,On as topicsPrompt,fn as topicsSchema,Cn as topicsStream,BE as traitsIndex,sa as transcriptFromTracks,$ as triggerQueryAt,gl as trimDescription,Fe as trimGraph,kR as trustOf,YP as ttsArchOf,ba as turnsOf,Jn as unfence,Gi as unlockVault,ue as unwrapRedirect,_r as upcast,dr as upcastAll,pR as upcastMemory,HR as upcastSkill,wR as upcastSkills,J_ as upsertAgents,sP as usageFromEvent,nP as usageFromOpenAi,Yl as usageOf,iP as usageRecord,al as validateAction,Bc as validateAgent,Xl as validateBudget,Ar as validateCapability,Fp as validateConnection,Lc as validateEngineSpec,wi as validateEntry,T as validateEvent,FM as validateExtractRequest,DM as validateExtractResponse,Um as validateGate,fr as validateInvocation,um as validateJobPost,Sm as validateProject,Ll as validateRecipe,os as validateSchedule,KR as validateSkill,ql as validateTeam,Eo as validateView,So as validateViewInvocation,mo as validateWidget,co as validateWidgetMessage,yN as vaultWidgetSystem,FL as verdict,mc as verifyAttested,lc as verifyChain,XI as verifyEntitlement,GC as verifyPolicyToken,WI as verifySignedToken,Zt as videoMetaFromPlayerResponse,lo as viewResult,ht as vocabularyDrift,ds as voiceCommandTrigger,RL as voiceListRows,dL as voicePicker,Pt as wantedPages,sI as wantsModel,UN as wantsVaultGuidance,OT as waves,Ug as weatherFollowupPlace,yg as weatherPlace,Rg as weatherToolProvider,Hr as weatherUrl,SL as webMedia,We as webQuery,fl as webSearchToolProvider,AE as wellKnownUrls,K_ as whereItWorks,kN as widgetAuthoringSystem,_o as widgetIcon,Se as wikiQueryAt,gt as wikilinksIn,Yg as windowOf,AM as withAbsolutePaths,VT as withBoardTool,hL as withCost,Gg as withFetchedMemo,sl as withGuidance,lC as withPresence,U as withRecent,GS as withResultShield,JT as withRunCache,xg as withSourceTool,IS as withToolSystem,VI as withinFreeLimit,dS as withinReach,Xf as wordCount,Ue as wordDiff,p_ as workLogEvidence,m_ as workLogFor,c_ as workLogText,vp as worktreeDirFor,aA as writerAffordance,cA as writerRequest,lA as writerTail};
package/loop.js CHANGED
@@ -1 +1 @@
1
- const I=Object.freeze(["chat","note","meeting","watch","assist","suggestion","topics","other"]);class c extends Error{constructor(i,t){super(t),this.name="LoopError",this.code=i}}function O({id:o,kind:i="other",run:t,background:s=!1}){if(!o)throw new c("BAD_LOOP","loop.id required");if(typeof t!="function")throw new c("BAD_LOOP",`loop '${o}': run required`);return Object.freeze({id:o,kind:i,run:t,background:!!s})}function y({now:o=()=>0,newId:i,emit:t=()=>{},decide:s=null}={}){if(typeof i!="function")throw new c("BAD_RUNNER","newId required — the runner must not invent identity");async function w(e,n={}){if(!e||typeof e.run!="function")throw new c("BAD_LOOP","runner.run needs a loop with run()");const u=n.turnId||i(),a=n.kind||e.kind||"other";if(s){const r=s("turn.start",{turnId:u,kind:a,loopId:e.id,...n});if(r&&r.allow===!1)throw t("policy.denied",{turnId:u,kind:a,loopId:e.id,reasons:r.reasons||[]}),new c("DENIED",`turn denied: ${(r.reasons||[]).join("; ")||"policy"}`)}const g=Number.isFinite(n.startedAt)?n.startedAt:o();let p=!1,l={};const h=(r,d)=>{p||(p=!0,t("turn.ended",{...l,turnId:u,reason:r,stepped:!!d,ms:o()-g,kind:a}))};t("turn.started",{turnId:u,kind:a,loopId:e.id,agentId:n.agentId||null,surface:n.surface||null,sourceId:n.sourceId||null,background:n.background??e.background});let f=!1;try{const r=await e.run({turnId:u,kind:a,signal:n.signal,request:n,produced:()=>{f=!0},report:d=>{d&&typeof d=="object"&&(l={...l,...d})},emit:(d,b)=>t(d,{turnId:u,...b})});return r!=null&&r!==""&&(f=!0),h(n.signal?.aborted?"aborted":"ok",f),r}catch(r){throw h(n.signal?.aborted?"aborted":"error",f),r}}return{run:w}}export{I as LOOP_KINDS,c as LoopError,y as createTurnRunner,O as defineLoop};
1
+ const k=Object.freeze(["chat","note","meeting","watch","assist","suggestion","topics","other"]);class d extends Error{constructor(e,o){super(o),this.name="LoopError",this.code=e}}function O(n){const e=n?.reason;return typeof e=="string"?e:e&&typeof e=="object"&&typeof e.cause=="string"?e.cause:null}const A=200;function E(n){const o={message:String(n?.message??n??"").slice(0,A)},s=n?.code??n?.status;return(typeof s=="string"||typeof s=="number")&&(o.code=s),o}function m({id:n,kind:e="other",run:o,background:s=!1}){if(!n)throw new d("BAD_LOOP","loop.id required");if(typeof o!="function")throw new d("BAD_LOOP",`loop '${n}': run required`);return Object.freeze({id:n,kind:e,run:o,background:!!s})}function x({now:n=()=>0,newId:e,emit:o=()=>{},decide:s=null}={}){if(typeof e!="function")throw new d("BAD_RUNNER","newId required — the runner must not invent identity");async function y(c,r={}){if(!c||typeof c.run!="function")throw new d("BAD_LOOP","runner.run needs a loop with run()");const u=r.turnId||e(),a=r.kind||c.kind||"other";if(s){const t=s("turn.start",{turnId:u,kind:a,loopId:c.id,...r});if(t&&t.allow===!1)throw o("policy.denied",{turnId:u,kind:a,loopId:c.id,reasons:t.reasons||[]}),new d("DENIED",`turn denied: ${(t.reasons||[]).join("; ")||"policy"}`)}const I=Number.isFinite(r.startedAt)?r.startedAt:n();let b=!1,p={};const h=(t,i,l=null)=>{if(b)return;b=!0;const g={...p,turnId:u,reason:t,stepped:!!i,ms:n()-I,kind:a};if(t==="aborted"){const w=O(r.signal);w&&(g.cause=w)}t==="error"&&l&&(g.error=E(l)),o("turn.ended",g)};o("turn.started",{turnId:u,kind:a,loopId:c.id,agentId:r.agentId||null,surface:r.surface||null,sourceId:r.sourceId||null,background:r.background??c.background});let f=!1;try{const t=await c.run({turnId:u,kind:a,signal:r.signal,request:r,produced:()=>{f=!0},report:i=>{i&&typeof i=="object"&&(p={...p,...i})},emit:(i,l)=>o(i,{turnId:u,...l})});return t!=null&&t!==""&&(f=!0),h(r.signal?.aborted?"aborted":"ok",f),t}catch(t){throw h(r.signal?.aborted?"aborted":"error",f,t),t}}return{run:y}}export{k as LOOP_KINDS,d as LoopError,O as abortCause,x as createTurnRunner,m as defineLoop,E as errorFacts};
package/model-registry.js CHANGED
@@ -1 +1 @@
1
- const c="https://huggingface.co/api/models",i={stt:{pipeline:"automatic-speech-recognition",hint:"whisper"},ner:{pipeline:"token-classification",hint:""},tts:{pipeline:"text-to-speech",hint:""}},l=["style_text_to_speech_2","vits"],u=Object.freeze({style_text_to_speech_2:"Kokoro · multi-voice",vits:"VITS/MMS · one language"});function a(t={}){const e=Array.isArray(t.tags)?t.tags:[];return l.find(s=>e.includes(s))||null}function g(t=[]){const e=[],s=[];for(const n of t)(a(n)?e:s).push(n);return{runnable:e,unsupported:s}}function p({task:t="stt",query:e="",limit:s=30}={}){const n=i[t]||i.stt,r=new URL(c);r.searchParams.set("filter","transformers.js"),r.searchParams.set("pipeline_tag",n.pipeline);const o=String(e||"").trim()||n.hint;return o&&r.searchParams.set("search",o),r.searchParams.set("sort","downloads"),r.searchParams.set("direction","-1"),r.searchParams.set("limit",String(Math.max(1,Math.min(Number(s)||30,100)))),r.toString()}async function f(t={},e=globalThis.fetch){const s=await e(p(t),{headers:{Accept:"application/json"}});if(!s.ok){const r=await s.text().catch(()=>"");throw new Error(`Hugging Face HTTP ${s.status}${r?`: ${r.slice(0,160)}`:""}`)}const n=await s.json();return(Array.isArray(n)?n:[]).map(h).filter(Boolean)}function h(t={}){const e=t.id||t.modelId;return!e||!e.includes("/")?null:{id:e,name:e.split("/").pop(),org:e.split("/")[0],downloads:Number(t.downloads)||0,likes:Number(t.likes)||0,updated:t.lastModified||t.createdAt||"",tags:Array.isArray(t.tags)?t.tags:[],langs:(Array.isArray(t.tags)?t.tags:[]).filter(s=>/^[a-z]{2,3}$/.test(s)).slice(0,6),url:`https://huggingface.co/${e}`}}function d(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t||0)}function A(t,{task:e="stt"}={}){const s=e==="tts"?a(t):null;return[e==="tts"?s?u[s]||s:"not runnable here":"",`↓ ${d(t.downloads)}`,t.likes?`♥ ${t.likes}`:"",(t.langs||[]).length?t.langs.join("/"):""].filter(Boolean).join(" · ")}export{c as HF_API,u as TTS_ARCH_LABEL,A as describeSearchResult,d as formatDownloads,p as modelSearchUrl,h as normalizeModel,g as partitionTtsModels,f as searchModels,a as ttsArchOf};
1
+ const c="https://huggingface.co/api/models",a={stt:{pipeline:"automatic-speech-recognition",hint:"whisper"},ner:{pipeline:"token-classification",hint:""},tts:{pipeline:"text-to-speech",hint:""},rerank:{pipeline:"text-ranking",hint:"reranker",library:"transformers"},decide:{pipeline:"zero-shot-classification",hint:"",library:"transformers"}},l=["style_text_to_speech_2","vits"],p=Object.freeze({style_text_to_speech_2:"Kokoro · multi-voice",vits:"VITS/MMS · one language"});function o(t={}){const e=Array.isArray(t.tags)?t.tags:[];return l.find(r=>e.includes(r))||null}function g(t=[]){const e=[],r=[];for(const n of t)(o(n)?e:r).push(n);return{runnable:e,unsupported:r}}function u({task:t="stt",query:e="",limit:r=30}={}){const n=a[t]||a.stt,s=new URL(c);s.searchParams.set("filter",n.library||"transformers.js"),s.searchParams.set("pipeline_tag",n.pipeline);const i=String(e||"").trim()||n.hint;return i&&s.searchParams.set("search",i),s.searchParams.set("sort","downloads"),s.searchParams.set("direction","-1"),s.searchParams.set("limit",String(Math.max(1,Math.min(Number(r)||30,100)))),s.toString()}async function f(t={},e=globalThis.fetch){const r=await e(u(t),{headers:{Accept:"application/json"}});if(!r.ok){const s=await r.text().catch(()=>"");throw new Error(`Hugging Face HTTP ${r.status}${s?`: ${s.slice(0,160)}`:""}`)}const n=await r.json();return(Array.isArray(n)?n:[]).map(h).filter(Boolean)}function h(t={}){const e=t.id||t.modelId;return!e||!e.includes("/")?null:{id:e,name:e.split("/").pop(),org:e.split("/")[0],downloads:Number(t.downloads)||0,likes:Number(t.likes)||0,updated:t.lastModified||t.createdAt||"",tags:Array.isArray(t.tags)?t.tags:[],langs:(Array.isArray(t.tags)?t.tags:[]).filter(r=>/^[a-z]{2,3}$/.test(r)).slice(0,6),url:`https://huggingface.co/${e}`}}function d(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t||0)}function x(t,{task:e="stt"}={}){const r=e==="tts"?o(t):null;return[e==="tts"?r?p[r]||r:"not runnable here":"",`↓ ${d(t.downloads)}`,t.likes?`♥ ${t.likes}`:"",(t.langs||[]).length?t.langs.join("/"):""].filter(Boolean).join(" · ")}export{c as HF_API,p as TTS_ARCH_LABEL,x as describeSearchResult,d as formatDownloads,u as modelSearchUrl,h as normalizeModel,g as partitionTtsModels,f as searchModels,o as ttsArchOf};
package/model-roles.js CHANGED
@@ -1 +1 @@
1
- import{reachOfProvider as v}from"./capability-client.js";const j=Object.freeze([{id:"chat",label:"Chat & reasoning",kinds:["generate","think","see"],jump:"endpoints",page:"models",blurb:"Answers, drafts, code — the language model a turn goes to."},{id:"agents",label:"Coding agents",kinds:["generate","tool"],jump:"bridge-agents",page:"agent-tools",blurb:"Claude Code, Codex and the others — run here, with their own login."},{id:"detect",label:"Entity detection",kinds:["detect"],jump:"gw-models",page:"redaction",blurb:"Names, places, addresses, secrets — redaction and the fast path."},{id:"transcribe",label:"Transcription",kinds:["transcribe"],jump:"gw-stt-models",page:"voice",blurb:"Dictation and meetings, speech to text."},{id:"speak",label:"Voice",kinds:["speak"],jump:"gw-tts-models",page:"voice",blurb:"Read-aloud and voice conversation, text to speech."},{id:"diarize",label:"Speaker identification",kinds:["transcribe"],jump:"gw-diarize-models",page:"voice",blurb:"Who said what in a meeting."},{id:"rerank",label:"Ranking",kinds:["rerank"],jump:"endpoints",page:"models",blurb:"Order sources by relevance — research in plan notes, search."},{id:"embed",label:"Embeddings",kinds:["embed"],jump:"endpoints",page:"models",blurb:"Vectors for retrieval."},{id:"decide",label:"Decisions",kinds:["decide"],jump:"endpoints",page:"models",blurb:"Typed choices with a probability — sentiment, routing, triage."}]),x={device:"this device",trusted:"your server",any:"cloud",agent:"local agent, its own login",browser:"in this browser"};function E(n){return x[n]||n||"—"}function f(n){return n?n.kind==="webllm"?"browser":v({baseUrl:n.baseUrl||""}):"any"}const c=n=>String(n||"").split("/").pop();function R({settings:n={},gateway:u=null,ner:i=null,stt:y=null,tts:p=null,diarize:w=null}={}){const h=(n.endpoints||[]).filter(t=>t&&t.enabled!==!1),k=n.agents||[],g=n.activeAgentId,a=[],d=t=>j.find(e=>e.id===t),m=t=>h.filter(e=>Array.isArray(e.provides)&&e.provides.includes(t)).map(e=>({name:e.name||e.baseUrl,model:e.providesInfo?.[t]?.models?.[0]||null,where:f(e),note:"a server you probed"}));{const t=h.map(e=>({name:e.name||e.baseUrl||"endpoint",model:e.model||null,where:f(e),active:e.id===g})).sort((e,r)=>(r.active?1:0)-(e.active?1:0));a.push({...d("chat"),status:t.length?"ready":"none",current:t.slice(0,4),options:t.length,more:Math.max(0,t.length-4)})}{const t=k.filter(e=>e&&e.enabled!==!1).map(e=>({name:e.name||e.id,model:e.model||null,where:"agent",active:e.id===g})).sort((e,r)=>(r.active?1:0)-(e.active?1:0));a.push({...d("agents"),status:t.length?"ready":"none",current:t.slice(0,4),options:t.length,more:Math.max(0,t.length-4)})}{const t=n.ui?.piiRedaction?.detection||{},e=[];let r="none";if(t.backend&&t.backend!=="off"&&!t.bundled&&t.url&&(e.push({name:t.serverId?"your detector server":"your custom detector",model:t.model||null,where:v({baseUrl:t.url})}),r="external"),i?.active){const l=i.state||u?.ner?.state||"ready";e.push({name:c(i.active),model:i.active,where:"device",note:"primary"});for(const o of i.companions||[])e.push({name:c(o.model),model:o.model,where:"device",note:o.state==="ready"?"also running":o.state});for(const o of i.skipped||[])e.push({name:c(o.id),model:o.id,where:"device",note:`not loaded — ${o.why}`});r!=="external"&&(r=l==="ready"?"ready":l)}e.push(...m("detect"));const s=i?.recommendation;a.push({...d("detect"),status:r,current:e,options:(i?.available||[]).length+m("detect").length,recommended:s&&(s.primary!==i?.active||JSON.stringify(s.union||[])!==JSON.stringify(i?.union||[]))?{primary:s.primary,union:s.union,reason:s.reason}:null,alternatives:s?.alternatives||[]})}const b=(t,e,r,s={})=>{const l=r?.state||e?.state||"off",o=e?.active||r?.model||null;a.push({...d(t),status:o?l==="ready"?"ready":l:"none",current:o?[{name:c(o),model:o,where:"device",...s}]:[],options:(e?.available||[]).length})};b("transcribe",y,u?.stt),b("speak",p,u?.tts,p?.voice?{note:`voice ${p.voice}`}:{}),b("diarize",w,null);for(const t of["rerank","embed","decide"]){const e=m(t);a.push({...d(t),status:e.length?"ready":"none",current:e,options:e.length,hint:e.length?null:`No ${d(t).label.toLowerCase()} model yet — probe a server that provides it under Models, and every step of that kind starts using it.`})}return a}export{j as MODEL_ROLES,R as modelRoles,E as whereLabel};
1
+ import{reachOfProvider as f}from"./capability-client.js";const R=Object.freeze([{id:"chat",label:"Chat & reasoning",kinds:["generate","think","see"],jump:"endpoints",page:"models",blurb:"Answers, drafts, code — the language model a turn goes to."},{id:"agents",label:"Coding agents",kinds:["generate","tool"],jump:"bridge-agents",page:"agent-tools",blurb:"Claude Code, Codex and the others — run here, with their own login."},{id:"detect",label:"Entity detection",kinds:["detect"],jump:"gw-models",page:"redaction",blurb:"Names, places, addresses, secrets — redaction and the fast path."},{id:"transcribe",label:"Transcription",kinds:["transcribe"],jump:"gw-stt-models",page:"voice",blurb:"Dictation and meetings, speech to text."},{id:"speak",label:"Voice",kinds:["speak"],jump:"gw-tts-models",page:"voice",blurb:"Read-aloud and voice conversation, text to speech."},{id:"diarize",label:"Speaker identification",kinds:["transcribe"],jump:"gw-diarize-models",page:"voice",blurb:"Who said what in a meeting."},{id:"rerank",label:"Ranking",kinds:["rerank"],jump:"services",page:"runtime",blurb:"Order sources by relevance — research in plan notes, search."},{id:"embed",label:"Embeddings",kinds:["embed"],jump:"endpoints",page:"models",blurb:"Vectors for retrieval."},{id:"decide",label:"Decisions",kinds:["decide"],jump:"services",page:"runtime",blurb:"Typed choices with a probability — sentiment, routing, triage."}]),A={device:"this device",trusted:"your server",any:"cloud",agent:"local agent, its own login",browser:"in this browser"};function C(o){return A[o]||o||"—"}function y(o){return o?o.kind==="webllm"?"browser":f({baseUrl:o.baseUrl||""}):"any"}const u=o=>String(o||"").split("/").pop();function L({settings:o={},gateway:m=null,ner:s=null,stt:w=null,tts:p=null,diarize:k=null,capabilities:j=null,runtime:x=null}={}){const g=(o.endpoints||[]).filter(t=>t&&t.enabled!==!1),O=o.agents||[],v=o.activeAgentId,d=[],c=t=>R.find(e=>e.id===t),b=t=>g.filter(e=>Array.isArray(e.provides)&&e.provides.includes(t)).map(e=>({name:e.name||e.baseUrl,model:e.providesInfo?.[t]?.models?.[0]||null,where:y(e),note:"a server you probed"}));{const t=g.map(e=>({name:e.name||e.baseUrl||"endpoint",model:e.model||null,where:y(e),active:e.id===v})).sort((e,n)=>(n.active?1:0)-(e.active?1:0));d.push({...c("chat"),status:t.length?"ready":"none",current:t.slice(0,4),options:t.length,more:Math.max(0,t.length-4)})}{const t=O.filter(e=>e&&e.enabled!==!1).map(e=>({name:e.name||e.id,model:e.model||null,where:"agent",active:e.id===v})).sort((e,n)=>(n.active?1:0)-(e.active?1:0));d.push({...c("agents"),status:t.length?"ready":"none",current:t.slice(0,4),options:t.length,more:Math.max(0,t.length-4)})}{const t=o.ui?.piiRedaction?.detection||{},e=[];let n="none";if(t.backend&&t.backend!=="off"&&!t.bundled&&t.url&&(e.push({name:t.serverId?"your detector server":"your custom detector",model:t.model||null,where:f({baseUrl:t.url})}),n="external"),s?.active){const l=s.state||m?.ner?.state||"ready";e.push({name:u(s.active),model:s.active,where:"device",note:"primary"});for(const i of s.companions||[])e.push({name:u(i.model),model:i.model,where:"device",note:i.state==="ready"?"also running":i.state});for(const i of s.skipped||[])e.push({name:u(i.id),model:i.id,where:"device",note:`not loaded — ${i.why}`});n!=="external"&&(n=l==="ready"?"ready":l)}e.push(...b("detect"));const a=s?.recommendation;d.push({...c("detect"),status:n,current:e,options:(s?.available||[]).length+b("detect").length,recommended:a&&(a.primary!==s?.active||JSON.stringify(a.union||[])!==JSON.stringify(s?.union||[]))?{primary:a.primary,union:a.union,reason:a.reason}:null,alternatives:a?.alternatives||[]})}const h=(t,e,n,a={})=>{const l=n?.state||e?.state||"off",i=e?.active||n?.model||null;d.push({...c(t),status:i?l==="ready"?"ready":l:"none",current:i?[{name:u(i),model:i,where:"device",...a}]:[],options:(e?.available||[]).length})};h("transcribe",w,m?.stt),h("speak",p,m?.tts,p?.voice?{note:`voice ${p.voice}`}:{}),h("diarize",k,null);for(const t of["rerank","embed","decide"]){const e=(j?.capabilities||[]).find(r=>r.id===t),n=[];if(e&&(!e.runtime||["ready","external","idle"].includes(e.runtime.state))){const r=e.default||e.models?.[0]||null,E=e.runtime?.name==="container";n.push({name:r?u(r):"gateway",model:r,where:"device",note:E?`a container the gateway runs${e.runtime.service?` (${e.runtime.service})`:""}`:"the gateway",...e.calibrated===!1?{calibrated:!1}:{}})}n.push(...b(t));const a=Object.values(x?.services||{}).filter(r=>r&&Array.isArray(r.provides)&&r.provides.includes(t)).map(r=>({service:r.id,label:r.label,state:r.state||"absent",...r.model?{model:r.model}:{}})),l=c(t).label.toLowerCase(),i=n.length?null:a.length?`No ${l} model yet — run ${a.map(r=>r.label).join(" or ")} here (a container under Runtime), or probe a server that provides it under Models.`:`No ${l} model yet — probe a server that provides it under Models, and every step of that kind starts using it.`;d.push({...c(t),status:n.length?"ready":"none",current:n,options:n.length,hint:i,run:a})}return d}export{R as MODEL_ROLES,L as modelRoles,C as whereLabel};