@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.
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAmBjD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,eAAe,CAsBjB;AAID;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,aAA6B,EACrC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC,CA6B9B;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"}
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 { createClient } from "@connectrpc/connect";
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 { GrpcHostTransport } from "./grpc-host-transport.js";
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 gRPC connect-with-retry attempts. */
8
+ /** Delay between connect-with-retry attempts. */
11
9
  const CONNECT_RETRY_DELAY_MS = 1_500;
12
- /** Maximum number of gRPC connect-with-retry attempts. */
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
- // ─── PowerLine Client ───────────────────────────────────────
16
+ // ─── AHP Host Transport Helper ──────────────────────────────
19
17
  /**
20
- * Create an authenticated gRPC client for a PowerLine.
21
- * The PowerLine token is sent as a Bearer token on every request.
22
- * When `traceId` is provided, it is forwarded as the `x-trace-id` header for request correlation.
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 createPowerLineClient(baseUrl, powerlineToken, traceId) {
25
- const interceptors = [];
26
- if (powerlineToken) {
27
- interceptors.push((next) => async (req) => {
28
- req.header.set("Authorization", `Bearer ${powerlineToken}`);
29
- return next(req);
30
- });
31
- }
32
- if (traceId) {
33
- interceptors.push((next) => async (req) => {
34
- req.header.set("x-trace-id", traceId);
35
- return next(req);
36
- });
37
- }
38
- const transport = createGrpcTransport({
39
- baseUrl,
40
- interceptors,
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
- return createClient(powerline.GracklePowerLine, transport);
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 gRPC
47
- * service responds to a ping.
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, traceId) {
50
- const client = createPowerLineClient(`http://127.0.0.1:${localPort}`, powerlineToken, traceId);
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 client.ping({});
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: new GrpcHostTransport(client),
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
@@ -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 gRPC client behind an AHP-shaped API so consumers in
5
- * `@grackle-ai/core` no longer need to import `powerline.*` proto types. HR8d
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` `PowerLineClient.spawn`
11
- * - `reanimate` `PowerLineClient.resume`
12
- * - `drainBuffered` `PowerLineClient.drainBufferedEvents`
13
- * - `dispatchInput` `PowerLineClient.sendInput`
14
- * - `authenticate` ← `PowerLineClient.authenticate`
15
- * - `dispose` ← `PowerLineClient.kill`
16
- * - `listSessions` `PowerLineClient.listSessions`
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":"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"}
1
+ {"version":3,"file":"host-transport.d.ts","sourceRoot":"","sources":["../src/host-transport.ts"],"names":[],"mappings":"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"}
@@ -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 gRPC client behind an AHP-shaped API so consumers in
5
- * `@grackle-ai/core` no longer need to import `powerline.*` proto types. HR8d
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` `PowerLineClient.spawn`
11
- * - `reanimate` `PowerLineClient.resume`
12
- * - `drainBuffered` `PowerLineClient.drainBufferedEvents`
13
- * - `dispatchInput` `PowerLineClient.sendInput`
14
- * - `authenticate` ← `PowerLineClient.authenticate`
15
- * - `dispose` ← `PowerLineClient.kill`
16
- * - `listSessions` `PowerLineClient.listSessions`
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;;;;;;;;;;;;;;;;;;GAkBG"}
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 { powerline } from "@grackle-ai/common";
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 { createPowerLineClient, connectThroughTunnel, waitForLocalPort, TCP_PORT_PROBER, } from "./connect.js";
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 { GrpcHostTransport } from "./grpc-host-transport.js";
22
+ export { AhpHostTransport, bindNotificationHandler } from "./ahp-host-transport.js";
24
23
  //# sourceMappingURL=index.d.ts.map
@@ -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,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,YAAY,EACV,eAAe,EACf,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,qBAAqB,EACrB,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,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
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 { createPowerLineClient, connectThroughTunnel, waitForLocalPort, TCP_PORT_PROBER, } from "./connect.js";
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 { GrpcHostTransport } from "./grpc-host-transport.js";
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;AAE5C,iEAAiE;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU/C,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,qBAAqB,EACrB,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,iBAAiB,EAAE,MAAM,0BAA0B,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"}
@@ -46,7 +46,7 @@ export async function remoteHealthCheck(connection) {
46
46
  return false;
47
47
  }
48
48
  try {
49
- await connection.client.ping({});
49
+ await connection.ping();
50
50
  return true;
51
51
  }
52
52
  catch {
@@ -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,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,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.132.1",
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
- "@bufbuild/protobuf": "^2.5.0",
32
- "@connectrpc/connect": "^2.0.0",
33
- "@connectrpc/connect-node": "^2.0.0",
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"}