@aiden-ade/sandbox-agent 0.1.87 → 0.1.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/binding-switch-git.test.d.ts +2 -0
- package/dist/__tests__/binding-switch-git.test.d.ts.map +1 -0
- package/dist/__tests__/binding-switch-git.test.js +610 -0
- package/dist/__tests__/binding-switch-git.test.js.map +1 -0
- package/dist/__tests__/cli-ensure-install.test.d.ts +2 -0
- package/dist/__tests__/cli-ensure-install.test.d.ts.map +1 -0
- package/dist/__tests__/cli-ensure-install.test.js +109 -0
- package/dist/__tests__/cli-ensure-install.test.js.map +1 -0
- package/dist/__tests__/cli-executable.test.d.ts +2 -0
- package/dist/__tests__/cli-executable.test.d.ts.map +1 -0
- package/dist/__tests__/cli-executable.test.js +129 -0
- package/dist/__tests__/cli-executable.test.js.map +1 -0
- package/dist/__tests__/cli-help.test.d.ts +2 -0
- package/dist/__tests__/cli-help.test.d.ts.map +1 -0
- package/dist/__tests__/cli-help.test.js +34 -0
- package/dist/__tests__/cli-help.test.js.map +1 -0
- package/dist/__tests__/computer-readiness.test.d.ts +2 -0
- package/dist/__tests__/computer-readiness.test.d.ts.map +1 -0
- package/dist/__tests__/computer-readiness.test.js +63 -0
- package/dist/__tests__/computer-readiness.test.js.map +1 -0
- package/dist/__tests__/core-agent-workflow-context.test.d.ts +2 -0
- package/dist/__tests__/core-agent-workflow-context.test.d.ts.map +1 -0
- package/dist/__tests__/core-agent-workflow-context.test.js +139 -0
- package/dist/__tests__/core-agent-workflow-context.test.js.map +1 -0
- package/dist/__tests__/daemon-reconcile-ask.test.d.ts +2 -0
- package/dist/__tests__/daemon-reconcile-ask.test.d.ts.map +1 -0
- package/dist/__tests__/daemon-reconcile-ask.test.js +86 -0
- package/dist/__tests__/daemon-reconcile-ask.test.js.map +1 -0
- package/dist/__tests__/daemon-socket.integration.test.d.ts +2 -0
- package/dist/__tests__/daemon-socket.integration.test.d.ts.map +1 -0
- package/dist/__tests__/daemon-socket.integration.test.js +450 -0
- package/dist/__tests__/daemon-socket.integration.test.js.map +1 -0
- package/dist/__tests__/daemon.test.d.ts +2 -0
- package/dist/__tests__/daemon.test.d.ts.map +1 -0
- package/dist/__tests__/daemon.test.js +3975 -0
- package/dist/__tests__/daemon.test.js.map +1 -0
- package/dist/__tests__/ensure-shared-checkout-branch.test.d.ts +2 -0
- package/dist/__tests__/ensure-shared-checkout-branch.test.d.ts.map +1 -0
- package/dist/__tests__/ensure-shared-checkout-branch.test.js +129 -0
- package/dist/__tests__/ensure-shared-checkout-branch.test.js.map +1 -0
- package/dist/__tests__/event-outbox-persist-failure.test.d.ts +2 -0
- package/dist/__tests__/event-outbox-persist-failure.test.d.ts.map +1 -0
- package/dist/__tests__/event-outbox-persist-failure.test.js +84 -0
- package/dist/__tests__/event-outbox-persist-failure.test.js.map +1 -0
- package/dist/__tests__/event-outbox.test.d.ts +2 -0
- package/dist/__tests__/event-outbox.test.d.ts.map +1 -0
- package/dist/__tests__/event-outbox.test.js +256 -0
- package/dist/__tests__/event-outbox.test.js.map +1 -0
- package/dist/__tests__/fake-provider-cli.test.d.ts +2 -0
- package/dist/__tests__/fake-provider-cli.test.d.ts.map +1 -0
- package/dist/__tests__/fake-provider-cli.test.js +46 -0
- package/dist/__tests__/fake-provider-cli.test.js.map +1 -0
- package/dist/__tests__/generated-images.test.d.ts +2 -0
- package/dist/__tests__/generated-images.test.d.ts.map +1 -0
- package/dist/__tests__/generated-images.test.js +132 -0
- package/dist/__tests__/generated-images.test.js.map +1 -0
- package/dist/__tests__/lifecycle-logger.test.d.ts +2 -0
- package/dist/__tests__/lifecycle-logger.test.d.ts.map +1 -0
- package/dist/__tests__/lifecycle-logger.test.js +49 -0
- package/dist/__tests__/lifecycle-logger.test.js.map +1 -0
- package/dist/__tests__/local-skill-scan.test.d.ts +2 -0
- package/dist/__tests__/local-skill-scan.test.d.ts.map +1 -0
- package/dist/__tests__/local-skill-scan.test.js +91 -0
- package/dist/__tests__/local-skill-scan.test.js.map +1 -0
- package/dist/__tests__/local-workspace-migration.test.d.ts +2 -0
- package/dist/__tests__/local-workspace-migration.test.d.ts.map +1 -0
- package/dist/__tests__/local-workspace-migration.test.js +195 -0
- package/dist/__tests__/local-workspace-migration.test.js.map +1 -0
- package/dist/__tests__/mcp-inspect-timeout.test.d.ts +2 -0
- package/dist/__tests__/mcp-inspect-timeout.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-inspect-timeout.test.js +97 -0
- package/dist/__tests__/mcp-inspect-timeout.test.js.map +1 -0
- package/dist/__tests__/mcp-readiness.test.d.ts +2 -0
- package/dist/__tests__/mcp-readiness.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-readiness.test.js +267 -0
- package/dist/__tests__/mcp-readiness.test.js.map +1 -0
- package/dist/__tests__/mcp-registration-cli.test.d.ts +2 -0
- package/dist/__tests__/mcp-registration-cli.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-registration-cli.test.js +71 -0
- package/dist/__tests__/mcp-registration-cli.test.js.map +1 -0
- package/dist/__tests__/mcp-registration.test.d.ts +2 -0
- package/dist/__tests__/mcp-registration.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-registration.test.js +426 -0
- package/dist/__tests__/mcp-registration.test.js.map +1 -0
- package/dist/__tests__/model-scan-runner.test.d.ts +2 -0
- package/dist/__tests__/model-scan-runner.test.d.ts.map +1 -0
- package/dist/__tests__/model-scan-runner.test.js +67 -0
- package/dist/__tests__/model-scan-runner.test.js.map +1 -0
- package/dist/__tests__/network-diagnostics.test.d.ts +2 -0
- package/dist/__tests__/network-diagnostics.test.d.ts.map +1 -0
- package/dist/__tests__/network-diagnostics.test.js +26 -0
- package/dist/__tests__/network-diagnostics.test.js.map +1 -0
- package/dist/__tests__/observable-map.test.d.ts +2 -0
- package/dist/__tests__/observable-map.test.d.ts.map +1 -0
- package/dist/__tests__/observable-map.test.js +54 -0
- package/dist/__tests__/observable-map.test.js.map +1 -0
- package/dist/__tests__/provider-auth-preflight.test.d.ts +2 -0
- package/dist/__tests__/provider-auth-preflight.test.d.ts.map +1 -0
- package/dist/__tests__/provider-auth-preflight.test.js +123 -0
- package/dist/__tests__/provider-auth-preflight.test.js.map +1 -0
- package/dist/__tests__/provider-model-discovery.test.d.ts +2 -0
- package/dist/__tests__/provider-model-discovery.test.d.ts.map +1 -0
- package/dist/__tests__/provider-model-discovery.test.js +472 -0
- package/dist/__tests__/provider-model-discovery.test.js.map +1 -0
- package/dist/__tests__/remove-worktrees-if-clean.test.d.ts +2 -0
- package/dist/__tests__/remove-worktrees-if-clean.test.d.ts.map +1 -0
- package/dist/__tests__/remove-worktrees-if-clean.test.js +221 -0
- package/dist/__tests__/remove-worktrees-if-clean.test.js.map +1 -0
- package/dist/__tests__/resume-fallback-env.test.d.ts +2 -0
- package/dist/__tests__/resume-fallback-env.test.d.ts.map +1 -0
- package/dist/__tests__/resume-fallback-env.test.js +28 -0
- package/dist/__tests__/resume-fallback-env.test.js.map +1 -0
- package/dist/__tests__/run-journal.test.d.ts +2 -0
- package/dist/__tests__/run-journal.test.d.ts.map +1 -0
- package/dist/__tests__/run-journal.test.js +121 -0
- package/dist/__tests__/run-journal.test.js.map +1 -0
- package/dist/__tests__/run-start-gate.test.d.ts +2 -0
- package/dist/__tests__/run-start-gate.test.d.ts.map +1 -0
- package/dist/__tests__/run-start-gate.test.js +29 -0
- package/dist/__tests__/run-start-gate.test.js.map +1 -0
- package/dist/__tests__/runtime-capabilities-sync.test.d.ts +2 -0
- package/dist/__tests__/runtime-capabilities-sync.test.d.ts.map +1 -0
- package/dist/__tests__/runtime-capabilities-sync.test.js +66 -0
- package/dist/__tests__/runtime-capabilities-sync.test.js.map +1 -0
- package/dist/__tests__/runtime-config.test.d.ts +2 -0
- package/dist/__tests__/runtime-config.test.d.ts.map +1 -0
- package/dist/__tests__/runtime-config.test.js +102 -0
- package/dist/__tests__/runtime-config.test.js.map +1 -0
- package/dist/__tests__/runtime-presenter-heartbeat.test.d.ts +2 -0
- package/dist/__tests__/runtime-presenter-heartbeat.test.d.ts.map +1 -0
- package/dist/__tests__/runtime-presenter-heartbeat.test.js +159 -0
- package/dist/__tests__/runtime-presenter-heartbeat.test.js.map +1 -0
- package/dist/__tests__/sandbox-outbox.test.d.ts +2 -0
- package/dist/__tests__/sandbox-outbox.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox-outbox.test.js +214 -0
- package/dist/__tests__/sandbox-outbox.test.js.map +1 -0
- package/dist/__tests__/sandbox-workflow-context.test.d.ts +2 -0
- package/dist/__tests__/sandbox-workflow-context.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox-workflow-context.test.js +396 -0
- package/dist/__tests__/sandbox-workflow-context.test.js.map +1 -0
- package/dist/__tests__/service-manager.test.d.ts +2 -0
- package/dist/__tests__/service-manager.test.d.ts.map +1 -0
- package/dist/__tests__/service-manager.test.js +50 -0
- package/dist/__tests__/service-manager.test.js.map +1 -0
- package/dist/__tests__/sleep-inhibitor.test.d.ts +2 -0
- package/dist/__tests__/sleep-inhibitor.test.d.ts.map +1 -0
- package/dist/__tests__/sleep-inhibitor.test.js +236 -0
- package/dist/__tests__/sleep-inhibitor.test.js.map +1 -0
- package/dist/__tests__/status-local-workspace.test.d.ts +2 -0
- package/dist/__tests__/status-local-workspace.test.d.ts.map +1 -0
- package/dist/__tests__/status-local-workspace.test.js +121 -0
- package/dist/__tests__/status-local-workspace.test.js.map +1 -0
- package/dist/__tests__/suspension-detector.test.d.ts +2 -0
- package/dist/__tests__/suspension-detector.test.d.ts.map +1 -0
- package/dist/__tests__/suspension-detector.test.js +112 -0
- package/dist/__tests__/suspension-detector.test.js.map +1 -0
- package/dist/__tests__/web-presenter-parent-events.test.d.ts +2 -0
- package/dist/__tests__/web-presenter-parent-events.test.d.ts.map +1 -0
- package/dist/__tests__/web-presenter-parent-events.test.js +130 -0
- package/dist/__tests__/web-presenter-parent-events.test.js.map +1 -0
- package/dist/__tests__/workspace-relocation.test.d.ts +2 -0
- package/dist/__tests__/workspace-relocation.test.d.ts.map +1 -0
- package/dist/__tests__/workspace-relocation.test.js +66 -0
- package/dist/__tests__/workspace-relocation.test.js.map +1 -0
- package/dist/__tests__/workspace-run-lease.test.d.ts +2 -0
- package/dist/__tests__/workspace-run-lease.test.d.ts.map +1 -0
- package/dist/__tests__/workspace-run-lease.test.js +230 -0
- package/dist/__tests__/workspace-run-lease.test.js.map +1 -0
- package/dist/__tests__/ws-client-heartbeat-volatile.test.d.ts +2 -0
- package/dist/__tests__/ws-client-heartbeat-volatile.test.d.ts.map +1 -0
- package/dist/__tests__/ws-client-heartbeat-volatile.test.js +61 -0
- package/dist/__tests__/ws-client-heartbeat-volatile.test.js.map +1 -0
- package/dist/__tests__/ws-client-heartbeat.integration.test.d.ts +2 -0
- package/dist/__tests__/ws-client-heartbeat.integration.test.d.ts.map +1 -0
- package/dist/__tests__/ws-client-heartbeat.integration.test.js +109 -0
- package/dist/__tests__/ws-client-heartbeat.integration.test.js.map +1 -0
- package/dist/__tests__/ws-client-user-message-ack.integration.test.d.ts +2 -0
- package/dist/__tests__/ws-client-user-message-ack.integration.test.d.ts.map +1 -0
- package/dist/__tests__/ws-client-user-message-ack.integration.test.js +167 -0
- package/dist/__tests__/ws-client-user-message-ack.integration.test.js.map +1 -0
- package/dist/aiden-system-prompt.d.ts +6 -0
- package/dist/aiden-system-prompt.d.ts.map +1 -0
- package/dist/aiden-system-prompt.js +6 -0
- package/dist/aiden-system-prompt.js.map +1 -0
- package/dist/binding-switch-git.d.ts +26 -0
- package/dist/binding-switch-git.d.ts.map +1 -0
- package/dist/binding-switch-git.js +973 -0
- package/dist/binding-switch-git.js.map +1 -0
- package/dist/cli-ensure-install.d.ts +39 -0
- package/dist/cli-ensure-install.d.ts.map +1 -0
- package/dist/cli-ensure-install.js +133 -0
- package/dist/cli-ensure-install.js.map +1 -0
- package/dist/cli-executable.d.ts +97 -0
- package/dist/cli-executable.d.ts.map +1 -0
- package/dist/cli-executable.js +432 -0
- package/dist/cli-executable.js.map +1 -0
- package/dist/cli-help.d.ts +7 -0
- package/dist/cli-help.d.ts.map +1 -0
- package/dist/cli-help.js +49 -0
- package/dist/cli-help.js.map +1 -0
- package/dist/computer-readiness.d.ts +42 -0
- package/dist/computer-readiness.d.ts.map +1 -0
- package/dist/computer-readiness.js +191 -0
- package/dist/computer-readiness.js.map +1 -0
- package/dist/core-agent.d.ts +47 -0
- package/dist/core-agent.d.ts.map +1 -0
- package/dist/core-agent.js +364 -0
- package/dist/core-agent.js.map +1 -0
- package/dist/daemon.d.ts +392 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +4711 -0
- package/dist/daemon.js.map +1 -0
- package/dist/event-outbox.d.ts +83 -0
- package/dist/event-outbox.d.ts.map +1 -0
- package/dist/event-outbox.js +440 -0
- package/dist/event-outbox.js.map +1 -0
- package/dist/fake-provider-cli.d.ts +13 -0
- package/dist/fake-provider-cli.d.ts.map +1 -0
- package/dist/fake-provider-cli.js +53 -0
- package/dist/fake-provider-cli.js.map +1 -0
- package/dist/generated-images.d.ts +2 -0
- package/dist/generated-images.d.ts.map +1 -0
- package/dist/generated-images.js +2 -0
- package/dist/generated-images.js.map +1 -0
- package/dist/index.cjs +69 -160
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +209 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle-logger.d.ts +25 -0
- package/dist/lifecycle-logger.d.ts.map +1 -0
- package/dist/lifecycle-logger.js +73 -0
- package/dist/lifecycle-logger.js.map +1 -0
- package/dist/local-skill-scan.d.ts +21 -0
- package/dist/local-skill-scan.d.ts.map +1 -0
- package/dist/local-skill-scan.js +109 -0
- package/dist/local-skill-scan.js.map +1 -0
- package/dist/local-workspace-migration.d.ts +68 -0
- package/dist/local-workspace-migration.d.ts.map +1 -0
- package/dist/local-workspace-migration.js +157 -0
- package/dist/local-workspace-migration.js.map +1 -0
- package/dist/mcp-readiness.d.ts +59 -0
- package/dist/mcp-readiness.d.ts.map +1 -0
- package/dist/mcp-readiness.js +202 -0
- package/dist/mcp-readiness.js.map +1 -0
- package/dist/mcp-registration.d.ts +75 -0
- package/dist/mcp-registration.d.ts.map +1 -0
- package/dist/mcp-registration.js +563 -0
- package/dist/mcp-registration.js.map +1 -0
- package/dist/model-scan-runner.d.ts +15 -0
- package/dist/model-scan-runner.d.ts.map +1 -0
- package/dist/model-scan-runner.js +51 -0
- package/dist/model-scan-runner.js.map +1 -0
- package/dist/network-diagnostics.d.ts +8 -0
- package/dist/network-diagnostics.d.ts.map +1 -0
- package/dist/network-diagnostics.js +56 -0
- package/dist/network-diagnostics.js.map +1 -0
- package/dist/observable-map.d.ts +25 -0
- package/dist/observable-map.d.ts.map +1 -0
- package/dist/observable-map.js +42 -0
- package/dist/observable-map.js.map +1 -0
- package/dist/provider-auth-preflight.d.ts +22 -0
- package/dist/provider-auth-preflight.d.ts.map +1 -0
- package/dist/provider-auth-preflight.js +110 -0
- package/dist/provider-auth-preflight.js.map +1 -0
- package/dist/provider-model-discovery.d.ts +38 -0
- package/dist/provider-model-discovery.d.ts.map +1 -0
- package/dist/provider-model-discovery.js +519 -0
- package/dist/provider-model-discovery.js.map +1 -0
- package/dist/resume-fallback-env.d.ts +20 -0
- package/dist/resume-fallback-env.d.ts.map +1 -0
- package/dist/resume-fallback-env.js +30 -0
- package/dist/resume-fallback-env.js.map +1 -0
- package/dist/run-journal.d.ts +53 -0
- package/dist/run-journal.d.ts.map +1 -0
- package/dist/run-journal.js +193 -0
- package/dist/run-journal.js.map +1 -0
- package/dist/run-start-gate.d.ts +9 -0
- package/dist/run-start-gate.d.ts.map +1 -0
- package/dist/run-start-gate.js +24 -0
- package/dist/run-start-gate.js.map +1 -0
- package/dist/runtime-backends.d.ts +2 -0
- package/dist/runtime-backends.d.ts.map +1 -0
- package/dist/runtime-backends.js +2 -0
- package/dist/runtime-backends.js.map +1 -0
- package/dist/runtime-capabilities-sync.d.ts +33 -0
- package/dist/runtime-capabilities-sync.d.ts.map +1 -0
- package/dist/runtime-capabilities-sync.js +56 -0
- package/dist/runtime-capabilities-sync.js.map +1 -0
- package/dist/runtime-config.d.ts +24 -0
- package/dist/runtime-config.d.ts.map +1 -0
- package/dist/runtime-config.js +124 -0
- package/dist/runtime-config.js.map +1 -0
- package/dist/sandbox-outbox.d.ts +122 -0
- package/dist/sandbox-outbox.d.ts.map +1 -0
- package/dist/sandbox-outbox.js +180 -0
- package/dist/sandbox-outbox.js.map +1 -0
- package/dist/sandbox.d.ts +44 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +438 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/service-manager.d.ts +28 -0
- package/dist/service-manager.d.ts.map +1 -0
- package/dist/service-manager.js +259 -0
- package/dist/service-manager.js.map +1 -0
- package/dist/sleep-inhibitor.d.ts +111 -0
- package/dist/sleep-inhibitor.d.ts.map +1 -0
- package/dist/sleep-inhibitor.js +412 -0
- package/dist/sleep-inhibitor.js.map +1 -0
- package/dist/suspension-detector.d.ts +48 -0
- package/dist/suspension-detector.d.ts.map +1 -0
- package/dist/suspension-detector.js +89 -0
- package/dist/suspension-detector.js.map +1 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/updater.d.ts +15 -0
- package/dist/updater.d.ts.map +1 -0
- package/dist/updater.js +50 -0
- package/dist/updater.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/dist/web-presenter.d.ts +55 -0
- package/dist/web-presenter.d.ts.map +1 -0
- package/dist/web-presenter.js +265 -0
- package/dist/web-presenter.js.map +1 -0
- package/dist/workspace-relocation.d.ts +22 -0
- package/dist/workspace-relocation.d.ts.map +1 -0
- package/dist/workspace-relocation.js +90 -0
- package/dist/workspace-relocation.js.map +1 -0
- package/dist/workspace-run-lease.d.ts +97 -0
- package/dist/workspace-run-lease.d.ts.map +1 -0
- package/dist/workspace-run-lease.js +241 -0
- package/dist/workspace-run-lease.js.map +1 -0
- package/dist/ws-client.d.ts +194 -0
- package/dist/ws-client.d.ts.map +1 -0
- package/dist/ws-client.js +282 -0
- package/dist/ws-client.js.map +1 -0
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -3404,7 +3404,7 @@ var require_websocket = __commonJS({
|
|
|
3404
3404
|
var http2 = require("http");
|
|
3405
3405
|
var net = require("net");
|
|
3406
3406
|
var tls = require("tls");
|
|
3407
|
-
var { randomBytes: randomBytes13, createHash:
|
|
3407
|
+
var { randomBytes: randomBytes13, createHash: createHash17 } = require("crypto");
|
|
3408
3408
|
var { Duplex, Readable: Readable2 } = require("stream");
|
|
3409
3409
|
var { URL: URL2 } = require("url");
|
|
3410
3410
|
var PerMessageDeflate = require_permessage_deflate();
|
|
@@ -4061,7 +4061,7 @@ var require_websocket = __commonJS({
|
|
|
4061
4061
|
abortHandshake(websocket, socket, "Invalid Upgrade header");
|
|
4062
4062
|
return;
|
|
4063
4063
|
}
|
|
4064
|
-
const digest =
|
|
4064
|
+
const digest = createHash17("sha1").update(key + GUID).digest("base64");
|
|
4065
4065
|
if (res.headers["sec-websocket-accept"] !== digest) {
|
|
4066
4066
|
abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
|
|
4067
4067
|
return;
|
|
@@ -4428,7 +4428,7 @@ var require_websocket_server = __commonJS({
|
|
|
4428
4428
|
var EventEmitter = require("events");
|
|
4429
4429
|
var http2 = require("http");
|
|
4430
4430
|
var { Duplex } = require("stream");
|
|
4431
|
-
var { createHash:
|
|
4431
|
+
var { createHash: createHash17 } = require("crypto");
|
|
4432
4432
|
var extension = require_extension();
|
|
4433
4433
|
var PerMessageDeflate = require_permessage_deflate();
|
|
4434
4434
|
var subprotocol = require_subprotocol();
|
|
@@ -4725,7 +4725,7 @@ var require_websocket_server = __commonJS({
|
|
|
4725
4725
|
);
|
|
4726
4726
|
}
|
|
4727
4727
|
if (this._state > RUNNING) return abortHandshake(socket, 503);
|
|
4728
|
-
const digest =
|
|
4728
|
+
const digest = createHash17("sha1").update(key + GUID).digest("base64");
|
|
4729
4729
|
const headers = [
|
|
4730
4730
|
"HTTP/1.1 101 Switching Protocols",
|
|
4731
4731
|
"Upgrade: websocket",
|
|
@@ -15447,7 +15447,7 @@ function describeError(error61) {
|
|
|
15447
15447
|
}
|
|
15448
15448
|
|
|
15449
15449
|
// src/version.ts
|
|
15450
|
-
var AGENT_VERSION = "0.1.
|
|
15450
|
+
var AGENT_VERSION = "0.1.88";
|
|
15451
15451
|
|
|
15452
15452
|
// src/daemon-worktree.ts
|
|
15453
15453
|
var import_node_child_process3 = require("child_process");
|
|
@@ -47731,8 +47731,6 @@ var MAX_INTERMEDIATE_EVENTS_PER_RUN = 200;
|
|
|
47731
47731
|
var MAX_ENCRYPTED_OUTBOX_BYTES = 64 * 1024 * 1024;
|
|
47732
47732
|
var ACK_TIMEOUT_MS = 1e4;
|
|
47733
47733
|
var RETRY_DELAY_MS = 1e3;
|
|
47734
|
-
var CONDENSATION_NOTICE = "Some detailed output was condensed while this computer was offline; the run result is preserved.";
|
|
47735
|
-
var CONDENSATION_GAP = "\u2026";
|
|
47736
47734
|
var TERMINAL_EVENT_TYPES = /* @__PURE__ */ new Set([
|
|
47737
47735
|
"agent_run_finished",
|
|
47738
47736
|
"query_complete",
|
|
@@ -47753,59 +47751,6 @@ function isTerminal(event) {
|
|
|
47753
47751
|
function isBackgroundHeartbeat(event) {
|
|
47754
47752
|
return event.type === "activity" && event.status === "background_work";
|
|
47755
47753
|
}
|
|
47756
|
-
function truncateUtf8(value2, maxBytes) {
|
|
47757
|
-
const encoded = Buffer.from(value2, "utf8");
|
|
47758
|
-
if (encoded.length <= maxBytes) return value2;
|
|
47759
|
-
return `${encoded.subarray(0, maxBytes).toString("utf8").replace(/\uFFFD$/u, "")}\u2026`;
|
|
47760
|
-
}
|
|
47761
|
-
function terminalFingerprint(event) {
|
|
47762
|
-
return (0, import_node_crypto4.createHash)("sha256").update(JSON.stringify(event)).digest("hex").slice(0, 16);
|
|
47763
|
-
}
|
|
47764
|
-
function condenseTerminalEvent(event) {
|
|
47765
|
-
const fingerprint = terminalFingerprint(event);
|
|
47766
|
-
const note = ` [Offline terminal detail condensed; fingerprint ${fingerprint}.]`;
|
|
47767
|
-
if (event.type === "session_error") {
|
|
47768
|
-
return {
|
|
47769
|
-
type: "session_error",
|
|
47770
|
-
error: `${truncateUtf8(event.error, 512)}${note}`
|
|
47771
|
-
};
|
|
47772
|
-
}
|
|
47773
|
-
if (event.type === "session_complete" && !event.result) return event;
|
|
47774
|
-
if (event.type !== "query_complete" && event.type !== "agent_run_finished" && event.type !== "complete" && event.type !== "session_complete") {
|
|
47775
|
-
return event;
|
|
47776
|
-
}
|
|
47777
|
-
const result = event.result;
|
|
47778
|
-
if (!result) return event;
|
|
47779
|
-
const compactResult = {
|
|
47780
|
-
success: result.success,
|
|
47781
|
-
summary: `${truncateUtf8(result.summary ?? "", 512)}${note}`,
|
|
47782
|
-
filesModified: (result.filesModified ?? []).slice(0, 4).map((file2) => truncateUtf8(file2, 128)),
|
|
47783
|
-
planFilesCreated: (result.planFilesCreated ?? []).slice(0, 2).map((file2) => truncateUtf8(file2, 128)),
|
|
47784
|
-
iterations: result.iterations,
|
|
47785
|
-
...result.error ? { error: truncateUtf8(result.error, 512) } : {},
|
|
47786
|
-
...result.providerSessionId ? { providerSessionId: truncateUtf8(result.providerSessionId, 256) } : {},
|
|
47787
|
-
...result.runtimeSessionId ? { runtimeSessionId: truncateUtf8(result.runtimeSessionId, 256) } : {},
|
|
47788
|
-
...result.backendKind ? { backendKind: result.backendKind } : {},
|
|
47789
|
-
...result.supportTier ? { supportTier: result.supportTier } : {},
|
|
47790
|
-
...result.usage ? { usage: result.usage } : {},
|
|
47791
|
-
...result.problem ? { problem: result.problem } : {}
|
|
47792
|
-
};
|
|
47793
|
-
if (event.type === "agent_run_finished") {
|
|
47794
|
-
return {
|
|
47795
|
-
type: "agent_run_finished",
|
|
47796
|
-
result: compactResult,
|
|
47797
|
-
...event.failureDomain ? { failureDomain: event.failureDomain } : {},
|
|
47798
|
-
...event.causeProblemId ? { causeProblemId: event.causeProblemId } : {}
|
|
47799
|
-
};
|
|
47800
|
-
}
|
|
47801
|
-
if (event.type === "query_complete") {
|
|
47802
|
-
return { type: "query_complete", result: compactResult, ts: event.ts };
|
|
47803
|
-
}
|
|
47804
|
-
if (event.type === "session_complete") {
|
|
47805
|
-
return { type: "session_complete", result: compactResult, ts: event.ts };
|
|
47806
|
-
}
|
|
47807
|
-
return { type: "complete", result: compactResult };
|
|
47808
|
-
}
|
|
47809
47754
|
function parentToolUseIdOf(event) {
|
|
47810
47755
|
if ((event.type === "text" || event.type === "thinking") && typeof event.parentToolUseId === "string") {
|
|
47811
47756
|
return event.parentToolUseId;
|
|
@@ -47873,6 +47818,7 @@ var EncryptedEventOutbox = class {
|
|
|
47873
47818
|
this.journalDir = eventJournalDir(this.path);
|
|
47874
47819
|
this.maxEncryptedBytes = options.maxEncryptedBytes ?? MAX_ENCRYPTED_OUTBOX_BYTES;
|
|
47875
47820
|
this.maxIntermediateEventsPerRun = options.maxIntermediateEventsPerRun ?? MAX_INTERMEDIATE_EVENTS_PER_RUN;
|
|
47821
|
+
this.deliveryIntervalMs = options.deliveryIntervalMs ?? 0;
|
|
47876
47822
|
this.ordinaryBatchMs = options.ordinaryBatchMs ?? EVENT_JOURNAL_ORDINARY_BATCH_MS;
|
|
47877
47823
|
if (!Number.isSafeInteger(this.maxEncryptedBytes) || this.maxEncryptedBytes <= 0) {
|
|
47878
47824
|
throw new Error("event outbox maxEncryptedBytes must be a positive integer");
|
|
@@ -47880,6 +47826,9 @@ var EncryptedEventOutbox = class {
|
|
|
47880
47826
|
if (!Number.isSafeInteger(this.maxIntermediateEventsPerRun) || this.maxIntermediateEventsPerRun < 0) {
|
|
47881
47827
|
throw new Error("event outbox maxIntermediateEventsPerRun must be a non-negative integer");
|
|
47882
47828
|
}
|
|
47829
|
+
if (!Number.isSafeInteger(this.deliveryIntervalMs) || this.deliveryIntervalMs < 0) {
|
|
47830
|
+
throw new Error("event outbox deliveryIntervalMs must be a non-negative integer");
|
|
47831
|
+
}
|
|
47883
47832
|
const pendingLegacy = [];
|
|
47884
47833
|
const recovered = recoverEventJournal({
|
|
47885
47834
|
legacyPath: this.path,
|
|
@@ -47953,7 +47902,7 @@ var EncryptedEventOutbox = class {
|
|
|
47953
47902
|
importedLegacySnapshot: recovered.importedLegacySnapshot
|
|
47954
47903
|
};
|
|
47955
47904
|
this.hydrateFromSegments(segmentsForHydrate);
|
|
47956
|
-
this.
|
|
47905
|
+
this.enforceRetentionPolicy();
|
|
47957
47906
|
this.persistAckState();
|
|
47958
47907
|
}
|
|
47959
47908
|
entries = [];
|
|
@@ -47964,6 +47913,8 @@ var EncryptedEventOutbox = class {
|
|
|
47964
47913
|
inFlightEventId = null;
|
|
47965
47914
|
ackTimer = null;
|
|
47966
47915
|
retryTimer = null;
|
|
47916
|
+
deliveryTimer = null;
|
|
47917
|
+
lastDeliveryAtMs = 0;
|
|
47967
47918
|
acknowledgementWaiters = /* @__PURE__ */ new Map();
|
|
47968
47919
|
persistFailureLogged = false;
|
|
47969
47920
|
compactionState = "idle";
|
|
@@ -47974,7 +47925,9 @@ var EncryptedEventOutbox = class {
|
|
|
47974
47925
|
key;
|
|
47975
47926
|
maxEncryptedBytes;
|
|
47976
47927
|
maxIntermediateEventsPerRun;
|
|
47928
|
+
deliveryIntervalMs;
|
|
47977
47929
|
ordinaryBatchMs;
|
|
47930
|
+
highWaterMarkLogged = false;
|
|
47978
47931
|
pendingBytes = 0;
|
|
47979
47932
|
cachedSegmentBytes = 0;
|
|
47980
47933
|
cachedSegmentCount = 0;
|
|
@@ -48067,7 +48020,7 @@ var EncryptedEventOutbox = class {
|
|
|
48067
48020
|
last.createdAtMs = Date.now();
|
|
48068
48021
|
this.pendingBytes += estimateEntryBytes(last);
|
|
48069
48022
|
this.rewriteQueued(last);
|
|
48070
|
-
this.
|
|
48023
|
+
this.enforceRetentionPolicy(runId, false);
|
|
48071
48024
|
return last.eventId;
|
|
48072
48025
|
}
|
|
48073
48026
|
const entry = {
|
|
@@ -48079,7 +48032,7 @@ var EncryptedEventOutbox = class {
|
|
|
48079
48032
|
sequence: this.nextSequence(runId)
|
|
48080
48033
|
};
|
|
48081
48034
|
this.appendEntry(entry, isTerminal(event));
|
|
48082
|
-
this.
|
|
48035
|
+
this.enforceRetentionPolicy(runId, isBackgroundHeartbeat(event));
|
|
48083
48036
|
return entry.eventId;
|
|
48084
48037
|
}
|
|
48085
48038
|
/**
|
|
@@ -48110,7 +48063,7 @@ var EncryptedEventOutbox = class {
|
|
|
48110
48063
|
explicitSource: true
|
|
48111
48064
|
};
|
|
48112
48065
|
this.appendEntry(entry, true);
|
|
48113
|
-
this.
|
|
48066
|
+
this.enforceRetentionPolicy(runId, false);
|
|
48114
48067
|
return eventId;
|
|
48115
48068
|
}
|
|
48116
48069
|
hasTerminalEvent(runId) {
|
|
@@ -48131,7 +48084,7 @@ var EncryptedEventOutbox = class {
|
|
|
48131
48084
|
return min;
|
|
48132
48085
|
}, null);
|
|
48133
48086
|
const persistFailure = this.writer.getPersistFailure();
|
|
48134
|
-
const overloaded = this.
|
|
48087
|
+
const overloaded = this.pendingBytes > this.maxEncryptedBytes || this.writer.depth() > 2e3;
|
|
48135
48088
|
const degraded = persistFailure !== null || this.compactionState === "failed" || this.lastRecover.quarantinedSegments.length > 0;
|
|
48136
48089
|
return {
|
|
48137
48090
|
writerDepth: this.writer.depth(),
|
|
@@ -48155,13 +48108,21 @@ var EncryptedEventOutbox = class {
|
|
|
48155
48108
|
disconnect() {
|
|
48156
48109
|
this.clearAckTimer();
|
|
48157
48110
|
this.clearRetryTimer();
|
|
48111
|
+
this.clearDeliveryTimer();
|
|
48158
48112
|
this.inFlightEventId = null;
|
|
48159
48113
|
}
|
|
48160
48114
|
flush(socket) {
|
|
48161
48115
|
if (!socket.connected || this.inFlightEventId || this.entries.length === 0) return;
|
|
48116
|
+
const deliveryDelayMs = this.lastDeliveryAtMs + this.deliveryIntervalMs - Date.now();
|
|
48117
|
+
if (deliveryDelayMs > 0) {
|
|
48118
|
+
this.scheduleDelivery(socket, deliveryDelayMs);
|
|
48119
|
+
return;
|
|
48120
|
+
}
|
|
48121
|
+
this.clearDeliveryTimer();
|
|
48162
48122
|
const entry = this.pickDeliveryEntry();
|
|
48163
48123
|
if (!entry) return;
|
|
48164
48124
|
this.inFlightEventId = entry.eventId;
|
|
48125
|
+
this.lastDeliveryAtMs = Date.now();
|
|
48165
48126
|
this.transmittedEventIds.add(entry.eventId);
|
|
48166
48127
|
let settled = false;
|
|
48167
48128
|
const settle = (result) => {
|
|
@@ -48223,119 +48184,59 @@ var EncryptedEventOutbox = class {
|
|
|
48223
48184
|
if (removed) this.pendingBytes -= estimateEntryBytes(removed);
|
|
48224
48185
|
this.writer.removeQueued(eventId);
|
|
48225
48186
|
}
|
|
48226
|
-
|
|
48227
|
-
return entry.eventId !== this.inFlightEventId && !entry.explicitSource && entry.kind !== "condensation_marker" &&
|
|
48187
|
+
isDroppableHeartbeat(entry) {
|
|
48188
|
+
return entry.eventId !== this.inFlightEventId && !entry.explicitSource && entry.kind !== "condensation_marker" && isBackgroundHeartbeat(entry.event);
|
|
48228
48189
|
}
|
|
48229
|
-
|
|
48230
|
-
|
|
48231
|
-
(entry) => matches(entry) && this.isDroppable(entry) && isBackgroundHeartbeat(entry.event)
|
|
48232
|
-
);
|
|
48233
|
-
if (heartbeat) return heartbeat;
|
|
48234
|
-
return this.entries.find((entry) => matches(entry) && this.isDroppable(entry));
|
|
48235
|
-
}
|
|
48236
|
-
ensureCondensationMarker(runId, conversationId) {
|
|
48237
|
-
if (this.entries.some((entry) => entry.runId === runId && entry.kind === "condensation_marker")) {
|
|
48238
|
-
return;
|
|
48239
|
-
}
|
|
48240
|
-
const runEntry = this.entries.find((entry) => entry.runId === runId);
|
|
48241
|
-
const markerConversationId = runEntry?.conversationId ?? conversationId;
|
|
48242
|
-
if (!markerConversationId) return;
|
|
48243
|
-
const alreadyNotified = this.condensedRunIds.has(runId);
|
|
48244
|
-
const marker = {
|
|
48245
|
-
eventId: (0, import_node_crypto4.randomUUID)(),
|
|
48246
|
-
conversationId: markerConversationId,
|
|
48247
|
-
runId,
|
|
48248
|
-
event: {
|
|
48249
|
-
type: "text",
|
|
48250
|
-
text: alreadyNotified ? CONDENSATION_GAP : CONDENSATION_NOTICE,
|
|
48251
|
-
ts: Date.now()
|
|
48252
|
-
},
|
|
48253
|
-
createdAtMs: Date.now(),
|
|
48254
|
-
sequence: this.nextSequence(runId),
|
|
48255
|
-
kind: "condensation_marker"
|
|
48256
|
-
};
|
|
48257
|
-
const insertAt = this.entries.findIndex(
|
|
48258
|
-
(entry) => entry.runId === runId && entry.eventId !== this.inFlightEventId
|
|
48259
|
-
);
|
|
48260
|
-
let spliceAt = insertAt === -1 ? this.entries.length : insertAt;
|
|
48261
|
-
if (insertAt !== -1 && this.entries[insertAt]?.event.type === "start") {
|
|
48262
|
-
spliceAt = insertAt + 1;
|
|
48263
|
-
}
|
|
48264
|
-
this.entries.splice(spliceAt, 0, marker);
|
|
48265
|
-
this.pendingBytes += estimateEntryBytes(marker);
|
|
48266
|
-
this.trackRun(runId);
|
|
48267
|
-
this.writer.enqueue(this.toRecord(marker), true);
|
|
48190
|
+
pickHeartbeatDropCandidate(matches) {
|
|
48191
|
+
return this.entries.find((entry) => matches(entry) && this.isDroppableHeartbeat(entry));
|
|
48268
48192
|
}
|
|
48269
48193
|
dropEntry(entry) {
|
|
48270
48194
|
this.removeEntry(entry.eventId);
|
|
48271
48195
|
this.acknowledgedEventIds.add(entry.eventId);
|
|
48272
48196
|
}
|
|
48273
|
-
|
|
48274
|
-
const
|
|
48275
|
-
const
|
|
48276
|
-
const terminalCondensedRunIds = /* @__PURE__ */ new Set();
|
|
48277
|
-
const runIds = preferredRunId ? [preferredRunId] : [...new Set(this.entries.map((entry) => entry.runId))];
|
|
48197
|
+
enforceRetentionPolicy(preferredRunId, pruneRunHeartbeats = true) {
|
|
48198
|
+
const droppedHeartbeatsByRunId = /* @__PURE__ */ new Map();
|
|
48199
|
+
const runIds = pruneRunHeartbeats ? preferredRunId ? [preferredRunId] : [...new Set(this.entries.map((entry) => entry.runId))] : [];
|
|
48278
48200
|
for (const runId of runIds) {
|
|
48279
|
-
|
|
48280
|
-
|
|
48281
|
-
if (!drop) break;
|
|
48282
|
-
this.dropEntry(drop);
|
|
48283
|
-
lossCountByRunId.set(runId, (lossCountByRunId.get(runId) ?? 0) + 1);
|
|
48284
|
-
lossConversationByRunId.set(runId, drop.conversationId);
|
|
48285
|
-
}
|
|
48286
|
-
}
|
|
48287
|
-
while (this.pendingBytes > this.maxEncryptedBytes) {
|
|
48288
|
-
const drop = this.pickDropCandidate(() => true);
|
|
48289
|
-
if (drop) {
|
|
48290
|
-
this.dropEntry(drop);
|
|
48291
|
-
lossCountByRunId.set(drop.runId, (lossCountByRunId.get(drop.runId) ?? 0) + 1);
|
|
48292
|
-
lossConversationByRunId.set(drop.runId, drop.conversationId);
|
|
48293
|
-
continue;
|
|
48294
|
-
}
|
|
48295
|
-
const terminal = this.entries.find(
|
|
48296
|
-
(entry) => entry.eventId !== this.inFlightEventId && !entry.explicitSource && isTerminal(entry.event) && !entry.terminalCondensed
|
|
48201
|
+
const heartbeats = this.entries.filter(
|
|
48202
|
+
(entry) => entry.runId === runId && this.isDroppableHeartbeat(entry)
|
|
48297
48203
|
);
|
|
48298
|
-
|
|
48299
|
-
|
|
48300
|
-
|
|
48301
|
-
|
|
48302
|
-
|
|
48303
|
-
|
|
48304
|
-
|
|
48305
|
-
} else {
|
|
48306
|
-
this.writer.enqueue(this.toRecord(terminal), true);
|
|
48204
|
+
const excessHeartbeats = heartbeats.slice(
|
|
48205
|
+
0,
|
|
48206
|
+
Math.max(0, heartbeats.length - this.maxIntermediateEventsPerRun)
|
|
48207
|
+
);
|
|
48208
|
+
for (const drop of excessHeartbeats) {
|
|
48209
|
+
this.dropEntry(drop);
|
|
48210
|
+
droppedHeartbeatsByRunId.set(runId, (droppedHeartbeatsByRunId.get(runId) ?? 0) + 1);
|
|
48307
48211
|
}
|
|
48308
|
-
terminalCondensedRunIds.add(terminal.runId);
|
|
48309
|
-
}
|
|
48310
|
-
for (const runId of /* @__PURE__ */ new Set([...lossCountByRunId.keys(), ...terminalCondensedRunIds])) {
|
|
48311
|
-
this.ensureCondensationMarker(runId, lossConversationByRunId.get(runId));
|
|
48312
48212
|
}
|
|
48313
48213
|
while (this.pendingBytes > this.maxEncryptedBytes) {
|
|
48314
|
-
const drop = this.
|
|
48214
|
+
const drop = this.pickHeartbeatDropCandidate(() => true);
|
|
48315
48215
|
if (!drop) break;
|
|
48316
48216
|
this.dropEntry(drop);
|
|
48317
|
-
|
|
48318
|
-
lossConversationByRunId.set(drop.runId, drop.conversationId);
|
|
48319
|
-
this.ensureCondensationMarker(drop.runId, drop.conversationId);
|
|
48320
|
-
}
|
|
48321
|
-
for (const [runId, count] of lossCountByRunId) {
|
|
48322
|
-
this.pushLog(
|
|
48323
|
-
`event_outbox_quota run=${runId} dropped_nonessential=${count} max_encrypted_bytes=${this.maxEncryptedBytes}`
|
|
48324
|
-
);
|
|
48217
|
+
droppedHeartbeatsByRunId.set(drop.runId, (droppedHeartbeatsByRunId.get(drop.runId) ?? 0) + 1);
|
|
48325
48218
|
}
|
|
48326
|
-
for (const runId of
|
|
48219
|
+
for (const [runId, count] of droppedHeartbeatsByRunId) {
|
|
48327
48220
|
this.pushLog(
|
|
48328
|
-
`
|
|
48221
|
+
`event_outbox_heartbeat_pruned run=${runId} count=${count} max_encrypted_bytes=${this.maxEncryptedBytes}`
|
|
48329
48222
|
);
|
|
48330
48223
|
}
|
|
48331
|
-
if (this.pendingBytes > this.maxEncryptedBytes) {
|
|
48224
|
+
if (this.pendingBytes > this.maxEncryptedBytes && !this.highWaterMarkLogged) {
|
|
48225
|
+
this.highWaterMarkLogged = true;
|
|
48332
48226
|
this.pushLog(
|
|
48333
|
-
`
|
|
48227
|
+
`event_outbox_high_watermark bytes=${this.pendingBytes} pending_entries=${this.entries.length} max_encrypted_bytes=${this.maxEncryptedBytes}`
|
|
48334
48228
|
);
|
|
48335
48229
|
}
|
|
48336
|
-
if (
|
|
48337
|
-
|
|
48338
|
-
|
|
48230
|
+
if (this.pendingBytes <= this.maxEncryptedBytes) this.highWaterMarkLogged = false;
|
|
48231
|
+
if (droppedHeartbeatsByRunId.size > 0) this.persistAckState();
|
|
48232
|
+
}
|
|
48233
|
+
scheduleDelivery(socket, delayMs) {
|
|
48234
|
+
if (this.deliveryTimer) return;
|
|
48235
|
+
this.deliveryTimer = setTimeout(() => {
|
|
48236
|
+
this.deliveryTimer = null;
|
|
48237
|
+
this.flush(socket);
|
|
48238
|
+
}, delayMs);
|
|
48239
|
+
this.deliveryTimer.unref?.();
|
|
48339
48240
|
}
|
|
48340
48241
|
persistAckState() {
|
|
48341
48242
|
try {
|
|
@@ -48401,6 +48302,10 @@ var EncryptedEventOutbox = class {
|
|
|
48401
48302
|
if (this.retryTimer) clearTimeout(this.retryTimer);
|
|
48402
48303
|
this.retryTimer = null;
|
|
48403
48304
|
}
|
|
48305
|
+
clearDeliveryTimer() {
|
|
48306
|
+
if (this.deliveryTimer) clearTimeout(this.deliveryTimer);
|
|
48307
|
+
this.deliveryTimer = null;
|
|
48308
|
+
}
|
|
48404
48309
|
};
|
|
48405
48310
|
|
|
48406
48311
|
// src/provider-auth-preflight.ts
|
|
@@ -79212,7 +79117,11 @@ async function startDaemon(args) {
|
|
|
79212
79117
|
eventOutbox = new EncryptedEventOutbox(
|
|
79213
79118
|
`${configPath}.event-outbox.enc`,
|
|
79214
79119
|
eventSpoolKey,
|
|
79215
|
-
pushLog
|
|
79120
|
+
pushLog,
|
|
79121
|
+
// Keep replay below the legacy runtime-socket ceiling during rolling
|
|
79122
|
+
// upgrades. Stable acknowledgements still make the stream eventually
|
|
79123
|
+
// consistent; pacing only trades catch-up latency for connection health.
|
|
79124
|
+
{ deliveryIntervalMs: 50 }
|
|
79216
79125
|
);
|
|
79217
79126
|
nativeHookInbox = new EncryptedNativeHookInbox(nativeHookInboxPath(configPath), eventSpoolKey, {
|
|
79218
79127
|
recoverClaims: true,
|
|
@@ -95651,7 +95560,7 @@ var SandboxEventDispatcher = class {
|
|
|
95651
95560
|
get active() {
|
|
95652
95561
|
return this.outbox !== void 0 && this.outboxSocket !== void 0;
|
|
95653
95562
|
}
|
|
95654
|
-
/** Set the run id used
|
|
95563
|
+
/** Set the run id used for fair replay and per-run heartbeat pruning. */
|
|
95655
95564
|
setRunId(runId) {
|
|
95656
95565
|
this.currentRunId = runId;
|
|
95657
95566
|
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alan Sandbox Agent
|
|
3
|
+
* Runs inside E2B sandbox, connects to WS server, executes CoreAgent.
|
|
4
|
+
*/
|
|
5
|
+
import { spawnSync } from "node:child_process";
|
|
6
|
+
import { getDaemonCliEnvironment } from "./cli-executable.js";
|
|
7
|
+
import { HELP_TEXT, resolveCommand } from "./cli-help.js";
|
|
8
|
+
import { loginWithDeviceCode, logoutDaemon, printDoctor, printScanModels, printStatus, recoverDaemonConnection, revokeRuntimeToken, rotateRuntimeToken, runDaemon, setupDaemon, stopDaemon, } from "./daemon.js";
|
|
9
|
+
import { AgentLifecycleLogger, lifecycleContextFromEnv } from "./lifecycle-logger.js";
|
|
10
|
+
import { decodeResumeFallbackContext, RESUME_FALLBACK_CONTEXT_ENV } from "./resume-fallback-env.js";
|
|
11
|
+
import { runSandbox } from "./sandbox.js";
|
|
12
|
+
import { installDaemonService, printDaemonServiceStatus, uninstallDaemonService, } from "./service-manager.js";
|
|
13
|
+
import { AGENT_VERSION } from "./version.js";
|
|
14
|
+
/**
|
|
15
|
+
* Report the commit identity this session will actually use.
|
|
16
|
+
*
|
|
17
|
+
* Two independent carriers have to agree: the GIT_AUTHOR / GIT_COMMITTER env
|
|
18
|
+
* injected on this process, and the sandbox's git config. Neither is verified
|
|
19
|
+
* anywhere else — a mismatch or a missing pair previously surfaced only as a
|
|
20
|
+
* mis-attributed commit, discovered after the fact. `getDaemonCliEnvironment()`
|
|
21
|
+
* is the same env the CLI child receives, so this reads what the CLI will read.
|
|
22
|
+
*/
|
|
23
|
+
function logEffectiveGitIdentity(lifecycle, projectPath) {
|
|
24
|
+
const readConfig = (key) => {
|
|
25
|
+
try {
|
|
26
|
+
const result = spawnSync("git", ["config", "--get", key], {
|
|
27
|
+
cwd: projectPath,
|
|
28
|
+
env: getDaemonCliEnvironment(),
|
|
29
|
+
encoding: "utf8",
|
|
30
|
+
timeout: 5000,
|
|
31
|
+
});
|
|
32
|
+
const value = result.status === 0 ? result.stdout.trim() : "";
|
|
33
|
+
return value || null;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const envName = process.env.GIT_AUTHOR_NAME || null;
|
|
40
|
+
const envEmail = process.env.GIT_AUTHOR_EMAIL || null;
|
|
41
|
+
const configName = readConfig("user.name");
|
|
42
|
+
const configEmail = readConfig("user.email");
|
|
43
|
+
const payload = {
|
|
44
|
+
projectPath,
|
|
45
|
+
envAuthorName: envName,
|
|
46
|
+
envAuthorEmail: envEmail,
|
|
47
|
+
configUserName: configName,
|
|
48
|
+
configUserEmail: configEmail,
|
|
49
|
+
};
|
|
50
|
+
if (!envEmail && !configEmail) {
|
|
51
|
+
lifecycle.error("sandbox_agent_git_identity_missing", payload);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (envEmail && configEmail && envEmail !== configEmail) {
|
|
55
|
+
lifecycle.error("sandbox_agent_git_identity_mismatch", payload);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
lifecycle.info("sandbox_agent_git_identity", payload);
|
|
59
|
+
}
|
|
60
|
+
async function runSessionFromEnv() {
|
|
61
|
+
const wsUrl = process.env.ALAN_WS_URL;
|
|
62
|
+
const sessionId = process.env.ALAN_SESSION_ID;
|
|
63
|
+
const taskId = process.env.ALAN_TASK_ID;
|
|
64
|
+
const sessionToken = process.env.ALAN_SESSION_TOKEN;
|
|
65
|
+
const task = process.env.ALAN_TASK;
|
|
66
|
+
const teamId = process.env.ALAN_TEAM_ID || undefined;
|
|
67
|
+
const projectPath = process.env.ALAN_PROJECT_PATH || "/home/user/workspace";
|
|
68
|
+
const backendKind = process.env.ALAN_BACKEND_KIND || "codex_app_server";
|
|
69
|
+
const agentId = process.env.ALAN_AGENT_ID || undefined;
|
|
70
|
+
const agentPrompt = process.env.ALAN_AGENT_PROMPT || undefined;
|
|
71
|
+
const mode = process.env.ALAN_MODE || "agent";
|
|
72
|
+
const model = process.env.ALAN_MODEL;
|
|
73
|
+
const contextWindow = process.env.ALAN_CONTEXT_WINDOW || undefined;
|
|
74
|
+
const effortLevel = process.env.ALAN_EFFORT_LEVEL || undefined;
|
|
75
|
+
const providerSessionId = process.env.ALAN_PROVIDER_SESSION_ID || undefined;
|
|
76
|
+
// Compact recent-transcript for the resume-triggered first turn. Base64 so the
|
|
77
|
+
// multi-line block survives every provider env-injection path (E2B real env map
|
|
78
|
+
// and Daytona `su -c` shell interpolation) unmangled — mirrors ALAN_ENV_FILE_B64.
|
|
79
|
+
const resumeFallbackContext = decodeResumeFallbackContext(process.env[RESUME_FALLBACK_CONTEXT_ENV]);
|
|
80
|
+
const workflowId = process.env.ALAN_WORKFLOW_ID || undefined;
|
|
81
|
+
const workflowExecutionId = process.env.ALAN_WORKFLOW_EXECUTION_ID || undefined;
|
|
82
|
+
const sandboxId = process.env.ALAN_SANDBOX_ID || undefined;
|
|
83
|
+
const provider = process.env.ALAN_SANDBOX_PROVIDER || undefined;
|
|
84
|
+
const runId = process.env.ALAN_RUN_ID || undefined;
|
|
85
|
+
const lifecycle = new AgentLifecycleLogger(lifecycleContextFromEnv(process.env));
|
|
86
|
+
if (!wsUrl || !sessionId || !taskId || !sessionToken || task == null) {
|
|
87
|
+
lifecycle.error("sandbox_agent_bootstrap_missing_env", {
|
|
88
|
+
hasWsUrl: Boolean(wsUrl),
|
|
89
|
+
hasConversationId: Boolean(sessionId),
|
|
90
|
+
hasTaskId: Boolean(taskId),
|
|
91
|
+
hasSessionToken: Boolean(sessionToken),
|
|
92
|
+
hasTask: task != null,
|
|
93
|
+
});
|
|
94
|
+
throw new Error("run-session is an internal Alan sandbox/session command and must be launched by Alan with session env vars. " +
|
|
95
|
+
"Missing required env vars: ALAN_WS_URL, ALAN_SESSION_ID, ALAN_TASK_ID, ALAN_SESSION_TOKEN, ALAN_TASK");
|
|
96
|
+
}
|
|
97
|
+
lifecycle.info("sandbox_agent_process_start", {
|
|
98
|
+
sessionId,
|
|
99
|
+
projectPath,
|
|
100
|
+
agentId,
|
|
101
|
+
mode,
|
|
102
|
+
model,
|
|
103
|
+
});
|
|
104
|
+
logEffectiveGitIdentity(lifecycle, projectPath);
|
|
105
|
+
await runSandbox({
|
|
106
|
+
wsUrl,
|
|
107
|
+
sessionId,
|
|
108
|
+
taskId,
|
|
109
|
+
sessionToken,
|
|
110
|
+
task,
|
|
111
|
+
teamId,
|
|
112
|
+
projectPath,
|
|
113
|
+
backendKind,
|
|
114
|
+
agentId,
|
|
115
|
+
agentPrompt,
|
|
116
|
+
mode,
|
|
117
|
+
model,
|
|
118
|
+
contextWindow,
|
|
119
|
+
effortLevel,
|
|
120
|
+
providerSessionId,
|
|
121
|
+
resumeFallbackContext,
|
|
122
|
+
workflowId,
|
|
123
|
+
workflowExecutionId,
|
|
124
|
+
sandboxId,
|
|
125
|
+
provider,
|
|
126
|
+
runId,
|
|
127
|
+
lifecycle,
|
|
128
|
+
maxIterations: 50,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
async function main() {
|
|
132
|
+
if (process.argv.includes("--version")) {
|
|
133
|
+
process.stdout.write(`${AGENT_VERSION}\n`);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const { command, commandArgs } = resolveCommand(process.argv.slice(2), process.env);
|
|
137
|
+
if (command === "help") {
|
|
138
|
+
process.stdout.write(HELP_TEXT);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (command === "setup") {
|
|
142
|
+
await setupDaemon(commandArgs);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (command === "login") {
|
|
146
|
+
await loginWithDeviceCode(commandArgs);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (command === "daemon") {
|
|
150
|
+
await runDaemon(commandArgs);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (command === "service" && commandArgs[0] === "install") {
|
|
154
|
+
installDaemonService(commandArgs.slice(1));
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (command === "service" && commandArgs[0] === "uninstall") {
|
|
158
|
+
uninstallDaemonService(commandArgs.slice(1));
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
if (command === "service" && commandArgs[0] === "status") {
|
|
162
|
+
printDaemonServiceStatus(commandArgs.slice(1));
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
if (command === "stop") {
|
|
166
|
+
await stopDaemon(commandArgs);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
if (command === "recover") {
|
|
170
|
+
await recoverDaemonConnection(commandArgs);
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (command === "status") {
|
|
174
|
+
await printStatus();
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
if (command === "doctor") {
|
|
178
|
+
await printDoctor(commandArgs);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (command === "scan-models") {
|
|
182
|
+
await printScanModels(commandArgs);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
if (command === "token" && commandArgs[0] === "rotate") {
|
|
186
|
+
await rotateRuntimeToken(commandArgs.slice(1));
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
if (command === "token" && commandArgs[0] === "revoke") {
|
|
190
|
+
await revokeRuntimeToken(commandArgs.slice(1));
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
if (command === "logout") {
|
|
194
|
+
await logoutDaemon();
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
if (command === "run-session") {
|
|
198
|
+
await runSessionFromEnv();
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
throw new Error(`Unknown command: ${command}\n\n${HELP_TEXT}`);
|
|
202
|
+
}
|
|
203
|
+
main().catch((error) => {
|
|
204
|
+
new AgentLifecycleLogger(lifecycleContextFromEnv(process.env)).error("sandbox_agent_fatal", {
|
|
205
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
206
|
+
});
|
|
207
|
+
process.exit(1);
|
|
208
|
+
});
|
|
209
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface AgentLifecycleContext {
|
|
2
|
+
taskId?: string;
|
|
3
|
+
conversationId?: string;
|
|
4
|
+
runId?: string;
|
|
5
|
+
sandboxId?: string;
|
|
6
|
+
provider?: string;
|
|
7
|
+
backendKind?: string;
|
|
8
|
+
agentVersion?: string;
|
|
9
|
+
}
|
|
10
|
+
export type AgentLifecycleLevel = "debug" | "info" | "warn" | "error";
|
|
11
|
+
type AgentLifecycleFields = Record<string, unknown>;
|
|
12
|
+
export declare class AgentLifecycleLogger {
|
|
13
|
+
private context;
|
|
14
|
+
constructor(context?: AgentLifecycleContext);
|
|
15
|
+
setContext(context: AgentLifecycleContext): void;
|
|
16
|
+
child(context: AgentLifecycleContext): AgentLifecycleLogger;
|
|
17
|
+
debug(event: string, fields?: AgentLifecycleFields): void;
|
|
18
|
+
info(event: string, fields?: AgentLifecycleFields): void;
|
|
19
|
+
warn(event: string, fields?: AgentLifecycleFields): void;
|
|
20
|
+
error(event: string, fields?: AgentLifecycleFields): void;
|
|
21
|
+
private log;
|
|
22
|
+
}
|
|
23
|
+
export declare function lifecycleContextFromEnv(env: NodeJS.ProcessEnv): AgentLifecycleContext;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=lifecycle-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle-logger.d.ts","sourceRoot":"","sources":["../src/lifecycle-logger.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtE,KAAK,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,GAAE,qBAA0B;IAI/C,UAAU,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAIhD,KAAK,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB;IAI3D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,oBAAyB,GAAG,IAAI;IAI7D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,oBAAyB,GAAG,IAAI;IAI5D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,oBAAyB,GAAG,IAAI;IAI5D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,oBAAyB,GAAG,IAAI;IAI7D,OAAO,CAAC,GAAG;CAWZ;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,qBAAqB,CAUrF"}
|