@aigne/afs-registry 1.11.0-beta.11 → 1.11.0-beta.13
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/index.d.mts +111 -23
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +677 -614
- package/dist/index.mjs.map +1 -1
- package/dist/scanner-CI1h9bn6.mjs +277 -0
- package/dist/scanner-CI1h9bn6.mjs.map +1 -0
- package/dist/scanner-LVTipem0.mjs +3 -0
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
import { AFSBaseProvider, AFSEntry, AFSExecResult, AFSExplainOptions, AFSExplainResult, AFSListOptions, AFSListResult, AFSReadOptions, AFSReadResult, AFSRoot, AFSSearchOptions, AFSSearchResult, AFSStatOptions, AFSStatResult, RouteContext } from "@aigne/afs";
|
|
2
2
|
|
|
3
|
+
//#region src/scanner.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Scan installed @aigne/afs-* packages and collect their manifests.
|
|
6
|
+
*
|
|
7
|
+
* Resolution strategies (tried in order):
|
|
8
|
+
* 1. Workspace mode: find pnpm-workspace.yaml, scan providers/ and packages/ dirs
|
|
9
|
+
* 2. node_modules mode: find @aigne scope dir in node_modules, scan afs-* subdirs
|
|
10
|
+
*
|
|
11
|
+
* Results are cached in memory + on disk. Disk cache is invalidated when
|
|
12
|
+
* the lockfile (pnpm-lock.yaml or package-lock.json) changes.
|
|
13
|
+
*/
|
|
14
|
+
declare function scanInstalledProviders(): Promise<ProviderManifest[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Clear the cached scan result (memory + disk). Useful for testing or forced re-scan.
|
|
17
|
+
*/
|
|
18
|
+
declare function clearScanCache(): void;
|
|
19
|
+
//#endregion
|
|
3
20
|
//#region src/index.d.ts
|
|
4
21
|
/**
|
|
5
22
|
* A single provider manifest entry in the registry.
|
|
@@ -8,6 +25,8 @@ import { AFSBaseProvider, AFSEntry, AFSExecResult, AFSExplainOptions, AFSExplain
|
|
|
8
25
|
* instead of Zod, camelCase field names).
|
|
9
26
|
*/
|
|
10
27
|
interface ProviderManifest {
|
|
28
|
+
/** Registry entry type: provider (has bundle), recipe (MCP config), skill (lightweight) */
|
|
29
|
+
type?: "provider" | "recipe" | "skill";
|
|
11
30
|
name: string;
|
|
12
31
|
description: string;
|
|
13
32
|
category: string;
|
|
@@ -16,41 +35,32 @@ interface ProviderManifest {
|
|
|
16
35
|
/** JSON Schema describing provider parameters (serialized from Zod) */
|
|
17
36
|
schema?: Record<string, unknown>;
|
|
18
37
|
tags?: string[];
|
|
38
|
+
/** Controlled capability tags from standard vocabulary */
|
|
39
|
+
capabilityTags?: string[];
|
|
19
40
|
useCases?: string[];
|
|
41
|
+
/** Provider tree schema — static path structure declaration */
|
|
42
|
+
treeSchema?: Record<string, unknown>;
|
|
43
|
+
/** Inline AGENT.md content (for testing/static providers) */
|
|
44
|
+
agentMd?: string;
|
|
45
|
+
/** File path to .afs/AGENT.md — lazy-loaded on demand (from scanner) */
|
|
46
|
+
agentMdPath?: string;
|
|
20
47
|
}
|
|
21
48
|
/**
|
|
22
49
|
* Options for constructing an AFSRegistry provider.
|
|
23
50
|
*/
|
|
24
51
|
interface AFSRegistryOptions {
|
|
25
|
-
/** Static provider manifests (for testing
|
|
52
|
+
/** Static provider manifests (for testing). When provided, skips runtime scan. */
|
|
26
53
|
providers?: ProviderManifest[];
|
|
27
|
-
/** Remote URL to fetch provider manifests from. Falls back to bundled data on failure. */
|
|
28
|
-
url?: string;
|
|
29
54
|
}
|
|
30
|
-
/**
|
|
31
|
-
* AFS Registry Provider — virtual file tree for discovering and mounting providers.
|
|
32
|
-
*
|
|
33
|
-
* File tree:
|
|
34
|
-
* ```
|
|
35
|
-
* /
|
|
36
|
-
* ├── providers/{name}/manifest.json
|
|
37
|
-
* ├── providers/{name}/README.md
|
|
38
|
-
* ├── providers/{name}/.actions/mount
|
|
39
|
-
* ├── by-category/{category}/{name}/
|
|
40
|
-
* ├── by-tag/{tag}/{name}/
|
|
41
|
-
* └── .actions/search
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
55
|
declare class AFSRegistry extends AFSBaseProvider {
|
|
45
56
|
readonly name = "registry";
|
|
46
57
|
readonly description = "AFS Provider Registry \u2014 discover and install available providers.\n- Browse providers by name, category, or tag\n- Read provider manifests, README docs, and configuration schemas\n- Search providers by keyword (name, description, tags, use cases)\n- Exec actions: `search` (full-text query), `mount` (per-provider, install to AFS)\n- Path structure: `/providers/{name}/manifest.json`, `/by-category/{cat}`, `/by-tag/{tag}`";
|
|
47
58
|
readonly accessMode: "readwrite";
|
|
48
59
|
private providers;
|
|
49
|
-
private
|
|
50
|
-
private fetchPromise?;
|
|
60
|
+
private scanPromise?;
|
|
51
61
|
private loadProviderFn?;
|
|
52
62
|
constructor(options?: AFSRegistryOptions);
|
|
53
|
-
private
|
|
63
|
+
private loadFromScan;
|
|
54
64
|
private ensureLoaded;
|
|
55
65
|
onMount(root: AFSRoot): void;
|
|
56
66
|
list(path: string, options?: AFSListOptions): Promise<AFSListResult>;
|
|
@@ -62,6 +72,10 @@ declare class AFSRegistry extends AFSBaseProvider {
|
|
|
62
72
|
private buildByCategory;
|
|
63
73
|
private buildByTag;
|
|
64
74
|
private findProvider;
|
|
75
|
+
private getRecipes;
|
|
76
|
+
private findRecipe;
|
|
77
|
+
/** Load AGENT.md content: inline first, then lazy-read from disk. */
|
|
78
|
+
private loadAgentMd;
|
|
65
79
|
listRoot(_ctx: RouteContext): Promise<{
|
|
66
80
|
data: AFSEntry[];
|
|
67
81
|
}>;
|
|
@@ -71,7 +85,7 @@ declare class AFSRegistry extends AFSBaseProvider {
|
|
|
71
85
|
listProviderContents(ctx: RouteContext<{
|
|
72
86
|
name: string;
|
|
73
87
|
}>): Promise<{
|
|
74
|
-
data: AFSEntry[];
|
|
88
|
+
data: AFSEntry<any>[];
|
|
75
89
|
}>;
|
|
76
90
|
listCategories(_ctx: RouteContext): Promise<{
|
|
77
91
|
data: AFSEntry[];
|
|
@@ -106,6 +120,19 @@ declare class AFSRegistry extends AFSBaseProvider {
|
|
|
106
120
|
}>): Promise<{
|
|
107
121
|
data: AFSEntry[];
|
|
108
122
|
}>;
|
|
123
|
+
listRecipes(_ctx: RouteContext): Promise<{
|
|
124
|
+
data: AFSEntry[];
|
|
125
|
+
}>;
|
|
126
|
+
listRecipeContents(ctx: RouteContext<{
|
|
127
|
+
name: string;
|
|
128
|
+
}>): Promise<{
|
|
129
|
+
data: AFSEntry[];
|
|
130
|
+
}>;
|
|
131
|
+
listRecipeFileNode(ctx: RouteContext<{
|
|
132
|
+
name: string;
|
|
133
|
+
}>): Promise<{
|
|
134
|
+
data: AFSEntry[];
|
|
135
|
+
}>;
|
|
109
136
|
readRoot(_ctx: RouteContext): Promise<AFSEntry | undefined>;
|
|
110
137
|
readProviders(_ctx: RouteContext): Promise<AFSEntry | undefined>;
|
|
111
138
|
readProvider(ctx: RouteContext<{
|
|
@@ -117,6 +144,12 @@ declare class AFSRegistry extends AFSBaseProvider {
|
|
|
117
144
|
readReadme(ctx: RouteContext<{
|
|
118
145
|
name: string;
|
|
119
146
|
}>): Promise<AFSEntry | undefined>;
|
|
147
|
+
readTreeSchema(ctx: RouteContext<{
|
|
148
|
+
name: string;
|
|
149
|
+
}>): Promise<AFSEntry | undefined>;
|
|
150
|
+
readAgentMd(ctx: RouteContext<{
|
|
151
|
+
name: string;
|
|
152
|
+
}>): Promise<AFSEntry | undefined>;
|
|
120
153
|
readByCategory(_ctx: RouteContext): Promise<AFSEntry | undefined>;
|
|
121
154
|
readCategory(ctx: RouteContext<{
|
|
122
155
|
category: string;
|
|
@@ -133,8 +166,37 @@ declare class AFSRegistry extends AFSBaseProvider {
|
|
|
133
166
|
tag: string;
|
|
134
167
|
name: string;
|
|
135
168
|
}>): Promise<AFSEntry | undefined>;
|
|
169
|
+
readRecipes(_ctx: RouteContext): Promise<AFSEntry | undefined>;
|
|
170
|
+
readRecipe(ctx: RouteContext<{
|
|
171
|
+
name: string;
|
|
172
|
+
}>): Promise<AFSEntry | undefined>;
|
|
173
|
+
readRecipeManifest(ctx: RouteContext<{
|
|
174
|
+
name: string;
|
|
175
|
+
}>): Promise<AFSEntry | undefined>;
|
|
176
|
+
readRecipeReadme(ctx: RouteContext<{
|
|
177
|
+
name: string;
|
|
178
|
+
}>): Promise<AFSEntry | undefined>;
|
|
136
179
|
readCapabilities(_ctx: RouteContext): Promise<AFSEntry | undefined>;
|
|
180
|
+
listVocabularyLeaf(_ctx: RouteContext): Promise<{
|
|
181
|
+
data: AFSEntry[];
|
|
182
|
+
}>;
|
|
183
|
+
listVocabulary(_ctx: RouteContext): Promise<{
|
|
184
|
+
data: AFSEntry[];
|
|
185
|
+
}>;
|
|
186
|
+
readVocabulary(_ctx: RouteContext): Promise<AFSEntry | undefined>;
|
|
187
|
+
readVocabularyCategories(_ctx: RouteContext): Promise<AFSEntry | undefined>;
|
|
188
|
+
readVocabularyTags(_ctx: RouteContext): Promise<AFSEntry | undefined>;
|
|
137
189
|
rootMeta(_ctx: RouteContext): Promise<AFSEntry>;
|
|
190
|
+
recipesMeta(_ctx: RouteContext): Promise<AFSEntry>;
|
|
191
|
+
recipeMeta(ctx: RouteContext<{
|
|
192
|
+
name: string;
|
|
193
|
+
}>): Promise<AFSEntry>;
|
|
194
|
+
recipeManifestMeta(ctx: RouteContext<{
|
|
195
|
+
name: string;
|
|
196
|
+
}>): Promise<AFSEntry>;
|
|
197
|
+
recipeReadmeMeta(ctx: RouteContext<{
|
|
198
|
+
name: string;
|
|
199
|
+
}>): Promise<AFSEntry>;
|
|
138
200
|
providersMeta(_ctx: RouteContext): Promise<AFSEntry>;
|
|
139
201
|
providerMeta(ctx: RouteContext<{
|
|
140
202
|
name: string;
|
|
@@ -145,6 +207,12 @@ declare class AFSRegistry extends AFSBaseProvider {
|
|
|
145
207
|
readmeMeta(ctx: RouteContext<{
|
|
146
208
|
name: string;
|
|
147
209
|
}>): Promise<AFSEntry>;
|
|
210
|
+
treeSchemaJsonMeta(ctx: RouteContext<{
|
|
211
|
+
name: string;
|
|
212
|
+
}>): Promise<AFSEntry>;
|
|
213
|
+
agentMdMeta(ctx: RouteContext<{
|
|
214
|
+
name: string;
|
|
215
|
+
}>): Promise<AFSEntry>;
|
|
148
216
|
byCategoryMeta(_ctx: RouteContext): Promise<AFSEntry>;
|
|
149
217
|
categoryMeta(ctx: RouteContext<{
|
|
150
218
|
category: string;
|
|
@@ -161,6 +229,9 @@ declare class AFSRegistry extends AFSBaseProvider {
|
|
|
161
229
|
tag: string;
|
|
162
230
|
name: string;
|
|
163
231
|
}>): Promise<AFSEntry>;
|
|
232
|
+
vocabularyMeta(_ctx: RouteContext): Promise<AFSEntry>;
|
|
233
|
+
vocabularyCategoriesMeta(_ctx: RouteContext): Promise<AFSEntry>;
|
|
234
|
+
vocabularyTagsMeta(_ctx: RouteContext): Promise<AFSEntry>;
|
|
164
235
|
listRootActions(_ctx: RouteContext): Promise<{
|
|
165
236
|
data: AFSEntry[];
|
|
166
237
|
}>;
|
|
@@ -169,6 +240,17 @@ declare class AFSRegistry extends AFSBaseProvider {
|
|
|
169
240
|
* Build mount action inputSchema for a provider
|
|
170
241
|
*/
|
|
171
242
|
private buildMountSchema;
|
|
243
|
+
listRecipeActions(ctx: RouteContext<{
|
|
244
|
+
name: string;
|
|
245
|
+
}>): Promise<{
|
|
246
|
+
data: AFSEntry[];
|
|
247
|
+
}>;
|
|
248
|
+
readRecipeMountAction(ctx: RouteContext<{
|
|
249
|
+
name: string;
|
|
250
|
+
}>): Promise<AFSEntry | undefined>;
|
|
251
|
+
mountRecipe(ctx: RouteContext<{
|
|
252
|
+
name: string;
|
|
253
|
+
}>, args: Record<string, unknown>): Promise<AFSExecResult>;
|
|
172
254
|
listProviderActions(ctx: RouteContext<{
|
|
173
255
|
name: string;
|
|
174
256
|
}>): Promise<{
|
|
@@ -183,9 +265,15 @@ declare class AFSRegistry extends AFSBaseProvider {
|
|
|
183
265
|
searchRoot(_ctx: RouteContext, query: string, options?: {
|
|
184
266
|
limit?: number;
|
|
185
267
|
}): Promise<AFSSearchResult>;
|
|
186
|
-
|
|
268
|
+
explainProvider(ctx: RouteContext<{
|
|
269
|
+
name: string;
|
|
270
|
+
}>): Promise<AFSExplainResult>;
|
|
271
|
+
explainRecipe(ctx: RouteContext<{
|
|
272
|
+
name: string;
|
|
273
|
+
}>): Promise<AFSExplainResult>;
|
|
274
|
+
explainFallback(ctx: RouteContext): Promise<AFSExplainResult>;
|
|
187
275
|
statPath(ctx: RouteContext): Promise<AFSStatResult>;
|
|
188
276
|
}
|
|
189
277
|
//#endregion
|
|
190
|
-
export { AFSRegistry, AFSRegistryOptions, ProviderManifest };
|
|
278
|
+
export { AFSRegistry, AFSRegistryOptions, ProviderManifest, clearScanCache, scanInstalledProviders };
|
|
191
279
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/scanner.ts","../src/index.ts"],"mappings":"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"}
|