nova-control-mcp-server 0.0.7 → 0.0.8

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.
@@ -166,65 +166,83 @@ async function y(e, t) {
166
166
  if (r === "" || r.startsWith("#")) continue;
167
167
  let a = r.split(/\s+/), o = a[0].toLowerCase();
168
168
  switch (!0) {
169
- case o === "home":
170
- await e.home();
169
+ case o === "home": {
170
+ let t = a[1] == null ? void 0 : Number(a[1]);
171
+ if (t != null && isNaN(t)) throw Error(`line ${i}: home: within_ms must be a number, got '${a[1]}'`);
172
+ await e.home(t);
171
173
  break;
174
+ }
172
175
  case o === "shift-to": {
173
176
  let t = Number(a[1]);
174
177
  if (isNaN(t)) throw Error(`line ${i}: shift-to requires a numeric angle, got '${a[1]}'`);
175
- await e.shiftHeadTo(t);
178
+ let n = a[2] == null ? void 0 : Number(a[2]);
179
+ if (n != null && isNaN(n)) throw Error(`line ${i}: shift-to: within_ms must be a number, got '${a[2]}'`);
180
+ await e.shiftHeadTo(t, n);
176
181
  break;
177
182
  }
178
183
  case o === "roll-to": {
179
184
  let t = Number(a[1]);
180
185
  if (isNaN(t)) throw Error(`line ${i}: roll-to requires a numeric angle, got '${a[1]}'`);
181
- await e.rollHeadTo(t);
186
+ let n = a[2] == null ? void 0 : Number(a[2]);
187
+ if (n != null && isNaN(n)) throw Error(`line ${i}: roll-to: within_ms must be a number, got '${a[2]}'`);
188
+ await e.rollHeadTo(t, n);
182
189
  break;
183
190
  }
184
191
  case o === "pitch-to": {
185
192
  let t = Number(a[1]);
186
193
  if (isNaN(t)) throw Error(`line ${i}: pitch-to requires a numeric angle, got '${a[1]}'`);
187
- await e.pitchHeadTo(t);
194
+ let n = a[2] == null ? void 0 : Number(a[2]);
195
+ if (n != null && isNaN(n)) throw Error(`line ${i}: pitch-to: within_ms must be a number, got '${a[2]}'`);
196
+ await e.pitchHeadTo(t, n);
188
197
  break;
189
198
  }
190
199
  case o === "rotate-to": {
191
200
  let t = Number(a[1]);
192
201
  if (isNaN(t)) throw Error(`line ${i}: rotate-to requires a numeric angle, got '${a[1]}'`);
193
- await e.rotateBodyTo(t);
202
+ let n = a[2] == null ? void 0 : Number(a[2]);
203
+ if (n != null && isNaN(n)) throw Error(`line ${i}: rotate-to: within_ms must be a number, got '${a[2]}'`);
204
+ await e.rotateBodyTo(t, n);
194
205
  break;
195
206
  }
196
207
  case o === "lift-to": {
197
208
  let t = Number(a[1]);
198
209
  if (isNaN(t)) throw Error(`line ${i}: lift-to requires a numeric angle, got '${a[1]}'`);
199
- await e.liftHeadTo(t);
210
+ let n = a[2] == null ? void 0 : Number(a[2]);
211
+ if (n != null && isNaN(n)) throw Error(`line ${i}: lift-to: within_ms must be a number, got '${a[2]}'`);
212
+ await e.liftHeadTo(t, n);
200
213
  break;
201
214
  }
202
215
  case o === "move": {
203
- let t = {};
216
+ let t = {}, n;
204
217
  for (let e = 1; e < a.length; e += 2) {
205
- let n = a[e].toLowerCase(), r = Number(a[e + 1]);
206
- if (isNaN(r)) throw Error(`line ${i}: '${n}' requires a numeric angle, got '${a[e + 1]}'`);
207
- switch (n) {
218
+ let r = a[e].toLowerCase(), o = Number(a[e + 1]);
219
+ if (r === "within-ms") {
220
+ if (isNaN(o)) throw Error(`line ${i}: within-ms requires a numeric value, got '${a[e + 1]}'`);
221
+ n = o;
222
+ break;
223
+ }
224
+ if (isNaN(o)) throw Error(`line ${i}: '${r}' requires a numeric angle, got '${a[e + 1]}'`);
225
+ switch (r) {
208
226
  case "shift-to":
209
- t.s1 = r;
227
+ t.s1 = o;
210
228
  break;
211
229
  case "roll-to":
212
- t.s2 = r;
230
+ t.s2 = o;
213
231
  break;
214
232
  case "pitch-to":
215
- t.s3 = r;
233
+ t.s3 = o;
216
234
  break;
217
235
  case "rotate-to":
218
- t.s4 = r;
236
+ t.s4 = o;
219
237
  break;
220
238
  case "lift-to":
221
- t.s5 = r;
239
+ t.s5 = o;
222
240
  break;
223
- default: throw Error(`line ${i}: unknown move argument '${n}'`);
241
+ default: throw Error(`line ${i}: unknown move argument '${r}'`);
224
242
  }
225
243
  }
226
244
  if (Object.keys(t).length === 0) throw Error(`line ${i}: move requires at least one servo argument`);
227
- e.State = t, await e.sendServoState();
245
+ await e.moveTo(t, n);
228
246
  break;
229
247
  }
230
248
  case o === "wait": {
@@ -555,7 +573,7 @@ async function B(e) {
555
573
  function V() {
556
574
  let e = new i({
557
575
  name: "nova-control-mcp-server",
558
- version: "0.0.7"
576
+ version: "0.0.8"
559
577
  }, { capabilities: { tools: {} } });
560
578
  return e.setRequestHandler(c, async () => ({ tools: O })), e.setRequestHandler(s, async (e) => {
561
579
  let t = e.params.name, n = e.params.arguments ?? {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nova-control-mcp-server",
3
3
  "description": "MCP server for controlling a NOVA DIY Artificial Intelligence Robot by Creoqode",
4
- "version": "0.0.7",
4
+ "version": "0.0.8",
5
5
  "type": "module",
6
6
  "keywords": [
7
7
  "nova",