@panorama-ai/gateway 2.29.14 → 2.30.181
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/README.md +167 -10
- package/dist/child-process-env.d.ts.map +1 -1
- package/dist/child-process-env.js +1 -0
- package/dist/child-process-env.js.map +1 -1
- package/dist/cli-args.d.ts +11 -0
- package/dist/cli-args.d.ts.map +1 -0
- package/dist/cli-args.js +72 -0
- package/dist/cli-args.js.map +1 -0
- package/dist/cli-command-discovery.d.ts +17 -0
- package/dist/cli-command-discovery.d.ts.map +1 -0
- package/dist/cli-command-discovery.js +229 -0
- package/dist/cli-command-discovery.js.map +1 -0
- package/dist/cli-env.d.ts +7 -0
- package/dist/cli-env.d.ts.map +1 -0
- package/dist/cli-env.js +82 -0
- package/dist/cli-env.js.map +1 -0
- package/dist/cli-output.d.ts +23 -0
- package/dist/cli-output.d.ts.map +1 -0
- package/dist/cli-output.js +86 -0
- package/dist/cli-output.js.map +1 -0
- package/dist/cli-provider-commands.d.ts +59 -0
- package/dist/cli-provider-commands.d.ts.map +1 -0
- package/dist/cli-provider-commands.js +157 -0
- package/dist/cli-provider-commands.js.map +1 -0
- package/dist/cli-providers/claude.d.ts.map +1 -1
- package/dist/cli-providers/claude.js +11 -110
- package/dist/cli-providers/claude.js.map +1 -1
- package/dist/cli-providers/codex.d.ts.map +1 -1
- package/dist/cli-providers/codex.js +13 -53
- package/dist/cli-providers/codex.js.map +1 -1
- package/dist/cli-providers/gemini.d.ts.map +1 -1
- package/dist/cli-providers/gemini.js +18 -88
- package/dist/cli-providers/gemini.js.map +1 -1
- package/dist/cli-providers/types.d.ts +3 -1
- package/dist/cli-providers/types.d.ts.map +1 -1
- package/dist/cli-providers/types.js.map +1 -1
- package/dist/database.types.d.ts +4209 -759
- package/dist/database.types.d.ts.map +1 -1
- package/dist/database.types.js +0 -3
- package/dist/database.types.js.map +1 -1
- package/dist/debug-redaction.d.ts +11 -0
- package/dist/debug-redaction.d.ts.map +1 -1
- package/dist/debug-redaction.js +33 -4
- package/dist/debug-redaction.js.map +1 -1
- package/dist/finalize-subagent-run.d.ts +28 -0
- package/dist/finalize-subagent-run.d.ts.map +1 -0
- package/dist/finalize-subagent-run.js +34 -0
- package/dist/finalize-subagent-run.js.map +1 -0
- package/dist/gateway-capability-services.d.ts +10 -0
- package/dist/gateway-capability-services.d.ts.map +1 -0
- package/dist/gateway-capability-services.js +40 -0
- package/dist/gateway-capability-services.js.map +1 -0
- package/dist/gateway-cli-commands.d.ts +25 -0
- package/dist/gateway-cli-commands.d.ts.map +1 -0
- package/dist/gateway-cli-commands.js +202 -0
- package/dist/gateway-cli-commands.js.map +1 -0
- package/dist/gateway-command-runner.d.ts +48 -0
- package/dist/gateway-command-runner.d.ts.map +1 -0
- package/dist/gateway-command-runner.js +154 -0
- package/dist/gateway-command-runner.js.map +1 -0
- package/dist/gateway-control-plane.d.ts +44 -0
- package/dist/gateway-control-plane.d.ts.map +1 -0
- package/dist/gateway-control-plane.js +147 -0
- package/dist/gateway-control-plane.js.map +1 -0
- package/dist/gateway-daemon.d.ts +41 -0
- package/dist/gateway-daemon.d.ts.map +1 -0
- package/dist/gateway-daemon.js +69 -0
- package/dist/gateway-daemon.js.map +1 -0
- package/dist/gateway-doctor.d.ts +45 -0
- package/dist/gateway-doctor.d.ts.map +1 -0
- package/dist/gateway-doctor.js +81 -0
- package/dist/gateway-doctor.js.map +1 -0
- package/dist/gateway-execution-support.d.ts +56 -0
- package/dist/gateway-execution-support.d.ts.map +1 -0
- package/dist/gateway-execution-support.js +135 -0
- package/dist/gateway-execution-support.js.map +1 -0
- package/dist/gateway-job-controller.d.ts +68 -0
- package/dist/gateway-job-controller.d.ts.map +1 -0
- package/dist/gateway-job-controller.js +266 -0
- package/dist/gateway-job-controller.js.map +1 -0
- package/dist/gateway-job-handlers.d.ts +76 -0
- package/dist/gateway-job-handlers.d.ts.map +1 -0
- package/dist/gateway-job-handlers.js +235 -0
- package/dist/gateway-job-handlers.js.map +1 -0
- package/dist/gateway-job-processor.d.ts +24 -0
- package/dist/gateway-job-processor.d.ts.map +1 -0
- package/dist/gateway-job-processor.js +90 -0
- package/dist/gateway-job-processor.js.map +1 -0
- package/dist/gateway-job-store.d.ts +13 -0
- package/dist/gateway-job-store.d.ts.map +1 -0
- package/dist/gateway-job-store.js +106 -0
- package/dist/gateway-job-store.js.map +1 -0
- package/dist/gateway-jobs.d.ts +31 -0
- package/dist/gateway-jobs.d.ts.map +1 -0
- package/dist/gateway-jobs.js +52 -0
- package/dist/gateway-jobs.js.map +1 -0
- package/dist/gateway-lifecycle.d.ts +43 -0
- package/dist/gateway-lifecycle.d.ts.map +1 -0
- package/dist/gateway-lifecycle.js +62 -0
- package/dist/gateway-lifecycle.js.map +1 -0
- package/dist/gateway-local-runtime.d.ts +68 -0
- package/dist/gateway-local-runtime.d.ts.map +1 -0
- package/dist/gateway-local-runtime.js +208 -0
- package/dist/gateway-local-runtime.js.map +1 -0
- package/dist/gateway-model-run.d.ts +48 -0
- package/dist/gateway-model-run.d.ts.map +1 -0
- package/dist/gateway-model-run.js +205 -0
- package/dist/gateway-model-run.js.map +1 -0
- package/dist/gateway-operational-status.d.ts +1 -1
- package/dist/gateway-operational-status.d.ts.map +1 -1
- package/dist/gateway-operational-status.js +7 -14
- package/dist/gateway-operational-status.js.map +1 -1
- package/dist/gateway-pairing.d.ts +58 -0
- package/dist/gateway-pairing.d.ts.map +1 -0
- package/dist/gateway-pairing.js +151 -0
- package/dist/gateway-pairing.js.map +1 -0
- package/dist/gateway-provider-capabilities.d.ts +59 -0
- package/dist/gateway-provider-capabilities.d.ts.map +1 -0
- package/dist/gateway-provider-capabilities.js +231 -0
- package/dist/gateway-provider-capabilities.js.map +1 -0
- package/dist/gateway-provider-health.d.ts +19 -0
- package/dist/gateway-provider-health.d.ts.map +1 -0
- package/dist/gateway-provider-health.js +75 -0
- package/dist/gateway-provider-health.js.map +1 -0
- package/dist/gateway-provider-runtime.d.ts +72 -0
- package/dist/gateway-provider-runtime.d.ts.map +1 -0
- package/dist/gateway-provider-runtime.js +169 -0
- package/dist/gateway-provider-runtime.js.map +1 -0
- package/dist/gateway-restart.d.ts +8 -0
- package/dist/gateway-restart.d.ts.map +1 -0
- package/dist/gateway-restart.js +129 -0
- package/dist/gateway-restart.js.map +1 -0
- package/dist/gateway-run-helpers.d.ts +35 -0
- package/dist/gateway-run-helpers.d.ts.map +1 -0
- package/dist/gateway-run-helpers.js +203 -0
- package/dist/gateway-run-helpers.js.map +1 -0
- package/dist/gateway-runtime-provider-health.d.ts +31 -0
- package/dist/gateway-runtime-provider-health.d.ts.map +1 -0
- package/dist/gateway-runtime-provider-health.js +99 -0
- package/dist/gateway-runtime-provider-health.js.map +1 -0
- package/dist/gateway-runtime-state.d.ts +35 -0
- package/dist/gateway-runtime-state.d.ts.map +1 -0
- package/dist/gateway-runtime-state.js +18 -0
- package/dist/gateway-runtime-state.js.map +1 -0
- package/dist/gateway-shell-exec.d.ts +46 -0
- package/dist/gateway-shell-exec.d.ts.map +1 -0
- package/dist/gateway-shell-exec.js +130 -0
- package/dist/gateway-shell-exec.js.map +1 -0
- package/dist/gateway-start-command.d.ts +28 -0
- package/dist/gateway-start-command.d.ts.map +1 -0
- package/dist/gateway-start-command.js +101 -0
- package/dist/gateway-start-command.js.map +1 -0
- package/dist/gateway-state.d.ts +29 -0
- package/dist/gateway-state.d.ts.map +1 -0
- package/dist/gateway-state.js +97 -0
- package/dist/gateway-state.js.map +1 -0
- package/dist/gateway-subagent-run-finalizer.d.ts +27 -0
- package/dist/gateway-subagent-run-finalizer.d.ts.map +1 -0
- package/dist/gateway-subagent-run-finalizer.js +196 -0
- package/dist/gateway-subagent-run-finalizer.js.map +1 -0
- package/dist/gateway-subagent-run-job.d.ts +4 -0
- package/dist/gateway-subagent-run-job.d.ts.map +1 -0
- package/dist/gateway-subagent-run-job.js +430 -0
- package/dist/gateway-subagent-run-job.js.map +1 -0
- package/dist/gateway-subagent-run-target.d.ts +16 -0
- package/dist/gateway-subagent-run-target.d.ts.map +1 -0
- package/dist/gateway-subagent-run-target.js +239 -0
- package/dist/gateway-subagent-run-target.js.map +1 -0
- package/dist/gateway-subagent-run-types.d.ts +110 -0
- package/dist/gateway-subagent-run-types.d.ts.map +1 -0
- package/dist/gateway-subagent-run-types.js +2 -0
- package/dist/gateway-subagent-run-types.js.map +1 -0
- package/dist/index.js +11671 -5503
- package/dist/index.js.map +7 -1
- package/dist/local-runtime/heartbeat-supervisor.d.ts +39 -0
- package/dist/local-runtime/heartbeat-supervisor.d.ts.map +1 -0
- package/dist/local-runtime/heartbeat-supervisor.js +96 -0
- package/dist/local-runtime/heartbeat-supervisor.js.map +1 -0
- package/dist/local-runtime/restart-supervisor.d.ts +27 -0
- package/dist/local-runtime/restart-supervisor.d.ts.map +1 -0
- package/dist/local-runtime/restart-supervisor.js +169 -0
- package/dist/local-runtime/restart-supervisor.js.map +1 -0
- package/dist/local-runtime/runtime-utils.d.ts +20 -0
- package/dist/local-runtime/runtime-utils.d.ts.map +1 -0
- package/dist/local-runtime/runtime-utils.js +54 -0
- package/dist/local-runtime/runtime-utils.js.map +1 -0
- package/dist/local-runtime/shutdown-supervisor.d.ts +32 -0
- package/dist/local-runtime/shutdown-supervisor.d.ts.map +1 -0
- package/dist/local-runtime/shutdown-supervisor.js +110 -0
- package/dist/local-runtime/shutdown-supervisor.js.map +1 -0
- package/dist/local-runtime/types.d.ts +26 -0
- package/dist/local-runtime/types.d.ts.map +1 -0
- package/dist/local-runtime/types.js +2 -0
- package/dist/local-runtime/types.js.map +1 -0
- package/dist/managed-runtime/config.d.ts +20 -0
- package/dist/managed-runtime/config.d.ts.map +1 -0
- package/dist/managed-runtime/config.js +80 -0
- package/dist/managed-runtime/config.js.map +1 -0
- package/dist/managed-runtime/control-client.d.ts +66 -0
- package/dist/managed-runtime/control-client.d.ts.map +1 -0
- package/dist/managed-runtime/control-client.js +142 -0
- package/dist/managed-runtime/control-client.js.map +1 -0
- package/dist/managed-runtime/dependencies.d.ts +17 -0
- package/dist/managed-runtime/dependencies.d.ts.map +1 -0
- package/dist/managed-runtime/dependencies.js +28 -0
- package/dist/managed-runtime/dependencies.js.map +1 -0
- package/dist/managed-runtime/execution-dispatcher.d.ts +25 -0
- package/dist/managed-runtime/execution-dispatcher.d.ts.map +1 -0
- package/dist/managed-runtime/execution-dispatcher.js +155 -0
- package/dist/managed-runtime/execution-dispatcher.js.map +1 -0
- package/dist/managed-runtime/heartbeat.d.ts +7 -0
- package/dist/managed-runtime/heartbeat.d.ts.map +1 -0
- package/dist/managed-runtime/heartbeat.js +44 -0
- package/dist/managed-runtime/heartbeat.js.map +1 -0
- package/dist/managed-runtime/host-state.d.ts +15 -0
- package/dist/managed-runtime/host-state.d.ts.map +1 -0
- package/dist/managed-runtime/host-state.js +50 -0
- package/dist/managed-runtime/host-state.js.map +1 -0
- package/dist/managed-runtime/realtime.d.ts +25 -0
- package/dist/managed-runtime/realtime.d.ts.map +1 -0
- package/dist/managed-runtime/realtime.js +189 -0
- package/dist/managed-runtime/realtime.js.map +1 -0
- package/dist/managed-runtime/runtime-utils.d.ts +8 -0
- package/dist/managed-runtime/runtime-utils.d.ts.map +1 -0
- package/dist/managed-runtime/runtime-utils.js +39 -0
- package/dist/managed-runtime/runtime-utils.js.map +1 -0
- package/dist/managed-runtime/shell-execution.d.ts +33 -0
- package/dist/managed-runtime/shell-execution.d.ts.map +1 -0
- package/dist/managed-runtime/shell-execution.js +186 -0
- package/dist/managed-runtime/shell-execution.js.map +1 -0
- package/dist/managed-runtime/step-result.d.ts +22 -0
- package/dist/managed-runtime/step-result.d.ts.map +1 -0
- package/dist/managed-runtime/step-result.js +252 -0
- package/dist/managed-runtime/step-result.js.map +1 -0
- package/dist/managed-runtime/wake-signal.d.ts +5 -0
- package/dist/managed-runtime/wake-signal.d.ts.map +1 -0
- package/dist/managed-runtime/wake-signal.js +29 -0
- package/dist/managed-runtime/wake-signal.js.map +1 -0
- package/dist/managed-runtime.d.ts +8 -0
- package/dist/managed-runtime.d.ts.map +1 -0
- package/dist/managed-runtime.js +224 -0
- package/dist/managed-runtime.js.map +1 -0
- package/dist/{subagent-process-control.d.ts → process-control.d.ts} +1 -1
- package/dist/process-control.d.ts.map +1 -0
- package/dist/{subagent-process-control.js → process-control.js} +1 -1
- package/dist/process-control.js.map +1 -0
- package/dist/process-output-capture.d.ts +21 -0
- package/dist/process-output-capture.d.ts.map +1 -0
- package/dist/process-output-capture.js +47 -0
- package/dist/process-output-capture.js.map +1 -0
- package/dist/provider-runtime-utils.d.ts +24 -0
- package/dist/provider-runtime-utils.d.ts.map +1 -0
- package/dist/provider-runtime-utils.js +97 -0
- package/dist/provider-runtime-utils.js.map +1 -0
- package/dist/remote-shell-resource.d.ts +11 -0
- package/dist/remote-shell-resource.d.ts.map +1 -1
- package/dist/remote-shell-resource.js +66 -12
- package/dist/remote-shell-resource.js.map +1 -1
- package/dist/stream-json-collector.d.ts +1 -2
- package/dist/stream-json-collector.d.ts.map +1 -1
- package/dist/stream-json-collector.js +7 -18
- package/dist/stream-json-collector.js.map +1 -1
- package/dist/subagent-adapters/claude-code.d.ts.map +1 -1
- package/dist/subagent-adapters/claude-code.js +1 -5
- package/dist/subagent-adapters/claude-code.js.map +1 -1
- package/dist/subagent-adapters/codex.d.ts.map +1 -1
- package/dist/subagent-adapters/codex.js +5 -22
- package/dist/subagent-adapters/codex.js.map +1 -1
- package/dist/subagent-adapters/gemini.d.ts.map +1 -1
- package/dist/subagent-adapters/gemini.js +9 -56
- package/dist/subagent-adapters/gemini.js.map +1 -1
- package/dist/subagent-adapters/output-format.d.ts +3 -0
- package/dist/subagent-adapters/output-format.d.ts.map +1 -0
- package/dist/subagent-adapters/output-format.js +12 -0
- package/dist/subagent-adapters/output-format.js.map +1 -0
- package/dist/subagent-adapters/types.d.ts +4 -1
- package/dist/subagent-adapters/types.d.ts.map +1 -1
- package/dist/subagent-adapters/types.js.map +1 -1
- package/dist/subagent-cancel-job.d.ts +25 -0
- package/dist/subagent-cancel-job.d.ts.map +1 -0
- package/dist/subagent-cancel-job.js +295 -0
- package/dist/subagent-cancel-job.js.map +1 -0
- package/dist/subagent-failure.d.ts +11 -0
- package/dist/subagent-failure.d.ts.map +1 -0
- package/dist/subagent-failure.js +99 -0
- package/dist/subagent-failure.js.map +1 -0
- package/dist/subagent-full-control.d.ts.map +1 -1
- package/dist/subagent-full-control.js +7 -4
- package/dist/subagent-full-control.js.map +1 -1
- package/dist/subagent-output-persistence.d.ts +12 -0
- package/dist/subagent-output-persistence.d.ts.map +1 -0
- package/dist/subagent-output-persistence.js +15 -0
- package/dist/subagent-output-persistence.js.map +1 -0
- package/dist/subagent-run-events.d.ts +17 -0
- package/dist/subagent-run-events.d.ts.map +1 -0
- package/dist/subagent-run-events.js +60 -0
- package/dist/subagent-run-events.js.map +1 -0
- package/dist/subagent-run-execution.d.ts +39 -0
- package/dist/subagent-run-execution.d.ts.map +1 -0
- package/dist/subagent-run-execution.js +145 -0
- package/dist/subagent-run-execution.js.map +1 -0
- package/dist/subagent-run-helpers.d.ts +35 -0
- package/dist/subagent-run-helpers.d.ts.map +1 -0
- package/dist/subagent-run-helpers.js +88 -0
- package/dist/subagent-run-helpers.js.map +1 -0
- package/dist/subagent-run-job.d.ts +33 -0
- package/dist/subagent-run-job.d.ts.map +1 -0
- package/dist/subagent-run-job.js +74 -0
- package/dist/subagent-run-job.js.map +1 -0
- package/dist/subagent-run-store.d.ts +6 -0
- package/dist/subagent-run-store.d.ts.map +1 -0
- package/dist/subagent-run-store.js +22 -0
- package/dist/subagent-run-store.js.map +1 -0
- package/dist/subagent-shutdown-cancellation.d.ts +22 -0
- package/dist/subagent-shutdown-cancellation.d.ts.map +1 -0
- package/dist/subagent-shutdown-cancellation.js +127 -0
- package/dist/subagent-shutdown-cancellation.js.map +1 -0
- package/package.json +6 -3
- package/dist/subagent-process-control.d.ts.map +0 -1
- package/dist/subagent-process-control.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-job-handlers.d.ts","sourceRoot":"","sources":["../src/gateway-job-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { deriveGatewayMachineControlState, isGatewayServiceReady, } from '@panorama/shared/gateway/capabilities';
|
|
2
|
+
import { execFile } from 'node:child_process';
|
|
3
|
+
import { promisify } from 'node:util';
|
|
4
|
+
import { claimGatewayJob, completeGatewayJob, findGatewayJobIdempotencyConflict, loadGatewayJobStatus, updateGatewayJobDebug, } from './gateway-job-store.js';
|
|
5
|
+
import { processGatewayJob } from './gateway-job-processor.js';
|
|
6
|
+
import { handleGatewayModelRunJob, } from './gateway-model-run.js';
|
|
7
|
+
import { handleGatewayShellExecJob, } from './gateway-shell-exec.js';
|
|
8
|
+
import { handleGatewaySubagentRunJob } from './gateway-subagent-run-job.js';
|
|
9
|
+
import { handleSubagentCancelJob as handleSubagentCancelJobBase } from './subagent-cancel-job.js';
|
|
10
|
+
import { failSubagentRun as failSubagentRunBase } from './subagent-failure.js';
|
|
11
|
+
const execFileAsync = promisify(execFile);
|
|
12
|
+
async function runClaudeVersionDiagnostic(params) {
|
|
13
|
+
const start = Date.now();
|
|
14
|
+
const command = params.resolveClaudeCommand();
|
|
15
|
+
try {
|
|
16
|
+
const { stdout, stderr } = await execFileAsync(command, ['--version'], {
|
|
17
|
+
timeout: params.timeoutMs,
|
|
18
|
+
env: params.buildGatewayChildEnv(),
|
|
19
|
+
});
|
|
20
|
+
const durationMs = Date.now() - start;
|
|
21
|
+
const stdoutText = String(stdout);
|
|
22
|
+
const trimmed = stdoutText.trim();
|
|
23
|
+
return {
|
|
24
|
+
ok: true,
|
|
25
|
+
stdout: stdoutText,
|
|
26
|
+
stderr: String(stderr),
|
|
27
|
+
exitCode: 0,
|
|
28
|
+
durationMs,
|
|
29
|
+
version: trimmed || undefined,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
const durationMs = Date.now() - start;
|
|
34
|
+
const err = error;
|
|
35
|
+
return {
|
|
36
|
+
ok: false,
|
|
37
|
+
stdout: err.stdout ? String(err.stdout) : '',
|
|
38
|
+
stderr: err.stderr ? String(err.stderr) : '',
|
|
39
|
+
exitCode: typeof err.code === 'number' ? err.code : null,
|
|
40
|
+
durationMs,
|
|
41
|
+
error: err.message,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async function validateMachineControlState(params) {
|
|
46
|
+
const installFullControlEnabled = await params.refreshRuntimeInstallFullControl(params.config);
|
|
47
|
+
const gatewayControlState = await params.loadGatewayControlState(params.supabase, params.config);
|
|
48
|
+
if (!gatewayControlState) {
|
|
49
|
+
return {
|
|
50
|
+
ok: false,
|
|
51
|
+
message: 'Gateway control state unavailable',
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (!params.isHeartbeatFresh(gatewayControlState.last_seen_at)) {
|
|
55
|
+
return {
|
|
56
|
+
ok: false,
|
|
57
|
+
message: 'Gateway is offline or heartbeat is stale',
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const machineControl = deriveGatewayMachineControlState({
|
|
61
|
+
gatewayEnabled: gatewayControlState.full_control_enabled,
|
|
62
|
+
installEnabled: installFullControlEnabled,
|
|
63
|
+
serviceReady: gatewayControlState.capabilities
|
|
64
|
+
? isGatewayServiceReady(gatewayControlState.capabilities, 'machine_control')
|
|
65
|
+
: false,
|
|
66
|
+
});
|
|
67
|
+
if (!machineControl.effective) {
|
|
68
|
+
return {
|
|
69
|
+
ok: false,
|
|
70
|
+
message: machineControl.reason ?? 'Gateway machine control is unavailable',
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return { ok: true };
|
|
74
|
+
}
|
|
75
|
+
export function createGatewayJobHandlers(params) {
|
|
76
|
+
const claimJob = async (supabase, config, job) => {
|
|
77
|
+
return await claimGatewayJob(supabase, config, job, params.logError);
|
|
78
|
+
};
|
|
79
|
+
const findIdempotencyConflict = async (supabase, job) => {
|
|
80
|
+
return await findGatewayJobIdempotencyConflict(supabase, job, params.logError);
|
|
81
|
+
};
|
|
82
|
+
const completeJob = async (supabase, jobId, status, result, errorMessage) => {
|
|
83
|
+
await completeGatewayJob(supabase, jobId, status, result, errorMessage, params.logError);
|
|
84
|
+
};
|
|
85
|
+
const updateJobDebug = async (supabase, jobId, debug) => {
|
|
86
|
+
await updateGatewayJobDebug(supabase, jobId, debug, params.logError);
|
|
87
|
+
};
|
|
88
|
+
const handleDiagnosticJob = async () => {
|
|
89
|
+
const output = await runClaudeVersionDiagnostic({
|
|
90
|
+
resolveClaudeCommand: params.resolveClaudeCommand,
|
|
91
|
+
buildGatewayChildEnv: params.buildGatewayChildEnv,
|
|
92
|
+
timeoutMs: params.defaultClaudeTimeoutMs,
|
|
93
|
+
});
|
|
94
|
+
const command = params.resolveClaudeCommand();
|
|
95
|
+
if (!output.ok) {
|
|
96
|
+
return {
|
|
97
|
+
ok: false,
|
|
98
|
+
result: {
|
|
99
|
+
command: `${command} --version`,
|
|
100
|
+
stdout: output.stdout,
|
|
101
|
+
stderr: output.stderr,
|
|
102
|
+
exit_code: output.exitCode,
|
|
103
|
+
duration_ms: output.durationMs,
|
|
104
|
+
error: output.error,
|
|
105
|
+
},
|
|
106
|
+
error: output.error || 'Claude CLI check failed',
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
ok: true,
|
|
111
|
+
result: {
|
|
112
|
+
command: `${command} --version`,
|
|
113
|
+
stdout: output.stdout,
|
|
114
|
+
stderr: output.stderr,
|
|
115
|
+
exit_code: output.exitCode,
|
|
116
|
+
duration_ms: output.durationMs,
|
|
117
|
+
version: output.version,
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
const handleSubagentCancelJob = async (supabase, config, job) => {
|
|
122
|
+
return await handleSubagentCancelJobBase({
|
|
123
|
+
supabase,
|
|
124
|
+
config,
|
|
125
|
+
job,
|
|
126
|
+
requestSubagentCancel: params.requestSubagentCancel,
|
|
127
|
+
logError: params.logError,
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
const handleSubagentRunJob = async (supabase, config, job) => {
|
|
131
|
+
return await handleGatewaySubagentRunJob({
|
|
132
|
+
supabase,
|
|
133
|
+
config,
|
|
134
|
+
job,
|
|
135
|
+
activeSubagentRuns: params.activeSubagentRuns,
|
|
136
|
+
providerCapabilities: params.getProviderCapabilities(),
|
|
137
|
+
claudeSupport: params.getClaudeSupport(),
|
|
138
|
+
defaultTimeoutMs: params.defaultSubagentTimeoutMs,
|
|
139
|
+
cancelKillTimeoutMs: params.subagentCancelKillTimeoutMs,
|
|
140
|
+
refreshRuntimeInstallFullControl: params.refreshRuntimeInstallFullControl,
|
|
141
|
+
loadGatewayControlState: params.loadGatewayControlState,
|
|
142
|
+
isHeartbeatFresh: params.isHeartbeatFresh,
|
|
143
|
+
resolveClaudeCommand: params.resolveClaudeCommand,
|
|
144
|
+
resolveCodexCommand: params.resolveCodexCommand,
|
|
145
|
+
resolveGeminiCommand: params.resolveGeminiCommand,
|
|
146
|
+
getNextRunSequence: params.getNextRunSequence,
|
|
147
|
+
getNextSubagentRunEventSequence: params.getNextSubagentRunEventSequence,
|
|
148
|
+
insertSubagentRunEvent: params.insertSubagentRunEvent,
|
|
149
|
+
resolvePendingCancel: params.resolvePendingCancel,
|
|
150
|
+
consumePendingCancelFromQueue: params.consumePendingCancelFromQueue,
|
|
151
|
+
clearPendingCancel: params.clearPendingCancel,
|
|
152
|
+
resolveSubagentWorkdirRoot: params.resolveSubagentWorkdirRoot,
|
|
153
|
+
runCommand: params.runCommand,
|
|
154
|
+
runStreamingCommand: params.runStreamingCommand,
|
|
155
|
+
updateRuntimeProviderHealth: params.updateRuntimeProviderHealth,
|
|
156
|
+
requestChildTermination: params.requestChildTermination,
|
|
157
|
+
logInfo: params.logInfo,
|
|
158
|
+
logError: params.logError,
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
const handleModelRunJob = async (supabase, job) => {
|
|
162
|
+
return await handleGatewayModelRunJob({
|
|
163
|
+
job,
|
|
164
|
+
defaultTimeoutMs: params.defaultModelRunTimeoutMs,
|
|
165
|
+
processKillGraceMs: params.processKillGraceMs,
|
|
166
|
+
activeModelRuns: params.activeModelRuns,
|
|
167
|
+
runCommand: params.runCommand,
|
|
168
|
+
updateJobDebug: (jobId, debug) => updateJobDebug(supabase, jobId, debug),
|
|
169
|
+
updateProviderHealth: (providerId, status, errorMessage) => params.updateRuntimeProviderHealth({
|
|
170
|
+
supabase,
|
|
171
|
+
providerId,
|
|
172
|
+
status,
|
|
173
|
+
error: errorMessage ?? null,
|
|
174
|
+
context: 'model_run',
|
|
175
|
+
jobId: job.id,
|
|
176
|
+
}),
|
|
177
|
+
requestChildTermination: params.requestChildTermination,
|
|
178
|
+
});
|
|
179
|
+
};
|
|
180
|
+
const isGatewayJobCancelled = async (supabase, jobId) => {
|
|
181
|
+
const status = await loadGatewayJobStatus(supabase, jobId, params.logError);
|
|
182
|
+
return status === 'cancelled';
|
|
183
|
+
};
|
|
184
|
+
const handleShellExecJob = async (supabase, config, job) => {
|
|
185
|
+
return await handleGatewayShellExecJob({
|
|
186
|
+
supabase,
|
|
187
|
+
config,
|
|
188
|
+
job,
|
|
189
|
+
defaultTimeoutMs: params.defaultRemoteShellExecTimeoutMs,
|
|
190
|
+
activeShellExecRuns: params.activeShellExecRuns,
|
|
191
|
+
runCommand: params.runCommand,
|
|
192
|
+
isJobCancelled: (jobId) => isGatewayJobCancelled(supabase, jobId),
|
|
193
|
+
validateMachineControlState: () => validateMachineControlState({
|
|
194
|
+
supabase,
|
|
195
|
+
config,
|
|
196
|
+
refreshRuntimeInstallFullControl: params.refreshRuntimeInstallFullControl,
|
|
197
|
+
loadGatewayControlState: params.loadGatewayControlState,
|
|
198
|
+
isHeartbeatFresh: params.isHeartbeatFresh,
|
|
199
|
+
}),
|
|
200
|
+
processKillGraceMs: params.processKillGraceMs,
|
|
201
|
+
requestChildTermination: params.requestChildTermination,
|
|
202
|
+
logError: params.logError,
|
|
203
|
+
});
|
|
204
|
+
};
|
|
205
|
+
const failSubagentRun = async (supabase, job, errorMessage) => {
|
|
206
|
+
await failSubagentRunBase({
|
|
207
|
+
supabase,
|
|
208
|
+
job,
|
|
209
|
+
errorMessage,
|
|
210
|
+
logError: params.logError,
|
|
211
|
+
});
|
|
212
|
+
};
|
|
213
|
+
const processJob = async (supabase, config, job) => {
|
|
214
|
+
await processGatewayJob(job, {
|
|
215
|
+
claimJob: (nextJob) => claimJob(supabase, config, nextJob),
|
|
216
|
+
findIdempotencyConflict: (claimedJob) => findIdempotencyConflict(supabase, claimedJob),
|
|
217
|
+
completeJob: (jobId, status, result, errorMessage) => completeJob(supabase, jobId, status, result, errorMessage),
|
|
218
|
+
failSubagentRun: (claimedJob, errorMessage) => failSubagentRun(supabase, claimedJob, errorMessage),
|
|
219
|
+
handleDiagnosticJob,
|
|
220
|
+
handleSubagentRunJob: (claimedJob) => handleSubagentRunJob(supabase, config, claimedJob),
|
|
221
|
+
handleModelRunJob: (claimedJob) => handleModelRunJob(supabase, claimedJob),
|
|
222
|
+
handleSubagentCancelJob: (claimedJob) => handleSubagentCancelJob(supabase, config, claimedJob),
|
|
223
|
+
handleShellExecJob: (claimedJob) => handleShellExecJob(supabase, config, claimedJob),
|
|
224
|
+
logInfo: params.logInfo,
|
|
225
|
+
});
|
|
226
|
+
};
|
|
227
|
+
return {
|
|
228
|
+
claimJob,
|
|
229
|
+
processJob,
|
|
230
|
+
handleSubagentCancelJob,
|
|
231
|
+
completeJob,
|
|
232
|
+
failSubagentRun,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=gateway-job-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-job-handlers.js","sourceRoot":"","sources":["../src/gateway-job-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type GatewayJobRow, type GatewayJobStatus } from './gateway-jobs.js';
|
|
2
|
+
export interface GatewayJobHandlerResult {
|
|
3
|
+
ok: boolean;
|
|
4
|
+
result: Record<string, unknown>;
|
|
5
|
+
error?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface GatewaySubagentRunHandlerResult extends GatewayJobHandlerResult {
|
|
8
|
+
jobStatus?: GatewayJobStatus;
|
|
9
|
+
skipSubagentFailure?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface GatewayJobProcessorDependencies {
|
|
12
|
+
claimJob: (job: GatewayJobRow) => Promise<GatewayJobRow | null>;
|
|
13
|
+
findIdempotencyConflict: (job: GatewayJobRow) => Promise<GatewayJobRow | null>;
|
|
14
|
+
completeJob: (jobId: string, status: GatewayJobStatus, result: Record<string, unknown> | null, errorMessage?: string) => Promise<void>;
|
|
15
|
+
failSubagentRun: (job: GatewayJobRow, errorMessage: string) => Promise<void>;
|
|
16
|
+
handleDiagnosticJob: () => Promise<GatewayJobHandlerResult>;
|
|
17
|
+
handleSubagentRunJob: (job: GatewayJobRow) => Promise<GatewaySubagentRunHandlerResult>;
|
|
18
|
+
handleModelRunJob: (job: GatewayJobRow) => Promise<GatewayJobHandlerResult>;
|
|
19
|
+
handleSubagentCancelJob: (job: GatewayJobRow) => Promise<GatewayJobHandlerResult>;
|
|
20
|
+
handleShellExecJob: (job: GatewayJobRow) => Promise<GatewayJobHandlerResult>;
|
|
21
|
+
logInfo: (message: string, data?: Record<string, unknown>) => void;
|
|
22
|
+
}
|
|
23
|
+
export declare function processGatewayJob(job: GatewayJobRow, dependencies: GatewayJobProcessorDependencies): Promise<void>;
|
|
24
|
+
//# sourceMappingURL=gateway-job-processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-job-processor.d.ts","sourceRoot":"","sources":["../src/gateway-job-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,+BAAgC,SAAQ,uBAAuB;IAC9E,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAC/D,uBAAuB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAC9E,WAAW,EAAE,CACX,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,eAAe,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5E,mBAAmB,EAAE,MAAM,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAC3D,oBAAoB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,+BAA+B,CAAC,CAAA;IACtF,iBAAiB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAC3E,uBAAuB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACjF,kBAAkB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAC5E,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;CACnE;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,+BAA+B,GAC5C,OAAO,CAAC,IAAI,CAAC,CAyGf"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { describeGatewayJob, } from './gateway-jobs.js';
|
|
2
|
+
export async function processGatewayJob(job, dependencies) {
|
|
3
|
+
const claimed = await dependencies.claimJob(job);
|
|
4
|
+
if (!claimed) {
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
const idempotencyConflict = await dependencies.findIdempotencyConflict(claimed);
|
|
8
|
+
if (idempotencyConflict) {
|
|
9
|
+
const conflictMessage = 'Duplicate gateway job idempotency key; skipping execution';
|
|
10
|
+
dependencies.logInfo('Skipping duplicate gateway job', {
|
|
11
|
+
jobId: claimed.id,
|
|
12
|
+
conflict_job_id: idempotencyConflict.id,
|
|
13
|
+
idempotency_key: claimed.idempotency_key ?? null,
|
|
14
|
+
attempt: claimed.attempt ?? 1,
|
|
15
|
+
});
|
|
16
|
+
await dependencies.completeJob(claimed.id, 'cancelled', {
|
|
17
|
+
message: conflictMessage,
|
|
18
|
+
idempotency_key: claimed.idempotency_key,
|
|
19
|
+
attempt: claimed.attempt,
|
|
20
|
+
}, conflictMessage);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const jobDetails = describeGatewayJob(claimed);
|
|
24
|
+
dependencies.logInfo('Processing gateway job', {
|
|
25
|
+
jobId: claimed.id,
|
|
26
|
+
jobType: claimed.job_type,
|
|
27
|
+
jobKind: jobDetails.job_kind,
|
|
28
|
+
provider: jobDetails.provider ?? undefined,
|
|
29
|
+
model: jobDetails.model ?? undefined,
|
|
30
|
+
subagentType: jobDetails.subagent_type ?? undefined,
|
|
31
|
+
});
|
|
32
|
+
if (claimed.job_type === 'diagnostic') {
|
|
33
|
+
const diagnostic = await dependencies.handleDiagnosticJob();
|
|
34
|
+
if (diagnostic.ok) {
|
|
35
|
+
await dependencies.completeJob(claimed.id, 'completed', diagnostic.result);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
await dependencies.completeJob(claimed.id, 'failed', diagnostic.result, diagnostic.error);
|
|
39
|
+
}
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (claimed.job_type === 'subagent_run') {
|
|
43
|
+
const result = await dependencies.handleSubagentRunJob(claimed);
|
|
44
|
+
if (result.ok) {
|
|
45
|
+
await dependencies.completeJob(claimed.id, 'completed', result.result);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
await dependencies.completeJob(claimed.id, result.jobStatus ?? 'failed', result.result, result.error);
|
|
49
|
+
if (!result.skipSubagentFailure) {
|
|
50
|
+
await dependencies.failSubagentRun(claimed, result.error ?? 'Subagent run failed');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (claimed.job_type === 'model_run') {
|
|
56
|
+
const result = await dependencies.handleModelRunJob(claimed);
|
|
57
|
+
if (result.ok) {
|
|
58
|
+
await dependencies.completeJob(claimed.id, 'completed', result.result);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
await dependencies.completeJob(claimed.id, 'failed', result.result, result.error);
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (claimed.job_type === 'subagent_cancel') {
|
|
66
|
+
const result = await dependencies.handleSubagentCancelJob(claimed);
|
|
67
|
+
if (result.ok) {
|
|
68
|
+
await dependencies.completeJob(claimed.id, 'completed', result.result);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
await dependencies.completeJob(claimed.id, 'failed', result.result, result.error);
|
|
72
|
+
}
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (claimed.job_type === 'shell_exec') {
|
|
76
|
+
const result = await dependencies.handleShellExecJob(claimed);
|
|
77
|
+
if (result.ok) {
|
|
78
|
+
await dependencies.completeJob(claimed.id, 'completed', result.result);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
await dependencies.completeJob(claimed.id, 'failed', result.result, result.error);
|
|
82
|
+
}
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
await dependencies.completeJob(claimed.id, 'failed', {
|
|
86
|
+
message: 'Unsupported job type',
|
|
87
|
+
job_type: claimed.job_type,
|
|
88
|
+
}, `Unsupported job type: ${claimed.job_type}`);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=gateway-job-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-job-processor.js","sourceRoot":"","sources":["../src/gateway-job-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SupabaseClient } from '@supabase/supabase-js';
|
|
2
|
+
import type { Database } from './database.types.js';
|
|
3
|
+
import type { GatewayConfig } from './gateway-state.js';
|
|
4
|
+
import { type GatewayJobRow, type GatewayJobStatus } from './gateway-jobs.js';
|
|
5
|
+
export type GatewayJobStoreClient = SupabaseClient<Database>;
|
|
6
|
+
export type GatewayJobStoreLogger = (message: string, data?: Record<string, unknown>) => void;
|
|
7
|
+
export declare function coerceGatewayJobStatus(value: unknown): GatewayJobStatus | null;
|
|
8
|
+
export declare function claimGatewayJob(supabase: GatewayJobStoreClient, config: GatewayConfig, job: GatewayJobRow, logError?: GatewayJobStoreLogger): Promise<GatewayJobRow | null>;
|
|
9
|
+
export declare function findGatewayJobIdempotencyConflict(supabase: GatewayJobStoreClient, job: GatewayJobRow, logError?: GatewayJobStoreLogger): Promise<GatewayJobRow | null>;
|
|
10
|
+
export declare function completeGatewayJob(supabase: GatewayJobStoreClient, jobId: string, status: GatewayJobStatus, result: Record<string, unknown> | null, errorMessage?: string, logError?: GatewayJobStoreLogger): Promise<void>;
|
|
11
|
+
export declare function updateGatewayJobDebug(supabase: GatewayJobStoreClient, jobId: string, debug: Record<string, unknown>, logError?: GatewayJobStoreLogger): Promise<void>;
|
|
12
|
+
export declare function loadGatewayJobStatus(supabase: GatewayJobStoreClient, jobId: string, logError?: GatewayJobStoreLogger): Promise<GatewayJobStatus | null>;
|
|
13
|
+
//# sourceMappingURL=gateway-job-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-job-store.d.ts","sourceRoot":"","sources":["../src/gateway-job-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;AAC5D,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;AAI7F,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CAY9E;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,aAAa,EAClB,QAAQ,GAAE,qBAAkC,GAC3C,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA6B/B;AAED,wBAAsB,iCAAiC,CACrD,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,EAAE,aAAa,EAClB,QAAQ,GAAE,qBAAkC,GAC3C,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAqB/B;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,GAAE,qBAAkC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,QAAQ,GAAE,qBAAkC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,qBAAkC,GAC3C,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAoBlC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { sanitizeGatewayDebugPayload } from './debug-redaction.js';
|
|
2
|
+
import { asJson } from './gateway-run-helpers.js';
|
|
3
|
+
import { isJobTargeted, } from './gateway-jobs.js';
|
|
4
|
+
const noopLogger = () => { };
|
|
5
|
+
export function coerceGatewayJobStatus(value) {
|
|
6
|
+
if (value === 'queued' ||
|
|
7
|
+
value === 'running' ||
|
|
8
|
+
value === 'completed' ||
|
|
9
|
+
value === 'failed' ||
|
|
10
|
+
value === 'cancelled') {
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
export async function claimGatewayJob(supabase, config, job, logError = noopLogger) {
|
|
16
|
+
if (!isJobTargeted(job, config.gatewayId)) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const { data, error } = await supabase
|
|
20
|
+
.from('gateway_jobs')
|
|
21
|
+
.update({
|
|
22
|
+
status: 'running',
|
|
23
|
+
gateway_id: config.gatewayId,
|
|
24
|
+
started_at: new Date().toISOString(),
|
|
25
|
+
})
|
|
26
|
+
.eq('id', job.id)
|
|
27
|
+
.eq('team_id', config.teamId)
|
|
28
|
+
.eq('status', 'queued')
|
|
29
|
+
.eq('gateway_id', config.gatewayId)
|
|
30
|
+
.select('*')
|
|
31
|
+
.maybeSingle();
|
|
32
|
+
if (error) {
|
|
33
|
+
logError('Failed to claim gateway job', { error: error.message, jobId: job.id });
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
if (!data) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
return data;
|
|
40
|
+
}
|
|
41
|
+
export async function findGatewayJobIdempotencyConflict(supabase, job, logError = noopLogger) {
|
|
42
|
+
if (!job.idempotency_key)
|
|
43
|
+
return null;
|
|
44
|
+
const attempt = typeof job.attempt === 'number' && Number.isFinite(job.attempt) ? job.attempt : 1;
|
|
45
|
+
const { data, error } = await supabase
|
|
46
|
+
.from('gateway_jobs')
|
|
47
|
+
.select('id, status, result, error')
|
|
48
|
+
.eq('team_id', job.team_id)
|
|
49
|
+
.eq('idempotency_key', job.idempotency_key)
|
|
50
|
+
.eq('attempt', attempt)
|
|
51
|
+
.in('status', ['running', 'completed'])
|
|
52
|
+
.neq('id', job.id)
|
|
53
|
+
.order('created_at', { ascending: true })
|
|
54
|
+
.limit(1)
|
|
55
|
+
.maybeSingle();
|
|
56
|
+
if (error) {
|
|
57
|
+
logError('Failed to check gateway job idempotency', { error: error.message, jobId: job.id });
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return data ? data : null;
|
|
61
|
+
}
|
|
62
|
+
export async function completeGatewayJob(supabase, jobId, status, result, errorMessage, logError = noopLogger) {
|
|
63
|
+
const updates = {
|
|
64
|
+
status,
|
|
65
|
+
result: result ? asJson(result) : null,
|
|
66
|
+
error: errorMessage || null,
|
|
67
|
+
completed_at: new Date().toISOString(),
|
|
68
|
+
};
|
|
69
|
+
const { error } = await supabase
|
|
70
|
+
.from('gateway_jobs')
|
|
71
|
+
.update(updates)
|
|
72
|
+
.eq('id', jobId)
|
|
73
|
+
.eq('status', 'running');
|
|
74
|
+
if (error) {
|
|
75
|
+
logError('Failed to update gateway job result', { error: error.message, jobId });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
export async function updateGatewayJobDebug(supabase, jobId, debug, logError = noopLogger) {
|
|
79
|
+
const sanitizedDebug = sanitizeGatewayDebugPayload(debug);
|
|
80
|
+
const { error } = await supabase
|
|
81
|
+
.from('gateway_jobs')
|
|
82
|
+
.update({ debug: asJson(sanitizedDebug) })
|
|
83
|
+
.eq('id', jobId);
|
|
84
|
+
if (error) {
|
|
85
|
+
logError('Failed to update gateway job debug info', { error: error.message, jobId });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
export async function loadGatewayJobStatus(supabase, jobId, logError = noopLogger) {
|
|
89
|
+
const { data, error } = await supabase
|
|
90
|
+
.from('gateway_jobs')
|
|
91
|
+
.select('status')
|
|
92
|
+
.eq('id', jobId)
|
|
93
|
+
.maybeSingle();
|
|
94
|
+
if (error) {
|
|
95
|
+
logError('Failed to fetch gateway job status', {
|
|
96
|
+
jobId,
|
|
97
|
+
error: error.message,
|
|
98
|
+
});
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
if (!data || typeof data.status !== 'string') {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
return coerceGatewayJobStatus(data.status);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=gateway-job-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-job-store.js","sourceRoot":"","sources":["../src/gateway-job-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type GatewayJobStatus = 'queued' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
2
|
+
export interface GatewayJobRow {
|
|
3
|
+
id: string;
|
|
4
|
+
team_id: string;
|
|
5
|
+
gateway_id: string | null;
|
|
6
|
+
status: GatewayJobStatus;
|
|
7
|
+
job_type: string;
|
|
8
|
+
payload: Record<string, unknown>;
|
|
9
|
+
result: Record<string, unknown> | null;
|
|
10
|
+
error: string | null;
|
|
11
|
+
idempotency_key?: string | null;
|
|
12
|
+
attempt?: number | null;
|
|
13
|
+
retry_of_job_id?: string | null;
|
|
14
|
+
created_at: string;
|
|
15
|
+
updated_at: string;
|
|
16
|
+
completed_at: string | null;
|
|
17
|
+
}
|
|
18
|
+
export type GatewayJobDescriptionInput = {
|
|
19
|
+
job_type: string;
|
|
20
|
+
payload?: Record<string, unknown> | null;
|
|
21
|
+
};
|
|
22
|
+
export declare function inferProviderFromSubagentType(subagentType: string | null | undefined): string | null;
|
|
23
|
+
export declare function describeGatewayJob(job: GatewayJobDescriptionInput): {
|
|
24
|
+
job_kind: string;
|
|
25
|
+
provider?: string | null;
|
|
26
|
+
model?: string | null;
|
|
27
|
+
subagent_type?: string | null;
|
|
28
|
+
};
|
|
29
|
+
export declare function isJobTargeted(job: GatewayJobRow, gatewayId: string): boolean;
|
|
30
|
+
export declare function resolveJobSubagentId(job: GatewayJobRow): string | null;
|
|
31
|
+
//# sourceMappingURL=gateway-jobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-jobs.d.ts","sourceRoot":"","sources":["../src/gateway-jobs.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAA;AAE1F,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,gBAAgB,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACtC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CACzC,CAAA;AAED,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,MAAM,GAAG,IAAI,CAOf;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,0BAA0B,GAAG;IACnE,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B,CA6BA;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAQtE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { inferGatewayProviderFromModel } from './cli-providers/registry.js';
|
|
2
|
+
export function inferProviderFromSubagentType(subagentType) {
|
|
3
|
+
if (!subagentType)
|
|
4
|
+
return null;
|
|
5
|
+
const lowered = subagentType.toLowerCase();
|
|
6
|
+
if (lowered.includes('claude'))
|
|
7
|
+
return 'claude_code';
|
|
8
|
+
if (lowered.includes('codex'))
|
|
9
|
+
return 'codex';
|
|
10
|
+
if (lowered.includes('gemini'))
|
|
11
|
+
return 'gemini';
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
export function describeGatewayJob(job) {
|
|
15
|
+
if (job.job_type === 'model_run') {
|
|
16
|
+
const payload = job.payload ?? {};
|
|
17
|
+
const model = typeof payload.model === 'string' ? payload.model : null;
|
|
18
|
+
const provider = typeof payload.provider === 'string'
|
|
19
|
+
? payload.provider
|
|
20
|
+
: model
|
|
21
|
+
? inferGatewayProviderFromModel(model)
|
|
22
|
+
: null;
|
|
23
|
+
return { job_kind: 'cycle', provider, model };
|
|
24
|
+
}
|
|
25
|
+
if (job.job_type === 'subagent_run') {
|
|
26
|
+
const payload = job.payload ?? {};
|
|
27
|
+
const subagentType = typeof payload.subagent_type === 'string' ? payload.subagent_type : null;
|
|
28
|
+
const provider = inferProviderFromSubagentType(subagentType);
|
|
29
|
+
return { job_kind: 'subagent', provider, subagent_type: subagentType };
|
|
30
|
+
}
|
|
31
|
+
if (job.job_type === 'subagent_cancel') {
|
|
32
|
+
return { job_kind: 'subagent_cancel' };
|
|
33
|
+
}
|
|
34
|
+
if (job.job_type === 'shell_exec') {
|
|
35
|
+
return { job_kind: 'shell_exec' };
|
|
36
|
+
}
|
|
37
|
+
return { job_kind: job.job_type };
|
|
38
|
+
}
|
|
39
|
+
export function isJobTargeted(job, gatewayId) {
|
|
40
|
+
return job.gateway_id === gatewayId;
|
|
41
|
+
}
|
|
42
|
+
export function resolveJobSubagentId(job) {
|
|
43
|
+
if (job.job_type !== 'subagent_run')
|
|
44
|
+
return null;
|
|
45
|
+
const payload = job.payload ?? {};
|
|
46
|
+
return typeof payload.subagent_id === 'string'
|
|
47
|
+
? payload.subagent_id
|
|
48
|
+
: typeof payload.subagentId === 'string'
|
|
49
|
+
? payload.subagentId
|
|
50
|
+
: null;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=gateway-jobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-jobs.js","sourceRoot":"","sources":["../src/gateway-jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AA0B3E,MAAM,UAAU,6BAA6B,CAC3C,YAAuC;IAEvC,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAA;IAC9B,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,CAAA;IAC1C,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,aAAa,CAAA;IACpD,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAA;IAC7C,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC/C,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAA+B;IAMhE,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAA;QACjC,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QACtE,MAAM,QAAQ,GACZ,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;YAClC,CAAC,CAAC,OAAO,CAAC,QAAQ;YAClB,CAAC,CAAC,KAAK;gBACL,CAAC,CAAC,6BAA6B,CAAC,KAAK,CAAC;gBACtC,CAAC,CAAC,IAAI,CAAA;QACZ,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;IAC/C,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAA;QACjC,MAAM,YAAY,GAAG,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAA;QAC7F,MAAM,QAAQ,GAAG,6BAA6B,CAAC,YAAY,CAAC,CAAA;QAC5D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA;IACxE,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,iBAAiB,EAAE,CAAC;QACvC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAA;IACxC,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAClC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;IACnC,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAkB,EAAE,SAAiB;IACjE,OAAO,GAAG,CAAC,UAAU,KAAK,SAAS,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAkB;IACrD,IAAI,GAAG,CAAC,QAAQ,KAAK,cAAc;QAAE,OAAO,IAAI,CAAA;IAChD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAA;IACjC,OAAO,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ;QAC5C,CAAC,CAAC,OAAO,CAAC,WAAW;QACrB,CAAC,CAAC,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;YACtC,CAAC,CAAC,OAAO,CAAC,UAAU;YACpB,CAAC,CAAC,IAAI,CAAA;AACZ,CAAC"}
|