@action-llama/action-llama 0.27.5 → 0.29.0
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/agents/credential-setup.d.ts +0 -1
- package/dist/agents/credential-setup.d.ts.map +1 -1
- package/dist/agents/credential-setup.js +2 -23
- package/dist/agents/credential-setup.js.map +1 -1
- package/dist/agents/prompt.d.ts.map +1 -1
- package/dist/agents/prompt.js +12 -50
- package/dist/agents/prompt.js.map +1 -1
- package/dist/agents/scheduler-tools.d.ts +47 -0
- package/dist/agents/scheduler-tools.d.ts.map +1 -0
- package/dist/agents/scheduler-tools.js +276 -0
- package/dist/agents/scheduler-tools.js.map +1 -0
- package/dist/agents/status-reporter.d.ts +1 -1
- package/dist/agents/status-reporter.js +1 -1
- package/dist/agents/transport-runner.d.ts +123 -0
- package/dist/agents/transport-runner.d.ts.map +1 -0
- package/dist/agents/transport-runner.js +791 -0
- package/dist/agents/transport-runner.js.map +1 -0
- package/dist/build-info.json +1 -1
- package/dist/cli/commands/add.d.ts +1 -0
- package/dist/cli/commands/add.d.ts.map +1 -1
- package/dist/cli/commands/add.js +24 -9
- package/dist/cli/commands/add.js.map +1 -1
- package/dist/cli/commands/agent.d.ts +0 -3
- package/dist/cli/commands/agent.d.ts.map +1 -1
- package/dist/cli/commands/agent.js +3 -67
- package/dist/cli/commands/agent.js.map +1 -1
- package/dist/cli/commands/logs.d.ts.map +1 -1
- package/dist/cli/commands/logs.js +51 -339
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/main.js +1 -30
- package/dist/cli/main.js.map +1 -1
- package/dist/control/routes/dashboard-api.d.ts.map +1 -1
- package/dist/control/routes/dashboard-api.js +3 -2
- package/dist/control/routes/dashboard-api.js.map +1 -1
- package/dist/control/routes/log-helpers.d.ts +4 -4
- package/dist/control/routes/log-helpers.d.ts.map +1 -1
- package/dist/control/routes/log-helpers.js +12 -7
- package/dist/control/routes/log-helpers.js.map +1 -1
- package/dist/control/routes/logs.d.ts.map +1 -1
- package/dist/control/routes/logs.js +10 -10
- package/dist/control/routes/logs.js.map +1 -1
- package/dist/control/session-store.js +1 -1
- package/dist/control/session-store.js.map +1 -1
- package/dist/docker/image.d.ts +26 -12
- package/dist/docker/image.d.ts.map +1 -1
- package/dist/docker/image.js +80 -88
- package/dist/docker/image.js.map +1 -1
- package/dist/docker/local-runtime.js +1 -1
- package/dist/docker/local-runtime.js.map +1 -1
- package/dist/docker/providers/index.d.ts +0 -4
- package/dist/docker/providers/index.d.ts.map +1 -1
- package/dist/docker/providers/index.js +0 -38
- package/dist/docker/providers/index.js.map +1 -1
- package/dist/docker/ssh-docker-runtime.js +1 -1
- package/dist/docker/ssh-docker-runtime.js.map +1 -1
- package/dist/execution/execution.d.ts +4 -2
- package/dist/execution/execution.d.ts.map +1 -1
- package/dist/execution/execution.js +14 -9
- package/dist/execution/execution.js.map +1 -1
- package/dist/execution/index.d.ts +1 -11
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/index.js +1 -8
- package/dist/execution/index.js.map +1 -1
- package/dist/execution/lifecycle/agent-lifecycle.d.ts +7 -0
- package/dist/execution/lifecycle/agent-lifecycle.d.ts.map +1 -1
- package/dist/execution/lifecycle/agent-lifecycle.js +65 -5
- package/dist/execution/lifecycle/agent-lifecycle.js.map +1 -1
- package/dist/execution/lifecycle/index.d.ts +2 -2
- package/dist/execution/lifecycle/index.d.ts.map +1 -1
- package/dist/execution/lifecycle/index.js +4 -2
- package/dist/execution/lifecycle/index.js.map +1 -1
- package/dist/execution/lifecycle/instance-lifecycle.d.ts +24 -0
- package/dist/execution/lifecycle/instance-lifecycle.d.ts.map +1 -1
- package/dist/execution/lifecycle/instance-lifecycle.js +41 -3
- package/dist/execution/lifecycle/instance-lifecycle.js.map +1 -1
- package/dist/execution/runner-setup.d.ts +9 -11
- package/dist/execution/runner-setup.d.ts.map +1 -1
- package/dist/execution/runner-setup.js +19 -14
- package/dist/execution/runner-setup.js.map +1 -1
- package/dist/execution/runtime-factory.d.ts +1 -15
- package/dist/execution/runtime-factory.d.ts.map +1 -1
- package/dist/execution/runtime-factory.js +1 -18
- package/dist/execution/runtime-factory.js.map +1 -1
- package/dist/execution/waiting-registry.d.ts +84 -0
- package/dist/execution/waiting-registry.d.ts.map +1 -0
- package/dist/execution/waiting-registry.js +185 -0
- package/dist/execution/waiting-registry.js.map +1 -0
- package/dist/frontend/assets/index-Bij4b7-g.js +16 -0
- package/dist/frontend/assets/index-Bij4b7-g.js.map +1 -0
- package/dist/frontend/assets/index-D11bfFWQ.css +2 -0
- package/dist/frontend/index.html +2 -2
- package/dist/gateway/index.d.ts +1 -1
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +6 -47
- package/dist/gateway/index.js.map +1 -1
- package/dist/gateway/routes/system.d.ts +1 -4
- package/dist/gateway/routes/system.d.ts.map +1 -1
- package/dist/gateway/routes/system.js +3 -8
- package/dist/gateway/routes/system.js.map +1 -1
- package/dist/gateway/stores.d.ts +0 -4
- package/dist/gateway/stores.d.ts.map +1 -1
- package/dist/gateway/stores.js +2 -10
- package/dist/gateway/stores.js.map +1 -1
- package/dist/gateway/types.d.ts +0 -13
- package/dist/gateway/types.d.ts.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +11 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/scheduler/gateway-setup.d.ts +0 -2
- package/dist/scheduler/gateway-setup.d.ts.map +1 -1
- package/dist/scheduler/gateway-setup.js +2 -11
- package/dist/scheduler/gateway-setup.js.map +1 -1
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +113 -55
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/types.d.ts +1 -1
- package/dist/scheduler/types.d.ts.map +1 -1
- package/dist/scheduler/validation.js +1 -1
- package/dist/scheduler/validation.js.map +1 -1
- package/dist/scheduler/watcher.d.ts +2 -8
- package/dist/scheduler/watcher.d.ts.map +1 -1
- package/dist/scheduler/watcher.js +7 -104
- package/dist/scheduler/watcher.js.map +1 -1
- package/dist/shared/config/load-agent.js +2 -2
- package/dist/shared/config/load-agent.js.map +1 -1
- package/dist/shared/config/load-project.js +2 -2
- package/dist/shared/config/load-project.js.map +1 -1
- package/dist/shared/config/types.d.ts +12 -2
- package/dist/shared/config/types.d.ts.map +1 -1
- package/dist/shared/constants.d.ts +3 -1
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +4 -2
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/credential-refs.js +1 -1
- package/dist/shared/credential-refs.js.map +1 -1
- package/dist/shared/paths.d.ts.map +1 -1
- package/dist/shared/paths.js +2 -2
- package/dist/shared/paths.js.map +1 -1
- package/dist/shared/validation.js +1 -1
- package/dist/shared/validation.js.map +1 -1
- package/dist/transport/docker-exec.d.ts +41 -0
- package/dist/transport/docker-exec.d.ts.map +1 -0
- package/dist/transport/docker-exec.js +243 -0
- package/dist/transport/docker-exec.js.map +1 -0
- package/dist/transport/host-user.d.ts +37 -0
- package/dist/transport/host-user.d.ts.map +1 -0
- package/dist/transport/host-user.js +232 -0
- package/dist/transport/host-user.js.map +1 -0
- package/dist/transport/index.d.ts +8 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +7 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/memory.d.ts +36 -0
- package/dist/transport/memory.d.ts.map +1 -0
- package/dist/transport/memory.js +113 -0
- package/dist/transport/memory.js.map +1 -0
- package/dist/transport/operations.d.ts +68 -0
- package/dist/transport/operations.d.ts.map +1 -0
- package/dist/transport/operations.js +164 -0
- package/dist/transport/operations.js.map +1 -0
- package/dist/transport/ssh.d.ts +43 -0
- package/dist/transport/ssh.d.ts.map +1 -0
- package/dist/transport/ssh.js +225 -0
- package/dist/transport/ssh.js.map +1 -0
- package/dist/transport/transport.d.ts +61 -0
- package/dist/transport/transport.d.ts.map +1 -0
- package/dist/transport/transport.js +29 -0
- package/dist/transport/transport.js.map +1 -0
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +5 -4
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/status-tracker.d.ts +11 -2
- package/dist/tui/status-tracker.d.ts.map +1 -1
- package/dist/tui/status-tracker.js +44 -0
- package/dist/tui/status-tracker.js.map +1 -1
- package/package.json +7 -2
- package/dist/agents/bash-prefix.d.ts +0 -9
- package/dist/agents/bash-prefix.d.ts.map +0 -1
- package/dist/agents/bash-prefix.js +0 -25
- package/dist/agents/bash-prefix.js.map +0 -1
- package/dist/agents/container-entry.d.ts +0 -31
- package/dist/agents/container-entry.d.ts.map +0 -1
- package/dist/agents/container-entry.js +0 -302
- package/dist/agents/container-entry.js.map +0 -1
- package/dist/agents/container-runner.d.ts +0 -59
- package/dist/agents/container-runner.d.ts.map +0 -1
- package/dist/agents/container-runner.js +0 -472
- package/dist/agents/container-runner.js.map +0 -1
- package/dist/agents/harness/claude-cli-harness.d.ts +0 -15
- package/dist/agents/harness/claude-cli-harness.d.ts.map +0 -1
- package/dist/agents/harness/claude-cli-harness.js +0 -260
- package/dist/agents/harness/claude-cli-harness.js.map +0 -1
- package/dist/agents/harness/consumer.d.ts +0 -31
- package/dist/agents/harness/consumer.d.ts.map +0 -1
- package/dist/agents/harness/consumer.js +0 -165
- package/dist/agents/harness/consumer.js.map +0 -1
- package/dist/agents/harness/factory.d.ts +0 -9
- package/dist/agents/harness/factory.d.ts.map +0 -1
- package/dist/agents/harness/factory.js +0 -25
- package/dist/agents/harness/factory.js.map +0 -1
- package/dist/agents/harness/index.d.ts +0 -9
- package/dist/agents/harness/index.d.ts.map +0 -1
- package/dist/agents/harness/index.js +0 -5
- package/dist/agents/harness/index.js.map +0 -1
- package/dist/agents/harness/pi-harness.d.ts +0 -18
- package/dist/agents/harness/pi-harness.d.ts.map +0 -1
- package/dist/agents/harness/pi-harness.js +0 -278
- package/dist/agents/harness/pi-harness.js.map +0 -1
- package/dist/agents/harness/types.d.ts +0 -57
- package/dist/agents/harness/types.d.ts.map +0 -1
- package/dist/agents/harness/types.js +0 -2
- package/dist/agents/harness/types.js.map +0 -1
- package/dist/agents/session-loop.d.ts +0 -36
- package/dist/agents/session-loop.d.ts.map +0 -1
- package/dist/agents/session-loop.js +0 -216
- package/dist/agents/session-loop.js.map +0 -1
- package/dist/agents/signals.d.ts +0 -34
- package/dist/agents/signals.d.ts.map +0 -1
- package/dist/agents/signals.js +0 -122
- package/dist/agents/signals.js.map +0 -1
- package/dist/cli/commands/claude.d.ts +0 -4
- package/dist/cli/commands/claude.d.ts.map +0 -1
- package/dist/cli/commands/claude.js +0 -6
- package/dist/cli/commands/claude.js.map +0 -1
- package/dist/cli/commands/run-agent.d.ts +0 -14
- package/dist/cli/commands/run-agent.d.ts.map +0 -1
- package/dist/cli/commands/run-agent.js +0 -270
- package/dist/cli/commands/run-agent.js.map +0 -1
- package/dist/docker/cloud-run-runtime.d.ts +0 -48
- package/dist/docker/cloud-run-runtime.d.ts.map +0 -1
- package/dist/docker/cloud-run-runtime.js +0 -490
- package/dist/docker/cloud-run-runtime.js.map +0 -1
- package/dist/execution/call-dispatcher.d.ts +0 -11
- package/dist/execution/call-dispatcher.d.ts.map +0 -1
- package/dist/execution/call-dispatcher.js +0 -75
- package/dist/execution/call-dispatcher.js.map +0 -1
- package/dist/execution/container-registry.d.ts +0 -42
- package/dist/execution/container-registry.d.ts.map +0 -1
- package/dist/execution/container-registry.js +0 -76
- package/dist/execution/container-registry.js.map +0 -1
- package/dist/execution/image-builder.d.ts +0 -48
- package/dist/execution/image-builder.d.ts.map +0 -1
- package/dist/execution/image-builder.js +0 -155
- package/dist/execution/image-builder.js.map +0 -1
- package/dist/execution/routes/calls.d.ts +0 -18
- package/dist/execution/routes/calls.d.ts.map +0 -1
- package/dist/execution/routes/calls.js +0 -74
- package/dist/execution/routes/calls.js.map +0 -1
- package/dist/execution/routes/locks.d.ts +0 -10
- package/dist/execution/routes/locks.d.ts.map +0 -1
- package/dist/execution/routes/locks.js +0 -166
- package/dist/execution/routes/locks.js.map +0 -1
- package/dist/execution/routes/shutdown.d.ts +0 -5
- package/dist/execution/routes/shutdown.d.ts.map +0 -1
- package/dist/execution/routes/shutdown.js +0 -24
- package/dist/execution/routes/shutdown.js.map +0 -1
- package/dist/execution/routes/signals.d.ts +0 -12
- package/dist/execution/routes/signals.d.ts.map +0 -1
- package/dist/execution/routes/signals.js +0 -123
- package/dist/execution/routes/signals.js.map +0 -1
- package/dist/execution/types.d.ts +0 -23
- package/dist/execution/types.d.ts.map +0 -1
- package/dist/execution/types.js +0 -2
- package/dist/execution/types.js.map +0 -1
- package/dist/frontend/assets/index-DnSu-8Kw.js +0 -16
- package/dist/frontend/assets/index-DnSu-8Kw.js.map +0 -1
- package/dist/frontend/assets/index-Z0IOXEax.css +0 -2
- package/dist/gateway/routes/execution.d.ts +0 -24
- package/dist/gateway/routes/execution.d.ts.map +0 -1
- package/dist/gateway/routes/execution.js +0 -13
- package/dist/gateway/routes/execution.js.map +0 -1
- package/dist/scheduler/orphan-recovery.d.ts +0 -25
- package/dist/scheduler/orphan-recovery.d.ts.map +0 -1
- package/dist/scheduler/orphan-recovery.js +0 -144
- package/dist/scheduler/orphan-recovery.js.map +0 -1
- package/docker/bin/_http-exit +0 -35
- package/docker/bin/al-exit +0 -4
- package/docker/bin/al-export +0 -50
- package/docker/bin/al-rerun +0 -8
- package/docker/bin/al-return +0 -14
- package/docker/bin/al-shutdown +0 -5
- package/docker/bin/al-status +0 -9
- package/docker/bin/al-subagent +0 -13
- package/docker/bin/al-subagent-check +0 -10
- package/docker/bin/al-subagent-wait +0 -37
- package/docker/bin/rlock +0 -12
- package/docker/bin/rlock-heartbeat +0 -12
- package/docker/bin/runlock +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-factory.d.ts","sourceRoot":"","sources":["../../src/execution/runtime-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-factory.d.ts","sourceRoot":"","sources":["../../src/execution/runtime-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAOxF;AAED,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,WAAW,EAAE,EACjC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC,CA6CxB"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Runtime factory.
|
|
3
3
|
*
|
|
4
|
-
* Creates a Runtime using the extension system
|
|
4
|
+
* Creates a Runtime using the extension system.
|
|
5
5
|
* Supports per-agent runtime overrides (e.g. host-user mode).
|
|
6
6
|
*/
|
|
7
|
-
import { isContainerRuntime } from "../docker/runtime.js";
|
|
8
7
|
import { AgentError } from "../shared/errors.js";
|
|
9
|
-
import { buildAllImages } from "./image-builder.js";
|
|
10
8
|
import { globalRegistry } from "../extensions/registry.js";
|
|
11
9
|
import { HostUserRuntime } from "../docker/host-user-runtime.js";
|
|
12
10
|
/**
|
|
@@ -57,19 +55,4 @@ export async function createContainerRuntime(globalConfig, activeAgentConfigs, l
|
|
|
57
55
|
}
|
|
58
56
|
return { runtime, agentRuntimeOverrides };
|
|
59
57
|
}
|
|
60
|
-
export async function buildAgentImages(opts) {
|
|
61
|
-
if (!isContainerRuntime(opts.runtime)) {
|
|
62
|
-
throw new AgentError("Cannot build images: runtime does not support container operations");
|
|
63
|
-
}
|
|
64
|
-
const buildResult = await buildAllImages({
|
|
65
|
-
projectPath: opts.projectPath,
|
|
66
|
-
globalConfig: opts.globalConfig,
|
|
67
|
-
activeAgentConfigs: opts.activeAgentConfigs,
|
|
68
|
-
runtime: opts.runtime,
|
|
69
|
-
statusTracker: opts.statusTracker,
|
|
70
|
-
logger: opts.logger,
|
|
71
|
-
skills: opts.skills,
|
|
72
|
-
});
|
|
73
|
-
return { baseImage: buildResult.baseImage, agentImages: buildResult.agentImages };
|
|
74
|
-
}
|
|
75
58
|
//# sourceMappingURL=runtime-factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-factory.js","sourceRoot":"","sources":["../../src/execution/runtime-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"runtime-factory.js","sourceRoot":"","sources":["../../src/execution/runtime-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAOjE;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,WAAwB;IACjE,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;QACvD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QAChD,OAAO,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,YAA0B,EAC1B,kBAAiC,EACjC,MAAc;IAEd,uEAAuE;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC;IAE5B,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,cAAc,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACzE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAClB,yBAAyB,WAAW,yBAAyB,cAAc,CAAC,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7I,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAE1C,qDAAqD;IACrD,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,UAAU,CAClB,mFAAmF,CACpF,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC/D,aAAa,EAAE,CAAC;IAClB,CAAC;IAED,qEAAqE;IACrE,MAAM,qBAAqB,GAA4B,EAAE,CAAC;IAC1D,KAAK,MAAM,WAAW,IAAI,kBAAkB,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,QAAQ,EAAE,CAAC;YACb,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;YACnD,MAAM,CAAC,IAAI,CACT,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,EACxH,yBAAyB,CAC1B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WaitingRegistry — tracks agent instances that are suspended mid-conversation,
|
|
3
|
+
* waiting for a specific trigger (webhook or agent-trigger) to resume.
|
|
4
|
+
*
|
|
5
|
+
* Instances are matched FIFO within each agent. The registry is the single source
|
|
6
|
+
* of truth for all waiting instances and handles matching, timeout cleanup, and
|
|
7
|
+
* persistence to the KV store for restart recovery.
|
|
8
|
+
*/
|
|
9
|
+
import type { WebhookContext } from "../webhooks/types.js";
|
|
10
|
+
import type { PersistenceStore } from "../shared/persistence/index.js";
|
|
11
|
+
export type WaitFilter = {
|
|
12
|
+
type: "webhook";
|
|
13
|
+
source?: string;
|
|
14
|
+
event?: string;
|
|
15
|
+
match?: Record<string, string>;
|
|
16
|
+
} | {
|
|
17
|
+
type: "agent-trigger";
|
|
18
|
+
sourceAgent?: string;
|
|
19
|
+
};
|
|
20
|
+
export interface WaitingInstance {
|
|
21
|
+
instanceId: string;
|
|
22
|
+
agentName: string;
|
|
23
|
+
filter: WaitFilter;
|
|
24
|
+
deadline: number;
|
|
25
|
+
registeredAt: number;
|
|
26
|
+
runId: string;
|
|
27
|
+
runtimeType: string;
|
|
28
|
+
cwd: string;
|
|
29
|
+
resolve?: (payload: any) => void;
|
|
30
|
+
reject?: (err: Error) => void;
|
|
31
|
+
timeoutTimer?: ReturnType<typeof setTimeout>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if a dot-path key matches a value in an object.
|
|
35
|
+
* e.g. matchDotPath({ a: { b: "c" } }, "a.b", "c") → true
|
|
36
|
+
*/
|
|
37
|
+
export declare function matchDotPath(obj: any, key: string, value: string): boolean;
|
|
38
|
+
export declare class WaitingRegistry {
|
|
39
|
+
private entries;
|
|
40
|
+
/**
|
|
41
|
+
* Register a waiting instance. Starts its timeout timer.
|
|
42
|
+
*/
|
|
43
|
+
register(entry: WaitingInstance): void;
|
|
44
|
+
/**
|
|
45
|
+
* Find and remove a matching waiting instance for a webhook trigger (FIFO).
|
|
46
|
+
* Returns null if no match found.
|
|
47
|
+
*/
|
|
48
|
+
matchWebhook(agentName: string, context: WebhookContext): WaitingInstance | null;
|
|
49
|
+
/**
|
|
50
|
+
* Find and remove a matching waiting instance for an agent trigger (FIFO).
|
|
51
|
+
* Returns null if no match found.
|
|
52
|
+
*/
|
|
53
|
+
matchAgentTrigger(agentName: string, sourceAgent: string): WaitingInstance | null;
|
|
54
|
+
/**
|
|
55
|
+
* Remove a waiting instance by ID (for timeout/kill).
|
|
56
|
+
*/
|
|
57
|
+
remove(instanceId: string): WaitingInstance | null;
|
|
58
|
+
/**
|
|
59
|
+
* Get all waiting instances for a specific agent.
|
|
60
|
+
*/
|
|
61
|
+
getByAgent(agentName: string): WaitingInstance[];
|
|
62
|
+
/**
|
|
63
|
+
* Get all waiting instances.
|
|
64
|
+
*/
|
|
65
|
+
getAll(): WaitingInstance[];
|
|
66
|
+
/**
|
|
67
|
+
* Get the total number of waiting instances.
|
|
68
|
+
*/
|
|
69
|
+
count(): number;
|
|
70
|
+
/**
|
|
71
|
+
* Persist all waiting instances to the KV store.
|
|
72
|
+
*/
|
|
73
|
+
persist(store: PersistenceStore): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Rehydrate waiting instances from the KV store.
|
|
76
|
+
* Returns a new registry with loaded entries (no in-memory resolve/reject callbacks).
|
|
77
|
+
*/
|
|
78
|
+
static rehydrate(store: PersistenceStore): Promise<WaitingRegistry>;
|
|
79
|
+
/**
|
|
80
|
+
* Remove an entry and clean up its timeout timer.
|
|
81
|
+
*/
|
|
82
|
+
private _removeAndCleanup;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=waiting-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waiting-registry.d.ts","sourceRoot":"","sources":["../../src/execution/waiting-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIvE,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACpF;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAIpD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IAEZ,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;CAC9C;AAgBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAQ1E;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAsC;IAErD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAoBtC;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,eAAe,GAAG,IAAI;IAkChF;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAiBjF;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAIlD;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE;IAIhD;;OAEG;IACH,MAAM,IAAI,eAAe,EAAE;IAI3B;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrD;;;OAGG;WACU,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IA6BzE;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAW1B"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WaitingRegistry — tracks agent instances that are suspended mid-conversation,
|
|
3
|
+
* waiting for a specific trigger (webhook or agent-trigger) to resume.
|
|
4
|
+
*
|
|
5
|
+
* Instances are matched FIFO within each agent. The registry is the single source
|
|
6
|
+
* of truth for all waiting instances and handles matching, timeout cleanup, and
|
|
7
|
+
* persistence to the KV store for restart recovery.
|
|
8
|
+
*/
|
|
9
|
+
// ── Dot-path matching helper ─────────────────────────────────
|
|
10
|
+
/**
|
|
11
|
+
* Check if a dot-path key matches a value in an object.
|
|
12
|
+
* e.g. matchDotPath({ a: { b: "c" } }, "a.b", "c") → true
|
|
13
|
+
*/
|
|
14
|
+
export function matchDotPath(obj, key, value) {
|
|
15
|
+
const parts = key.split(".");
|
|
16
|
+
let current = obj;
|
|
17
|
+
for (const part of parts) {
|
|
18
|
+
if (current == null || typeof current !== "object")
|
|
19
|
+
return false;
|
|
20
|
+
current = current[part];
|
|
21
|
+
}
|
|
22
|
+
return String(current) === value;
|
|
23
|
+
}
|
|
24
|
+
// ── Registry ─────────────────────────────────────────────────
|
|
25
|
+
const KV_NAMESPACE = "waiting-instances";
|
|
26
|
+
export class WaitingRegistry {
|
|
27
|
+
entries = new Map();
|
|
28
|
+
/**
|
|
29
|
+
* Register a waiting instance. Starts its timeout timer.
|
|
30
|
+
*/
|
|
31
|
+
register(entry) {
|
|
32
|
+
// Start timeout timer
|
|
33
|
+
const remaining = entry.deadline - Date.now();
|
|
34
|
+
if (remaining <= 0) {
|
|
35
|
+
// Already expired — reject immediately
|
|
36
|
+
entry.reject?.(new Error("Wait timeout expired before registration"));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
entry.timeoutTimer = setTimeout(() => {
|
|
40
|
+
const removed = this.remove(entry.instanceId);
|
|
41
|
+
if (removed) {
|
|
42
|
+
removed.reject?.(new Error("Wait timeout expired"));
|
|
43
|
+
}
|
|
44
|
+
}, remaining);
|
|
45
|
+
entry.timeoutTimer.unref?.();
|
|
46
|
+
this.entries.set(entry.instanceId, entry);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Find and remove a matching waiting instance for a webhook trigger (FIFO).
|
|
50
|
+
* Returns null if no match found.
|
|
51
|
+
*/
|
|
52
|
+
matchWebhook(agentName, context) {
|
|
53
|
+
// Find all entries for this agent, sorted by registeredAt (FIFO)
|
|
54
|
+
const candidates = this.getByAgent(agentName)
|
|
55
|
+
.filter((e) => e.filter.type === "webhook")
|
|
56
|
+
.sort((a, b) => a.registeredAt - b.registeredAt);
|
|
57
|
+
for (const entry of candidates) {
|
|
58
|
+
const filter = entry.filter;
|
|
59
|
+
// Check source filter
|
|
60
|
+
if (filter.source && filter.source !== context.source)
|
|
61
|
+
continue;
|
|
62
|
+
// Check event filter
|
|
63
|
+
if (filter.event && filter.event !== context.event)
|
|
64
|
+
continue;
|
|
65
|
+
// Check dot-path match predicates on the context
|
|
66
|
+
if (filter.match) {
|
|
67
|
+
let allMatch = true;
|
|
68
|
+
for (const [key, value] of Object.entries(filter.match)) {
|
|
69
|
+
if (!matchDotPath(context, key, value)) {
|
|
70
|
+
allMatch = false;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (!allMatch)
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
// Match found — remove from registry and clear timeout
|
|
78
|
+
return this._removeAndCleanup(entry.instanceId);
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Find and remove a matching waiting instance for an agent trigger (FIFO).
|
|
84
|
+
* Returns null if no match found.
|
|
85
|
+
*/
|
|
86
|
+
matchAgentTrigger(agentName, sourceAgent) {
|
|
87
|
+
const candidates = this.getByAgent(agentName)
|
|
88
|
+
.filter((e) => e.filter.type === "agent-trigger")
|
|
89
|
+
.sort((a, b) => a.registeredAt - b.registeredAt);
|
|
90
|
+
for (const entry of candidates) {
|
|
91
|
+
const filter = entry.filter;
|
|
92
|
+
// If sourceAgent is specified, it must match
|
|
93
|
+
if (filter.sourceAgent && filter.sourceAgent !== sourceAgent)
|
|
94
|
+
continue;
|
|
95
|
+
return this._removeAndCleanup(entry.instanceId);
|
|
96
|
+
}
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Remove a waiting instance by ID (for timeout/kill).
|
|
101
|
+
*/
|
|
102
|
+
remove(instanceId) {
|
|
103
|
+
return this._removeAndCleanup(instanceId);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get all waiting instances for a specific agent.
|
|
107
|
+
*/
|
|
108
|
+
getByAgent(agentName) {
|
|
109
|
+
return Array.from(this.entries.values()).filter((e) => e.agentName === agentName);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get all waiting instances.
|
|
113
|
+
*/
|
|
114
|
+
getAll() {
|
|
115
|
+
return Array.from(this.entries.values());
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get the total number of waiting instances.
|
|
119
|
+
*/
|
|
120
|
+
count() {
|
|
121
|
+
return this.entries.size;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Persist all waiting instances to the KV store.
|
|
125
|
+
*/
|
|
126
|
+
async persist(store) {
|
|
127
|
+
// Clear existing entries
|
|
128
|
+
await store.kv.deleteAll(KV_NAMESPACE);
|
|
129
|
+
for (const entry of this.entries.values()) {
|
|
130
|
+
const persisted = {
|
|
131
|
+
instanceId: entry.instanceId,
|
|
132
|
+
agentName: entry.agentName,
|
|
133
|
+
filter: entry.filter,
|
|
134
|
+
deadline: entry.deadline,
|
|
135
|
+
registeredAt: entry.registeredAt,
|
|
136
|
+
runId: entry.runId,
|
|
137
|
+
runtimeType: entry.runtimeType,
|
|
138
|
+
cwd: entry.cwd,
|
|
139
|
+
};
|
|
140
|
+
await store.kv.set(KV_NAMESPACE, entry.instanceId, persisted);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Rehydrate waiting instances from the KV store.
|
|
145
|
+
* Returns a new registry with loaded entries (no in-memory resolve/reject callbacks).
|
|
146
|
+
*/
|
|
147
|
+
static async rehydrate(store) {
|
|
148
|
+
const registry = new WaitingRegistry();
|
|
149
|
+
const entries = await store.kv.list(KV_NAMESPACE);
|
|
150
|
+
const now = Date.now();
|
|
151
|
+
for (const { value } of entries) {
|
|
152
|
+
// Skip expired entries
|
|
153
|
+
if (value.deadline <= now) {
|
|
154
|
+
await store.kv.delete(KV_NAMESPACE, value.instanceId);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
const entry = {
|
|
158
|
+
...value,
|
|
159
|
+
// No resolve/reject — cold restart instances get new runners on match
|
|
160
|
+
};
|
|
161
|
+
// Start timeout timer for remaining time
|
|
162
|
+
entry.timeoutTimer = setTimeout(() => {
|
|
163
|
+
registry.remove(entry.instanceId);
|
|
164
|
+
}, entry.deadline - now);
|
|
165
|
+
entry.timeoutTimer.unref?.();
|
|
166
|
+
registry.entries.set(entry.instanceId, entry);
|
|
167
|
+
}
|
|
168
|
+
return registry;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Remove an entry and clean up its timeout timer.
|
|
172
|
+
*/
|
|
173
|
+
_removeAndCleanup(instanceId) {
|
|
174
|
+
const entry = this.entries.get(instanceId);
|
|
175
|
+
if (!entry)
|
|
176
|
+
return null;
|
|
177
|
+
this.entries.delete(instanceId);
|
|
178
|
+
if (entry.timeoutTimer) {
|
|
179
|
+
clearTimeout(entry.timeoutTimer);
|
|
180
|
+
entry.timeoutTimer = undefined;
|
|
181
|
+
}
|
|
182
|
+
return entry;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=waiting-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waiting-registry.js","sourceRoot":"","sources":["../../src/execution/waiting-registry.ts"],"names":[],"mappings":"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"}
|