@excitedjs/dreamux 0.26.0-beta.264 → 0.26.0-beta.271
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -34
- package/dist/admin/client.js +18 -7
- package/dist/admin/client.js.map +1 -1
- package/dist/admin/socket.js +15 -104
- package/dist/admin/socket.js.map +1 -1
- package/dist/agent-runtime/capabilities.js +4 -17
- package/dist/agent-runtime/capabilities.js.map +1 -1
- package/dist/agent-runtime/catalog.js.map +1 -1
- package/dist/agent-runtime/external-provider.js.map +1 -1
- package/dist/agent-runtime/host-context.js +1 -12
- package/dist/agent-runtime/host-context.js.map +1 -1
- package/dist/agent-runtime/host-paths.js +1 -1
- package/dist/agent-runtime/host-paths.js.map +1 -1
- package/dist/agent-runtime/index.js +7 -0
- package/dist/agent-runtime/index.js.map +1 -1
- package/dist/agent-runtime/skill-sources.js +23 -6
- package/dist/agent-runtime/skill-sources.js.map +1 -1
- package/dist/channel/catalog.js.map +1 -1
- package/dist/channel/external-channel-provider.js.map +1 -1
- package/dist/cli/commands/daemon.js +5 -8
- package/dist/cli/commands/daemon.js.map +1 -1
- package/dist/cli/commands/dispatcher.js +11 -15
- package/dist/cli/commands/dispatcher.js.map +1 -1
- package/dist/cli/commands/index.js +4 -4
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/mcp.js +2 -4
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/onboard.js +0 -4
- package/dist/cli/commands/onboard.js.map +1 -1
- package/dist/cli/commands/parse.js +1 -1
- package/dist/cli/commands/parse.js.map +1 -1
- package/dist/cli/commands/serve.js +3 -2
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/status.js +3 -3
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/types.js +25 -3
- package/dist/cli/commands/types.js.map +1 -1
- package/dist/cli/commands/uninstall.js +2 -8
- package/dist/cli/commands/uninstall.js.map +1 -1
- package/dist/cli/doctor-plugins.js +44 -0
- package/dist/cli/doctor-plugins.js.map +1 -0
- package/dist/cli/doctor-types.js +2 -0
- package/dist/cli/doctor-types.js.map +1 -0
- package/dist/cli/doctor.js +48 -125
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/dreamux.js +2 -30
- package/dist/cli/dreamux.js.map +1 -1
- package/dist/cli/server.js +55 -70
- package/dist/cli/server.js.map +1 -1
- package/dist/command/errors.js +43 -2
- package/dist/command/errors.js.map +1 -1
- package/dist/command/host.js +10 -17
- package/dist/command/host.js.map +1 -1
- package/dist/command/payload.js +0 -9
- package/dist/command/payload.js.map +1 -1
- package/dist/command/port.js +0 -4
- package/dist/command/port.js.map +1 -1
- package/dist/command/registry.js +0 -4
- package/dist/command/registry.js.map +1 -1
- package/dist/command/schema.js.map +1 -1
- package/dist/command/types.js.map +1 -0
- package/dist/command/validate.js +22 -41
- package/dist/command/validate.js.map +1 -1
- package/dist/config/commands.js +46 -0
- package/dist/config/commands.js.map +1 -0
- package/dist/config/config.js +155 -169
- package/dist/config/config.js.map +1 -1
- package/dist/config/load.js +138 -0
- package/dist/config/load.js.map +1 -0
- package/dist/config/service.js +196 -0
- package/dist/config/service.js.map +1 -0
- package/dist/daemon/{service-control.js → control.js} +15 -16
- package/dist/daemon/control.js.map +1 -0
- package/dist/daemon/environment.js +353 -0
- package/dist/daemon/environment.js.map +1 -0
- package/dist/daemon/host.js +16 -0
- package/dist/daemon/host.js.map +1 -0
- package/dist/daemon/install.js +167 -69
- package/dist/daemon/install.js.map +1 -1
- package/dist/daemon/status.js +87 -0
- package/dist/daemon/status.js.map +1 -0
- package/dist/{cli/service-status-parse.js → daemon/unit.js} +90 -12
- package/dist/daemon/unit.js.map +1 -0
- package/dist/{service/mcp/descriptor.js → mcp/launch.js} +3 -7
- package/dist/mcp/launch.js.map +1 -0
- package/dist/mcp/server.js +9 -5
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/shim.js +18 -16
- package/dist/mcp/shim.js.map +1 -1
- package/dist/onboard/config-files.js +12 -26
- package/dist/onboard/config-files.js.map +1 -1
- package/dist/onboard/run.js +47 -66
- package/dist/onboard/run.js.map +1 -1
- package/dist/onboard/uninstall.js +59 -42
- package/dist/onboard/uninstall.js.map +1 -1
- package/dist/onboard/wizard.js +33 -18
- package/dist/onboard/wizard.js.map +1 -1
- package/dist/{onboard/commands.js → platform/command-runner.js} +7 -3
- package/dist/platform/command-runner.js.map +1 -0
- package/dist/platform/deduplicate.js +32 -0
- package/dist/platform/deduplicate.js.map +1 -0
- package/dist/{state → platform}/dispatcher-id.js +1 -1
- package/dist/platform/dispatcher-id.js.map +1 -0
- package/dist/platform/errors.js +23 -23
- package/dist/platform/errors.js.map +1 -1
- package/dist/{onboard/ledger.js → platform/file-ledger.js} +13 -38
- package/dist/platform/file-ledger.js.map +1 -0
- package/dist/platform/history-page.js +62 -0
- package/dist/platform/history-page.js.map +1 -0
- package/dist/platform/in-flight-work.js.map +1 -0
- package/dist/platform/instance-lock.js +95 -0
- package/dist/platform/instance-lock.js.map +1 -0
- package/dist/platform/json-value.js +26 -15
- package/dist/platform/json-value.js.map +1 -1
- package/dist/platform/jsonl.js.map +1 -1
- package/dist/platform/logger.js +5 -5
- package/dist/platform/logger.js.map +1 -1
- package/dist/platform/package-bin.js +3 -1
- package/dist/platform/package-bin.js.map +1 -1
- package/dist/platform/paths.js +42 -69
- package/dist/platform/paths.js.map +1 -1
- package/dist/platform/runtime-sockets.js +7 -2
- package/dist/platform/runtime-sockets.js.map +1 -1
- package/dist/platform/serial-queue.js +22 -0
- package/dist/platform/serial-queue.js.map +1 -0
- package/dist/platform/shutdown-errors.js.map +1 -0
- package/dist/platform/work-fence.js +30 -0
- package/dist/platform/work-fence.js.map +1 -0
- package/dist/plugin/hooks.js +407 -0
- package/dist/plugin/hooks.js.map +1 -0
- package/dist/plugin/host.js +97 -0
- package/dist/plugin/host.js.map +1 -0
- package/dist/plugin/loader.js +250 -0
- package/dist/plugin/loader.js.map +1 -0
- package/dist/provider-diagnostics.js +12 -8
- package/dist/provider-diagnostics.js.map +1 -1
- package/dist/registry/builtins.js +49 -45
- package/dist/registry/builtins.js.map +1 -1
- package/dist/registry/index.js +10 -2
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/provider-loader.js +41 -61
- package/dist/registry/provider-loader.js.map +1 -1
- package/dist/registry/provider-ref.js.map +1 -1
- package/dist/registry/registry.js +14 -22
- package/dist/registry/registry.js.map +1 -1
- package/dist/{command/catalog.js → server/command-catalog.js} +14 -5
- package/dist/server/command-catalog.js.map +1 -0
- package/dist/server/command-host.js +2 -0
- package/dist/server/command-host.js.map +1 -0
- package/dist/server-commands.js +1 -1
- package/dist/server-commands.js.map +1 -1
- package/dist/server.js +70 -129
- package/dist/server.js.map +1 -1
- package/dist/service/{agent-entity/activity-reader.js → agent/activity.js} +86 -34
- package/dist/service/agent/activity.js.map +1 -0
- package/dist/service/{teammate-service/admission-ledger.js → agent/admission.js} +66 -1
- package/dist/service/agent/admission.js.map +1 -0
- package/dist/service/{channel-submission.js → agent/channel-submission.js} +5 -5
- package/dist/service/agent/channel-submission.js.map +1 -0
- package/dist/service/{teammate-collection → agent}/commands.js +38 -50
- package/dist/service/agent/commands.js.map +1 -0
- package/dist/service/{teammate-service → agent}/completion-renderer.js +30 -5
- package/dist/service/agent/completion-renderer.js.map +1 -0
- package/dist/service/agent/errors.js.map +1 -0
- package/dist/service/agent/factory.js +78 -0
- package/dist/service/agent/factory.js.map +1 -0
- package/dist/service/{agent-entity/types.js → agent/identity.js} +28 -34
- package/dist/service/agent/identity.js.map +1 -0
- package/dist/service/agent/index.js +769 -0
- package/dist/service/agent/index.js.map +1 -0
- package/dist/service/agent/mcp.js +420 -0
- package/dist/service/agent/mcp.js.map +1 -0
- package/dist/service/agent/records.js +74 -0
- package/dist/service/agent/records.js.map +1 -0
- package/dist/service/agent/requests.js +172 -0
- package/dist/service/agent/requests.js.map +1 -0
- package/dist/service/{teammate-service/runtime-owner.js → agent/runtime-generation.js} +81 -79
- package/dist/service/agent/runtime-generation.js.map +1 -0
- package/dist/service/agent/runtime-id.js +22 -0
- package/dist/service/agent/runtime-id.js.map +1 -0
- package/dist/service/{agent-entity → agent}/runtime-state.js +33 -40
- package/dist/service/agent/runtime-state.js.map +1 -0
- package/dist/service/agent/service-types.js +28 -0
- package/dist/service/agent/service-types.js.map +1 -0
- package/dist/service/{teammate-service/index.js → agent/service.js} +236 -102
- package/dist/service/agent/service.js.map +1 -0
- package/dist/service/{agent-entity/identity-store.js → agent/store.js} +175 -96
- package/dist/service/agent/store.js.map +1 -0
- package/dist/service/agent/submission.js.map +1 -0
- package/dist/service/{teammate-collection → agent}/system-prompt.js +7 -3
- package/dist/service/agent/system-prompt.js.map +1 -0
- package/dist/service/agent/turn.js +89 -0
- package/dist/service/agent/turn.js.map +1 -0
- package/dist/service/agent/types.js.map +1 -0
- package/dist/service/channel-service/commands.js +7 -3
- package/dist/service/channel-service/commands.js.map +1 -1
- package/dist/{channel → service/channel-service}/core-port.js +6 -5
- package/dist/service/channel-service/core-port.js.map +1 -0
- package/dist/service/channel-service/index.js +211 -93
- package/dist/service/channel-service/index.js.map +1 -1
- package/dist/service/channel-service/mcp-delegate.js +8 -9
- package/dist/service/channel-service/mcp-delegate.js.map +1 -1
- package/dist/service/completion-router/index.js +27 -27
- package/dist/service/completion-router/index.js.map +1 -1
- package/dist/{channel → service/dispatcher-core-events}/conversation-projection.js +9 -7
- package/dist/service/dispatcher-core-events/conversation-projection.js.map +1 -0
- package/dist/service/dispatcher-core-events/index.js +76 -68
- package/dist/service/dispatcher-core-events/index.js.map +1 -1
- package/dist/service/dispatcher-core-events/seal.js +1 -24
- package/dist/service/dispatcher-core-events/seal.js.map +1 -1
- package/dist/service/dispatcher-service/agent.js +267 -45
- package/dist/service/dispatcher-service/agent.js.map +1 -1
- package/dist/service/dispatcher-service/base-prompt.js +2 -2
- package/dist/service/dispatcher-service/base-prompt.js.map +1 -1
- package/dist/service/dispatcher-service/index.js +139 -378
- package/dist/service/dispatcher-service/index.js.map +1 -1
- package/dist/service/dispatcher-service/lifecycle.js +230 -0
- package/dist/service/dispatcher-service/lifecycle.js.map +1 -0
- package/dist/{daemon → service/dispatcher-service}/restart-intent.js +17 -38
- package/dist/service/dispatcher-service/restart-intent.js.map +1 -0
- package/dist/service/dispatcher-workspace.js +10 -23
- package/dist/service/dispatcher-workspace.js.map +1 -1
- package/dist/service/dispatchers/commands.js +30 -31
- package/dist/service/dispatchers/commands.js.map +1 -1
- package/dist/service/dispatchers/index.js +92 -64
- package/dist/service/dispatchers/index.js.map +1 -1
- package/dist/service/index.js +2 -2
- package/dist/service/index.js.map +1 -1
- package/dist/{mcp → service/mcp}/catalog.js +11 -48
- package/dist/service/mcp/catalog.js.map +1 -0
- package/dist/service/mcp/commands.js +3 -3
- package/dist/service/mcp/commands.js.map +1 -1
- package/dist/service/mcp/dispatch-reminders.js +1 -1
- package/dist/service/mcp/dispatch-reminders.js.map +1 -1
- package/dist/service/mcp/identity-version.js +14 -0
- package/dist/service/mcp/identity-version.js.map +1 -1
- package/dist/service/mcp/leases.js +12 -33
- package/dist/service/mcp/leases.js.map +1 -1
- package/dist/service/mcp/tool-metadata.js +15 -76
- package/dist/service/mcp/tool-metadata.js.map +1 -1
- package/dist/service/name-allocator.js +2 -3
- package/dist/service/name-allocator.js.map +1 -1
- package/dist/service/scheduler/commands.js +7 -19
- package/dist/service/scheduler/commands.js.map +1 -1
- package/dist/service/scheduler/errors.js +1 -1
- package/dist/service/scheduler/errors.js.map +1 -1
- package/dist/service/scheduler/{service.js → index.js} +175 -142
- package/dist/service/scheduler/index.js.map +1 -0
- package/dist/service/scheduler/{mcp-delegate.js → mcp.js} +61 -58
- package/dist/service/scheduler/mcp.js.map +1 -0
- package/dist/service/scheduler/requests.js +60 -0
- package/dist/service/scheduler/requests.js.map +1 -0
- package/dist/service/scheduler/store.js +183 -151
- package/dist/service/scheduler/store.js.map +1 -1
- package/dist/service/scheduler/types.js +1 -33
- package/dist/service/scheduler/types.js.map +1 -1
- package/dist/service/{team-collection → team}/commands.js +45 -59
- package/dist/service/team/commands.js.map +1 -0
- package/dist/service/{team-collection → team}/create-request.js +8 -20
- package/dist/service/team/create-request.js.map +1 -0
- package/dist/service/{team-collection → team}/errors.js +7 -10
- package/dist/service/team/errors.js.map +1 -0
- package/dist/service/team/index.js +817 -0
- package/dist/service/team/index.js.map +1 -0
- package/dist/service/team/leader-mcp.js +42 -0
- package/dist/service/team/leader-mcp.js.map +1 -0
- package/dist/service/team/leader.js +157 -0
- package/dist/service/team/leader.js.map +1 -0
- package/dist/service/team/mcp.js +328 -0
- package/dist/service/team/mcp.js.map +1 -0
- package/dist/service/{team-collection/types.js → team/requests.js} +64 -15
- package/dist/service/team/requests.js.map +1 -0
- package/dist/service/team/service.js +903 -0
- package/dist/service/team/service.js.map +1 -0
- package/dist/service/team/store.js +373 -0
- package/dist/service/team/store.js.map +1 -0
- package/dist/service/team/team-summary.js.map +1 -0
- package/dist/service/team/teams-port.js +2 -0
- package/dist/service/team/teams-port.js.map +1 -0
- package/dist/service/team/types.js +22 -0
- package/dist/service/team/types.js.map +1 -0
- package/dist/service/workflow-service/commands.js +5 -6
- package/dist/service/workflow-service/commands.js.map +1 -1
- package/dist/service/workflow-service/errors.js +2 -0
- package/dist/service/workflow-service/errors.js.map +1 -1
- package/dist/service/workflow-service/index.js +80 -112
- package/dist/service/workflow-service/index.js.map +1 -1
- package/dist/service/workflow-service/journal.js +90 -6
- package/dist/service/workflow-service/journal.js.map +1 -1
- package/dist/service/workflow-service/limits.js +20 -9
- package/dist/service/workflow-service/limits.js.map +1 -1
- package/dist/service/workflow-service/mcp.js +171 -0
- package/dist/service/workflow-service/mcp.js.map +1 -0
- package/dist/service/workflow-service/protocol.js +72 -1
- package/dist/service/workflow-service/protocol.js.map +1 -1
- package/dist/service/workflow-service/requests.js +70 -0
- package/dist/service/workflow-service/requests.js.map +1 -0
- package/dist/service/workflow-service/run.js +258 -145
- package/dist/service/workflow-service/run.js.map +1 -1
- package/dist/service/workflow-service/runner-process.js +0 -19
- package/dist/service/workflow-service/runner-process.js.map +1 -1
- package/dist/service/workflow-service/runner.js +6 -30
- package/dist/service/workflow-service/runner.js.map +1 -1
- package/dist/service/workflow-service/script-compiler.js +7 -9
- package/dist/service/workflow-service/script-compiler.js.map +1 -1
- package/dist/service/workflow-service/{run-support.js → semaphore.js} +1 -30
- package/dist/service/workflow-service/semaphore.js.map +1 -0
- package/dist/service/workflow-service/store.js +105 -25
- package/dist/service/workflow-service/store.js.map +1 -1
- package/dist/service/workflow-service/types.js +1 -77
- package/dist/service/workflow-service/types.js.map +1 -1
- package/dist/service/worktree/manager.js +29 -62
- package/dist/service/worktree/manager.js.map +1 -1
- package/dist/service/worktree/paths.js +4 -1
- package/dist/service/worktree/paths.js.map +1 -1
- package/dist/service/worktree/repo-request.js +38 -14
- package/dist/service/worktree/repo-request.js.map +1 -1
- package/dist/service/worktree/types.js +2 -0
- package/dist/service/worktree/types.js.map +1 -0
- package/dist/service/worktree/workspaces.js +27 -34
- package/dist/service/worktree/workspaces.js.map +1 -1
- package/package.json +13 -8
- package/skills/dispatcher/dreamux-maintenance/SKILL.md +5 -4
- package/skills/dispatcher/dreamux-maintenance/references/builtin-bootstrap.md +50 -0
- package/skills/dispatcher/dreamux-maintenance/references/builtin-codex.md +4 -5
- package/skills/dispatcher/dreamux-maintenance/references/builtin-feishu.md +69 -11
- package/skills/dispatcher/dreamux-maintenance/references/config-envelope.md +77 -12
- package/skills/dispatcher/dreamux-maintenance/references/feishu-access-v3.md +39 -24
- package/skills/dispatcher/dreamux-maintenance/references/service-lifecycle.md +105 -37
- package/dist/channel/conversation-projection.js.map +0 -1
- package/dist/channel/core-port.js.map +0 -1
- package/dist/cli/server-ctl.js +0 -163
- package/dist/cli/server-ctl.js.map +0 -1
- package/dist/cli/service-status-parse.js.map +0 -1
- package/dist/command/catalog.js.map +0 -1
- package/dist/config/config-helpers.js +0 -100
- package/dist/config/config-helpers.js.map +0 -1
- package/dist/daemon/restart-intent.js.map +0 -1
- package/dist/daemon/service-control.js.map +0 -1
- package/dist/mcp/catalog.js.map +0 -1
- package/dist/mcp/failure-text.js +0 -46
- package/dist/mcp/failure-text.js.map +0 -1
- package/dist/onboard/commands.js.map +0 -1
- package/dist/onboard/ledger.js.map +0 -1
- package/dist/onboard/service-node.js +0 -183
- package/dist/onboard/service-node.js.map +0 -1
- package/dist/onboard/service.js +0 -310
- package/dist/onboard/service.js.map +0 -1
- package/dist/platform/atomic-write.js +0 -63
- package/dist/platform/atomic-write.js.map +0 -1
- package/dist/platform/error-info.js +0 -11
- package/dist/platform/error-info.js.map +0 -1
- package/dist/platform/json-document-store.js +0 -54
- package/dist/platform/json-document-store.js.map +0 -1
- package/dist/service/agent-entity/activity-errors.js +0 -71
- package/dist/service/agent-entity/activity-errors.js.map +0 -1
- package/dist/service/agent-entity/activity-reader.js.map +0 -1
- package/dist/service/agent-entity/agent-config.js +0 -48
- package/dist/service/agent-entity/agent-config.js.map +0 -1
- package/dist/service/agent-entity/history-query.js +0 -60
- package/dist/service/agent-entity/history-query.js.map +0 -1
- package/dist/service/agent-entity/identity-store.js.map +0 -1
- package/dist/service/agent-entity/read-helpers.js +0 -172
- package/dist/service/agent-entity/read-helpers.js.map +0 -1
- package/dist/service/agent-entity/runtime-profile.js +0 -53
- package/dist/service/agent-entity/runtime-profile.js.map +0 -1
- package/dist/service/agent-entity/runtime-state.js.map +0 -1
- package/dist/service/agent-entity/types.js.map +0 -1
- package/dist/service/channel-service/mcp-delegates.js +0 -21
- package/dist/service/channel-service/mcp-delegates.js.map +0 -1
- package/dist/service/channel-service/types.js.map +0 -1
- package/dist/service/channel-submission.js.map +0 -1
- package/dist/service/closed-fact.js +0 -49
- package/dist/service/closed-fact.js.map +0 -1
- package/dist/service/deduplicate.js +0 -42
- package/dist/service/deduplicate.js.map +0 -1
- package/dist/service/dispatcher-core-events/scoped-source.js +0 -59
- package/dist/service/dispatcher-core-events/scoped-source.js.map +0 -1
- package/dist/service/dispatcher-service/dispatcher-workflows.js +0 -50
- package/dist/service/dispatcher-service/dispatcher-workflows.js.map +0 -1
- package/dist/service/dispatcher-service/identity.js +0 -97
- package/dist/service/dispatcher-service/identity.js.map +0 -1
- package/dist/service/dispatcher-service/inbound-task-drain.js +0 -37
- package/dist/service/dispatcher-service/inbound-task-drain.js.map +0 -1
- package/dist/service/dispatcher-service/input-source-lifecycle.js +0 -312
- package/dist/service/dispatcher-service/input-source-lifecycle.js.map +0 -1
- package/dist/service/dispatcher-service/input-source-start-rollback.js +0 -53
- package/dist/service/dispatcher-service/input-source-start-rollback.js.map +0 -1
- package/dist/service/dispatcher-service/mcp-delegates.js +0 -67
- package/dist/service/dispatcher-service/mcp-delegates.js.map +0 -1
- package/dist/service/dispatcher-service/restart-notice.js +0 -27
- package/dist/service/dispatcher-service/restart-notice.js.map +0 -1
- package/dist/service/dispatcher-service/runnable-channel.js +0 -13
- package/dist/service/dispatcher-service/runnable-channel.js.map +0 -1
- package/dist/service/dispatcher-service/runtime-helpers.js +0 -11
- package/dist/service/dispatcher-service/runtime-helpers.js.map +0 -1
- package/dist/service/dispatcher-service/runtime-status.js +0 -35
- package/dist/service/dispatcher-service/runtime-status.js.map +0 -1
- package/dist/service/dispatcher-service/team-leader-handle.js +0 -29
- package/dist/service/dispatcher-service/team-leader-handle.js.map +0 -1
- package/dist/service/dispatcher-service/team-runtime-stop.js +0 -13
- package/dist/service/dispatcher-service/team-runtime-stop.js.map +0 -1
- package/dist/service/dispatcher-service/teammate-ops.js +0 -14
- package/dist/service/dispatcher-service/teammate-ops.js.map +0 -1
- package/dist/service/frozen-snapshot.js +0 -16
- package/dist/service/frozen-snapshot.js.map +0 -1
- package/dist/service/in-flight-work.js.map +0 -1
- package/dist/service/legacy-state.js +0 -119
- package/dist/service/legacy-state.js.map +0 -1
- package/dist/service/mcp/descriptor.js.map +0 -1
- package/dist/service/scheduler/mcp-delegate.js.map +0 -1
- package/dist/service/scheduler/service.js.map +0 -1
- package/dist/service/serial-queue.js +0 -64
- package/dist/service/serial-queue.js.map +0 -1
- package/dist/service/shutdown-errors.js.map +0 -1
- package/dist/service/team-collection/commands.js.map +0 -1
- package/dist/service/team-collection/create-request.js.map +0 -1
- package/dist/service/team-collection/errors.js.map +0 -1
- package/dist/service/team-collection/index.js +0 -304
- package/dist/service/team-collection/index.js.map +0 -1
- package/dist/service/team-collection/mcp-delegate.js +0 -389
- package/dist/service/team-collection/mcp-delegate.js.map +0 -1
- package/dist/service/team-collection/read-helpers.js +0 -66
- package/dist/service/team-collection/read-helpers.js.map +0 -1
- package/dist/service/team-collection/read-model.js +0 -120
- package/dist/service/team-collection/read-model.js.map +0 -1
- package/dist/service/team-collection/roster-reader.js +0 -52
- package/dist/service/team-collection/roster-reader.js.map +0 -1
- package/dist/service/team-collection/runtime-registry.js +0 -369
- package/dist/service/team-collection/runtime-registry.js.map +0 -1
- package/dist/service/team-collection/store.js +0 -320
- package/dist/service/team-collection/store.js.map +0 -1
- package/dist/service/team-collection/types.js.map +0 -1
- package/dist/service/team-collection/worktree-cleanup.js +0 -45
- package/dist/service/team-collection/worktree-cleanup.js.map +0 -1
- package/dist/service/team-service/closing.js +0 -279
- package/dist/service/team-service/closing.js.map +0 -1
- package/dist/service/team-service/collaborators.js +0 -82
- package/dist/service/team-service/collaborators.js.map +0 -1
- package/dist/service/team-service/completion-targets.js +0 -72
- package/dist/service/team-service/completion-targets.js.map +0 -1
- package/dist/service/team-service/index.js +0 -559
- package/dist/service/team-service/index.js.map +0 -1
- package/dist/service/team-service/leader-agent.js +0 -170
- package/dist/service/team-service/leader-agent.js.map +0 -1
- package/dist/service/team-service/roster-projection.js +0 -69
- package/dist/service/team-service/roster-projection.js.map +0 -1
- package/dist/service/team-service/team-summary.js.map +0 -1
- package/dist/service/team-service/types.js +0 -61
- package/dist/service/team-service/types.js.map +0 -1
- package/dist/service/teammate-collection/commands.js.map +0 -1
- package/dist/service/teammate-collection/dissolve-members.js +0 -44
- package/dist/service/teammate-collection/dissolve-members.js.map +0 -1
- package/dist/service/teammate-collection/errors.js.map +0 -1
- package/dist/service/teammate-collection/index.js +0 -497
- package/dist/service/teammate-collection/index.js.map +0 -1
- package/dist/service/teammate-collection/mcp-delegate.js +0 -210
- package/dist/service/teammate-collection/mcp-delegate.js.map +0 -1
- package/dist/service/teammate-collection/mcp-tool-descriptors.js +0 -421
- package/dist/service/teammate-collection/mcp-tool-descriptors.js.map +0 -1
- package/dist/service/teammate-collection/system-prompt.js.map +0 -1
- package/dist/service/teammate-collection/types.js.map +0 -1
- package/dist/service/teammate-service/admission-ledger.js.map +0 -1
- package/dist/service/teammate-service/completion-renderer.js.map +0 -1
- package/dist/service/teammate-service/factory.js +0 -5
- package/dist/service/teammate-service/factory.js.map +0 -1
- package/dist/service/teammate-service/index.js.map +0 -1
- package/dist/service/teammate-service/runtime-owner.js.map +0 -1
- package/dist/service/teammate-service/submission.js.map +0 -1
- package/dist/service/teammate-service/turn-coordinator.js +0 -93
- package/dist/service/teammate-service/turn-coordinator.js.map +0 -1
- package/dist/service/teammate-service/turn-recording.js +0 -178
- package/dist/service/teammate-service/turn-recording.js.map +0 -1
- package/dist/service/teammate-service/types.js +0 -12
- package/dist/service/teammate-service/types.js.map +0 -1
- package/dist/service/workflow-service/agent-policy.js +0 -6
- package/dist/service/workflow-service/agent-policy.js.map +0 -1
- package/dist/service/workflow-service/json-args.js +0 -72
- package/dist/service/workflow-service/json-args.js.map +0 -1
- package/dist/service/workflow-service/run-support.js.map +0 -1
- package/dist/service/workflow-service/run-terminal.js +0 -111
- package/dist/service/workflow-service/run-terminal.js.map +0 -1
- package/dist/state/dispatcher-id.js.map +0 -1
- package/dist/state/dispatcher-store.js +0 -73
- package/dist/state/dispatcher-store.js.map +0 -1
- /package/dist/{service/channel-service → command}/types.js +0 -0
- /package/dist/{service → platform}/in-flight-work.js +0 -0
- /package/dist/{service → platform}/shutdown-errors.js +0 -0
- /package/dist/service/{teammate-collection → agent}/errors.js +0 -0
- /package/dist/service/{teammate-service → agent}/submission.js +0 -0
- /package/dist/service/{teammate-collection → agent}/types.js +0 -0
- /package/dist/service/{team-service → team}/team-summary.js +0 -0
package/README.md
CHANGED
|
@@ -274,12 +274,7 @@ default used to initialize a missing `~/.dreamux/state/<id>/access.json` is:
|
|
|
274
274
|
"require_mention": true
|
|
275
275
|
},
|
|
276
276
|
"allow_users": [],
|
|
277
|
-
"pending": {}
|
|
278
|
-
"observed_chats": [],
|
|
279
|
-
"warnings": [],
|
|
280
|
-
"last_gate": {
|
|
281
|
-
"at": 0
|
|
282
|
-
}
|
|
277
|
+
"pending": {}
|
|
283
278
|
}
|
|
284
279
|
```
|
|
285
280
|
|
|
@@ -287,10 +282,9 @@ default used to initialize a missing `~/.dreamux/state/<id>/access.json` is:
|
|
|
287
282
|
`dm_policy`, `group.policy`, `group.allow_chats`, and
|
|
288
283
|
`group.require_mention` are operator policy. `allow_users` is shared authority:
|
|
289
284
|
live pairing/Owner approval may append it, and a quiesced operator may maintain
|
|
290
|
-
it. `pending
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
chat nor sender authority.
|
|
285
|
+
it. `pending` is a Channel-owned runtime ledger field. Add real chat or sender
|
|
286
|
+
ids only through the quiesced field-specific maintenance workflow below; the
|
|
287
|
+
secure default grants neither chat nor sender authority.
|
|
294
288
|
|
|
295
289
|
For human group messages, `group.require_mention` runs first and `block` drops
|
|
296
290
|
all human traffic. Under `allowlist`, an unlisted chat drops and a listed chat
|
|
@@ -307,12 +301,16 @@ Before deploying, review every non-empty `allow_chats` entry under both
|
|
|
307
301
|
be trusted and whose passive known-bot observation should remain enabled.
|
|
308
302
|
|
|
309
303
|
The access path is always `~/.dreamux/state/<id>/access.json`;
|
|
310
|
-
`
|
|
311
|
-
|
|
304
|
+
`DREAMUX_ROOT` is the one relocation variable for both `config.json` and
|
|
305
|
+
`access.json`; `dreamux config path` still names `config.json` only. For a
|
|
306
|
+
manual access edit, stop the daemon, confirm the process exited,
|
|
312
307
|
re-read after stop, apply only the requested policy/shared-authority fields via
|
|
313
308
|
an owner-only sibling temporary file and atomic replacement at mode `0600`,
|
|
314
309
|
validate the complete current V3 shape without printing values, and then start
|
|
315
|
-
the
|
|
310
|
+
the daemon. Preserve `version` and the `pending` ledger field exactly. Never
|
|
311
|
+
edit the file while the daemon runs: the running Channel holds the file in
|
|
312
|
+
memory and its next write (a pairing request or an owner approval, for example)
|
|
313
|
+
replaces the whole file, discarding the edit.
|
|
316
314
|
A missing file after confirmed stop is valid current state: start from the full
|
|
317
315
|
secure V3 default shown above, create a missing state directory at `0700`, and
|
|
318
316
|
atomically create the first `0600` file. This is initialization, not a rebuild.
|
|
@@ -418,29 +416,44 @@ their own config and visible-reply tools.
|
|
|
418
416
|
node common/scripts/install-run-rush.js test
|
|
419
417
|
```
|
|
420
418
|
|
|
421
|
-
- `tests/
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
approval fail-fast.
|
|
419
|
+
- `tests/channel-service.test.ts`, `tests/channel-input-format.test.ts` and
|
|
420
|
+
`tests/entity-turn-owner.test.ts` — Channel lifecycle, neutral inbound
|
|
421
|
+
rendering and turn ownership with controlled provider fixtures.
|
|
425
422
|
- `tests/bin-launcher.test.ts` — real launcher behavior from arbitrary cwd and
|
|
426
423
|
through symlinks.
|
|
427
|
-
- `tests/doctor.test.ts`
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
424
|
+
- `tests/doctor-plugins.test.ts`, `tests/onboard.test.ts` and
|
|
425
|
+
`tests/uninstall.test.ts` — provider diagnostics, onboarding, existence-only
|
|
426
|
+
uninstall previews and recursive removal of the whole Dreamux root, including
|
|
427
|
+
other files inside it. Preview changes no files and does not enumerate root
|
|
428
|
+
contents; actual filesystem removal errors still propagate. After path
|
|
429
|
+
normalization, a removal path inside or containing a provider-derived
|
|
430
|
+
operator home is refused before changing the service. Physical symlink
|
|
431
|
+
aliases are not resolved.
|
|
432
|
+
- `tests/official-provider-entries.test.ts`, `tests/plugin-loader.test.ts` and
|
|
433
|
+
`tests/provider-ref.test.ts` — package defaults, plugin contributions and
|
|
434
|
+
configured provider references.
|
|
435
|
+
- `tests/teammate-completion-lifecycle.test.ts`,
|
|
436
|
+
`tests/completion-delivery-owners.test.ts` and
|
|
437
|
+
`tests/mcp-delegate-catalog.test.ts` — actual service completion owners and
|
|
438
|
+
MCP tool reachability, with controlled runtimes.
|
|
439
|
+
- `tests/codex-live.test.ts` — installed-version and real app-server
|
|
440
|
+
initialization/thread compatibility with an empty home and no model auth.
|
|
441
|
+
Missing Codex fails unless `DREAMUX_SKIP_LIVE_CODEX=1` explicitly excludes
|
|
442
|
+
live checks for an environment without Codex.
|
|
443
|
+
- `tests/codex-inbound-live.test.ts`, `tests/codex-native-contracts-live.test.ts`
|
|
444
|
+
and `tests/codex-activity-live.test.ts` — six native model cases for issue #63
|
|
445
|
+
non-blocking inbound, effort, resume, structured output and live activity.
|
|
446
|
+
These require `DREAMUX_RUN_LIVE_MODEL_GATE=1` and usable model auth in both
|
|
447
|
+
local and CI runs. The default auth-free run explicitly excludes them and
|
|
448
|
+
does not certify their contracts. The inbound gate uses real Codex and MCP
|
|
449
|
+
with fake Feishu platform IO.
|
|
450
|
+
Provider constructors and defaults use public package entries. Native RPC,
|
|
451
|
+
protocol types, version/initialization probes and Feishu bot IO interception
|
|
452
|
+
retain test-only internal imports because no public instrumentation seam
|
|
453
|
+
exposes these facts. Provider changes must preserve those live assertions.
|
|
454
|
+
- `../agent-runtime/claude-code/tests/` contains Claude runtime, session and
|
|
455
|
+
RPC tests using synthetic protocol and subprocess fixtures. These tests do
|
|
456
|
+
not certify authenticated Claude model behavior.
|
|
444
457
|
|
|
445
458
|
## License
|
|
446
459
|
|
package/dist/admin/client.js
CHANGED
|
@@ -13,23 +13,34 @@
|
|
|
13
13
|
* only this side can observe.
|
|
14
14
|
*/
|
|
15
15
|
import { connect } from 'node:net';
|
|
16
|
-
import { errorMessage
|
|
16
|
+
import { errorMessage } from '@excitedjs/dreamux-utils';
|
|
17
|
+
import { TransportError } from '../platform/errors.js';
|
|
17
18
|
import { adminSocketPath as defaultAdminSocketPath } from '../platform/paths.js';
|
|
18
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* A failure the SERVER reported, carrying the server's own stable code.
|
|
21
|
+
*
|
|
22
|
+
* Structurally exactly `command/errors.ts`'s `CommandFailure`: `action` is
|
|
23
|
+
* typed as an exact optional `string`, matching that interface's `action?:
|
|
24
|
+
* string` field. A constructor parameter property typed `action?: string`
|
|
25
|
+
* would instead give the field the type an optional *parameter* has inside
|
|
26
|
+
* the constructor body, `string | undefined`, which `exactOptionalPropertyTypes`
|
|
27
|
+
* rejects where a `CommandFailure` is expected — so the field is declared and
|
|
28
|
+
* conditionally assigned by hand instead.
|
|
29
|
+
*/
|
|
19
30
|
export class AdminClientError extends Error {
|
|
20
31
|
code;
|
|
21
|
-
action;
|
|
22
|
-
constructor(code, message,
|
|
23
32
|
/**
|
|
24
33
|
* The next step the failure stated for itself, when it stated one. Absent
|
|
25
34
|
* means the failure never authored one, so a caller renders the code and
|
|
26
35
|
* the message alone.
|
|
27
36
|
*/
|
|
28
|
-
action
|
|
37
|
+
action;
|
|
38
|
+
constructor(code, message, action) {
|
|
29
39
|
super(message);
|
|
30
|
-
this.code = code;
|
|
31
|
-
this.action = action;
|
|
32
40
|
this.name = 'AdminClientError';
|
|
41
|
+
this.code = code;
|
|
42
|
+
if (action !== undefined)
|
|
43
|
+
this.action = action;
|
|
33
44
|
}
|
|
34
45
|
}
|
|
35
46
|
const DEFAULT_TIMEOUT_MS = 10_000;
|
package/dist/admin/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/admin/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,OAAO,EAAe,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/admin/client.ts"],"names":[],"mappings":"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"}
|
package/dist/admin/socket.js
CHANGED
|
@@ -12,22 +12,17 @@
|
|
|
12
12
|
* Command port the in-process Channel invoker does, which is where bounding,
|
|
13
13
|
* schema validation, and shutdown admission happen for both.
|
|
14
14
|
*/
|
|
15
|
+
import { chmod, rm } from 'node:fs/promises';
|
|
15
16
|
import { createServer } from 'node:net';
|
|
16
|
-
import { chmod, readFile, rm, writeFile } from 'node:fs/promises';
|
|
17
17
|
import { dirname } from 'node:path';
|
|
18
|
-
import { ensureOwnerOnlyDir } from '@excitedjs/dreamux-utils';
|
|
18
|
+
import { ensureOwnerOnlyDir, errorInfo } from '@excitedjs/dreamux-utils';
|
|
19
19
|
import { DreamuxError, TransportError, ValidationError, commandFailure, } from '../command/errors.js';
|
|
20
|
-
import {
|
|
21
|
-
|
|
22
|
-
* Max attempts to reclaim a stale pidfile before yielding to a competitor.
|
|
23
|
-
* Mirrors claudemux's instance-lock policy.
|
|
24
|
-
*/
|
|
25
|
-
const RECLAIM_ATTEMPTS = 3;
|
|
20
|
+
import { acquireInstanceLock, defaultIsPidAlive, readPidFile, releaseInstanceLock, } from '../platform/instance-lock.js';
|
|
21
|
+
import { adminSocketLockPath } from '../platform/paths.js';
|
|
26
22
|
export function createAdminSocketServer(server, socketPath, options = {}) {
|
|
27
|
-
const chmodFn = options.chmodFn ?? chmod;
|
|
28
23
|
const isAlive = options.isPidAlive ?? defaultIsPidAlive;
|
|
29
24
|
const myPid = options.selfPid ?? process.pid;
|
|
30
|
-
const lockPath =
|
|
25
|
+
const lockPath = adminSocketLockPath(socketPath);
|
|
31
26
|
let netServer = null;
|
|
32
27
|
let holdLock = false;
|
|
33
28
|
return {
|
|
@@ -40,13 +35,14 @@ export function createAdminSocketServer(server, socketPath, options = {}) {
|
|
|
40
35
|
// (probe, cleanup, bind) behind a pidfile that's created with the
|
|
41
36
|
// exclusive `wx` flag — atomic at the filesystem level. Once we
|
|
42
37
|
// hold it, nobody else can be inside this start() concurrently.
|
|
43
|
-
// Stale pidfiles (dead holder) are reclaimed up to
|
|
44
|
-
// times; a live holder always loses the
|
|
38
|
+
// Stale pidfiles (dead holder) are reclaimed up to a bounded number of
|
|
39
|
+
// times (`platform/instance-lock.ts`); a live holder always loses the
|
|
40
|
+
// race.
|
|
45
41
|
// The socket + lock live under the volatile run root (issue #182),
|
|
46
42
|
// which may not exist yet on a fresh install — create it owner-only, and
|
|
47
43
|
// tighten it if a pre-existing run dir is group/world-traversable.
|
|
48
44
|
await ensureOwnerOnlyDir(dirname(socketPath));
|
|
49
|
-
await
|
|
45
|
+
await acquireInstanceLock(lockPath, myPid, isAlive);
|
|
50
46
|
holdLock = true;
|
|
51
47
|
try {
|
|
52
48
|
// Lock is held — stale socket cleanup is now race-free.
|
|
@@ -57,9 +53,9 @@ export function createAdminSocketServer(server, socketPath, options = {}) {
|
|
|
57
53
|
netServer.listen(socketPath, () => res());
|
|
58
54
|
});
|
|
59
55
|
// PR #3 review #2: chmod is a hard requirement, not best-effort —
|
|
60
|
-
// a 0666 admin socket exposes
|
|
56
|
+
// a 0666 admin socket exposes every admin Command to every local user.
|
|
61
57
|
try {
|
|
62
|
-
await
|
|
58
|
+
await chmod(socketPath, 0o600);
|
|
63
59
|
}
|
|
64
60
|
catch (e) {
|
|
65
61
|
const chmodErr = e instanceof Error ? e.message : String(e);
|
|
@@ -81,7 +77,7 @@ export function createAdminSocketServer(server, socketPath, options = {}) {
|
|
|
81
77
|
catch {
|
|
82
78
|
/* best-effort */
|
|
83
79
|
}
|
|
84
|
-
await
|
|
80
|
+
await releaseInstanceLock(lockPath, myPid);
|
|
85
81
|
holdLock = false;
|
|
86
82
|
throw err;
|
|
87
83
|
}
|
|
@@ -98,98 +94,12 @@ export function createAdminSocketServer(server, socketPath, options = {}) {
|
|
|
98
94
|
}
|
|
99
95
|
}
|
|
100
96
|
if (holdLock) {
|
|
101
|
-
await
|
|
97
|
+
await releaseInstanceLock(lockPath, myPid);
|
|
102
98
|
holdLock = false;
|
|
103
99
|
}
|
|
104
100
|
},
|
|
105
101
|
};
|
|
106
102
|
}
|
|
107
|
-
/**
|
|
108
|
-
* Acquire the single-instance pidfile lock.
|
|
109
|
-
*
|
|
110
|
-
* Atomic `wx` create races safely: two competing startups both attempt the
|
|
111
|
-
* same call; one wins, one gets EEXIST. The loser then reads the holder's
|
|
112
|
-
* PID and decides:
|
|
113
|
-
* - alive holder → throw (split-brain prevention)
|
|
114
|
-
* - dead holder → remove the stale file and retry the `wx` create
|
|
115
|
-
*
|
|
116
|
-
* RECLAIM_ATTEMPTS bounds the retry so a pathologically broken filesystem
|
|
117
|
-
* doesn't spin forever.
|
|
118
|
-
*/
|
|
119
|
-
async function acquirePidLock(lockPath, myPid, isAlive) {
|
|
120
|
-
for (let attempt = 0; attempt < RECLAIM_ATTEMPTS; attempt++) {
|
|
121
|
-
try {
|
|
122
|
-
await writeFile(lockPath, `${myPid}\n`, { flag: 'wx', mode: 0o600 });
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
catch (err) {
|
|
126
|
-
if (err.code !== 'EEXIST')
|
|
127
|
-
throw err;
|
|
128
|
-
}
|
|
129
|
-
const holder = await readPidFile(lockPath);
|
|
130
|
-
if (holder === myPid) {
|
|
131
|
-
// Re-entrant — shouldn't happen in normal use, but treat as held.
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
if (holder !== null && isAlive(holder)) {
|
|
135
|
-
throw new Error(`admin socket lockfile ${lockPath} is held by another live dreamux serve process (pid ${holder}). ` +
|
|
136
|
-
'Refusing to bind to avoid split-brain admin control. ' +
|
|
137
|
-
'Stop the other instance before starting a new one.');
|
|
138
|
-
}
|
|
139
|
-
// Stale lock (unreadable PID, or PID belongs to a dead process).
|
|
140
|
-
// Remove and retry the exclusive create. A competitor reclaiming the
|
|
141
|
-
// same stale file simply wins this round of `wx`, and we'll see *their*
|
|
142
|
-
// live PID on the next iteration and bail out.
|
|
143
|
-
try {
|
|
144
|
-
await rm(lockPath, { force: true });
|
|
145
|
-
}
|
|
146
|
-
catch {
|
|
147
|
-
/* concurrent reclaim — retry the wx open */
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
throw new Error(`admin socket lockfile ${lockPath} could not be acquired after ${RECLAIM_ATTEMPTS} reclaim attempts; ` +
|
|
151
|
-
'a competitor is racing us. Retry after the other startup finishes.');
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Release the pidfile lock — but only if it still names us. A holder whose
|
|
155
|
-
* file was already reclaimed by a competitor (e.g. we were paused long
|
|
156
|
-
* enough for our PID to look dead) must not delete the new holder's lock.
|
|
157
|
-
*/
|
|
158
|
-
async function releasePidLock(lockPath, myPid) {
|
|
159
|
-
if ((await readPidFile(lockPath)) !== myPid)
|
|
160
|
-
return;
|
|
161
|
-
try {
|
|
162
|
-
await rm(lockPath, { force: true });
|
|
163
|
-
}
|
|
164
|
-
catch {
|
|
165
|
-
/* best-effort */
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
async function readPidFile(path) {
|
|
169
|
-
let txt;
|
|
170
|
-
try {
|
|
171
|
-
txt = (await readFile(path, 'utf8')).trim();
|
|
172
|
-
}
|
|
173
|
-
catch {
|
|
174
|
-
return null;
|
|
175
|
-
}
|
|
176
|
-
if (txt === '')
|
|
177
|
-
return null;
|
|
178
|
-
const n = Number.parseInt(txt, 10);
|
|
179
|
-
return Number.isInteger(n) && n > 0 ? n : null;
|
|
180
|
-
}
|
|
181
|
-
function defaultIsPidAlive(pid) {
|
|
182
|
-
if (!Number.isInteger(pid) || pid <= 0)
|
|
183
|
-
return false;
|
|
184
|
-
try {
|
|
185
|
-
process.kill(pid, 0);
|
|
186
|
-
return true;
|
|
187
|
-
}
|
|
188
|
-
catch (e) {
|
|
189
|
-
// EPERM means the process exists but we can't signal it (still alive).
|
|
190
|
-
return e.code === 'EPERM';
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
103
|
/**
|
|
194
104
|
* Fail loud when a still-running OLD-version dreamux server holds the
|
|
195
105
|
* pre-#182 admin socket lock (issue #182 PR-1, PR #183 review P1).
|
|
@@ -306,7 +216,8 @@ function reportedFailure(server, method, error) {
|
|
|
306
216
|
*/
|
|
307
217
|
function adminInvocation(req) {
|
|
308
218
|
const params = req.params;
|
|
309
|
-
if (params !== undefined &&
|
|
219
|
+
if (params !== undefined &&
|
|
220
|
+
(typeof params !== 'object' || Array.isArray(params))) {
|
|
310
221
|
throw new ValidationError("request 'params' must be an object");
|
|
311
222
|
}
|
|
312
223
|
const { dispatcher_id: dispatcherId, ...rest } = params ?? {};
|
package/dist/admin/socket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/admin/socket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/admin/socket.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,15 +8,7 @@
|
|
|
8
8
|
* cannot pass a valid object at load and return a different or invalid one when
|
|
9
9
|
* the catalog later asks.
|
|
10
10
|
*/
|
|
11
|
-
import { canonicalJsonValue, isPlainObject, JsonValueError, } from '../platform/json-value.js';
|
|
12
|
-
/** Core's independent bounds on a provider's declared capabilities. */
|
|
13
|
-
const MAX_TAGS = 32;
|
|
14
|
-
const MAX_TAG_LENGTH = 64;
|
|
15
|
-
const PUBLIC_CONFIG_BOUNDS = {
|
|
16
|
-
maxDepth: 4,
|
|
17
|
-
maxEntries: 32,
|
|
18
|
-
maxBytes: 4096,
|
|
19
|
-
};
|
|
11
|
+
import { canonicalJsonValue, isPlainObject, JSON_VALUE_UNBOUNDED, JsonValueError, } from '../platform/json-value.js';
|
|
20
12
|
export class InvalidAgentRuntimeCapabilitiesError extends Error {
|
|
21
13
|
providerRef;
|
|
22
14
|
detail;
|
|
@@ -69,16 +61,11 @@ function normalizeTags(value, ref) {
|
|
|
69
61
|
if (!Array.isArray(value)) {
|
|
70
62
|
throw new InvalidAgentRuntimeCapabilitiesError(ref, 'tags must be an array');
|
|
71
63
|
}
|
|
72
|
-
if (value.length > MAX_TAGS) {
|
|
73
|
-
throw new InvalidAgentRuntimeCapabilitiesError(ref, `tags may hold at most ${MAX_TAGS} entries`);
|
|
74
|
-
}
|
|
75
64
|
const seen = new Set();
|
|
76
65
|
const tags = [];
|
|
77
66
|
for (const entry of value) {
|
|
78
|
-
if (typeof entry !== 'string' ||
|
|
79
|
-
|
|
80
|
-
entry.length > MAX_TAG_LENGTH) {
|
|
81
|
-
throw new InvalidAgentRuntimeCapabilitiesError(ref, `each tag must be a non-empty string of at most ${MAX_TAG_LENGTH} characters`);
|
|
67
|
+
if (typeof entry !== 'string' || entry.length === 0) {
|
|
68
|
+
throw new InvalidAgentRuntimeCapabilitiesError(ref, 'each tag must be a non-empty string');
|
|
82
69
|
}
|
|
83
70
|
// Declaration order is the provider's; duplicates are simply collapsed.
|
|
84
71
|
if (seen.has(entry))
|
|
@@ -95,7 +82,7 @@ function normalizePublicConfig(value, ref) {
|
|
|
95
82
|
throw new InvalidAgentRuntimeCapabilitiesError(ref, 'publicConfig must be an object when present');
|
|
96
83
|
}
|
|
97
84
|
try {
|
|
98
|
-
return canonicalJsonValue(value,
|
|
85
|
+
return canonicalJsonValue(value, JSON_VALUE_UNBOUNDED);
|
|
99
86
|
}
|
|
100
87
|
catch (error) {
|
|
101
88
|
if (error instanceof JsonValueError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/agent-runtime/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,cAAc,GACf,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/agent-runtime/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/agent-runtime/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,6BAA6B,GAG9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,8BAA8B,GAE/B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/agent-runtime/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-provider.js","sourceRoot":"","sources":["../../src/agent-runtime/external-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"external-provider.js","sourceRoot":"","sources":["../../src/agent-runtime/external-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,19 +5,8 @@
|
|
|
5
5
|
* There are no host↔neutral adapters here: core's logger IS the neutral
|
|
6
6
|
* `DreamuxLogger` (see `platform/logger.ts`, pino wrapped at construction) and
|
|
7
7
|
* the entity's runtime state issues the neutral `AgentRuntimeStateSink` lease
|
|
8
|
-
* directly, so both are injected into the create context as-is.
|
|
9
|
-
* that lives here is the host's process-env injection seam below.
|
|
8
|
+
* directly, so both are injected into the create context as-is.
|
|
10
9
|
*/
|
|
11
|
-
/**
|
|
12
|
-
* The host's neutral process-env injection seam (settled env-boundary decision,
|
|
13
|
-
* issue #209). Core merges these entries into every runtime's spawn env after
|
|
14
|
-
* `process.env` and before the provider's own `config.extra_env`. It is empty
|
|
15
|
-
* today — the dreamux host injects nothing — but is the single, discoverable
|
|
16
|
-
* place to add a host-owned env entry should one ever be needed, so providers
|
|
17
|
-
* never reach back into core for it. A provider's `extra_env` is its OWN config
|
|
18
|
-
* and is never routed through here.
|
|
19
|
-
*/
|
|
20
|
-
export const HOST_INJECT_ENV = {};
|
|
21
10
|
export const DISABLE_FEATURE_CRON = 'cron';
|
|
22
11
|
/**
|
|
23
12
|
* Disable the runtime's model-facing "ask the user a question" capability. A
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-context.js","sourceRoot":"","sources":["../../src/agent-runtime/host-context.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"host-context.js","sourceRoot":"","sources":["../../src/agent-runtime/host-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-paths.js","sourceRoot":"","sources":["../../src/agent-runtime/host-paths.ts"],"names":[],"mappings":"AAcA,OAAO,
|
|
1
|
+
{"version":3,"file":"host-paths.js","sourceRoot":"","sources":["../../src/agent-runtime/host-paths.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,CAAC,MAAM,gBAAgB,GAA4B;IACvD,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,QAAQ;IACjB,iBAAiB,EAAE,GAAG,EAAE,CAAC,0BAA0B,EAAE;CACtD,CAAC"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
// This directory's own barrel (not the package entry point), re-exporting
|
|
2
|
+
// every submodule the AgentRuntime seam is made of. eslint-disable, not an
|
|
3
|
+
// entryFiles exclusion: `agent-runtime/` stays a stable src/ layer (audit
|
|
4
|
+
// §6.1), but only the package's declared entry point(s) are exempted from
|
|
5
|
+
// the package-wide re-export ban.
|
|
6
|
+
/* eslint-disable no-restricted-syntax -- directory barrel, see comment above */
|
|
1
7
|
export * from './capabilities.js';
|
|
2
8
|
export * from './catalog.js';
|
|
3
9
|
export * from './host-paths.js';
|
|
4
10
|
export * from './host-context.js';
|
|
5
11
|
export * from './external-provider.js';
|
|
12
|
+
/* eslint-enable no-restricted-syntax -- end of directory barrel */
|
|
6
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-runtime/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,kCAAkC;AAClC,gFAAgF;AAChF,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,mEAAmE"}
|
|
@@ -29,6 +29,24 @@ export function parseAgentRuntimeSkillSources(value, label) {
|
|
|
29
29
|
};
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Canonicalize required (core-owned) skill roots once. Pass the result as
|
|
34
|
+
* `requiredRoots` to fence several {@link normalizeAgentRuntimeSkillSources}
|
|
35
|
+
* calls against the same roots without re-touching the filesystem for them on
|
|
36
|
+
* every call.
|
|
37
|
+
*/
|
|
38
|
+
export async function canonicalizeRequiredSkillSources(sources, label) {
|
|
39
|
+
const result = [];
|
|
40
|
+
for (const source of sources) {
|
|
41
|
+
const root = await canonicalSkillRoot(source, label, 'required source');
|
|
42
|
+
result.push({
|
|
43
|
+
name: source.name,
|
|
44
|
+
path: root.path,
|
|
45
|
+
skillNames: root.skillNames,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
32
50
|
/**
|
|
33
51
|
* Normalize caller-provided skill roots into a stable provider-neutral shape:
|
|
34
52
|
* paths are existing readable directories, stored as canonical realpaths, root
|
|
@@ -37,11 +55,12 @@ export function parseAgentRuntimeSkillSources(value, label) {
|
|
|
37
55
|
export async function normalizeAgentRuntimeSkillSources(sources, opts) {
|
|
38
56
|
const seenRoots = new Set();
|
|
39
57
|
const seenSkillNames = new Map();
|
|
40
|
-
|
|
41
|
-
|
|
58
|
+
const requiredRoots = opts.requiredRoots ??
|
|
59
|
+
(await canonicalizeRequiredSkillSources(opts.requiredSources ?? [], opts.label));
|
|
60
|
+
for (const root of requiredRoots) {
|
|
42
61
|
seenRoots.add(root.path);
|
|
43
62
|
for (const skillName of root.skillNames) {
|
|
44
|
-
seenSkillNames.set(skillName, `required source ${JSON.stringify(
|
|
63
|
+
seenSkillNames.set(skillName, `required source ${JSON.stringify(root.name)}`);
|
|
45
64
|
}
|
|
46
65
|
}
|
|
47
66
|
const normalized = [];
|
|
@@ -147,9 +166,7 @@ export async function normalizeSkillSources(parsed, options = {}) {
|
|
|
147
166
|
try {
|
|
148
167
|
return await normalizeAgentRuntimeSkillSources(parsed, {
|
|
149
168
|
label: "param 'skill_sources'",
|
|
150
|
-
|
|
151
|
-
? { requiredSources: options.requiredSources }
|
|
152
|
-
: {}),
|
|
169
|
+
requiredSources: options.requiredSources,
|
|
153
170
|
});
|
|
154
171
|
}
|
|
155
172
|
catch (err) {
|