agentshire 1.0.0
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/CHANGELOG.md +36 -0
- package/LICENSE +21 -0
- package/README.md +437 -0
- package/README.zh-CN.md +441 -0
- package/ROADMAP.md +207 -0
- package/THIRD_PARTY_NOTICES.md +49 -0
- package/VISION.md +101 -0
- package/index.ts +386 -0
- package/openclaw.plugin.json +27 -0
- package/package.json +100 -0
- package/src/bridge/AGENTS.md +136 -0
- package/src/bridge/ActivityStream.ts +184 -0
- package/src/bridge/CitizenManager.ts +280 -0
- package/src/bridge/DirectorBridge.ts +1076 -0
- package/src/bridge/EventTranslator.ts +142 -0
- package/src/bridge/NpcEventQueue.ts +61 -0
- package/src/bridge/ReconnectManager.ts +42 -0
- package/src/bridge/RouteManager.ts +270 -0
- package/src/bridge/StateTracker.ts +100 -0
- package/src/bridge/ToolVfxMapper.ts +94 -0
- package/src/bridge/__tests__/ActivityStream.test.ts +156 -0
- package/src/bridge/__tests__/CitizenManager.test.ts +174 -0
- package/src/bridge/__tests__/EventTranslator.test.ts +292 -0
- package/src/bridge/__tests__/NpcEventQueue.test.ts +92 -0
- package/src/bridge/__tests__/RouteManager.test.ts +106 -0
- package/src/bridge/data/route-config.json +36 -0
- package/src/bridge/data/route-config.ts +19 -0
- package/src/bridge/implicit-chat.ts +192 -0
- package/src/bridge/index.ts +12 -0
- package/src/contracts/agent-state.ts +87 -0
- package/src/contracts/agui.ts +212 -0
- package/src/contracts/chat.ts +67 -0
- package/src/contracts/events.ts +170 -0
- package/src/contracts/index.ts +71 -0
- package/src/contracts/media.ts +77 -0
- package/src/contracts/registry.ts +32 -0
- package/src/plugin/AGENTS.md +192 -0
- package/src/plugin/__tests__/editor-serve-megapack.test.ts +150 -0
- package/src/plugin/__tests__/hook-translator.test.ts +197 -0
- package/src/plugin/auto-config.ts +131 -0
- package/src/plugin/channel.ts +399 -0
- package/src/plugin/chat-asset-resolver.ts +75 -0
- package/src/plugin/chat-session-watcher.ts +98 -0
- package/src/plugin/citizen-agent-manager.ts +178 -0
- package/src/plugin/citizen-chat-router.ts +83 -0
- package/src/plugin/citizen-workshop-manager.ts +96 -0
- package/src/plugin/custom-asset-manager.ts +250 -0
- package/src/plugin/editor-serve.ts +1368 -0
- package/src/plugin/group-discussion.ts +223 -0
- package/src/plugin/hook-translator.ts +202 -0
- package/src/plugin/llm-agent-proxy.ts +193 -0
- package/src/plugin/outbound-adapter.ts +187 -0
- package/src/plugin/paths.ts +33 -0
- package/src/plugin/plan-manager.ts +594 -0
- package/src/plugin/runtime.ts +9 -0
- package/src/plugin/session-history.ts +838 -0
- package/src/plugin/session-log-watcher.ts +221 -0
- package/src/plugin/soul-prompt-template.ts +290 -0
- package/src/plugin/subagent-tracker.ts +205 -0
- package/src/plugin/tools.ts +493 -0
- package/src/plugin/town-session.ts +40 -0
- package/src/plugin/ws-server.ts +680 -0
- package/src/town-souls.ts +134 -0
- package/town-frontend/dist/assets/CustomAssetStore-oi8aIurt.js +2 -0
- package/town-frontend/dist/assets/GLTFLoader-BA5RqSME.js +3804 -0
- package/town-frontend/dist/assets/OrbitControls-ZmySp9sQ.js +2 -0
- package/town-frontend/dist/assets/SettingsPanel-BO52reJe.js +2 -0
- package/town-frontend/dist/assets/SkeletonUtils-BCVmgslc.js +2 -0
- package/town-frontend/dist/assets/SkillLearnCard-Dk38iDpy.js +6 -0
- package/town-frontend/dist/assets/TopicSetupPanel-DLaLHB_Z.js +2 -0
- package/town-frontend/dist/assets/Trap-Bold-CT0JBE39.woff2 +0 -0
- package/town-frontend/dist/assets/Trap-SemiBold-R4_-Ld0j.woff2 +0 -0
- package/town-frontend/dist/assets/WeatherSystem-Cb3BvHes.js +550 -0
- package/town-frontend/dist/assets/avatars/char-female-a.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-female-b.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-female-c.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-female-d.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-female-e.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-female-f.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-male-a.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-male-b.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-male-c.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-male-d.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-male-e.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-male-f.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-beaver.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-bee.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-bunny.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-cat.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-caterpillar.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-chick.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-cow.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-crab.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-deer.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-dog.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-elephant.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-fish.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-fox.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-giraffe.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-hog.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-koala.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-lion.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-monkey.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-panda.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-parrot.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-penguin.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-pig.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-polar.webp +0 -0
- package/town-frontend/dist/assets/avatars/char-pet-tiger.webp +0 -0
- package/town-frontend/dist/assets/character-catalog-DSmLtlNC.js +2 -0
- package/town-frontend/dist/assets/citizenEditor-DubGSJOQ.js +296 -0
- package/town-frontend/dist/assets/command-parser-BUd15Bmv.js +12 -0
- package/town-frontend/dist/assets/editor-B5QO0OtX.js +258 -0
- package/town-frontend/dist/assets/editor-Bk8g1NCD.css +1 -0
- package/town-frontend/dist/assets/index-BWfrufil.js +2 -0
- package/town-frontend/dist/assets/index-faS20RJk.js +6 -0
- package/town-frontend/dist/assets/logo-DJI6EtST.png +0 -0
- package/town-frontend/dist/assets/logo-title-AdKPZX5E.png +0 -0
- package/town-frontend/dist/assets/main-CqsN43aT.js +224 -0
- package/town-frontend/dist/assets/main-D7neuy3w.css +1 -0
- package/town-frontend/dist/assets/models/buildings/base.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/base.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/bench.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/bench.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/box_A.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/box_A.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/box_B.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/box_B.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_A.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_A.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_A_withoutBase.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_A_withoutBase.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_B.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_B.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_B_withoutBase.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_B_withoutBase.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_C.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_C.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_C_withoutBase.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_C_withoutBase.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_D.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_D.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_D_withoutBase.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_D_withoutBase.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_E.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_E.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_E_withoutBase.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_E_withoutBase.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_F.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_F.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_F_withoutBase.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_F_withoutBase.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_G.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_G.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_G_withoutBase.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_G_withoutBase.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_H.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_H.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/building_H_withoutBase.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/building_H_withoutBase.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/bush.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/bush.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/car_hatchback.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/car_hatchback.gltf +442 -0
- package/town-frontend/dist/assets/models/buildings/car_police.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/car_police.gltf +442 -0
- package/town-frontend/dist/assets/models/buildings/car_sedan.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/car_sedan.gltf +442 -0
- package/town-frontend/dist/assets/models/buildings/car_stationwagon.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/car_stationwagon.gltf +442 -0
- package/town-frontend/dist/assets/models/buildings/car_taxi.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/car_taxi.gltf +442 -0
- package/town-frontend/dist/assets/models/buildings/citybits_texture.png +0 -0
- package/town-frontend/dist/assets/models/buildings/dumpster.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/dumpster.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/firehydrant.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/firehydrant.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/road_corner.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/road_corner.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/road_corner_curved.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/road_corner_curved.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/road_junction.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/road_junction.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/road_straight.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/road_straight.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/road_straight_crossing.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/road_straight_crossing.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/road_tsplit.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/road_tsplit.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/streetlight.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/streetlight.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/trafficlight_A.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/trafficlight_A.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/trafficlight_B.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/trafficlight_B.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/trafficlight_C.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/trafficlight_C.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/trash_A.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/trash_A.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/trash_B.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/trash_B.gltf +136 -0
- package/town-frontend/dist/assets/models/buildings/watertower.bin +0 -0
- package/town-frontend/dist/assets/models/buildings/watertower.gltf +136 -0
- package/town-frontend/dist/assets/models/characters/Textures/colormap.png +0 -0
- package/town-frontend/dist/assets/models/characters/character-female-a.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-female-b.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-female-c.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-female-d.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-female-e.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-female-f.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-male-a.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-male-b.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-male-c.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-male-d.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-male-e.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-male-f.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-beaver.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-bee.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-bunny.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-cat.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-caterpillar.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-chick.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-cow.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-crab.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-deer.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-dog.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-elephant.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-fish.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-fox.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-giraffe.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-hog.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-koala.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-lion.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-monkey.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-panda.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-parrot.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-penguin.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-pig.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-polar.glb +0 -0
- package/town-frontend/dist/assets/models/characters/character-pet-tiger.glb +0 -0
- package/town-frontend/dist/assets/models/characters/colormap.png +0 -0
- package/town-frontend/dist/assets/models/furniture/armchair.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/armchair.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/armchair_pillows.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/armchair_pillows.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/bed_double_A.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/bed_double_A.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/bed_double_B.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/bed_double_B.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/bed_single_A.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/bed_single_A.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/bed_single_B.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/bed_single_B.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/book_set.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/book_set.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/book_single.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/book_single.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/cabinet_medium.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/cabinet_medium.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/cabinet_medium_decorated.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/cabinet_medium_decorated.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/cabinet_small.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/cabinet_small.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/cabinet_small_decorated.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/cabinet_small_decorated.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/cactus_medium_A.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/cactus_medium_A.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/cactus_medium_B.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/cactus_medium_B.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/cactus_small_A.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/cactus_small_A.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/cactus_small_B.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/cactus_small_B.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/chair_A.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/chair_A.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/chair_A_wood.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/chair_A_wood.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/chair_B.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/chair_B.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/chair_B_wood.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/chair_B_wood.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/chair_C.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/chair_C.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/chair_stool.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/chair_stool.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/chair_stool_wood.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/chair_stool_wood.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/couch.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/couch.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/couch_pillows.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/couch_pillows.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/furniturebits_texture.png +0 -0
- package/town-frontend/dist/assets/models/furniture/lamp_standing.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/lamp_standing.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/lamp_table.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/lamp_table.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_large_A.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_large_A.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_large_B.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_large_B.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_medium.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_medium.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_small_A.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_small_A.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_small_B.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_small_B.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_small_C.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_small_C.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_standing_A.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_standing_A.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_standing_B.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/pictureframe_standing_B.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/pillow_A.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/pillow_A.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/pillow_B.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/pillow_B.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/rug_oval_A.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/rug_oval_A.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/rug_oval_B.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/rug_oval_B.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/rug_rectangle_A.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/rug_rectangle_A.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/rug_rectangle_B.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/rug_rectangle_B.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/rug_rectangle_stripes_A.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/rug_rectangle_stripes_A.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/rug_rectangle_stripes_B.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/rug_rectangle_stripes_B.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/shelf_A_big.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/shelf_A_big.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/shelf_A_small.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/shelf_A_small.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/shelf_B_large.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/shelf_B_large.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/shelf_B_large_decorated.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/shelf_B_large_decorated.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/shelf_B_small.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/shelf_B_small.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/shelf_B_small_decorated.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/shelf_B_small_decorated.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/table_low.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/table_low.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/table_medium.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/table_medium.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/table_medium_long.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/table_medium_long.gltf +136 -0
- package/town-frontend/dist/assets/models/furniture/table_small.bin +0 -0
- package/town-frontend/dist/assets/models/furniture/table_small.gltf +136 -0
- package/town-frontend/dist/assets/models/props/bench.bin +0 -0
- package/town-frontend/dist/assets/models/props/bench.gltf +136 -0
- package/town-frontend/dist/assets/models/props/bush.bin +0 -0
- package/town-frontend/dist/assets/models/props/bush.gltf +136 -0
- package/town-frontend/dist/assets/models/props/capybara.glb +0 -0
- package/town-frontend/dist/assets/models/props/car_hatchback.bin +0 -0
- package/town-frontend/dist/assets/models/props/car_hatchback.gltf +442 -0
- package/town-frontend/dist/assets/models/props/car_sedan.bin +0 -0
- package/town-frontend/dist/assets/models/props/car_sedan.gltf +442 -0
- package/town-frontend/dist/assets/models/props/car_taxi.bin +0 -0
- package/town-frontend/dist/assets/models/props/car_taxi.gltf +442 -0
- package/town-frontend/dist/assets/models/props/citybits_texture.png +0 -0
- package/town-frontend/dist/assets/models/props/dumpster.bin +0 -0
- package/town-frontend/dist/assets/models/props/dumpster.gltf +136 -0
- package/town-frontend/dist/assets/models/props/firehydrant.bin +0 -0
- package/town-frontend/dist/assets/models/props/firehydrant.gltf +136 -0
- package/town-frontend/dist/assets/models/props/streetlight.bin +0 -0
- package/town-frontend/dist/assets/models/props/streetlight.gltf +136 -0
- package/town-frontend/dist/assets/models/props/trafficlight_A.bin +0 -0
- package/town-frontend/dist/assets/models/props/trafficlight_A.gltf +136 -0
- package/town-frontend/dist/assets/models/props/trash_A.bin +0 -0
- package/town-frontend/dist/assets/models/props/trash_A.gltf +136 -0
- package/town-frontend/dist/assets/models/props/watertower.bin +0 -0
- package/town-frontend/dist/assets/models/props/watertower.gltf +136 -0
- package/town-frontend/dist/assets/models/stage-deco/Flowers_1_D.glb +0 -0
- package/town-frontend/dist/assets/models/stage-deco/Flowers_2_B.glb +0 -0
- package/town-frontend/dist/assets/models/stage-deco/Grass_A_1.glb +0 -0
- package/town-frontend/dist/assets/models/stage-deco/Park_GrassHill_A.glb +0 -0
- package/town-frontend/dist/assets/models/stage-deco/Pebles_1_A_2.glb +0 -0
- package/town-frontend/dist/assets/music/bgm_day.mp3 +0 -0
- package/town-frontend/dist/assets/music/bgm_dusk.mp3 +0 -0
- package/town-frontend/dist/assets/music/bgm_night.mp3 +0 -0
- package/town-frontend/dist/assets/music/bgm_work.mp3 +0 -0
- package/town-frontend/dist/assets/office-whiteboard-idle-CyEwBrq_.webp +0 -0
- package/town-frontend/dist/assets/preview-B6hYEQij.js +2 -0
- package/town-frontend/dist/assets/town-BKesnERP.js +8888 -0
- package/town-frontend/dist/assets/town-BnswKsjF.css +1 -0
- package/town-frontend/dist/citizen-editor.html +166 -0
- package/town-frontend/dist/editor.html +227 -0
- package/town-frontend/dist/index.html +22 -0
- package/town-frontend/dist/preview.html +56 -0
- package/town-frontend/dist/town.html +165 -0
- package/town-frontend/dist/viewer.html +91 -0
- package/town-souls/CHEN.md +130 -0
- package/town-souls/CHENGZI.md +92 -0
- package/town-souls/CITIZEN_tpl.md +16 -0
- package/town-souls/DIANDIAN.md +92 -0
- package/town-souls/HAITANG.md +94 -0
- package/town-souls/QIQI.md +119 -0
- package/town-souls/SOUL.md +141 -0
- package/town-souls/SOUL_tpl.md +135 -0
- package/town-souls/XIAOLIE.md +107 -0
- package/town-souls/YAN.md +107 -0
- package/town-workspace/IDENTITY.md +5 -0
- package/town-workspace/SOUL.md +141 -0
- package/town-workspace/project-workflow.md +81 -0
- package/town-workspace/town-defaults.json +92 -0
- package/town-workspace/town-guide.md +45 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{aa as Ve,V as u,ab as k,ac as S,q as Pe,ad as Te,o as m,ae as We,p as qe,n as Ge}from"./GLTFLoader-BA5RqSME.js";const Oe={type:"change"},J={type:"start"},we={type:"end"},X=new We,Me=new qe,Be=Math.cos(70*Ge.DEG2RAD);class et extends Ve{constructor(F,je){super(),this.object=F,this.domElement=je,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new u,this.cursor=new u,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:k.ROTATE,MIDDLE:k.DOLLY,RIGHT:k.PAN},this.touches={ONE:S.ROTATE,TWO:S.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return s.phi},this.getAzimuthalAngle=function(){return s.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(t){t.addEventListener("keydown",v),this._domElementKeyEvents=t},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener("keydown",v),this._domElementKeyEvents=null},this.saveState=function(){e.target0.copy(e.target),e.position0.copy(e.object.position),e.zoom0=e.object.zoom},this.reset=function(){e.target.copy(e.target0),e.object.position.copy(e.position0),e.object.zoom=e.zoom0,e.object.updateProjectionMatrix(),e.dispatchEvent(Oe),e.update(),r=a.NONE},this.update=function(){const t=new u,o=new Te().setFromUnitVectors(F.up,new u(0,1,0)),n=o.clone().invert(),i=new u,l=new Te,g=new u,d=2*Math.PI;return function(Fe=null){const ge=e.object.position;t.copy(ge).sub(e.target),t.applyQuaternion(o),s.setFromVector3(t),e.autoRotate&&r===a.NONE&&C(Ae(Fe)),e.enableDamping?(s.theta+=p.theta*e.dampingFactor,s.phi+=p.phi*e.dampingFactor):(s.theta+=p.theta,s.phi+=p.phi);let h=e.minAzimuthAngle,f=e.maxAzimuthAngle;isFinite(h)&&isFinite(f)&&(h<-Math.PI?h+=d:h>Math.PI&&(h-=d),f<-Math.PI?f+=d:f>Math.PI&&(f-=d),h<=f?s.theta=Math.max(h,Math.min(f,s.theta)):s.theta=s.theta>(h+f)/2?Math.max(h,s.theta):Math.min(f,s.theta)),s.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,s.phi)),s.makeSafe(),e.enableDamping===!0?e.target.addScaledVector(j,e.dampingFactor):e.target.add(j),e.target.sub(e.cursor),e.target.clampLength(e.minTargetRadius,e.maxTargetRadius),e.target.add(e.cursor);let z=!1;if(e.zoomToCursor&&K||e.object.isOrthographicCamera)s.radius=B(s.radius);else{const b=s.radius;s.radius=B(s.radius*E),z=b!=s.radius}if(t.setFromSpherical(s),t.applyQuaternion(n),ge.copy(e.target).add(t),e.object.lookAt(e.target),e.enableDamping===!0?(p.theta*=1-e.dampingFactor,p.phi*=1-e.dampingFactor,j.multiplyScalar(1-e.dampingFactor)):(p.set(0,0,0),j.set(0,0,0)),e.zoomToCursor&&K){let b=null;if(e.object.isPerspectiveCamera){const _=t.length();b=B(_*E);const Z=_-b;e.object.position.addScaledVector($,Z),e.object.updateMatrixWorld(),z=!!Z}else if(e.object.isOrthographicCamera){const _=new u(y.x,y.y,0);_.unproject(e.object);const Z=e.object.zoom;e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/E)),e.object.updateProjectionMatrix(),z=Z!==e.object.zoom;const Ee=new u(y.x,y.y,0);Ee.unproject(e.object),e.object.position.sub(Ee).add(_),e.object.updateMatrixWorld(),b=t.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),e.zoomToCursor=!1;b!==null&&(this.screenSpacePanning?e.target.set(0,0,-1).transformDirection(e.object.matrix).multiplyScalar(b).add(e.object.position):(X.origin.copy(e.object.position),X.direction.set(0,0,-1).transformDirection(e.object.matrix),Math.abs(e.object.up.dot(X.direction))<Be?F.lookAt(e.target):(Me.setFromNormalAndCoplanarPoint(e.object.up,e.target),X.intersectPlane(Me,e.target))))}else if(e.object.isOrthographicCamera){const b=e.object.zoom;e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/E)),b!==e.object.zoom&&(e.object.updateProjectionMatrix(),z=!0)}return E=1,K=!1,z||i.distanceToSquared(e.object.position)>V||8*(1-l.dot(e.object.quaternion))>V||g.distanceToSquared(e.target)>V?(e.dispatchEvent(Oe),i.copy(e.object.position),l.copy(e.object.quaternion),g.copy(e.target),!0):!1}}(),this.dispose=function(){e.domElement.removeEventListener("contextmenu",be),e.domElement.removeEventListener("pointerdown",de),e.domElement.removeEventListener("pointercancel",Y),e.domElement.removeEventListener("wheel",me),e.domElement.removeEventListener("pointermove",Q),e.domElement.removeEventListener("pointerup",Y),e.domElement.getRootNode().removeEventListener("keydown",pe,{capture:!0}),e._domElementKeyEvents!==null&&(e._domElementKeyEvents.removeEventListener("keydown",v),e._domElementKeyEvents=null)};const e=this,a={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let r=a.NONE;const V=1e-6,s=new Pe,p=new Pe;let E=1;const j=new u,P=new m,T=new m,A=new m,O=new m,w=new m,L=new m,D=new m,R=new m,M=new m,$=new u,y=new m;let K=!1;const c=[],I={};let W=!1;function Ae(t){return t!==null?2*Math.PI/60*e.autoRotateSpeed*t:2*Math.PI/60/60*e.autoRotateSpeed}function H(t){const o=Math.abs(t*.01);return Math.pow(.95,e.zoomSpeed*o)}function C(t){p.theta-=t}function U(t){p.phi-=t}const ee=function(){const t=new u;return function(n,i){t.setFromMatrixColumn(i,0),t.multiplyScalar(-n),j.add(t)}}(),te=function(){const t=new u;return function(n,i){e.screenSpacePanning===!0?t.setFromMatrixColumn(i,1):(t.setFromMatrixColumn(i,0),t.crossVectors(e.object.up,t)),t.multiplyScalar(n),j.add(t)}}(),x=function(){const t=new u;return function(n,i){const l=e.domElement;if(e.object.isPerspectiveCamera){const g=e.object.position;t.copy(g).sub(e.target);let d=t.length();d*=Math.tan(e.object.fov/2*Math.PI/180),ee(2*n*d/l.clientHeight,e.object.matrix),te(2*i*d/l.clientHeight,e.object.matrix)}else e.object.isOrthographicCamera?(ee(n*(e.object.right-e.object.left)/e.object.zoom/l.clientWidth,e.object.matrix),te(i*(e.object.top-e.object.bottom)/e.object.zoom/l.clientHeight,e.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1)}}();function q(t){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?E/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function oe(t){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?E*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function G(t,o){if(!e.zoomToCursor)return;K=!0;const n=e.domElement.getBoundingClientRect(),i=t-n.left,l=o-n.top,g=n.width,d=n.height;y.x=i/g*2-1,y.y=-(l/d)*2+1,$.set(y.x,y.y,1).unproject(e.object).sub(e.object.position).normalize()}function B(t){return Math.max(e.minDistance,Math.min(e.maxDistance,t))}function ne(t){P.set(t.clientX,t.clientY)}function Le(t){G(t.clientX,t.clientX),D.set(t.clientX,t.clientY)}function ae(t){O.set(t.clientX,t.clientY)}function De(t){T.set(t.clientX,t.clientY),A.subVectors(T,P).multiplyScalar(e.rotateSpeed);const o=e.domElement;C(2*Math.PI*A.x/o.clientHeight),U(2*Math.PI*A.y/o.clientHeight),P.copy(T),e.update()}function Re(t){R.set(t.clientX,t.clientY),M.subVectors(R,D),M.y>0?q(H(M.y)):M.y<0&&oe(H(M.y)),D.copy(R),e.update()}function xe(t){w.set(t.clientX,t.clientY),L.subVectors(w,O).multiplyScalar(e.panSpeed),x(L.x,L.y),O.copy(w),e.update()}function Ne(t){G(t.clientX,t.clientY),t.deltaY<0?oe(H(t.deltaY)):t.deltaY>0&&q(H(t.deltaY)),e.update()}function ke(t){let o=!1;switch(t.code){case e.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?U(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):x(0,e.keyPanSpeed),o=!0;break;case e.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?U(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):x(0,-e.keyPanSpeed),o=!0;break;case e.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?C(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):x(e.keyPanSpeed,0),o=!0;break;case e.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?C(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):x(-e.keyPanSpeed,0),o=!0;break}o&&(t.preventDefault(),e.update())}function ie(t){if(c.length===1)P.set(t.pageX,t.pageY);else{const o=N(t),n=.5*(t.pageX+o.x),i=.5*(t.pageY+o.y);P.set(n,i)}}function se(t){if(c.length===1)O.set(t.pageX,t.pageY);else{const o=N(t),n=.5*(t.pageX+o.x),i=.5*(t.pageY+o.y);O.set(n,i)}}function re(t){const o=N(t),n=t.pageX-o.x,i=t.pageY-o.y,l=Math.sqrt(n*n+i*i);D.set(0,l)}function Se(t){e.enableZoom&&re(t),e.enablePan&&se(t)}function Ie(t){e.enableZoom&&re(t),e.enableRotate&&ie(t)}function ce(t){if(c.length==1)T.set(t.pageX,t.pageY);else{const n=N(t),i=.5*(t.pageX+n.x),l=.5*(t.pageY+n.y);T.set(i,l)}A.subVectors(T,P).multiplyScalar(e.rotateSpeed);const o=e.domElement;C(2*Math.PI*A.x/o.clientHeight),U(2*Math.PI*A.y/o.clientHeight),P.copy(T)}function le(t){if(c.length===1)w.set(t.pageX,t.pageY);else{const o=N(t),n=.5*(t.pageX+o.x),i=.5*(t.pageY+o.y);w.set(n,i)}L.subVectors(w,O).multiplyScalar(e.panSpeed),x(L.x,L.y),O.copy(w)}function ue(t){const o=N(t),n=t.pageX-o.x,i=t.pageY-o.y,l=Math.sqrt(n*n+i*i);R.set(0,l),M.set(0,Math.pow(R.y/D.y,e.zoomSpeed)),q(M.y),D.copy(R);const g=(t.pageX+o.x)*.5,d=(t.pageY+o.y)*.5;G(g,d)}function Ce(t){e.enableZoom&&ue(t),e.enablePan&&le(t)}function Ye(t){e.enableZoom&&ue(t),e.enableRotate&&ce(t)}function de(t){e.enabled!==!1&&(c.length===0&&(e.domElement.setPointerCapture(t.pointerId),e.domElement.addEventListener("pointermove",Q),e.domElement.addEventListener("pointerup",Y)),!Xe(t)&&(Ue(t),t.pointerType==="touch"?fe(t):ze(t)))}function Q(t){e.enabled!==!1&&(t.pointerType==="touch"?He(t):_e(t))}function Y(t){switch(Ze(t),c.length){case 0:e.domElement.releasePointerCapture(t.pointerId),e.domElement.removeEventListener("pointermove",Q),e.domElement.removeEventListener("pointerup",Y),e.dispatchEvent(we),r=a.NONE;break;case 1:const o=c[0],n=I[o];fe({pointerId:o,pageX:n.x,pageY:n.y});break}}function ze(t){let o;switch(t.button){case 0:o=e.mouseButtons.LEFT;break;case 1:o=e.mouseButtons.MIDDLE;break;case 2:o=e.mouseButtons.RIGHT;break;default:o=-1}switch(o){case k.DOLLY:if(e.enableZoom===!1)return;Le(t),r=a.DOLLY;break;case k.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(e.enablePan===!1)return;ae(t),r=a.PAN}else{if(e.enableRotate===!1)return;ne(t),r=a.ROTATE}break;case k.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(e.enableRotate===!1)return;ne(t),r=a.ROTATE}else{if(e.enablePan===!1)return;ae(t),r=a.PAN}break;default:r=a.NONE}r!==a.NONE&&e.dispatchEvent(J)}function _e(t){switch(r){case a.ROTATE:if(e.enableRotate===!1)return;De(t);break;case a.DOLLY:if(e.enableZoom===!1)return;Re(t);break;case a.PAN:if(e.enablePan===!1)return;xe(t);break}}function me(t){e.enabled===!1||e.enableZoom===!1||r!==a.NONE||(t.preventDefault(),e.dispatchEvent(J),Ne(Ke(t)),e.dispatchEvent(we))}function Ke(t){const o=t.deltaMode,n={clientX:t.clientX,clientY:t.clientY,deltaY:t.deltaY};switch(o){case 1:n.deltaY*=16;break;case 2:n.deltaY*=100;break}return t.ctrlKey&&!W&&(n.deltaY*=10),n}function pe(t){t.key==="Control"&&(W=!0,e.domElement.getRootNode().addEventListener("keyup",he,{passive:!0,capture:!0}))}function he(t){t.key==="Control"&&(W=!1,e.domElement.getRootNode().removeEventListener("keyup",he,{passive:!0,capture:!0}))}function v(t){e.enabled===!1||e.enablePan===!1||ke(t)}function fe(t){switch(ye(t),c.length){case 1:switch(e.touches.ONE){case S.ROTATE:if(e.enableRotate===!1)return;ie(t),r=a.TOUCH_ROTATE;break;case S.PAN:if(e.enablePan===!1)return;se(t),r=a.TOUCH_PAN;break;default:r=a.NONE}break;case 2:switch(e.touches.TWO){case S.DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;Se(t),r=a.TOUCH_DOLLY_PAN;break;case S.DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Ie(t),r=a.TOUCH_DOLLY_ROTATE;break;default:r=a.NONE}break;default:r=a.NONE}r!==a.NONE&&e.dispatchEvent(J)}function He(t){switch(ye(t),r){case a.TOUCH_ROTATE:if(e.enableRotate===!1)return;ce(t),e.update();break;case a.TOUCH_PAN:if(e.enablePan===!1)return;le(t),e.update();break;case a.TOUCH_DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;Ce(t),e.update();break;case a.TOUCH_DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Ye(t),e.update();break;default:r=a.NONE}}function be(t){e.enabled!==!1&&t.preventDefault()}function Ue(t){c.push(t.pointerId)}function Ze(t){delete I[t.pointerId];for(let o=0;o<c.length;o++)if(c[o]==t.pointerId){c.splice(o,1);return}}function Xe(t){for(let o=0;o<c.length;o++)if(c[o]==t.pointerId)return!0;return!1}function ye(t){let o=I[t.pointerId];o===void 0&&(o=new m,I[t.pointerId]=o),o.set(t.pageX,t.pageY)}function N(t){const o=t.pointerId===c[0]?c[1]:c[0];return I[o]}e.domElement.addEventListener("contextmenu",be),e.domElement.addEventListener("pointerdown",de),e.domElement.addEventListener("pointercancel",Y),e.domElement.addEventListener("wheel",me,{passive:!1}),e.domElement.getRootNode().addEventListener("keydown",pe,{passive:!0,capture:!0}),this.update()}}export{et as O};
|
|
2
|
+
//# sourceMappingURL=OrbitControls-ZmySp9sQ.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as u}from"./index-BWfrufil.js";const C="agentshire_settings",x="#D4A574";function O(){try{const d=localStorage.getItem(C);if(d){const r=JSON.parse(d);return{language:r.language??"zh-CN",music:r.music!==!1,soulMode:r.soulMode!==!1}}}catch{}return{language:"zh-CN",music:!0,soulMode:!0}}function j(d){localStorage.setItem(C,JSON.stringify(d))}function z(d){if(document.getElementById("agentshire-settings-overlay"))return;const r=O(),o={...r};let g=!1;const l=document.createElement("div");l.id="agentshire-settings-overlay",Object.assign(l.style,{position:"fixed",inset:"0",zIndex:"75",display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.5)",backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)"});const c=document.createElement("div");Object.assign(c.style,{background:"rgba(30,30,30,0.96)",border:"1px solid rgba(255,255,255,0.1)",borderRadius:"20px",padding:"20px 24px",width:"320px",maxWidth:"90vw",boxShadow:"0 8px 32px rgba(0,0,0,0.4)",backdropFilter:"blur(10px)",WebkitBackdropFilter:"blur(10px)",color:"#eee"});const m=document.createElement("div");Object.assign(m.style,{fontSize:"16px",fontWeight:"700",marginBottom:"18px",color:"#fff"}),m.textContent=u("settings.title"),c.appendChild(m);const h=()=>{g=!0,s.style.opacity="1",s.style.cursor="pointer"},v=(t,a)=>{const e=document.createElement("div");Object.assign(e.style,{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 0",borderBottom:"1px solid rgba(255,255,255,0.06)"});const n=document.createElement("div");return Object.assign(n.style,{fontSize:"14px",color:"rgba(255,255,255,0.85)"}),n.textContent=t,e.appendChild(n),e.appendChild(a),e},S=(t,a)=>{let e=t;const n=document.createElement("button");Object.assign(n.style,{width:"44px",height:"24px",borderRadius:"12px",border:"none",cursor:"pointer",position:"relative",transition:"background 0.2s",background:e?x:"rgba(255,255,255,0.15)",flexShrink:"0"});const p=document.createElement("span");return Object.assign(p.style,{position:"absolute",top:"2px",width:"20px",height:"20px",borderRadius:"50%",background:"#fff",transition:"left 0.2s",left:e?"22px":"2px",boxShadow:"0 1px 3px rgba(0,0,0,0.3)"}),n.appendChild(p),n.addEventListener("click",()=>{e=!e,n.style.background=e?x:"rgba(255,255,255,0.15)",p.style.left=e?"22px":"2px",a(e)}),n},y=document.createElement("div");Object.assign(y.style,{display:"flex",borderRadius:"10px",overflow:"hidden",border:"1px solid rgba(255,255,255,0.12)",flexShrink:"0"});const w=[{value:"zh-CN",label:"中文"},{value:"en",label:"EN"}],k=[];for(const t of w){const a=document.createElement("button"),e=t.value===o.language;Object.assign(a.style,{padding:"4px 14px",fontSize:"13px",fontWeight:"500",border:"none",cursor:"pointer",transition:"background 0.15s, color 0.15s",background:e?x:"transparent",color:e?"#fff":"rgba(255,255,255,0.5)"}),a.textContent=t.label,a.addEventListener("click",()=>{o.language=t.value;for(const n of k){const p=n===a;n.style.background=p?x:"transparent",n.style.color=p?"#fff":"rgba(255,255,255,0.5)"}h()}),k.push(a),y.appendChild(a)}c.appendChild(v(u("settings.language"),y)),c.appendChild(v(u("settings.music"),S(o.music,t=>{o.music=t,h()})));const b=document.createElement("div");Object.assign(b.style,{display:"flex",gap:"10px",marginTop:"20px",paddingTop:"14px"});const i=document.createElement("button");Object.assign(i.style,{flex:"1",padding:"10px 0",borderRadius:"12px",border:"1px solid rgba(255,255,255,0.1)",background:"transparent",color:"rgba(255,255,255,0.6)",fontSize:"13px",fontWeight:"500",cursor:"pointer",transition:"background 0.15s"}),i.textContent=u("settings.cancel"),i.addEventListener("mouseenter",()=>{i.style.background="rgba(255,255,255,0.05)"}),i.addEventListener("mouseleave",()=>{i.style.background="transparent"}),i.addEventListener("click",f);const s=document.createElement("button");Object.assign(s.style,{flex:"1",padding:"10px 0",borderRadius:"12px",border:"none",background:"linear-gradient(135deg, #C4915E, #D4A574)",color:"#000",fontSize:"13px",fontWeight:"600",cursor:"default",opacity:"0.4",transition:"opacity 0.15s, filter 0.15s"}),s.textContent=u("settings.save"),s.addEventListener("mouseenter",()=>{g&&(s.style.filter="brightness(1.1)")}),s.addEventListener("mouseleave",()=>{g&&(s.style.filter="none")}),s.addEventListener("click",()=>{if(g){if(j(o),o.music!==r.music&&d.onMusicChange(o.music),o.soulMode!==r.soulMode&&d.onSoulModeChange(o.soulMode),o.language!==r.language){location.reload();return}f()}}),b.appendChild(i),b.appendChild(s),c.appendChild(b),l.appendChild(c),document.body.appendChild(l);function f(){l.remove(),document.removeEventListener("keydown",E)}function E(t){t.key==="Escape"&&f()}l.addEventListener("click",t=>{t.target===l&&f()}),document.addEventListener("keydown",E)}export{O as loadSettings,j as saveSettings,z as showSettingsPanel};
|
|
2
|
+
//# sourceMappingURL=SettingsPanel-BO52reJe.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function p(t){const s=new Map,c=new Map,e=t.clone();return i(t,e,function(o,n){s.set(n,o),c.set(o,n)}),e.traverse(function(o){if(!o.isSkinnedMesh)return;const n=o,r=s.get(o),l=r.skeleton.bones;n.skeleton=r.skeleton.clone(),n.bindMatrix.copy(r.bindMatrix),n.skeleton.bones=l.map(function(u){return c.get(u)}),n.bind(n.skeleton,n.bindMatrix)}),e}function i(t,s,c){c(t,s);for(let e=0;e<t.children.length;e++)i(t.children[e],s.children[e],c)}export{p as c};
|
|
2
|
+
//# sourceMappingURL=SkeletonUtils-BCVmgslc.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
var h=Object.defineProperty;var b=(s,e,t)=>e in s?h(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var y=(s,e,t)=>b(s,typeof e!="symbol"?e+"":e,t);import{i as f}from"./town-BKesnERP.js";import{g as p,t as u}from"./index-BWfrufil.js";import"./command-parser-BUd15Bmv.js";import"./GLTFLoader-BA5RqSME.js";import"./WeatherSystem-Cb3BvHes.js";import"./SkeletonUtils-BCVmgslc.js";import"./character-catalog-DSmLtlNC.js";const k="请先检查是否已安装 SkillHub 商店,若未安装,请根据 https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/skillhub.md 安装Skillhub商店,然后安装{slug}技能。若已安装,则直接安装{slug}技能。",v={dev:{label:"开发工具",gradient:["#667eea","#764ba2"]},ai:{label:"AI 智能",gradient:["#00d4ff","#0077b6"]},productivity:{label:"效率提升",gradient:["#11998e","#38ef7d"]},data:{label:"数据分析",gradient:["#f7971e","#ffd200"]},content:{label:"内容创作",gradient:["#f093fb","#f5576c"]},security:{label:"安全合规",gradient:["#eb3349","#f45c43"]},comms:{label:"通讯协作",gradient:["#a18cd1","#fbc2eb"]},search:{label:"搜索信息",gradient:["#4facfe","#00f2fe"]}},A=[{slug:"github",name:"Github",category:"dev",icon:"git-branch",desc:"通过 gh CLI 与 GitHub 进行高效交互,支持处理议题、拉取请求、CI 运行及执行高级查询。",downloads:58751,stars:198,installs:1132},{slug:"openai-whisper",name:"Openai Whisper",category:"ai",icon:"mic",desc:"本地语音转文本服务,通过 Whisper CLI 实现高质量离线语音识别,无需 API 密钥。",downloads:27271,stars:142,installs:703},{slug:"skill-vetter",name:"Skill Vetter",category:"security",icon:"shield-check",desc:"安全审查工具,支持 Skill 安装前的 Git/GitHub 安全检查。",downloads:10746,stars:48,installs:77},{slug:"gog",name:"Gog",category:"productivity",icon:"layout-grid",desc:"强大的谷歌工作区命令行工具,管理 Gmail、日历、云端硬盘、通讯录、表格和文档。",downloads:75474,stars:593,installs:1343},{slug:"tavily-search",name:"Tavily Web Search",category:"search",icon:"search",desc:"AI 优化网络搜索工具,专为 AI 代理设计,高效提供简洁且高度相关的搜索结果。",downloads:71799,stars:320,installs:663},{slug:"summarize",name:"Summarize",category:"productivity",icon:"file-text",desc:"高效总结网页、PDF、图片、音频和 YouTube 视频内容,快速获取信息。",downloads:62832,stars:295,installs:1281},{slug:"agent-browser",name:"Agent Browser",category:"dev",icon:"globe",desc:"基于 Rust 的无头浏览器自动化工具,支持网页导航、点击、输入及截图。",downloads:58645,stars:304,installs:668},{slug:"api-gateway",name:"API Gateway",category:"dev",icon:"plug",desc:"连接 Google Workspace、Microsoft 365、GitHub 等超过 100 个主流 API,提供托管式 OAuth 认证。",downloads:30376,stars:141,installs:79},{slug:"weather",name:"Weather",category:"search",icon:"cloud-sun",desc:"实时天气信息和未来天气预报,无需 API 密钥即可轻松查询。",downloads:49676,stars:170,installs:944},{slug:"n8n-workflow-automation",name:"n8n Workflow",category:"productivity",icon:"git-merge",desc:"n8n 工作流自动化集成,实现复杂任务的自动化编排。",downloads:12681,stars:63,installs:55},{slug:"notion",name:"Notion",category:"productivity",icon:"sticky-note",desc:"强大的 Notion API 接口,轻松创建、管理页面、数据库和内容块。",downloads:33926,stars:127,installs:767},{slug:"nano-pdf",name:"Nano Pdf",category:"productivity",icon:"file-type",desc:"通过自然语言指令轻松编辑 PDF 文件,提升文档处理效率。",downloads:31529,stars:76,installs:726},{slug:"nano-banana-pro",name:"Nano Banana Pro",category:"content",icon:"image",desc:"基于 Gemini 3 Pro Image 的图像生成与编辑工具,支持 1K/2K/4K 高清分辨率。",downloads:30600,stars:136,installs:698},{slug:"baidu-search",name:"Baidu Search",category:"search",icon:"earth",desc:"百度网络搜索集成,提供中文搜索结果。",downloads:18974,stars:35,installs:75},{slug:"larry",name:"Larry",category:"ai",icon:"bot",desc:"智能 AI 助手,提供对话式交互和任务辅助。",downloads:6670,stars:97,installs:14},{slug:"ai-ppt-generator",name:"AI PPT Generator",category:"content",icon:"presentation",desc:"AI 驱动的 PPT 自动生成工具,快速创建专业演示文稿。",downloads:9146,stars:8,installs:35},{slug:"mcporter",name:"Mcporter",category:"dev",icon:"package",desc:"MCP 工具迁移与管理,简化跨平台技能部署。",downloads:25605,stars:75,installs:742},{slug:"self-improving-agent",name:"Self-Improving Agent",category:"ai",icon:"brain",desc:"通过记录学习、错误和纠正,实现 AI 持续自我优化。",downloads:81094,stars:958,installs:873},{slug:"find-skills",name:"Find Skills",category:"dev",icon:"compass",desc:"帮助用户高效发现并安装所需的代理技能。",downloads:66562,stars:283,installs:523},{slug:"proactive-agent",name:"Proactive Agent",category:"ai",icon:"zap",desc:"将 AI 从任务执行者转变为主动伙伴,预判需求并持续改进。",downloads:46791,stars:307,installs:372},{slug:"obsidian",name:"Obsidian",category:"productivity",icon:"vault",desc:"管理 Obsidian 笔记库,处理 Markdown 格式笔记并实现自动化操作。",downloads:29140,stars:115,installs:691},{slug:"humanizer",name:"Humanizer",category:"content",icon:"pen-tool",desc:"消除文本中 AI 生成痕迹,使其更自然流畅。",downloads:27214,stars:251,installs:265},{slug:"free-ride",name:"Free Ride",category:"ai",icon:"infinity",desc:"为 OpenClaw 用户提供无限免费 AI 模型,智能管理 OpenRouter 模型。",downloads:25513,stars:179,installs:86},{slug:"brave-search",name:"Brave Search",category:"search",icon:"shield",desc:"通过 Brave Search API 进行隐私优先的网络搜索。",downloads:24006,stars:107,installs:252},{slug:"byterover",name:"ByteRover",category:"data",icon:"scan",desc:"高效数据采集与内容抓取工具。",downloads:22967,stars:70,installs:80},{slug:"auto-updater",name:"Auto-Updater",category:"dev",icon:"refresh-cw",desc:"每日自动更新 Clawdbot 及其所有已安装技能。",downloads:22942,stars:162,installs:303},{slug:"skill-creator",name:"Skill Creator",category:"dev",icon:"wrench",desc:"技能创建工具,辅助开发和发布新的 AI Skill。",downloads:20951,stars:74,installs:652},{slug:"clawddocs",name:"Clawdbot Docs",category:"dev",icon:"book-open",desc:"Clawdbot 文档专家,提供决策树导航、搜索脚本、文档获取。",downloads:20781,stars:207,installs:253},{slug:"youtube-watcher",name:"YouTube Watcher",category:"content",icon:"youtube",desc:"抓取并阅读 YouTube 视频字幕,快速总结视频内容。",downloads:20451,stars:154,installs:163},{slug:"stock-analysis",name:"Stock Analysis",category:"data",icon:"trending-up",desc:"股票市场分析工具,提供走势和数据解读。",downloads:20191,stars:106,installs:123},{slug:"youtube-api-skill",name:"YouTube API",category:"content",icon:"circle-play",desc:"YouTube API 集成,管理视频、播放列表和频道数据。",downloads:20171,stars:95,installs:43},{slug:"slack",name:"Slack",category:"comms",icon:"message-square",desc:"Slack 集成,支持消息发送、频道管理和工作流自动化。",downloads:19728,stars:77,installs:549},{slug:"frontend-design",name:"Frontend Design",category:"content",icon:"palette",desc:"创建独特、生产级的优质前端界面,生成富有创意的代码。",downloads:19293,stars:153,installs:184},{slug:"elite-longterm-memory",name:"Elite Memory",category:"ai",icon:"database",desc:"为 AI 提供长期记忆持久化存储与检索能力。",downloads:18609,stars:82,installs:109},{slug:"model-usage",name:"Model Usage",category:"data",icon:"chart-bar",desc:"追踪和分析 AI 模型的使用量和成本统计。",downloads:18457,stars:61,installs:700},{slug:"automation-workflows",name:"Automation Workflows",category:"productivity",icon:"workflow",desc:"构建和管理自动化工作流,连接多个服务和触发器。",downloads:18246,stars:73,installs:150},{slug:"trello",name:"Trello",category:"productivity",icon:"kanban",desc:"Trello 看板集成,管理任务、列表和卡片。",downloads:17478,stars:83,installs:536},{slug:"moltguard",name:"MoltGuard",category:"security",icon:"lock",desc:"OpenClaw 安全插件,提供运行时安全防护。",downloads:13065,stars:54,installs:38},{slug:"openclaw-github-assistant",name:"OpenClaw GitHub",category:"dev",icon:"git-pull-request",desc:"OpenClaw 的 GitHub 集成助手,简化开源协作流程。",downloads:4153,stars:0,installs:21},{slug:"sonoscli",name:"Sonoscli",category:"comms",icon:"speaker",desc:"发现和控制 Sonos 音箱,实现状态查询、音乐播放、音量调节。",downloads:43700,stars:29,installs:1086},{slug:"himalaya",name:"Himalaya",category:"comms",icon:"mail-open",desc:"命令行邮件客户端,支持多账户邮件管理。",downloads:20788,stars:37,installs:622},{slug:"lnbits-with-qrcode",name:"LNBits Wallet",category:"data",icon:"qr-code",desc:"Lightning Network 钱包集成,支持 QR Code 支付。",downloads:19078,stars:3,installs:3},{slug:"gmail",name:"Gmail",category:"comms",icon:"mail",desc:"Gmail 集成,管理邮件收发、标签和搜索。",downloads:18937,stars:48,installs:120},{slug:"blogwatcher",name:"Blogwatcher",category:"content",icon:"rss",desc:"监控博客更新,自动追踪感兴趣的内容源。",downloads:18175,stars:25,installs:582},{slug:"video-frames",name:"Video Frames",category:"content",icon:"film",desc:"视频帧提取工具,支持关键帧截取和分析。",downloads:17634,stars:49,installs:573},{slug:"outlook-api",name:"Outlook",category:"comms",icon:"inbox",desc:"Microsoft Outlook API 集成,管理邮件和日历。",downloads:17505,stars:25,installs:20},{slug:"stripe-api",name:"Stripe",category:"data",icon:"credit-card",desc:"Stripe 支付 API 集成,管理支付、订阅和发票。",downloads:17320,stars:22,installs:11},{slug:"ui-ux-pro-max",name:"UI/UX Pro Max",category:"content",icon:"layout-template",desc:"专业 UI/UX 设计智能辅助,50 种风格、21 种配色方案。",downloads:10658,stars:50,installs:67},{slug:"memory-manager",name:"Memory Manager",category:"ai",icon:"hard-drive",desc:"AI 记忆管理工具,组织和检索对话历史与知识。",downloads:9341,stars:41,installs:63},{slug:"humanizer-zh",name:"Humanizer 中文",category:"content",icon:"type",desc:"中文文本人性化处理,消除 AI 生成痕迹。",downloads:2981,stars:0,installs:15}],I={installCmdTemplate:k,categories:v,skills:A},C="First check if SkillHub store is installed. If not, follow https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/skillhub.md to install SkillHub, then install the {slug} skill. If already installed, directly install the {slug} skill.",S={dev:{label:"Dev Tools",gradient:["#667eea","#764ba2"]},ai:{label:"AI",gradient:["#00d4ff","#0077b6"]},productivity:{label:"Productivity",gradient:["#11998e","#38ef7d"]},data:{label:"Data & Analytics",gradient:["#f7971e","#ffd200"]},content:{label:"Content",gradient:["#f093fb","#f5576c"]},security:{label:"Security",gradient:["#eb3349","#f45c43"]},comms:{label:"Communication",gradient:["#a18cd1","#fbc2eb"]},search:{label:"Search",gradient:["#4facfe","#00f2fe"]}},P=[{slug:"github",name:"Github",category:"dev",icon:"git-branch",desc:"Interact with GitHub via gh CLI — manage issues, PRs, CI runs, and advanced queries.",downloads:58751,stars:198,installs:1132},{slug:"openai-whisper",name:"Openai Whisper",category:"ai",icon:"mic",desc:"Local speech-to-text via Whisper CLI — high-quality offline recognition, no API key needed.",downloads:27271,stars:142,installs:703},{slug:"skill-vetter",name:"Skill Vetter",category:"security",icon:"shield-check",desc:"Security review tool with Git/GitHub safety checks before skill installation.",downloads:10746,stars:48,installs:77},{slug:"gog",name:"Gog",category:"productivity",icon:"layout-grid",desc:"Powerful Google Workspace CLI — manage Gmail, Calendar, Drive, Contacts, Sheets, and Docs.",downloads:75474,stars:593,installs:1343},{slug:"tavily-search",name:"Tavily Web Search",category:"search",icon:"search",desc:"AI-optimized web search designed for AI agents — concise, highly relevant results.",downloads:71799,stars:320,installs:663},{slug:"summarize",name:"Summarize",category:"productivity",icon:"file-text",desc:"Summarize web pages, PDFs, images, audio, and YouTube videos quickly.",downloads:62832,stars:295,installs:1281},{slug:"agent-browser",name:"Agent Browser",category:"dev",icon:"globe",desc:"Rust-based headless browser automation — navigate, click, type, and take screenshots.",downloads:58645,stars:304,installs:668},{slug:"api-gateway",name:"API Gateway",category:"dev",icon:"plug",desc:"Connect 100+ APIs including Google Workspace, Microsoft 365, and GitHub with managed OAuth.",downloads:30376,stars:141,installs:79},{slug:"weather",name:"Weather",category:"search",icon:"cloud-sun",desc:"Real-time weather info and forecasts — no API key required.",downloads:49676,stars:170,installs:944},{slug:"n8n-workflow-automation",name:"n8n Workflow",category:"productivity",icon:"git-merge",desc:"n8n workflow automation integration for orchestrating complex tasks.",downloads:12681,stars:63,installs:55},{slug:"notion",name:"Notion",category:"productivity",icon:"sticky-note",desc:"Notion API integration — create and manage pages, databases, and content blocks.",downloads:33926,stars:127,installs:767},{slug:"nano-pdf",name:"Nano Pdf",category:"productivity",icon:"file-type",desc:"Edit PDF files using natural language instructions.",downloads:31529,stars:76,installs:726},{slug:"nano-banana-pro",name:"Nano Banana Pro",category:"content",icon:"image",desc:"Image generation and editing powered by Gemini 3 Pro Image — supports 1K/2K/4K.",downloads:30600,stars:136,installs:698},{slug:"baidu-search",name:"Baidu Search",category:"search",icon:"earth",desc:"Baidu web search integration for Chinese-language results.",downloads:18974,stars:35,installs:75},{slug:"larry",name:"Larry",category:"ai",icon:"bot",desc:"Smart AI assistant with conversational interaction and task support.",downloads:6670,stars:97,installs:14},{slug:"ai-ppt-generator",name:"AI PPT Generator",category:"content",icon:"presentation",desc:"AI-powered automatic PPT generator for professional presentations.",downloads:9146,stars:8,installs:35},{slug:"mcporter",name:"Mcporter",category:"dev",icon:"package",desc:"MCP tool migration and management — simplify cross-platform skill deployment.",downloads:25605,stars:75,installs:742},{slug:"self-improving-agent",name:"Self-Improving Agent",category:"ai",icon:"brain",desc:"Continuous AI self-improvement through learning, error tracking, and correction.",downloads:81094,stars:958,installs:873},{slug:"find-skills",name:"Find Skills",category:"dev",icon:"compass",desc:"Discover and install the agent skills you need.",downloads:66562,stars:283,installs:523},{slug:"proactive-agent",name:"Proactive Agent",category:"ai",icon:"zap",desc:"Transform AI from task executor to proactive partner — anticipate needs and improve continuously.",downloads:46791,stars:307,installs:372},{slug:"obsidian",name:"Obsidian",category:"productivity",icon:"vault",desc:"Manage your Obsidian vault — handle Markdown notes and automate operations.",downloads:29140,stars:115,installs:691},{slug:"humanizer",name:"Humanizer",category:"content",icon:"pen-tool",desc:"Remove AI-generated traces from text, making it more natural and fluent.",downloads:27214,stars:251,installs:265},{slug:"free-ride",name:"Free Ride",category:"ai",icon:"infinity",desc:"Unlimited free AI models for OpenClaw users — smart OpenRouter model management.",downloads:25513,stars:179,installs:86},{slug:"brave-search",name:"Brave Search",category:"search",icon:"shield",desc:"Privacy-first web search via the Brave Search API.",downloads:24006,stars:107,installs:252},{slug:"byterover",name:"ByteRover",category:"data",icon:"scan",desc:"Efficient data collection and content scraping tool.",downloads:22967,stars:70,installs:80},{slug:"auto-updater",name:"Auto-Updater",category:"dev",icon:"refresh-cw",desc:"Daily auto-update for Clawdbot and all installed skills.",downloads:22942,stars:162,installs:303},{slug:"skill-creator",name:"Skill Creator",category:"dev",icon:"wrench",desc:"Skill creation tool for developing and publishing new AI skills.",downloads:20951,stars:74,installs:652},{slug:"clawddocs",name:"Clawdbot Docs",category:"dev",icon:"book-open",desc:"Clawdbot documentation expert — decision tree navigation, search scripts, and doc fetching.",downloads:20781,stars:207,installs:253},{slug:"youtube-watcher",name:"YouTube Watcher",category:"content",icon:"youtube",desc:"Fetch and read YouTube video subtitles for quick video summaries.",downloads:20451,stars:154,installs:163},{slug:"stock-analysis",name:"Stock Analysis",category:"data",icon:"trending-up",desc:"Stock market analysis tool with trend and data interpretation.",downloads:20191,stars:106,installs:123},{slug:"youtube-api-skill",name:"YouTube API",category:"content",icon:"circle-play",desc:"YouTube API integration — manage videos, playlists, and channel data.",downloads:20171,stars:95,installs:43},{slug:"slack",name:"Slack",category:"comms",icon:"message-square",desc:"Slack integration — send messages, manage channels, and automate workflows.",downloads:19728,stars:77,installs:549},{slug:"frontend-design",name:"Frontend Design",category:"content",icon:"palette",desc:"Create unique, production-grade frontend interfaces with creative code.",downloads:19293,stars:153,installs:184},{slug:"elite-longterm-memory",name:"Elite Memory",category:"ai",icon:"database",desc:"Persistent long-term memory storage and retrieval for AI.",downloads:18609,stars:82,installs:109},{slug:"model-usage",name:"Model Usage",category:"data",icon:"chart-bar",desc:"Track and analyze AI model usage and cost statistics.",downloads:18457,stars:61,installs:700},{slug:"automation-workflows",name:"Automation Workflows",category:"productivity",icon:"workflow",desc:"Build and manage automation workflows connecting multiple services and triggers.",downloads:18246,stars:73,installs:150},{slug:"trello",name:"Trello",category:"productivity",icon:"kanban",desc:"Trello board integration — manage tasks, lists, and cards.",downloads:17478,stars:83,installs:536},{slug:"moltguard",name:"MoltGuard",category:"security",icon:"lock",desc:"OpenClaw security plugin with runtime protection.",downloads:13065,stars:54,installs:38},{slug:"openclaw-github-assistant",name:"OpenClaw GitHub",category:"dev",icon:"git-pull-request",desc:"OpenClaw GitHub integration assistant — streamline open-source collaboration.",downloads:4153,stars:0,installs:21},{slug:"sonoscli",name:"Sonoscli",category:"comms",icon:"speaker",desc:"Discover and control Sonos speakers — query status, play music, adjust volume.",downloads:43700,stars:29,installs:1086},{slug:"himalaya",name:"Himalaya",category:"comms",icon:"mail-open",desc:"CLI email client with multi-account mail management.",downloads:20788,stars:37,installs:622},{slug:"lnbits-with-qrcode",name:"LNBits Wallet",category:"data",icon:"qr-code",desc:"Lightning Network wallet integration with QR code payments.",downloads:19078,stars:3,installs:3},{slug:"gmail",name:"Gmail",category:"comms",icon:"mail",desc:"Gmail integration — manage emails, labels, and search.",downloads:18937,stars:48,installs:120},{slug:"blogwatcher",name:"Blogwatcher",category:"content",icon:"rss",desc:"Monitor blog updates and automatically track content sources.",downloads:18175,stars:25,installs:582},{slug:"video-frames",name:"Video Frames",category:"content",icon:"film",desc:"Video frame extraction tool — capture and analyze keyframes.",downloads:17634,stars:49,installs:573},{slug:"outlook-api",name:"Outlook",category:"comms",icon:"inbox",desc:"Microsoft Outlook API integration — manage email and calendar.",downloads:17505,stars:25,installs:20},{slug:"stripe-api",name:"Stripe",category:"data",icon:"credit-card",desc:"Stripe payment API integration — manage payments, subscriptions, and invoices.",downloads:17320,stars:22,installs:11},{slug:"ui-ux-pro-max",name:"UI/UX Pro Max",category:"content",icon:"layout-template",desc:"Professional UI/UX design assistant — 50 styles, 21 color palettes.",downloads:10658,stars:50,installs:67},{slug:"memory-manager",name:"Memory Manager",category:"ai",icon:"hard-drive",desc:"AI memory management — organize and retrieve conversation history and knowledge.",downloads:9341,stars:41,installs:63},{slug:"humanizer-zh",name:"Humanizer 中文",category:"content",icon:"type",desc:"Chinese text humanization — remove AI-generated traces.",downloads:2981,stars:0,installs:15}],x={installCmdTemplate:C,categories:S,skills:P};function M(){return p()==="en"?x:I}const c={locale:"",categories:{},skills:[],skillMap:new Map};function m(){const s=p();if(c.locale===s)return c;c.locale=s;const e=M();c.categories=e.categories,c.skills=e.skills,c.skillMap=new Map;for(const t of c.skills)c.skillMap.set(t.slug,t);return c}function G(s){return m().skillMap.get(s)}function T(s){return s.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join("")}function O(s,e=24,t="#fff"){const n=T(s),o=f[n];if(!o)return null;const r="http://www.w3.org/2000/svg",a=document.createElementNS(r,"svg");a.setAttribute("xmlns",r),a.setAttribute("width",String(e)),a.setAttribute("height",String(e)),a.setAttribute("viewBox","0 0 24 24"),a.setAttribute("fill","none"),a.setAttribute("stroke",t),a.setAttribute("stroke-width","2"),a.setAttribute("stroke-linecap","round"),a.setAttribute("stroke-linejoin","round");for(const[g,d]of o){const l=document.createElementNS(r,g);for(const[i,w]of Object.entries(d))l.setAttribute(i,w);a.appendChild(l)}return a}function z(s,e=48){const t=m().skillMap.get(s),n=document.createElement("div"),o=Math.round(e*.5),r=Math.round(e*.22);if(n.style.cssText=`
|
|
2
|
+
width: ${e}px; height: ${e}px; border-radius: ${r}px;
|
|
3
|
+
display: flex; align-items: center; justify-content: center;
|
|
4
|
+
flex-shrink: 0;
|
|
5
|
+
`,t){const a=m().categories[t.category],[g,d]=(a==null?void 0:a.gradient)??["#667eea","#764ba2"];n.style.background=`linear-gradient(135deg, ${g}, ${d})`;const l=O(t.icon,o);if(l)n.appendChild(l);else{const i=document.createElement("span");i.textContent=t.name.charAt(0).toUpperCase(),i.style.cssText=`color: #fff; font-weight: 700; font-size: ${o}px; line-height: 1;`,n.appendChild(i)}}else{n.style.background="linear-gradient(135deg, #667eea, #764ba2)";const a=document.createElement("span");a.textContent="?",a.style.cssText=`color: #fff; font-weight: 700; font-size: ${o}px; line-height: 1;`,n.appendChild(a)}return n}class F{constructor(){y(this,"overlay");this.overlay=document.createElement("div"),Object.assign(this.overlay.style,{position:"fixed",top:"0",left:"0",width:"100%",height:"100%",zIndex:"500",background:"rgba(0,0,0,0.7)",backdropFilter:"blur(8px)",display:"none",justifyContent:"center",alignItems:"center"}),document.body.appendChild(this.overlay)}show(e,t){const n=G(e);if(!n)return;this.overlay.innerHTML="";const o=document.createElement("div");o.className="gp-card";const r=document.createElement("div");r.className="gp-title",r.textContent=u("skill.new_skill");const a=document.createElement("div");Object.assign(a.style,{display:"flex",flexDirection:"column",alignItems:"center",gap:"12px",marginBottom:"24px"});const g=z(e,72);g.style.boxShadow="0 8px 24px rgba(0,0,0,0.5)",a.appendChild(g);const d=document.createElement("div");Object.assign(d.style,{color:"#fff",fontSize:"16px",fontWeight:"600",letterSpacing:"1px"}),d.textContent=n.name,a.appendChild(d);const l=document.createElement("button");l.className="gp-play-btn",l.textContent=u("skill.learn_now"),l.addEventListener("click",()=>{this.hide(),t(e)});const i=document.createElement("button");i.className="gp-later",i.textContent=u("skill.learn_later"),i.addEventListener("click",()=>this.hide()),o.append(r,a,l,i),this.overlay.appendChild(o),this.overlay.style.display="flex",this.overlay.style.animation="gp-fadeIn 0.4s ease both"}hide(){this.overlay.style.display="none"}}export{F as SkillLearnCard};
|
|
6
|
+
//# sourceMappingURL=SkillLearnCard-Dk38iDpy.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as L}from"./town-BKesnERP.js";import{t as l}from"./index-BWfrufil.js";import"./command-parser-BUd15Bmv.js";import"./GLTFLoader-BA5RqSME.js";import"./WeatherSystem-Cb3BvHes.js";import"./SkeletonUtils-BCVmgslc.js";import"./character-catalog-DSmLtlNC.js";function M(s,b){return new Promise(r=>{if(s.length===0){r(null);return}const a=new Set,C=new Map,c=document.createElement("div");c.id="town-topic-overlay";const o=document.createElement("div");o.className="topic-card";const p=document.createElement("div");p.className="topic-card-title",p.textContent=l("topic.title"),o.appendChild(p);const m=document.createElement("div");m.className="topic-card-sub",m.textContent=l("topic.subtitle"),o.appendChild(m);const u=document.createElement("div");u.className="topic-citizen-list";const i=document.createElement("button");i.className="topic-gather-btn",i.textContent=l("topic.gather"),i.disabled=!0;const E=()=>{i.disabled=a.size<2,i.textContent=a.size>0?l("topic.gather_n",{n:String(a.size)}):l("topic.gather")},g=(t,e)=>{e.classList.contains("unavailable")||(a.has(t.id)?(a.delete(t.id),e.classList.remove("selected")):(a.add(t.id),e.classList.add("selected")),E())};for(const t of s){const e=t.spawned!==!1,n=document.createElement("div");n.className="topic-citizen-row"+(e?"":" unavailable"),e||n.setAttribute("data-tooltip",l("topic.not_in_town")),C.set(t.id,n);const d=document.createElement("span");d.className="topic-citizen-check",d.innerHTML='<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#050508" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>',n.appendChild(d);const k=L("tas-avatar",{id:t.id,name:t.name,color:t.color,characterKey:t.characterKey,avatarUrl:t.avatarUrl},28);n.appendChild(k);const h=document.createElement("span");if(h.className="topic-citizen-name",h.textContent=t.name,n.appendChild(h),t.specialty){const f=document.createElement("span");f.className="topic-citizen-spec",f.textContent=t.specialty,n.appendChild(f)}n.addEventListener("click",()=>g(t,n)),u.appendChild(n)}o.appendChild(u),o.appendChild(i),c.appendChild(o),document.body.appendChild(c);let v=null;b&&(v=setInterval(()=>{for(const t of s){const e=C.get(t.id);if(!e)continue;const n=b(t.id);e.classList.contains("unavailable")&&n&&(e.classList.remove("unavailable"),e.removeAttribute("data-tooltip"))}},2e3));const w=()=>{v&&clearInterval(v),c.remove()};c.addEventListener("click",t=>{t.target===c&&(w(),r(null))}),i.addEventListener("click",()=>{const t=s.filter(e=>a.has(e.id));w(),r({citizens:t})})})}export{M as showTopicSetupPanel};
|
|
2
|
+
//# sourceMappingURL=TopicSetupPanel-DLaLHB_Z.js.map
|
|
Binary file
|
|
Binary file
|