@webpresso/agent-kit 0.29.0 → 0.29.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.
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Webpresso agent-kit Claude Code plugin: blueprints, skills, hooks, MCP server",
9
- "version": "0.29.0"
9
+ "version": "0.29.1"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -23,5 +23,5 @@
23
23
  ]
24
24
  }
25
25
  ],
26
- "version": "0.29.0"
26
+ "version": "0.29.1"
27
27
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webpresso",
3
- "version": "0.29.0",
3
+ "version": "0.29.1",
4
4
  "description": "Webpresso agent-kit: blueprints, skills, lore commit protocol, tech-debt lifecycle",
5
5
  "skills": "./skills",
6
6
  "commands": "./commands",
package/bin/_run.js CHANGED
@@ -41,6 +41,8 @@ const RUNTIME_BIN_ARGS = {
41
41
  'wp-sessionstart-routing': ['hook', 'sessionstart-routing'],
42
42
  }
43
43
 
44
+ const RUNTIME_WP_SUBCOMMANDS = new Set(['mcp'])
45
+
44
46
  function resolvePackageRoot() {
45
47
  return join(dirname(fileURLToPath(import.meta.url)), '..')
46
48
  }
@@ -158,6 +160,10 @@ function buildRuntimeLaunchPlan({
158
160
  }) {
159
161
  const selectorArgs = RUNTIME_BIN_ARGS[binName]
160
162
  if (!selectorArgs) return null
163
+ if (binName === 'wp') {
164
+ const subcommand = forwardedArgs[0]
165
+ if (!RUNTIME_WP_SUBCOMMANDS.has(subcommand) && !forceCompiledRuntime) return null
166
+ }
161
167
 
162
168
  const manifest = runtimeManifest ?? readRuntimeManifest(repoRoot)
163
169
  if (!manifest) return null
package/bin/wp CHANGED
Binary file
@@ -323,6 +323,12 @@ function auditAgentKitNativeRuntimeSurface(root, candidate, packEntry, packedFil
323
323
  message: 'Publishable native launcher bin/wp must be a real file, not a symlink',
324
324
  });
325
325
  }
326
+ else if (!isRootWpDispatcher(stagedLauncherPath)) {
327
+ violations.push({
328
+ file: relativePath(root, stagedLauncherPath),
329
+ message: 'Publishable native launcher bin/wp must be the cross-platform JS dispatcher, not a native binary',
330
+ });
331
+ }
326
332
  const sizeBudget = evaluateAgentKitTarballSizeBudget(packEntry);
327
333
  if (!sizeBudget.sizeOk || !sizeBudget.unpackedOk) {
328
334
  violations.push({
@@ -359,6 +365,10 @@ function auditPackedTarballContent(root, candidate, packedFiles, forbiddenRules,
359
365
  }
360
366
  return checked;
361
367
  }
368
+ function isRootWpDispatcher(path) {
369
+ const text = readPackedText(path);
370
+ return Boolean(text?.startsWith('#!/usr/bin/env node') && text.includes("runNamedBin('wp')"));
371
+ }
362
372
  function auditPackedTarballSecrets(root, candidate, packedFiles, forbiddenPathRules, allowedPathRules, allowedMessageIds, deepScanExcludedPathPrefixes, violations) {
363
373
  const packageRelativeRoot = relativePath(root, candidate.packageRoot);
364
374
  const secretlintCandidates = packedFiles.filter((packedFile) => {
@@ -8,6 +8,7 @@ const DEPENDENCY_SECTIONS = [
8
8
  'optionalDependencies',
9
9
  'peerDependencies',
10
10
  ];
11
+ const NON_PUBLISHABLE_DEPENDENCY_PROTOCOLS = ['link:', 'workspace:', 'file:'];
11
12
  const BACKUP_FILENAME = '.package.json.prepack.backup';
12
13
  const DIST_BACKUP_DIRNAME = '.dist-prepack-backup';
13
14
  function asStringMap(value) {
@@ -61,16 +62,23 @@ export function resolveCatalogSpecifier(dependencyName, version, workspaceCatalo
61
62
  }
62
63
  return resolved;
63
64
  }
65
+ function assertPublishableDependencySpecifier(section, dependencyName, version) {
66
+ const blockedProtocol = NON_PUBLISHABLE_DEPENDENCY_PROTOCOLS.find((protocol) => version.startsWith(protocol));
67
+ if (!blockedProtocol)
68
+ return;
69
+ throw new Error(`Cannot pack ${section}.${dependencyName} with non-publishable ${blockedProtocol} specifier ${JSON.stringify(version)}`);
70
+ }
64
71
  export function createPackedManifest(manifest, workspaceCatalogs) {
65
72
  const packedManifest = { ...manifest };
66
73
  for (const section of DEPENDENCY_SECTIONS) {
67
74
  const dependencies = manifest[section];
68
75
  if (!dependencies)
69
76
  continue;
70
- packedManifest[section] = Object.fromEntries(Object.entries(dependencies).map(([dependencyName, version]) => [
71
- dependencyName,
72
- resolveCatalogSpecifier(dependencyName, version, workspaceCatalogs),
73
- ]));
77
+ packedManifest[section] = Object.fromEntries(Object.entries(dependencies).map(([dependencyName, version]) => {
78
+ const resolvedVersion = resolveCatalogSpecifier(dependencyName, version, workspaceCatalogs);
79
+ assertPublishableDependencySpecifier(section, dependencyName, resolvedVersion);
80
+ return [dependencyName, resolvedVersion];
81
+ }));
74
82
  }
75
83
  if ('bin' in packedManifest) {
76
84
  packedManifest.bin = normalizePackedBinField(packedManifest.bin);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webpresso/agent-kit",
3
- "version": "0.29.0",
3
+ "version": "0.29.1",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -719,10 +719,10 @@
719
719
  "@stryker-mutator/typescript-checker": "^9.6.1",
720
720
  "@playwright/test": "^1.55.0",
721
721
  "wrangler": "^4.50.0",
722
- "@webpresso/agent-kit-runtime-darwin-arm64": "0.29.0",
723
- "@webpresso/agent-kit-runtime-darwin-x64": "0.29.0",
724
- "@webpresso/agent-kit-runtime-linux-x64": "0.29.0",
725
- "@webpresso/agent-kit-runtime-linux-arm64": "0.29.0",
726
- "@webpresso/agent-kit-runtime-windows-x64": "0.29.0"
722
+ "@webpresso/agent-kit-runtime-darwin-arm64": "0.29.1",
723
+ "@webpresso/agent-kit-runtime-darwin-x64": "0.29.1",
724
+ "@webpresso/agent-kit-runtime-linux-x64": "0.29.1",
725
+ "@webpresso/agent-kit-runtime-linux-arm64": "0.29.1",
726
+ "@webpresso/agent-kit-runtime-windows-x64": "0.29.1"
727
727
  }
728
728
  }