@grackle-ai/adapter-sdk 0.132.1 → 0.133.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/dist/adapter.d.ts +14 -10
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js.map +1 -1
- package/dist/ahp-host-transport.d.ts +124 -0
- package/dist/ahp-host-transport.d.ts.map +1 -0
- package/dist/ahp-host-transport.js +413 -0
- package/dist/ahp-host-transport.js.map +1 -0
- package/dist/connect.d.ts +34 -8
- package/dist/connect.d.ts.map +1 -1
- package/dist/connect.js +79 -35
- package/dist/connect.js.map +1 -1
- package/dist/host-transport.d.ts +15 -27
- package/dist/host-transport.d.ts.map +1 -1
- package/dist/host-transport.js +15 -12
- package/dist/host-transport.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/shared-operations.js +1 -1
- package/dist/shared-operations.js.map +1 -1
- package/package.json +4 -6
- package/dist/grpc-host-transport.d.ts +0 -77
- package/dist/grpc-host-transport.d.ts.map +0 -1
- package/dist/grpc-host-transport.js +0 -168
- package/dist/grpc-host-transport.js.map +0 -1
package/dist/connect.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAyB,MAAM,2BAA2B,CAAC;AAEnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAmBjD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,aAA6B,GACpC,OAAO,CAAC;IAAE,SAAS,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CA0BnE;AAID;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,aAA6B,GACpC,OAAO,CAAC,mBAAmB,CAAC,CAqD9B;AAID,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,uFAAuF;IACvF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD;AAED,6DAA6D;AAC7D,eAAO,MAAM,eAAe,EAAE,UAc7B,CAAC;AAEF,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,qDAAqD;IACrD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
package/dist/connect.js
CHANGED
|
@@ -1,66 +1,110 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createGrpcTransport } from "@connectrpc/connect-node";
|
|
3
|
-
import { powerline } from "@grackle-ai/common";
|
|
1
|
+
import { AhpClientSocket, InMemoryClientIdStore } from "@grackle-ai/ahp-transport";
|
|
4
2
|
import { createConnection } from "node:net";
|
|
5
|
-
import {
|
|
3
|
+
import { AhpHostTransport } from "./ahp-host-transport.js";
|
|
6
4
|
import { closeTunnel } from "./tunnel-registry.js";
|
|
7
5
|
import { sleep } from "./utils.js";
|
|
8
6
|
import { defaultLogger } from "./logger.js";
|
|
9
7
|
// ─── Constants ──────────────────────────────────────────────
|
|
10
|
-
/** Delay between
|
|
8
|
+
/** Delay between connect-with-retry attempts. */
|
|
11
9
|
const CONNECT_RETRY_DELAY_MS = 1_500;
|
|
12
|
-
/** Maximum number of
|
|
10
|
+
/** Maximum number of connect-with-retry attempts. */
|
|
13
11
|
const CONNECT_MAX_RETRIES = 10;
|
|
14
12
|
/** Delay between port availability polls. */
|
|
15
13
|
const TUNNEL_PORT_POLL_DELAY_MS = 500;
|
|
16
14
|
/** Maximum number of port availability polls. */
|
|
17
15
|
const TUNNEL_PORT_POLL_MAX_ATTEMPTS = 20;
|
|
18
|
-
// ───
|
|
16
|
+
// ─── AHP Host Transport Helper ──────────────────────────────
|
|
19
17
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
18
|
+
* Construct an opened {@link AhpHostTransport} for a single PowerLine.
|
|
19
|
+
*
|
|
20
|
+
* Opens an `AhpClientSocket` to `${baseUrl}/ahp`, awaits the AHP
|
|
21
|
+
* `initialize` handshake, and returns the transport ready for use.
|
|
22
|
+
*
|
|
23
|
+
* `InMemoryClientIdStore` is used by default — Grackle's adapter
|
|
24
|
+
* connections are ephemeral (one per provision; reconnect creates a fresh
|
|
25
|
+
* one). Persistent `clientId` across server restarts is not required for
|
|
26
|
+
* HR8d. A future optimization (HR8a-followup #1344) would persist for
|
|
27
|
+
* reconnect-RPC replay efficiency.
|
|
28
|
+
*
|
|
29
|
+
* @param baseUrl - Origin URL of the PowerLine (e.g. `ws://127.0.0.1:7433`).
|
|
30
|
+
* The helper appends `/ahp` to form the WebSocket URL.
|
|
31
|
+
* @param powerlineToken - Bearer token sent on the HTTP upgrade.
|
|
32
|
+
* @param environmentId - Used as the `clientIdKey` to namespace the
|
|
33
|
+
* persisted clientId within the store.
|
|
34
|
+
* @param logger - Optional logger for state transitions.
|
|
35
|
+
* @returns The opened transport.
|
|
23
36
|
*/
|
|
24
|
-
export function
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
export async function createAhpHostTransport(baseUrl, powerlineToken, environmentId, logger = defaultLogger) {
|
|
38
|
+
// Normalize: AHP wire is WebSocket. If baseUrl is http://...; convert to ws://...
|
|
39
|
+
const wsBase = baseUrl.replace(/^http(s?):\/\//, "ws$1://");
|
|
40
|
+
const url = `${wsBase}/ahp`;
|
|
41
|
+
let transport;
|
|
42
|
+
const socket = new AhpClientSocket({
|
|
43
|
+
url,
|
|
44
|
+
powerlineToken,
|
|
45
|
+
clientIdStore: new InMemoryClientIdStore(),
|
|
46
|
+
clientIdKey: environmentId,
|
|
47
|
+
onNotification: (n) => {
|
|
48
|
+
// Lazily route to the transport once constructed. The transport binds
|
|
49
|
+
// to the socket after construction (chicken-and-egg with onNotification).
|
|
50
|
+
if (transport !== undefined) {
|
|
51
|
+
transport.handleNotification(n);
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
onStateChange: (state) => {
|
|
55
|
+
logger.info({ environmentId, state }, "AHP transport state");
|
|
56
|
+
},
|
|
41
57
|
});
|
|
42
|
-
|
|
58
|
+
await socket.open();
|
|
59
|
+
transport = new AhpHostTransport(socket);
|
|
60
|
+
return { transport, socket };
|
|
43
61
|
}
|
|
44
62
|
// ─── Connect Through Tunnel ─────────────────────────────────
|
|
45
63
|
/**
|
|
46
|
-
* Connect to a PowerLine through a local tunnel port, retrying until the
|
|
47
|
-
*
|
|
64
|
+
* Connect to a PowerLine through a local tunnel port, retrying until the AHP
|
|
65
|
+
* `ping` succeeds.
|
|
66
|
+
*
|
|
67
|
+
* @param environmentId - Stable identifier for the environment.
|
|
68
|
+
* @param localPort - Local TCP port the tunnel forwards to the PowerLine.
|
|
69
|
+
* @param powerlineToken - Bearer token for the PowerLine.
|
|
70
|
+
* @param logger - Optional logger.
|
|
71
|
+
* @returns A {@link PowerLineConnection} ready for session operations.
|
|
48
72
|
*/
|
|
49
|
-
export async function connectThroughTunnel(environmentId, localPort, powerlineToken, logger = defaultLogger
|
|
50
|
-
const
|
|
73
|
+
export async function connectThroughTunnel(environmentId, localPort, powerlineToken, logger = defaultLogger) {
|
|
74
|
+
const baseUrl = `ws://127.0.0.1:${localPort}`;
|
|
51
75
|
let lastError;
|
|
52
76
|
for (let attempt = 0; attempt < CONNECT_MAX_RETRIES; attempt++) {
|
|
77
|
+
let attemptSocket;
|
|
53
78
|
try {
|
|
54
|
-
await
|
|
79
|
+
const { transport, socket } = await createAhpHostTransport(baseUrl, powerlineToken, environmentId, logger);
|
|
80
|
+
attemptSocket = socket;
|
|
81
|
+
// Liveness probe via AHP `ping` to verify the wire is alive.
|
|
82
|
+
await socket.request("ping", { channel: "ahp-root://" });
|
|
55
83
|
return {
|
|
56
|
-
client,
|
|
57
84
|
environmentId,
|
|
58
85
|
port: localPort,
|
|
59
|
-
transport
|
|
86
|
+
transport,
|
|
87
|
+
ping: async () => {
|
|
88
|
+
await socket.request("ping", { channel: "ahp-root://" });
|
|
89
|
+
},
|
|
90
|
+
close: async () => {
|
|
91
|
+
await socket.close();
|
|
92
|
+
},
|
|
60
93
|
};
|
|
61
94
|
}
|
|
62
95
|
catch (err) {
|
|
63
96
|
lastError = err;
|
|
97
|
+
// Close the per-attempt socket so we don't leak open WS connections
|
|
98
|
+
// across retries (e.g. when `createAhpHostTransport` succeeded but
|
|
99
|
+
// the subsequent `ping` rejected).
|
|
100
|
+
if (attemptSocket !== undefined) {
|
|
101
|
+
try {
|
|
102
|
+
await attemptSocket.close();
|
|
103
|
+
}
|
|
104
|
+
catch (closeErr) {
|
|
105
|
+
logger.error({ environmentId, err: closeErr }, "Failed to close socket after attempt");
|
|
106
|
+
}
|
|
107
|
+
}
|
|
64
108
|
await sleep(CONNECT_RETRY_DELAY_MS);
|
|
65
109
|
}
|
|
66
110
|
}
|
package/dist/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,+DAA+D;AAE/D,iDAAiD;AACjD,MAAM,sBAAsB,GAAW,KAAK,CAAC;AAE7C,qDAAqD;AACrD,MAAM,mBAAmB,GAAW,EAAE,CAAC;AAEvC,6CAA6C;AAC7C,MAAM,yBAAyB,GAAW,GAAG,CAAC;AAE9C,iDAAiD;AACjD,MAAM,6BAA6B,GAAW,EAAE,CAAC;AAEjD,+DAA+D;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAe,EACf,cAAsB,EACtB,aAAqB,EACrB,SAAwB,aAAa;IAErC,kFAAkF;IAClF,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,GAAG,MAAM,MAAM,CAAC;IAE5B,IAAI,SAAuC,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,GAAG;QACH,cAAc;QACd,aAAa,EAAE,IAAI,qBAAqB,EAAE;QAC1C,WAAW,EAAE,aAAa;QAC1B,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;YACpB,sEAAsE;YACtE,0EAA0E;YAC1E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACvB,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC/D,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC/B,CAAC;AAED,+DAA+D;AAE/D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,aAAqB,EACrB,SAAiB,EACjB,cAAsB,EACtB,SAAwB,aAAa;IAErC,MAAM,OAAO,GAAG,kBAAkB,SAAS,EAAE,CAAC;IAE9C,IAAI,SAAkB,CAAC;IACvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,mBAAmB,EAAE,OAAO,EAAE,EAAE,CAAC;QAC/D,IAAI,aAA0C,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,sBAAsB,CACxD,OAAO,EACP,cAAc,EACd,aAAa,EACb,MAAM,CACP,CAAC;YACF,aAAa,GAAG,MAAM,CAAC;YACvB,6DAA6D;YAC7D,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;YACzD,OAAO;gBACL,aAAa;gBACb,IAAI,EAAE,SAAS;gBACf,SAAS;gBACT,IAAI,EAAE,KAAK,IAAI,EAAE;oBACf,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBACD,KAAK,EAAE,KAAK,IAAI,EAAE;oBAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvB,CAAC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,CAAC;YAChB,oEAAoE;YACpE,mEAAmE;YACnE,mCAAmC;YACnC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC9B,CAAC;gBAAC,OAAO,QAAQ,EAAE,CAAC;oBAClB,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,sCAAsC,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,8CAA8C,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,IAAI,KAAK,CACb,mCAAmC,mBAAmB,cAAc,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CACzI,CAAC;AACJ,CAAC;AAUD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAe;IACzC,KAAK,CAAC,IAAY,EAAE,OAAe,WAAW;QAC5C,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;gBAC1B,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;gBACxB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAUF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,OAAiC;IAEjC,MAAM,MAAM,GAAG,OAAO,EAAE,UAAU,IAAI,eAAe,CAAC;IACtD,MAAM,OAAO,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IAExC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,6BAA6B,EAAE,OAAO,EAAE,EAAE,CAAC;QACzE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAExD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,mCAAmC,6BAA6B,WAAW,CAC9F,CAAC;AACJ,CAAC"}
|
package/dist/host-transport.d.ts
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Transport-agnostic host interface (AHP HR8c).
|
|
2
|
+
* Transport-agnostic host interface (AHP HR8c / HR8d).
|
|
3
3
|
*
|
|
4
|
-
* Wraps the PowerLine
|
|
5
|
-
* `@grackle-ai/core`
|
|
6
|
-
* will replace the gRPC implementation with a native AHP host without
|
|
7
|
-
* changing this interface.
|
|
4
|
+
* Wraps the PowerLine wire behind an AHP-shaped API so consumers in
|
|
5
|
+
* `@grackle-ai/core` don't need to know the underlying transport.
|
|
8
6
|
*
|
|
9
7
|
* Each consumer call-site goes through one of these methods:
|
|
10
|
-
* - `createSession`
|
|
11
|
-
* - `reanimate`
|
|
12
|
-
* - `
|
|
13
|
-
* - `
|
|
14
|
-
* -
|
|
15
|
-
*
|
|
16
|
-
* - `
|
|
8
|
+
* - `createSession` → AHP `createSession` + `subscribe`
|
|
9
|
+
* - `reanimate` → AHP `createSession` with `config.resumeFromRuntimeSessionId`
|
|
10
|
+
* - `dispatchInput` → AHP `dispatchAction` (SessionTurnStartedAction)
|
|
11
|
+
* - `authenticate` → AHP `authenticate` (one call per token, with
|
|
12
|
+
* `resource: grackle://provider/{provider}/{name}` + JSON-encoded token).
|
|
13
|
+
* On-spec method, contorted field values — see `ahp-host-transport.ts`.
|
|
14
|
+
* - `dispose` → AHP `disposeSession`
|
|
15
|
+
* - `listSessions` → AHP `listSessions`
|
|
16
|
+
*
|
|
17
|
+
* Drain semantics: PowerLine replays parked events as `action` notifications
|
|
18
|
+
* immediately after `subscribe`, so they arrive on the same stream — no
|
|
19
|
+
* separate `drainBuffered` method on the interface (removed in HR8d).
|
|
17
20
|
*
|
|
18
21
|
* @module host-transport
|
|
19
22
|
*/
|
|
@@ -141,21 +144,6 @@ export interface IHostTransport {
|
|
|
141
144
|
* call `reanimate` to start the live stream.
|
|
142
145
|
*/
|
|
143
146
|
reanimate(params: ReanimateParams): AsyncIterable<ServerActionEnvelope>;
|
|
144
|
-
/**
|
|
145
|
-
* Drain previously-parked buffered events for a session.
|
|
146
|
-
*
|
|
147
|
-
* Returns a finite stream of envelopes for events the host has been
|
|
148
|
-
* holding since the consumer disconnected; the stream terminates once
|
|
149
|
-
* the parked queue is exhausted. It does NOT continue into the live
|
|
150
|
-
* event stream — callers compose `drainBuffered` + `reanimate` to do
|
|
151
|
-
* recovery (see `session-recovery.ts`).
|
|
152
|
-
*
|
|
153
|
-
* Note: HR8d's AHP wire will add a true seq-cursor `subscribe` method
|
|
154
|
-
* for "resume from server seq N" semantics. That's intentionally a
|
|
155
|
-
* separate method on this interface; this one stays narrowly scoped to
|
|
156
|
-
* the parked-queue drain that gRPC supports today.
|
|
157
|
-
*/
|
|
158
|
-
drainBuffered(sessionUri: string): AsyncIterable<ServerActionEnvelope>;
|
|
159
147
|
/**
|
|
160
148
|
* Send input text to a session.
|
|
161
149
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-transport.d.ts","sourceRoot":"","sources":["../src/host-transport.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"host-transport.d.ts","sourceRoot":"","sources":["../src/host-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/host-transport.js
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Transport-agnostic host interface (AHP HR8c).
|
|
2
|
+
* Transport-agnostic host interface (AHP HR8c / HR8d).
|
|
3
3
|
*
|
|
4
|
-
* Wraps the PowerLine
|
|
5
|
-
* `@grackle-ai/core`
|
|
6
|
-
* will replace the gRPC implementation with a native AHP host without
|
|
7
|
-
* changing this interface.
|
|
4
|
+
* Wraps the PowerLine wire behind an AHP-shaped API so consumers in
|
|
5
|
+
* `@grackle-ai/core` don't need to know the underlying transport.
|
|
8
6
|
*
|
|
9
7
|
* Each consumer call-site goes through one of these methods:
|
|
10
|
-
* - `createSession`
|
|
11
|
-
* - `reanimate`
|
|
12
|
-
* - `
|
|
13
|
-
* - `
|
|
14
|
-
* -
|
|
15
|
-
*
|
|
16
|
-
* - `
|
|
8
|
+
* - `createSession` → AHP `createSession` + `subscribe`
|
|
9
|
+
* - `reanimate` → AHP `createSession` with `config.resumeFromRuntimeSessionId`
|
|
10
|
+
* - `dispatchInput` → AHP `dispatchAction` (SessionTurnStartedAction)
|
|
11
|
+
* - `authenticate` → AHP `authenticate` (one call per token, with
|
|
12
|
+
* `resource: grackle://provider/{provider}/{name}` + JSON-encoded token).
|
|
13
|
+
* On-spec method, contorted field values — see `ahp-host-transport.ts`.
|
|
14
|
+
* - `dispose` → AHP `disposeSession`
|
|
15
|
+
* - `listSessions` → AHP `listSessions`
|
|
16
|
+
*
|
|
17
|
+
* Drain semantics: PowerLine replays parked events as `action` notifications
|
|
18
|
+
* immediately after `subscribe`, so they arrive on the same stream — no
|
|
19
|
+
* separate `drainBuffered` method on the interface (removed in HR8d).
|
|
17
20
|
*
|
|
18
21
|
* @module host-transport
|
|
19
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-transport.js","sourceRoot":"","sources":["../src/host-transport.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"host-transport.js","sourceRoot":"","sources":["../src/host-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
export type { AdapterLogger } from "./logger.js";
|
|
2
2
|
export { FatalAdapterError } from "./fatal-error.js";
|
|
3
3
|
export { defaultLogger } from "./logger.js";
|
|
4
|
-
export {
|
|
5
|
-
export type { PowerLineClient, PowerLineConnection, ProvisionEvent, BaseEnvironmentConfig, EnvironmentAdapter, } from "./adapter.js";
|
|
4
|
+
export type { PowerLineConnection, ProvisionEvent, BaseEnvironmentConfig, EnvironmentAdapter, } from "./adapter.js";
|
|
6
5
|
export { reconnectOrProvision } from "./adapter.js";
|
|
7
6
|
export type { RemoteExecutor } from "./remote-executor.js";
|
|
8
7
|
export type { RemoteTunnel, TunnelProcessFactory, TunnelPortProbe } from "./tunnel.js";
|
|
@@ -10,7 +9,7 @@ export { ProcessTunnel } from "./tunnel.js";
|
|
|
10
9
|
export type { TunnelState } from "./tunnel-registry.js";
|
|
11
10
|
export { registerTunnel, getTunnel, closeTunnel, closeAllTunnels } from "./tunnel-registry.js";
|
|
12
11
|
export type { PortProber, WaitForLocalPortOptions } from "./connect.js";
|
|
13
|
-
export {
|
|
12
|
+
export { createAhpHostTransport, connectThroughTunnel, waitForLocalPort, TCP_PORT_PROBER, } from "./connect.js";
|
|
14
13
|
export type { BootstrapOptions, StartRemotePowerLineOptions } from "./bootstrap.js";
|
|
15
14
|
export { bootstrapPowerLine, buildEnvFileContent, startRemotePowerLine, probeRemotePowerLine, writeRemoteEnvFile, buildRemoteKillCommand, } from "./bootstrap.js";
|
|
16
15
|
export { remoteStop, remoteDestroy, remoteHealthCheck } from "./shared-operations.js";
|
|
@@ -20,5 +19,5 @@ export type { ExecFunction, AdapterDependencies } from "./adapter-dependencies.j
|
|
|
20
19
|
export { sleep, findFreePort, isDevMode, getPackageVersion, shellEscape, REMOTE_POWERLINE_DIRECTORY, SSH_CONNECTIVITY_TIMEOUT_MS, REMOTE_EXEC_DEFAULT_TIMEOUT_MS, } from "./utils.js";
|
|
21
20
|
export type { AgentEventFields } from "@grackle-ai/common";
|
|
22
21
|
export type { IHostTransport, ServerActionEnvelope, CreateSessionParams, CreateSessionResult, ReanimateParams, AuthenticateParams, AuthenticateTokenItem, HostSessionInfo, } from "./host-transport.js";
|
|
23
|
-
export {
|
|
22
|
+
export { AhpHostTransport, bindNotificationHandler } from "./ahp-host-transport.js";
|
|
24
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG/F,YAAY,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGtF,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGnF,OAAO,EACL,KAAK,EACL,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,YAAY,CAAC;AAMpB,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
// ─── Fatal Error ─────────────────────────────────────────────
|
|
2
2
|
export { FatalAdapterError } from "./fatal-error.js";
|
|
3
3
|
export { defaultLogger } from "./logger.js";
|
|
4
|
-
// ─── Proto Types ──────────────────────────────────────────────
|
|
5
|
-
export { powerline } from "@grackle-ai/common";
|
|
6
4
|
export { reconnectOrProvision } from "./adapter.js";
|
|
7
5
|
export { ProcessTunnel } from "./tunnel.js";
|
|
8
6
|
export { registerTunnel, getTunnel, closeTunnel, closeAllTunnels } from "./tunnel-registry.js";
|
|
9
|
-
export {
|
|
7
|
+
export { createAhpHostTransport, connectThroughTunnel, waitForLocalPort, TCP_PORT_PROBER, } from "./connect.js";
|
|
10
8
|
export { bootstrapPowerLine, buildEnvFileContent, startRemotePowerLine, probeRemotePowerLine, writeRemoteEnvFile, buildRemoteKillCommand, } from "./bootstrap.js";
|
|
11
9
|
// ─── Shared Operations ─────────────────────────────────────
|
|
12
10
|
export { remoteStop, remoteDestroy, remoteHealthCheck } from "./shared-operations.js";
|
|
13
11
|
export { exec } from "./exec.js";
|
|
14
12
|
// ─── Utilities ──────────────────────────────────────────────
|
|
15
13
|
export { sleep, findFreePort, isDevMode, getPackageVersion, shellEscape, REMOTE_POWERLINE_DIRECTORY, SSH_CONNECTIVITY_TIMEOUT_MS, REMOTE_EXEC_DEFAULT_TIMEOUT_MS, } from "./utils.js";
|
|
16
|
-
export {
|
|
14
|
+
export { AhpHostTransport, bindNotificationHandler } from "./ahp-host-transport.js";
|
|
17
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,gEAAgE;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,gEAAgE;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAS5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAOpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI/F,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,8DAA8D;AAC9D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAItF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,+DAA+D;AAC/D,OAAO,EACL,KAAK,EACL,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,YAAY,CAAC;AAiBpB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-operations.js","sourceRoot":"","sources":["../src/shared-operations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,aAAqB,EACrB,QAAwB,EACxB,SAAwB,aAAa;IAErC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,EAAE,aAAa,EAAE,GAAG,EAAE,EACtB,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,aAAqB,EACrB,QAAwB,EACxB,SAAwB,aAAa;IAErC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,IAAI,CACjB,GAAG,sBAAsB,EAAE,IAAI;YAC7B,0CAA0C;YAC1C,qEAAqE,0BAA0B,gCAAgC;YAC/H,yEAAyE;YACzE,qBAAqB,0BAA0B,gFAAgF;YAC/H,UAAU,0BAA0B,EAAE,CACzC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,+CAA+C,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAA+B;IACrE,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,0EAA0E;IAC1E,6EAA6E;IAC7E,mEAAmE;IACnE,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"shared-operations.js","sourceRoot":"","sources":["../src/shared-operations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,aAAqB,EACrB,QAAwB,EACxB,SAAwB,aAAa;IAErC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,EAAE,aAAa,EAAE,GAAG,EAAE,EACtB,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,aAAqB,EACrB,QAAwB,EACxB,SAAwB,aAAa;IAErC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,IAAI,CACjB,GAAG,sBAAsB,EAAE,IAAI;YAC7B,0CAA0C;YAC1C,qEAAqE,0BAA0B,gCAAgC;YAC/H,yEAAyE;YACzE,qBAAqB,0BAA0B,gFAAgF;YAC/H,UAAU,0BAA0B,EAAE,CACzC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,+CAA+C,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAA+B;IACrE,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,0EAA0E;IAC1E,6EAA6E;IAC7E,mEAAmE;IACnE,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grackle-ai/adapter-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.133.0",
|
|
4
4
|
"description": "SDK for building Grackle environment adapters",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -28,11 +28,9 @@
|
|
|
28
28
|
"dist/"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@
|
|
32
|
-
"@
|
|
33
|
-
"@
|
|
34
|
-
"@grackle-ai/common": "0.132.1",
|
|
35
|
-
"@grackle-ai/ahp": "0.132.1"
|
|
31
|
+
"@grackle-ai/ahp": "0.133.0",
|
|
32
|
+
"@grackle-ai/ahp-transport": "0.133.0",
|
|
33
|
+
"@grackle-ai/common": "0.133.0"
|
|
36
34
|
},
|
|
37
35
|
"devDependencies": {
|
|
38
36
|
"@rushstack/heft": "1.2.7",
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* gRPC-backed implementation of {@link IHostTransport} (AHP HR8c).
|
|
3
|
-
*
|
|
4
|
-
* Wraps a {@link PowerLineClient} (ConnectRPC client) and folds each
|
|
5
|
-
* incoming `AgentEvent` through the {@link mapAgentEvent} mapper to produce
|
|
6
|
-
* AHP `StateAction[]`. Per-session {@link MapperContext} state is kept inside
|
|
7
|
-
* this instance so consumers don't need to thread it through their code.
|
|
8
|
-
*
|
|
9
|
-
* @module grpc-host-transport
|
|
10
|
-
*/
|
|
11
|
-
import type { PowerLineClient } from "./adapter.js";
|
|
12
|
-
import type { AuthenticateParams, CreateSessionParams, CreateSessionResult, HostSessionInfo, IHostTransport, ReanimateParams, ServerActionEnvelope } from "./host-transport.js";
|
|
13
|
-
/**
|
|
14
|
-
* gRPC-backed {@link IHostTransport} for a single environment.
|
|
15
|
-
*
|
|
16
|
-
* Lifecycle: one instance per `PowerLineConnection`. The mapper context map
|
|
17
|
-
* is keyed by session URI so multiple sessions on the same environment each
|
|
18
|
-
* get their own turn/tool tracking.
|
|
19
|
-
*/
|
|
20
|
-
export declare class GrpcHostTransport implements IHostTransport {
|
|
21
|
-
/** Underlying ConnectRPC client for the PowerLine gRPC service. */
|
|
22
|
-
private readonly client;
|
|
23
|
-
/**
|
|
24
|
-
* Per-session mapper context. Created lazily on first event per session;
|
|
25
|
-
* cleaned up when the session's stream completes or errors.
|
|
26
|
-
*/
|
|
27
|
-
private readonly mapperContexts;
|
|
28
|
-
/**
|
|
29
|
-
* Create a new gRPC-backed host transport.
|
|
30
|
-
*
|
|
31
|
-
* @param client - The ConnectRPC client to wrap. Typically obtained from
|
|
32
|
-
* {@link createPowerLineClient} or a `PowerLineConnection`.
|
|
33
|
-
*/
|
|
34
|
-
constructor(client: PowerLineClient);
|
|
35
|
-
/**
|
|
36
|
-
* Create a new session via PowerLine's `spawn` RPC.
|
|
37
|
-
*
|
|
38
|
-
* Returns the session URI plus a live stream of {@link ServerActionEnvelope}s.
|
|
39
|
-
* The stream is mapped from the underlying `AgentEvent` stream.
|
|
40
|
-
*/
|
|
41
|
-
createSession(params: CreateSessionParams): CreateSessionResult;
|
|
42
|
-
/**
|
|
43
|
-
* Reanimate a suspended session via PowerLine's `resume` RPC.
|
|
44
|
-
*
|
|
45
|
-
* Returns a live stream of envelopes for the reanimated session. Note that
|
|
46
|
-
* `resume` alone does NOT replay buffered events — call
|
|
47
|
-
* {@link IHostTransport.drainBuffered} first to replay the parked queue,
|
|
48
|
-
* then this method to start the live stream.
|
|
49
|
-
*/
|
|
50
|
-
reanimate(params: ReanimateParams): AsyncIterable<ServerActionEnvelope>;
|
|
51
|
-
/**
|
|
52
|
-
* Drain previously-parked buffered events for a session.
|
|
53
|
-
*
|
|
54
|
-
* Maps to the gRPC `drainBufferedEvents` RPC. The returned stream yields
|
|
55
|
-
* the buffered envelopes and then terminates — it does NOT continue into
|
|
56
|
-
* the live event stream. Callers compose `drainBuffered` + `reanimate`
|
|
57
|
-
* to do recovery.
|
|
58
|
-
*/
|
|
59
|
-
drainBuffered(sessionUri: string): AsyncIterable<ServerActionEnvelope>;
|
|
60
|
-
/** Send input text to a session via PowerLine's `sendInput` RPC. */
|
|
61
|
-
dispatchInput(sessionUri: string, text: string): Promise<void>;
|
|
62
|
-
/** Authenticate credentials via PowerLine's `authenticate` RPC. */
|
|
63
|
-
authenticate(params: AuthenticateParams): Promise<void>;
|
|
64
|
-
/** Dispose a session via PowerLine's `kill` RPC. */
|
|
65
|
-
dispose(sessionUri: string, reason?: string): Promise<void>;
|
|
66
|
-
/** List active sessions via PowerLine's `listSessions` RPC. */
|
|
67
|
-
listSessions(): Promise<HostSessionInfo[]>;
|
|
68
|
-
/**
|
|
69
|
-
* Fold a raw `AgentEvent` stream into `ServerActionEnvelope`s by running
|
|
70
|
-
* each event through the mapper. The per-session `MapperContext` is
|
|
71
|
-
* created/retrieved lazily and removed when the stream completes.
|
|
72
|
-
*/
|
|
73
|
-
private foldStream;
|
|
74
|
-
/** Get an existing or create a fresh `MapperContext` for a session. */
|
|
75
|
-
private getOrCreateContext;
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=grpc-host-transport.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-host-transport.d.ts","sourceRoot":"","sources":["../src/grpc-host-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;IAExE;;;;;OAKG;gBACgB,MAAM,EAAE,eAAe;IAI1C;;;;;OAKG;IACI,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB;IA2BtE;;;;;;;OAOG;IACI,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,CAAC,oBAAoB,CAAC;IAU9E;;;;;;;OAOG;IACW,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,oBAAoB,CAAC;IAQpF,oEAAoE;IACvD,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3E,mEAAmE;IACtD,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpE,oDAAoD;IACvC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxE,+DAA+D;IAClD,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IASvD;;;;OAIG;YACY,UAAU;IAmBzB,uEAAuE;IACvE,OAAO,CAAC,kBAAkB;CAc3B"}
|