lorenz 0.1.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/LICENSE +201 -0
- package/NOTICE +13 -0
- package/README.md +774 -0
- package/RELEASE-MANIFEST.json +211 -0
- package/apps/cli/bin/lorenz.js +25 -0
- package/apps/cli/dist/bin/cli.d.ts +3 -0
- package/apps/cli/dist/bin/cli.d.ts.map +1 -0
- package/apps/cli/dist/bin/cli.js +4 -0
- package/apps/cli/dist/bin/cli.js.map +1 -0
- package/apps/cli/dist/daemon.d.ts +76 -0
- package/apps/cli/dist/daemon.d.ts.map +1 -0
- package/apps/cli/dist/daemon.js +189 -0
- package/apps/cli/dist/daemon.js.map +1 -0
- package/apps/cli/dist/doctor.d.ts +40 -0
- package/apps/cli/dist/doctor.d.ts.map +1 -0
- package/apps/cli/dist/doctor.js +590 -0
- package/apps/cli/dist/doctor.js.map +1 -0
- package/apps/cli/dist/index.d.ts +32 -0
- package/apps/cli/dist/index.d.ts.map +1 -0
- package/apps/cli/dist/index.js +26 -0
- package/apps/cli/dist/index.js.map +1 -0
- package/apps/cli/dist/main.d.ts +40 -0
- package/apps/cli/dist/main.d.ts.map +1 -0
- package/apps/cli/dist/main.js +259 -0
- package/apps/cli/dist/main.js.map +1 -0
- package/apps/cli/dist/runs.d.ts +31 -0
- package/apps/cli/dist/runs.d.ts.map +1 -0
- package/apps/cli/dist/runs.js +281 -0
- package/apps/cli/dist/runs.js.map +1 -0
- package/apps/cli/dist/workerDriverLoader.d.ts +64 -0
- package/apps/cli/dist/workerDriverLoader.d.ts.map +1 -0
- package/apps/cli/dist/workerDriverLoader.js +211 -0
- package/apps/cli/dist/workerDriverLoader.js.map +1 -0
- package/apps/cli/package.json +57 -0
- package/apps/symphony-dashboard/dist/assets/index-B3owF3jd.css +1 -0
- package/apps/symphony-dashboard/dist/assets/index-DQ6XlL0d.js +227 -0
- package/apps/symphony-dashboard/dist/index.html +18 -0
- package/bin/lorenz +16 -0
- package/extensions/docker-worker/dist/index.d.ts +92 -0
- package/extensions/docker-worker/dist/index.d.ts.map +1 -0
- package/extensions/docker-worker/dist/index.js +283 -0
- package/extensions/docker-worker/dist/index.js.map +1 -0
- package/extensions/docker-worker/package.json +14 -0
- package/extensions/jira-tracker/dist/client.d.ts +50 -0
- package/extensions/jira-tracker/dist/client.d.ts.map +1 -0
- package/extensions/jira-tracker/dist/client.js +619 -0
- package/extensions/jira-tracker/dist/client.js.map +1 -0
- package/extensions/jira-tracker/dist/index.d.ts +5 -0
- package/extensions/jira-tracker/dist/index.d.ts.map +1 -0
- package/extensions/jira-tracker/dist/index.js +5 -0
- package/extensions/jira-tracker/dist/index.js.map +1 -0
- package/extensions/jira-tracker/dist/options.d.ts +38 -0
- package/extensions/jira-tracker/dist/options.d.ts.map +1 -0
- package/extensions/jira-tracker/dist/options.js +61 -0
- package/extensions/jira-tracker/dist/options.js.map +1 -0
- package/extensions/jira-tracker/dist/provider.d.ts +6 -0
- package/extensions/jira-tracker/dist/provider.d.ts.map +1 -0
- package/extensions/jira-tracker/dist/provider.js +178 -0
- package/extensions/jira-tracker/dist/provider.js.map +1 -0
- package/extensions/jira-tracker/dist/register.d.ts +10 -0
- package/extensions/jira-tracker/dist/register.d.ts.map +1 -0
- package/extensions/jira-tracker/dist/register.js +15 -0
- package/extensions/jira-tracker/dist/register.js.map +1 -0
- package/extensions/jira-tracker/package.json +16 -0
- package/extensions/linear-tracker/dist/client.d.ts +82 -0
- package/extensions/linear-tracker/dist/client.d.ts.map +1 -0
- package/extensions/linear-tracker/dist/client.js +622 -0
- package/extensions/linear-tracker/dist/client.js.map +1 -0
- package/extensions/linear-tracker/dist/index.d.ts +8 -0
- package/extensions/linear-tracker/dist/index.d.ts.map +1 -0
- package/extensions/linear-tracker/dist/index.js +7 -0
- package/extensions/linear-tracker/dist/index.js.map +1 -0
- package/extensions/linear-tracker/dist/options.d.ts +32 -0
- package/extensions/linear-tracker/dist/options.d.ts.map +1 -0
- package/extensions/linear-tracker/dist/options.js +59 -0
- package/extensions/linear-tracker/dist/options.js.map +1 -0
- package/extensions/linear-tracker/dist/provider.d.ts +4 -0
- package/extensions/linear-tracker/dist/provider.d.ts.map +1 -0
- package/extensions/linear-tracker/dist/provider.js +58 -0
- package/extensions/linear-tracker/dist/provider.js.map +1 -0
- package/extensions/linear-tracker/dist/register.d.ts +11 -0
- package/extensions/linear-tracker/dist/register.d.ts.map +1 -0
- package/extensions/linear-tracker/dist/register.js +19 -0
- package/extensions/linear-tracker/dist/register.js.map +1 -0
- package/extensions/linear-tracker/dist/toolOps.d.ts +8 -0
- package/extensions/linear-tracker/dist/toolOps.d.ts.map +1 -0
- package/extensions/linear-tracker/dist/toolOps.js +160 -0
- package/extensions/linear-tracker/dist/toolOps.js.map +1 -0
- package/extensions/linear-tracker/dist/tools.d.ts +7 -0
- package/extensions/linear-tracker/dist/tools.d.ts.map +1 -0
- package/extensions/linear-tracker/dist/tools.js +210 -0
- package/extensions/linear-tracker/dist/tools.js.map +1 -0
- package/extensions/linear-tracker/package.json +18 -0
- package/extensions/local-tracker/dist/boardStore.d.ts +116 -0
- package/extensions/local-tracker/dist/boardStore.d.ts.map +1 -0
- package/extensions/local-tracker/dist/boardStore.js +475 -0
- package/extensions/local-tracker/dist/boardStore.js.map +1 -0
- package/extensions/local-tracker/dist/client.d.ts +14 -0
- package/extensions/local-tracker/dist/client.d.ts.map +1 -0
- package/extensions/local-tracker/dist/client.js +27 -0
- package/extensions/local-tracker/dist/client.js.map +1 -0
- package/extensions/local-tracker/dist/index.d.ts +7 -0
- package/extensions/local-tracker/dist/index.d.ts.map +1 -0
- package/extensions/local-tracker/dist/index.js +7 -0
- package/extensions/local-tracker/dist/index.js.map +1 -0
- package/extensions/local-tracker/dist/options.d.ts +31 -0
- package/extensions/local-tracker/dist/options.d.ts.map +1 -0
- package/extensions/local-tracker/dist/options.js +69 -0
- package/extensions/local-tracker/dist/options.js.map +1 -0
- package/extensions/local-tracker/dist/provider.d.ts +9 -0
- package/extensions/local-tracker/dist/provider.d.ts.map +1 -0
- package/extensions/local-tracker/dist/provider.js +35 -0
- package/extensions/local-tracker/dist/provider.js.map +1 -0
- package/extensions/local-tracker/dist/register.d.ts +11 -0
- package/extensions/local-tracker/dist/register.d.ts.map +1 -0
- package/extensions/local-tracker/dist/register.js +19 -0
- package/extensions/local-tracker/dist/register.js.map +1 -0
- package/extensions/local-tracker/dist/resolveBoardDir.d.ts +24 -0
- package/extensions/local-tracker/dist/resolveBoardDir.d.ts.map +1 -0
- package/extensions/local-tracker/dist/resolveBoardDir.js +39 -0
- package/extensions/local-tracker/dist/resolveBoardDir.js.map +1 -0
- package/extensions/local-tracker/dist/toolOps.d.ts +9 -0
- package/extensions/local-tracker/dist/toolOps.d.ts.map +1 -0
- package/extensions/local-tracker/dist/toolOps.js +86 -0
- package/extensions/local-tracker/dist/toolOps.js.map +1 -0
- package/extensions/local-tracker/dist/tools.d.ts +7 -0
- package/extensions/local-tracker/dist/tools.d.ts.map +1 -0
- package/extensions/local-tracker/dist/tools.js +170 -0
- package/extensions/local-tracker/dist/tools.js.map +1 -0
- package/extensions/local-tracker/package.json +18 -0
- package/extensions/memory-tracker/dist/index.d.ts +24 -0
- package/extensions/memory-tracker/dist/index.d.ts.map +1 -0
- package/extensions/memory-tracker/dist/index.js +110 -0
- package/extensions/memory-tracker/dist/index.js.map +1 -0
- package/extensions/memory-tracker/package.json +16 -0
- package/extensions/slack-tracker/dist/client.d.ts +88 -0
- package/extensions/slack-tracker/dist/client.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/client.js +246 -0
- package/extensions/slack-tracker/dist/client.js.map +1 -0
- package/extensions/slack-tracker/dist/inMemoryTransport.d.ts +42 -0
- package/extensions/slack-tracker/dist/inMemoryTransport.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/inMemoryTransport.js +104 -0
- package/extensions/slack-tracker/dist/inMemoryTransport.js.map +1 -0
- package/extensions/slack-tracker/dist/index.d.ts +15 -0
- package/extensions/slack-tracker/dist/index.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/index.js +11 -0
- package/extensions/slack-tracker/dist/index.js.map +1 -0
- package/extensions/slack-tracker/dist/mapping.d.ts +27 -0
- package/extensions/slack-tracker/dist/mapping.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/mapping.js +109 -0
- package/extensions/slack-tracker/dist/mapping.js.map +1 -0
- package/extensions/slack-tracker/dist/operations.d.ts +41 -0
- package/extensions/slack-tracker/dist/operations.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/operations.js +97 -0
- package/extensions/slack-tracker/dist/operations.js.map +1 -0
- package/extensions/slack-tracker/dist/options.d.ts +30 -0
- package/extensions/slack-tracker/dist/options.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/options.js +49 -0
- package/extensions/slack-tracker/dist/options.js.map +1 -0
- package/extensions/slack-tracker/dist/provider.d.ts +9 -0
- package/extensions/slack-tracker/dist/provider.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/provider.js +74 -0
- package/extensions/slack-tracker/dist/provider.js.map +1 -0
- package/extensions/slack-tracker/dist/register.d.ts +11 -0
- package/extensions/slack-tracker/dist/register.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/register.js +19 -0
- package/extensions/slack-tracker/dist/register.js.map +1 -0
- package/extensions/slack-tracker/dist/threadState.d.ts +52 -0
- package/extensions/slack-tracker/dist/threadState.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/threadState.js +192 -0
- package/extensions/slack-tracker/dist/threadState.js.map +1 -0
- package/extensions/slack-tracker/dist/toolOps.d.ts +13 -0
- package/extensions/slack-tracker/dist/toolOps.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/toolOps.js +76 -0
- package/extensions/slack-tracker/dist/toolOps.js.map +1 -0
- package/extensions/slack-tracker/dist/tools.d.ts +8 -0
- package/extensions/slack-tracker/dist/tools.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/tools.js +266 -0
- package/extensions/slack-tracker/dist/tools.js.map +1 -0
- package/extensions/slack-tracker/dist/transport.d.ts +63 -0
- package/extensions/slack-tracker/dist/transport.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/transport.js +2 -0
- package/extensions/slack-tracker/dist/transport.js.map +1 -0
- package/extensions/slack-tracker/dist/webTransport.d.ts +44 -0
- package/extensions/slack-tracker/dist/webTransport.d.ts.map +1 -0
- package/extensions/slack-tracker/dist/webTransport.js +402 -0
- package/extensions/slack-tracker/dist/webTransport.js.map +1 -0
- package/extensions/slack-tracker/package.json +17 -0
- package/package.json +89 -0
- package/packages/acp/dist/childProcess.d.ts +4 -0
- package/packages/acp/dist/childProcess.d.ts.map +1 -0
- package/packages/acp/dist/childProcess.js +33 -0
- package/packages/acp/dist/childProcess.js.map +1 -0
- package/packages/acp/dist/index.d.ts +70 -0
- package/packages/acp/dist/index.d.ts.map +1 -0
- package/packages/acp/dist/index.js +701 -0
- package/packages/acp/dist/index.js.map +1 -0
- package/packages/acp/dist/options.d.ts +24 -0
- package/packages/acp/dist/options.d.ts.map +1 -0
- package/packages/acp/dist/options.js +92 -0
- package/packages/acp/dist/options.js.map +1 -0
- package/packages/acp/dist/toml.d.ts +2 -0
- package/packages/acp/dist/toml.d.ts.map +1 -0
- package/packages/acp/dist/toml.js +51 -0
- package/packages/acp/dist/toml.js.map +1 -0
- package/packages/acp/package.json +24 -0
- package/packages/agent-runner/dist/index.d.ts +58 -0
- package/packages/agent-runner/dist/index.d.ts.map +1 -0
- package/packages/agent-runner/dist/index.js +288 -0
- package/packages/agent-runner/dist/index.js.map +1 -0
- package/packages/agent-runner/package.json +19 -0
- package/packages/agent-sdk/dist/index.d.ts +2 -0
- package/packages/agent-sdk/dist/index.d.ts.map +1 -0
- package/packages/agent-sdk/dist/index.js +2 -0
- package/packages/agent-sdk/dist/index.js.map +1 -0
- package/packages/agent-sdk/dist/provider.d.ts +66 -0
- package/packages/agent-sdk/dist/provider.d.ts.map +1 -0
- package/packages/agent-sdk/dist/provider.js +38 -0
- package/packages/agent-sdk/dist/provider.js.map +1 -0
- package/packages/agent-sdk/package.json +14 -0
- package/packages/cli-kit/dist/index.d.ts +20 -0
- package/packages/cli-kit/dist/index.d.ts.map +1 -0
- package/packages/cli-kit/dist/index.js +72 -0
- package/packages/cli-kit/dist/index.js.map +1 -0
- package/packages/cli-kit/package.json +14 -0
- package/packages/config/dist/aliases.d.ts +10 -0
- package/packages/config/dist/aliases.d.ts.map +1 -0
- package/packages/config/dist/aliases.js +153 -0
- package/packages/config/dist/aliases.js.map +1 -0
- package/packages/config/dist/defaults.d.ts +12 -0
- package/packages/config/dist/defaults.d.ts.map +1 -0
- package/packages/config/dist/defaults.js +78 -0
- package/packages/config/dist/defaults.js.map +1 -0
- package/packages/config/dist/errors.d.ts +3 -0
- package/packages/config/dist/errors.d.ts.map +1 -0
- package/packages/config/dist/errors.js +56 -0
- package/packages/config/dist/errors.js.map +1 -0
- package/packages/config/dist/index.d.ts +5 -0
- package/packages/config/dist/index.d.ts.map +1 -0
- package/packages/config/dist/index.js +4 -0
- package/packages/config/dist/index.js.map +1 -0
- package/packages/config/dist/leaf-utils.d.ts +3 -0
- package/packages/config/dist/leaf-utils.d.ts.map +1 -0
- package/packages/config/dist/leaf-utils.js +9 -0
- package/packages/config/dist/leaf-utils.js.map +1 -0
- package/packages/config/dist/parse.d.ts +11 -0
- package/packages/config/dist/parse.d.ts.map +1 -0
- package/packages/config/dist/parse.js +821 -0
- package/packages/config/dist/parse.js.map +1 -0
- package/packages/config/dist/schemas.d.ts +214 -0
- package/packages/config/dist/schemas.d.ts.map +1 -0
- package/packages/config/dist/schemas.js +248 -0
- package/packages/config/dist/schemas.js.map +1 -0
- package/packages/config/package.json +19 -0
- package/packages/dispatch/dist/index.d.ts +22 -0
- package/packages/dispatch/dist/index.d.ts.map +1 -0
- package/packages/dispatch/dist/index.js +117 -0
- package/packages/dispatch/dist/index.js.map +1 -0
- package/packages/dispatch/package.json +16 -0
- package/packages/dispatch-coordinator/dist/coordinator.d.ts +158 -0
- package/packages/dispatch-coordinator/dist/coordinator.d.ts.map +1 -0
- package/packages/dispatch-coordinator/dist/coordinator.js +529 -0
- package/packages/dispatch-coordinator/dist/coordinator.js.map +1 -0
- package/packages/dispatch-coordinator/dist/gate.d.ts +24 -0
- package/packages/dispatch-coordinator/dist/gate.d.ts.map +1 -0
- package/packages/dispatch-coordinator/dist/gate.js +47 -0
- package/packages/dispatch-coordinator/dist/gate.js.map +1 -0
- package/packages/dispatch-coordinator/dist/index.d.ts +6 -0
- package/packages/dispatch-coordinator/dist/index.d.ts.map +1 -0
- package/packages/dispatch-coordinator/dist/index.js +16 -0
- package/packages/dispatch-coordinator/dist/index.js.map +1 -0
- package/packages/dispatch-coordinator/dist/mcpEndpointManager.d.ts +28 -0
- package/packages/dispatch-coordinator/dist/mcpEndpointManager.d.ts.map +1 -0
- package/packages/dispatch-coordinator/dist/mcpEndpointManager.js +54 -0
- package/packages/dispatch-coordinator/dist/mcpEndpointManager.js.map +1 -0
- package/packages/dispatch-coordinator/dist/nullEndpointManager.d.ts +18 -0
- package/packages/dispatch-coordinator/dist/nullEndpointManager.d.ts.map +1 -0
- package/packages/dispatch-coordinator/dist/nullEndpointManager.js +40 -0
- package/packages/dispatch-coordinator/dist/nullEndpointManager.js.map +1 -0
- package/packages/dispatch-coordinator/dist/types.d.ts +119 -0
- package/packages/dispatch-coordinator/dist/types.d.ts.map +1 -0
- package/packages/dispatch-coordinator/dist/types.js +17 -0
- package/packages/dispatch-coordinator/dist/types.js.map +1 -0
- package/packages/dispatch-coordinator/package.json +16 -0
- package/packages/domain/dist/index.d.ts +775 -0
- package/packages/domain/dist/index.d.ts.map +1 -0
- package/packages/domain/dist/index.js +124 -0
- package/packages/domain/dist/index.js.map +1 -0
- package/packages/domain/package.json +14 -0
- package/packages/humanize/dist/index.d.ts +4 -0
- package/packages/humanize/dist/index.d.ts.map +1 -0
- package/packages/humanize/dist/index.js +347 -0
- package/packages/humanize/dist/index.js.map +1 -0
- package/packages/humanize/package.json +11 -0
- package/packages/issue/dist/index.d.ts +7 -0
- package/packages/issue/dist/index.d.ts.map +1 -0
- package/packages/issue/dist/index.js +147 -0
- package/packages/issue/dist/index.js.map +1 -0
- package/packages/issue/package.json +14 -0
- package/packages/log-file/dist/index.d.ts +10 -0
- package/packages/log-file/dist/index.d.ts.map +1 -0
- package/packages/log-file/dist/index.js +200 -0
- package/packages/log-file/dist/index.js.map +1 -0
- package/packages/log-file/package.json +15 -0
- package/packages/mcp/dist/agentEndpoint.d.ts +31 -0
- package/packages/mcp/dist/agentEndpoint.d.ts.map +1 -0
- package/packages/mcp/dist/agentEndpoint.js +270 -0
- package/packages/mcp/dist/agentEndpoint.js.map +1 -0
- package/packages/mcp/dist/auth.d.ts +7 -0
- package/packages/mcp/dist/auth.d.ts.map +1 -0
- package/packages/mcp/dist/auth.js +48 -0
- package/packages/mcp/dist/auth.js.map +1 -0
- package/packages/mcp/dist/filter.d.ts +70 -0
- package/packages/mcp/dist/filter.d.ts.map +1 -0
- package/packages/mcp/dist/filter.js +231 -0
- package/packages/mcp/dist/filter.js.map +1 -0
- package/packages/mcp/dist/index.d.ts +7 -0
- package/packages/mcp/dist/index.d.ts.map +1 -0
- package/packages/mcp/dist/index.js +5 -0
- package/packages/mcp/dist/index.js.map +1 -0
- package/packages/mcp/dist/server.d.ts +31 -0
- package/packages/mcp/dist/server.d.ts.map +1 -0
- package/packages/mcp/dist/server.js +176 -0
- package/packages/mcp/dist/server.js.map +1 -0
- package/packages/mcp/dist/tools/linear.d.ts +5 -0
- package/packages/mcp/dist/tools/linear.d.ts.map +1 -0
- package/packages/mcp/dist/tools/linear.js +192 -0
- package/packages/mcp/dist/tools/linear.js.map +1 -0
- package/packages/mcp/dist/tools/local.d.ts +5 -0
- package/packages/mcp/dist/tools/local.d.ts.map +1 -0
- package/packages/mcp/dist/tools/local.js +161 -0
- package/packages/mcp/dist/tools/local.js.map +1 -0
- package/packages/mcp/dist/tools/result.d.ts +5 -0
- package/packages/mcp/dist/tools/result.d.ts.map +1 -0
- package/packages/mcp/dist/tools/result.js +15 -0
- package/packages/mcp/dist/tools/result.js.map +1 -0
- package/packages/mcp/dist/tools.d.ts +14 -0
- package/packages/mcp/dist/tools.d.ts.map +1 -0
- package/packages/mcp/dist/tools.js +58 -0
- package/packages/mcp/dist/tools.js.map +1 -0
- package/packages/mcp/package.json +20 -0
- package/packages/orchestrator/dist/index.d.ts +171 -0
- package/packages/orchestrator/dist/index.d.ts.map +1 -0
- package/packages/orchestrator/dist/index.js +524 -0
- package/packages/orchestrator/dist/index.js.map +1 -0
- package/packages/orchestrator/package.json +18 -0
- package/packages/policies/dist/index.d.ts +11 -0
- package/packages/policies/dist/index.d.ts.map +1 -0
- package/packages/policies/dist/index.js +6 -0
- package/packages/policies/dist/index.js.map +1 -0
- package/packages/policies/dist/reconciliation.d.ts +5 -0
- package/packages/policies/dist/reconciliation.d.ts.map +1 -0
- package/packages/policies/dist/reconciliation.js +17 -0
- package/packages/policies/dist/reconciliation.js.map +1 -0
- package/packages/policies/dist/resume.d.ts +14 -0
- package/packages/policies/dist/resume.d.ts.map +1 -0
- package/packages/policies/dist/resume.js +7 -0
- package/packages/policies/dist/resume.js.map +1 -0
- package/packages/policies/dist/retry.d.ts +4 -0
- package/packages/policies/dist/retry.d.ts.map +1 -0
- package/packages/policies/dist/retry.js +7 -0
- package/packages/policies/dist/retry.js.map +1 -0
- package/packages/policies/dist/stopReason.d.ts +4 -0
- package/packages/policies/dist/stopReason.d.ts.map +1 -0
- package/packages/policies/dist/stopReason.js +11 -0
- package/packages/policies/dist/stopReason.js.map +1 -0
- package/packages/policies/dist/usage.d.ts +14 -0
- package/packages/policies/dist/usage.d.ts.map +1 -0
- package/packages/policies/dist/usage.js +38 -0
- package/packages/policies/dist/usage.js.map +1 -0
- package/packages/policies/dist/workerHost.d.ts +8 -0
- package/packages/policies/dist/workerHost.d.ts.map +1 -0
- package/packages/policies/dist/workerHost.js +20 -0
- package/packages/policies/dist/workerHost.js.map +1 -0
- package/packages/policies/package.json +21 -0
- package/packages/presenter/dist/index.d.ts +81 -0
- package/packages/presenter/dist/index.d.ts.map +1 -0
- package/packages/presenter/dist/index.js +421 -0
- package/packages/presenter/dist/index.js.map +1 -0
- package/packages/presenter/package.json +16 -0
- package/packages/projections/dist/index.d.ts +10 -0
- package/packages/projections/dist/index.d.ts.map +1 -0
- package/packages/projections/dist/index.js +30 -0
- package/packages/projections/dist/index.js.map +1 -0
- package/packages/projections/package.json +15 -0
- package/packages/prompt/dist/index.d.ts +9 -0
- package/packages/prompt/dist/index.d.ts.map +1 -0
- package/packages/prompt/dist/index.js +71 -0
- package/packages/prompt/dist/index.js.map +1 -0
- package/packages/prompt/package.json +16 -0
- package/packages/retry-scheduler/dist/index.d.ts +12 -0
- package/packages/retry-scheduler/dist/index.d.ts.map +1 -0
- package/packages/retry-scheduler/dist/index.js +39 -0
- package/packages/retry-scheduler/dist/index.js.map +1 -0
- package/packages/retry-scheduler/package.json +15 -0
- package/packages/runtime/dist/index.d.ts +157 -0
- package/packages/runtime/dist/index.d.ts.map +1 -0
- package/packages/runtime/dist/index.js +1074 -0
- package/packages/runtime/dist/index.js.map +1 -0
- package/packages/runtime/package.json +26 -0
- package/packages/runtime-events/dist/index.d.ts +110 -0
- package/packages/runtime-events/dist/index.d.ts.map +1 -0
- package/packages/runtime-events/dist/index.js +25 -0
- package/packages/runtime-events/dist/index.js.map +1 -0
- package/packages/runtime-events/package.json +14 -0
- package/packages/server/dist/index.d.ts +25 -0
- package/packages/server/dist/index.d.ts.map +1 -0
- package/packages/server/dist/index.js +213 -0
- package/packages/server/dist/index.js.map +1 -0
- package/packages/server/dist/issue-store.d.ts +26 -0
- package/packages/server/dist/issue-store.d.ts.map +1 -0
- package/packages/server/dist/issue-store.js +88 -0
- package/packages/server/dist/issue-store.js.map +1 -0
- package/packages/server/dist/path-params.d.ts +6 -0
- package/packages/server/dist/path-params.d.ts.map +1 -0
- package/packages/server/dist/path-params.js +15 -0
- package/packages/server/dist/path-params.js.map +1 -0
- package/packages/server/dist/source.d.ts +12 -0
- package/packages/server/dist/source.d.ts.map +1 -0
- package/packages/server/dist/source.js +2 -0
- package/packages/server/dist/source.js.map +1 -0
- package/packages/server/dist/trace-routes.d.ts +21 -0
- package/packages/server/dist/trace-routes.d.ts.map +1 -0
- package/packages/server/dist/trace-routes.js +66 -0
- package/packages/server/dist/trace-routes.js.map +1 -0
- package/packages/server/dist/ws.d.ts +18 -0
- package/packages/server/dist/ws.d.ts.map +1 -0
- package/packages/server/dist/ws.js +168 -0
- package/packages/server/dist/ws.js.map +1 -0
- package/packages/server/package.json +22 -0
- package/packages/ssh/dist/index.d.ts +33 -0
- package/packages/ssh/dist/index.d.ts.map +1 -0
- package/packages/ssh/dist/index.js +281 -0
- package/packages/ssh/dist/index.js.map +1 -0
- package/packages/ssh/package.json +15 -0
- package/packages/static-worker/dist/index.d.ts +73 -0
- package/packages/static-worker/dist/index.d.ts.map +1 -0
- package/packages/static-worker/dist/index.js +150 -0
- package/packages/static-worker/dist/index.js.map +1 -0
- package/packages/static-worker/package.json +14 -0
- package/packages/tool-sdk/dist/filter.d.ts +70 -0
- package/packages/tool-sdk/dist/filter.d.ts.map +1 -0
- package/packages/tool-sdk/dist/filter.js +231 -0
- package/packages/tool-sdk/dist/filter.js.map +1 -0
- package/packages/tool-sdk/dist/index.d.ts +6 -0
- package/packages/tool-sdk/dist/index.d.ts.map +1 -0
- package/packages/tool-sdk/dist/index.js +4 -0
- package/packages/tool-sdk/dist/index.js.map +1 -0
- package/packages/tool-sdk/dist/provider.d.ts +51 -0
- package/packages/tool-sdk/dist/provider.d.ts.map +1 -0
- package/packages/tool-sdk/dist/provider.js +2 -0
- package/packages/tool-sdk/dist/provider.js.map +1 -0
- package/packages/tool-sdk/dist/registry.d.ts +35 -0
- package/packages/tool-sdk/dist/registry.d.ts.map +1 -0
- package/packages/tool-sdk/dist/registry.js +85 -0
- package/packages/tool-sdk/dist/registry.js.map +1 -0
- package/packages/tool-sdk/dist/result.d.ts +5 -0
- package/packages/tool-sdk/dist/result.d.ts.map +1 -0
- package/packages/tool-sdk/dist/result.js +15 -0
- package/packages/tool-sdk/dist/result.js.map +1 -0
- package/packages/tool-sdk/package.json +14 -0
- package/packages/traceviz-emitter/dist/index.d.ts +19 -0
- package/packages/traceviz-emitter/dist/index.d.ts.map +1 -0
- package/packages/traceviz-emitter/dist/index.js +97 -0
- package/packages/traceviz-emitter/dist/index.js.map +1 -0
- package/packages/traceviz-emitter/package.json +17 -0
- package/packages/traceviz-server/dist/index.d.ts +14 -0
- package/packages/traceviz-server/dist/index.d.ts.map +1 -0
- package/packages/traceviz-server/dist/index.js +10 -0
- package/packages/traceviz-server/dist/index.js.map +1 -0
- package/packages/traceviz-server/dist/models/api.d.ts +51 -0
- package/packages/traceviz-server/dist/models/api.d.ts.map +1 -0
- package/packages/traceviz-server/dist/models/api.js +5 -0
- package/packages/traceviz-server/dist/models/api.js.map +1 -0
- package/packages/traceviz-server/dist/models/display-events.d.ts +58 -0
- package/packages/traceviz-server/dist/models/display-events.d.ts.map +1 -0
- package/packages/traceviz-server/dist/models/display-events.js +6 -0
- package/packages/traceviz-server/dist/models/display-events.js.map +1 -0
- package/packages/traceviz-server/dist/parser.d.ts +14 -0
- package/packages/traceviz-server/dist/parser.d.ts.map +1 -0
- package/packages/traceviz-server/dist/parser.js +363 -0
- package/packages/traceviz-server/dist/parser.js.map +1 -0
- package/packages/traceviz-server/dist/stats.d.ts +7 -0
- package/packages/traceviz-server/dist/stats.d.ts.map +1 -0
- package/packages/traceviz-server/dist/stats.js +81 -0
- package/packages/traceviz-server/dist/stats.js.map +1 -0
- package/packages/traceviz-server/dist/watcher.d.ts +54 -0
- package/packages/traceviz-server/dist/watcher.d.ts.map +1 -0
- package/packages/traceviz-server/dist/watcher.js +368 -0
- package/packages/traceviz-server/dist/watcher.js.map +1 -0
- package/packages/traceviz-server/package.json +16 -0
- package/packages/tracker-sdk/dist/index.d.ts +5 -0
- package/packages/tracker-sdk/dist/index.d.ts.map +1 -0
- package/packages/tracker-sdk/dist/index.js +4 -0
- package/packages/tracker-sdk/dist/index.js.map +1 -0
- package/packages/tracker-sdk/dist/options.d.ts +20 -0
- package/packages/tracker-sdk/dist/options.d.ts.map +1 -0
- package/packages/tracker-sdk/dist/options.js +46 -0
- package/packages/tracker-sdk/dist/options.js.map +1 -0
- package/packages/tracker-sdk/dist/provider.d.ts +104 -0
- package/packages/tracker-sdk/dist/provider.d.ts.map +1 -0
- package/packages/tracker-sdk/dist/provider.js +2 -0
- package/packages/tracker-sdk/dist/provider.js.map +1 -0
- package/packages/tracker-sdk/dist/registry.d.ts +26 -0
- package/packages/tracker-sdk/dist/registry.d.ts.map +1 -0
- package/packages/tracker-sdk/dist/registry.js +52 -0
- package/packages/tracker-sdk/dist/registry.js.map +1 -0
- package/packages/tracker-sdk/dist/toolPack.d.ts +10 -0
- package/packages/tracker-sdk/dist/toolPack.d.ts.map +1 -0
- package/packages/tracker-sdk/dist/toolPack.js +185 -0
- package/packages/tracker-sdk/dist/toolPack.js.map +1 -0
- package/packages/tracker-sdk/package.json +15 -0
- package/packages/tui/dist/index.d.ts +35 -0
- package/packages/tui/dist/index.d.ts.map +1 -0
- package/packages/tui/dist/index.js +354 -0
- package/packages/tui/dist/index.js.map +1 -0
- package/packages/tui/package.json +18 -0
- package/packages/worker-host-pool/dist/index.d.ts +33 -0
- package/packages/worker-host-pool/dist/index.d.ts.map +1 -0
- package/packages/worker-host-pool/dist/index.js +311 -0
- package/packages/worker-host-pool/dist/index.js.map +1 -0
- package/packages/worker-host-pool/package.json +14 -0
- package/packages/worker-pool/dist/index.d.ts +6 -0
- package/packages/worker-pool/dist/index.d.ts.map +1 -0
- package/packages/worker-pool/dist/index.js +15 -0
- package/packages/worker-pool/dist/index.js.map +1 -0
- package/packages/worker-pool/dist/lease.d.ts +36 -0
- package/packages/worker-pool/dist/lease.d.ts.map +1 -0
- package/packages/worker-pool/dist/lease.js +53 -0
- package/packages/worker-pool/dist/lease.js.map +1 -0
- package/packages/worker-pool/dist/ledger.d.ts +51 -0
- package/packages/worker-pool/dist/ledger.d.ts.map +1 -0
- package/packages/worker-pool/dist/ledger.js +165 -0
- package/packages/worker-pool/dist/ledger.js.map +1 -0
- package/packages/worker-pool/dist/mutex.d.ts +10 -0
- package/packages/worker-pool/dist/mutex.d.ts.map +1 -0
- package/packages/worker-pool/dist/mutex.js +22 -0
- package/packages/worker-pool/dist/mutex.js.map +1 -0
- package/packages/worker-pool/dist/pool.d.ts +33 -0
- package/packages/worker-pool/dist/pool.d.ts.map +1 -0
- package/packages/worker-pool/dist/pool.js +1727 -0
- package/packages/worker-pool/dist/pool.js.map +1 -0
- package/packages/worker-pool/dist/reaper.d.ts +94 -0
- package/packages/worker-pool/dist/reaper.d.ts.map +1 -0
- package/packages/worker-pool/dist/reaper.js +295 -0
- package/packages/worker-pool/dist/reaper.js.map +1 -0
- package/packages/worker-pool/dist/types.d.ts +249 -0
- package/packages/worker-pool/dist/types.d.ts.map +1 -0
- package/packages/worker-pool/dist/types.js +2 -0
- package/packages/worker-pool/dist/types.js.map +1 -0
- package/packages/worker-pool/package.json +16 -0
- package/packages/worker-sdk/dist/conformance.d.ts +64 -0
- package/packages/worker-sdk/dist/conformance.d.ts.map +1 -0
- package/packages/worker-sdk/dist/conformance.js +109 -0
- package/packages/worker-sdk/dist/conformance.js.map +1 -0
- package/packages/worker-sdk/dist/fake.d.ts +76 -0
- package/packages/worker-sdk/dist/fake.d.ts.map +1 -0
- package/packages/worker-sdk/dist/fake.js +142 -0
- package/packages/worker-sdk/dist/fake.js.map +1 -0
- package/packages/worker-sdk/dist/index.d.ts +5 -0
- package/packages/worker-sdk/dist/index.d.ts.map +1 -0
- package/packages/worker-sdk/dist/index.js +10 -0
- package/packages/worker-sdk/dist/index.js.map +1 -0
- package/packages/worker-sdk/dist/module.d.ts +46 -0
- package/packages/worker-sdk/dist/module.d.ts.map +1 -0
- package/packages/worker-sdk/dist/module.js +59 -0
- package/packages/worker-sdk/dist/module.js.map +1 -0
- package/packages/worker-sdk/dist/registry.d.ts +24 -0
- package/packages/worker-sdk/dist/registry.d.ts.map +1 -0
- package/packages/worker-sdk/dist/registry.js +49 -0
- package/packages/worker-sdk/dist/registry.js.map +1 -0
- package/packages/worker-sdk/dist/types.d.ts +138 -0
- package/packages/worker-sdk/dist/types.d.ts.map +1 -0
- package/packages/worker-sdk/dist/types.js +21 -0
- package/packages/worker-sdk/dist/types.js.map +1 -0
- package/packages/worker-sdk/package.json +15 -0
- package/packages/workflow/dist/index.d.ts +33 -0
- package/packages/workflow/dist/index.d.ts.map +1 -0
- package/packages/workflow/dist/index.js +125 -0
- package/packages/workflow/dist/index.js.map +1 -0
- package/packages/workflow/package.json +19 -0
- package/packages/workspace/dist/index.d.ts +70 -0
- package/packages/workspace/dist/index.d.ts.map +1 -0
- package/packages/workspace/dist/index.js +1016 -0
- package/packages/workspace/dist/index.js.map +1 -0
- package/packages/workspace/package.json +17 -0
- package/runtime-deps/anthropic-claude-agent-sdk/LICENSE.md +1 -0
- package/runtime-deps/anthropic-claude-agent-sdk/README.md +65 -0
- package/runtime-deps/anthropic-claude-agent-sdk/agentSdkTypes.d.ts +1 -0
- package/runtime-deps/anthropic-claude-agent-sdk/assistant.d.ts +135 -0
- package/runtime-deps/anthropic-claude-agent-sdk/assistant.mjs +190 -0
- package/runtime-deps/anthropic-claude-agent-sdk/bridge.d.ts +231 -0
- package/runtime-deps/anthropic-claude-agent-sdk/bridge.mjs +168 -0
- package/runtime-deps/anthropic-claude-agent-sdk/browser-sdk.d.ts +53 -0
- package/runtime-deps/anthropic-claude-agent-sdk/browser-sdk.js +93 -0
- package/runtime-deps/anthropic-claude-agent-sdk/extractFromBunfs.d.ts +1 -0
- package/runtime-deps/anthropic-claude-agent-sdk/extractFromBunfs.js +156 -0
- package/runtime-deps/anthropic-claude-agent-sdk/manifest.json +47 -0
- package/runtime-deps/anthropic-claude-agent-sdk/manifest.zst.json +55 -0
- package/runtime-deps/anthropic-claude-agent-sdk/node_modules/.bin/anthropic-ai-sdk +21 -0
- package/runtime-deps/anthropic-claude-agent-sdk/package.json +81 -0
- package/runtime-deps/anthropic-claude-agent-sdk/sdk-tools.d.ts +3170 -0
- package/runtime-deps/anthropic-claude-agent-sdk/sdk.d.ts +6000 -0
- package/runtime-deps/anthropic-claude-agent-sdk/sdk.mjs +119 -0
- package/runtime-deps/openai-codex/README.md +60 -0
- package/runtime-deps/openai-codex/bin/codex.js +229 -0
- package/runtime-deps/openai-codex/bin/rg +79 -0
- package/runtime-deps/openai-codex/package.json +22 -0
- package/vendor/claude-agent-acp/dist/acp-agent.d.ts +239 -0
- package/vendor/claude-agent-acp/dist/acp-agent.d.ts.map +1 -0
- package/vendor/claude-agent-acp/dist/acp-agent.js +2693 -0
- package/vendor/claude-agent-acp/dist/bundle.js +41230 -0
- package/vendor/claude-agent-acp/dist/index.d.ts +3 -0
- package/vendor/claude-agent-acp/dist/index.d.ts.map +1 -0
- package/vendor/claude-agent-acp/dist/index.js +67 -0
- package/vendor/claude-agent-acp/dist/lib.d.ts +6 -0
- package/vendor/claude-agent-acp/dist/lib.d.ts.map +1 -0
- package/vendor/claude-agent-acp/dist/lib.js +5 -0
- package/vendor/claude-agent-acp/dist/settings.d.ts +68 -0
- package/vendor/claude-agent-acp/dist/settings.d.ts.map +1 -0
- package/vendor/claude-agent-acp/dist/settings.js +182 -0
- package/vendor/claude-agent-acp/dist/tools.d.ts +103 -0
- package/vendor/claude-agent-acp/dist/tools.d.ts.map +1 -0
- package/vendor/claude-agent-acp/dist/tools.js +713 -0
- package/vendor/claude-agent-acp/dist/utils.d.ts +16 -0
- package/vendor/claude-agent-acp/dist/utils.d.ts.map +1 -0
- package/vendor/claude-agent-acp/dist/utils.js +83 -0
- package/vendor/claude-agent-acp/package.json +23 -0
- package/vendor/codex-acp/dist/index.js +21280 -0
- package/vendor/codex-acp/package.json +17 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { commanderErrorMessage, configureCommandForParse, hasHelpFlag, parseNonNegativeInteger, parsePositiveInteger, parseRequiredValue, } from "@lorenz/cli-kit";
|
|
3
|
+
import { loadWorkflow } from "@lorenz/workflow";
|
|
4
|
+
export function createRunsCommand(name = "lorenz runs") {
|
|
5
|
+
return new Command(name)
|
|
6
|
+
.description("Query Symphony run history from the observability API.")
|
|
7
|
+
.allowExcessArguments(false)
|
|
8
|
+
.option("--issue <id>", "Filter by issue identifier.", parseRequiredValue("--issue"))
|
|
9
|
+
.option("--failed", "Show failed runs.")
|
|
10
|
+
.option("--cost", "Show token and cost summary.")
|
|
11
|
+
.option("--retries", "Show retry summary by issue.")
|
|
12
|
+
.option("--id <runId>", "Show one run and related attempts.", parseRequiredValue("--id"))
|
|
13
|
+
.option("--limit <limit>", "Limit returned runs.", parsePositiveInteger("--limit"))
|
|
14
|
+
.option("--url <url>", "Observability API base URL.", parseUrl)
|
|
15
|
+
.option("--port <port>", "Observability API localhost port.", parseNonNegativeInteger("--port"))
|
|
16
|
+
.option("--json", "Print raw JSON response.");
|
|
17
|
+
}
|
|
18
|
+
export function parseRunsArgs(args) {
|
|
19
|
+
const command = configureCommandForParse(createRunsCommand());
|
|
20
|
+
if (hasHelpFlag(args))
|
|
21
|
+
return { status: "help", message: command.helpInformation().trimEnd() };
|
|
22
|
+
try {
|
|
23
|
+
command.parse(args, { from: "user" });
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return { status: "error", message: commanderErrorMessage(error) };
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
status: "ok",
|
|
30
|
+
options: runsOptionsFromCommanderOptions(command.opts()),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function runsOptionsFromCommanderOptions(parsed) {
|
|
34
|
+
return {
|
|
35
|
+
issue: parsed.issue ?? null,
|
|
36
|
+
failed: parsed.failed ?? false,
|
|
37
|
+
cost: parsed.cost ?? false,
|
|
38
|
+
retries: parsed.retries ?? false,
|
|
39
|
+
id: parsed.id ?? null,
|
|
40
|
+
limit: parsed.limit ?? null,
|
|
41
|
+
url: parsed.url ?? null,
|
|
42
|
+
port: parsed.port ?? null,
|
|
43
|
+
json: parsed.json ?? false,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export async function runRunsMain(args) {
|
|
47
|
+
const parsed = parseRunsArgs(args);
|
|
48
|
+
if (parsed.status === "help")
|
|
49
|
+
return `${parsed.message}\n`;
|
|
50
|
+
if (parsed.status === "error")
|
|
51
|
+
throw new Error(parsed.message);
|
|
52
|
+
return runRunsCommand(parsed.options);
|
|
53
|
+
}
|
|
54
|
+
export async function runRunsCommand(options) {
|
|
55
|
+
const url = await runsUrl(options);
|
|
56
|
+
const response = await fetch(url);
|
|
57
|
+
const body = (await response.json());
|
|
58
|
+
if (response.status === 200)
|
|
59
|
+
return renderOutput(body, options.json);
|
|
60
|
+
if (response.status === 404)
|
|
61
|
+
throw new Error(errorMessage(body, "Run not found"));
|
|
62
|
+
if (response.status === 503)
|
|
63
|
+
throw new Error(errorMessage(body, "Observability API unavailable"));
|
|
64
|
+
throw new Error(`Unexpected response status ${response.status}`);
|
|
65
|
+
}
|
|
66
|
+
async function runsUrl(options) {
|
|
67
|
+
const resolvedBaseUrl = await resolveBaseUrl(options);
|
|
68
|
+
const params = new URLSearchParams();
|
|
69
|
+
if (options.issue)
|
|
70
|
+
params.set("issue", options.issue);
|
|
71
|
+
if (options.failed)
|
|
72
|
+
params.set("failed", "true");
|
|
73
|
+
if (options.cost)
|
|
74
|
+
params.set("cost", "true");
|
|
75
|
+
if (options.retries)
|
|
76
|
+
params.set("retries", "true");
|
|
77
|
+
if (options.id)
|
|
78
|
+
params.set("id", options.id);
|
|
79
|
+
if (options.limit !== null)
|
|
80
|
+
params.set("limit", String(options.limit));
|
|
81
|
+
const query = params.toString();
|
|
82
|
+
return `${resolvedBaseUrl}/api/v1/runs${query ? `?${query}` : ""}`;
|
|
83
|
+
}
|
|
84
|
+
async function resolveBaseUrl(options) {
|
|
85
|
+
if (options.url)
|
|
86
|
+
return trimTrailingSlash(options.url);
|
|
87
|
+
const workflow = await loadWorkflow();
|
|
88
|
+
if (options.port !== null && options.port > 0)
|
|
89
|
+
return `http://${workflow.settings.server.host}:${options.port}`;
|
|
90
|
+
const port = workflow.settings.server.port;
|
|
91
|
+
if (typeof port === "number" && port > 0)
|
|
92
|
+
return `http://${workflow.settings.server.host}:${port}`;
|
|
93
|
+
throw new Error("No observability server port configured. Pass --port/--url or set server.port in WORKFLOW.md.");
|
|
94
|
+
}
|
|
95
|
+
function renderOutput(body, json) {
|
|
96
|
+
if (json)
|
|
97
|
+
return `${JSON.stringify(body, null, 2)}\n`;
|
|
98
|
+
const view = stringField(body, "view");
|
|
99
|
+
if (view === "run")
|
|
100
|
+
return renderRun(body);
|
|
101
|
+
if (view === "cost")
|
|
102
|
+
return renderCost(body);
|
|
103
|
+
if (view === "retries")
|
|
104
|
+
return renderRetries(body);
|
|
105
|
+
if (view === "runs")
|
|
106
|
+
return renderRuns(body);
|
|
107
|
+
return `${JSON.stringify(body, null, 2)}\n`;
|
|
108
|
+
}
|
|
109
|
+
function renderRun(body) {
|
|
110
|
+
const run = recordField(body, "run");
|
|
111
|
+
const lines = [
|
|
112
|
+
`Run ${stringField(run, "id")}`,
|
|
113
|
+
"",
|
|
114
|
+
`issue=${stringField(run, "issue_identifier")} agent=${stringField(run, "agent_kind")} outcome=${stringField(run, "outcome")} attempt=${numberField(run, "retry_attempt")}`,
|
|
115
|
+
`duration=${formatDuration(numberOrNull(run, "duration_ms"))} tokens=${formatInteger(tokenTotal(run))} turns=${numberField(run, "turn_count")}`,
|
|
116
|
+
`session=${stringField(run, "session_id") || "n/a"} worker=${stringField(run, "worker_host") || "local"}`,
|
|
117
|
+
`workspace=${stringField(run, "workspace_path") || "n/a"}`,
|
|
118
|
+
`last_event=${stringField(run, "last_event") || "n/a"} at=${stringField(run, "last_event_at") || "n/a"}`,
|
|
119
|
+
`failure_reason=${stringField(run, "failure_reason") || "n/a"}`,
|
|
120
|
+
`log_file=${stringField(recordField(run, "log_hints"), "symphony_log_file") || "n/a"}`,
|
|
121
|
+
];
|
|
122
|
+
const related = arrayField(body, "related_runs");
|
|
123
|
+
if (related.length === 0)
|
|
124
|
+
return `${lines.join("\n")}\n`;
|
|
125
|
+
return `${[
|
|
126
|
+
...lines,
|
|
127
|
+
"",
|
|
128
|
+
"Related runs",
|
|
129
|
+
renderTable(["ID", "OUTCOME", "TOKENS", "STARTED"], related.map((item) => {
|
|
130
|
+
const relatedRun = asRecord(item);
|
|
131
|
+
return [
|
|
132
|
+
stringField(relatedRun, "id"),
|
|
133
|
+
stringField(relatedRun, "outcome"),
|
|
134
|
+
formatInteger(tokenTotal(relatedRun)),
|
|
135
|
+
stringField(relatedRun, "started_at") || "n/a",
|
|
136
|
+
];
|
|
137
|
+
})),
|
|
138
|
+
].join("\n")}\n`;
|
|
139
|
+
}
|
|
140
|
+
function renderCost(body) {
|
|
141
|
+
const summary = recordField(body, "summary");
|
|
142
|
+
const byAgent = arrayField(summary, "by_agent");
|
|
143
|
+
const topRuns = arrayField(summary, "top_runs");
|
|
144
|
+
return `${[
|
|
145
|
+
"Cost Summary",
|
|
146
|
+
"",
|
|
147
|
+
renderTable(["AGENT", "RUNS", "DONE", "INPUT", "OUTPUT", "TOTAL", "AVG/RUN", "USD"], byAgent.map((item) => {
|
|
148
|
+
const row = asRecord(item);
|
|
149
|
+
return [
|
|
150
|
+
stringField(row, "agent_kind"),
|
|
151
|
+
formatInteger(numberField(row, "run_count")),
|
|
152
|
+
formatInteger(numberField(row, "completed_count")),
|
|
153
|
+
formatInteger(numberField(row, "input_tokens")),
|
|
154
|
+
formatInteger(numberField(row, "output_tokens")),
|
|
155
|
+
formatInteger(numberField(row, "total_tokens")),
|
|
156
|
+
formatFloat(numberField(row, "average_total_tokens_per_run")),
|
|
157
|
+
formatCost(numberOrNull(row, "estimated_cost_usd")),
|
|
158
|
+
];
|
|
159
|
+
})),
|
|
160
|
+
"",
|
|
161
|
+
"Top Runs",
|
|
162
|
+
renderTable(["ID", "ISSUE", "AGENT", "OUTCOME", "TOKENS"], topRuns.map((item) => {
|
|
163
|
+
const run = asRecord(item);
|
|
164
|
+
return [
|
|
165
|
+
stringField(run, "id"),
|
|
166
|
+
stringField(run, "issue_identifier"),
|
|
167
|
+
stringField(run, "agent_kind"),
|
|
168
|
+
stringField(run, "outcome"),
|
|
169
|
+
formatInteger(tokenTotal(run)),
|
|
170
|
+
];
|
|
171
|
+
})),
|
|
172
|
+
].join("\n")}\n`;
|
|
173
|
+
}
|
|
174
|
+
function renderRetries(body) {
|
|
175
|
+
const issues = arrayField(body, "issues");
|
|
176
|
+
return `${[
|
|
177
|
+
"Retry Summary",
|
|
178
|
+
"",
|
|
179
|
+
renderTable(["ISSUE", "ATTEMPTS", "LATEST", "TOKENS", "RUN ID", "FAILURE"], issues.map((item) => {
|
|
180
|
+
const issue = asRecord(item);
|
|
181
|
+
return [
|
|
182
|
+
stringField(issue, "issue_identifier"),
|
|
183
|
+
formatInteger(numberField(issue, "attempts")),
|
|
184
|
+
stringField(issue, "latest_outcome"),
|
|
185
|
+
formatInteger(numberField(issue, "total_tokens")),
|
|
186
|
+
stringField(issue, "latest_run_id"),
|
|
187
|
+
stringField(issue, "latest_failure_reason") || "n/a",
|
|
188
|
+
];
|
|
189
|
+
})),
|
|
190
|
+
].join("\n")}\n`;
|
|
191
|
+
}
|
|
192
|
+
function renderRuns(body) {
|
|
193
|
+
const summary = recordField(body, "summary");
|
|
194
|
+
const runs = arrayField(body, "runs");
|
|
195
|
+
return `${[
|
|
196
|
+
"Run History",
|
|
197
|
+
"",
|
|
198
|
+
`total=${numberField(summary, "total")} running=${numberField(summary, "running")} success=${numberField(summary, "success")} failed=${numberField(summary, "failed")} stalled=${numberField(summary, "stalled")} canceled=${numberField(summary, "canceled")}`,
|
|
199
|
+
"",
|
|
200
|
+
renderTable(["ID", "ISSUE", "AGENT", "OUTCOME", "ATTEMPT", "TURNS", "TOKENS", "DURATION", "SESSION"], runs.map((item) => {
|
|
201
|
+
const run = asRecord(item);
|
|
202
|
+
return [
|
|
203
|
+
stringField(run, "id"),
|
|
204
|
+
stringField(run, "issue_identifier"),
|
|
205
|
+
stringField(run, "agent_kind"),
|
|
206
|
+
stringField(run, "outcome"),
|
|
207
|
+
formatInteger(numberField(run, "retry_attempt")),
|
|
208
|
+
formatInteger(numberField(run, "turn_count")),
|
|
209
|
+
formatInteger(tokenTotal(run)),
|
|
210
|
+
formatDuration(numberOrNull(run, "duration_ms")),
|
|
211
|
+
compact(stringField(run, "session_id")),
|
|
212
|
+
];
|
|
213
|
+
})),
|
|
214
|
+
].join("\n")}\n`;
|
|
215
|
+
}
|
|
216
|
+
function renderTable(headers, rows) {
|
|
217
|
+
const widths = headers.map((header, index) => Math.max(header.length, ...rows.map((row) => row[index]?.length ?? 0)));
|
|
218
|
+
return [
|
|
219
|
+
formatRow(headers, widths),
|
|
220
|
+
formatRow(widths.map((width) => "-".repeat(width)), widths),
|
|
221
|
+
...rows.map((row) => formatRow(row, widths)),
|
|
222
|
+
].join("\n");
|
|
223
|
+
}
|
|
224
|
+
function formatRow(columns, widths) {
|
|
225
|
+
return columns.map((column, index) => column.padEnd(widths[index] ?? 0)).join(" ");
|
|
226
|
+
}
|
|
227
|
+
function errorMessage(body, fallback) {
|
|
228
|
+
return stringField(recordField(body, "error"), "message") || fallback;
|
|
229
|
+
}
|
|
230
|
+
function asRecord(value) {
|
|
231
|
+
return typeof value === "object" && value !== null ? value : {};
|
|
232
|
+
}
|
|
233
|
+
function recordField(record, key) {
|
|
234
|
+
return asRecord(record[key]);
|
|
235
|
+
}
|
|
236
|
+
function arrayField(record, key) {
|
|
237
|
+
return Array.isArray(record[key]) ? record[key] : [];
|
|
238
|
+
}
|
|
239
|
+
function stringField(record, key) {
|
|
240
|
+
const value = record[key];
|
|
241
|
+
return typeof value === "string" ? value : "";
|
|
242
|
+
}
|
|
243
|
+
function numberField(record, key) {
|
|
244
|
+
const value = record[key];
|
|
245
|
+
return typeof value === "number" && Number.isFinite(value) ? value : 0;
|
|
246
|
+
}
|
|
247
|
+
function numberOrNull(record, key) {
|
|
248
|
+
const value = record[key];
|
|
249
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
250
|
+
}
|
|
251
|
+
function tokenTotal(run) {
|
|
252
|
+
return numberField(recordField(run, "tokens"), "total_tokens");
|
|
253
|
+
}
|
|
254
|
+
function formatInteger(value) {
|
|
255
|
+
return String(Math.round(value));
|
|
256
|
+
}
|
|
257
|
+
function formatFloat(value) {
|
|
258
|
+
return value.toFixed(1);
|
|
259
|
+
}
|
|
260
|
+
function formatCost(value) {
|
|
261
|
+
return value === null ? "n/a" : `$${value.toFixed(4)}`;
|
|
262
|
+
}
|
|
263
|
+
function formatDuration(durationMs) {
|
|
264
|
+
if (durationMs === null)
|
|
265
|
+
return "n/a";
|
|
266
|
+
if (durationMs >= 1000)
|
|
267
|
+
return `${Math.floor(durationMs / 1000)}s`;
|
|
268
|
+
return `${durationMs}ms`;
|
|
269
|
+
}
|
|
270
|
+
function compact(value) {
|
|
271
|
+
if (!value)
|
|
272
|
+
return "n/a";
|
|
273
|
+
return value.length > 14 ? `${value.slice(0, 6)}...${value.slice(-5)}` : value;
|
|
274
|
+
}
|
|
275
|
+
function trimTrailingSlash(value) {
|
|
276
|
+
return value.trim().replace(/\/+$/, "");
|
|
277
|
+
}
|
|
278
|
+
function parseUrl(value) {
|
|
279
|
+
return trimTrailingSlash(parseRequiredValue("--url")(value));
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=runs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type WorkerDriverRegistry } from "@lorenz/worker-sdk";
|
|
2
|
+
/**
|
|
3
|
+
* Out-of-tree worker-driver loading: the configured worker-pool driver accepts a MODULE
|
|
4
|
+
* SPECIFIER (an npm package name, `@scope/name`, `./relative` or `/absolute`
|
|
5
|
+
* path, with an optional `#exportName` suffix) in addition to a registered
|
|
6
|
+
* kind. The daemon dynamic-imports the module at startup (and on a reload that
|
|
7
|
+
* changes the specifier) and registers it into the worker-driver registry under
|
|
8
|
+
* the EXACT configured string, so the pool's existing registry resolution
|
|
9
|
+
* (`registry.require(settings.driver)`) needs no changes and third parties
|
|
10
|
+
* ship drivers without forking the repo.
|
|
11
|
+
*
|
|
12
|
+
* Trust: a dynamic import runs arbitrary code in the daemon process - the same
|
|
13
|
+
* trust boundary as workspace hooks. Loads happen ONLY here (startup/reload),
|
|
14
|
+
* never on the acquire path, and the `worker_pool_driver_loaded` audit event
|
|
15
|
+
* records exactly which code went live from where.
|
|
16
|
+
*
|
|
17
|
+
* Module pinning: Node's ESM cache loads a given specifier's code once per
|
|
18
|
+
* daemon lifetime. Changing driver CODE requires a daemon restart; changing
|
|
19
|
+
* the CONFIG to a different specifier hot-loads the new module. A reload that
|
|
20
|
+
* re-encounters an already-loaded specifier emits
|
|
21
|
+
* `worker_pool_driver_module_pinned` so the pin is observable, and cache-busting
|
|
22
|
+
* query strings are rejected (unbounded module-graph growth, half-initialized
|
|
23
|
+
* module hazards).
|
|
24
|
+
*/
|
|
25
|
+
/** A parsed configured worker-pool driver value that is not a registered kind. */
|
|
26
|
+
export interface WorkerDriverRef {
|
|
27
|
+
/** The module specifier with any `#exportName` suffix removed. */
|
|
28
|
+
specifier: string;
|
|
29
|
+
/** The named export selected by a `#name` suffix; undefined means default. */
|
|
30
|
+
exportName?: string | undefined;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parses a configured driver string into its module-specifier form. Resolution
|
|
34
|
+
* rule (the single authority for the one-field-two-grammars overload): an
|
|
35
|
+
* EXACT registered kind always wins - {@link ensureWorkerDriverLoaded} checks
|
|
36
|
+
* `registry.get(driver)` BEFORE calling this, so a published npm package named
|
|
37
|
+
* `docker` can never shadow the built-in. A `#name` suffix selects a named
|
|
38
|
+
* export; everything else is the specifier itself.
|
|
39
|
+
*/
|
|
40
|
+
export declare function parseWorkerDriverRef(driver: string): WorkerDriverRef;
|
|
41
|
+
/** Options for {@link ensureWorkerDriverLoaded}. */
|
|
42
|
+
export interface EnsureWorkerDriverLoadedOptions {
|
|
43
|
+
/** Anchor for `./relative` specifiers; the daemon passes `dirname(workflow.path)`. */
|
|
44
|
+
baseDir?: string | undefined;
|
|
45
|
+
/** Structured-event sink for the loaded/pinned audit events. */
|
|
46
|
+
logEvent?: ((event: Record<string, unknown>) => void) | undefined;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Idempotently makes the configured worker-pool driver resolvable in
|
|
50
|
+
* `registry`. A registry hit (a built-in kind, an extension, or a specifier a
|
|
51
|
+
* previous call already loaded) is a no-op - except that a re-encountered
|
|
52
|
+
* loader-registered specifier emits `worker_pool_driver_module_pinned` so the
|
|
53
|
+
* code-is-pinned semantic is observable on reload. A miss parses the driver as
|
|
54
|
+
* a module reference, dynamic-imports it, and registers a factory whose kind
|
|
55
|
+
* IS the configured specifier string, emitting `worker_pool_driver_loaded`.
|
|
56
|
+
*
|
|
57
|
+
* Called by the daemon BEFORE `createWorkerPool` at startup and (via the
|
|
58
|
+
* coordinator's injected `driverLoader`) BEFORE `pool.reconcile` on reload, so
|
|
59
|
+
* the pool's registry resolution stays synchronous and transactional. A module
|
|
60
|
+
* registered for a reconcile that later fails is harmless: the registry is a
|
|
61
|
+
* catalog, and an unused entry is inert.
|
|
62
|
+
*/
|
|
63
|
+
export declare function ensureWorkerDriverLoaded(driver: string, registry: WorkerDriverRegistry, options?: EnsureWorkerDriverLoadedOptions): Promise<void>;
|
|
64
|
+
//# sourceMappingURL=workerDriverLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerDriverLoader.d.ts","sourceRoot":"","sources":["../src/workerDriverLoader.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAsBpE;AAgLD,oDAAoD;AACpD,MAAM,WAAW,+BAA+B;IAC9C,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACnE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,IAAI,CAAC,CAoCf"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { pathToFileURL } from "node:url";
|
|
3
|
+
import { assertWorkerDriverModule, } from "@lorenz/worker-sdk";
|
|
4
|
+
/**
|
|
5
|
+
* Parses a configured driver string into its module-specifier form. Resolution
|
|
6
|
+
* rule (the single authority for the one-field-two-grammars overload): an
|
|
7
|
+
* EXACT registered kind always wins - {@link ensureWorkerDriverLoaded} checks
|
|
8
|
+
* `registry.get(driver)` BEFORE calling this, so a published npm package named
|
|
9
|
+
* `docker` can never shadow the built-in. A `#name` suffix selects a named
|
|
10
|
+
* export; everything else is the specifier itself.
|
|
11
|
+
*/
|
|
12
|
+
export function parseWorkerDriverRef(driver) {
|
|
13
|
+
const hashIndex = driver.lastIndexOf("#");
|
|
14
|
+
const specifier = hashIndex === -1 ? driver : driver.slice(0, hashIndex);
|
|
15
|
+
const exportName = hashIndex === -1 ? undefined : driver.slice(hashIndex + 1);
|
|
16
|
+
if (specifier === "") {
|
|
17
|
+
throw new Error(`worker_pool_driver_invalid_specifier: ${driver} has an empty module specifier`);
|
|
18
|
+
}
|
|
19
|
+
if (exportName === "") {
|
|
20
|
+
throw new Error(`worker_pool_driver_invalid_specifier: ${driver} has an empty #exportName suffix`);
|
|
21
|
+
}
|
|
22
|
+
if (specifier.includes("?")) {
|
|
23
|
+
throw new Error(`worker_pool_driver_invalid_specifier: ${specifier} - cache-busting query strings are not ` +
|
|
24
|
+
`supported (module code is pinned for the daemon lifetime; restart the daemon to pick ` +
|
|
25
|
+
`up driver code changes)`);
|
|
26
|
+
}
|
|
27
|
+
return { specifier, exportName };
|
|
28
|
+
}
|
|
29
|
+
/** Whether a specifier is a filesystem path (vs a bare npm package name). */
|
|
30
|
+
function isPathSpecifier(specifier) {
|
|
31
|
+
return (specifier.startsWith("./") ||
|
|
32
|
+
specifier.startsWith("../") ||
|
|
33
|
+
path.isAbsolute(specifier) ||
|
|
34
|
+
specifier.startsWith("file:"));
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Dynamic-imports a worker-driver module and validates it. Relative and absolute
|
|
38
|
+
* paths resolve against `baseDir` via `pathToFileURL`; bare names resolve
|
|
39
|
+
* through the daemon's module graph (the operator installs the driver package
|
|
40
|
+
* next to symphony; `./path` is the escape hatch). The imported namespace is
|
|
41
|
+
* unwrapped (`default`, the transpiled-CJS `default.default` shape, or the
|
|
42
|
+
* selected named export) and passed through `assertWorkerDriverModule`, so a
|
|
43
|
+
* malformed module or an SDK version mismatch fails loud here - before the
|
|
44
|
+
* pool, the runtime, or any provision exists.
|
|
45
|
+
*/
|
|
46
|
+
async function loadWorkerDriverModule(specifier, options) {
|
|
47
|
+
const { baseDir, exportName, knownKinds } = options;
|
|
48
|
+
const resolvedFrom = isPathSpecifier(specifier) && !specifier.startsWith("file:")
|
|
49
|
+
? pathToFileURL(path.resolve(baseDir, specifier)).href
|
|
50
|
+
: specifier;
|
|
51
|
+
let namespace;
|
|
52
|
+
try {
|
|
53
|
+
namespace = (await import(resolvedFrom));
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
throw moduleResolutionError(specifier, resolvedFrom, error, knownKinds ?? []);
|
|
57
|
+
}
|
|
58
|
+
const source = exportName === undefined ? specifier : `${specifier}#${exportName}`;
|
|
59
|
+
const candidate = selectExport(namespace, exportName);
|
|
60
|
+
if (candidate === undefined) {
|
|
61
|
+
const available = Object.keys(namespace)
|
|
62
|
+
.filter((key) => key !== "__esModule")
|
|
63
|
+
.sort();
|
|
64
|
+
throw new Error(exportName === undefined
|
|
65
|
+
? `worker_pool_driver_module_invalid: ${source} has no default export` +
|
|
66
|
+
(available.length > 0 ? ` (named exports: ${available.join(", ")})` : "") +
|
|
67
|
+
`; export defineWorkerDriver(...) as the default export or select a named export with #name`
|
|
68
|
+
: `worker_pool_driver_module_invalid: ${source} has no export named "${exportName}"` +
|
|
69
|
+
(available.length > 0 ? ` (available: ${available.join(", ")})` : ""));
|
|
70
|
+
}
|
|
71
|
+
assertWorkerDriverModule(candidate, source);
|
|
72
|
+
return { module: candidate, resolvedFrom };
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Unwraps the driver module from the imported namespace: the selected named
|
|
76
|
+
* export (falling back through a transpiled-CJS `default` object), or the
|
|
77
|
+
* default export including the `default.default` shape some transpilers emit.
|
|
78
|
+
*/
|
|
79
|
+
function selectExport(namespace, exportName) {
|
|
80
|
+
if (exportName !== undefined) {
|
|
81
|
+
const named = namespace[exportName];
|
|
82
|
+
if (named !== undefined)
|
|
83
|
+
return named;
|
|
84
|
+
const viaDefault = namespace["default"];
|
|
85
|
+
if (typeof viaDefault === "object" && viaDefault !== null) {
|
|
86
|
+
return viaDefault[exportName];
|
|
87
|
+
}
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
let candidate = namespace["default"];
|
|
91
|
+
if (candidate === undefined) {
|
|
92
|
+
// A CJS module's exports are hoisted onto the namespace itself; accept the
|
|
93
|
+
// namespace only when it already looks like a driver module, so an ESM
|
|
94
|
+
// module that simply lacks a default export gets the no-default error.
|
|
95
|
+
return typeof namespace["create"] === "function" ? namespace : undefined;
|
|
96
|
+
}
|
|
97
|
+
// Transpiled-CJS double default: `module.exports = { default: <module> }`
|
|
98
|
+
// imported as `{ default: { default: <module> } }`. A real driver module has
|
|
99
|
+
// a `create` function, so only unwrap when the outer layer does not.
|
|
100
|
+
if (typeof candidate === "object" &&
|
|
101
|
+
candidate !== null &&
|
|
102
|
+
"default" in candidate &&
|
|
103
|
+
typeof candidate.create !== "function") {
|
|
104
|
+
candidate = candidate["default"];
|
|
105
|
+
}
|
|
106
|
+
return candidate;
|
|
107
|
+
}
|
|
108
|
+
/** Builds the actionable error for a failed module import. */
|
|
109
|
+
function moduleResolutionError(specifier, resolvedFrom, cause, knownKinds) {
|
|
110
|
+
const message = cause instanceof Error ? cause.message : String(cause);
|
|
111
|
+
if (isPathSpecifier(specifier)) {
|
|
112
|
+
return new Error(`worker_pool_driver_unavailable: ${specifier} (failed to import ${resolvedFrom}: ${message})`);
|
|
113
|
+
}
|
|
114
|
+
const kinds = knownKinds.length > 0
|
|
115
|
+
? ` (known kinds: ${[...knownKinds].sort().join(", ")})`
|
|
116
|
+
: " (no worker drivers registered)";
|
|
117
|
+
const close = closestKind(specifier, knownKinds);
|
|
118
|
+
const hint = close === undefined ? "" : ` - did you mean "${close}"?`;
|
|
119
|
+
return new Error(`worker_pool_driver_unavailable: ${specifier} is not a registered kind and could not be ` +
|
|
120
|
+
`resolved as a module${kinds}${hint} [${message}]`);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* The registered kind within a small edit distance of a mistyped bare
|
|
124
|
+
* specifier, or undefined when nothing is close. Mitigates the typo detection
|
|
125
|
+
* a closed config enum used to provide: `driver: dokcer` now reads as a module
|
|
126
|
+
* specifier, so the resolution failure points back at the built-in.
|
|
127
|
+
*/
|
|
128
|
+
function closestKind(specifier, kinds) {
|
|
129
|
+
let best;
|
|
130
|
+
for (const kind of kinds) {
|
|
131
|
+
const distance = editDistance(specifier.toLowerCase(), kind.toLowerCase());
|
|
132
|
+
if (distance <= 2 && (best === undefined || distance < best.distance)) {
|
|
133
|
+
best = { kind, distance };
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return best?.kind;
|
|
137
|
+
}
|
|
138
|
+
/** Levenshtein distance (small inputs only: driver kinds and specifiers). */
|
|
139
|
+
function editDistance(a, b) {
|
|
140
|
+
if (a === b)
|
|
141
|
+
return 0;
|
|
142
|
+
const rows = a.length + 1;
|
|
143
|
+
const cols = b.length + 1;
|
|
144
|
+
let prev = Array.from({ length: cols }, (_, j) => j);
|
|
145
|
+
for (let i = 1; i < rows; i += 1) {
|
|
146
|
+
const current = [i, ...new Array(cols - 1).fill(0)];
|
|
147
|
+
for (let j = 1; j < cols; j += 1) {
|
|
148
|
+
const substitution = (prev[j - 1] ?? 0) + (a[i - 1] === b[j - 1] ? 0 : 1);
|
|
149
|
+
current[j] = Math.min((prev[j] ?? 0) + 1, (current[j - 1] ?? 0) + 1, substitution);
|
|
150
|
+
}
|
|
151
|
+
prev = current;
|
|
152
|
+
}
|
|
153
|
+
return prev[cols - 1] ?? Math.max(a.length, b.length);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Specifiers THIS loader registered, per registry. Distinguishes a reload that
|
|
157
|
+
* re-encounters an already-loaded specifier (emit the module-pinned audit
|
|
158
|
+
* event) from an ordinary built-in/extension hit (silent no-op).
|
|
159
|
+
*/
|
|
160
|
+
const loadedSpecifiers = new WeakMap();
|
|
161
|
+
/**
|
|
162
|
+
* Idempotently makes the configured worker-pool driver resolvable in
|
|
163
|
+
* `registry`. A registry hit (a built-in kind, an extension, or a specifier a
|
|
164
|
+
* previous call already loaded) is a no-op - except that a re-encountered
|
|
165
|
+
* loader-registered specifier emits `worker_pool_driver_module_pinned` so the
|
|
166
|
+
* code-is-pinned semantic is observable on reload. A miss parses the driver as
|
|
167
|
+
* a module reference, dynamic-imports it, and registers a factory whose kind
|
|
168
|
+
* IS the configured specifier string, emitting `worker_pool_driver_loaded`.
|
|
169
|
+
*
|
|
170
|
+
* Called by the daemon BEFORE `createWorkerPool` at startup and (via the
|
|
171
|
+
* coordinator's injected `driverLoader`) BEFORE `pool.reconcile` on reload, so
|
|
172
|
+
* the pool's registry resolution stays synchronous and transactional. A module
|
|
173
|
+
* registered for a reconcile that later fails is harmless: the registry is a
|
|
174
|
+
* catalog, and an unused entry is inert.
|
|
175
|
+
*/
|
|
176
|
+
export async function ensureWorkerDriverLoaded(driver, registry, options = {}) {
|
|
177
|
+
const logEvent = options.logEvent ?? (() => { });
|
|
178
|
+
if (registry.get(driver) !== undefined) {
|
|
179
|
+
if (loadedSpecifiers.get(registry)?.has(driver)) {
|
|
180
|
+
logEvent({ event: "worker_pool_driver_module_pinned", specifier: driver });
|
|
181
|
+
}
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
const ref = parseWorkerDriverRef(driver);
|
|
185
|
+
const { module, resolvedFrom } = await loadWorkerDriverModule(ref.specifier, {
|
|
186
|
+
baseDir: options.baseDir ?? process.cwd(),
|
|
187
|
+
exportName: ref.exportName,
|
|
188
|
+
knownKinds: registry.kinds(),
|
|
189
|
+
});
|
|
190
|
+
// Register under the EXACT configured string: the pool resolves
|
|
191
|
+
// `settings.driver` verbatim, so the factory's kind must be the specifier,
|
|
192
|
+
// not the module's self-declared kind (which is logged for the audit trail).
|
|
193
|
+
registry.register({
|
|
194
|
+
kind: driver,
|
|
195
|
+
create: (driverOptions, deps) => module.create(driverOptions, deps),
|
|
196
|
+
});
|
|
197
|
+
let loaded = loadedSpecifiers.get(registry);
|
|
198
|
+
if (loaded === undefined) {
|
|
199
|
+
loaded = new Set();
|
|
200
|
+
loadedSpecifiers.set(registry, loaded);
|
|
201
|
+
}
|
|
202
|
+
loaded.add(driver);
|
|
203
|
+
logEvent({
|
|
204
|
+
event: "worker_pool_driver_loaded",
|
|
205
|
+
specifier: driver,
|
|
206
|
+
kind: module.kind,
|
|
207
|
+
sdkVersion: module.sdkVersion,
|
|
208
|
+
resolvedFrom,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=workerDriverLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerDriverLoader.js","sourceRoot":"","sources":["../src/workerDriverLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lorenz/cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": "./dist/index.js",
|
|
10
|
+
"./runs": "./dist/runs.js"
|
|
11
|
+
},
|
|
12
|
+
"bin": {
|
|
13
|
+
"lorenz": "./bin/lorenz.js"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@lorenz/acp": "file:../../packages/acp",
|
|
17
|
+
"@lorenz/agent-runner": "file:../../packages/agent-runner",
|
|
18
|
+
"@lorenz/agent-sdk": "file:../../packages/agent-sdk",
|
|
19
|
+
"@lorenz/cli-kit": "file:../../packages/cli-kit",
|
|
20
|
+
"@lorenz/config": "file:../../packages/config",
|
|
21
|
+
"@lorenz/dispatch": "file:../../packages/dispatch",
|
|
22
|
+
"@lorenz/dispatch-coordinator": "file:../../packages/dispatch-coordinator",
|
|
23
|
+
"@lorenz/docker-worker": "file:../../extensions/docker-worker",
|
|
24
|
+
"@lorenz/domain": "file:../../packages/domain",
|
|
25
|
+
"@lorenz/humanize": "file:../../packages/humanize",
|
|
26
|
+
"@lorenz/issue": "file:../../packages/issue",
|
|
27
|
+
"@lorenz/jira-tracker": "file:../../extensions/jira-tracker",
|
|
28
|
+
"@lorenz/linear-tracker": "file:../../extensions/linear-tracker",
|
|
29
|
+
"@lorenz/local-tracker": "file:../../extensions/local-tracker",
|
|
30
|
+
"@lorenz/log-file": "file:../../packages/log-file",
|
|
31
|
+
"@lorenz/mcp": "file:../../packages/mcp",
|
|
32
|
+
"@lorenz/memory-tracker": "file:../../extensions/memory-tracker",
|
|
33
|
+
"@lorenz/orchestrator": "file:../../packages/orchestrator",
|
|
34
|
+
"@lorenz/policies": "file:../../packages/policies",
|
|
35
|
+
"@lorenz/presenter": "file:../../packages/presenter",
|
|
36
|
+
"@lorenz/projections": "file:../../packages/projections",
|
|
37
|
+
"@lorenz/prompt": "file:../../packages/prompt",
|
|
38
|
+
"@lorenz/retry-scheduler": "file:../../packages/retry-scheduler",
|
|
39
|
+
"@lorenz/runtime": "file:../../packages/runtime",
|
|
40
|
+
"@lorenz/server": "file:../../packages/server",
|
|
41
|
+
"@lorenz/slack-tracker": "file:../../extensions/slack-tracker",
|
|
42
|
+
"@lorenz/ssh": "file:../../packages/ssh",
|
|
43
|
+
"@lorenz/static-worker": "file:../../packages/static-worker",
|
|
44
|
+
"@lorenz/tool-sdk": "file:../../packages/tool-sdk",
|
|
45
|
+
"@lorenz/traceviz-emitter": "file:../../packages/traceviz-emitter",
|
|
46
|
+
"@lorenz/tracker-sdk": "file:../../packages/tracker-sdk",
|
|
47
|
+
"@lorenz/tui": "file:../../packages/tui",
|
|
48
|
+
"@lorenz/worker-host-pool": "file:../../packages/worker-host-pool",
|
|
49
|
+
"@lorenz/worker-pool": "file:../../packages/worker-pool",
|
|
50
|
+
"@lorenz/worker-sdk": "file:../../packages/worker-sdk",
|
|
51
|
+
"@lorenz/workflow": "file:../../packages/workflow",
|
|
52
|
+
"@lorenz/workspace": "file:../../packages/workspace",
|
|
53
|
+
"commander": "^14.0.3",
|
|
54
|
+
"ink": "^7.0.1",
|
|
55
|
+
"react": "^19.2.5"
|
|
56
|
+
}
|
|
57
|
+
}
|