dsh-context 0.75.0 → 0.76.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -6
- package/lib/client.js +18 -17
- package/lib/index.d.ts +5 -0
- package/lib/index.js +7 -7
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -61,6 +61,8 @@ interface TimelineState {
|
|
|
61
61
|
* stay absent until a value is known. */
|
|
62
62
|
model?: string;
|
|
63
63
|
provider?: string;
|
|
64
|
+
/** Last-wins: a header without an effort clears it. */
|
|
65
|
+
reasoningEffort?: string;
|
|
64
66
|
lastModel?: string;
|
|
65
67
|
contextWindow?: number;
|
|
66
68
|
/** The newest `request/header` envelope's routed output cap (dsh materializes the adapter default into it). Last-wins: a header
|
|
@@ -256,6 +258,9 @@ interface Snapshot {
|
|
|
256
258
|
};
|
|
257
259
|
model?: string;
|
|
258
260
|
provider?: string;
|
|
261
|
+
/** The newest request envelope's materialized reasoning effort. Absent = no effort in force, or a row folded before the field
|
|
262
|
+
* existed. */
|
|
263
|
+
reasoningEffort?: string;
|
|
259
264
|
contextWindow?: number;
|
|
260
265
|
/** The newest request envelope's routed output cap (auto-compaction reserves it). Absent = no cap in the log, or a row folded before
|
|
261
266
|
* the field existed. */
|
package/lib/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* dsh-context v0.
|
|
2
|
+
* dsh-context v0.76.0
|
|
3
3
|
* A DeepSeek Harness plugin for context insight and management, with context dashboard and context command, for understanding how the context is made of, and how it evolves.
|
|
4
4
|
* @author bowenliang123
|
|
5
5
|
* @license Apache-2.0
|
|
6
6
|
* @homepage https://github.com/bowenliang123/dsh-context
|
|
7
|
-
* @built 2026-10-
|
|
8
|
-
* @commit
|
|
9
|
-
* @commit-date 2026-10-
|
|
7
|
+
* @built 2026-10-25T06:53:43+00:00
|
|
8
|
+
* @commit 2886f2f9e2a1
|
|
9
|
+
* @commit-date 2026-10-25T14:50:16+08:00
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import{createRequire as e}from"node:module";import{z as t}from"zod";import{deriveEventMessage as n,interruptedTurnClosers as r}from"@deepseek-ai/dsh-session";import i from"@deepseek-ai/schemastery";import{copyFile as a,link as o,mkdir as s}from"node:fs/promises";import{basename as c,dirname as l,isAbsolute as u,join as d,normalize as f,relative as p}from"node:path";import{getHeapStatistics as m}from"node:v8";import{existsSync as h,readFileSync as ee}from"node:fs";import{fileURLToPath as g}from"node:url";import{performance as te}from"node:perf_hooks";import{randomUUID as ne}from"node:crypto";function re(e){return typeof e!=`string`||e.length===0?0:Math.ceil(e.length/4)+4}function ie(e){return Math.ceil(e.length/4)+4}function ae(e){if(!Array.isArray(e)||e.length===0)return 0;let t=0;for(let n of e){let e=typeof n==`object`&&n&&n.type===`text`?n.text:void 0;if(typeof e==`string`){t+=e.length;continue}try{let e=JSON.stringify(n);typeof e==`string`&&(t+=e.length)}catch{}}return Math.ceil(t/4)+4}const oe=147456,_=(e,t)=>Math.floor(e/t),v=(e,t)=>Math.floor((e+t-1)/t);function se(e,t){let n=e*(t+1)+2;return e%2==1&&(n+=t+1),n+=v(e,2)*(t+1)%2*2,n}function ce(e,t,n){let r=e/t,i=Math.sqrt((n-2)/r+.25)-.5,a=i*r,o,s;if(i<1){let e=_(n-2,2);e%2==1&&--e,s=42,o=e*42}else if(a<2){let e=_(n-2,2)-1;if(e<=1)throw Error(`image tokens: budget too small to solve`);o=84,s=e*42}else{let n=Math.trunc(i),r=Math.trunc(a);r%2==1&&--r;let c=Math.min(n*42/t,r*42/e);s=Math.trunc(t*c/14)*14,o=Math.trunc(e*c/14)*14}let c=v(_(o,14),3),l=v(_(s,14),3);return{nLlmH:c,nLlmW:l,bestHeight:o,bestWidth:s,numTokens:se(c,l)}}function le(e,t,n,r){let i=v(_(n,14),3),a=v(_(r,14),3),o={nLlmH:i,nLlmW:a,bestHeight:n,bestWidth:r,numTokens:se(i,a)};if(o.numTokens>381){o=ce(e,t,381);let n=381;for(;o.numTokens>381;)--n,o=ce(e,t,n)}return o.numTokens+=3,o}function ue(e,t){let n=e,r=t;n>r*8&&(n=r*8);let i=n*r;if(i<oe&&i>0){let e=Math.sqrt(oe/i);n=Math.trunc(n*e),r=Math.trunc(r*e)}let a=v(n,14)*14,o=v(r,14)*14;return le(r,n,o,a)}function de(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||e<=0||t<=0)return null;try{let n=ue(e,t);for(let e=1;e<10;e++){let e=ue(n.bestWidth,n.bestHeight);if(e.nLlmH===n.nLlmH&&e.nLlmW===n.nLlmW&&e.bestHeight===n.bestHeight&&e.bestWidth===n.bestWidth&&e.numTokens===n.numTokens)return n.numTokens;n=e}return null}catch{return null}}function fe(e){return e.length>0?Math.ceil(JSON.stringify(e).length/4)+4:0}function pe(e){let t=0;if(!Array.isArray(e))return 0;for(let n of e){if(typeof n!=`object`||!n){t+=4;continue}let e=n;switch(e.type){case`text`:case`reasoning`:t+=ie(e.text||``);break;case`tool-call`:t+=Math.ceil((e.name||``).length/4)+Math.ceil((e.arguments||``).length/4)+4;break;case`image`:{let n=e.attachment,r=typeof n==`object`&&n&&typeof n.width==`number`&&typeof n.height==`number`?de(n.width,n.height):null;t+=(r??Math.ceil(JSON.stringify(e).length/4))+4;break}default:t+=4+Math.ceil(JSON.stringify(e).length/4)}}return t}function me(e,t=!1){return t&&(e==null||!Array.isArray(e.content)||e.content.length===0)?0:pe(e?.content)+4}function he(e){return Math.ceil(JSON.stringify(e).length/4)+4}function ge(e){let t=0;if(!Array.isArray(e))return 0;for(let n of e){if(typeof n!=`object`||!n)continue;let e=n;e.type===`image`?t++:Array.isArray(e.content)&&(t+=ge(e.content))}return t}function y(e){if(!Array.isArray(e))return``;for(let t of e){if(typeof t!=`object`||!t)continue;let e=t;if(e.type===`text`&&typeof e.text==`string`&&e.text.trim()!==``)return e.text.replace(/\s+/g,` `).trim().slice(0,80)}return``}function _e(e){let t=[];if(!Array.isArray(e))return t;for(let n of e){if(typeof n!=`object`||!n)continue;let e=n;e.type===`tool-call`&&typeof e.name==`string`&&t.push(e.name)}return t}function ve(e){if(e?.kind===`agent-instructions`&&Array.isArray(e.changes)){let t=[];for(let n of e.changes){let e=n?.path;typeof e==`string`&&e!==``&&!t.includes(e)&&t.push(e)}if(t.length>0)return t.join(`, `)}let t=e?.plugin;if(typeof t==`string`&&t!==``)return t;let n=e?.kind;return typeof n==`string`&&n!==``?n:``}function ye(e){return e!=null&&(typeof e.kind==`string`&&e.kind!==``&&e.kind!==`user`||typeof e.form==`string`)}function be(e){if(typeof e!=`object`||!e)return!1;let t=e;switch(t.type){case`text-delta`:case`reasoning-delta`:return typeof t.text==`string`&&t.text!==``;case`tool-call-delta`:return typeof t.argumentsDelta==`string`&&t.argumentsDelta!==``||t.name!==void 0;default:return!1}}function xe(e){if(e===`reasoning`)return`reasoning`;if(e===`text`)return`text`;if(e===`tool-call`)return`toolarg`}function Se(e
|
|
12
|
+
import{createRequire as e}from"node:module";import{z as t}from"zod";import{deriveEventMessage as n,interruptedTurnClosers as r}from"@deepseek-ai/dsh-session";import i from"@deepseek-ai/schemastery";import{copyFile as a,link as o,mkdir as s}from"node:fs/promises";import{basename as c,dirname as l,isAbsolute as u,join as d,normalize as f,relative as p}from"node:path";import{getHeapStatistics as m}from"node:v8";import{existsSync as h,readFileSync as ee}from"node:fs";import{fileURLToPath as g}from"node:url";import{performance as te}from"node:perf_hooks";import{randomUUID as ne}from"node:crypto";function re(e){return typeof e!=`string`||e.length===0?0:Math.ceil(e.length/4)+4}function ie(e){return Math.ceil(e.length/4)+4}function ae(e){if(!Array.isArray(e)||e.length===0)return 0;let t=0;for(let n of e){let e=typeof n==`object`&&n&&n.type===`text`?n.text:void 0;if(typeof e==`string`){t+=e.length;continue}try{let e=JSON.stringify(n);typeof e==`string`&&(t+=e.length)}catch{}}return Math.ceil(t/4)+4}const oe=147456,_=(e,t)=>Math.floor(e/t),v=(e,t)=>Math.floor((e+t-1)/t);function se(e,t){let n=e*(t+1)+2;return e%2==1&&(n+=t+1),n+=v(e,2)*(t+1)%2*2,n}function ce(e,t,n){let r=e/t,i=Math.sqrt((n-2)/r+.25)-.5,a=i*r,o,s;if(i<1){let e=_(n-2,2);e%2==1&&--e,s=42,o=e*42}else if(a<2){let e=_(n-2,2)-1;if(e<=1)throw Error(`image tokens: budget too small to solve`);o=84,s=e*42}else{let n=Math.trunc(i),r=Math.trunc(a);r%2==1&&--r;let c=Math.min(n*42/t,r*42/e);s=Math.trunc(t*c/14)*14,o=Math.trunc(e*c/14)*14}let c=v(_(o,14),3),l=v(_(s,14),3);return{nLlmH:c,nLlmW:l,bestHeight:o,bestWidth:s,numTokens:se(c,l)}}function le(e,t,n,r){let i=v(_(n,14),3),a=v(_(r,14),3),o={nLlmH:i,nLlmW:a,bestHeight:n,bestWidth:r,numTokens:se(i,a)};if(o.numTokens>381){o=ce(e,t,381);let n=381;for(;o.numTokens>381;)--n,o=ce(e,t,n)}return o.numTokens+=3,o}function ue(e,t){let n=e,r=t;n>r*8&&(n=r*8);let i=n*r;if(i<oe&&i>0){let e=Math.sqrt(oe/i);n=Math.trunc(n*e),r=Math.trunc(r*e)}let a=v(n,14)*14,o=v(r,14)*14;return le(r,n,o,a)}function de(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||e<=0||t<=0)return null;try{let n=ue(e,t);for(let e=1;e<10;e++){let e=ue(n.bestWidth,n.bestHeight);if(e.nLlmH===n.nLlmH&&e.nLlmW===n.nLlmW&&e.bestHeight===n.bestHeight&&e.bestWidth===n.bestWidth&&e.numTokens===n.numTokens)return n.numTokens;n=e}return null}catch{return null}}function fe(e){return e.length>0?Math.ceil(JSON.stringify(e).length/4)+4:0}function pe(e){let t=0;if(!Array.isArray(e))return 0;for(let n of e){if(typeof n!=`object`||!n){t+=4;continue}let e=n;switch(e.type){case`text`:case`reasoning`:t+=ie(e.text||``);break;case`tool-call`:t+=Math.ceil((e.name||``).length/4)+Math.ceil((e.arguments||``).length/4)+4;break;case`image`:{let n=e.attachment,r=typeof n==`object`&&n&&typeof n.width==`number`&&typeof n.height==`number`?de(n.width,n.height):null;t+=(r??Math.ceil(JSON.stringify(e).length/4))+4;break}default:t+=4+Math.ceil(JSON.stringify(e).length/4)}}return t}function me(e,t=!1){return t&&(e==null||!Array.isArray(e.content)||e.content.length===0)?0:pe(e?.content)+4}function he(e){return Math.ceil(JSON.stringify(e).length/4)+4}function ge(e){let t=0;if(!Array.isArray(e))return 0;for(let n of e){if(typeof n!=`object`||!n)continue;let e=n;e.type===`image`?t++:Array.isArray(e.content)&&(t+=ge(e.content))}return t}function y(e){if(!Array.isArray(e))return``;for(let t of e){if(typeof t!=`object`||!t)continue;let e=t;if(e.type===`text`&&typeof e.text==`string`&&e.text.trim()!==``)return e.text.replace(/\s+/g,` `).trim().slice(0,80)}return``}function _e(e){let t=[];if(!Array.isArray(e))return t;for(let n of e){if(typeof n!=`object`||!n)continue;let e=n;e.type===`tool-call`&&typeof e.name==`string`&&t.push(e.name)}return t}function ve(e){if(e?.kind===`agent-instructions`&&Array.isArray(e.changes)){let t=[];for(let n of e.changes){let e=n?.path;typeof e==`string`&&e!==``&&!t.includes(e)&&t.push(e)}if(t.length>0)return t.join(`, `)}let t=e?.plugin;if(typeof t==`string`&&t!==``)return t;let n=e?.kind;return typeof n==`string`&&n!==``?n:``}function ye(e){return e!=null&&(typeof e.kind==`string`&&e.kind!==``&&e.kind!==`user`||typeof e.form==`string`)}function be(e){if(typeof e!=`object`||!e)return!1;let t=e;switch(t.type){case`text-delta`:case`reasoning-delta`:return typeof t.text==`string`&&t.text!==``;case`tool-call-delta`:return typeof t.argumentsDelta==`string`&&t.argumentsDelta!==``||t.name!==void 0;default:return!1}}function xe(e){if(e===`reasoning`)return`reasoning`;if(e===`text`)return`text`;if(e===`tool-call`)return`toolarg`}function Se(e){let t=e.time0;if(typeof t!=`number`||!Number.isFinite(t))return;if(e.type===`tool-call-chunks`&&e.name!==void 0)return t;let n=e.type===`tool-call-chunks`?e.args:e.texts;if(!Array.isArray(n))return;let r=Array.isArray(e.dt)?e.dt:[],i=t;for(let[e,t]of n.entries()){if(e>0){let t=r[e-1];if(typeof t!=`number`||!Number.isFinite(t))return;i+=t}if(typeof t==`string`&&t!==``)return i}}function Ce(e){return we(e,NaN).firstToken}function we(e,t){let n={spans:{reasoning:0,text:0,toolarg:0},blocks:{reasoning:0,text:0,toolarg:0}},r=[],i={spans:r,tally:n};if(!Array.isArray(e))return i;let a=Number.isFinite(t),o,s,c=0,l=e=>{s===void 0||e<=c||(r.push({kind:s,start:c,end:e}),n.spans[s]+=e-c)};for(let t of e){if(typeof t!=`object`||!t)continue;let e=t;if(e.type===`chunk`){let t=e.chunk!==null&&typeof e.chunk==`object`?e.chunk:null,r=e.time;if(!Number.isFinite(r))continue;if(a&&t!==null&&t.type===`block-start`?(l(r),s=xe(t.blockType),s!==void 0&&(n.blocks[s]+=1),c=r):o===void 0&&be(t)&&(o=r),!a&&o!==void 0)break;continue}if(o===void 0&&(o=Se(e)),!a&&o!==void 0)break}return a&&l(t),o!==void 0&&(i.firstToken=o),i}function Te(e){if(typeof e!=`object`||!e)return null;let t=e;if(t.op!==`replace`)return null;let{startSeq:n,endSeq:r}=t;return typeof n!=`number`||!Number.isFinite(n)||typeof r!=`number`||!Number.isFinite(r)?null:{start:n,end:r}}function Ee(e){if(typeof e!=`string`||e===``)return null;try{let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)?t:null}catch{return null}}const De={read:`read`,read_image:`read`,write:`write`,edit:`write`,grep:`search`,glob:`search`};function Oe(e){return e===void 0?null:De[e]??null}function ke(e,t){return e===`str_replace_editor`?t!==null&&t.command===`view`?`read`:`write`:Oe(e)}function b(e){return e===`str_replace_editor`||Oe(e)!==null}function Ae(e){return b(e)||e===`run_code`}function je(e,t){if(t===null)return null;if(e===`grep`||e===`glob`){let e=t.path;if(typeof e==`string`&&e!==``)return e;let n=t.pattern;return typeof n==`string`&&n!==``?n:null}for(let e of[`file_path`,`filePath`,`path`]){let n=t[e];if(typeof n==`string`&&n!==``)return n}return null}function Me(e){if(e===``)return 0;let t=0;for(let n=0;n<e.length;n++)e[n]===`
|
|
13
13
|
`&&t++;return e.endsWith(`
|
|
14
|
-
`)?t:t+1}function S(e,t){return{added:typeof e==`string`?Me(e):0,removed:typeof t==`string`?Me(t):0}}function Ne(e,t){if(e===`edit`)return S(t.new_string,t.old_string);if(e===`write`)return S(t.content,void 0);if(e===`str_replace_editor`){if(t.command===`str_replace`)return S(t.new_str,t.old_str);if(t.command===`insert`)return S(t.new_str,void 0);if(t.command===`create`)return S(t.file_text,void 0)}return{added:0,removed:0}}function Pe(e){if(typeof e!=`object`||!e)return null;let t=e;return typeof t.path!=`string`||t.path===``||typeof t.offset!=`number`||!Number.isFinite(t.offset)||t.offset<1||!Array.isArray(t.lines)||t.lines.length===0?null:{start:t.offset,count:t.lines.length}}function Fe(e){let t=e.limit;return typeof t==`number`&&Number.isFinite(t)&&t>0?{count:Math.floor(t),est:!0}:void 0}function Ie(e,t){let n=Pe(e);return n===null?Fe(t):{start:n.start,count:n.count}}function Le(e){let t=e?.pattern;if(typeof t!=`string`||t===``)return;let n=e?.include;return typeof n==`string`&&n!==``?`${t} (${n})`:t}function Re(e){if(typeof e!=`object`||!e)return null;let t=e;if(t.truncated!==!1)return null;let n=[];if(t.shape===`matches`&&Array.isArray(t.files))for(let e of t.files){if(typeof e!=`object`||!e)continue;let t=e;typeof t.path==`string`&&t.path!==``&&Array.isArray(t.matches)&&n.push({path:t.path,hits:t.matches.length})}else if(t.shape===`paths`&&Array.isArray(t.paths))for(let e of t.paths)typeof e==`string`&&e!==``&&n.push({path:e,hits:0});return n.length>0?n:null}function ze(e){let t=x(e.tool)?b(e.argsRaw):null,n=ke(e.tool,t);if(n===null)return[];let r={seq:e.seq,kind:n,tool:e.tool,err:e.err===!0,added:0,removed:0,path:``,...e.time===void 0?{}:{time:e.time},...e.gone===void 0?{}:{gone:e.gone},...e.parent===void 0?{}:{parent:e.parent},...e.program===void 0?{}:{program:e.program}};if(n===`search`){let n=Re(e.meta);if(n!==null){let i=Le(t),a=t===null?null:je(e.tool,t),o=t!==null&&typeof t.path==`string`&&t.path!==``;return[...a!==null&&!n.some(e=>e.path===a)?[{...r,path:a,...o&&i!==void 0?{detail:i}:{},...o?{}:{pattern:!0}}]:[],...n.map(e=>({...r,path:e.path,...i===void 0?{}:{detail:i},...e.hits>0?{hits:e.hits}:{}}))]}}if(t===null)return[];let i=je(e.tool,t);if(i===null)return[];let{added:a,removed:o}=Ne(e.tool,t),s=typeof t.path==`string`&&t.path!==``,c=n===`search`&&s?Le(t):void 0,l=n===`read`?Ie(e.meta,t):void 0;return[{...r,path:i,added:a,removed:o,...c===void 0?{}:{detail:c},...l===void 0?{}:{read:l},...n===`search`&&!s?{pattern:!0}:{}}]}function C(e){return e===`bash`||e===`pwsh`||e===`run_code`?e:null}function w(e){return typeof e==`string`&&e!==``?e:void 0}function Be(e){return typeof e==`string`?b(e):typeof e==`object`&&e&&!Array.isArray(e)?e:null}function Ve(e,t,n){let r=Be(t),i=w(e===`run_code`?r?.code:r?.command);if(i===void 0)return null;let a={cmd:i.length>n?i.slice(0,n):i,...i.length>n?{truncated:!0}:{}},o=w(r?.description);o!==void 0&&(a.description=o);let s=w(r?.workdir);s!==void 0&&(a.cwd=s);let c=r?.timeoutMs;typeof c==`number`&&Number.isFinite(c)&&c>0&&(a.timeoutMs=c),r?.run_in_background===!0&&(a.background=!0);let l=w(r?.sandbox_permissions);return l!==void 0&&(a.sandbox=l),a}const He=RegExp(`(?:^|\\n)\\[still running after \\d+ms; moved to background job [^\\]\\n]+\\](?:\\nThe command keeps running in the background\\.[^\\n]*)?\\s*$`);function Ue(e){let t={};if(/(?:^|\n)started background job \S+\s*$/.test(e)||He.test(e))return t.backgroundAck=!0,t;let n=/(?:^|\n)\[killed by signal: ([^\]\n]+)\]\s*$/.exec(e)??/(?:^|\n)\[shell killed by signal: ([^\]\n]+)\](?=\n|$)/.exec(e);if(n?.[1]!==void 0)t.signal=n[1];else{let n=/(?:^|\n)\[exit code: (\d+)\]\s*$/.exec(e)??/(?:^|\n)\[Command finished with exit code (\d+)\]\s*$/.exec(e)??/(?:^|\n)\[shell exited: code (\d+)\](?=\n|$)/.exec(e);n?.[1]===void 0?/(?:^|\n)\[shell exited\](?=\n|$)/.test(e)&&(t.stopped=!0):t.exit=Number(n[1])}return/(?:^|\n)\[timed out after \d+ms\](?=\n|$)/.test(e)&&(t.timedOut=!0),/(?:^|\n)\[Command timed out or OOM\](?=\n|$)/.test(e)&&(t.timedOut=!0),/(?:^|\n)\[stopped: [^\]\n]+\](?=\n|$)/.test(e)&&(t.stopped=!0),/(?:^|\n)\[sandbox: file access denied under [^\]\n]+\](?=\n|$)/.test(e)&&(t.denied=!0),/(?:^|\n)\[output truncated; /.test(e)&&(t.truncated=!0),/(?:^|\n)\[stderr\]\n/.test(e)&&(t.stderr=!0),t}function We(e){if(typeof e!=`string`)return;let t=/(?:^|;\s*)exit code: (\d+)\b/.exec(e);return t?.[1]===void 0?void 0:Number(t[1])}function Ge(e){if(typeof e==`string`)return/(?:^|;\s*)signal: ([^;]+)/.exec(e)?.[1]?.trim()||void 0}function Ke(e,t){return e.signal!==void 0||e.stopped===!0?{status:`killed`}:e.exit===void 0?e.denied===!0||e.timedOut===!0||t?{status:`failed`}:{status:`completed`,exit:0,exitInferred:!0}:e.exit===0?{status:`completed`,exit:0}:{status:`failed`,exit:e.exit}}function T(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].call===t)return n;return-1}function qe(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(typeof n!=`object`||!n)continue;let e=n.text;typeof e==`string`&&t.push(e)}return t}function Je(e,t){let n={...e.commandStats??{runs:0,failed:0,ms:0,bg:0}};n.runs+=1,(t.status===`failed`||t.status===`killed`)&&(n.failed+=1),t.end!==void 0&&(n.ms+=Math.max(0,t.end-t.start)),e.commandStats=n}function E(e){e.commandStats={...e.commandStats??{runs:0,failed:0,ms:0,bg:0},bg:(e.commandStats?.bg??0)+1}}function Ye(e,t,n){e.commands[t].status===`running`&&n.status!==`running`&&Je(e,n),e.commands[t]=n}function Xe(e,t){return{...e.length>0?{outChars:e.reduce((e,t)=>e+t.length,0)}:{},...t.truncated===!0?{outTruncated:!0}:{},...t.stderr===!0?{stderr:!0}:{},...t.timedOut===!0?{timedOut:!0}:{},...t.stopped===!0?{stopped:!0}:{},...t.denied===!0?{denied:!0}:{},...t.signal===void 0?{}:{signal:t.signal},...t.exit===void 0?{}:{exit:t.exit}}}function Ze(e){let{parsed:t}=e;return{seq:e.seq,time:e.time,tool:e.tool,cmd:t.cmd,...t.truncated===!0?{cmdTruncated:!0}:{},...t.description===void 0?{}:{description:t.description},...t.cwd===void 0?{}:{cwd:t.cwd},...t.timeoutMs===void 0?{}:{timeoutMs:t.timeoutMs},...t.background===!0?{background:!0}:{},...t.sandbox===void 0?{}:{sandbox:t.sandbox},...typeof e.turn==`number`?{turn:e.turn}:{},...typeof e.step==`number`?{step:e.step}:{},...e.codeMode===!0?{codeMode:!0}:{},start:e.time,status:`running`,err:!1,call:e.call}}function Qe(e){let t=e?.toolCall;if(typeof t!=`object`||!t)return;let n=t.callId;return typeof n==`string`?n:void 0}function $e(e,t,n,r){let i=We(r),a=Ge(r),o={...e,end:n,status:t===`completed`?i!==void 0&&i!==0?`failed`:`completed`:t,...i===void 0?{}:{exit:i},...a===void 0?{}:{signal:a}};return delete o.derived,delete o.exitInferred,o}function et(e,t,n,r){for(let i in t){let a=t[i].findIndex(e=>e.call===n);if(a<0)continue;let o=[...t[i]];return o[a]=r(o[a]),e.pendingCodeCmds={...t,[i]:o},!0}return!1}function tt(e,t){let n=0,r=e.length,i;for(let a=e.length-1;a>=0;a--){let o=e[a].turn;if(o!==i){if(n>=t)break;n++,i=o}r=a}return e.slice(r)}function D(e){let t=0,n;for(let r of e)r.turn!==n&&(t++,n=r.turn);return t}function nt(e,t){if(e.turnRuns=e.turnRuns??D(e.requests),e.turnRuns>t.maxKeptTurns&&(e.requests=tt(e.requests,t.maxKeptTurns),e.turnRuns=D(e.requests)),e.requests.length>t.maxRequestSteps&&(e.requests=e.requests.slice(-t.maxRequestSteps),e.turnRuns=D(e.requests)),e.events.length>t.maxEvents&&(e.events=e.events.slice(-t.maxEvents)),e.spans.length>rt&&(e.spans=e.spans.slice(-rt)),e.fileOps.length>t.maxFileOps){let n=e.fileOps.length-t.maxFileOps;e.fileOpsFloor=Math.max(e.fileOpsFloor??0,e.fileOps[n-1].seq),e.fileOps=e.fileOps.slice(n)}if(e.commands.length>t.maxCommands){let n=e.commands.length-t.maxCommands,r=0,i=[];for(let t of e.commands){if(n>0&&t.status!==`running`){n--,r=Math.max(r,t.seq);continue}i.push(t)}if(i.length>t.maxCommands){let e=i.length-t.maxCommands;for(let t of i.slice(0,e))r=Math.max(r,t.seq);i.splice(0,e)}e.commandsFloor=Math.max(e.commandsFloor??0,r),e.commands=i}if(e.archived.length>0){let n=0,r=e.requests.length>0?e.requests[0].seq:void 0;if(r!==void 0)for(;n<e.archived.length&&(e.archived[n].gone??1/0)<=r;)n++;if(e.archived.length-n>t.maxArchiveNodes&&(n=e.archived.length-t.maxArchiveNodes),n>0){let t=e.archived[n-1].gone;t!==void 0&&(e.archiveFloor=Math.max(e.archiveFloor??0,t)),e.archived=e.archived.slice(n)}}}const rt=2e3;function it(){return{surface:[],sums:{user:0,inject:0,skill:0,assistant:0,tool:0},systemTokens:0,toolsTokens:0,requests:[],turnRuns:0,events:[],archived:[],callNames:{},fileOps:[],commands:[],spans:[]}}const at={"deepseek-official":`deepseek`,"deepseek-account":`deepseek`,"kimi-coding":`moonshotai`,"minimax-cn":`minimax`,"zai-coding-cn":`zhipuai`};function ot(e){return at[e]??e}function st(e){return ot(e)===`deepseek`}function O(e){if(typeof e==`number`)return Number.isFinite(e)?Math.max(0,Math.round(e)):null;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);return Number.isFinite(t)?Math.max(0,Math.round(t)):null}return null}function ct(e){let t=new Date(e+288e5),n=t.getUTCDay();if(n===0||n===6)return!1;let r=t.getUTCHours();return r>=9&&r<12||r>=14&&r<18}function lt(e,t,n,r,i){let a=st(t)&&!ct(r)?`off`:`peak`,o=e?.[t]??{},s=o[n]??{},c=s[a]??{uncached:0,cacheRead:0,cacheWrite:0,output:0},l={...s};l[a]={uncached:c.uncached+i.uncached,cacheRead:c.cacheRead+i.cacheRead,cacheWrite:c.cacheWrite+i.cacheWrite,output:c.output+i.output};let u={...o,[n]:l};return{...e??{},[t]:u}}function ut(e){let t={};for(let n in e){let r={};for(let t in e[n]){let i=e[n][t],a={};i.peak!==void 0&&(a.peak={...i.peak}),i.off!==void 0&&(a.off={...i.off}),r[t]=a}t[n]=r}return t}function dt(e,t,n){let r=e.model;r!==void 0&&(e.cost=lt(e.cost,e.provider??``,r,t,n))}const ft=[`reasoning`,`text`,`toolarg`];function k(e,t){return!Number.isFinite(e)||!Number.isFinite(t)?0:Math.max(0,t-e)}function pt(e){return e.timing===void 0&&(e.timing={wallMs:0,ttftMs:0,genMs:0,calls:0,toolsMs:0,toolCalls:0,tools:{}}),e.timing}const mt={reasoning:{ms:`reasoningMs`,n:`reasoningBlocks`},text:{ms:`textMs`,n:`textBlocks`},toolarg:{ms:`toolArgMs`,n:`toolArgBlocks`}};function ht(e,t,n,r){let i=mt[t];n>0&&(e[i.ms]=(e[i.ms]??0)+n),r>0&&(e[i.n]=(e[i.n]??0)+r)}function gt(e,t,n){if(t===`__proto__`)return;if(!Object.hasOwn(e.tools,t)){if(Object.keys(e.tools).length>=16){let t=``,n=1/0;for(let r in e.tools)e.tools[r].ms<n&&(n=e.tools[r].ms,t=r);let r={};for(let n in e.tools)n!==t&&(r[n]=e.tools[n]);e.tools=r}e.tools[t]={calls:1,ms:n};return}let r=e.tools[t];e.tools[t]={calls:r.calls+1,ms:r.ms+n}}function _t(e){let t={...e};return delete t.call,t}function vt(e){let t=e.sums.user+e.sums.inject+e.sums.skill+e.sums.assistant+e.sums.tool,n={ok:!0,...e.model===void 0?{}:{model:e.model},...e.provider===void 0?{}:{provider:e.provider},...e.contextWindow===void 0?{}:{contextWindow:e.contextWindow},...e.maxOutputTokens===void 0?{}:{maxOutputTokens:e.maxOutputTokens},current:{system:e.systemTokens,tools:e.toolsTokens,user:e.sums.user,inject:e.sums.inject,skill:e.sums.skill,assistant:e.sums.assistant,tool:e.sums.tool,total:t+e.systemTokens+e.toolsTokens},images:e.surface.reduce((e,t)=>e+(t.imgs??0),0),toolCalls:e.surface.reduce((e,t)=>t.cat===`tool`||t.cat===`skill`&&t.tool!==void 0?e+1:e,0),humanInputs:e.humanInputs??0,answers:e.answers??0,...e.lastUser===void 0?{}:{lastUser:e.lastUser},requests:[],events:[],nodes:[],droppedNodes:0,archive:[]};if(e.cost!==void 0&&(n.cost=ut(e.cost)),e.timing!==void 0){let t={};for(let n in e.timing.tools)t[n]={...e.timing.tools[n]};n.timing={...e.timing,tools:t}}return e.systems!==void 0&&e.systems.length>0&&(n.systems=e.systems.map(e=>({...e}))),n}function yt(e,t){let n={requests:e.requests.map(e=>({...e})),events:e.events.map(e=>({...e})),nodes:[],droppedNodes:0,archive:e.archived.map(e=>({...e})),fileOps:e.fileOps.map(e=>({...e})),...e.fileOpsFloor===void 0?{}:{fileOpsFloor:e.fileOpsFloor},commands:e.commands.map(_t),...e.commandsFloor===void 0?{}:{commandsFloor:e.commandsFloor},...e.commandStats===void 0?{}:{commandStats:{...e.commandStats}},spans:e.spans.map(e=>({...e}))},r=Math.max(0,e.surface.length-t.maxNodes),i=e.surface.slice(0,r),a=e.surface.slice(r),o=i.filter(e=>e.cat===`inject`||e.cat===`skill`);if(n.nodes=o.length>0?[...o,...a]:a,n.droppedNodes=r-o.length,n.droppedNodes>0){let e=0;for(let t of i)t.cat!==`inject`&&t.cat!==`skill`&&(e=Math.max(e,t.seq));n.surfaceFloor=e}e.archiveFloor!==void 0&&(n.archiveFloor=e.archiveFloor);let s=n.requests,c=n.events,l=0;for(let e of c){for(;l<s.length&&s[l].seq<=e.seq;)l++;let t=s.at(l),n=l>0?s.at(l-1):void 0;t!==void 0&&typeof t.turn==`number`&&typeof t.step==`number`&&(e.turn=t.turn,e.step=t.step),n!==void 0&&typeof n.turn==`number`&&typeof n.step==`number`&&(e.fromTurn=n.turn,e.fromStep=n.step)}return n}function bt(e){let t=vt(e),n=new Set;for(let t of e.requests)n.add(t.turn??0);let r=0,i=0,a=0,o=new Set;for(let t of e.events)t.kind===`inject`?r++:t.kind===`compaction`?i++:t.kind===`prune`&&a++,t.sub===`skill`&&typeof t.name==`string`&&t.name!==``&&o.add(t.name);t.counts={turns:n.size,steps:e.requests.length,injects:r,compactions:i,prunes:a,skills:o.size};let s=e.requests.at(-1);return s!==void 0&&(t.last={seq:s.seq,total:s.total,...typeof s.prompt==`number`?{prompt:s.prompt}:{}}),t.detailRev=e.detailRev??0,t}function xt(e,t){return{rev:e.detailRev??0,head:bt(e),...yt(e,t)}}function St(e,t){return{...vt(e),...yt(e,t)}}function Ct(e,t){if(e===`assistant/message`)return`assistant`;if(e===`tool/result`)return`tool`;if(e===`developer/message`)return`inject`;let n=t?.source?.kind;return n===`skill-invocation`||n===`skill-catalog`?`skill`:ye(t?.source)?`inject`:`user`}function A(e){e.detailRev=(e.detailRev??0)+1}function wt(e){for(let t=e.length-1;t>=0;t--)if(e[t].tokens>0)return e[t].tokens;return 0}function Tt(e,t){let n=[...e.systems??[],t];e.systems=n.length>8?n.slice(-8):n,e.systemTokens=wt(e.systems)}function Et(e){if(typeof e==`string`)return e;if(e!=null)try{return JSON.stringify(e)}catch{return}}function Dt(e,t){for(let n of t)e.fileOps.push(n)}function Ot(e,t,n){let r=e.pendingCodeOps??{},i=0;for(let e in r)i+=r[e].length;i+n.length>200||(e.pendingCodeOps={...r,[t]:[...r[t]??[],...n]})}function kt(e,t,n){for(let r of t)e.archived.push({...r,gone:n})}function At(e,t,n){if(t.size===0)return[];let r=[],i=[];for(let n of e.surface)t.has(n.seq)?(e.sums[n.cat]-=n.tokens,i.push(n)):r.push(n);return kt(e,i,n),e.surface=r,i}function jt(e){let t=e?.message;return typeof t==`object`&&t?t:null}function Mt(e){if(!Array.isArray(e))return``;for(let t of e){if(typeof t!=`object`||!t)continue;let e=t;if(e.type===`text`&&typeof e.text==`string`&&e.text!==``)return e.text}return``}function Nt(e){let t=Mt(typeof e==`object`&&e?e.content:void 0).match(/<skill_content\s+name="([^"]+)"/);return t===null?``:t[1]}function j(e,t,n,r){let i=Ct(n,r??void 0),a={seq:t.seq,time:t.time,cat:i,tokens:me(r,n===`assistant/message`||n===`developer/message`)},o=ge(r?.content);o>0&&(a.imgs=o);let s=r?.source,c=s?.form;if(typeof c==`string`&&(a.form=c),n===`assistant/message`){let e=y(r?.content);if(e!==``)a.text=e;else{let e=_e(r?.content);e.length>0&&(a.calls=e.slice(0,3))}}else if(n===`tool/result`){let n=s?.callId,i=typeof n==`string`&&Object.hasOwn(e.callNames,n)?e.callNames[n]:void 0;if(i!==void 0){a.tool=i.name;let n=pt(e),r=k(i.start,t.time);n.toolsMs+=r,n.toolCalls+=1,gt(n,i.name,r),e.stepStart!==void 0&&(e.stepSpans=[...e.stepSpans??[],{kind:`tools`,start:i.start,end:t.time}])}if(typeof n==`string`){let t={};for(let r in e.callNames)r!==n&&(t[r]=e.callNames[r]);e.callNames=t}r?.isError===!0&&(a.err=!0)}else if(s?.kind===`skill-invocation`)a.skill=typeof s.name==`string`?s.name:`?`;else if(s?.kind===`plugin`){if(s.form===`notice`&&typeof s.summary==`string`)a.text=s.summary;else if(s.form===`snapshot`&&Array.isArray(s.sections))a.text=s.sections.map(e=>e?.name).filter(Boolean).join(`, `).slice(0,80);else{let e=y(r?.content);e!==``&&(a.text=e)}}else{let e=y(r?.content);e!==``&&(a.text=e)}let l=e.pendingShadowedSeqs,u=e.pendingShadowEventSeq;delete e.pendingShadowedSeqs,delete e.pendingShadowEventSeq;let d=Ee(t.surfaceOp);if(d!==null){if(Array.isArray(l)&&l.length>0){let n=At(e,new Set(l),t.seq);if(e.sums[i]+=a.tokens,e.surface.push(a),u!==void 0){let t=n.reduce((e,t)=>e+t.tokens,0),r=e.events.findIndex(e=>e.seq===u);r>=0&&(e.events[r]={...e.events[r],tokens:Math.max(0,t-a.tokens)})}return a}let n=-1,r=-1;for(let t=0;t<e.surface.length;t++)if(n<0&&e.surface[t].seq===d.start&&(n=t),e.surface[t].seq===d.end){r=t;break}if(n>=0&&r>=n){let o=e.surface.splice(n,r-n+1,a);kt(e,o,t.seq);for(let t of o)e.sums[t.cat]-=t.tokens;return e.sums[i]+=a.tokens,a}}return e.surface.push(a),e.sums[i]+=a.tokens,a}const Pt=`ask_user_question`,Ft=[`surface`,`sums`,`requests`,`events`,`archived`,`callNames`,`fileOps`,`timing`,`commands`];function It(e,t,r){let i,a=(t=Ft)=>{i={...e};for(let n of t)n===`surface`?i.surface=[...e.surface]:n===`sums`?i.sums={...e.sums}:n===`requests`?i.requests=[...e.requests]:n===`events`?i.events=[...e.events]:n===`archived`?i.archived=[...e.archived]:n===`callNames`?i.callNames={...e.callNames}:n===`fileOps`?i.fileOps=[...e.fileOps]:n===`commands`?i.commands=[...e.commands]:e.timing!==void 0&&(i.timing={...e.timing,tools:{...e.timing.tools}});return i},o=t.data;try{switch(t.type){case`request/header`:{let e=o?.header??{},n=Array.isArray(e.tools)?e.tools:[],r=a([`events`]);r.toolsTokens=fe(n),e.config&&typeof e.config.model==`string`&&(r.model=e.config.model),e.config&&typeof e.config.provider==`string`&&(r.provider=e.config.provider);let i=e.config?.maxTokens;typeof i==`number`&&Number.isFinite(i)&&i>0?r.maxOutputTokens=i:delete r.maxOutputTokens,(o?.reason===`change`||o?.reason===`resume`)&&r.model&&r.lastModel&&r.model!==r.lastModel&&(r.events.push({seq:t.seq,time:t.time,kind:`model`,from:r.lastModel,to:r.model}),A(r)),r.model&&(r.lastModel=r.model);break}case`system/message`:{let e=a([`surface`,`sums`,`archived`]);delete e.pendingShadowedSeqs,delete e.pendingShadowEventSeq;let n=Ee(t.surfaceOp);if(n!==null){e.systems=(e.systems??[]).filter(e=>e.seq<n.start||e.seq>n.end);let r=new Set;for(let t of e.surface)t.seq>=n.start&&t.seq<=n.end&&r.add(t.seq);At(e,r,t.seq).length>0&&A(e)}Tt(e,{seq:t.seq,time:t.time,tokens:ae(jt(o)?.content)});break}case`request/context`:{let e=a([]);o&&typeof o.contextWindow==`number`&&(e.contextWindow=o.contextWindow),o&&typeof o.model==`string`&&(e.model=o.model),o&&typeof o.provider==`string`&&(e.provider=o.provider);break}case`tool/call`:if(o&&typeof o.callId==`string`&&typeof o.name==`string`){let e=C(o.name),n=a(e===null?[`callNames`]:[`callNames`,`commands`]),i=Ae(o.name)?Et(o.arguments):void 0;if(o.callId!==`__proto__`&&(n.callNames[o.callId]={name:o.name,start:t.time,...i===void 0?{}:{argsRaw:i}}),e!==null){let i=Ve(e,o.arguments,r.maxCommandChars);i!==null&&(n.commands.push(Ze({seq:t.seq,time:t.time,tool:e,parsed:i,turn:o.turn,step:o.step,call:o.callId})),i.background===!0&&E(n),A(n))}}break;case`job/registered`:{let t=Qe(o),n=o?.startedAt;if(t===void 0||typeof n!=`number`||!Number.isFinite(n))return e;let r=T(e.commands,t);if(r>=0){let e=a([`commands`]);e.commands[r]={...e.commands[r],start:n},A(e);break}if(e.pendingCodeCmds===void 0||!et(a([]),e.pendingCodeCmds,t,e=>({...e,start:n})))return e;break}case`job/settled`:{let t=Qe(o),n=o?.finishedAt,r=o?.status;if(t===void 0||typeof n!=`number`||!Number.isFinite(n)||r!==`completed`&&r!==`killed`&&r!==`failed`)return e;let i=T(e.commands,t);if(i>=0){let e=a([`commands`]);Ye(e,i,$e(e.commands[i],r,n,o?.detail)),A(e);break}let s=e.pendingCodeCmds;if(s===void 0||!et(a([]),s,t,e=>$e(e,r,n,o?.detail)))return e;break}case`tool/ptc-dispatch-start`:{let n=o?.rootCallId,i=o?.subCallId,s=C(typeof o?.name==`string`?o.name:void 0);if(typeof n!=`string`||typeof i!=`string`||s===null)return e;let c=Ve(s,o?.arguments,r.maxCommandChars);if(c===null)return e;let l=e.pendingCodeCmds??{},u=0;for(let e in l)u+=l[e].length;if(u+1>200)return e;let d=Ze({seq:t.seq,time:t.time,tool:s,parsed:c,codeMode:!0,call:i}),f=a([]);c.background===!0&&E(f),f.pendingCodeCmds={...l,[n]:[...l[n]??[],d]};break}case`tool/ptc-dispatch`:{let n=o?.rootCallId,r=o?.name;if(typeof n==`string`&&typeof r==`string`){let i=o?.subCallId,s=typeof i==`string`?e.pendingCodeCmds?.[n]:void 0,c=s?.findIndex(e=>e.call===i)??-1,l=x(r)?Et(o?.arguments):void 0,u=ze({seq:t.seq,time:t.time,tool:r,argsRaw:l,err:o?.isError===!0});if(u.length>0||s!==void 0&&c>=0){let r=a([]);if(u.length>0&&Ot(r,n,u),s!==void 0&&c>=0){let i=s[c],a=qe(o?.content),l=Ue(a.at(-1)??``),u=o?.isError===!0,d={...i,...Xe(a,l),err:u};if(l.backgroundAck===!0)d.background=!0,i.background!==!0&&E(r);else{let e=Ke(l,u);d.status=e.status,e.exit!==void 0&&(d.exit=e.exit),e.exitInferred===!0&&(d.exitInferred=!0),d.end=t.time,d.derived=!0}let f=[...s];f[c]=d,r.pendingCodeCmds={...e.pendingCodeCmds,[n]:f}}}}break}case`assistant/attempt`:{let t=e.stepStart;if(t===void 0||t.firstToken!==void 0)return e;let n=Te(o?.stream);if(n===void 0)return e;let r=a([]);r.stepStart={time:t.time,firstToken:n};break}case`step/start`:{let e=a([]);e.stepStart={time:t.time},delete e.stepSpans,delete e.stepWaits,delete e.stepApprovals,delete e.stepRequestSeq;break}case`step/end`:{let n=e.stepStart;if(n===void 0)return e;let r=a(e.stepRequestSeq===void 0?[`timing`]:[`timing`,`requests`]);pt(r).wallMs+=k(n.time,t.time);let i=[...e.stepWaits??[]];for(let n in e.stepApprovals)i.push({start:e.stepApprovals[n],end:t.time});i.sort((e,t)=>e.start-t.start||e.end-t.end);let o=0,s=n.time;for(let e of i){let n=Math.max(s,e.start),r=Math.min(e.end,t.time);r>n&&(o+=r-n,s=r)}let c=k(n.time,t.time)-o,l=e.requests.at(-1);l!==void 0&&l.seq===e.stepRequestSeq&&(r.requests[r.requests.length-1]={...l,activeMs:c});let u=[];for(let r of e.stepSpans??[]){let e=Math.max(n.time,r.start),i=Math.min(t.time,r.end);i>e&&u.push({kind:r.kind,start:e,end:i})}u.sort((e,t)=>e.start-t.start||e.end-t.end);let d=[],f=n.time;for(let e of u){let t=Math.max(f,e.start);e.end<=t||(t>f&&d.push({kind:`other`,start:f,end:t}),d.push({kind:e.kind,start:t,end:e.end}),f=e.end)}t.time>f&&d.push({kind:`other`,start:f,end:t.time}),r.spans=[...e.spans,...d],delete r.stepStart,delete r.stepSpans,delete r.stepWaits,delete r.stepApprovals,delete r.stepRequestSeq,A(r);break}case`approval/asked`:{let n=o?.id;if(e.stepStart===void 0||typeof n!=`string`)return e;let r=a([]);r.stepApprovals={...e.stepApprovals,[n]:t.time};break}case`approval/decided`:{let n=o?.id,r=e.stepApprovals,i=typeof n==`string`?r?.[n]:void 0;if(r===void 0||i===void 0)return e;let s=a([]);s.stepWaits=[...e.stepWaits??[],{start:i,end:t.time}];let c={};for(let e in r)e!==n&&(c[e]=r[e]);Object.keys(c).length>0?s.stepApprovals=c:delete s.stepApprovals;break}case`user/message`:case`developer/message`:{let r=t.type===`developer/message`,i=r?jt(o):n(t);if(r&&(i===null||!Array.isArray(i.content)))return e;let s=a([`surface`,`sums`,`archived`,`events`]);A(s);let c=j(s,t,t.type,i),l=i?.source;if(r||ye(l)){let e={seq:t.seq,time:t.time,kind:`inject`,form:typeof l?.form==`string`&&l.form!==``?l.form:`context`,tokens:c.tokens};if(l?.kind===`skill-invocation`)e.sub=`skill`,e.name=typeof l.name==`string`?l.name:`?`;else{let t=ve(l);t!==``&&(e.name=t,c.name=t),l?.form===`notice`&&typeof l.summary==`string`&&l.summary!==``&&(e.detail=l.summary)}s.events.push(e)}else s.humanInputs=(s.humanInputs??0)+1,c.text!==void 0&&c.text!==``&&(s.lastUser=c.text);break}case`tool/result`:{let r=n(t),i=r?.source?.callId,s=typeof i==`string`&&Object.hasOwn(e.callNames,i)?e.callNames[i]:void 0,c=typeof i==`string`?e.pendingCodeOps?.[i]:void 0,l=typeof i==`string`?e.pendingCodeCmds?.[i]:void 0,u=a([`surface`,`sums`,`archived`,`events`,`fileOps`,`timing`,`commands`]);A(u);let d=j(u,t,t.type,r);if(d.tool===Pt&&(u.humanInputs=(u.humanInputs??0)+1),s!==void 0&&s.name===Pt&&e.stepStart!==void 0&&(u.stepWaits=[...e.stepWaits??[],{start:s.start,end:t.time}]),s!==void 0&&(Dt(u,ze({seq:t.seq,time:t.time,tool:s.name,argsRaw:s.argsRaw,meta:o?.meta,err:r?.isError===!0})),typeof i==`string`&&C(s.name)!==null)){let e=T(u.commands,i);if(e>=0){let n=u.commands[e],i=qe(r?.content),a=Ue(i.at(-1)??``),s=r?.isError===!0,c={...n,...Xe(i,a),resultSeq:t.seq,err:s};a.exit!==void 0&&delete c.exitInferred;let l=o?.meta?.cwd;if(typeof l==`string`&&l!==``&&(c.cwd=l),a.backgroundAck===!0)c.background=!0,n.background!==!0&&E(u);else if(n.status===`running`){let e=Ke(a,s);c.status=e.status,n.tool!==`run_code`&&(e.exit!==void 0&&(c.exit=e.exit),e.exitInferred===!0&&(c.exitInferred=!0)),c.end=t.time,c.derived=!0}Ye(u,e,c)}}if(c!==void 0&&c.length>0){let e=b(s?.argsRaw)?.description;Dt(u,c.map(n=>({...n,parent:t.seq,...typeof e==`string`&&e!==``?{program:e}:{}})));let n={};for(let e in u.pendingCodeOps)e!==i&&(n[e]=u.pendingCodeOps[e]);Object.keys(n).length>0?u.pendingCodeOps=n:delete u.pendingCodeOps}if(l!==void 0&&l.length>0){for(let e of l){let n={...e,parent:t.seq};u.commands.push(n),n.status!==`running`&&Je(u,n)}let e={};for(let t in u.pendingCodeCmds)t!==i&&(e[t]=u.pendingCodeCmds[t]);Object.keys(e).length>0?u.pendingCodeCmds=e:delete u.pendingCodeCmds}if(d.tool===`skill`||d.tool===void 0){let e=Nt(r);e!==``&&(d.skill=e,d.tool===void 0&&(d.tool=`skill`),u.sums.tool-=d.tokens,d.cat=`skill`,u.sums.skill+=d.tokens,u.events.push({seq:t.seq,time:t.time,kind:`inject`,form:`instructions`,sub:`skill`,name:e,tokens:d.tokens}))}break}case`assistant/message`:{let r=o?.usage,i=a([`surface`,`sums`,`archived`,`events`,`requests`,`timing`]);A(i);let s=i.systemTokens+i.toolsTokens+i.sums.user+i.sums.inject+i.sums.skill+i.sums.assistant+i.sums.tool,c={time:t.time,seq:t.seq,system:i.systemTokens,tools:i.toolsTokens,user:i.sums.user,inject:i.sums.inject,skill:i.sums.skill,assistant:i.sums.assistant,tool:i.sums.tool,total:s};o&&typeof o.turn==`number`&&(c.turn=o.turn),o&&typeof o.step==`number`&&(c.step=o.step),e.stepStart!==void 0&&(i.stepRequestSeq=c.seq);let l=null;if(typeof r==`object`&&r){let e=O(r.inputTokens),n=O(r.cacheReadTokens),a=O(r.cacheWriteTokens);l=O(r.outputTokens),(e!==null||n!==null||a!==null||l!==null)&&(c.prompt=(e??0)+(n??0)+(a??0),n!==null&&(c.cacheRead=n),l!==null&&(c.output=l),dt(i,t.time,{uncached:e??0,cacheRead:n??0,cacheWrite:a??0,output:l??0}))}i.requests.push(c);let u=e.requests.at(-1);i.turnRuns=(e.turnRuns??D(e.requests))+(u===void 0?c.turn===void 0?0:1:c.turn===u.turn?0:1);let d=pt(i);d.calls+=1;let f=e.stepStart;if(f!==void 0){let e=f.firstToken??Te(o?.stream);if(e!==void 0){let n=Ce(o?.stream,t.time),r=e;for(let e of n)r=Math.min(r,e.start);d.ttftMs+=k(f.time,r),d.genMs+=k(r,t.time);let a=[{kind:`ttft`,start:f.time,end:r}];for(let e of n){let n=Math.min(t.time,e.end);n<=e.start||a.push({kind:e.kind,start:a.length===1?r:e.start,end:n})}i.stepSpans=[...i.stepSpans??[],...a],l!==null&&(d.speedMs=(d.speedMs??0)+k(e,t.time),d.speedTokens=(d.speedTokens??0)+l);let s=Se(o?.stream,t.time);for(let e of ft)ht(d,e,s.spans[e],s.blocks[e])}}let p=n(t);j(i,t,t.type,p).text!==void 0&&(i.answers=(i.answers??0)+1);break}case`session/end-seed`:{if(o?.inherited!==!0)break;let e=a([]);e.cost={};break}case`plan/mode`:if(o&&typeof o.active==`boolean`){let e=a([`events`]);e.events.push({seq:t.seq,time:t.time,kind:`mode`,name:o.active?`plan.on`:`plan.off`}),A(e)}break;case`compaction/summary`:case`compaction/prune`:{let e=a([`events`]);A(e),o&&Array.isArray(o.shadowedSeqs)&&(e.pendingShadowedSeqs=o.shadowedSeqs.filter(e=>typeof e==`number`),e.pendingShadowEventSeq=t.seq),e.events.push({seq:t.seq,time:t.time,kind:t.type===`compaction/summary`?`compaction`:`prune`,tokens:o&&typeof o.shadowedTokenCount==`number`?o.shadowedTokenCount:0,...t.type===`compaction/summary`&&o&&Array.isArray(o.shadowedSeqs)?{count:o.shadowedSeqs.length}:{}});break}default:return e}}catch{i=void 0}return i===void 0?e:(nt(i,r),i)}const M={maxRequestSteps:1500,maxKeptTurns:300,maxEvents:400,maxNodes:2e3,maxArchiveNodes:400,maxFileOps:400,maxCommands:400,maxCommandChars:4096};function N(e){let t=e.volatile;return typeof t==`function`?t.call(e):e}function P(e){return i.number().min(1).step(1).default(e)}const Lt=i.object({maxRequestSteps:P(M.maxRequestSteps),maxKeptTurns:P(M.maxKeptTurns),maxEvents:P(M.maxEvents),maxNodes:P(M.maxNodes),maxArchiveNodes:P(M.maxArchiveNodes),maxFileOps:P(M.maxFileOps),maxCommands:P(M.maxCommands),maxCommandChars:P(M.maxCommandChars),defaultPlacement:N(i.union([`all`,`tab`,`sidebar`,`hide`]).default(`all`).loose()),defaultGranularity:N(i.union([`step`,`turn`]).default(`step`).loose()),defaultTrendMode:N(i.union([`total`,`delta`]).default(`total`).loose()),defaultDeltaBase:N(i.union([`step`,`turn`]).default(`step`).loose()),defaultToolSort:N(i.union([`size`,`count`,`name`]).default(`count`).loose()),defaultFileSort:N(i.union([`count`,`lines`,`latest`,`path`,`name`]).default(`lines`).loose()),insightsEntry:N(i.union([`show`,`hide`]).default(`show`).loose()),defaultDurationCurve:N(i.union([`show`,`hide`]).default(`show`).loose()),overviewAutoSteps:N(i.union([`100`,`200`,`300`,`off`]).default(`200`).loose()),defaultOverviewRange:N(i.union([`today`,`7d`,`30d`,`all`]).default(`30d`).loose()),fleetTab:N(i.union([`show`,`hide`]).default(`show`).loose()),promptPrefix:N(i.string().default(``).loose()),promptSuffix:N(i.string().default(``).loose())});function Rt(e){let t=Lt(e??{});return{maxRequestSteps:t.maxRequestSteps,maxKeptTurns:t.maxKeptTurns,maxEvents:t.maxEvents,maxNodes:t.maxNodes,maxArchiveNodes:t.maxArchiveNodes,maxFileOps:t.maxFileOps,maxCommands:t.maxCommands,maxCommandChars:t.maxCommandChars}}const F=t.object({seq:t.number().int().nonnegative(),time:t.number().optional(),cat:t.enum([`user`,`inject`,`skill`,`assistant`,`tool`]),tokens:t.number().int().nonnegative(),imgs:t.number().int().nonnegative().optional(),gone:t.number().int().nonnegative().optional(),form:t.string().optional(),name:t.string().optional(),text:t.string().optional(),tool:t.string().optional(),err:t.boolean().optional(),skill:t.string().optional(),calls:t.array(t.string()).optional()}).strict(),zt=t.object({seq:t.number().int().nonnegative(),time:t.number(),tokens:t.number().int().nonnegative()}).strict(),Bt=t.object({turn:t.number().optional(),step:t.number().optional(),time:t.number(),seq:t.number(),system:t.number().int().nonnegative(),tools:t.number().int().nonnegative(),user:t.number().int().nonnegative(),inject:t.number().int().nonnegative(),assistant:t.number().int().nonnegative(),tool:t.number().int().nonnegative(),total:t.number().int().nonnegative(),prompt:t.number().int().nonnegative().optional(),skill:t.number().int().nonnegative().optional(),cacheRead:t.number().int().nonnegative().optional(),output:t.number().int().nonnegative().optional(),activeMs:t.number().nonnegative().optional(),stepCount:t.number().int().positive().optional()}).strict(),Vt=t.object({seq:t.number(),time:t.number(),kind:t.enum([`compaction`,`prune`,`inject`,`model`,`mode`]),form:t.string().optional(),tokens:t.number().optional(),count:t.number().optional(),sub:t.string().optional(),name:t.string().optional(),detail:t.string().optional(),from:t.string().optional(),to:t.string().optional(),fromTurn:t.number().optional(),fromStep:t.number().optional(),turn:t.number().optional(),step:t.number().optional()}).strict(),I=t.object({seq:t.number().int().nonnegative(),path:t.string(),kind:t.enum([`read`,`write`,`search`]),tool:t.string(),time:t.number().optional(),err:t.boolean(),added:t.number().int().nonnegative(),removed:t.number().int().nonnegative(),detail:t.string().optional(),hits:t.number().int().positive().optional(),read:t.union([t.object({start:t.number().int().positive(),count:t.number().int().nonnegative()}).strict(),t.object({count:t.number().int().positive(),est:t.literal(!0)}).strict()]).optional(),parent:t.number().int().nonnegative().optional(),program:t.string().optional(),pattern:t.literal(!0).optional(),gone:t.number().int().nonnegative().optional()}).strict(),Ht=t.object({seq:t.number().int().nonnegative(),resultSeq:t.number().int().nonnegative().optional(),time:t.number(),tool:t.string(),cmd:t.string(),cmdTruncated:t.literal(!0).optional(),description:t.string().optional(),cwd:t.string().optional(),timeoutMs:t.number().positive().optional(),background:t.literal(!0).optional(),sandbox:t.string().optional(),codeMode:t.literal(!0).optional(),parent:t.number().int().nonnegative().optional(),turn:t.number().optional(),step:t.number().optional(),start:t.number(),end:t.number().optional(),status:t.enum([`running`,`completed`,`failed`,`killed`]),exit:t.number().int().optional(),exitInferred:t.literal(!0).optional(),signal:t.string().optional(),timedOut:t.literal(!0).optional(),stopped:t.literal(!0).optional(),denied:t.literal(!0).optional(),err:t.boolean(),outChars:t.number().int().nonnegative().optional(),outTruncated:t.literal(!0).optional(),stderr:t.literal(!0).optional(),derived:t.literal(!0).optional(),gone:t.number().int().nonnegative().optional()}).strict(),Ut=Ht.extend({call:t.string().optional()}).strict(),Wt=t.object({runs:t.number().int().nonnegative(),failed:t.number().int().nonnegative(),ms:t.number().nonnegative(),bg:t.number().int().nonnegative()}).strict(),Gt=t.object({kind:t.enum([`ttft`,`reasoning`,`text`,`toolarg`,`tools`,`other`]),start:t.number(),end:t.number()}).strict(),Kt=t.object({system:t.number().int().nonnegative(),tools:t.number().int().nonnegative(),user:t.number().int().nonnegative(),inject:t.number().int().nonnegative(),skill:t.number().int().nonnegative(),assistant:t.number().int().nonnegative(),tool:t.number().int().nonnegative(),total:t.number().int().nonnegative()}).strict(),qt=t.object({uncached:t.number().int().nonnegative(),cacheRead:t.number().int().nonnegative(),cacheWrite:t.number().int().nonnegative(),output:t.number().int().nonnegative()}).strict(),Jt=t.object({peak:qt.optional(),off:qt.optional()}).strict(),Yt=t.record(t.string(),Jt),Xt=t.record(t.string(),Yt),Zt=t.object({calls:t.number().int().nonnegative(),ms:t.number().nonnegative()}).strict(),Qt=t.object({wallMs:t.number().nonnegative(),ttftMs:t.number().nonnegative(),genMs:t.number().nonnegative(),reasoningMs:t.number().nonnegative().optional(),reasoningBlocks:t.number().int().nonnegative().optional(),textMs:t.number().nonnegative().optional(),textBlocks:t.number().int().nonnegative().optional(),toolArgMs:t.number().nonnegative().optional(),toolArgBlocks:t.number().int().nonnegative().optional(),speedTokens:t.number().nonnegative().optional(),speedMs:t.number().nonnegative().optional(),calls:t.number().int().nonnegative(),toolsMs:t.number().nonnegative(),toolCalls:t.number().int().nonnegative(),tools:t.record(t.string(),Zt)}).strict(),$t=t.object({current:t.string(),minimum:t.string()}).strict(),en=t.object({turns:t.number().int().nonnegative(),steps:t.number().int().nonnegative(),injects:t.number().int().nonnegative(),compactions:t.number().int().nonnegative(),prunes:t.number().int().nonnegative(),skills:t.number().int().nonnegative().optional()}).strict(),tn=t.object({seq:t.number(),total:t.number().int().nonnegative(),prompt:t.number().int().nonnegative().optional()}).strict(),nn=t.object({ok:t.literal(!0),unsupported:$t.optional(),model:t.string().optional(),provider:t.string().optional(),contextWindow:t.number().optional(),maxOutputTokens:t.number().positive().optional(),current:Kt,images:t.number().int().nonnegative().optional(),toolCalls:t.number().int().nonnegative().optional(),humanInputs:t.number().int().nonnegative().optional(),answers:t.number().int().nonnegative().optional(),lastUser:t.string().optional(),counts:en.optional(),last:tn.optional(),detailRev:t.number().int().nonnegative().optional(),requests:t.array(Bt).optional(),events:t.array(Vt).optional(),cost:Xt.optional(),timing:Qt.optional(),systems:t.array(zt).optional(),nodes:t.array(F).optional(),droppedNodes:t.number().int().nonnegative().optional(),archive:t.array(F).optional(),surfaceFloor:t.number().int().nonnegative().optional(),archiveFloor:t.number().int().nonnegative().optional(),fileOps:t.array(I).optional(),fileOpsFloor:t.number().int().nonnegative().optional(),commands:t.array(Ht).optional(),commandsFloor:t.number().int().nonnegative().optional(),commandStats:Wt.optional(),spans:t.array(Gt).optional()}).strict(),rn=t.object({surface:t.array(F),sums:t.object({user:t.number().int().nonnegative(),inject:t.number().int().nonnegative(),skill:t.number().int().nonnegative(),assistant:t.number().int().nonnegative(),tool:t.number().int().nonnegative()}).strict(),systemTokens:t.number().int().nonnegative(),systems:t.array(zt).optional(),toolsTokens:t.number().int().nonnegative(),model:t.string().optional(),provider:t.string().optional(),lastModel:t.string().optional(),contextWindow:t.number().optional(),maxOutputTokens:t.number().positive().optional(),requests:t.array(Bt),turnRuns:t.number().int().nonnegative().optional(),events:t.array(Vt),archived:t.array(F),cost:Xt.optional(),archiveFloor:t.number().optional(),timing:Qt.optional(),humanInputs:t.number().int().nonnegative().optional(),answers:t.number().int().nonnegative().optional(),lastUser:t.string().optional(),stepStart:t.object({time:t.number(),firstToken:t.number().optional()}).strict().optional(),stepWaits:t.array(t.object({start:t.number(),end:t.number()}).strict()).optional(),stepApprovals:t.record(t.string(),t.number()).optional(),stepRequestSeq:t.number().optional(),callNames:t.record(t.string(),t.object({name:t.string(),start:t.number(),argsRaw:t.string().optional()}).strict()),pendingShadowedSeqs:t.array(t.number()).optional(),pendingShadowEventSeq:t.number().optional(),detailRev:t.number().int().nonnegative().optional(),fileOps:t.array(I),fileOpsFloor:t.number().int().nonnegative().optional(),commands:t.array(Ut),commandsFloor:t.number().int().nonnegative().optional(),commandStats:Wt.optional(),pendingCodeCmds:t.record(t.string(),t.array(Ut)).optional(),spans:t.array(Gt),stepSpans:t.array(Gt).optional(),pendingCodeOps:t.record(t.string(),t.array(I)).optional()});function an(e,t){let n=Rt(e);return{key:`contextTimeline`,stateSchema:rn,wire:{viewSchema:nn,view:e=>t()?bt(e):St(e,n)},init:()=>it(),apply:(e,t)=>It(e,t,n),stateVersion:30}}function L(e){if(!Number.isFinite(e))return null;let t=new Date(e),n=t.getFullYear();return!Number.isFinite(n)||n<1970||n>9999?null:`${String(n).padStart(4,`0`)}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}const on=t.object({n:t.number().int().nonnegative(),last:t.number()}).strict(),sn=t.object({start:t.number().nonnegative(),day:t.string()}).strict(),cn=t.object({tokens:t.number().int().nonnegative(),requests:t.number().int().nonnegative(),cost:Xt.optional(),turns:t.number().int().nonnegative().optional(),toolCalls:t.number().int().nonnegative().optional(),toolsMs:t.number().nonnegative().optional(),wallMs:t.number().nonnegative().optional(),skills:t.record(t.string(),on).optional()}).strict(),ln=t.object({days:t.record(t.string(),cn)}).strict(),un=t.object({days:t.record(t.string(),cn),model:t.string().optional(),provider:t.string().optional(),stepStart:t.number().optional(),lastTurn:t.number().optional(),toolStarts:t.record(t.string(),sn).optional(),skillCalls:t.array(t.string()).optional()});function dn(e){if(typeof e!=`object`||!e)return null;let t=e,n=O(t.inputTokens),r=O(t.cacheReadTokens),i=O(t.cacheWriteTokens),a=O(t.outputTokens);return n===null&&r===null&&i===null&&a===null?null:{uncached:n??0,cacheRead:r??0,cacheWrite:i??0,output:a??0}}function R(e,t,n){let r={...e.days,[t]:n},i=Object.keys(r);if(i.length>400){i.sort();let e=new Set(i.slice(0,i.length-400));r=Object.fromEntries(Object.entries(r).filter(([t])=>!e.has(t)))}return{...e,days:r}}function fn(e){return{tokens:e?.tokens??0,requests:e?.requests??0,...e?.cost===void 0?{}:{cost:e.cost},...e?.turns===void 0?{}:{turns:e.turns},...e?.toolCalls===void 0?{}:{toolCalls:e.toolCalls},...e?.toolsMs===void 0?{}:{toolsMs:e.toolsMs},...e?.wallMs===void 0?{}:{wallMs:e.wallMs},...e?.skills===void 0?{}:{skills:e.skills}}}function pn(e,t,n){return R(e,t,{...fn(e.days[t]),...n})}function mn(e,t,n){if(!Number.isFinite(n)||n<0)return e;let r=L(e.stepStart??n);if(r===null)return e;let i=e.toolStarts?.[t];if(i!==void 0&&i.start===n&&i.day===r)return e;let a={...e.toolStarts,[t]:{start:n,day:r}},o=Object.entries(a),s=o.length>100?Object.fromEntries(o.slice(o.length-100)):a;return{...e,toolStarts:s}}function hn(e,t,n){let r=e.toolStarts,i=r?.[t];if(r===void 0||i===void 0)return e;let a=e.days[i.day],o=pn(e,i.day,{toolCalls:(a?.toolCalls??0)+1,toolsMs:(a?.toolsMs??0)+k(i.start,n)}),s=Object.fromEntries(Object.entries(r).filter(([e])=>e!==t)),c={...o};return Object.keys(s).length>0?c.toolStarts=s:delete c.toolStarts,c}function gn(e,t,n){let r=L(n);if(r===null)return e;let i=e.days[r],a=i?.skills?.[t];if(a===void 0&&i?.skills!==void 0&&Object.keys(i.skills).length>=100)return e;let o={...i?.skills,[t]:{n:(a?.n??0)+1,last:a===void 0?n:Math.max(a.last,n)}};return R(e,r,{...fn(i),skills:o})}function _n(e){let t=e.data,n=e.type===`developer/message`?t?.message:t,r=typeof n==`object`&&n?n.source:void 0;if(typeof r!=`object`||!r)return``;let i=r;return i.kind===`skill-invocation`&&typeof i.name==`string`?i.name:``}function vn(e){if(typeof e!=`object`||!e)return null;let t=e;if(typeof t.toolCallId==`string`&&t.toolCallId!==``)return t.toolCallId;let n=t.source;if(typeof n!=`object`||!n)return null;let r=n.callId;return typeof r==`string`&&r!==``?r:null}function yn(e,t){if(t.type===`request/header`){let n=t.data?.header?.config;if(typeof n!=`object`||!n)return e;let r=typeof n.model==`string`?n.model:void 0,i=typeof n.provider==`string`?n.provider:void 0,a=r===void 0?e.model:r,o=i===void 0?e.provider:i;return a===e.model&&o===e.provider?e:{...e,...a===void 0?{}:{model:a},...o===void 0?{}:{provider:o}}}if(t.type===`step/start`)return Number.isFinite(t.time)?e.stepStart===t.time?e:{...e,stepStart:t.time}:e;if(t.type===`step/end`){let n=e.stepStart;if(n===void 0)return e;let r=L(n),i=k(n,t.time),a={...r===null||i<=0?e:pn(e,r,{wallMs:(e.days[r]?.wallMs??0)+i})};return delete a.stepStart,a}if(t.type===`session/end-seed`)return t.data?.inherited===!0?{days:{}}:e;if(t.type===`user/message`||t.type===`developer/message`){let n=_n(t);return n===``?e:gn(e,n,t.time)}if(t.type===`tool/call`){let n=t.data,r=n?.callId;if(typeof r!=`string`||r===``)return e;let i=mn(e,r,t.time);if(n?.name!==`skill`)return i;let a=i.skillCalls??[];return a.includes(r)?i:{...i,skillCalls:[...a,r].slice(-100)}}if(t.type===`tool/result`){let n=t.data?.message,r=vn(n),i=r===null?e:hn(e,r,t.time),a=i.skillCalls;if(r===null||a===void 0||!a.includes(r))return i;let o=a.filter(e=>e!==r),s={...i};o.length>0?s.skillCalls=o:delete s.skillCalls;let c=Nt(n);return c===``?s:gn(s,c,t.time)}if(t.type!==`assistant/message`)return e;let n=e.stepStart===void 0?t.time:e.stepStart,r=L(n);if(r===null)return e;let i=t.data,a=dn(i?.usage),o=e.days[r],s=o?.cost;a!==null&&e.model!==void 0&&(s=lt(s,e.provider??``,e.model,n,a));let c=typeof i?.turn==`number`&&Number.isFinite(i.turn)?i.turn:void 0,l=c!==void 0&&c!==e.lastTurn,u=(o?.turns??0)+ +!!l,d=R(e,r,{tokens:(o===void 0?0:o.tokens)+(a===null?0:a.uncached+a.cacheRead+a.cacheWrite+a.output),requests:(o===void 0?0:o.requests)+1,...s===void 0?{}:{cost:s},...u>0?{turns:u}:{},...o?.toolCalls===void 0?{}:{toolCalls:o.toolCalls},...o?.toolsMs===void 0?{}:{toolsMs:o.toolsMs},...o?.wallMs===void 0?{}:{wallMs:o.wallMs},...o?.skills===void 0?{}:{skills:o.skills}});return l?{...d,lastTurn:c}:d}function bn(){return{key:`contextActivity`,stateSchema:un,init:()=>({days:{}}),apply:(e,t)=>yn(e,t),wire:{viewSchema:ln,view:e=>({days:Object.fromEntries(Object.entries(e.days).map(([e,t])=>[e,{...t,...t.cost===void 0?{}:{cost:ut(t.cost)},...t.skills===void 0?{}:{skills:Object.fromEntries(Object.entries(t.skills).map(([e,t])=>[e,{...t}]))}}]))})},stateVersion:5}}const xn=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`bmp`,`ico`,`svg`]);function Sn(e){return e.slice(Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`))+1)}function Cn(e){let t=Sn(e),n=t.lastIndexOf(`.`);return n<0?``:t.slice(n+1).toLowerCase()}function wn(e){return xn.has(Cn(e))}function z(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function Tn(e){if(typeof e!=`object`||!e)return;let t=e,n=z(t.width),r=z(t.height);return n!==void 0&&r!==void 0?{width:n,height:r}:void 0}function En(e){if(typeof e!=`object`||!e)return null;let t=e,n=typeof t.type==`string`?t.type:t.kind;if(n!==`image`&&n!==`file`||t.attachment===null||typeof t.attachment!=`object`)return null;let r=t.attachment;if(typeof r.attachmentId!=`string`||r.attachmentId===``)return null;let i=typeof r.name==`string`&&r.name!==``?r.name:void 0,a=z(r.bytes);if(n===`file`)return{kind:`file`,attachmentId:r.attachmentId,...i===void 0?{}:{name:i},...a===void 0?{}:{bytes:a}};let o=Tn(r.originalDimensions),s=z(r.width),c=z(r.height),l=typeof r.mediaType==`string`&&r.mediaType!==``?r.mediaType:void 0;return{kind:`image`,attachmentId:r.attachmentId,...i===void 0?{}:{name:i},...l===void 0?{}:{mediaType:l},...a===void 0?{}:{bytes:a},...s===void 0?{}:{width:s},...c===void 0?{}:{height:c},...o===void 0?{}:{originalDimensions:o}}}function Dn(){let e=m();return{used:e.used_heap_size,limit:e.heap_size_limit}}const On=()=>{};function B(e=Dn){let t=()=>{try{let{used:t,limit:n}=e();return!Number.isFinite(t)||!Number.isFinite(n)||n<=0||t<n*.6666666666666666}catch{return!0}},n=Promise.resolve();return{admit(e){let r=n.then(()=>t()?e():void 0);return n=r.then(On,On),r}}}function kn(e){return typeof e?.fetch?.register==`function`?e.fetch.register.bind(e.fetch):void 0}function V(e,t,n,r,i){let a=kn(t);if(a===void 0)return!1;try{e.effect(()=>a({path:n,methods:[`POST`],requestBody:`buffered`,fetch:r}),i)}catch{return!1}return!0}const An={"image/png":`png`,"image/jpeg":`jpg`,"image/webp":`webp`,"image/gif":`gif`};function H(e){return Response.json(e,{headers:{"cache-control":`no-store`}})}function U(e,t){return H({ok:!1,error:{code:e,message:t}})}function jn(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function W(e,t,n){if(n>8)return null;if(Array.isArray(e)){for(let r of e){let e=W(r,t,n+1);if(e!==null)return e}return null}if(typeof e!=`object`||!e)return null;let r=En(e);if(r!==null&&r.attachmentId===t)return r;for(let r of Object.values(e)){let e=W(r,t,n+1);if(e!==null)return e}return null}function Mn(e,t){for(let n of e)try{let e=W(n,t,0);if(e!==null)return e}catch{}return null}function Nn(e){let t=Sn(e.name??``);if(t!==``&&wn(t))return t;let n=e.mediaType===void 0?void 0:An[e.mediaType];return n===void 0?null:`attachment.${n}`}function Pn(e){let t=l(l(l(e)));return c(t)!==`v1`||c(l(t))!==`attachments`?null:d(l(l(t)),`cache`,`dsh-context`,`previews`)}function Fn(e,t){if(typeof e?.fileHostPath!=`function`)return null;try{let n=e.fileHostPath({attachmentId:t.attachmentId,name:t.name??``,bytes:t.bytes??0});return typeof n==`string`&&n!==``?n:null}catch{return null}}async function In(e,t){if(typeof e?.imageHostPath!=`function`)return null;let n;try{n=e.imageHostPath({attachmentId:t.attachmentId,...t.mediaType===void 0?{}:{mediaType:t.mediaType},...t.bytes===void 0?{}:{bytes:t.bytes},...t.width===void 0?{}:{width:t.width},...t.height===void 0?{}:{height:t.height},...t.name===void 0?{}:{name:t.name}})}catch{return null}if(typeof n!=`string`||n===``)return null;let r=Nn(t);if(r===null)return null;let i=Pn(n);if(i===null)return null;let u=d(i,c(l(n)),c(n),r);try{await s(l(u),{recursive:!0});try{await o(n,u)}catch(e){e instanceof Error&&`code`in e&&e.code===`EEXIST`||await a(n,u)}return u}catch{return null}}async function Ln(e,t){return t.kind===`file`?Fn(e,t):await In(e,t)}function Rn(e,t=B()){e.inject([`connection`],n=>{V(n,n.get(`connection`),`/api/dsh-context/attachment`,async n=>{let r,i;try{let e=jn(await n.json());r=e?.sessionId,i=e?.attachmentId}catch{return U(`dsh-context/bad-request`,`body is not JSON`)}if(typeof r!=`string`||r===``)return U(`dsh-context/bad-request`,`missing sessionId`);if(typeof i!=`string`||i===``)return U(`dsh-context/bad-request`,`missing attachmentId`);try{let n=e.get(`sessionQuery`),a=typeof n?.observeSession==`function`?n.observeSession.bind(n):void 0;if(a===void 0)return H({ok:!0,value:null});let o=e.get(`attachments`);return H({ok:!0,value:await t.admit(async()=>{let e=await a(r,{projectionMode:`none`});try{let t=e?.events;if(!Array.isArray(t))return null;let n=Mn(t,i);if(n===null)return null;let r=await Ln(o,n);return r===null?null:{path:r}}finally{let t=e?.[Symbol.dispose];typeof t==`function`&&t.call(e)}})??null})}catch(e){return U(`gateway/internal`,e instanceof Error?e.message:String(e))}},`dsh-context: attachment route`)})}function zn(e){if(!e.startsWith(`mcp__`))return;let t=e.lastIndexOf(`__`);if(t<5)return;let n=e.slice(5,t);return n.length>0?n:void 0}function Bn(e){let t=zn(e);return t===void 0?void 0:`mcp:${t}`}function Vn(e){return Hn[e]}const Hn=Object.freeze({read:`@deepseek-ai/dsh-tool-fs`,write:`@deepseek-ai/dsh-tool-fs`,edit:`@deepseek-ai/dsh-tool-fs`,read_image:`@deepseek-ai/dsh-tool-fs`,glob:`@deepseek-ai/dsh-tool-fs-search`,grep:`@deepseek-ai/dsh-tool-fs-search`,str_replace_editor:`@deepseek-ai/dsh-tool-str-replace-editor`,bash:`@deepseek-ai/dsh-tool-bash`,pwsh:`@deepseek-ai/dsh-tool-pwsh`,web_search:`@deepseek-ai/dsh-tool-web`,web_fetch:`@deepseek-ai/dsh-tool-web`,job_output:`@deepseek-ai/dsh-tool-jobs`,job_list:`@deepseek-ai/dsh-tool-jobs`,job_kill:`@deepseek-ai/dsh-tool-jobs`,ask_user_question:`@deepseek-ai/dsh-tool-ask-user`,plan:`@deepseek-ai/dsh-plan-mode`,exit_plan_mode:`@deepseek-ai/dsh-plan-mode`,skill:`@deepseek-ai/dsh-tool-skill`,todo_write:`@deepseek-ai/dsh-tool-todo`,subagent:`@deepseek-ai/dsh-tool-subagent`,subagent_fork:`@deepseek-ai/dsh-tool-subagent`,send_message:`@deepseek-ai/dsh-tool-subagent-control`,interrupt_agent:`@deepseek-ai/dsh-tool-subagent-control`,list_agents:`@deepseek-ai/dsh-tool-subagent-control`,ralph:`@deepseek-ai/dsh-tool-ralph`,workflow:`@deepseek-ai/dsh-tool-workflow`,run_code:`@deepseek-ai/dsh-tools`,schedule_create:`@deepseek-ai/dsh-schedule`,schedule_list:`@deepseek-ai/dsh-schedule`,schedule_delete:`@deepseek-ai/dsh-schedule`,create_goal:`@deepseek-ai/dsh-tool-goal`,get_goal:`@deepseek-ai/dsh-tool-goal`,update_goal:`@deepseek-ai/dsh-tool-goal`,lsp:`@deepseek-ai/dsh-tool-lsp`}),Un=f(g(import.meta.url)),G=new Map;function Wn(e){let t=l(e);for(let e=0;e<12;e++){let e=G.get(t);if(e!==void 0)return e;let n=d(t,`package.json`);if(h(n))try{let e=JSON.parse(ee(n,`utf8`)).name;if(typeof e==`string`&&e)return G.set(t,e),e}catch{}let r=l(t);if(G.set(t,void 0),r===t)return;t=r}}const Gn=/:\d+:\d+$/,Kn=Symbol.for(`cordis.original`);function qn(e){return e?.[Kn]??e}const Jn=Wn(Un);function Yn(e){if(e)for(let t of e.split(`
|
|
15
|
-
`).slice(1)){let e=t.trim();if(!e.startsWith(`at `))continue;e=e.slice(3),e.startsWith(`async `)&&(e=e.slice(6)),e=e.replace(/\)\s*$/,``);let n=Gn.exec(e);if(!n)continue;let r=e.slice(0,-n[0].length);if(r.includes(`(`)&&(r=r.slice(r.lastIndexOf(`(`)+1)),r.startsWith(`file://`))try{r=f(g(r))}catch{continue}else if(!/^[A-Za-z]:[\\/]/.test(r)&&!r.startsWith(`/`)&&!r.startsWith(`\\\\`))continue;else r=f(r);if(r===Un)continue;let i=Wn(r);if(i!==void 0&&i!==Jn)return i}}function Xn(e){let t=new Map,n=new WeakSet,r=e.fiber.name,i,a=[],o=e=>{if(!e||typeof e!=`object`||n.has(e))return;let o=e.register;if(typeof o!=`function`)return;n.add(e);let s=o.attributedOriginal??o;if(typeof s!=`function`)return;let c=e,l=function(e){let n=e?.name,a=i;(!a||a===`root`||a===r)&&(a=Yn(Error().stack));let o=s.call(this,e);return typeof n==`string`&&a&&a!==`root`&&a!==r&&a!==Jn&&(t.set(n,a),typeof o==`function`)?()=>{try{return o()}finally{t.delete(n)}}:o};l.attributedOriginal=s,c.register=l,a.push(()=>{c.register===l&&(c.register=s)})};e.on(`internal/get`,(e,t,n,r)=>{if(t!==`tools`)return r();let a=r();return i=e.fiber.name,o(qn(a)),a}),e.effect(()=>()=>{for(let e of a.splice(0))e()},`tools.register attribution`);let s=qn(e.get(`tools`,!1));o(s);let c=new Set;try{let e=s?.layers?.global?.tools;if(e!==void 0&&typeof e.entries==`function`)for(let[t]of e.entries())c.add(t)}catch{}return{ownerOf:e=>Bn(e)??t.get(e)??Vn(e)??(c.has(e)?`<unknown-plugin>`:void 0)}}function K(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}const Zn=[`llm-deepseek`,`web-deepseek-api`,`web-search-deepseek`],q=`https://api.deepseek.com`;function Qn(e){let t=typeof e==`string`?Number(e):e;return typeof t==`number`&&Number.isFinite(t)&&t>=0?t:null}function $n(e){let t=[],n=e.get(`llm`);if(typeof n?.listConfigurableProviders==`function`)try{let e=n.listConfigurableProviders();if(Array.isArray(e))for(let n of e)try{let e=K(n);if(e===null||e.provider!==`deepseek-official`)continue;let r=e.settingsNs;typeof r==`string`&&r!==``&&!t.includes(r)&&t.push(r)}catch{continue}}catch{}for(let e of Zn)t.includes(e)||t.push(e);return t}function er(e){let t=e.get(`settings`);if(typeof t?.describe!=`function`)return[];let n;try{n=t.describe({redactSecrets:!0})}catch{return[]}if(!Array.isArray(n))return[];let r=new Map;for(let e of n)try{let t=K(e);if(t===null)continue;let n=t.ns,i=K(t.value);if(typeof n!=`string`||i===null||r.has(n))continue;r.set(n,i)}catch{continue}let i=[];for(let t of $n(e)){let e=r.get(t);if(e===void 0)continue;let n=e.apiKeyEnv;if(typeof n!=`string`||n===``)continue;let a=e.baseURL;i.push({apiKeyEnv:n,baseURL:typeof a==`string`&&a!==``?a:void 0})}return i}function tr(e){if(e===void 0)return q;try{let t=new URL(e);return t.protocol!==`https:`&&t.protocol!==`http:`?q:t.origin}catch{return q}}async function nr(e){let t=e.get(`credentials`),n=typeof t?.resolve==`function`?t.resolve.bind(t):void 0;if(n===void 0)return null;let r=new Set;for(let t of er(e)){if(r.has(t.apiKeyEnv))continue;r.add(t.apiKeyEnv);let e;try{e=await n(t.apiKeyEnv)}catch{continue}let i=typeof e?.value==`string`?e.value:``;if(i!==``)return{baseUrl:tr(t.baseURL),apiKey:i}}return null}function rr(e){let t=K(e);if(t===null)return null;let n=Array.isArray(t.balance_infos)?t.balance_infos:[],r=[];for(let e of n)try{let t=K(e);if(t===null)continue;let n=t.currency,i=Qn(t.granted_balance),a=Qn(t.topped_up_balance);if(typeof n!=`string`||n===``||i===null||a===null)continue;r.push({currency:n,total:i+a,granted:i,toppedUp:a})}catch{continue}return r.length>0?{isAvailable:t.is_available===!0,balances:r}:null}let ir=(e,t)=>fetch(e,t),J=null;async function ar(e){if(J!==null)return J;J=(async()=>{let t=null;try{let n=await ir(e.baseUrl+`/user/balance`,{headers:{accept:`application/json`,authorization:`Bearer `+e.apiKey},signal:AbortSignal.timeout(1e4)});n.ok&&(t=rr(await n.json()))}catch{}return t})();let t=J;try{return await t}finally{J=null}}function or(e){e.inject([`connection`],t=>{V(t,t.get(`connection`),`/api/dsh-context/balance`,async()=>{let t=await nr(e),n=t===null?null:await ar(t);return Response.json({ok:!0,value:n},{headers:{"cache-control":`no-store`}})},`dsh-context: balance route`)})}const Y=2e3,sr={now:()=>te.now(),sleep:e=>new Promise(t=>setTimeout(t,e)),minRestMs:25,workBudgetMs:8e3,roundPauseMs:2e3};function cr(e){let t=K(K(e)?.header);return t===null||typeof t.id!=`string`||t.id===``?null:t}const lr=[`contextActivity`,`contextTimeline`];function ur(e,t){try{let n=K(K(e.cachedSnapshot(t,lr))?.values);return n!==null&&n.contextActivity!==void 0&&n.contextTimeline!==void 0}catch{return!1}}async function dr(e,t,n){let i=await e.open(t,`read`,{signal:n}),a;try{let e=K(await i.read(0,void 0,{signal:n}))?.events;a=Array.isArray(e)?e:[]}catch(e){try{await i.close()}catch{}throw e}return await i.close(),{header:i.header,inheritedEventCount:i.inheritedEventCount,events:[...a,...r(a)]}}function fr(e,t){if(e===null||typeof e.get!=`function`)return!1;try{return e.get(t)!==void 0}catch{return!0}}async function pr(e,t,n,r,i,a,o){let{header:s,inheritedEventCount:c,events:l}=r,u={},d=0;for(let e=Y;;e+=Y){let n=e>=l.length,r=o();u=K(t.restore(u,n?l:l.slice(0,e),0,s,c))?.checkpoint??{};let f=o()-r;if(d+=f,n)break;if(await a(f),i.aborted)return{outcome:`aborted`,workMs:d}}let f;try{f=t.prepare(s.id,{seed:l,meta:structuredClone(s),inheritedEventCount:c,eventState:`shared-frozen`})}catch(e){if(fr(n,s.id))return{outcome:`live`,workMs:d};throw e}t.hydrate(f,u,l,0);try{await t.write(f)}catch(t){e.logger.warn(`dsh-context: projection backfill write-back for "${s.id}" failed (cache stays stale): ${X(t)}`)}return{outcome:`done`,workMs:d}}function mr(e){try{return String(K(e)?.name).startsWith(`SessionFormatUnsupported`)}catch{return!1}}function X(e){try{return String(e)}catch{return`unprintable error`}}function hr(e,t=B(),n=sr){let r=!1,i=!1,a=null,o=()=>{r&&!i&&a!==null&&(i=!0,a())},s=e.inject([`connection`],e=>{V(e,e.get(`connection`),`/api/dsh-context/backfill`,()=>(r=!0,o(),Response.json({ok:!0},{headers:{"cache-control":`no-store`}})),`dsh-context: backfill route`)}),c=e.inject([`sessionQuery`,`sessionProjectionCache`,`sessionPersistence`,`sessions`],r=>{let i=r,s=K(i.sessionQuery),c=K(i.sessionProjectionCache),l=K(i.sessionPersistence);if(s===null||typeof s.listSessions!=`function`||c===null||typeof c.cachedSnapshot!=`function`||typeof c.coldSnapshot!=`function`||l===null||typeof l.open!=`function`)return;let u=K(i.sessions),d=K(e.sessionProjections),f=d!==null&&typeof d.restore==`function`&&typeof d.hydrate==`function`&&u!==null&&typeof u.prepare==`function`&&typeof c.write==`function`?{restore:d.restore.bind(d),hydrate:d.hydrate.bind(d),prepare:u.prepare.bind(u),write:c.write.bind(c)}:null,p=new AbortController,m=async()=>{let r=await s.listSessions(p.signal);if(!Array.isArray(r))return;let i=0,a=0,o=!1,d=0,m=async e=>{if(p.signal.aborted)return;let t;try{await Promise.race([n.sleep(e),new Promise(e=>{t=()=>{e()},p.signal.addEventListener(`abort`,t,{once:!0})})])}finally{p.signal.removeEventListener(`abort`,t)}},h=async t=>{if(d+=t,d>=n.workBudgetMs){d=0,e.logger.info(`dsh-context: projection backfill pausing after ${Math.round(n.workBudgetMs/1e3)}s of fold work; resuming in ${Math.round(n.roundPauseMs/1e3)}s`),await m(n.roundPauseMs);return}await m(Math.max(n.minRestMs,t))};for(let s of r){if(p.signal.aborted)return;let r=cr(s);if(r===null||typeof r.cwd!=`string`||fr(u,r.id)||ur(c,r))continue;let d=n.now(),m=0;try{let a=await t.admit(async()=>{let t=await dr(l,r.id,p.signal);if(f!==null&&t.events.length>Y){let r=await pr(e,f,u,t,p.signal,h,n.now);return m=r.workMs,r.outcome}return c.coldSnapshot(t.header,t.inheritedEventCount,t.events),`done`});if(a===void 0){o=!0;break}if(a===`aborted`)return;a===`done`&&i++}catch(t){mr(t)?(a++,e.logger.debug(`dsh-context: projection backfill skipped "${r.id}" (${X(t)})`)):e.logger.warn(`dsh-context: projection backfill skipped "${r.id}" (${X(t)})`)}await h(Math.max(0,n.now()-d-m))}i>0&&e.logger.info(`dsh-context: projection rows backfilled for ${i} session(s)`),o&&e.logger.info(`dsh-context: projection backfill stopped early under heap pressure (remaining sessions refold on their next live activity)`),a>0&&e.logger.info(`dsh-context: projection backfill skipped ${a} session(s) (legacy log format is not migratable; sources left unchanged)`)};return a=()=>{m().catch(t=>{p.signal.aborted||e.logger.warn(`dsh-context: projection backfill stopped early (${X(t)})`)})},o(),()=>{p.abort()}});return()=>{for(let e of[s,c])e?.dispose?.()}}function gr(e){let t=e?.revision;return typeof t==`string`&&t!==``?t:void 0}function _r(e){return Response.json(e,{headers:{"cache-control":`no-store`}})}function Z(e,t){return _r({ok:!1,error:{code:e,message:t}})}function vr(e,t,n=B()){let r={live:!1},i=new Map;return e.inject([`connection`,`sessions`],a=>{let o=a.get(`sessions`),s=typeof o?.get==`function`?o.get.bind(o):void 0;if(s===void 0)return;let c=e.sessionProjections;if(V(a,a.get(`connection`),`/api/dsh-context/detail`,async r=>{let a;try{let e=await r.json();a=typeof e==`object`&&e?e.sessionId:void 0}catch{return Z(`dsh-context/bad-request`,`body is not JSON`)}if(typeof a!=`string`||a===``)return Z(`dsh-context/bad-request`,`missing sessionId`);try{let r=s(a);if(r!=null){let e=c.stateOf(r,`contextTimeline`);return _r(e===void 0?{ok:!0,value:null}:{ok:!0,value:xt(e,t)})}let o=e.get(`sessionQuery`),l=typeof o?.observeSession==`function`?o.observeSession.bind(o):void 0;return _r(l===void 0?{ok:!0,value:null}:{ok:!0,value:await n.admit(async()=>{let n=await l(a,{projectionMode:`none`});try{let r=e.get(`sessionPersistence`),o=gr(n);if(o!==void 0){let e=i.get(a);if(e!==void 0&&e.revision===o&&e.persistence===r)return i.delete(a),i.set(a,e),e.value}let s=n?.events;if(!Array.isArray(s))return null;let c=it(),l=0;for(let e of s)c=It(c,e,t),++l%1e3==0&&await new Promise(e=>setTimeout(e,0));let u=xt(c,t);if(o!==void 0){i.delete(a),i.set(a,{persistence:r,revision:o,value:u});for(let e of i.keys()){if(i.size<=4)break;i.delete(e)}}return u}finally{let e=n?.[Symbol.dispose];typeof e==`function`&&e.call(n)}})??null})}catch(e){return Z(`gateway/internal`,e instanceof Error?e.message:String(e))}},`dsh-context: detail route`))return r.live=!0,()=>{r.live=!1}}),r}const yr=`0.2.0-rc.2`;function br(e){return e===`rc`?3:e===`beta`?2:1}function xr(e){let t=/^v?(\d+)\.(\d+)\.(\d+)(?:-(alpha|beta|rc)(?:\.(\d+))?)?(?:\+[0-9a-z.-]+)?$/i.exec(e.trim());if(t===null)return null;let n=t[4]?.toLowerCase();return{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3]),rank:n===void 0?4:br(n),serial:t[5]?Number(t[5]):0}}function Sr(e,t){return e.major===t.major?e.minor===t.minor?e.patch===t.patch?e.rank===t.rank?e.serial-t.serial:e.rank-t.rank:e.patch-t.patch:e.minor-t.minor:e.major-t.major}function Cr(e,t=yr){let n=xr(e),r=xr(t);return n===null||r===null||Sr(n,r)>=0}const wr=t.object({name:t.string(),tokens:t.number().int().nonnegative(),description:t.string().optional(),plugin:t.string().optional(),schema:t.unknown().optional()}).strict(),Tr=t.object({seq:t.number(),time:t.number(),system:t.string().optional(),systemTokens:t.number().int().nonnegative().optional(),tools:t.array(wr)}).strict(),Er=t.object({headers:t.array(Tr)}).strict(),Dr=t.object({name:t.string(),tokens:t.number().int().nonnegative(),plugin:t.string().optional()}).strict(),Or=t.object({headers:t.array(t.object({seq:t.number(),time:t.number(),systemTokens:t.number().int().nonnegative().optional(),tools:t.array(Dr)}).strict())}).strict();function kr(e){if(e.type!==`request/header`)return null;let t=e.data?.header;if(typeof t!=`object`||!t)return null;let n=t,r=Array.isArray(n.tools)?n.tools:[];return{seq:e.seq,time:e.time,tools:r.map(e=>{let t=typeof e==`object`&&e?e:{},n={name:typeof t.name==`string`?t.name:`?`,tokens:he(e)};return typeof t.plugin==`string`&&t.plugin!==``&&(n.plugin=t.plugin),n})}}function Ar(e){return{key:`contextHeaders`,stateSchema:Er,wire:{viewSchema:Or,view:t=>({headers:t.headers.map(t=>{let n={seq:t.seq,time:t.time,tools:t.tools.map(t=>{let n={name:t.name,tokens:t.tokens},r=t.plugin??(e===void 0?void 0:e(t.name));return r!==void 0&&(n.plugin=r),n})},r=t.systemTokens??(typeof t.system==`string`&&t.system!==``?re(t.system):void 0);return r!==void 0&&(n.systemTokens=r),n})})},init:()=>({headers:[]}),apply:(e,t)=>{let n=kr(t);if(n===null)return e;let r=e.headers.at(-1);if(r!==void 0&&r.seq===n.seq)return e;let i=[...e.headers,n];return{headers:i.length>50?i.slice(-50):i}},stateVersion:1}}const jr=t.object({});function Mr(e,t,n){let r=()=>n;return{key:e,stateSchema:jr,init:()=>({}),apply:e=>e,wire:{viewSchema:t,view:r},schema:t,view:r,stateVersion:1}}function Nr(e){return Mr(`contextTimeline`,nn,{ok:!0,unsupported:{current:e,minimum:yr},current:{system:0,tools:0,user:0,inject:0,skill:0,assistant:0,tool:0,total:0},requests:[],events:[],nodes:[],droppedNodes:0,archive:[]})}function Pr(){return Mr(`contextHeaders`,Or,{headers:[]})}function Fr(){return Mr(`contextActivity`,ln,{days:{}})}const Ir=1e5;function Lr(e){return Q(e)?.full===!0}function Rr(e){return Response.json(e,{headers:{"cache-control":`no-store`}})}function zr(e,t){return Rr({ok:!1,error:{code:e,message:t}})}function Q(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function Br(e){if(!Array.isArray(e))return``;let t=``;for(let n of e){let e=Q(n)?.text;typeof e==`string`&&(t+=e)}return t}const Vr=/^\s*<system-reminder>[\s\S]*?<\/system-reminder>\s*/;function Hr(e,t){return e.length>t?{text:e.slice(0,t)+`…`,cut:!0}:{text:e,cut:!1}}function Ur(e){let t=e.mode;if(t!==`one-shot`&&t!==`continuable`)return null;let n={mode:t};for(let t of[`label`,`provider`,`agentProvider`,`agentModel`,`persona`]){let r=e[t];typeof r==`string`&&r!==``&&(n[t]=r)}return n}const Wr=/^Team message \S+ from [^:]{1,64}:\s*/,Gr=/^(?:Agent \S+ sent a message: |Team message from [^:\n]{1,64}:\s*)/;function Kr(e,t,n){let r=Q(n.source),i=r?.kind,a=null;if(i===`agent-message`||i===`team-message`){let o=Br(n.content);if(o=o.replace(i===`team-message`?Wr:Gr,``),o.trim()===``)return null;a={seq:e,time:t,kind:i===`agent-message`?`relay`:`mailbox`,text:o};let s=i===`agent-message`?r?.senderSessionId:r?.senderId;typeof s==`string`&&s!==``&&(a.from=s);let c=r?.senderName;typeof c==`string`&&c!==``&&(a.fromName=c)}else if(i===`subagent-settled`){let i=r?.summary,o=typeof i==`string`&&i.trim()!==``?i:Br(n.content);if(o.trim()===``)return null;a={seq:e,time:t,kind:`settled`,text:o};let s=r?.senderSessionId;typeof s==`string`&&s!==``&&(a.from=s)}if(a===null)return null;let o=Hr(a.text,400);return a.text=o.text,a}function qr(e){return e===null||e.kind===`user`}function Jr(e){let t=Q(e.member);if(t===null||typeof t.name!=`string`||t.name===``)return null;let n={name:t.name,description:typeof t.description==`string`?t.description:``};return typeof t.provider==`string`&&t.provider!==``&&(n.provider=t.provider),(t.context===`fresh`||t.context===`fork`)&&(n.context=t.context),n}function Yr(e,t){for(let n=e.length-1;n>=0;n--){let r=Q(e[n]);if(r===null||r.type!==`assistant/message`)continue;let i=Q(Q(r.data)?.message)?.content;if(!Array.isArray(i))continue;let a=``;for(let e of i){let t=Q(e);t?.type===`text`&&typeof t.text==`string`&&(a+=t.text)}if(a.trim()===``)continue;let o=typeof r.time==`number`&&Number.isFinite(r.time)?r.time:0,s=Hr(a,t);return{time:o,text:s.text,cut:s.cut}}return null}function Xr(e,t=!1){let n=t?Ir:1600,r=t?Ir:300,i,a,o=!1,s=[],c=new Map;for(let t of e){let e=Q(t);if(e===null)continue;let r=e.type;if(typeof r!=`string`)continue;let l=typeof e.seq==`number`&&Number.isFinite(e.seq)?e.seq:0,u=typeof e.time==`number`&&Number.isFinite(e.time)?e.time:0,d=Q(e.data);if(d===null)continue;if(r===`subagent/descriptor`){let e=Ur(d);e!==null&&(i=e);continue}if(r===`team/member`){let e=Jr(d);e!==null&&c.set(e.name,e);continue}if(r!==`user/message`)continue;let f=Kr(l,u,d);if(f!==null){f.text.endsWith(`…`)&&(o=!0),s.push(f);continue}if(a===void 0&&qr(Q(d.source))){let e=Br(d.content).replace(Vr,``);if(e.trim()!==``){let t=Hr(e,n);a=t.text,t.cut&&(o=!0)}}}s.sort((e,t)=>t.seq-e.seq),s.length>40&&(s.length=40,o=!0);let l=Yr(e,r);return l!==null&&l.cut&&(o=!0),{...i===void 0?{}:{descriptor:i},...a===void 0?{}:{initialPrompt:a},...l===null?{}:{lastReply:{time:l.time,text:l.text}},...c.size>0?{roster:[...c.values()]}:{},messages:s,truncated:o}}function Zr(e,t=B()){e.inject([`connection`],n=>{V(n,n.get(`connection`),`/api/dsh-context/fleet`,async n=>{let r,i=!1;try{let e=await n.json();r=Q(e)?.sessionId,i=Lr(e)}catch{return zr(`dsh-context/bad-request`,`body is not JSON`)}if(typeof r!=`string`||r===``)return zr(`dsh-context/bad-request`,`missing sessionId`);try{let n=e.get(`sessionQuery`),a=typeof n?.observeSession==`function`?n.observeSession.bind(n):void 0;return Rr(a===void 0?{ok:!0,value:null}:{ok:!0,value:await t.admit(async()=>{let e=await a(r,{projectionMode:`none`}),t=e?.events;if(!Array.isArray(t))return null;try{return Xr(t,i)}finally{let t=e?.[Symbol.dispose];typeof t==`function`&&t.call(e)}})??null})}catch(e){return zr(`gateway/internal`,e instanceof Error?e.message:String(e))}},`dsh-context: fleet route`)})}function Qr(e){if(typeof e==`object`&&e&&typeof e.get==`function`){let t=e.get;return()=>{let e=t();return typeof e==`string`?e:``}}let t=typeof e==`string`?e:``;return()=>t}function $r(e){return()=>{let t=e();return t.trim().length===0?``:t}}const ei=1e3;function ti(e,t){e.inject([`systemPrompt`],e=>{let n=e.systemPrompt;n!=null&&typeof n.section==`function`&&typeof n.getSectionOrder==`function`&&(n.section({name:`dsh-context:prompt-prefix`,order:n.getSectionOrder(`HARNESS_IDENTITY`)-ei,text:$r(Qr(t.promptPrefix)),interpolate:!1}),n.section({name:`dsh-context:prompt-suffix`,order:n.getSectionOrder(`DEPLOYMENT_PERSONA_SUFFIX`)+ei,text:$r(Qr(t.promptSuffix)),interpolate:!1}))})}function ni(e){if(typeof e!=`object`||!e)return!1;let t=e.id;return typeof t!=`string`||t===``}function ri(e){let t;for(let[n,r]of e.entries()){if(!ni(r)){t?.push(r);continue}t??=e.slice(0,n),t.push({...r,id:`dshctx-`+ne()})}return t}function ii(e){e.on(`agent/pre-step`,async(e,t)=>{let n=await t();try{if(n.kind!==`enter`||!Array.isArray(n.messages))return n;let e=ri(n.messages);return e===void 0?n:{...n,messages:e}}catch{return n}},{prepend:!0})}function $(e){return typeof e==`string`&&e!==``?e:void 0}async function ai(e){if(!(e===null||typeof e!=`object`&&typeof e!=`function`))try{let t=e[Symbol.asyncDispose];if(typeof t==`function`){await t.call(e);return}let n=e[Symbol.dispose];typeof n==`function`&&n.call(e)}catch{}}function oi(e){let t=K(e);return t===null||typeof t.name!=`string`||t.name===``?null:{name:t.name,description:typeof t.description==`string`?t.description:``,...typeof t.path==`string`&&t.path!==``?{path:t.path}:{},...typeof t.source==`string`&&t.source!==``?{source:t.source}:{}}}async function si(e,t){if(t===void 0)return{};let n=K(e.get(`sessionQuery`));if(typeof n?.observeSession!=`function`)return{};let r;try{r=await n.observeSession.call(n,t)}catch{return{}}try{let e=K(r),t=$(K(e?.header)?.cwd),n=$(K(K(e?.projections)?.values)?.agentPreset);return{...t===void 0?{}:{cwd:t},...n===void 0?{}:{agentPreset:n}}}finally{await ai(r)}}async function ci(e,t,n){let r=K(e.get(`agentPresets`)),i;if(t!==void 0){let n=K(e.get(`agents`));if(typeof n?.get==`function`)try{i=n.get.call(n,t)}catch{i=void 0}}if(i!=null&&typeof r?.serviceFor==`function`){let e=K(r.serviceFor.call(r,i,`skills`));if(e!==null&&typeof e.list==`function`)return{registry:e,scope:i,lease:void 0}}let a=K(e.get(`skills`));if(a===null||typeof a.list!=`function`)return null;let o,s;if(typeof r?.acquireScope==`function`)try{s=await r.acquireScope.call(r,n),o=K(s)?.key}catch{s=void 0}return{registry:a,scope:o,lease:s}}function li(e){e.inject([`connection`],t=>{V(t,t.get(`connection`),`/api/dsh-context/skills`,async t=>{let n=null,r;try{let i=K(await t.json()),a=$(i?.sessionId),o=await si(e,a),s=o.cwd??$(i?.cwd),c=await ci(e,a,o.agentPreset);if(c!==null){r=c.lease;let e=await c.registry.list({...s===void 0?{}:{cwd:s},...c.scope===void 0?{}:{scope:c.scope}}),t=Array.isArray(e)?e:[],i=[];for(let e of t){let t=oi(e);if(t!==null&&i.push(t),i.length>=500)break}n={skills:i}}}catch{}finally{await ai(r)}return Response.json({ok:!0,value:n},{headers:{"cache-control":`no-store`}})},`dsh-context: skills route`)})}const ui=[`@deepseek-ai/dsh-session-projection`,`@deepseek-ai/dsh-session`],di=[`@deepseek-ai/dsh-session`,`@deepseek-ai/dsh-session-projection`],fi=[`@deepseek-ai/dsh`,...ui];function pi(){try{return l(g(import.meta.resolve(`dsh-context/package.json`)))}catch{return l(g(import.meta.url))}}const mi=pi();function hi(e,t){try{let n=JSON.parse(ee(e,`utf8`));if(typeof n!=`object`||!n)return;let r=n;return t!==void 0&&r.name!==t?void 0:typeof r.version==`string`&&r.version!==``?r.version:void 0}catch{return}}function gi(e,t){try{return hi(e(t+`/package.json`))}catch{return}}function _i(e,t){let n;try{n=l(e(t))}catch{return}for(;;){let e=hi(d(n,`package.json`),t);if(e!==void 0)return e;let r=l(n);if(r===n)return;n=r}}function vi(e,t){for(let n of t){let t=gi(e,n)??_i(e,n);if(t!==void 0)return t}}function yi(e,t){let n=p(e,t);return!n.startsWith(`..`)&&!u(n)}function bi(e,t){for(let n of di){let r;try{r=e(n)}catch{continue}if(yi(t,r))continue;let i=gi(e,n)??_i(e,n);if(i!==void 0)return i}}function xi(e){return import.meta.resolve(e)}function Si(t,n=xi,r=mi){let i=bi(e=>{let t=n(e);if(!t.startsWith(`file:`))throw Error(`dsh-context: non-file module URL for ${e}`);return g(t)},r);if(i!==void 0)return i;try{let n=t.get(`dshHomePath`);if(typeof n==`function`){let t=e(n(`profiles`,`dsh-context-version-probe.cjs`)),r=vi(e=>t.resolve(e),fi);if(r!==void 0)return r}}catch{}}const Ci=`dsh-context`,wi=[`sessionProjections`];function Ti(e,t){let n=B();or(e),li(e),Zr(e,n),Rn(e,n);let r=Si(e);if(r!==void 0&&!Cr(r)){e.sessionProjections.register(Nr(r)),e.sessionProjections.register(Pr()),e.sessionProjections.register(Fr());return}let i=Xn(e);ii(e);let a=vr(e,Rt(t),n);e.sessionProjections.register(an(t,()=>a.live)),e.sessionProjections.register(Ar(e=>i.ownerOf(e))),e.sessionProjections.register(bn()),hr(e,n),ti(e,t)}export{Lt as Config,Ti as apply,wi as inject,Ci as name};
|
|
14
|
+
`)?t:t+1}function x(e,t){return{added:typeof e==`string`?Me(e):0,removed:typeof t==`string`?Me(t):0}}function Ne(e,t){if(e===`edit`)return x(t.new_string,t.old_string);if(e===`write`)return x(t.content,void 0);if(e===`str_replace_editor`){if(t.command===`str_replace`)return x(t.new_str,t.old_str);if(t.command===`insert`)return x(t.new_str,void 0);if(t.command===`create`)return x(t.file_text,void 0)}return{added:0,removed:0}}function Pe(e){if(typeof e!=`object`||!e)return null;let t=e;return typeof t.path!=`string`||t.path===``||typeof t.offset!=`number`||!Number.isFinite(t.offset)||t.offset<1||!Array.isArray(t.lines)||t.lines.length===0?null:{start:t.offset,count:t.lines.length}}function Fe(e){let t=e.limit;return typeof t==`number`&&Number.isFinite(t)&&t>0?{count:Math.floor(t),est:!0}:void 0}function Ie(e,t){let n=Pe(e);return n===null?Fe(t):{start:n.start,count:n.count}}function Le(e){let t=e?.pattern;if(typeof t!=`string`||t===``)return;let n=e?.include;return typeof n==`string`&&n!==``?`${t} (${n})`:t}function Re(e){if(typeof e!=`object`||!e)return null;let t=e;if(t.truncated!==!1)return null;let n=[];if(t.shape===`matches`&&Array.isArray(t.files))for(let e of t.files){if(typeof e!=`object`||!e)continue;let t=e;typeof t.path==`string`&&t.path!==``&&Array.isArray(t.matches)&&n.push({path:t.path,hits:t.matches.length})}else if(t.shape===`paths`&&Array.isArray(t.paths))for(let e of t.paths)typeof e==`string`&&e!==``&&n.push({path:e,hits:0});return n.length>0?n:null}function ze(e){let t=b(e.tool)?Ee(e.argsRaw):null,n=ke(e.tool,t);if(n===null)return[];let r={seq:e.seq,kind:n,tool:e.tool,err:e.err===!0,added:0,removed:0,path:``,...e.time===void 0?{}:{time:e.time},...e.gone===void 0?{}:{gone:e.gone},...e.parent===void 0?{}:{parent:e.parent},...e.program===void 0?{}:{program:e.program}};if(n===`search`){let n=Re(e.meta);if(n!==null){let i=Le(t),a=t===null?null:je(e.tool,t),o=t!==null&&typeof t.path==`string`&&t.path!==``;return[...a!==null&&!n.some(e=>e.path===a)?[{...r,path:a,...o&&i!==void 0?{detail:i}:{},...o?{}:{pattern:!0}}]:[],...n.map(e=>({...r,path:e.path,...i===void 0?{}:{detail:i},...e.hits>0?{hits:e.hits}:{}}))]}}if(t===null)return[];let i=je(e.tool,t);if(i===null)return[];let{added:a,removed:o}=Ne(e.tool,t),s=typeof t.path==`string`&&t.path!==``,c=n===`search`&&s?Le(t):void 0,l=n===`read`?Ie(e.meta,t):void 0;return[{...r,path:i,added:a,removed:o,...c===void 0?{}:{detail:c},...l===void 0?{}:{read:l},...n===`search`&&!s?{pattern:!0}:{}}]}function S(e){return e===`bash`||e===`pwsh`||e===`run_code`?e:null}function C(e){return typeof e==`string`&&e!==``?e:void 0}function Be(e){return typeof e==`string`?Ee(e):typeof e==`object`&&e&&!Array.isArray(e)?e:null}function Ve(e,t,n){let r=Be(t),i=C(e===`run_code`?r?.code:r?.command);if(i===void 0)return null;let a={cmd:i.length>n?i.slice(0,n):i,...i.length>n?{truncated:!0}:{}},o=C(r?.description);o!==void 0&&(a.description=o);let s=C(r?.workdir);s!==void 0&&(a.cwd=s);let c=r?.timeoutMs;typeof c==`number`&&Number.isFinite(c)&&c>0&&(a.timeoutMs=c),r?.run_in_background===!0&&(a.background=!0);let l=C(r?.sandbox_permissions);return l!==void 0&&(a.sandbox=l),a}const He=RegExp(`(?:^|\\n)\\[still running after \\d+ms; moved to background job [^\\]\\n]+\\](?:\\nThe command keeps running in the background\\.[^\\n]*)?\\s*$`);function Ue(e){let t={};if(/(?:^|\n)started background job \S+\s*$/.test(e)||He.test(e))return t.backgroundAck=!0,t;let n=/(?:^|\n)\[killed by signal: ([^\]\n]+)\]\s*$/.exec(e)??/(?:^|\n)\[shell killed by signal: ([^\]\n]+)\](?=\n|$)/.exec(e);if(n?.[1]!==void 0)t.signal=n[1];else{let n=/(?:^|\n)\[exit code: (\d+)\]\s*$/.exec(e)??/(?:^|\n)\[Command finished with exit code (\d+)\]\s*$/.exec(e)??/(?:^|\n)\[shell exited: code (\d+)\](?=\n|$)/.exec(e);n?.[1]===void 0?/(?:^|\n)\[shell exited\](?=\n|$)/.test(e)&&(t.stopped=!0):t.exit=Number(n[1])}return/(?:^|\n)\[timed out after \d+ms\](?=\n|$)/.test(e)&&(t.timedOut=!0),/(?:^|\n)\[Command timed out or OOM\](?=\n|$)/.test(e)&&(t.timedOut=!0),/(?:^|\n)\[stopped: [^\]\n]+\](?=\n|$)/.test(e)&&(t.stopped=!0),/(?:^|\n)\[sandbox: file access denied under [^\]\n]+\](?=\n|$)/.test(e)&&(t.denied=!0),/(?:^|\n)\[output truncated; /.test(e)&&(t.truncated=!0),/(?:^|\n)\[stderr\]\n/.test(e)&&(t.stderr=!0),t}function We(e){if(typeof e!=`string`)return;let t=/(?:^|;\s*)exit code: (\d+)\b/.exec(e);return t?.[1]===void 0?void 0:Number(t[1])}function Ge(e){if(typeof e==`string`)return/(?:^|;\s*)signal: ([^;]+)/.exec(e)?.[1]?.trim()||void 0}function Ke(e,t){return e.signal!==void 0||e.stopped===!0?{status:`killed`}:e.exit===void 0?e.denied===!0||e.timedOut===!0||t?{status:`failed`}:{status:`completed`,exit:0,exitInferred:!0}:e.exit===0?{status:`completed`,exit:0}:{status:`failed`,exit:e.exit}}function w(e,t){for(let n=e.length-1;n>=0;n--)if(e[n].call===t)return n;return-1}function qe(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(typeof n!=`object`||!n)continue;let e=n.text;typeof e==`string`&&t.push(e)}return t}function Je(e,t){let n={...e.commandStats??{runs:0,failed:0,ms:0,bg:0}};n.runs+=1,(t.status===`failed`||t.status===`killed`)&&(n.failed+=1),t.end!==void 0&&(n.ms+=Math.max(0,t.end-t.start)),e.commandStats=n}function T(e){e.commandStats={...e.commandStats??{runs:0,failed:0,ms:0,bg:0},bg:(e.commandStats?.bg??0)+1}}function Ye(e,t,n){e.commands[t].status===`running`&&n.status!==`running`&&Je(e,n),e.commands[t]=n}function Xe(e,t){return{...e.length>0?{outChars:e.reduce((e,t)=>e+t.length,0)}:{},...t.truncated===!0?{outTruncated:!0}:{},...t.stderr===!0?{stderr:!0}:{},...t.timedOut===!0?{timedOut:!0}:{},...t.stopped===!0?{stopped:!0}:{},...t.denied===!0?{denied:!0}:{},...t.signal===void 0?{}:{signal:t.signal},...t.exit===void 0?{}:{exit:t.exit}}}function Ze(e){let{parsed:t}=e;return{seq:e.seq,time:e.time,tool:e.tool,cmd:t.cmd,...t.truncated===!0?{cmdTruncated:!0}:{},...t.description===void 0?{}:{description:t.description},...t.cwd===void 0?{}:{cwd:t.cwd},...t.timeoutMs===void 0?{}:{timeoutMs:t.timeoutMs},...t.background===!0?{background:!0}:{},...t.sandbox===void 0?{}:{sandbox:t.sandbox},...typeof e.turn==`number`?{turn:e.turn}:{},...typeof e.step==`number`?{step:e.step}:{},...e.codeMode===!0?{codeMode:!0}:{},start:e.time,status:`running`,err:!1,call:e.call}}function Qe(e){let t=e?.toolCall;if(typeof t!=`object`||!t)return;let n=t.callId;return typeof n==`string`?n:void 0}function $e(e,t,n,r){let i=We(r),a=Ge(r),o={...e,end:n,status:t===`completed`?i!==void 0&&i!==0?`failed`:`completed`:t,...i===void 0?{}:{exit:i},...a===void 0?{}:{signal:a}};return delete o.derived,delete o.exitInferred,o}function et(e,t,n,r){for(let i in t){let a=t[i].findIndex(e=>e.call===n);if(a<0)continue;let o=[...t[i]];return o[a]=r(o[a]),e.pendingCodeCmds={...t,[i]:o},!0}return!1}function tt(e,t){let n=0,r=e.length,i;for(let a=e.length-1;a>=0;a--){let o=e[a].turn;if(o!==i){if(n>=t)break;n++,i=o}r=a}return e.slice(r)}function E(e){let t=0,n;for(let r of e)r.turn!==n&&(t++,n=r.turn);return t}function nt(e,t){if(e.turnRuns=e.turnRuns??E(e.requests),e.turnRuns>t.maxKeptTurns&&(e.requests=tt(e.requests,t.maxKeptTurns),e.turnRuns=E(e.requests)),e.requests.length>t.maxRequestSteps&&(e.requests=e.requests.slice(-t.maxRequestSteps),e.turnRuns=E(e.requests)),e.events.length>t.maxEvents&&(e.events=e.events.slice(-t.maxEvents)),e.spans.length>rt&&(e.spans=e.spans.slice(-rt)),e.fileOps.length>t.maxFileOps){let n=e.fileOps.length-t.maxFileOps;e.fileOpsFloor=Math.max(e.fileOpsFloor??0,e.fileOps[n-1].seq),e.fileOps=e.fileOps.slice(n)}if(e.commands.length>t.maxCommands){let n=e.commands.length-t.maxCommands,r=0,i=[];for(let t of e.commands){if(n>0&&t.status!==`running`){n--,r=Math.max(r,t.seq);continue}i.push(t)}if(i.length>t.maxCommands){let e=i.length-t.maxCommands;for(let t of i.slice(0,e))r=Math.max(r,t.seq);i.splice(0,e)}e.commandsFloor=Math.max(e.commandsFloor??0,r),e.commands=i}if(e.archived.length>0){let n=0,r=e.requests.length>0?e.requests[0].seq:void 0;if(r!==void 0)for(;n<e.archived.length&&(e.archived[n].gone??1/0)<=r;)n++;if(e.archived.length-n>t.maxArchiveNodes&&(n=e.archived.length-t.maxArchiveNodes),n>0){let t=e.archived[n-1].gone;t!==void 0&&(e.archiveFloor=Math.max(e.archiveFloor??0,t)),e.archived=e.archived.slice(n)}}}const rt=2e3;function it(){return{surface:[],sums:{user:0,inject:0,skill:0,assistant:0,tool:0},systemTokens:0,toolsTokens:0,requests:[],turnRuns:0,events:[],archived:[],callNames:{},fileOps:[],commands:[],spans:[]}}const at={"deepseek-official":`deepseek`,"deepseek-account":`deepseek`,"kimi-coding":`moonshotai`,"minimax-cn":`minimax`,"zai-coding-cn":`zhipuai`,claude:`anthropic`,codex:`openai`,fireworks:`fireworks-ai`,together:`togetherai`,"vercel-ai-gateway":`vercel`,"kimi-code-plan-global":`moonshotai`,"kimi-code-plan-cn":`moonshotai-cn`,"zai-coding-plan":`zai`,"zhipuai-coding-plan":`zhipuai`,"xiaomi-token-plan-ams":`xiaomi`,"xiaomi-token-plan-cn":`xiaomi`,"xiaomi-token-plan-sgp":`xiaomi`,"minimax-coding-plan":`minimax`,"minimax-cn-coding-plan":`minimax-cn`};function ot(e){return at[e]??e}function st(e){return ot(e)===`deepseek`}function D(e){if(typeof e==`number`)return Number.isFinite(e)?Math.max(0,Math.round(e)):null;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);return Number.isFinite(t)?Math.max(0,Math.round(t)):null}return null}function ct(e){let t=new Date(e+288e5),n=t.getUTCDay();if(n===0||n===6)return!1;let r=t.getUTCHours();return r>=9&&r<12||r>=14&&r<18}function lt(e,t,n,r,i){let a=st(t)&&!ct(r)?`off`:`peak`,o=e?.[t]??{},s=o[n]??{},c=s[a]??{uncached:0,cacheRead:0,cacheWrite:0,output:0},l={...s};l[a]={uncached:c.uncached+i.uncached,cacheRead:c.cacheRead+i.cacheRead,cacheWrite:c.cacheWrite+i.cacheWrite,output:c.output+i.output};let u={...o,[n]:l};return{...e??{},[t]:u}}function ut(e){let t={};for(let n in e){let r={};for(let t in e[n]){let i=e[n][t],a={};i.peak!==void 0&&(a.peak={...i.peak}),i.off!==void 0&&(a.off={...i.off}),r[t]=a}t[n]=r}return t}function dt(e,t,n){let r=e.model;r!==void 0&&(e.cost=lt(e.cost,e.provider??``,r,t,n))}const ft=[`reasoning`,`text`,`toolarg`];function O(e,t){return!Number.isFinite(e)||!Number.isFinite(t)?0:Math.max(0,t-e)}function pt(e){return e.timing===void 0&&(e.timing={wallMs:0,ttftMs:0,genMs:0,calls:0,toolsMs:0,toolCalls:0,tools:{}}),e.timing}const mt={reasoning:{ms:`reasoningMs`,n:`reasoningBlocks`},text:{ms:`textMs`,n:`textBlocks`},toolarg:{ms:`toolArgMs`,n:`toolArgBlocks`}};function ht(e,t,n,r){let i=mt[t];n>0&&(e[i.ms]=(e[i.ms]??0)+n),r>0&&(e[i.n]=(e[i.n]??0)+r)}function gt(e,t,n){if(t===`__proto__`)return;if(!Object.hasOwn(e.tools,t)){if(Object.keys(e.tools).length>=16){let t=``,n=1/0;for(let r in e.tools)e.tools[r].ms<n&&(n=e.tools[r].ms,t=r);let r={};for(let n in e.tools)n!==t&&(r[n]=e.tools[n]);e.tools=r}e.tools[t]={calls:1,ms:n};return}let r=e.tools[t];e.tools[t]={calls:r.calls+1,ms:r.ms+n}}function _t(e){let t={...e};return delete t.call,t}function vt(e){let t=e.sums.user+e.sums.inject+e.sums.skill+e.sums.assistant+e.sums.tool,n=0,r=0;for(let t of e.surface)t.imgs!==void 0&&(n+=t.imgs),(t.cat===`tool`||t.cat===`skill`&&t.tool!==void 0)&&r++;let i={ok:!0,...e.model===void 0?{}:{model:e.model},...e.provider===void 0?{}:{provider:e.provider},...e.reasoningEffort===void 0?{}:{reasoningEffort:e.reasoningEffort},...e.contextWindow===void 0?{}:{contextWindow:e.contextWindow},...e.maxOutputTokens===void 0?{}:{maxOutputTokens:e.maxOutputTokens},current:{system:e.systemTokens,tools:e.toolsTokens,user:e.sums.user,inject:e.sums.inject,skill:e.sums.skill,assistant:e.sums.assistant,tool:e.sums.tool,total:t+e.systemTokens+e.toolsTokens},images:n,toolCalls:r,humanInputs:e.humanInputs??0,answers:e.answers??0,...e.lastUser===void 0?{}:{lastUser:e.lastUser},requests:[],events:[],nodes:[],droppedNodes:0,archive:[]};if(e.cost!==void 0&&(i.cost=ut(e.cost)),e.timing!==void 0){let t={};for(let n in e.timing.tools)t[n]={...e.timing.tools[n]};i.timing={...e.timing,tools:t}}return e.systems!==void 0&&e.systems.length>0&&(i.systems=e.systems.map(e=>({...e}))),i}function yt(e,t){let n={requests:e.requests.map(e=>({...e})),events:e.events.map(e=>({...e})),nodes:[],droppedNodes:0,archive:e.archived.map(e=>({...e})),fileOps:e.fileOps.map(e=>({...e})),...e.fileOpsFloor===void 0?{}:{fileOpsFloor:e.fileOpsFloor},commands:e.commands.map(_t),...e.commandsFloor===void 0?{}:{commandsFloor:e.commandsFloor},...e.commandStats===void 0?{}:{commandStats:{...e.commandStats}},spans:e.spans.map(e=>({...e}))},r=Math.max(0,e.surface.length-t.maxNodes),i=e.surface.slice(0,r),a=e.surface.slice(r),o=i.filter(e=>e.cat===`inject`||e.cat===`skill`);if(n.nodes=o.length>0?[...o,...a]:a,n.droppedNodes=r-o.length,n.droppedNodes>0){let e=0;for(let t of i)t.cat!==`inject`&&t.cat!==`skill`&&(e=Math.max(e,t.seq));n.surfaceFloor=e}e.archiveFloor!==void 0&&(n.archiveFloor=e.archiveFloor);let s=n.requests,c=n.events,l=0;for(let e of c){for(;l<s.length&&s[l].seq<=e.seq;)l++;let t=s.at(l),n=l>0?s.at(l-1):void 0;t!==void 0&&typeof t.turn==`number`&&typeof t.step==`number`&&(e.turn=t.turn,e.step=t.step),n!==void 0&&typeof n.turn==`number`&&typeof n.step==`number`&&(e.fromTurn=n.turn,e.fromStep=n.step)}return n}function bt(e){let t=vt(e),n=new Set;for(let t of e.requests)n.add(t.turn??0);let r=0,i=0,a=0,o=new Set;for(let t of e.events)t.kind===`inject`?r++:t.kind===`compaction`?i++:t.kind===`prune`&&a++,t.sub===`skill`&&typeof t.name==`string`&&t.name!==``&&o.add(t.name);t.counts={turns:n.size,steps:e.requests.length,injects:r,compactions:i,prunes:a,skills:o.size};let s=e.requests.at(-1);return s!==void 0&&(t.last={seq:s.seq,total:s.total,...typeof s.prompt==`number`?{prompt:s.prompt}:{}}),t.detailRev=e.detailRev??0,t}function k(e,t){return{rev:e.detailRev??0,head:bt(e),...yt(e,t)}}function xt(e,t){return{...vt(e),...yt(e,t)}}function St(e,t){if(e===`assistant/message`)return`assistant`;if(e===`tool/result`)return`tool`;if(e===`developer/message`)return`inject`;let n=t?.source?.kind;return n===`skill-invocation`||n===`skill-catalog`?`skill`:ye(t?.source)?`inject`:`user`}function A(e){e.detailRev=(e.detailRev??0)+1}function Ct(e){for(let t=e.length-1;t>=0;t--)if(e[t].tokens>0)return e[t].tokens;return 0}function wt(e,t){let n=[...e.systems??[],t];e.systems=n.length>8?n.slice(-8):n,e.systemTokens=Ct(e.systems)}function Tt(e){if(typeof e==`string`)return e;if(e!=null)try{return JSON.stringify(e)}catch{return}}function Et(e,t){for(let n of t)e.fileOps.push(n)}function Dt(e,t,n){let r=e.pendingCodeOps??{},i=0;for(let e in r)i+=r[e].length;i+n.length>200||(e.pendingCodeOps={...r,[t]:[...r[t]??[],...n]})}function Ot(e,t,n){for(let r of t)e.archived.push({...r,gone:n})}function kt(e,t,n){if(t.size===0)return[];let r=[],i=[];for(let n of e.surface)t.has(n.seq)?(e.sums[n.cat]-=n.tokens,i.push(n)):r.push(n);return Ot(e,i,n),e.surface=r,i}function At(e){let t=e?.message;return typeof t==`object`&&t?t:null}function jt(e){if(!Array.isArray(e))return``;for(let t of e){if(typeof t!=`object`||!t)continue;let e=t;if(e.type===`text`&&typeof e.text==`string`&&e.text!==``)return e.text}return``}function Mt(e){let t=jt(typeof e==`object`&&e?e.content:void 0).match(/<skill_content\s+name="([^"]+)"/);return t===null?``:t[1]}function j(e,t,n,r){let i=St(n,r??void 0),a={seq:t.seq,time:t.time,cat:i,tokens:me(r,n===`assistant/message`||n===`developer/message`)},o=ge(r?.content);o>0&&(a.imgs=o);let s=r?.source,c=s?.form;if(typeof c==`string`&&(a.form=c),n===`assistant/message`){let e=y(r?.content);if(e!==``)a.text=e;else{let e=_e(r?.content);e.length>0&&(a.calls=e.slice(0,3))}}else if(n===`tool/result`){let n=s?.callId,i=typeof n==`string`&&Object.hasOwn(e.callNames,n)?e.callNames[n]:void 0;if(i!==void 0){a.tool=i.name;let n=pt(e),r=O(i.start,t.time);n.toolsMs+=r,n.toolCalls+=1,gt(n,i.name,r),e.stepStart!==void 0&&(e.stepSpans=[...e.stepSpans??[],{kind:`tools`,start:i.start,end:t.time}])}if(typeof n==`string`){let t={};for(let r in e.callNames)r!==n&&(t[r]=e.callNames[r]);e.callNames=t}r?.isError===!0&&(a.err=!0)}else if(s?.kind===`skill-invocation`)a.skill=typeof s.name==`string`?s.name:`?`;else if(s?.kind===`plugin`){if(s.form===`notice`&&typeof s.summary==`string`)a.text=s.summary;else if(s.form===`snapshot`&&Array.isArray(s.sections))a.text=s.sections.map(e=>e?.name).filter(Boolean).join(`, `).slice(0,80);else{let e=y(r?.content);e!==``&&(a.text=e)}}else{let e=y(r?.content);e!==``&&(a.text=e)}let l=e.pendingShadowedSeqs,u=e.pendingShadowEventSeq;delete e.pendingShadowedSeqs,delete e.pendingShadowEventSeq;let d=Te(t.surfaceOp);if(d!==null){if(Array.isArray(l)&&l.length>0){let n=kt(e,new Set(l),t.seq);if(e.sums[i]+=a.tokens,e.surface.push(a),u!==void 0){let t=n.reduce((e,t)=>e+t.tokens,0),r=e.events.findIndex(e=>e.seq===u);r>=0&&(e.events[r]={...e.events[r],tokens:Math.max(0,t-a.tokens)})}return a}let n=-1,r=-1;for(let t=0;t<e.surface.length;t++)if(n<0&&e.surface[t].seq===d.start&&(n=t),e.surface[t].seq===d.end){r=t;break}if(n>=0&&r>=n){let o=e.surface.splice(n,r-n+1,a);Ot(e,o,t.seq);for(let t of o)e.sums[t.cat]-=t.tokens;return e.sums[i]+=a.tokens,a}}return e.surface.push(a),e.sums[i]+=a.tokens,a}const Nt=`ask_user_question`,Pt=[`surface`,`sums`,`requests`,`events`,`archived`,`callNames`,`fileOps`,`timing`,`commands`];function Ft(e,t,r){let i,a=(t=Pt)=>{i={...e};for(let n of t)n===`surface`?i.surface=[...e.surface]:n===`sums`?i.sums={...e.sums}:n===`requests`?i.requests=[...e.requests]:n===`events`?i.events=[...e.events]:n===`archived`?i.archived=[...e.archived]:n===`callNames`?i.callNames={...e.callNames}:n===`fileOps`?i.fileOps=[...e.fileOps]:n===`commands`?i.commands=[...e.commands]:e.timing!==void 0&&(i.timing={...e.timing,tools:{...e.timing.tools}});return i},o=t.data;try{switch(t.type){case`request/header`:{let e=o?.header??{},n=Array.isArray(e.tools)?e.tools:[],r=a([`events`]);r.toolsTokens=fe(n),e.config&&typeof e.config.model==`string`&&(r.model=e.config.model),e.config&&typeof e.config.provider==`string`&&(r.provider=e.config.provider),e.config&&typeof e.config.reasoningEffort==`string`&&e.config.reasoningEffort!==``?r.reasoningEffort=e.config.reasoningEffort:delete r.reasoningEffort;let i=e.config?.maxTokens;typeof i==`number`&&Number.isFinite(i)&&i>0?r.maxOutputTokens=i:delete r.maxOutputTokens,(o?.reason===`change`||o?.reason===`resume`)&&r.model&&r.lastModel&&r.model!==r.lastModel&&(r.events.push({seq:t.seq,time:t.time,kind:`model`,from:r.lastModel,to:r.model}),A(r)),r.model&&(r.lastModel=r.model);break}case`system/message`:{let e=a([`surface`,`sums`,`archived`]);delete e.pendingShadowedSeqs,delete e.pendingShadowEventSeq;let n=Te(t.surfaceOp);if(n!==null){e.systems=(e.systems??[]).filter(e=>e.seq<n.start||e.seq>n.end);let r=new Set;for(let t of e.surface)t.seq>=n.start&&t.seq<=n.end&&r.add(t.seq);kt(e,r,t.seq).length>0&&A(e)}wt(e,{seq:t.seq,time:t.time,tokens:ae(At(o)?.content)});break}case`request/context`:{let e=a([]);o&&typeof o.contextWindow==`number`&&(e.contextWindow=o.contextWindow),o&&typeof o.model==`string`&&(e.model=o.model),o&&typeof o.provider==`string`&&(e.provider=o.provider);break}case`tool/call`:if(o&&typeof o.callId==`string`&&typeof o.name==`string`){let e=S(o.name),n=a(e===null?[`callNames`]:[`callNames`,`commands`]),i=Ae(o.name)?Tt(o.arguments):void 0;if(o.callId!==`__proto__`&&(n.callNames[o.callId]={name:o.name,start:t.time,...i===void 0?{}:{argsRaw:i}}),e!==null){let i=Ve(e,o.arguments,r.maxCommandChars);i!==null&&(n.commands.push(Ze({seq:t.seq,time:t.time,tool:e,parsed:i,turn:o.turn,step:o.step,call:o.callId})),i.background===!0&&T(n),A(n))}}break;case`job/registered`:{let t=Qe(o),n=o?.startedAt;if(t===void 0||typeof n!=`number`||!Number.isFinite(n))return e;let r=w(e.commands,t);if(r>=0){let e=a([`commands`]);e.commands[r]={...e.commands[r],start:n},A(e);break}if(e.pendingCodeCmds===void 0||!et(a([]),e.pendingCodeCmds,t,e=>({...e,start:n})))return e;break}case`job/settled`:{let t=Qe(o),n=o?.finishedAt,r=o?.status;if(t===void 0||typeof n!=`number`||!Number.isFinite(n)||r!==`completed`&&r!==`killed`&&r!==`failed`)return e;let i=w(e.commands,t);if(i>=0){let e=a([`commands`]);Ye(e,i,$e(e.commands[i],r,n,o?.detail)),A(e);break}let s=e.pendingCodeCmds;if(s===void 0||!et(a([]),s,t,e=>$e(e,r,n,o?.detail)))return e;break}case`tool/ptc-dispatch-start`:{let n=o?.rootCallId,i=o?.subCallId,s=S(typeof o?.name==`string`?o.name:void 0);if(typeof n!=`string`||typeof i!=`string`||s===null)return e;let c=Ve(s,o?.arguments,r.maxCommandChars);if(c===null)return e;let l=e.pendingCodeCmds??{},u=0;for(let e in l)u+=l[e].length;if(u+1>200)return e;let d=Ze({seq:t.seq,time:t.time,tool:s,parsed:c,codeMode:!0,call:i}),f=a([]);c.background===!0&&T(f),f.pendingCodeCmds={...l,[n]:[...l[n]??[],d]};break}case`tool/ptc-dispatch`:{let n=o?.rootCallId,r=o?.name;if(typeof n==`string`&&typeof r==`string`){let i=o?.subCallId,s=typeof i==`string`?e.pendingCodeCmds?.[n]:void 0,c=s?.findIndex(e=>e.call===i)??-1,l=b(r)?Tt(o?.arguments):void 0,u=ze({seq:t.seq,time:t.time,tool:r,argsRaw:l,err:o?.isError===!0});if(u.length>0||s!==void 0&&c>=0){let r=a([]);if(u.length>0&&Dt(r,n,u),s!==void 0&&c>=0){let i=s[c],a=qe(o?.content),l=Ue(a.at(-1)??``),u=o?.isError===!0,d={...i,...Xe(a,l),err:u};if(l.backgroundAck===!0)d.background=!0,i.background!==!0&&T(r);else{let e=Ke(l,u);d.status=e.status,e.exit!==void 0&&(d.exit=e.exit),e.exitInferred===!0&&(d.exitInferred=!0),d.end=t.time,d.derived=!0}let f=[...s];f[c]=d,r.pendingCodeCmds={...e.pendingCodeCmds,[n]:f}}}}break}case`assistant/attempt`:{let t=e.stepStart;if(t===void 0||t.firstToken!==void 0)return e;let n=Ce(o?.stream);if(n===void 0)return e;let r=a([]);r.stepStart={time:t.time,firstToken:n};break}case`step/start`:{let e=a([]);e.stepStart={time:t.time},delete e.stepSpans,delete e.stepWaits,delete e.stepApprovals,delete e.stepRequestSeq;break}case`step/end`:{let n=e.stepStart;if(n===void 0)return e;let r=a(e.stepRequestSeq===void 0?[`timing`]:[`timing`,`requests`]);pt(r).wallMs+=O(n.time,t.time);let i=[...e.stepWaits??[]];for(let n in e.stepApprovals)i.push({start:e.stepApprovals[n],end:t.time});i.sort((e,t)=>e.start-t.start||e.end-t.end);let o=0,s=n.time;for(let e of i){let n=Math.max(s,e.start),r=Math.min(e.end,t.time);r>n&&(o+=r-n,s=r)}let c=O(n.time,t.time)-o,l=e.requests.at(-1);l!==void 0&&l.seq===e.stepRequestSeq&&(r.requests[r.requests.length-1]={...l,activeMs:c});let u=[];for(let r of e.stepSpans??[]){let e=Math.max(n.time,r.start),i=Math.min(t.time,r.end);i>e&&u.push({kind:r.kind,start:e,end:i})}u.sort((e,t)=>e.start-t.start||e.end-t.end);let d=[],f=n.time;for(let e of u){let t=Math.max(f,e.start);e.end<=t||(t>f&&d.push({kind:`other`,start:f,end:t}),d.push({kind:e.kind,start:t,end:e.end}),f=e.end)}t.time>f&&d.push({kind:`other`,start:f,end:t.time}),r.spans=[...e.spans,...d],delete r.stepStart,delete r.stepSpans,delete r.stepWaits,delete r.stepApprovals,delete r.stepRequestSeq,A(r);break}case`approval/asked`:{let n=o?.id;if(e.stepStart===void 0||typeof n!=`string`)return e;let r=a([]);r.stepApprovals={...e.stepApprovals,[n]:t.time};break}case`approval/decided`:{let n=o?.id,r=e.stepApprovals,i=typeof n==`string`?r?.[n]:void 0;if(r===void 0||i===void 0)return e;let s=a([]);s.stepWaits=[...e.stepWaits??[],{start:i,end:t.time}];let c={};for(let e in r)e!==n&&(c[e]=r[e]);Object.keys(c).length>0?s.stepApprovals=c:delete s.stepApprovals;break}case`user/message`:case`developer/message`:{let r=t.type===`developer/message`,i=r?At(o):n(t);if(r&&(i===null||!Array.isArray(i.content)))return e;let s=a([`surface`,`sums`,`archived`,`events`]);A(s);let c=j(s,t,t.type,i),l=i?.source;if(r||ye(l)){let e={seq:t.seq,time:t.time,kind:`inject`,form:typeof l?.form==`string`&&l.form!==``?l.form:`context`,tokens:c.tokens};if(l?.kind===`skill-invocation`)e.sub=`skill`,e.name=typeof l.name==`string`?l.name:`?`;else{let t=ve(l);t!==``&&(e.name=t,c.name=t),l?.form===`notice`&&typeof l.summary==`string`&&l.summary!==``&&(e.detail=l.summary)}s.events.push(e)}else s.humanInputs=(s.humanInputs??0)+1,c.text!==void 0&&c.text!==``&&(s.lastUser=c.text);break}case`tool/result`:{let r=n(t),i=r?.source?.callId,s=typeof i==`string`&&Object.hasOwn(e.callNames,i)?e.callNames[i]:void 0,c=typeof i==`string`?e.pendingCodeOps?.[i]:void 0,l=typeof i==`string`?e.pendingCodeCmds?.[i]:void 0,u=a([`surface`,`sums`,`archived`,`events`,`fileOps`,`timing`,`commands`]);A(u);let d=j(u,t,t.type,r);if(d.tool===Nt&&(u.humanInputs=(u.humanInputs??0)+1),s!==void 0&&s.name===Nt&&e.stepStart!==void 0&&(u.stepWaits=[...e.stepWaits??[],{start:s.start,end:t.time}]),s!==void 0&&(Et(u,ze({seq:t.seq,time:t.time,tool:s.name,argsRaw:s.argsRaw,meta:o?.meta,err:r?.isError===!0})),typeof i==`string`&&S(s.name)!==null)){let e=w(u.commands,i);if(e>=0){let n=u.commands[e],i=qe(r?.content),a=Ue(i.at(-1)??``),s=r?.isError===!0,c={...n,...Xe(i,a),resultSeq:t.seq,err:s};a.exit!==void 0&&delete c.exitInferred;let l=o?.meta?.cwd;if(typeof l==`string`&&l!==``&&(c.cwd=l),a.backgroundAck===!0)c.background=!0,n.background!==!0&&T(u);else if(n.status===`running`){let e=Ke(a,s);c.status=e.status,n.tool!==`run_code`&&(e.exit!==void 0&&(c.exit=e.exit),e.exitInferred===!0&&(c.exitInferred=!0)),c.end=t.time,c.derived=!0}Ye(u,e,c)}}if(c!==void 0&&c.length>0){let e=Ee(s?.argsRaw)?.description;Et(u,c.map(n=>({...n,parent:t.seq,...typeof e==`string`&&e!==``?{program:e}:{}})));let n={};for(let e in u.pendingCodeOps)e!==i&&(n[e]=u.pendingCodeOps[e]);Object.keys(n).length>0?u.pendingCodeOps=n:delete u.pendingCodeOps}if(l!==void 0&&l.length>0){for(let e of l){let n={...e,parent:t.seq};u.commands.push(n),n.status!==`running`&&Je(u,n)}let e={};for(let t in u.pendingCodeCmds)t!==i&&(e[t]=u.pendingCodeCmds[t]);Object.keys(e).length>0?u.pendingCodeCmds=e:delete u.pendingCodeCmds}if(d.tool===`skill`||d.tool===void 0){let e=Mt(r);e!==``&&(d.skill=e,d.tool===void 0&&(d.tool=`skill`),u.sums.tool-=d.tokens,d.cat=`skill`,u.sums.skill+=d.tokens,u.events.push({seq:t.seq,time:t.time,kind:`inject`,form:`instructions`,sub:`skill`,name:e,tokens:d.tokens}))}break}case`assistant/message`:{let r=o?.usage,i=a([`surface`,`sums`,`archived`,`events`,`requests`,`timing`]);A(i);let s=i.systemTokens+i.toolsTokens+i.sums.user+i.sums.inject+i.sums.skill+i.sums.assistant+i.sums.tool,c={time:t.time,seq:t.seq,system:i.systemTokens,tools:i.toolsTokens,user:i.sums.user,inject:i.sums.inject,skill:i.sums.skill,assistant:i.sums.assistant,tool:i.sums.tool,total:s};o&&typeof o.turn==`number`&&(c.turn=o.turn),o&&typeof o.step==`number`&&(c.step=o.step),e.stepStart!==void 0&&(i.stepRequestSeq=c.seq);let l=null;if(typeof r==`object`&&r){let e=D(r.inputTokens),n=D(r.cacheReadTokens),a=D(r.cacheWriteTokens);l=D(r.outputTokens),(e!==null||n!==null||a!==null||l!==null)&&(c.prompt=(e??0)+(n??0)+(a??0),n!==null&&(c.cacheRead=n),l!==null&&(c.output=l),dt(i,t.time,{uncached:e??0,cacheRead:n??0,cacheWrite:a??0,output:l??0}))}i.requests.push(c);let u=e.requests.at(-1);i.turnRuns=(e.turnRuns??E(e.requests))+(u===void 0?c.turn===void 0?0:1:c.turn===u.turn?0:1);let d=pt(i);d.calls+=1;let f=e.stepStart;if(f!==void 0){let e=we(o?.stream,t.time),n=f.firstToken??e.firstToken;if(n!==void 0){let r=e.spans,a=n;for(let e of r)a=Math.min(a,e.start);d.ttftMs+=O(f.time,a),d.genMs+=O(a,t.time);let o=[{kind:`ttft`,start:f.time,end:a}];for(let e of r){let n=Math.min(t.time,e.end);n<=e.start||o.push({kind:e.kind,start:o.length===1?a:e.start,end:n})}i.stepSpans=[...i.stepSpans??[],...o],l!==null&&(d.speedMs=(d.speedMs??0)+O(n,t.time),d.speedTokens=(d.speedTokens??0)+l);let s=e.tally;for(let e of ft)ht(d,e,s.spans[e],s.blocks[e])}}let p=n(t);j(i,t,t.type,p).text!==void 0&&(i.answers=(i.answers??0)+1);break}case`session/end-seed`:{if(o?.inherited!==!0)break;let e=a([]);e.cost={};break}case`plan/mode`:if(o&&typeof o.active==`boolean`){let e=a([`events`]);e.events.push({seq:t.seq,time:t.time,kind:`mode`,name:o.active?`plan.on`:`plan.off`}),A(e)}break;case`compaction/summary`:case`compaction/prune`:{let e=a([`events`]);A(e),o&&Array.isArray(o.shadowedSeqs)&&(e.pendingShadowedSeqs=o.shadowedSeqs.filter(e=>typeof e==`number`),e.pendingShadowEventSeq=t.seq),e.events.push({seq:t.seq,time:t.time,kind:t.type===`compaction/summary`?`compaction`:`prune`,tokens:o&&typeof o.shadowedTokenCount==`number`?o.shadowedTokenCount:0,...t.type===`compaction/summary`&&o&&Array.isArray(o.shadowedSeqs)?{count:o.shadowedSeqs.length}:{}});break}default:return e}}catch{i=void 0}return i===void 0?e:(nt(i,r),i)}const M={maxRequestSteps:1500,maxKeptTurns:300,maxEvents:400,maxNodes:2e3,maxArchiveNodes:400,maxFileOps:400,maxCommands:400,maxCommandChars:4096};function N(e){let t=e.volatile;return typeof t==`function`?t.call(e):e}function P(e){return i.number().min(1).step(1).default(e)}const It=i.object({maxRequestSteps:P(M.maxRequestSteps),maxKeptTurns:P(M.maxKeptTurns),maxEvents:P(M.maxEvents),maxNodes:P(M.maxNodes),maxArchiveNodes:P(M.maxArchiveNodes),maxFileOps:P(M.maxFileOps),maxCommands:P(M.maxCommands),maxCommandChars:P(M.maxCommandChars),defaultPlacement:N(i.union([`all`,`tab`,`sidebar`,`hide`]).default(`all`).loose()),defaultGranularity:N(i.union([`step`,`turn`]).default(`step`).loose()),defaultTrendMode:N(i.union([`total`,`delta`]).default(`total`).loose()),defaultDeltaBase:N(i.union([`step`,`turn`]).default(`step`).loose()),defaultToolSort:N(i.union([`size`,`count`,`name`]).default(`count`).loose()),defaultFileSort:N(i.union([`count`,`lines`,`latest`,`path`,`name`]).default(`lines`).loose()),insightsEntry:N(i.union([`show`,`hide`]).default(`show`).loose()),defaultDurationCurve:N(i.union([`show`,`hide`]).default(`show`).loose()),overviewAutoSteps:N(i.union([`100`,`200`,`300`,`off`]).default(`200`).loose()),defaultOverviewRange:N(i.union([`today`,`7d`,`30d`,`all`]).default(`30d`).loose()),fleetTab:N(i.union([`show`,`hide`]).default(`show`).loose()),promptPrefix:N(i.string().default(``).loose()),promptSuffix:N(i.string().default(``).loose())});function Lt(e){let t=It(e??{});return{maxRequestSteps:t.maxRequestSteps,maxKeptTurns:t.maxKeptTurns,maxEvents:t.maxEvents,maxNodes:t.maxNodes,maxArchiveNodes:t.maxArchiveNodes,maxFileOps:t.maxFileOps,maxCommands:t.maxCommands,maxCommandChars:t.maxCommandChars}}const F=t.object({seq:t.number().int().nonnegative(),time:t.number().optional(),cat:t.enum([`user`,`inject`,`skill`,`assistant`,`tool`]),tokens:t.number().int().nonnegative(),imgs:t.number().int().nonnegative().optional(),gone:t.number().int().nonnegative().optional(),form:t.string().optional(),name:t.string().optional(),text:t.string().optional(),tool:t.string().optional(),err:t.boolean().optional(),skill:t.string().optional(),calls:t.array(t.string()).optional()}).strict(),Rt=t.object({seq:t.number().int().nonnegative(),time:t.number(),tokens:t.number().int().nonnegative()}).strict(),zt=t.object({turn:t.number().optional(),step:t.number().optional(),time:t.number(),seq:t.number(),system:t.number().int().nonnegative(),tools:t.number().int().nonnegative(),user:t.number().int().nonnegative(),inject:t.number().int().nonnegative(),assistant:t.number().int().nonnegative(),tool:t.number().int().nonnegative(),total:t.number().int().nonnegative(),prompt:t.number().int().nonnegative().optional(),skill:t.number().int().nonnegative().optional(),cacheRead:t.number().int().nonnegative().optional(),output:t.number().int().nonnegative().optional(),activeMs:t.number().nonnegative().optional(),stepCount:t.number().int().positive().optional()}).strict(),Bt=t.object({seq:t.number(),time:t.number(),kind:t.enum([`compaction`,`prune`,`inject`,`model`,`mode`]),form:t.string().optional(),tokens:t.number().optional(),count:t.number().optional(),sub:t.string().optional(),name:t.string().optional(),detail:t.string().optional(),from:t.string().optional(),to:t.string().optional(),fromTurn:t.number().optional(),fromStep:t.number().optional(),turn:t.number().optional(),step:t.number().optional()}).strict(),I=t.object({seq:t.number().int().nonnegative(),path:t.string(),kind:t.enum([`read`,`write`,`search`]),tool:t.string(),time:t.number().optional(),err:t.boolean(),added:t.number().int().nonnegative(),removed:t.number().int().nonnegative(),detail:t.string().optional(),hits:t.number().int().positive().optional(),read:t.union([t.object({start:t.number().int().positive(),count:t.number().int().nonnegative()}).strict(),t.object({count:t.number().int().positive(),est:t.literal(!0)}).strict()]).optional(),parent:t.number().int().nonnegative().optional(),program:t.string().optional(),pattern:t.literal(!0).optional(),gone:t.number().int().nonnegative().optional()}).strict(),Vt=t.object({seq:t.number().int().nonnegative(),resultSeq:t.number().int().nonnegative().optional(),time:t.number(),tool:t.string(),cmd:t.string(),cmdTruncated:t.literal(!0).optional(),description:t.string().optional(),cwd:t.string().optional(),timeoutMs:t.number().positive().optional(),background:t.literal(!0).optional(),sandbox:t.string().optional(),codeMode:t.literal(!0).optional(),parent:t.number().int().nonnegative().optional(),turn:t.number().optional(),step:t.number().optional(),start:t.number(),end:t.number().optional(),status:t.enum([`running`,`completed`,`failed`,`killed`]),exit:t.number().int().optional(),exitInferred:t.literal(!0).optional(),signal:t.string().optional(),timedOut:t.literal(!0).optional(),stopped:t.literal(!0).optional(),denied:t.literal(!0).optional(),err:t.boolean(),outChars:t.number().int().nonnegative().optional(),outTruncated:t.literal(!0).optional(),stderr:t.literal(!0).optional(),derived:t.literal(!0).optional(),gone:t.number().int().nonnegative().optional()}).strict(),Ht=Vt.extend({call:t.string().optional()}).strict(),Ut=t.object({runs:t.number().int().nonnegative(),failed:t.number().int().nonnegative(),ms:t.number().nonnegative(),bg:t.number().int().nonnegative()}).strict(),L=t.object({kind:t.enum([`ttft`,`reasoning`,`text`,`toolarg`,`tools`,`other`]),start:t.number(),end:t.number()}).strict(),Wt=t.object({system:t.number().int().nonnegative(),tools:t.number().int().nonnegative(),user:t.number().int().nonnegative(),inject:t.number().int().nonnegative(),skill:t.number().int().nonnegative(),assistant:t.number().int().nonnegative(),tool:t.number().int().nonnegative(),total:t.number().int().nonnegative()}).strict(),Gt=t.object({uncached:t.number().int().nonnegative(),cacheRead:t.number().int().nonnegative(),cacheWrite:t.number().int().nonnegative(),output:t.number().int().nonnegative()}).strict(),Kt=t.object({peak:Gt.optional(),off:Gt.optional()}).strict(),qt=t.record(t.string(),Kt),R=t.record(t.string(),qt),Jt=t.object({calls:t.number().int().nonnegative(),ms:t.number().nonnegative()}).strict(),Yt=t.object({wallMs:t.number().nonnegative(),ttftMs:t.number().nonnegative(),genMs:t.number().nonnegative(),reasoningMs:t.number().nonnegative().optional(),reasoningBlocks:t.number().int().nonnegative().optional(),textMs:t.number().nonnegative().optional(),textBlocks:t.number().int().nonnegative().optional(),toolArgMs:t.number().nonnegative().optional(),toolArgBlocks:t.number().int().nonnegative().optional(),speedTokens:t.number().nonnegative().optional(),speedMs:t.number().nonnegative().optional(),calls:t.number().int().nonnegative(),toolsMs:t.number().nonnegative(),toolCalls:t.number().int().nonnegative(),tools:t.record(t.string(),Jt)}).strict(),Xt=t.object({current:t.string(),minimum:t.string()}).strict(),Zt=t.object({turns:t.number().int().nonnegative(),steps:t.number().int().nonnegative(),injects:t.number().int().nonnegative(),compactions:t.number().int().nonnegative(),prunes:t.number().int().nonnegative(),skills:t.number().int().nonnegative().optional()}).strict(),Qt=t.object({seq:t.number(),total:t.number().int().nonnegative(),prompt:t.number().int().nonnegative().optional()}).strict(),$t=t.object({ok:t.literal(!0),unsupported:Xt.optional(),model:t.string().optional(),provider:t.string().optional(),reasoningEffort:t.string().optional(),contextWindow:t.number().optional(),maxOutputTokens:t.number().positive().optional(),current:Wt,images:t.number().int().nonnegative().optional(),toolCalls:t.number().int().nonnegative().optional(),humanInputs:t.number().int().nonnegative().optional(),answers:t.number().int().nonnegative().optional(),lastUser:t.string().optional(),counts:Zt.optional(),last:Qt.optional(),detailRev:t.number().int().nonnegative().optional(),requests:t.array(zt).optional(),events:t.array(Bt).optional(),cost:R.optional(),timing:Yt.optional(),systems:t.array(Rt).optional(),nodes:t.array(F).optional(),droppedNodes:t.number().int().nonnegative().optional(),archive:t.array(F).optional(),surfaceFloor:t.number().int().nonnegative().optional(),archiveFloor:t.number().int().nonnegative().optional(),fileOps:t.array(I).optional(),fileOpsFloor:t.number().int().nonnegative().optional(),commands:t.array(Vt).optional(),commandsFloor:t.number().int().nonnegative().optional(),commandStats:Ut.optional(),spans:t.array(L).optional()}).strict(),en=t.object({surface:t.array(F),sums:t.object({user:t.number().int().nonnegative(),inject:t.number().int().nonnegative(),skill:t.number().int().nonnegative(),assistant:t.number().int().nonnegative(),tool:t.number().int().nonnegative()}).strict(),systemTokens:t.number().int().nonnegative(),systems:t.array(Rt).optional(),toolsTokens:t.number().int().nonnegative(),model:t.string().optional(),provider:t.string().optional(),reasoningEffort:t.string().optional(),lastModel:t.string().optional(),contextWindow:t.number().optional(),maxOutputTokens:t.number().positive().optional(),requests:t.array(zt),turnRuns:t.number().int().nonnegative().optional(),events:t.array(Bt),archived:t.array(F),cost:R.optional(),archiveFloor:t.number().optional(),timing:Yt.optional(),humanInputs:t.number().int().nonnegative().optional(),answers:t.number().int().nonnegative().optional(),lastUser:t.string().optional(),stepStart:t.object({time:t.number(),firstToken:t.number().optional()}).strict().optional(),stepWaits:t.array(t.object({start:t.number(),end:t.number()}).strict()).optional(),stepApprovals:t.record(t.string(),t.number()).optional(),stepRequestSeq:t.number().optional(),callNames:t.record(t.string(),t.object({name:t.string(),start:t.number(),argsRaw:t.string().optional()}).strict()),pendingShadowedSeqs:t.array(t.number()).optional(),pendingShadowEventSeq:t.number().optional(),detailRev:t.number().int().nonnegative().optional(),fileOps:t.array(I),fileOpsFloor:t.number().int().nonnegative().optional(),commands:t.array(Ht),commandsFloor:t.number().int().nonnegative().optional(),commandStats:Ut.optional(),pendingCodeCmds:t.record(t.string(),t.array(Ht)).optional(),spans:t.array(L),stepSpans:t.array(L).optional(),pendingCodeOps:t.record(t.string(),t.array(I)).optional()});function tn(e,t){let n=Lt(e);return{key:`contextTimeline`,stateSchema:en,wire:{viewSchema:$t,view:e=>t()?bt(e):xt(e,n)},init:()=>it(),apply:(e,t)=>Ft(e,t,n),stateVersion:31}}function z(e){if(!Number.isFinite(e))return null;let t=new Date(e),n=t.getFullYear();return!Number.isFinite(n)||n<1970||n>9999?null:`${String(n).padStart(4,`0`)}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}const nn=t.object({n:t.number().int().nonnegative(),last:t.number()}).strict(),rn=t.object({start:t.number().nonnegative(),day:t.string()}).strict(),an=t.object({tokens:t.number().int().nonnegative(),requests:t.number().int().nonnegative(),cost:R.optional(),turns:t.number().int().nonnegative().optional(),toolCalls:t.number().int().nonnegative().optional(),toolsMs:t.number().nonnegative().optional(),wallMs:t.number().nonnegative().optional(),skills:t.record(t.string(),nn).optional()}).strict(),on=t.object({days:t.record(t.string(),an)}).strict(),sn=t.object({days:t.record(t.string(),an),model:t.string().optional(),provider:t.string().optional(),stepStart:t.number().optional(),lastTurn:t.number().optional(),toolStarts:t.record(t.string(),rn).optional(),skillCalls:t.array(t.string()).optional()});function cn(e){if(typeof e!=`object`||!e)return null;let t=e,n=D(t.inputTokens),r=D(t.cacheReadTokens),i=D(t.cacheWriteTokens),a=D(t.outputTokens);return n===null&&r===null&&i===null&&a===null?null:{uncached:n??0,cacheRead:r??0,cacheWrite:i??0,output:a??0}}function B(e,t,n){let r={...e.days,[t]:n},i=Object.keys(r);if(i.length>400){i.sort();let e=new Set(i.slice(0,i.length-400));r=Object.fromEntries(Object.entries(r).filter(([t])=>!e.has(t)))}return{...e,days:r}}function ln(e){return{tokens:e?.tokens??0,requests:e?.requests??0,...e?.cost===void 0?{}:{cost:e.cost},...e?.turns===void 0?{}:{turns:e.turns},...e?.toolCalls===void 0?{}:{toolCalls:e.toolCalls},...e?.toolsMs===void 0?{}:{toolsMs:e.toolsMs},...e?.wallMs===void 0?{}:{wallMs:e.wallMs},...e?.skills===void 0?{}:{skills:e.skills}}}function un(e,t,n){return B(e,t,{...ln(e.days[t]),...n})}function dn(e,t,n){if(!Number.isFinite(n)||n<0)return e;let r=z(e.stepStart??n);if(r===null)return e;let i=e.toolStarts?.[t];if(i!==void 0&&i.start===n&&i.day===r)return e;let a={...e.toolStarts,[t]:{start:n,day:r}},o=Object.entries(a),s=o.length>100?Object.fromEntries(o.slice(o.length-100)):a;return{...e,toolStarts:s}}function fn(e,t,n){let r=e.toolStarts,i=r?.[t];if(r===void 0||i===void 0)return e;let a=e.days[i.day],o=un(e,i.day,{toolCalls:(a?.toolCalls??0)+1,toolsMs:(a?.toolsMs??0)+O(i.start,n)}),s=Object.fromEntries(Object.entries(r).filter(([e])=>e!==t)),c={...o};return Object.keys(s).length>0?c.toolStarts=s:delete c.toolStarts,c}function pn(e,t,n){let r=z(n);if(r===null)return e;let i=e.days[r],a=i?.skills?.[t];if(a===void 0&&i?.skills!==void 0&&Object.keys(i.skills).length>=100)return e;let o={...i?.skills,[t]:{n:(a?.n??0)+1,last:a===void 0?n:Math.max(a.last,n)}};return B(e,r,{...ln(i),skills:o})}function mn(e){let t=e.data,n=e.type===`developer/message`?t?.message:t,r=typeof n==`object`&&n?n.source:void 0;if(typeof r!=`object`||!r)return``;let i=r;return i.kind===`skill-invocation`&&typeof i.name==`string`?i.name:``}function hn(e){if(typeof e!=`object`||!e)return null;let t=e;if(typeof t.toolCallId==`string`&&t.toolCallId!==``)return t.toolCallId;let n=t.source;if(typeof n!=`object`||!n)return null;let r=n.callId;return typeof r==`string`&&r!==``?r:null}function gn(e,t){if(t.type===`request/header`){let n=t.data?.header?.config;if(typeof n!=`object`||!n)return e;let r=typeof n.model==`string`?n.model:void 0,i=typeof n.provider==`string`?n.provider:void 0,a=r===void 0?e.model:r,o=i===void 0?e.provider:i;return a===e.model&&o===e.provider?e:{...e,...a===void 0?{}:{model:a},...o===void 0?{}:{provider:o}}}if(t.type===`step/start`)return Number.isFinite(t.time)?e.stepStart===t.time?e:{...e,stepStart:t.time}:e;if(t.type===`step/end`){let n=e.stepStart;if(n===void 0)return e;let r=z(n),i=O(n,t.time),a={...r===null||i<=0?e:un(e,r,{wallMs:(e.days[r]?.wallMs??0)+i})};return delete a.stepStart,a}if(t.type===`session/end-seed`)return t.data?.inherited===!0?{days:{}}:e;if(t.type===`user/message`||t.type===`developer/message`){let n=mn(t);return n===``?e:pn(e,n,t.time)}if(t.type===`tool/call`){let n=t.data,r=n?.callId;if(typeof r!=`string`||r===``)return e;let i=dn(e,r,t.time);if(n?.name!==`skill`)return i;let a=i.skillCalls??[];return a.includes(r)?i:{...i,skillCalls:[...a,r].slice(-100)}}if(t.type===`tool/result`){let n=t.data?.message,r=hn(n),i=r===null?e:fn(e,r,t.time),a=i.skillCalls;if(r===null||a===void 0||!a.includes(r))return i;let o=a.filter(e=>e!==r),s={...i};o.length>0?s.skillCalls=o:delete s.skillCalls;let c=Mt(n);return c===``?s:pn(s,c,t.time)}if(t.type!==`assistant/message`)return e;let n=e.stepStart===void 0?t.time:e.stepStart,r=z(n);if(r===null)return e;let i=t.data,a=cn(i?.usage),o=e.days[r],s=o?.cost;a!==null&&e.model!==void 0&&(s=lt(s,e.provider??``,e.model,n,a));let c=typeof i?.turn==`number`&&Number.isFinite(i.turn)?i.turn:void 0,l=c!==void 0&&c!==e.lastTurn,u=(o?.turns??0)+ +!!l,d=B(e,r,{tokens:(o===void 0?0:o.tokens)+(a===null?0:a.uncached+a.cacheRead+a.cacheWrite+a.output),requests:(o===void 0?0:o.requests)+1,...s===void 0?{}:{cost:s},...u>0?{turns:u}:{},...o?.toolCalls===void 0?{}:{toolCalls:o.toolCalls},...o?.toolsMs===void 0?{}:{toolsMs:o.toolsMs},...o?.wallMs===void 0?{}:{wallMs:o.wallMs},...o?.skills===void 0?{}:{skills:o.skills}});return l?{...d,lastTurn:c}:d}function _n(){return{key:`contextActivity`,stateSchema:sn,init:()=>({days:{}}),apply:(e,t)=>gn(e,t),wire:{viewSchema:on,view:e=>({days:Object.fromEntries(Object.entries(e.days).map(([e,t])=>[e,{...t,...t.cost===void 0?{}:{cost:ut(t.cost)},...t.skills===void 0?{}:{skills:Object.fromEntries(Object.entries(t.skills).map(([e,t])=>[e,{...t}]))}}]))})},stateVersion:5}}const vn=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`bmp`,`ico`,`svg`]);function yn(e){return e.slice(Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`))+1)}function bn(e){let t=yn(e),n=t.lastIndexOf(`.`);return n<0?``:t.slice(n+1).toLowerCase()}function xn(e){return vn.has(bn(e))}function V(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function Sn(e){if(typeof e!=`object`||!e)return;let t=e,n=V(t.width),r=V(t.height);return n!==void 0&&r!==void 0?{width:n,height:r}:void 0}function Cn(e){if(typeof e!=`object`||!e)return null;let t=e,n=typeof t.type==`string`?t.type:t.kind;if(n!==`image`&&n!==`file`||t.attachment===null||typeof t.attachment!=`object`)return null;let r=t.attachment;if(typeof r.attachmentId!=`string`||r.attachmentId===``)return null;let i=typeof r.name==`string`&&r.name!==``?r.name:void 0,a=V(r.bytes);if(n===`file`)return{kind:`file`,attachmentId:r.attachmentId,...i===void 0?{}:{name:i},...a===void 0?{}:{bytes:a}};let o=Sn(r.originalDimensions),s=V(r.width),c=V(r.height),l=typeof r.mediaType==`string`&&r.mediaType!==``?r.mediaType:void 0;return{kind:`image`,attachmentId:r.attachmentId,...i===void 0?{}:{name:i},...l===void 0?{}:{mediaType:l},...a===void 0?{}:{bytes:a},...s===void 0?{}:{width:s},...c===void 0?{}:{height:c},...o===void 0?{}:{originalDimensions:o}}}function wn(){let e=m();return{used:e.used_heap_size,limit:e.heap_size_limit}}const Tn=()=>{};function H(e=wn){let t=()=>{try{let{used:t,limit:n}=e();return!Number.isFinite(t)||!Number.isFinite(n)||n<=0||t<n*.6666666666666666}catch{return!0}},n=Promise.resolve();return{admit(e){let r=n.then(()=>t()?e():void 0);return n=r.then(Tn,Tn),r}}}function En(e){return typeof e?.fetch?.register==`function`?e.fetch.register.bind(e.fetch):void 0}function U(e,t,n,r,i){let a=En(t);if(a===void 0)return!1;try{e.effect(()=>a({path:n,methods:[`POST`],requestBody:`buffered`,fetch:r}),i)}catch{return!1}return!0}const Dn={"image/png":`png`,"image/jpeg":`jpg`,"image/webp":`webp`,"image/gif":`gif`};function W(e){return Response.json(e,{headers:{"cache-control":`no-store`}})}function G(e,t){return W({ok:!1,error:{code:e,message:t}})}function On(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function K(e,t,n){if(n>8)return null;if(Array.isArray(e)){for(let r of e){let e=K(r,t,n+1);if(e!==null)return e}return null}if(typeof e!=`object`||!e)return null;let r=Cn(e);if(r!==null&&r.attachmentId===t)return r;for(let r of Object.values(e)){let e=K(r,t,n+1);if(e!==null)return e}return null}function kn(e,t){for(let n of e)try{let e=K(n,t,0);if(e!==null)return e}catch{}return null}function An(e){let t=yn(e.name??``);if(t!==``&&xn(t))return t;let n=e.mediaType===void 0?void 0:Dn[e.mediaType];return n===void 0?null:`attachment.${n}`}function jn(e){let t=l(l(l(e)));return c(t)!==`v1`||c(l(t))!==`attachments`?null:d(l(l(t)),`cache`,`dsh-context`,`previews`)}function Mn(e,t){if(typeof e?.fileHostPath!=`function`)return null;try{let n=e.fileHostPath({attachmentId:t.attachmentId,name:t.name??``,bytes:t.bytes??0});return typeof n==`string`&&n!==``?n:null}catch{return null}}async function Nn(e,t){if(typeof e?.imageHostPath!=`function`)return null;let n;try{n=e.imageHostPath({attachmentId:t.attachmentId,...t.mediaType===void 0?{}:{mediaType:t.mediaType},...t.bytes===void 0?{}:{bytes:t.bytes},...t.width===void 0?{}:{width:t.width},...t.height===void 0?{}:{height:t.height},...t.name===void 0?{}:{name:t.name}})}catch{return null}if(typeof n!=`string`||n===``)return null;let r=An(t);if(r===null)return null;let i=jn(n);if(i===null)return null;let u=d(i,c(l(n)),c(n),r);try{await s(l(u),{recursive:!0});try{await o(n,u)}catch(e){e instanceof Error&&`code`in e&&e.code===`EEXIST`||await a(n,u)}return u}catch{return null}}async function Pn(e,t){return t.kind===`file`?Mn(e,t):await Nn(e,t)}function Fn(e,t=H()){e.inject([`connection`],n=>{U(n,n.get(`connection`),`/api/dsh-context/attachment`,async n=>{let r,i;try{let e=On(await n.json());r=e?.sessionId,i=e?.attachmentId}catch{return G(`dsh-context/bad-request`,`body is not JSON`)}if(typeof r!=`string`||r===``)return G(`dsh-context/bad-request`,`missing sessionId`);if(typeof i!=`string`||i===``)return G(`dsh-context/bad-request`,`missing attachmentId`);try{let n=e.get(`sessionQuery`),a=typeof n?.observeSession==`function`?n.observeSession.bind(n):void 0;if(a===void 0)return W({ok:!0,value:null});let o=e.get(`attachments`);return W({ok:!0,value:await t.admit(async()=>{let e=await a(r,{projectionMode:`none`});try{let t=e?.events;if(!Array.isArray(t))return null;let n=kn(t,i);if(n===null)return null;let r=await Pn(o,n);return r===null?null:{path:r}}finally{let t=e?.[Symbol.dispose];typeof t==`function`&&t.call(e)}})??null})}catch(e){return G(`gateway/internal`,e instanceof Error?e.message:String(e))}},`dsh-context: attachment route`)})}function In(e){if(!e.startsWith(`mcp__`))return;let t=e.lastIndexOf(`__`);if(t<5)return;let n=e.slice(5,t);return n.length>0?n:void 0}function Ln(e){let t=In(e);return t===void 0?void 0:`mcp:${t}`}function Rn(e){return zn[e]}const zn=Object.freeze({read:`@deepseek-ai/dsh-tool-fs`,write:`@deepseek-ai/dsh-tool-fs`,edit:`@deepseek-ai/dsh-tool-fs`,read_image:`@deepseek-ai/dsh-tool-fs`,glob:`@deepseek-ai/dsh-tool-fs-search`,grep:`@deepseek-ai/dsh-tool-fs-search`,str_replace_editor:`@deepseek-ai/dsh-tool-str-replace-editor`,bash:`@deepseek-ai/dsh-tool-bash`,pwsh:`@deepseek-ai/dsh-tool-pwsh`,web_search:`@deepseek-ai/dsh-tool-web`,web_fetch:`@deepseek-ai/dsh-tool-web`,job_output:`@deepseek-ai/dsh-tool-jobs`,job_list:`@deepseek-ai/dsh-tool-jobs`,job_kill:`@deepseek-ai/dsh-tool-jobs`,ask_user_question:`@deepseek-ai/dsh-tool-ask-user`,plan:`@deepseek-ai/dsh-plan-mode`,exit_plan_mode:`@deepseek-ai/dsh-plan-mode`,skill:`@deepseek-ai/dsh-tool-skill`,todo_write:`@deepseek-ai/dsh-tool-todo`,subagent:`@deepseek-ai/dsh-tool-subagent`,subagent_fork:`@deepseek-ai/dsh-tool-subagent`,send_message:`@deepseek-ai/dsh-tool-subagent-control`,interrupt_agent:`@deepseek-ai/dsh-tool-subagent-control`,list_agents:`@deepseek-ai/dsh-tool-subagent-control`,ralph:`@deepseek-ai/dsh-tool-ralph`,workflow:`@deepseek-ai/dsh-tool-workflow`,run_code:`@deepseek-ai/dsh-tools`,schedule_create:`@deepseek-ai/dsh-schedule`,schedule_list:`@deepseek-ai/dsh-schedule`,schedule_delete:`@deepseek-ai/dsh-schedule`,create_goal:`@deepseek-ai/dsh-tool-goal`,get_goal:`@deepseek-ai/dsh-tool-goal`,update_goal:`@deepseek-ai/dsh-tool-goal`,lsp:`@deepseek-ai/dsh-tool-lsp`}),Bn=f(g(import.meta.url)),q=new Map;function Vn(e){let t=l(e);for(let e=0;e<12;e++){let e=q.get(t);if(e!==void 0)return e;let n=d(t,`package.json`);if(h(n))try{let e=JSON.parse(ee(n,`utf8`)).name;if(typeof e==`string`&&e)return q.set(t,e),e}catch{}let r=l(t);if(q.set(t,void 0),r===t)return;t=r}}const Hn=/:\d+:\d+$/,Un=Symbol.for(`cordis.original`);function Wn(e){return e?.[Un]??e}const Gn=Vn(Bn);function Kn(e){if(e)for(let t of e.split(`
|
|
15
|
+
`).slice(1)){let e=t.trim();if(!e.startsWith(`at `))continue;e=e.slice(3),e.startsWith(`async `)&&(e=e.slice(6)),e=e.replace(/\)\s*$/,``);let n=Hn.exec(e);if(!n)continue;let r=e.slice(0,-n[0].length);if(r.includes(`(`)&&(r=r.slice(r.lastIndexOf(`(`)+1)),r.startsWith(`file://`))try{r=f(g(r))}catch{continue}else if(!/^[A-Za-z]:[\\/]/.test(r)&&!r.startsWith(`/`)&&!r.startsWith(`\\\\`))continue;else r=f(r);if(r===Bn)continue;let i=Vn(r);if(i!==void 0&&i!==Gn)return i}}function qn(e){let t=new Map,n=new WeakSet,r=e.fiber.name,i,a=[],o=e=>{if(!e||typeof e!=`object`||n.has(e))return;let o=e.register;if(typeof o!=`function`)return;n.add(e);let s=o.attributedOriginal??o;if(typeof s!=`function`)return;let c=e,l=function(e){let n=e?.name,a=i;(!a||a===`root`||a===r)&&(a=Kn(Error().stack));let o=s.call(this,e);return typeof n==`string`&&a&&a!==`root`&&a!==r&&a!==Gn&&(t.set(n,a),typeof o==`function`)?()=>{try{return o()}finally{t.delete(n)}}:o};l.attributedOriginal=s,c.register=l,a.push(()=>{c.register===l&&(c.register=s)})};e.on(`internal/get`,(e,t,n,r)=>{if(t!==`tools`)return r();let a=r();return i=e.fiber.name,o(Wn(a)),a}),e.effect(()=>()=>{for(let e of a.splice(0))e()},`tools.register attribution`);let s=Wn(e.get(`tools`,!1));o(s);let c=new Set;try{let e=s?.layers?.global?.tools;if(e!==void 0&&typeof e.entries==`function`)for(let[t]of e.entries())c.add(t)}catch{}return{ownerOf:e=>Ln(e)??t.get(e)??Rn(e)??(c.has(e)?`<unknown-plugin>`:void 0)}}function J(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}const Jn=[`llm-deepseek`,`web-deepseek-api`,`web-search-deepseek`],Y=`https://api.deepseek.com`;function Yn(e){let t=typeof e==`string`?Number(e):e;return typeof t==`number`&&Number.isFinite(t)&&t>=0?t:null}function Xn(e){let t=[],n=e.get(`llm`);if(typeof n?.listConfigurableProviders==`function`)try{let e=n.listConfigurableProviders();if(Array.isArray(e))for(let n of e)try{let e=J(n);if(e===null||e.provider!==`deepseek-official`)continue;let r=e.settingsNs;typeof r==`string`&&r!==``&&!t.includes(r)&&t.push(r)}catch{continue}}catch{}for(let e of Jn)t.includes(e)||t.push(e);return t}function Zn(e){let t=e.get(`settings`);if(typeof t?.describe!=`function`)return[];let n;try{n=t.describe({redactSecrets:!0})}catch{return[]}if(!Array.isArray(n))return[];let r=new Map;for(let e of n)try{let t=J(e);if(t===null)continue;let n=t.ns,i=J(t.value);if(typeof n!=`string`||i===null||r.has(n))continue;r.set(n,i)}catch{continue}let i=[];for(let t of Xn(e)){let e=r.get(t);if(e===void 0)continue;let n=e.apiKeyEnv;if(typeof n!=`string`||n===``)continue;let a=e.baseURL;i.push({apiKeyEnv:n,baseURL:typeof a==`string`&&a!==``?a:void 0})}return i}function Qn(e){if(e===void 0)return Y;try{let t=new URL(e);return t.protocol!==`https:`&&t.protocol!==`http:`?Y:t.origin}catch{return Y}}async function $n(e){let t=e.get(`credentials`),n=typeof t?.resolve==`function`?t.resolve.bind(t):void 0;if(n===void 0)return null;let r=new Set;for(let t of Zn(e)){if(r.has(t.apiKeyEnv))continue;r.add(t.apiKeyEnv);let e;try{e=await n(t.apiKeyEnv)}catch{continue}let i=typeof e?.value==`string`?e.value:``;if(i!==``)return{baseUrl:Qn(t.baseURL),apiKey:i}}return null}function er(e){let t=J(e);if(t===null)return null;let n=Array.isArray(t.balance_infos)?t.balance_infos:[],r=[];for(let e of n)try{let t=J(e);if(t===null)continue;let n=t.currency,i=Yn(t.granted_balance),a=Yn(t.topped_up_balance);if(typeof n!=`string`||n===``||i===null||a===null)continue;r.push({currency:n,total:i+a,granted:i,toppedUp:a})}catch{continue}return r.length>0?{isAvailable:t.is_available===!0,balances:r}:null}let tr=(e,t)=>fetch(e,t),X=null;async function nr(e){if(X!==null)return X;X=(async()=>{let t=null;try{let n=await tr(e.baseUrl+`/user/balance`,{headers:{accept:`application/json`,authorization:`Bearer `+e.apiKey},signal:AbortSignal.timeout(1e4)});n.ok&&(t=er(await n.json()))}catch{}return t})();let t=X;try{return await t}finally{X=null}}function rr(e){e.inject([`connection`],t=>{U(t,t.get(`connection`),`/api/dsh-context/balance`,async()=>{let t=await $n(e),n=t===null?null:await nr(t);return Response.json({ok:!0,value:n},{headers:{"cache-control":`no-store`}})},`dsh-context: balance route`)})}const ir=2e3,ar={now:()=>te.now(),sleep:e=>new Promise(t=>setTimeout(t,e)),minRestMs:25,workBudgetMs:8e3,roundPauseMs:2e3};function or(e){let t=J(J(e)?.header);return t===null||typeof t.id!=`string`||t.id===``?null:t}const sr=[`contextActivity`,`contextTimeline`];function cr(e,t){try{let n=J(J(e.cachedSnapshot(t,sr))?.values);return n!==null&&n.contextActivity!==void 0&&n.contextTimeline!==void 0}catch{return!1}}async function lr(e,t,n){let i=await e.open(t,`read`,{signal:n}),a;try{let e=J(await i.read(0,void 0,{signal:n}))?.events;a=Array.isArray(e)?e:[]}catch(e){try{await i.close()}catch{}throw e}return await i.close(),{header:i.header,inheritedEventCount:i.inheritedEventCount,events:[...a,...r(a)]}}function ur(e,t){if(e===null||typeof e.get!=`function`)return!1;try{return e.get(t)!==void 0}catch{return!0}}async function dr(e,t,n,r,i,a,o){let{header:s,inheritedEventCount:c,events:l}=r,u={},d=0;for(let e=ir;;e+=ir){let n=e>=l.length,r=o();u=J(t.restore(u,n?l:l.slice(0,e),0,s,c))?.checkpoint??{};let f=o()-r;if(d+=f,n)break;if(await a(f),i.aborted)return{outcome:`aborted`,workMs:d}}let f;try{f=t.prepare(s.id,{seed:l,meta:structuredClone(s),inheritedEventCount:c,eventState:`shared-frozen`})}catch(e){if(ur(n,s.id))return{outcome:`live`,workMs:d};throw e}t.hydrate(f,u,l,0);try{await t.write(f)}catch(t){e.logger.warn(`dsh-context: projection backfill write-back for "${s.id}" failed (cache stays stale): ${Z(t)}`)}return{outcome:`done`,workMs:d}}function fr(e){try{return String(J(e)?.name).startsWith(`SessionFormatUnsupported`)}catch{return!1}}function Z(e){try{return String(e)}catch{return`unprintable error`}}function pr(e,t=H(),n=ar){let r=!1,i=!1,a=null,o=()=>{r&&!i&&a!==null&&(i=!0,a())},s=e.inject([`connection`],e=>{U(e,e.get(`connection`),`/api/dsh-context/backfill`,()=>(r=!0,o(),Response.json({ok:!0},{headers:{"cache-control":`no-store`}})),`dsh-context: backfill route`)}),c=e.inject([`sessionQuery`,`sessionProjectionCache`,`sessionPersistence`,`sessions`],r=>{let i=r,s=J(i.sessionQuery),c=J(i.sessionProjectionCache),l=J(i.sessionPersistence);if(s===null||typeof s.listSessions!=`function`||c===null||typeof c.cachedSnapshot!=`function`||typeof c.coldSnapshot!=`function`||l===null||typeof l.open!=`function`)return;let u=J(i.sessions),d=J(e.sessionProjections),f=d!==null&&typeof d.restore==`function`&&typeof d.hydrate==`function`&&u!==null&&typeof u.prepare==`function`&&typeof c.write==`function`?{restore:d.restore.bind(d),hydrate:d.hydrate.bind(d),prepare:u.prepare.bind(u),write:c.write.bind(c)}:null,p=new AbortController,m=async()=>{let r=await s.listSessions(p.signal);if(!Array.isArray(r))return;let i=0,a=0,o=!1,d=0,m=async e=>{if(p.signal.aborted)return;let t;try{await Promise.race([n.sleep(e),new Promise(e=>{t=()=>{e()},p.signal.addEventListener(`abort`,t,{once:!0})})])}finally{p.signal.removeEventListener(`abort`,t)}},h=async t=>{if(d+=t,d>=n.workBudgetMs){d=0,e.logger.info(`dsh-context: projection backfill pausing after ${Math.round(n.workBudgetMs/1e3)}s of fold work; resuming in ${Math.round(n.roundPauseMs/1e3)}s`),await m(n.roundPauseMs);return}await m(Math.max(n.minRestMs,t))};for(let s of r){if(p.signal.aborted)return;let r=or(s);if(r===null||typeof r.cwd!=`string`||ur(u,r.id)||cr(c,r))continue;let d=n.now(),m=0;try{let a=await t.admit(async()=>{let t=await lr(l,r.id,p.signal);if(f!==null&&t.events.length>ir){let r=await dr(e,f,u,t,p.signal,h,n.now);return m=r.workMs,r.outcome}return c.coldSnapshot(t.header,t.inheritedEventCount,t.events),`done`});if(a===void 0){o=!0;break}if(a===`aborted`)return;a===`done`&&i++}catch(t){fr(t)?(a++,e.logger.debug(`dsh-context: projection backfill skipped "${r.id}" (${Z(t)})`)):e.logger.warn(`dsh-context: projection backfill skipped "${r.id}" (${Z(t)})`)}await h(Math.max(0,n.now()-d-m))}i>0&&e.logger.info(`dsh-context: projection rows backfilled for ${i} session(s)`),o&&e.logger.info(`dsh-context: projection backfill stopped early under heap pressure (remaining sessions refold on their next live activity)`),a>0&&e.logger.info(`dsh-context: projection backfill skipped ${a} session(s) (legacy log format is not migratable; sources left unchanged)`)};return a=()=>{m().catch(t=>{p.signal.aborted||e.logger.warn(`dsh-context: projection backfill stopped early (${Z(t)})`)})},o(),()=>{p.abort()}});return()=>{for(let e of[s,c])e?.dispose?.()}}function mr(e){let t=e?.revision;return typeof t==`string`&&t!==``?t:void 0}function hr(e){return{rev:e.rev,head:e.head}}function gr(e){return{rev:e.detailRev??0,head:bt(e)}}function _r(e){return Response.json(e,{headers:{"cache-control":`no-store`}})}function vr(e,t){return _r({ok:!1,error:{code:e,message:t}})}function yr(e,t,n=H()){let r={live:!1},i=new Map;return e.inject([`connection`,`sessions`],a=>{let o=a.get(`sessions`),s=typeof o?.get==`function`?o.get.bind(o):void 0;if(s===void 0)return;let c=e.sessionProjections;if(U(a,a.get(`connection`),`/api/dsh-context/detail`,async r=>{let a,o=!1;try{let e=await r.json();a=typeof e==`object`&&e?e.sessionId:void 0,o=typeof e==`object`&&!!e&&e.head===!0}catch{return vr(`dsh-context/bad-request`,`body is not JSON`)}if(typeof a!=`string`||a===``)return vr(`dsh-context/bad-request`,`missing sessionId`);try{let r=s(a);if(r!=null){let e=c.stateOf(r,`contextTimeline`);return _r(e===void 0?{ok:!0,value:null}:{ok:!0,value:o?gr(e):k(e,t)})}let l=e.get(`sessionQuery`),u=typeof l?.observeSession==`function`?l.observeSession.bind(l):void 0;return _r(u===void 0?{ok:!0,value:null}:{ok:!0,value:await n.admit(async()=>{let n=await u(a,{projectionMode:`none`});try{let r=e.get(`sessionPersistence`),s=mr(n);if(s!==void 0){let e=i.get(a);if(e!==void 0&&e.revision===s&&e.persistence===r)return i.delete(a),i.set(a,e),o?hr(e.value):e.value}let c=n?.events;if(!Array.isArray(c))return null;let l=it(),u=0;for(let e of c)l=Ft(l,e,t),++u%1e3==0&&await new Promise(e=>setTimeout(e,0));if(s!==void 0){let e=k(l,t);i.delete(a),i.set(a,{persistence:r,revision:s,value:e});for(let e of i.keys()){if(i.size<=4)break;i.delete(e)}return o?hr(e):e}return o?gr(l):k(l,t)}finally{let e=n?.[Symbol.dispose];typeof e==`function`&&e.call(n)}})??null})}catch(e){return vr(`gateway/internal`,e instanceof Error?e.message:String(e))}},`dsh-context: detail route`))return r.live=!0,()=>{r.live=!1}}),r}const br=`0.2.0-rc.2`;function xr(e){return e===`rc`?3:e===`beta`?2:1}function Sr(e){let t=/^v?(\d+)\.(\d+)\.(\d+)(?:-(alpha|beta|rc)(?:\.(\d+))?)?(?:\+[0-9a-z.-]+)?$/i.exec(e.trim());if(t===null)return null;let n=t[4]?.toLowerCase();return{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3]),rank:n===void 0?4:xr(n),serial:t[5]?Number(t[5]):0}}function Cr(e,t){return e.major===t.major?e.minor===t.minor?e.patch===t.patch?e.rank===t.rank?e.serial-t.serial:e.rank-t.rank:e.patch-t.patch:e.minor-t.minor:e.major-t.major}function wr(e,t=br){let n=Sr(e),r=Sr(t);return n===null||r===null||Cr(n,r)>=0}const Tr=t.object({name:t.string(),tokens:t.number().int().nonnegative(),description:t.string().optional(),plugin:t.string().optional(),schema:t.unknown().optional()}).strict(),Er=t.object({seq:t.number(),time:t.number(),system:t.string().optional(),systemTokens:t.number().int().nonnegative().optional(),tools:t.array(Tr)}).strict(),Dr=t.object({headers:t.array(Er)}).strict(),Or=t.object({name:t.string(),tokens:t.number().int().nonnegative(),plugin:t.string().optional()}).strict(),kr=t.object({headers:t.array(t.object({seq:t.number(),time:t.number(),systemTokens:t.number().int().nonnegative().optional(),tools:t.array(Or)}).strict())}).strict();function Ar(e){if(e.type!==`request/header`)return null;let t=e.data?.header;if(typeof t!=`object`||!t)return null;let n=t,r=Array.isArray(n.tools)?n.tools:[];return{seq:e.seq,time:e.time,tools:r.map(e=>{let t=typeof e==`object`&&e?e:{},n={name:typeof t.name==`string`?t.name:`?`,tokens:he(e)};return typeof t.plugin==`string`&&t.plugin!==``&&(n.plugin=t.plugin),n})}}function jr(e){return{key:`contextHeaders`,stateSchema:Dr,wire:{viewSchema:kr,view:t=>({headers:t.headers.map(t=>{let n={seq:t.seq,time:t.time,tools:t.tools.map(t=>{let n={name:t.name,tokens:t.tokens},r=t.plugin??(e===void 0?void 0:e(t.name));return r!==void 0&&(n.plugin=r),n})},r=t.systemTokens??(typeof t.system==`string`&&t.system!==``?re(t.system):void 0);return r!==void 0&&(n.systemTokens=r),n})})},init:()=>({headers:[]}),apply:(e,t)=>{let n=Ar(t);if(n===null)return e;let r=e.headers.at(-1);if(r!==void 0&&r.seq===n.seq)return e;let i=[...e.headers,n];return{headers:i.length>50?i.slice(-50):i}},stateVersion:1}}const Mr=t.object({});function Nr(e,t,n){let r=()=>n;return{key:e,stateSchema:Mr,init:()=>({}),apply:e=>e,wire:{viewSchema:t,view:r},schema:t,view:r,stateVersion:1}}function Pr(e){return Nr(`contextTimeline`,$t,{ok:!0,unsupported:{current:e,minimum:br},current:{system:0,tools:0,user:0,inject:0,skill:0,assistant:0,tool:0,total:0},requests:[],events:[],nodes:[],droppedNodes:0,archive:[]})}function Fr(){return Nr(`contextHeaders`,kr,{headers:[]})}function Ir(){return Nr(`contextActivity`,on,{days:{}})}const Lr=1e5;function Rr(e){return Q(e)?.full===!0}function zr(e){return Response.json(e,{headers:{"cache-control":`no-store`}})}function Br(e,t){return zr({ok:!1,error:{code:e,message:t}})}function Q(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function Vr(e){if(!Array.isArray(e))return``;let t=``;for(let n of e){let e=Q(n)?.text;typeof e==`string`&&(t+=e)}return t}const Hr=/^\s*<system-reminder>[\s\S]*?<\/system-reminder>\s*/;function Ur(e,t){return e.length>t?{text:e.slice(0,t)+`…`,cut:!0}:{text:e,cut:!1}}function Wr(e){let t=e.mode;if(t!==`one-shot`&&t!==`continuable`)return null;let n={mode:t};for(let t of[`label`,`provider`,`agentProvider`,`agentModel`,`agentReasoningEffort`,`persona`]){let r=e[t];typeof r==`string`&&r!==``&&(n[t]=r)}return n}const Gr=/^Team message \S+ from [^:]{1,64}:\s*/,Kr=/^(?:Agent \S+ sent a message: |Team message from [^:\n]{1,64}:\s*)/;function qr(e,t,n){let r=Q(n.source),i=r?.kind,a=null;if(i===`agent-message`||i===`team-message`){let o=Vr(n.content);if(o=o.replace(i===`team-message`?Gr:Kr,``),o.trim()===``)return null;a={seq:e,time:t,kind:i===`agent-message`?`relay`:`mailbox`,text:o};let s=i===`agent-message`?r?.senderSessionId:r?.senderId;typeof s==`string`&&s!==``&&(a.from=s);let c=r?.senderName;typeof c==`string`&&c!==``&&(a.fromName=c)}else if(i===`subagent-settled`){let i=r?.summary,o=typeof i==`string`&&i.trim()!==``?i:Vr(n.content);if(o.trim()===``)return null;a={seq:e,time:t,kind:`settled`,text:o};let s=r?.senderSessionId;typeof s==`string`&&s!==``&&(a.from=s)}if(a===null)return null;let o=Ur(a.text,400);return a.text=o.text,a}function Jr(e){return e===null||e.kind===`user`}function Yr(e){let t=Q(e.member);if(t===null||typeof t.name!=`string`||t.name===``)return null;let n={name:t.name,description:typeof t.description==`string`?t.description:``};return typeof t.provider==`string`&&t.provider!==``&&(n.provider=t.provider),(t.context===`fresh`||t.context===`fork`)&&(n.context=t.context),n}function Xr(e,t){for(let n=e.length-1;n>=0;n--){let r=Q(e[n]);if(r===null||r.type!==`assistant/message`)continue;let i=Q(Q(r.data)?.message)?.content;if(!Array.isArray(i))continue;let a=``;for(let e of i){let t=Q(e);t?.type===`text`&&typeof t.text==`string`&&(a+=t.text)}if(a.trim()===``)continue;let o=typeof r.time==`number`&&Number.isFinite(r.time)?r.time:0,s=Ur(a,t);return{time:o,text:s.text,cut:s.cut}}return null}function Zr(e,t=!1){let n=t?Lr:1600,r=t?Lr:300,i,a,o=!1,s=[],c=new Map;for(let t of e){let e=Q(t);if(e===null)continue;let r=e.type;if(typeof r!=`string`)continue;let l=typeof e.seq==`number`&&Number.isFinite(e.seq)?e.seq:0,u=typeof e.time==`number`&&Number.isFinite(e.time)?e.time:0,d=Q(e.data);if(d===null)continue;if(r===`subagent/descriptor`){let e=Wr(d);e!==null&&(i=e);continue}if(r===`team/member`){let e=Yr(d);e!==null&&c.set(e.name,e);continue}if(r!==`user/message`)continue;let f=qr(l,u,d);if(f!==null){f.text.endsWith(`…`)&&(o=!0),s.push(f);continue}if(a===void 0&&Jr(Q(d.source))){let e=Vr(d.content).replace(Hr,``);if(e.trim()!==``){let t=Ur(e,n);a=t.text,t.cut&&(o=!0)}}}s.sort((e,t)=>t.seq-e.seq),s.length>40&&(s.length=40,o=!0);let l=Xr(e,r);return l!==null&&l.cut&&(o=!0),{...i===void 0?{}:{descriptor:i},...a===void 0?{}:{initialPrompt:a},...l===null?{}:{lastReply:{time:l.time,text:l.text}},...c.size>0?{roster:[...c.values()]}:{},messages:s,truncated:o}}function Qr(e,t=H()){e.inject([`connection`],n=>{U(n,n.get(`connection`),`/api/dsh-context/fleet`,async n=>{let r,i=!1;try{let e=await n.json();r=Q(e)?.sessionId,i=Rr(e)}catch{return Br(`dsh-context/bad-request`,`body is not JSON`)}if(typeof r!=`string`||r===``)return Br(`dsh-context/bad-request`,`missing sessionId`);try{let n=e.get(`sessionQuery`),a=typeof n?.observeSession==`function`?n.observeSession.bind(n):void 0;return zr(a===void 0?{ok:!0,value:null}:{ok:!0,value:await t.admit(async()=>{let e=await a(r,{projectionMode:`none`}),t=e?.events;if(!Array.isArray(t))return null;try{return Zr(t,i)}finally{let t=e?.[Symbol.dispose];typeof t==`function`&&t.call(e)}})??null})}catch(e){return Br(`gateway/internal`,e instanceof Error?e.message:String(e))}},`dsh-context: fleet route`)})}function $r(e){if(typeof e==`object`&&e&&typeof e.get==`function`){let t=e.get;return()=>{let e=t();return typeof e==`string`?e:``}}let t=typeof e==`string`?e:``;return()=>t}function ei(e){return()=>{let t=e();return t.trim().length===0?``:t}}const ti=1e3;function ni(e,t){e.inject([`systemPrompt`],e=>{let n=e.systemPrompt;n!=null&&typeof n.section==`function`&&typeof n.getSectionOrder==`function`&&(n.section({name:`dsh-context:prompt-prefix`,order:n.getSectionOrder(`HARNESS_IDENTITY`)-ti,text:ei($r(t.promptPrefix)),interpolate:!1}),n.section({name:`dsh-context:prompt-suffix`,order:n.getSectionOrder(`DEPLOYMENT_PERSONA_SUFFIX`)+ti,text:ei($r(t.promptSuffix)),interpolate:!1}))})}function ri(e){if(typeof e!=`object`||!e)return!1;let t=e.id;return typeof t!=`string`||t===``}function ii(e){let t;for(let[n,r]of e.entries()){if(!ri(r)){t?.push(r);continue}t??=e.slice(0,n),t.push({...r,id:`dshctx-`+ne()})}return t}function ai(e){e.on(`agent/pre-step`,async(e,t)=>{let n=await t();try{if(n.kind!==`enter`||!Array.isArray(n.messages))return n;let e=ii(n.messages);return e===void 0?n:{...n,messages:e}}catch{return n}},{prepend:!0})}function $(e){return typeof e==`string`&&e!==``?e:void 0}async function oi(e){if(!(e===null||typeof e!=`object`&&typeof e!=`function`))try{let t=e[Symbol.asyncDispose];if(typeof t==`function`){await t.call(e);return}let n=e[Symbol.dispose];typeof n==`function`&&n.call(e)}catch{}}function si(e){let t=J(e);return t===null||typeof t.name!=`string`||t.name===``?null:{name:t.name,description:typeof t.description==`string`?t.description:``,...typeof t.path==`string`&&t.path!==``?{path:t.path}:{},...typeof t.source==`string`&&t.source!==``?{source:t.source}:{}}}async function ci(e,t){if(t===void 0)return{};let n=J(e.get(`sessionQuery`));if(typeof n?.observeSession!=`function`)return{};let r;try{r=await n.observeSession.call(n,t)}catch{return{}}try{let e=J(r),t=$(J(e?.header)?.cwd),n=$(J(J(e?.projections)?.values)?.agentPreset);return{...t===void 0?{}:{cwd:t},...n===void 0?{}:{agentPreset:n}}}finally{await oi(r)}}async function li(e,t,n){let r=J(e.get(`agentPresets`)),i;if(t!==void 0){let n=J(e.get(`agents`));if(typeof n?.get==`function`)try{i=n.get.call(n,t)}catch{i=void 0}}if(i!=null&&typeof r?.serviceFor==`function`){let e=J(r.serviceFor.call(r,i,`skills`));if(e!==null&&typeof e.list==`function`)return{registry:e,scope:i,lease:void 0}}let a=J(e.get(`skills`));if(a===null||typeof a.list!=`function`)return null;let o,s;if(typeof r?.acquireScope==`function`)try{s=await r.acquireScope.call(r,n),o=J(s)?.key}catch{s=void 0}return{registry:a,scope:o,lease:s}}function ui(e){e.inject([`connection`],t=>{U(t,t.get(`connection`),`/api/dsh-context/skills`,async t=>{let n=null,r;try{let i=J(await t.json()),a=$(i?.sessionId),o=await ci(e,a),s=o.cwd??$(i?.cwd),c=await li(e,a,o.agentPreset);if(c!==null){r=c.lease;let e=await c.registry.list({...s===void 0?{}:{cwd:s},...c.scope===void 0?{}:{scope:c.scope}}),t=Array.isArray(e)?e:[],i=[];for(let e of t){let t=si(e);if(t!==null&&i.push(t),i.length>=500)break}n={skills:i}}}catch{}finally{await oi(r)}return Response.json({ok:!0,value:n},{headers:{"cache-control":`no-store`}})},`dsh-context: skills route`)})}const di=[`@deepseek-ai/dsh-session-projection`,`@deepseek-ai/dsh-session`],fi=[`@deepseek-ai/dsh-session`,`@deepseek-ai/dsh-session-projection`],pi=[`@deepseek-ai/dsh`,...di];function mi(){try{return l(g(import.meta.resolve(`dsh-context/package.json`)))}catch{return l(g(import.meta.url))}}const hi=mi();function gi(e,t){try{let n=JSON.parse(ee(e,`utf8`));if(typeof n!=`object`||!n)return;let r=n;return t!==void 0&&r.name!==t?void 0:typeof r.version==`string`&&r.version!==``?r.version:void 0}catch{return}}function _i(e,t){try{return gi(e(t+`/package.json`))}catch{return}}function vi(e,t){let n;try{n=l(e(t))}catch{return}for(;;){let e=gi(d(n,`package.json`),t);if(e!==void 0)return e;let r=l(n);if(r===n)return;n=r}}function yi(e,t){for(let n of t){let t=_i(e,n)??vi(e,n);if(t!==void 0)return t}}function bi(e,t){let n=p(e,t);return!n.startsWith(`..`)&&!u(n)}function xi(e,t){for(let n of fi){let r;try{r=e(n)}catch{continue}if(bi(t,r))continue;let i=_i(e,n)??vi(e,n);if(i!==void 0)return i}}function Si(e){return import.meta.resolve(e)}function Ci(t,n=Si,r=hi){let i=xi(e=>{let t=n(e);if(!t.startsWith(`file:`))throw Error(`dsh-context: non-file module URL for ${e}`);return g(t)},r);if(i!==void 0)return i;try{let n=t.get(`dshHomePath`);if(typeof n==`function`){let t=e(n(`profiles`,`dsh-context-version-probe.cjs`)),r=yi(e=>t.resolve(e),pi);if(r!==void 0)return r}}catch{}}const wi=`dsh-context`,Ti=[`sessionProjections`];function Ei(e,t){let n=H();rr(e),ui(e),Qr(e,n),Fn(e,n);let r=Ci(e);if(r!==void 0&&!wr(r)){e.sessionProjections.register(Pr(r)),e.sessionProjections.register(Fr()),e.sessionProjections.register(Ir());return}let i=qn(e);ai(e);let a=yr(e,Lt(t),n);e.sessionProjections.register(tn(t,()=>a.live)),e.sessionProjections.register(jr(e=>i.ownerOf(e))),e.sessionProjections.register(_n()),pr(e,n),ni(e,t)}export{It as Config,Ei as apply,Ti as inject,wi as name};
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-context",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.76.0",
|
|
4
4
|
"description": "A DeepSeek Harness plugin for context insight and management, with context dashboard and context command, for understanding how the context is made of, and how it evolves.",
|
|
5
5
|
"icon": "icon.svg",
|
|
6
6
|
"author": "bowenliang123",
|