@alfe.ai/integrations 0.1.3 → 0.1.4

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 -2
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1580,6 +1580,19 @@ var IntegrationManager = class {
1580
1580
  const execFileAsync = promisify(execFile);
1581
1581
  const log$1 = createLogger("OpenClawApplier");
1582
1582
  const DEFAULT_SKILLS_DIR = join(homedir(), ".alfe", "skills");
1583
+ /**
1584
+ * Bundled OpenClaw plugins that ship inside the runtime (not installed as npm
1585
+ * `@alfe.ai/openclaw-*` packages) and must always be present in `plugins.allow`.
1586
+ *
1587
+ * OpenClaw 2026.6.8+ treats a non-empty `plugins.allow` as an EXCLUSIVE allowlist:
1588
+ * any plugin absent from it is gated off even when its manifest is
1589
+ * `enabledByDefault`. Because we build `plugins.allow` incrementally from the npm
1590
+ * plugins we `applyPlugin`, bundled plugins never land in it and are silently
1591
+ * disabled. Keep this list minimal — only bundled plugins Alfe actually relies on.
1592
+ * Providers (anthropic/openai/elevenlabs/…) are intentionally excluded: Alfe routes
1593
+ * LLM/voice traffic through its own AI proxy, so leaving them gated off is correct.
1594
+ */
1595
+ const BUNDLED_BASELINE_ALLOW = ["browser"];
1583
1596
  function flattenConfig(obj, prefix = "") {
1584
1597
  const entries = [];
1585
1598
  for (const [key, val] of Object.entries(obj)) {
@@ -1721,8 +1734,9 @@ var OpenClawApplier = class {
1721
1734
  const parsed = JSON.parse(stdout.trim());
1722
1735
  if (Array.isArray(parsed)) currentAllow = parsed;
1723
1736
  } catch {}
1724
- if (currentAllow.includes(pkg)) return;
1725
- const updated = [...currentAllow, pkg];
1737
+ const missing = [...new Set([pkg, ...BUNDLED_BASELINE_ALLOW])].filter((id) => !currentAllow.includes(id));
1738
+ if (missing.length === 0) return;
1739
+ const updated = [...currentAllow, ...missing];
1726
1740
  try {
1727
1741
  await execFileAsync("openclaw", [
1728
1742
  "config",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfe.ai/integrations",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Integration lifecycle management for Alfe — registry, resolution, installation, and state",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -14,7 +14,7 @@
14
14
  "dependencies": {
15
15
  "@auriclabs/logger": "^0.1.1",
16
16
  "@alfe.ai/integration-manifest": "^0.2.1",
17
- "@alfe.ai/mcp-bundler": "^0.2.0"
17
+ "@alfe.ai/mcp-bundler": "^0.2.1"
18
18
  },
19
19
  "files": [
20
20
  "dist"