@x-otto/session 0.0.1-alpha.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/in-memory-session.ts","../src/message-bytes.ts","../src/store.ts","../src/memory-persistence.ts","../src/file-persistence.ts","../src/session-repository.ts","../src/session-write-lease.ts","../src/relational-session-persistence.ts","../src/relational-bridge.ts","../src/replacement-blob-codec.ts","../src/replacement-hydrator.ts","../src/constants.ts","../src/sqlite-session-repository.ts","../src/remote-persistence.ts"],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,88 @@
1
+ import{DiskPersistence as e,MemoryPersistenceBase as t,RemotePersistence as n,RemotePersistenceError as r,RemoteSnapshotConflictError as i,acquireDb as a,releaseDb as o}from"@x-otto/persistence";import{currentHostname as s,decodeLeaseToken as c,encodeLeaseToken as l,isProcessAlive as u,normalizeEnv as d}from"@x-otto/env";import{readFile as f,readdir as p,stat as m}from"node:fs/promises";import{dirname as h,join as g,resolve as _}from"node:path";import{createHash as v,randomUUID as y}from"node:crypto";import{closeSync as b,createWriteStream as x,existsSync as S,mkdirSync as C,openSync as ee,readFileSync as w,renameSync as T,rmSync as E,statSync as D,unlinkSync as O,utimesSync as te,writeSync as k}from"node:fs";import{createGzip as A,gunzipSync as j}from"node:zlib";const M={derived:0,ai:1,custom:2};function N(e){if(typeof e!=`object`||!e)return 0;let t=e,n=0,r=t.tool_calls;if(Array.isArray(r))for(let e of r){if(typeof e!=`object`||!e)continue;let t=e.function;t&&typeof t==`object`&&typeof t.arguments==`string`&&(n+=t.arguments.length)}let i=t.content;if(typeof i==`string`)return n+i.length;if(!Array.isArray(i))return n;for(let e of i){if(typeof e!=`object`||!e)continue;let t=e;typeof t.text==`string`&&(n+=t.text.length);let r=t.source;r&&typeof r==`object`&&typeof r.data==`string`&&(n+=r.data.length),typeof t.data==`string`&&(n+=t.data.length);let i=t.image_url;i&&typeof i==`object`&&typeof i.url==`string`&&(n+=i.url.length),t.type===`tool_call`&&typeof t.arguments==`object`&&t.arguments!=null&&(n+=JSON.stringify(t.arguments).length),t.type===`tool_use`&&t.input!=null&&(n+=JSON.stringify(t.input).length)}return n}var P=class{sessionEntries=[];entryMap=new Map;_estimatedContentBytes=0;get estimatedContentBytes(){return this._estimatedContentBytes}get messageCount(){return this.meta.messageCount}verifyEstimatedContentBytes(){let e=0;for(let t of this.sessionEntries)if(t.type===`message`)e+=N(t.message);else if(t.type===`compaction`&&t.replacement)for(let n of t.replacement)e+=N(n);return{counter:this._estimatedContentBytes,recomputed:e,drift:e-this._estimatedContentBytes}}meta;panelState={};constructor(e,t,n){this.id=e;let r=Date.now();this.meta={createdAt:r,lastActiveAt:r,messageCount:0,compactionCount:0,parentSessionId:t,forkPoint:n,tags:[]}}_leafId=void 0;get leafId(){return this._leafId}append(e){let t={type:`message`,id:crypto.randomUUID(),parentId:this._leafId,message:e,timestamp:Date.now()};this._leafId=t.id,this.sessionEntries.push(t),this.entryMap.set(t.id,t),this.meta.messageCount++,this.meta.lastActiveAt=Date.now(),this._estimatedContentBytes+=N(e)}removeLast(){if(!this._leafId)return;let e=this.entryMap.get(this._leafId);if(!e||e.type!==`message`)return;let t=this.sessionEntries.lastIndexOf(e);t!==-1&&(this.sessionEntries.splice(t,1),this.entryMap.delete(e.id),this._leafId=e.parentId,this.meta.messageCount=Math.max(0,this.meta.messageCount-1),this._estimatedContentBytes-=N(e.message))}compact(e,t){let n=this.getBranchMessageEntries();if(t<=0||t>n.length)return;let r={type:`compaction`,id:crypto.randomUUID(),parentId:this._leafId,summary:e,compactedCount:t,timestamp:Date.now()};this.sessionEntries.push(r),this.entryMap.set(r.id,r),this.meta.compactionCount++,this.meta.lastActiveAt=Date.now(),this._leafId=r.id}recordCompaction(e,t){let n=this.findActiveCompaction(),r={type:`compaction`,id:crypto.randomUUID(),parentId:this._leafId,summary:e,compactedCount:t.length,replacement:[...t],timestamp:Date.now()};for(let e of t)this._estimatedContentBytes+=N(e);this.sessionEntries.push(r),this.entryMap.set(r.id,r),this.meta.compactionCount++,this.meta.lastActiveAt=Date.now(),this._leafId=r.id,n&&n.replacement!=null&&this.replacementStripEligibility?.(n.id)===!0&&this.stripReplacementInPlace(n.id)}replacementStripEligibility;setReplacementStripEligibility(e){this.replacementStripEligibility=e}findActiveCompaction(){return this._leafId?this.findActiveCompactionFrom(this._leafId):void 0}stripReplacementInPlace(e){let t=this.entryMap.get(e);if(!t||t.type!==`compaction`)return;let n=t;if(n.replacement==null)return;for(let e of n.replacement)this._estimatedContentBytes-=N(e);this._estimatedContentBytes<0&&(this._estimatedContentBytes=0);let{replacement:r,...i}=n,a={...i,replacementStripped:!0};this.entryMap.set(e,a);let o=this.sessionEntries.findIndex(t=>t.id===e);o>=0&&(this.sessionEntries[o]=a)}clearContext(e){let t={type:`clear`,id:crypto.randomUUID(),parentId:this._leafId,timestamp:Date.now()};this.sessionEntries.push(t),this.entryMap.set(t.id,t),this.meta.lastActiveAt=Date.now(),this._leafId=t.id,e?.purge===!0&&this.purgeBeforeBoundary(t.id)}purgeClearedHistory(){let e;for(let t=this.sessionEntries.length-1;t>=0;t--)if(this.sessionEntries[t].type===`clear`){e=this.sessionEntries[t].id;break}return e?this.purgeBeforeBoundary(e):{removedCount:0,strippedReplacements:0}}purgeBeforeBoundary(e){let t=this.sessionEntries.findIndex(t=>t.id===e);if(t<0)return{removedCount:0,strippedReplacements:0};let n=0,r=0,i=0,a=t;for(;r<a;){let e=this.sessionEntries[r];e.type===`message`?(this._estimatedContentBytes-=N(e.message),this.entryMap.delete(e.id),this.sessionEntries.splice(r,1),a--,i++):(e.type===`compaction`&&e.replacement!=null&&(this.stripReplacementInPlace(e.id),n++),r++)}return this._estimatedContentBytes<0&&(this._estimatedContentBytes=0),this.meta.messageCount-=i,{removedCount:i,strippedReplacements:n}}branch(e){if(!this.entryMap.has(e))throw Error(`Entry "${e}" not found in session "${this.id}"`);let t=this.findActiveCompactionFrom(e);if(t&&t.replacementStripped)throw Error(`branch: target chain's active compaction boundary "${t.id}" has a stripped replacement (RFC-160); hydrate it via loadEntriesByIds before branching`);this._leafId=e,this.meta.lastActiveAt=Date.now()}findActiveCompactionFrom(e){let t=new Set,n=this.entryMap.get(e);for(;n&&!t.has(n.id);){if(t.add(n.id),n.type===`compaction`)return n;if(n.type===`clear`)return;n=n.parentId?this.entryMap.get(n.parentId):void 0}}entries(){return this.sessionEntries}branchEntries(){return this.walkBranch()}buildContext(){let e=this.walkBranch(),t=this.lastBoundaryIndex(e),n=e.slice(t+1).filter(e=>e.type===`message`).map(e=>e.message);if(t===-1)return{messages:n};let r=e[t];if(r.type===`clear`)return{messages:n};let i=r;return{summary:i.summary,messages:i.replacement?[...i.replacement,...n]:n}}messages(){return this.walkBranch().filter(e=>e.type===`message`).map(e=>e.message)}visibleMessages(){let e=this.walkBranch(),t=-1;for(let n=e.length-1;n>=0;n--)if(e[n]?.type===`clear`){t=n;break}return e.slice(t+1).filter(e=>e.type===`message`).map(e=>e.message)}metadata(){return{...this.meta,tags:[...this.meta.tags],...this.meta.config?{config:structuredClone(this.meta.config)}:{}}}setTitle(e,t){let n=this.meta.titleSource==null?-1:M[this.meta.titleSource];return M[t]<n?!1:(this.meta.title=e,this.meta.titleSource=t,this.meta.lastActiveAt=Date.now(),!0)}setSdkVersion(e){this.meta.sdkVersion=e}setArchived(e){this.meta.archived=e,this.meta.lastActiveAt=Date.now()}setPinned(e,t){this.meta.pinned=e,this.meta.pinGroup=e?t:void 0,this.meta.lastActiveAt=Date.now()}getTodoList(){return this.panelState.todoList}setTodoList(e){this.panelState.todoList=[...e],this.meta.lastActiveAt=Date.now()}getEditedFiles(){return this.panelState.editedFiles}setEditedFiles(e){this.panelState.editedFiles=e.slice(0,50),this.meta.lastActiveAt=Date.now()}getInputHistory(){return this.meta.config?.inputHistory}setInputHistory(e){if(e.length===0){this.meta.config?.inputHistory!==void 0&&(delete this.meta.config.inputHistory,this.meta.lastActiveAt=Date.now());return}this.meta.config||(this.meta.config={}),this.meta.config.inputHistory=e.slice(-100),this.meta.lastActiveAt=Date.now()}getSubagents(){return this.panelState.subagents}setSubagents(e){this.panelState.subagents=e.slice(0,100),this.meta.lastActiveAt=Date.now()}getTurnSummaries(){return this.panelState.turnSummaries}setTurnSummaries(e){this.panelState.turnSummaries=e.slice(-200),this.meta.lastActiveAt=Date.now()}getTurnCount(){return this.meta.config?.turnCount}setTurnCount(e){this.meta.config||(this.meta.config={}),this.meta.config.turnCount=e,this.meta.lastActiveAt=Date.now()}getDrafts(){return this.panelState.drafts}setDrafts(e){this.panelState.drafts=e.slice(0,50),this.meta.lastActiveAt=Date.now()}capStoredHistory(e,t){let n=0;for(let e of this.sessionEntries)e.type===`message`&&n++;if(n<=e)return{capped:!1,removedCount:0,boundaryLimited:!1,activeOversized:!1};let r=n-e,{removed:i,boundaryLimited:a}=this.removeOldestMessages(r,t);return this.meta.messageCount=n-i,{capped:i>0,removedCount:i,boundaryLimited:a,activeOversized:this.meta.messageCount>e}}wouldTrimTouchActiveContext(e){let t=this.meta.messageCount;if(t<=e)return!1;let n=t-e,r=this.findActiveCompaction()?.id;if(r===void 0)return!0;let i=0;for(let e of this.sessionEntries){if(e.id===r)break;e.type===`message`&&i++}return i<n}wouldByteTrimTouchActiveContext(e){if(e<=0||this._estimatedContentBytes<=e)return!1;let t=this.findActiveCompaction()?.id;if(t===void 0)return!0;let n=0;for(let e of this.sessionEntries){if(e.id===t)break;e.type===`message`&&(n+=N(e.message))}return this._estimatedContentBytes-n>e}capStoredHistoryByBytes(e,t){if(e<=0||this._estimatedContentBytes<=e)return{capped:!1,removedCount:0,boundaryLimited:!1,activeOversized:!1};let n=0;for(let e of this.sessionEntries)e.type===`message`&&n++;let r=this._estimatedContentBytes,i=0;for(let t of this.sessionEntries){if(r<=e||i>=n-1)break;t.type===`message`&&(r-=N(t.message),i++)}if(i===0)return{capped:!1,removedCount:0,boundaryLimited:!1,activeOversized:!1};let{removed:a,boundaryLimited:o}=this.removeOldestMessages(i,t);return this.meta.messageCount=n-a,{capped:a>0,removedCount:a,boundaryLimited:o,activeOversized:this._estimatedContentBytes>e}}removeOldestMessages(e,t){let n=this.findActiveCompaction()?.id,r=!1,i=0,a=0;for(;a<this.sessionEntries.length&&i<e;){let e=this.sessionEntries[a];if(n!==void 0&&e.id===n){r=!0;break}e.type===`message`?(this._estimatedContentBytes-=N(e.message),this.entryMap.delete(e.id),this.sessionEntries.splice(a,1),i++):a++}if(t)for(;a<this.sessionEntries.length;){let e=this.sessionEntries[a];if(n!==void 0&&e.id===n){r=!0;break}if(e.type!==`message`){a++;continue}if(t(e.message))break;this._estimatedContentBytes-=N(e.message),this.entryMap.delete(e.id),this.sessionEntries.splice(a,1),i++}return this._estimatedContentBytes<0&&(this._estimatedContentBytes=0),{removed:i,boundaryLimited:r}}setTags(e){this.meta.tags=[...e]}addTag(e){this.meta.tags.includes(e)||this.meta.tags.push(e)}restoreEntries(e,t,n){this.sessionEntries.length=0,this.entryMap.clear();let r=0;for(let t of e)if(this.sessionEntries.push(t),this.entryMap.set(t.id,t),t.type===`message`)r+=N(t.message);else if(t.type===`compaction`&&t.replacement)for(let e of t.replacement)r+=N(e);this._estimatedContentBytes=r,Object.assign(this.meta,t),this._leafId=n&&this.entryMap.has(n)?n:e.length>0?e[e.length-1]?.id:void 0}toSnapshot(){return{entries:[...this.sessionEntries],metadata:this.metadata(),leafId:this._leafId}}walkBranch(){if(!this._leafId)return[];let e=[],t=new Set,n=this.entryMap.get(this._leafId);for(;n&&!t.has(n.id);)t.add(n.id),e.push(n),n=n.parentId?this.entryMap.get(n.parentId):void 0;return e.reverse(),e}getBranchMessageEntries(){let e=this.walkBranch(),t=this.lastBoundaryIndex(e);return e.slice(t+1).filter(e=>e.type===`message`)}lastBoundaryIndex(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.type;if(n===`compaction`||n===`clear`)return t}return-1}},F=class{sessions=new Map;async createSession(e=crypto.randomUUID()){let t=new P(e);return this.sessions.set(e,t),t}getSession(e){return this.sessions.get(e)}listSessions(){return Array.from(this.sessions.values())}listSessionsPaginated(e){let{page:t,sortBy:n=`lastActiveAt`,order:r=`desc`}=e,i=e.pageSize??50,a=Array.from(this.sessions.values());a.sort((e,t)=>{let i=e.metadata(),a=t.metadata(),o=n===`createdAt`?i.createdAt:i.lastActiveAt,s=n===`createdAt`?a.createdAt:a.lastActiveAt;return r===`asc`?o-s:s-o});let o=a.length,s=Math.max(1,Math.ceil(o/i)),c=Math.max(0,Math.min(t,s-1)),l=c*i;return{items:a.slice(l,l+i),total:o,page:c,pageSize:i,totalPages:s,hasNext:c<s-1,hasPrevious:c>0}}async deleteSession(e){return this.sessions.delete(e)}async forkSession(e,t=crypto.randomUUID()){let n=this.sessions.get(e);if(!n)return;let r=n.toSnapshot(),i=new P(t,e,r.entries.length);return i.restoreEntries([...r.entries],{...r.metadata,createdAt:Date.now(),lastActiveAt:Date.now(),parentSessionId:e,forkPoint:r.entries.length,tags:[...r.metadata.tags,`fork`]},r.leafId),this.sessions.set(t,i),i}};function ne(){return new F}const re=d(process.env.OTTO_SESSION_IDLE_TIMEOUT_MS,1800*1e3),ie=d(process.env.OTTO_SESSION_MAX,50),I=d(process.env.OTTO_SESSION_PAGE_SIZE,20),ae=d(process.env.OTTO_SESSION_SNAPSHOT_VERSION,1);var oe=class extends t{constructor(){super({defaultPageSize:I,defaultSortBy:`lastActiveAt`})}extractId(e){return e.id}getSortValue(e,t){return t===`createdAt`?e.metadata.createdAt:e.metadata.lastActiveAt}async listRecentMeta(e){return this.entries().filter(([,e])=>!e.metadata.archived).sort(([,e],[,t])=>t.metadata.lastActiveAt-e.metadata.lastActiveAt).slice(0,e).map(([e])=>e)}},se=class extends e{turnFlush=`snapshot`;sessionBaseDir;sessionExtension=`.session.json`;constructor(e){super({baseDir:e.baseDir,extension:`.session.json`,defaultPageSize:I}),this.sessionBaseDir=e.baseDir}extractId(e){return e.id}async listRecentMeta(e){let t;try{t=await p(this.sessionBaseDir)}catch{return[]}let n=t.filter(e=>e.endsWith(this.sessionExtension)),r=await Promise.all(n.map(async e=>{let t=await m(g(this.sessionBaseDir,e)).catch(()=>null);return{id:decodeURIComponent(e.slice(0,-this.sessionExtension.length)),mtime:t?.mtimeMs??0}}));r.sort((e,t)=>t.mtime-e.mtime);let i=[];for(let{id:t}of r){if(i.length>=e)break;let n=await this.load(t).catch(()=>null);n&&(n.metadata.archived||i.push(t))}return i}};function L(e){return`sha256:${v(`sha256`).update(e,`utf-8`).digest(`hex`)}`}async function R(e,t,n){if(e!==`compaction`)return t;let r=t.replacement;if(!Array.isArray(r))return t;let i=r.map(e=>JSON.stringify(e)),a=i.map(L);await n.putBlobs(i.map((e,t)=>({hash:a[t],content:e})));let{replacement:o,...s}=t;return{...s,replacementHashes:a}}async function z(e,t,n){if(e!==`compaction`)return t;let r=t.replacementHashes;if(!Array.isArray(r)||r.length===0){if(Array.isArray(r)){let{replacementHashes:e,...n}=t;return{...n,replacement:[]}}return t}let i=await n.getBlobs(r),a=r.map(e=>{let t=i.get(e);if(t==null)throw Error(`decodeReplacementFromBlobs: blob ${e} missing from message_blobs (corrupted import/partial backup?); refusing to assemble a lossy replacement (RFC-160 D7)`);return JSON.parse(t)}),{replacementHashes:o,...s}=t;return{...s,replacement:a}}function B(e,t){let n=e.metadata;return{id:e.id,workspaceKey:t,...n.title==null?{}:{title:n.title},...n.titleSource==null?{}:{titleSource:n.titleSource},...n.parentSessionId==null?{}:{parentSessionId:n.parentSessionId},...n.forkPoint==null?{}:{forkPoint:n.forkPoint},...e.leafId==null?{}:{leafId:e.leafId},tags:n.tags??[],...n.config==null?{}:{config:n.config},createdAt:n.createdAt,lastActiveAt:n.lastActiveAt,...n.archived==null?{}:{archived:n.archived},...n.pinned==null?{}:{pinned:n.pinned},...n.pinGroup==null?{}:{pinGroup:n.pinGroup}}}function V(e){let{type:t,id:n,parentId:r,timestamp:i,...a}=e;return{entryId:n,...r==null?{}:{parentId:r},type:t,data:a,createdAt:i}}function H(e){return{type:e.type,id:e.entryId,...e.parentId==null?{}:{parentId:e.parentId},timestamp:e.createdAt,...e.data}}async function U(e,t,n){await n.createSession(B(e,t));for(let t of e.entries)await n.appendEntry(e.id,V(t));await n.touchSession(e.id,e.leafId,e.metadata.lastActiveAt,e.metadata.title,e.metadata.titleSource,e.metadata.config,e.metadata.archived,e.metadata.pinned,e.metadata.pinGroup)}async function W(e,t,n){let r=await t.getSession(e);if(!r)return null;let i,a=!1;n?.maxEntries==null?i=(await t.loadEntries(e)).map(e=>H(e)):await t.getEntryCount(e)>n.maxEntries?(i=(await t.loadTailEntries(e,n.maxEntries)).map(e=>H(e)),a=!0,n.canStartHistory&&(i=le(i,n.canStartHistory))):i=(await t.loadEntries(e)).map(e=>H(e)),n?.stripInactiveReplacements?(i=ce(i,r.leafId??void 0),i=await G(i,t,{onlyUnstripped:!0})):i=await G(i,t,{onlyUnstripped:!1});let o=a?await t.countEntriesByType(e,`message`):i.filter(e=>e.type===`message`).length,s=a?await t.countEntriesByType(e,`compaction`):i.filter(e=>e.type===`compaction`).length,c={createdAt:r.createdAt,lastActiveAt:r.lastActiveAt,messageCount:o,compactionCount:s,tags:r.tags,...r.title==null?{}:{title:r.title},...r.titleSource==null?{}:{titleSource:r.titleSource},...r.parentSessionId==null?{}:{parentSessionId:r.parentSessionId},...r.forkPoint==null?{}:{forkPoint:r.forkPoint},...r.config==null?{}:{config:r.config},...r.archived==null?{}:{archived:r.archived},...r.pinned==null?{}:{pinned:r.pinned},...r.pinGroup==null?{}:{pinGroup:r.pinGroup}};return{version:1,id:e,entries:i,metadata:c,...r.leafId==null?{}:{leafId:r.leafId}}}async function G(e,t,n){let r=[];for(let i of e){let e=i;if(e.type!==`compaction`||e.replacementHashes==null){r.push(i);continue}if(n.onlyUnstripped&&e.replacementStripped){let{replacementHashes:t,...n}=e;r.push(n);continue}let{replacementStripped:a,...o}=await z(`compaction`,e,t);r.push(o)}return r}function ce(e,t){let n=new Map;for(let t of e)n.set(t.id,t);let r,i=new Set,a=t?n.get(t):void 0;for(;a&&!i.has(a.id);){if(i.add(a.id),a.type===`compaction`){r=a.id;break}if(a.type===`clear`)break;a=a.parentId?n.get(a.parentId):void 0}let o=-1;for(let t=e.length-1;t>=0;t--)if(e[t].type===`compaction`){o=t;break}return e.map((e,t)=>{if(e.type!==`compaction`||e.id===r||t===o)return e;let n=e;if(n.replacement!=null){let{replacement:e,...t}=n;return{...t,replacementStripped:!0}}return n.replacementHashes==null?e:{...n,replacementStripped:!0}})}function le(e,t){let n=0;for(;n<e.length;){let r=e[n];if(r.type!==`message`||t(r.message))break;n++}return n>0?e.slice(n):e}function ue(e){return typeof e?.hydrateReplacements==`function`}function de(e){return e.some(e=>e.type===`compaction`&&e.replacementStripped)}async function K(e,t,n){let r=t.filter(e=>e.type===`compaction`&&e.replacementStripped).map(e=>e.id);if(r.length===0)return[...t];let i=await n.loadEntriesByIds(e,r),a=new Map;for(let e of i)a.set(e.entryId,e.data);let o=[];for(let r of t){if(r.type!==`compaction`||!r.replacementStripped){o.push(r);continue}let t=a.get(r.id);if(t&&t.replacementHashes!=null&&(t=await z(`compaction`,t,n)),!t||t.replacement==null)throw Error(`hydrateStrippedReplacements: authoritative row for compaction "${r.id}" in session "${e}" is missing or has no replacement (corrupted import?); refusing to continue with stripped state (RFC-160 rule 3)`);let{replacementStripped:i,...s}=r;o.push({...s,replacement:t.replacement})}return o}var q=class extends Error{constructor(e){super(`Session write lease denied for ${e}: another live process owns the write lease (this process is read-only for the session; refusing to save — RFC-159 D3)`),this.sessionId=e,this.name=`SessionWriteLeaseDeniedError`}};function J(e){let t=e.staleMs??6e4,n=e.renewEveryMs??1e4,r=new Map,i=!1,a=s(),o=t=>g(e.lockDir,`${t}.lock`),d=e=>{try{return c(w(o(e),`utf-8`).trim())}catch{return null}},f=e=>d(e)?.token??null,p=(t,n)=>{try{C(e.lockDir,{recursive:!0});let r=ee(o(t),`wx`);try{k(r,l(n,process.pid,a))}finally{b(r)}return!0}catch(e){if(e.code!==`EEXIST`)throw e;return!1}},m=e=>e.pid===void 0||e.host===void 0||e.host!==a?!1:!u(e.pid),h=e=>e.pid===void 0||e.host===void 0||e.host!==a?!1:u(e.pid),_=(e,t)=>{let i=setInterval(()=>{if(f(e)!==t){v(e);return}try{let t=new Date;te(o(e),t,t)}catch{v(e)}},n);i.unref(),r.set(e,{token:t,timer:i})},v=e=>{let t=r.get(e);t&&(clearInterval(t.timer),r.delete(e))},x={acquire(e){if(i)return!1;let n=r.get(e);if(n){if(f(e)===n.token)return!0;v(e)}let a=y();if(p(e,a))return _(e,a),!0;let s=d(e),c;try{c=D(o(e)).mtimeMs}catch{return p(e,a)?(_(e,a),!0):!1}if(s!==null&&h(s)||!(s!==null&&m(s))&&Date.now()-c<=t)return!1;let l=`${o(e)}.stale-${y()}`;try{T(o(e),l),E(l,{force:!0})}catch{return!1}return p(e,a)?(_(e,a),!0):!1},release(e){let t=r.get(e);if(t){if(f(e)===t.token)try{O(o(e))}catch{}v(e)}},releaseAll(){for(let e of[...r.keys()])x.release(e)},isOwner(e){if(i)return!1;let t=r.get(e);return t!=null&&f(e)===t.token},peekLockedByOther(e){if(i)return!1;let n=r.get(e);if(n!=null&&f(e)===n.token)return!1;let a;try{a=D(o(e)).mtimeMs}catch{return!1}return Date.now()-a<=t},inspect(e){let t=d(e);if(t===null)return{locked:!1};let n;try{n=Date.now()-D(o(e)).mtimeMs}catch{return{locked:!1}}let r=t.pid!==void 0&&t.host!==void 0&&t.host===a?u(t.pid):void 0;return{locked:!0,pid:t.pid,hostname:t.host,alive:r,mtimeAgoMs:n}},forceRelease(e){try{O(o(e))}catch{}v(e)},close(){i=!0,x.releaseAll()}};return e.installExitHook!==!1&&process.on(`exit`,()=>x.releaseAll()),x}function fe(){return{acquire:()=>!0,release:()=>{},releaseAll:()=>{},isOwner:()=>!0,peekLockedByOther:()=>!1,inspect:()=>({locked:!1}),forceRelease:()=>{},close:()=>{}}}const pe={warn:()=>{}};var me=class{repo;resolveWorkspaceKey;defaultPageSize;logger;persisted=new Map;maxLoadEntries;canStartHistory;writeLease;stripInactiveReplacements;constructor(e){this.repo=e.repo;let t=e.workspaceKey;this.resolveWorkspaceKey=typeof t==`function`?()=>t()||`default`:()=>t||`default`,this.defaultPageSize=e.defaultPageSize??20,this.logger=e.logger??pe,this.maxLoadEntries=e.maxLoadEntries,this.canStartHistory=e.canStartHistory,this.writeLease=e.writeLease,this.stripInactiveReplacements=e.stripInactiveReplacements??!1}assertWritable(e){if(this.writeLease&&!this.writeLease.acquire(e))throw this.logger.warn({sessionId:e},`archive/restore rejected: session write lease held by another live process (read-only; RFC-159 D3)`),new q(e)}async archiveSession(e){let t=this.repo;if(typeof t.archiveSession!=`function`)throw Error(`archiveSession is not supported by this repository`);return this.assertWritable(e),t.archiveSession(e)}async restoreArchivedSession(e){let t=this.repo;return typeof t.restoreArchivedSession==`function`?(this.assertWritable(e),t.restoreArchivedSession(e)):0}async save(e){if(this.writeLease&&!this.writeLease.acquire(e.id))throw this.logger.warn({sessionId:e.id},`save rejected: session write lease held by another live process (read-only; RFC-159 D3)`),new q(e.id);await this.repo.createSession(B(e,this.resolveWorkspaceKey()));let t=this.persisted.get(e.id),n=0;if(t!=null){let r=e.entries.findIndex(e=>e.id===t);n=r>=0?r+1:0}if(n===0){let n=await this.repo.getEntryCount(e.id);n>0&&t==null&&this.logger.warn({sessionId:e.id,dbCount:n},`Session has persisted entries but no local cursor (restart or concurrent writer); reconciling via full idempotent append (append-forever, no loss)`)}for(let t=n;t<e.entries.length;t++){let n=V(e.entries[t]),r=await R(n.type,n.data,this.repo);await this.repo.appendEntry(e.id,{...n,data:r})}let{leafPersisted:r}=await this.repo.touchSession(e.id,e.leafId,e.metadata.lastActiveAt,e.metadata.title,e.metadata.titleSource,e.metadata.config,e.metadata.archived,e.metadata.pinned,e.metadata.pinGroup);!r&&e.leafId!=null&&this.logger.warn({sessionId:e.id,rejectedLeafId:e.leafId},`touchSession: leafId not found among session entries (rejected to avoid dangling leaf; likely concurrent writer race); existing leaf_id preserved`);let i=e.entries[e.entries.length-1];i?this.persisted.set(e.id,i.id):this.persisted.delete(e.id)}async load(e){let t=await this.repo.getSession(e);if(!t)return null;let n=this.resolveWorkspaceKey(),r=t.workspaceKey||`default`;if(r!==n)return this.logger.warn({sessionId:e,sessionWorkspaceKey:r,expectedWorkspaceKey:n},`RelationalSessionPersistence.load: session belongs to a different workspace, refusing cross-workspace restore`),null;let i=await W(e,this.repo,{...this.maxLoadEntries==null?{}:{maxEntries:this.maxLoadEntries},...this.canStartHistory?{canStartHistory:this.canStartHistory}:{},...this.stripInactiveReplacements?{stripInactiveReplacements:!0}:{}}),a=i?.entries[i.entries.length-1];return a&&this.persisted.set(e,a.id),i}getPersistedCursor(e){return this.persisted.get(e)}async hydrateReplacements(e,t){return K(e,t,this.repo)}async delete(e){let t=await this.repo.deleteSession(e);return this.persisted.delete(e),this.writeLease?.release(e),t}async list(){return(await this.repo.listSessions(this.resolveWorkspaceKey())).map(e=>e.id)}async listRecentMeta(e){return this.repo.listRecentSessionIds(this.resolveWorkspaceKey(),e)}async listPaginated(e){let t=await this.repo.listSessions(this.resolveWorkspaceKey()),n=e.sortBy===`createdAt`?[...t].sort((e,t)=>t.createdAt-e.createdAt):t,r=e.order===`asc`?[...n].reverse():n,i=e.pageSize??this.defaultPageSize,a=r.length,o=Math.max(1,Math.ceil(a/i)),s=Math.max(0,Math.min(e.page,o-1));return{items:r.slice(s*i,s*i+i).map(e=>e.id),total:a,page:s,pageSize:i,totalPages:o,hasNext:s<o-1,hasPrevious:s>0}}};const Y=[{version:1,up:e=>{e.exec(`
2
+ CREATE TABLE IF NOT EXISTS workspaces (
3
+ id TEXT PRIMARY KEY,
4
+ name TEXT NOT NULL,
5
+ owner_id TEXT,
6
+ org_id TEXT,
7
+ created_at INTEGER NOT NULL
8
+ );
9
+
10
+ CREATE TABLE IF NOT EXISTS sessions (
11
+ id TEXT PRIMARY KEY,
12
+ workspace_key TEXT NOT NULL DEFAULT 'default',
13
+ title TEXT,
14
+ parent_session_id TEXT,
15
+ fork_point INTEGER,
16
+ leaf_id TEXT,
17
+ owner_id TEXT,
18
+ tags TEXT NOT NULL DEFAULT '[]',
19
+ config TEXT,
20
+ next_seq INTEGER NOT NULL DEFAULT 0,
21
+ created_at INTEGER NOT NULL,
22
+ last_active_at INTEGER NOT NULL
23
+ );
24
+ CREATE INDEX IF NOT EXISTS idx_sessions_ws
25
+ ON sessions(workspace_key, last_active_at DESC);
26
+
27
+ CREATE TABLE IF NOT EXISTS session_entries (
28
+ session_id TEXT NOT NULL,
29
+ seq INTEGER NOT NULL,
30
+ entry_id TEXT NOT NULL,
31
+ parent_id TEXT,
32
+ type TEXT NOT NULL,
33
+ data TEXT NOT NULL,
34
+ created_at INTEGER NOT NULL,
35
+ PRIMARY KEY (session_id, seq)
36
+ );
37
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_entries_eid
38
+ ON session_entries(session_id, entry_id);
39
+ `)}},{version:2,up:e=>{e.exec(`ALTER TABLE sessions ADD COLUMN title_source TEXT;`)}},{version:3,up:e=>{e.exec(`
40
+ ALTER TABLE sessions ADD COLUMN archived INTEGER;
41
+ ALTER TABLE sessions ADD COLUMN pinned INTEGER;
42
+ `)}},{version:4,up:e=>{e.exec(`ALTER TABLE sessions ADD COLUMN pin_group TEXT;`)}},{version:5,up:e=>{e.exec(`
43
+ CREATE TABLE IF NOT EXISTS message_blobs (
44
+ hash TEXT PRIMARY KEY,
45
+ content TEXT NOT NULL,
46
+ created_at INTEGER NOT NULL
47
+ );
48
+ `)}}],X=`default`;var he=class{db;archiveDir;ephemeral;constructor(e){this.db=a(e.dbPath,e.wal!==!1,Y),this.ephemeral=e.dbPath===`:memory:`,this.archiveDir=_(h(e.dbPath),`archives`)}close(){o(this.db)}async archiveSession(e){if(this.ephemeral)return this.db.prepare(`UPDATE sessions SET archived = 1 WHERE id = ?`).run(e),`:memory:/${e}.jsonl.gz`;let t=_(this.archiveDir,`${e}.jsonl.gz`);S(this.archiveDir)||C(this.archiveDir,{recursive:!0});let n=await this.loadEntries(e),r=A(),i=x(t);r.pipe(i);let a=new TextEncoder;for(let e of n)r.write(a.encode(JSON.stringify(e)+`
49
+ `));return r.end(),await new Promise((e,t)=>{i.on(`finish`,e),i.on(`error`,t)}),this.db.prepare(`UPDATE sessions SET archived = 1 WHERE id = ?`).run(e),t}async restoreArchivedSession(e){let t=_(this.archiveDir,`${e}.jsonl.gz`);if(!S(t))return 0;let n=j(await f(t)).toString(`utf-8`).trim().split(`
50
+ `).filter(Boolean),r=await this.loadEntries(e),i=0;for(let t of n){let n=JSON.parse(t);r.some(e=>e.entryId===n.entryId)||(await this.appendEntry(e,n),i++)}return this.db.prepare(`UPDATE sessions SET archived = 0 WHERE id = ?`).run(e),i}async upsertWorkspace(e){this.db.prepare(`INSERT INTO workspaces (id, name, owner_id, org_id, created_at)
51
+ VALUES (?, ?, ?, ?, ?)
52
+ ON CONFLICT (id) DO UPDATE SET
53
+ name = excluded.name, owner_id = excluded.owner_id, org_id = excluded.org_id`).run(e.id,e.name,e.ownerId??null,e.orgId??null,e.createdAt)}async getWorkspace(e){let t=this.db.prepare(`SELECT id, name, owner_id, org_id, created_at FROM workspaces WHERE id = ?`).get(e);return t?Z(t):null}async listWorkspaces(){return this.db.prepare(`SELECT id, name, owner_id, org_id, created_at FROM workspaces ORDER BY created_at DESC`).all().map(Z)}async createSession(e){this.db.prepare(`INSERT INTO sessions
54
+ (id, workspace_key, title, title_source, parent_session_id, fork_point, leaf_id, owner_id, tags, config, next_seq, created_at, last_active_at, archived, pinned, pin_group)
55
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0, ?, ?, ?, ?, ?)
56
+ ON CONFLICT (id) DO NOTHING`).run(e.id,e.workspaceKey||X,e.title??null,e.titleSource??null,e.parentSessionId??null,e.forkPoint??null,e.leafId??null,e.ownerId??null,JSON.stringify(e.tags??[]),e.config==null?null:JSON.stringify(e.config),e.createdAt,e.lastActiveAt,e.archived==null?null:e.archived?1:0,e.pinned==null?null:e.pinned?1:0,e.pinGroup??null)}async touchSession(e,t,n,r,i,a,o,s,c){return{leafPersisted:this.db.transaction(()=>{let l=null,u=!0;return t!=null&&(this.db.prepare(`SELECT 1 FROM session_entries WHERE session_id = ? AND entry_id = ?`).get(e,t)?l=t:u=!1),this.db.prepare(u?`UPDATE sessions SET
57
+ leaf_id = ?,
58
+ last_active_at = ?,
59
+ title = COALESCE(?, title),
60
+ title_source = COALESCE(?, title_source),
61
+ config = COALESCE(?, config),
62
+ archived = COALESCE(?, archived),
63
+ pinned = COALESCE(?, pinned),
64
+ pin_group = COALESCE(?, pin_group)
65
+ WHERE id = ?`:`UPDATE sessions SET
66
+ last_active_at = ?,
67
+ title = COALESCE(?, title),
68
+ title_source = COALESCE(?, title_source),
69
+ config = COALESCE(?, config),
70
+ archived = COALESCE(?, archived),
71
+ pinned = COALESCE(?, pinned),
72
+ pin_group = COALESCE(?, pin_group)
73
+ WHERE id = ?`).run(...u?[l]:[],n,r??null,i??null,a==null?null:JSON.stringify(a),o==null?null:o?1:0,s==null?null:s?1:0,c??null,e),u}).immediate()}}async getSession(e){let t=this.db.prepare(`SELECT * FROM sessions WHERE id = ?`).get(e);return t?Q(t):null}async listSessions(e){return this.db.prepare(`SELECT * FROM sessions
74
+ WHERE COALESCE(workspace_key, '${X}') = ?
75
+ ORDER BY last_active_at DESC`).all(e||X).map(Q)}async listAllSessionIds(){return this.db.prepare(`SELECT id FROM sessions`).all().map(e=>e.id)}async listRecentSessionIds(e,t){return this.db.prepare(`SELECT id FROM sessions
76
+ WHERE COALESCE(workspace_key, '${X}') = ?
77
+ AND COALESCE(archived, 0) = 0
78
+ AND next_seq > 0
79
+ ORDER BY last_active_at DESC
80
+ LIMIT ?`).all(e||X,t).map(e=>e.id)}async deleteSession(e){return this.db.transaction(e=>(this.db.prepare(`DELETE FROM session_entries WHERE session_id = ?`).run(e),this.db.prepare(`DELETE FROM sessions WHERE id = ?`).run(e).changes>0)).immediate(e)}async appendEntry(e,t){return this.db.transaction((e,t)=>{let n=this.db.prepare(`SELECT seq FROM session_entries WHERE session_id = ? AND entry_id = ?`).get(e,t.entryId);if(n)return n.seq;let r=this.db.prepare(`SELECT next_seq FROM sessions WHERE id = ?`).get(e);if(!r)throw Error(`appendEntry: unknown session ${e}`);let i=r.next_seq;if(t.data.replacementStripped)throw Error(`appendEntry: refusing to persist stripped compaction entry ${t.entryId} as a new authoritative row for session ${e} (RFC-160 D1; hydrate before persisting)`);let a=this.db.prepare(`SELECT MAX(seq) AS max_seq FROM session_entries WHERE session_id = ?`).get(e);if(a.max_seq!=null&&i<=a.max_seq)throw Error(`appendEntry: next_seq invariant violated for session ${e} (next_seq=${i} <= MAX(seq)=${a.max_seq}); refusing to write (RFC-159 D5)`);return this.db.prepare(`INSERT INTO session_entries (session_id, seq, entry_id, parent_id, type, data, created_at)
81
+ VALUES (?, ?, ?, ?, ?, ?, ?)`).run(e,i,t.entryId,t.parentId??null,t.type,JSON.stringify(t.data),t.createdAt),this.db.prepare(`UPDATE sessions SET next_seq = ?, last_active_at = ? WHERE id = ?`).run(i+1,t.createdAt,e),i}).immediate(e,t)}async loadEntries(e,t){return(t==null?this.db.prepare(`SELECT * FROM session_entries WHERE session_id = ? ORDER BY seq ASC`).all(e):this.db.prepare(`SELECT * FROM session_entries WHERE session_id = ? AND seq > ? ORDER BY seq ASC`).all(e,t)).map($)}async getEntryCount(e){return this.db.prepare(`SELECT next_seq FROM sessions WHERE id = ?`).get(e)?.next_seq??0}async loadTailEntries(e,t){return t<=0?[]:this.db.prepare(`SELECT * FROM (
82
+ SELECT * FROM session_entries WHERE session_id = ? ORDER BY seq DESC LIMIT ?
83
+ ) ORDER BY seq ASC`).all(e,t).map($)}async loadEntriesBefore(e,t,n){return t<=0||n<=0?[]:this.db.prepare(`SELECT * FROM (
84
+ SELECT * FROM session_entries
85
+ WHERE session_id = ? AND seq < ?
86
+ ORDER BY seq DESC LIMIT ?
87
+ ) ORDER BY seq ASC`).all(e,t,n).map($)}async countEntriesByType(e,t){return this.db.prepare(`SELECT COUNT(*) AS n FROM session_entries WHERE session_id = ? AND type = ?`).get(e,t).n}async putBlobs(e){if(e.length===0)return;let t=this.db.prepare(`INSERT OR IGNORE INTO message_blobs (hash, content, created_at) VALUES (?, ?, ?)`);this.db.transaction(e=>{let n=Date.now();for(let r of e)t.run(r.hash,r.content,n)}).immediate(e)}async getBlobs(e){let t=new Map;for(let n of this.batchInQuery(e,e=>`SELECT hash, content FROM message_blobs WHERE hash IN (${e})`))for(let e of n)t.set(e.hash,e.content);return t}async loadEntriesByIds(e,t){let n=[];for(let r of this.batchInQuery(t,e=>`SELECT * FROM session_entries WHERE session_id = ? AND entry_id IN (${e})`,[e]))n.push(...r);return n.sort((e,t)=>e.seq-t.seq),n.map($)}*batchInQuery(e,t,n=[]){if(e.length!==0)for(let r=0;r<e.length;r+=500){let i=e.slice(r,r+500),a=i.map(()=>`?`).join(`,`);yield this.db.prepare(t(a)).all(...n,...i)}}};function Z(e){return{id:e.id,name:e.name,...e.owner_id==null?{}:{ownerId:e.owner_id},...e.org_id==null?{}:{orgId:e.org_id},createdAt:e.created_at}}function Q(e){return{id:e.id,workspaceKey:e.workspace_key??X,...e.title==null?{}:{title:e.title},...e.title_source==null?{}:{titleSource:e.title_source},...e.parent_session_id==null?{}:{parentSessionId:e.parent_session_id},...e.fork_point==null?{}:{forkPoint:e.fork_point},...e.leaf_id==null?{}:{leafId:e.leaf_id},...e.owner_id==null?{}:{ownerId:e.owner_id},tags:JSON.parse(e.tags),...e.config==null?{}:{config:JSON.parse(e.config)},entryCount:e.next_seq,createdAt:e.created_at,lastActiveAt:e.last_active_at,...e.archived==null?{}:{archived:e.archived===1},...e.pinned==null?{}:{pinned:e.pinned===1},...e.pin_group==null?{}:{pinGroup:e.pin_group}}}function $(e){return{sessionId:e.session_id,seq:e.seq,entryId:e.entry_id,...e.parent_id==null?{}:{parentId:e.parent_id},type:e.type,data:JSON.parse(e.data),createdAt:e.created_at}}var ge=class extends n{turnFlush=`snapshot`;constructor(e){let{userId:t,wsKey:n,...r}=e,i=e.getHeaders;super({...r,wsKey:n,getHeaders:t?async()=>({...await i?.().catch(()=>({}))??{},"X-Otto-User-Id":t}):i,defaultSortBy:`lastActiveAt`,defaultPageSize:I})}get serviceLabel(){return`会话服务`}get endpointFlag(){return`--session-url`}extractId(e){return e.id}async listRecentMeta(e){let t=`/${encodeURIComponent(this.wsKey)}/recent`;return(await(await this.request(`${t}?limit=${encodeURIComponent(String(e))}`,{method:`GET`})).json()).ids}};export{se as FileSessionPersistence,P as InMemorySession,oe as InMemorySessionPersistence,F as InMemorySessionStore,me as RelationalSessionPersistence,r as RemotePersistenceError,ge as RemoteSessionPersistence,i as RemoteSnapshotConflictError,re as SESSION_IDLE_TIMEOUT_MS,ie as SESSION_MAX,Y as SESSION_MIGRATIONS,I as SESSION_PAGE_SIZE,ae as SESSION_SNAPSHOT_VERSION,q as SessionWriteLeaseDeniedError,he as SqliteSessionRepository,ne as createInMemorySessionStore,fe as createNoopSessionWriteLeaseManager,J as createSessionWriteLeaseManager,z as decodeReplacementFromBlobs,R as encodeReplacementToBlobs,V as entryToInput,N as estimateMessageContentBytes,U as explodeSnapshot,de as hasStrippedReplacements,L as hashMessageContent,K as hydrateStrippedReplacements,W as reassembleSnapshot,B as sessionRowFromSnapshot,ue as supportsReplacementHydration};
88
+ //# sourceMappingURL=index.js.map