@slashfi/agents-sdk 0.79.0 → 0.81.0
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/adk.js +90 -1
- package/dist/adk.js.map +1 -1
- package/dist/cjs/config-store.js +14 -7
- package/dist/cjs/config-store.js.map +1 -1
- package/dist/cjs/materialize.js +37 -10
- package/dist/cjs/materialize.js.map +1 -1
- package/dist/cjs/search.js +406 -0
- package/dist/cjs/search.js.map +1 -0
- package/dist/config-store.d.ts +24 -5
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +14 -7
- package/dist/config-store.js.map +1 -1
- package/dist/materialize.d.ts.map +1 -1
- package/dist/materialize.js +37 -10
- package/dist/materialize.js.map +1 -1
- package/dist/search.d.ts +185 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +396 -0
- package/dist/search.js.map +1 -0
- package/package.json +1 -1
- package/src/adk.ts +96 -1
- package/src/config-store.test.ts +56 -0
- package/src/config-store.ts +32 -5
- package/src/materialize.ts +48 -10
- package/src/search.test.ts +406 -0
- package/src/search.ts +541 -0
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* adk search — BM25 over materialized ref/tool docs.
|
|
4
|
+
*
|
|
5
|
+
* Walks `${configDir}/refs/` and indexes every ref + tool + skill found:
|
|
6
|
+
*
|
|
7
|
+
* `<configDir>/refs/<ref>/agent.json` → ref-level fields
|
|
8
|
+
* `<configDir>/refs/<ref>/entrypoint.md` → ref-level body
|
|
9
|
+
* `<configDir>/refs/<ref>/tools/<t>.tool.md` → per-tool body
|
|
10
|
+
* `<configDir>/refs/<ref>/tools/<t>.tool.json` → per-tool param names/descs
|
|
11
|
+
* `<configDir>/refs/<ref>/skills/<file>` → per-resource body
|
|
12
|
+
*
|
|
13
|
+
* Platform agents nest under `refs/agents/<@name>/`; integration refs sit
|
|
14
|
+
* directly at `refs/<name>/`. The walker handles both layouts.
|
|
15
|
+
*
|
|
16
|
+
* One BM25 document per ref + one per tool + one per skill resource. Tool
|
|
17
|
+
* and ref names get inserted multiple times into the document text so they
|
|
18
|
+
* outweigh surrounding prose without the BM25 implementation needing
|
|
19
|
+
* per-field weighting.
|
|
20
|
+
*
|
|
21
|
+
* Persistence: `adk sync` calls `writeSearchIndex(configDir)` to dump the
|
|
22
|
+
* raw BM25 docs + per-doc result metadata to `<configDir>/.search-index.json`.
|
|
23
|
+
* `searchRefs` prefers that file when it exists — `adk search` becomes a
|
|
24
|
+
* single file read + BM25 build (a few ms) instead of a recursive walk.
|
|
25
|
+
* Falls back to a fresh walk when the persisted file is missing or stale.
|
|
26
|
+
*
|
|
27
|
+
* The file is dot-prefixed so coding agents treat it as a hidden artifact
|
|
28
|
+
* and don't try to read it directly — they should use `adk search` instead.
|
|
29
|
+
*/
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.SEARCH_INDEX_FILENAME = void 0;
|
|
32
|
+
exports.buildSearchIndex = buildSearchIndex;
|
|
33
|
+
exports.searchIndexPath = searchIndexPath;
|
|
34
|
+
exports.writeSearchIndex = writeSearchIndex;
|
|
35
|
+
exports.readSearchIndex = readSearchIndex;
|
|
36
|
+
exports.searchRefs = searchRefs;
|
|
37
|
+
exports.renderResults = renderResults;
|
|
38
|
+
exports.refsRootExists = refsRootExists;
|
|
39
|
+
const node_fs_1 = require("node:fs");
|
|
40
|
+
const node_path_1 = require("node:path");
|
|
41
|
+
const bm25_js_1 = require("./bm25.js");
|
|
42
|
+
const INDEX_VERSION = 1;
|
|
43
|
+
/**
|
|
44
|
+
* Sibling to `refs/` and `adk.d.ts` in the config directory. Dot-prefixed
|
|
45
|
+
* so coding agents treat it as a hidden artifact rather than something
|
|
46
|
+
* they should read directly — agents should query through `adk search`.
|
|
47
|
+
*/
|
|
48
|
+
exports.SEARCH_INDEX_FILENAME = ".search-index.json";
|
|
49
|
+
// ============================================
|
|
50
|
+
// Index building (filesystem walk)
|
|
51
|
+
// ============================================
|
|
52
|
+
/**
|
|
53
|
+
* Walk `refsRoot` recursively. Every directory containing an `agent.json`
|
|
54
|
+
* is a materialized ref. Builds the unified BM25 docs + per-result metadata
|
|
55
|
+
* map used by both the live search path and the persisted index writer.
|
|
56
|
+
*
|
|
57
|
+
* Ids embed the kind so that `adk search`'s kind filters can apply post-rank
|
|
58
|
+
* without re-running BM25:
|
|
59
|
+
*
|
|
60
|
+
* `ref:<refName>`
|
|
61
|
+
* `tool:<refName>|<toolName>`
|
|
62
|
+
* `resource:<refName>|<fileName>`
|
|
63
|
+
*
|
|
64
|
+
* The `|` separator is safe because ref / tool / resource names use
|
|
65
|
+
* letters / numbers / `-` / `_` / `/` / `@` / `.` only.
|
|
66
|
+
*/
|
|
67
|
+
function buildSearchIndex(refsRoot) {
|
|
68
|
+
const docs = [];
|
|
69
|
+
const items = {};
|
|
70
|
+
function walk(dir) {
|
|
71
|
+
if (!(0, node_fs_1.existsSync)(dir))
|
|
72
|
+
return;
|
|
73
|
+
let entries;
|
|
74
|
+
try {
|
|
75
|
+
entries = (0, node_fs_1.readdirSync)(dir);
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const agentJsonPath = (0, node_path_1.join)(dir, "agent.json");
|
|
81
|
+
if ((0, node_fs_1.existsSync)(agentJsonPath)) {
|
|
82
|
+
try {
|
|
83
|
+
const manifest = JSON.parse((0, node_fs_1.readFileSync)(agentJsonPath, "utf-8"));
|
|
84
|
+
const refName = manifest.name ?? (0, node_path_1.basename)(dir);
|
|
85
|
+
const description = manifest.description ?? "";
|
|
86
|
+
const toolCount = manifest.toolCount ?? manifest.tools?.length ?? 0;
|
|
87
|
+
const entrypointPath = (0, node_path_1.join)(dir, "entrypoint.md");
|
|
88
|
+
const entrypointBody = (0, node_fs_1.existsSync)(entrypointPath)
|
|
89
|
+
? (0, node_fs_1.readFileSync)(entrypointPath, "utf-8")
|
|
90
|
+
: "";
|
|
91
|
+
const refId = `ref:${refName}`;
|
|
92
|
+
docs.push({
|
|
93
|
+
id: refId,
|
|
94
|
+
text: [refName, refName, description, entrypointBody].join(" \n "),
|
|
95
|
+
});
|
|
96
|
+
items[refId] = {
|
|
97
|
+
kind: "ref",
|
|
98
|
+
ref: refName,
|
|
99
|
+
summary: description || refName,
|
|
100
|
+
docs: dir,
|
|
101
|
+
entrypoint: entrypointPath,
|
|
102
|
+
toolCount,
|
|
103
|
+
};
|
|
104
|
+
const toolsDir = (0, node_path_1.join)(dir, "tools");
|
|
105
|
+
if ((0, node_fs_1.existsSync)(toolsDir)) {
|
|
106
|
+
for (const file of (0, node_fs_1.readdirSync)(toolsDir)) {
|
|
107
|
+
if (!file.endsWith(".tool.md"))
|
|
108
|
+
continue;
|
|
109
|
+
const toolMdPath = (0, node_path_1.join)(toolsDir, file);
|
|
110
|
+
const toolJsonPath = toolMdPath.replace(/\.tool\.md$/, ".tool.json");
|
|
111
|
+
const md = (0, node_fs_1.readFileSync)(toolMdPath, "utf-8");
|
|
112
|
+
const summary = firstNonBlankLine(md, refName, file);
|
|
113
|
+
const tool = parseToolName(toolJsonPath, file);
|
|
114
|
+
const paramText = extractParamText(toolJsonPath);
|
|
115
|
+
// Repeat the high-signal terms (ref + tool name) so BM25
|
|
116
|
+
// ranks exact-name matches above ambient body matches.
|
|
117
|
+
const text = [
|
|
118
|
+
tool,
|
|
119
|
+
tool,
|
|
120
|
+
tool,
|
|
121
|
+
refName,
|
|
122
|
+
refName,
|
|
123
|
+
md,
|
|
124
|
+
paramText,
|
|
125
|
+
].join(" \n ");
|
|
126
|
+
const id = `tool:${refName}|${tool}`;
|
|
127
|
+
docs.push({ id, text });
|
|
128
|
+
items[id] = {
|
|
129
|
+
kind: "tool",
|
|
130
|
+
ref: refName,
|
|
131
|
+
tool,
|
|
132
|
+
summary,
|
|
133
|
+
docs: toolMdPath,
|
|
134
|
+
schema: toolJsonPath,
|
|
135
|
+
call: `adk ref call ${refName} ${tool} '{...}'`,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// Skills / resources written by `materializeRef` — text content
|
|
140
|
+
// synced from the registry's `read_resources` / `list_resources`
|
|
141
|
+
// surface. Indexed so `adk search` can surface ref-specific
|
|
142
|
+
// skill files (e.g. "writing pages" → notion's writing-pages.md).
|
|
143
|
+
const skillsDir = (0, node_path_1.join)(dir, "skills");
|
|
144
|
+
if ((0, node_fs_1.existsSync)(skillsDir)) {
|
|
145
|
+
for (const file of (0, node_fs_1.readdirSync)(skillsDir)) {
|
|
146
|
+
const path = (0, node_path_1.join)(skillsDir, file);
|
|
147
|
+
try {
|
|
148
|
+
if (!(0, node_fs_1.statSync)(path).isFile())
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
let body;
|
|
155
|
+
try {
|
|
156
|
+
body = (0, node_fs_1.readFileSync)(path, "utf-8");
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
const summary = firstNonBlankLine(body, refName, file);
|
|
162
|
+
const text = [file, file, refName, refName, body].join(" \n ");
|
|
163
|
+
const id = `resource:${refName}|${file}`;
|
|
164
|
+
docs.push({ id, text });
|
|
165
|
+
items[id] = {
|
|
166
|
+
kind: "resource",
|
|
167
|
+
ref: refName,
|
|
168
|
+
resource: file,
|
|
169
|
+
summary,
|
|
170
|
+
docs: path,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// Malformed agent.json — skip this directory but keep walking.
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// Recurse into subdirectories that aren't tool / skill / types output —
|
|
180
|
+
// those have no nested agents. Anything else (e.g. `agents/`) might
|
|
181
|
+
// hold platform-agent refs.
|
|
182
|
+
for (const entry of entries) {
|
|
183
|
+
const full = (0, node_path_1.join)(dir, entry);
|
|
184
|
+
let isDir;
|
|
185
|
+
try {
|
|
186
|
+
isDir = (0, node_fs_1.statSync)(full).isDirectory();
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
if (!isDir)
|
|
192
|
+
continue;
|
|
193
|
+
if (entry === "tools" || entry === "skills" || entry === "types")
|
|
194
|
+
continue;
|
|
195
|
+
walk(full);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
walk(refsRoot);
|
|
199
|
+
return {
|
|
200
|
+
version: INDEX_VERSION,
|
|
201
|
+
generatedAt: new Date().toISOString(),
|
|
202
|
+
docs,
|
|
203
|
+
items,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
// ============================================
|
|
207
|
+
// Persistence
|
|
208
|
+
// ============================================
|
|
209
|
+
/** Resolve the persisted-index path for a given config directory. */
|
|
210
|
+
function searchIndexPath(configDir) {
|
|
211
|
+
return (0, node_path_1.join)(configDir, exports.SEARCH_INDEX_FILENAME);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Build and write the persisted index to `<configDir>/.search-index.json`.
|
|
215
|
+
* Called from `adk sync` so subsequent `adk search` invocations skip the
|
|
216
|
+
* recursive ref walk.
|
|
217
|
+
*/
|
|
218
|
+
function writeSearchIndex(configDir) {
|
|
219
|
+
const refsRoot = (0, node_path_1.join)(configDir, "refs");
|
|
220
|
+
const index = buildSearchIndex(refsRoot);
|
|
221
|
+
const path = searchIndexPath(configDir);
|
|
222
|
+
const dir = (0, node_path_1.dirname)(path);
|
|
223
|
+
if (!(0, node_fs_1.existsSync)(dir))
|
|
224
|
+
(0, node_fs_1.mkdirSync)(dir, { recursive: true });
|
|
225
|
+
// Pretty-print in dev only; production indexes will be small enough
|
|
226
|
+
// that minified output isn't worth the readability cost.
|
|
227
|
+
(0, node_fs_1.writeFileSync)(path, `${JSON.stringify(index, null, 2)}\n`, "utf-8");
|
|
228
|
+
return { path, documentCount: index.docs.length };
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Read a persisted index. Returns `null` if the file is missing,
|
|
232
|
+
* unreadable, malformed, or written by an incompatible version.
|
|
233
|
+
*/
|
|
234
|
+
function readSearchIndex(configDir) {
|
|
235
|
+
const path = searchIndexPath(configDir);
|
|
236
|
+
if (!(0, node_fs_1.existsSync)(path))
|
|
237
|
+
return null;
|
|
238
|
+
try {
|
|
239
|
+
const raw = (0, node_fs_1.readFileSync)(path, "utf-8");
|
|
240
|
+
const parsed = JSON.parse(raw);
|
|
241
|
+
if (parsed?.version !== INDEX_VERSION)
|
|
242
|
+
return null;
|
|
243
|
+
if (!Array.isArray(parsed.docs))
|
|
244
|
+
return null;
|
|
245
|
+
if (!parsed.items || typeof parsed.items !== "object")
|
|
246
|
+
return null;
|
|
247
|
+
return parsed;
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
return null;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
/** Pick the first non-blank line of `body` as a one-line summary. */
|
|
254
|
+
function firstNonBlankLine(body, refName, fileName) {
|
|
255
|
+
for (const raw of body.split("\n")) {
|
|
256
|
+
const line = raw.trim();
|
|
257
|
+
if (!line)
|
|
258
|
+
continue;
|
|
259
|
+
if (line.startsWith("#"))
|
|
260
|
+
continue;
|
|
261
|
+
return line;
|
|
262
|
+
}
|
|
263
|
+
return `${refName}/${fileName}`;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Pull the actual tool name from the .tool.json. Falls back to the
|
|
267
|
+
* filename (without .tool.md) if the json is missing or unreadable —
|
|
268
|
+
* still useful as a search anchor even if not exact.
|
|
269
|
+
*/
|
|
270
|
+
function parseToolName(toolJsonPath, fileName) {
|
|
271
|
+
if ((0, node_fs_1.existsSync)(toolJsonPath)) {
|
|
272
|
+
try {
|
|
273
|
+
const obj = JSON.parse((0, node_fs_1.readFileSync)(toolJsonPath, "utf-8"));
|
|
274
|
+
if (typeof obj.name === "string" && obj.name.length > 0)
|
|
275
|
+
return obj.name;
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
// fall through
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
return fileName.replace(/\.tool\.md$/, "");
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Pull parameter names + descriptions out of a .tool.json's inputSchema.
|
|
285
|
+
* Surfaces them as plain text into the BM25 index so queries like
|
|
286
|
+
* "calendar event id" land on the right tool.
|
|
287
|
+
*/
|
|
288
|
+
function extractParamText(toolJsonPath) {
|
|
289
|
+
if (!(0, node_fs_1.existsSync)(toolJsonPath))
|
|
290
|
+
return "";
|
|
291
|
+
try {
|
|
292
|
+
const obj = JSON.parse((0, node_fs_1.readFileSync)(toolJsonPath, "utf-8"));
|
|
293
|
+
const parts = [];
|
|
294
|
+
if (obj.description)
|
|
295
|
+
parts.push(obj.description);
|
|
296
|
+
const props = obj.inputSchema?.properties ?? {};
|
|
297
|
+
for (const [name, info] of Object.entries(props)) {
|
|
298
|
+
parts.push(name);
|
|
299
|
+
if (typeof info?.description === "string")
|
|
300
|
+
parts.push(info.description);
|
|
301
|
+
}
|
|
302
|
+
return parts.join(" ");
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
return "";
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
// ============================================
|
|
309
|
+
// Search
|
|
310
|
+
// ============================================
|
|
311
|
+
/**
|
|
312
|
+
* Run a BM25 search over the materialized refs.
|
|
313
|
+
*
|
|
314
|
+
* Prefers the persisted `<configDir>/search-index.json` (written by
|
|
315
|
+
* `adk sync`) when it exists — that path skips the recursive walk and
|
|
316
|
+
* runs in single-digit ms even with hundreds of tools. Falls back to a
|
|
317
|
+
* fresh walk of `refsRoot` when the persisted file is missing or stale.
|
|
318
|
+
*
|
|
319
|
+
* @param refsRoot The materialized refs directory (e.g. `~/.adk/refs`).
|
|
320
|
+
* We derive `<configDir>` from this as the parent so callers don't
|
|
321
|
+
* have to plumb both. Pass an `index` directly via `options.index` to
|
|
322
|
+
* bypass disk I/O entirely (used by tests).
|
|
323
|
+
*/
|
|
324
|
+
function searchRefs(refsRoot, query, options = {}) {
|
|
325
|
+
const index = options.index ??
|
|
326
|
+
readSearchIndex((0, node_path_1.dirname)(refsRoot)) ??
|
|
327
|
+
buildSearchIndex(refsRoot);
|
|
328
|
+
const bm25 = (0, bm25_js_1.createBM25Index)(index.docs);
|
|
329
|
+
const limit = options.limit ?? 10;
|
|
330
|
+
// Pull more raw hits than `limit` so the kind / ref filters below have
|
|
331
|
+
// headroom to drop irrelevant matches without short-changing the caller.
|
|
332
|
+
// 5x is plenty for typical 10-20 limits.
|
|
333
|
+
const raw = bm25.search(query, limit * 5);
|
|
334
|
+
const results = [];
|
|
335
|
+
for (const hit of raw) {
|
|
336
|
+
if (results.length >= limit)
|
|
337
|
+
break;
|
|
338
|
+
const item = index.items[hit.id];
|
|
339
|
+
if (!item)
|
|
340
|
+
continue;
|
|
341
|
+
if (options.toolsOnly && item.kind !== "tool")
|
|
342
|
+
continue;
|
|
343
|
+
if (options.refsOnly && item.kind !== "ref")
|
|
344
|
+
continue;
|
|
345
|
+
if (options.ref && !refMatches(options.ref, item.ref))
|
|
346
|
+
continue;
|
|
347
|
+
// Spread the stored item and tack on the query-time score. Each
|
|
348
|
+
// `item` matches one of the `SearchResult` variants by construction
|
|
349
|
+
// (see `buildSearchIndex`), so this is type-safe.
|
|
350
|
+
results.push({ ...item, score: hit.score });
|
|
351
|
+
}
|
|
352
|
+
return results;
|
|
353
|
+
}
|
|
354
|
+
/** Match `ref` filter loosely — accepts both bare names and `/agents/@…` paths. */
|
|
355
|
+
function refMatches(filter, ref) {
|
|
356
|
+
if (filter === ref)
|
|
357
|
+
return true;
|
|
358
|
+
// Allow `@clock` as a shorthand for `/agents/@clock`, and vice versa.
|
|
359
|
+
if (ref === `/agents/${filter}`)
|
|
360
|
+
return true;
|
|
361
|
+
if (`/agents/${ref}` === filter)
|
|
362
|
+
return true;
|
|
363
|
+
return false;
|
|
364
|
+
}
|
|
365
|
+
// ============================================
|
|
366
|
+
// CLI rendering
|
|
367
|
+
// ============================================
|
|
368
|
+
/** Concise human-readable rendering — one numbered block per result. */
|
|
369
|
+
function renderResults(results) {
|
|
370
|
+
if (results.length === 0)
|
|
371
|
+
return "No results.";
|
|
372
|
+
const blocks = [];
|
|
373
|
+
for (let i = 0; i < results.length; i++) {
|
|
374
|
+
const r = results[i];
|
|
375
|
+
const score = r.score.toFixed(2);
|
|
376
|
+
if (r.kind === "tool") {
|
|
377
|
+
blocks.push([
|
|
378
|
+
`${i + 1}. ${r.ref}.${r.tool} score=${score}`,
|
|
379
|
+
` ${r.summary}`,
|
|
380
|
+
` Docs: ${r.docs}`,
|
|
381
|
+
` Call: ${r.call}`,
|
|
382
|
+
].join("\n"));
|
|
383
|
+
}
|
|
384
|
+
else if (r.kind === "ref") {
|
|
385
|
+
blocks.push([
|
|
386
|
+
`${i + 1}. ${r.ref} (ref, ${r.toolCount} tools) score=${score}`,
|
|
387
|
+
` ${r.summary}`,
|
|
388
|
+
` Docs: ${r.docs}`,
|
|
389
|
+
].join("\n"));
|
|
390
|
+
}
|
|
391
|
+
else {
|
|
392
|
+
blocks.push([
|
|
393
|
+
`${i + 1}. ${r.ref}/${r.resource} (resource) score=${score}`,
|
|
394
|
+
` ${r.summary}`,
|
|
395
|
+
` Docs: ${r.docs}`,
|
|
396
|
+
].join("\n"));
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
return blocks.join("\n\n");
|
|
400
|
+
}
|
|
401
|
+
// Local helpers — exposed so callers (the CLI) can detect a missing
|
|
402
|
+
// refs root and print a useful message instead of an empty result list.
|
|
403
|
+
function refsRootExists(refsRoot) {
|
|
404
|
+
return (0, node_fs_1.existsSync)(refsRoot) && (0, node_fs_1.statSync)(refsRoot).isDirectory();
|
|
405
|
+
}
|
|
406
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"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"}
|
package/dist/config-store.d.ts
CHANGED
|
@@ -86,6 +86,24 @@ export interface RegistryCacheEntry {
|
|
|
86
86
|
export interface RegistryCache {
|
|
87
87
|
refs: Record<string, RegistryCacheEntry>;
|
|
88
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Options for `isRefAuthComplete`.
|
|
91
|
+
*/
|
|
92
|
+
export interface RefAuthCompleteOptions {
|
|
93
|
+
/**
|
|
94
|
+
* Field names the consumer can resolve at call time without them
|
|
95
|
+
* being present in `entry.config` — typically OAuth client_id /
|
|
96
|
+
* client_secret resolved from environment variables or platform
|
|
97
|
+
* config by the host's `resolveCredentials` callback.
|
|
98
|
+
*
|
|
99
|
+
* Required-non-automated fields listed here count as satisfied even
|
|
100
|
+
* when missing from `entry.config`. The default behaviour (no opt
|
|
101
|
+
* passed) requires every such field to live in config, which is
|
|
102
|
+
* correct for self-hosted SDK consumers but wrong for platforms
|
|
103
|
+
* that inject OAuth client credentials at runtime.
|
|
104
|
+
*/
|
|
105
|
+
resolvableFields?: ReadonlyArray<string>;
|
|
106
|
+
}
|
|
89
107
|
/**
|
|
90
108
|
* "Is this ref ready to call?" answered locally using the cached
|
|
91
109
|
* security-scheme requirements. Mirrors the `complete` boolean
|
|
@@ -100,16 +118,17 @@ export interface RegistryCache {
|
|
|
100
118
|
* signaling "I don't know — caller should fall back to its own
|
|
101
119
|
* heuristic or call `auth-status` to populate the cache".
|
|
102
120
|
* - Cache hit → for every required, non-automated field, checks
|
|
103
|
-
* presence in `entry.config
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
121
|
+
* presence in `entry.config` OR (if `opts.resolvableFields`
|
|
122
|
+
* includes the field name) treats it as satisfied externally.
|
|
123
|
+
* Mirrors the `present || resolvable` check in `auth-status`.
|
|
124
|
+
* `automated` fields (e.g. dynamic OAuth client_id minted by the
|
|
125
|
+
* registry) always count as satisfied.
|
|
107
126
|
*
|
|
108
127
|
* Returning `null` for cache miss is intentional. A boolean would
|
|
109
128
|
* force callers to choose a default that's wrong half the time;
|
|
110
129
|
* `null` lets them branch explicitly.
|
|
111
130
|
*/
|
|
112
|
-
export declare function isRefAuthComplete(entry: RefEntry, cacheEntry: RegistryCacheEntry | undefined): boolean | null;
|
|
131
|
+
export declare function isRefAuthComplete(entry: RefEntry, cacheEntry: RegistryCacheEntry | undefined, opts?: RefAuthCompleteOptions): boolean | null;
|
|
113
132
|
/** Context passed to the resolveCredentials callback */
|
|
114
133
|
export interface ResolveCredentialsContext {
|
|
115
134
|
/** Ref name */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../src/config-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,QAAQ,EACR,aAAa,EACb,WAAW,EAEZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAU1C,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,qBAAqB,EAEtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAU3E;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACnC;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACpD,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC1C;AAED
|
|
1
|
+
{"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../src/config-store.ts"],"names":[],"mappings":"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"}
|
package/dist/config-store.js
CHANGED
|
@@ -38,16 +38,17 @@ const SECRET_PREFIX = "secret:";
|
|
|
38
38
|
* signaling "I don't know — caller should fall back to its own
|
|
39
39
|
* heuristic or call `auth-status` to populate the cache".
|
|
40
40
|
* - Cache hit → for every required, non-automated field, checks
|
|
41
|
-
* presence in `entry.config
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
41
|
+
* presence in `entry.config` OR (if `opts.resolvableFields`
|
|
42
|
+
* includes the field name) treats it as satisfied externally.
|
|
43
|
+
* Mirrors the `present || resolvable` check in `auth-status`.
|
|
44
|
+
* `automated` fields (e.g. dynamic OAuth client_id minted by the
|
|
45
|
+
* registry) always count as satisfied.
|
|
45
46
|
*
|
|
46
47
|
* Returning `null` for cache miss is intentional. A boolean would
|
|
47
48
|
* force callers to choose a default that's wrong half the time;
|
|
48
49
|
* `null` lets them branch explicitly.
|
|
49
50
|
*/
|
|
50
|
-
export function isRefAuthComplete(entry, cacheEntry) {
|
|
51
|
+
export function isRefAuthComplete(entry, cacheEntry, opts) {
|
|
51
52
|
if (typeof entry === "string")
|
|
52
53
|
return false;
|
|
53
54
|
if (entry.mode === "proxy")
|
|
@@ -56,13 +57,19 @@ export function isRefAuthComplete(entry, cacheEntry) {
|
|
|
56
57
|
if (!authFields)
|
|
57
58
|
return null;
|
|
58
59
|
const config = entry.config ?? {};
|
|
60
|
+
const resolvable = opts?.resolvableFields && opts.resolvableFields.length > 0
|
|
61
|
+
? new Set(opts.resolvableFields)
|
|
62
|
+
: null;
|
|
59
63
|
for (const [field, info] of Object.entries(authFields)) {
|
|
60
64
|
if (!info.required)
|
|
61
65
|
continue;
|
|
62
66
|
if (info.automated)
|
|
63
67
|
continue;
|
|
64
|
-
if (
|
|
65
|
-
|
|
68
|
+
if (field in config)
|
|
69
|
+
continue;
|
|
70
|
+
if (resolvable && resolvable.has(field))
|
|
71
|
+
continue;
|
|
72
|
+
return false;
|
|
66
73
|
}
|
|
67
74
|
return true;
|
|
68
75
|
}
|