@yadsh/dsh-qa-surface 0.11.2 → 0.12.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/lib/access/service.js +2 -1
- package/lib/access/service.js.map +1 -1
- package/lib/client/QaSurface.js +9 -2
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/components/QaChangelog.js +29 -9
- package/lib/client/components/QaChangelog.js.map +1 -1
- package/lib/client/components/QaSidebar.js +13 -15
- package/lib/client/components/QaSidebar.js.map +1 -1
- package/lib/client/settings/card.js +2 -2
- package/lib/client/settings/card.js.map +1 -1
- package/lib/client/settings/sections/docs.js +41 -0
- package/lib/client/settings/sections/docs.js.map +1 -0
- package/lib/client/settings/sections.js +1 -0
- package/lib/client/settings/sections.js.map +1 -1
- package/lib/client/styles.js +1 -2
- package/lib/client/styles.js.map +1 -1
- package/lib/client.js +306 -194
- package/lib/client.js.map +1 -1
- package/lib/config-resolvers/defaults.js +4 -0
- package/lib/config-resolvers/defaults.js.map +1 -1
- package/lib/config-resolvers/integration.js +7 -7
- package/lib/config-resolvers/integration.js.map +1 -1
- package/lib/config-resolvers/tools.js +25 -0
- package/lib/config-resolvers/tools.js.map +1 -1
- package/lib/config.js +15 -0
- package/lib/config.js.map +1 -1
- package/lib/index.js +6 -1
- package/lib/index.js.map +1 -1
- package/lib/qa-tools/catalog.js +13 -2
- package/lib/qa-tools/catalog.js.map +1 -1
- package/lib/qa-tools/docs-tools.js +269 -24
- package/lib/qa-tools/docs-tools.js.map +1 -1
- package/lib/qa-tools/index.js +1 -0
- package/lib/qa-tools/index.js.map +1 -1
- package/lib/secure-session.js +11 -13
- package/lib/secure-session.js.map +1 -1
- package/lib/shared/docs-version.js +19 -0
- package/lib/shared/docs-version.js.map +1 -0
- package/lib/typert.host.js +70 -68
- package/lib/typert.remote-client.js +69 -67
- package/lib/types/client/settings/sections/docs.d.ts +15 -0
- package/lib/types/client/settings/sections.d.ts +1 -0
- package/lib/types/config-resolvers/integration.d.ts +5 -5
- package/lib/types/config-resolvers/tools.d.ts +9 -0
- package/lib/types/qa-tools/catalog.d.ts +6 -1
- package/lib/types/qa-tools/docs-tools.d.ts +15 -0
- package/lib/types/qa-tools/index.d.ts +6 -1
- package/lib/types/shared/docs-version.d.ts +15 -0
- package/lib/types/types.d.ts +22 -0
- package/package.json +3 -3
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { lstat, readFile, readdir } from "node:fs/promises";
|
|
2
2
|
import { dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
3
3
|
import { defineTool } from "@deepseek-ai/dsh-tools";
|
|
4
|
+
import { isDocumentationVersion } from "../shared/docs-version.js";
|
|
4
5
|
import { canonicalCandidate, pathIsInside } from "../user-workspace.js";
|
|
5
6
|
/**
|
|
6
7
|
* `docs_search` and `docs_read` — the documentation surface of the QA catalog.
|
|
@@ -22,6 +23,14 @@ import { canonicalCandidate, pathIsInside } from "../user-workspace.js";
|
|
|
22
23
|
* names are accepted as filters. A path the convention does not describe is
|
|
23
24
|
* still searched and still read — it simply carries no identity.
|
|
24
25
|
*
|
|
26
|
+
* A real corpus also carries its own working material: the stand publishes an
|
|
27
|
+
* asset tree, inventories and triage notes beside the documents, under leading
|
|
28
|
+
* underscores. None of that is what a question is asked about, and an inventory
|
|
29
|
+
* names every module and version there is, so a walk that met it first spent the
|
|
30
|
+
* whole answer on it. The walk therefore visits the documented modules first,
|
|
31
|
+
* loose files next, and the underscored service material last — searched, but
|
|
32
|
+
* never at the expense of the documents.
|
|
33
|
+
*
|
|
25
34
|
* Nothing here is destructive and building it registers nothing: like the rest
|
|
26
35
|
* of the catalog these are side-effect-free definitions, and the workspace root
|
|
27
36
|
* is read from `exec.agent` at call time.
|
|
@@ -36,10 +45,76 @@ export const QA_DOCS_READ_DEFAULT_LINES = 120;
|
|
|
36
45
|
export const QA_DOCS_READ_MAX_LINES = 400;
|
|
37
46
|
/** One file larger than this is not documentation a chat needs to search. */
|
|
38
47
|
const MAX_FILE_BYTES = 2 * 1024 * 1024;
|
|
39
|
-
/** Bound on
|
|
48
|
+
/** Bound on how many documents one search reads. */
|
|
40
49
|
const MAX_FILES_SCANNED = 2_000;
|
|
50
|
+
/**
|
|
51
|
+
* Bound on how many entries one walk may look at, so a corpus with a huge asset
|
|
52
|
+
* tree cannot stall the turn even though nothing in it is read.
|
|
53
|
+
*/
|
|
54
|
+
const MAX_WALK_ENTRIES = 50_000;
|
|
41
55
|
/** A matched line is trimmed to this many characters before it is reported. */
|
|
42
56
|
const MAX_LINE_CHARS = 240;
|
|
57
|
+
/**
|
|
58
|
+
* Extensions of material that is not documentation text: pictures, audio and
|
|
59
|
+
* video, archives, office binaries, fonts. A published corpus keeps them beside
|
|
60
|
+
* its prose — four fifths of the stand's own tree is images — and learning that
|
|
61
|
+
* by reading each one spends a search's whole document budget before it reaches
|
|
62
|
+
* a document. These are counted as skipped material, never as documents read.
|
|
63
|
+
*/
|
|
64
|
+
const NON_TEXT_EXTENSIONS = new Set([
|
|
65
|
+
"avif",
|
|
66
|
+
"bmp",
|
|
67
|
+
"bz2",
|
|
68
|
+
"class",
|
|
69
|
+
"dll",
|
|
70
|
+
"doc",
|
|
71
|
+
"docx",
|
|
72
|
+
"dylib",
|
|
73
|
+
"eot",
|
|
74
|
+
"exe",
|
|
75
|
+
"flac",
|
|
76
|
+
"gif",
|
|
77
|
+
"gz",
|
|
78
|
+
"heic",
|
|
79
|
+
"ico",
|
|
80
|
+
"jar",
|
|
81
|
+
"jpeg",
|
|
82
|
+
"jfif",
|
|
83
|
+
"jpg",
|
|
84
|
+
"m4a",
|
|
85
|
+
"m4v",
|
|
86
|
+
"mkv",
|
|
87
|
+
"mov",
|
|
88
|
+
"mp3",
|
|
89
|
+
"mp4",
|
|
90
|
+
"odp",
|
|
91
|
+
"ods",
|
|
92
|
+
"odt",
|
|
93
|
+
"ogg",
|
|
94
|
+
"otf",
|
|
95
|
+
"pdf",
|
|
96
|
+
"png",
|
|
97
|
+
"ppt",
|
|
98
|
+
"pptx",
|
|
99
|
+
"rar",
|
|
100
|
+
"sqlite",
|
|
101
|
+
"svg",
|
|
102
|
+
"tar",
|
|
103
|
+
"tgz",
|
|
104
|
+
"tif",
|
|
105
|
+
"tiff",
|
|
106
|
+
"ttf",
|
|
107
|
+
"wav",
|
|
108
|
+
"wasm",
|
|
109
|
+
"webm",
|
|
110
|
+
"webp",
|
|
111
|
+
"woff",
|
|
112
|
+
"woff2",
|
|
113
|
+
"xls",
|
|
114
|
+
"xlsx",
|
|
115
|
+
"xz",
|
|
116
|
+
"zip",
|
|
117
|
+
]);
|
|
43
118
|
const TEXT_DECODER = new TextDecoder("utf-8", { fatal: true });
|
|
44
119
|
/**
|
|
45
120
|
* A typed refusal of one documentation call.
|
|
@@ -74,9 +149,25 @@ const SYMLINK_ESCAPE = "this path leaves the documentation tree through a symbol
|
|
|
74
149
|
const NOT_FOUND = "no documentation file or directory exists at this path. Check the spelling against a path docs_search reported.";
|
|
75
150
|
const NOT_A_FILE = "this path is a directory, not a documentation file: pass the file to read, or use docs_search to find one.";
|
|
76
151
|
const NOT_TEXT = "this path does not read as UTF-8 text (or is larger than the readable limit), so it is not documentation this tool can return.";
|
|
77
|
-
|
|
152
|
+
/**
|
|
153
|
+
* The version one search runs under: the caller's own, the deployment's
|
|
154
|
+
* default, or none.
|
|
155
|
+
*
|
|
156
|
+
* An explicit `version` is the model saying which edition it means. An explicit
|
|
157
|
+
* `path` names a subtree the default has no business overriding — a corpus
|
|
158
|
+
* scoped to `platform/3.5` stays reachable on a stand whose default is `3.8` —
|
|
159
|
+
* so a call that named a path is left to that path alone.
|
|
160
|
+
*/
|
|
161
|
+
function versionFor(options, args) {
|
|
162
|
+
const asked = (args.version ?? "").trim();
|
|
163
|
+
if (asked !== "")
|
|
164
|
+
return asked;
|
|
165
|
+
if ((args.path ?? "").trim() !== "")
|
|
166
|
+
return "";
|
|
167
|
+
return (options.defaultVersion ?? "").trim();
|
|
168
|
+
}
|
|
78
169
|
function normalizeVersion(value) {
|
|
79
|
-
return value.replace(/^v/u, "")
|
|
170
|
+
return value.toLowerCase().replace(/^v/u, "");
|
|
80
171
|
}
|
|
81
172
|
/**
|
|
82
173
|
* Identity of one documentation path, read relative to the documentation root.
|
|
@@ -94,7 +185,7 @@ export function docsIdentityOf(pathFromDocsRoot) {
|
|
|
94
185
|
.filter((segment) => segment !== "");
|
|
95
186
|
if (segments.length === 0)
|
|
96
187
|
return identityOf(undefined, undefined);
|
|
97
|
-
const versionIndex = segments.findIndex((segment) =>
|
|
188
|
+
const versionIndex = segments.findIndex((segment) => isDocumentationVersion(segment));
|
|
98
189
|
if (versionIndex === -1)
|
|
99
190
|
return identityOf(undefined, segments[0]);
|
|
100
191
|
return identityOf(segments[versionIndex], versionIndex > 0 ? segments[versionIndex - 1] : undefined);
|
|
@@ -209,11 +300,15 @@ async function docsTargetOf(root, input) {
|
|
|
209
300
|
throw new QaDocsError("outside-docs", OUTSIDE_DOCS);
|
|
210
301
|
}
|
|
211
302
|
const normalized = trimmed.replace(/\\/gu, "/").replace(/^\.\//u, "");
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
303
|
+
// `docs/` is the stable public spelling, not necessarily the configured
|
|
304
|
+
// directory's basename. Resolve both accepted spellings from the canonical
|
|
305
|
+
// root itself so `/srv/published-corpus` still reads `docs/module/file.md`.
|
|
306
|
+
const pathFromDocs = normalized === QA_DOCS_DIRECTORY
|
|
307
|
+
? ""
|
|
308
|
+
: normalized.startsWith(`${QA_DOCS_DIRECTORY}/`)
|
|
309
|
+
? normalized.slice(QA_DOCS_DIRECTORY.length + 1)
|
|
310
|
+
: normalized;
|
|
311
|
+
const spelled = resolve(root.docs, pathFromDocs);
|
|
217
312
|
if (!pathIsInside(spelled, root.docs)) {
|
|
218
313
|
throw new QaDocsError("outside-docs", OUTSIDE_DOCS);
|
|
219
314
|
}
|
|
@@ -278,20 +373,95 @@ function clamp(value, low, high) {
|
|
|
278
373
|
return Math.min(Math.max(Math.trunc(value), low), high);
|
|
279
374
|
}
|
|
280
375
|
/**
|
|
281
|
-
*
|
|
376
|
+
* Whether a name is the corpus's own working material: the asset tree, the
|
|
377
|
+
* inventories, the triage notes and anything else a publisher underscored or
|
|
378
|
+
* dotted.
|
|
379
|
+
*/
|
|
380
|
+
function isServiceName(name) {
|
|
381
|
+
return name.startsWith("_") || name.startsWith(".");
|
|
382
|
+
}
|
|
383
|
+
/** Whether any segment of a path is such material. */
|
|
384
|
+
function isServicePath(pathFromDocs) {
|
|
385
|
+
return pathFromDocs.split(/[\\/]/u).some(isServiceName);
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* How the entries of one directory are ordered: documents before service
|
|
389
|
+
* material.
|
|
390
|
+
*
|
|
391
|
+
* A corpus keeps its own working material beside the documents, and the stand's
|
|
392
|
+
* names it with a leading underscore. Name order puts that material first (`_`
|
|
393
|
+
* sorts before letters), which is exactly where a bounded answer must not spend
|
|
394
|
+
* itself: an inventory names every module and version the corpus has, so it
|
|
395
|
+
* matches the question and consumes the budget before a document is opened.
|
|
396
|
+
* Module directories come first, then loose files at the same level, then
|
|
397
|
+
* everything underscored or dotted — which is still searched, just after the
|
|
398
|
+
* documentation. Material inside a service directory stays service material,
|
|
399
|
+
* however its own entries are named.
|
|
400
|
+
*/
|
|
401
|
+
function entryRank(parentIsService, entry) {
|
|
402
|
+
if (parentIsService || isServiceName(entry.name))
|
|
403
|
+
return 2;
|
|
404
|
+
return entry.isDirectory() ? 0 : 1;
|
|
405
|
+
}
|
|
406
|
+
function entryComparator(parentIsService) {
|
|
407
|
+
return (left, right) => {
|
|
408
|
+
const rank = entryRank(parentIsService, left) - entryRank(parentIsService, right);
|
|
409
|
+
if (rank !== 0)
|
|
410
|
+
return rank;
|
|
411
|
+
return left.name < right.name ? -1 : left.name > right.name ? 1 : 0;
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Which queued directory the walk opens next.
|
|
416
|
+
*
|
|
417
|
+
* Rank and path decide, not the order directories happened to be queued in: the
|
|
418
|
+
* corpus's own `_meta` at the top of the tree must not be read before a
|
|
419
|
+
* documented module's edition one level below it, which is what a breadth-first
|
|
420
|
+
* queue did — the inventories answered every question about the product before
|
|
421
|
+
* a document was reached.
|
|
422
|
+
*/
|
|
423
|
+
function scopeComparator(left, right) {
|
|
424
|
+
const rank = Number(isServicePath(left.pathFromDocs)) -
|
|
425
|
+
Number(isServicePath(right.pathFromDocs));
|
|
426
|
+
if (rank !== 0)
|
|
427
|
+
return rank;
|
|
428
|
+
if (left.pathFromDocs === right.pathFromDocs)
|
|
429
|
+
return 0;
|
|
430
|
+
return left.pathFromDocs < right.pathFromDocs ? -1 : 1;
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Whether a name is material the walk never reads: pictures, media, archives,
|
|
434
|
+
* office binaries and fonts, recognised by extension.
|
|
435
|
+
*/
|
|
436
|
+
function isNonTextName(name) {
|
|
437
|
+
const dot = name.lastIndexOf(".");
|
|
438
|
+
if (dot <= 0)
|
|
439
|
+
return false;
|
|
440
|
+
return NON_TEXT_EXTENSIONS.has(name.slice(dot + 1).toLowerCase());
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Visit every documentation file of one target, in walk order.
|
|
282
444
|
*
|
|
283
|
-
* Symbolic links are counted as skipped and never followed.
|
|
284
|
-
*
|
|
285
|
-
*
|
|
445
|
+
* Symbolic links are counted as skipped and never followed. A file the caller's
|
|
446
|
+
* scope excludes is neither read nor counted, and material that is not text is
|
|
447
|
+
* counted as skipped rather than read, so the document budget below is spent on
|
|
448
|
+
* documents. The visitor returns `stop` to end the walk, which is how the output
|
|
449
|
+
* budget ends it early.
|
|
286
450
|
*/
|
|
287
|
-
async function visitDocumentation(target, visit) {
|
|
451
|
+
async function visitDocumentation(target, accept, descend, visit) {
|
|
288
452
|
let filesScanned = 0;
|
|
453
|
+
let entriesSeen = 0;
|
|
289
454
|
let skipped = 0;
|
|
290
455
|
const info = await lstat(target.absolute).catch(() => undefined);
|
|
291
456
|
if (info === undefined) {
|
|
292
457
|
throw new QaDocsError("not-found", NOT_FOUND);
|
|
293
458
|
}
|
|
294
459
|
if (info.isFile()) {
|
|
460
|
+
// A path the caller named explicitly is read as it is: out of scope means
|
|
461
|
+
// no hits, not a refusal, and the refusal it may get comes from the reader.
|
|
462
|
+
if (!accept(target.pathFromDocs)) {
|
|
463
|
+
return { filesScanned, skipped, stopped: false };
|
|
464
|
+
}
|
|
295
465
|
return {
|
|
296
466
|
filesScanned: 1,
|
|
297
467
|
skipped,
|
|
@@ -303,24 +473,47 @@ async function visitDocumentation(target, visit) {
|
|
|
303
473
|
}
|
|
304
474
|
const pending = [target];
|
|
305
475
|
while (pending.length > 0) {
|
|
476
|
+
// Ranked by path, so the queue's order is the walk's order.
|
|
477
|
+
pending.sort(scopeComparator);
|
|
306
478
|
const scope = pending.shift();
|
|
479
|
+
const serviceScope = isServicePath(scope.pathFromDocs);
|
|
307
480
|
const entries = await readdir(scope.absolute, {
|
|
308
481
|
withFileTypes: true,
|
|
309
482
|
}).catch(() => []);
|
|
310
|
-
entries.sort((
|
|
483
|
+
entries.sort(entryComparator(serviceScope));
|
|
311
484
|
for (const entry of entries) {
|
|
312
485
|
const child = join(scope.absolute, entry.name);
|
|
313
486
|
const pathFromDocs = join(scope.pathFromDocs, entry.name);
|
|
314
487
|
if (entry.isSymbolicLink()) {
|
|
488
|
+
entriesSeen += 1;
|
|
489
|
+
if (entriesSeen > MAX_WALK_ENTRIES) {
|
|
490
|
+
return { filesScanned, skipped, stopped: true };
|
|
491
|
+
}
|
|
315
492
|
skipped += 1;
|
|
316
493
|
continue;
|
|
317
494
|
}
|
|
318
495
|
if (entry.isDirectory()) {
|
|
496
|
+
if (!descend(pathFromDocs))
|
|
497
|
+
continue;
|
|
498
|
+
entriesSeen += 1;
|
|
499
|
+
if (entriesSeen > MAX_WALK_ENTRIES) {
|
|
500
|
+
return { filesScanned, skipped, stopped: true };
|
|
501
|
+
}
|
|
319
502
|
pending.push({ absolute: child, pathFromDocs });
|
|
320
503
|
continue;
|
|
321
504
|
}
|
|
322
505
|
if (!entry.isFile())
|
|
323
506
|
continue;
|
|
507
|
+
if (!accept(pathFromDocs))
|
|
508
|
+
continue;
|
|
509
|
+
entriesSeen += 1;
|
|
510
|
+
if (entriesSeen > MAX_WALK_ENTRIES) {
|
|
511
|
+
return { filesScanned, skipped, stopped: true };
|
|
512
|
+
}
|
|
513
|
+
if (isNonTextName(entry.name)) {
|
|
514
|
+
skipped += 1;
|
|
515
|
+
continue;
|
|
516
|
+
}
|
|
324
517
|
filesScanned += 1;
|
|
325
518
|
if (filesScanned > MAX_FILES_SCANNED) {
|
|
326
519
|
return { filesScanned, skipped, stopped: true };
|
|
@@ -367,9 +560,24 @@ export async function searchDocumentation(root, request) {
|
|
|
367
560
|
return false;
|
|
368
561
|
return true;
|
|
369
562
|
};
|
|
563
|
+
const wantedScope = (pathFromDocs) => {
|
|
564
|
+
// `docsIdentityOf` expects a file path. A synthetic leaf makes the current
|
|
565
|
+
// directory participate as a scope while still allowing an ancestor that
|
|
566
|
+
// has not reached its module/version segment yet.
|
|
567
|
+
const identity = docsIdentityOf(join(pathFromDocs, "__scope__"));
|
|
568
|
+
if (version !== "" &&
|
|
569
|
+
identity.version !== undefined &&
|
|
570
|
+
!versionMatches(identity, version)) {
|
|
571
|
+
return false;
|
|
572
|
+
}
|
|
573
|
+
if (module !== "" &&
|
|
574
|
+
identity.module !== undefined &&
|
|
575
|
+
!moduleMatches(identity, module)) {
|
|
576
|
+
return false;
|
|
577
|
+
}
|
|
578
|
+
return true;
|
|
579
|
+
};
|
|
370
580
|
const visit = async (file, pathFromDocs, explicit) => {
|
|
371
|
-
if (!wanted(pathFromDocs))
|
|
372
|
-
return "continue";
|
|
373
581
|
let lines;
|
|
374
582
|
try {
|
|
375
583
|
lines = await readDocLines(file);
|
|
@@ -402,7 +610,7 @@ export async function searchDocumentation(root, request) {
|
|
|
402
610
|
}
|
|
403
611
|
return "continue";
|
|
404
612
|
};
|
|
405
|
-
const walk = await visitDocumentation(scope, visit);
|
|
613
|
+
const walk = await visitDocumentation(scope, wanted, wantedScope, visit);
|
|
406
614
|
return {
|
|
407
615
|
...identityOf(version === "" ? undefined : version, module === "" ? undefined : module),
|
|
408
616
|
query,
|
|
@@ -443,7 +651,12 @@ export async function readDocumentation(root, request) {
|
|
|
443
651
|
text: lines.slice(from - 1, Math.max(to, from - 1)).join("\n"),
|
|
444
652
|
};
|
|
445
653
|
}
|
|
446
|
-
|
|
654
|
+
/**
|
|
655
|
+
* The facets an answer ran under, as one leading-space clause the callers
|
|
656
|
+
* interpolate. `note` rides beside them in a report's header — never on a hit's
|
|
657
|
+
* own label, where it would repeat on every line.
|
|
658
|
+
*/
|
|
659
|
+
function filtersOf(identity, note = "") {
|
|
447
660
|
const parts = [];
|
|
448
661
|
if (identity.version !== undefined && identity.version !== "") {
|
|
449
662
|
parts.push(`version ${identity.version}`);
|
|
@@ -451,7 +664,9 @@ function filtersOf(identity) {
|
|
|
451
664
|
if (identity.module !== undefined && identity.module !== "") {
|
|
452
665
|
parts.push(`module ${identity.module}`);
|
|
453
666
|
}
|
|
454
|
-
|
|
667
|
+
const facets = parts.join(", ");
|
|
668
|
+
const described = note === "" ? facets : facets === "" ? note : `${facets}, ${note}`;
|
|
669
|
+
return described === "" ? "" : ` (${described})`;
|
|
455
670
|
}
|
|
456
671
|
function identityLabel(identity) {
|
|
457
672
|
return filtersOf(identity);
|
|
@@ -467,7 +682,7 @@ function identityLabel(identity) {
|
|
|
467
682
|
export function createDocsSearchTool(options = {}) {
|
|
468
683
|
return defineTool({
|
|
469
684
|
name: "docs_search",
|
|
470
|
-
description: `Search the stand's documentation, which lives ${docsLayout(options)}. Use it — not memory and not a glob sweep over guessed paths — whenever a question is about the product, a version or a module. Hits are lines, tagged with the module and version parsed from the path (${QA_DOCS_DIRECTORY}/<module>/<version>/…); pass version and module to stay inside one edition, and path to stay inside one subtree. Output is bounded by limit and by a byte budget, and a truncated result says so
|
|
685
|
+
description: `Search the stand's documentation, which lives ${docsLayout(options)}. Use it — not memory and not a glob sweep over guessed paths — whenever a question is about the product, a version or a module. Hits are lines, tagged with the module and version parsed from the path (${QA_DOCS_DIRECTORY}/<module>/<version>/…); pass version and module to stay inside one edition, and path to stay inside one subtree. Output is bounded by limit and by a byte budget, and a truncated result says so.${defaultVersionNote(options)}`,
|
|
471
686
|
parameters: {
|
|
472
687
|
query: {
|
|
473
688
|
type: "string",
|
|
@@ -516,11 +731,15 @@ export function createDocsSearchTool(options = {}) {
|
|
|
516
731
|
truncated: { type: "boolean", required: true },
|
|
517
732
|
filesScanned: { type: "integer", required: true },
|
|
518
733
|
skipped: { type: "integer", required: true },
|
|
734
|
+
// A search answers with the facets it ran under, so a filtered result
|
|
735
|
+
// says which edition of which module it is speaking about.
|
|
736
|
+
version: { type: "string" },
|
|
737
|
+
module: { type: "string" },
|
|
519
738
|
},
|
|
520
739
|
},
|
|
521
|
-
render: (
|
|
740
|
+
render: (args, value) => {
|
|
522
741
|
const result = value;
|
|
523
|
-
const filters = filtersOf(result);
|
|
742
|
+
const filters = filtersOf(result, defaultedVersion(options, args) ? "the stand's default" : "");
|
|
524
743
|
if (result.hits.length === 0) {
|
|
525
744
|
return [
|
|
526
745
|
{
|
|
@@ -542,7 +761,7 @@ export function createDocsSearchTool(options = {}) {
|
|
|
542
761
|
const root = await docsRootOf(exec, options);
|
|
543
762
|
return searchDocumentation(root, {
|
|
544
763
|
query: args.query,
|
|
545
|
-
version: args
|
|
764
|
+
version: versionFor(options, args),
|
|
546
765
|
module: args.module,
|
|
547
766
|
path: args.path,
|
|
548
767
|
limit: args.limit,
|
|
@@ -550,6 +769,32 @@ export function createDocsSearchTool(options = {}) {
|
|
|
550
769
|
},
|
|
551
770
|
});
|
|
552
771
|
}
|
|
772
|
+
/**
|
|
773
|
+
* Whether the version in an answer is the deployment's default rather than one
|
|
774
|
+
* the caller named — the difference between "I looked in 3.8" and "the stand
|
|
775
|
+
* looked in 3.8", which the report has to keep.
|
|
776
|
+
*/
|
|
777
|
+
function defaultedVersion(options, args) {
|
|
778
|
+
const request = (args ?? {});
|
|
779
|
+
const asked = request.version;
|
|
780
|
+
if (typeof asked === "string" && asked.trim() !== "")
|
|
781
|
+
return false;
|
|
782
|
+
if (typeof request.path === "string" && request.path.trim() !== "") {
|
|
783
|
+
return false;
|
|
784
|
+
}
|
|
785
|
+
return (options.defaultVersion ?? "").trim() !== "";
|
|
786
|
+
}
|
|
787
|
+
/**
|
|
788
|
+
* The sentence that tells the model which edition a search it did not scope
|
|
789
|
+
* itself will stay inside. Without it the model reads a filtered answer as the
|
|
790
|
+
* whole corpus and reports a missing document rather than a narrowed search.
|
|
791
|
+
*/
|
|
792
|
+
function defaultVersionNote(options) {
|
|
793
|
+
const version = (options.defaultVersion ?? "").trim();
|
|
794
|
+
return version === ""
|
|
795
|
+
? ""
|
|
796
|
+
: ` This stand documents version ${version} by default: a search without version and without path stays inside that edition, and pass version or path to look at another one.`;
|
|
797
|
+
}
|
|
553
798
|
/**
|
|
554
799
|
* How the tool description names the tree: the model has to know where the
|
|
555
800
|
* documentation is before it decides to look, and a configured corpus is named
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-tools.js","sourceRoot":"","sources":["../../src/qa-tools/docs-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"docs-tools.js","sourceRoot":"","sources":["../../src/qa-tools/docs-tools.ts"],"names":[],"mappings":"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"}
|
package/lib/qa-tools/index.js
CHANGED
|
@@ -32,6 +32,7 @@ export class QaTools {
|
|
|
32
32
|
activeTools: (agent) => this.manager.activeToolNames(agent),
|
|
33
33
|
skillLoaded: (agent) => sessionLoadedSkill(agent.session, options.activationSkill),
|
|
34
34
|
docsRoot: options.docsRoot,
|
|
35
|
+
docsDefaultVersion: options.docsDefaultVersion,
|
|
35
36
|
});
|
|
36
37
|
this.catalogTools = catalog.map((entry) => entry.definition.name);
|
|
37
38
|
this.manager = new QaToolActivationManager({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/qa-tools/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/qa-tools/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAkB3D;;;;;;;;GAQG;AACH,MAAM,OAAO,OAAO;IAOC,GAAG;IACH,OAAO;IAPT,OAAO,CAA0B;IACjC,QAAQ,CAA2B;IACnC,SAAS,CAA4B;IACrC,YAAY,CAAoB;IAEjD,YACmB,GAAY,EACZ,OAAuB;mBADvB,GAAG;uBACH,OAAO;QAExB,qEAAqE;QACrE,wEAAwE;QACxE,kBAAkB;QAClB,MAAM,OAAO,GAAG,mBAAmB,CAAC;YAClC,cAAc,EAAE,uBAAuB;YACvC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY;YACrC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;YAC3D,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CACrB,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC;YAC5D,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;SAC/C,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAuB,CAAC;YACzC,OAAO;YACP,cAAc,EAAE,uBAAuB;YACvC,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,wBAAwB,CAAC,GAAG,EAAE;YAChD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,yBAAyB,CAAC,GAAG,EAAE;YAClD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YACrD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAC;QACH,IACE,OAAO,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAC5B,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBACvC,IAAI,EAAE,8EAA8E;aACrF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,eAAe,CAAC,KAAY;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,kFAAkF;IAClF,gBAAgB;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,KAAY;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC;QAClD,OAAO,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;CACF"}
|
package/lib/secure-session.js
CHANGED
|
@@ -505,11 +505,13 @@ export class QaPolicyAdmission {
|
|
|
505
505
|
: () => grants.dispose();
|
|
506
506
|
disposeGuard = agent.ctx.tools.guard((execution) => {
|
|
507
507
|
const subject = execution.agent;
|
|
508
|
-
// A catalogue tool rides on the agent itself
|
|
509
|
-
//
|
|
510
|
-
//
|
|
511
|
-
//
|
|
512
|
-
return qaToolDenial(grants?.effectiveTools() ?? allowed, execution.name,
|
|
508
|
+
// A catalogue tool rides on the agent itself and the mask cannot name
|
|
509
|
+
// it. Account-free deployments keep admitting their active catalogue;
|
|
510
|
+
// a role-bound chat must still carry the tool in its base or activated
|
|
511
|
+
// grant, otherwise attachment would silently widen the role.
|
|
512
|
+
return qaToolDenial(grants?.effectiveTools() ?? allowed, execution.name, capability === undefined && subject !== undefined
|
|
513
|
+
? this.dynamicToolNames(subject)
|
|
514
|
+
: []);
|
|
513
515
|
});
|
|
514
516
|
// The conversation's ceiling, which also bounds the agents delegated
|
|
515
517
|
// from this chat. A subrole reaches its own tools and the ones a skill
|
|
@@ -518,21 +520,17 @@ export class QaPolicyAdmission {
|
|
|
518
520
|
// session's own policy list rides along for the names the admission
|
|
519
521
|
// appends to it (the provenance reporter), which a role does not list.
|
|
520
522
|
//
|
|
521
|
-
//
|
|
522
|
-
//
|
|
523
|
-
//
|
|
524
|
-
// would deny every call to a tool the chat both owns and can see — the
|
|
525
|
-
// documentation readers among them — and the refusal would name a
|
|
526
|
-
// capability profile the caller cannot see the gap in.
|
|
523
|
+
// Account-free chats retain their catalogue reach. A role-bound
|
|
524
|
+
// conversation is bounded by the snapshotted base and grantable sets;
|
|
525
|
+
// including the whole catalogue here would make role omission useless.
|
|
527
526
|
this.ceilings.set(sessionId, new Set([
|
|
528
527
|
...policy.allow,
|
|
529
528
|
...(capability === undefined
|
|
530
|
-
? this.principalScopedTools
|
|
529
|
+
? [...this.principalScopedTools, ...this.knownDynamicToolNames()]
|
|
531
530
|
: [
|
|
532
531
|
...capability.policy.tools,
|
|
533
532
|
...capability.policy.grantableTools,
|
|
534
533
|
]),
|
|
535
|
-
...this.knownDynamicToolNames(),
|
|
536
534
|
]));
|
|
537
535
|
// A role snapshot cannot change for this session, but a restarted Host
|
|
538
536
|
// materializes a new Agent and therefore a fresh scoped loader.
|