multiclaw 0.6.0 → 0.6.2

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 (2) hide show
  1. package/dist/index.js +16 -22
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -140,41 +140,35 @@ var RED = "\x1B[31m";
140
140
  var YELLOW = "\x1B[33m";
141
141
  var DIM = "\x1B[2m";
142
142
  var RESET = "\x1B[0m";
143
- var ANSI_RE = new RegExp(`${String.fromCharCode(27)}\\[[0-9;]*m`, "g");
144
143
  function color(enabled, code, text) {
145
144
  return enabled ? `${code}${text}${RESET}` : text;
146
145
  }
147
146
  function formatDoctorReport(report, useColor = true) {
148
147
  const lines = [];
149
148
  const c = (code, text) => color(useColor, code, text);
150
- const cell = (text, width, code) => {
151
- const rendered = code ? color(useColor, code, text) : text;
152
- const visible = text.replace(ANSI_RE, "").length;
153
- return rendered + " ".repeat(Math.max(0, width - visible));
154
- };
149
+ const statusLabel = (status) => status === "present" ? c(GREEN, "\u2713 available") : c(RED, "\u2717 missing");
150
+ const detail = (label, value, code) => ` ${c(DIM, `${label}:`)} ${code ? c(code, value) : value}`;
155
151
  lines.push("");
156
152
  lines.push(c(DIM, "multiclaw doctor \u2014 environment check"));
157
153
  lines.push("");
158
- lines.push(
159
- `${cell("provider", 12)}${cell("status", 10)}${cell("version", 14)}${cell("source", 9)}models auth`
160
- );
154
+ lines.push(c(DIM, "Providers"));
161
155
  for (const p of report.providers) {
162
- const mark = p.status === "present" ? "\u2713 present" : "\u2717 missing";
163
- const markCode = p.status === "present" ? GREEN : RED;
164
- const version = p.version ?? (p.status === "present" ? "" : "\u2014");
165
- const source = p.source ?? "\u2014";
166
- const sourceCode = p.source === "bundled" ? YELLOW : void 0;
167
- const models = p.modelSelection === "none" ? "n/a" : String(p.modelCount);
168
- const auth = p.authHint ? c(DIM, p.authHint) : "";
169
- lines.push(
170
- `${cell(p.label, 12)}${cell(mark, 10, markCode)}${cell(version, 14)}${cell(source, 9, sourceCode)}${cell(models, 7)}${auth}`
171
- );
172
- if (p.status === "present" && p.source === "bundled" && p.resolvedPath) {
173
- lines.push(c(DIM, ` bundled bridge: ${p.resolvedPath}`));
156
+ const title = `${statusLabel(p.status)} ${p.label}`;
157
+ lines.push(title);
158
+ if (p.version) lines.push(detail("version", p.version));
159
+ if (p.source) {
160
+ lines.push(detail("source", p.source, p.source === "bundled" ? YELLOW : void 0));
174
161
  }
162
+ const models = p.modelSelection === "none" ? "not supported" : String(p.modelCount);
163
+ lines.push(detail("models", models));
164
+ if (p.authHint) lines.push(detail("auth", p.authHint));
175
165
  if (p.status === "missing" && p.installHint) {
176
- lines.push(c(YELLOW, ` install: ${p.installHint}`));
166
+ lines.push(detail("install", p.installHint, YELLOW));
167
+ }
168
+ if (p.status === "present" && p.source === "bundled" && p.resolvedPath) {
169
+ lines.push(detail("bridge", p.resolvedPath));
177
170
  }
171
+ lines.push("");
178
172
  }
179
173
  if (report.config) {
180
174
  lines.push("");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "multiclaw",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "multiclaw": "dist/index.js"
@@ -30,8 +30,8 @@
30
30
  "@agentclientprotocol/claude-agent-acp": "^0.95.0",
31
31
  "@agentclientprotocol/codex-acp": "^2.2.2",
32
32
  "@inquirer/prompts": "^8.7.4",
33
- "@multiclawcli/core": "0.6.0",
34
- "@multiclawcli/dashboard": "0.6.0",
33
+ "@multiclawcli/core": "0.6.2",
34
+ "@multiclawcli/dashboard": "0.6.2",
35
35
  "commander": "^15.0.0",
36
36
  "jiti": "^2.7.0"
37
37
  },