@xgjktech/xg_cwork_im 1.19.42 → 1.19.43
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 +492 -492
- package/dist/src/account-connection.d.ts +1 -1
- package/dist/src/account-connection.d.ts.map +1 -1
- package/dist/src/account-connection.js +25 -136
- package/dist/src/account-connection.js.map +1 -1
- package/dist/src/account-reconciler.d.ts +8 -17
- package/dist/src/account-reconciler.d.ts.map +1 -1
- package/dist/src/account-reconciler.js +11 -31
- package/dist/src/account-reconciler.js.map +1 -1
- package/dist/src/account-reconciler.test.js +1 -19
- package/dist/src/account-reconciler.test.js.map +1 -1
- package/dist/src/action-store-access.d.ts +0 -2
- package/dist/src/action-store-access.d.ts.map +1 -1
- package/dist/src/action-store-access.js +0 -7
- package/dist/src/action-store-access.js.map +1 -1
- package/dist/src/active-round-registry.d.ts +0 -6
- package/dist/src/active-round-registry.d.ts.map +1 -1
- package/dist/src/active-round-registry.js +2 -27
- package/dist/src/active-round-registry.js.map +1 -1
- package/dist/src/agent-stream-client-registry.d.ts +0 -2
- package/dist/src/agent-stream-client-registry.d.ts.map +1 -1
- package/dist/src/agent-stream-client-registry.js +1 -6
- package/dist/src/agent-stream-client-registry.js.map +1 -1
- package/dist/src/apply-sync-mapping.d.ts +1 -1
- package/dist/src/apply-sync-mapping.d.ts.map +1 -1
- package/dist/src/auth.d.ts +0 -2
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/auth.js +0 -4
- package/dist/src/auth.js.map +1 -1
- package/dist/src/block-streaming-config.test.js +1 -7
- package/dist/src/block-streaming-config.test.js.map +1 -1
- package/dist/src/build-project-prompt.test.js +18 -18
- package/dist/src/channel-config.d.ts +17 -83
- package/dist/src/channel-config.d.ts.map +1 -1
- package/dist/src/channel-config.js +13 -46
- package/dist/src/channel-config.js.map +1 -1
- package/dist/src/channel-config.test.js +1 -58
- package/dist/src/channel-config.test.js.map +1 -1
- package/dist/src/channel.d.ts +3 -4
- package/dist/src/channel.d.ts.map +1 -1
- package/dist/src/channel.js +4 -127
- package/dist/src/channel.js.map +1 -1
- package/dist/src/connection.d.ts +0 -28
- package/dist/src/connection.d.ts.map +1 -1
- package/dist/src/connection.js +78 -155
- package/dist/src/connection.js.map +1 -1
- package/dist/src/deliver-text.test.js +22 -22
- package/dist/src/delivery/deliver-text.test.js +22 -22
- package/dist/src/delivery/turn-deliver-buffer.test.js +25 -25
- package/dist/src/dispatch-mentioned-reply.d.ts +2 -7
- package/dist/src/dispatch-mentioned-reply.d.ts.map +1 -1
- package/dist/src/dispatch-mentioned-reply.js +68 -243
- package/dist/src/dispatch-mentioned-reply.js.map +1 -1
- package/dist/src/gateway-session-queue.d.ts +6 -2
- package/dist/src/gateway-session-queue.d.ts.map +1 -1
- package/dist/src/gateway-session-queue.js +21 -78
- package/dist/src/gateway-session-queue.js.map +1 -1
- package/dist/src/group-history-tool.d.ts +1 -1
- package/dist/src/group-history-tool.d.ts.map +1 -1
- package/dist/src/inbound-display.d.ts.map +1 -1
- package/dist/src/inbound-display.js +1 -2
- package/dist/src/inbound-display.js.map +1 -1
- package/dist/src/inbound-input-media.d.ts +1 -1
- package/dist/src/inbound-input-media.d.ts.map +1 -1
- package/dist/src/inbound-media-local.d.ts +1 -1
- package/dist/src/inbound-media-local.d.ts.map +1 -1
- package/dist/src/inbound-model.d.ts +0 -9
- package/dist/src/inbound-model.d.ts.map +1 -1
- package/dist/src/inbound-model.js +0 -26
- package/dist/src/inbound-model.js.map +1 -1
- package/dist/src/inbound-model.test.js +1 -23
- package/dist/src/inbound-model.test.js.map +1 -1
- package/dist/src/inbound-terminal-state.d.ts +0 -2
- package/dist/src/inbound-terminal-state.d.ts.map +1 -1
- package/dist/src/inbound-terminal-state.js +2 -7
- package/dist/src/inbound-terminal-state.js.map +1 -1
- package/dist/src/modified-file-push-tracker.d.ts +24 -0
- package/dist/src/modified-file-push-tracker.d.ts.map +1 -0
- package/dist/src/modified-file-push-tracker.js +125 -0
- package/dist/src/modified-file-push-tracker.js.map +1 -0
- package/dist/src/nas-volumes.d.ts +2 -12
- package/dist/src/nas-volumes.d.ts.map +1 -1
- package/dist/src/nas-volumes.js +37 -147
- package/dist/src/nas-volumes.js.map +1 -1
- package/dist/src/nas-volumes.test.js +7 -39
- package/dist/src/nas-volumes.test.js.map +1 -1
- package/dist/src/per-message-model-pending.d.ts +3 -38
- package/dist/src/per-message-model-pending.d.ts.map +1 -1
- package/dist/src/per-message-model-pending.js +7 -96
- package/dist/src/per-message-model-pending.js.map +1 -1
- package/dist/src/plan/action-dispatch-event-compat.test.d.ts +2 -0
- package/dist/src/plan/action-dispatch-event-compat.test.d.ts.map +1 -0
- package/dist/src/plan/action-dispatch-event-compat.test.js +81 -0
- package/dist/src/plan/action-dispatch-event-compat.test.js.map +1 -0
- package/dist/src/plan/action-store-lifecycle.test.js +5 -5
- package/dist/src/plan/plan-core-db.test.js +9 -9
- package/dist/src/plan/plan-core-snapshot.test.js +9 -9
- package/dist/src/plan-event-subscription.d.ts +1 -1
- package/dist/src/plan-event-subscription.d.ts.map +1 -1
- package/dist/src/plan-stat-event.d.ts +15 -4
- package/dist/src/plan-stat-event.d.ts.map +1 -1
- package/dist/src/plan-stat-event.js +37 -4
- package/dist/src/plan-stat-event.js.map +1 -1
- package/dist/src/plan-stat-event.test.js +118 -1
- package/dist/src/plan-stat-event.test.js.map +1 -1
- package/dist/src/plan-store-access.d.ts +23 -0
- package/dist/src/plan-store-access.d.ts.map +1 -0
- package/dist/src/plan-store-access.js +96 -0
- package/dist/src/plan-store-access.js.map +1 -0
- package/dist/src/plan-store-access.test.d.ts +2 -0
- package/dist/src/plan-store-access.test.d.ts.map +1 -0
- package/dist/src/plan-store-access.test.js +207 -0
- package/dist/src/plan-store-access.test.js.map +1 -0
- package/dist/src/plan-tool-middleware.d.ts +11 -3
- package/dist/src/plan-tool-middleware.d.ts.map +1 -1
- package/dist/src/plan-tool-middleware.js +60 -11
- package/dist/src/plan-tool-middleware.js.map +1 -1
- package/dist/src/plan-tool-middleware.test.js +603 -83
- package/dist/src/plan-tool-middleware.test.js.map +1 -1
- package/dist/src/plan-ws-registry.d.ts +0 -4
- package/dist/src/plan-ws-registry.d.ts.map +1 -1
- package/dist/src/plan-ws-registry.js +0 -12
- package/dist/src/plan-ws-registry.js.map +1 -1
- package/dist/src/plan-ws-registry.test.js +1 -19
- package/dist/src/plan-ws-registry.test.js.map +1 -1
- package/dist/src/progress-display.d.ts +77 -0
- package/dist/src/progress-display.d.ts.map +1 -0
- package/dist/src/progress-display.js +420 -0
- package/dist/src/progress-display.js.map +1 -0
- package/dist/src/register-per-message-model-hook.d.ts +2 -10
- package/dist/src/register-per-message-model-hook.d.ts.map +1 -1
- package/dist/src/register-per-message-model-hook.js +6 -32
- package/dist/src/register-per-message-model-hook.js.map +1 -1
- package/dist/src/resolve-inbound-group-prompt.d.ts +1 -17
- package/dist/src/resolve-inbound-group-prompt.d.ts.map +1 -1
- package/dist/src/resolve-inbound-group-prompt.js +2 -16
- package/dist/src/resolve-inbound-group-prompt.js.map +1 -1
- package/dist/src/run-usage-session.d.ts +1 -4
- package/dist/src/run-usage-session.d.ts.map +1 -1
- package/dist/src/run-usage-session.js +1 -13
- package/dist/src/run-usage-session.js.map +1 -1
- package/dist/src/run-usage.d.ts +0 -15
- package/dist/src/run-usage.d.ts.map +1 -1
- package/dist/src/run-usage.js +4 -30
- package/dist/src/run-usage.js.map +1 -1
- package/dist/src/run-usage.test.js +11 -99
- package/dist/src/run-usage.test.js.map +1 -1
- package/dist/src/send-file-tool.d.ts +1 -1
- package/dist/src/send-file-tool.d.ts.map +1 -1
- package/dist/src/send-group-message-tool.d.ts +1 -1
- package/dist/src/send-group-message-tool.d.ts.map +1 -1
- package/dist/src/session/build-project-prompt.test.js +18 -18
- package/dist/src/session-im-context.d.ts +0 -2
- package/dist/src/session-im-context.d.ts.map +1 -1
- package/dist/src/session-im-context.js +2 -11
- package/dist/src/session-im-context.js.map +1 -1
- package/dist/src/subagent-delivery-phase.d.ts +10 -0
- package/dist/src/subagent-delivery-phase.d.ts.map +1 -0
- package/dist/src/subagent-delivery-phase.js +4 -0
- package/dist/src/subagent-delivery-phase.js.map +1 -0
- package/dist/src/subagent-delivery-phase.test.d.ts +2 -0
- package/dist/src/subagent-delivery-phase.test.d.ts.map +1 -0
- package/dist/src/subagent-delivery-phase.test.js +12 -0
- package/dist/src/subagent-delivery-phase.test.js.map +1 -0
- package/dist/src/subagent-monitor.d.ts +1 -14
- package/dist/src/subagent-monitor.d.ts.map +1 -1
- package/dist/src/subagent-monitor.js +36 -164
- package/dist/src/subagent-monitor.js.map +1 -1
- package/dist/src/subagent-monitor.test.js +0 -121
- package/dist/src/subagent-monitor.test.js.map +1 -1
- package/dist/src/tool-json-result.d.ts +1 -1
- package/dist/src/tool-json-result.d.ts.map +1 -1
- package/dist/src/turn/turn-agent-event-subscription.d.ts.map +1 -1
- package/dist/src/turn/turn-agent-event-subscription.js +14 -0
- package/dist/src/turn/turn-agent-event-subscription.js.map +1 -1
- package/dist/src/turn-deliver-buffer.test.js +25 -25
- package/dist/src/types.d.ts +1 -48
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/workspace/nas-volumes.test.js +3 -2
- package/dist/src/workspace/nas-volumes.test.js.map +1 -1
- package/dist/src/ws-inbound-schema.d.ts.map +1 -1
- package/dist/src/ws-inbound-schema.js +0 -1
- package/dist/src/ws-inbound-schema.js.map +1 -1
- package/openclaw.plugin.json +30 -30
- package/package.json +83 -83
- package/dist/src/action-store-lifecycle.test.d.ts +0 -2
- package/dist/src/action-store-lifecycle.test.d.ts.map +0 -1
- package/dist/src/action-store-lifecycle.test.js +0 -195
- package/dist/src/action-store-lifecycle.test.js.map +0 -1
- package/dist/src/active-cron-context-store.d.ts +0 -20
- package/dist/src/active-cron-context-store.d.ts.map +0 -1
- package/dist/src/active-cron-context-store.js +0 -73
- package/dist/src/active-cron-context-store.js.map +0 -1
- package/dist/src/assistant-item-delivery.d.ts +0 -27
- package/dist/src/assistant-item-delivery.d.ts.map +0 -1
- package/dist/src/assistant-item-delivery.js +0 -134
- package/dist/src/assistant-item-delivery.js.map +0 -1
- package/dist/src/assistant-item-delivery.test.d.ts +0 -2
- package/dist/src/assistant-item-delivery.test.d.ts.map +0 -1
- package/dist/src/assistant-item-delivery.test.js +0 -116
- package/dist/src/assistant-item-delivery.test.js.map +0 -1
- package/dist/src/assistant-item-sink.d.ts +0 -17
- package/dist/src/assistant-item-sink.d.ts.map +0 -1
- package/dist/src/assistant-item-sink.js +0 -34
- package/dist/src/assistant-item-sink.js.map +0 -1
- package/dist/src/connection-workspace-event.test.d.ts +0 -2
- package/dist/src/connection-workspace-event.test.d.ts.map +0 -1
- package/dist/src/connection-workspace-event.test.js +0 -74
- package/dist/src/connection-workspace-event.test.js.map +0 -1
- package/dist/src/connection.test.d.ts +0 -2
- package/dist/src/connection.test.d.ts.map +0 -1
- package/dist/src/connection.test.js +0 -110
- package/dist/src/connection.test.js.map +0 -1
- package/dist/src/cron-appkey-binding-store.d.ts +0 -29
- package/dist/src/cron-appkey-binding-store.d.ts.map +0 -1
- package/dist/src/cron-appkey-binding-store.js +0 -239
- package/dist/src/cron-appkey-binding-store.js.map +0 -1
- package/dist/src/cron-appkey-binding-store.test.d.ts +0 -2
- package/dist/src/cron-appkey-binding-store.test.d.ts.map +0 -1
- package/dist/src/cron-appkey-binding-store.test.js +0 -387
- package/dist/src/cron-appkey-binding-store.test.js.map +0 -1
- package/dist/src/nas-site.d.ts +0 -16
- package/dist/src/nas-site.d.ts.map +0 -1
- package/dist/src/nas-site.js +0 -17
- package/dist/src/nas-site.js.map +0 -1
- package/dist/src/plan-core-adapter.d.ts +0 -54
- package/dist/src/plan-core-adapter.d.ts.map +0 -1
- package/dist/src/plan-core-adapter.js +0 -104
- package/dist/src/plan-core-adapter.js.map +0 -1
- package/dist/src/plan-core-adapter.test.d.ts +0 -2
- package/dist/src/plan-core-adapter.test.d.ts.map +0 -1
- package/dist/src/plan-core-adapter.test.js +0 -183
- package/dist/src/plan-core-adapter.test.js.map +0 -1
- package/dist/src/plan-core-db.d.ts +0 -22
- package/dist/src/plan-core-db.d.ts.map +0 -1
- package/dist/src/plan-core-db.js +0 -91
- package/dist/src/plan-core-db.js.map +0 -1
- package/dist/src/plan-core-db.test.d.ts +0 -2
- package/dist/src/plan-core-db.test.d.ts.map +0 -1
- package/dist/src/plan-core-db.test.js +0 -115
- package/dist/src/plan-core-db.test.js.map +0 -1
- package/dist/src/plan-core-snapshot.d.ts +0 -23
- package/dist/src/plan-core-snapshot.d.ts.map +0 -1
- package/dist/src/plan-core-snapshot.js +0 -66
- package/dist/src/plan-core-snapshot.js.map +0 -1
- package/dist/src/plan-core-snapshot.test.d.ts +0 -2
- package/dist/src/plan-core-snapshot.test.d.ts.map +0 -1
- package/dist/src/plan-core-snapshot.test.js +0 -157
- package/dist/src/plan-core-snapshot.test.js.map +0 -1
- package/dist/src/plugin-dispose.d.ts +0 -22
- package/dist/src/plugin-dispose.d.ts.map +0 -1
- package/dist/src/plugin-dispose.js +0 -66
- package/dist/src/plugin-dispose.js.map +0 -1
- package/dist/src/process-shared-store.d.ts +0 -48
- package/dist/src/process-shared-store.d.ts.map +0 -1
- package/dist/src/process-shared-store.js +0 -89
- package/dist/src/process-shared-store.js.map +0 -1
- package/dist/src/process-shared-store.test.d.ts +0 -2
- package/dist/src/process-shared-store.test.d.ts.map +0 -1
- package/dist/src/process-shared-store.test.js +0 -60
- package/dist/src/process-shared-store.test.js.map +0 -1
- package/dist/src/register-exec-env-hook.d.ts +0 -44
- package/dist/src/register-exec-env-hook.d.ts.map +0 -1
- package/dist/src/register-exec-env-hook.js +0 -473
- package/dist/src/register-exec-env-hook.js.map +0 -1
- package/dist/src/register-exec-env-hook.test.d.ts +0 -2
- package/dist/src/register-exec-env-hook.test.d.ts.map +0 -1
- package/dist/src/register-exec-env-hook.test.js +0 -189
- package/dist/src/register-exec-env-hook.test.js.map +0 -1
- package/dist/src/register-group-prompt-hook.d.ts +0 -17
- package/dist/src/register-group-prompt-hook.d.ts.map +0 -1
- package/dist/src/register-group-prompt-hook.js +0 -45
- package/dist/src/register-group-prompt-hook.js.map +0 -1
- package/dist/src/register-group-prompt-hook.test.d.ts +0 -2
- package/dist/src/register-group-prompt-hook.test.d.ts.map +0 -1
- package/dist/src/register-group-prompt-hook.test.js +0 -60
- package/dist/src/register-group-prompt-hook.test.js.map +0 -1
- package/dist/src/register-per-message-model-hook.test.d.ts +0 -2
- package/dist/src/register-per-message-model-hook.test.d.ts.map +0 -1
- package/dist/src/register-per-message-model-hook.test.js +0 -208
- package/dist/src/register-per-message-model-hook.test.js.map +0 -1
- package/dist/src/register-run-model-context-hook.d.ts +0 -11
- package/dist/src/register-run-model-context-hook.d.ts.map +0 -1
- package/dist/src/register-run-model-context-hook.js +0 -23
- package/dist/src/register-run-model-context-hook.js.map +0 -1
- package/dist/src/reply-dispatch-driver.d.ts +0 -89
- package/dist/src/reply-dispatch-driver.d.ts.map +0 -1
- package/dist/src/reply-dispatch-driver.js +0 -294
- package/dist/src/reply-dispatch-driver.js.map +0 -1
- package/dist/src/reply-dispatch-driver.test.d.ts +0 -2
- package/dist/src/reply-dispatch-driver.test.d.ts.map +0 -1
- package/dist/src/reply-dispatch-driver.test.js +0 -363
- package/dist/src/reply-dispatch-driver.test.js.map +0 -1
- package/dist/src/run-model-context.d.ts +0 -45
- package/dist/src/run-model-context.d.ts.map +0 -1
- package/dist/src/run-model-context.js +0 -108
- package/dist/src/run-model-context.js.map +0 -1
- package/dist/src/run-model-context.test.d.ts +0 -2
- package/dist/src/run-model-context.test.d.ts.map +0 -1
- package/dist/src/run-model-context.test.js +0 -68
- package/dist/src/run-model-context.test.js.map +0 -1
- package/dist/src/session-env-store.d.ts +0 -55
- package/dist/src/session-env-store.d.ts.map +0 -1
- package/dist/src/session-env-store.js +0 -328
- package/dist/src/session-env-store.js.map +0 -1
- package/dist/src/session-env-store.test.d.ts +0 -2
- package/dist/src/session-env-store.test.d.ts.map +0 -1
- package/dist/src/session-env-store.test.js +0 -151
- package/dist/src/session-env-store.test.js.map +0 -1
- package/dist/src/session-group-prompt.d.ts +0 -34
- package/dist/src/session-group-prompt.d.ts.map +0 -1
- package/dist/src/session-group-prompt.js +0 -101
- package/dist/src/session-group-prompt.js.map +0 -1
- package/dist/src/session-group-prompt.test.d.ts +0 -2
- package/dist/src/session-group-prompt.test.d.ts.map +0 -1
- package/dist/src/session-group-prompt.test.js +0 -72
- package/dist/src/session-group-prompt.test.js.map +0 -1
- package/dist/src/session-model-fallback.d.ts +0 -13
- package/dist/src/session-model-fallback.d.ts.map +0 -1
- package/dist/src/session-model-fallback.js +0 -24
- package/dist/src/session-model-fallback.js.map +0 -1
- package/dist/src/tool-event-adapter.d.ts +0 -31
- package/dist/src/tool-event-adapter.d.ts.map +0 -1
- package/dist/src/tool-event-adapter.js +0 -83
- package/dist/src/tool-event-adapter.js.map +0 -1
- package/dist/src/tool-event-adapter.test.d.ts +0 -2
- package/dist/src/tool-event-adapter.test.d.ts.map +0 -1
- package/dist/src/tool-event-adapter.test.js +0 -93
- package/dist/src/tool-event-adapter.test.js.map +0 -1
- package/dist/src/turn-agent-event-subscription.d.ts +0 -29
- package/dist/src/turn-agent-event-subscription.d.ts.map +0 -1
- package/dist/src/turn-agent-event-subscription.js +0 -289
- package/dist/src/turn-agent-event-subscription.js.map +0 -1
- package/dist/src/turn-agent-event-subscription.test.d.ts +0 -2
- package/dist/src/turn-agent-event-subscription.test.d.ts.map +0 -1
- package/dist/src/turn-agent-event-subscription.test.js +0 -165
- package/dist/src/turn-agent-event-subscription.test.js.map +0 -1
- package/dist/src/turn-end-controller.d.ts +0 -61
- package/dist/src/turn-end-controller.d.ts.map +0 -1
- package/dist/src/turn-end-controller.js +0 -239
- package/dist/src/turn-end-controller.js.map +0 -1
- package/dist/src/turn-end-controller.test.d.ts +0 -2
- package/dist/src/turn-end-controller.test.d.ts.map +0 -1
- package/dist/src/turn-end-controller.test.js +0 -97
- package/dist/src/turn-end-controller.test.js.map +0 -1
- package/dist/src/workspace-event-protocol.d.ts +0 -3
- package/dist/src/workspace-event-protocol.d.ts.map +0 -1
- package/dist/src/workspace-event-protocol.js +0 -3
- package/dist/src/workspace-event-protocol.js.map +0 -1
- package/dist/src/workspace-event-scheduler.d.ts +0 -54
- package/dist/src/workspace-event-scheduler.d.ts.map +0 -1
- package/dist/src/workspace-event-scheduler.js +0 -131
- package/dist/src/workspace-event-scheduler.js.map +0 -1
- package/dist/src/workspace-event-scheduler.test.d.ts +0 -2
- package/dist/src/workspace-event-scheduler.test.d.ts.map +0 -1
- package/dist/src/workspace-event-scheduler.test.js +0 -157
- package/dist/src/workspace-event-scheduler.test.js.map +0 -1
- package/dist/src/workspace-event.d.ts +0 -28
- package/dist/src/workspace-event.d.ts.map +0 -1
- package/dist/src/workspace-event.js +0 -674
- package/dist/src/workspace-event.js.map +0 -1
- package/dist/src/workspace-event.test.d.ts +0 -2
- package/dist/src/workspace-event.test.d.ts.map +0 -1
- package/dist/src/workspace-event.test.js +0 -265
- package/dist/src/workspace-event.test.js.map +0 -1
- package/dist/src/ws-inbound-schema.test.d.ts +0 -2
- package/dist/src/ws-inbound-schema.test.d.ts.map +0 -1
- package/dist/src/ws-inbound-schema.test.js +0 -58
- package/dist/src/ws-inbound-schema.test.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"process-shared-store.js","sourceRoot":"","sources":["../../src/process-shared-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAezD,SAAS,WAAW;IAChB,MAAM,CAAC,GAAG,UAA0C,CAAC;IACrD,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC,SAAS,CAAuB,CAAC;IAC9C,CAAC;IACD,MAAM,OAAO,GAAuB;QAChC,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,EAAE;QACb,gBAAgB,EAAE,KAAK;KAC1B,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;IACvB,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,eAAe;IAC3B,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;IACvB,OAAO,KAAK,CAAC,WAAW,CAAC;AAC7B,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,kBAAkB;IAC9B,OAAO,WAAW,EAAE,CAAC,WAAW,CAAC;AACrC,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,eAAe;IAC3B,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;IACvB,OAAO,KAAK,CAAC,WAAW,CAAC;AAC7B,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,kBAAkB;IAC9B,OAAO,WAAW,EAAE,CAAC,WAAW,CAAC;AACrC,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,uBAAuB;IACnC,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,IAAI,KAAK,CAAC,gBAAgB;QAAE,OAAO,KAAK,CAAC;IACzC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,qBAAqB;IACjC,WAAW,EAAE,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC3C,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,gBAAgB,CAAC,EAAW;IACxC,WAAW,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC;AAC/B,CAAC;AAED,sBAAsB;AACtB,MAAM,UAAU,gBAAgB;IAC5B,OAAO,WAAW,EAAE,CAAC,OAAwB,CAAC;AAClD,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,iBAAiB,CAAI,GAAW,EAAE,OAAgB;IAC9D,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC,SAAS,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;QAC1B,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC;IACxB,CAAC;IACD,OAAO,EAAE,CAAC,GAAG,CAAM,CAAC;AACxB,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAAO,GAAW;IAC1C,OAAO,iBAAiB,CAAC,OAAO,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAQ,CAAC,CAAC;AAClE,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,iCAAiC;IAC7C,MAAM,CAAC,GAAG,UAA0C,CAAC;IACrD,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;AACL,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"process-shared-store.test.d.ts","sourceRoot":"","sources":["../../src/process-shared-store.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert/strict";
|
|
2
|
-
import { beforeEach, describe, it } from "node:test";
|
|
3
|
-
import { __resetProcessSharedStoreForTests, currentModuleEpoch, currentRegisterSeq, getOrCreateShared, getSharedMap, nextModuleEpoch, nextRegisterSeq, requestFullTeardownOnce, resetFullTeardownGate, } from "./process-shared-store.js";
|
|
4
|
-
beforeEach(() => {
|
|
5
|
-
__resetProcessSharedStoreForTests();
|
|
6
|
-
});
|
|
7
|
-
describe("process-shared-store: module epoch / register seq", () => {
|
|
8
|
-
it("moduleEpoch and registerSeq are monotonic per claim (observability only)", () => {
|
|
9
|
-
assert.equal(nextModuleEpoch(), 1);
|
|
10
|
-
assert.equal(nextModuleEpoch(), 2);
|
|
11
|
-
assert.equal(currentModuleEpoch(), 2);
|
|
12
|
-
assert.equal(nextRegisterSeq(), 1);
|
|
13
|
-
assert.equal(nextRegisterSeq(), 2);
|
|
14
|
-
assert.equal(currentRegisterSeq(), 2);
|
|
15
|
-
});
|
|
16
|
-
it("registerSeq is NOT used to decide teardown (must never gate stopAll on 'no later register')", () => {
|
|
17
|
-
// Registry 代际交替可能在批量 register 的尾端触发 cleanup,而无更晚 register;
|
|
18
|
-
// 该情形绝不能导出「全量 teardown」结论。这里验证 registerSeq 仅单调计数。
|
|
19
|
-
const last = nextRegisterSeq();
|
|
20
|
-
nextRegisterSeq();
|
|
21
|
-
assert.ok(currentRegisterSeq() > last);
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
describe("process-shared-store: cross-module singleton via getOrCreateShared", () => {
|
|
25
|
-
it("getOrCreateShared returns the same instance for the same key", () => {
|
|
26
|
-
const a = getOrCreateShared("x", () => new Map());
|
|
27
|
-
const b = getOrCreateShared("x", () => new Map());
|
|
28
|
-
assert.equal(a, b);
|
|
29
|
-
});
|
|
30
|
-
it("getSharedMap returns the same map for the same key (old/new module read/write one copy)", () => {
|
|
31
|
-
const a = getSharedMap("shared-map");
|
|
32
|
-
const b = getSharedMap("shared-map");
|
|
33
|
-
assert.equal(a, b);
|
|
34
|
-
a.set("k", 1);
|
|
35
|
-
assert.equal(b.get("k"), 1);
|
|
36
|
-
});
|
|
37
|
-
it("distinct keys produce distinct instances", () => {
|
|
38
|
-
const a = getOrCreateShared("k1", () => new Map());
|
|
39
|
-
const b = getOrCreateShared("k2", () => new Map());
|
|
40
|
-
assert.notEqual(a, b);
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
describe("process-shared-store: full teardown once-gate (gateway_stop)", () => {
|
|
44
|
-
it("requestFullTeardownOnce returns true only once until reset", () => {
|
|
45
|
-
assert.equal(requestFullTeardownOnce(), true);
|
|
46
|
-
assert.equal(requestFullTeardownOnce(), false);
|
|
47
|
-
assert.equal(requestFullTeardownOnce(), false);
|
|
48
|
-
});
|
|
49
|
-
it("a new register resets the gate so a later stop can teardown again", () => {
|
|
50
|
-
assert.equal(requestFullTeardownOnce(), true);
|
|
51
|
-
resetFullTeardownGate();
|
|
52
|
-
assert.equal(requestFullTeardownOnce(), true);
|
|
53
|
-
});
|
|
54
|
-
it("repeated gateway_stop handlers (one per register) collapse to a single teardown", () => {
|
|
55
|
-
const handlers = [requestFullTeardownOnce, requestFullTeardownOnce, requestFullTeardownOnce];
|
|
56
|
-
const results = handlers.map((h) => h());
|
|
57
|
-
assert.deepEqual(results, [true, false, false]);
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
//# sourceMappingURL=process-shared-store.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"process-shared-store.test.js","sourceRoot":"","sources":["../../src/process-shared-store.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* before_tool_call:把当前会话的 per-user 环境变量注入 exec 子进程。
|
|
3
|
-
*
|
|
4
|
-
* - XG_OPENAPI_APP_KEY ← session-env-store(最后触发者,已持久化)
|
|
5
|
-
* - XG_OPENAPI_BASE_URL ← 插件配置 baseUrl(每次 exec 直读,重启/配置变更即生效,不持久化)
|
|
6
|
-
*
|
|
7
|
-
* 只在 exec 工具调用时生效(toolName 恒为 "exec"),注入方式为改写
|
|
8
|
-
* event.params.env(优先级低于 resolve_exec_env 的 pluginEnv,但本插件
|
|
9
|
-
* 不注册 resolve_exec_env,因此 params.env 即最终生效值)。不碰 process.env。
|
|
10
|
-
*
|
|
11
|
-
* 当本次会注入 XG_OPENAPI_APP_KEY 时,额外剥掉 params.command 行首对该变量的
|
|
12
|
-
* Shell 赋值 / `env` 前缀,避免 shell -c 在启动时覆盖已注入的值。
|
|
13
|
-
*/
|
|
14
|
-
import type { OpenClawPluginApi } from "openclaw/plugin-sdk/channel-plugin-common";
|
|
15
|
-
export declare const XG_OPENAPI_BASE_URL = "XG_OPENAPI_BASE_URL";
|
|
16
|
-
export type CronSessionRef = {
|
|
17
|
-
agentId: string;
|
|
18
|
-
jobId: string;
|
|
19
|
-
runId: string;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Strip leading shell / `env` assignments of XG_OPENAPI_APP_KEY from an exec command.
|
|
23
|
-
* Only touches the command prefix; does not search the rest of the string.
|
|
24
|
-
*/
|
|
25
|
-
export declare function stripLeadingXgOpenApiAppKeyAssignments(command: string): {
|
|
26
|
-
command: string;
|
|
27
|
-
stripped: boolean;
|
|
28
|
-
};
|
|
29
|
-
type SessionTargetRef = {
|
|
30
|
-
agentId: string;
|
|
31
|
-
sessionKey: string;
|
|
32
|
-
};
|
|
33
|
-
export declare function parseCronSessionTarget(sessionTarget: string | undefined): SessionTargetRef | undefined;
|
|
34
|
-
/** Return true only for the supported CLI/API forms that create a Cron job. */
|
|
35
|
-
export declare function isCronCreateCommand(command: string | undefined): boolean;
|
|
36
|
-
/** Extract the authoritative job id from native Cron or CLI results. */
|
|
37
|
-
export declare function extractCronJobIdFromResult(result: unknown): string | undefined;
|
|
38
|
-
/** Parse the stable portion of an OpenClaw Cron run session key. */
|
|
39
|
-
export declare function parseCronSessionKey(sessionKey: string | undefined): CronSessionRef | undefined;
|
|
40
|
-
export declare function registerExecEnvHook(api: OpenClawPluginApi): void;
|
|
41
|
-
/** Register automatic binding when a Cron job is created from an IM session. */
|
|
42
|
-
export declare function registerCronAppKeyBindingHook(api: OpenClawPluginApi): void;
|
|
43
|
-
export {};
|
|
44
|
-
//# sourceMappingURL=register-exec-env-hook.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register-exec-env-hook.d.ts","sourceRoot":"","sources":["../../src/register-exec-env-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAqBnF,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAe/E;;;GAGG;AACH,wBAAgB,sCAAsC,CAAC,OAAO,EAAE,MAAM,GAAG;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACrB,CAeA;AAsBD,KAAK,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AA0BhE,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAMtG;AAgJD,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKxE;AA0CD,wEAAwE;AACxE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkB9E;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAkB9F;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CA2DhE;AAED,gFAAgF;AAChF,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CA4G1E"}
|
|
@@ -1,473 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* before_tool_call:把当前会话的 per-user 环境变量注入 exec 子进程。
|
|
3
|
-
*
|
|
4
|
-
* - XG_OPENAPI_APP_KEY ← session-env-store(最后触发者,已持久化)
|
|
5
|
-
* - XG_OPENAPI_BASE_URL ← 插件配置 baseUrl(每次 exec 直读,重启/配置变更即生效,不持久化)
|
|
6
|
-
*
|
|
7
|
-
* 只在 exec 工具调用时生效(toolName 恒为 "exec"),注入方式为改写
|
|
8
|
-
* event.params.env(优先级低于 resolve_exec_env 的 pluginEnv,但本插件
|
|
9
|
-
* 不注册 resolve_exec_env,因此 params.env 即最终生效值)。不碰 process.env。
|
|
10
|
-
*
|
|
11
|
-
* 当本次会注入 XG_OPENAPI_APP_KEY 时,额外剥掉 params.command 行首对该变量的
|
|
12
|
-
* Shell 赋值 / `env` 前缀,避免 shell -c 在启动时覆盖已注入的值。
|
|
13
|
-
*/
|
|
14
|
-
import { createHash } from "node:crypto";
|
|
15
|
-
import { getXgImConfig } from "./channel-config.js";
|
|
16
|
-
import { getActiveCronContexts, removeActiveCronContext, setActiveCronContext, } from "./active-cron-context-store.js";
|
|
17
|
-
import { getLinkedParentSessionKey, getSessionEnv, getSessionUserContext, isRecord, setSessionEnvEntry, XG_OPENAPI_APP_KEY, } from "./session-env-store.js";
|
|
18
|
-
import { bindCronAppKey as persistCronBinding, getCronAppKeyBinding as readCronBinding, isCronAppKeyBindingStoreInitialized, } from "./cron-appkey-binding-store.js";
|
|
19
|
-
export const XG_OPENAPI_BASE_URL = "XG_OPENAPI_BASE_URL";
|
|
20
|
-
/** Unquoted / single-quoted / double-quoted shell assignment value. */
|
|
21
|
-
const XG_OPENAPI_APP_KEY_VALUE = String.raw `(?:'[^']*'|"[^"]*"|[^\s;|&]+)`;
|
|
22
|
-
/** Leading `XG_OPENAPI_APP_KEY=...` or `export XG_OPENAPI_APP_KEY=...` (optional trailing `;`). */
|
|
23
|
-
const LEADING_XG_OPENAPI_APP_KEY_ASSIGNMENT = new RegExp(String.raw `^\s*(?:export\s+)?${XG_OPENAPI_APP_KEY}\s*=\s*${XG_OPENAPI_APP_KEY_VALUE}[;\s]*`);
|
|
24
|
-
/** Leading `env XG_OPENAPI_APP_KEY=... <command>`. */
|
|
25
|
-
const LEADING_ENV_XG_OPENAPI_APP_KEY = new RegExp(String.raw `^\s*env\s+${XG_OPENAPI_APP_KEY}\s*=\s*${XG_OPENAPI_APP_KEY_VALUE}\s+`);
|
|
26
|
-
/**
|
|
27
|
-
* Strip leading shell / `env` assignments of XG_OPENAPI_APP_KEY from an exec command.
|
|
28
|
-
* Only touches the command prefix; does not search the rest of the string.
|
|
29
|
-
*/
|
|
30
|
-
export function stripLeadingXgOpenApiAppKeyAssignments(command) {
|
|
31
|
-
if (!command.includes(XG_OPENAPI_APP_KEY)) {
|
|
32
|
-
return { command, stripped: false };
|
|
33
|
-
}
|
|
34
|
-
let current = command;
|
|
35
|
-
let stripped = false;
|
|
36
|
-
for (;;) {
|
|
37
|
-
const next = current
|
|
38
|
-
.replace(LEADING_XG_OPENAPI_APP_KEY_ASSIGNMENT, "")
|
|
39
|
-
.replace(LEADING_ENV_XG_OPENAPI_APP_KEY, "");
|
|
40
|
-
if (next === current)
|
|
41
|
-
break;
|
|
42
|
-
current = next;
|
|
43
|
-
stripped = true;
|
|
44
|
-
}
|
|
45
|
-
return { command: current, stripped };
|
|
46
|
-
}
|
|
47
|
-
// UUID matching is retained only as a fallback for unstructured CLI text.
|
|
48
|
-
// Structured result fields accept any non-empty job id.
|
|
49
|
-
const CRON_JOB_ID_PATTERN = /\b[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{8,16}\b/i;
|
|
50
|
-
const APPKEY_MAX_PARENT_DEPTH = 8;
|
|
51
|
-
function parseAgentIdFromSessionKey(sessionKey) {
|
|
52
|
-
if (!sessionKey?.startsWith("agent:"))
|
|
53
|
-
return undefined;
|
|
54
|
-
const rest = sessionKey.slice("agent:".length);
|
|
55
|
-
const end = rest.indexOf(":");
|
|
56
|
-
return (end > 0 ? rest.slice(0, end) : rest).trim() || undefined;
|
|
57
|
-
}
|
|
58
|
-
function appKeyFingerprint(appKey) {
|
|
59
|
-
if (!appKey)
|
|
60
|
-
return undefined;
|
|
61
|
-
return createHash("sha256").update(appKey).digest("hex").slice(0, 12);
|
|
62
|
-
}
|
|
63
|
-
function validAppKey(value) {
|
|
64
|
-
return typeof value === "string" && value.trim().length > 0 && value.length <= 256 && !/[\0\r\n]/.test(value);
|
|
65
|
-
}
|
|
66
|
-
function parentAgentMatches(parentSessionKey, agentId) {
|
|
67
|
-
if (!agentId)
|
|
68
|
-
return true;
|
|
69
|
-
const parentAgentId = parseAgentIdFromSessionKey(parentSessionKey);
|
|
70
|
-
// An opaque/legacy parent key is not evidence of a cross-agent link.
|
|
71
|
-
// Reject only when both sides are known and explicitly different.
|
|
72
|
-
return !parentAgentId || parentAgentId === agentId;
|
|
73
|
-
}
|
|
74
|
-
export function parseCronSessionTarget(sessionTarget) {
|
|
75
|
-
const prefix = "session:";
|
|
76
|
-
if (!sessionTarget?.startsWith(`${prefix}agent:`))
|
|
77
|
-
return undefined;
|
|
78
|
-
const sessionKey = sessionTarget.slice(prefix.length);
|
|
79
|
-
const agentId = parseAgentIdFromSessionKey(sessionKey);
|
|
80
|
-
return agentId ? { agentId, sessionKey } : undefined;
|
|
81
|
-
}
|
|
82
|
-
function resolveCronBindingSet(input) {
|
|
83
|
-
const jobIds = [...new Set(input.jobIds.filter(Boolean))];
|
|
84
|
-
const common = {
|
|
85
|
-
source: input.source,
|
|
86
|
-
sessionKey: input.sessionKey,
|
|
87
|
-
agentId: input.agentId,
|
|
88
|
-
jobId: jobIds.join(",") || undefined,
|
|
89
|
-
parentSessionKey: input.parentSessionKey,
|
|
90
|
-
};
|
|
91
|
-
if (!isCronAppKeyBindingStoreInitialized()) {
|
|
92
|
-
return { ...common, source: "none", reason: "CRON_BINDING_STORE_UNINITIALIZED" };
|
|
93
|
-
}
|
|
94
|
-
const bindings = jobIds.map((jobId) => readCronBinding(input.agentId, jobId));
|
|
95
|
-
if (bindings.some((binding) => !binding?.appKey || !validAppKey(binding.appKey))) {
|
|
96
|
-
return { ...common, source: "none", reason: "CRON_BINDING_NOT_FOUND" };
|
|
97
|
-
}
|
|
98
|
-
const appKeys = [...new Set(bindings.map((binding) => binding.appKey))];
|
|
99
|
-
if (appKeys.length !== 1) {
|
|
100
|
-
return { ...common, source: "none", reason: "AUTH_CONTEXT_CONFLICT" };
|
|
101
|
-
}
|
|
102
|
-
return { ...common, appKey: appKeys[0] };
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Resolve the AppKey from the current Session and OpenClaw's persisted parent
|
|
106
|
-
* metadata. The in-memory child link is only a compatibility fallback for
|
|
107
|
-
* older hosts/tests; authentication never depends on subagent_spawned.
|
|
108
|
-
*/
|
|
109
|
-
function resolveAppKeyForSession(api, sessionKey, agentIdHint) {
|
|
110
|
-
if (!sessionKey)
|
|
111
|
-
return { source: "none", reason: "SESSION_KEY_MISSING" };
|
|
112
|
-
const agentId = agentIdHint?.trim() || parseAgentIdFromSessionKey(sessionKey);
|
|
113
|
-
const sessionAgentId = parseAgentIdFromSessionKey(sessionKey);
|
|
114
|
-
if (agentIdHint && sessionAgentId && sessionAgentId !== agentIdHint.trim()) {
|
|
115
|
-
return { source: "none", sessionKey, agentId, reason: "SESSION_AGENT_MISMATCH" };
|
|
116
|
-
}
|
|
117
|
-
const getEntry = (key) => {
|
|
118
|
-
try {
|
|
119
|
-
const runtime = api.runtime;
|
|
120
|
-
const sessionApi = runtime.agent?.session;
|
|
121
|
-
if (!sessionApi?.getSessionEntry)
|
|
122
|
-
return undefined;
|
|
123
|
-
const cfg = api.runtime.config.current();
|
|
124
|
-
const storePath = sessionApi.resolveStorePath?.(cfg.session?.store, agentId ? { agentId } : undefined);
|
|
125
|
-
return sessionApi.getSessionEntry({ sessionKey: key, ...(agentId ? { agentId } : {}), ...(storePath ? { storePath } : {}) });
|
|
126
|
-
}
|
|
127
|
-
catch {
|
|
128
|
-
return undefined;
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
let currentKey = sessionKey;
|
|
132
|
-
const visited = new Set();
|
|
133
|
-
let sawEntryRead = false;
|
|
134
|
-
for (let depth = 0; depth <= APPKEY_MAX_PARENT_DEPTH && currentKey; depth += 1) {
|
|
135
|
-
if (visited.has(currentKey)) {
|
|
136
|
-
return { source: "none", sessionKey, agentId, reason: "PARENT_CHAIN_CYCLE" };
|
|
137
|
-
}
|
|
138
|
-
visited.add(currentKey);
|
|
139
|
-
const cron = parseCronSessionKey(currentKey);
|
|
140
|
-
if (cron) {
|
|
141
|
-
if (!agentId || cron.agentId === agentId) {
|
|
142
|
-
return resolveCronBindingSet({
|
|
143
|
-
agentId: cron.agentId,
|
|
144
|
-
jobIds: [cron.jobId],
|
|
145
|
-
source: depth === 0 ? "cron-session-key" : "parent-cron",
|
|
146
|
-
sessionKey,
|
|
147
|
-
parentSessionKey: depth > 0 ? currentKey : undefined,
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
const currentAgentId = parseAgentIdFromSessionKey(currentKey) ?? agentId;
|
|
152
|
-
if (currentAgentId) {
|
|
153
|
-
const activeCron = getActiveCronContexts(currentAgentId, currentKey);
|
|
154
|
-
if (activeCron.length > 0) {
|
|
155
|
-
return resolveCronBindingSet({
|
|
156
|
-
agentId: currentAgentId,
|
|
157
|
-
jobIds: activeCron.map((context) => context.jobId),
|
|
158
|
-
source: depth === 0 ? "active-cron-session-target" : "parent-cron",
|
|
159
|
-
sessionKey,
|
|
160
|
-
parentSessionKey: depth > 0 ? currentKey : undefined,
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
const ownEnv = getSessionEnv(currentKey);
|
|
165
|
-
const ownAppKey = ownEnv?.XG_OPENAPI_APP_KEY;
|
|
166
|
-
if (validAppKey(ownAppKey)) {
|
|
167
|
-
return {
|
|
168
|
-
appKey: ownAppKey,
|
|
169
|
-
source: depth === 0 ? "im-session" : "parent-im-session",
|
|
170
|
-
sessionKey,
|
|
171
|
-
agentId,
|
|
172
|
-
parentSessionKey: depth > 0 ? currentKey : undefined,
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
const entry = getEntry(currentKey);
|
|
176
|
-
if (entry)
|
|
177
|
-
sawEntryRead = true;
|
|
178
|
-
const metadataParent = entry?.parentSessionKey || entry?.spawnedBy;
|
|
179
|
-
const fallbackParent = getLinkedParentSessionKey(currentKey);
|
|
180
|
-
const parentKey = metadataParent || fallbackParent;
|
|
181
|
-
if (!parentKey) {
|
|
182
|
-
return {
|
|
183
|
-
source: "none",
|
|
184
|
-
sessionKey,
|
|
185
|
-
agentId,
|
|
186
|
-
reason: sawEntryRead ? "AUTH_CONTEXT_MISSING" : "PARENT_SESSION_NOT_FOUND",
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
if (!parentAgentMatches(parentKey, agentId)) {
|
|
190
|
-
return { source: "none", sessionKey, agentId, parentSessionKey: parentKey, reason: "PARENT_AGENT_MISMATCH" };
|
|
191
|
-
}
|
|
192
|
-
currentKey = parentKey;
|
|
193
|
-
}
|
|
194
|
-
return { source: "none", sessionKey, agentId, reason: "PARENT_CHAIN_LIMIT" };
|
|
195
|
-
}
|
|
196
|
-
function resolveActiveCronTtlMs(event) {
|
|
197
|
-
const payload = isRecord(event.job?.payload) ? event.job?.payload : undefined;
|
|
198
|
-
const timeoutSeconds = payload?.timeoutSeconds;
|
|
199
|
-
if (typeof timeoutSeconds !== "number" || !Number.isFinite(timeoutSeconds) || timeoutSeconds <= 0)
|
|
200
|
-
return undefined;
|
|
201
|
-
return (timeoutSeconds + 5 * 60) * 1000;
|
|
202
|
-
}
|
|
203
|
-
/** Return true only for the supported CLI/API forms that create a Cron job. */
|
|
204
|
-
export function isCronCreateCommand(command) {
|
|
205
|
-
if (!command)
|
|
206
|
-
return false;
|
|
207
|
-
const normalized = command.toLowerCase();
|
|
208
|
-
return /\bopenclaw(?:\.cmd)?\s+cron\s+(?:add|create)\b/.test(normalized) ||
|
|
209
|
-
/\bopenclaw(?:\.cmd)?\s+gateway\s+call\s+cron\.create\b/.test(normalized);
|
|
210
|
-
}
|
|
211
|
-
function isUsableCronJobId(value) {
|
|
212
|
-
return typeof value === "string" && value.trim().length > 0 && value.length <= 256 && !/[\0\r\n]/.test(value);
|
|
213
|
-
}
|
|
214
|
-
function collectStructuredCronJobIds(value, out = [], seen = new Set()) {
|
|
215
|
-
if (value == null || seen.has(value) || typeof value !== "object")
|
|
216
|
-
return out;
|
|
217
|
-
seen.add(value);
|
|
218
|
-
if (Array.isArray(value)) {
|
|
219
|
-
for (const item of value)
|
|
220
|
-
collectStructuredCronJobIds(item, out, seen);
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
for (const [key, item] of Object.entries(value)) {
|
|
224
|
-
if ((key === "id" || key === "jobId") && isUsableCronJobId(item))
|
|
225
|
-
out.push(item.trim());
|
|
226
|
-
else
|
|
227
|
-
collectStructuredCronJobIds(item, out, seen);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
return out;
|
|
231
|
-
}
|
|
232
|
-
function collectText(value, out = [], seen = new Set()) {
|
|
233
|
-
if (value == null || seen.has(value))
|
|
234
|
-
return out;
|
|
235
|
-
if (typeof value === "string") {
|
|
236
|
-
out.push(value);
|
|
237
|
-
return out;
|
|
238
|
-
}
|
|
239
|
-
if (typeof value !== "object")
|
|
240
|
-
return out;
|
|
241
|
-
seen.add(value);
|
|
242
|
-
if (Array.isArray(value)) {
|
|
243
|
-
for (const item of value)
|
|
244
|
-
collectText(item, out, seen);
|
|
245
|
-
}
|
|
246
|
-
else {
|
|
247
|
-
for (const [key, item] of Object.entries(value)) {
|
|
248
|
-
if (key === "id" || key === "jobId") {
|
|
249
|
-
if (typeof item === "string")
|
|
250
|
-
out.push(item);
|
|
251
|
-
}
|
|
252
|
-
else {
|
|
253
|
-
collectText(item, out, seen);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
return out;
|
|
258
|
-
}
|
|
259
|
-
/** Extract the authoritative job id from native Cron or CLI results. */
|
|
260
|
-
export function extractCronJobIdFromResult(result) {
|
|
261
|
-
// Prefer authoritative structured fields and accept non-UUID ids.
|
|
262
|
-
const structured = collectStructuredCronJobIds(result);
|
|
263
|
-
if (structured.length > 0)
|
|
264
|
-
return structured[0];
|
|
265
|
-
for (const text of collectText(result)) {
|
|
266
|
-
// CLI adapters commonly wrap JSON in a text field.
|
|
267
|
-
try {
|
|
268
|
-
const parsed = JSON.parse(text);
|
|
269
|
-
const parsedId = collectStructuredCronJobIds(parsed)[0];
|
|
270
|
-
if (parsedId)
|
|
271
|
-
return parsedId;
|
|
272
|
-
}
|
|
273
|
-
catch {
|
|
274
|
-
// Fall through to the UUID-only text fallback below.
|
|
275
|
-
}
|
|
276
|
-
const match = text.match(CRON_JOB_ID_PATTERN);
|
|
277
|
-
if (match)
|
|
278
|
-
return match[0];
|
|
279
|
-
}
|
|
280
|
-
return undefined;
|
|
281
|
-
}
|
|
282
|
-
/** Parse the stable portion of an OpenClaw Cron run session key. */
|
|
283
|
-
export function parseCronSessionKey(sessionKey) {
|
|
284
|
-
if (!sessionKey)
|
|
285
|
-
return undefined;
|
|
286
|
-
const marker = ":cron:";
|
|
287
|
-
const markerIndex = sessionKey.indexOf(marker);
|
|
288
|
-
if (!sessionKey.startsWith("agent:") || markerIndex <= "agent:".length)
|
|
289
|
-
return undefined;
|
|
290
|
-
const agentId = sessionKey.slice("agent:".length, markerIndex);
|
|
291
|
-
const rest = sessionKey.slice(markerIndex + marker.length);
|
|
292
|
-
if (!agentId || !rest)
|
|
293
|
-
return undefined;
|
|
294
|
-
const runMarker = ":run:";
|
|
295
|
-
const runIndex = rest.indexOf(runMarker);
|
|
296
|
-
if (runIndex < 0) {
|
|
297
|
-
// Isolated Cron sessions are stable per job and have no run segment.
|
|
298
|
-
return { agentId, jobId: rest, runId: "" };
|
|
299
|
-
}
|
|
300
|
-
if (runIndex <= 0 || runIndex + runMarker.length >= rest.length)
|
|
301
|
-
return undefined;
|
|
302
|
-
const jobId = rest.slice(0, runIndex);
|
|
303
|
-
const runId = rest.slice(runIndex + runMarker.length);
|
|
304
|
-
return jobId && runId ? { agentId, jobId, runId } : undefined;
|
|
305
|
-
}
|
|
306
|
-
export function registerExecEnvHook(api) {
|
|
307
|
-
const resolveBaseUrl = () => {
|
|
308
|
-
try {
|
|
309
|
-
const cfg = api.runtime.config.current();
|
|
310
|
-
if (!cfg)
|
|
311
|
-
return undefined;
|
|
312
|
-
return getXgImConfig(cfg).baseUrl?.trim() || undefined;
|
|
313
|
-
}
|
|
314
|
-
catch {
|
|
315
|
-
return undefined;
|
|
316
|
-
}
|
|
317
|
-
};
|
|
318
|
-
api.on("before_tool_call", (event, ctx) => {
|
|
319
|
-
if (event.toolName !== "exec")
|
|
320
|
-
return;
|
|
321
|
-
let resolution;
|
|
322
|
-
try {
|
|
323
|
-
resolution = resolveAppKeyForSession(api, ctx.sessionKey, ctx.agentId);
|
|
324
|
-
}
|
|
325
|
-
catch (err) {
|
|
326
|
-
resolution = { source: "none", sessionKey: ctx.sessionKey, agentId: ctx.agentId, reason: `RESOLVE_ERROR:${String(err)}` };
|
|
327
|
-
}
|
|
328
|
-
const baseUrl = resolveBaseUrl();
|
|
329
|
-
const existing = isRecord(event.params.env) ? { ...event.params.env } : {};
|
|
330
|
-
const hadAppKey = Object.prototype.hasOwnProperty.call(existing, XG_OPENAPI_APP_KEY);
|
|
331
|
-
delete existing[XG_OPENAPI_APP_KEY];
|
|
332
|
-
if (resolution.appKey)
|
|
333
|
-
existing[XG_OPENAPI_APP_KEY] = resolution.appKey;
|
|
334
|
-
if (baseUrl)
|
|
335
|
-
existing[XG_OPENAPI_BASE_URL] = baseUrl;
|
|
336
|
-
let command = typeof event.params.command === "string" ? event.params.command : undefined;
|
|
337
|
-
let commandStripped = false;
|
|
338
|
-
// Only strip when we are about to inject: protect the injected value from shell override.
|
|
339
|
-
if (resolution.appKey && command !== undefined) {
|
|
340
|
-
const stripped = stripLeadingXgOpenApiAppKeyAssignments(command);
|
|
341
|
-
command = stripped.command;
|
|
342
|
-
commandStripped = stripped.stripped;
|
|
343
|
-
}
|
|
344
|
-
const changed = hadAppKey || Boolean(resolution.appKey) || Boolean(baseUrl) || commandStripped;
|
|
345
|
-
const source = resolution.source;
|
|
346
|
-
const fp = appKeyFingerprint(resolution.appKey);
|
|
347
|
-
console.debug(`[xg_cwork_im] [appkey-resolve] event=appkey-resolve sessionKey=${ctx.sessionKey ?? "(none)"} ` +
|
|
348
|
-
`parentSessionKey=${resolution.parentSessionKey ?? "(none)"} source=${source} ` +
|
|
349
|
-
`agentId=${resolution.agentId ?? ctx.agentId ?? "(none)"} jobId=${resolution.jobId ?? "(none)"} ` +
|
|
350
|
-
`bindingFound=${Boolean(resolution.appKey)} appKeyFingerprint=${fp ?? "(none)"} ` +
|
|
351
|
-
`commandStripped=${commandStripped} reason=${resolution.reason ?? "(none)"}`);
|
|
352
|
-
if (!changed)
|
|
353
|
-
return;
|
|
354
|
-
return {
|
|
355
|
-
params: {
|
|
356
|
-
...event.params,
|
|
357
|
-
env: existing,
|
|
358
|
-
...(command !== undefined ? { command } : {}),
|
|
359
|
-
},
|
|
360
|
-
};
|
|
361
|
-
}, { priority: 0 });
|
|
362
|
-
}
|
|
363
|
-
/** Register automatic binding when a Cron job is created from an IM session. */
|
|
364
|
-
export function registerCronAppKeyBindingHook(api) {
|
|
365
|
-
const bindFromSession = (jobId, sessionKey, agentIdHint) => {
|
|
366
|
-
if (!jobId || !sessionKey) {
|
|
367
|
-
console.warn(`[xg_cwork_im] [cron-binding] missing jobId/sessionKey; binding skipped`);
|
|
368
|
-
return;
|
|
369
|
-
}
|
|
370
|
-
const resolved = resolveAppKeyForSession(api, sessionKey, agentIdHint);
|
|
371
|
-
const appKey = resolved.appKey;
|
|
372
|
-
if (!appKey) {
|
|
373
|
-
console.warn(`[xg_cwork_im] [cron-binding] no appKey in creator session; jobId=${jobId}`);
|
|
374
|
-
return;
|
|
375
|
-
}
|
|
376
|
-
const sessionAgent = sessionKey.startsWith("agent:") ? sessionKey.slice("agent:".length).split(":", 1)[0] : undefined;
|
|
377
|
-
if (sessionAgent && agentIdHint && sessionAgent !== agentIdHint) {
|
|
378
|
-
console.warn(`[xg_cwork_im] [cron-binding] agent mismatch; sessionAgent=${sessionAgent} agentId=${agentIdHint} jobId=${jobId}`);
|
|
379
|
-
return;
|
|
380
|
-
}
|
|
381
|
-
const agentId = agentIdHint?.trim() || resolved.agentId || sessionAgent;
|
|
382
|
-
if (!agentId) {
|
|
383
|
-
console.warn(`[xg_cwork_im] [cron-binding] missing agentId; jobId=${jobId}`);
|
|
384
|
-
return;
|
|
385
|
-
}
|
|
386
|
-
const user = getSessionUserContext(sessionKey);
|
|
387
|
-
const saved = persistCronBinding({
|
|
388
|
-
agentId,
|
|
389
|
-
jobId,
|
|
390
|
-
appKey,
|
|
391
|
-
userId: user?.userId,
|
|
392
|
-
userName: user?.userName,
|
|
393
|
-
ownerSessionKey: sessionKey,
|
|
394
|
-
source: "im",
|
|
395
|
-
});
|
|
396
|
-
if (!saved)
|
|
397
|
-
console.warn(`[xg_cwork_im] [cron-binding] persist failed; agentId=${agentId} jobId=${jobId}`);
|
|
398
|
-
};
|
|
399
|
-
// The cron tool result contains the authoritative job id and runs in the
|
|
400
|
-
// creator's session, unlike prompt text which must never be parsed for ids.
|
|
401
|
-
api.on("after_tool_call", (event, ctx) => {
|
|
402
|
-
if (event.error)
|
|
403
|
-
return;
|
|
404
|
-
// In the current IM agent toolset Cron is exposed through exec rather
|
|
405
|
-
// than as a native `cron` tool. Bind only an explicit Cron create
|
|
406
|
-
// command; never infer a job id from arbitrary command output.
|
|
407
|
-
if (event.toolName === "exec") {
|
|
408
|
-
const command = typeof event.params.command === "string" ? event.params.command : undefined;
|
|
409
|
-
if (!isCronCreateCommand(command))
|
|
410
|
-
return;
|
|
411
|
-
const jobId = extractCronJobIdFromResult(event.result);
|
|
412
|
-
if (jobId)
|
|
413
|
-
bindFromSession(jobId, ctx.sessionKey, ctx.agentId);
|
|
414
|
-
else
|
|
415
|
-
console.warn(`[xg_cwork_im] [cron-binding] CLI Cron create succeeded but jobId was not found in result`);
|
|
416
|
-
return;
|
|
417
|
-
}
|
|
418
|
-
if (event.toolName !== "cron")
|
|
419
|
-
return;
|
|
420
|
-
const action = typeof event.params.action === "string" ? event.params.action : "";
|
|
421
|
-
if (action !== "add" && action !== "create")
|
|
422
|
-
return;
|
|
423
|
-
// Native OpenClaw versions use different wrappers, including
|
|
424
|
-
// result.details.job.id. Use the same recursive extractor as CLI so
|
|
425
|
-
// both creation paths stay compatible.
|
|
426
|
-
const jobId = extractCronJobIdFromResult(event.result);
|
|
427
|
-
if (jobId)
|
|
428
|
-
bindFromSession(jobId, ctx.sessionKey, ctx.agentId);
|
|
429
|
-
else
|
|
430
|
-
console.warn(`[xg_cwork_im] [cron-binding] cron add succeeded but jobId was not found in result`);
|
|
431
|
-
});
|
|
432
|
-
// Creation binding and active sessionTarget Cron context share one hook.
|
|
433
|
-
// Keep started/finished updates synchronous because cron_changed is
|
|
434
|
-
// fire-and-forget and the first exec may follow immediately.
|
|
435
|
-
api.on("cron_changed", (event) => {
|
|
436
|
-
const eventAgentId = event.agentId ?? event.job?.agentId;
|
|
437
|
-
if (event.action === "started") {
|
|
438
|
-
const target = parseCronSessionTarget(event.sessionTarget ?? event.job?.sessionTarget);
|
|
439
|
-
if (!target) {
|
|
440
|
-
console.debug(`[xg_cwork_im] [active-cron] action=started jobId=${event.jobId} ` +
|
|
441
|
-
`reason=ACTIVE_CRON_CONTEXT_NOT_FOUND`);
|
|
442
|
-
return;
|
|
443
|
-
}
|
|
444
|
-
if (eventAgentId && eventAgentId.trim().toLowerCase() !== target.agentId.toLowerCase()) {
|
|
445
|
-
console.warn(`[xg_cwork_im] [active-cron] action=started jobId=${event.jobId} ` +
|
|
446
|
-
`agentId=${eventAgentId} sessionKey=${target.sessionKey} reason=AUTH_CONTEXT_CONFLICT`);
|
|
447
|
-
return;
|
|
448
|
-
}
|
|
449
|
-
// A sessionTarget Cron may finish before its child work returns.
|
|
450
|
-
// Cache only this exact agentId + jobId binding in the existing
|
|
451
|
-
// persisted session store so later parent/child exec calls and a
|
|
452
|
-
// Gateway restart can recover it. Missing/invalid bindings clear
|
|
453
|
-
// any stale value instead of guessing from another job/session.
|
|
454
|
-
const binding = readCronBinding(target.agentId, event.jobId);
|
|
455
|
-
setSessionEnvEntry(target.sessionKey, XG_OPENAPI_APP_KEY, validAppKey(binding?.appKey) ? binding.appKey : undefined);
|
|
456
|
-
setActiveCronContext({
|
|
457
|
-
agentId: target.agentId,
|
|
458
|
-
sessionKey: target.sessionKey,
|
|
459
|
-
jobId: event.jobId,
|
|
460
|
-
ttlMs: resolveActiveCronTtlMs(event),
|
|
461
|
-
});
|
|
462
|
-
return;
|
|
463
|
-
}
|
|
464
|
-
if (event.action === "finished") {
|
|
465
|
-
removeActiveCronContext(event.jobId, eventAgentId);
|
|
466
|
-
return;
|
|
467
|
-
}
|
|
468
|
-
if (event.action !== "added" || !event.jobId || !event.sessionKey)
|
|
469
|
-
return;
|
|
470
|
-
bindFromSession(event.jobId, event.sessionKey, eventAgentId);
|
|
471
|
-
});
|
|
472
|
-
}
|
|
473
|
-
//# sourceMappingURL=register-exec-env-hook.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register-exec-env-hook.js","sourceRoot":"","sources":["../../src/register-exec-env-hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register-exec-env-hook.test.d.ts","sourceRoot":"","sources":["../../src/register-exec-env-hook.test.ts"],"names":[],"mappings":""}
|