@agentplat/sessions 0.2.0-beta.9 → 0.3.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist/http.d.ts +9 -6
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +4 -4
- package/dist/http.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -32,8 +32,10 @@ application-estimated cost guardrails, typed UI capability flags, and the
|
|
|
32
32
|
|
|
33
33
|
Use `@agentplat/sessions/http` for a Fetch-compatible stop registry. Its local
|
|
34
34
|
`createMemorySessionRegistry({ ttlMs })` implementation cleans up idle handles,
|
|
35
|
-
and `handleSessionStop` accepts an authorization hook.
|
|
36
|
-
`
|
|
35
|
+
and `handleSessionStop` accepts an authorization hook. Use
|
|
36
|
+
`@agentplat/sessions-redis` for a multi-instance pub/sub control path. The Redis
|
|
37
|
+
adapter stores only owner leases; AbortController remains local to the process
|
|
38
|
+
running the stream.
|
|
37
39
|
|
|
38
40
|
For browser clients, use `createSessionEventReducer` with
|
|
39
41
|
`subscribeAgentSse` from `@agentplat/streaming`. Sessions can also emit
|
package/dist/http.d.ts
CHANGED
|
@@ -8,14 +8,17 @@ export interface SessionHandle {
|
|
|
8
8
|
/** Timestamp used by local registries to reap abandoned controls. */
|
|
9
9
|
expiresAt?: number;
|
|
10
10
|
}
|
|
11
|
+
export type SessionRegistryResult<T> = T | Promise<T>;
|
|
11
12
|
/** Replaceable store for live session stop controls (in-memory, Redis, etc.). */
|
|
12
13
|
export interface SessionRegistry {
|
|
13
|
-
create(sessionId?: AgentPlatID): SessionHandle
|
|
14
|
-
get(sessionId: AgentPlatID): SessionHandle | undefined
|
|
15
|
-
stop(sessionId: AgentPlatID, reason?: string): boolean
|
|
16
|
-
release(sessionId: AgentPlatID): void
|
|
14
|
+
create(sessionId?: AgentPlatID): SessionRegistryResult<SessionHandle>;
|
|
15
|
+
get(sessionId: AgentPlatID): SessionRegistryResult<SessionHandle | undefined>;
|
|
16
|
+
stop(sessionId: AgentPlatID, reason?: string): SessionRegistryResult<boolean>;
|
|
17
|
+
release(sessionId: AgentPlatID): SessionRegistryResult<void>;
|
|
17
18
|
/** Remove expired local controls and return the number removed. */
|
|
18
|
-
reap(): number
|
|
19
|
+
reap(): SessionRegistryResult<number>;
|
|
20
|
+
/** Release adapter-owned subscriptions or timers without closing app-owned clients. */
|
|
21
|
+
close?(): SessionRegistryResult<void>;
|
|
19
22
|
}
|
|
20
23
|
/** Options for the local in-memory session registry. */
|
|
21
24
|
export interface SessionRegistryOptions {
|
|
@@ -44,7 +47,7 @@ export interface RegisteredSessionInput {
|
|
|
44
47
|
* server-owned cooperative stop control. The registry entry is removed when
|
|
45
48
|
* the stream finishes or the client disconnects.
|
|
46
49
|
*/
|
|
47
|
-
export declare function toRegisteredSessionSseResponse<TEvent extends StreamEvent>(request: Request, registry: SessionRegistry, events: (input: RegisteredSessionInput) => AsyncIterable<TEvent>, sessionId?: AgentPlatID): Response
|
|
50
|
+
export declare function toRegisteredSessionSseResponse<TEvent extends StreamEvent>(request: Request, registry: SessionRegistry, events: (input: RegisteredSessionInput) => AsyncIterable<TEvent>, sessionId?: AgentPlatID): Promise<Response>;
|
|
48
51
|
/**
|
|
49
52
|
* Minimal Fetch handler for `POST /sessions/:sessionId/stop`.
|
|
50
53
|
*
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtD,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACtE,GAAG,CAAC,SAAS,EAAE,WAAW,GAAG,qBAAqB,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAC9E,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9E,OAAO,CAAC,SAAS,EAAE,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC7D,mEAAmE;IACnE,IAAI,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACtC,uFAAuF;IACvF,KAAK,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,wDAAwD;AACxD,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,WAAW,CAAC;IAChC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,sBAA2B,GACnC,eAAe,CAiDjB;AAED,uFAAuF;AACvF,eAAO,MAAM,2BAA2B,8BAAwB,CAAC;AAEjE,+DAA+D;AAC/D,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,SAAS,WAAW,EAE1B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,aAAa,CAAC,MAAM,CAAC,EAChE,SAAS,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC,QAAQ,CAAC,CAanB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,SAAS,CAAC,EAAE,CACV,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,WAAW,KACnB,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;CACvD;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,WAAW,EACtB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,QAAQ,CAAC,CAanB"}
|
package/dist/http.js
CHANGED
|
@@ -63,8 +63,8 @@ export const createMemorySessionRegistry = createSessionRegistry;
|
|
|
63
63
|
* server-owned cooperative stop control. The registry entry is removed when
|
|
64
64
|
* the stream finishes or the client disconnects.
|
|
65
65
|
*/
|
|
66
|
-
export function toRegisteredSessionSseResponse(request, registry, events, sessionId) {
|
|
67
|
-
const handle = registry.create(sessionId);
|
|
66
|
+
export async function toRegisteredSessionSseResponse(request, registry, events, sessionId) {
|
|
67
|
+
const handle = await registry.create(sessionId);
|
|
68
68
|
return toNextSseResponse(request, async function* (signal) {
|
|
69
69
|
try {
|
|
70
70
|
yield* events({
|
|
@@ -74,7 +74,7 @@ export function toRegisteredSessionSseResponse(request, registry, events, sessio
|
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
finally {
|
|
77
|
-
registry.release(handle.sessionId);
|
|
77
|
+
await registry.release(handle.sessionId);
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
}
|
|
@@ -90,7 +90,7 @@ export async function handleSessionStop(request, registry, sessionId, options =
|
|
|
90
90
|
return Response.json({ error: 'forbidden' }, { status: 403 });
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
const stopped = registry.stop(sessionId, 'stopped_by_client');
|
|
93
|
+
const stopped = await registry.stop(sessionId, 'stopped_by_client');
|
|
94
94
|
return Response.json({ sessionId, stopped }, { status: stopped ? 202 : 404 });
|
|
95
95
|
}
|
|
96
96
|
function positiveTtl(value) {
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentplat/sessions",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0-alpha.2",
|
|
4
4
|
"description": "Typed ephemeral multi-agent sessions for AgentPlat runtimes.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
"README.md"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@agentplat/
|
|
26
|
-
"@agentplat/
|
|
27
|
-
"@agentplat/
|
|
25
|
+
"@agentplat/core": "^0.3.0-alpha.2",
|
|
26
|
+
"@agentplat/streaming": "^0.3.0-alpha.2",
|
|
27
|
+
"@agentplat/runtime": "^0.3.0-alpha.2"
|
|
28
28
|
},
|
|
29
29
|
"publishConfig": {
|
|
30
30
|
"access": "public"
|