agentworkshop 0.2.1
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/.AgentWorkShop/prompts/host-tools.json +631 -0
- package/.AgentWorkShop/prompts/lead-supervise.md +42 -0
- package/.AgentWorkShop/prompts/mode-goal.md +26 -0
- package/.AgentWorkShop/prompts/mode-loop.md +10 -0
- package/.AgentWorkShop/prompts/mode-pipeline.md +16 -0
- package/.AgentWorkShop/prompts/peer-lead-roster.md +3 -0
- package/.AgentWorkShop/prompts/peer-message.md +14 -0
- package/.AgentWorkShop/prompts/peer-reply-optional.md +2 -0
- package/.AgentWorkShop/prompts/peer-reply-required.md +8 -0
- package/.AgentWorkShop/prompts/scenario-default.md +11 -0
- package/.AgentWorkShop/prompts/system-manual.md +18 -0
- package/.AgentWorkShop/prompts/team-roster.md +9 -0
- package/.AgentWorkShop/prompts/worker-workflow.md +19 -0
- package/.env.example +34 -0
- package/README-zh.md +424 -0
- package/README.md +424 -0
- package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.json +1 -0
- package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.mtg0vz68-49792-75b0709555.baseline/1459e6269990a5d229b9228c8b2f62ffaa7d350068380ae8b875fee0db45cca6.source +180 -0
- package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.mtg0vz68-49792-75b0709555.baseline/c2991e909c70c5c12b90a407c7adcf63384c51668a2b334e6e047fa675c268fe.source +305 -0
- package/app/.mimosa/hook-state/sess_05189059-e42d-4188-8911-4f7baabe009b.mtg0vz68-49792-75b0709555.baseline/e09129039d1e27e3fac24becc9bdafd2d1a7c8049bff24173df007be865f0165.source +264 -0
- package/app/.mimosa/hook-status/sess_05189059-e42d-4188-8911-4f7baabe009b-28ef7c75ea.json +14 -0
- package/app/app.vue +139 -0
- package/app/assets/css/main.css +1257 -0
- package/app/components/AppHeader.vue +675 -0
- package/app/components/AppSidebar.vue +286 -0
- package/app/components/AwChart.vue +44 -0
- package/app/components/AwLogo.vue +75 -0
- package/app/components/workshop/A2aRpcDebugger.vue +237 -0
- package/app/components/workshop/AgentInspectorDrawer.vue +424 -0
- package/app/components/workshop/AgentLanesView.vue +947 -0
- package/app/components/workshop/ArtifactCard.vue +120 -0
- package/app/components/workshop/AssetLibrary.vue +450 -0
- package/app/components/workshop/ChannelSessionList.vue +593 -0
- package/app/components/workshop/CommandPalette.vue +270 -0
- package/app/components/workshop/Composer.vue +731 -0
- package/app/components/workshop/DeviceTwinPanel.vue +607 -0
- package/app/components/workshop/EventBlock.vue +602 -0
- package/app/components/workshop/FileSelectorModal.vue +188 -0
- package/app/components/workshop/InspectorPanel.vue +265 -0
- package/app/components/workshop/LiveAgentBar.vue +362 -0
- package/app/components/workshop/MemoryPanel.vue +364 -0
- package/app/components/workshop/MentionHoverCard.vue +155 -0
- package/app/components/workshop/MultiChannelView.vue +189 -0
- package/app/components/workshop/PaneSplitter.vue +142 -0
- package/app/components/workshop/StatsPanel.vue +168 -0
- package/app/components/workshop/TaskBoardView.vue +636 -0
- package/app/components/workshop/TaskInspectorDrawer.vue +390 -0
- package/app/components/workshop/TranscriptTimeline.vue +545 -0
- package/app/components/workshop/blocks/ClusterArtifact.vue +77 -0
- package/app/components/workshop/blocks/ClusterError.vue +85 -0
- package/app/components/workshop/blocks/ClusterLife.vue +87 -0
- package/app/components/workshop/blocks/ClusterMember.vue +93 -0
- package/app/components/workshop/blocks/ClusterMemory.vue +84 -0
- package/app/components/workshop/blocks/ClusterOther.vue +67 -0
- package/app/components/workshop/blocks/ClusterRoute.vue +359 -0
- package/app/components/workshop/blocks/ClusterStatus.vue +147 -0
- package/app/components/workshop/blocks/ClusterStream.vue +325 -0
- package/app/components/workshop/blocks/ClusterTask.vue +151 -0
- package/app/components/workshop/blocks/ClusterTool.vue +158 -0
- package/app/components/workshop/lanes/LaneBlocks.vue +149 -0
- package/app/components/workshop/terminal/OmpTerminalPanel.vue +1010 -0
- package/app/components/workshop/town/ModelPreview3D.vue +276 -0
- package/app/components/workshop/town/TownScene.ts +1355 -0
- package/app/components/workshop/town/TownScene3D.ts +4533 -0
- package/app/components/workshop/town/TownView.vue +7071 -0
- package/app/composables/useCodeCopy.ts +30 -0
- package/app/composables/useHttp.ts +8 -0
- package/app/composables/useRouteMeta.ts +50 -0
- package/app/composables/useSiteConfig.ts +21 -0
- package/app/composables/workshop/apiClient.ts +95 -0
- package/app/composables/workshop/useCharacterAssets.ts +292 -0
- package/app/composables/workshop/useClusteredBlocks.ts +150 -0
- package/app/composables/workshop/useComposerBus.ts +16 -0
- package/app/composables/workshop/useDaqStream.ts +379 -0
- package/app/composables/workshop/useDcwStream.ts +300 -0
- package/app/composables/workshop/useDeviceTwins.ts +147 -0
- package/app/composables/workshop/useEventBlocks.ts +662 -0
- package/app/composables/workshop/useLocalTime.ts +33 -0
- package/app/composables/workshop/useOpsLog.ts +164 -0
- package/app/composables/workshop/useSceneLayouts.ts +166 -0
- package/app/composables/workshop/useTownBus.ts +47 -0
- package/app/composables/workshop/useVisibleInterval.ts +42 -0
- package/app/composables/workshop/useWorkshopApi.ts +224 -0
- package/app/composables/workshop/useWorkshopWs.ts +113 -0
- package/app/config/index.ts +66 -0
- package/app/config/schema.ts +68 -0
- package/app/error.vue +76 -0
- package/app/layouts/default.vue +100 -0
- package/app/layouts/town.vue +16 -0
- package/app/pages/daq/[id].vue +796 -0
- package/app/pages/daq/index.vue +2577 -0
- package/app/pages/dcw/[id].vue +2259 -0
- package/app/pages/dcw/index.vue +1079 -0
- package/app/pages/index.vue +830 -0
- package/app/pages/logs/index.vue +621 -0
- package/app/pages/monitor.vue +665 -0
- package/app/pages/settings.vue +757 -0
- package/app/pages/tokens.vue +610 -0
- package/app/pages/town.vue +145 -0
- package/app/pages/users.vue +257 -0
- package/app/pages/workshop/agents.vue +382 -0
- package/app/pages/workshop/channel-templates.vue +456 -0
- package/app/pages/workshop/index.vue +604 -0
- package/app/pages/workshop/teams.vue +448 -0
- package/app/pages/workshop/w/[wsId].vue +516 -0
- package/app/plugins/http.ts +71 -0
- package/app/plugins/locale-restore.client.ts +13 -0
- package/app/plugins/runtime-config.client.ts +65 -0
- package/app/plugins/session-restore.client.ts +24 -0
- package/app/plugins/theme.client.ts +15 -0
- package/app/stores/app.ts +32 -0
- package/app/stores/route-trail.ts +45 -0
- package/app/stores/runtime-config.ts +212 -0
- package/app/stores/workshop/connection.ts +184 -0
- package/app/stores/workshop/entities.ts +350 -0
- package/app/stores/workshop/events.ts +292 -0
- package/app/stores/workshop/user.ts +176 -0
- package/app/stores/workshop/workspaces.ts +133 -0
- package/bin/aw.mjs +13 -0
- package/cli/aw.mjs +184 -0
- package/cli/commands/build.mjs +33 -0
- package/cli/commands/config.mjs +157 -0
- package/cli/commands/dev.mjs +74 -0
- package/cli/commands/doctor.mjs +120 -0
- package/cli/commands/home.mjs +75 -0
- package/cli/commands/init.mjs +150 -0
- package/cli/commands/register.mjs +123 -0
- package/cli/commands/start.mjs +106 -0
- package/cli/commands/status.mjs +67 -0
- package/cli/commands/update.mjs +116 -0
- package/cli/commands/version.mjs +32 -0
- package/cli/core/args.mjs +95 -0
- package/cli/core/context.mjs +264 -0
- package/cli/core/errors.mjs +18 -0
- package/cli/core/help.mjs +68 -0
- package/cli/core/logger.mjs +40 -0
- package/cli/core/registry.mjs +111 -0
- package/config.yml +70 -0
- package/docker-compose.yml +34 -0
- package/docs/cli.md +220 -0
- package/i18n/dicts/_en.json +1097 -0
- package/i18n/dicts/_en2.json +300 -0
- package/i18n/dicts/_en3.json +102 -0
- package/i18n/dicts/_en4.json +115 -0
- package/i18n/dicts/_en5.json +33 -0
- package/i18n/dicts/a2aRpcDebugger.json +10 -0
- package/i18n/dicts/agentInspectorDrawer.json +25 -0
- package/i18n/dicts/agentLanesView.json +57 -0
- package/i18n/dicts/agents.json +27 -0
- package/i18n/dicts/appHeader.json +7 -0
- package/i18n/dicts/appSidebar.json +1 -0
- package/i18n/dicts/artifactCard.json +6 -0
- package/i18n/dicts/assetLibrary.json +18 -0
- package/i18n/dicts/awChart.json +1 -0
- package/i18n/dicts/awLogo.json +1 -0
- package/i18n/dicts/channelSessionList.json +45 -0
- package/i18n/dicts/clusterArtifact.json +4 -0
- package/i18n/dicts/clusterError.json +3 -0
- package/i18n/dicts/clusterLife.json +5 -0
- package/i18n/dicts/clusterMember.json +3 -0
- package/i18n/dicts/clusterMemory.json +3 -0
- package/i18n/dicts/clusterOther.json +3 -0
- package/i18n/dicts/clusterRoute.json +15 -0
- package/i18n/dicts/clusterStatus.json +3 -0
- package/i18n/dicts/clusterStream.json +3 -0
- package/i18n/dicts/clusterTask.json +10 -0
- package/i18n/dicts/clusterTool.json +3 -0
- package/i18n/dicts/commandPalette.json +16 -0
- package/i18n/dicts/composer.json +38 -0
- package/i18n/dicts/ctpl.json +32 -0
- package/i18n/dicts/daq.json +157 -0
- package/i18n/dicts/daqDetail.json +55 -0
- package/i18n/dicts/dcw.json +68 -0
- package/i18n/dicts/dcwDetail.json +199 -0
- package/i18n/dicts/deviceTwinPanel.json +12 -0
- package/i18n/dicts/eventBlock.json +8 -0
- package/i18n/dicts/fileSelectorModal.json +6 -0
- package/i18n/dicts/inspectorPanel.json +12 -0
- package/i18n/dicts/laneBlocks.json +6 -0
- package/i18n/dicts/liveAgentBar.json +8 -0
- package/i18n/dicts/logs.json +39 -0
- package/i18n/dicts/memoryPanel.json +20 -0
- package/i18n/dicts/mentionHoverCard.json +4 -0
- package/i18n/dicts/modelPreview3D.json +1 -0
- package/i18n/dicts/monitor.json +5 -0
- package/i18n/dicts/multiChannelView.json +13 -0
- package/i18n/dicts/ompTerminalPanel.json +7 -0
- package/i18n/dicts/paneSplitter.json +3 -0
- package/i18n/dicts/settings.json +1 -0
- package/i18n/dicts/statsPanel.json +6 -0
- package/i18n/dicts/taskBoardView.json +22 -0
- package/i18n/dicts/taskInspectorDrawer.json +19 -0
- package/i18n/dicts/teams.json +33 -0
- package/i18n/dicts/tokens.json +30 -0
- package/i18n/dicts/town.json +7 -0
- package/i18n/dicts/townView.json +209 -0
- package/i18n/dicts/transcriptTimeline.json +31 -0
- package/i18n/dicts/users.json +15 -0
- package/i18n/dicts/wsHome.json +33 -0
- package/i18n/dicts/wsView.json +15 -0
- package/i18n/locales/en.ts +1737 -0
- package/i18n/locales/zh-CN.ts +1736 -0
- package/nuxt.config.ts +209 -0
- package/package.json +123 -0
- package/public/assets/game/character/bot.png +0 -0
- package/public/assets/game/character/device-3d.glb +0 -0
- package/public/assets/game/character/hero-3d.glb +0 -0
- package/public/assets/game/character/hero-anime-1.glb +0 -0
- package/public/assets/game/character/hero-anime-2.glb +0 -0
- package/public/assets/game/character/hero-anime-3.glb +0 -0
- package/public/assets/game/character/hero-anime-4.glb +0 -0
- package/public/assets/game/character/knight.png +0 -0
- package/public/assets/game/character/mage.png +0 -0
- package/public/assets/game/coin.png +0 -0
- package/public/assets/game/devices/agv.glb +0 -0
- package/public/assets/game/devices/caster.glb +0 -0
- package/public/assets/game/devices/device-console.glb +0 -0
- package/public/assets/game/devices/device-robot-arm.glb +0 -0
- package/public/assets/game/devices/device-scanner.glb +0 -0
- package/public/assets/game/devices/extruder.glb +0 -0
- package/public/assets/game/devices/mdo.glb +0 -0
- package/public/assets/game/devices/power-cabinet.glb +0 -0
- package/public/assets/game/devices/pump.glb +0 -0
- package/public/assets/game/devices/tdo.glb +0 -0
- package/public/assets/game/devices/thickness-scanner.glb +0 -0
- package/public/assets/game/devices/winder.glb +0 -0
- package/public/assets/game/npc/boltnu-sheet.png +0 -0
- package/public/assets/game/npc/fluttaflap-sheet.png +0 -0
- package/public/assets/game/npc/rockitten-sheet.png +0 -0
- package/public/assets/game/npc/tux-sheet.png +0 -0
- package/public/assets/game/player/misa-back-walk.000.png +0 -0
- package/public/assets/game/player/misa-back-walk.001.png +0 -0
- package/public/assets/game/player/misa-back-walk.002.png +0 -0
- package/public/assets/game/player/misa-back-walk.003.png +0 -0
- package/public/assets/game/player/misa-back.png +0 -0
- package/public/assets/game/player/misa-front-walk.000.png +0 -0
- package/public/assets/game/player/misa-front-walk.001.png +0 -0
- package/public/assets/game/player/misa-front-walk.002.png +0 -0
- package/public/assets/game/player/misa-front-walk.003.png +0 -0
- package/public/assets/game/player/misa-front.png +0 -0
- package/public/assets/game/player/misa-left-walk.000.png +0 -0
- package/public/assets/game/player/misa-left-walk.001.png +0 -0
- package/public/assets/game/player/misa-left-walk.002.png +0 -0
- package/public/assets/game/player/misa-left-walk.003.png +0 -0
- package/public/assets/game/player/misa-left.png +0 -0
- package/public/assets/game/player/misa-right-walk.000.png +0 -0
- package/public/assets/game/player/misa-right-walk.001.png +0 -0
- package/public/assets/game/player/misa-right-walk.002.png +0 -0
- package/public/assets/game/player/misa-right-walk.003.png +0 -0
- package/public/assets/game/player/misa-right.png +0 -0
- package/public/assets/game/player-sheet.png +0 -0
- package/public/assets/game/tuxemon-town.json +1 -0
- package/public/assets/game/tuxmon-sample-32px-extruded.png +0 -0
- package/public/assets/game/wuwa/scene-map.png +0 -0
- package/public/assets/game/wuwa/world-far.png +0 -0
- package/public/assets/game/wuwa/world-middle.png +0 -0
- package/public/assets/game/wuwa/world-near.png +0 -0
- package/public/assets/game/wuwa/wu-aura.png +0 -0
- package/public/assets/game/wuwa/wu-lead.png +0 -0
- package/public/assets/game/wuwa/wu-ring.png +0 -0
- package/public/assets/game/wuwa/wu-slash.png +0 -0
- package/public/assets/game/wuwa/wu-worker-0.png +0 -0
- package/public/assets/game/wuwa/wu-worker-1.png +0 -0
- package/public/assets/game/wuwa/wu-worker-2.png +0 -0
- package/public/favicon.svg +14 -0
- package/public/scene/background/cyber-town-background.svg +110 -0
- package/scripts/_daq-realtime-probe.mjs +68 -0
- package/scripts/_daq-warn-probe.mjs +50 -0
- package/scripts/_dbg-agent-tools-audit.mjs +154 -0
- package/scripts/_dbg-agent-workflow-audit.mjs +177 -0
- package/scripts/_dbg-anim-verify.mjs +81 -0
- package/scripts/_dbg-audit-all-pages.mjs +43 -0
- package/scripts/_dbg-autoframe.mjs +103 -0
- package/scripts/_dbg-beacon-final.mjs +181 -0
- package/scripts/_dbg-bind-bidi-e2e.mjs +239 -0
- package/scripts/_dbg-callout-near.mjs +108 -0
- package/scripts/_dbg-chan-focus.mjs +49 -0
- package/scripts/_dbg-cleanup.mjs +31 -0
- package/scripts/_dbg-closedloop-ui-shot.mjs +61 -0
- package/scripts/_dbg-console-audit.mjs +61 -0
- package/scripts/_dbg-console-probe.mjs +23 -0
- package/scripts/_dbg-context-inject-audit.mjs +231 -0
- package/scripts/_dbg-crash-recovery.mjs +143 -0
- package/scripts/_dbg-crop-shot.mjs +16 -0
- package/scripts/_dbg-daq-acc-probe.mjs +24 -0
- package/scripts/_dbg-daq-attrib.mjs +34 -0
- package/scripts/_dbg-daq-bind-audit.mjs +119 -0
- package/scripts/_dbg-daq-cadence.mjs +104 -0
- package/scripts/_dbg-daq-debug.mjs +22 -0
- package/scripts/_dbg-daq-diag.mjs +33 -0
- package/scripts/_dbg-daq-e2e.mjs +171 -0
- package/scripts/_dbg-daq-film.mjs +136 -0
- package/scripts/_dbg-daq-filter-e2e.mjs +109 -0
- package/scripts/_dbg-daq-filter-e2e2.mjs +62 -0
- package/scripts/_dbg-daq-final-regression.mjs +78 -0
- package/scripts/_dbg-daq-full-check.mjs +179 -0
- package/scripts/_dbg-daq-line-note-verify.mjs +61 -0
- package/scripts/_dbg-daq-linebanner-audit.mjs +107 -0
- package/scripts/_dbg-daq-pages-shot.mjs +37 -0
- package/scripts/_dbg-daq-perf.mjs +61 -0
- package/scripts/_dbg-daq-probe.mjs +27 -0
- package/scripts/_dbg-daq-recipe-e2e.mjs +30 -0
- package/scripts/_dbg-daq-redesign-shot.mjs +88 -0
- package/scripts/_dbg-daq-rows-probe.mjs +26 -0
- package/scripts/_dbg-daq-rowstate-e2e.mjs +152 -0
- package/scripts/_dbg-daq-rowstate-shot.mjs +45 -0
- package/scripts/_dbg-daq-rowstate-shot2.mjs +38 -0
- package/scripts/_dbg-daq-tpl.mjs +144 -0
- package/scripts/_dbg-dash-console-check.mjs +49 -0
- package/scripts/_dbg-dash-deep-probe.mjs +61 -0
- package/scripts/_dbg-dash-hitpoint.mjs +44 -0
- package/scripts/_dbg-dash-live-shot.mjs +36 -0
- package/scripts/_dbg-dash-shot.mjs +21 -0
- package/scripts/_dbg-dashboard-shot.mjs +35 -0
- package/scripts/_dbg-dcw-audit.mjs +126 -0
- package/scripts/_dbg-dcw-card-e2e.mjs +108 -0
- package/scripts/_dbg-dcw-channel-ui.mjs +144 -0
- package/scripts/_dbg-dcw-examples.mjs +81 -0
- package/scripts/_dbg-dcw-light-shot.mjs +19 -0
- package/scripts/_dbg-dcw-line-audit.mjs +107 -0
- package/scripts/_dbg-dcw-pause-tpl-audit.mjs +161 -0
- package/scripts/_dbg-dcw-pause-ui.mjs +175 -0
- package/scripts/_dbg-dcw-scene.mjs +72 -0
- package/scripts/_dbg-dcw-shot2.mjs +14 -0
- package/scripts/_dbg-dcw-twin-e2e.mjs +192 -0
- package/scripts/_dbg-dt-interact.mjs +193 -0
- package/scripts/_dbg-error-probe.mjs +54 -0
- package/scripts/_dbg-filter-light-verify.mjs +54 -0
- package/scripts/_dbg-final-acceptance-2.mjs +72 -0
- package/scripts/_dbg-final-acceptance.mjs +192 -0
- package/scripts/_dbg-final-agent-e2e.mjs +151 -0
- package/scripts/_dbg-final-full-e2e.mjs +218 -0
- package/scripts/_dbg-final-line-e2e.mjs +173 -0
- package/scripts/_dbg-final-t6-hitl.mjs +38 -0
- package/scripts/_dbg-focus-range.mjs +115 -0
- package/scripts/_dbg-fresh-scene-e2e.mjs +125 -0
- package/scripts/_dbg-full-feature-e2e.mjs +219 -0
- package/scripts/_dbg-fullchain-e2e.mjs +178 -0
- package/scripts/_dbg-gate-debug.mjs +37 -0
- package/scripts/_dbg-gif-encode.mjs +111 -0
- package/scripts/_dbg-gizmo.mjs +95 -0
- package/scripts/_dbg-glass-probe.mjs +57 -0
- package/scripts/_dbg-glass-shot.mjs +50 -0
- package/scripts/_dbg-glass-sweep.mjs +25 -0
- package/scripts/_dbg-glb-probe.mjs +43 -0
- package/scripts/_dbg-hardening-probe.mjs +90 -0
- package/scripts/_dbg-hero-btn-probe.mjs +21 -0
- package/scripts/_dbg-hidden-check.mjs +21 -0
- package/scripts/_dbg-hitl-timeout-e2e.mjs +93 -0
- package/scripts/_dbg-hmi-audit.mjs +164 -0
- package/scripts/_dbg-home-repro.mjs +24 -0
- package/scripts/_dbg-home-stack.mjs +13 -0
- package/scripts/_dbg-huashu-survey.mjs +31 -0
- package/scripts/_dbg-huashu-survey2.mjs +35 -0
- package/scripts/_dbg-huashu-verify.mjs +25 -0
- package/scripts/_dbg-huashu-verify2.mjs +26 -0
- package/scripts/_dbg-hydration-detail.mjs +18 -0
- package/scripts/_dbg-i18n-debug.mjs +27 -0
- package/scripts/_dbg-i18n-debug2.mjs +26 -0
- package/scripts/_dbg-i18n-final.mjs +42 -0
- package/scripts/_dbg-i18n-scan.mjs +38 -0
- package/scripts/_dbg-infra-lifecycle.mjs +44 -0
- package/scripts/_dbg-line-aura-shots.mjs +54 -0
- package/scripts/_dbg-line-control-e2e.mjs +120 -0
- package/scripts/_dbg-line-gate-audit.mjs +108 -0
- package/scripts/_dbg-line-live-e2e.mjs +144 -0
- package/scripts/_dbg-line-scenario-e2e.mjs +256 -0
- package/scripts/_dbg-minimal-omp.mjs +77 -0
- package/scripts/_dbg-mode-nav.mjs +173 -0
- package/scripts/_dbg-mqtt-chain-e2e.mjs +90 -0
- package/scripts/_dbg-nav-rpg.mjs +84 -0
- package/scripts/_dbg-nav-shot.mjs +28 -0
- package/scripts/_dbg-nav.mjs +27 -0
- package/scripts/_dbg-opslog-e2e.mjs +121 -0
- package/scripts/_dbg-opslog-shots.mjs +62 -0
- package/scripts/_dbg-opt-team-e2e.mjs +133 -0
- package/scripts/_dbg-optimization-e2e.mjs +94 -0
- package/scripts/_dbg-orbit.mjs +58 -0
- package/scripts/_dbg-panesplitter-fix-check.mjs +62 -0
- package/scripts/_dbg-phase-e3-monitor.mjs +25 -0
- package/scripts/_dbg-pop-clamp-verify.mjs +77 -0
- package/scripts/_dbg-preset-e2e.mjs +116 -0
- package/scripts/_dbg-preview-console.mjs +28 -0
- package/scripts/_dbg-preview-minrepro.mjs +156 -0
- package/scripts/_dbg-preview-pixels.mjs +93 -0
- package/scripts/_dbg-quality-pages-e2e.mjs +84 -0
- package/scripts/_dbg-query-cancel.ts +12 -0
- package/scripts/_dbg-rail-tree-e2e.mjs +183 -0
- package/scripts/_dbg-real-driver-e2e.mjs +55 -0
- package/scripts/_dbg-redesign-shots.mjs +34 -0
- package/scripts/_dbg-restart-persist.mjs +41 -0
- package/scripts/_dbg-rollback-mgr-audit.mjs +169 -0
- package/scripts/_dbg-rpg.mjs +71 -0
- package/scripts/_dbg-sc001-dispatch.mjs +63 -0
- package/scripts/_dbg-scenario-final-shot.mjs +24 -0
- package/scripts/_dbg-scenario-phase-e2.mjs +75 -0
- package/scripts/_dbg-scenario-phase-e3.mjs +96 -0
- package/scripts/_dbg-scenario-phase1.mjs +90 -0
- package/scripts/_dbg-scenario-phase2.mjs +105 -0
- package/scripts/_dbg-scenario-phase3-monitor.mjs +48 -0
- package/scripts/_dbg-scenario-phase3.mjs +111 -0
- package/scripts/_dbg-scene-polish-shot.mjs +118 -0
- package/scripts/_dbg-selring-probe.mjs +47 -0
- package/scripts/_dbg-sideinfo.mjs +101 -0
- package/scripts/_dbg-splitter.mjs +88 -0
- package/scripts/_dbg-team-repro.mjs +76 -0
- package/scripts/_dbg-town-alarm-e2e.mjs +40 -0
- package/scripts/_dbg-town-beauty-shots.mjs +54 -0
- package/scripts/_dbg-town-daq-shot.mjs +26 -0
- package/scripts/_dbg-town-full-e2e.mjs +104 -0
- package/scripts/_dbg-town-gate.mjs +44 -0
- package/scripts/_dbg-town-ins-probe.mjs +37 -0
- package/scripts/_dbg-town-perf.mjs +50 -0
- package/scripts/_dbg-town-polish-shots.mjs +82 -0
- package/scripts/_dbg-town-realtime.mjs +42 -0
- package/scripts/_dbg-town-shot3.mjs +17 -0
- package/scripts/_dbg-town-truth.mjs +37 -0
- package/scripts/_dbg-town-truth2.mjs +27 -0
- package/scripts/_dbg-transform-audit.mjs +98 -0
- package/scripts/_dbg-trend-expand-test.mjs +38 -0
- package/scripts/_dbg-twindaq-focus.mjs +81 -0
- package/scripts/_dbg-ui-polish-shot.mjs +43 -0
- package/scripts/_dbg-ui-polish-verify1.mjs +92 -0
- package/scripts/_dbg-ui-polish-verify2.mjs +50 -0
- package/scripts/_dbg-ui-polish-verify3.mjs +51 -0
- package/scripts/_dbg-ui-polish-verify4.mjs +50 -0
- package/scripts/_dbg-ui-shot.mjs +26 -0
- package/scripts/_dbg-unify-shot.mjs +43 -0
- package/scripts/_dbg-uplink-probe.mjs +36 -0
- package/scripts/_dbg-wizard-preview-shot.mjs +58 -0
- package/scripts/_dbg-wizard-ui-e2e.mjs +93 -0
- package/scripts/_dbg-ws-probe.mjs +86 -0
- package/scripts/_dbg-ws-shot2.mjs +23 -0
- package/scripts/_dbg-wsdot-sanity.mjs +25 -0
- package/scripts/_dev-stack.mjs +46 -0
- package/scripts/_http-driver-probe.mjs +30 -0
- package/scripts/_lib-dcw-line.mjs +24 -0
- package/scripts/_mqtt-driver-probe.mjs +30 -0
- package/scripts/_newdriver-rest-probe.mjs +100 -0
- package/scripts/_node-state-probe.mjs +5 -0
- package/scripts/_opcua-driver-probe.mjs +31 -0
- package/scripts/_rtu-debug.mjs +41 -0
- package/scripts/_rtu-direct.mjs +6 -0
- package/scripts/_rtu-driver-probe.mjs +53 -0
- package/scripts/_rtu-mini-slave.mjs +63 -0
- package/scripts/_townview_style.css +1185 -0
- package/scripts/_townview_template.html +1215 -0
- package/scripts/_wizard-shots.mjs +90 -0
- package/scripts/acceptance-suite.py +207 -0
- package/scripts/api-live-e2e.mjs +467 -0
- package/scripts/build-anime-models.mjs +339 -0
- package/scripts/build-character-models.mjs +175 -0
- package/scripts/build-film-devices.mjs +227 -0
- package/scripts/build-model-3d.mjs +173 -0
- package/scripts/build-player-sheet.mjs +58 -0
- package/scripts/build-world-map.mjs +188 -0
- package/scripts/build-wuwa-assets.mjs +345 -0
- package/scripts/collab-live-test.py +177 -0
- package/scripts/debug-mcp-http.ts +64 -0
- package/scripts/demo-lead-worker.ts +256 -0
- package/scripts/demo-modes.ts +415 -0
- package/scripts/demo-omp-channel.ts +135 -0
- package/scripts/design-preflight.mjs +223 -0
- package/scripts/design-verify-templates.mjs +110 -0
- package/scripts/design-verify.mjs +170 -0
- package/scripts/dev-guard.mjs +74 -0
- package/scripts/dev-modbus-simulator.mjs +55 -0
- package/scripts/dev-opcua-simulator.mjs +57 -0
- package/scripts/dev-protocol-simulators.mjs +145 -0
- package/scripts/dev-window.cmd +6 -0
- package/scripts/device-line-restore.mjs +34 -0
- package/scripts/diag-lead-status.ts +101 -0
- package/scripts/e2e-a2a-steer-live.mjs +193 -0
- package/scripts/e2e-agent-channel-task.ts +151 -0
- package/scripts/e2e-agent-team.mjs +168 -0
- package/scripts/e2e-auth-matrix.mjs +119 -0
- package/scripts/e2e-channel-isolation.ts +325 -0
- package/scripts/e2e-dual-drive-comm.ts +259 -0
- package/scripts/e2e-lead-team-mgmt.ts +217 -0
- package/scripts/e2e-memory-persistence.ts +320 -0
- package/scripts/e2e-memory-system.ts +332 -0
- package/scripts/e2e-omp-modes.ts +274 -0
- package/scripts/e2e-omp-realtime.ts +258 -0
- package/scripts/e2e-omp-workspace.ts +180 -0
- package/scripts/e2e-parallel-execution.mjs +151 -0
- package/scripts/e2e-rest-memory.mjs +251 -0
- package/scripts/e2e-rest-robustness.mjs +177 -0
- package/scripts/e2e-resume-crash.mjs +254 -0
- package/scripts/e2e-tab-close.mjs +136 -0
- package/scripts/e2e-task-queue.ts +277 -0
- package/scripts/e2e-template-isolation.mjs +267 -0
- package/scripts/e2e-token-ui.mjs +149 -0
- package/scripts/final-soup-run.py +192 -0
- package/scripts/final-soup-watch.py +83 -0
- package/scripts/home-bootstrap.mjs +117 -0
- package/scripts/i18n-codemod.mjs +173 -0
- package/scripts/i18n-fix-en.py +28 -0
- package/scripts/i18n-fix-en2.py +31 -0
- package/scripts/i18n-merge.mjs +67 -0
- package/scripts/omp-real-test.py +328 -0
- package/scripts/smoke-optimization-verify.ts +72 -0
- package/scripts/start.mjs +60 -0
- package/scripts/test-a2a-relay.mjs +222 -0
- package/scripts/test-a2a-types.ts +296 -0
- package/scripts/test-agent-brain.ts +135 -0
- package/scripts/test-agent-multi-channel.ts +160 -0
- package/scripts/test-agent-runtime.ts +348 -0
- package/scripts/test-api-client.ts +108 -0
- package/scripts/test-api-suite.mjs +271 -0
- package/scripts/test-block-consumption.mjs +194 -0
- package/scripts/test-channel-routing.ts +301 -0
- package/scripts/test-cmd-render.mjs +218 -0
- package/scripts/test-collab-e2e.mjs +136 -0
- package/scripts/test-collab-omp.mjs +192 -0
- package/scripts/test-dedup-logic.ts +132 -0
- package/scripts/test-dual-drive.ts +227 -0
- package/scripts/test-e2e-collaboration.ts +262 -0
- package/scripts/test-e2e-monitor.ts +192 -0
- package/scripts/test-event-history.ts +112 -0
- package/scripts/test-event-persistence.mjs +169 -0
- package/scripts/test-exec-modes.ts +316 -0
- package/scripts/test-fifo-realtime.mjs +193 -0
- package/scripts/test-final-e2e.mjs +290 -0
- package/scripts/test-full-system.ts +439 -0
- package/scripts/test-game-session.ts +160 -0
- package/scripts/test-goal-summary.ts +202 -0
- package/scripts/test-harness-liveness.ts +109 -0
- package/scripts/test-harness-terminal.ts +164 -0
- package/scripts/test-header-trail.mjs +95 -0
- package/scripts/test-hitl.ts +360 -0
- package/scripts/test-koda-restyle.mjs +105 -0
- package/scripts/test-lane-history-live.mjs +103 -0
- package/scripts/test-lane-raw.ts +67 -0
- package/scripts/test-lanes-history-render.mjs +138 -0
- package/scripts/test-loop-omp.mjs +154 -0
- package/scripts/test-mcp-tools.ts +285 -0
- package/scripts/test-mdlite.ts +53 -0
- package/scripts/test-memory-dynamic.ts +99 -0
- package/scripts/test-memory-maintenance.ts +117 -0
- package/scripts/test-memory-vector.ts +154 -0
- package/scripts/test-memory.ts +431 -0
- package/scripts/test-mock-collab.mjs +226 -0
- package/scripts/test-modern-render.mjs +174 -0
- package/scripts/test-omp-terminal.mjs +187 -0
- package/scripts/test-orchestration.ts +425 -0
- package/scripts/test-persistence-lazy.ts +323 -0
- package/scripts/test-prompt-system.mjs +181 -0
- package/scripts/test-prompts-loader.ts +56 -0
- package/scripts/test-protocol.ts +156 -0
- package/scripts/test-real-scenario.mjs +290 -0
- package/scripts/test-route-reason.mjs +111 -0
- package/scripts/test-scheduler-loop.ts +469 -0
- package/scripts/test-stream-render.ts +37 -0
- package/scripts/test-task-drawer.mjs +204 -0
- package/scripts/test-task-engine.ts +433 -0
- package/scripts/test-task-invariants.mjs +169 -0
- package/scripts/test-terminal-e2e.mjs +264 -0
- package/scripts/test-town-3d.mjs +121 -0
- package/scripts/test-town-drag.mjs +218 -0
- package/scripts/test-town-layout.mjs +200 -0
- package/scripts/test-town-page.mjs +136 -0
- package/scripts/test-town-scene-math.ts +169 -0
- package/scripts/test-town-twin.mjs +121 -0
- package/scripts/test-town-upload.mjs +89 -0
- package/scripts/test-town-user-flow.mjs +619 -0
- package/scripts/test-town-world.mjs +76 -0
- package/scripts/test-town-wuwa.mjs +198 -0
- package/scripts/test-user-isolation.mjs +193 -0
- package/scripts/test-workshop-db.ts +280 -0
- package/scripts/test-workshop-entries.ts +370 -0
- package/scripts/test-workspace-api.ts +329 -0
- package/scripts/test-ws-aep.mjs +187 -0
- package/scripts/test-ws-protocol.ts +134 -0
- package/scripts/test-ws-stress.mjs +208 -0
- package/scripts/town-demo-seed.mjs +75 -0
- package/scripts/town-scene-clear.mjs +56 -0
- package/scripts/ui-screenshot.mjs +128 -0
- package/scripts/verify-a2a-live.mjs +124 -0
- package/scripts/verify-exec-modes-report.ts +248 -0
- package/scripts/verify-game.mjs +477 -0
- package/scripts/verify-lead-mail.ts +188 -0
- package/scripts/verify-page-smoke.mjs +87 -0
- package/scripts/verify-ws-events.mjs +123 -0
- package/scripts/ws-test.mjs +176 -0
- package/scripts/ws-test.py +4 -0
- package/server/api/health.get.ts +32 -0
- package/server/api/mcp/workshop.ts +78 -0
- package/server/api/metrics.ts +75 -0
- package/server/api/system/config.get.ts +12 -0
- package/server/api/system/monitor/terminal/ws.ts +177 -0
- package/server/api/system/monitor/terminate.post.ts +36 -0
- package/server/api/system/monitor.get.ts +13 -0
- package/server/api/system/settings/events.get.ts +28 -0
- package/server/api/system/settings/index.get.ts +14 -0
- package/server/api/system/settings/index.patch.ts +22 -0
- package/server/api/system/settings/reset.post.ts +12 -0
- package/server/api/users/[id].delete.ts +11 -0
- package/server/api/users/[id].get.ts +11 -0
- package/server/api/users/[id].put.ts +14 -0
- package/server/api/users/index.get.ts +13 -0
- package/server/api/users/index.post.ts +13 -0
- package/server/api/users/login.post.ts +11 -0
- package/server/api/users/logout.post.ts +9 -0
- package/server/api/users/me.get.ts +9 -0
- package/server/api/users/register.post.ts +11 -0
- package/server/api/users/tokens/[id]/token.get.ts +11 -0
- package/server/api/users/tokens/[id].delete.ts +11 -0
- package/server/api/users/tokens/[id].patch.ts +14 -0
- package/server/api/users/tokens/index.get.ts +9 -0
- package/server/api/users/tokens/index.post.ts +13 -0
- package/server/api/workshop/[...path].ts +13 -0
- package/server/api/workshop/a2a/[agentId]/card/index.get.ts +75 -0
- package/server/api/workshop/a2a/[agentId]/rpc/index.post.ts +429 -0
- package/server/api/workshop/a2a/send.post.ts +28 -0
- package/server/api/workshop/agent-tools/approvals/[id]/decide.post.ts +21 -0
- package/server/api/workshop/agent-tools/approvals/index.get.ts +18 -0
- package/server/api/workshop/agent-tools/bindings/[id].delete.ts +21 -0
- package/server/api/workshop/agent-tools/bindings/[id].patch.ts +14 -0
- package/server/api/workshop/agent-tools/bindings/index.get.ts +14 -0
- package/server/api/workshop/agent-tools/bindings/index.post.ts +20 -0
- package/server/api/workshop/agent-tools/invoke.post.ts +34 -0
- package/server/api/workshop/agents/[id].delete.ts +20 -0
- package/server/api/workshop/agents/[id].get.ts +19 -0
- package/server/api/workshop/agents/[id].patch.ts +30 -0
- package/server/api/workshop/agents/index.get.ts +13 -0
- package/server/api/workshop/agents/index.post.ts +29 -0
- package/server/api/workshop/agents/subscribe.post.ts +21 -0
- package/server/api/workshop/approvals/[id]/decide.post.ts +30 -0
- package/server/api/workshop/approvals/index.get.ts +22 -0
- package/server/api/workshop/assets/character/[id].delete.ts +33 -0
- package/server/api/workshop/assets/character/index.get.ts +17 -0
- package/server/api/workshop/assets/character/index.post.ts +87 -0
- package/server/api/workshop/assets/devices/[id].delete.ts +43 -0
- package/server/api/workshop/assets/devices/index.get.ts +103 -0
- package/server/api/workshop/assets/devices/index.post.ts +53 -0
- package/server/api/workshop/audit.get.ts +43 -0
- package/server/api/workshop/caller.ts +141 -0
- package/server/api/workshop/channel-templates/[id]/instantiate.post.ts +31 -0
- package/server/api/workshop/channel-templates/[id].delete.ts +20 -0
- package/server/api/workshop/channel-templates/[id].get.ts +19 -0
- package/server/api/workshop/channel-templates/[id].patch.ts +48 -0
- package/server/api/workshop/channel-templates/from-channel.post.ts +31 -0
- package/server/api/workshop/channel-templates/index.get.ts +13 -0
- package/server/api/workshop/channel-templates/index.post.ts +61 -0
- package/server/api/workshop/channels/[id]/activate.post.ts +19 -0
- package/server/api/workshop/channels/[id]/agents/[agentId]/memories/[memoryId].delete.ts +30 -0
- package/server/api/workshop/channels/[id]/agents/[agentId]/memories/index.get.ts +29 -0
- package/server/api/workshop/channels/[id]/agents/[agentId]/memories/index.post.ts +48 -0
- package/server/api/workshop/channels/[id]/agents/[agentId]/memories/search.post.ts +43 -0
- package/server/api/workshop/channels/[id]/agents/[agentId]/model.patch.ts +39 -0
- package/server/api/workshop/channels/[id]/agents/[agentId]/position.patch.ts +33 -0
- package/server/api/workshop/channels/[id]/agents/[agentId]/range.patch.ts +54 -0
- package/server/api/workshop/channels/[id]/agents/[agentId]/stop.post.ts +25 -0
- package/server/api/workshop/channels/[id]/agents/[agentId].delete.ts +23 -0
- package/server/api/workshop/channels/[id]/agents/[agentId].patch.ts +28 -0
- package/server/api/workshop/channels/[id]/agents/index.get.ts +27 -0
- package/server/api/workshop/channels/[id]/agents/index.post.ts +61 -0
- package/server/api/workshop/channels/[id]/events.get.ts +55 -0
- package/server/api/workshop/channels/[id]/index.get.ts +18 -0
- package/server/api/workshop/channels/[id]/index.patch.ts +30 -0
- package/server/api/workshop/channels/[id]/memories/[memoryId].delete.ts +29 -0
- package/server/api/workshop/channels/[id]/memories/index.get.ts +28 -0
- package/server/api/workshop/channels/[id]/memories/index.post.ts +42 -0
- package/server/api/workshop/channels/[id]/messages/index.get.ts +56 -0
- package/server/api/workshop/channels/[id]/messages/index.post.ts +75 -0
- package/server/api/workshop/channels/[id]/queue.get.ts +25 -0
- package/server/api/workshop/channels/[id]/tasks/index.get.ts +24 -0
- package/server/api/workshop/channels/[id]/tasks/index.post.ts +79 -0
- package/server/api/workshop/channels/[id]/terminals.get.ts +21 -0
- package/server/api/workshop/channels/[id].delete.ts +18 -0
- package/server/api/workshop/channels.get.ts +11 -0
- package/server/api/workshop/channels.post.ts +48 -0
- package/server/api/workshop/daq/[id]/bind.post.ts +19 -0
- package/server/api/workshop/daq/[id]/samples.get.ts +22 -0
- package/server/api/workshop/daq/[id]/test.post.ts +17 -0
- package/server/api/workshop/daq/[id].delete.ts +30 -0
- package/server/api/workshop/daq/[id].patch.ts +31 -0
- package/server/api/workshop/daq/alarms/[id]/ack.post.ts +15 -0
- package/server/api/workshop/daq/alarms.get.ts +16 -0
- package/server/api/workshop/daq/controller.post.ts +52 -0
- package/server/api/workshop/daq/index.get.ts +40 -0
- package/server/api/workshop/daq/index.post.ts +33 -0
- package/server/api/workshop/daq/infra/reconnect.post.ts +17 -0
- package/server/api/workshop/daq/infra.get.ts +11 -0
- package/server/api/workshop/daq/templates/[key].delete.ts +17 -0
- package/server/api/workshop/daq/templates/[key].patch.ts +18 -0
- package/server/api/workshop/daq/templates/index.post.ts +17 -0
- package/server/api/workshop/daq/test-driver.post.ts +23 -0
- package/server/api/workshop/dcw/[id]/bind.post.ts +17 -0
- package/server/api/workshop/dcw/[id]/param-ledger.get.ts +15 -0
- package/server/api/workshop/dcw/[id]/test.post.ts +15 -0
- package/server/api/workshop/dcw/[id]/write.post.ts +19 -0
- package/server/api/workshop/dcw/[id].delete.ts +30 -0
- package/server/api/workshop/dcw/[id].patch.ts +18 -0
- package/server/api/workshop/dcw/controller.post.ts +43 -0
- package/server/api/workshop/dcw/index.get.ts +25 -0
- package/server/api/workshop/dcw/index.post.ts +20 -0
- package/server/api/workshop/dcw/journal/index.get.ts +21 -0
- package/server/api/workshop/dcw/journal/node/[nodeId]/rollback.post.ts +22 -0
- package/server/api/workshop/dcw/line/query.get.ts +31 -0
- package/server/api/workshop/dcw/lines/[id]/start.post.ts +35 -0
- package/server/api/workshop/dcw/lines/[id]/stop.post.ts +34 -0
- package/server/api/workshop/dcw/lines/[id].delete.ts +35 -0
- package/server/api/workshop/dcw/lines/[id].patch.ts +15 -0
- package/server/api/workshop/dcw/lines/index.get.ts +14 -0
- package/server/api/workshop/dcw/lines/index.post.ts +31 -0
- package/server/api/workshop/dcw/optimizations/[id]/judge.post.ts +24 -0
- package/server/api/workshop/dcw/optimizations/[id]/rollback.post.ts +29 -0
- package/server/api/workshop/dcw/optimizations/[id]/series.get.ts +18 -0
- package/server/api/workshop/dcw/optimizations/[id].get.ts +17 -0
- package/server/api/workshop/dcw/optimizations/index.get.ts +23 -0
- package/server/api/workshop/dcw/products/[id].delete.ts +16 -0
- package/server/api/workshop/dcw/products/[id].patch.ts +17 -0
- package/server/api/workshop/dcw/products/index.post.ts +16 -0
- package/server/api/workshop/dcw/recipes/[id]/apply.post.ts +40 -0
- package/server/api/workshop/dcw/recipes/[id]/mark-good.post.ts +21 -0
- package/server/api/workshop/dcw/recipes/[id]/rollback-good.post.ts +19 -0
- package/server/api/workshop/dcw/recipes/[id].delete.ts +14 -0
- package/server/api/workshop/dcw/recipes/[id].patch.ts +16 -0
- package/server/api/workshop/dcw/recipes/index.get.ts +12 -0
- package/server/api/workshop/dcw/recipes/index.post.ts +15 -0
- package/server/api/workshop/dcw/runs/[id]/close.post.ts +15 -0
- package/server/api/workshop/dcw/runs/[id]/data.get.ts +15 -0
- package/server/api/workshop/dcw/runs/[id]/rollback.post.ts +20 -0
- package/server/api/workshop/dcw/runs/index.get.ts +11 -0
- package/server/api/workshop/dcw/templates/[key].delete.ts +14 -0
- package/server/api/workshop/dcw/templates/[key].patch.ts +16 -0
- package/server/api/workshop/dcw/templates/index.post.ts +15 -0
- package/server/api/workshop/dcw/test-driver.post.ts +16 -0
- package/server/api/workshop/device-twins/[id]/control.post.ts +21 -0
- package/server/api/workshop/device-twins/[id]/telemetry.post.ts +21 -0
- package/server/api/workshop/device-twins/[id].delete.ts +25 -0
- package/server/api/workshop/device-twins/[id].patch.ts +29 -0
- package/server/api/workshop/device-twins/index.get.ts +16 -0
- package/server/api/workshop/device-twins/index.post.ts +32 -0
- package/server/api/workshop/fs/dirs.get.ts +40 -0
- package/server/api/workshop/mailbox/all.get.ts +19 -0
- package/server/api/workshop/mailbox.get.ts +14 -0
- package/server/api/workshop/memories/maintenance.post.ts +15 -0
- package/server/api/workshop/ops-logs/index.get.ts +30 -0
- package/server/api/workshop/ops-logs/index.post.ts +39 -0
- package/server/api/workshop/runtime.get.ts +11 -0
- package/server/api/workshop/scene/layouts/[channelId].delete.ts +23 -0
- package/server/api/workshop/scene/layouts/[channelId].put.ts +31 -0
- package/server/api/workshop/scene/layouts.get.ts +13 -0
- package/server/api/workshop/tasks/[id]/cancel/index.post.ts +34 -0
- package/server/api/workshop/tasks/[id]/complete.post.ts +32 -0
- package/server/api/workshop/tasks/[id]/dispatch.post.ts +30 -0
- package/server/api/workshop/tasks/[id]/report.post.ts +38 -0
- package/server/api/workshop/tasks/[id]/retry.post.ts +33 -0
- package/server/api/workshop/tasks/[id].get.ts +32 -0
- package/server/api/workshop/tasks.get.ts +13 -0
- package/server/api/workshop/teams/[id]/deploy.post.ts +40 -0
- package/server/api/workshop/teams/[id]/members/[agentId].delete.ts +19 -0
- package/server/api/workshop/teams/[id]/members/index.get.ts +19 -0
- package/server/api/workshop/teams/[id]/members/index.post.ts +32 -0
- package/server/api/workshop/teams/[id].delete.ts +20 -0
- package/server/api/workshop/teams/[id].get.ts +19 -0
- package/server/api/workshop/teams/[id].patch.ts +32 -0
- package/server/api/workshop/teams/index.get.ts +13 -0
- package/server/api/workshop/teams/index.post.ts +27 -0
- package/server/api/workshop/users/me.get.ts +23 -0
- package/server/api/workshop/users/register.post.ts +33 -0
- package/server/api/workshop/workspaces/[id]/channel-templates/[tplId].post.ts +31 -0
- package/server/api/workshop/workspaces/[id]/channels/[channelId].delete.ts +15 -0
- package/server/api/workshop/workspaces/[id]/channels/[channelId].post.ts +15 -0
- package/server/api/workshop/workspaces/[id]/index.delete.ts +14 -0
- package/server/api/workshop/workspaces/index.get.ts +11 -0
- package/server/api/workshop/workspaces/index.post.ts +17 -0
- package/server/api/workshop/ws.ts +694 -0
- package/server/data/agent-node-bindings.json +554 -0
- package/server/data/daq-templates.json +16 -0
- package/server/data/daqs.json +2680 -0
- package/server/data/dcw-lines.json +919 -0
- package/server/data/dcw-products.json +835 -0
- package/server/data/dcw-recipes.json +1650 -0
- package/server/data/dcw-rollback.json +9339 -0
- package/server/data/dcw-runs.json +4633 -0
- package/server/data/dcw-templates.json +26 -0
- package/server/data/dcw-writes.json +9770 -0
- package/server/data/dcws.json +1736 -0
- package/server/data/device-twins.json +133 -0
- package/server/data/line-runs.json +152 -0
- package/server/data/scene-layouts.json +200 -0
- package/server/mcp/workshop-server.ts +510 -0
- package/server/middleware/request-log.ts +15 -0
- package/server/plugins/backup.ts +85 -0
- package/server/plugins/daq.ts +65 -0
- package/server/plugins/dev-stability-guard.ts +42 -0
- package/server/plugins/security.ts +29 -0
- package/server/plugins/system-config.ts +38 -0
- package/server/plugins/workshop.ts +145 -0
- package/server/repositories/user.repository.ts +391 -0
- package/server/schemas/user.schema.ts +67 -0
- package/server/services/system-config.ts +356 -0
- package/server/services/user.service.ts +186 -0
- package/server/services/workshop/agents/adapters/omp-rpc-client.ts +539 -0
- package/server/services/workshop/agents/adapters/to-a2a.ts +40 -0
- package/server/services/workshop/agents/agent-interface.ts +219 -0
- package/server/services/workshop/agents/claude-agent.ts +47 -0
- package/server/services/workshop/agents/factory.ts +24 -0
- package/server/services/workshop/agents/harness-process.ts +158 -0
- package/server/services/workshop/agents/harness-terminal.ts +545 -0
- package/server/services/workshop/agents/industrial-context.ts +222 -0
- package/server/services/workshop/agents/industrial-tools.ts +362 -0
- package/server/services/workshop/agents/mock-agent.ts +396 -0
- package/server/services/workshop/agents/node-bindings.repo.ts +165 -0
- package/server/services/workshop/agents/omp-agent.ts +1598 -0
- package/server/services/workshop/agents/tool-approvals.ts +174 -0
- package/server/services/workshop/assets/character-asset.repo.ts +120 -0
- package/server/services/workshop/assets/device-twin.repo.ts +236 -0
- package/server/services/workshop/daq/alarm-notify.ts +100 -0
- package/server/services/workshop/daq/bus/index.ts +46 -0
- package/server/services/workshop/daq/bus/inproc.adapter.ts +62 -0
- package/server/services/workshop/daq/bus/mqtt.adapter.ts +112 -0
- package/server/services/workshop/daq/bus/queue-port.ts +36 -0
- package/server/services/workshop/daq/daq-controller.ts +778 -0
- package/server/services/workshop/daq/daq-node.repo.ts +96 -0
- package/server/services/workshop/daq/daq-node.ts +247 -0
- package/server/services/workshop/daq/daq-runtime.ts +168 -0
- package/server/services/workshop/daq/daq-templates.ts +157 -0
- package/server/services/workshop/daq/drivers.ts +771 -0
- package/server/services/workshop/daq/host-bindings.ts +71 -0
- package/server/services/workshop/daq/host-ports.ts +64 -0
- package/server/services/workshop/daq/infra.ts +202 -0
- package/server/services/workshop/daq/storage/index.ts +96 -0
- package/server/services/workshop/daq/storage/sqlite.adapter.ts +205 -0
- package/server/services/workshop/daq/storage/timescale.adapter.ts +185 -0
- package/server/services/workshop/daq/storage/tsdb-port.ts +74 -0
- package/server/services/workshop/db/agent.repo.ts +105 -0
- package/server/services/workshop/db/channel-agent.repo.ts +119 -0
- package/server/services/workshop/db/channel-event.repo.ts +154 -0
- package/server/services/workshop/db/channel-template.repo.ts +113 -0
- package/server/services/workshop/db/channel.repo.ts +101 -0
- package/server/services/workshop/db/database.ts +934 -0
- package/server/services/workshop/db/memory.repo.ts +249 -0
- package/server/services/workshop/db/message.repo.ts +149 -0
- package/server/services/workshop/db/ops.repo.ts +323 -0
- package/server/services/workshop/db/schema.sql +143 -0
- package/server/services/workshop/db/subscription.repo.ts +62 -0
- package/server/services/workshop/db/task.repo.ts +175 -0
- package/server/services/workshop/db/team-member.repo.ts +70 -0
- package/server/services/workshop/db/team.repo.ts +109 -0
- package/server/services/workshop/db/user.repo.ts +100 -0
- package/server/services/workshop/dcw/dcw-controller.ts +841 -0
- package/server/services/workshop/dcw/dcw-line.repo.ts +86 -0
- package/server/services/workshop/dcw/dcw-node.repo.ts +89 -0
- package/server/services/workshop/dcw/dcw-node.ts +200 -0
- package/server/services/workshop/dcw/dcw-product.repo.ts +95 -0
- package/server/services/workshop/dcw/dcw-recipe.repo.ts +349 -0
- package/server/services/workshop/dcw/dcw-runtime.ts +82 -0
- package/server/services/workshop/dcw/dcw-templates.ts +138 -0
- package/server/services/workshop/dcw/drivers.ts +523 -0
- package/server/services/workshop/dcw/line-run.ts +101 -0
- package/server/services/workshop/dcw/recipe-rollback-manager.ts +702 -0
- package/server/services/workshop/dcw/recipe-rollback.repo.ts +197 -0
- package/server/services/workshop/logger.ts +58 -0
- package/server/services/workshop/ops/ops.ts +78 -0
- package/server/services/workshop/prompts/loader.ts +112 -0
- package/server/services/workshop/runtime/agent-runtime.ts +698 -0
- package/server/services/workshop/runtime/channel-runtime.ts +202 -0
- package/server/services/workshop/runtime/embedding-provider.ts +79 -0
- package/server/services/workshop/runtime/execution-mode.ts +215 -0
- package/server/services/workshop/runtime/mailbox.ts +148 -0
- package/server/services/workshop/runtime/manager.ts +2543 -0
- package/server/services/workshop/runtime/memory.ts +439 -0
- package/server/services/workshop/runtime/monitor.ts +194 -0
- package/server/services/workshop/runtime/scheduler-loop.ts +773 -0
- package/server/services/workshop/runtime/task-engine.ts +574 -0
- package/server/services/workshop/scene/scene-layout.repo.ts +112 -0
- package/server/services/workshop/scene-events.ts +63 -0
- package/server/services/workshop/types/a2a.ts +61 -0
- package/server/services/workshop/types/task.ts +85 -0
- package/server/types/user.ts +53 -0
- package/server/utils/approval-gate.ts +67 -0
- package/server/utils/auth.ts +13 -0
- package/server/utils/config.ts +40 -0
- package/server/utils/errors.ts +24 -0
- package/server/utils/response.ts +49 -0
- package/server/utils/validate.ts +19 -0
- package/shared/config/engine.d.mts +41 -0
- package/shared/config/engine.mjs +291 -0
- package/shared/config/home.d.mts +48 -0
- package/shared/config/home.mjs +146 -0
- package/shared/config/schema.json +30 -0
- package/shared/daq-protocol.ts +361 -0
- package/shared/dcw-protocol.ts +576 -0
- package/shared/terminal-protocol.ts +70 -0
- package/shared/town-anim.ts +56 -0
- package/shared/town-behavior.ts +136 -0
- package/shared/town-protocol.ts +110 -0
- package/shared/town-scene-math.ts +283 -0
- package/shared/workshop-protocol.ts +199 -0
- package/tsconfig.json +10 -0
- package/uno.config.ts +37 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"height":40,"infinite":false,"layers":[{"data":[126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,149,150,150,150,150,151,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,149,196,174,174,174,174,195,151,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,149,196,174,174,174,174,174,174,195,151,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,174,174,174,174,174,174,195,150,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,174,174,174,174,174,174,174,174,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,174,174,174,174,174,174,171,198,126,126,149,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,151,126,126,126,126,173,174,174,174,174,174,174,174,171,199,126,126,126,173,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,175,126,126,126,126,197,172,174,174,174,174,174,174,175,126,126,126,126,173,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,175,126,126,126,126,126,197,172,174,174,174,174,171,199,126,126,126,126,173,174,174,171,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,199,126,126,126,126,126,126,197,198,198,198,198,199,126,126,126,126,126,173,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,195,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,151,126,126,126,173,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,175,126,126,126,173,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,175,126,126,126,197,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,172,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,149,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,151,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,173,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,175,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,173,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,175,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,197,198,198,198,198,198,198,198,198,198,172,174,174,171,198,198,198,198,198,172,174,174,195,150,150,150,150,150,150,150,150,150,150,196,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,126,126,173,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,126,126,173,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,126,126,197,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,199,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,149,150,150,150,150,150,196,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,173,174,174,174,174,174,174,174,174,175,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,197,198,198,198,198,198,198,198,198,199,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126],"height":40,"id":1,"name":"Below Player","opacity":1,"type":"tilelayer","visible":true,"width":40,"x":0,"y":0},{"data":[169,170,193,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,361,362,363,364,365,366,367,368,369,193,194,169,170,193,194,169,170,193,194,169,170,193,193,194,169,170,601,602,603,604,605,0,0,601,602,603,604,605,0,0,385,386,387,388,389,390,391,392,393,169,170,193,194,169,170,193,194,169,170,193,194,169,169,170,193,194,625,626,627,628,629,0,332,625,626,627,628,629,0,0,409,410,411,412,413,414,415,416,417,193,194,169,170,193,194,0,0,193,194,169,170,193,193,194,169,170,649,650,651,652,653,0,356,649,650,651,652,653,0,0,433,434,435,436,437,438,439,440,441,169,170,193,194,0,0,0,0,0,0,193,194,169,169,170,193,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,457,458,459,460,461,462,463,464,465,193,194,0,0,0,0,0,0,0,0,0,0,193,193,194,169,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,481,482,483,484,485,486,487,488,489,169,170,0,0,0,0,0,0,0,0,0,0,0,169,170,193,194,601,602,603,604,605,0,0,601,602,603,604,605,0,0,505,506,507,508,509,510,511,512,513,193,194,0,0,0,0,0,0,0,0,0,0,0,193,194,169,170,625,626,627,628,629,0,332,625,626,627,628,629,0,333,529,530,531,532,533,534,535,536,537,169,170,0,0,0,0,329,330,0,0,0,0,0,169,170,193,194,649,650,651,652,653,0,356,649,650,651,652,653,0,357,553,554,555,556,557,558,559,560,561,193,194,0,0,0,358,353,354,0,0,0,0,0,193,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,170,0,0,0,0,0,0,0,0,0,0,169,169,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,170,193,194,0,0,0,0,0,0,0,0,0,0,193,193,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,194,169,170,169,170,0,0,0,0,0,0,169,170,169,169,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,194,193,194,0,0,0,0,0,0,193,194,193,193,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,170,169,170,169,170,169,170,169,170,169,170,0,0,0,0,606,607,608,609,610,611,0,0,495,496,497,498,499,503,504,0,0,606,607,608,609,610,611,0,193,194,193,194,193,194,193,194,193,194,193,194,0,0,0,0,630,631,632,633,634,635,0,0,519,520,521,522,523,527,528,0,0,630,631,632,633,634,635,0,0,169,170,169,170,169,170,169,170,169,169,170,0,0,0,0,654,655,656,657,658,659,128,0,543,544,545,546,547,551,552,56,0,654,655,656,657,658,659,121,0,193,194,193,194,193,194,193,194,193,193,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,170,169,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,194,193,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,170,169,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,217,218,218,218,218,218,218,218,218,218,219,0,0,193,194,193,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,241,0,0,0,0,0,0,0,0,0,243,0,0,169,170,169,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,241,169,170,0,0,0,0,0,169,170,243,0,0,193,194,193,194,266,612,613,614,615,616,266,266,266,612,613,614,615,616,266,266,266,399,400,401,402,403,314,241,193,194,0,273,274,275,0,193,194,243,0,0,169,170,169,170,0,636,637,638,639,640,0,0,0,636,637,638,639,640,0,0,0,423,424,425,426,427,0,241,0,0,0,297,298,299,0,0,0,243,0,0,193,194,193,194,356,660,661,662,663,664,0,0,356,660,661,662,663,664,0,0,355,447,448,449,450,451,122,241,0,225,0,321,322,323,0,225,0,243,0,0,169,170,169,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,241,0,0,0,0,0,0,0,0,0,243,0,0,193,194,193,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,241,0,0,0,0,121,0,0,0,0,243,0,0,169,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,241,0,0,0,0,0,0,0,0,0,243,0,0,193,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,265,218,218,268,0,0,0,269,218,218,267,0,0,169,170,169,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,194,193,194,290,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,170,169,170,241,0,0,0,394,395,396,397,398,0,0,0,0,0,612,613,614,615,616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,194,193,194,241,0,0,0,418,419,420,421,422,0,0,0,0,0,636,637,638,639,640,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,170,169,170,241,0,0,0,442,443,444,445,446,357,0,0,0,0,660,661,662,663,664,0,0,0,0,0,0,0,0,0,0,0,0,0,169,170,169,170,193,194,193,194,241,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,194,193,194,169,170,169,170,241,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,170,0,0,193,194,193,194,265,266,266,268,359,0,0,0,0,0,0,0,0,359,269,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,193,194,0,327,0,0,169,170,169,170,169,170,0,0,0,0,0,0,0,0,0,0,169,170,169,170,169,170,169,170,169,170,169,170,169,170,169,170,169,170,169,170,0,0,200,0,193,194,193,194,193,194,0,0,0,0,0,0,0,0,0,0,193,194,193,194,193,194,193,194,193,194,193,194,193,194,193,194,193,194,193,194,0,8,0,152],"height":40,"id":2,"name":"World","opacity":1,"type":"tilelayer","visible":true,"width":40,"x":0,"y":0},{"data":[0,0,0,0,577,578,579,580,581,0,0,577,578,579,580,581,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,332,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,577,578,579,580,581,0,0,577,578,579,580,581,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,305,306,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,332,0,0,0,0,0,0,333,0,0,0,0,0,0,0,0,0,0,0,0,0,0,334,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,582,583,584,585,586,587,0,0,471,472,473,474,475,479,480,0,0,582,583,584,585,586,587,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,588,589,590,591,592,0,0,0,588,589,590,591,592,0,0,0,375,376,377,378,379,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,332,0,0,0,0,0,0,0,332,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,370,371,372,373,374,0,0,0,0,0,588,589,590,591,592,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,333,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,335,0,0,0,0,0,0,0,0,335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"height":40,"id":3,"name":"Above Player","opacity":1,"type":"tilelayer","visible":true,"width":40,"x":0,"y":0},{"draworder":"topdown","id":4,"name":"Objects","objects":[{"height":0,"id":275,"name":"Spawn Point","point":true,"rotation":0,"type":"","visible":true,"width":0,"x":352,"y":1216}],"opacity":1,"type":"objectgroup","visible":false,"x":0,"y":0}],"nextlayerid":5,"nextobjectid":277,"orientation":"orthogonal","properties":[{"name":"edges","type":"string","value":"clamped"}],"renderorder":"right-down","tiledversion":"1.2.2","tileheight":32,"tilesets":[{"columns":24,"firstgid":1,"grid":{"height":16,"orientation":"orthogonal","width":16},"image":"tuxmon-sample-32px-extruded.png","imageheight":1020,"imagewidth":816,"margin":1,"name":"tuxmon-sample-32px-extruded","spacing":2,"terrains":[{"name":"Path","tile":173},{"name":"Grass","tile":125}],"tilecount":720,"tileheight":32,"tiles":[{"id":0,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":1,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":2,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":3,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":4,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":5,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":6,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":7,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":8,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":9,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":10,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":11,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":12,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":13,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":14,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":15,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":16,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":17,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":18,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":19,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":20,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":21,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":22,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":23,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":24,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":25,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":26,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":27,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":28,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":29,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":30,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":31,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":32,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":33,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":34,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":35,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":36,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":37,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":38,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":39,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":40,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":41,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":42,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":43,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":44,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":45,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":46,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":47,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":48,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":49,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":50,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":51,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":52,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":53,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":54,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":55,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":56,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":57,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":58,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":59,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":60,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":61,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":62,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":63,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":64,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":65,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":66,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":67,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":68,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":69,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":70,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":71,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":72,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":73,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":74,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":75,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":76,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":77,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":78,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":79,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":80,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":81,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":82,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":83,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":84,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":85,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":86,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":87,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":88,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":89,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":90,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":91,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":92,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":93,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":94,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":95,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":96,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":97,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":98,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":99,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":100,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":101,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":102,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":103,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":104,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":105,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":106,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":107,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":108,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":109,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":110,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":111,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":112,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":113,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":114,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":115,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":116,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":117,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":118,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":119,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":120,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":121,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":122,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":123,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":124,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":125,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[1,1,1,1]},{"id":126,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":127,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":128,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":129,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":130,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":131,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":132,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":133,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":134,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":135,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":136,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":137,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":138,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":139,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":140,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":141,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":142,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":143,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":144,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":145,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":146,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":147,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":148,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[1,1,1,0]},{"id":149,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[1,1,0,0]},{"id":150,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[1,1,0,1]},{"id":151,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":152,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":153,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":154,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":155,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":156,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":157,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":158,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":159,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":160,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":161,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":162,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":163,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":164,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":165,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":166,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":167,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":168,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":169,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":170,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[0,0,0,1]},{"id":171,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[0,0,1,0]},{"id":172,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[1,0,1,0]},{"id":173,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[0,0,0,0]},{"id":174,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[0,1,0,1]},{"id":175,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":176,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":177,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":178,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":179,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":180,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":181,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":182,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":183,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":184,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":185,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":186,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":187,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":188,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":189,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":190,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":191,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":192,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":193,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":194,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[0,1,0,0]},{"id":195,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[1,0,0,0]},{"id":196,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[1,0,1,1]},{"id":197,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[0,0,1,1]},{"id":198,"properties":[{"name":"collides","type":"bool","value":false}],"terrain":[0,1,1,1]},{"id":199,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":200,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":201,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":202,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":203,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":204,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":205,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":206,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":207,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":208,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":209,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":210,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":211,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":212,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":213,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":214,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":215,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":216,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":217,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":218,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":219,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":220,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":221,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":222,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":223,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":224,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":225,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":226,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":227,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":228,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":229,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":230,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":231,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":232,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":233,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":234,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":235,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":236,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":237,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":238,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":239,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":240,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":241,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":242,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":243,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":244,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":245,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":246,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":247,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":248,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":249,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":250,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":251,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":252,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":253,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":254,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":255,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":256,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":257,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":258,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":259,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":260,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":261,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":262,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":263,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":264,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":265,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":266,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":267,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":268,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":269,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":270,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":271,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":272,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":273,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":274,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":275,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":276,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":277,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":278,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":279,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":280,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":281,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":282,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":283,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":284,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":285,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":286,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":287,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":288,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":289,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":290,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":291,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":292,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":293,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":294,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":295,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":296,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":297,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":298,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":299,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":300,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":301,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":302,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":303,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":304,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":305,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":306,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":307,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":308,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":309,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":310,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":311,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":312,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":313,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":314,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":315,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":316,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":317,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":318,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":319,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":320,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":321,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":322,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":323,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":324,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":325,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":326,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":327,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":328,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":329,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":330,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":331,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":332,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":333,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":334,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":335,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":336,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":337,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":338,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":339,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":340,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":341,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":342,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":343,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":344,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":345,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":346,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":347,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":348,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":349,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":350,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":351,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":352,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":353,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":354,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":355,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":356,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":357,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":358,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":359,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":360,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":361,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":362,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":363,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":364,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":365,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":366,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":367,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":368,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":369,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":370,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":371,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":372,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":373,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":374,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":375,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":376,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":377,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":378,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":379,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":380,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":381,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":382,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":383,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":384,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":385,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":386,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":387,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":388,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":389,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":390,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":391,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":392,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":393,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":394,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":395,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":396,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":397,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":398,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":399,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":400,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":401,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":402,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":403,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":404,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":405,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":406,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":407,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":408,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":409,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":410,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":411,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":412,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":413,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":414,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":415,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":416,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":417,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":418,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":419,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":420,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":421,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":422,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":423,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":424,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":425,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":426,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":427,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":428,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":429,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":430,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":431,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":432,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":433,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":434,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":435,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":436,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":437,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":438,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":439,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":440,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":441,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":442,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":443,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":444,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":445,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":446,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":447,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":448,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":449,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":450,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":451,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":452,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":453,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":454,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":455,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":456,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":457,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":458,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":459,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":460,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":461,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":462,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":463,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":464,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":465,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":466,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":467,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":468,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":469,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":470,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":471,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":472,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":473,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":474,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":475,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":476,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":477,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":478,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":479,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":480,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":481,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":482,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":483,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":484,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":485,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":486,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":487,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":488,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":489,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":490,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":491,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":492,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":493,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":494,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":495,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":496,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":497,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":498,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":499,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":500,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":501,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":502,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":503,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":504,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":505,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":506,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":507,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":508,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":509,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":510,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":511,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":512,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":513,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":514,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":515,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":516,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":517,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":518,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":519,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":520,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":521,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":522,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":523,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":524,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":525,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":526,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":527,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":528,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":529,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":530,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":531,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":532,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":533,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":534,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":535,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":536,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":537,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":538,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":539,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":540,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":541,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":542,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":543,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":544,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":545,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":546,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":547,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":548,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":549,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":550,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":551,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":552,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":553,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":554,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":555,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":556,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":557,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":558,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":559,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":560,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":561,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":562,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":563,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":564,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":565,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":566,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":567,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":568,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":569,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":570,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":571,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":572,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":573,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":574,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":575,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":576,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":577,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":578,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":579,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":580,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":581,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":582,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":583,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":584,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":585,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":586,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":587,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":588,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":589,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":590,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":591,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":592,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":593,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":594,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":595,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":596,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":597,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":598,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":599,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":600,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":601,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":602,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":603,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":604,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":605,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":606,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":607,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":608,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":609,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":610,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":611,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":612,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":613,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":614,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":615,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":616,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":617,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":618,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":619,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":620,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":621,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":622,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":623,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":624,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":625,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":626,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":627,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":628,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":629,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":630,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":631,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":632,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":633,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":634,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":635,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":636,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":637,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":638,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":639,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":640,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":641,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":642,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":643,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":644,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":645,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":646,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":647,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":648,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":649,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":650,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":651,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":652,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":653,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":654,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":655,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":656,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":657,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":658,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":659,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":660,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":661,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":662,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":663,"properties":[{"name":"collides","type":"bool","value":true}]},{"id":664,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":665,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":666,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":667,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":668,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":669,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":670,"properties":[{"name":"collides","type":"bool","value":false}]},{"id":671,"properties":[{"name":"collides","type":"bool","value":false}]}],"tilewidth":32}],"tilewidth":32,"type":"map","version":1.2,"width":40}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="aw-logo-gradient" x1="0" y1="0" x2="1" y2="1">
|
|
4
|
+
<stop offset="0" stop-color="#35e0a0"/>
|
|
5
|
+
<stop offset="1" stop-color="#41c8f4"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<path d="M32 4 L56 18 V46 L32 60 L8 46 V18 Z" stroke="url(#aw-logo-gradient)" stroke-width="4" stroke-linejoin="round"/>
|
|
9
|
+
<path d="M32 15 L46.7 23.5 V40.5 L32 49 L17.3 40.5 V23.5 Z" stroke="#41c8f4" stroke-opacity="0.45" stroke-width="1.8" stroke-dasharray="4 3"/>
|
|
10
|
+
<path d="M32 23 L25 38 M32 23 L39 38 M25 38 L39 38" stroke="#35e0a0" stroke-width="1.8" stroke-opacity="0.75"/>
|
|
11
|
+
<circle cx="32" cy="23" r="3.4" fill="#35e0a0"/>
|
|
12
|
+
<circle cx="25" cy="38" r="3.4" fill="#41c8f4"/>
|
|
13
|
+
<circle cx="39" cy="38" r="3.4" fill="#41c8f4"/>
|
|
14
|
+
</svg>
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="1200" viewBox="0 0 1600 1200" preserveAspectRatio="xMidYMid slice">
|
|
2
|
+
<!-- 赛博生命小镇背景贴图 cyber-town-background
|
|
3
|
+
用途:3D 场景地面贴图 / 页面 CSS 背景。
|
|
4
|
+
要素:深色渐变 + 透视网格 + 发光线路 + 节点数据流 + 城区轮廓;低对比度,不干扰前景模型。
|
|
5
|
+
文字由 HTML/UI 层渲染,本文件不写死文本。 -->
|
|
6
|
+
<defs>
|
|
7
|
+
<linearGradient id="bgGrad" x1="0" y1="0" x2="0" y2="1">
|
|
8
|
+
<stop offset="0" stop-color="#070b16"/>
|
|
9
|
+
<stop offset="0.36" stop-color="#0d1526"/>
|
|
10
|
+
<stop offset="0.55" stop-color="#111d33"/>
|
|
11
|
+
<stop offset="1" stop-color="#0a1020"/>
|
|
12
|
+
</linearGradient>
|
|
13
|
+
<radialGradient id="glowCenter" cx="0.5" cy="0.46" r="0.7">
|
|
14
|
+
<stop offset="0" stop-color="#20335c" stop-opacity="0.55"/>
|
|
15
|
+
<stop offset="1" stop-color="#111d33" stop-opacity="0"/>
|
|
16
|
+
</radialGradient>
|
|
17
|
+
<filter id="soft" x="-40%" y="-40%" width="180%" height="180%">
|
|
18
|
+
<feGaussianBlur stdDeviation="2.4"/>
|
|
19
|
+
</filter>
|
|
20
|
+
<filter id="softBig" x="-60%" y="-60%" width="220%" height="220%">
|
|
21
|
+
<feGaussianBlur stdDeviation="7"/>
|
|
22
|
+
</filter>
|
|
23
|
+
<filter id="ringBlur" x="-80%" y="-80%" width="260%" height="260%">
|
|
24
|
+
<feGaussianBlur stdDeviation="12"/>
|
|
25
|
+
</filter>
|
|
26
|
+
<pattern id="dither" width="8" height="8" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
|
|
27
|
+
<rect width="4" height="4" fill="#ffffff" fill-opacity="0.012"/>
|
|
28
|
+
</pattern>
|
|
29
|
+
</defs>
|
|
30
|
+
|
|
31
|
+
<!-- 底色 -->
|
|
32
|
+
<rect width="1600" height="1200" fill="url(#bgGrad)"/>
|
|
33
|
+
<rect width="1600" height="1200" fill="url(#glowCenter)"/>
|
|
34
|
+
<rect width="1600" height="1200" fill="url(#dither)"/>
|
|
35
|
+
|
|
36
|
+
<!-- 城区轮廓(六个模糊区块,低对比) -->
|
|
37
|
+
<g filter="url(#softBig)" opacity="0.5">
|
|
38
|
+
<ellipse cx="330" cy="430" rx="230" ry="175" fill="#1d3a5f" fill-opacity="0.5"/>
|
|
39
|
+
<ellipse cx="760" cy="330" rx="205" ry="150" fill="#2b3557" fill-opacity="0.5"/>
|
|
40
|
+
<ellipse cx="1220" cy="460" rx="240" ry="180" fill="#1e3a4f" fill-opacity="0.5"/>
|
|
41
|
+
<ellipse cx="520" cy="760" rx="240" ry="170" fill="#243052" fill-opacity="0.42"/>
|
|
42
|
+
<ellipse cx="1080" cy="820" rx="250" ry="180" fill="#193a52" fill-opacity="0.45"/>
|
|
43
|
+
<ellipse cx="1540" cy="700" rx="210" ry="160" fill="#2a3450" fill-opacity="0.4"/>
|
|
44
|
+
</g>
|
|
45
|
+
<!-- 城区描边(极淡) -->
|
|
46
|
+
<g fill="none" stroke="#5c7bb0" stroke-opacity="0.28" stroke-width="1.6" filter="url(#soft)">
|
|
47
|
+
<ellipse cx="330" cy="430" rx="190" ry="140"/>
|
|
48
|
+
<ellipse cx="760" cy="330" rx="170" ry="120"/>
|
|
49
|
+
<ellipse cx="1220" cy="460" rx="200" ry="145"/>
|
|
50
|
+
<ellipse cx="520" cy="760" rx="200" ry="135"/>
|
|
51
|
+
<ellipse cx="1080" cy="820" rx="210" ry="145"/>
|
|
52
|
+
<ellipse cx="1540" cy="700" rx="175" ry="125"/>
|
|
53
|
+
</g>
|
|
54
|
+
|
|
55
|
+
<!-- 透视网格(汇聚到地平线) -->
|
|
56
|
+
<g stroke="#3b5a8c" stroke-opacity="0.34" fill="none">
|
|
57
|
+
<!-- 横向(随距离加密) -->
|
|
58
|
+
<path d="M0 1200 L1600 1200"/>
|
|
59
|
+
<path d="M0 1030 L1600 1030"/>
|
|
60
|
+
<path d="M0 880 L1600 880"/>
|
|
61
|
+
<path d="M0 750 L1600 750"/>
|
|
62
|
+
<path d="M0 640 L1600 640"/>
|
|
63
|
+
<path d="M0 550 L1600 550"/>
|
|
64
|
+
<path d="M0 478 L1600 478"/>
|
|
65
|
+
<path d="M0 432 L1600 432"/>
|
|
66
|
+
<path d="M0 398 L1600 398"/>
|
|
67
|
+
<path d="M0 372 L1600 372"/>
|
|
68
|
+
<!-- 纵向(向中心汇聚) -->
|
|
69
|
+
<path d="M800 1200 L716 300 L884 300"/>
|
|
70
|
+
<path d="M0 1200 L420 300 L1180 300"/>
|
|
71
|
+
<path d="M1600 1200 L1180 300 L420 300"/>
|
|
72
|
+
<path d="M320 1200 L556 300 L1044 300"/>
|
|
73
|
+
<path d="M1280 1200 L1044 300 L556 300"/>
|
|
74
|
+
<path d="M560 1200 L660 300 L940 300"/>
|
|
75
|
+
<path d="M1040 1200 L940 300 L660 300"/>
|
|
76
|
+
</g>
|
|
77
|
+
|
|
78
|
+
<!-- 数据流线路(发光,沿网格布线) -->
|
|
79
|
+
<g stroke-linecap="round" fill="none">
|
|
80
|
+
<path d="M150 1150 L320 900 L420 640 L640 520" stroke="#4fe3c1" stroke-opacity="0.5" stroke-width="2.4" filter="url(#soft)"/>
|
|
81
|
+
<path d="M150 1150 L320 900 L420 640 L640 520" stroke="#9ffbe8" stroke-opacity="0.22" stroke-width="6" filter="url(#softBig)"/>
|
|
82
|
+
<path d="M330 430 L640 520 L760 330" stroke="#5b8cff" stroke-opacity="0.5" stroke-width="2.2" filter="url(#soft)"/>
|
|
83
|
+
<path d="M760 330 L1080 610 L1220 460" stroke="#5b8cff" stroke-opacity="0.4" stroke-width="2.2" filter="url(#soft)"/>
|
|
84
|
+
<path d="M1220 460 L1450 700" stroke="#4fe3c1" stroke-opacity="0.45" stroke-width="2.2" filter="url(#soft)"/>
|
|
85
|
+
<path d="M520 760 L1080 820" stroke="#8a7bff" stroke-opacity="0.4" stroke-width="2" filter="url(#soft)"/>
|
|
86
|
+
<path d="M1080 820 L1540 700" stroke="#8a7bff" stroke-opacity="0.36" stroke-width="2" filter="url(#soft)"/>
|
|
87
|
+
</g>
|
|
88
|
+
|
|
89
|
+
<!-- 节点 + 数据流脉冲 -->
|
|
90
|
+
<g filter="url(#soft)">
|
|
91
|
+
<circle cx="420" cy="640" r="9" fill="#4fe3c1" fill-opacity="0.85"/>
|
|
92
|
+
<circle cx="640" cy="520" r="6" fill="#9ffbe8" fill-opacity="0.9"/>
|
|
93
|
+
<circle cx="760" cy="330" r="10" fill="#5b8cff" fill-opacity="0.9"/>
|
|
94
|
+
<circle cx="1080" cy="610" r="6" fill="#5b8cff" fill-opacity="0.8"/>
|
|
95
|
+
<circle cx="1220" cy="460" r="8" fill="#4fe3c1" fill-opacity="0.85"/>
|
|
96
|
+
<circle cx="520" cy="760" r="7" fill="#8a7bff" fill-opacity="0.85"/>
|
|
97
|
+
<circle cx="1080" cy="820" r="9" fill="#8a7bff" fill-opacity="0.85"/>
|
|
98
|
+
<circle cx="1540" cy="700" r="6" fill="#4fe3c1" fill-opacity="0.7"/>
|
|
99
|
+
<circle cx="330" cy="430" r="8" fill="#5b8cff" fill-opacity="0.8"/>
|
|
100
|
+
</g>
|
|
101
|
+
|
|
102
|
+
<!-- 环绕光晕(弱) -->
|
|
103
|
+
<g fill="none" stroke="#4fe3c1" stroke-opacity="0.16" stroke-width="1" filter="url(#ringBlur)">
|
|
104
|
+
<circle cx="760" cy="330" r="95"/>
|
|
105
|
+
<ellipse cx="1080" cy="820" rx="120" ry="80"/>
|
|
106
|
+
</g>
|
|
107
|
+
|
|
108
|
+
<!-- 顶部微光(镜头晕影) -->
|
|
109
|
+
<rect width="1600" height="300" fill="url(#glowCenter)"/>
|
|
110
|
+
</svg>
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/** 一次性:/daq 实时帧验证 —— WS 连接(无频道订阅)下 townBus 的 daq.reading 帧计数 + 值变化节奏 */
|
|
2
|
+
import puppeteer from 'puppeteer-core'
|
|
3
|
+
|
|
4
|
+
const TOKEN = process.env.AW_PAGE_TOKEN ?? ''
|
|
5
|
+
const browser = await puppeteer.launch({
|
|
6
|
+
executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
|
|
7
|
+
headless: 'new',
|
|
8
|
+
args: ['--no-sandbox', '--disable-gpu', '--window-size=1920,1200'],
|
|
9
|
+
})
|
|
10
|
+
const page = await browser.newPage()
|
|
11
|
+
const errors = []
|
|
12
|
+
page.on('pageerror', e => errors.push(String(e).slice(0, 120)))
|
|
13
|
+
await page.setViewport({ width: 1920, height: 1200, deviceScaleFactor: 1 })
|
|
14
|
+
await page.setCookie({ name: 'token', value: TOKEN, domain: '127.0.0.1', path: '/' })
|
|
15
|
+
await page.goto('http://127.0.0.1:3000/daq', { waitUntil: 'domcontentloaded', timeout: 90000 })
|
|
16
|
+
await new Promise(r => setTimeout(r, 9000))
|
|
17
|
+
|
|
18
|
+
// 订阅 townBus 计数 5s 内的 daq.reading 帧
|
|
19
|
+
const frames = await page.evaluate(() => new Promise((resolve) => {
|
|
20
|
+
const bus = globalThis.__townBus
|
|
21
|
+
if (!bus) {
|
|
22
|
+
resolve(-1)
|
|
23
|
+
return
|
|
24
|
+
}
|
|
25
|
+
let n = 0
|
|
26
|
+
const off = bus.subscribe((e) => {
|
|
27
|
+
if (e.type === 'daq.reading') n++
|
|
28
|
+
})
|
|
29
|
+
setTimeout(() => {
|
|
30
|
+
off()
|
|
31
|
+
resolve(n)
|
|
32
|
+
}, 5000)
|
|
33
|
+
}))
|
|
34
|
+
console.log(`5s 内 daq.reading 帧数: ${frames} ${frames > 0 ? '(PASS 实时帧到达,无频道订阅)' : '(FAIL)'}`)
|
|
35
|
+
|
|
36
|
+
// 值变化节奏:同一节点 6s 内的值变化次数(纯 5s 轮询节奏下应为 0-1)
|
|
37
|
+
const changes = await page.evaluate(() => new Promise((resolve) => {
|
|
38
|
+
const bus = globalThis.__townBus
|
|
39
|
+
if (!bus) {
|
|
40
|
+
resolve(-1)
|
|
41
|
+
return
|
|
42
|
+
}
|
|
43
|
+
let last = null
|
|
44
|
+
let changes = 0
|
|
45
|
+
let target = ''
|
|
46
|
+
|
|
47
|
+
const off = bus.subscribe((e) => {
|
|
48
|
+
if (e.type !== 'daq.reading') return
|
|
49
|
+
const p = e.payload
|
|
50
|
+
if (!target) {
|
|
51
|
+
target = p.nodeId
|
|
52
|
+
last = p.value
|
|
53
|
+
return
|
|
54
|
+
}
|
|
55
|
+
if (p.nodeId !== target) return
|
|
56
|
+
if (last != null && p.value !== last) changes++
|
|
57
|
+
last = p.value
|
|
58
|
+
})
|
|
59
|
+
setTimeout(() => {
|
|
60
|
+
off()
|
|
61
|
+
resolve(changes)
|
|
62
|
+
}, 6000)
|
|
63
|
+
}))
|
|
64
|
+
console.log(`6s 内同一节点值变化次数: ${changes} ${changes >= 1 ? '(PASS 实时刷新)' : '(FAIL)'}`)
|
|
65
|
+
|
|
66
|
+
await page.screenshot({ path: 'docs/audit/screenshots/huashu-survey2/daq-realtime.png' })
|
|
67
|
+
await browser.close()
|
|
68
|
+
console.log(errors.length ? `PAGE ERRORS:\n${errors.join('\n')}` : 'no page errors')
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/** 一次性:越限实时警告验证 v2 —— 正常量程节点 + 不可达配方监控窗(开跑后值恒低于窗下限) */
|
|
2
|
+
import puppeteer from 'puppeteer-core'
|
|
3
|
+
|
|
4
|
+
const BASE = 'http://127.0.0.1:3000'
|
|
5
|
+
const TOKEN = process.env.AW_PAGE_TOKEN ?? ''
|
|
6
|
+
const H = { 'authorization': `Bearer ${TOKEN}`, 'content-type': 'application/json' }
|
|
7
|
+
const rand = Math.random().toString(36).slice(2, 6)
|
|
8
|
+
const jpost = (u, b) => fetch(BASE + u, { method: 'POST', headers: H, body: JSON.stringify(b ?? {}) }).then(r => r.json())
|
|
9
|
+
|
|
10
|
+
// 夹具:产线 + 数控节点(开跑需参数)+ 数采节点(正常量程 150~185,值 ~168)
|
|
11
|
+
const line = (await jpost('/api/workshop/dcw/lines', { name: `警告验证线-${rand}` })).data.line
|
|
12
|
+
const dcwNode = (await jpost('/api/workshop/dcw', { templateRef: 'dcw-temp-sp', name: `警告验证设定-${rand}`, lineId: line.id })).data.node
|
|
13
|
+
const daqNode = (await jpost('/api/workshop/daq', { templateRef: 'daq-temp-tc', name: `警告验证采集-${rand}`, lineId: line.id, intervalMs: 500 })).data.node
|
|
14
|
+
const product = (await jpost('/api/workshop/dcw/products', { lineId: line.id, name: `警告验证产品-${rand}` })).data.product
|
|
15
|
+
const recipe = (await jpost('/api/workshop/dcw/recipes', { productId: product.id, name: `警告验证配方-${rand}`, params: [{ nodeId: dcwNode.id, value: 175 }], daqWindows: [{ nodeId: daqNode.id, min: 178, max: 182 }] })).data.recipe
|
|
16
|
+
const start = await jpost(`/api/workshop/dcw/lines/${line.id}/start`, { recipeId: recipe.id })
|
|
17
|
+
console.log('fixture:', daqNode?.id ?? 'FAIL', '| lineStart:', start.code === 0 ? 'OK' : JSON.stringify(start).slice(0, 100))
|
|
18
|
+
|
|
19
|
+
const browser = await puppeteer.launch({
|
|
20
|
+
executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
|
|
21
|
+
headless: 'new',
|
|
22
|
+
args: ['--no-sandbox', '--disable-gpu', '--window-size=1920,1200'],
|
|
23
|
+
})
|
|
24
|
+
const page = await browser.newPage()
|
|
25
|
+
const errors = []
|
|
26
|
+
page.on('pageerror', e => errors.push(String(e).slice(0, 120)))
|
|
27
|
+
await page.setViewport({ width: 1920, height: 1200, deviceScaleFactor: 1 })
|
|
28
|
+
await page.setCookie({ name: 'token', value: TOKEN, domain: '127.0.0.1', path: '/' })
|
|
29
|
+
await page.goto(`${BASE}/daq`, { waitUntil: 'domcontentloaded', timeout: 90000 })
|
|
30
|
+
await new Promise(r => setTimeout(r, 9000))
|
|
31
|
+
|
|
32
|
+
let warn = null
|
|
33
|
+
for (let i = 0; i < 10; i++) {
|
|
34
|
+
warn = await page.evaluate(() => {
|
|
35
|
+
const el = document.querySelector('.live-warn')
|
|
36
|
+
return el ? el.textContent?.replace(/\s+/g, ' ').slice(0, 140) : null
|
|
37
|
+
})
|
|
38
|
+
if (warn) break
|
|
39
|
+
await new Promise(r => setTimeout(r, 1000))
|
|
40
|
+
}
|
|
41
|
+
console.log(`越限警告条: ${warn ? `PASS "${warn}"` : 'FAIL(未出现)'}`)
|
|
42
|
+
|
|
43
|
+
const redRow = await page.evaluate(() => !!document.querySelector('.row-recipe-alarm'))
|
|
44
|
+
console.log(`越限行标红: ${redRow ? 'PASS' : 'FAIL'}`)
|
|
45
|
+
|
|
46
|
+
await page.evaluate(() => document.querySelector('.live-warns')?.scrollIntoView({ block: 'center' }))
|
|
47
|
+
await new Promise(r => setTimeout(r, 400))
|
|
48
|
+
await page.screenshot({ path: 'docs/audit/screenshots/huashu-survey2/daq-warn.png' })
|
|
49
|
+
await browser.close()
|
|
50
|
+
console.log(errors.length ? `PAGE ERRORS:\n${errors.join('\n')}` : 'no page errors')
|