@cydm/happy-elves 0.1.0-beta.31 → 0.1.0-beta.310
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/apps/cli/dist/commands/app.js +10 -0
- package/apps/cli/dist/commands/daemon.js +92 -4
- package/apps/cli/dist/commands/gateway.d.ts +2 -0
- package/apps/cli/dist/commands/gateway.js +429 -0
- package/apps/cli/dist/commands/lib/args.js +49 -0
- package/apps/cli/dist/commands/lib/bootstrap-daemon.d.ts +2 -2
- package/apps/cli/dist/commands/lib/bootstrap-daemon.js +2 -2
- package/apps/cli/dist/commands/lib/doctor.d.ts +11 -0
- package/apps/cli/dist/commands/lib/doctor.js +276 -11
- package/apps/cli/dist/commands/lib/gateway-store.d.ts +38 -0
- package/apps/cli/dist/commands/lib/gateway-store.js +33 -0
- package/apps/cli/dist/commands/lib/index.d.ts +4 -2
- package/apps/cli/dist/commands/lib/index.js +2 -0
- package/apps/cli/dist/commands/lib/json.d.ts +2 -2
- package/apps/cli/dist/commands/lib/json.js +5 -2
- package/apps/cli/dist/commands/lib/local-daemon.d.ts +1 -0
- package/apps/cli/dist/commands/lib/local-daemon.js +14 -0
- package/apps/cli/dist/commands/lib/paths.d.ts +2 -0
- package/apps/cli/dist/commands/lib/paths.js +2 -0
- package/apps/cli/dist/commands/lib/relay-db-audit.d.ts +37 -0
- package/apps/cli/dist/commands/lib/relay-db-audit.js +300 -0
- package/apps/cli/dist/commands/lib/relay-http.d.ts +1 -1
- package/apps/cli/dist/commands/lib/scope.d.ts +1 -1
- package/apps/cli/dist/commands/lib/session-output.d.ts +15 -1
- package/apps/cli/dist/commands/lib/session-output.js +214 -6
- package/apps/cli/dist/commands/lib/session-view.d.ts +2 -2
- package/apps/cli/dist/commands/lib/status.js +5 -1
- package/apps/cli/dist/commands/lib/types.d.ts +4 -2
- package/apps/cli/dist/commands/lib/usage.js +123 -10
- package/apps/cli/dist/commands/lib/workspace.d.ts +2 -2
- package/apps/cli/dist/commands/lib/workspace.js +63 -10
- package/apps/cli/dist/commands/machine.js +50 -9
- package/apps/cli/dist/commands/memory.d.ts +2 -0
- package/apps/cli/dist/commands/memory.js +179 -0
- package/apps/cli/dist/commands/relay.js +29 -2
- package/apps/cli/dist/commands/release.d.ts +2 -0
- package/apps/cli/dist/commands/release.js +197 -0
- package/apps/cli/dist/commands/remote.js +10 -2
- package/apps/cli/dist/commands/schedule.d.ts +2 -0
- package/apps/cli/dist/commands/schedule.js +273 -0
- package/apps/cli/dist/commands/session.js +517 -5
- package/apps/cli/dist/commands/turn.js +225 -9
- package/apps/cli/dist/commands/workspace.d.ts +2 -0
- package/apps/cli/dist/commands/workspace.js +68 -0
- package/apps/cli/package.json +6 -0
- package/apps/daemon/dist/gateway/adapters.d.ts +38 -0
- package/apps/daemon/dist/gateway/adapters.js +2 -0
- package/apps/daemon/dist/gateway/feishu.d.ts +65 -0
- package/apps/daemon/dist/gateway/feishu.js +493 -0
- package/apps/daemon/dist/gateway/format.d.ts +2 -0
- package/apps/daemon/dist/gateway/format.js +19 -0
- package/apps/daemon/dist/gateway/handler.d.ts +7 -0
- package/apps/daemon/dist/gateway/handler.js +151 -0
- package/apps/daemon/dist/gateway/runtime.d.ts +33 -0
- package/apps/daemon/dist/gateway/runtime.js +850 -0
- package/apps/daemon/dist/gateway/store.d.ts +92 -0
- package/apps/daemon/dist/gateway/store.js +268 -0
- package/apps/daemon/dist/memory/handler.d.ts +7 -0
- package/apps/daemon/dist/memory/handler.js +105 -0
- package/apps/daemon/dist/memory/manager.d.ts +44 -0
- package/apps/daemon/dist/memory/manager.js +359 -0
- package/apps/daemon/dist/paths.d.ts +3 -0
- package/apps/daemon/dist/paths.js +3 -0
- package/apps/daemon/dist/relay/admission.d.ts +30 -0
- package/apps/daemon/dist/relay/admission.js +31 -0
- package/apps/daemon/dist/relay/connection.js +37 -1
- package/apps/daemon/dist/relay/devtools.d.ts +1 -1
- package/apps/daemon/dist/relay/register.js +2 -0
- package/apps/daemon/dist/relay/send.d.ts +2 -2
- package/apps/daemon/dist/relay/send.js +2 -0
- package/apps/daemon/dist/relay-http.d.ts +1 -1
- package/apps/daemon/dist/runtime/external-provider.d.ts +1 -1
- package/apps/daemon/dist/runtime/external-provider.js +187 -17
- package/apps/daemon/dist/runtime.d.ts +1 -2
- package/apps/daemon/dist/runtime.js +0 -3
- package/apps/daemon/dist/schedule/handler.d.ts +9 -0
- package/apps/daemon/dist/schedule/handler.js +148 -0
- package/apps/daemon/dist/schedule/runner.d.ts +21 -0
- package/apps/daemon/dist/schedule/runner.js +547 -0
- package/apps/daemon/dist/schedule/store.d.ts +9 -0
- package/apps/daemon/dist/schedule/store.js +143 -0
- package/apps/daemon/dist/session/create-session.d.ts +1 -1
- package/apps/daemon/dist/session/directory.d.ts +1 -1
- package/apps/daemon/dist/session/events.d.ts +15 -2
- package/apps/daemon/dist/session/events.js +76 -24
- package/apps/daemon/dist/session/file-preview.d.ts +1 -1
- package/apps/daemon/dist/session/lifecycle.d.ts +26 -3
- package/apps/daemon/dist/session/lifecycle.js +161 -22
- package/apps/daemon/dist/session/metadata.d.ts +2 -2
- package/apps/daemon/dist/session/metadata.js +42 -1
- package/apps/daemon/dist/session/primitives.d.ts +1 -1
- package/apps/daemon/dist/session/primitives.js +37 -6
- package/apps/daemon/dist/session/prompt.d.ts +28 -1
- package/apps/daemon/dist/session/prompt.js +340 -5
- package/apps/daemon/dist/session/reconcile.d.ts +3 -0
- package/apps/daemon/dist/session/reconcile.js +235 -0
- package/apps/daemon/dist/session/runtime-handle.d.ts +1 -1
- package/apps/daemon/dist/start.js +5 -1
- package/apps/daemon/dist/state.d.ts +2 -2
- package/apps/daemon/dist/turn-coordinator.d.ts +1 -0
- package/apps/daemon/dist/turn-coordinator.js +4 -0
- package/apps/daemon/dist/types.d.ts +16 -1
- package/apps/daemon/package.json +3 -25
- package/apps/relay/dist/connections.d.ts +2 -0
- package/apps/relay/dist/controller-handlers.d.ts +42 -2
- package/apps/relay/dist/controller-handlers.js +349 -37
- package/apps/relay/dist/db.js +296 -2
- package/apps/relay/dist/errors.d.ts +2 -1
- package/apps/relay/dist/errors.js +3 -1
- package/apps/relay/dist/http-routes.js +659 -33
- package/apps/relay/dist/http-schemas.d.ts +156 -0
- package/apps/relay/dist/http-schemas.js +85 -0
- package/apps/relay/dist/index.js +31 -1
- package/apps/relay/dist/machine-handlers.d.ts +15 -7
- package/apps/relay/dist/machine-handlers.js +567 -27
- package/apps/relay/dist/projections.d.ts +1 -1
- package/apps/relay/dist/projections.js +13 -0
- package/apps/relay/dist/relay-context.d.ts +41 -3
- package/apps/relay/dist/relay-context.js +244 -19
- package/apps/relay/dist/repositories.d.ts +2 -2
- package/apps/relay/dist/repositories.js +28 -1
- package/apps/relay/dist/runtime-bindings.d.ts +25 -0
- package/apps/relay/dist/runtime-bindings.js +49 -0
- package/apps/relay/dist/scope.d.ts +1 -1
- package/apps/relay/dist/types.d.ts +71 -1
- package/apps/relay/dist/websocket.js +2 -0
- package/package.json +5 -11
- package/packages/agent-sdk/dist/index.d.ts +80 -0
- package/packages/agent-sdk/dist/index.js +16 -0
- package/packages/client/dist/account.d.ts +35 -2
- package/packages/client/dist/account.js +98 -1
- package/packages/client/dist/client.d.ts +59 -6
- package/packages/client/dist/client.js +312 -58
- package/packages/client/dist/index.d.ts +1 -1
- package/packages/client/dist/parsers.d.ts +28 -2
- package/packages/client/dist/parsers.js +167 -0
- package/packages/client/dist/transport.d.ts +21 -1
- package/packages/client/dist/transport.js +69 -6
- package/packages/client/dist/types.d.ts +177 -1
- package/packages/client/dist/validation.d.ts +1 -1
- package/packages/runtime/dist/index.d.ts +66 -0
- package/packages/runtime-acpx/dist/index.d.ts +1 -1
- package/packages/runtime-acpx/dist/index.js +8 -0
- package/packages/runtime-cli/dist/claude-history.d.ts +1 -2
- package/packages/runtime-cli/dist/claude-history.js +0 -3
- package/packages/runtime-cli/dist/claude-session-store.d.ts +0 -1
- package/packages/runtime-cli/dist/claude-session-store.js +1 -1
- package/packages/runtime-cli/dist/claude-turn.d.ts +2 -1
- package/packages/runtime-cli/dist/claude-turn.js +29 -9
- package/packages/runtime-cli/dist/codex-app-server.d.ts +8 -3
- package/packages/runtime-cli/dist/codex-app-server.js +122 -25
- package/packages/runtime-cli/dist/codex-history.d.ts +1 -2
- package/packages/runtime-cli/dist/codex-history.js +11 -5
- package/packages/runtime-cli/dist/codex-protocol.d.ts +2 -2
- package/packages/runtime-cli/dist/codex-protocol.js +4 -4
- package/packages/runtime-cli/dist/history-merge.d.ts +1 -1
- package/packages/runtime-cli/dist/index.d.ts +1 -1
- package/packages/runtime-cli/dist/index.js +108 -2
- package/packages/runtime-cli/dist/permissions.d.ts +1 -1
- package/packages/runtime-cli/dist/session-store.d.ts +2 -1
- package/packages/runtime-cli/dist/session-store.js +9 -8
- package/packages/shared/dist/index.d.ts +2 -0
- package/packages/shared/dist/index.js +2 -0
- package/packages/shared/dist/protocol-schemas.d.ts +1077 -0
- package/packages/shared/dist/protocol-schemas.js +273 -0
- package/packages/shared/dist/protocol-types.d.ts +371 -3
- package/packages/shared/dist/protocol.d.ts +181 -2
- package/packages/shared/dist/protocol.js +197 -1
- package/packages/shared/dist/session-tags.d.ts +12 -0
- package/packages/shared/dist/session-tags.js +50 -0
- package/apps/cli/dist/commands/account.js.map +0 -1
- package/apps/cli/dist/commands/app.js.map +0 -1
- package/apps/cli/dist/commands/collect.js.map +0 -1
- package/apps/cli/dist/commands/command.js.map +0 -1
- package/apps/cli/dist/commands/config.js.map +0 -1
- package/apps/cli/dist/commands/daemon.js.map +0 -1
- package/apps/cli/dist/commands/lib/args.js.map +0 -1
- package/apps/cli/dist/commands/lib/audit.js.map +0 -1
- package/apps/cli/dist/commands/lib/bootstrap-config.js.map +0 -1
- package/apps/cli/dist/commands/lib/bootstrap-daemon.js.map +0 -1
- package/apps/cli/dist/commands/lib/bootstrap-output.js.map +0 -1
- package/apps/cli/dist/commands/lib/bootstrap.js.map +0 -1
- package/apps/cli/dist/commands/lib/config.js.map +0 -1
- package/apps/cli/dist/commands/lib/doctor.js.map +0 -1
- package/apps/cli/dist/commands/lib/exit.js.map +0 -1
- package/apps/cli/dist/commands/lib/index.js.map +0 -1
- package/apps/cli/dist/commands/lib/json.js.map +0 -1
- package/apps/cli/dist/commands/lib/local-daemon.js.map +0 -1
- package/apps/cli/dist/commands/lib/loop-store.js.map +0 -1
- package/apps/cli/dist/commands/lib/paths.js.map +0 -1
- package/apps/cli/dist/commands/lib/relay-http.js.map +0 -1
- package/apps/cli/dist/commands/lib/scope.js.map +0 -1
- package/apps/cli/dist/commands/lib/session-output.js.map +0 -1
- package/apps/cli/dist/commands/lib/session-view.js.map +0 -1
- package/apps/cli/dist/commands/lib/status.js.map +0 -1
- package/apps/cli/dist/commands/lib/types.js.map +0 -1
- package/apps/cli/dist/commands/lib/usage.js.map +0 -1
- package/apps/cli/dist/commands/lib/workspace.js.map +0 -1
- package/apps/cli/dist/commands/loop.js.map +0 -1
- package/apps/cli/dist/commands/machine.js.map +0 -1
- package/apps/cli/dist/commands/relay.js.map +0 -1
- package/apps/cli/dist/commands/remote.js.map +0 -1
- package/apps/cli/dist/commands/session.js.map +0 -1
- package/apps/cli/dist/commands/token.js.map +0 -1
- package/apps/cli/dist/commands/turn.js.map +0 -1
- package/apps/cli/dist/errors.js.map +0 -1
- package/apps/cli/dist/index.js.map +0 -1
- package/apps/daemon/dist/app.js.map +0 -1
- package/apps/daemon/dist/args.js.map +0 -1
- package/apps/daemon/dist/audit.js.map +0 -1
- package/apps/daemon/dist/cli.js.map +0 -1
- package/apps/daemon/dist/config.js.map +0 -1
- package/apps/daemon/dist/errors.js.map +0 -1
- package/apps/daemon/dist/loop/runner.js.map +0 -1
- package/apps/daemon/dist/loop/store.js.map +0 -1
- package/apps/daemon/dist/pair.js.map +0 -1
- package/apps/daemon/dist/paths.js.map +0 -1
- package/apps/daemon/dist/process.js.map +0 -1
- package/apps/daemon/dist/relay/connection.js.map +0 -1
- package/apps/daemon/dist/relay/devtools.js.map +0 -1
- package/apps/daemon/dist/relay/register.js.map +0 -1
- package/apps/daemon/dist/relay/send.js.map +0 -1
- package/apps/daemon/dist/relay-http.js.map +0 -1
- package/apps/daemon/dist/runtime/external-provider.js.map +0 -1
- package/apps/daemon/dist/runtime.js.map +0 -1
- package/apps/daemon/dist/session/create-session.js.map +0 -1
- package/apps/daemon/dist/session/directory.js.map +0 -1
- package/apps/daemon/dist/session/events.js.map +0 -1
- package/apps/daemon/dist/session/file-preview.js.map +0 -1
- package/apps/daemon/dist/session/lifecycle.js.map +0 -1
- package/apps/daemon/dist/session/metadata.js.map +0 -1
- package/apps/daemon/dist/session/primitives.js.map +0 -1
- package/apps/daemon/dist/session/prompt.js.map +0 -1
- package/apps/daemon/dist/session/runtime-handle.js.map +0 -1
- package/apps/daemon/dist/start.js.map +0 -1
- package/apps/daemon/dist/state.js.map +0 -1
- package/apps/daemon/dist/turn-coordinator.js.map +0 -1
- package/apps/daemon/dist/types.js.map +0 -1
- package/apps/daemon/dist/utils.js.map +0 -1
- package/apps/relay/dist/auth.js.map +0 -1
- package/apps/relay/dist/connections.js.map +0 -1
- package/apps/relay/dist/controller-handlers.js.map +0 -1
- package/apps/relay/dist/db.js.map +0 -1
- package/apps/relay/dist/errors.js.map +0 -1
- package/apps/relay/dist/http-routes.js.map +0 -1
- package/apps/relay/dist/http-schemas.js.map +0 -1
- package/apps/relay/dist/index.js.map +0 -1
- package/apps/relay/dist/machine-handlers.js.map +0 -1
- package/apps/relay/dist/projections.js.map +0 -1
- package/apps/relay/dist/relay-context.js.map +0 -1
- package/apps/relay/dist/repositories.js.map +0 -1
- package/apps/relay/dist/retention.js.map +0 -1
- package/apps/relay/dist/scope.js.map +0 -1
- package/apps/relay/dist/security.js.map +0 -1
- package/apps/relay/dist/types.js.map +0 -1
- package/apps/relay/dist/websocket.js.map +0 -1
- package/apps/relay/package.json +0 -29
- package/packages/agent-sdk/dist/index.d.ts.map +0 -1
- package/packages/agent-sdk/dist/index.js.map +0 -1
- package/packages/agent-sdk/package.json +0 -20
- package/packages/client/dist/account.d.ts.map +0 -1
- package/packages/client/dist/account.js.map +0 -1
- package/packages/client/dist/client.d.ts.map +0 -1
- package/packages/client/dist/client.js.map +0 -1
- package/packages/client/dist/errors.d.ts.map +0 -1
- package/packages/client/dist/errors.js.map +0 -1
- package/packages/client/dist/http.d.ts.map +0 -1
- package/packages/client/dist/http.js.map +0 -1
- package/packages/client/dist/index.d.ts.map +0 -1
- package/packages/client/dist/index.js.map +0 -1
- package/packages/client/dist/parsers.d.ts.map +0 -1
- package/packages/client/dist/parsers.js.map +0 -1
- package/packages/client/dist/transport.d.ts.map +0 -1
- package/packages/client/dist/transport.js.map +0 -1
- package/packages/client/dist/types.d.ts.map +0 -1
- package/packages/client/dist/types.js.map +0 -1
- package/packages/client/dist/validation.d.ts.map +0 -1
- package/packages/client/dist/validation.js.map +0 -1
- package/packages/client/package.json +0 -22
- package/packages/pie-provider/dist/index.d.ts.map +0 -1
- package/packages/pie-provider/dist/index.js.map +0 -1
- package/packages/pie-provider/package.json +0 -26
- package/packages/runtime/dist/index.d.ts.map +0 -1
- package/packages/runtime/dist/index.js.map +0 -1
- package/packages/runtime/package.json +0 -19
- package/packages/runtime-acpx/dist/index.d.ts.map +0 -1
- package/packages/runtime-acpx/dist/index.js.map +0 -1
- package/packages/runtime-acpx/package.json +0 -23
- package/packages/runtime-cli/dist/async-queue.d.ts.map +0 -1
- package/packages/runtime-cli/dist/async-queue.js.map +0 -1
- package/packages/runtime-cli/dist/claude-history.d.ts.map +0 -1
- package/packages/runtime-cli/dist/claude-history.js.map +0 -1
- package/packages/runtime-cli/dist/claude-json.d.ts.map +0 -1
- package/packages/runtime-cli/dist/claude-json.js.map +0 -1
- package/packages/runtime-cli/dist/claude-rename.d.ts.map +0 -1
- package/packages/runtime-cli/dist/claude-rename.js.map +0 -1
- package/packages/runtime-cli/dist/claude-session-store.d.ts.map +0 -1
- package/packages/runtime-cli/dist/claude-session-store.js.map +0 -1
- package/packages/runtime-cli/dist/claude-turn.d.ts.map +0 -1
- package/packages/runtime-cli/dist/claude-turn.js.map +0 -1
- package/packages/runtime-cli/dist/codex-app-server.d.ts.map +0 -1
- package/packages/runtime-cli/dist/codex-app-server.js.map +0 -1
- package/packages/runtime-cli/dist/codex-approvals.d.ts.map +0 -1
- package/packages/runtime-cli/dist/codex-approvals.js.map +0 -1
- package/packages/runtime-cli/dist/codex-history.d.ts.map +0 -1
- package/packages/runtime-cli/dist/codex-history.js.map +0 -1
- package/packages/runtime-cli/dist/codex-json-rpc.d.ts.map +0 -1
- package/packages/runtime-cli/dist/codex-json-rpc.js.map +0 -1
- package/packages/runtime-cli/dist/codex-lifecycle.d.ts.map +0 -1
- package/packages/runtime-cli/dist/codex-lifecycle.js.map +0 -1
- package/packages/runtime-cli/dist/codex-protocol.d.ts.map +0 -1
- package/packages/runtime-cli/dist/codex-protocol.js.map +0 -1
- package/packages/runtime-cli/dist/command-resolver.d.ts.map +0 -1
- package/packages/runtime-cli/dist/command-resolver.js.map +0 -1
- package/packages/runtime-cli/dist/history-merge.d.ts.map +0 -1
- package/packages/runtime-cli/dist/history-merge.js.map +0 -1
- package/packages/runtime-cli/dist/index.d.ts.map +0 -1
- package/packages/runtime-cli/dist/index.js.map +0 -1
- package/packages/runtime-cli/dist/permissions.d.ts.map +0 -1
- package/packages/runtime-cli/dist/permissions.js.map +0 -1
- package/packages/runtime-cli/dist/session-store.d.ts.map +0 -1
- package/packages/runtime-cli/dist/session-store.js.map +0 -1
- package/packages/runtime-cli/package.json +0 -22
- package/packages/shared/dist/args.d.ts.map +0 -1
- package/packages/shared/dist/args.js.map +0 -1
- package/packages/shared/dist/crypto.d.ts.map +0 -1
- package/packages/shared/dist/crypto.js.map +0 -1
- package/packages/shared/dist/ids.d.ts.map +0 -1
- package/packages/shared/dist/ids.js.map +0 -1
- package/packages/shared/dist/index.d.ts.map +0 -1
- package/packages/shared/dist/index.js.map +0 -1
- package/packages/shared/dist/protocol-schemas.d.ts.map +0 -1
- package/packages/shared/dist/protocol-schemas.js.map +0 -1
- package/packages/shared/dist/protocol-types.d.ts.map +0 -1
- package/packages/shared/dist/protocol-types.js.map +0 -1
- package/packages/shared/dist/protocol.d.ts.map +0 -1
- package/packages/shared/dist/protocol.js.map +0 -1
- package/packages/shared/dist/session-name.d.ts.map +0 -1
- package/packages/shared/dist/session-name.js.map +0 -1
- package/packages/shared/dist/session-state.d.ts.map +0 -1
- package/packages/shared/dist/session-state.js.map +0 -1
- package/packages/shared/package.json +0 -24
|
@@ -25,13 +25,17 @@ export function parseDevicesResponse(value) {
|
|
|
25
25
|
}
|
|
26
26
|
const machineId = device.machineId;
|
|
27
27
|
const revokedAt = device.revokedAt;
|
|
28
|
+
const online = device.online;
|
|
29
|
+
const lastSeen = device.lastSeen;
|
|
28
30
|
return {
|
|
29
31
|
deviceId: readStringField(device, "deviceId", "Device"),
|
|
30
32
|
name: readStringField(device, "name", "Device"),
|
|
31
33
|
kind,
|
|
32
34
|
current: readBooleanField(device, "current", "Device"),
|
|
33
35
|
revoked: readBooleanField(device, "revoked", "Device"),
|
|
36
|
+
...(typeof online === "boolean" ? { online } : {}),
|
|
34
37
|
createdAt: readNumberField(device, "createdAt", "Device"),
|
|
38
|
+
...(typeof lastSeen === "number" ? { lastSeen } : {}),
|
|
35
39
|
...(typeof machineId === "string" ? { machineId } : {}),
|
|
36
40
|
...(typeof revokedAt === "number" ? { revokedAt } : {}),
|
|
37
41
|
};
|
|
@@ -90,6 +94,150 @@ export function parseRevokeDeviceResult(value) {
|
|
|
90
94
|
revokedAt: readNumberField(record, "revokedAt", "Device revoke"),
|
|
91
95
|
};
|
|
92
96
|
}
|
|
97
|
+
export function parseRenameDeviceResult(value) {
|
|
98
|
+
const record = assertRecord(value, "Device rename");
|
|
99
|
+
return {
|
|
100
|
+
deviceId: readStringField(record, "deviceId", "Device rename"),
|
|
101
|
+
name: readStringField(record, "name", "Device rename"),
|
|
102
|
+
renamedAt: readNumberField(record, "renamedAt", "Device rename"),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function optionalString(record, key) {
|
|
106
|
+
const value = record[key];
|
|
107
|
+
return typeof value === "string" ? value : undefined;
|
|
108
|
+
}
|
|
109
|
+
function optionalNumber(record, key) {
|
|
110
|
+
const value = record[key];
|
|
111
|
+
return typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
112
|
+
}
|
|
113
|
+
function parseWorkspaceSessionStar(value) {
|
|
114
|
+
const record = assertRecord(value, "Workspace star");
|
|
115
|
+
return {
|
|
116
|
+
sessionId: readStringField(record, "sessionId", "Workspace star"),
|
|
117
|
+
starredAt: readNumberField(record, "starredAt", "Workspace star"),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function parseWorkspaceRecentSession(value) {
|
|
121
|
+
const record = assertRecord(value, "Workspace recent session");
|
|
122
|
+
return {
|
|
123
|
+
sessionId: readStringField(record, "sessionId", "Workspace recent session"),
|
|
124
|
+
lastSelectedAt: readNumberField(record, "lastSelectedAt", "Workspace recent session"),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
function parseWorkspaceCwdPin(value) {
|
|
128
|
+
const record = assertRecord(value, "Workspace cwd pin");
|
|
129
|
+
return {
|
|
130
|
+
machineId: readStringField(record, "machineId", "Workspace cwd pin"),
|
|
131
|
+
cwd: readStringField(record, "cwd", "Workspace cwd pin"),
|
|
132
|
+
...(optionalString(record, "label") ? { label: optionalString(record, "label") } : {}),
|
|
133
|
+
pinnedAt: readNumberField(record, "pinnedAt", "Workspace cwd pin"),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function parseWorkspaceProjectPreference(value) {
|
|
137
|
+
const record = assertRecord(value, "Workspace project preference");
|
|
138
|
+
return {
|
|
139
|
+
projectKey: readStringField(record, "projectKey", "Workspace project preference"),
|
|
140
|
+
...(optionalString(record, "machineId") ? { machineId: optionalString(record, "machineId") } : {}),
|
|
141
|
+
...(optionalString(record, "cwd") ? { cwd: optionalString(record, "cwd") } : {}),
|
|
142
|
+
...(optionalString(record, "agent") ? { agent: optionalString(record, "agent") } : {}),
|
|
143
|
+
...(isMemoryMode(record.memoryMode) ? { memoryMode: record.memoryMode } : {}),
|
|
144
|
+
updatedAt: readNumberField(record, "updatedAt", "Workspace project preference"),
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
function isMemoryMode(value) {
|
|
148
|
+
return value === "off" || value === "readonly" || value === "readwrite";
|
|
149
|
+
}
|
|
150
|
+
export function parseWorkspaceSyncState(value) {
|
|
151
|
+
const record = assertRecord(value, "Workspace sync");
|
|
152
|
+
if (!Array.isArray(record.stars) ||
|
|
153
|
+
!Array.isArray(record.recentSessions) ||
|
|
154
|
+
!Array.isArray(record.cwdPins) ||
|
|
155
|
+
!Array.isArray(record.projectPreferences)) {
|
|
156
|
+
throw new ControllerClientError("Workspace sync response is invalid", "RELAY_RESPONSE_INVALID");
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
stars: record.stars.map(parseWorkspaceSessionStar),
|
|
160
|
+
recentSessions: record.recentSessions.map(parseWorkspaceRecentSession),
|
|
161
|
+
cwdPins: record.cwdPins.map(parseWorkspaceCwdPin),
|
|
162
|
+
projectPreferences: record.projectPreferences.map(parseWorkspaceProjectPreference),
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
export function parseWorkspaceSessionStarResult(value) {
|
|
166
|
+
const record = assertRecord(value, "Workspace session star");
|
|
167
|
+
const starredAt = optionalNumber(record, "starredAt");
|
|
168
|
+
const unstarredAt = optionalNumber(record, "unstarredAt");
|
|
169
|
+
return {
|
|
170
|
+
sessionId: readStringField(record, "sessionId", "Workspace session star"),
|
|
171
|
+
starred: readBooleanField(record, "starred", "Workspace session star"),
|
|
172
|
+
...(starredAt === undefined ? {} : { starredAt }),
|
|
173
|
+
...(unstarredAt === undefined ? {} : { unstarredAt }),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
export function parseWorkspaceRecentSessionResult(value) {
|
|
177
|
+
return parseWorkspaceRecentSession(value);
|
|
178
|
+
}
|
|
179
|
+
export function parseWorkspaceCwdPinResult(value) {
|
|
180
|
+
return parseWorkspaceCwdPin(value);
|
|
181
|
+
}
|
|
182
|
+
export function parseWorkspaceCwdUnpinResult(value) {
|
|
183
|
+
const record = assertRecord(value, "Workspace cwd unpin");
|
|
184
|
+
return {
|
|
185
|
+
machineId: readStringField(record, "machineId", "Workspace cwd unpin"),
|
|
186
|
+
cwd: readStringField(record, "cwd", "Workspace cwd unpin"),
|
|
187
|
+
removed: readBooleanField(record, "removed", "Workspace cwd unpin"),
|
|
188
|
+
removedAt: readNumberField(record, "removedAt", "Workspace cwd unpin"),
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
export function parseWorkspaceProjectPreferenceResult(value) {
|
|
192
|
+
return parseWorkspaceProjectPreference(value);
|
|
193
|
+
}
|
|
194
|
+
function parseEncryptedMemoryRecord(value) {
|
|
195
|
+
const record = assertRecord(value, "Memory");
|
|
196
|
+
return {
|
|
197
|
+
id: readStringField(record, "id", "Memory"),
|
|
198
|
+
projectKey: readStringField(record, "projectKey", "Memory"),
|
|
199
|
+
encryptedMemory: encryptedEnvelopeSchema.parse(record.encryptedMemory),
|
|
200
|
+
createdAt: readNumberField(record, "createdAt", "Memory"),
|
|
201
|
+
updatedAt: readNumberField(record, "updatedAt", "Memory"),
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
export function parseMemoryListResponse(value) {
|
|
205
|
+
const record = assertRecord(value, "Memory list");
|
|
206
|
+
if (!Array.isArray(record.memories)) {
|
|
207
|
+
throw new ControllerClientError("Memory list response is invalid", "RELAY_RESPONSE_INVALID");
|
|
208
|
+
}
|
|
209
|
+
return { memories: record.memories.map(parseEncryptedMemoryRecord) };
|
|
210
|
+
}
|
|
211
|
+
export function parseMemorySaveResult(value) {
|
|
212
|
+
return parseEncryptedMemoryRecord(value);
|
|
213
|
+
}
|
|
214
|
+
export function parseMemoryDeleteResult(value) {
|
|
215
|
+
const record = assertRecord(value, "Memory delete");
|
|
216
|
+
return {
|
|
217
|
+
id: readStringField(record, "id", "Memory delete"),
|
|
218
|
+
deleted: readBooleanField(record, "deleted", "Memory delete"),
|
|
219
|
+
deletedAt: readNumberField(record, "deletedAt", "Memory delete"),
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
function parseMemorySettings(value) {
|
|
223
|
+
const record = assertRecord(value, "Memory settings");
|
|
224
|
+
return {
|
|
225
|
+
projectKey: readStringField(record, "projectKey", "Memory settings"),
|
|
226
|
+
disabled: readBooleanField(record, "disabled", "Memory settings"),
|
|
227
|
+
injectionEnabled: readBooleanField(record, "injectionEnabled", "Memory settings"),
|
|
228
|
+
updatedAt: readNumberField(record, "updatedAt", "Memory settings"),
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
export function parseMemorySettingsList(value) {
|
|
232
|
+
const record = assertRecord(value, "Memory settings list");
|
|
233
|
+
if (!Array.isArray(record.settings)) {
|
|
234
|
+
throw new ControllerClientError("Memory settings list response is invalid", "RELAY_RESPONSE_INVALID");
|
|
235
|
+
}
|
|
236
|
+
return { settings: record.settings.map(parseMemorySettings) };
|
|
237
|
+
}
|
|
238
|
+
export function parseMemorySettingsResult(value) {
|
|
239
|
+
return parseMemorySettings(value);
|
|
240
|
+
}
|
|
93
241
|
function parseScope(value, label) {
|
|
94
242
|
const record = assertRecord(value ?? {}, label);
|
|
95
243
|
const machines = readOptionalStringArray(record, "machines", label);
|
|
@@ -175,4 +323,23 @@ export function parseSessionEventsResponse(value) {
|
|
|
175
323
|
...(oldestEventId === undefined ? {} : { oldestEventId }),
|
|
176
324
|
};
|
|
177
325
|
}
|
|
326
|
+
export function parseRepairSessionHeadResult(value) {
|
|
327
|
+
const record = assertRecord(value, "Session head repair");
|
|
328
|
+
const session = assertRecord(record.session, "Session head repair session");
|
|
329
|
+
const basis = assertRecord(record.basis, "Session head repair basis");
|
|
330
|
+
const messageId = basis.messageId;
|
|
331
|
+
const reason = record.reason;
|
|
332
|
+
return {
|
|
333
|
+
advanced: readBooleanField(record, "advanced", "Session head repair"),
|
|
334
|
+
...(typeof record.settled === "boolean" ? { settled: record.settled } : {}),
|
|
335
|
+
session: session,
|
|
336
|
+
basis: {
|
|
337
|
+
eventId: readNumberField(basis, "eventId", "Session head repair basis"),
|
|
338
|
+
...(typeof messageId === "string" ? { messageId } : {}),
|
|
339
|
+
logicalTime: readNumberField(basis, "logicalTime", "Session head repair basis"),
|
|
340
|
+
turnSeq: readNumberField(basis, "turnSeq", "Session head repair basis"),
|
|
341
|
+
},
|
|
342
|
+
...(typeof reason === "string" ? { reason } : {}),
|
|
343
|
+
};
|
|
344
|
+
}
|
|
178
345
|
//# sourceMappingURL=parsers.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ControllerClientMessage, type EncryptedSessionEvent, type ServerMessage } from "
|
|
1
|
+
import { type ControllerClientMessage, type EncryptedSessionEvent, type ServerMessage } from "../../shared/dist/index.js";
|
|
2
2
|
import type { CommandResult, ControllerClientConfig, ControllerSubscriptionHandlers, DecodedSessionEvent } from "./types.js";
|
|
3
3
|
export declare function subscribe(config: ControllerClientConfig, handlers: ControllerSubscriptionHandlers): WebSocket;
|
|
4
4
|
type CommandTransport = {
|
|
@@ -37,5 +37,25 @@ export declare function sendAndWaitForMachineDevExecResult(config: ControllerCli
|
|
|
37
37
|
}>, waitTimeoutMs?: number): Promise<Extract<ServerMessage, {
|
|
38
38
|
type: "server:machineDevExecResult";
|
|
39
39
|
}>>;
|
|
40
|
+
export declare function sendAndWaitForGatewayResult(config: ControllerClientConfig, command: Extract<ControllerClientMessage, {
|
|
41
|
+
type: "controller:gateway";
|
|
42
|
+
}>): Promise<Extract<ServerMessage, {
|
|
43
|
+
type: "server:gatewayResult";
|
|
44
|
+
}>>;
|
|
45
|
+
export declare function sendAndWaitForScheduleResult(config: ControllerClientConfig, command: Extract<ControllerClientMessage, {
|
|
46
|
+
type: "controller:schedule";
|
|
47
|
+
}>): Promise<Extract<ServerMessage, {
|
|
48
|
+
type: "server:scheduleResult";
|
|
49
|
+
}>>;
|
|
50
|
+
export declare function sendAndWaitForMemoryResult(config: ControllerClientConfig, command: Extract<ControllerClientMessage, {
|
|
51
|
+
type: "controller:memory";
|
|
52
|
+
}>): Promise<Extract<ServerMessage, {
|
|
53
|
+
type: "server:memoryResult";
|
|
54
|
+
}>>;
|
|
55
|
+
export declare function sendAndWaitForTurnReconcileResult(config: ControllerClientConfig, command: Extract<ControllerClientMessage, {
|
|
56
|
+
type: "controller:reconcileTurn";
|
|
57
|
+
}>): Promise<Extract<ServerMessage, {
|
|
58
|
+
type: "server:turnReconciled";
|
|
59
|
+
}>>;
|
|
40
60
|
export {};
|
|
41
61
|
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -60,10 +60,26 @@ export function subscribe(config, handlers) {
|
|
|
60
60
|
void handlers.onSessionTranscriptPrepended?.(message);
|
|
61
61
|
return;
|
|
62
62
|
}
|
|
63
|
+
if (message.type === "server:memoryResult") {
|
|
64
|
+
void handlers.onMemoryResult?.(message);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (message.type === "server:turnReconciled") {
|
|
68
|
+
void handlers.onTurnReconciled?.(message);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
63
71
|
if (message.type === "server:historicalSessions") {
|
|
64
72
|
handlers.onHistoricalSessions?.(message);
|
|
65
73
|
return;
|
|
66
74
|
}
|
|
75
|
+
if (message.type === "server:gatewayResult") {
|
|
76
|
+
handlers.onGatewayResult?.(message);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (message.type === "server:scheduleResult") {
|
|
80
|
+
handlers.onScheduleResult?.(message);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
67
83
|
if (message.type === "server:ack") {
|
|
68
84
|
handlers.onAck?.(message);
|
|
69
85
|
return;
|
|
@@ -85,11 +101,14 @@ export async function sendCommand(context, command, waitForDone = false, timeout
|
|
|
85
101
|
const targetTurnId = "turnId" in command ? command.turnId : undefined;
|
|
86
102
|
return await new Promise((resolve, reject) => {
|
|
87
103
|
let settled = false;
|
|
104
|
+
let retainedPoller;
|
|
88
105
|
const finish = (result) => {
|
|
89
106
|
if (settled)
|
|
90
107
|
return;
|
|
91
108
|
settled = true;
|
|
92
109
|
globalThis.clearTimeout(timer);
|
|
110
|
+
if (retainedPoller)
|
|
111
|
+
globalThis.clearInterval(retainedPoller);
|
|
93
112
|
ws.close();
|
|
94
113
|
resolve(result);
|
|
95
114
|
};
|
|
@@ -98,10 +117,24 @@ export async function sendCommand(context, command, waitForDone = false, timeout
|
|
|
98
117
|
return;
|
|
99
118
|
settled = true;
|
|
100
119
|
globalThis.clearTimeout(timer);
|
|
120
|
+
if (retainedPoller)
|
|
121
|
+
globalThis.clearInterval(retainedPoller);
|
|
101
122
|
ws.close();
|
|
102
123
|
reject(error);
|
|
103
124
|
};
|
|
104
|
-
const
|
|
125
|
+
const commandResultFromAck = () => ({
|
|
126
|
+
requestId: command.requestId,
|
|
127
|
+
sessionId: ackedSessionId,
|
|
128
|
+
turnId: ackedTurnId,
|
|
129
|
+
admission: ackedAdmission,
|
|
130
|
+
dispatch: ackedDispatch,
|
|
131
|
+
events,
|
|
132
|
+
});
|
|
133
|
+
let retainedLookupInFlight = false;
|
|
134
|
+
const resolveFromRetainedTurnIfDone = (sessionId, turnId) => {
|
|
135
|
+
if (retainedLookupInFlight)
|
|
136
|
+
return;
|
|
137
|
+
retainedLookupInFlight = true;
|
|
105
138
|
void context.sessionEvents(sessionId, { limit: 1000 })
|
|
106
139
|
.then(({ events: retainedEvents }) => retainedEvents.filter((event) => event.turnId === turnId))
|
|
107
140
|
.then(async (turnEvents) => {
|
|
@@ -116,9 +149,21 @@ export async function sendCommand(context, command, waitForDone = false, timeout
|
|
|
116
149
|
events.push(event);
|
|
117
150
|
}
|
|
118
151
|
events.sort((left, right) => left.id - right.id);
|
|
119
|
-
finish(
|
|
152
|
+
finish(commandResultFromAck());
|
|
120
153
|
})
|
|
121
|
-
.catch(() => { })
|
|
154
|
+
.catch(() => { })
|
|
155
|
+
.finally(() => {
|
|
156
|
+
retainedLookupInFlight = false;
|
|
157
|
+
});
|
|
158
|
+
};
|
|
159
|
+
const startRetainedTurnPoller = (sessionId, turnId) => {
|
|
160
|
+
if (retainedPoller)
|
|
161
|
+
return;
|
|
162
|
+
resolveFromRetainedTurnIfDone(sessionId, turnId);
|
|
163
|
+
retainedPoller = globalThis.setInterval(() => {
|
|
164
|
+
if (!settled)
|
|
165
|
+
resolveFromRetainedTurnIfDone(sessionId, turnId);
|
|
166
|
+
}, 2_000);
|
|
122
167
|
};
|
|
123
168
|
const timer = globalThis.setTimeout(() => {
|
|
124
169
|
fail(new ControllerClientError("Timed out waiting for command result", "COMMAND_TIMEOUT", {
|
|
@@ -129,6 +174,9 @@ export async function sendCommand(context, command, waitForDone = false, timeout
|
|
|
129
174
|
}));
|
|
130
175
|
}, timeoutMs ?? (waitForDone ? 30 * 60 * 1000 : 15_000));
|
|
131
176
|
let ackedSessionId;
|
|
177
|
+
let ackedTurnId;
|
|
178
|
+
let ackedAdmission;
|
|
179
|
+
let ackedDispatch;
|
|
132
180
|
let commandAcked = false;
|
|
133
181
|
ws.addEventListener("message", (event) => {
|
|
134
182
|
if (settled)
|
|
@@ -148,11 +196,14 @@ export async function sendCommand(context, command, waitForDone = false, timeout
|
|
|
148
196
|
if (message.type === "server:ack" && message.requestId === command.requestId) {
|
|
149
197
|
commandAcked = true;
|
|
150
198
|
ackedSessionId = message.sessionId;
|
|
199
|
+
ackedTurnId = message.turnId;
|
|
200
|
+
ackedAdmission = message.admission;
|
|
201
|
+
ackedDispatch = message.dispatch;
|
|
151
202
|
if (!waitForDone) {
|
|
152
|
-
finish(
|
|
203
|
+
finish(commandResultFromAck());
|
|
153
204
|
}
|
|
154
205
|
else if (targetSessionId && targetTurnId) {
|
|
155
|
-
|
|
206
|
+
startRetainedTurnPoller(targetSessionId, targetTurnId);
|
|
156
207
|
}
|
|
157
208
|
return;
|
|
158
209
|
}
|
|
@@ -172,7 +223,7 @@ export async function sendCommand(context, command, waitForDone = false, timeout
|
|
|
172
223
|
void decryptJson(context.config.accountSecret, message.event.payload)
|
|
173
224
|
.then((payload) => {
|
|
174
225
|
if (payload.type === "done") {
|
|
175
|
-
finish(
|
|
226
|
+
finish(commandResultFromAck());
|
|
176
227
|
}
|
|
177
228
|
})
|
|
178
229
|
.catch(() => { });
|
|
@@ -197,6 +248,18 @@ export async function sendAndWaitForMachineDiagnostics(config, command) {
|
|
|
197
248
|
export async function sendAndWaitForMachineDevExecResult(config, command, waitTimeoutMs) {
|
|
198
249
|
return await sendAndWaitForServerMessage(config, command, "server:machineDevExecResult", "machine dev exec result; remote result is unknown", waitTimeoutMs ?? (command.timeoutMs ?? 60_000) + 15_000);
|
|
199
250
|
}
|
|
251
|
+
export async function sendAndWaitForGatewayResult(config, command) {
|
|
252
|
+
return await sendAndWaitForServerMessage(config, command, "server:gatewayResult", "gateway result", 30_000);
|
|
253
|
+
}
|
|
254
|
+
export async function sendAndWaitForScheduleResult(config, command) {
|
|
255
|
+
return await sendAndWaitForServerMessage(config, command, "server:scheduleResult", "schedule result", 30_000);
|
|
256
|
+
}
|
|
257
|
+
export async function sendAndWaitForMemoryResult(config, command) {
|
|
258
|
+
return await sendAndWaitForServerMessage(config, command, "server:memoryResult", "memory result", 30_000);
|
|
259
|
+
}
|
|
260
|
+
export async function sendAndWaitForTurnReconcileResult(config, command) {
|
|
261
|
+
return await sendAndWaitForServerMessage(config, command, "server:turnReconciled", "turn reconcile result", 45_000);
|
|
262
|
+
}
|
|
200
263
|
function connect(config) {
|
|
201
264
|
return new Promise((resolve, reject) => {
|
|
202
265
|
const ws = new WebSocket(wsUrl(config.relayUrl));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DirectoryListing, EncryptedSessionEvent, FilePreviewMode, FilePreviewResult, HistoricalSessionSnapshot, MachineSnapshot, MachineDevExecResult, MachineDiagnostics, ServerMessage, SessionEventPayload, SessionSnapshot } from "
|
|
1
|
+
import type { DirectoryListing, EncryptedSessionEvent, FilePreviewMode, FilePreviewResult, GatewayChannelInput, GatewayCommandResult, HistoricalSessionSnapshot, MachineSnapshot, MachineDevExecResult, MachineDiagnostics, ScheduleCommandResult, ScheduleCreateInput, MemoryCommandResult, MemoryMode, MemoryPromoteInput, MemoryWriteInput, ServerMessage, SessionEventPayload, SessionSnapshot, TurnReconcileResult } from "../../shared/dist/index.js";
|
|
2
2
|
export type ControllerClientConfig = {
|
|
3
3
|
relayUrl: string;
|
|
4
4
|
controllerToken: string;
|
|
@@ -11,6 +11,9 @@ export type CommandResult = {
|
|
|
11
11
|
requestId?: string;
|
|
12
12
|
sessionId?: string;
|
|
13
13
|
turnId?: string;
|
|
14
|
+
admission?: "accepted" | "replayed";
|
|
15
|
+
dispatch?: "queued" | "delivered";
|
|
16
|
+
mode?: "existing";
|
|
14
17
|
events: EncryptedSessionEvent[];
|
|
15
18
|
};
|
|
16
19
|
export type DecodedSessionEvent = EncryptedSessionEvent & {
|
|
@@ -40,6 +43,18 @@ export type ControllerSubscriptionHandlers = {
|
|
|
40
43
|
onHistoricalSessions?: (message: Extract<ServerMessage, {
|
|
41
44
|
type: "server:historicalSessions";
|
|
42
45
|
}>) => void;
|
|
46
|
+
onGatewayResult?: (message: Extract<ServerMessage, {
|
|
47
|
+
type: "server:gatewayResult";
|
|
48
|
+
}>) => void;
|
|
49
|
+
onScheduleResult?: (message: Extract<ServerMessage, {
|
|
50
|
+
type: "server:scheduleResult";
|
|
51
|
+
}>) => void;
|
|
52
|
+
onMemoryResult?: (message: Extract<ServerMessage, {
|
|
53
|
+
type: "server:memoryResult";
|
|
54
|
+
}>) => void;
|
|
55
|
+
onTurnReconciled?: (message: Extract<ServerMessage, {
|
|
56
|
+
type: "server:turnReconciled";
|
|
57
|
+
}>) => void;
|
|
43
58
|
onAck?: (message: Extract<ServerMessage, {
|
|
44
59
|
type: "server:ack";
|
|
45
60
|
}>) => void;
|
|
@@ -58,7 +73,9 @@ export type ControllerDevice = {
|
|
|
58
73
|
kind: "controller" | "machine";
|
|
59
74
|
current: boolean;
|
|
60
75
|
revoked: boolean;
|
|
76
|
+
online?: boolean;
|
|
61
77
|
createdAt: number;
|
|
78
|
+
lastSeen?: number;
|
|
62
79
|
machineId?: string;
|
|
63
80
|
revokedAt?: number;
|
|
64
81
|
};
|
|
@@ -69,6 +86,96 @@ export type AddControllerDeviceResult = {
|
|
|
69
86
|
deviceName: string;
|
|
70
87
|
createdAt: number;
|
|
71
88
|
};
|
|
89
|
+
export type RenameDeviceResult = {
|
|
90
|
+
deviceId: string;
|
|
91
|
+
name: string;
|
|
92
|
+
renamedAt: number;
|
|
93
|
+
};
|
|
94
|
+
export type WorkspaceSessionStar = {
|
|
95
|
+
sessionId: string;
|
|
96
|
+
starredAt: number;
|
|
97
|
+
};
|
|
98
|
+
export type WorkspaceRecentSession = {
|
|
99
|
+
sessionId: string;
|
|
100
|
+
lastSelectedAt: number;
|
|
101
|
+
};
|
|
102
|
+
export type WorkspaceCwdPin = {
|
|
103
|
+
machineId: string;
|
|
104
|
+
cwd: string;
|
|
105
|
+
label?: string;
|
|
106
|
+
pinnedAt: number;
|
|
107
|
+
};
|
|
108
|
+
export type WorkspaceProjectPreference = {
|
|
109
|
+
projectKey: string;
|
|
110
|
+
machineId?: string;
|
|
111
|
+
cwd?: string;
|
|
112
|
+
agent?: string;
|
|
113
|
+
memoryMode?: MemoryMode;
|
|
114
|
+
updatedAt: number;
|
|
115
|
+
};
|
|
116
|
+
export type WorkspaceSyncState = {
|
|
117
|
+
stars: WorkspaceSessionStar[];
|
|
118
|
+
recentSessions: WorkspaceRecentSession[];
|
|
119
|
+
cwdPins: WorkspaceCwdPin[];
|
|
120
|
+
projectPreferences: WorkspaceProjectPreference[];
|
|
121
|
+
};
|
|
122
|
+
export type WorkspaceSessionStarResult = {
|
|
123
|
+
sessionId: string;
|
|
124
|
+
starred: boolean;
|
|
125
|
+
starredAt?: number;
|
|
126
|
+
unstarredAt?: number;
|
|
127
|
+
};
|
|
128
|
+
export type WorkspaceCwdPinInput = {
|
|
129
|
+
machineId: string;
|
|
130
|
+
cwd: string;
|
|
131
|
+
label?: string;
|
|
132
|
+
};
|
|
133
|
+
export type WorkspaceProjectPreferenceInput = {
|
|
134
|
+
projectKey: string;
|
|
135
|
+
machineId?: string;
|
|
136
|
+
cwd?: string;
|
|
137
|
+
agent?: string;
|
|
138
|
+
memoryMode?: MemoryMode;
|
|
139
|
+
};
|
|
140
|
+
export type MemoryPayload = {
|
|
141
|
+
title?: string;
|
|
142
|
+
text: string;
|
|
143
|
+
tags?: string[];
|
|
144
|
+
};
|
|
145
|
+
export type EncryptedMemoryRecord = {
|
|
146
|
+
id: string;
|
|
147
|
+
projectKey: string;
|
|
148
|
+
encryptedMemory: import("../../shared/dist/index.js").EncryptedEnvelope;
|
|
149
|
+
createdAt: number;
|
|
150
|
+
updatedAt: number;
|
|
151
|
+
};
|
|
152
|
+
export type DecodedMemoryRecord = {
|
|
153
|
+
id: string;
|
|
154
|
+
projectKey: string;
|
|
155
|
+
title?: string;
|
|
156
|
+
text: string;
|
|
157
|
+
tags?: string[];
|
|
158
|
+
createdAt: number;
|
|
159
|
+
updatedAt: number;
|
|
160
|
+
};
|
|
161
|
+
export type MemorySettings = {
|
|
162
|
+
projectKey: string;
|
|
163
|
+
disabled: boolean;
|
|
164
|
+
injectionEnabled: boolean;
|
|
165
|
+
updatedAt: number;
|
|
166
|
+
};
|
|
167
|
+
export type MemorySaveInput = {
|
|
168
|
+
id?: string;
|
|
169
|
+
projectKey: string;
|
|
170
|
+
title?: string;
|
|
171
|
+
text: string;
|
|
172
|
+
tags?: string[];
|
|
173
|
+
};
|
|
174
|
+
export type MemorySearchInput = {
|
|
175
|
+
projectKey: string;
|
|
176
|
+
query: string;
|
|
177
|
+
limit?: number;
|
|
178
|
+
};
|
|
72
179
|
export type ControllerInviteCreateResult = {
|
|
73
180
|
accountId: string;
|
|
74
181
|
inviteCode: string;
|
|
@@ -121,6 +228,8 @@ export type SessionMetadata = {
|
|
|
121
228
|
cwd?: string;
|
|
122
229
|
agent?: string;
|
|
123
230
|
permissionMode?: PermissionMode;
|
|
231
|
+
tags?: string[];
|
|
232
|
+
tagKeys?: string[];
|
|
124
233
|
[key: string]: unknown;
|
|
125
234
|
};
|
|
126
235
|
export type SessionFilter = {
|
|
@@ -128,6 +237,7 @@ export type SessionFilter = {
|
|
|
128
237
|
agent?: string;
|
|
129
238
|
cwd?: string;
|
|
130
239
|
name?: string;
|
|
240
|
+
tags?: string[];
|
|
131
241
|
};
|
|
132
242
|
export type CreateSessionInput = {
|
|
133
243
|
machineId: string;
|
|
@@ -137,14 +247,26 @@ export type CreateSessionInput = {
|
|
|
137
247
|
runtimeName?: string;
|
|
138
248
|
createdFrom?: string;
|
|
139
249
|
permissionMode?: PermissionMode;
|
|
250
|
+
model?: string;
|
|
251
|
+
tags?: string[];
|
|
252
|
+
hiddenFromWorkspace?: boolean;
|
|
253
|
+
source?: string;
|
|
140
254
|
};
|
|
141
255
|
export type RunOptions = {
|
|
142
256
|
wait?: boolean;
|
|
143
257
|
permissionMode?: PermissionMode;
|
|
258
|
+
memoryMode?: MemoryMode;
|
|
259
|
+
memoryProjectKey?: string;
|
|
260
|
+
memoryTopN?: number;
|
|
261
|
+
model?: string;
|
|
144
262
|
waitTimeoutMs?: number;
|
|
145
263
|
ackTimeoutMs?: number;
|
|
264
|
+
inactivityTimeoutMs?: number;
|
|
146
265
|
runtimeTimeoutMs?: number;
|
|
147
266
|
};
|
|
267
|
+
export type TurnReconcileResponse = TurnReconcileResult & {
|
|
268
|
+
machineId: string;
|
|
269
|
+
};
|
|
148
270
|
export type HistoricalSessionsInput = {
|
|
149
271
|
machineId: string;
|
|
150
272
|
cwd?: string;
|
|
@@ -173,6 +295,36 @@ export type MachineDevExecInput = {
|
|
|
173
295
|
timeoutMs?: number;
|
|
174
296
|
waitTimeoutMs?: number;
|
|
175
297
|
};
|
|
298
|
+
export type GatewayCommandInput = {
|
|
299
|
+
machineId: string;
|
|
300
|
+
action: "list" | "get" | "upsert" | "enable" | "disable" | "test" | "notify";
|
|
301
|
+
channelId?: string;
|
|
302
|
+
channel?: GatewayChannelInput;
|
|
303
|
+
externalConversationId?: string;
|
|
304
|
+
externalMessageId?: string;
|
|
305
|
+
text?: string;
|
|
306
|
+
};
|
|
307
|
+
export type GatewayCommandResponse = GatewayCommandResult;
|
|
308
|
+
export type ScheduleCommandInput = {
|
|
309
|
+
machineId: string;
|
|
310
|
+
action: "list" | "show" | "create" | "pause" | "resume" | "delete" | "history" | "run" | "runDue" | "runMissed";
|
|
311
|
+
scheduleId?: string;
|
|
312
|
+
occurrenceId?: string;
|
|
313
|
+
schedule?: ScheduleCreateInput;
|
|
314
|
+
};
|
|
315
|
+
export type ScheduleCommandResponse = ScheduleCommandResult;
|
|
316
|
+
export type MemoryCommandInput = {
|
|
317
|
+
machineId: string;
|
|
318
|
+
action: "overview" | "read" | "search" | "reindex" | "write" | "promote" | "status" | "sync";
|
|
319
|
+
projectKey?: string;
|
|
320
|
+
path?: string;
|
|
321
|
+
query?: string;
|
|
322
|
+
limit?: number;
|
|
323
|
+
mode?: MemoryMode;
|
|
324
|
+
write?: MemoryWriteInput;
|
|
325
|
+
promote?: MemoryPromoteInput;
|
|
326
|
+
};
|
|
327
|
+
export type MemoryCommandResponse = MemoryCommandResult;
|
|
176
328
|
export type ImportHistoricalSessionInput = {
|
|
177
329
|
machineId: string;
|
|
178
330
|
agent: string;
|
|
@@ -186,6 +338,7 @@ export type ImportHistoricalSessionInput = {
|
|
|
186
338
|
export type ForkInput = {
|
|
187
339
|
from: string;
|
|
188
340
|
name: string;
|
|
341
|
+
tags?: string[];
|
|
189
342
|
};
|
|
190
343
|
export type CancelInput = {
|
|
191
344
|
turnId?: string;
|
|
@@ -202,6 +355,29 @@ export type CollectInput = {
|
|
|
202
355
|
since?: EventCursor;
|
|
203
356
|
limit?: number;
|
|
204
357
|
};
|
|
358
|
+
export type RepairSessionHeadInput = {
|
|
359
|
+
currentHead: string;
|
|
360
|
+
lastTurnId: string;
|
|
361
|
+
status?: "completed" | "cancelled" | "failed";
|
|
362
|
+
basis: {
|
|
363
|
+
turnId: string;
|
|
364
|
+
eventMessageId: string;
|
|
365
|
+
turnSeq: number;
|
|
366
|
+
occurredAt?: number;
|
|
367
|
+
};
|
|
368
|
+
};
|
|
369
|
+
export type RepairSessionHeadResult = {
|
|
370
|
+
advanced: boolean;
|
|
371
|
+
settled?: boolean;
|
|
372
|
+
session: SessionSnapshot;
|
|
373
|
+
basis: {
|
|
374
|
+
eventId: number;
|
|
375
|
+
messageId?: string;
|
|
376
|
+
logicalTime: number;
|
|
377
|
+
turnSeq: number;
|
|
378
|
+
};
|
|
379
|
+
reason?: string;
|
|
380
|
+
};
|
|
205
381
|
export type ControllerInviteCreateInput = {
|
|
206
382
|
deviceName?: string;
|
|
207
383
|
ttlMs?: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SessionSnapshot } from "
|
|
1
|
+
import type { SessionSnapshot } from "../../shared/dist/index.js";
|
|
2
2
|
import type { EventCursor, WaitCondition } from "./types.js";
|
|
3
3
|
export declare function assertRecord(value: unknown, label: string): Record<string, unknown>;
|
|
4
4
|
export declare function readStringField(record: Record<string, unknown>, key: string, label: string): string;
|