@framers/agentos-extensions-registry 0.18.3 → 0.18.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.
@@ -38,7 +38,10 @@ export declare function getAvailableExtensions(): Promise<ExtensionInfo[]>;
38
38
  export declare function getAvailableChannels(): Promise<ExtensionInfo[]>;
39
39
  /**
40
40
  * Creates a pre-configured `ExtensionManifest` with all available curated
41
- * extensions. Missing optional dependencies are silently skipped.
41
+ * extensions. A pack that cannot load here (its npm package is not installed
42
+ * and no sibling source checkout provides it) is skipped. When the caller named
43
+ * that pack, a warning says which package to install; a pack swept in by
44
+ * `'all'` is skipped quietly.
42
45
  *
43
46
  * @example
44
47
  * ```typescript
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-builder.d.ts","sourceRoot":"","sources":["../src/manifest-builder.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAkB,MAAM,YAAY,CAAC;AAKjF,UAAU,0BAA0B;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,0BAA0B,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,CAAC,EAAE,OAAO,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClE,CAAC;CACH;AA+BD;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAQvE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAKrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgKjG"}
1
+ {"version":3,"file":"manifest-builder.d.ts","sourceRoot":"","sources":["../src/manifest-builder.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAkB,MAAM,YAAY,CAAC;AAQjF,UAAU,0BAA0B;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,0BAA0B,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,CAAC,EAAE,OAAO,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClE,CAAC;CACH;AAmID;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAQvE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAKrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4KjG"}
@@ -12,21 +12,129 @@
12
12
  import { CHANNEL_CATALOG, getChannelEntries } from './channel-registry.js';
13
13
  import { PROVIDER_CATALOG } from './provider-registry.js';
14
14
  import { TOOL_CATALOG } from './tool-registry.js';
15
+ import fs from 'node:fs';
16
+ import path from 'node:path';
17
+ import { fileURLToPath } from 'node:url';
18
+ /**
19
+ * Whether a package is installed and its entry file is on disk.
20
+ *
21
+ * Node defines `import.meta.resolve` (20.6+), which honours the package's
22
+ * `exports` map and handles packages that only export an "import" condition.
23
+ * It resolves without checking that the file exists, so the result is checked
24
+ * here: a package published without its build output is not installed in any
25
+ * useful sense. Test runners that transform modules (vitest's vite-node) do
26
+ * not define `import.meta.resolve`; there the lookup walks up the directory
27
+ * tree for `node_modules/<name>/package.json`, which is how Node locates a
28
+ * package, and applies the same entry-file check.
29
+ */
15
30
  function isPackageInstalled(packageName) {
16
31
  if (!packageName)
17
32
  return false;
18
- // Use import.meta.resolve (sync in Node 20.6+) for ESM-native resolution.
19
- // This correctly handles packages that only export "import" conditions.
33
+ if (typeof import.meta.resolve === 'function') {
34
+ try {
35
+ const resolved = import.meta.resolve(packageName);
36
+ // Node resolves a package's entry without checking that the file is on
37
+ // disk, so a package published without its build output still resolves.
38
+ return !resolved.startsWith('file:') || fs.existsSync(fileURLToPath(resolved));
39
+ }
40
+ catch {
41
+ return false;
42
+ }
43
+ }
44
+ return findInstalledPackageJson(packageName) !== null;
45
+ }
46
+ /**
47
+ * Walks up from this module's directory looking for an installed package whose
48
+ * entry file exists.
49
+ */
50
+ function findInstalledPackageJson(packageName) {
51
+ let dir = path.dirname(fileURLToPath(import.meta.url));
52
+ for (;;) {
53
+ const candidate = path.join(dir, 'node_modules', ...packageName.split('/'), 'package.json');
54
+ if (fs.existsSync(candidate)) {
55
+ const entry = entryFileOf(candidate);
56
+ return entry !== null && fs.existsSync(path.join(path.dirname(candidate), entry)) ? candidate : null;
57
+ }
58
+ const parent = path.dirname(dir);
59
+ if (parent === dir)
60
+ return null;
61
+ dir = parent;
62
+ }
63
+ }
64
+ /** The conditions Node applies when a package is loaded with `import`. */
65
+ const IMPORT_CONDITIONS = new Set(['import', 'node', 'module-sync', 'node-addons', 'default']);
66
+ /**
67
+ * Follows an `exports` target down to a file path the way Node does: a string
68
+ * is the path, an array is a list of fallbacks, and a conditions object yields
69
+ * the first key, in the package's own order, that is an active condition. A
70
+ * `null` target blocks the path (returned as null); undefined means nothing
71
+ * matched.
72
+ */
73
+ function resolveExportTarget(target, depth) {
74
+ if (typeof target === 'string')
75
+ return target;
76
+ if (target === null)
77
+ return null;
78
+ if (depth === 0 || typeof target !== 'object')
79
+ return undefined;
80
+ if (Array.isArray(target)) {
81
+ for (const item of target) {
82
+ const resolved = resolveExportTarget(item, depth - 1);
83
+ if (resolved !== undefined)
84
+ return resolved;
85
+ }
86
+ return undefined;
87
+ }
88
+ for (const [condition, value] of Object.entries(target)) {
89
+ if (!IMPORT_CONDITIONS.has(condition))
90
+ continue;
91
+ const resolved = resolveExportTarget(value, depth - 1);
92
+ if (resolved !== undefined)
93
+ return resolved;
94
+ }
95
+ return undefined;
96
+ }
97
+ /**
98
+ * The file `import` loads for an installed package, relative to its directory.
99
+ * A package with an `exports` field is resolved through it alone (Node does
100
+ * not fall back to `main`), so a map without a root entry for `import` gives
101
+ * null. Without `exports` the entry is `main`, then `index.js`.
102
+ */
103
+ function entryFileOf(packageJsonPath) {
104
+ let manifest = {};
20
105
  try {
21
- import.meta.resolve(packageName);
22
- return true;
106
+ manifest = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
23
107
  }
24
108
  catch {
25
- return false;
109
+ return null;
110
+ }
111
+ const exported = manifest.exports;
112
+ if (exported !== undefined && exported !== null) {
113
+ let target = exported;
114
+ if (typeof exported === 'object' && !Array.isArray(exported)) {
115
+ const hasSubpaths = Object.keys(exported).some((key) => key.startsWith('.'));
116
+ if (hasSubpaths)
117
+ target = exported['.'];
118
+ }
119
+ const resolved = resolveExportTarget(target, 4);
120
+ return typeof resolved === 'string' && resolved ? resolved : null;
26
121
  }
122
+ return typeof manifest.main === 'string' && manifest.main ? manifest.main : 'index.js';
123
+ }
124
+ /**
125
+ * Whether an entry carries a factory that can run in this installation.
126
+ *
127
+ * The built-in AgentOS packs ship their own `createPack` and always can. A
128
+ * factory backed by a sibling source checkout says so through `isAvailable()`;
129
+ * an npm install has no such checkout, and calling the factory there throws.
130
+ */
131
+ function hasUsableLocalFactory(entry) {
132
+ if (typeof entry.createPack !== 'function')
133
+ return false;
134
+ return typeof entry.createPack.isAvailable === 'function' ? entry.createPack.isAvailable() : true;
27
135
  }
28
136
  function isEntryAvailable(entry) {
29
- if (typeof entry.createPack === 'function')
137
+ if (hasUsableLocalFactory(entry))
30
138
  return true;
31
139
  return isPackageInstalled(entry.packageName);
32
140
  }
@@ -66,7 +174,10 @@ export async function getAvailableChannels() {
66
174
  }
67
175
  /**
68
176
  * Creates a pre-configured `ExtensionManifest` with all available curated
69
- * extensions. Missing optional dependencies are silently skipped.
177
+ * extensions. A pack that cannot load here (its npm package is not installed
178
+ * and no sibling source checkout provides it) is skipped. When the caller named
179
+ * that pack, a warning says which package to install; a pack swept in by
180
+ * `'all'` is skipped quietly.
70
181
  *
71
182
  * @example
72
183
  * ```typescript
@@ -94,8 +205,9 @@ export async function createCuratedManifest(options) {
94
205
  const secrets = options?.secrets;
95
206
  const logger = options?.logger ?? console;
96
207
  const packs = [];
97
- // Helper to load and push a catalog entry
98
- const loadEntry = async (entry) => {
208
+ // Helper to load and push a catalog entry. `named` is true when the caller
209
+ // listed the entry by name instead of asking for the whole category.
210
+ const loadEntry = async (entry, named = false) => {
99
211
  const override = options?.overrides?.[entry.name];
100
212
  if (override?.enabled === false)
101
213
  return;
@@ -106,12 +218,24 @@ export async function createCuratedManifest(options) {
106
218
  // Most curated packs accept `options.priority` and map it onto descriptor priorities.
107
219
  priority: override?.options?.priority ?? effectivePriority,
108
220
  };
109
- // Prefer npm package over local createPack proxy (npm works outside monorepo)
110
- if (entry.packageName && isPackageInstalled(entry.packageName)) {
111
- // Fall through to packageName-based loading below
112
- }
113
- else if (entry.createPack) {
114
- // Fallback to local proxy (monorepo development only)
221
+ // Prefer the npm package when it is installed AND exports a pack factory;
222
+ // a package that is installed but is not an extension pack (the built-in
223
+ // AgentOS packs point at '@framers/agentos' and carry their own
224
+ // `createPack`) or whose entry cannot be loaded falls back to the local
225
+ // factory.
226
+ const mod = entry.packageName && isPackageInstalled(entry.packageName)
227
+ ? await tryImport(entry.packageName)
228
+ : null;
229
+ const factory = mod?.createExtensionPack ?? mod?.default?.createExtensionPack ?? mod?.default;
230
+ if (typeof factory !== 'function') {
231
+ if (!hasUsableLocalFactory(entry)) {
232
+ // Registering the entry anyway would hand AgentOS a factory that
233
+ // throws when the pack is activated.
234
+ if (named) {
235
+ logger?.warn?.(`[agentos-extensions-registry] "${entry.name}" was requested but cannot load here: install ${entry.packageName} to enable it.`);
236
+ }
237
+ return;
238
+ }
115
239
  packs.push({
116
240
  factory: () => entry.createPack?.({
117
241
  options: effectiveOptions,
@@ -125,15 +249,6 @@ export async function createCuratedManifest(options) {
125
249
  });
126
250
  return;
127
251
  }
128
- else if (!isPackageInstalled(entry.packageName)) {
129
- return;
130
- }
131
- const mod = await tryImport(entry.packageName);
132
- if (!mod)
133
- return;
134
- const factory = mod.createExtensionPack ?? mod.default?.createExtensionPack ?? mod.default;
135
- if (typeof factory !== 'function')
136
- return;
137
252
  packs.push({
138
253
  factory: () => factory({
139
254
  options: effectiveOptions,
@@ -154,15 +269,18 @@ export async function createCuratedManifest(options) {
154
269
  const productivityEntries = TOOL_CATALOG.filter((t) => t.category === 'productivity');
155
270
  const cloudEntries = TOOL_CATALOG.filter((t) => t.category === 'cloud');
156
271
  const domainEntries = TOOL_CATALOG.filter((t) => t.category === 'domain');
272
+ // Research-category packs (citation-verifier, trulia-search) are opt-in:
273
+ // they load when a caller names them in `tools`, and stay out of `'all'`.
274
+ const researchEntries = TOOL_CATALOG.filter((t) => t.category === 'research');
157
275
  // ── Tool Extensions ──
158
276
  const toolFilter = options?.tools ?? 'all';
159
277
  const filteredTools = toolFilter === 'none'
160
278
  ? []
161
279
  : toolFilter === 'all'
162
280
  ? toolOnlyEntries
163
- : toolOnlyEntries.filter((t) => toolFilter.includes(t.name));
281
+ : [...toolOnlyEntries, ...researchEntries].filter((t) => toolFilter.includes(t.name));
164
282
  for (const entry of filteredTools) {
165
- await loadEntry(entry);
283
+ await loadEntry(entry, Array.isArray(toolFilter));
166
284
  }
167
285
  // ── Voice Provider Extensions ──
168
286
  const voiceFilter = options?.voice ?? 'all';
@@ -172,7 +290,7 @@ export async function createCuratedManifest(options) {
172
290
  ? voiceEntries
173
291
  : voiceEntries.filter((t) => voiceFilter.includes(t.name));
174
292
  for (const entry of filteredVoice) {
175
- await loadEntry(entry);
293
+ await loadEntry(entry, Array.isArray(voiceFilter));
176
294
  }
177
295
  // ── Productivity Extensions ──
178
296
  const prodFilter = options?.productivity ?? 'all';
@@ -182,7 +300,7 @@ export async function createCuratedManifest(options) {
182
300
  ? productivityEntries
183
301
  : productivityEntries.filter((t) => prodFilter.includes(t.name));
184
302
  for (const entry of filteredProd) {
185
- await loadEntry(entry);
303
+ await loadEntry(entry, Array.isArray(prodFilter));
186
304
  }
187
305
  // ── Cloud Provider Extensions ──
188
306
  const cloudFilter = options?.cloud ?? 'all';
@@ -192,7 +310,7 @@ export async function createCuratedManifest(options) {
192
310
  ? cloudEntries
193
311
  : cloudEntries.filter((t) => cloudFilter.includes(t.name));
194
312
  for (const entry of filteredCloud) {
195
- await loadEntry(entry);
313
+ await loadEntry(entry, Array.isArray(cloudFilter));
196
314
  }
197
315
  // ── Domain Registrar Extensions ──
198
316
  const domainFilter = options?.domains ?? 'all';
@@ -202,12 +320,12 @@ export async function createCuratedManifest(options) {
202
320
  ? domainEntries
203
321
  : domainEntries.filter((t) => domainFilter.includes(t.name));
204
322
  for (const entry of filteredDomains) {
205
- await loadEntry(entry);
323
+ await loadEntry(entry, Array.isArray(domainFilter));
206
324
  }
207
325
  // ── Channel Extensions ──
208
326
  const channelEntries = getChannelEntries(options?.channels);
209
327
  for (const entry of channelEntries) {
210
- await loadEntry(entry);
328
+ await loadEntry(entry, Array.isArray(options?.channels));
211
329
  }
212
330
  // ── Build Overrides ──
213
331
  const manifestOverrides = options?.overrides
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-builder.js","sourceRoot":"","sources":["../src/manifest-builder.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;;;;;;GASG;AAGH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAsB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAkBlD,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAE/B,0EAA0E;IAC1E,wEAAwE;IACxE,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAoB;IAC5C,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACxD,OAAO,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,SAAS,CAAC,WAAmB;IAC1C,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,MAAM,UAAU,GAAoB,CAAC,GAAG,YAAY,EAAE,GAAG,eAAe,EAAE,GAAG,gBAAgB,CAAC,CAAC;IAC/F,6EAA6E;IAC7E,qEAAqE;IACrE,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,KAAK;QACR,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC;KACnC,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrC,GAAG,KAAK;QACR,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC;KACnC,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAyB;IACnE,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IACjC,MAAM,MAAM,GAA+B,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC;IACtE,MAAM,KAAK,GAAiC,EAAE,CAAC;IAE/C,0CAA0C;IAC1C,MAAM,SAAS,GAAG,KAAK,EAAE,KAAoB,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE,OAAO,KAAK,KAAK;YAAE,OAAO;QAExC,MAAM,iBAAiB,GAAG,QAAQ,EAAE,QAAQ,IAAI,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC;QACrF,MAAM,gBAAgB,GAAG;YACvB,GAAG,QAAQ,EAAE,OAAO;YACpB,OAAO;YACP,sFAAsF;YACtF,QAAQ,EACL,QAAQ,EAAE,OAA+C,EAAE,QAAQ,IAAI,iBAAiB;SAC5F,CAAC;QAEF,8EAA8E;QAC9E,IAAI,KAAK,CAAC,WAAW,IAAI,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/D,kDAAkD;QACpD,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YAC5B,sDAAsD;YACtD,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,GAAG,EAAE,CACZ,KAAK,CAAC,UAAU,EAAE,CAAC;oBACjB,OAAO,EAAE,gBAAgB;oBACzB,SAAS,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;oBACpD,MAAM;iBACP,CAAiB;gBACpB,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,YAAY,KAAK,CAAC,IAAI,EAAE;gBACpC,OAAO,EAAE,gBAAgB;aAC1B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;aAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,OAAO,EAAE,mBAAmB,IAAI,GAAG,CAAC,OAAO,CAAC;QAC3F,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,OAAO;QAE1C,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO,CAAC;gBACN,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBACpD,MAAM;aACP,CAAC;YACJ,wEAAwE;YACxE,QAAQ,EAAE,iBAAiB;YAC3B,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,YAAY,KAAK,CAAC,IAAI,EAAE;YACpC,oFAAoF;YACpF,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,iCAAiC;IACjC,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,aAAa,CAC7D,CAAC;IACF,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACxE,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC;IACtF,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAE1E,wBAAwB;IACxB,MAAM,UAAU,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IAC3C,MAAM,aAAa,GACjB,UAAU,KAAK,MAAM;QACnB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,UAAU,KAAK,KAAK;YACpB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,kCAAkC;IAClC,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IAC5C,MAAM,aAAa,GACjB,WAAW,KAAK,MAAM;QACpB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,WAAW,KAAK,KAAK;YACrB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjE,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,gCAAgC;IAChC,MAAM,UAAU,GAAG,OAAO,EAAE,YAAY,IAAI,KAAK,CAAC;IAClD,MAAM,YAAY,GAChB,UAAU,KAAK,MAAM;QACnB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,UAAU,KAAK,KAAK;YACpB,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,kCAAkC;IAClC,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IAC5C,MAAM,aAAa,GACjB,WAAW,KAAK,MAAM;QACpB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,WAAW,KAAK,KAAK;YACrB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjE,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,oCAAoC;IACpC,MAAM,YAAY,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;IAC/C,MAAM,eAAe,GACnB,YAAY,KAAK,MAAM;QACrB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,YAAY,KAAK,KAAK;YACtB,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,2BAA2B;IAC3B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE5D,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,wBAAwB;IACxB,MAAM,iBAAiB,GAAG,OAAO,EAAE,SAAS;QAC1C,CAAC,CAAC;YACE,KAAK,EAAE,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;iBAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;iBACtE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CACtE;SACF;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,KAAK;QACL,SAAS,EAAE,iBAAiB;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"manifest-builder.js","sourceRoot":"","sources":["../src/manifest-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"secret-env-map.d.ts","sourceRoot":"","sources":["../src/secret-env-map.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAoE3D,CAAC;AAeF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyDxF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEpE"}
1
+ {"version":3,"file":"secret-env-map.d.ts","sourceRoot":"","sources":["../src/secret-env-map.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CA2E3D,CAAC;AAeF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4DxF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEpE"}
@@ -17,6 +17,11 @@ export const SECRET_ENV_MAP = {
17
17
  // Search
18
18
  'serper.apiKey': { envVar: 'SERPER_API_KEY', signupUrl: 'https://serper.dev', freeTier: '2,500 queries free' },
19
19
  'brave.apiKey': { envVar: 'BRAVE_API_KEY', signupUrl: 'https://brave.com/search/api/', freeTier: '2,000 queries/mo free' },
20
+ 'tavily.apiKey': { envVar: 'TAVILY_API_KEY', signupUrl: 'https://app.tavily.com', freeTier: '1,000 credits/mo free' },
21
+ 'firecrawl.apiKey': { envVar: 'FIRECRAWL_API_KEY', signupUrl: 'https://www.firecrawl.dev/app/api-keys', freeTier: '1,000 credits/mo free' },
22
+ 'serpapi.apiKey': { envVar: 'SERPAPI_API_KEY', signupUrl: 'https://serpapi.com/manage-api-key', freeTier: '250 searches/mo free' },
23
+ // Rerank
24
+ 'cohere.apiKey': { envVar: 'COHERE_API_KEY', signupUrl: 'https://dashboard.cohere.com/api-keys', freeTier: 'trial key free' },
20
25
  // Core AI providers
21
26
  'openai.apiKey': { envVar: 'OPENAI_API_KEY', signupUrl: 'https://platform.openai.com/api-keys' },
22
27
  'stability.apiKey': { envVar: 'STABILITY_API_KEY', signupUrl: 'https://platform.stability.ai/account/keys' },
@@ -34,6 +39,7 @@ export const SECRET_ENV_MAP = {
34
39
  'elevenlabs.apiKey': { envVar: 'ELEVENLABS_API_KEY', signupUrl: 'https://elevenlabs.io', freeTier: '10k chars/mo free' },
35
40
  'twilio.accountSid': { envVar: 'TWILIO_ACCOUNT_SID', signupUrl: 'https://console.twilio.com' },
36
41
  'twilio.authToken': { envVar: 'TWILIO_AUTH_TOKEN', signupUrl: 'https://console.twilio.com' },
42
+ 'twilio.phoneNumber': { envVar: 'TWILIO_PHONE_NUMBER', signupUrl: 'https://console.twilio.com/us1/develop/phone-numbers/manage/incoming' },
37
43
  'telnyx.apiKey': { envVar: 'TELNYX_API_KEY', signupUrl: 'https://portal.telnyx.com' },
38
44
  'telnyx.connectionId': { envVar: 'TELNYX_CONNECTION_ID', signupUrl: 'https://portal.telnyx.com' },
39
45
  'plivo.authId': { envVar: 'PLIVO_AUTH_ID', signupUrl: 'https://console.plivo.com' },
@@ -136,7 +142,10 @@ export function getApiKeyGuidance(errorMessage, toolName) {
136
142
  if (n.includes('search') || n.includes('web')) {
137
143
  lines.push('For web search, set one of:');
138
144
  lines.push(' - SERPER_API_KEY (2,500 queries free) → https://serper.dev');
145
+ lines.push(' - TAVILY_API_KEY (1,000 credits/mo free) → https://app.tavily.com');
146
+ lines.push(' - FIRECRAWL_API_KEY (1,000 credits/mo free) → https://www.firecrawl.dev/app/api-keys');
139
147
  lines.push(' - BRAVE_API_KEY (2,000 queries/mo free) → https://brave.com/search/api/');
148
+ lines.push(' - SERPAPI_API_KEY (250 searches/mo free) → https://serpapi.com/manage-api-key');
140
149
  }
141
150
  }
142
151
  return lines.length > 1 ? lines.join('\n') : null;
@@ -1 +1 @@
1
- {"version":3,"file":"secret-env-map.js","sourceRoot":"","sources":["../src/secret-env-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secret-env-map.js","sourceRoot":"","sources":["../src/secret-env-map.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,YAAY,CAAC;AA2RrE;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,aAAa,EAqvCvC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,MAAM,GAAG,aAAa,EAAE,CAIjF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEpE"}
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,YAAY,CAAC;AAySrE;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,aAAa,EAqvCvC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,MAAM,GAAG,aAAa,EAAE,CAIjF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEpE"}
@@ -9,6 +9,8 @@
9
9
  *
10
10
  * @module @framers/agentos-extensions-registry/tools
11
11
  */
12
+ import fs from 'node:fs';
13
+ import { fileURLToPath } from 'node:url';
12
14
  import { BuiltInAdaptiveVadProvider, ElevenLabsTextToSpeechProvider, OpenAITextToSpeechProvider, OpenAIWhisperSpeechToTextProvider, } from '@framers/agentos';
13
15
  const NEUTRAL_PAD = {
14
16
  valence: 0,
@@ -197,15 +199,25 @@ function createBuiltInSpeechRuntimePack(context) {
197
199
  ],
198
200
  };
199
201
  }
202
+ /** The files a local pack proxy tries, in order: the build output, then the source. */
203
+ function localPackCandidates(relativePath) {
204
+ const distRelativePath = relativePath.replace(/\/src\/index\.(?:ts|js)$/, '/dist/index.js');
205
+ const sourceTsRelativePath = relativePath.replace(/\.js$/, '.ts');
206
+ return [
207
+ new URL(distRelativePath, import.meta.url),
208
+ new URL(relativePath, import.meta.url),
209
+ ...(sourceTsRelativePath !== relativePath ? [new URL(sourceTsRelativePath, import.meta.url)] : []),
210
+ ];
211
+ }
212
+ /**
213
+ * Builds a pack factory that imports the pack from a sibling
214
+ * `agentos-extensions` source checkout. That checkout exists in the monorepo
215
+ * and not in an npm install, so the factory carries `isAvailable()`; the
216
+ * manifest builder registers the factory only where it can run.
217
+ */
200
218
  function createLocalPackProxy(relativePath) {
201
- return async (context) => {
202
- const distRelativePath = relativePath.replace(/\/src\/index\.(?:ts|js)$/, '/dist/index.js');
203
- const sourceTsRelativePath = relativePath.replace(/\.js$/, '.ts');
204
- const candidateUrls = [
205
- new URL(distRelativePath, import.meta.url),
206
- new URL(relativePath, import.meta.url),
207
- ...(sourceTsRelativePath !== relativePath ? [new URL(sourceTsRelativePath, import.meta.url)] : []),
208
- ];
219
+ const proxy = async (context) => {
220
+ const candidateUrls = localPackCandidates(relativePath);
209
221
  let mod;
210
222
  let lastError;
211
223
  for (const moduleUrl of candidateUrls) {
@@ -230,6 +242,8 @@ function createLocalPackProxy(relativePath) {
230
242
  logger: context.logger,
231
243
  });
232
244
  };
245
+ proxy.isAvailable = () => localPackCandidates(relativePath).some((url) => fs.existsSync(fileURLToPath(url)));
246
+ return proxy;
233
247
  }
234
248
  /**
235
249
  * Full catalog of tool, voice, and productivity extensions.
@@ -251,11 +265,11 @@ export const TOOL_CATALOG = [
251
265
  name: 'web-search',
252
266
  category: 'tool',
253
267
  displayName: 'Web Search',
254
- description: 'Web search using SearXNG or DuckDuckGo by default; optional Serper/Brave API key for enhanced results.',
268
+ description: 'Web search using SearXNG or DuckDuckGo by default; optional Serper, Tavily, Firecrawl, Brave or SerpAPI key for better results.',
255
269
  requiredSecrets: [],
256
270
  defaultPriority: 20,
257
271
  available: false,
258
- envVars: ['SERPER_API_KEY', 'BRAVE_API_KEY'],
272
+ envVars: ['SERPER_API_KEY', 'TAVILY_API_KEY', 'FIRECRAWL_API_KEY', 'BRAVE_API_KEY', 'SERPAPI_API_KEY'],
259
273
  docsUrl: 'https://serper.dev/api-key',
260
274
  },
261
275
  {