agenticros 0.0.1 → 0.1.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.
Files changed (330) hide show
  1. package/LICENSE +192 -0
  2. package/README.md +90 -4
  3. package/dist/commands/config.d.ts +20 -0
  4. package/dist/commands/config.d.ts.map +1 -0
  5. package/dist/commands/config.js +179 -0
  6. package/dist/commands/config.js.map +1 -0
  7. package/dist/commands/doctor.d.ts +33 -0
  8. package/dist/commands/doctor.d.ts.map +1 -0
  9. package/dist/commands/doctor.js +232 -0
  10. package/dist/commands/doctor.js.map +1 -0
  11. package/dist/commands/down.d.ts +15 -0
  12. package/dist/commands/down.d.ts.map +1 -0
  13. package/dist/commands/down.js +91 -0
  14. package/dist/commands/down.js.map +1 -0
  15. package/dist/commands/init.d.ts +21 -0
  16. package/dist/commands/init.d.ts.map +1 -0
  17. package/dist/commands/init.js +259 -0
  18. package/dist/commands/init.js.map +1 -0
  19. package/dist/commands/logs.d.ts +18 -0
  20. package/dist/commands/logs.d.ts.map +1 -0
  21. package/dist/commands/logs.js +67 -0
  22. package/dist/commands/logs.js.map +1 -0
  23. package/dist/commands/status.d.ts +12 -0
  24. package/dist/commands/status.d.ts.map +1 -0
  25. package/dist/commands/status.js +56 -0
  26. package/dist/commands/status.js.map +1 -0
  27. package/dist/commands/up.d.ts +20 -0
  28. package/dist/commands/up.d.ts.map +1 -0
  29. package/dist/commands/up.js +70 -0
  30. package/dist/commands/up.js.map +1 -0
  31. package/dist/index.d.ts +12 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +107 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/menu.d.ts +9 -0
  36. package/dist/menu.d.ts.map +1 -0
  37. package/dist/menu.js +96 -0
  38. package/dist/menu.js.map +1 -0
  39. package/dist/runners/real-robot.d.ts +15 -0
  40. package/dist/runners/real-robot.d.ts.map +1 -0
  41. package/dist/runners/real-robot.js +46 -0
  42. package/dist/runners/real-robot.js.map +1 -0
  43. package/dist/runners/sim.d.ts +19 -0
  44. package/dist/runners/sim.d.ts.map +1 -0
  45. package/dist/runners/sim.js +53 -0
  46. package/dist/runners/sim.js.map +1 -0
  47. package/dist/util/env.d.ts +24 -0
  48. package/dist/util/env.d.ts.map +1 -0
  49. package/dist/util/env.js +53 -0
  50. package/dist/util/env.js.map +1 -0
  51. package/dist/util/logger.d.ts +24 -0
  52. package/dist/util/logger.d.ts.map +1 -0
  53. package/dist/util/logger.js +62 -0
  54. package/dist/util/logger.js.map +1 -0
  55. package/dist/util/paths.d.ts +57 -0
  56. package/dist/util/paths.d.ts.map +1 -0
  57. package/dist/util/paths.js +132 -0
  58. package/dist/util/paths.js.map +1 -0
  59. package/dist/util/pidfile.d.ts +16 -0
  60. package/dist/util/pidfile.d.ts.map +1 -0
  61. package/dist/util/pidfile.js +63 -0
  62. package/dist/util/pidfile.js.map +1 -0
  63. package/dist/util/state.d.ts +26 -0
  64. package/dist/util/state.d.ts.map +1 -0
  65. package/dist/util/state.js +55 -0
  66. package/dist/util/state.js.map +1 -0
  67. package/package.json +60 -1
  68. package/runtime/BUNDLE.json +11 -0
  69. package/runtime/LICENSE +192 -0
  70. package/runtime/README.md +273 -0
  71. package/runtime/docs/architecture.md +366 -0
  72. package/runtime/docs/cli.md +140 -0
  73. package/runtime/docs/memory.md +292 -0
  74. package/runtime/docs/robot-setup.md +347 -0
  75. package/runtime/package.json +28 -0
  76. package/runtime/packages/agenticros/agenticros-agenticros-0.0.1.tgz +0 -0
  77. package/runtime/packages/agenticros/openclaw.plugin.json +451 -0
  78. package/runtime/packages/agenticros/package.json +41 -0
  79. package/runtime/packages/agenticros/src/camera-snapshot-cache.ts +59 -0
  80. package/runtime/packages/agenticros/src/camera-snapshot-routes.ts +44 -0
  81. package/runtime/packages/agenticros/src/commands/estop.ts +41 -0
  82. package/runtime/packages/agenticros/src/commands/transport.ts +195 -0
  83. package/runtime/packages/agenticros/src/config-file.ts +136 -0
  84. package/runtime/packages/agenticros/src/config-page.ts +498 -0
  85. package/runtime/packages/agenticros/src/context/robot-context.ts +373 -0
  86. package/runtime/packages/agenticros/src/depth.ts +313 -0
  87. package/runtime/packages/agenticros/src/describer.ts +157 -0
  88. package/runtime/packages/agenticros/src/image-binary-trim.ts +16 -0
  89. package/runtime/packages/agenticros/src/index.ts +85 -0
  90. package/runtime/packages/agenticros/src/landing-page.ts +38 -0
  91. package/runtime/packages/agenticros/src/memory.ts +44 -0
  92. package/runtime/packages/agenticros/src/plugin-api.ts +173 -0
  93. package/runtime/packages/agenticros/src/plugin-image-base64.ts +69 -0
  94. package/runtime/packages/agenticros/src/preflight.ts +110 -0
  95. package/runtime/packages/agenticros/src/routes.ts +328 -0
  96. package/runtime/packages/agenticros/src/safety/validator.ts +43 -0
  97. package/runtime/packages/agenticros/src/service.ts +359 -0
  98. package/runtime/packages/agenticros/src/skill-api.ts +65 -0
  99. package/runtime/packages/agenticros/src/skill-loader.ts +146 -0
  100. package/runtime/packages/agenticros/src/teleop/page.ts +498 -0
  101. package/runtime/packages/agenticros/src/teleop/routes.ts +650 -0
  102. package/runtime/packages/agenticros/src/tools/index.ts +26 -0
  103. package/runtime/packages/agenticros/src/tools/ros2-action.ts +50 -0
  104. package/runtime/packages/agenticros/src/tools/ros2-camera.ts +221 -0
  105. package/runtime/packages/agenticros/src/tools/ros2-depth-distance.ts +58 -0
  106. package/runtime/packages/agenticros/src/tools/ros2-introspect.ts +62 -0
  107. package/runtime/packages/agenticros/src/tools/ros2-memory.ts +158 -0
  108. package/runtime/packages/agenticros/src/tools/ros2-param.ts +87 -0
  109. package/runtime/packages/agenticros/src/tools/ros2-publish.ts +52 -0
  110. package/runtime/packages/agenticros/src/tools/ros2-service.ts +46 -0
  111. package/runtime/packages/agenticros/src/tools/ros2-subscribe.ts +71 -0
  112. package/runtime/packages/agenticros/tsconfig.json +9 -0
  113. package/runtime/packages/agenticros-claude-code/README.md +260 -0
  114. package/runtime/packages/agenticros-claude-code/config.example.json +9 -0
  115. package/runtime/packages/agenticros-claude-code/dist/config.d.ts +8 -0
  116. package/runtime/packages/agenticros-claude-code/dist/config.d.ts.map +1 -0
  117. package/runtime/packages/agenticros-claude-code/dist/config.js +93 -0
  118. package/runtime/packages/agenticros-claude-code/dist/config.js.map +1 -0
  119. package/runtime/packages/agenticros-claude-code/dist/depth.d.ts +20 -0
  120. package/runtime/packages/agenticros-claude-code/dist/depth.d.ts.map +1 -0
  121. package/runtime/packages/agenticros-claude-code/dist/depth.js +126 -0
  122. package/runtime/packages/agenticros-claude-code/dist/depth.js.map +1 -0
  123. package/runtime/packages/agenticros-claude-code/dist/find-object/coco-classes.d.ts +6 -0
  124. package/runtime/packages/agenticros-claude-code/dist/find-object/coco-classes.d.ts.map +1 -0
  125. package/runtime/packages/agenticros-claude-code/dist/find-object/coco-classes.js +36 -0
  126. package/runtime/packages/agenticros-claude-code/dist/find-object/coco-classes.js.map +1 -0
  127. package/runtime/packages/agenticros-claude-code/dist/find-object/find-object.d.ts +33 -0
  128. package/runtime/packages/agenticros-claude-code/dist/find-object/find-object.d.ts.map +1 -0
  129. package/runtime/packages/agenticros-claude-code/dist/find-object/find-object.js +134 -0
  130. package/runtime/packages/agenticros-claude-code/dist/find-object/find-object.js.map +1 -0
  131. package/runtime/packages/agenticros-claude-code/dist/follow-me/controller.d.ts +43 -0
  132. package/runtime/packages/agenticros-claude-code/dist/follow-me/controller.d.ts.map +1 -0
  133. package/runtime/packages/agenticros-claude-code/dist/follow-me/controller.js +73 -0
  134. package/runtime/packages/agenticros-claude-code/dist/follow-me/controller.js.map +1 -0
  135. package/runtime/packages/agenticros-claude-code/dist/follow-me/detector.d.ts +58 -0
  136. package/runtime/packages/agenticros-claude-code/dist/follow-me/detector.d.ts.map +1 -0
  137. package/runtime/packages/agenticros-claude-code/dist/follow-me/detector.js +251 -0
  138. package/runtime/packages/agenticros-claude-code/dist/follow-me/detector.js.map +1 -0
  139. package/runtime/packages/agenticros-claude-code/dist/follow-me/loop.d.ts +61 -0
  140. package/runtime/packages/agenticros-claude-code/dist/follow-me/loop.d.ts.map +1 -0
  141. package/runtime/packages/agenticros-claude-code/dist/follow-me/loop.js +268 -0
  142. package/runtime/packages/agenticros-claude-code/dist/follow-me/loop.js.map +1 -0
  143. package/runtime/packages/agenticros-claude-code/dist/index.d.ts +3 -0
  144. package/runtime/packages/agenticros-claude-code/dist/index.d.ts.map +1 -0
  145. package/runtime/packages/agenticros-claude-code/dist/index.js +111 -0
  146. package/runtime/packages/agenticros-claude-code/dist/index.js.map +1 -0
  147. package/runtime/packages/agenticros-claude-code/dist/memory.d.ts +17 -0
  148. package/runtime/packages/agenticros-claude-code/dist/memory.d.ts.map +1 -0
  149. package/runtime/packages/agenticros-claude-code/dist/memory.js +44 -0
  150. package/runtime/packages/agenticros-claude-code/dist/memory.js.map +1 -0
  151. package/runtime/packages/agenticros-claude-code/dist/safety.d.ts +10 -0
  152. package/runtime/packages/agenticros-claude-code/dist/safety.d.ts.map +1 -0
  153. package/runtime/packages/agenticros-claude-code/dist/safety.js +34 -0
  154. package/runtime/packages/agenticros-claude-code/dist/safety.js.map +1 -0
  155. package/runtime/packages/agenticros-claude-code/dist/tools.d.ts +36 -0
  156. package/runtime/packages/agenticros-claude-code/dist/tools.d.ts.map +1 -0
  157. package/runtime/packages/agenticros-claude-code/dist/tools.js +777 -0
  158. package/runtime/packages/agenticros-claude-code/dist/tools.js.map +1 -0
  159. package/runtime/packages/agenticros-claude-code/dist/transport.d.ts +17 -0
  160. package/runtime/packages/agenticros-claude-code/dist/transport.d.ts.map +1 -0
  161. package/runtime/packages/agenticros-claude-code/dist/transport.js +46 -0
  162. package/runtime/packages/agenticros-claude-code/dist/transport.js.map +1 -0
  163. package/runtime/packages/agenticros-claude-code/dist/zero-shot/detector.d.ts +42 -0
  164. package/runtime/packages/agenticros-claude-code/dist/zero-shot/detector.d.ts.map +1 -0
  165. package/runtime/packages/agenticros-claude-code/dist/zero-shot/detector.js +114 -0
  166. package/runtime/packages/agenticros-claude-code/dist/zero-shot/detector.js.map +1 -0
  167. package/runtime/packages/agenticros-claude-code/package.json +29 -0
  168. package/runtime/packages/agenticros-claude-code/src/config.ts +96 -0
  169. package/runtime/packages/agenticros-claude-code/src/depth.ts +173 -0
  170. package/runtime/packages/agenticros-claude-code/src/find-object/coco-classes.ts +38 -0
  171. package/runtime/packages/agenticros-claude-code/src/find-object/find-object.ts +190 -0
  172. package/runtime/packages/agenticros-claude-code/src/follow-me/controller.ts +109 -0
  173. package/runtime/packages/agenticros-claude-code/src/follow-me/depth-loop.ts +420 -0
  174. package/runtime/packages/agenticros-claude-code/src/follow-me/detector.ts +303 -0
  175. package/runtime/packages/agenticros-claude-code/src/follow-me/loop.ts +330 -0
  176. package/runtime/packages/agenticros-claude-code/src/index.ts +125 -0
  177. package/runtime/packages/agenticros-claude-code/src/memory.ts +51 -0
  178. package/runtime/packages/agenticros-claude-code/src/safety.ts +44 -0
  179. package/runtime/packages/agenticros-claude-code/src/tools.ts +891 -0
  180. package/runtime/packages/agenticros-claude-code/src/transport.ts +58 -0
  181. package/runtime/packages/agenticros-claude-code/src/zero-shot/detector.ts +169 -0
  182. package/runtime/packages/agenticros-claude-code/tsconfig.json +9 -0
  183. package/runtime/packages/agenticros-claude-code/yolo-debug.mjs +106 -0
  184. package/runtime/packages/agenticros-gemini/README.md +139 -0
  185. package/runtime/packages/agenticros-gemini/package.json +28 -0
  186. package/runtime/packages/agenticros-gemini/scripts/smoke-api.mjs +42 -0
  187. package/runtime/packages/agenticros-gemini/src/chat.ts +139 -0
  188. package/runtime/packages/agenticros-gemini/src/config.ts +92 -0
  189. package/runtime/packages/agenticros-gemini/src/depth.ts +173 -0
  190. package/runtime/packages/agenticros-gemini/src/index.ts +58 -0
  191. package/runtime/packages/agenticros-gemini/src/memory.ts +32 -0
  192. package/runtime/packages/agenticros-gemini/src/safety.ts +44 -0
  193. package/runtime/packages/agenticros-gemini/src/tools.ts +516 -0
  194. package/runtime/packages/agenticros-gemini/src/transport.ts +58 -0
  195. package/runtime/packages/agenticros-gemini/tsconfig.json +8 -0
  196. package/runtime/packages/core/package.json +47 -0
  197. package/runtime/packages/core/src/banner.ts +32 -0
  198. package/runtime/packages/core/src/cmd-vel-twist.ts +31 -0
  199. package/runtime/packages/core/src/config.ts +279 -0
  200. package/runtime/packages/core/src/index.ts +54 -0
  201. package/runtime/packages/core/src/memory/__tests__/factory.test.ts +70 -0
  202. package/runtime/packages/core/src/memory/__tests__/local-provider.test.ts +195 -0
  203. package/runtime/packages/core/src/memory/__tests__/mem0-provider.test.ts +192 -0
  204. package/runtime/packages/core/src/memory/__tests__/smart-defaults.test.ts +46 -0
  205. package/runtime/packages/core/src/memory/factory.ts +63 -0
  206. package/runtime/packages/core/src/memory/index.ts +10 -0
  207. package/runtime/packages/core/src/memory/local/provider.ts +229 -0
  208. package/runtime/packages/core/src/memory/mem0/provider.ts +379 -0
  209. package/runtime/packages/core/src/memory/types.ts +96 -0
  210. package/runtime/packages/core/src/topic-utils.ts +95 -0
  211. package/runtime/packages/core/src/transport/factory.ts +47 -0
  212. package/runtime/packages/core/src/transport/local/conversion.ts +333 -0
  213. package/runtime/packages/core/src/transport/local/entities.ts +129 -0
  214. package/runtime/packages/core/src/transport/local/transport.ts +406 -0
  215. package/runtime/packages/core/src/transport/rosbridge/actions.ts +81 -0
  216. package/runtime/packages/core/src/transport/rosbridge/adapter.ts +157 -0
  217. package/runtime/packages/core/src/transport/rosbridge/client.ts +438 -0
  218. package/runtime/packages/core/src/transport/rosbridge/services.ts +41 -0
  219. package/runtime/packages/core/src/transport/rosbridge/topics.ts +60 -0
  220. package/runtime/packages/core/src/transport/rosbridge/types.ts +118 -0
  221. package/runtime/packages/core/src/transport/transport.ts +77 -0
  222. package/runtime/packages/core/src/transport/types.ts +137 -0
  223. package/runtime/packages/core/src/transport/webrtc/signaling-client.ts +196 -0
  224. package/runtime/packages/core/src/transport/webrtc/signaling-types.ts +130 -0
  225. package/runtime/packages/core/src/transport/webrtc/transport.ts +516 -0
  226. package/runtime/packages/core/src/transport/zenoh/adapter.ts +357 -0
  227. package/runtime/packages/core/src/transport/zenoh/cdr.ts +183 -0
  228. package/runtime/packages/core/src/transport/zenoh/keys.ts +51 -0
  229. package/runtime/packages/core/tsconfig.json +9 -0
  230. package/runtime/packages/ros-camera/package.json +30 -0
  231. package/runtime/packages/ros-camera/src/index.ts +13 -0
  232. package/runtime/packages/ros-camera/src/snapshot.ts +372 -0
  233. package/runtime/packages/ros-camera/tsconfig.json +9 -0
  234. package/runtime/pnpm-lock.yaml +5260 -0
  235. package/runtime/pnpm-workspace.yaml +2 -0
  236. package/runtime/ros2_ws/src/agenticros_agent/agenticros_agent/__init__.py +0 -0
  237. package/runtime/ros2_ws/src/agenticros_agent/agenticros_agent/agent_node.py +561 -0
  238. package/runtime/ros2_ws/src/agenticros_agent/package.xml +25 -0
  239. package/runtime/ros2_ws/src/agenticros_agent/resource/agenticros_agent +0 -0
  240. package/runtime/ros2_ws/src/agenticros_agent/setup.cfg +4 -0
  241. package/runtime/ros2_ws/src/agenticros_agent/setup.py +25 -0
  242. package/runtime/ros2_ws/src/agenticros_bringup/README.md +128 -0
  243. package/runtime/ros2_ws/src/agenticros_bringup/agenticros_bringup/__init__.py +1 -0
  244. package/runtime/ros2_ws/src/agenticros_bringup/agenticros_bringup/cmd_vel_relay.py +33 -0
  245. package/runtime/ros2_ws/src/agenticros_bringup/launch/cmd_vel_bridge.launch.py +58 -0
  246. package/runtime/ros2_ws/src/agenticros_bringup/launch/gazebo_turtlebot3.launch.py +69 -0
  247. package/runtime/ros2_ws/src/agenticros_bringup/launch/mode_a_gazebo.launch.py +55 -0
  248. package/runtime/ros2_ws/src/agenticros_bringup/launch/mode_a_gazebo_rviz.launch.py +48 -0
  249. package/runtime/ros2_ws/src/agenticros_bringup/launch/realsense_rosbridge.launch.py +154 -0
  250. package/runtime/ros2_ws/src/agenticros_bringup/launch/rosbridge_gazebo.launch.py +54 -0
  251. package/runtime/ros2_ws/src/agenticros_bringup/launch/rviz.launch.py +38 -0
  252. package/runtime/ros2_ws/src/agenticros_bringup/launch/turtlebot3_gazebo_rviz.launch.py +42 -0
  253. package/runtime/ros2_ws/src/agenticros_bringup/package.xml +24 -0
  254. package/runtime/ros2_ws/src/agenticros_bringup/resource/agenticros_bringup +0 -0
  255. package/runtime/ros2_ws/src/agenticros_bringup/rviz/turtlebot3_agenticros.rviz +174 -0
  256. package/runtime/ros2_ws/src/agenticros_bringup/setup.cfg +4 -0
  257. package/runtime/ros2_ws/src/agenticros_bringup/setup.py +28 -0
  258. package/runtime/ros2_ws/src/agenticros_discovery/agenticros_discovery/__init__.py +0 -0
  259. package/runtime/ros2_ws/src/agenticros_discovery/agenticros_discovery/discovery_node.py +172 -0
  260. package/runtime/ros2_ws/src/agenticros_discovery/package.xml +22 -0
  261. package/runtime/ros2_ws/src/agenticros_discovery/resource/agenticros_discovery +0 -0
  262. package/runtime/ros2_ws/src/agenticros_discovery/setup.cfg +5 -0
  263. package/runtime/ros2_ws/src/agenticros_discovery/setup.py +25 -0
  264. package/runtime/ros2_ws/src/agenticros_follow_me/README.md +66 -0
  265. package/runtime/ros2_ws/src/agenticros_follow_me/agenticros_follow_me/__init__.py +1 -0
  266. package/runtime/ros2_ws/src/agenticros_follow_me/agenticros_follow_me/__main__.py +5 -0
  267. package/runtime/ros2_ws/src/agenticros_follow_me/agenticros_follow_me/follow_me_node.py +278 -0
  268. package/runtime/ros2_ws/src/agenticros_follow_me/agenticros_follow_me/follower_controller.py +631 -0
  269. package/runtime/ros2_ws/src/agenticros_follow_me/agenticros_follow_me/person_tracker.py +635 -0
  270. package/runtime/ros2_ws/src/agenticros_follow_me/package.xml +22 -0
  271. package/runtime/ros2_ws/src/agenticros_follow_me/resource/agenticros_follow_me +0 -0
  272. package/runtime/ros2_ws/src/agenticros_follow_me/setup.py +25 -0
  273. package/runtime/ros2_ws/src/agenticros_msgs/CMakeLists.txt +26 -0
  274. package/runtime/ros2_ws/src/agenticros_msgs/msg/CapabilityManifest.msg +9 -0
  275. package/runtime/ros2_ws/src/agenticros_msgs/package.xml +22 -0
  276. package/runtime/ros2_ws/src/agenticros_msgs/srv/FollowMeGetStatus.srv +11 -0
  277. package/runtime/ros2_ws/src/agenticros_msgs/srv/FollowMeSetDistance.srv +4 -0
  278. package/runtime/ros2_ws/src/agenticros_msgs/srv/FollowMeSetTarget.srv +6 -0
  279. package/runtime/ros2_ws/src/agenticros_msgs/srv/FollowMeStart.srv +5 -0
  280. package/runtime/ros2_ws/src/agenticros_msgs/srv/FollowMeStop.srv +3 -0
  281. package/runtime/ros2_ws/src/agenticros_msgs/srv/GetCapabilities.srv +5 -0
  282. package/runtime/ros2_ws/src/agenticros_sim/CMakeLists.txt +24 -0
  283. package/runtime/ros2_ws/src/agenticros_sim/README.md +120 -0
  284. package/runtime/ros2_ws/src/agenticros_sim/config/agenticros-sim.config.json +28 -0
  285. package/runtime/ros2_ws/src/agenticros_sim/config/amr_bridge.yaml +111 -0
  286. package/runtime/ros2_ws/src/agenticros_sim/config/amr_view.rviz +172 -0
  287. package/runtime/ros2_ws/src/agenticros_sim/env-hooks/gz_resource_path.dsv.in +3 -0
  288. package/runtime/ros2_ws/src/agenticros_sim/env-hooks/gz_resource_path.sh.in +7 -0
  289. package/runtime/ros2_ws/src/agenticros_sim/launch/sim_amr.launch.py +159 -0
  290. package/runtime/ros2_ws/src/agenticros_sim/models/agenticros_amr/model.config +17 -0
  291. package/runtime/ros2_ws/src/agenticros_sim/models/agenticros_amr/model.sdf +244 -0
  292. package/runtime/ros2_ws/src/agenticros_sim/package.xml +27 -0
  293. package/runtime/ros2_ws/src/agenticros_sim/worlds/agenticros_indoor.sdf +183 -0
  294. package/runtime/scripts/activate_workspace.sh +285 -0
  295. package/runtime/scripts/agenticros-describer.policy.yaml +96 -0
  296. package/runtime/scripts/agenticros-proxy.cjs +99 -0
  297. package/runtime/scripts/agenticros-rosbridge.policy.yaml +62 -0
  298. package/runtime/scripts/check-cli-tarball-size.mjs +42 -0
  299. package/runtime/scripts/configure_agenticros.sh +200 -0
  300. package/runtime/scripts/configure_for_sim.sh +64 -0
  301. package/runtime/scripts/fix-openclaw-control-ui-path.sh +20 -0
  302. package/runtime/scripts/install_cli.sh +94 -0
  303. package/runtime/scripts/install_rosbridge_from_source.sh +67 -0
  304. package/runtime/scripts/lib/agenticros-banner.sh +28 -0
  305. package/runtime/scripts/onboard_robot.sh +75 -0
  306. package/runtime/scripts/openai.policy.yaml +77 -0
  307. package/runtime/scripts/openclaw-dashboard-url.cjs +49 -0
  308. package/runtime/scripts/pack-runtime.mjs +245 -0
  309. package/runtime/scripts/run_demo_native.sh +43 -0
  310. package/runtime/scripts/run_nemoclaw_host_stack.sh +91 -0
  311. package/runtime/scripts/run_robot_rosbridge.sh +36 -0
  312. package/runtime/scripts/sandbox_rosbridge_relay.py +137 -0
  313. package/runtime/scripts/setup-openclaw-local.cjs +75 -0
  314. package/runtime/scripts/setup_gateway_plugin.sh +329 -0
  315. package/runtime/scripts/setup_robot.sh +113 -0
  316. package/runtime/scripts/setup_workspace.sh +484 -0
  317. package/runtime/scripts/sim/run_sim.sh +146 -0
  318. package/runtime/scripts/smoke_test_nemoclaw.sh +123 -0
  319. package/runtime/scripts/start_demo.sh +55 -0
  320. package/runtime/scripts/sync-skill-tools.mjs +335 -0
  321. package/runtime/scripts/test-follow-me-sim.mjs +135 -0
  322. package/runtime/scripts/test-mcp-e2e.mjs +184 -0
  323. package/runtime/scripts/test-rclnodejs.mts +129 -0
  324. package/runtime/scripts/use-openclaw-2026.2.26.sh +19 -0
  325. package/runtime/scripts/use-openclaw-2026.3.11.sh +19 -0
  326. package/runtime/scripts/zenoh-bridge-ros2dds-robot.json5 +30 -0
  327. package/runtime/scripts/zenohd-agenticros.json5 +11 -0
  328. package/runtime/scripts/zenohd-rosclaw.json5 +11 -0
  329. package/runtime/tsconfig.base.json +19 -0
  330. package/index.js +0 -6
@@ -0,0 +1,184 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Spin up the @agenticros/claude-code MCP server as a child process and exercise
4
+ * a real JSON-RPC session over stdio. Used for end-to-end testing of the MCP
5
+ * tools against a live sim (or real robot).
6
+ *
7
+ * Usage:
8
+ * node scripts/test-mcp-e2e.mjs
9
+ *
10
+ * Honours AGENTICROS_CONFIG_PATH if set; otherwise uses ~/.agenticros/config.json.
11
+ */
12
+
13
+ import { spawn } from "node:child_process";
14
+ import { fileURLToPath } from "node:url";
15
+ import { dirname, join, resolve } from "node:path";
16
+
17
+ const __dirname = dirname(fileURLToPath(import.meta.url));
18
+ const repoRoot = resolve(__dirname, "..");
19
+ const serverDist = join(repoRoot, "packages/agenticros-claude-code/dist/index.js");
20
+
21
+ const child = spawn(process.execPath, [serverDist], {
22
+ stdio: ["pipe", "pipe", "pipe"],
23
+ env: { ...process.env },
24
+ });
25
+
26
+ child.stderr.on("data", (d) => {
27
+ process.stderr.write(`[mcp-stderr] ${d}`);
28
+ });
29
+ child.on("exit", (code, sig) => {
30
+ process.stderr.write(`[mcp] exited code=${code} sig=${sig}\n`);
31
+ });
32
+
33
+ let nextId = 1;
34
+ const pending = new Map();
35
+ let buf = "";
36
+
37
+ child.stdout.on("data", (chunk) => {
38
+ buf += chunk.toString();
39
+ let nl;
40
+ while ((nl = buf.indexOf("\n")) !== -1) {
41
+ const line = buf.slice(0, nl).trim();
42
+ buf = buf.slice(nl + 1);
43
+ if (!line) continue;
44
+ let msg;
45
+ try {
46
+ msg = JSON.parse(line);
47
+ } catch (e) {
48
+ process.stderr.write(`[mcp] non-json line: ${line}\n`);
49
+ continue;
50
+ }
51
+ if (msg.id !== undefined && pending.has(msg.id)) {
52
+ const { resolve, reject } = pending.get(msg.id);
53
+ pending.delete(msg.id);
54
+ if (msg.error) reject(new Error(`${msg.error.code}: ${msg.error.message}`));
55
+ else resolve(msg.result);
56
+ }
57
+ }
58
+ });
59
+
60
+ function rpc(method, params = {}, timeoutMs = 20000) {
61
+ const id = nextId++;
62
+ const payload = { jsonrpc: "2.0", id, method, params };
63
+ return new Promise((resolveOuter, reject) => {
64
+ const t = setTimeout(() => {
65
+ pending.delete(id);
66
+ reject(new Error(`Timeout: ${method}`));
67
+ }, timeoutMs);
68
+ pending.set(id, {
69
+ resolve: (v) => {
70
+ clearTimeout(t);
71
+ resolveOuter(v);
72
+ },
73
+ reject: (e) => {
74
+ clearTimeout(t);
75
+ reject(e);
76
+ },
77
+ });
78
+ child.stdin.write(JSON.stringify(payload) + "\n");
79
+ });
80
+ }
81
+
82
+ function summarise(content, max = 4000) {
83
+ if (!Array.isArray(content)) return JSON.stringify(content).slice(0, max);
84
+ return content
85
+ .map((c) => {
86
+ if (c.type === "text") {
87
+ const t = c.text ?? "";
88
+ return t.length > max ? `${t.slice(0, max)} … (+${t.length - max} chars)` : t;
89
+ }
90
+ if (c.type === "image") return `[image base64 len=${(c.data ?? "").length} mime=${c.mimeType}]`;
91
+ return `[${c.type}]`;
92
+ })
93
+ .join("\n");
94
+ }
95
+
96
+ async function callTool(name, args = {}, timeoutMs = 20000) {
97
+ const t0 = Date.now();
98
+ try {
99
+ const result = await rpc("tools/call", { name, arguments: args }, timeoutMs);
100
+ const ms = Date.now() - t0;
101
+ const ok = result?.isError ? "ERR" : "ok ";
102
+ console.log(`[${ok}] (${ms.toString().padStart(5)}ms) ${name}`);
103
+ console.log(` ${summarise(result?.content)}`);
104
+ return result;
105
+ } catch (e) {
106
+ const ms = Date.now() - t0;
107
+ console.log(`[ERR] (${ms.toString().padStart(5)}ms) ${name} ${e.message}`);
108
+ return null;
109
+ }
110
+ }
111
+
112
+ async function main() {
113
+ console.log("=== MCP E2E harness ===");
114
+
115
+ console.log("\n-- initialize --");
116
+ const init = await rpc("initialize", {
117
+ protocolVersion: "2024-11-05",
118
+ capabilities: { tools: {} },
119
+ clientInfo: { name: "agenticros-e2e", version: "0.0.1" },
120
+ });
121
+ console.log(`server: ${init.serverInfo?.name} v${init.serverInfo?.version}`);
122
+ await rpc("notifications/initialized", {}).catch(() => {});
123
+
124
+ console.log("\n-- tools/list --");
125
+ const tl = await rpc("tools/list", {});
126
+ console.log(` ${tl.tools?.length ?? 0} tools advertised`);
127
+ for (const t of tl.tools ?? []) {
128
+ console.log(` - ${t.name}`);
129
+ }
130
+
131
+ console.log("\n-- ros2_list_topics --");
132
+ await callTool("ros2_list_topics", {}, 30000);
133
+
134
+ console.log("\n-- ros2_publish /cmd_vel (linear.x=0.2) --");
135
+ await callTool(
136
+ "ros2_publish",
137
+ {
138
+ topic: "/cmd_vel",
139
+ type: "geometry_msgs/msg/Twist",
140
+ message: { linear: { x: 0.2, y: 0, z: 0 }, angular: { x: 0, y: 0, z: 0 } },
141
+ },
142
+ 10000,
143
+ );
144
+
145
+ console.log("\n-- ros2_subscribe_once /imu/data --");
146
+ await callTool(
147
+ "ros2_subscribe_once",
148
+ { topic: "/imu/data", type: "sensor_msgs/msg/Imu", timeoutMs: 5000 },
149
+ 10000,
150
+ );
151
+
152
+ console.log("\n-- ros2_subscribe_once /scan --");
153
+ await callTool(
154
+ "ros2_subscribe_once",
155
+ { topic: "/scan", type: "sensor_msgs/msg/LaserScan", timeoutMs: 5000 },
156
+ 10000,
157
+ );
158
+
159
+ console.log("\n-- ros2_camera_snapshot (RGB) --");
160
+ await callTool("ros2_camera_snapshot", {}, 15000);
161
+
162
+ console.log("\n-- ros2_depth_distance --");
163
+ await callTool("ros2_depth_distance", {}, 15000);
164
+
165
+ console.log("\n-- stop --");
166
+ await callTool(
167
+ "ros2_publish",
168
+ {
169
+ topic: "/cmd_vel",
170
+ type: "geometry_msgs/msg/Twist",
171
+ message: { linear: { x: 0, y: 0, z: 0 }, angular: { x: 0, y: 0, z: 0 } },
172
+ },
173
+ 5000,
174
+ );
175
+
176
+ console.log("\n=== Done ===");
177
+ child.kill("SIGTERM");
178
+ }
179
+
180
+ main().catch((e) => {
181
+ console.error("Harness failed:", e);
182
+ child.kill("SIGKILL");
183
+ process.exit(1);
184
+ });
@@ -0,0 +1,129 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * Validation prototype for rclnodejs ESM integration.
4
+ *
5
+ * Run with ROS2 workspace sourced:
6
+ * npx tsx scripts/test-rclnodejs.mts
7
+ *
8
+ * Tests:
9
+ * 1. ESM import of rclnodejs
10
+ * 2. init() + createNode() + spin()
11
+ * 3. Topic/service introspection
12
+ * 4. Message type loading
13
+ * 5. Message construction and extraction
14
+ * 6. Clean shutdown
15
+ */
16
+
17
+ import { createRequire } from "node:module";
18
+ import { fileURLToPath } from "node:url";
19
+ import { resolve, dirname } from "node:path";
20
+
21
+ // Resolve from the plugin directory where rclnodejs is actually installed
22
+ const __dirname = dirname(fileURLToPath(import.meta.url));
23
+ const pluginDir = resolve(__dirname, "../extensions/openclaw-plugin");
24
+ const pluginRequire = createRequire(resolve(pluginDir, "package.json"));
25
+
26
+ // --- Test 1: ESM import ---
27
+ console.log("=== Test 1: ESM import of rclnodejs ===");
28
+
29
+ let rclnodejs: any;
30
+ try {
31
+ rclnodejs = await import("rclnodejs");
32
+ console.log(" ✓ Direct ESM import succeeded");
33
+ } catch {
34
+ console.log(" ⚠ Direct ESM import failed, trying createRequire fallback...");
35
+ rclnodejs = pluginRequire("rclnodejs");
36
+ console.log(" ✓ createRequire fallback succeeded (resolved from plugin node_modules)");
37
+ }
38
+
39
+ // --- Test 2: init + createNode + spin ---
40
+ console.log("\n=== Test 2: init + createNode + spin ===");
41
+
42
+ await rclnodejs.init();
43
+ console.log(" ✓ rclnodejs.init() succeeded");
44
+
45
+ const node = rclnodejs.createNode("agenticros_test");
46
+ console.log(" ✓ createNode('agenticros_test') succeeded");
47
+
48
+ rclnodejs.spin(node);
49
+ console.log(" ✓ spin(node) started (non-blocking)");
50
+
51
+ // --- Test 3: Introspection ---
52
+ console.log("\n=== Test 3: Topic/service introspection ===");
53
+
54
+ const topics = node.getTopicNamesAndTypes();
55
+ console.log(` ✓ getTopicNamesAndTypes() returned ${topics.length} topic(s):`);
56
+ for (const t of topics.slice(0, 10)) {
57
+ const name = typeof t === "object" && "name" in t ? (t as { name: string }).name : String(t);
58
+ const types =
59
+ typeof t === "object" && "types" in t ? (t as { types: string[] }).types : [];
60
+ console.log(` - ${name} [${types.join(", ")}]`);
61
+ }
62
+ if (topics.length > 10) console.log(` ... and ${topics.length - 10} more`);
63
+
64
+ const services = node.getServiceNamesAndTypes();
65
+ console.log(` ✓ getServiceNamesAndTypes() returned ${services.length} service(s):`);
66
+ for (const s of services.slice(0, 10)) {
67
+ const name = typeof s === "object" && "name" in s ? (s as { name: string }).name : String(s);
68
+ const types =
69
+ typeof s === "object" && "types" in s ? (s as { types: string[] }).types : [];
70
+ console.log(` - ${name} [${types.join(", ")}]`);
71
+ }
72
+ if (services.length > 10) console.log(` ... and ${services.length - 10} more`);
73
+
74
+ // --- Test 4: Message type loading ---
75
+ console.log("\n=== Test 4: Message type loading ===");
76
+
77
+ let TwistClass: any;
78
+ try {
79
+ TwistClass = rclnodejs.require("geometry_msgs/msg/Twist");
80
+ console.log(" ✓ rclnodejs.require('geometry_msgs/msg/Twist') succeeded");
81
+ console.log(` Type: ${typeof TwistClass}`);
82
+ } catch (e) {
83
+ console.log(` ✗ Failed to load Twist: ${e}`);
84
+ }
85
+
86
+ // --- Test 5: Message construction and extraction ---
87
+ console.log("\n=== Test 5: Message construction & extraction ===");
88
+
89
+ if (TwistClass) {
90
+ try {
91
+ const msg = new TwistClass();
92
+ msg.linear.x = 1.0;
93
+ msg.linear.y = 0.0;
94
+ msg.linear.z = 0.0;
95
+ msg.angular.x = 0.0;
96
+ msg.angular.y = 0.0;
97
+ msg.angular.z = 0.5;
98
+ console.log(" ✓ Created Twist message and set fields");
99
+
100
+ // Try toPlainObject if available
101
+ if (typeof msg.toPlainObject === "function") {
102
+ const plain = msg.toPlainObject();
103
+ console.log(" ✓ msg.toPlainObject() succeeded:");
104
+ console.log(` ${JSON.stringify(plain)}`);
105
+ } else {
106
+ console.log(" ⚠ toPlainObject() not available, extracting fields manually:");
107
+ const plain = {
108
+ linear: { x: msg.linear.x, y: msg.linear.y, z: msg.linear.z },
109
+ angular: { x: msg.angular.x, y: msg.angular.y, z: msg.angular.z },
110
+ };
111
+ console.log(` ${JSON.stringify(plain)}`);
112
+ }
113
+ } catch (e) {
114
+ console.log(` ✗ Message construction failed: ${e}`);
115
+ }
116
+ } else {
117
+ console.log(" ⚠ Skipped — Twist class not loaded");
118
+ }
119
+
120
+ // --- Test 6: Clean shutdown ---
121
+ console.log("\n=== Test 6: Clean shutdown ===");
122
+
123
+ node.destroy();
124
+ console.log(" ✓ node.destroy() succeeded");
125
+
126
+ rclnodejs.shutdown();
127
+ console.log(" ✓ rclnodejs.shutdown() succeeded");
128
+
129
+ console.log("\n=== All tests passed ===");
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env bash
2
+ # Install OpenClaw 2026.2.26 so plugin HTTP routes (config, teleop) and web chat load.
3
+ # Use this when 2026.3.2 rejects every plugin route with "missing or invalid auth" and
4
+ # neither auth.mode=none nor requireAuth: false fix it.
5
+ set -e
6
+ echo ""
7
+ echo " Installing OpenClaw 2026.2.26 (plugin routes work on this version)..."
8
+ echo ""
9
+ npm install -g openclaw@2026.2.26
10
+ echo ""
11
+ echo " Done. Next steps:"
12
+ echo " 1. Restart the gateway: openclaw gateway"
13
+ echo " 2. Open in your browser:"
14
+ echo " AgenticROS: http://127.0.0.1:18789/plugins/agenticros/"
15
+ echo " 3. Web chat: run node scripts/openclaw-dashboard-url.cjs and open the URL it prints"
16
+ echo " (2026.2.26 needs the token in the URL for the web chat to connect)"
17
+ echo ""
18
+ echo " To go back to latest OpenClaw later: npm install -g openclaw@latest"
19
+ echo ""
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env bash
2
+ # Install OpenClaw 2026.3.11 for testing (Gateway/Control UI and auth fixes).
3
+ # Use this branch (test-openclaw-2026.3.11) to try 2026.3.11; roll back by
4
+ # checking out main and running: npm install -g openclaw@latest (or use-openclaw-2026.2.26.sh)
5
+ set -e
6
+ echo ""
7
+ echo " Installing OpenClaw 2026.3.11 (test branch)..."
8
+ echo ""
9
+ npm install -g openclaw@2026.3.11
10
+ echo ""
11
+ echo " Done. Next steps:"
12
+ echo " 1. Restart the gateway: openclaw gateway"
13
+ echo " 2. Open in your browser:"
14
+ echo " AgenticROS: http://127.0.0.1:18789/plugins/agenticros/"
15
+ echo " 3. Web chat: run node scripts/openclaw-dashboard-url.cjs and open the URL it prints"
16
+ echo ""
17
+ echo " To roll back: checkout main and run npm install -g openclaw@latest"
18
+ echo " Or use ./scripts/use-openclaw-2026.2.26.sh to pin to 2026.2.26."
19
+ echo ""
@@ -0,0 +1,30 @@
1
+ // CONFIG FOR: zenoh-bridge-ros2dds (standalone) ON THE ROBOT
2
+ // DO NOT use this file with zenohd. zenohd does not load the ros2dds plugin and will
3
+ // panic on unknown keys (e.g. "allow"). On the Mac, run zenohd with zenohd-agenticros.json5 only.
4
+ //
5
+ // On the robot, run: zenoh-bridge-ros2dds -c /path/to/zenoh-bridge-ros2dds-robot.json5
6
+ // Edit connect.endpoints: use your Mac's actual IP (e.g. 192.168.0.241). Must match the
7
+ // subnet the robot can reach (robot 192.168.0.x → use Mac 192.168.0.x; wrong subnet = connection timeout).
8
+ // Subscriber patterns must match the Zenoh key AgenticROS publishes (topic without leading slash).
9
+ // If you use robot.namespace = "robot3946b404-c33e-4aa3-9a8d-16deb1c5c593", key is "robot3946b404-c33e-4aa3-9a8d-16deb1c5c593/cmd_vel" (ROS2 topic /robot3946.../cmd_vel).
10
+ // If you use robot.namespace = "3946b404-c33e-4aa3-9a8d-16deb1c5c593", key is "3946b404-c33e-4aa3-9a8d-16deb1c5c593/cmd_vel".
11
+ // If you use robot.namespace = "", key is "cmd_vel" (ROS2 /cmd_vel).
12
+
13
+ {
14
+ "mode": "client",
15
+ "connect": {
16
+ "endpoints": ["tcp/192.168.0.241:7447"]
17
+ },
18
+ "plugins": {
19
+ "ros2dds": {
20
+ "allow": {
21
+ "publishers": [".+"],
22
+ "subscribers": [".+/cmd_vel", "cmd_vel", "3946b404-c33e-4aa3-9a8d-16deb1c5c593/cmd_vel", "robot3946b404-c33e-4aa3-9a8d-16deb1c5c593/cmd_vel"],
23
+ "service_servers": [],
24
+ "service_clients": [],
25
+ "action_servers": [],
26
+ "action_clients": []
27
+ }
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "plugins_loading": {
3
+ "enabled": true,
4
+ "search_dirs": ["~/.zenoh/lib", "/opt/homebrew/lib", "/usr/local/lib"]
5
+ },
6
+ "plugins": {
7
+ "remote_api": {
8
+ "websocket_port": "10000"
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "plugins_loading": {
3
+ "enabled": true,
4
+ "search_dirs": ["~/.zenoh/lib", "/opt/homebrew/lib", "/usr/local/lib"]
5
+ },
6
+ "plugins": {
7
+ "remote_api": {
8
+ "websocket_port": "10000"
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "lib": ["ES2022"],
7
+ "strict": true,
8
+ "esModuleInterop": true,
9
+ "skipLibCheck": true,
10
+ "forceConsistentCasingInFileNames": true,
11
+ "resolveJsonModule": true,
12
+ "declaration": true,
13
+ "declarationMap": true,
14
+ "sourceMap": true,
15
+ "outDir": "./dist",
16
+ "rootDir": "./src"
17
+ },
18
+ "exclude": ["node_modules", "dist"]
19
+ }
package/index.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * agenticros - placeholder package
3
- * This package reserves the "agenticros" name on npm.
4
- */
5
-
6
- module.exports = { name: 'agenticros' };