foodforthought-cli 0.2.0__tar.gz → 0.2.3__tar.gz

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 (58) hide show
  1. foodforthought_cli-0.2.3/PKG-INFO +300 -0
  2. foodforthought_cli-0.2.3/README.md +254 -0
  3. {foodforthought_cli-0.2.0 → foodforthought_cli-0.2.3}/ate/__init__.py +1 -1
  4. foodforthought_cli-0.2.3/ate/bridge_server.py +622 -0
  5. foodforthought_cli-0.2.3/ate/cli.py +4148 -0
  6. foodforthought_cli-0.2.3/ate/compatibility.py +580 -0
  7. foodforthought_cli-0.2.3/ate/generators/__init__.py +19 -0
  8. foodforthought_cli-0.2.3/ate/generators/docker_generator.py +461 -0
  9. foodforthought_cli-0.2.3/ate/generators/hardware_config.py +469 -0
  10. foodforthought_cli-0.2.3/ate/generators/ros2_generator.py +617 -0
  11. foodforthought_cli-0.2.3/ate/generators/skill_generator.py +783 -0
  12. foodforthought_cli-0.2.3/ate/marketplace.py +524 -0
  13. foodforthought_cli-0.2.3/ate/mcp_server.py +2790 -0
  14. foodforthought_cli-0.2.3/ate/primitives.py +1016 -0
  15. foodforthought_cli-0.2.3/ate/robot_setup.py +2222 -0
  16. foodforthought_cli-0.2.3/ate/skill_schema.py +537 -0
  17. foodforthought_cli-0.2.3/ate/telemetry/__init__.py +33 -0
  18. foodforthought_cli-0.2.3/ate/telemetry/cli.py +455 -0
  19. foodforthought_cli-0.2.3/ate/telemetry/collector.py +444 -0
  20. foodforthought_cli-0.2.3/ate/telemetry/context.py +318 -0
  21. foodforthought_cli-0.2.3/ate/telemetry/fleet_agent.py +419 -0
  22. foodforthought_cli-0.2.3/ate/telemetry/formats/__init__.py +18 -0
  23. foodforthought_cli-0.2.3/ate/telemetry/formats/hdf5_serializer.py +503 -0
  24. foodforthought_cli-0.2.3/ate/telemetry/formats/mcap_serializer.py +457 -0
  25. foodforthought_cli-0.2.3/ate/telemetry/types.py +334 -0
  26. foodforthought_cli-0.2.3/foodforthought_cli.egg-info/PKG-INFO +300 -0
  27. foodforthought_cli-0.2.3/foodforthought_cli.egg-info/SOURCES.txt +48 -0
  28. foodforthought_cli-0.2.3/foodforthought_cli.egg-info/requires.txt +9 -0
  29. foodforthought_cli-0.2.3/foodforthought_cli.egg-info/top_level.txt +6 -0
  30. foodforthought_cli-0.2.3/mechdog_labeled/__init__.py +3 -0
  31. foodforthought_cli-0.2.3/mechdog_labeled/primitives.py +113 -0
  32. foodforthought_cli-0.2.3/mechdog_labeled/servo_map.py +209 -0
  33. foodforthought_cli-0.2.3/mechdog_output/__init__.py +3 -0
  34. foodforthought_cli-0.2.3/mechdog_output/primitives.py +59 -0
  35. foodforthought_cli-0.2.3/mechdog_output/servo_map.py +203 -0
  36. {foodforthought_cli-0.2.0 → foodforthought_cli-0.2.3}/setup.py +11 -1
  37. foodforthought_cli-0.2.3/test_autodetect/__init__.py +3 -0
  38. foodforthought_cli-0.2.3/test_autodetect/primitives.py +113 -0
  39. foodforthought_cli-0.2.3/test_autodetect/servo_map.py +209 -0
  40. foodforthought_cli-0.2.3/test_full_auto/__init__.py +3 -0
  41. foodforthought_cli-0.2.3/test_full_auto/primitives.py +113 -0
  42. foodforthought_cli-0.2.3/test_full_auto/servo_map.py +209 -0
  43. foodforthought_cli-0.2.3/test_smart_detect/__init__.py +3 -0
  44. foodforthought_cli-0.2.3/test_smart_detect/primitives.py +113 -0
  45. foodforthought_cli-0.2.3/test_smart_detect/servo_map.py +209 -0
  46. foodforthought_cli-0.2.3/tests/test_auth.py +89 -0
  47. foodforthought_cli-0.2.0/PKG-INFO +0 -151
  48. foodforthought_cli-0.2.0/README.md +0 -112
  49. foodforthought_cli-0.2.0/ate/cli.py +0 -1765
  50. foodforthought_cli-0.2.0/ate/mcp_server.py +0 -514
  51. foodforthought_cli-0.2.0/foodforthought_cli.egg-info/PKG-INFO +0 -151
  52. foodforthought_cli-0.2.0/foodforthought_cli.egg-info/SOURCES.txt +0 -12
  53. foodforthought_cli-0.2.0/foodforthought_cli.egg-info/requires.txt +0 -1
  54. foodforthought_cli-0.2.0/foodforthought_cli.egg-info/top_level.txt +0 -1
  55. {foodforthought_cli-0.2.0 → foodforthought_cli-0.2.3}/ate/generator.py +0 -0
  56. {foodforthought_cli-0.2.0 → foodforthought_cli-0.2.3}/foodforthought_cli.egg-info/dependency_links.txt +0 -0
  57. {foodforthought_cli-0.2.0 → foodforthought_cli-0.2.3}/foodforthought_cli.egg-info/entry_points.txt +0 -0
  58. {foodforthought_cli-0.2.0 → foodforthought_cli-0.2.3}/setup.cfg +0 -0
@@ -0,0 +1,300 @@
1
+ Metadata-Version: 2.4
2
+ Name: foodforthought-cli
3
+ Version: 0.2.3
4
+ Summary: CLI tool for FoodforThought robotics repository platform - manage robot skills and data
5
+ Home-page: https://kindly.fyi/foodforthought
6
+ Author: Kindly Robotics
7
+ Author-email: hello@kindly.fyi
8
+ Project-URL: Homepage, https://kindly.fyi
9
+ Project-URL: Documentation, https://kindly.fyi/foodforthought/cli
10
+ Project-URL: Source, https://github.com/kindlyrobotics/monorepo
11
+ Project-URL: Bug Tracker, https://github.com/kindlyrobotics/monorepo/issues
12
+ Keywords: robotics,robot-skills,machine-learning,data-management,cli
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: Topic :: Software Development :: Version Control
17
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
18
+ Classifier: License :: OSI Approved :: MIT License
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.8
21
+ Classifier: Programming Language :: Python :: 3.9
22
+ Classifier: Programming Language :: Python :: 3.10
23
+ Classifier: Programming Language :: Python :: 3.11
24
+ Classifier: Programming Language :: Python :: 3.12
25
+ Requires-Python: >=3.8
26
+ Description-Content-Type: text/markdown
27
+ Requires-Dist: requests>=2.28.0
28
+ Provides-Extra: robot-setup
29
+ Requires-Dist: pyserial>=3.5; extra == "robot-setup"
30
+ Requires-Dist: anthropic>=0.18.0; extra == "robot-setup"
31
+ Provides-Extra: all
32
+ Requires-Dist: pyserial>=3.5; extra == "all"
33
+ Requires-Dist: anthropic>=0.18.0; extra == "all"
34
+ Dynamic: author
35
+ Dynamic: author-email
36
+ Dynamic: classifier
37
+ Dynamic: description
38
+ Dynamic: description-content-type
39
+ Dynamic: home-page
40
+ Dynamic: keywords
41
+ Dynamic: project-url
42
+ Dynamic: provides-extra
43
+ Dynamic: requires-dist
44
+ Dynamic: requires-python
45
+ Dynamic: summary
46
+
47
+ # FoodforThought CLI
48
+
49
+ GitHub-like CLI tool for the FoodforThought robotics repository platform.
50
+
51
+ **Version**: 0.2.1
52
+ **PyPI**: https://pypi.org/project/foodforthought-cli/
53
+
54
+ ## Installation
55
+
56
+ ```bash
57
+ pip install foodforthought-cli
58
+ ```
59
+
60
+ Or install from source:
61
+
62
+ ```bash
63
+ cd foodforthought-cli
64
+ pip install -e .
65
+ ```
66
+
67
+ ## Configuration
68
+
69
+ Set environment variables:
70
+
71
+ ```bash
72
+ export ATE_API_URL="https://kindly.fyi/api"
73
+ export ATE_API_KEY="your-api-key-here"
74
+ ```
75
+
76
+ ## Usage
77
+
78
+ ### Initialize a repository
79
+
80
+ ```bash
81
+ ate init my-robot-skill -d "A skill for my robot" -v public
82
+ ```
83
+
84
+ ### Clone a repository
85
+
86
+ ```bash
87
+ ate clone <repository-id>
88
+ ```
89
+
90
+ ### Create a commit
91
+
92
+ ```bash
93
+ ate commit -m "Add new control algorithm"
94
+ ```
95
+
96
+ ### Push to remote
97
+
98
+ ```bash
99
+ ate push -b main
100
+ ```
101
+
102
+ ### Deploy to robot
103
+
104
+ ```bash
105
+ ate deploy unitree-r1
106
+ ```
107
+
108
+ ## Commands
109
+
110
+ ### Repository Management
111
+ - `ate init <name>` - Initialize a new repository
112
+ - `ate clone <repo-id>` - Clone a repository
113
+ - `ate commit -m <message>` - Create a commit
114
+ - `ate push [-b <branch>]` - Push commits to remote
115
+
116
+ ### Skill Pipeline
117
+ - `ate pull <skill-id> [--robot <robot>] [--format json|rlds|lerobot] [--output ./data]` - Pull skill data for training
118
+ - `ate upload <video-path> --robot <robot> --task <task> [--project <id>]` - Upload demonstrations for labeling
119
+ - `ate check-transfer --from <source-robot> --to <target-robot> [--skill <id>]` - Check skill transfer compatibility
120
+ - `ate labeling-status <job-id>` - Check labeling job status
121
+
122
+ ### Parts & Dependencies (New in v0.2.0)
123
+ - `ate parts list [--category gripper]` - List available hardware parts
124
+ - `ate parts check <skill-id>` - Check part compatibility for a skill
125
+ - `ate parts require <part-id> --skill <skill-id>` - Add part dependency to a skill
126
+ - `ate deps audit` - Verify all dependencies are compatible
127
+
128
+ ### Text-to-Skill Generation (New in v0.2.0)
129
+ - `ate generate "<description>" --robot <robot> --output ./skill/` - Generate skill skeleton from natural language
130
+
131
+ Example:
132
+ ```bash
133
+ ate generate "pick up box and place on pallet" --robot franka-panda --output ./new-skill/
134
+ ```
135
+
136
+ ### Workflow Orchestration (New in v0.2.0)
137
+ - `ate workflow validate <pipeline.yaml>` - Validate a workflow definition
138
+ - `ate workflow run <pipeline.yaml> --sim` - Run workflow in simulation
139
+ - `ate workflow export <pipeline.yaml> --format ros2` - Export to ROS2 launch format
140
+
141
+ ### Team Collaboration (New in v0.2.0)
142
+ - `ate team create <name>` - Create a new team
143
+ - `ate team invite <email> --role member` - Invite a member
144
+ - `ate team list` - List teams and members
145
+ - `ate skill share <skill-id> --team <team-slug>` - Share a skill with a team
146
+
147
+ ### Skill Compiler (New in v0.2.1)
148
+
149
+ Compile skill.yaml specifications into deployable packages. See [docs/SKILL_COMPILER.md](docs/SKILL_COMPILER.md) for full documentation.
150
+
151
+ ```bash
152
+ # Validate a skill specification
153
+ ate validate-skill my_skill.skill.yaml
154
+
155
+ # Compile to Python package
156
+ ate compile my_skill.skill.yaml --target python --output ./dist
157
+
158
+ # Compile to ROS2 package
159
+ ate compile my_skill.skill.yaml --target ros2 --robot robots/ur5.urdf
160
+
161
+ # Test the compiled skill
162
+ ate test-skill ./dist --mode dry-run
163
+
164
+ # Check robot compatibility
165
+ ate check-compatibility my_skill.skill.yaml --robot-urdf robots/ur5.urdf
166
+
167
+ # Publish to registry
168
+ ate publish-skill ./dist --visibility public
169
+ ```
170
+
171
+ **Quick Start for AI Assistants:**
172
+ 1. `ate_list_primitives` - Discover available building blocks
173
+ 2. `ate_validate_skill_spec` - Check skill.yaml for errors
174
+ 3. `ate_check_skill_compatibility` - Verify robot compatibility
175
+ 4. `ate_compile_skill` - Generate deployable code
176
+ 5. `ate_test_compiled_skill` - Test without a robot
177
+
178
+ ### Dataset Management (New in v0.2.0)
179
+ - `ate data upload ./sensor-logs/ --skill <id> --stage raw` - Upload sensor data
180
+ - `ate data list --skill <id> --stage annotated` - List datasets
181
+ - `ate data promote <dataset-id> --to skill-abstracted` - Promote to next stage
182
+ - `ate data export <dataset-id> --format rlds` - Export dataset
183
+
184
+ ### Deployment & Configuration (New in v0.2.0)
185
+ - `ate deploy --config deploy.yaml --target fleet-alpha` - Deploy with config
186
+ - `ate deploy status <fleet-name>` - Check deployment status
187
+
188
+ ### Deployment & Testing
189
+ - `ate deploy <robot-type>` - Deploy to a robot (e.g., unitree-r1)
190
+ - `ate test [-e gazebo|mujoco|pybullet|webots] [-r robot]` - Test skills in simulation
191
+ - `ate benchmark [-t speed|accuracy|robustness|efficiency|all]` - Run performance benchmarks
192
+ - `ate adapt <source-robot> <target-robot>` - Adapt skills between robots
193
+
194
+ ### Safety & Validation
195
+ - `ate validate [-c collision|speed|workspace|force|all]` - Validate safety and compliance
196
+ - `ate stream [start|stop|status] [-s sensors...]` - Stream sensor data
197
+
198
+ ## Cursor IDE Integration (MCP)
199
+
200
+ FoodforThought CLI includes a full MCP (Model Context Protocol) server for integration with Cursor IDE.
201
+
202
+ ### Quick Install via Deep Link
203
+
204
+ Click this link to install in Cursor:
205
+ ```
206
+ cursor://anysphere.cursor-deeplink/mcp/install?name=foodforthought&config=eyJtY3BTZXJ2ZXJzIjogeyJmb29kZm9ydGhvdWdodCI6IHsiY29tbWFuZCI6ICJweXRob24iLCAiYXJncyI6IFsiLW0iLCAiYXRlLm1jcF9zZXJ2ZXIiXSwgImVudiI6IHsiQVRFX0FQSV9VUkwiOiAiaHR0cHM6Ly9raW5kbHkuZnlpL2FwaSJ9fX19
207
+ ```
208
+
209
+ ### Manual Installation
210
+
211
+ 1. Install the CLI:
212
+ ```bash
213
+ pip install foodforthought-cli
214
+ ```
215
+
216
+ 2. Install MCP SDK:
217
+ ```bash
218
+ pip install mcp
219
+ ```
220
+
221
+ 3. Add to your Cursor MCP config (`~/.cursor/mcp.json` or `.cursor/mcp.json`):
222
+ ```json
223
+ {
224
+ "mcpServers": {
225
+ "foodforthought": {
226
+ "command": "python",
227
+ "args": ["-m", "ate.mcp_server"],
228
+ "env": {
229
+ "ATE_API_URL": "https://kindly.fyi/api"
230
+ }
231
+ }
232
+ }
233
+ }
234
+ ```
235
+
236
+ 4. Restart Cursor
237
+
238
+ ### Available MCP Tools (37+)
239
+
240
+ | Category | Tools |
241
+ |----------|-------|
242
+ | **Skill Compiler** | `ate_compile_skill`, `ate_validate_skill_spec`, `ate_test_compiled_skill`, `ate_publish_compiled_skill`, `ate_check_skill_compatibility` |
243
+ | **Primitives** | `ate_list_primitives`, `ate_get_primitive` |
244
+ | **Skills** | `ate_skills_list`, `ate_skills_create`, `ate_skills_get`, `ate_pull`, `ate_upload` |
245
+ | **Testing** | `ate_test`, `ate_simulate` |
246
+ | **Compatibility** | `ate_adapt`, `ate_compatibility_check` |
247
+ | **Parts** | `ate_parts_list`, `ate_parts_check`, `ate_parts_require`, `ate_deps_audit` |
248
+ | **Generation** | `ate_generate` |
249
+ | **Workflows** | `ate_workflow_validate`, `ate_workflow_run`, `ate_workflow_export` |
250
+ | **Teams** | `ate_team_create`, `ate_team_invite`, `ate_team_list`, `ate_team_share` |
251
+ | **Datasets** | `ate_data_upload`, `ate_data_list`, `ate_data_promote`, `ate_data_export` |
252
+ | **Deployment** | `ate_deploy`, `ate_deploy_status` |
253
+ | **Audit** | `ate_audit_trail` |
254
+
255
+ ### MCP Resources
256
+
257
+ - `skill://{id}` - Skill details and configuration
258
+ - `part://{id}` - Hardware part specifications
259
+ - `workflow://{id}` - Workflow definition
260
+ - `team://{id}` - Team information
261
+ - `deployment://{id}` - Deployment status
262
+ - `audit://{id}` - Audit trail
263
+
264
+ ### MCP Prompts
265
+
266
+ - `setup_workflow` - Guide for multi-skill workflows
267
+ - `deploy_skill` - Step-by-step deployment guide
268
+ - `debug_compatibility` - Debug skill transfer issues
269
+ - `onboard_robot` - Add a new robot to the platform
270
+ - `audit_deployment` - Generate audit reports
271
+
272
+ See the [MCP Server Guide](../docs/MCP_SERVER_GUIDE.md) for full documentation.
273
+
274
+ ## CI/CD Integration
275
+
276
+ ### GitHub Actions
277
+
278
+ Use the provided actions for CI/CD:
279
+
280
+ ```yaml
281
+ name: Skill CI
282
+ on: [push, pull_request]
283
+ jobs:
284
+ test:
285
+ runs-on: ubuntu-latest
286
+ steps:
287
+ - uses: actions/checkout@v4
288
+ - uses: kindly-robotics/test-skill@v1
289
+ with:
290
+ skill-path: ./
291
+ robot-model: ur5
292
+ - uses: kindly-robotics/check-transfer@v1
293
+ with:
294
+ skill: .
295
+ min-score: 0.6
296
+ ```
297
+
298
+ ## License
299
+
300
+ Copyright © 2024-2025 Kindly Robotics. All rights reserved.
@@ -0,0 +1,254 @@
1
+ # FoodforThought CLI
2
+
3
+ GitHub-like CLI tool for the FoodforThought robotics repository platform.
4
+
5
+ **Version**: 0.2.1
6
+ **PyPI**: https://pypi.org/project/foodforthought-cli/
7
+
8
+ ## Installation
9
+
10
+ ```bash
11
+ pip install foodforthought-cli
12
+ ```
13
+
14
+ Or install from source:
15
+
16
+ ```bash
17
+ cd foodforthought-cli
18
+ pip install -e .
19
+ ```
20
+
21
+ ## Configuration
22
+
23
+ Set environment variables:
24
+
25
+ ```bash
26
+ export ATE_API_URL="https://kindly.fyi/api"
27
+ export ATE_API_KEY="your-api-key-here"
28
+ ```
29
+
30
+ ## Usage
31
+
32
+ ### Initialize a repository
33
+
34
+ ```bash
35
+ ate init my-robot-skill -d "A skill for my robot" -v public
36
+ ```
37
+
38
+ ### Clone a repository
39
+
40
+ ```bash
41
+ ate clone <repository-id>
42
+ ```
43
+
44
+ ### Create a commit
45
+
46
+ ```bash
47
+ ate commit -m "Add new control algorithm"
48
+ ```
49
+
50
+ ### Push to remote
51
+
52
+ ```bash
53
+ ate push -b main
54
+ ```
55
+
56
+ ### Deploy to robot
57
+
58
+ ```bash
59
+ ate deploy unitree-r1
60
+ ```
61
+
62
+ ## Commands
63
+
64
+ ### Repository Management
65
+ - `ate init <name>` - Initialize a new repository
66
+ - `ate clone <repo-id>` - Clone a repository
67
+ - `ate commit -m <message>` - Create a commit
68
+ - `ate push [-b <branch>]` - Push commits to remote
69
+
70
+ ### Skill Pipeline
71
+ - `ate pull <skill-id> [--robot <robot>] [--format json|rlds|lerobot] [--output ./data]` - Pull skill data for training
72
+ - `ate upload <video-path> --robot <robot> --task <task> [--project <id>]` - Upload demonstrations for labeling
73
+ - `ate check-transfer --from <source-robot> --to <target-robot> [--skill <id>]` - Check skill transfer compatibility
74
+ - `ate labeling-status <job-id>` - Check labeling job status
75
+
76
+ ### Parts & Dependencies (New in v0.2.0)
77
+ - `ate parts list [--category gripper]` - List available hardware parts
78
+ - `ate parts check <skill-id>` - Check part compatibility for a skill
79
+ - `ate parts require <part-id> --skill <skill-id>` - Add part dependency to a skill
80
+ - `ate deps audit` - Verify all dependencies are compatible
81
+
82
+ ### Text-to-Skill Generation (New in v0.2.0)
83
+ - `ate generate "<description>" --robot <robot> --output ./skill/` - Generate skill skeleton from natural language
84
+
85
+ Example:
86
+ ```bash
87
+ ate generate "pick up box and place on pallet" --robot franka-panda --output ./new-skill/
88
+ ```
89
+
90
+ ### Workflow Orchestration (New in v0.2.0)
91
+ - `ate workflow validate <pipeline.yaml>` - Validate a workflow definition
92
+ - `ate workflow run <pipeline.yaml> --sim` - Run workflow in simulation
93
+ - `ate workflow export <pipeline.yaml> --format ros2` - Export to ROS2 launch format
94
+
95
+ ### Team Collaboration (New in v0.2.0)
96
+ - `ate team create <name>` - Create a new team
97
+ - `ate team invite <email> --role member` - Invite a member
98
+ - `ate team list` - List teams and members
99
+ - `ate skill share <skill-id> --team <team-slug>` - Share a skill with a team
100
+
101
+ ### Skill Compiler (New in v0.2.1)
102
+
103
+ Compile skill.yaml specifications into deployable packages. See [docs/SKILL_COMPILER.md](docs/SKILL_COMPILER.md) for full documentation.
104
+
105
+ ```bash
106
+ # Validate a skill specification
107
+ ate validate-skill my_skill.skill.yaml
108
+
109
+ # Compile to Python package
110
+ ate compile my_skill.skill.yaml --target python --output ./dist
111
+
112
+ # Compile to ROS2 package
113
+ ate compile my_skill.skill.yaml --target ros2 --robot robots/ur5.urdf
114
+
115
+ # Test the compiled skill
116
+ ate test-skill ./dist --mode dry-run
117
+
118
+ # Check robot compatibility
119
+ ate check-compatibility my_skill.skill.yaml --robot-urdf robots/ur5.urdf
120
+
121
+ # Publish to registry
122
+ ate publish-skill ./dist --visibility public
123
+ ```
124
+
125
+ **Quick Start for AI Assistants:**
126
+ 1. `ate_list_primitives` - Discover available building blocks
127
+ 2. `ate_validate_skill_spec` - Check skill.yaml for errors
128
+ 3. `ate_check_skill_compatibility` - Verify robot compatibility
129
+ 4. `ate_compile_skill` - Generate deployable code
130
+ 5. `ate_test_compiled_skill` - Test without a robot
131
+
132
+ ### Dataset Management (New in v0.2.0)
133
+ - `ate data upload ./sensor-logs/ --skill <id> --stage raw` - Upload sensor data
134
+ - `ate data list --skill <id> --stage annotated` - List datasets
135
+ - `ate data promote <dataset-id> --to skill-abstracted` - Promote to next stage
136
+ - `ate data export <dataset-id> --format rlds` - Export dataset
137
+
138
+ ### Deployment & Configuration (New in v0.2.0)
139
+ - `ate deploy --config deploy.yaml --target fleet-alpha` - Deploy with config
140
+ - `ate deploy status <fleet-name>` - Check deployment status
141
+
142
+ ### Deployment & Testing
143
+ - `ate deploy <robot-type>` - Deploy to a robot (e.g., unitree-r1)
144
+ - `ate test [-e gazebo|mujoco|pybullet|webots] [-r robot]` - Test skills in simulation
145
+ - `ate benchmark [-t speed|accuracy|robustness|efficiency|all]` - Run performance benchmarks
146
+ - `ate adapt <source-robot> <target-robot>` - Adapt skills between robots
147
+
148
+ ### Safety & Validation
149
+ - `ate validate [-c collision|speed|workspace|force|all]` - Validate safety and compliance
150
+ - `ate stream [start|stop|status] [-s sensors...]` - Stream sensor data
151
+
152
+ ## Cursor IDE Integration (MCP)
153
+
154
+ FoodforThought CLI includes a full MCP (Model Context Protocol) server for integration with Cursor IDE.
155
+
156
+ ### Quick Install via Deep Link
157
+
158
+ Click this link to install in Cursor:
159
+ ```
160
+ cursor://anysphere.cursor-deeplink/mcp/install?name=foodforthought&config=eyJtY3BTZXJ2ZXJzIjogeyJmb29kZm9ydGhvdWdodCI6IHsiY29tbWFuZCI6ICJweXRob24iLCAiYXJncyI6IFsiLW0iLCAiYXRlLm1jcF9zZXJ2ZXIiXSwgImVudiI6IHsiQVRFX0FQSV9VUkwiOiAiaHR0cHM6Ly9raW5kbHkuZnlpL2FwaSJ9fX19
161
+ ```
162
+
163
+ ### Manual Installation
164
+
165
+ 1. Install the CLI:
166
+ ```bash
167
+ pip install foodforthought-cli
168
+ ```
169
+
170
+ 2. Install MCP SDK:
171
+ ```bash
172
+ pip install mcp
173
+ ```
174
+
175
+ 3. Add to your Cursor MCP config (`~/.cursor/mcp.json` or `.cursor/mcp.json`):
176
+ ```json
177
+ {
178
+ "mcpServers": {
179
+ "foodforthought": {
180
+ "command": "python",
181
+ "args": ["-m", "ate.mcp_server"],
182
+ "env": {
183
+ "ATE_API_URL": "https://kindly.fyi/api"
184
+ }
185
+ }
186
+ }
187
+ }
188
+ ```
189
+
190
+ 4. Restart Cursor
191
+
192
+ ### Available MCP Tools (37+)
193
+
194
+ | Category | Tools |
195
+ |----------|-------|
196
+ | **Skill Compiler** | `ate_compile_skill`, `ate_validate_skill_spec`, `ate_test_compiled_skill`, `ate_publish_compiled_skill`, `ate_check_skill_compatibility` |
197
+ | **Primitives** | `ate_list_primitives`, `ate_get_primitive` |
198
+ | **Skills** | `ate_skills_list`, `ate_skills_create`, `ate_skills_get`, `ate_pull`, `ate_upload` |
199
+ | **Testing** | `ate_test`, `ate_simulate` |
200
+ | **Compatibility** | `ate_adapt`, `ate_compatibility_check` |
201
+ | **Parts** | `ate_parts_list`, `ate_parts_check`, `ate_parts_require`, `ate_deps_audit` |
202
+ | **Generation** | `ate_generate` |
203
+ | **Workflows** | `ate_workflow_validate`, `ate_workflow_run`, `ate_workflow_export` |
204
+ | **Teams** | `ate_team_create`, `ate_team_invite`, `ate_team_list`, `ate_team_share` |
205
+ | **Datasets** | `ate_data_upload`, `ate_data_list`, `ate_data_promote`, `ate_data_export` |
206
+ | **Deployment** | `ate_deploy`, `ate_deploy_status` |
207
+ | **Audit** | `ate_audit_trail` |
208
+
209
+ ### MCP Resources
210
+
211
+ - `skill://{id}` - Skill details and configuration
212
+ - `part://{id}` - Hardware part specifications
213
+ - `workflow://{id}` - Workflow definition
214
+ - `team://{id}` - Team information
215
+ - `deployment://{id}` - Deployment status
216
+ - `audit://{id}` - Audit trail
217
+
218
+ ### MCP Prompts
219
+
220
+ - `setup_workflow` - Guide for multi-skill workflows
221
+ - `deploy_skill` - Step-by-step deployment guide
222
+ - `debug_compatibility` - Debug skill transfer issues
223
+ - `onboard_robot` - Add a new robot to the platform
224
+ - `audit_deployment` - Generate audit reports
225
+
226
+ See the [MCP Server Guide](../docs/MCP_SERVER_GUIDE.md) for full documentation.
227
+
228
+ ## CI/CD Integration
229
+
230
+ ### GitHub Actions
231
+
232
+ Use the provided actions for CI/CD:
233
+
234
+ ```yaml
235
+ name: Skill CI
236
+ on: [push, pull_request]
237
+ jobs:
238
+ test:
239
+ runs-on: ubuntu-latest
240
+ steps:
241
+ - uses: actions/checkout@v4
242
+ - uses: kindly-robotics/test-skill@v1
243
+ with:
244
+ skill-path: ./
245
+ robot-model: ur5
246
+ - uses: kindly-robotics/check-transfer@v1
247
+ with:
248
+ skill: .
249
+ min-score: 0.6
250
+ ```
251
+
252
+ ## License
253
+
254
+ Copyright © 2024-2025 Kindly Robotics. All rights reserved.
@@ -1,4 +1,4 @@
1
1
  """FoodforThought CLI (ATE) - GitHub-like interface for robotics repositories"""
2
2
 
3
- __version__ = "0.2.0"
3
+ __version__ = "0.2.3"
4
4