@xgjktech/xg_cwork_im 1.19.43 → 1.19.45
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 +136 -25
- package/dist/src/account-connection.js.map +1 -1
- package/dist/src/account-reconciler.d.ts +17 -8
- package/dist/src/account-reconciler.d.ts.map +1 -1
- package/dist/src/account-reconciler.js +31 -11
- package/dist/src/account-reconciler.js.map +1 -1
- package/dist/src/account-reconciler.test.js +19 -1
- package/dist/src/account-reconciler.test.js.map +1 -1
- package/dist/src/action-store-access.d.ts +2 -0
- package/dist/src/action-store-access.d.ts.map +1 -1
- package/dist/src/action-store-access.js +7 -0
- package/dist/src/action-store-access.js.map +1 -1
- package/dist/src/action-store-lifecycle.test.d.ts +2 -0
- package/dist/src/action-store-lifecycle.test.d.ts.map +1 -0
- package/dist/src/action-store-lifecycle.test.js +195 -0
- package/dist/src/action-store-lifecycle.test.js.map +1 -0
- package/dist/src/active-cron-context-store.d.ts +20 -0
- package/dist/src/active-cron-context-store.d.ts.map +1 -0
- package/dist/src/active-cron-context-store.js +73 -0
- package/dist/src/active-cron-context-store.js.map +1 -0
- package/dist/src/active-round-registry.d.ts +6 -0
- package/dist/src/active-round-registry.d.ts.map +1 -1
- package/dist/src/active-round-registry.js +27 -2
- package/dist/src/active-round-registry.js.map +1 -1
- package/dist/src/agent-stream-client-registry.d.ts +2 -0
- package/dist/src/agent-stream-client-registry.d.ts.map +1 -1
- package/dist/src/agent-stream-client-registry.js +6 -1
- 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/assistant-item-delivery.d.ts +27 -0
- package/dist/src/assistant-item-delivery.d.ts.map +1 -0
- package/dist/src/assistant-item-delivery.js +134 -0
- package/dist/src/assistant-item-delivery.js.map +1 -0
- package/dist/src/assistant-item-delivery.test.d.ts +2 -0
- package/dist/src/assistant-item-delivery.test.d.ts.map +1 -0
- package/dist/src/assistant-item-delivery.test.js +116 -0
- package/dist/src/assistant-item-delivery.test.js.map +1 -0
- package/dist/src/assistant-item-sink.d.ts +17 -0
- package/dist/src/assistant-item-sink.d.ts.map +1 -0
- package/dist/src/assistant-item-sink.js +34 -0
- package/dist/src/assistant-item-sink.js.map +1 -0
- package/dist/src/auth.d.ts +2 -0
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/auth.js +4 -0
- package/dist/src/auth.js.map +1 -1
- package/dist/src/block-streaming-config.test.js +7 -1
- 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 +83 -17
- package/dist/src/channel-config.d.ts.map +1 -1
- package/dist/src/channel-config.js +46 -13
- package/dist/src/channel-config.js.map +1 -1
- package/dist/src/channel-config.test.js +58 -1
- package/dist/src/channel-config.test.js.map +1 -1
- package/dist/src/channel.d.ts +4 -3
- package/dist/src/channel.d.ts.map +1 -1
- package/dist/src/channel.js +127 -4
- package/dist/src/channel.js.map +1 -1
- package/dist/src/connection-workspace-event.test.d.ts +2 -0
- package/dist/src/connection-workspace-event.test.d.ts.map +1 -0
- package/dist/src/connection-workspace-event.test.js +74 -0
- package/dist/src/connection-workspace-event.test.js.map +1 -0
- package/dist/src/connection.d.ts +28 -0
- package/dist/src/connection.d.ts.map +1 -1
- package/dist/src/connection.js +155 -78
- package/dist/src/connection.js.map +1 -1
- package/dist/src/connection.test.d.ts +2 -0
- package/dist/src/connection.test.d.ts.map +1 -0
- package/dist/src/connection.test.js +110 -0
- package/dist/src/connection.test.js.map +1 -0
- package/dist/src/cron-appkey-binding-store.d.ts +29 -0
- package/dist/src/cron-appkey-binding-store.d.ts.map +1 -0
- package/dist/src/cron-appkey-binding-store.js +239 -0
- package/dist/src/cron-appkey-binding-store.js.map +1 -0
- package/dist/src/cron-appkey-binding-store.test.d.ts +2 -0
- package/dist/src/cron-appkey-binding-store.test.d.ts.map +1 -0
- package/dist/src/cron-appkey-binding-store.test.js +387 -0
- package/dist/src/cron-appkey-binding-store.test.js.map +1 -0
- package/dist/src/deliver-text.test.js +22 -22
- package/dist/src/delivery/ai-task-push.d.ts +16 -0
- package/dist/src/delivery/ai-task-push.d.ts.map +1 -0
- package/dist/src/delivery/ai-task-push.js +44 -0
- package/dist/src/delivery/ai-task-push.js.map +1 -0
- package/dist/src/delivery/ai-task-push.test.d.ts +2 -0
- package/dist/src/delivery/ai-task-push.test.d.ts.map +1 -0
- package/dist/src/delivery/ai-task-push.test.js +44 -0
- package/dist/src/delivery/ai-task-push.test.js.map +1 -0
- package/dist/src/delivery/deliver-text.test.js +22 -22
- package/dist/src/delivery/send-service.d.ts +4 -1
- package/dist/src/delivery/send-service.d.ts.map +1 -1
- package/dist/src/delivery/send-service.js +3 -5
- package/dist/src/delivery/send-service.js.map +1 -1
- package/dist/src/delivery/turn-deliver-buffer.test.js +25 -25
- package/dist/src/dispatch-mentioned-reply.d.ts +7 -2
- package/dist/src/dispatch-mentioned-reply.d.ts.map +1 -1
- package/dist/src/dispatch-mentioned-reply.js +243 -68
- package/dist/src/dispatch-mentioned-reply.js.map +1 -1
- package/dist/src/gateway-session-queue.d.ts +2 -6
- package/dist/src/gateway-session-queue.d.ts.map +1 -1
- package/dist/src/gateway-session-queue.js +78 -21
- 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/dispatch-mentioned-reply.d.ts.map +1 -1
- package/dist/src/inbound/dispatch-mentioned-reply.js +43 -3
- package/dist/src/inbound/dispatch-mentioned-reply.js.map +1 -1
- package/dist/src/inbound/inbound-display.d.ts.map +1 -1
- package/dist/src/inbound/inbound-display.js +2 -0
- package/dist/src/inbound/inbound-display.js.map +1 -1
- package/dist/src/inbound/inbound-display.test.js +1 -0
- package/dist/src/inbound/inbound-display.test.js.map +1 -1
- package/dist/src/inbound-display.d.ts.map +1 -1
- package/dist/src/inbound-display.js +2 -1
- 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 +9 -0
- package/dist/src/inbound-model.d.ts.map +1 -1
- package/dist/src/inbound-model.js +26 -0
- package/dist/src/inbound-model.js.map +1 -1
- package/dist/src/inbound-model.test.js +23 -1
- package/dist/src/inbound-model.test.js.map +1 -1
- package/dist/src/inbound-terminal-state.d.ts +2 -0
- package/dist/src/inbound-terminal-state.d.ts.map +1 -1
- package/dist/src/inbound-terminal-state.js +7 -2
- package/dist/src/inbound-terminal-state.js.map +1 -1
- package/dist/src/nas-site.d.ts +16 -0
- package/dist/src/nas-site.d.ts.map +1 -0
- package/dist/src/nas-site.js +17 -0
- package/dist/src/nas-site.js.map +1 -0
- package/dist/src/nas-volumes.d.ts +12 -2
- package/dist/src/nas-volumes.d.ts.map +1 -1
- package/dist/src/nas-volumes.js +147 -37
- package/dist/src/nas-volumes.js.map +1 -1
- package/dist/src/nas-volumes.test.js +39 -7
- package/dist/src/nas-volumes.test.js.map +1 -1
- package/dist/src/per-message-model-pending.d.ts +38 -3
- package/dist/src/per-message-model-pending.d.ts.map +1 -1
- package/dist/src/per-message-model-pending.js +96 -7
- package/dist/src/per-message-model-pending.js.map +1 -1
- 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-core-adapter.d.ts +54 -0
- package/dist/src/plan-core-adapter.d.ts.map +1 -0
- package/dist/src/plan-core-adapter.js +104 -0
- package/dist/src/plan-core-adapter.js.map +1 -0
- package/dist/src/plan-core-adapter.test.d.ts +2 -0
- package/dist/src/plan-core-adapter.test.d.ts.map +1 -0
- package/dist/src/plan-core-adapter.test.js +183 -0
- package/dist/src/plan-core-adapter.test.js.map +1 -0
- package/dist/src/plan-core-db.d.ts +22 -0
- package/dist/src/plan-core-db.d.ts.map +1 -0
- package/dist/src/plan-core-db.js +91 -0
- package/dist/src/plan-core-db.js.map +1 -0
- package/dist/src/plan-core-db.test.d.ts +2 -0
- package/dist/src/plan-core-db.test.d.ts.map +1 -0
- package/dist/src/plan-core-db.test.js +115 -0
- package/dist/src/plan-core-db.test.js.map +1 -0
- package/dist/src/plan-core-snapshot.d.ts +23 -0
- package/dist/src/plan-core-snapshot.d.ts.map +1 -0
- package/dist/src/plan-core-snapshot.js +66 -0
- package/dist/src/plan-core-snapshot.js.map +1 -0
- package/dist/src/plan-core-snapshot.test.d.ts +2 -0
- package/dist/src/plan-core-snapshot.test.d.ts.map +1 -0
- package/dist/src/plan-core-snapshot.test.js +157 -0
- package/dist/src/plan-core-snapshot.test.js.map +1 -0
- 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 +4 -15
- package/dist/src/plan-stat-event.d.ts.map +1 -1
- package/dist/src/plan-stat-event.js +4 -37
- package/dist/src/plan-stat-event.js.map +1 -1
- package/dist/src/plan-stat-event.test.js +1 -118
- package/dist/src/plan-stat-event.test.js.map +1 -1
- package/dist/src/plan-tool-middleware.d.ts +3 -11
- package/dist/src/plan-tool-middleware.d.ts.map +1 -1
- package/dist/src/plan-tool-middleware.js +11 -60
- package/dist/src/plan-tool-middleware.js.map +1 -1
- package/dist/src/plan-tool-middleware.test.js +83 -603
- package/dist/src/plan-tool-middleware.test.js.map +1 -1
- package/dist/src/plan-ws-registry.d.ts +4 -0
- package/dist/src/plan-ws-registry.d.ts.map +1 -1
- package/dist/src/plan-ws-registry.js +12 -0
- package/dist/src/plan-ws-registry.js.map +1 -1
- package/dist/src/plan-ws-registry.test.js +19 -1
- package/dist/src/plan-ws-registry.test.js.map +1 -1
- package/dist/src/plugin/types.d.ts +5 -0
- package/dist/src/plugin/types.d.ts.map +1 -1
- package/dist/src/plugin-dispose.d.ts +22 -0
- package/dist/src/plugin-dispose.d.ts.map +1 -0
- package/dist/src/plugin-dispose.js +66 -0
- package/dist/src/plugin-dispose.js.map +1 -0
- package/dist/src/process-shared-store.d.ts +48 -0
- package/dist/src/process-shared-store.d.ts.map +1 -0
- package/dist/src/process-shared-store.js +89 -0
- package/dist/src/process-shared-store.js.map +1 -0
- package/dist/src/process-shared-store.test.d.ts +2 -0
- package/dist/src/process-shared-store.test.d.ts.map +1 -0
- package/dist/src/process-shared-store.test.js +60 -0
- package/dist/src/process-shared-store.test.js.map +1 -0
- package/dist/src/register-exec-env-hook.d.ts +44 -0
- package/dist/src/register-exec-env-hook.d.ts.map +1 -0
- package/dist/src/register-exec-env-hook.js +473 -0
- package/dist/src/register-exec-env-hook.js.map +1 -0
- package/dist/src/register-exec-env-hook.test.d.ts +2 -0
- package/dist/src/register-exec-env-hook.test.d.ts.map +1 -0
- package/dist/src/register-exec-env-hook.test.js +189 -0
- package/dist/src/register-exec-env-hook.test.js.map +1 -0
- package/dist/src/register-group-prompt-hook.d.ts +17 -0
- package/dist/src/register-group-prompt-hook.d.ts.map +1 -0
- package/dist/src/register-group-prompt-hook.js +45 -0
- package/dist/src/register-group-prompt-hook.js.map +1 -0
- package/dist/src/register-group-prompt-hook.test.d.ts +2 -0
- package/dist/src/register-group-prompt-hook.test.d.ts.map +1 -0
- package/dist/src/register-group-prompt-hook.test.js +60 -0
- package/dist/src/register-group-prompt-hook.test.js.map +1 -0
- package/dist/src/register-per-message-model-hook.d.ts +10 -2
- package/dist/src/register-per-message-model-hook.d.ts.map +1 -1
- package/dist/src/register-per-message-model-hook.js +32 -6
- package/dist/src/register-per-message-model-hook.js.map +1 -1
- package/dist/src/register-per-message-model-hook.test.d.ts +2 -0
- package/dist/src/register-per-message-model-hook.test.d.ts.map +1 -0
- package/dist/src/register-per-message-model-hook.test.js +208 -0
- package/dist/src/register-per-message-model-hook.test.js.map +1 -0
- package/dist/src/register-run-model-context-hook.d.ts +11 -0
- package/dist/src/register-run-model-context-hook.d.ts.map +1 -0
- package/dist/src/register-run-model-context-hook.js +23 -0
- package/dist/src/register-run-model-context-hook.js.map +1 -0
- package/dist/src/reply-dispatch-driver.d.ts +89 -0
- package/dist/src/reply-dispatch-driver.d.ts.map +1 -0
- package/dist/src/reply-dispatch-driver.js +294 -0
- package/dist/src/reply-dispatch-driver.js.map +1 -0
- package/dist/src/reply-dispatch-driver.test.d.ts +2 -0
- package/dist/src/reply-dispatch-driver.test.d.ts.map +1 -0
- package/dist/src/reply-dispatch-driver.test.js +363 -0
- package/dist/src/reply-dispatch-driver.test.js.map +1 -0
- package/dist/src/resolve-inbound-group-prompt.d.ts +17 -1
- package/dist/src/resolve-inbound-group-prompt.d.ts.map +1 -1
- package/dist/src/resolve-inbound-group-prompt.js +16 -2
- package/dist/src/resolve-inbound-group-prompt.js.map +1 -1
- package/dist/src/run-model-context.d.ts +45 -0
- package/dist/src/run-model-context.d.ts.map +1 -0
- package/dist/src/run-model-context.js +108 -0
- package/dist/src/run-model-context.js.map +1 -0
- package/dist/src/run-model-context.test.d.ts +2 -0
- package/dist/src/run-model-context.test.d.ts.map +1 -0
- package/dist/src/run-model-context.test.js +68 -0
- package/dist/src/run-model-context.test.js.map +1 -0
- package/dist/src/run-usage-session.d.ts +4 -1
- package/dist/src/run-usage-session.d.ts.map +1 -1
- package/dist/src/run-usage-session.js +13 -1
- package/dist/src/run-usage-session.js.map +1 -1
- package/dist/src/run-usage.d.ts +15 -0
- package/dist/src/run-usage.d.ts.map +1 -1
- package/dist/src/run-usage.js +30 -4
- package/dist/src/run-usage.js.map +1 -1
- package/dist/src/run-usage.test.js +99 -11
- 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/session-model-fallback.d.ts.map +1 -1
- package/dist/src/session/session-model-fallback.js +6 -3
- package/dist/src/session/session-model-fallback.js.map +1 -1
- package/dist/src/session-env-store.d.ts +55 -0
- package/dist/src/session-env-store.d.ts.map +1 -0
- package/dist/src/session-env-store.js +328 -0
- package/dist/src/session-env-store.js.map +1 -0
- package/dist/src/session-env-store.test.d.ts +2 -0
- package/dist/src/session-env-store.test.d.ts.map +1 -0
- package/dist/src/session-env-store.test.js +151 -0
- package/dist/src/session-env-store.test.js.map +1 -0
- package/dist/src/session-group-prompt.d.ts +34 -0
- package/dist/src/session-group-prompt.d.ts.map +1 -0
- package/dist/src/session-group-prompt.js +101 -0
- package/dist/src/session-group-prompt.js.map +1 -0
- package/dist/src/session-group-prompt.test.d.ts +2 -0
- package/dist/src/session-group-prompt.test.d.ts.map +1 -0
- package/dist/src/session-group-prompt.test.js +72 -0
- package/dist/src/session-group-prompt.test.js.map +1 -0
- package/dist/src/session-im-context.d.ts +2 -0
- package/dist/src/session-im-context.d.ts.map +1 -1
- package/dist/src/session-im-context.js +11 -2
- package/dist/src/session-im-context.js.map +1 -1
- package/dist/src/session-model-fallback.d.ts +13 -0
- package/dist/src/session-model-fallback.d.ts.map +1 -0
- package/dist/src/session-model-fallback.js +24 -0
- package/dist/src/session-model-fallback.js.map +1 -0
- package/dist/src/subagent-monitor.d.ts +14 -1
- package/dist/src/subagent-monitor.d.ts.map +1 -1
- package/dist/src/subagent-monitor.js +164 -36
- package/dist/src/subagent-monitor.js.map +1 -1
- package/dist/src/subagent-monitor.test.js +121 -0
- package/dist/src/subagent-monitor.test.js.map +1 -1
- package/dist/src/tool-event-adapter.d.ts +31 -0
- package/dist/src/tool-event-adapter.d.ts.map +1 -0
- package/dist/src/tool-event-adapter.js +83 -0
- package/dist/src/tool-event-adapter.js.map +1 -0
- package/dist/src/tool-event-adapter.test.d.ts +2 -0
- package/dist/src/tool-event-adapter.test.d.ts.map +1 -0
- package/dist/src/tool-event-adapter.test.js +93 -0
- package/dist/src/tool-event-adapter.test.js.map +1 -0
- 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/run-usage-session.d.ts +1 -1
- package/dist/src/turn/run-usage-session.d.ts.map +1 -1
- package/dist/src/turn/run-usage-session.js +7 -4
- package/dist/src/turn/run-usage-session.js.map +1 -1
- package/dist/src/turn-agent-event-subscription.d.ts +29 -0
- package/dist/src/turn-agent-event-subscription.d.ts.map +1 -0
- package/dist/src/turn-agent-event-subscription.js +289 -0
- package/dist/src/turn-agent-event-subscription.js.map +1 -0
- package/dist/src/turn-agent-event-subscription.test.d.ts +2 -0
- package/dist/src/turn-agent-event-subscription.test.d.ts.map +1 -0
- package/dist/src/turn-agent-event-subscription.test.js +165 -0
- package/dist/src/turn-agent-event-subscription.test.js.map +1 -0
- package/dist/src/turn-deliver-buffer.test.js +25 -25
- package/dist/src/turn-end-controller.d.ts +61 -0
- package/dist/src/turn-end-controller.d.ts.map +1 -0
- package/dist/src/turn-end-controller.js +239 -0
- package/dist/src/turn-end-controller.js.map +1 -0
- package/dist/src/turn-end-controller.test.d.ts +2 -0
- package/dist/src/turn-end-controller.test.d.ts.map +1 -0
- package/dist/src/turn-end-controller.test.js +97 -0
- package/dist/src/turn-end-controller.test.js.map +1 -0
- package/dist/src/types.d.ts +48 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/workspace-event-protocol.d.ts +3 -0
- package/dist/src/workspace-event-protocol.d.ts.map +1 -0
- package/dist/src/workspace-event-protocol.js +3 -0
- package/dist/src/workspace-event-protocol.js.map +1 -0
- package/dist/src/workspace-event-scheduler.d.ts +54 -0
- package/dist/src/workspace-event-scheduler.d.ts.map +1 -0
- package/dist/src/workspace-event-scheduler.js +131 -0
- package/dist/src/workspace-event-scheduler.js.map +1 -0
- package/dist/src/workspace-event-scheduler.test.d.ts +2 -0
- package/dist/src/workspace-event-scheduler.test.d.ts.map +1 -0
- package/dist/src/workspace-event-scheduler.test.js +157 -0
- package/dist/src/workspace-event-scheduler.test.js.map +1 -0
- package/dist/src/workspace-event.d.ts +28 -0
- package/dist/src/workspace-event.d.ts.map +1 -0
- package/dist/src/workspace-event.js +674 -0
- package/dist/src/workspace-event.js.map +1 -0
- package/dist/src/workspace-event.test.d.ts +2 -0
- package/dist/src/workspace-event.test.d.ts.map +1 -0
- package/dist/src/workspace-event.test.js +265 -0
- package/dist/src/workspace-event.test.js.map +1 -0
- package/dist/src/ws-inbound-schema.d.ts.map +1 -1
- package/dist/src/ws-inbound-schema.js +1 -0
- package/dist/src/ws-inbound-schema.js.map +1 -1
- package/dist/src/ws-inbound-schema.test.d.ts +2 -0
- package/dist/src/ws-inbound-schema.test.d.ts.map +1 -0
- package/dist/src/ws-inbound-schema.test.js +58 -0
- package/dist/src/ws-inbound-schema.test.js.map +1 -0
- package/openclaw.plugin.json +30 -30
- package/package.json +83 -83
- package/dist/src/modified-file-push-tracker.d.ts +0 -24
- package/dist/src/modified-file-push-tracker.d.ts.map +0 -1
- package/dist/src/modified-file-push-tracker.js +0 -125
- package/dist/src/modified-file-push-tracker.js.map +0 -1
- package/dist/src/plan/action-dispatch-event-compat.test.d.ts +0 -2
- package/dist/src/plan/action-dispatch-event-compat.test.d.ts.map +0 -1
- package/dist/src/plan/action-dispatch-event-compat.test.js +0 -81
- package/dist/src/plan/action-dispatch-event-compat.test.js.map +0 -1
- package/dist/src/plan-store-access.d.ts +0 -23
- package/dist/src/plan-store-access.d.ts.map +0 -1
- package/dist/src/plan-store-access.js +0 -96
- package/dist/src/plan-store-access.js.map +0 -1
- package/dist/src/plan-store-access.test.d.ts +0 -2
- package/dist/src/plan-store-access.test.d.ts.map +0 -1
- package/dist/src/plan-store-access.test.js +0 -207
- package/dist/src/plan-store-access.test.js.map +0 -1
- package/dist/src/progress-display.d.ts +0 -77
- package/dist/src/progress-display.d.ts.map +0 -1
- package/dist/src/progress-display.js +0 -420
- package/dist/src/progress-display.js.map +0 -1
- package/dist/src/subagent-delivery-phase.d.ts +0 -10
- package/dist/src/subagent-delivery-phase.d.ts.map +0 -1
- package/dist/src/subagent-delivery-phase.js +0 -4
- package/dist/src/subagent-delivery-phase.js.map +0 -1
- package/dist/src/subagent-delivery-phase.test.d.ts +0 -2
- package/dist/src/subagent-delivery-phase.test.d.ts.map +0 -1
- package/dist/src/subagent-delivery-phase.test.js +0 -12
- package/dist/src/subagent-delivery-phase.test.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@xgjktech/xg_cwork_im",
|
|
3
|
-
"version": "1.19.
|
|
4
|
-
"description": "XG CWork IM channel plugin for OpenClaw",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"bot",
|
|
7
|
-
"channel",
|
|
8
|
-
"openclaw",
|
|
9
|
-
"xg_cwork_im",
|
|
10
|
-
"im"
|
|
11
|
-
],
|
|
12
|
-
"license": "MIT",
|
|
13
|
-
"type": "module",
|
|
14
|
-
"main": "dist/index.js",
|
|
15
|
-
"types": "dist/index.d.ts",
|
|
16
|
-
"engines": {
|
|
17
|
-
"node": ">=22.19.0"
|
|
18
|
-
},
|
|
19
|
-
"files": [
|
|
20
|
-
".npmrc",
|
|
21
|
-
"dist/**/*",
|
|
22
|
-
"openclaw.plugin.json"
|
|
23
|
-
],
|
|
24
|
-
"scripts": {
|
|
25
|
-
"build": "tsc -p tsconfig.json",
|
|
26
|
-
"type-check": "tsc -p tsconfig.json --noEmit",
|
|
27
|
-
"lint": "tsc -p tsconfig.json --noEmit",
|
|
28
|
-
"test": "npm run build && node --test dist/src/**/*.test.js",
|
|
29
|
-
"install:prod": "npm install --omit=dev",
|
|
30
|
-
"prepublishOnly": "npm run build"
|
|
31
|
-
},
|
|
32
|
-
"dependencies": {
|
|
33
|
-
"@sinclair/typebox": "^0.32.0",
|
|
34
|
-
"@xgjktech/xg-openclaw-shared": "^0.2.2",
|
|
35
|
-
"adm-zip": "^0.6.0",
|
|
36
|
-
"axios": "^1.6.0",
|
|
37
|
-
"re2js": "^2.8.6",
|
|
38
|
-
"tar": "^7.5.22",
|
|
39
|
-
"ws": "^8.17.0",
|
|
40
|
-
"zod": "^3.22.0"
|
|
41
|
-
},
|
|
42
|
-
"devDependencies": {
|
|
43
|
-
"@types/node": "^22.19.0",
|
|
44
|
-
"@types/ws": "^8.5.10",
|
|
45
|
-
"openclaw": "2026.9.2",
|
|
46
|
-
"typescript": "^5.3.0"
|
|
47
|
-
},
|
|
48
|
-
"peerDependencies": {
|
|
49
|
-
"openclaw": ">=2026.9.2"
|
|
50
|
-
},
|
|
51
|
-
"peerDependenciesMeta": {
|
|
52
|
-
"openclaw": {
|
|
53
|
-
"optional": true
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
"openclaw": {
|
|
57
|
-
"extensions": [
|
|
58
|
-
"./dist/index.js"
|
|
59
|
-
],
|
|
60
|
-
"channels": [
|
|
61
|
-
"xg_cwork_im"
|
|
62
|
-
],
|
|
63
|
-
"installDependencies": false,
|
|
64
|
-
"channel": {
|
|
65
|
-
"id": "xg_cwork_im",
|
|
66
|
-
"label": "XG CWork IM",
|
|
67
|
-
"selectionLabel": "XG CWork IM (工作说说)",
|
|
68
|
-
"blurb": "工作说说 IM 机器人 Channel 插件,通过 WebSocket 长连接接收消息。",
|
|
69
|
-
"aliases": [
|
|
70
|
-
"xg_cwork_im",
|
|
71
|
-
"im"
|
|
72
|
-
]
|
|
73
|
-
},
|
|
74
|
-
"install": {
|
|
75
|
-
"localPath": ".",
|
|
76
|
-
"defaultChoice": "local",
|
|
77
|
-
"minHostVersion": ">=2026.9.2"
|
|
78
|
-
},
|
|
79
|
-
"compat": {
|
|
80
|
-
"pluginApi": ">=2026.9.2"
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@xgjktech/xg_cwork_im",
|
|
3
|
+
"version": "1.19.45",
|
|
4
|
+
"description": "XG CWork IM channel plugin for OpenClaw",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"bot",
|
|
7
|
+
"channel",
|
|
8
|
+
"openclaw",
|
|
9
|
+
"xg_cwork_im",
|
|
10
|
+
"im"
|
|
11
|
+
],
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"type": "module",
|
|
14
|
+
"main": "dist/index.js",
|
|
15
|
+
"types": "dist/index.d.ts",
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=22.19.0"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
".npmrc",
|
|
21
|
+
"dist/**/*",
|
|
22
|
+
"openclaw.plugin.json"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc -p tsconfig.json",
|
|
26
|
+
"type-check": "tsc -p tsconfig.json --noEmit",
|
|
27
|
+
"lint": "tsc -p tsconfig.json --noEmit",
|
|
28
|
+
"test": "npm run build && node --test dist/src/**/*.test.js",
|
|
29
|
+
"install:prod": "npm install --omit=dev",
|
|
30
|
+
"prepublishOnly": "npm run build"
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"@sinclair/typebox": "^0.32.0",
|
|
34
|
+
"@xgjktech/xg-openclaw-shared": "^0.2.2",
|
|
35
|
+
"adm-zip": "^0.6.0",
|
|
36
|
+
"axios": "^1.6.0",
|
|
37
|
+
"re2js": "^2.8.6",
|
|
38
|
+
"tar": "^7.5.22",
|
|
39
|
+
"ws": "^8.17.0",
|
|
40
|
+
"zod": "^3.22.0"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@types/node": "^22.19.0",
|
|
44
|
+
"@types/ws": "^8.5.10",
|
|
45
|
+
"openclaw": "2026.9.2",
|
|
46
|
+
"typescript": "^5.3.0"
|
|
47
|
+
},
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"openclaw": ">=2026.9.2"
|
|
50
|
+
},
|
|
51
|
+
"peerDependenciesMeta": {
|
|
52
|
+
"openclaw": {
|
|
53
|
+
"optional": true
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"openclaw": {
|
|
57
|
+
"extensions": [
|
|
58
|
+
"./dist/index.js"
|
|
59
|
+
],
|
|
60
|
+
"channels": [
|
|
61
|
+
"xg_cwork_im"
|
|
62
|
+
],
|
|
63
|
+
"installDependencies": false,
|
|
64
|
+
"channel": {
|
|
65
|
+
"id": "xg_cwork_im",
|
|
66
|
+
"label": "XG CWork IM",
|
|
67
|
+
"selectionLabel": "XG CWork IM (工作说说)",
|
|
68
|
+
"blurb": "工作说说 IM 机器人 Channel 插件,通过 WebSocket 长连接接收消息。",
|
|
69
|
+
"aliases": [
|
|
70
|
+
"xg_cwork_im",
|
|
71
|
+
"im"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"install": {
|
|
75
|
+
"localPath": ".",
|
|
76
|
+
"defaultChoice": "local",
|
|
77
|
+
"minHostVersion": ">=2026.9.2"
|
|
78
|
+
},
|
|
79
|
+
"compat": {
|
|
80
|
+
"pluginApi": ">=2026.9.2"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { Logger } from "./channel-log.js";
|
|
2
|
-
import { type ReplyDeliverPayload } from "./send-service.js";
|
|
3
|
-
import type { WsMessageParams, XgImConfig } from "./types.js";
|
|
4
|
-
export type PatchSummaryPayload = {
|
|
5
|
-
added?: string[];
|
|
6
|
-
modified?: string[];
|
|
7
|
-
deleted?: string[];
|
|
8
|
-
};
|
|
9
|
-
type FlushArgs = {
|
|
10
|
-
config: XgImConfig;
|
|
11
|
-
token: string;
|
|
12
|
-
params: WsMessageParams;
|
|
13
|
-
};
|
|
14
|
-
export declare function createModifiedFilePushTracker(options: {
|
|
15
|
-
agentWorkspaceDir?: string;
|
|
16
|
-
log: Logger;
|
|
17
|
-
logPrefix: string;
|
|
18
|
-
}): {
|
|
19
|
-
recordPatchSummary: (payload: PatchSummaryPayload) => void;
|
|
20
|
-
markDelivered: (payload: ReplyDeliverPayload) => void;
|
|
21
|
-
flush: (args: FlushArgs) => Promise<void>;
|
|
22
|
-
};
|
|
23
|
-
export {};
|
|
24
|
-
//# sourceMappingURL=modified-file-push-tracker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modified-file-push-tracker.d.ts","sourceRoot":"","sources":["../../src/modified-file-push-tracker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAyB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,KAAK,SAAS,GAAG;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;CAC3B,CAAC;AAwFF,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACrB,GAAG;IACA,kBAAkB,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC3D,aAAa,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtD,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C,CAgDA"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs/promises";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { buildTargetReplyMeta } from "./inbound-display.js";
|
|
5
|
-
import { resolveLocalFsPath, resolveWorkspaceCandidatePaths } from "./resource-file.js";
|
|
6
|
-
import { sendReplyDeliverBlock } from "./send-service.js";
|
|
7
|
-
function isUrlLike(value) {
|
|
8
|
-
return /^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(value.trim());
|
|
9
|
-
}
|
|
10
|
-
function normalizePushPath(filePath, workspaceDir) {
|
|
11
|
-
const clean = filePath.trim();
|
|
12
|
-
if (clean.startsWith("/workspace/") || clean === "/workspace") {
|
|
13
|
-
return clean;
|
|
14
|
-
}
|
|
15
|
-
if (isUrlLike(clean)) {
|
|
16
|
-
return clean;
|
|
17
|
-
}
|
|
18
|
-
const wsDir = workspaceDir?.trim();
|
|
19
|
-
if (wsDir) {
|
|
20
|
-
const wsResolved = path.resolve(wsDir);
|
|
21
|
-
const fileResolved = path.isAbsolute(clean) ? path.resolve(clean) : path.resolve(wsResolved, clean);
|
|
22
|
-
const relToWorkspace = path.relative(wsResolved, fileResolved);
|
|
23
|
-
if (!relToWorkspace.startsWith("..") && !path.isAbsolute(relToWorkspace)) {
|
|
24
|
-
return relToWorkspace ? `/workspace/${relToWorkspace.replace(/\\/g, "/")}` : "/workspace";
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return clean;
|
|
28
|
-
}
|
|
29
|
-
function pushPathCandidates(filePath, workspaceDir) {
|
|
30
|
-
const clean = filePath.trim();
|
|
31
|
-
if (!clean)
|
|
32
|
-
return [];
|
|
33
|
-
if (clean.startsWith("/workspace/") || clean === "/workspace") {
|
|
34
|
-
try {
|
|
35
|
-
return resolveWorkspaceCandidatePaths(clean, workspaceDir);
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
if (clean.startsWith("file://")) {
|
|
42
|
-
try {
|
|
43
|
-
return [fileURLToPath(clean)];
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
return [];
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
const local = resolveLocalFsPath(clean);
|
|
50
|
-
if (local)
|
|
51
|
-
return [local.fsPath];
|
|
52
|
-
const wsDir = workspaceDir?.trim();
|
|
53
|
-
if (wsDir && !path.isAbsolute(clean)) {
|
|
54
|
-
return [path.resolve(wsDir, clean)];
|
|
55
|
-
}
|
|
56
|
-
return [];
|
|
57
|
-
}
|
|
58
|
-
async function isExistingRegularPushFile(filePath, workspaceDir) {
|
|
59
|
-
for (const candidate of pushPathCandidates(filePath, workspaceDir)) {
|
|
60
|
-
try {
|
|
61
|
-
const stat = await fs.stat(candidate);
|
|
62
|
-
if (stat.isFile())
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
catch {
|
|
66
|
-
/* try next candidate */
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
async function filterExistingPushFiles(files, workspaceDir, log, logPrefix) {
|
|
72
|
-
const out = [];
|
|
73
|
-
for (const file of files) {
|
|
74
|
-
if (await isExistingRegularPushFile(file, workspaceDir)) {
|
|
75
|
-
out.push(file);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
log.warn(`${logPrefix} [sync-push] Skip non-existing or non-file path: ${JSON.stringify(file)}`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return out;
|
|
82
|
-
}
|
|
83
|
-
function payloadMediaUrls(payload) {
|
|
84
|
-
return [
|
|
85
|
-
...(payload.mediaUrl ? [payload.mediaUrl] : []),
|
|
86
|
-
...(payload.mediaUrls ?? []),
|
|
87
|
-
].filter((u) => typeof u === "string" && u.trim());
|
|
88
|
-
}
|
|
89
|
-
export function createModifiedFilePushTracker(options) {
|
|
90
|
-
const { agentWorkspaceDir, log, logPrefix } = options;
|
|
91
|
-
const modifiedFiles = new Set();
|
|
92
|
-
return {
|
|
93
|
-
recordPatchSummary(payload) {
|
|
94
|
-
payload.added?.forEach((f) => modifiedFiles.add(normalizePushPath(f, agentWorkspaceDir)));
|
|
95
|
-
payload.modified?.forEach((f) => modifiedFiles.add(normalizePushPath(f, agentWorkspaceDir)));
|
|
96
|
-
},
|
|
97
|
-
markDelivered(payload) {
|
|
98
|
-
for (const url of payloadMediaUrls(payload)) {
|
|
99
|
-
modifiedFiles.delete(normalizePushPath(url, agentWorkspaceDir));
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
async flush(args) {
|
|
103
|
-
if (modifiedFiles.size === 0)
|
|
104
|
-
return;
|
|
105
|
-
const mediaUrls = await filterExistingPushFiles(modifiedFiles, agentWorkspaceDir, log, logPrefix);
|
|
106
|
-
if (mediaUrls.length === 0) {
|
|
107
|
-
log.info(`${logPrefix} [sync-push] No existing modified files to push`);
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
log.info(`${logPrefix} [sync-push] 自动推送变动文件至客户端: ${JSON.stringify(mediaUrls)}`);
|
|
111
|
-
try {
|
|
112
|
-
const reply = buildTargetReplyMeta(args.params);
|
|
113
|
-
await sendReplyDeliverBlock(args.config, args.token, args.params.groupId, {
|
|
114
|
-
text: "已自动将本次修改的文件同步到工作区,您可以在右侧面板进行审阅:",
|
|
115
|
-
isThinking: false,
|
|
116
|
-
mediaUrls,
|
|
117
|
-
}, [reply.targetUserId], log, undefined, reply, agentWorkspaceDir);
|
|
118
|
-
}
|
|
119
|
-
catch (err) {
|
|
120
|
-
log.error(`${logPrefix} [sync-push] 自动推送文件附件失败: ${String(err)}`);
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=modified-file-push-tracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modified-file-push-tracker.js","sourceRoot":"","sources":["../../src/modified-file-push-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAA4B,MAAM,mBAAmB,CAAC;AAepF,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,YAAqB;IAC9D,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACpG,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACvE,OAAO,cAAc,CAAC,CAAC,CAAC,cAAc,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QAC9F,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,YAAqB;IAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC5D,IAAI,CAAC;YACD,OAAO,8BAA8B,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACD,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,KAAK;QAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,QAAgB,EAAE,YAAqB;IAC5E,KAAK,MAAM,SAAS,IAAI,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,OAAO,IAAI,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACL,wBAAwB;QAC5B,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,uBAAuB,CAClC,KAAuB,EACvB,YAAgC,EAChC,GAAW,EACX,SAAiB;IAEjB,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,MAAM,yBAAyB,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,oDAAoD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,OAA4B;IAClD,OAAO;QACH,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;KAC/B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAI7C;IAKG,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,OAAO;QACH,kBAAkB,CAAC,OAA4B;YAC3C,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC1F,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACjG,CAAC;QAED,aAAa,CAAC,OAA4B;YACtC,KAAK,MAAM,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,aAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC;YACpE,CAAC;QACL,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,IAAe;YACvB,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO;YAErC,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,aAAa,EAAE,iBAAiB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAClG,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,iDAAiD,CAAC,CAAC;gBACxE,OAAO;YACX,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,8BAA8B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChD,MAAM,qBAAqB,CACvB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB;oBACI,IAAI,EAAE,iCAAiC;oBACvC,UAAU,EAAE,KAAK;oBACjB,SAAS;iBACZ,EACD,CAAC,KAAK,CAAC,YAAY,CAAa,EAChC,GAAG,EACH,SAAS,EACT,KAAK,EACL,iBAAiB,CACpB,CAAC;YACN,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACpB,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,4BAA4B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action-dispatch-event-compat.test.d.ts","sourceRoot":"","sources":["../../../src/plan/action-dispatch-event-compat.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert/strict";
|
|
2
|
-
import { mkdtempSync, rmSync } from "node:fs";
|
|
3
|
-
import { tmpdir } from "node:os";
|
|
4
|
-
import { join } from "node:path";
|
|
5
|
-
import { DatabaseSync } from "node:sqlite";
|
|
6
|
-
import { afterEach, beforeEach, describe, it } from "node:test";
|
|
7
|
-
import { resolvePlanDbPath } from "@xgjktech/xg-openclaw-shared";
|
|
8
|
-
import { __resetActiveRoundRegistryForTests, registerActiveRound } from "../turn/active-round-registry.js";
|
|
9
|
-
import { createTurnAgentEventHandler, disposeTurnAgentEvents } from "../turn/turn-agent-event-subscription.js";
|
|
10
|
-
import { disposeActionStore, getActionById, setActionStateDir } from "./action-store-access.js";
|
|
11
|
-
import { sendActionRunEvent } from "./action-run-event.js";
|
|
12
|
-
import { createPlanToolResultMiddleware } from "./plan-tool-middleware.js";
|
|
13
|
-
import { resetPlanWsRegistryForTest, setPlanWsClient } from "./plan-ws-registry.js";
|
|
14
|
-
const GROUP = "action-compat-group";
|
|
15
|
-
const SESSION = `agent:test:xg_cwork_im:group:${GROUP}`;
|
|
16
|
-
const EVENT_ID = "evt-action-compat";
|
|
17
|
-
let stateDir;
|
|
18
|
-
let calls;
|
|
19
|
-
let client;
|
|
20
|
-
beforeEach(() => {
|
|
21
|
-
disposeTurnAgentEvents();
|
|
22
|
-
resetPlanWsRegistryForTest();
|
|
23
|
-
__resetActiveRoundRegistryForTests();
|
|
24
|
-
stateDir = mkdtempSync(join(tmpdir(), "xg-action-compat-"));
|
|
25
|
-
setActionStateDir(stateDir);
|
|
26
|
-
const db = new DatabaseSync(resolvePlanDbPath(stateDir));
|
|
27
|
-
db.exec("CREATE TABLE actions (event_id TEXT PRIMARY KEY, doc TEXT NOT NULL)");
|
|
28
|
-
db.prepare("INSERT INTO actions VALUES (?, ?)").run(EVENT_ID, JSON.stringify({
|
|
29
|
-
eventId: EVENT_ID, event: "action_dispatch", action: "ui_refresh", target: "BP",
|
|
30
|
-
version: 1, status: "completed", timestamp: new Date().toISOString(),
|
|
31
|
-
origin: { channel: "xg_cwork_im", to: GROUP }, payload: { data: { text: "x".repeat(600) } },
|
|
32
|
-
}));
|
|
33
|
-
db.close();
|
|
34
|
-
calls = [];
|
|
35
|
-
client = {
|
|
36
|
-
start: async () => { }, streamProgress: async () => { }, streamUsage: async () => { },
|
|
37
|
-
sendEvent: async (opts) => { calls.push(opts); }, end: async () => { },
|
|
38
|
-
};
|
|
39
|
-
setPlanWsClient(GROUP, client, "anchor");
|
|
40
|
-
});
|
|
41
|
-
afterEach(() => {
|
|
42
|
-
disposeActionStore();
|
|
43
|
-
disposeTurnAgentEvents();
|
|
44
|
-
resetPlanWsRegistryForTest();
|
|
45
|
-
__resetActiveRoundRegistryForTests();
|
|
46
|
-
rmSync(stateDir, { recursive: true, force: true });
|
|
47
|
-
});
|
|
48
|
-
function toolResult() {
|
|
49
|
-
const business = { ok: true, eventId: EVENT_ID, event: getActionById(EVENT_ID) };
|
|
50
|
-
return { details: business, content: [{ type: "text", text: JSON.stringify(business) }] };
|
|
51
|
-
}
|
|
52
|
-
function emitResult(result = toolResult(), toolCallId = "tool_call:parent:xg_action_dispatch:1") {
|
|
53
|
-
const handler = createTurnAgentEventHandler();
|
|
54
|
-
handler({
|
|
55
|
-
seq: 1, ts: Date.now(), runId: "run-compat", stream: "tool", sessionKey: SESSION,
|
|
56
|
-
data: { name: "xg_action_dispatch", phase: "result", toolCallId, result },
|
|
57
|
-
}, {});
|
|
58
|
-
}
|
|
59
|
-
describe("Action Dispatch: OpenClaw Default 嵌套工具兼容", () => {
|
|
60
|
-
it("真实 SQLite + tool_call 内层 result:ACTION_DISPATCH 完整发送,TOOL_EVENT 仍为 300 字符预览", () => {
|
|
61
|
-
registerActiveRound({ accountId: "test", groupId: GROUP, agentId: "test", sessionKey: SESSION, replyToMsgId: "anchor", streamClient: client });
|
|
62
|
-
emitResult();
|
|
63
|
-
assert.deepEqual(calls.map((call) => call.event), ["ACTION_DISPATCH", "TOOL_EVENT"]);
|
|
64
|
-
assert.equal(calls[0].data.target, "BP");
|
|
65
|
-
assert.equal((calls[0].data.payload.data.text).length, 600);
|
|
66
|
-
assert.equal(calls[1].data.result.length, 300);
|
|
67
|
-
});
|
|
68
|
-
it("直调只走原中间件,tool 流不重复派发", () => {
|
|
69
|
-
const middleware = createPlanToolResultMiddleware({ getActionById, sendActionRunEvent });
|
|
70
|
-
middleware({ toolName: "xg_action_dispatch", toolCallId: "direct", args: {}, result: toolResult() }, { runtime: "openclaw" });
|
|
71
|
-
emitResult(toolResult(), "direct");
|
|
72
|
-
assert.equal(calls.length, 1);
|
|
73
|
-
});
|
|
74
|
-
it("content-only 结果复用原解析器,缺库记录不派发", () => {
|
|
75
|
-
emitResult({ details: { ok: true, eventId: "missing" }, content: [] });
|
|
76
|
-
assert.equal(calls.length, 0);
|
|
77
|
-
emitResult({ details: undefined, content: toolResult().content });
|
|
78
|
-
assert.equal(calls.length, 1);
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
//# sourceMappingURL=action-dispatch-event-compat.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action-dispatch-event-compat.test.js","sourceRoot":"","sources":["../../../src/plan/action-dispatch-event-compat.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { Plan, PlanSummary } from "@xgjktech/xg-openclaw-shared";
|
|
2
|
-
/** 注入 stateDir(来自 api.runtime.state.resolveStateDir())。register(api) 时调用一次。 */
|
|
3
|
-
export declare function setPlanStateDir(dir: string): void;
|
|
4
|
-
/** 测试用:重置模块级缓存与 stateDir */
|
|
5
|
-
export declare function resetPlanStoreAccessForTest(): void;
|
|
6
|
-
/**
|
|
7
|
-
* 按 planId 反查完整计划。
|
|
8
|
-
* 库不存在 / 打开失败 / 读取异常 → 返回 undefined 并记 warn 日志,绝不抛。
|
|
9
|
-
*/
|
|
10
|
-
export declare function getPlanById(planId: string): Plan | undefined;
|
|
11
|
-
/**
|
|
12
|
-
* 列出全部计划摘要(重启恢复用)。
|
|
13
|
-
* 异常同上 → 返回空数组,绝不抛。
|
|
14
|
-
*/
|
|
15
|
-
export declare function listPlanSummaries(): PlanSummary[];
|
|
16
|
-
/**
|
|
17
|
-
* 按来源会话(channel + to)反查全量 plan(WS 快照用)。
|
|
18
|
-
* shared 侧只读实现已内置"旧库缺 origin 列 → 返回 []"的探测降级;
|
|
19
|
-
* 这里叠加本文件既有的句柄级降级纪律:拿不到句柄 / 查询异常 → 记 warn、返回 []、绝不抛、
|
|
20
|
-
* 失败时清空句柄缓存(与 getPlanById 同款,供后续调用重试恢复)。
|
|
21
|
-
*/
|
|
22
|
-
export declare function listPlansByOrigin(channel: string, to: string): Plan[];
|
|
23
|
-
//# sourceMappingURL=plan-store-access.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan-store-access.d.ts","sourceRoot":"","sources":["../../src/plan-store-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAWtE,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIjD;AAED,4BAA4B;AAC5B,wBAAgB,2BAA2B,IAAI,IAAI,CAIlD;AAyBD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAY5D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,EAAE,CAYjD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,CAYrE"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { openPlanStoreReadonly, resolvePlanDbPath } from "@xgjktech/xg-openclaw-shared";
|
|
2
|
-
const LOG_PREFIX = "[xg_cwork_im] [plan-store]";
|
|
3
|
-
let stateDir;
|
|
4
|
-
let handle;
|
|
5
|
-
let warnedNoStateDir = false;
|
|
6
|
-
/** 注入 stateDir(来自 api.runtime.state.resolveStateDir())。register(api) 时调用一次。 */
|
|
7
|
-
export function setPlanStateDir(dir) {
|
|
8
|
-
stateDir = dir;
|
|
9
|
-
handle = undefined;
|
|
10
|
-
warnedNoStateDir = false;
|
|
11
|
-
}
|
|
12
|
-
/** 测试用:重置模块级缓存与 stateDir */
|
|
13
|
-
export function resetPlanStoreAccessForTest() {
|
|
14
|
-
stateDir = undefined;
|
|
15
|
-
handle = undefined;
|
|
16
|
-
warnedNoStateDir = false;
|
|
17
|
-
}
|
|
18
|
-
function getHandle() {
|
|
19
|
-
if (handle) {
|
|
20
|
-
return handle;
|
|
21
|
-
}
|
|
22
|
-
if (!stateDir) {
|
|
23
|
-
if (!warnedNoStateDir) {
|
|
24
|
-
console.warn(`${LOG_PREFIX} stateDir 未设置,无法打开计划库`);
|
|
25
|
-
warnedNoStateDir = true;
|
|
26
|
-
}
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
|
29
|
-
let dbPath = "<unresolved>";
|
|
30
|
-
try {
|
|
31
|
-
dbPath = resolvePlanDbPath(stateDir);
|
|
32
|
-
handle = openPlanStoreReadonly(dbPath);
|
|
33
|
-
return handle;
|
|
34
|
-
}
|
|
35
|
-
catch (cause) {
|
|
36
|
-
console.warn(`${LOG_PREFIX} 打开计划库失败 dbPath=${dbPath} 原因=${String(cause)}`);
|
|
37
|
-
return undefined;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* 按 planId 反查完整计划。
|
|
42
|
-
* 库不存在 / 打开失败 / 读取异常 → 返回 undefined 并记 warn 日志,绝不抛。
|
|
43
|
-
*/
|
|
44
|
-
export function getPlanById(planId) {
|
|
45
|
-
const h = getHandle();
|
|
46
|
-
if (!h) {
|
|
47
|
-
return undefined;
|
|
48
|
-
}
|
|
49
|
-
try {
|
|
50
|
-
return h.get(planId);
|
|
51
|
-
}
|
|
52
|
-
catch (cause) {
|
|
53
|
-
console.warn(`${LOG_PREFIX} 读取 plan 失败 planId=${planId} 原因=${String(cause)}`);
|
|
54
|
-
handle = undefined;
|
|
55
|
-
return undefined;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* 列出全部计划摘要(重启恢复用)。
|
|
60
|
-
* 异常同上 → 返回空数组,绝不抛。
|
|
61
|
-
*/
|
|
62
|
-
export function listPlanSummaries() {
|
|
63
|
-
const h = getHandle();
|
|
64
|
-
if (!h) {
|
|
65
|
-
return [];
|
|
66
|
-
}
|
|
67
|
-
try {
|
|
68
|
-
return h.list();
|
|
69
|
-
}
|
|
70
|
-
catch (cause) {
|
|
71
|
-
console.warn(`${LOG_PREFIX} 列出 plan 列表失败 原因=${String(cause)}`);
|
|
72
|
-
handle = undefined;
|
|
73
|
-
return [];
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* 按来源会话(channel + to)反查全量 plan(WS 快照用)。
|
|
78
|
-
* shared 侧只读实现已内置"旧库缺 origin 列 → 返回 []"的探测降级;
|
|
79
|
-
* 这里叠加本文件既有的句柄级降级纪律:拿不到句柄 / 查询异常 → 记 warn、返回 []、绝不抛、
|
|
80
|
-
* 失败时清空句柄缓存(与 getPlanById 同款,供后续调用重试恢复)。
|
|
81
|
-
*/
|
|
82
|
-
export function listPlansByOrigin(channel, to) {
|
|
83
|
-
const h = getHandle();
|
|
84
|
-
if (!h) {
|
|
85
|
-
return [];
|
|
86
|
-
}
|
|
87
|
-
try {
|
|
88
|
-
return h.listPlansByOrigin({ channel, to });
|
|
89
|
-
}
|
|
90
|
-
catch (cause) {
|
|
91
|
-
console.warn(`${LOG_PREFIX} 按 origin 列出 plan 失败 channel=${channel} to=${to} 原因=${String(cause)}`);
|
|
92
|
-
handle = undefined;
|
|
93
|
-
return [];
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=plan-store-access.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan-store-access.js","sourceRoot":"","sources":["../../src/plan-store-access.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan-store-access.test.d.ts","sourceRoot":"","sources":["../../src/plan-store-access.test.ts"],"names":[],"mappings":""}
|