docspack 1.0.0 → 1.2.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.
Files changed (60) hide show
  1. package/README.md +31 -0
  2. package/dist/build.d.ts +23 -0
  3. package/dist/build.d.ts.map +1 -1
  4. package/dist/build.js +184 -96
  5. package/dist/build.js.map +1 -1
  6. package/dist/cli.js +91 -2
  7. package/dist/cli.js.map +1 -1
  8. package/dist/db.d.ts +40 -3
  9. package/dist/db.d.ts.map +1 -1
  10. package/dist/db.js +61 -2
  11. package/dist/db.js.map +1 -1
  12. package/dist/discovery.d.ts +6 -3
  13. package/dist/discovery.d.ts.map +1 -1
  14. package/dist/discovery.js +57 -11
  15. package/dist/discovery.js.map +1 -1
  16. package/dist/doctor.d.ts.map +1 -1
  17. package/dist/doctor.js +31 -10
  18. package/dist/doctor.js.map +1 -1
  19. package/dist/endpoints.d.ts +45 -0
  20. package/dist/endpoints.d.ts.map +1 -0
  21. package/dist/endpoints.js +155 -0
  22. package/dist/endpoints.js.map +1 -0
  23. package/dist/help.d.ts.map +1 -1
  24. package/dist/help.js +60 -5
  25. package/dist/help.js.map +1 -1
  26. package/dist/index.d.ts +4 -3
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +4 -3
  29. package/dist/index.js.map +1 -1
  30. package/dist/init/plan.js +4 -3
  31. package/dist/init/plan.js.map +1 -1
  32. package/dist/local.d.ts +67 -0
  33. package/dist/local.d.ts.map +1 -0
  34. package/dist/local.js +242 -0
  35. package/dist/local.js.map +1 -0
  36. package/dist/preview.d.ts.map +1 -1
  37. package/dist/preview.js +25 -7
  38. package/dist/preview.js.map +1 -1
  39. package/dist/search.d.ts +8 -0
  40. package/dist/search.d.ts.map +1 -1
  41. package/dist/search.js +44 -6
  42. package/dist/search.js.map +1 -1
  43. package/dist/spec.d.ts +15 -1
  44. package/dist/spec.d.ts.map +1 -1
  45. package/dist/spec.js +16 -2
  46. package/dist/spec.js.map +1 -1
  47. package/package.json +7 -5
  48. package/src/build.ts +221 -111
  49. package/src/cli.ts +96 -2
  50. package/src/db.ts +87 -5
  51. package/src/discovery.ts +62 -11
  52. package/src/doctor.ts +33 -8
  53. package/src/endpoints.ts +184 -0
  54. package/src/help.ts +60 -5
  55. package/src/index.ts +23 -1
  56. package/src/init/plan.ts +4 -3
  57. package/src/local.ts +335 -0
  58. package/src/preview.ts +38 -14
  59. package/src/search.ts +60 -6
  60. package/src/spec.ts +18 -2
package/dist/discovery.js CHANGED
@@ -1,18 +1,21 @@
1
1
  import { readFile } from "node:fs/promises";
2
2
  import { dirname, join, resolve } from "node:path";
3
3
  import { DocspackError } from "./errors.js";
4
- import { isCommunityPackage, isDocsPackage, LLMS_DIR, MANIFEST_FILE, packageId, parseManifest, } from "./spec.js";
4
+ import { DISCOVERABLE_NAMES, isCommunityPackage, isDocsPackage, LLMS_DIR, MANIFEST_FILE, packageId, parseManifest, } from "./spec.js";
5
5
  /**
6
- * Finds the documentation packages a project depends on: every `@vendor/docspack` or
7
- * `@docspack-community/*` entry in `dependencies` or `devDependencies` that is installed and
8
- * ships a `.llms/manifest.json`.
6
+ * Finds the documentation packages a project depends on: every `@vendor/docspack`,
7
+ * `@vendor/<name>-docspack` or `@docspack-community/*` entry in `dependencies` or
8
+ * `devDependencies` that is installed and ships a `.llms/manifest.json`.
9
+ *
10
+ * A dependency that ships a payload under any other name is reported in `problems` rather than
11
+ * indexed, so a pack nobody can read says so instead of going missing from every answer.
9
12
  */
10
13
  export async function discoverPackages(cwd) {
11
14
  const root = resolve(cwd);
12
- const declared = await declaredDocsPackages(root);
15
+ const declared = await declaredDependencies(root);
13
16
  const packages = [];
14
17
  const problems = [];
15
- for (const name of declared) {
18
+ for (const name of declared.filter(isDocsPackage)) {
16
19
  const dir = await resolvePackageDir(name, root);
17
20
  if (dir === undefined) {
18
21
  problems.push(`${name} is declared in package.json but is not installed`);
@@ -51,9 +54,56 @@ export async function discoverPackages(cwd) {
51
54
  trusted: !isCommunityPackage(name),
52
55
  });
53
56
  }
57
+ problems.push(...(await skippedPayloads(declared.filter(isNotDocsPackage), root)));
54
58
  packages.sort((a, b) => a.name.localeCompare(b.name));
55
59
  return { packages, problems };
56
60
  }
61
+ /**
62
+ * Dependencies that ship a payload under a name discovery does not match.
63
+ *
64
+ * None of them is indexed, and that is the point: the name check is what decides whether a
65
+ * package may put content in front of a model, and widening it to "carries a manifest" would let
66
+ * any transitive dependency opt itself in. But a package built by `docspack build` and then named
67
+ * outside the discoverable shapes is a publishing mistake — a typo, a rename, or a reading of the
68
+ * naming rule — and saying nothing about it is worse than refusing it. The corpus is absent from
69
+ * every answer while the question it should have answered is answered confidently by another pack.
70
+ */
71
+ async function skippedPayloads(names, root) {
72
+ // Concurrent, unlike the loop over docs packages above: this one runs over every dependency
73
+ // the project declares rather than the handful that document something, and `docspack ask`
74
+ // pays for it on each question. The reads are independent, and `Promise.all` keeps the order
75
+ // of `names` so the report is the same on every run.
76
+ const found = await Promise.all(names.map((name) => skippedPayload(name, root)));
77
+ return found.filter((problem) => problem !== undefined);
78
+ }
79
+ async function skippedPayload(name, root) {
80
+ const dir = await resolvePackageDir(name, root);
81
+ if (dir === undefined)
82
+ return undefined;
83
+ let raw;
84
+ try {
85
+ raw = await readFile(join(dir, LLMS_DIR, MANIFEST_FILE), "utf8");
86
+ }
87
+ catch {
88
+ return undefined;
89
+ }
90
+ // Counted rather than validated: a manifest too malformed to parse is still a payload its
91
+ // publisher meant to be read, and the name is the problem to report either way.
92
+ let chunks = 0;
93
+ try {
94
+ const parsed = JSON.parse(raw);
95
+ if (Array.isArray(parsed.chunks))
96
+ chunks = parsed.chunks.length;
97
+ }
98
+ catch {
99
+ // Not JSON. Report the name anyway; `docspack doctor` is where the payload is checked.
100
+ }
101
+ return (`${name} ships ${LLMS_DIR}/${MANIFEST_FILE} with ${chunks} ${chunks === 1 ? "chunk" : "chunks"} but was not indexed: ` +
102
+ `its name is not a discoverable pack shape (${DISCOVERABLE_NAMES})`);
103
+ }
104
+ function isNotDocsPackage(name) {
105
+ return !isDocsPackage(name);
106
+ }
57
107
  /**
58
108
  * Every library this project depends on directly, installed and readable.
59
109
  *
@@ -62,7 +112,7 @@ export async function discoverPackages(cwd) {
62
112
  */
63
113
  export async function discoverLibraries(cwd) {
64
114
  const root = resolve(cwd);
65
- const names = (await declaredDependencies(root)).filter((name) => !isDocsPackage(name));
115
+ const names = (await declaredDependencies(root)).filter(isNotDocsPackage);
66
116
  const libraries = [];
67
117
  for (const name of names) {
68
118
  const dir = await resolvePackageDir(name, root);
@@ -82,10 +132,6 @@ export async function projectPackageIds(cwd) {
82
132
  const { packages } = await discoverPackages(cwd);
83
133
  return packages.map((pkg) => pkg.id);
84
134
  }
85
- /** Docs packages this project depends on, the input to `discoverPackages`. */
86
- async function declaredDocsPackages(cwd) {
87
- return (await declaredDependencies(cwd)).filter(isDocsPackage);
88
- }
89
135
  /**
90
136
  * Every dependency declared by this directory or by an ancestor of it. A workspace declares
91
137
  * shared tooling in the repository root and its members inherit the install, so reading only
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAaD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA4K7E"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAwBA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAaD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA4K7E"}
package/dist/doctor.js CHANGED
@@ -3,7 +3,7 @@ import { join } from "node:path";
3
3
  import { readBuildConfig } from "./config.js";
4
4
  import { measureCoverage } from "./coverage.js";
5
5
  import { PLACEHOLDER } from "./init/templates.js";
6
- import { estimateTokens, LLMS_DIR, MANIFEST_FILE, parseManifest, resolveChunkFile, } from "./spec.js";
6
+ import { DISCOVERABLE_NAMES, estimateTokens, isDocsPackage, LLMS_DIR, MANIFEST_FILE, parseManifest, resolveChunkFile, } from "./spec.js";
7
7
  import { contentFingerprint, findFiller, findLongSentences, hasConcreteContent, withoutCode, } from "./style.js";
8
8
  /**
9
9
  * Below this share of a library's exported names, a package is documenting a fraction of what
@@ -272,6 +272,20 @@ function checkPackageJson(pkg, manifest, findings) {
272
272
  fix: "Run `docspack build` to regenerate the manifest.",
273
273
  });
274
274
  }
275
+ // The one property that decides whether the indexer will open the package at all, and the one
276
+ // this check used to skip: every other check here describes a package that indexes badly, and
277
+ // a name outside the discoverable shapes describes one that is never read. It publishes, it
278
+ // installs, it passes every other check, and the corpus is absent from every answer.
279
+ const name = typeof pkg.name === "string" ? pkg.name : manifest.name;
280
+ if (!isDocsPackage(name)) {
281
+ findings.push({
282
+ check: "name-undiscoverable",
283
+ severity: "error",
284
+ message: `"${name}" is not a name the indexer discovers; the package would install and never be read`,
285
+ where: "package.json",
286
+ fix: `Rename it to one of ${DISCOVERABLE_NAMES}.`,
287
+ });
288
+ }
275
289
  const files = Array.isArray(pkg.files) ? pkg.files.map(String) : undefined;
276
290
  if (files !== undefined &&
277
291
  !files.some((entry) => entry.replace(/^\.\//, "").startsWith(LLMS_DIR))) {
@@ -284,22 +298,29 @@ function checkPackageJson(pkg, manifest, findings) {
284
298
  });
285
299
  }
286
300
  }
287
- /** Newest mtime across the configured documentation source, used to spot a stale payload. */
301
+ /**
302
+ * Newest mtime across every configured documentation source, used to spot a stale payload.
303
+ *
304
+ * Both sources are checked, not the first one found: a package configured with prose *and* an
305
+ * OpenAPI document would otherwise report a fresh payload after the document changed, which is the
306
+ * one case this check exists to catch.
307
+ */
288
308
  async function newestSourceMtime(dir) {
289
309
  const config = await readBuildConfig(dir);
290
- const source = config.from ?? config.openapi;
291
- if (source === undefined)
292
- return 0;
293
- const target = join(dir, source);
294
- const single = await mtime(target);
295
- if (single > 0 && config.openapi !== undefined)
296
- return single;
310
+ const newest = await Promise.all([
311
+ config.openapi === undefined ? 0 : mtime(join(dir, config.openapi)),
312
+ config.from === undefined ? 0 : newestInTree(join(dir, config.from)),
313
+ ]);
314
+ return Math.max(...newest);
315
+ }
316
+ /** Newest mtime in a directory tree, or the file's own when the path is a file. */
317
+ async function newestInTree(target) {
297
318
  let found;
298
319
  try {
299
320
  found = await readdir(target, { recursive: true, withFileTypes: true });
300
321
  }
301
322
  catch {
302
- return single;
323
+ return mtime(target);
303
324
  }
304
325
  let newest = 0;
305
326
  for (const entry of found) {
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,QAAQ,EACR,aAAa,EAEb,aAAa,EACb,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,GACZ,MAAM,YAAY,CAAC;AA+BpB;;;;GAIG;AACH,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,4FAA4F;AAC5F,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAsB;IACpD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5C,6FAA6F;IAC7F,kFAAkF;IAClF,MAAM,KAAK,GAAa,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAEpE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAEjC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1C,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAElC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe;gBAC3E,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACvC,CAAC,CAAC,UAAU,KAAK,CAAC,EAAE,oBAAoB,QAAQ,GAAG;oBACnD,CAAC,CAAC,UAAU,KAAK,CAAC,EAAE,uBAAuB;gBAC7C,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,GAAG,EAAE,gCAAgC;aACtC,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,YAAY;gBACvC,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,GAAG,EAAE,oDAAoD;aAC1D,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,IAAI,IAAI,CAAC;QAEf,IAAI,IAAI,GAAG,gBAAgB,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,iBAAiB;gBACxB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,SAAS,IAAI,uCAAuC;gBAC/E,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,GAAG,EAAE,gEAAgE;aACtE,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,GAAG,gBAAgB,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,iBAAiB;gBACxB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,SAAS,IAAI,uCAAuC;gBAC/E,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,GAAG,EAAE,uCAAuC;aAC7C,CAAC,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,6DAA6D;gBACxF,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,GAAG,EAAE,6DAA6D;aACnE,CAAC,CAAC;QACL,CAAC;QAED,0FAA0F;QAC1F,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,oBAAoB,WAAW,4BAA4B;gBACtF,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,GAAG,EAAE,oDAAoD;aAC1D,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM;iBAClB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;iBAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,QAAQ;gBACf,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,+CAA+C,MAAM,EAAE;gBAClF,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,GAAG,EAAE,oEAAoE;aAC1E,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,eAAe;gBACtB,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,gBAAgB;gBACnF,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,GAAG,EAAE,gEAAgE;aACtE,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;aACnD,CAAC;YACJ,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,iBAAiB;gBACxB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,6BAA6B,IAAI,GAAG;gBAC/D,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,GAAG,EAAE,kFAAkF;aACxF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,iCAAiC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9K,GAAG,EAAE,yEAAyE;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE3E,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClE,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,MAAM;YAChB,OAAO,EACL,sFAAsF;YACxF,GAAG,EAAE,6DAA6D;SACnE,CAAC,CAAC;IACL,CAAC;IAED,YAAY,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAChE,IAAI,YAAY,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,IAAI,YAAY,GAAG,aAAa,EAAE,CAAC;QAC1E,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,8DAA8D;YACvE,GAAG,EAAE,uBAAuB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC;IACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAC1B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC,CACrF,CAAC;IAEF,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,MAAM,CAAC,KAAa,EAAE,IAAY;IACzC,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,OAAe,EACf,QAAmB;IAEnB,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,MAAM,QAAQ,IAAI,aAAa,EAAE;YAC1C,GAAG,EAAE,+CAA+C;SACrD,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,GAAG,QAAQ,IAAI,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAC1F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC/D,KAAK,EAAE,GAAG,QAAQ,IAAI,aAAa,EAAE;YACrC,GAAG,EAAE,wCAAwC;SAC9C,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,6FAA6F;AAC7F,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AAEtF;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,GAAY,EAAE,QAAmB;IAC3D,MAAM,IAAI,GAAG,GAA8B,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,oBAAoB,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC/G,KAAK,EAAE,GAAG,QAAQ,IAAI,aAAa,EAAE;YACrC,GAAG,EAAE,8EAA8E;SACpF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAC1D,MAAM,KAAK,GAAG,KAAgC,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC1H,KAAK,EAAE,GAAG,QAAQ,IAAI,aAAa,EAAE;YACrC,GAAG,EAAE,8EAA8E;SACpF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAwC,EACxC,QAAyB,EACzB,QAAmB;IAEnB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,qCAAqC;YAC9C,GAAG,EAAE,4CAA4C;SAClD,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxE,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,mBAAmB,GAAG,CAAC,OAAO,0BAA0B,QAAQ,CAAC,OAAO,EAAE;YACnF,GAAG,EAAE,iDAAiD;SACvD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/D,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,mBAAmB,GAAG,CAAC,IAAI,0BAA0B,QAAQ,CAAC,IAAI,EAAE;YAC7E,GAAG,EAAE,kDAAkD;SACxD,CAAC,CAAC;IACL,CAAC;IAED,8FAA8F;IAC9F,8FAA8F;IAC9F,4FAA4F;IAC5F,qFAAqF;IACrF,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACrE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,qBAAqB;YAC5B,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,IAAI,IAAI,oFAAoF;YACrG,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,uBAAuB,kBAAkB,GAAG;SAClD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,IACE,KAAK,KAAK,SAAS;QACnB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EACvE,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,uBAAuB;YAC9B,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,4BAA4B,QAAQ,yDAAyD;YACtG,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,QAAQ,QAAQ,uBAAuB;SAC7C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,iBAAiB,CAAC,GAAW;IAC1C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/B,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;KACrE,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,mFAAmF;AACnF,KAAK,UAAU,YAAY,CAAC,MAAc;IACxC,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,SAAS;QAC9B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,IAAY;IAC/B,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,gBAAgB,CAC7B,GAAW,EACX,OAAe,EACf,QAAyB;IAEzB,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,MAAmD,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,uFAAuF;QACvF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC;YAAE,SAAS;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,MAAM;YAChB,OAAO,EACL,YAAY,OAAO,CAAC,UAAU,OAAO,OAAO,CAAC,KAAK,UAAU,OAAO,CAAC,OAAO,aAAa,OAAO,IAAI;gBACnG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrF,GAAG,CAAC,KAAK,GAAG,aAAa;gBACvB,CAAC,CAAC;oBACE,GAAG,EAAE,+FAA+F;iBACrG;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAY;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACjE,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAClD,CAAC,CAAE,MAAkC;YACrC,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Answering a question that names an HTTP request, by address rather than by ranking.
3
+ *
4
+ * This is the same argument `search.ts` makes for exported symbols, applied to endpoints. A query
5
+ * like `POST /v1/charges` is not a phrase, it is a key: ranked as prose it matches every chunk that
6
+ * mentions charges, and the overview page — which says "charges" six times — outranks the one chunk
7
+ * that describes the operation. `/v1` and `charges` are also the two worst possible search terms in
8
+ * a document where every path starts with `/v1`.
9
+ *
10
+ * So an endpoint an operation chunk declares is looked up exactly, and the matching chunk is pinned
11
+ * ahead of anything the ranker found. `docspack build --openapi` records both spellings of every
12
+ * operation in its chunk's `entities` — `POST /v1/charges` and `createCharge` — and the second one
13
+ * already worked, because an operation id is identifier-shaped and the symbol path handles it. The
14
+ * first one could not match anything at all.
15
+ */
16
+ /** An operation a chunk declares. */
17
+ export interface EndpointEntry {
18
+ readonly chunkId: string;
19
+ readonly method: string;
20
+ /** Template path as the document wrote it, braces included. */
21
+ readonly path: string;
22
+ }
23
+ /**
24
+ * How many endpoints one answer may pin.
25
+ *
26
+ * Two, matching `MAX_DECLARATIONS`. A question names one request, occasionally two — "how do I
27
+ * create a charge and then refund it". More than that and the addresses are incidental, and pinning
28
+ * them spends the budget on operations nobody asked about.
29
+ */
30
+ export declare const MAX_ENDPOINTS = 2;
31
+ /** Collects the endpoints a set of chunks declares, from their manifest entities. */
32
+ export declare function endpointIndex(chunks: Iterable<{
33
+ readonly chunkId: string;
34
+ readonly entities: readonly string[];
35
+ }>): EndpointEntry[];
36
+ /**
37
+ * The operations a query addresses, in the order the query named them.
38
+ *
39
+ * An exact match wins. Failing that, the path is matched against the template a document declared,
40
+ * so an agent holding a real URL — `GET /v1/charges/ch_3Ox7`, copied out of a log — still reaches
41
+ * `GET /v1/charges/{charge}`. That is the case this exists for: a concrete request is what somebody
42
+ * actually has, and a template is what the document contains.
43
+ */
44
+ export declare function matchEndpoints(query: string, index: readonly EndpointEntry[], limit?: number): EndpointEntry[];
45
+ //# sourceMappingURL=endpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAgB/B,qFAAqF;AACrF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,QAAQ,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC,GACnF,aAAa,EAAE,CASjB;AAWD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,KAAK,SAAgB,GACpB,aAAa,EAAE,CAqCjB"}
@@ -0,0 +1,155 @@
1
+ import { HTTP_METHODS } from "@docspack/openapi";
2
+ /**
3
+ * How many endpoints one answer may pin.
4
+ *
5
+ * Two, matching `MAX_DECLARATIONS`. A question names one request, occasionally two — "how do I
6
+ * create a charge and then refund it". More than that and the addresses are incidental, and pinning
7
+ * them spends the budget on operations nobody asked about.
8
+ */
9
+ export const MAX_ENDPOINTS = 2;
10
+ const METHODS = new Set(HTTP_METHODS);
11
+ /**
12
+ * An endpoint reference in a query.
13
+ *
14
+ * The path is required to contain a `/`, which is what keeps `GET the newest invoice` from being
15
+ * read as a request for a path called `the`. A full URL is accepted and reduced to its path, because
16
+ * that is what an agent has in front of it when it is reading a log line or a network tab.
17
+ */
18
+ const REFERENCE = /\b([A-Za-z]+)\s+(\S*\/\S*)/g;
19
+ /** A bare path, for a question that names an endpoint without naming a method. */
20
+ const BARE_PATH = /(?:^|\s)(\/[A-Za-z0-9{}._~%\-/]*)/g;
21
+ /** Collects the endpoints a set of chunks declares, from their manifest entities. */
22
+ export function endpointIndex(chunks) {
23
+ const entries = [];
24
+ for (const chunk of chunks) {
25
+ for (const entity of chunk.entities) {
26
+ const parsed = parseEndpoint(entity);
27
+ if (parsed !== undefined)
28
+ entries.push({ chunkId: chunk.chunkId, ...parsed });
29
+ }
30
+ }
31
+ return entries;
32
+ }
33
+ /** Reads `POST /v1/charges` as a method and a path. */
34
+ function parseEndpoint(entity) {
35
+ const match = /^([A-Z]+) (\/\S*)$/.exec(entity);
36
+ const method = match?.[1];
37
+ const path = match?.[2];
38
+ if (method === undefined || path === undefined || !METHODS.has(method))
39
+ return undefined;
40
+ return { method, path };
41
+ }
42
+ /**
43
+ * The operations a query addresses, in the order the query named them.
44
+ *
45
+ * An exact match wins. Failing that, the path is matched against the template a document declared,
46
+ * so an agent holding a real URL — `GET /v1/charges/ch_3Ox7`, copied out of a log — still reaches
47
+ * `GET /v1/charges/{charge}`. That is the case this exists for: a concrete request is what somebody
48
+ * actually has, and a template is what the document contains.
49
+ */
50
+ export function matchEndpoints(query, index, limit = MAX_ENDPOINTS) {
51
+ if (index.length === 0)
52
+ return [];
53
+ const found = [];
54
+ const seen = new Set();
55
+ const take = (entry) => {
56
+ if (seen.has(entry.chunkId) || found.length >= limit)
57
+ return;
58
+ seen.add(entry.chunkId);
59
+ found.push(entry);
60
+ };
61
+ for (const reference of references(query)) {
62
+ if (found.length >= limit)
63
+ break;
64
+ const exact = index.filter((entry) => entry.method === reference.method && entry.path === reference.path);
65
+ if (exact.length > 0) {
66
+ for (const entry of exact)
67
+ take(entry);
68
+ continue;
69
+ }
70
+ for (const entry of index) {
71
+ if (entry.method !== reference.method)
72
+ continue;
73
+ if (templateMatches(entry.path, reference.path))
74
+ take(entry);
75
+ }
76
+ }
77
+ // Only when no method was named anywhere: otherwise a question that spells out `POST /charges`
78
+ // would also pin the `GET` on the same path, which is not what it asked for.
79
+ if (found.length === 0) {
80
+ for (const path of barePaths(query)) {
81
+ for (const entry of index) {
82
+ if (entry.path === path || templateMatches(entry.path, path))
83
+ take(entry);
84
+ }
85
+ }
86
+ }
87
+ return found;
88
+ }
89
+ /** Method-and-path references in a query, normalized. */
90
+ function references(query) {
91
+ const found = [];
92
+ for (const match of query.matchAll(REFERENCE)) {
93
+ const method = match[1]?.toUpperCase();
94
+ const raw = match[2];
95
+ if (method === undefined || raw === undefined || !METHODS.has(method))
96
+ continue;
97
+ const path = toPath(raw);
98
+ if (path !== undefined)
99
+ found.push({ method, path });
100
+ }
101
+ return found;
102
+ }
103
+ function barePaths(query) {
104
+ const found = [];
105
+ for (const match of query.matchAll(BARE_PATH)) {
106
+ const path = match[1] === undefined ? undefined : toPath(match[1]);
107
+ // A lone `/` addresses nothing, and every sentence with a slash in it would otherwise be read
108
+ // as naming the document's root.
109
+ if (path !== undefined && path.length > 1)
110
+ found.push(path);
111
+ }
112
+ return found;
113
+ }
114
+ /**
115
+ * Reduces what someone wrote to a path.
116
+ *
117
+ * A full URL keeps only its path. A query string and trailing sentence punctuation are dropped: the
118
+ * query string is values rather than address, and a question mark at the end of `GET /charges?` is
119
+ * almost never an empty query string.
120
+ */
121
+ function toPath(raw) {
122
+ let value = raw.replace(/[),.;:'"`]+$/, "");
123
+ const scheme = /^[a-z][a-z0-9+.-]*:\/\//i.exec(value);
124
+ if (scheme !== null) {
125
+ try {
126
+ value = new URL(value).pathname;
127
+ }
128
+ catch {
129
+ return undefined;
130
+ }
131
+ }
132
+ const queryAt = value.indexOf("?");
133
+ if (queryAt >= 0)
134
+ value = value.slice(0, queryAt);
135
+ if (!value.startsWith("/"))
136
+ return undefined;
137
+ // Repeated and trailing slashes are noise a URL bar forgives, and a path whose segment count is
138
+ // off by a stray slash matches no template at all — which reads as "the endpoint is undocumented".
139
+ return value.replace(/\/{2,}/g, "/").replace(/\/+$/, "") || "/";
140
+ }
141
+ /** Whether a concrete path fills in a template: `/v1/charges/{charge}` against `/v1/charges/ch_3`. */
142
+ function templateMatches(template, concrete) {
143
+ const left = template.split("/");
144
+ const right = concrete.split("/");
145
+ if (left.length !== right.length)
146
+ return false;
147
+ return left.every((segment, index) => {
148
+ // A template segment matches any one segment, but not an empty one: `/charges/` is not a
149
+ // request for a charge.
150
+ if (segment.startsWith("{") && segment.endsWith("}"))
151
+ return (right[index] ?? "").length > 0;
152
+ return segment === right[index];
153
+ });
154
+ }
155
+ //# sourceMappingURL=endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAYD,eAAO,MAAM,QAAQ,EAAE,SAAS,WAAW,EAsS1C,CAAC;AAWF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAErE;AAQD,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAwB5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA8D7F"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAYD,eAAO,MAAM,QAAQ,EAAE,SAAS,WAAW,EA4V1C,CAAC;AAWF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAErE;AAQD,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAwB5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA+D7F"}
package/dist/help.js CHANGED
@@ -49,6 +49,54 @@ export const COMMANDS = [
49
49
  'docspack ask "webhook signature" --package stripe --limit 5',
50
50
  ],
51
51
  },
52
+ {
53
+ name: "index",
54
+ summary: "Index this project's own sources, so an agent can ask them instead of reading them",
55
+ group: "core",
56
+ usage: "docspack index [--from <dir>] [--from-json <file|->]",
57
+ options: [
58
+ ["--from <dir>", "directory of Markdown to index"],
59
+ ["--from-json <f>", "JSON records to index, or `-` for standard input"],
60
+ ["--name <s>", "name for the corpus (default: derived from the source)"],
61
+ ["--force", "re-index even when no source has changed"],
62
+ ],
63
+ detail: [
64
+ "For a corpus this project already has rather than one somebody published: notes, an",
65
+ "export, rows out of a query. The payload is built in a temporary directory and thrown",
66
+ "away; what is kept is the index, in `.docspack/local.db`, which is a plaintext copy of",
67
+ "whatever was indexed and is gitignored on the tool's behalf.",
68
+ "",
69
+ "Records arrive as JSON so no database driver is needed: `sqlite3 -json … | docspack index",
70
+ "--from-json -`. A record with an `id` becomes one chunk under that id, because a row's",
71
+ "identity is its key.",
72
+ "",
73
+ "What was indexed is recorded with each source's size, mtime and hash, so a re-run does",
74
+ "nothing when nothing has changed and `recall` can say when an answer may be superseded.",
75
+ ],
76
+ examples: [
77
+ "docspack index --from ./notes",
78
+ "sqlite3 -json shop.db 'select id, title, body as text from posts' | docspack index --from-json -",
79
+ ],
80
+ },
81
+ {
82
+ name: "recall",
83
+ summary: "Answer from this project's indexed corpus, not from its dependencies",
84
+ group: "core",
85
+ usage: 'docspack recall "<question>"',
86
+ options: [
87
+ ["--limit <n>", `maximum chunks to return (default ${LIMIT})`],
88
+ ["--max-tokens <n>", `token ceiling for the result set (default ${MAX_TOKENS})`],
89
+ ],
90
+ detail: [
91
+ "Separate from `ask` on purpose. `ask` answers from the versions this project installed,",
92
+ "and a working corpus is never one of them — so a corpus cannot reach an answer about a",
93
+ "dependency, and a dependency cannot reach an answer about your notes.",
94
+ "",
95
+ "An answer leads with a warning when a source has changed since it was indexed. Exits 1",
96
+ "when nothing matched.",
97
+ ],
98
+ examples: ['docspack recall "what did we decide about retries"'],
99
+ },
52
100
  {
53
101
  name: "search",
54
102
  summary: "Same index, formatted for a human reading the terminal",
@@ -217,7 +265,7 @@ export const COMMANDS = [
217
265
  usage: "docspack build [source] [options]",
218
266
  options: [
219
267
  ["--from <dir>", "directory of Markdown to package"],
220
- ["--openapi <file>", "OpenAPI JSON to package, one chunk per operation"],
268
+ ["--openapi <file>", "OpenAPI 3 document (JSON or YAML), one chunk per operation"],
221
269
  ["--name <name>", "package name, e.g. @acme/docspack"],
222
270
  ["--pkg-version <v>", "package version"],
223
271
  ["--out <dir>", "output directory (default: the current directory)"],
@@ -232,6 +280,11 @@ export const COMMANDS = [
232
280
  "the budget: use it for generated reference, where a heading is a field name and one chunk",
233
281
  "per heading is hundreds of chunks too small to answer anything.",
234
282
  "",
283
+ "--openapi writes one chunk per operation: the base URL, the credential, the inputs with",
284
+ "their types, the response, the failures and a runnable curl call, in LAPIS notation. Each",
285
+ "chunk answers to both `POST /v1/charges` and the operationId, so `docspack ask` can be",
286
+ "given either. Combine it with --from to publish prose and an API in one package.",
287
+ "",
235
288
  "With no flags, settings are read from the docspack key of the package.json in --out.",
236
289
  ],
237
290
  examples: [
@@ -239,6 +292,7 @@ export const COMMANDS = [
239
292
  "docspack build --from ./docs --name @acme/docspack --pkg-version 1.4.0",
240
293
  "docspack build --from ./reference --min-chunk-tokens 400 --max-chunk-tokens 900",
241
294
  "docspack build --openapi ./openapi.json",
295
+ "docspack build --from ./docs --openapi ./openapi.json",
242
296
  ],
243
297
  },
244
298
  {
@@ -356,10 +410,11 @@ Authoring
356
410
  ${group("authoring")}
357
411
 
358
412
  How it works
359
- Documentation ships as npm packages named @vendor/docspack or
360
- @docspack-community/<name>. Add them to package.json, run \`docspack sync\`, and
361
- every chunk is indexed into a shared SQLite database with FTS5. Agents query
362
- that index locally: no network, no scraping, always the installed version.
413
+ Documentation ships as npm packages named @vendor/docspack,
414
+ @vendor/<name>-docspack or @docspack-community/<name>. Add them to
415
+ package.json, run \`docspack sync\`, and every chunk is indexed into a shared
416
+ SQLite database with FTS5. Agents query that index locally: no network, no
417
+ scraping, always the installed version.
363
418
 
364
419
  Giving an agent access
365
420
  Any agent with a shell can run \`docspack ask\`, so one line in AGENTS.md or
package/dist/help.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}