@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
package/apps/relay/dist/db.js
CHANGED
|
@@ -63,6 +63,10 @@ export function initDb(db) {
|
|
|
63
63
|
encrypted_metadata TEXT,
|
|
64
64
|
current_head TEXT,
|
|
65
65
|
last_turn_id TEXT,
|
|
66
|
+
head_basis_event_id INTEGER,
|
|
67
|
+
head_basis_message_id TEXT,
|
|
68
|
+
head_basis_logical_time INTEGER,
|
|
69
|
+
head_basis_turn_seq INTEGER,
|
|
66
70
|
source_session_id TEXT,
|
|
67
71
|
source_checkpoint_id TEXT,
|
|
68
72
|
created_at INTEGER NOT NULL,
|
|
@@ -112,6 +116,41 @@ export function initDb(db) {
|
|
|
112
116
|
FOREIGN KEY (machine_id) REFERENCES machines(id) ON DELETE CASCADE
|
|
113
117
|
);
|
|
114
118
|
|
|
119
|
+
CREATE TABLE IF NOT EXISTS session_runtime_bindings (
|
|
120
|
+
account_id TEXT NOT NULL,
|
|
121
|
+
machine_id TEXT NOT NULL,
|
|
122
|
+
agent TEXT NOT NULL,
|
|
123
|
+
runtime_session_id TEXT NOT NULL,
|
|
124
|
+
session_id TEXT NOT NULL,
|
|
125
|
+
status TEXT NOT NULL,
|
|
126
|
+
created_at INTEGER NOT NULL,
|
|
127
|
+
updated_at INTEGER NOT NULL,
|
|
128
|
+
PRIMARY KEY (account_id, machine_id, agent, runtime_session_id),
|
|
129
|
+
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE,
|
|
130
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
131
|
+
FOREIGN KEY (machine_id) REFERENCES machines(id) ON DELETE CASCADE
|
|
132
|
+
);
|
|
133
|
+
|
|
134
|
+
CREATE TABLE IF NOT EXISTS pending_session_head_advances (
|
|
135
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
136
|
+
account_id TEXT NOT NULL,
|
|
137
|
+
session_id TEXT NOT NULL,
|
|
138
|
+
machine_id TEXT NOT NULL,
|
|
139
|
+
message_id TEXT,
|
|
140
|
+
current_head TEXT NOT NULL,
|
|
141
|
+
last_turn_id TEXT NOT NULL,
|
|
142
|
+
basis_turn_id TEXT NOT NULL,
|
|
143
|
+
basis_event_message_id TEXT NOT NULL,
|
|
144
|
+
basis_turn_seq INTEGER NOT NULL,
|
|
145
|
+
basis_occurred_at INTEGER,
|
|
146
|
+
encrypted_metadata TEXT,
|
|
147
|
+
created_at INTEGER NOT NULL,
|
|
148
|
+
updated_at INTEGER NOT NULL,
|
|
149
|
+
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE,
|
|
150
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
151
|
+
FOREIGN KEY (machine_id) REFERENCES machines(id) ON DELETE CASCADE
|
|
152
|
+
);
|
|
153
|
+
|
|
115
154
|
CREATE TABLE IF NOT EXISTS command_results (
|
|
116
155
|
account_id TEXT NOT NULL,
|
|
117
156
|
request_id TEXT NOT NULL,
|
|
@@ -121,35 +160,182 @@ export function initDb(db) {
|
|
|
121
160
|
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE
|
|
122
161
|
);
|
|
123
162
|
|
|
163
|
+
CREATE TABLE IF NOT EXISTS relay_admissions (
|
|
164
|
+
account_id TEXT NOT NULL,
|
|
165
|
+
request_id TEXT NOT NULL,
|
|
166
|
+
session_id TEXT NOT NULL,
|
|
167
|
+
machine_id TEXT NOT NULL,
|
|
168
|
+
kind TEXT NOT NULL,
|
|
169
|
+
turn_id TEXT,
|
|
170
|
+
admission TEXT NOT NULL,
|
|
171
|
+
dispatch TEXT NOT NULL,
|
|
172
|
+
started_at INTEGER,
|
|
173
|
+
finished_at INTEGER,
|
|
174
|
+
terminal_status TEXT,
|
|
175
|
+
last_error_code TEXT,
|
|
176
|
+
created_at INTEGER NOT NULL,
|
|
177
|
+
updated_at INTEGER NOT NULL,
|
|
178
|
+
PRIMARY KEY (account_id, request_id),
|
|
179
|
+
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE,
|
|
180
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
181
|
+
FOREIGN KEY (machine_id) REFERENCES machines(id) ON DELETE CASCADE
|
|
182
|
+
);
|
|
183
|
+
|
|
184
|
+
CREATE TABLE IF NOT EXISTS relay_session_claims (
|
|
185
|
+
account_id TEXT NOT NULL,
|
|
186
|
+
session_id TEXT NOT NULL,
|
|
187
|
+
request_id TEXT NOT NULL,
|
|
188
|
+
machine_id TEXT NOT NULL,
|
|
189
|
+
turn_id TEXT NOT NULL,
|
|
190
|
+
command_type TEXT NOT NULL,
|
|
191
|
+
state TEXT NOT NULL,
|
|
192
|
+
created_at INTEGER NOT NULL,
|
|
193
|
+
updated_at INTEGER NOT NULL,
|
|
194
|
+
PRIMARY KEY (account_id, session_id),
|
|
195
|
+
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE,
|
|
196
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
197
|
+
FOREIGN KEY (machine_id) REFERENCES machines(id) ON DELETE CASCADE
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
CREATE TABLE IF NOT EXISTS relay_dispatch_outbox (
|
|
201
|
+
account_id TEXT NOT NULL,
|
|
202
|
+
request_id TEXT NOT NULL,
|
|
203
|
+
machine_id TEXT NOT NULL,
|
|
204
|
+
session_id TEXT NOT NULL,
|
|
205
|
+
command_type TEXT NOT NULL,
|
|
206
|
+
message TEXT NOT NULL,
|
|
207
|
+
state TEXT NOT NULL,
|
|
208
|
+
created_at INTEGER NOT NULL,
|
|
209
|
+
updated_at INTEGER NOT NULL,
|
|
210
|
+
delivered_at INTEGER,
|
|
211
|
+
PRIMARY KEY (account_id, request_id),
|
|
212
|
+
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE,
|
|
213
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
214
|
+
FOREIGN KEY (machine_id) REFERENCES machines(id) ON DELETE CASCADE
|
|
215
|
+
);
|
|
216
|
+
|
|
217
|
+
CREATE TABLE IF NOT EXISTS session_stars (
|
|
218
|
+
account_id TEXT NOT NULL,
|
|
219
|
+
session_id TEXT NOT NULL,
|
|
220
|
+
starred_at INTEGER NOT NULL,
|
|
221
|
+
PRIMARY KEY (account_id, session_id),
|
|
222
|
+
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE,
|
|
223
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
224
|
+
);
|
|
225
|
+
|
|
226
|
+
CREATE TABLE IF NOT EXISTS account_recent_sessions (
|
|
227
|
+
account_id TEXT NOT NULL,
|
|
228
|
+
session_id TEXT NOT NULL,
|
|
229
|
+
last_selected_at INTEGER NOT NULL,
|
|
230
|
+
PRIMARY KEY (account_id, session_id),
|
|
231
|
+
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE,
|
|
232
|
+
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
233
|
+
);
|
|
234
|
+
|
|
235
|
+
CREATE TABLE IF NOT EXISTS account_workspace_cwd_pins (
|
|
236
|
+
account_id TEXT NOT NULL,
|
|
237
|
+
machine_id TEXT NOT NULL,
|
|
238
|
+
cwd TEXT NOT NULL,
|
|
239
|
+
label TEXT,
|
|
240
|
+
pinned_at INTEGER NOT NULL,
|
|
241
|
+
PRIMARY KEY (account_id, machine_id, cwd),
|
|
242
|
+
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE
|
|
243
|
+
);
|
|
244
|
+
|
|
245
|
+
CREATE TABLE IF NOT EXISTS account_project_preferences (
|
|
246
|
+
account_id TEXT NOT NULL,
|
|
247
|
+
project_key TEXT NOT NULL,
|
|
248
|
+
machine_id TEXT,
|
|
249
|
+
cwd TEXT,
|
|
250
|
+
agent TEXT,
|
|
251
|
+
memory_mode TEXT,
|
|
252
|
+
updated_at INTEGER NOT NULL,
|
|
253
|
+
PRIMARY KEY (account_id, project_key),
|
|
254
|
+
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE
|
|
255
|
+
);
|
|
256
|
+
|
|
257
|
+
CREATE TABLE IF NOT EXISTS account_memories (
|
|
258
|
+
id TEXT PRIMARY KEY,
|
|
259
|
+
account_id TEXT NOT NULL,
|
|
260
|
+
project_key TEXT NOT NULL,
|
|
261
|
+
encrypted_memory TEXT NOT NULL,
|
|
262
|
+
created_at INTEGER NOT NULL,
|
|
263
|
+
updated_at INTEGER NOT NULL,
|
|
264
|
+
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE
|
|
265
|
+
);
|
|
266
|
+
|
|
267
|
+
CREATE TABLE IF NOT EXISTS account_memory_settings (
|
|
268
|
+
account_id TEXT NOT NULL,
|
|
269
|
+
project_key TEXT NOT NULL,
|
|
270
|
+
disabled INTEGER NOT NULL DEFAULT 0,
|
|
271
|
+
injection_enabled INTEGER NOT NULL DEFAULT 0,
|
|
272
|
+
updated_at INTEGER NOT NULL,
|
|
273
|
+
PRIMARY KEY (account_id, project_key),
|
|
274
|
+
FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE
|
|
275
|
+
);
|
|
276
|
+
|
|
124
277
|
CREATE INDEX IF NOT EXISTS idx_machines_account ON machines(account_id);
|
|
125
278
|
CREATE INDEX IF NOT EXISTS idx_sessions_account ON sessions(account_id, updated_at DESC);
|
|
126
279
|
CREATE INDEX IF NOT EXISTS idx_events_account ON session_events(account_id, id DESC);
|
|
127
280
|
CREATE INDEX IF NOT EXISTS idx_events_session ON session_events(session_id, id);
|
|
128
281
|
CREATE INDEX IF NOT EXISTS idx_turn_aliases_runtime
|
|
129
282
|
ON session_turn_aliases(account_id, session_id, runtime_turn_id);
|
|
283
|
+
CREATE INDEX IF NOT EXISTS idx_runtime_bindings_session
|
|
284
|
+
ON session_runtime_bindings(account_id, session_id);
|
|
285
|
+
CREATE INDEX IF NOT EXISTS idx_pending_head_session
|
|
286
|
+
ON pending_session_head_advances(account_id, session_id, machine_id);
|
|
130
287
|
CREATE INDEX IF NOT EXISTS idx_command_results_created ON command_results(created_at);
|
|
288
|
+
CREATE INDEX IF NOT EXISTS idx_relay_admissions_session ON relay_admissions(account_id, session_id);
|
|
289
|
+
CREATE INDEX IF NOT EXISTS idx_relay_session_claims_request ON relay_session_claims(account_id, request_id);
|
|
290
|
+
CREATE INDEX IF NOT EXISTS idx_relay_outbox_machine_state ON relay_dispatch_outbox(account_id, machine_id, state, created_at);
|
|
131
291
|
CREATE INDEX IF NOT EXISTS idx_controller_invites_account ON controller_invites(account_id, created_at DESC);
|
|
292
|
+
CREATE INDEX IF NOT EXISTS idx_session_stars_account ON session_stars(account_id, starred_at DESC);
|
|
293
|
+
CREATE INDEX IF NOT EXISTS idx_recent_sessions_account ON account_recent_sessions(account_id, last_selected_at DESC);
|
|
294
|
+
CREATE INDEX IF NOT EXISTS idx_workspace_cwd_pins_account ON account_workspace_cwd_pins(account_id, pinned_at DESC);
|
|
295
|
+
CREATE INDEX IF NOT EXISTS idx_memories_account_project ON account_memories(account_id, project_key, updated_at DESC);
|
|
132
296
|
`);
|
|
133
297
|
ensureColumn(db, "sessions", "current_head", "TEXT");
|
|
134
298
|
ensureColumn(db, "sessions", "last_turn_id", "TEXT");
|
|
299
|
+
ensureColumn(db, "sessions", "head_basis_event_id", "INTEGER");
|
|
300
|
+
ensureColumn(db, "sessions", "head_basis_message_id", "TEXT");
|
|
301
|
+
ensureColumn(db, "sessions", "head_basis_logical_time", "INTEGER");
|
|
302
|
+
ensureColumn(db, "sessions", "head_basis_turn_seq", "INTEGER");
|
|
135
303
|
ensureColumn(db, "sessions", "source_session_id", "TEXT");
|
|
136
304
|
ensureColumn(db, "sessions", "source_checkpoint_id", "TEXT");
|
|
137
305
|
ensureColumn(db, "session_events", "message_id", "TEXT");
|
|
138
306
|
ensureColumn(db, "session_events", "turn_seq", "INTEGER");
|
|
139
307
|
ensureColumn(db, "session_events", "occurred_at", "INTEGER");
|
|
308
|
+
ensureColumn(db, "relay_admissions", "started_at", "INTEGER");
|
|
309
|
+
ensureColumn(db, "relay_admissions", "finished_at", "INTEGER");
|
|
310
|
+
ensureColumn(db, "relay_admissions", "terminal_status", "TEXT");
|
|
311
|
+
ensureColumn(db, "relay_admissions", "last_error_code", "TEXT");
|
|
312
|
+
ensureColumn(db, "relay_dispatch_outbox", "message", "TEXT");
|
|
313
|
+
ensureColumn(db, "relay_dispatch_outbox", "command_type", "TEXT");
|
|
314
|
+
ensureColumn(db, "relay_dispatch_outbox", "delivered_at", "INTEGER");
|
|
140
315
|
ensureColumn(db, "tokens", "device_name", "TEXT");
|
|
141
316
|
ensureColumn(db, "tokens", "revoked_at", "INTEGER");
|
|
142
317
|
ensureColumn(db, "tokens", "expires_at", "INTEGER");
|
|
143
318
|
ensureColumn(db, "tokens", "scope", "TEXT");
|
|
319
|
+
ensureColumn(db, "tokens", "last_seen", "INTEGER");
|
|
320
|
+
ensureColumn(db, "account_project_preferences", "memory_mode", "TEXT");
|
|
144
321
|
ensureColumn(db, "controller_invites", "created_by_device_id", "TEXT");
|
|
145
322
|
ensureColumn(db, "controller_invites", "requested_device_name", "TEXT");
|
|
146
323
|
ensureColumn(db, "controller_invites", "consumed_by_device_id", "TEXT");
|
|
147
324
|
ensureColumn(db, "controller_invites", "revoked_at", "INTEGER");
|
|
325
|
+
ensureCommandResultsAccountRequestConflictTarget(db);
|
|
148
326
|
db.exec(`
|
|
327
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_command_results_account_request_unique
|
|
328
|
+
ON command_results(account_id, request_id);
|
|
149
329
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_events_machine_message
|
|
150
330
|
ON session_events(account_id, machine_id, message_id)
|
|
151
331
|
WHERE message_id IS NOT NULL;
|
|
332
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_pending_head_machine_message
|
|
333
|
+
ON pending_session_head_advances(account_id, machine_id, message_id)
|
|
334
|
+
WHERE message_id IS NOT NULL;
|
|
152
335
|
`);
|
|
336
|
+
repairHistoricalEventTimestamps(db);
|
|
337
|
+
backfillRelayDispatchOutboxCommandType(db);
|
|
338
|
+
restoreDurableSessionClaims(db);
|
|
153
339
|
}
|
|
154
340
|
export function pruneRelayRetention(db, now, config) {
|
|
155
341
|
if (config.commandResultRetentionMs > 0) {
|
|
@@ -160,9 +346,117 @@ export function pruneRelayRetention(db, now, config) {
|
|
|
160
346
|
}
|
|
161
347
|
}
|
|
162
348
|
function ensureColumn(db, table, column, definition) {
|
|
163
|
-
|
|
164
|
-
if (!rows.some((row) => row.name === column)) {
|
|
349
|
+
if (!tableColumnNames(db, table).has(column)) {
|
|
165
350
|
db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`);
|
|
166
351
|
}
|
|
167
352
|
}
|
|
353
|
+
function tableColumnNames(db, table) {
|
|
354
|
+
return new Set(db.prepare(`PRAGMA table_info(${table})`).all().map((row) => row.name));
|
|
355
|
+
}
|
|
356
|
+
function restoreDurableSessionClaims(db) {
|
|
357
|
+
db.prepare(`INSERT OR IGNORE INTO relay_session_claims
|
|
358
|
+
(account_id, session_id, request_id, machine_id, turn_id, command_type, state, created_at, updated_at)
|
|
359
|
+
SELECT admissions.account_id,
|
|
360
|
+
admissions.session_id,
|
|
361
|
+
admissions.request_id,
|
|
362
|
+
admissions.machine_id,
|
|
363
|
+
admissions.turn_id,
|
|
364
|
+
'prompt',
|
|
365
|
+
'active',
|
|
366
|
+
admissions.created_at,
|
|
367
|
+
admissions.updated_at
|
|
368
|
+
FROM relay_admissions AS admissions
|
|
369
|
+
JOIN sessions ON sessions.account_id = admissions.account_id
|
|
370
|
+
AND sessions.id = admissions.session_id
|
|
371
|
+
AND sessions.machine_id = admissions.machine_id
|
|
372
|
+
WHERE admissions.kind = 'prompt'
|
|
373
|
+
AND admissions.turn_id IS NOT NULL
|
|
374
|
+
AND admissions.terminal_status IS NULL
|
|
375
|
+
AND sessions.status IN ('running', 'offline')`).run();
|
|
376
|
+
}
|
|
377
|
+
function ensureCommandResultsAccountRequestConflictTarget(db) {
|
|
378
|
+
const columns = db.prepare("PRAGMA table_info(command_results)").all();
|
|
379
|
+
const hasUpdatedAt = columns.some((column) => column.name === "updated_at");
|
|
380
|
+
const orderBy = hasUpdatedAt
|
|
381
|
+
? "COALESCE(updated_at, created_at) DESC, created_at DESC, rowid DESC"
|
|
382
|
+
: "created_at DESC, rowid DESC";
|
|
383
|
+
db.exec(`
|
|
384
|
+
DELETE FROM command_results
|
|
385
|
+
WHERE rowid IN (
|
|
386
|
+
SELECT rowid
|
|
387
|
+
FROM (
|
|
388
|
+
SELECT
|
|
389
|
+
rowid,
|
|
390
|
+
ROW_NUMBER() OVER (
|
|
391
|
+
PARTITION BY account_id, request_id
|
|
392
|
+
ORDER BY ${orderBy}
|
|
393
|
+
) AS duplicate_rank
|
|
394
|
+
FROM command_results
|
|
395
|
+
)
|
|
396
|
+
WHERE duplicate_rank > 1
|
|
397
|
+
);
|
|
398
|
+
`);
|
|
399
|
+
}
|
|
400
|
+
function repairHistoricalEventTimestamps(db) {
|
|
401
|
+
const rows = db
|
|
402
|
+
.prepare("SELECT id, turn_id FROM session_events WHERE occurred_at IS NULL AND message_id LIKE 'hist_%'")
|
|
403
|
+
.all();
|
|
404
|
+
const update = db.prepare("UPDATE session_events SET occurred_at = ? WHERE id = ? AND occurred_at IS NULL");
|
|
405
|
+
const repairs = rows
|
|
406
|
+
.map((row) => ({ id: row.id, occurredAt: uuidV7TimestampMs(row.turn_id) }))
|
|
407
|
+
.filter((row) => row.occurredAt !== undefined);
|
|
408
|
+
if (repairs.length === 0)
|
|
409
|
+
return;
|
|
410
|
+
db.exec("BEGIN");
|
|
411
|
+
try {
|
|
412
|
+
for (const item of repairs)
|
|
413
|
+
update.run(item.occurredAt, item.id);
|
|
414
|
+
db.exec("COMMIT");
|
|
415
|
+
}
|
|
416
|
+
catch (error) {
|
|
417
|
+
db.exec("ROLLBACK");
|
|
418
|
+
throw error;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
function backfillRelayDispatchOutboxCommandType(db) {
|
|
422
|
+
const columns = tableColumnNames(db, "relay_dispatch_outbox");
|
|
423
|
+
if (columns.has("command_json")) {
|
|
424
|
+
db.prepare("UPDATE relay_dispatch_outbox SET message = command_json WHERE (message IS NULL OR message = '') AND command_json IS NOT NULL AND command_json != ''").run();
|
|
425
|
+
}
|
|
426
|
+
const rows = db
|
|
427
|
+
.prepare("SELECT rowid, message FROM relay_dispatch_outbox WHERE command_type IS NULL OR command_type = ''")
|
|
428
|
+
.all();
|
|
429
|
+
if (rows.length === 0)
|
|
430
|
+
return;
|
|
431
|
+
const update = db.prepare("UPDATE relay_dispatch_outbox SET command_type = ? WHERE rowid = ?");
|
|
432
|
+
db.exec("BEGIN");
|
|
433
|
+
try {
|
|
434
|
+
for (const row of rows) {
|
|
435
|
+
update.run(commandTypeFromOutboxMessage(row.message ?? ""), row.rowid);
|
|
436
|
+
}
|
|
437
|
+
db.exec("COMMIT");
|
|
438
|
+
}
|
|
439
|
+
catch (error) {
|
|
440
|
+
db.exec("ROLLBACK");
|
|
441
|
+
throw error;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
function commandTypeFromOutboxMessage(message) {
|
|
445
|
+
try {
|
|
446
|
+
const parsed = JSON.parse(message);
|
|
447
|
+
return typeof parsed.type === "string" && parsed.type.trim() ? parsed.type : "unknown";
|
|
448
|
+
}
|
|
449
|
+
catch {
|
|
450
|
+
return "unknown";
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
function uuidV7TimestampMs(value) {
|
|
454
|
+
if (!value)
|
|
455
|
+
return undefined;
|
|
456
|
+
const match = /^([0-9a-f]{8})-([0-9a-f]{4})-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.exec(value);
|
|
457
|
+
if (!match)
|
|
458
|
+
return undefined;
|
|
459
|
+
const timestamp = Number.parseInt(`${match[1]}${match[2]}`, 16);
|
|
460
|
+
return Number.isSafeInteger(timestamp) ? timestamp : undefined;
|
|
461
|
+
}
|
|
168
462
|
//# sourceMappingURL=db.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare class HttpError extends Error {
|
|
2
2
|
readonly statusCode: number;
|
|
3
3
|
readonly code: string;
|
|
4
|
-
|
|
4
|
+
readonly details?: Record<string, unknown> | undefined;
|
|
5
|
+
constructor(statusCode: number, code: string, message: string, details?: Record<string, unknown> | undefined);
|
|
5
6
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export class HttpError extends Error {
|
|
2
2
|
statusCode;
|
|
3
3
|
code;
|
|
4
|
-
|
|
4
|
+
details;
|
|
5
|
+
constructor(statusCode, code, message, details) {
|
|
5
6
|
super(message);
|
|
6
7
|
this.statusCode = statusCode;
|
|
7
8
|
this.code = code;
|
|
9
|
+
this.details = details;
|
|
8
10
|
}
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=errors.js.map
|