@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 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 / offline use). Overrides url if provided. */
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 remoteUrl?;
50
- private fetchPromise?;
60
+ private scanPromise?;
51
61
  private loadProviderFn?;
52
62
  constructor(options?: AFSRegistryOptions);
53
- private fetchRemoteProviders;
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
- explainPath(_ctx: RouteContext): Promise<AFSExplainResult>;
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/scanner.ts","../src/index.ts"],"mappings":"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"}