@yadsh/dsh-qa-surface 0.11.2 → 0.13.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/admin/service.js +254 -52
- package/lib/admin/service.js.map +1 -1
- package/lib/client/QaAccountsController.js +19 -1
- package/lib/client/QaAccountsController.js.map +1 -1
- package/lib/client/QaSurface.js +9 -2
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/admin/pages/Conversations.js +9 -2
- package/lib/client/admin/pages/Conversations.js.map +1 -1
- package/lib/client/admin/pages/Overview.js +1 -1
- package/lib/client/admin/pages/Overview.js.map +1 -1
- package/lib/client/admin/pages/Quality.js +1 -1
- package/lib/client/admin/pages/Quality.js.map +1 -1
- package/lib/client/admin/pages/Review.js +8 -4
- package/lib/client/admin/pages/Review.js.map +1 -1
- package/lib/client/admin/shared.js +42 -4
- package/lib/client/admin/shared.js.map +1 -1
- package/lib/client/components/QaChangelog.js +52 -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/index.js +18 -4
- package/lib/client/index.js.map +1 -1
- package/lib/client/markdown/MermaidBlock.js +80 -0
- package/lib/client/markdown/MermaidBlock.js.map +1 -0
- package/lib/client/markdown/render.js +4 -0
- package/lib/client/markdown/render.js.map +1 -1
- package/lib/client/rating-harvest.js +138 -0
- package/lib/client/rating-harvest.js.map +1 -0
- 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 +24 -2
- package/lib/client/styles.js.map +1 -1
- package/lib/client/types.js.map +1 -1
- package/lib/client.js +2526 -232
- 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 +32 -10
- package/lib/index.js.map +1 -1
- package/lib/provenance/extractors.js +1 -1
- package/lib/provenance/extractors.js.map +1 -1
- package/lib/provenance/host-store.js +5 -1
- package/lib/provenance/host-store.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 +329 -31
- 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 +140 -73
- package/lib/typert.remote-client.d.ts +11 -9
- package/lib/typert.remote-client.js +119 -67
- package/lib/types/admin/service.d.ts +60 -9
- package/lib/types/client/QaAccountsController.d.ts +12 -1
- package/lib/types/client/admin/shared.d.ts +16 -1
- package/lib/types/client/markdown/MermaidBlock.d.ts +6 -0
- package/lib/types/client/rating-harvest.d.ts +49 -0
- package/lib/types/client/settings/sections/docs.d.ts +15 -0
- package/lib/types/client/settings/sections.d.ts +1 -0
- package/lib/types/client/types.d.ts +11 -4
- package/lib/types/config-resolvers/integration.d.ts +5 -5
- package/lib/types/config-resolvers/tools.d.ts +9 -0
- package/lib/types/index.d.ts +18 -6
- package/lib/types/qa-tools/catalog.d.ts +6 -1
- package/lib/types/qa-tools/docs-tools.d.ts +17 -2
- 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 +42 -0
- package/package.json +5 -4
|
@@ -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,78 @@ 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
|
+
/** Keep model-supplied regular expressions small enough to audit and execute. */
|
|
58
|
+
const MAX_QUERY_PATTERN_CHARS = 512;
|
|
59
|
+
/**
|
|
60
|
+
* Extensions of material that is not documentation text: pictures, audio and
|
|
61
|
+
* video, archives, office binaries, fonts. A published corpus keeps them beside
|
|
62
|
+
* its prose — four fifths of the stand's own tree is images — and learning that
|
|
63
|
+
* by reading each one spends a search's whole document budget before it reaches
|
|
64
|
+
* a document. These are counted as skipped material, never as documents read.
|
|
65
|
+
*/
|
|
66
|
+
const NON_TEXT_EXTENSIONS = new Set([
|
|
67
|
+
"avif",
|
|
68
|
+
"bmp",
|
|
69
|
+
"bz2",
|
|
70
|
+
"class",
|
|
71
|
+
"dll",
|
|
72
|
+
"doc",
|
|
73
|
+
"docx",
|
|
74
|
+
"dylib",
|
|
75
|
+
"eot",
|
|
76
|
+
"exe",
|
|
77
|
+
"flac",
|
|
78
|
+
"gif",
|
|
79
|
+
"gz",
|
|
80
|
+
"heic",
|
|
81
|
+
"ico",
|
|
82
|
+
"jar",
|
|
83
|
+
"jpeg",
|
|
84
|
+
"jfif",
|
|
85
|
+
"jpg",
|
|
86
|
+
"m4a",
|
|
87
|
+
"m4v",
|
|
88
|
+
"mkv",
|
|
89
|
+
"mov",
|
|
90
|
+
"mp3",
|
|
91
|
+
"mp4",
|
|
92
|
+
"odp",
|
|
93
|
+
"ods",
|
|
94
|
+
"odt",
|
|
95
|
+
"ogg",
|
|
96
|
+
"otf",
|
|
97
|
+
"pdf",
|
|
98
|
+
"png",
|
|
99
|
+
"ppt",
|
|
100
|
+
"pptx",
|
|
101
|
+
"rar",
|
|
102
|
+
"sqlite",
|
|
103
|
+
"svg",
|
|
104
|
+
"tar",
|
|
105
|
+
"tgz",
|
|
106
|
+
"tif",
|
|
107
|
+
"tiff",
|
|
108
|
+
"ttf",
|
|
109
|
+
"wav",
|
|
110
|
+
"wasm",
|
|
111
|
+
"webm",
|
|
112
|
+
"webp",
|
|
113
|
+
"woff",
|
|
114
|
+
"woff2",
|
|
115
|
+
"xls",
|
|
116
|
+
"xlsx",
|
|
117
|
+
"xz",
|
|
118
|
+
"zip",
|
|
119
|
+
]);
|
|
43
120
|
const TEXT_DECODER = new TextDecoder("utf-8", { fatal: true });
|
|
44
121
|
/**
|
|
45
122
|
* A typed refusal of one documentation call.
|
|
@@ -61,6 +138,9 @@ const DOCS_UNAVAILABLE = `this chat's workspace has no ${QA_DOCS_DIRECTORY}/ dir
|
|
|
61
138
|
const DOCS_NOT_A_DIRECTORY = `the ${QA_DOCS_DIRECTORY}/ entry in this chat's workspace is not a real directory (it is a file or a link), and documentation is never followed through a link.`;
|
|
62
139
|
const DOCS_ESCAPE = `the ${QA_DOCS_DIRECTORY}/ directory resolves outside the calling chat's workspace, so the documentation tree is refused.`;
|
|
63
140
|
const INVALID_QUERY = "no query was given: pass the phrase to look for.";
|
|
141
|
+
const INVALID_PATTERN = "the search query is not a valid regular expression. Use grep-style syntax, for example `brigadir|brigada`, and escape punctuation that should be literal.";
|
|
142
|
+
const UNSAFE_PATTERN = "the search query uses grouping or repetition, which this bounded search does not execute. Use safe grep-style alternatives such as `brigadir|brigada`, character classes or anchors.";
|
|
143
|
+
const QUERY_TOO_LONG = `the search query is longer than ${MAX_QUERY_PATTERN_CHARS} characters. Narrow the regular expression and try again.`;
|
|
64
144
|
const OUTSIDE_DOCS = `this path resolves outside the documentation tree (${QA_DOCS_DIRECTORY}/) this stand reads. Documentation is only read where the stand publishes it; pass a path inside ${QA_DOCS_DIRECTORY}/.`;
|
|
65
145
|
/**
|
|
66
146
|
* Refusals of a configured root. The operator named the path, so the message
|
|
@@ -74,9 +154,25 @@ const SYMLINK_ESCAPE = "this path leaves the documentation tree through a symbol
|
|
|
74
154
|
const NOT_FOUND = "no documentation file or directory exists at this path. Check the spelling against a path docs_search reported.";
|
|
75
155
|
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
156
|
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
|
-
|
|
157
|
+
/**
|
|
158
|
+
* The version one search runs under: the caller's own, the deployment's
|
|
159
|
+
* default, or none.
|
|
160
|
+
*
|
|
161
|
+
* An explicit `version` is the model saying which edition it means. An explicit
|
|
162
|
+
* `path` names a subtree the default has no business overriding — a corpus
|
|
163
|
+
* scoped to `platform/3.5` stays reachable on a stand whose default is `3.8` —
|
|
164
|
+
* so a call that named a path is left to that path alone.
|
|
165
|
+
*/
|
|
166
|
+
function versionFor(options, args) {
|
|
167
|
+
const asked = (args.version ?? "").trim();
|
|
168
|
+
if (asked !== "")
|
|
169
|
+
return asked;
|
|
170
|
+
if ((args.path ?? "").trim() !== "")
|
|
171
|
+
return "";
|
|
172
|
+
return (options.defaultVersion ?? "").trim();
|
|
173
|
+
}
|
|
78
174
|
function normalizeVersion(value) {
|
|
79
|
-
return value.replace(/^v/u, "")
|
|
175
|
+
return value.toLowerCase().replace(/^v/u, "");
|
|
80
176
|
}
|
|
81
177
|
/**
|
|
82
178
|
* Identity of one documentation path, read relative to the documentation root.
|
|
@@ -94,7 +190,7 @@ export function docsIdentityOf(pathFromDocsRoot) {
|
|
|
94
190
|
.filter((segment) => segment !== "");
|
|
95
191
|
if (segments.length === 0)
|
|
96
192
|
return identityOf(undefined, undefined);
|
|
97
|
-
const versionIndex = segments.findIndex((segment) =>
|
|
193
|
+
const versionIndex = segments.findIndex((segment) => isDocumentationVersion(segment));
|
|
98
194
|
if (versionIndex === -1)
|
|
99
195
|
return identityOf(undefined, segments[0]);
|
|
100
196
|
return identityOf(segments[versionIndex], versionIndex > 0 ? segments[versionIndex - 1] : undefined);
|
|
@@ -205,15 +301,22 @@ async function configuredDocsRoot(configured) {
|
|
|
205
301
|
*/
|
|
206
302
|
async function docsTargetOf(root, input) {
|
|
207
303
|
const trimmed = input.trim();
|
|
208
|
-
if (trimmed === ""
|
|
304
|
+
if (trimmed === "") {
|
|
209
305
|
throw new QaDocsError("outside-docs", OUTSIDE_DOCS);
|
|
210
306
|
}
|
|
307
|
+
const absoluteInput = isAbsolute(trimmed);
|
|
211
308
|
const normalized = trimmed.replace(/\\/gu, "/").replace(/^\.\//u, "");
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
309
|
+
// `docs/` is the stable public spelling, not necessarily the configured
|
|
310
|
+
// directory's basename. Resolve both accepted spellings from the canonical
|
|
311
|
+
// root itself so `/srv/published-corpus` still reads `docs/module/file.md`.
|
|
312
|
+
const relativeInput = normalized === QA_DOCS_DIRECTORY
|
|
313
|
+
? ""
|
|
314
|
+
: normalized.startsWith(`${QA_DOCS_DIRECTORY}/`)
|
|
315
|
+
? normalized.slice(QA_DOCS_DIRECTORY.length + 1)
|
|
316
|
+
: normalized;
|
|
317
|
+
const spelled = absoluteInput
|
|
318
|
+
? resolve(trimmed)
|
|
319
|
+
: resolve(root.docs, relativeInput);
|
|
217
320
|
if (!pathIsInside(spelled, root.docs)) {
|
|
218
321
|
throw new QaDocsError("outside-docs", OUTSIDE_DOCS);
|
|
219
322
|
}
|
|
@@ -278,20 +381,127 @@ function clamp(value, low, high) {
|
|
|
278
381
|
return Math.min(Math.max(Math.trunc(value), low), high);
|
|
279
382
|
}
|
|
280
383
|
/**
|
|
281
|
-
*
|
|
384
|
+
* Accept the linear subset this tool documents: literals, escapes,
|
|
385
|
+
* alternatives, character classes, dot and anchors. JavaScript regular
|
|
386
|
+
* expressions have no execution timeout, so grouping and repetition are
|
|
387
|
+
* rejected before compilation instead of letting a model-supplied nested
|
|
388
|
+
* quantifier block the Host on a long documentation line.
|
|
389
|
+
*/
|
|
390
|
+
function isSafeSearchPattern(query) {
|
|
391
|
+
let escaped = false;
|
|
392
|
+
let inClass = false;
|
|
393
|
+
for (const character of query) {
|
|
394
|
+
if (escaped) {
|
|
395
|
+
escaped = false;
|
|
396
|
+
continue;
|
|
397
|
+
}
|
|
398
|
+
if (character === "\\") {
|
|
399
|
+
escaped = true;
|
|
400
|
+
continue;
|
|
401
|
+
}
|
|
402
|
+
if (character === "[") {
|
|
403
|
+
inClass = true;
|
|
404
|
+
continue;
|
|
405
|
+
}
|
|
406
|
+
if (character === "]" && inClass) {
|
|
407
|
+
inClass = false;
|
|
408
|
+
continue;
|
|
409
|
+
}
|
|
410
|
+
if (!inClass && "()*+?{}".includes(character))
|
|
411
|
+
return false;
|
|
412
|
+
}
|
|
413
|
+
return true;
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Whether a name is the corpus's own working material: the asset tree, the
|
|
417
|
+
* inventories, the triage notes and anything else a publisher underscored or
|
|
418
|
+
* dotted.
|
|
419
|
+
*/
|
|
420
|
+
function isServiceName(name) {
|
|
421
|
+
return name.startsWith("_") || name.startsWith(".");
|
|
422
|
+
}
|
|
423
|
+
/** Whether any segment of a path is such material. */
|
|
424
|
+
function isServicePath(pathFromDocs) {
|
|
425
|
+
return pathFromDocs.split(/[\\/]/u).some(isServiceName);
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* How the entries of one directory are ordered: documents before service
|
|
429
|
+
* material.
|
|
430
|
+
*
|
|
431
|
+
* A corpus keeps its own working material beside the documents, and the stand's
|
|
432
|
+
* names it with a leading underscore. Name order puts that material first (`_`
|
|
433
|
+
* sorts before letters), which is exactly where a bounded answer must not spend
|
|
434
|
+
* itself: an inventory names every module and version the corpus has, so it
|
|
435
|
+
* matches the question and consumes the budget before a document is opened.
|
|
436
|
+
* Module directories come first, then loose files at the same level, then
|
|
437
|
+
* everything underscored or dotted — which is still searched, just after the
|
|
438
|
+
* documentation. Material inside a service directory stays service material,
|
|
439
|
+
* however its own entries are named.
|
|
440
|
+
*/
|
|
441
|
+
function entryRank(parentIsService, entry) {
|
|
442
|
+
if (parentIsService || isServiceName(entry.name))
|
|
443
|
+
return 2;
|
|
444
|
+
return entry.isDirectory() ? 0 : 1;
|
|
445
|
+
}
|
|
446
|
+
function entryComparator(parentIsService) {
|
|
447
|
+
return (left, right) => {
|
|
448
|
+
const rank = entryRank(parentIsService, left) - entryRank(parentIsService, right);
|
|
449
|
+
if (rank !== 0)
|
|
450
|
+
return rank;
|
|
451
|
+
return left.name < right.name ? -1 : left.name > right.name ? 1 : 0;
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Which queued directory the walk opens next.
|
|
456
|
+
*
|
|
457
|
+
* Rank and path decide, not the order directories happened to be queued in: the
|
|
458
|
+
* corpus's own `_meta` at the top of the tree must not be read before a
|
|
459
|
+
* documented module's edition one level below it, which is what a breadth-first
|
|
460
|
+
* queue did — the inventories answered every question about the product before
|
|
461
|
+
* a document was reached.
|
|
462
|
+
*/
|
|
463
|
+
function scopeComparator(left, right) {
|
|
464
|
+
const rank = Number(isServicePath(left.pathFromDocs)) -
|
|
465
|
+
Number(isServicePath(right.pathFromDocs));
|
|
466
|
+
if (rank !== 0)
|
|
467
|
+
return rank;
|
|
468
|
+
if (left.pathFromDocs === right.pathFromDocs)
|
|
469
|
+
return 0;
|
|
470
|
+
return left.pathFromDocs < right.pathFromDocs ? -1 : 1;
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Whether a name is material the walk never reads: pictures, media, archives,
|
|
474
|
+
* office binaries and fonts, recognised by extension.
|
|
475
|
+
*/
|
|
476
|
+
function isNonTextName(name) {
|
|
477
|
+
const dot = name.lastIndexOf(".");
|
|
478
|
+
if (dot <= 0)
|
|
479
|
+
return false;
|
|
480
|
+
return NON_TEXT_EXTENSIONS.has(name.slice(dot + 1).toLowerCase());
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Visit every documentation file of one target, in walk order.
|
|
282
484
|
*
|
|
283
|
-
* Symbolic links are counted as skipped and never followed.
|
|
284
|
-
*
|
|
285
|
-
*
|
|
485
|
+
* Symbolic links are counted as skipped and never followed. A file the caller's
|
|
486
|
+
* scope excludes is neither read nor counted, and material that is not text is
|
|
487
|
+
* counted as skipped rather than read, so the document budget below is spent on
|
|
488
|
+
* documents. The visitor returns `stop` to end the walk, which is how the output
|
|
489
|
+
* budget ends it early.
|
|
286
490
|
*/
|
|
287
|
-
async function visitDocumentation(target, visit) {
|
|
491
|
+
async function visitDocumentation(target, accept, descend, visit) {
|
|
288
492
|
let filesScanned = 0;
|
|
493
|
+
let entriesSeen = 0;
|
|
289
494
|
let skipped = 0;
|
|
290
495
|
const info = await lstat(target.absolute).catch(() => undefined);
|
|
291
496
|
if (info === undefined) {
|
|
292
497
|
throw new QaDocsError("not-found", NOT_FOUND);
|
|
293
498
|
}
|
|
294
499
|
if (info.isFile()) {
|
|
500
|
+
// A path the caller named explicitly is read as it is: out of scope means
|
|
501
|
+
// no hits, not a refusal, and the refusal it may get comes from the reader.
|
|
502
|
+
if (!accept(target.pathFromDocs)) {
|
|
503
|
+
return { filesScanned, skipped, stopped: false };
|
|
504
|
+
}
|
|
295
505
|
return {
|
|
296
506
|
filesScanned: 1,
|
|
297
507
|
skipped,
|
|
@@ -303,24 +513,47 @@ async function visitDocumentation(target, visit) {
|
|
|
303
513
|
}
|
|
304
514
|
const pending = [target];
|
|
305
515
|
while (pending.length > 0) {
|
|
516
|
+
// Ranked by path, so the queue's order is the walk's order.
|
|
517
|
+
pending.sort(scopeComparator);
|
|
306
518
|
const scope = pending.shift();
|
|
519
|
+
const serviceScope = isServicePath(scope.pathFromDocs);
|
|
307
520
|
const entries = await readdir(scope.absolute, {
|
|
308
521
|
withFileTypes: true,
|
|
309
522
|
}).catch(() => []);
|
|
310
|
-
entries.sort((
|
|
523
|
+
entries.sort(entryComparator(serviceScope));
|
|
311
524
|
for (const entry of entries) {
|
|
312
525
|
const child = join(scope.absolute, entry.name);
|
|
313
526
|
const pathFromDocs = join(scope.pathFromDocs, entry.name);
|
|
314
527
|
if (entry.isSymbolicLink()) {
|
|
528
|
+
entriesSeen += 1;
|
|
529
|
+
if (entriesSeen > MAX_WALK_ENTRIES) {
|
|
530
|
+
return { filesScanned, skipped, stopped: true };
|
|
531
|
+
}
|
|
315
532
|
skipped += 1;
|
|
316
533
|
continue;
|
|
317
534
|
}
|
|
318
535
|
if (entry.isDirectory()) {
|
|
536
|
+
if (!descend(pathFromDocs))
|
|
537
|
+
continue;
|
|
538
|
+
entriesSeen += 1;
|
|
539
|
+
if (entriesSeen > MAX_WALK_ENTRIES) {
|
|
540
|
+
return { filesScanned, skipped, stopped: true };
|
|
541
|
+
}
|
|
319
542
|
pending.push({ absolute: child, pathFromDocs });
|
|
320
543
|
continue;
|
|
321
544
|
}
|
|
322
545
|
if (!entry.isFile())
|
|
323
546
|
continue;
|
|
547
|
+
if (!accept(pathFromDocs))
|
|
548
|
+
continue;
|
|
549
|
+
entriesSeen += 1;
|
|
550
|
+
if (entriesSeen > MAX_WALK_ENTRIES) {
|
|
551
|
+
return { filesScanned, skipped, stopped: true };
|
|
552
|
+
}
|
|
553
|
+
if (isNonTextName(entry.name)) {
|
|
554
|
+
skipped += 1;
|
|
555
|
+
continue;
|
|
556
|
+
}
|
|
324
557
|
filesScanned += 1;
|
|
325
558
|
if (filesScanned > MAX_FILES_SCANNED) {
|
|
326
559
|
return { filesScanned, skipped, stopped: true };
|
|
@@ -338,8 +571,8 @@ async function visitDocumentation(target, visit) {
|
|
|
338
571
|
/**
|
|
339
572
|
* Search the documentation tree of one chat workspace.
|
|
340
573
|
*
|
|
341
|
-
* Matching
|
|
342
|
-
* line, not a file, so the caller can cite it. The result is bounded twice —
|
|
574
|
+
* Matching uses one case-insensitive, grep-style regular expression, line by
|
|
575
|
+
* line: a hit is a line, not a file, so the caller can cite it. The result is bounded twice —
|
|
343
576
|
* by `limit` hits and by the byte budget of the rendered report — and reports
|
|
344
577
|
* which bound cut it short instead of silently dropping matches.
|
|
345
578
|
* @throws QaDocsError when the tree is missing, the scope path is wrong, or the query is empty.
|
|
@@ -349,7 +582,19 @@ export async function searchDocumentation(root, request) {
|
|
|
349
582
|
if (query === "") {
|
|
350
583
|
throw new QaDocsError("invalid-request", INVALID_QUERY);
|
|
351
584
|
}
|
|
352
|
-
|
|
585
|
+
if (query.length > MAX_QUERY_PATTERN_CHARS) {
|
|
586
|
+
throw new QaDocsError("invalid-request", QUERY_TOO_LONG);
|
|
587
|
+
}
|
|
588
|
+
if (!isSafeSearchPattern(query)) {
|
|
589
|
+
throw new QaDocsError("invalid-request", UNSAFE_PATTERN);
|
|
590
|
+
}
|
|
591
|
+
let pattern;
|
|
592
|
+
try {
|
|
593
|
+
pattern = new RegExp(query, "iu");
|
|
594
|
+
}
|
|
595
|
+
catch {
|
|
596
|
+
throw new QaDocsError("invalid-request", INVALID_PATTERN);
|
|
597
|
+
}
|
|
353
598
|
const limit = clamp(request.limit ?? QA_DOCS_SEARCH_DEFAULT_LIMIT, 1, QA_DOCS_SEARCH_MAX_LIMIT);
|
|
354
599
|
const version = request.version?.trim() ?? "";
|
|
355
600
|
const module = request.module?.trim() ?? "";
|
|
@@ -367,9 +612,24 @@ export async function searchDocumentation(root, request) {
|
|
|
367
612
|
return false;
|
|
368
613
|
return true;
|
|
369
614
|
};
|
|
615
|
+
const wantedScope = (pathFromDocs) => {
|
|
616
|
+
// `docsIdentityOf` expects a file path. A synthetic leaf makes the current
|
|
617
|
+
// directory participate as a scope while still allowing an ancestor that
|
|
618
|
+
// has not reached its module/version segment yet.
|
|
619
|
+
const identity = docsIdentityOf(join(pathFromDocs, "__scope__"));
|
|
620
|
+
if (version !== "" &&
|
|
621
|
+
identity.version !== undefined &&
|
|
622
|
+
!versionMatches(identity, version)) {
|
|
623
|
+
return false;
|
|
624
|
+
}
|
|
625
|
+
if (module !== "" &&
|
|
626
|
+
identity.module !== undefined &&
|
|
627
|
+
!moduleMatches(identity, module)) {
|
|
628
|
+
return false;
|
|
629
|
+
}
|
|
630
|
+
return true;
|
|
631
|
+
};
|
|
370
632
|
const visit = async (file, pathFromDocs, explicit) => {
|
|
371
|
-
if (!wanted(pathFromDocs))
|
|
372
|
-
return "continue";
|
|
373
633
|
let lines;
|
|
374
634
|
try {
|
|
375
635
|
lines = await readDocLines(file);
|
|
@@ -383,7 +643,8 @@ export async function searchDocumentation(root, request) {
|
|
|
383
643
|
}
|
|
384
644
|
const identity = docsIdentityOf(pathFromDocs);
|
|
385
645
|
for (const [index, line] of lines.entries()) {
|
|
386
|
-
|
|
646
|
+
pattern.lastIndex = 0;
|
|
647
|
+
if (!pattern.test(line))
|
|
387
648
|
continue;
|
|
388
649
|
const hit = {
|
|
389
650
|
path: reportPath(pathFromDocs),
|
|
@@ -402,7 +663,7 @@ export async function searchDocumentation(root, request) {
|
|
|
402
663
|
}
|
|
403
664
|
return "continue";
|
|
404
665
|
};
|
|
405
|
-
const walk = await visitDocumentation(scope, visit);
|
|
666
|
+
const walk = await visitDocumentation(scope, wanted, wantedScope, visit);
|
|
406
667
|
return {
|
|
407
668
|
...identityOf(version === "" ? undefined : version, module === "" ? undefined : module),
|
|
408
669
|
query,
|
|
@@ -443,7 +704,12 @@ export async function readDocumentation(root, request) {
|
|
|
443
704
|
text: lines.slice(from - 1, Math.max(to, from - 1)).join("\n"),
|
|
444
705
|
};
|
|
445
706
|
}
|
|
446
|
-
|
|
707
|
+
/**
|
|
708
|
+
* The facets an answer ran under, as one leading-space clause the callers
|
|
709
|
+
* interpolate. `note` rides beside them in a report's header — never on a hit's
|
|
710
|
+
* own label, where it would repeat on every line.
|
|
711
|
+
*/
|
|
712
|
+
function filtersOf(identity, note = "") {
|
|
447
713
|
const parts = [];
|
|
448
714
|
if (identity.version !== undefined && identity.version !== "") {
|
|
449
715
|
parts.push(`version ${identity.version}`);
|
|
@@ -451,7 +717,9 @@ function filtersOf(identity) {
|
|
|
451
717
|
if (identity.module !== undefined && identity.module !== "") {
|
|
452
718
|
parts.push(`module ${identity.module}`);
|
|
453
719
|
}
|
|
454
|
-
|
|
720
|
+
const facets = parts.join(", ");
|
|
721
|
+
const described = note === "" ? facets : facets === "" ? note : `${facets}, ${note}`;
|
|
722
|
+
return described === "" ? "" : ` (${described})`;
|
|
455
723
|
}
|
|
456
724
|
function identityLabel(identity) {
|
|
457
725
|
return filtersOf(identity);
|
|
@@ -467,12 +735,12 @@ function identityLabel(identity) {
|
|
|
467
735
|
export function createDocsSearchTool(options = {}) {
|
|
468
736
|
return defineTool({
|
|
469
737
|
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
|
|
738
|
+
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. Query is a case-insensitive, safe grep-style regular expression: use alternatives such as \`brigadir|brigada\`, character classes and anchors instead of writing several words as one literal phrase; grouping and repetition are refused to keep execution bounded. 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
739
|
parameters: {
|
|
472
740
|
query: {
|
|
473
741
|
type: "string",
|
|
474
742
|
required: true,
|
|
475
|
-
description: "
|
|
743
|
+
description: "Case-insensitive safe grep-style regular expression matched inside single lines, e.g. `brigadir|brigada`. Spaces are literal; use `|` for alternatives. Grouping and repetition are not accepted.",
|
|
476
744
|
},
|
|
477
745
|
version: {
|
|
478
746
|
type: "string",
|
|
@@ -484,7 +752,7 @@ export function createDocsSearchTool(options = {}) {
|
|
|
484
752
|
},
|
|
485
753
|
path: {
|
|
486
754
|
type: "string",
|
|
487
|
-
description: `Narrow the search to one subtree, e.g. \`${QA_DOCS_DIRECTORY}/platform/3.8
|
|
755
|
+
description: `Narrow the search to one subtree, e.g. \`${QA_DOCS_DIRECTORY}/platform/3.8\`, \`platform/3.8\`, or an absolute path inside the configured documentation root.`,
|
|
488
756
|
},
|
|
489
757
|
limit: {
|
|
490
758
|
type: "number",
|
|
@@ -516,11 +784,15 @@ export function createDocsSearchTool(options = {}) {
|
|
|
516
784
|
truncated: { type: "boolean", required: true },
|
|
517
785
|
filesScanned: { type: "integer", required: true },
|
|
518
786
|
skipped: { type: "integer", required: true },
|
|
787
|
+
// A search answers with the facets it ran under, so a filtered result
|
|
788
|
+
// says which edition of which module it is speaking about.
|
|
789
|
+
version: { type: "string" },
|
|
790
|
+
module: { type: "string" },
|
|
519
791
|
},
|
|
520
792
|
},
|
|
521
|
-
render: (
|
|
793
|
+
render: (args, value) => {
|
|
522
794
|
const result = value;
|
|
523
|
-
const filters = filtersOf(result);
|
|
795
|
+
const filters = filtersOf(result, defaultedVersion(options, args) ? "the stand's default" : "");
|
|
524
796
|
if (result.hits.length === 0) {
|
|
525
797
|
return [
|
|
526
798
|
{
|
|
@@ -542,7 +814,7 @@ export function createDocsSearchTool(options = {}) {
|
|
|
542
814
|
const root = await docsRootOf(exec, options);
|
|
543
815
|
return searchDocumentation(root, {
|
|
544
816
|
query: args.query,
|
|
545
|
-
version: args
|
|
817
|
+
version: versionFor(options, args),
|
|
546
818
|
module: args.module,
|
|
547
819
|
path: args.path,
|
|
548
820
|
limit: args.limit,
|
|
@@ -550,6 +822,32 @@ export function createDocsSearchTool(options = {}) {
|
|
|
550
822
|
},
|
|
551
823
|
});
|
|
552
824
|
}
|
|
825
|
+
/**
|
|
826
|
+
* Whether the version in an answer is the deployment's default rather than one
|
|
827
|
+
* the caller named — the difference between "I looked in 3.8" and "the stand
|
|
828
|
+
* looked in 3.8", which the report has to keep.
|
|
829
|
+
*/
|
|
830
|
+
function defaultedVersion(options, args) {
|
|
831
|
+
const request = (args ?? {});
|
|
832
|
+
const asked = request.version;
|
|
833
|
+
if (typeof asked === "string" && asked.trim() !== "")
|
|
834
|
+
return false;
|
|
835
|
+
if (typeof request.path === "string" && request.path.trim() !== "") {
|
|
836
|
+
return false;
|
|
837
|
+
}
|
|
838
|
+
return (options.defaultVersion ?? "").trim() !== "";
|
|
839
|
+
}
|
|
840
|
+
/**
|
|
841
|
+
* The sentence that tells the model which edition a search it did not scope
|
|
842
|
+
* itself will stay inside. Without it the model reads a filtered answer as the
|
|
843
|
+
* whole corpus and reports a missing document rather than a narrowed search.
|
|
844
|
+
*/
|
|
845
|
+
function defaultVersionNote(options) {
|
|
846
|
+
const version = (options.defaultVersion ?? "").trim();
|
|
847
|
+
return version === ""
|
|
848
|
+
? ""
|
|
849
|
+
: ` 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.`;
|
|
850
|
+
}
|
|
553
851
|
/**
|
|
554
852
|
* How the tool description names the tree: the model has to know where the
|
|
555
853
|
* 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({
|