@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":"workspace-event.js","sourceRoot":"","sources":["../../src/workspace-event.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-event.test.d.ts","sourceRoot":"","sources":["../../src/workspace-event.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert/strict";
|
|
2
|
-
import { access, mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
3
|
-
import os from "node:os";
|
|
4
|
-
import path from "node:path";
|
|
5
|
-
import { afterEach, describe, it } from "node:test";
|
|
6
|
-
import { handleWorkspaceEvent } from "./workspace-event.js";
|
|
7
|
-
const tempDirs = [];
|
|
8
|
-
const quietLog = {
|
|
9
|
-
info: () => undefined,
|
|
10
|
-
warn: () => undefined,
|
|
11
|
-
error: () => undefined,
|
|
12
|
-
};
|
|
13
|
-
afterEach(async () => {
|
|
14
|
-
await Promise.all(tempDirs.splice(0).map((dir) => rm(dir, { recursive: true, force: true })));
|
|
15
|
-
});
|
|
16
|
-
async function tempRoot(prefix) {
|
|
17
|
-
const root = await mkdtemp(path.join(os.tmpdir(), prefix));
|
|
18
|
-
tempDirs.push(root);
|
|
19
|
-
return root;
|
|
20
|
-
}
|
|
21
|
-
function context(workspaceHostRoot, config) {
|
|
22
|
-
return {
|
|
23
|
-
config: { baseUrl: "https://im.example.test", ...config },
|
|
24
|
-
cfg: {},
|
|
25
|
-
log: quietLog,
|
|
26
|
-
logPrefix: "[test:main]",
|
|
27
|
-
workspaceHostRoot,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
function localRequest(rootPath, requestPath, event) {
|
|
31
|
-
return {
|
|
32
|
-
_wsRelayId: "relay-local",
|
|
33
|
-
event,
|
|
34
|
-
groupId: "42",
|
|
35
|
-
workspace: {
|
|
36
|
-
sourceType: "LOCAL",
|
|
37
|
-
rootPath,
|
|
38
|
-
localRoot: { kind: "workspace_relative", path: rootPath },
|
|
39
|
-
},
|
|
40
|
-
path: requestPath,
|
|
41
|
-
limit: 200,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
describe("workspace event LOCAL", () => {
|
|
45
|
-
it("returns only direct children with relative paths and stable fields", async () => {
|
|
46
|
-
const hostRoot = await tempRoot("xg-workspace-local-");
|
|
47
|
-
const logicalRoot = "xg-cwork-im/202608/42";
|
|
48
|
-
const actualRoot = path.join(hostRoot, ...logicalRoot.split("/"));
|
|
49
|
-
await mkdir(path.join(actualRoot, "output"), { recursive: true });
|
|
50
|
-
await writeFile(path.join(actualRoot, "result.md"), "# result", "utf8");
|
|
51
|
-
await writeFile(path.join(actualRoot, "ignored.txt"), "text", "utf8");
|
|
52
|
-
const result = await handleWorkspaceEvent(context(hostRoot), localRequest(logicalRoot, logicalRoot, "TREE_REQUEST"));
|
|
53
|
-
assert.equal(result.success, true);
|
|
54
|
-
assert.equal(result.event, "TREE_RESULT");
|
|
55
|
-
assert.equal(result.path, "");
|
|
56
|
-
assert.equal("nasSiteCode" in result, false);
|
|
57
|
-
const entries = result.entries;
|
|
58
|
-
assert.deepEqual(entries.map((entry) => [entry.name, entry.type]), [
|
|
59
|
-
["output", "DIRECTORY"],
|
|
60
|
-
["ignored.txt", "FILE"],
|
|
61
|
-
["result.md", "FILE"],
|
|
62
|
-
]);
|
|
63
|
-
assert.equal(entries[0]?.path, "output");
|
|
64
|
-
assert.equal(typeof entries[0]?.modifiedAt, "number");
|
|
65
|
-
assert.equal("size" in entries[0], false);
|
|
66
|
-
assert.equal(typeof entries[1]?.size, "number");
|
|
67
|
-
});
|
|
68
|
-
it("reads UTF-8 JSON/MD/HTML without logging or returning host paths", async () => {
|
|
69
|
-
const hostRoot = await tempRoot("xg-workspace-file-");
|
|
70
|
-
const logicalRoot = "xg-cwork-im/202608/42";
|
|
71
|
-
const actualRoot = path.join(hostRoot, ...logicalRoot.split("/"));
|
|
72
|
-
await mkdir(path.join(actualRoot, "output"), { recursive: true });
|
|
73
|
-
await writeFile(path.join(actualRoot, "output", "结果.md"), "# 中文结果", "utf8");
|
|
74
|
-
const result = await handleWorkspaceEvent(context(hostRoot), localRequest(logicalRoot, `${logicalRoot}/output/结果.md`, "FILE_REQUEST"));
|
|
75
|
-
assert.equal(result.success, true);
|
|
76
|
-
assert.equal(result.path, "output/结果.md");
|
|
77
|
-
assert.equal(result.fileName, "结果.md");
|
|
78
|
-
assert.equal(result.contentType, "text/markdown; charset=utf-8");
|
|
79
|
-
assert.equal(result.content, "# 中文结果");
|
|
80
|
-
assert.equal(JSON.stringify(result).includes(hostRoot), false);
|
|
81
|
-
});
|
|
82
|
-
it("keeps the existing host_absolute localRoot behavior", async () => {
|
|
83
|
-
const absoluteRoot = await tempRoot("xg-workspace-host-absolute-");
|
|
84
|
-
await writeFile(path.join(absoluteRoot, "result.json"), "{\"ok\":true}", "utf8");
|
|
85
|
-
const logicalRoot = absoluteRoot.replace(/\\/g, "/");
|
|
86
|
-
const result = await handleWorkspaceEvent(context(absoluteRoot), {
|
|
87
|
-
_wsRelayId: "relay-host-absolute",
|
|
88
|
-
event: "FILE_REQUEST",
|
|
89
|
-
groupId: "42",
|
|
90
|
-
workspace: {
|
|
91
|
-
sourceType: "LOCAL",
|
|
92
|
-
rootPath: logicalRoot,
|
|
93
|
-
localRoot: { kind: "host_absolute", path: absoluteRoot },
|
|
94
|
-
},
|
|
95
|
-
path: `${logicalRoot}/result.json`,
|
|
96
|
-
});
|
|
97
|
-
assert.equal(result.success, true);
|
|
98
|
-
assert.equal(result.path, "result.json");
|
|
99
|
-
assert.equal(result.content, "{\"ok\":true}");
|
|
100
|
-
assert.equal(JSON.stringify(result).includes(absoluteRoot), false);
|
|
101
|
-
});
|
|
102
|
-
it("falls back to GB18030 for common legacy Chinese text files", async () => {
|
|
103
|
-
const hostRoot = await tempRoot("xg-workspace-gb18030-");
|
|
104
|
-
const logicalRoot = "xg-cwork-im/202608/42";
|
|
105
|
-
const actualRoot = path.join(hostRoot, ...logicalRoot.split("/"));
|
|
106
|
-
await mkdir(actualRoot, { recursive: true });
|
|
107
|
-
// “中文”的 GBK/GB18030 字节。
|
|
108
|
-
await writeFile(path.join(actualRoot, "legacy.md"), Buffer.from([0xd6, 0xd0, 0xce, 0xc4]));
|
|
109
|
-
const result = await handleWorkspaceEvent(context(hostRoot), localRequest(logicalRoot, `${logicalRoot}/legacy.md`, "FILE_REQUEST"));
|
|
110
|
-
assert.equal(result.success, true);
|
|
111
|
-
assert.equal(result.content, "中文");
|
|
112
|
-
assert.equal(result.contentType, "text/markdown; charset=utf-8");
|
|
113
|
-
assert.equal("sourceEncoding" in result, false);
|
|
114
|
-
});
|
|
115
|
-
it("rejects traversal and files larger than 1 MiB", async () => {
|
|
116
|
-
const hostRoot = await tempRoot("xg-workspace-limit-");
|
|
117
|
-
const logicalRoot = "xg-cwork-im/202608/42";
|
|
118
|
-
const actualRoot = path.join(hostRoot, ...logicalRoot.split("/"));
|
|
119
|
-
await mkdir(actualRoot, { recursive: true });
|
|
120
|
-
await writeFile(path.join(actualRoot, "large.md"), Buffer.alloc(1024 * 1024 + 1, 0x61));
|
|
121
|
-
const outside = await handleWorkspaceEvent(context(hostRoot), localRequest(logicalRoot, `${logicalRoot}/../secret.md`, "FILE_REQUEST"));
|
|
122
|
-
assert.equal(outside.success, false);
|
|
123
|
-
assert.equal(outside.errorCode, "PATH_OUTSIDE_WORKSPACE");
|
|
124
|
-
const tooLarge = await handleWorkspaceEvent(context(hostRoot), localRequest(logicalRoot, `${logicalRoot}/large.md`, "FILE_REQUEST"));
|
|
125
|
-
assert.equal(tooLarge.success, false);
|
|
126
|
-
assert.equal(tooLarge.errorCode, "FILE_TOO_LARGE");
|
|
127
|
-
assert.equal("content" in tooLarge, false);
|
|
128
|
-
});
|
|
129
|
-
it("rejects a raw 1 MiB file when JSON escaping would exceed the WebSocket frame limit", async () => {
|
|
130
|
-
const hostRoot = await tempRoot("xg-workspace-encoded-limit-");
|
|
131
|
-
const logicalRoot = "xg-cwork-im/202608/42";
|
|
132
|
-
const actualRoot = path.join(hostRoot, ...logicalRoot.split("/"));
|
|
133
|
-
await mkdir(actualRoot, { recursive: true });
|
|
134
|
-
await writeFile(path.join(actualRoot, "escaped.json"), Buffer.alloc(1024 * 1024, 0x5c));
|
|
135
|
-
const result = await handleWorkspaceEvent(context(hostRoot), localRequest(logicalRoot, `${logicalRoot}/escaped.json`, "FILE_REQUEST"));
|
|
136
|
-
assert.equal(result.success, false);
|
|
137
|
-
assert.equal(result.errorCode, "FILE_TOO_LARGE");
|
|
138
|
-
assert.equal("content" in result, false);
|
|
139
|
-
});
|
|
140
|
-
it("uses an opaque directory-bound cursor", async () => {
|
|
141
|
-
const hostRoot = await tempRoot("xg-workspace-page-");
|
|
142
|
-
const logicalRoot = "xg-cwork-im/202608/42";
|
|
143
|
-
const actualRoot = path.join(hostRoot, ...logicalRoot.split("/"));
|
|
144
|
-
await mkdir(actualRoot, { recursive: true });
|
|
145
|
-
await writeFile(path.join(actualRoot, "a.md"), "a", "utf8");
|
|
146
|
-
await writeFile(path.join(actualRoot, "b.md"), "b", "utf8");
|
|
147
|
-
const firstRequest = { ...localRequest(logicalRoot, logicalRoot, "TREE_REQUEST"), limit: 1 };
|
|
148
|
-
const first = await handleWorkspaceEvent(context(hostRoot), firstRequest);
|
|
149
|
-
assert.equal(first.entries.length, 1);
|
|
150
|
-
assert.equal(typeof first.nextCursor, "string");
|
|
151
|
-
const second = await handleWorkspaceEvent(context(hostRoot), {
|
|
152
|
-
...firstRequest,
|
|
153
|
-
cursor: first.nextCursor,
|
|
154
|
-
});
|
|
155
|
-
assert.equal(second.entries[0]?.name, "b.md");
|
|
156
|
-
assert.equal(second.nextCursor, null);
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
describe("workspace event NAS", () => {
|
|
160
|
-
it("synthesizes the authorized mount tree without scanning its common host parent", async () => {
|
|
161
|
-
const hostRoot = await tempRoot("xg-workspace-nas-");
|
|
162
|
-
const projectDir = path.join(hostRoot, "CP202503120001");
|
|
163
|
-
await mkdir(path.join(projectDir, "deliverables"), { recursive: true });
|
|
164
|
-
await mkdir(path.join(hostRoot, "UNAUTHORIZED"));
|
|
165
|
-
await writeFile(path.join(projectDir, "deliverables", "result.html"), "<h1>ok</h1>", "utf8");
|
|
166
|
-
const config = {
|
|
167
|
-
nasSiteCode: "SZ_PRIMARY",
|
|
168
|
-
nasVolumeRootMappings: [{ logicalRoot: "/data/touqian", hostRoot }],
|
|
169
|
-
};
|
|
170
|
-
const rootPath = "touqian/2026/08";
|
|
171
|
-
const workspace = {
|
|
172
|
-
sourceType: "NAS",
|
|
173
|
-
rootPath,
|
|
174
|
-
nasVolumes: [{
|
|
175
|
-
realDir: "/data/touqian/CP202503120001",
|
|
176
|
-
dockerDir: `${rootPath}/CP202503120001`,
|
|
177
|
-
mode: "ro",
|
|
178
|
-
}],
|
|
179
|
-
};
|
|
180
|
-
const rootResult = await handleWorkspaceEvent(context(hostRoot, config), {
|
|
181
|
-
_wsRelayId: "relay-nas-tree",
|
|
182
|
-
event: "TREE_REQUEST",
|
|
183
|
-
groupId: "42",
|
|
184
|
-
workspace,
|
|
185
|
-
path: rootPath,
|
|
186
|
-
limit: 200,
|
|
187
|
-
});
|
|
188
|
-
assert.equal(rootResult.success, true);
|
|
189
|
-
assert.equal(rootResult.nasSiteCode, "SZ_PRIMARY");
|
|
190
|
-
assert.deepEqual(rootResult.entries.map((entry) => entry.name), ["CP202503120001"]);
|
|
191
|
-
const fileResult = await handleWorkspaceEvent(context(hostRoot, config), {
|
|
192
|
-
_wsRelayId: "relay-nas-file",
|
|
193
|
-
event: "FILE_REQUEST",
|
|
194
|
-
groupId: "42",
|
|
195
|
-
workspace,
|
|
196
|
-
path: `${rootPath}/CP202503120001/deliverables/result.html`,
|
|
197
|
-
});
|
|
198
|
-
assert.equal(fileResult.success, true);
|
|
199
|
-
assert.equal(fileResult.path, "CP202503120001/deliverables/result.html");
|
|
200
|
-
assert.equal(fileResult.content, "<h1>ok</h1>");
|
|
201
|
-
assert.equal(fileResult.nasSiteCode, "SZ_PRIMARY");
|
|
202
|
-
assert.equal(JSON.stringify(fileResult).includes(hostRoot), false);
|
|
203
|
-
});
|
|
204
|
-
it("does not create a missing NAS directory during a read request", async () => {
|
|
205
|
-
const hostRoot = await tempRoot("xg-workspace-nas-missing-");
|
|
206
|
-
const missing = path.join(hostRoot, "missing");
|
|
207
|
-
const result = await handleWorkspaceEvent(context(hostRoot, {
|
|
208
|
-
nasVolumeRootMappings: [{ logicalRoot: "/data/touqian", hostRoot }],
|
|
209
|
-
}), {
|
|
210
|
-
_wsRelayId: "relay-nas-missing",
|
|
211
|
-
event: "TREE_REQUEST",
|
|
212
|
-
groupId: "42",
|
|
213
|
-
workspace: {
|
|
214
|
-
sourceType: "NAS",
|
|
215
|
-
rootPath: "touqian",
|
|
216
|
-
nasVolumes: [{ realDir: "/data/touqian/missing", dockerDir: "touqian/missing", mode: "ro" }],
|
|
217
|
-
},
|
|
218
|
-
path: "touqian",
|
|
219
|
-
});
|
|
220
|
-
assert.equal(result.success, false);
|
|
221
|
-
assert.equal(result.errorCode, "READ_FAILED");
|
|
222
|
-
await assert.rejects(access(missing));
|
|
223
|
-
});
|
|
224
|
-
it("keeps reachable mounts available when an unrelated mapping or sibling mount is unavailable", async () => {
|
|
225
|
-
const hostRoot = await tempRoot("xg-workspace-nas-partial-");
|
|
226
|
-
await mkdir(path.join(hostRoot, "good"));
|
|
227
|
-
await writeFile(path.join(hostRoot, "good", "result.md"), "ok", "utf8");
|
|
228
|
-
const unrelatedMissingRoot = path.join(hostRoot, "unrelated-missing");
|
|
229
|
-
const rootPath = "touqian/2026/08";
|
|
230
|
-
const config = {
|
|
231
|
-
nasVolumeRootMappings: [
|
|
232
|
-
{ logicalRoot: "/data/archive", hostRoot: unrelatedMissingRoot },
|
|
233
|
-
{ logicalRoot: "/data/touqian", hostRoot },
|
|
234
|
-
],
|
|
235
|
-
};
|
|
236
|
-
const workspace = {
|
|
237
|
-
sourceType: "NAS",
|
|
238
|
-
rootPath,
|
|
239
|
-
nasVolumes: [
|
|
240
|
-
...Array.from({ length: 16 }, () => null),
|
|
241
|
-
{ realDir: "/data/touqian/missing", dockerDir: `${rootPath}/missing` },
|
|
242
|
-
{ realDir: "/data/touqian/good", dockerDir: `${rootPath}/good`, mode: "legacy-value" },
|
|
243
|
-
],
|
|
244
|
-
};
|
|
245
|
-
const tree = await handleWorkspaceEvent(context(hostRoot, config), {
|
|
246
|
-
_wsRelayId: "relay-nas-partial-tree",
|
|
247
|
-
event: "TREE_REQUEST",
|
|
248
|
-
groupId: "42",
|
|
249
|
-
workspace,
|
|
250
|
-
path: rootPath,
|
|
251
|
-
});
|
|
252
|
-
assert.equal(tree.success, true);
|
|
253
|
-
assert.deepEqual(tree.entries.map((entry) => entry.name), ["good"]);
|
|
254
|
-
const file = await handleWorkspaceEvent(context(hostRoot, config), {
|
|
255
|
-
_wsRelayId: "relay-nas-partial-file",
|
|
256
|
-
event: "FILE_REQUEST",
|
|
257
|
-
groupId: "42",
|
|
258
|
-
workspace,
|
|
259
|
-
path: `${rootPath}/good/result.md`,
|
|
260
|
-
});
|
|
261
|
-
assert.equal(file.success, true);
|
|
262
|
-
assert.equal(file.content, "ok");
|
|
263
|
-
});
|
|
264
|
-
});
|
|
265
|
-
//# sourceMappingURL=workspace-event.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-event.test.js","sourceRoot":"","sources":["../../src/workspace-event.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ws-inbound-schema.test.d.ts","sourceRoot":"","sources":["../../src/ws-inbound-schema.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert/strict";
|
|
2
|
-
import { describe, it } from "node:test";
|
|
3
|
-
import { parseWsInboundMessage } from "./ws-inbound-schema.js";
|
|
4
|
-
const base = {
|
|
5
|
-
cmd: "robotMention",
|
|
6
|
-
params: {
|
|
7
|
-
msgId: "msg-1",
|
|
8
|
-
groupId: "group-1",
|
|
9
|
-
userInfo: { id: "user-1", name: "张三" },
|
|
10
|
-
msgContent: { type: "text", text: "hi" },
|
|
11
|
-
},
|
|
12
|
-
};
|
|
13
|
-
describe("ws-inbound-schema userInfo.appKey", () => {
|
|
14
|
-
it("解析 appKey", () => {
|
|
15
|
-
const result = parseWsInboundMessage({
|
|
16
|
-
...base,
|
|
17
|
-
params: {
|
|
18
|
-
...base.params,
|
|
19
|
-
userInfo: { id: "user-1", name: "张三", appKey: "app-key-123" },
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
assert.equal(result.ok, true);
|
|
23
|
-
if (result.ok) {
|
|
24
|
-
assert.equal(result.message.params.userInfo.appKey, "app-key-123");
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
it("缺失 appKey 时为 undefined", () => {
|
|
28
|
-
const result = parseWsInboundMessage(base);
|
|
29
|
-
assert.equal(result.ok, true);
|
|
30
|
-
if (result.ok) {
|
|
31
|
-
assert.equal(result.message.params.userInfo.appKey, undefined);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
it("空字符串 appKey 解析为空字符串", () => {
|
|
35
|
-
const result = parseWsInboundMessage({
|
|
36
|
-
...base,
|
|
37
|
-
params: {
|
|
38
|
-
...base.params,
|
|
39
|
-
userInfo: { id: "user-1", name: "张三", appKey: "" },
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
assert.equal(result.ok, true);
|
|
43
|
-
if (result.ok) {
|
|
44
|
-
assert.equal(result.message.params.userInfo.appKey, "");
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
it("非字符串 appKey 校验失败", () => {
|
|
48
|
-
const result = parseWsInboundMessage({
|
|
49
|
-
...base,
|
|
50
|
-
params: {
|
|
51
|
-
...base.params,
|
|
52
|
-
userInfo: { id: "user-1", name: "张三", appKey: 123 },
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
assert.equal(result.ok, false);
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
//# sourceMappingURL=ws-inbound-schema.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ws-inbound-schema.test.js","sourceRoot":"","sources":["../../src/ws-inbound-schema.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,IAAI,GAAG;IACT,GAAG,EAAE,cAAc;IACnB,MAAM,EAAE;QACJ,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;QACtC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;KAC3C;CACJ,CAAC;AAEF,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACjB,MAAM,MAAM,GAAG,qBAAqB,CAAC;YACjC,GAAG,IAAI;YACP,MAAM,EAAE;gBACJ,GAAG,IAAI,CAAC,MAAM;gBACd,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE;aAChE;SACJ,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACvE,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC9B,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACnE,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC3B,MAAM,MAAM,GAAG,qBAAqB,CAAC;YACjC,GAAG,IAAI;YACP,MAAM,EAAE;gBACJ,GAAG,IAAI,CAAC,MAAM;gBACd,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;aACrD;SACJ,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACxB,MAAM,MAAM,GAAG,qBAAqB,CAAC;YACjC,GAAG,IAAI;YACP,MAAM,EAAE;gBACJ,GAAG,IAAI,CAAC,MAAM;gBACd,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;aACtD;SACJ,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|