@x-otto/service 0.1.0-alpha.38 → 0.1.0-alpha.40
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/dist/index.d.ts +1 -2
- package/dist/index.js +1 -2
- package/package.json +14 -14
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -653,5 +653,4 @@ declare class EventBus {
|
|
|
653
653
|
}
|
|
654
654
|
declare const eventBus: EventBus;
|
|
655
655
|
//#endregion
|
|
656
|
-
export { type AppendEvent, type AuthorityDescriptor, type ChatApprovalData, type ChatAskUserResponseData, type ChatPlanApprovalResponseData, type ChatQueryData, CodingService, type CodingServiceOptions, DebugBridge, type DebuggerCommandData, type DebuggerSetBreakpointData, type DebuggerSetBreakpointsActiveData, EventBridge, EventBus, type EventLogRead, type IMessageSender, InboundRouter, type LogEntryData, PERSISTENCED_DEFAULT_PORT, type PersistencedOptions, type ProjectorState, type SequencedEvent, type SerializedMessage, type SerializedToolCall, SessionEventLog, type SessionSnapshot, type SessionSubscribeData, type Unsubscribe, type WebSocketClientMessage, type WebSocketClientMessageType, WebSocketManager, type WebSocketMessage, createCodingService, createProjectorState, encodeSessionEvent, eventBus, startPersistenced };
|
|
657
|
-
//# sourceMappingURL=index.d.ts.map
|
|
656
|
+
export { type AppendEvent, type AuthorityDescriptor, type ChatApprovalData, type ChatAskUserResponseData, type ChatPlanApprovalResponseData, type ChatQueryData, CodingService, type CodingServiceOptions, DebugBridge, type DebuggerCommandData, type DebuggerSetBreakpointData, type DebuggerSetBreakpointsActiveData, EventBridge, EventBus, type EventLogRead, type IMessageSender, InboundRouter, type LogEntryData, PERSISTENCED_DEFAULT_PORT, type PersistencedOptions, type ProjectorState, type SequencedEvent, type SerializedMessage, type SerializedToolCall, SessionEventLog, type SessionSnapshot, type SessionSubscribeData, type Unsubscribe, type WebSocketClientMessage, type WebSocketClientMessageType, WebSocketManager, type WebSocketMessage, createCodingService, createProjectorState, encodeSessionEvent, eventBus, startPersistenced };
|
package/dist/index.js
CHANGED
|
@@ -40,5 +40,4 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
40
40
|
|
|
41
41
|
`)}catch{a.abort()}},3e4);u.unref?.(),s.addEventListener(`abort`,()=>{clearInterval(u),l.forEach(e=>e())},{once:!0});let d=t.map(async t=>{try{for await(let a of e.host.streamEvents(t,n,r,i,s)){if(s.aborted)break;try{let e=a.op===`delete`?`delete`:`update`,n={id:a.doc_id,updatedAt:a.ts};o.includeTopic&&(n.topic=t),c.enqueue(`event: ${e}\ndata: ${JSON.stringify(n)}\n\n`)}catch{break}}}catch(e){s.aborted||Qi.error({topic:t,error:e},`sse poller error`)}});await Promise.allSettled(d)},cancel(){a.abort()}})}const ta=h(`@x-otto/service:sync`);function na(e){let t=new m,{middleware:n,binding:r}=Q(e);return t.use(`/:namespace/:wsKey/*`,Fi()),t.use(`*`,n),t.post(`/:namespace/:wsKey/push`,async e=>{let t=r(),n=e.req.param(`namespace`),i=e.req.param(`wsKey`);if(!t||!n||!i||!t.host.has(n))return e.json({error:`unknown_namespace`},404);let a=await e.req.json().catch(()=>void 0);if(!a||!Array.isArray(a.ops))return e.json({error:`invalid_body`},400);let{ops:o}=a,s=e.req.header(`X-Agent-Id`),c=0,l=0,u=[];for(let e of o)try{switch(e.type){case`save`:if(typeof e.id!=`string`||e.data===void 0){l++;continue}await t.host.save(n,i,e.id,e.data,s),c++;break;case`delete`:if(typeof e.id!=`string`){l++;continue}await t.host.delete(n,i,e.id),c++;break;default:l++}}catch(t){l++,u.push(e.id),ta.warn({namespace:n,wsKey:i,opType:e.type,id:e.id,error:t},`sync push op failed`)}return e.json({accepted:c,rejected:l,conflicts:u})}),t.get(`/:namespace/:wsKey/pull`,async e=>{let t=r(),n=e.req.param(`namespace`),i=e.req.param(`wsKey`);if(!t||!n||!i||!t.host.has(n))return e.json({error:`unknown_namespace`},404);let a=Number.parseInt(e.req.query(`since`)??`0`,10)||0,o=e.req.query(`ids`),s=o?o.split(`,`).map(e=>e.trim()).filter(Boolean):void 0;try{let{documents:r,cursor:o}=await t.host.getChangesSince(n,i,a,s),c={};for(let[e,t]of r)c[e]=t;return e.json({documents:c,cursor:o})}catch(t){return ta.error({namespace:n,error:t},`sync pull failed`),e.json({error:`storage_error`},500)}}),t}const ra=h(`@x-otto/service:schedule-lease`);function ia(e,t){let n=new m,{middleware:r,binding:i}=t;n.use(`/:wsKey/*`,Fi()),n.use(`*`,r);let a=e.prepare(`INSERT INTO schedule_lease (ws_key, token, renewed_at) VALUES (?, ?, ?)
|
|
42
42
|
ON CONFLICT(ws_key) DO UPDATE SET token = excluded.token, renewed_at = excluded.renewed_at
|
|
43
|
-
WHERE excluded.renewed_at - schedule_lease.renewed_at > ?`),o=e.prepare(`UPDATE schedule_lease SET renewed_at = ? WHERE ws_key = ? AND token = ?`),s=e.prepare(`DELETE FROM schedule_lease WHERE ws_key = ? AND token = ?`),c=async e=>{let t=await e.req.json().catch(()=>void 0);return!t||typeof t.token!=`string`||t.token.length===0?null:{token:t.token}};return n.post(`/:wsKey/lease/acquire`,async e=>{if(!i())return e.json({error:`storage_host_not_configured`},404);let t=e.req.param(`wsKey`),n=await c(e);if(!n)return e.json({error:`invalid_body`},400);try{let r=Date.now(),i=a.run(t,n.token,r,18e4);return e.json({acquired:i.changes>0})}catch(n){return ra.error({wsKey:t,error:n},`schedule lease acquire failed`),e.json({error:`lease_error`},500)}}),n.post(`/:wsKey/lease/renew`,async e=>{if(!i())return e.json({error:`storage_host_not_configured`},404);let t=e.req.param(`wsKey`),n=await c(e);if(!n)return e.json({error:`invalid_body`},400);try{let r=Date.now(),i=o.run(r,t,n.token);return e.json({renewed:i.changes>0})}catch(n){return ra.error({wsKey:t,error:n},`schedule lease renew failed`),e.json({error:`lease_error`},500)}}),n.post(`/:wsKey/lease/release`,async e=>{if(!i())return e.json({error:`storage_host_not_configured`},404);let t=e.req.param(`wsKey`),n=await c(e);if(!n)return e.json({error:`invalid_body`},400);try{return s.run(t,n.token),e.json({released:!0})}catch(n){return ra.error({wsKey:t,error:n},`schedule lease release failed`),e.json({error:`lease_error`},500)}}),n}const aa=h(`@x-otto/service:persistenced`),oa=3001,sa=[`sessions`,`schedules`];async function ca(e){let t=e.port??3001,n=e.host??`127.0.0.1`,r=e.namespaces??sa,i=`${e.dir}/storage.db`,a=new Se({namespaces:r,backend:e=>new xe({dbPath:i,namespace:e,wal:!0})}),o=Ce(`${e.dir}/schedule-lease.db`,!0,Te),s={app:{storage:{storageHost:{host:a,token:e.token}}}},c=Q(s),l=new m;e.corsOrigin&&l.use(`/api/*`,ce({origin:e.corsOrigin,allowMethods:[`GET`,`POST`,`PUT`,`DELETE`,`OPTIONS`],allowHeaders:[`Content-Type`,`Authorization`]})),l.use(`*`,qi()),l.use(`*`,Yi()),l.use(`*`,Xi({defaultRps:e.rateLimitRps??100})),l.use(`*`,Zi({maxBodyBytes:e.maxBodyBytes??10485760})),l.get(`/health`,e=>e.json({status:`ok`,service:`otto-persistenced`,uptime:process.uptime(),namespaces:r})),l.route(`/api/storage`,zi(s)),l.route(`/api/events`,$i(s)),l.route(`/api/sync`,na(s)),l.route(`/api/schedules`,ia(o,c)),l.notFound(e=>e.text(`not found`,404));let u=ne({fetch:l.fetch,port:t,hostname:n});u.once(`close`,()=>we(o)),u.on(`error`,e=>aa.error({err:e},`persistenced server error`));let d=()=>(u.closeAllConnections?.(),new Promise(e=>u.close(()=>e())));return new Promise((e,r)=>{u.once(`listening`,()=>{let r=u.address();e({app:l,server:u,host:a,url:`http://${n}:${typeof r==`object`&&r?r.port:t}`,stop:d})}),u.once(`error`,r)})}export{Gi as CodingService,ze as DebugBridge,Pe as EventBridge,Li as EventBus,Qe as InboundRouter,oa as PERSISTENCED_DEFAULT_PORT,Hi as SessionEventLog,Ae as WebSocketManager,Ki as createCodingService,ae as createProjectorState,Me as encodeSessionEvent,Ri as eventBus,ca as startPersistenced};
|
|
44
|
-
//# sourceMappingURL=index.js.map
|
|
43
|
+
WHERE excluded.renewed_at - schedule_lease.renewed_at > ?`),o=e.prepare(`UPDATE schedule_lease SET renewed_at = ? WHERE ws_key = ? AND token = ?`),s=e.prepare(`DELETE FROM schedule_lease WHERE ws_key = ? AND token = ?`),c=async e=>{let t=await e.req.json().catch(()=>void 0);return!t||typeof t.token!=`string`||t.token.length===0?null:{token:t.token}};return n.post(`/:wsKey/lease/acquire`,async e=>{if(!i())return e.json({error:`storage_host_not_configured`},404);let t=e.req.param(`wsKey`),n=await c(e);if(!n)return e.json({error:`invalid_body`},400);try{let r=Date.now(),i=a.run(t,n.token,r,18e4);return e.json({acquired:i.changes>0})}catch(n){return ra.error({wsKey:t,error:n},`schedule lease acquire failed`),e.json({error:`lease_error`},500)}}),n.post(`/:wsKey/lease/renew`,async e=>{if(!i())return e.json({error:`storage_host_not_configured`},404);let t=e.req.param(`wsKey`),n=await c(e);if(!n)return e.json({error:`invalid_body`},400);try{let r=Date.now(),i=o.run(r,t,n.token);return e.json({renewed:i.changes>0})}catch(n){return ra.error({wsKey:t,error:n},`schedule lease renew failed`),e.json({error:`lease_error`},500)}}),n.post(`/:wsKey/lease/release`,async e=>{if(!i())return e.json({error:`storage_host_not_configured`},404);let t=e.req.param(`wsKey`),n=await c(e);if(!n)return e.json({error:`invalid_body`},400);try{return s.run(t,n.token),e.json({released:!0})}catch(n){return ra.error({wsKey:t,error:n},`schedule lease release failed`),e.json({error:`lease_error`},500)}}),n}const aa=h(`@x-otto/service:persistenced`),oa=3001,sa=[`sessions`,`schedules`];async function ca(e){let t=e.port??3001,n=e.host??`127.0.0.1`,r=e.namespaces??sa,i=`${e.dir}/storage.db`,a=new Se({namespaces:r,backend:e=>new xe({dbPath:i,namespace:e,wal:!0})}),o=Ce(`${e.dir}/schedule-lease.db`,!0,Te),s={app:{storage:{storageHost:{host:a,token:e.token}}}},c=Q(s),l=new m;e.corsOrigin&&l.use(`/api/*`,ce({origin:e.corsOrigin,allowMethods:[`GET`,`POST`,`PUT`,`DELETE`,`OPTIONS`],allowHeaders:[`Content-Type`,`Authorization`]})),l.use(`*`,qi()),l.use(`*`,Yi()),l.use(`*`,Xi({defaultRps:e.rateLimitRps??100})),l.use(`*`,Zi({maxBodyBytes:e.maxBodyBytes??10485760})),l.get(`/health`,e=>e.json({status:`ok`,service:`otto-persistenced`,uptime:process.uptime(),namespaces:r})),l.route(`/api/storage`,zi(s)),l.route(`/api/events`,$i(s)),l.route(`/api/sync`,na(s)),l.route(`/api/schedules`,ia(o,c)),l.notFound(e=>e.text(`not found`,404));let u=ne({fetch:l.fetch,port:t,hostname:n});u.once(`close`,()=>we(o)),u.on(`error`,e=>aa.error({err:e},`persistenced server error`));let d=()=>(u.closeAllConnections?.(),new Promise(e=>u.close(()=>e())));return new Promise((e,r)=>{u.once(`listening`,()=>{let r=u.address();e({app:l,server:u,host:a,url:`http://${n}:${typeof r==`object`&&r?r.port:t}`,stop:d})}),u.once(`error`,r)})}export{Gi as CodingService,ze as DebugBridge,Pe as EventBridge,Li as EventBus,Qe as InboundRouter,oa as PERSISTENCED_DEFAULT_PORT,Hi as SessionEventLog,Ae as WebSocketManager,Ki as createCodingService,ae as createProjectorState,Me as encodeSessionEvent,Ri as eventBus,ca as startPersistenced};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@x-otto/service",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.40",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist"
|
|
6
6
|
],
|
|
@@ -22,19 +22,19 @@
|
|
|
22
22
|
"@hono/node-server": "1.19.13",
|
|
23
23
|
"hono": "4.12.12",
|
|
24
24
|
"ws": "8.20.0",
|
|
25
|
-
"@x-otto/agent": "0.1.0-alpha.
|
|
26
|
-
"@x-otto/coding": "0.1.0-alpha.
|
|
27
|
-
"@x-otto/
|
|
28
|
-
"@x-otto/schedule": "0.1.0-alpha.
|
|
29
|
-
"@x-otto/
|
|
30
|
-
"@x-otto/
|
|
31
|
-
"@x-otto/
|
|
32
|
-
"@x-otto/
|
|
33
|
-
"@x-otto/
|
|
34
|
-
"@x-otto/
|
|
35
|
-
"@x-otto/
|
|
36
|
-
"@x-otto/
|
|
37
|
-
"@x-otto/
|
|
25
|
+
"@x-otto/agent": "0.1.0-alpha.40",
|
|
26
|
+
"@x-otto/coding": "0.1.0-alpha.40",
|
|
27
|
+
"@x-otto/otel": "0.1.0-alpha.40",
|
|
28
|
+
"@x-otto/schedule": "0.1.0-alpha.40",
|
|
29
|
+
"@x-otto/ai": "0.1.0-alpha.40",
|
|
30
|
+
"@x-otto/shared": "0.1.0-alpha.40",
|
|
31
|
+
"@x-otto/session-contract": "0.1.0-alpha.40",
|
|
32
|
+
"@x-otto/trace-view": "0.1.0-alpha.40",
|
|
33
|
+
"@x-otto/workspace": "0.1.0-alpha.40",
|
|
34
|
+
"@x-otto/runtime": "0.1.0-alpha.40",
|
|
35
|
+
"@x-otto/devtools": "0.1.0-alpha.40",
|
|
36
|
+
"@x-otto/persistence": "0.1.0-alpha.40",
|
|
37
|
+
"@x-otto/hooks": "0.1.0-alpha.40"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/ws": "8.18.1"
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/message-serializer.ts","../src/types.ts","../src/session-event-log.ts","../src/websocket-manager.ts","../src/debug-bridge.ts","../src/write-lease-manager.ts","../src/inbound-router.ts","../src/coding-service.ts","../src/event-bridge.ts","../src/session-event-wire.ts","../src/persistenced-app.ts","../src/event-bus.ts"],"mappings":"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"}
|