agenticros 0.1.16 → 0.1.17

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/dist/menu.d.ts CHANGED
@@ -1,9 +1,18 @@
1
1
  /**
2
2
  * Interactive top-level menu for `agenticros` (invoked with no subcommand).
3
3
  *
4
- * Adaptive: when doctor reports a red check (workspace not built, no API key,
5
- * etc.) the first option becomes "First-time setup" so brand-new users land
6
- * naturally on `agenticros init`. Otherwise we lead with "Launch with real robot".
4
+ * Behavior:
5
+ * - Looping: the menu redisplays after every non-launch action (doctor, config,
6
+ * skills, etc.) so the user keeps a stable home base. Only the real-robot and
7
+ * simulation launches hand off the terminal to a long-running process and
8
+ * therefore terminate the menu.
9
+ * - Every sub-prompt offers an explicit "Back to main menu" option so users
10
+ * never get trapped on a path they accidentally entered (notably the sim
11
+ * robot picker, which previously had no escape hatch).
12
+ * - Adaptive: when doctor reports a red check (workspace not built, no API key,
13
+ * etc.) the first option becomes "First-time setup" so brand-new users land
14
+ * naturally on `agenticros init`. Otherwise we lead with "Launch with real
15
+ * robot".
7
16
  */
8
17
  export declare function runMenu(): Promise<void>;
9
18
  //# sourceMappingURL=menu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA6F7C"}
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAyBH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAc7C"}
package/dist/menu.js CHANGED
@@ -1,11 +1,20 @@
1
1
  /**
2
2
  * Interactive top-level menu for `agenticros` (invoked with no subcommand).
3
3
  *
4
- * Adaptive: when doctor reports a red check (workspace not built, no API key,
5
- * etc.) the first option becomes "First-time setup" so brand-new users land
6
- * naturally on `agenticros init`. Otherwise we lead with "Launch with real robot".
4
+ * Behavior:
5
+ * - Looping: the menu redisplays after every non-launch action (doctor, config,
6
+ * skills, etc.) so the user keeps a stable home base. Only the real-robot and
7
+ * simulation launches hand off the terminal to a long-running process and
8
+ * therefore terminate the menu.
9
+ * - Every sub-prompt offers an explicit "Back to main menu" option so users
10
+ * never get trapped on a path they accidentally entered (notably the sim
11
+ * robot picker, which previously had no escape hatch).
12
+ * - Adaptive: when doctor reports a red check (workspace not built, no API key,
13
+ * etc.) the first option becomes "First-time setup" so brand-new users land
14
+ * naturally on `agenticros init`. Otherwise we lead with "Launch with real
15
+ * robot".
7
16
  */
8
- import { select, confirm } from "@inquirer/prompts";
17
+ import { select } from "@inquirer/prompts";
9
18
  import { upCommand } from "./commands/up.js";
10
19
  import { downCommand } from "./commands/down.js";
11
20
  import { initCommand } from "./commands/init.js";
@@ -17,18 +26,31 @@ import { skillsCommand } from "./commands/skills.js";
17
26
  import { header, info, isTty, dim } from "./util/logger.js";
18
27
  import { readState, formatAge } from "./util/state.js";
19
28
  import { listSkills } from "./util/skills.js";
29
+ /** Sentinel used by sub-prompts to ask the main loop to redraw without acting. */
30
+ const BACK = "__back__";
20
31
  export async function runMenu() {
21
32
  if (!isTty) {
22
33
  info("Interactive menu requires a TTY. Use a subcommand (e.g. `agenticros up real`) or `agenticros --help`.");
23
34
  return;
24
35
  }
25
36
  header("AgenticROS - agentic AI for ROS-powered robots");
37
+ while (true) {
38
+ const shouldExit = await runMenuOnce();
39
+ if (shouldExit)
40
+ return;
41
+ }
42
+ }
43
+ /**
44
+ * Render the main menu once and dispatch the chosen action.
45
+ * @returns true if the menu should exit (the action either launched a
46
+ * long-running process or the user asked to quit).
47
+ */
48
+ async function runMenuOnce() {
26
49
  const state = readState();
27
50
  if (state.lastMode) {
28
51
  const age = formatAge(state.lastUpAt);
29
52
  dim(`Last mode: ${state.lastMode}${age ? ` (${age})` : ""}`);
30
53
  }
31
- // Need-setup detection. Doctor returns a count; we use that to reorder.
32
54
  const setupNeeded = await hasRedChecks();
33
55
  const skillsListing = safeListSkills();
34
56
  const skillsSuffix = formatSkillsSuffix(skillsListing);
@@ -53,83 +75,114 @@ export async function runMenu() {
53
75
  const choice = await select({
54
76
  message: "What would you like to do?",
55
77
  choices,
56
- default: setupNeeded ? "init" : state.lastMode === "sim-amr" || state.lastMode === "sim-arm" ? "sim" : "real",
78
+ default: setupNeeded
79
+ ? "init"
80
+ : state.lastMode === "sim-amr" || state.lastMode === "sim-arm"
81
+ ? "sim"
82
+ : "real",
57
83
  });
58
84
  switch (choice) {
59
85
  case "real":
60
86
  await upCommand({ target: "real" });
61
- break;
87
+ // Hands control to the foreground launcher; menu is done.
88
+ return true;
62
89
  case "sim": {
63
- const sub = await select({
64
- message: "Which simulated robot?",
65
- choices: [
66
- { name: "2-wheel AMR (camera + depth + LiDAR)", value: "sim-amr" },
67
- {
68
- name: "6-DOF arm (UR5e-shaped, per-joint position control)",
69
- value: "sim-arm",
70
- },
71
- ],
72
- default: "sim-amr",
73
- });
74
- const rviz = await confirm({ message: "Show RViz?", default: false });
75
- await upCommand({ target: sub, rviz });
76
- break;
90
+ const launched = await runSimFlow();
91
+ // launched === true ⇒ upCommand has taken over; otherwise back to main.
92
+ return launched;
77
93
  }
78
94
  case "init":
79
95
  await initCommand({});
80
- break;
96
+ return false;
81
97
  case "down":
82
98
  await downCommand({});
83
- break;
99
+ return false;
84
100
  case "doctor":
85
101
  await doctorCommand({});
86
- break;
102
+ return false;
87
103
  case "config":
88
104
  await configCommand({ action: "show" });
89
- break;
105
+ return false;
90
106
  case "skills":
91
107
  await skillsSubmenu();
92
- break;
108
+ return false;
93
109
  case "logs":
94
110
  await logsCommand({ target: undefined });
95
- break;
111
+ return false;
96
112
  case "status":
97
113
  await statusCommand({});
98
- break;
114
+ return false;
99
115
  case "quit":
100
116
  default:
101
- break;
117
+ return true;
102
118
  }
103
119
  }
104
120
  /**
105
- * Skills sub-menu. Reads the OpenClaw config so the prompt can show how many
106
- * skills are registered and offer the right next step (discover when nothing
107
- * is registered yet, otherwise list-first).
121
+ * Simulation launch flow. Two prompts (which robot, then RViz?) both expose
122
+ * "Back to main menu" so the user can bail out at any step without launching.
123
+ * @returns true if a simulation was launched (caller should exit the menu),
124
+ * false if the user backed out.
108
125
  */
109
- async function skillsSubmenu() {
110
- const listing = safeListSkills();
111
- const hasAvailable = listing && listing.available.length > 0;
112
- const hasRegistered = listing && listing.registered.length > 0;
113
- const action = await select({
114
- message: "Skills:",
126
+ async function runSimFlow() {
127
+ const target = await select({
128
+ message: "Which simulated robot?",
115
129
  choices: [
116
- { name: "List registered + available", value: "list" },
130
+ { name: "2-wheel AMR (camera + depth + LiDAR)", value: "sim-amr" },
117
131
  {
118
- name: hasAvailable
119
- ? `Discover & register (${listing.available.length} unregistered found)`
120
- : "Discover & register (interactive picker)",
121
- value: "discover",
132
+ name: "6-DOF arm (UR5e-shaped, per-joint position control)",
133
+ value: "sim-arm",
122
134
  },
123
- { name: "Add a skill by path or package name", value: "add" },
124
- { name: "Remove a skill", value: "remove" },
125
- { name: "Sync OpenClaw contracts.tools allowlist", value: "sync" },
126
- { name: "Back", value: "back" },
135
+ { name: "Back to main menu", value: BACK },
127
136
  ],
128
- default: hasRegistered ? "list" : "discover",
137
+ default: "sim-amr",
129
138
  });
130
- if (action === "back")
131
- return;
132
- await skillsCommand({ action });
139
+ if (target === BACK)
140
+ return false;
141
+ const rvizChoice = await select({
142
+ message: "Show RViz?",
143
+ choices: [
144
+ { name: "No", value: "no" },
145
+ { name: "Yes", value: "yes" },
146
+ { name: "Back to main menu", value: BACK },
147
+ ],
148
+ default: "no",
149
+ });
150
+ if (rvizChoice === BACK)
151
+ return false;
152
+ await upCommand({ target, rviz: rvizChoice === "yes" });
153
+ return true;
154
+ }
155
+ /**
156
+ * Skills sub-menu. Loops until the user picks "Back to main menu" so the user
157
+ * can run several skill actions (list, then discover, then sync, …) without
158
+ * round-tripping through the top-level menu each time.
159
+ */
160
+ async function skillsSubmenu() {
161
+ while (true) {
162
+ const listing = safeListSkills();
163
+ const hasAvailable = listing && listing.available.length > 0;
164
+ const hasRegistered = listing && listing.registered.length > 0;
165
+ const action = await select({
166
+ message: "Skills:",
167
+ choices: [
168
+ { name: "List registered + available", value: "list" },
169
+ {
170
+ name: hasAvailable
171
+ ? `Discover & register (${listing.available.length} unregistered found)`
172
+ : "Discover & register (interactive picker)",
173
+ value: "discover",
174
+ },
175
+ { name: "Add a skill by path or package name", value: "add" },
176
+ { name: "Remove a skill", value: "remove" },
177
+ { name: "Sync OpenClaw contracts.tools allowlist", value: "sync" },
178
+ { name: "Back to main menu", value: BACK },
179
+ ],
180
+ default: hasRegistered ? "list" : "discover",
181
+ });
182
+ if (action === BACK)
183
+ return;
184
+ await skillsCommand({ action });
185
+ }
133
186
  }
134
187
  /** Read skills without throwing; the menu must keep working even if the config is broken. */
135
188
  function safeListSkills() {
package/dist/menu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agenticros",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
4
4
  "type": "module",
5
5
  "description": "AgenticROS - agentic AI for ROS-powered robots. Single CLI to launch real-robot or simulated demos, manage configuration, and inspect status.",
6
6
  "keywords": [
@@ -1,5 +1,5 @@
1
1
  {
2
- "packedAt": "2026-06-09T16:58:42.740Z",
2
+ "packedAt": "2026-06-09T22:00:14.089Z",
3
3
  "repo": "https://github.com/PlaiPin/agenticros",
4
4
  "note": "This directory is a snapshot of the agenticros monorepo source. `agenticros init` will copy it to ~/agenticros and run pnpm install + colcon build there.",
5
5
  "layout": {