@swmansion/argent 0.33.0 → 0.33.1-next.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.
Binary file
Binary file
Binary file
Binary file
Binary file
package/dist/cli-cmds.mjs CHANGED
@@ -35872,7 +35872,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
35872
35872
  var SESSION_ID2 = randomUUID5();
35873
35873
  function readCliVersion() {
35874
35874
  if (true) {
35875
- return "0.33.0";
35875
+ return "0.33.1-next.1";
35876
35876
  }
35877
35877
  return "0.0.0";
35878
35878
  }
@@ -16981,7 +16981,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
16981
16981
  var SESSION_ID = randomUUID4();
16982
16982
  function readCliVersion() {
16983
16983
  if (true) {
16984
- return "0.33.0";
16984
+ return "0.33.1-next.1";
16985
16985
  }
16986
16986
  return "0.0.0";
16987
16987
  }
@@ -20663,12 +20663,13 @@ function npxChildEnv(env = process.env) {
20663
20663
  }
20664
20664
  return childEnv;
20665
20665
  }
20666
- function isSkillsCliAvailable() {
20666
+ function isSkillsCliAvailable(cwd) {
20667
20667
  try {
20668
20668
  execSync("npx --force --no-install skills --version", {
20669
20669
  env: npxChildEnv(),
20670
20670
  stdio: ["ignore", "ignore", "ignore"],
20671
- timeout: PROBE_TIMEOUT_MS
20671
+ timeout: PROBE_TIMEOUT_MS,
20672
+ ...cwd ? { cwd } : {}
20672
20673
  });
20673
20674
  return true;
20674
20675
  } catch {
@@ -23345,10 +23346,10 @@ function bundledCopyFor(version) {
23345
23346
  }
23346
23347
  return SKILLS_DIR;
23347
23348
  }
23348
- function printManualInstructions(source, bundledCopy, scope, customRoot, npxMissing = false) {
23349
- const root = scope === "global" ? "~" : scope === "custom" ? customRoot : ".";
23349
+ function printManualInstructions(source, bundledCopy, scope, root, npxMissing = false) {
23350
+ const dir = (sub) => scope === "global" ? `~/${sub}` : shellQuotePath(`${root}/${sub}`);
23350
23351
  const add = `skills add ${source}${scope === "global" ? " -g" : ""} --skill '*' -y`;
23351
- const cd = scope === "custom" ? `cd ${customRoot} && ` : "";
23352
+ const cd = scope === "global" ? "" : `cd ${shellQuotePath(root)} && `;
23352
23353
  note(
23353
23354
  [
23354
23355
  `Skills are bundled at:`,
@@ -23357,10 +23358,10 @@ function printManualInstructions(source, bundledCopy, scope, customRoot, npxMiss
23357
23358
  `To install manually, copy them to your editor's skills directory:`,
23358
23359
  ``,
23359
23360
  ` ${import_picocolors10.default.dim("# Claude Code")}`,
23360
- ` mkdir -p ${root}/.claude/skills && cp -r ${bundledCopy}/* ${root}/.claude/skills/`,
23361
+ ` mkdir -p ${dir(".claude/skills")} && cp -r ${bundledCopy}/* ${dir(".claude/skills/")}`,
23361
23362
  ``,
23362
23363
  ` ${import_picocolors10.default.dim("# Cursor")}`,
23363
- ` mkdir -p ${root}/.cursor/skills && cp -r ${bundledCopy}/* ${root}/.cursor/skills/`,
23364
+ ` mkdir -p ${dir(".cursor/skills")} && cp -r ${bundledCopy}/* ${dir(".cursor/skills/")}`,
23364
23365
  ``,
23365
23366
  ...npxMissing ? [` ${import_picocolors10.default.dim("# Or, with pnpm:")}`, ` ${cd}pnpm dlx ${add}`] : [` ${import_picocolors10.default.dim("# Or use npx skills directly:")}`, ` ${cd}npx ${add}`]
23366
23367
  ].join("\n"),
@@ -23392,12 +23393,13 @@ function formatSkillsSummaryLine(skills) {
23392
23393
  return `${import_picocolors10.default.green("Skills")} ${written} installed`;
23393
23394
  }
23394
23395
  async function runSkillsStep(args) {
23395
- const { nonInteractive, fromTar, version, scope, customRoot } = args;
23396
+ const { nonInteractive, fromTar, version, scope, effectiveRoot } = args;
23397
+ const skillsCwd = scope === "global" ? void 0 : effectiveRoot;
23396
23398
  log.step(import_picocolors10.default.bold("Step 2: Skills Installation"));
23397
23399
  log.warn(import_picocolors10.default.yellow("Skills installation is required for Argent to function properly."));
23398
23400
  let skillsMethod;
23399
23401
  const online = await isOnline();
23400
- const offlineWithCache = !online && isSkillsCliAvailable();
23402
+ const offlineWithCache = !online && isSkillsCliAvailable(skillsCwd);
23401
23403
  const skillsCliReady = online || offlineWithCache;
23402
23404
  if (!skillsCliReady) {
23403
23405
  log.warn(
@@ -23436,8 +23438,7 @@ async function runSkillsStep(args) {
23436
23438
  const useGitHubSource = online && !fromTar && version !== "unknown";
23437
23439
  const skillsSource = useGitHubSource ? buildArgentSkillsSource(version) : SKILLS_DIR;
23438
23440
  const bundledCopy = useGitHubSource ? bundledCopyFor(version) : SKILLS_DIR;
23439
- const skillsCwd = scope === "custom" ? customRoot : void 0;
23440
- const skillsRoot = scope === "global" ? os3.homedir() : skillsCwd ?? process.cwd();
23441
+ const skillsRoot = scope === "global" ? os3.homedir() : effectiveRoot;
23441
23442
  const skillsScope = scope === "global" ? "global" : "project";
23442
23443
  const expected = listBundledSkills(bundledCopy);
23443
23444
  const snapshot = () => snapshotArgentSkills(skillsRoot, skillsScope, expected);
@@ -23447,7 +23448,7 @@ async function runSkillsStep(args) {
23447
23448
  let installedFrom = skillsSource;
23448
23449
  let fallbackReason = null;
23449
23450
  if (skillsMethod === "manual") {
23450
- printManualInstructions(skillsSource, bundledCopy, scope, customRoot);
23451
+ printManualInstructions(skillsSource, bundledCopy, scope, effectiveRoot);
23451
23452
  skillOutcome = "skipped";
23452
23453
  } else {
23453
23454
  const interactive = skillsMethod === "interactive";
@@ -23471,7 +23472,7 @@ async function runSkillsStep(args) {
23471
23472
  const fail = (err, attempted, npxMissing = false) => {
23472
23473
  if (!interactive) spinner2.stop(import_picocolors10.default.red("Skills installation failed."));
23473
23474
  log.error(`Failed to install skills from ${attempted}: ${meaningfulLine(err)}`);
23474
- printManualInstructions(bundledCopy, bundledCopy, scope, customRoot, npxMissing);
23475
+ printManualInstructions(bundledCopy, bundledCopy, scope, effectiveRoot, npxMissing);
23475
23476
  return "failure";
23476
23477
  };
23477
23478
  try {
@@ -23746,7 +23747,7 @@ async function init2(args) {
23746
23747
  fromTar: parsed.fromTar,
23747
23748
  version,
23748
23749
  scope,
23749
- customRoot
23750
+ effectiveRoot
23750
23751
  });
23751
23752
  log.step(import_picocolors11.default.bold("Step 3: Rules"));
23752
23753
  const copyResults = copyRulesAndAgents(
@@ -84132,16 +84132,22 @@ async function listAndroidSerials(options = {}) {
84132
84132
  const { stdout } = await runAdb(["devices"], { timeoutMs: options.devicesTimeoutMs });
84133
84133
  return parseAdbDevices(stdout);
84134
84134
  }
84135
+ function readEnrichment(serial, shellCommand) {
84136
+ return adbShell(serial, shellCommand, { timeoutMs: ENRICH_TIMEOUT_MS }).catch(() => "");
84137
+ }
84135
84138
  async function readAvdName(serial) {
84139
+ return (await readAvd(serial)).name;
84140
+ }
84141
+ async function readAvd(serial) {
84142
+ const read = (prop) => adbShell(serial, `getprop ${prop}`, { timeoutMs: ENRICH_TIMEOUT_MS }).then(
84143
+ (value) => value.trim(),
84144
+ () => null
84145
+ );
84136
84146
  const [modern, legacy] = await Promise.all([
84137
- adbShell(serial, "getprop ro.boot.qemu.avd_name", { timeoutMs: ENRICH_TIMEOUT_MS }).catch(
84138
- () => ""
84139
- ),
84140
- adbShell(serial, "getprop ro.kernel.qemu.avd_name", { timeoutMs: ENRICH_TIMEOUT_MS }).catch(
84141
- () => ""
84142
- )
84147
+ read("ro.boot.qemu.avd_name"),
84148
+ read("ro.kernel.qemu.avd_name")
84143
84149
  ]);
84144
- return modern.trim() || legacy.trim() || null;
84150
+ return { name: modern || legacy || null, answered: modern !== null || legacy !== null };
84145
84151
  }
84146
84152
  async function readEmulatorConsoleAvdName(serial, options = {}) {
84147
84153
  try {
@@ -84159,16 +84165,14 @@ async function readEmulatorConsoleAvdName(serial, options = {}) {
84159
84165
  }
84160
84166
  }
84161
84167
  async function readRuntimeKind(serial) {
84162
- const features = await adbShell(serial, "pm list features", {
84163
- timeoutMs: ENRICH_TIMEOUT_MS
84164
- }).catch(() => "");
84168
+ const [features, characteristics] = await Promise.all([
84169
+ readEnrichment(serial, "pm list features"),
84170
+ readEnrichment(serial, "getprop ro.build.characteristics")
84171
+ ]);
84165
84172
  if (/feature:android\.(software\.leanback|hardware\.type\.television)\b/.test(features)) {
84166
84173
  return "tv";
84167
84174
  }
84168
84175
  if (features.trim()) return "mobile";
84169
- const characteristics = await adbShell(serial, "getprop ro.build.characteristics", {
84170
- timeoutMs: ENRICH_TIMEOUT_MS
84171
- }).catch(() => "");
84172
84176
  const isTv = characteristics.split(",").map((c) => c.trim().toLowerCase()).includes("tv");
84173
84177
  if (isTv) return "tv";
84174
84178
  return void 0;
@@ -84184,6 +84188,17 @@ async function resolveRuntimeKindCached(serial, avdName) {
84184
84188
  androidRuntimeKindCache.set(serial, { avdName, kind });
84185
84189
  return kind;
84186
84190
  }
84191
+ async function resolveRuntimeKindAlongside(serial, avdPromise) {
84192
+ const cached3 = androidRuntimeKindCache.get(serial);
84193
+ const probe4 = cached3 ? void 0 : readRuntimeKind(serial);
84194
+ const avd = await avdPromise;
84195
+ if (cached3 && !avd.answered && consolePortFromAdbSerial(serial) !== null) return void 0;
84196
+ if (cached3 && cached3.avdName === avd.name) return cached3.kind;
84197
+ const kind = await (probe4 ?? readRuntimeKind(serial));
84198
+ if (kind === void 0) return void 0;
84199
+ androidRuntimeKindCache.set(serial, { avdName: avd.name, kind });
84200
+ return kind;
84201
+ }
84187
84202
  async function getAndroidRuntimeKind(serial, options = {}) {
84188
84203
  const serials = await listAndroidSerials(options);
84189
84204
  const ready2 = serials.find((d) => d.serial === serial && d.state === "device");
@@ -84214,23 +84229,20 @@ async function listAndroidDevices(opts = {}) {
84214
84229
  sdkLevel: null
84215
84230
  };
84216
84231
  }
84217
- const [model, sdk, avd] = await Promise.all([
84218
- adbShell(d.serial, "getprop ro.product.model", { timeoutMs: ENRICH_TIMEOUT_MS }).catch(
84219
- () => ""
84220
- ),
84221
- adbShell(d.serial, "getprop ro.build.version.sdk", { timeoutMs: ENRICH_TIMEOUT_MS }).catch(
84222
- () => ""
84223
- ),
84224
- readAvdName(d.serial)
84232
+ const avdPromise = readAvd(d.serial);
84233
+ const [model, sdk, avd, runtimeKind] = await Promise.all([
84234
+ readEnrichment(d.serial, "getprop ro.product.model"),
84235
+ readEnrichment(d.serial, "getprop ro.build.version.sdk"),
84236
+ avdPromise,
84237
+ opts.runtimeKind ? resolveRuntimeKindAlongside(d.serial, avdPromise) : void 0
84225
84238
  ]);
84226
- const runtimeKind = opts.runtimeKind ? await resolveRuntimeKindCached(d.serial, avd) : void 0;
84227
84239
  const sdkLevel = parseInt(sdk.trim(), 10);
84228
84240
  return {
84229
84241
  serial: d.serial,
84230
84242
  state: d.state,
84231
84243
  isEmulator: d.serial.startsWith("emulator-"),
84232
84244
  model: model.trim() || null,
84233
- avdName: avd,
84245
+ avdName: avd.name,
84234
84246
  sdkLevel: Number.isFinite(sdkLevel) ? sdkLevel : null,
84235
84247
  runtimeKind
84236
84248
  };
@@ -101261,7 +101273,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
101261
101273
  var SESSION_ID = (0, import_node_crypto3.randomUUID)();
101262
101274
  function readCliVersion() {
101263
101275
  if (true) {
101264
- return "0.33.0";
101276
+ return "0.33.1-next.1";
101265
101277
  }
101266
101278
  return "0.0.0";
101267
101279
  }
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swmansion/argent",
3
- "version": "0.33.0",
3
+ "version": "0.33.1-next.1",
4
4
  "mcpName": "io.github.software-mansion/argent",
5
5
  "description": "MCP server for iOS Simulator, Android Emulator, Chromium app and Mac app control",
6
6
  "license": "Apache-2.0",