@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
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { constants as fsConstants } from "node:fs";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import { configDir, scheduleStorePath } from "../paths.js";
|
|
4
|
+
function emptyScheduleStore() {
|
|
5
|
+
return { version: 1, schedules: [] };
|
|
6
|
+
}
|
|
7
|
+
export async function readScheduleStore() {
|
|
8
|
+
try {
|
|
9
|
+
const parsed = JSON.parse(await fs.readFile(scheduleStorePath, "utf8"));
|
|
10
|
+
if (parsed.version !== 1 || !Array.isArray(parsed.schedules))
|
|
11
|
+
return emptyScheduleStore();
|
|
12
|
+
return { version: 1, schedules: parsed.schedules.map(normalizeScheduleRecord).filter(Boolean) };
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
if (error.code === "ENOENT")
|
|
16
|
+
return emptyScheduleStore();
|
|
17
|
+
throw error;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function writeScheduleStore(store) {
|
|
21
|
+
await fs.mkdir(configDir, { recursive: true });
|
|
22
|
+
await backupLegacyScheduleStoreOnce();
|
|
23
|
+
const tmpPath = `${scheduleStorePath}.${process.pid}.${Date.now()}.tmp`;
|
|
24
|
+
await fs.writeFile(tmpPath, `${JSON.stringify(store, null, 2)}\n`, { mode: 0o600 });
|
|
25
|
+
await fs.rename(tmpPath, scheduleStorePath);
|
|
26
|
+
await fs.chmod(scheduleStorePath, 0o600);
|
|
27
|
+
}
|
|
28
|
+
async function backupLegacyScheduleStoreOnce() {
|
|
29
|
+
const backupPath = `${scheduleStorePath}.cli-local.bak`;
|
|
30
|
+
try {
|
|
31
|
+
await fs.copyFile(scheduleStorePath, backupPath, fsConstants.COPYFILE_EXCL);
|
|
32
|
+
await fs.chmod(backupPath, 0o600);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
const code = error.code;
|
|
36
|
+
if (code === "ENOENT" || code === "EEXIST")
|
|
37
|
+
return;
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export async function updateScheduleStore(update) {
|
|
42
|
+
const run = scheduleStoreUpdateChain.then(async () => {
|
|
43
|
+
const current = await readScheduleStore();
|
|
44
|
+
const next = await update(current);
|
|
45
|
+
await writeScheduleStore(next);
|
|
46
|
+
return next;
|
|
47
|
+
});
|
|
48
|
+
scheduleStoreUpdateChain = run.catch(() => undefined);
|
|
49
|
+
return await run;
|
|
50
|
+
}
|
|
51
|
+
let scheduleStoreUpdateChain = Promise.resolve();
|
|
52
|
+
export function compactSchedules(store) {
|
|
53
|
+
return store.schedules.filter((schedule) => schedule.status !== "deleted");
|
|
54
|
+
}
|
|
55
|
+
export function normalizeScheduleRecord(input) {
|
|
56
|
+
if (!input || typeof input !== "object" || Array.isArray(input))
|
|
57
|
+
return undefined;
|
|
58
|
+
const record = input;
|
|
59
|
+
if (typeof record.id !== "string" || record.id.length === 0)
|
|
60
|
+
return undefined;
|
|
61
|
+
if (typeof record.prompt !== "string")
|
|
62
|
+
return undefined;
|
|
63
|
+
const now = new Date().toISOString();
|
|
64
|
+
const legacySessionId = typeof record.sessionId === "string" && record.sessionId.length > 0 ? record.sessionId : undefined;
|
|
65
|
+
const target = normalizeScheduleTarget(record.target, legacySessionId);
|
|
66
|
+
const schedule = normalizeScheduleSpec(record.schedule, record.dueAt);
|
|
67
|
+
const runs = Array.isArray(record.runs) ? record.runs.filter((run) => Boolean(run && typeof run === "object" && typeof run.occurrenceId === "string")) : [];
|
|
68
|
+
const sourceSessionId = record.sourceSessionId ?? legacySessionId ?? (target?.type === "project" ? target.sourceSessionId : target?.sourceSessionId);
|
|
69
|
+
const sessionId = legacySessionId ?? sourceSessionId;
|
|
70
|
+
return {
|
|
71
|
+
id: record.id,
|
|
72
|
+
...(typeof record.name === "string" && record.name ? { name: record.name } : {}),
|
|
73
|
+
...(sessionId ? { sessionId } : {}),
|
|
74
|
+
...(sourceSessionId ? { sourceSessionId } : {}),
|
|
75
|
+
...(target ? { target } : {}),
|
|
76
|
+
prompt: record.prompt,
|
|
77
|
+
...(record.dueAt ? { dueAt: record.dueAt } : {}),
|
|
78
|
+
...(schedule ? { schedule } : {}),
|
|
79
|
+
execution: record.execution === "isolated" ? "isolated" : "continue",
|
|
80
|
+
memoryMode: normalizeMemoryMode(record.memoryMode),
|
|
81
|
+
stopOn: normalizeStopOn(record.stopOn),
|
|
82
|
+
status: record.status === "paused" || record.status === "completed" || record.status === "deleted" ? record.status : "active",
|
|
83
|
+
...(record.nextRunAt ? { nextRunAt: record.nextRunAt } : {}),
|
|
84
|
+
...(record.pendingRunId ? { pendingRunId: record.pendingRunId } : {}),
|
|
85
|
+
runCount: typeof record.runCount === "number" ? record.runCount : countScheduleRuns(runs),
|
|
86
|
+
...(record.lastRun ? { lastRun: record.lastRun } : runs[0] ? { lastRun: runs[0] } : {}),
|
|
87
|
+
createdAt: record.createdAt ?? now,
|
|
88
|
+
updatedAt: record.updatedAt ?? now,
|
|
89
|
+
runs,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function countScheduleRuns(runs) {
|
|
93
|
+
return runs.filter((run) => run.status === "admitted" ||
|
|
94
|
+
run.status === "completed" ||
|
|
95
|
+
run.status === "failed" ||
|
|
96
|
+
run.status === "blocked").length;
|
|
97
|
+
}
|
|
98
|
+
function normalizeScheduleSpec(input, legacyDueAt) {
|
|
99
|
+
if (input && typeof input === "object" && !Array.isArray(input)) {
|
|
100
|
+
const spec = input;
|
|
101
|
+
if (spec.type === "manual")
|
|
102
|
+
return { type: "manual" };
|
|
103
|
+
if (spec.type === "oneshot" && typeof spec.runAt === "string" && spec.runAt)
|
|
104
|
+
return { type: "oneshot", runAt: spec.runAt };
|
|
105
|
+
if (spec.type === "interval" && typeof spec.everyMs === "number" && spec.everyMs > 0)
|
|
106
|
+
return { type: "interval", everyMs: spec.everyMs };
|
|
107
|
+
if (spec.type === "cron" && typeof spec.expr === "string" && spec.expr) {
|
|
108
|
+
return { type: "cron", expr: spec.expr, ...(typeof spec.timezone === "string" && spec.timezone ? { timezone: spec.timezone } : {}) };
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (typeof legacyDueAt === "string" && legacyDueAt)
|
|
112
|
+
return { type: "oneshot", runAt: legacyDueAt };
|
|
113
|
+
return { type: "manual" };
|
|
114
|
+
}
|
|
115
|
+
function normalizeScheduleTarget(input, legacySessionId) {
|
|
116
|
+
if (input && typeof input === "object" && !Array.isArray(input)) {
|
|
117
|
+
const target = input;
|
|
118
|
+
if (target.type === "sourceSession" && typeof target.sourceSessionId === "string" && target.sourceSessionId) {
|
|
119
|
+
return { type: "sourceSession", sourceSessionId: target.sourceSessionId };
|
|
120
|
+
}
|
|
121
|
+
if (target.type === "project" && typeof target.cwd === "string" && target.cwd && typeof target.agent === "string" && target.agent) {
|
|
122
|
+
return {
|
|
123
|
+
type: "project",
|
|
124
|
+
cwd: target.cwd,
|
|
125
|
+
agent: target.agent,
|
|
126
|
+
...(typeof target.machineId === "string" && target.machineId ? { machineId: target.machineId } : {}),
|
|
127
|
+
...(typeof target.sourceSessionId === "string" && target.sourceSessionId ? { sourceSessionId: target.sourceSessionId } : {}),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return legacySessionId ? { type: "sourceSession", sourceSessionId: legacySessionId } : undefined;
|
|
132
|
+
}
|
|
133
|
+
function normalizeMemoryMode(value) {
|
|
134
|
+
return value === "off" || value === "readonly" || value === "readwrite" ? value : "inherit";
|
|
135
|
+
}
|
|
136
|
+
function normalizeStopOn(value) {
|
|
137
|
+
const allowed = new Set(["blocked", "failed", "permission"]);
|
|
138
|
+
if (!Array.isArray(value))
|
|
139
|
+
return ["blocked", "failed", "permission"];
|
|
140
|
+
const filtered = value.filter((item) => allowed.has(item));
|
|
141
|
+
return filtered.length > 0 ? filtered : ["blocked", "failed", "permission"];
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MachineClientMessage, MachineCommand } from "
|
|
1
|
+
import type { MachineClientMessage, MachineCommand } from "../../../../packages/shared/dist/index.js";
|
|
2
2
|
type CreateSessionCommand = Extract<MachineCommand, {
|
|
3
3
|
type: "machine:createSession";
|
|
4
4
|
}>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { MachineCommand } from "
|
|
1
|
+
import type { MachineCommand } from "../../../../packages/shared/dist/index.js";
|
|
2
2
|
import type { DaemonConfig } from "../types.js";
|
|
3
3
|
export declare function handleListDirectory(ws: WebSocket, config: DaemonConfig, command: MachineCommand): Promise<void>;
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { type EncryptedEnvelope, type SessionEventPayload } from "
|
|
2
|
-
import type { RuntimeEvent, RuntimeHistoricalEvent } from "
|
|
1
|
+
import { type EncryptedEnvelope, type SessionEventPayload, type SessionHeadAdvanceBasis } from "../../../../packages/shared/dist/index.js";
|
|
2
|
+
import type { RuntimeEvent, RuntimeHistoricalEvent } from "../../../../packages/runtime/dist/index.js";
|
|
3
3
|
import type { DaemonConfig } from "../types.js";
|
|
4
4
|
export declare function emitEvent(ws: WebSocket, config: DaemonConfig, sessionId: string, turnId: string, payload: SessionEventPayload): Promise<void>;
|
|
5
5
|
export declare function emitHistoricalEvents(ws: WebSocket, config: DaemonConfig, sessionId: string, events: RuntimeHistoricalEvent[], startIndex?: number): Promise<void>;
|
|
6
6
|
export declare function emitRuntimeTailEvents(ws: WebSocket, config: DaemonConfig, sessionId: string, events: RuntimeHistoricalEvent[], startIndex?: number): Promise<void>;
|
|
7
|
+
export declare function emitSessionHeadAdvanced(ws: WebSocket, sessionId: string, head: HistoricalSessionHead, encryptedMetadata?: EncryptedEnvelope, status?: "completed" | "cancelled" | "failed"): Promise<void>;
|
|
7
8
|
export declare function emitTranscriptReplacement(ws: WebSocket, config: DaemonConfig, sessionId: string, events: RuntimeHistoricalEvent[], input?: {
|
|
9
|
+
requestId?: string;
|
|
8
10
|
currentHead?: string;
|
|
9
11
|
lastTurnId?: string;
|
|
12
|
+
replacementKind?: "command" | "sync";
|
|
10
13
|
status?: "completed" | "cancelled" | "failed";
|
|
11
14
|
encryptedMetadata?: EncryptedEnvelope;
|
|
12
15
|
hasMoreBefore?: boolean;
|
|
@@ -17,4 +20,14 @@ export declare function emitTranscriptPrepended(ws: WebSocket, config: DaemonCon
|
|
|
17
20
|
hasMoreBefore?: boolean;
|
|
18
21
|
nextBefore?: string;
|
|
19
22
|
}): Promise<void>;
|
|
23
|
+
export type HistoricalSessionHead = {
|
|
24
|
+
currentHead: string;
|
|
25
|
+
lastTurnId: string;
|
|
26
|
+
basis: SessionHeadAdvanceBasis;
|
|
27
|
+
};
|
|
28
|
+
export declare function latestCompletedHistoricalHead(sessionId: string, events: RuntimeHistoricalEvent[], _input?: {
|
|
29
|
+
preferTailBasisForExistingEvents?: boolean;
|
|
30
|
+
previousTotalEvents?: number;
|
|
31
|
+
tailStartIndex?: number;
|
|
32
|
+
}): HistoricalSessionHead | undefined;
|
|
20
33
|
export declare function runtimeEventToPayload(event: RuntimeEvent): SessionEventPayload;
|
|
@@ -23,7 +23,7 @@ export async function emitHistoricalEvents(ws, config, sessionId, events, startI
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
export async function emitRuntimeTailEvents(ws, config, sessionId, events, startIndex = 0) {
|
|
26
|
-
const encryptedEvents = await
|
|
26
|
+
const encryptedEvents = await encryptedHistoricalEvents(config, sessionId, events, startIndex);
|
|
27
27
|
for (const event of encryptedEvents) {
|
|
28
28
|
await sendReliable({
|
|
29
29
|
type: "machine:event",
|
|
@@ -32,12 +32,28 @@ export async function emitRuntimeTailEvents(ws, config, sessionId, events, start
|
|
|
32
32
|
}, ws);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
+
export async function emitSessionHeadAdvanced(ws, sessionId, head, encryptedMetadata, status) {
|
|
36
|
+
await sendReliable({
|
|
37
|
+
type: "machine:sessionHeadAdvanced",
|
|
38
|
+
sessionId,
|
|
39
|
+
currentHead: head.currentHead,
|
|
40
|
+
lastTurnId: head.lastTurnId,
|
|
41
|
+
basis: head.basis,
|
|
42
|
+
status,
|
|
43
|
+
encryptedMetadata,
|
|
44
|
+
}, ws);
|
|
45
|
+
}
|
|
35
46
|
export async function emitTranscriptReplacement(ws, config, sessionId, events, input = {}) {
|
|
47
|
+
const head = latestCompletedHistoricalHead(sessionId, events);
|
|
48
|
+
const fallbackHead = transcriptHead(events);
|
|
36
49
|
await sendReliable({
|
|
37
50
|
type: "machine:sessionTranscriptReplaced",
|
|
38
51
|
sessionId,
|
|
39
|
-
|
|
40
|
-
|
|
52
|
+
requestId: input.requestId,
|
|
53
|
+
currentHead: input.currentHead ?? head?.currentHead ?? fallbackHead.currentHead,
|
|
54
|
+
lastTurnId: input.lastTurnId ?? head?.lastTurnId ?? fallbackHead.lastTurnId,
|
|
55
|
+
basis: head?.basis,
|
|
56
|
+
replacementKind: input.replacementKind,
|
|
41
57
|
status: input.status,
|
|
42
58
|
hasMoreBefore: input.hasMoreBefore,
|
|
43
59
|
nextBefore: input.nextBefore,
|
|
@@ -70,20 +86,6 @@ async function encryptedHistoricalEvents(config, sessionId, events, startIndex =
|
|
|
70
86
|
}
|
|
71
87
|
return encrypted;
|
|
72
88
|
}
|
|
73
|
-
async function encryptedRuntimeTailEvents(config, sessionId, events, startIndex = 0) {
|
|
74
|
-
const encrypted = [];
|
|
75
|
-
for (const [index, event] of events.entries()) {
|
|
76
|
-
const globalIndex = startIndex + index;
|
|
77
|
-
const stableTailSeq = event.seq ?? globalIndex + 1;
|
|
78
|
-
encrypted.push({
|
|
79
|
-
turnId: event.turnId,
|
|
80
|
-
seq: stableTailSeq,
|
|
81
|
-
messageId: runtimeTailEventMessageId(sessionId, event, stableTailSeq),
|
|
82
|
-
payload: await encryptJson(config.accountSecret, `event:${sessionId}:${event.turnId}:${stableTailSeq}`, event.payload),
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
return encrypted;
|
|
86
|
-
}
|
|
87
89
|
function transcriptHead(events) {
|
|
88
90
|
for (let index = events.length - 1; index >= 0; index -= 1) {
|
|
89
91
|
const event = events[index];
|
|
@@ -98,6 +100,28 @@ function transcriptHead(events) {
|
|
|
98
100
|
}
|
|
99
101
|
return events.at(-1)?.turnId ? { currentHead: events.at(-1)?.turnId, lastTurnId: events.at(-1)?.turnId } : {};
|
|
100
102
|
}
|
|
103
|
+
export function latestCompletedHistoricalHead(sessionId, events, _input = {}) {
|
|
104
|
+
for (let index = events.length - 1; index >= 0; index -= 1) {
|
|
105
|
+
const event = events[index];
|
|
106
|
+
if (!event || event.payload.type !== "done" || event.payload.status !== "completed")
|
|
107
|
+
continue;
|
|
108
|
+
const seq = event.seq ?? index + 1;
|
|
109
|
+
const eventMessageId = historicalEventMessageId(sessionId, event, seq);
|
|
110
|
+
const currentHead = event.payload.currentHead ?? event.payload.lastTurnId ?? event.turnId;
|
|
111
|
+
const lastTurnId = event.payload.lastTurnId ?? event.payload.currentHead ?? event.turnId;
|
|
112
|
+
return {
|
|
113
|
+
currentHead,
|
|
114
|
+
lastTurnId,
|
|
115
|
+
basis: {
|
|
116
|
+
turnId: event.turnId,
|
|
117
|
+
eventMessageId,
|
|
118
|
+
turnSeq: seq,
|
|
119
|
+
...(event.occurredAt !== undefined ? { occurredAt: event.occurredAt } : {}),
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
101
125
|
function historicalEventMessageId(sessionId, event, seq) {
|
|
102
126
|
const digest = createHash("sha256")
|
|
103
127
|
.update(JSON.stringify({ occurredAt: event.occurredAt, payload: event.payload, seq }))
|
|
@@ -105,13 +129,6 @@ function historicalEventMessageId(sessionId, event, seq) {
|
|
|
105
129
|
.slice(0, 18);
|
|
106
130
|
return `hist_${sessionId}_${event.turnId}_${seq}_${digest}`;
|
|
107
131
|
}
|
|
108
|
-
function runtimeTailEventMessageId(sessionId, event, seq) {
|
|
109
|
-
const digest = createHash("sha256")
|
|
110
|
-
.update(JSON.stringify({ payload: event.payload, seq }))
|
|
111
|
-
.digest("base64url")
|
|
112
|
-
.slice(0, 18);
|
|
113
|
-
return `tail_${sessionId}_${event.turnId}_${seq}_${digest}`;
|
|
114
|
-
}
|
|
115
132
|
export function runtimeEventToPayload(event) {
|
|
116
133
|
if (event.type === "text_delta") {
|
|
117
134
|
return {
|
|
@@ -130,9 +147,44 @@ export function runtimeEventToPayload(event) {
|
|
|
130
147
|
title: event.title,
|
|
131
148
|
};
|
|
132
149
|
}
|
|
150
|
+
if (event.type === "option_request") {
|
|
151
|
+
return {
|
|
152
|
+
type: "option_request",
|
|
153
|
+
optionRequestId: event.optionRequestId,
|
|
154
|
+
...(event.title ? { title: event.title } : {}),
|
|
155
|
+
message: event.message,
|
|
156
|
+
options: event.options,
|
|
157
|
+
...(event.allowFreeText ? { allowFreeText: true } : {}),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
133
160
|
if (event.type === "status") {
|
|
161
|
+
if (typeof event.used === "number" && Number.isFinite(event.used)) {
|
|
162
|
+
return {
|
|
163
|
+
type: "session_usage",
|
|
164
|
+
usage: {
|
|
165
|
+
source: "provider",
|
|
166
|
+
usedTokens: Math.max(0, Math.round(event.used)),
|
|
167
|
+
...(typeof event.size === "number" && Number.isFinite(event.size) ? { contextWindowTokens: Math.max(0, Math.round(event.size)) } : {}),
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
}
|
|
134
171
|
return { type: "status", text: event.text, tag: event.tag };
|
|
135
172
|
}
|
|
173
|
+
if (event.type === "session_usage") {
|
|
174
|
+
return {
|
|
175
|
+
type: "session_usage",
|
|
176
|
+
usage: {
|
|
177
|
+
source: event.source,
|
|
178
|
+
usedTokens: Math.max(0, Math.round(event.usedTokens)),
|
|
179
|
+
...(typeof event.contextWindowTokens === "number" && Number.isFinite(event.contextWindowTokens) ? { contextWindowTokens: Math.max(0, Math.round(event.contextWindowTokens)) } : {}),
|
|
180
|
+
...(typeof event.inputTokens === "number" && Number.isFinite(event.inputTokens) ? { inputTokens: Math.max(0, Math.round(event.inputTokens)) } : {}),
|
|
181
|
+
...(typeof event.outputTokens === "number" && Number.isFinite(event.outputTokens) ? { outputTokens: Math.max(0, Math.round(event.outputTokens)) } : {}),
|
|
182
|
+
...(typeof event.cachedInputTokens === "number" && Number.isFinite(event.cachedInputTokens) ? { cachedInputTokens: Math.max(0, Math.round(event.cachedInputTokens)) } : {}),
|
|
183
|
+
...(typeof event.reasoningOutputTokens === "number" && Number.isFinite(event.reasoningOutputTokens) ? { reasoningOutputTokens: Math.max(0, Math.round(event.reasoningOutputTokens)) } : {}),
|
|
184
|
+
...(typeof event.totalTokens === "number" && Number.isFinite(event.totalTokens) ? { totalTokens: Math.max(0, Math.round(event.totalTokens)) } : {}),
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
}
|
|
136
188
|
if (event.type === "error") {
|
|
137
189
|
return { type: "done", status: "failed", error: event.message };
|
|
138
190
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FilePreviewMode, FilePreviewResult, MachineCommand } from "
|
|
1
|
+
import type { FilePreviewMode, FilePreviewResult, MachineCommand } from "../../../../packages/shared/dist/index.js";
|
|
2
2
|
import type { DaemonConfig } from "../types.js";
|
|
3
3
|
export declare function handlePreviewFile(ws: WebSocket, config: DaemonConfig, command: MachineCommand): Promise<void>;
|
|
4
4
|
export declare function buildFilePreview(config: DaemonConfig, rootPath: string, requestedPath: string, mode?: FilePreviewMode): Promise<FilePreviewResult>;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { type MachineCommand } from "
|
|
2
|
-
import type { DaemonConfig, HistoricalBackfillStatus, SessionFallback, SessionState } from "../types.js";
|
|
1
|
+
import { type MachineCommand } from "../../../../packages/shared/dist/index.js";
|
|
2
|
+
import type { DaemonConfig, HistoricalBackfillState, HistoricalBackfillStatus, SessionFallback, SessionState } from "../types.js";
|
|
3
|
+
import { type HistoricalSessionHead } from "./events.js";
|
|
4
|
+
export type HistoricalBackfillDirection = "latest" | "older";
|
|
5
|
+
type HistoricalBackfillMode = HistoricalBackfillDirection | "auto";
|
|
3
6
|
export type HistoricalBackfillResult = {
|
|
4
7
|
availableEvents: number;
|
|
5
8
|
cursor: number;
|
|
@@ -10,17 +13,37 @@ export type HistoricalBackfillResult = {
|
|
|
10
13
|
tailRepairedEvents: number;
|
|
11
14
|
totalEvents: number;
|
|
12
15
|
truncated: boolean;
|
|
16
|
+
head?: HistoricalSessionHead;
|
|
13
17
|
};
|
|
14
18
|
export declare function handleCreateSession(ws: WebSocket, config: DaemonConfig, command: MachineCommand): Promise<void>;
|
|
15
19
|
export declare function handleImportHistoricalSession(ws: WebSocket, config: DaemonConfig, command: MachineCommand): Promise<void>;
|
|
16
20
|
export declare function handleListHistoricalSessions(ws: WebSocket, config: DaemonConfig, command: MachineCommand): Promise<void>;
|
|
17
|
-
export declare function resumeSession(ws: WebSocket, config: DaemonConfig, sessionId: string, requestId: string, fallback?: SessionFallback, announceSuccess?: boolean): Promise<SessionState | null>;
|
|
21
|
+
export declare function resumeSession(ws: WebSocket, config: DaemonConfig, sessionId: string, requestId: string, fallback?: SessionFallback, announceSuccess?: boolean, syncDirection?: HistoricalBackfillMode): Promise<SessionState | null>;
|
|
18
22
|
export declare function usesAuthoritativeTranscript(session: SessionState): boolean;
|
|
19
23
|
export declare function replaceAuthoritativeTranscript(ws: WebSocket, config: DaemonConfig, session: SessionState, runtimeSessionId?: string | undefined, input?: {
|
|
20
24
|
currentHead?: string;
|
|
21
25
|
lastTurnId?: string;
|
|
26
|
+
replacementKind?: "command" | "sync";
|
|
27
|
+
requestId?: string;
|
|
22
28
|
status?: "completed" | "cancelled" | "failed";
|
|
23
29
|
strict?: boolean;
|
|
24
30
|
}): Promise<HistoricalBackfillResult>;
|
|
31
|
+
export declare function planAppendOnlyHistoricalBackfill<T extends {
|
|
32
|
+
turnId: string;
|
|
33
|
+
}>(historicalEvents: T[], previousBackfill: HistoricalBackfillState | undefined, direction?: HistoricalBackfillMode, maxEvents?: number): {
|
|
34
|
+
cursor: number;
|
|
35
|
+
olderWindow: {
|
|
36
|
+
events: T[];
|
|
37
|
+
nextCursor: number;
|
|
38
|
+
startIndex: number;
|
|
39
|
+
};
|
|
40
|
+
status: HistoricalBackfillStatus;
|
|
41
|
+
tailWindow: {
|
|
42
|
+
events: T[];
|
|
43
|
+
startIndex: number;
|
|
44
|
+
};
|
|
45
|
+
truncated: boolean;
|
|
46
|
+
};
|
|
25
47
|
export declare function handleResume(ws: WebSocket, config: DaemonConfig, command: MachineCommand): Promise<void>;
|
|
26
48
|
export declare function handleClose(ws: WebSocket, config: DaemonConfig, command: MachineCommand): Promise<void>;
|
|
49
|
+
export {};
|