skillwiki 0.9.11 → 0.9.12

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/cli.js CHANGED
@@ -5455,6 +5455,12 @@ function checkCliChannels(argv, home) {
5455
5455
  const devChannels = channels.filter((c) => c.isDevLink);
5456
5456
  const prodChannels = channels.filter((c) => !c.isDevLink);
5457
5457
  if (devChannels.length > 0 && prodChannels.length > 0) {
5458
+ const hasInstall2 = prodChannels.some((c) => c.name === "install");
5459
+ if (!hasInstall2) {
5460
+ const devNames2 = devChannels.map((c) => `${c.name}(dev)`);
5461
+ const prodNames2 = prodChannels.map((c) => c.name);
5462
+ return check("pass", "cli_channels", "CLI channels", `${channels.length} channels: ${[...devNames2, ...prodNames2].join(", ")} \u2014 dev source with installed production channels`);
5463
+ }
5458
5464
  const devNames = devChannels.map((c) => `${c.name}(dev)`);
5459
5465
  const prodNames = prodChannels.map((c) => c.name);
5460
5466
  return check(
@@ -5476,6 +5482,9 @@ function checkCliChannels(argv, home) {
5476
5482
  }
5477
5483
  return check("pass", "cli_channels", "CLI channels", `${channels.length} channels: ${names.join(", ")}`);
5478
5484
  }
5485
+ function isDevSourceRun(argv) {
5486
+ return argv.length >= 2 && argv[1].endsWith("cli.js");
5487
+ }
5479
5488
  async function checkConfigFile(home) {
5480
5489
  const cfgPath = configPath(home);
5481
5490
  if (!existsSync11(cfgPath)) {
@@ -5582,7 +5591,7 @@ function checkNpmUpdate(home, currentVersion) {
5582
5591
  }
5583
5592
  return check("pass", "npm_update", "npm CLI version", `v${currentVersion} (${distTag}: v${latest})`);
5584
5593
  }
5585
- function checkPluginVersionDrift(home, currentVersion) {
5594
+ function checkPluginVersionDrift(home, currentVersion, devSourceRun) {
5586
5595
  const plugins = findPluginInstallations(home);
5587
5596
  if (plugins.length === 0) {
5588
5597
  return check("pass", "plugin_version_drift", "Plugin/CLI version", "Plugin not installed \u2014 CLI only");
@@ -5598,6 +5607,10 @@ function checkPluginVersionDrift(home, currentVersion) {
5598
5607
  const labels = plugins.map((plugin) => `${plugin.label} plugin`).join(", ");
5599
5608
  return check("pass", "plugin_version_drift", "Plugin/CLI version", `${labels}, and CLI all at v${currentVersion}`);
5600
5609
  }
5610
+ if (devSourceRun && drifted.every((plugin) => semverGt(currentVersion, plugin.version))) {
5611
+ const details2 = drifted.map((plugin) => `${plugin.label} plugin v${plugin.version}`).join(", ");
5612
+ return check("info", "plugin_version_drift", "Plugin/CLI version", `Dev source v${currentVersion} is ahead of installed ${details2}`);
5613
+ }
5601
5614
  const details = drifted.map((plugin) => {
5602
5615
  const updateCmd = pluginUpdateCommand(plugin, currentVersion);
5603
5616
  return `${plugin.label} plugin v${plugin.version} \u2260 CLI v${currentVersion} \u2014 run \`${updateCmd}\``;
@@ -6270,7 +6283,7 @@ function vaultSyncChecks(input) {
6270
6283
  "Log file is empty"
6271
6284
  );
6272
6285
  } else {
6273
- const lastLine = lines[lines.length - 1];
6286
+ const lastLine = [...lines].reverse().find((line) => /FAIL|OK push/.test(line)) ?? lines[lines.length - 1];
6274
6287
  if (/FAIL/.test(lastLine)) {
6275
6288
  c3 = check(
6276
6289
  "error",
@@ -6549,6 +6562,7 @@ async function vaultMetrics(resolvedPath) {
6549
6562
  }
6550
6563
  async function runDoctor(input) {
6551
6564
  const checks = [];
6565
+ const devSourceRun = isDevSourceRun(input.argv);
6552
6566
  const vsConfig = readVaultSyncConfig(input.home);
6553
6567
  checks.push(checkNodeVersion());
6554
6568
  checks.push(checkCliChannels(input.argv, input.home));
@@ -6587,7 +6601,7 @@ async function runDoctor(input) {
6587
6601
  checks.push(checkSkillsInstalled(input.home, input.cwd));
6588
6602
  checks.push(checkDuplicateSkills(input.home));
6589
6603
  checks.push(checkNpmUpdate(input.home, input.currentVersion));
6590
- checks.push(checkPluginVersionDrift(input.home, input.currentVersion));
6604
+ checks.push(checkPluginVersionDrift(input.home, input.currentVersion, devSourceRun));
6591
6605
  checks.push(...vaultSyncChecks({
6592
6606
  home: input.home,
6593
6607
  vaultSyncInstalled: vsConfig.installed,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.9.11",
3
+ "version": "0.9.12",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "skillwiki": "dist/cli.js"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.9.11",
3
+ "version": "0.9.12",
4
4
  "skills": "./",
5
5
  "description": "Project-aware Karpathy-style knowledge base for Claude Code: 18 prompt-only skills (wiki-*, proj-*, using-skillwiki) backed by the deterministic `skillwiki` CLI.",
6
6
  "author": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillwiki",
3
- "version": "0.9.11",
3
+ "version": "0.9.12",
4
4
  "description": "Project-aware Karpathy-style knowledge base for Codex with 18 prompt-only skills backed by the deterministic skillwiki CLI.",
5
5
  "author": {
6
6
  "name": "karlorz",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skillwiki/skills",
3
- "version": "0.9.11",
3
+ "version": "0.9.12",
4
4
  "private": true,
5
5
  "files": [
6
6
  "wiki-*",