@framers/agentos-extensions-registry 0.1.0 → 0.1.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.
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @fileoverview Channel registry — metadata catalog for all supported
3
+ * messaging channel extensions.
4
+ *
5
+ * Each entry defines the channel's metadata, secret requirements, and
6
+ * default priority. The actual adapter implementations live in
7
+ * `@framers/agentos-extensions/registry/curated/channels/<platform>/`.
8
+ *
9
+ * @module @framers/agentos-extensions-registry/channel-registry
10
+ */
11
+ import type { ChannelRegistryEntry } from './types.js';
12
+ /**
13
+ * Full catalog of messaging channel extensions.
14
+ * Ordered by priority tier (P0 first, then P1, P2).
15
+ */
16
+ export declare const CHANNEL_CATALOG: ChannelRegistryEntry[];
17
+ /**
18
+ * Get channel entries filtered by platform names.
19
+ */
20
+ export declare function getChannelEntries(platforms?: string[] | 'all' | 'none'): ChannelRegistryEntry[];
21
+ /**
22
+ * Get a single channel entry by platform.
23
+ */
24
+ export declare function getChannelEntry(platform: string): ChannelRegistryEntry | undefined;
25
+ //# sourceMappingURL=channel-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-registry.d.ts","sourceRoot":"","sources":["../src/channel-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,oBAAoB,EAmKjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,MAAM,GAAG,oBAAoB,EAAE,CAI/F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAElF"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * @fileoverview Channel registry — metadata catalog for all supported
3
+ * messaging channel extensions.
4
+ *
5
+ * Each entry defines the channel's metadata, secret requirements, and
6
+ * default priority. The actual adapter implementations live in
7
+ * `@framers/agentos-extensions/registry/curated/channels/<platform>/`.
8
+ *
9
+ * @module @framers/agentos-extensions-registry/channel-registry
10
+ */
11
+ /**
12
+ * Full catalog of messaging channel extensions.
13
+ * Ordered by priority tier (P0 first, then P1, P2).
14
+ */
15
+ export const CHANNEL_CATALOG = [
16
+ // ── P0: Core Channels ──
17
+ {
18
+ packageName: '@framers/agentos-ext-channel-telegram',
19
+ name: 'channel-telegram',
20
+ category: 'channel',
21
+ platform: 'telegram',
22
+ displayName: 'Telegram',
23
+ description: 'Telegram Bot API via grammY — supports text, images, inline keyboards, groups.',
24
+ sdkPackage: 'grammy',
25
+ requiredSecrets: ['telegram.botToken'],
26
+ defaultPriority: 50,
27
+ available: false,
28
+ },
29
+ {
30
+ packageName: '@framers/agentos-ext-channel-whatsapp',
31
+ name: 'channel-whatsapp',
32
+ category: 'channel',
33
+ platform: 'whatsapp',
34
+ displayName: 'WhatsApp',
35
+ description: 'WhatsApp Web bridge via Baileys — supports text, images, documents, voice notes.',
36
+ sdkPackage: '@whiskeysockets/baileys',
37
+ requiredSecrets: ['whatsapp.sessionData'],
38
+ defaultPriority: 50,
39
+ available: false,
40
+ },
41
+ {
42
+ packageName: '@framers/agentos-ext-channel-discord',
43
+ name: 'channel-discord',
44
+ category: 'channel',
45
+ platform: 'discord',
46
+ displayName: 'Discord',
47
+ description: 'Discord bot via discord.js — supports text, embeds, threads, reactions, buttons.',
48
+ sdkPackage: 'discord.js',
49
+ requiredSecrets: ['discord.botToken'],
50
+ defaultPriority: 50,
51
+ available: false,
52
+ },
53
+ {
54
+ packageName: '@framers/agentos-ext-channel-slack',
55
+ name: 'channel-slack',
56
+ category: 'channel',
57
+ platform: 'slack',
58
+ displayName: 'Slack',
59
+ description: 'Slack workspace integration via Bolt — supports text, blocks, threads, reactions.',
60
+ sdkPackage: '@slack/bolt',
61
+ requiredSecrets: ['slack.botToken', 'slack.appToken'],
62
+ defaultPriority: 50,
63
+ available: false,
64
+ },
65
+ {
66
+ packageName: '@framers/agentos-ext-channel-webchat',
67
+ name: 'channel-webchat',
68
+ category: 'channel',
69
+ platform: 'webchat',
70
+ displayName: 'WebChat',
71
+ description: 'Browser-based chat widget via Socket.IO — embeds in any website.',
72
+ sdkPackage: 'socket.io',
73
+ requiredSecrets: [],
74
+ defaultPriority: 50,
75
+ available: false,
76
+ },
77
+ // ── P1: Extended Channels ──
78
+ {
79
+ packageName: '@framers/agentos-ext-channel-signal',
80
+ name: 'channel-signal',
81
+ category: 'channel',
82
+ platform: 'signal',
83
+ displayName: 'Signal',
84
+ description: 'Signal messenger via signal-cli — end-to-end encrypted messaging.',
85
+ sdkPackage: 'signal-cli',
86
+ requiredSecrets: ['signal.phoneNumber'],
87
+ defaultPriority: 40,
88
+ available: false,
89
+ },
90
+ {
91
+ packageName: '@framers/agentos-ext-channel-imessage',
92
+ name: 'channel-imessage',
93
+ category: 'channel',
94
+ platform: 'imessage',
95
+ displayName: 'iMessage',
96
+ description: 'iMessage bridge via BlueBubbles — macOS server required.',
97
+ sdkPackage: 'bluebubbles-node',
98
+ requiredSecrets: ['imessage.serverUrl', 'imessage.password'],
99
+ defaultPriority: 40,
100
+ available: false,
101
+ },
102
+ {
103
+ packageName: '@framers/agentos-ext-channel-google-chat',
104
+ name: 'channel-google-chat',
105
+ category: 'channel',
106
+ platform: 'google-chat',
107
+ displayName: 'Google Chat',
108
+ description: 'Google Workspace Chat via Cloud API — supports cards and threads.',
109
+ sdkPackage: '@google-cloud/chat',
110
+ requiredSecrets: ['googlechat.serviceAccount'],
111
+ defaultPriority: 40,
112
+ available: false,
113
+ },
114
+ {
115
+ packageName: '@framers/agentos-ext-channel-teams',
116
+ name: 'channel-teams',
117
+ category: 'channel',
118
+ platform: 'teams',
119
+ displayName: 'Microsoft Teams',
120
+ description: 'Microsoft Teams bot via Teams AI library — supports adaptive cards.',
121
+ sdkPackage: '@microsoft/teams-ai',
122
+ requiredSecrets: ['teams.appId', 'teams.appPassword'],
123
+ defaultPriority: 40,
124
+ available: false,
125
+ },
126
+ // ── P2: Community Channels ──
127
+ {
128
+ packageName: '@framers/agentos-ext-channel-matrix',
129
+ name: 'channel-matrix',
130
+ category: 'channel',
131
+ platform: 'matrix',
132
+ displayName: 'Matrix',
133
+ description: 'Matrix/Element via matrix-js-sdk — decentralized, federated messaging.',
134
+ sdkPackage: 'matrix-js-sdk',
135
+ requiredSecrets: ['matrix.homeserverUrl', 'matrix.accessToken'],
136
+ defaultPriority: 30,
137
+ available: false,
138
+ },
139
+ {
140
+ packageName: '@framers/agentos-ext-channel-zalo',
141
+ name: 'channel-zalo',
142
+ category: 'channel',
143
+ platform: 'zalo',
144
+ displayName: 'Zalo',
145
+ description: 'Zalo Official Account API — popular in Vietnam.',
146
+ sdkPackage: 'zalo-api',
147
+ requiredSecrets: ['zalo.appId', 'zalo.secretKey'],
148
+ defaultPriority: 30,
149
+ available: false,
150
+ },
151
+ {
152
+ packageName: '@framers/agentos-ext-channel-email',
153
+ name: 'channel-email',
154
+ category: 'channel',
155
+ platform: 'email',
156
+ displayName: 'Email',
157
+ description: 'Email messaging via nodemailer (SMTP) + imap-simple (IMAP).',
158
+ sdkPackage: 'nodemailer',
159
+ requiredSecrets: ['email.smtpHost', 'email.smtpUser', 'email.smtpPassword'],
160
+ defaultPriority: 30,
161
+ available: false,
162
+ },
163
+ {
164
+ packageName: '@framers/agentos-ext-channel-sms',
165
+ name: 'channel-sms',
166
+ category: 'channel',
167
+ platform: 'sms',
168
+ displayName: 'SMS',
169
+ description: 'SMS messaging via Twilio — text-only, worldwide reach.',
170
+ sdkPackage: 'twilio',
171
+ requiredSecrets: ['twilio.accountSid', 'twilio.authToken', 'twilio.phoneNumber'],
172
+ defaultPriority: 30,
173
+ available: false,
174
+ },
175
+ ];
176
+ /**
177
+ * Get channel entries filtered by platform names.
178
+ */
179
+ export function getChannelEntries(platforms) {
180
+ if (platforms === 'none')
181
+ return [];
182
+ if (!platforms || platforms === 'all')
183
+ return [...CHANNEL_CATALOG];
184
+ return CHANNEL_CATALOG.filter((entry) => platforms.includes(entry.platform));
185
+ }
186
+ /**
187
+ * Get a single channel entry by platform.
188
+ */
189
+ export function getChannelEntry(platform) {
190
+ return CHANNEL_CATALOG.find((entry) => entry.platform === platform);
191
+ }
192
+ //# sourceMappingURL=channel-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-registry.js","sourceRoot":"","sources":["../src/channel-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @fileoverview AgentOS Extensions Registry Bundle.
3
+ *
4
+ * Single-import package that discovers, configures, and registers all
5
+ * curated AgentOS extensions (channels, tools, integrations).
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { createCuratedManifest } from '@framers/agentos-extensions-registry';
10
+ *
11
+ * const manifest = await createCuratedManifest({
12
+ * channels: ['telegram', 'whatsapp', 'discord'],
13
+ * tools: 'all',
14
+ * secrets: resolvedSecrets,
15
+ * });
16
+ *
17
+ * const agentOS = new AgentOS({ extensionManifest: manifest });
18
+ * ```
19
+ *
20
+ * @module @framers/agentos-extensions-registry
21
+ */
22
+ export { createCuratedManifest, getAvailableExtensions, getAvailableChannels, } from './manifest-builder.js';
23
+ export { CHANNEL_CATALOG, getChannelEntries, getChannelEntry } from './channel-registry.js';
24
+ export type { RegistryOptions, ExtensionOverrideConfig, ExtensionInfo, ChannelRegistryEntry, } from './types.js';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE5F,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
@@ -19,18 +19,6 @@
19
19
  *
20
20
  * @module @framers/agentos-extensions-registry
21
21
  */
22
-
23
- export {
24
- createCuratedManifest,
25
- getAvailableExtensions,
26
- getAvailableChannels,
27
- } from './manifest-builder.js';
28
-
22
+ export { createCuratedManifest, getAvailableExtensions, getAvailableChannels, } from './manifest-builder.js';
29
23
  export { CHANNEL_CATALOG, getChannelEntries, getChannelEntry } from './channel-registry.js';
30
-
31
- export type {
32
- RegistryOptions,
33
- ExtensionOverrideConfig,
34
- ExtensionInfo,
35
- ChannelRegistryEntry,
36
- } from './types.js';
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @fileoverview Manifest builder — creates pre-configured ExtensionManifest
3
+ * instances from the curated extension catalog.
4
+ *
5
+ * This is the primary API of the registry package. Instead of manually wiring
6
+ * each extension pack in the backend, consumers call `createCuratedManifest()`
7
+ * with their desired configuration.
8
+ *
9
+ * @module @framers/agentos-extensions-registry/manifest-builder
10
+ */
11
+ import type { ExtensionManifest } from '@framers/agentos';
12
+ import type { RegistryOptions, ExtensionInfo } from './types.js';
13
+ /**
14
+ * Check which extensions from the catalog are actually installed
15
+ * and mark them as available.
16
+ */
17
+ export declare function getAvailableExtensions(): Promise<ExtensionInfo[]>;
18
+ /**
19
+ * Get available channel extensions.
20
+ */
21
+ export declare function getAvailableChannels(): Promise<ExtensionInfo[]>;
22
+ /**
23
+ * Creates a pre-configured `ExtensionManifest` with all available curated
24
+ * extensions. Missing optional dependencies are silently skipped.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * import { createCuratedManifest } from '@framers/agentos-extensions-registry';
29
+ *
30
+ * // Enable all available extensions
31
+ * const manifest = await createCuratedManifest();
32
+ *
33
+ * // Selective: only Telegram + Discord channels, all tools
34
+ * const manifest = await createCuratedManifest({
35
+ * channels: ['telegram', 'discord'],
36
+ * tools: 'all',
37
+ * secrets: {
38
+ * 'telegram.botToken': process.env.TELEGRAM_BOT_TOKEN!,
39
+ * 'discord.botToken': process.env.DISCORD_BOT_TOKEN!,
40
+ * },
41
+ * });
42
+ *
43
+ * // Pass to AgentOS config
44
+ * const agentOS = new AgentOS({ extensionManifest: manifest });
45
+ * ```
46
+ */
47
+ export declare function createCuratedManifest(options?: RegistryOptions): Promise<ExtensionManifest>;
48
+ //# sourceMappingURL=manifest-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-builder.d.ts","sourceRoot":"","sources":["../src/manifest-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAA8B,MAAM,kBAAkB,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgHjE;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAUvE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAOrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+EjG"}
@@ -0,0 +1,238 @@
1
+ /**
2
+ * @fileoverview Manifest builder — creates pre-configured ExtensionManifest
3
+ * instances from the curated extension catalog.
4
+ *
5
+ * This is the primary API of the registry package. Instead of manually wiring
6
+ * each extension pack in the backend, consumers call `createCuratedManifest()`
7
+ * with their desired configuration.
8
+ *
9
+ * @module @framers/agentos-extensions-registry/manifest-builder
10
+ */
11
+ import { CHANNEL_CATALOG, getChannelEntries } from './channel-registry.js';
12
+ /**
13
+ * Known tool extension packages and their metadata.
14
+ * Matches existing extensions in `agentos-extensions/registry/curated/`.
15
+ */
16
+ const TOOL_CATALOG = [
17
+ {
18
+ packageName: '@framers/agentos-ext-auth',
19
+ name: 'auth',
20
+ category: 'tool',
21
+ displayName: 'Authentication',
22
+ description: 'User authentication and session management tools.',
23
+ requiredSecrets: [],
24
+ defaultPriority: 10,
25
+ available: false,
26
+ },
27
+ {
28
+ packageName: '@framers/agentos-ext-web-search',
29
+ name: 'web-search',
30
+ category: 'tool',
31
+ displayName: 'Web Search',
32
+ description: 'Web search via Serper.dev or similar providers.',
33
+ requiredSecrets: ['serper.apiKey'],
34
+ defaultPriority: 20,
35
+ available: false,
36
+ },
37
+ {
38
+ packageName: '@framers/agentos-ext-web-browser',
39
+ name: 'web-browser',
40
+ category: 'tool',
41
+ displayName: 'Web Browser',
42
+ description: 'Headless browser for page fetching and scraping.',
43
+ requiredSecrets: [],
44
+ defaultPriority: 20,
45
+ available: false,
46
+ },
47
+ {
48
+ packageName: '@framers/agentos-ext-telegram',
49
+ name: 'telegram',
50
+ category: 'integration',
51
+ displayName: 'Telegram (Legacy)',
52
+ description: 'Legacy Telegram bot integration (tool-based, pre-channel system).',
53
+ requiredSecrets: ['telegram.botToken'],
54
+ defaultPriority: 50,
55
+ available: false,
56
+ },
57
+ {
58
+ packageName: '@framers/agentos-ext-cli-executor',
59
+ name: 'cli-executor',
60
+ category: 'tool',
61
+ displayName: 'CLI Executor',
62
+ description: 'Execute shell commands in a sandboxed environment.',
63
+ requiredSecrets: [],
64
+ defaultPriority: 20,
65
+ available: false,
66
+ },
67
+ {
68
+ packageName: '@framers/agentos-ext-giphy',
69
+ name: 'giphy',
70
+ category: 'tool',
71
+ displayName: 'Giphy',
72
+ description: 'Search and share GIFs via the Giphy API.',
73
+ requiredSecrets: [],
74
+ defaultPriority: 30,
75
+ available: false,
76
+ },
77
+ {
78
+ packageName: '@framers/agentos-ext-image-search',
79
+ name: 'image-search',
80
+ category: 'tool',
81
+ displayName: 'Image Search',
82
+ description: 'Search for images via web APIs.',
83
+ requiredSecrets: [],
84
+ defaultPriority: 30,
85
+ available: false,
86
+ },
87
+ {
88
+ packageName: '@framers/agentos-ext-voice-synthesis',
89
+ name: 'voice-synthesis',
90
+ category: 'tool',
91
+ displayName: 'Voice Synthesis',
92
+ description: 'Text-to-speech synthesis via ElevenLabs or similar.',
93
+ requiredSecrets: [],
94
+ defaultPriority: 30,
95
+ available: false,
96
+ },
97
+ {
98
+ packageName: '@framers/agentos-ext-news-search',
99
+ name: 'news-search',
100
+ category: 'tool',
101
+ displayName: 'News Search',
102
+ description: 'Search recent news articles.',
103
+ requiredSecrets: [],
104
+ defaultPriority: 30,
105
+ available: false,
106
+ },
107
+ ];
108
+ /**
109
+ * Attempt to dynamically import a package. Returns the module if available,
110
+ * or `null` if the package is not installed.
111
+ */
112
+ async function tryImport(packageName) {
113
+ try {
114
+ return await import(packageName);
115
+ }
116
+ catch {
117
+ return null;
118
+ }
119
+ }
120
+ /**
121
+ * Check which extensions from the catalog are actually installed
122
+ * and mark them as available.
123
+ */
124
+ export async function getAvailableExtensions() {
125
+ const allEntries = [...TOOL_CATALOG, ...CHANNEL_CATALOG];
126
+ const results = [];
127
+ for (const entry of allEntries) {
128
+ const mod = await tryImport(entry.packageName);
129
+ results.push({ ...entry, available: mod !== null });
130
+ }
131
+ return results;
132
+ }
133
+ /**
134
+ * Get available channel extensions.
135
+ */
136
+ export async function getAvailableChannels() {
137
+ const results = [];
138
+ for (const entry of CHANNEL_CATALOG) {
139
+ const mod = await tryImport(entry.packageName);
140
+ results.push({ ...entry, available: mod !== null });
141
+ }
142
+ return results;
143
+ }
144
+ /**
145
+ * Creates a pre-configured `ExtensionManifest` with all available curated
146
+ * extensions. Missing optional dependencies are silently skipped.
147
+ *
148
+ * @example
149
+ * ```typescript
150
+ * import { createCuratedManifest } from '@framers/agentos-extensions-registry';
151
+ *
152
+ * // Enable all available extensions
153
+ * const manifest = await createCuratedManifest();
154
+ *
155
+ * // Selective: only Telegram + Discord channels, all tools
156
+ * const manifest = await createCuratedManifest({
157
+ * channels: ['telegram', 'discord'],
158
+ * tools: 'all',
159
+ * secrets: {
160
+ * 'telegram.botToken': process.env.TELEGRAM_BOT_TOKEN!,
161
+ * 'discord.botToken': process.env.DISCORD_BOT_TOKEN!,
162
+ * },
163
+ * });
164
+ *
165
+ * // Pass to AgentOS config
166
+ * const agentOS = new AgentOS({ extensionManifest: manifest });
167
+ * ```
168
+ */
169
+ export async function createCuratedManifest(options) {
170
+ const basePriority = options?.basePriority ?? 0;
171
+ const packs = [];
172
+ // ── Tool Extensions ──
173
+ const toolFilter = options?.tools ?? 'all';
174
+ const toolEntries = toolFilter === 'none'
175
+ ? []
176
+ : toolFilter === 'all'
177
+ ? TOOL_CATALOG
178
+ : TOOL_CATALOG.filter((t) => toolFilter.includes(t.name));
179
+ for (const entry of toolEntries) {
180
+ const override = options?.overrides?.[entry.name];
181
+ if (override?.enabled === false)
182
+ continue;
183
+ const mod = await tryImport(entry.packageName);
184
+ if (!mod)
185
+ continue;
186
+ const factory = mod.createExtensionPack ?? mod.default?.createExtensionPack ?? mod.default;
187
+ if (typeof factory !== 'function')
188
+ continue;
189
+ packs.push({
190
+ factory: () => factory({
191
+ options: {
192
+ ...override?.options,
193
+ secrets: options?.secrets,
194
+ },
195
+ }),
196
+ priority: override?.priority ?? basePriority + entry.defaultPriority,
197
+ enabled: true,
198
+ identifier: `registry:${entry.name}`,
199
+ });
200
+ }
201
+ // ── Channel Extensions ──
202
+ const channelEntries = getChannelEntries(options?.channels);
203
+ for (const entry of channelEntries) {
204
+ const override = options?.overrides?.[entry.name];
205
+ if (override?.enabled === false)
206
+ continue;
207
+ const mod = await tryImport(entry.packageName);
208
+ if (!mod)
209
+ continue;
210
+ const factory = mod.createExtensionPack ?? mod.default?.createExtensionPack ?? mod.default;
211
+ if (typeof factory !== 'function')
212
+ continue;
213
+ packs.push({
214
+ factory: () => factory({
215
+ options: {
216
+ ...override?.options,
217
+ secrets: options?.secrets,
218
+ },
219
+ }),
220
+ priority: override?.priority ?? basePriority + entry.defaultPriority,
221
+ enabled: true,
222
+ identifier: `registry:${entry.name}`,
223
+ });
224
+ }
225
+ // ── Build Overrides ──
226
+ const manifestOverrides = options?.overrides
227
+ ? {
228
+ tools: Object.fromEntries(Object.entries(options.overrides)
229
+ .filter(([, v]) => v.enabled !== undefined || v.priority !== undefined)
230
+ .map(([k, v]) => [k, { enabled: v.enabled, priority: v.priority }])),
231
+ }
232
+ : undefined;
233
+ return {
234
+ packs,
235
+ overrides: manifestOverrides,
236
+ };
237
+ }
238
+ //# sourceMappingURL=manifest-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-builder.js","sourceRoot":"","sources":["../src/manifest-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE3E;;;GAGG;AACH,MAAM,YAAY,GAAoB;IACpC;QACE,WAAW,EAAE,2BAA2B;QACxC,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,mDAAmD;QAChE,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,KAAK;KACjB;IACD;QACE,WAAW,EAAE,iCAAiC;QAC9C,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,iDAAiD;QAC9D,eAAe,EAAE,CAAC,eAAe,CAAC;QAClC,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,KAAK;KACjB;IACD;QACE,WAAW,EAAE,kCAAkC;QAC/C,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,kDAAkD;QAC/D,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,KAAK;KACjB;IACD;QACE,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,aAAa;QACvB,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,mEAAmE;QAChF,eAAe,EAAE,CAAC,mBAAmB,CAAC;QACtC,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,KAAK;KACjB;IACD;QACE,WAAW,EAAE,mCAAmC;QAChD,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,oDAAoD;QACjE,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,KAAK;KACjB;IACD;QACE,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,0CAA0C;QACvD,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,KAAK;KACjB;IACD;QACE,WAAW,EAAE,mCAAmC;QAChD,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,iCAAiC;QAC9C,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,KAAK;KACjB;IACD;QACE,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,qDAAqD;QAClE,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,KAAK;KACjB;IACD;QACE,WAAW,EAAE,kCAAkC;QAC/C,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,8BAA8B;QAC3C,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,KAAK;KACjB;CACF,CAAC;AAEF;;;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,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAyB;IACnE,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,CAAC,CAAC;IAChD,MAAM,KAAK,GAAiC,EAAE,CAAC;IAE/C,wBAAwB;IACxB,MAAM,UAAU,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IAC3C,MAAM,WAAW,GACf,UAAU,KAAK,MAAM;QACnB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,UAAU,KAAK,KAAK;YACpB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhE,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE,OAAO,KAAK,KAAK;YAAE,SAAS;QAE1C,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,OAAO,EAAE,mBAAmB,IAAI,GAAG,CAAC,OAAO,CAAC;QAC3F,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,SAAS;QAE5C,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO,CAAC;gBACN,OAAO,EAAE;oBACP,GAAG,QAAQ,EAAE,OAAO;oBACpB,OAAO,EAAE,OAAO,EAAE,OAAO;iBAC1B;aACF,CAAC;YACJ,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,YAAY,GAAG,KAAK,CAAC,eAAe;YACpE,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,YAAY,KAAK,CAAC,IAAI,EAAE;SACrC,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE5D,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE,OAAO,KAAK,KAAK;YAAE,SAAS;QAE1C,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,OAAO,EAAE,mBAAmB,IAAI,GAAG,CAAC,OAAO,CAAC;QAC3F,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,SAAS;QAE5C,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO,CAAC;gBACN,OAAO,EAAE;oBACP,GAAG,QAAQ,EAAE,OAAO;oBACpB,OAAO,EAAE,OAAO,EAAE,OAAO;iBAC1B;aACF,CAAC;YACJ,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,YAAY,GAAG,KAAK,CAAC,eAAe;YACpE,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,YAAY,KAAK,CAAC,IAAI,EAAE;SACrC,CAAC,CAAC;IACL,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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @fileoverview Configuration types for the extensions registry bundle.
3
+ * @module @framers/agentos-extensions-registry/types
4
+ */
5
+ import type { ChannelPlatform } from '@framers/agentos';
6
+ /**
7
+ * Options for building a curated extension manifest.
8
+ */
9
+ export interface RegistryOptions {
10
+ /**
11
+ * Which messaging channels to enable.
12
+ * - Array of platform names: selectively enable specific channels.
13
+ * - `'all'`: enable all available channels (default).
14
+ * - `'none'`: disable all channels.
15
+ */
16
+ channels?: ChannelPlatform[] | 'all' | 'none';
17
+ /**
18
+ * Which tool extensions to enable.
19
+ * - Array of tool pack names (e.g., 'web-search', 'giphy').
20
+ * - `'all'`: enable all available tools (default).
21
+ * - `'none'`: disable all tools.
22
+ */
23
+ tools?: string[] | 'all' | 'none';
24
+ /**
25
+ * Secrets map (API keys, tokens, credentials).
26
+ * Keys match secret IDs from `extension-secrets.json` (e.g., 'telegram.botToken').
27
+ * Falls back to environment variables if not provided here.
28
+ */
29
+ secrets?: Record<string, string>;
30
+ /**
31
+ * Base priority for all extensions. Individual packs add their own
32
+ * offset on top of this. Default: 0.
33
+ */
34
+ basePriority?: number;
35
+ /**
36
+ * Per-extension overrides. Keys are pack names or descriptor IDs.
37
+ */
38
+ overrides?: Record<string, ExtensionOverrideConfig>;
39
+ }
40
+ /**
41
+ * Override configuration for a specific extension pack or descriptor.
42
+ */
43
+ export interface ExtensionOverrideConfig {
44
+ /** Force enable/disable. */
45
+ enabled?: boolean;
46
+ /** Override priority. */
47
+ priority?: number;
48
+ /** Additional options passed to the pack factory. */
49
+ options?: Record<string, unknown>;
50
+ }
51
+ /**
52
+ * Metadata about an extension available in the registry.
53
+ */
54
+ export interface ExtensionInfo {
55
+ /** Package name (e.g., '@framers/agentos-ext-telegram'). */
56
+ packageName: string;
57
+ /** Short name (e.g., 'telegram'). */
58
+ name: string;
59
+ /** Category (e.g., 'channel', 'tool', 'integration'). */
60
+ category: 'channel' | 'tool' | 'integration' | 'provenance';
61
+ /** Whether the package's dependencies are installed and importable. */
62
+ available: boolean;
63
+ /** Human-readable display name. */
64
+ displayName: string;
65
+ /** Description. */
66
+ description: string;
67
+ /** Required secret IDs. */
68
+ requiredSecrets: string[];
69
+ /** Default priority. */
70
+ defaultPriority: number;
71
+ }
72
+ /**
73
+ * Registry entry for a channel extension.
74
+ */
75
+ export interface ChannelRegistryEntry extends ExtensionInfo {
76
+ category: 'channel';
77
+ /** Platform identifier. */
78
+ platform: ChannelPlatform;
79
+ /** SDK package name (e.g., 'grammy', 'discord.js'). */
80
+ sdkPackage: string;
81
+ }
82
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC;IAE9C;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC;IAElC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;IAC5D,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,wBAAwB;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,QAAQ,EAAE,SAAS,CAAC;IACpB,2BAA2B;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB"}