@agent-teams/docs-protocol 0.3.2 → 0.4.1

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 (111) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +68 -10
  3. package/dist/adapters/adoption-input.d.ts +0 -3
  4. package/dist/adapters/adoption-input.d.ts.map +1 -1
  5. package/dist/adapters/adoption-input.js +12 -5
  6. package/dist/adapters/adoption-input.js.map +1 -1
  7. package/dist/adapters/adoption-package-identity.d.ts.map +1 -1
  8. package/dist/adapters/adoption-package-identity.js +4 -3
  9. package/dist/adapters/adoption-package-identity.js.map +1 -1
  10. package/dist/adapters/docs-command-envelope-schema-validator.js +3 -3
  11. package/dist/adapters/docs-command-envelope-schema-validator.js.map +1 -1
  12. package/dist/adapters/docs-profile-schema-validator.d.ts.map +1 -1
  13. package/dist/adapters/docs-profile-schema-validator.js +4 -1
  14. package/dist/adapters/docs-profile-schema-validator.js.map +1 -1
  15. package/dist/adapters/foundation-docs-port.d.ts +8 -1
  16. package/dist/adapters/foundation-docs-port.d.ts.map +1 -1
  17. package/dist/adapters/foundation-docs-port.js +9 -1
  18. package/dist/adapters/foundation-docs-port.js.map +1 -1
  19. package/dist/adapters/node-adoption-inspector.d.ts +1 -1
  20. package/dist/adapters/node-adoption-inspector.d.ts.map +1 -1
  21. package/dist/adapters/node-adoption-inspector.js +63 -25
  22. package/dist/adapters/node-adoption-inspector.js.map +1 -1
  23. package/dist/adapters/node-profile-discovery.d.ts +7 -0
  24. package/dist/adapters/node-profile-discovery.d.ts.map +1 -0
  25. package/dist/adapters/node-profile-discovery.js +38 -0
  26. package/dist/adapters/node-profile-discovery.js.map +1 -0
  27. package/dist/adapters/node-profile-reader.d.ts +1 -1
  28. package/dist/adapters/node-profile-reader.d.ts.map +1 -1
  29. package/dist/adapters/node-profile-reader.js +9 -8
  30. package/dist/adapters/node-profile-reader.js.map +1 -1
  31. package/dist/application/docs-execution.d.ts +7 -0
  32. package/dist/application/docs-execution.d.ts.map +1 -0
  33. package/dist/application/docs-execution.js +49 -0
  34. package/dist/application/docs-execution.js.map +1 -0
  35. package/dist/application/docs-protocol.d.ts +10 -2
  36. package/dist/application/docs-protocol.d.ts.map +1 -1
  37. package/dist/application/docs-protocol.js +32 -45
  38. package/dist/application/docs-protocol.js.map +1 -1
  39. package/dist/community/bootstrap/index.d.ts +3 -0
  40. package/dist/community/bootstrap/index.d.ts.map +1 -0
  41. package/dist/community/bootstrap/index.js +2 -0
  42. package/dist/community/bootstrap/index.js.map +1 -0
  43. package/dist/community/bootstrap/portable-bootstrap-assets.d.ts +10 -0
  44. package/dist/community/bootstrap/portable-bootstrap-assets.d.ts.map +1 -0
  45. package/dist/community/bootstrap/portable-bootstrap-assets.js +183 -0
  46. package/dist/community/bootstrap/portable-bootstrap-assets.js.map +1 -0
  47. package/dist/community/bootstrap/portable-bootstrap.d.ts +48 -0
  48. package/dist/community/bootstrap/portable-bootstrap.d.ts.map +1 -0
  49. package/dist/community/bootstrap/portable-bootstrap.js +387 -0
  50. package/dist/community/bootstrap/portable-bootstrap.js.map +1 -0
  51. package/dist/community/context/community-query.d.ts +52 -0
  52. package/dist/community/context/community-query.d.ts.map +1 -0
  53. package/dist/community/context/community-query.js +306 -0
  54. package/dist/community/context/community-query.js.map +1 -0
  55. package/dist/community/context/index.d.ts +7 -0
  56. package/dist/community/context/index.d.ts.map +1 -0
  57. package/dist/community/context/index.js +5 -0
  58. package/dist/community/context/index.js.map +1 -0
  59. package/dist/community/context/llms-text.d.ts +37 -0
  60. package/dist/community/context/llms-text.d.ts.map +1 -0
  61. package/dist/community/context/llms-text.js +130 -0
  62. package/dist/community/context/llms-text.js.map +1 -0
  63. package/dist/community/context/minisearch-adapter.d.ts +8 -0
  64. package/dist/community/context/minisearch-adapter.d.ts.map +1 -0
  65. package/dist/community/context/minisearch-adapter.js +59 -0
  66. package/dist/community/context/minisearch-adapter.js.map +1 -0
  67. package/dist/community/context/ranked-search.d.ts +38 -0
  68. package/dist/community/context/ranked-search.d.ts.map +1 -0
  69. package/dist/community/context/ranked-search.js +118 -0
  70. package/dist/community/context/ranked-search.js.map +1 -0
  71. package/dist/composition/cli.d.ts +2 -4
  72. package/dist/composition/cli.d.ts.map +1 -1
  73. package/dist/composition/cli.js +236 -115
  74. package/dist/composition/cli.js.map +1 -1
  75. package/dist/composition/docs-cli-machine.d.ts +9 -0
  76. package/dist/composition/docs-cli-machine.d.ts.map +1 -0
  77. package/dist/composition/docs-cli-machine.js +130 -0
  78. package/dist/composition/docs-cli-machine.js.map +1 -0
  79. package/dist/composition/docs-human-renderer.d.ts +2 -0
  80. package/dist/composition/docs-human-renderer.d.ts.map +1 -1
  81. package/dist/composition/docs-human-renderer.js +18 -1
  82. package/dist/composition/docs-human-renderer.js.map +1 -1
  83. package/dist/composition/node-docs-api.d.ts +12 -0
  84. package/dist/composition/node-docs-api.d.ts.map +1 -1
  85. package/dist/composition/node-docs-api.js +14 -0
  86. package/dist/composition/node-docs-api.js.map +1 -1
  87. package/dist/composition/node-docs-bootstrap-api.d.ts +75 -0
  88. package/dist/composition/node-docs-bootstrap-api.d.ts.map +1 -0
  89. package/dist/composition/node-docs-bootstrap-api.js +97 -0
  90. package/dist/composition/node-docs-bootstrap-api.js.map +1 -0
  91. package/dist/domain/model-v2.d.ts +25 -1
  92. package/dist/domain/model-v2.d.ts.map +1 -1
  93. package/dist/domain/model-v3.d.ts +72 -0
  94. package/dist/domain/model-v3.d.ts.map +1 -0
  95. package/dist/domain/model-v3.js +2 -0
  96. package/dist/domain/model-v3.js.map +1 -0
  97. package/dist/domain/model.d.ts +5 -0
  98. package/dist/domain/model.d.ts.map +1 -1
  99. package/dist/domain/model.js +3 -0
  100. package/dist/domain/model.js.map +1 -1
  101. package/dist/domain/profile-policy.d.ts +4 -3
  102. package/dist/domain/profile-policy.d.ts.map +1 -1
  103. package/dist/domain/profile-policy.js +43 -13
  104. package/dist/domain/profile-policy.js.map +1 -1
  105. package/dist/index.d.ts +9 -3
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +5 -2
  108. package/dist/index.js.map +1 -1
  109. package/package.json +8 -4
  110. package/schemas/docs-protocol-command-envelope/v3.schema.json +529 -0
  111. package/schemas/docs-protocol-profile/v3.schema.json +49 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portable-bootstrap.js","sourceRoot":"","sources":["../../../src/community/bootstrap/portable-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { DocsDiagnostic, DocsFindDocument, DocsFindQuery } from "../../domain/model.js";
2
+ import type { FoundationDocsPortV2 } from "../../domain/model-v2.js";
3
+ import type { DocsContextRequestV1, DocsContextResultV1, DocsContextSelectionV1, DocsFindQueryV3, FoundationDocsPortV3 } from "../../domain/model-v3.js";
4
+ interface CommunityFindProjection {
5
+ readonly diagnostics: readonly DocsDiagnostic[];
6
+ readonly outcome: "success" | "violation";
7
+ readonly result: Readonly<{
8
+ kind: "find";
9
+ matches: number;
10
+ documents: readonly DocsFindDocument[];
11
+ }>;
12
+ }
13
+ interface CommunityFindProjectionV3 {
14
+ readonly catalogSemanticDigest: `sha256:${string}`;
15
+ readonly catalogStatus: "complete" | "partial";
16
+ readonly diagnostics: readonly DocsDiagnostic[];
17
+ readonly outcome: "success" | "violation";
18
+ readonly result: Readonly<{
19
+ kind: "find";
20
+ matches: number;
21
+ documents: readonly DocsFindDocument[];
22
+ ranking?: "fuzzy-advisory";
23
+ }>;
24
+ readonly selection: DocsContextSelectionV1;
25
+ }
26
+ interface CommunityContextProjection {
27
+ readonly diagnostics: readonly DocsDiagnostic[];
28
+ readonly outcome: "authority-stale" | "success" | "violation";
29
+ readonly result: DocsContextResultV1;
30
+ }
31
+ export declare function projectLegacyFind(input: {
32
+ readonly consumerRoot: string;
33
+ readonly foundation: FoundationDocsPortV2;
34
+ readonly foundationProfilePath: string;
35
+ readonly query: DocsFindQuery;
36
+ readonly signal?: AbortSignal;
37
+ }): Promise<CommunityFindProjection>;
38
+ export declare function projectCommunityFind(input: {
39
+ readonly consumerRoot: string;
40
+ readonly foundation: FoundationDocsPortV3;
41
+ readonly foundationProfilePath: string;
42
+ readonly query: DocsFindQueryV3;
43
+ readonly signal?: AbortSignal;
44
+ }): Promise<CommunityFindProjectionV3>;
45
+ export declare function projectCommunityContext(input: {
46
+ readonly catalogBefore: Awaited<ReturnType<FoundationDocsPortV2["buildCatalog"]>>;
47
+ readonly foundation: FoundationDocsPortV3;
48
+ readonly foundationProfilePath: string;
49
+ readonly request: DocsContextRequestV1;
50
+ }): Promise<CommunityContextProjection>;
51
+ export {};
52
+ //# sourceMappingURL=community-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community-query.d.ts","sourceRoot":"","sources":["../../../src/community/context/community-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,KAAK,EACV,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EAEf,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAWlC,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,WAAW,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;KACxC,CAAC,CAAC;CACJ;AAED,UAAU,yBAAyB;IACjC,QAAQ,CAAC,qBAAqB,EAAE,UAAU,MAAM,EAAE,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,WAAW,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;QACvC,OAAO,CAAC,EAAE,gBAAgB,CAAC;KAC5B,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;CAC5C;AAED,UAAU,0BAA0B;IAClC,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,WAAW,CAAC;IAC9D,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;CACtC;AAqLD,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAkBnC;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAmBrC;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAClF,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;CACxC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAgGtC"}
@@ -0,0 +1,306 @@
1
+ import { normalizeDocumentId } from "../../domain/document-semantics.js";
2
+ import { DocsProfileError } from "../../domain/profile-policy.js";
3
+ import { normalizeCommunityContextLimits, projectCommunityLlmsText } from "./llms-text.js";
4
+ import { createCommunityMiniSearchIndex } from "./minisearch-adapter.js";
5
+ import { rankCommunityDocuments } from "./ranked-search.js";
6
+ const BINARY = (left, right) => Buffer.compare(Buffer.from(left), Buffer.from(right));
7
+ const LOWER_ID = /^[a-z0-9][a-z0-9._/-]*$/u;
8
+ function signalOption(signal) {
9
+ return signal === undefined ? Object.freeze({}) : Object.freeze({ signal });
10
+ }
11
+ function communityText(value, ranking) {
12
+ if (value === undefined) {
13
+ if (ranking === "fuzzy-advisory") {
14
+ throw new DocsProfileError("Fuzzy advisory ranking requires non-empty search text of at most 1000 characters.");
15
+ }
16
+ return undefined;
17
+ }
18
+ const trimmed = value.normalize("NFC").trim();
19
+ const canonical = ranking === "fuzzy-advisory" ? trimmed : trimmed.toLowerCase().normalize("NFC");
20
+ if (canonical.length === 0) {
21
+ if (ranking === "fuzzy-advisory") {
22
+ throw new DocsProfileError("Fuzzy advisory ranking requires non-empty search text of at most 1000 characters.");
23
+ }
24
+ return undefined;
25
+ }
26
+ let characters = 0;
27
+ for (const character of canonical) {
28
+ characters += 1;
29
+ if (characters > 1_000) {
30
+ throw new DocsProfileError("Search text must contain at most 1000 characters.");
31
+ }
32
+ const code = character.codePointAt(0) ?? 0;
33
+ if (code <= 0x1f || code === 0x7f || (code >= 0xd800 && code <= 0xdfff)) {
34
+ throw new DocsProfileError("Search text cannot contain control characters or invalid Unicode.");
35
+ }
36
+ }
37
+ return canonical;
38
+ }
39
+ function normalizedLegacyQuery(query) {
40
+ return Object.freeze({
41
+ ...query,
42
+ ...(query.related === undefined ? {} : { related: normalizeDocumentId(query.related, "related") }),
43
+ ...(query.blockedBy === undefined ? {} : { blockedBy: normalizeDocumentId(query.blockedBy, "blocked_by") })
44
+ });
45
+ }
46
+ function lowerId(value, subject) {
47
+ const canonical = normalizeDocumentId(value, subject);
48
+ if (canonical.length > 160 || !LOWER_ID.test(canonical)) {
49
+ throw new DocsProfileError(`${subject} must be a bounded lowercase identifier.`);
50
+ }
51
+ return canonical;
52
+ }
53
+ function normalizedCommunityQuery(query) {
54
+ const ranking = query.ranking ?? "binary-default";
55
+ const text = communityText(query.text, ranking);
56
+ return Object.freeze({
57
+ ...(text === undefined ? {} : { text }),
58
+ ...(query.id === undefined ? {} : { id: normalizeDocumentId(query.id, "id") }),
59
+ ...(query.type === undefined ? {} : { type: lowerId(query.type, "type") }),
60
+ ...(query.status === undefined ? {} : { status: lowerId(query.status, "status") }),
61
+ ...(query.owner === undefined ? {} : { owner: normalizeDocumentId(query.owner, "owner") }),
62
+ ...(query.related === undefined ? {} : { related: normalizeDocumentId(query.related, "related") }),
63
+ ...(query.blockedBy === undefined ? {} : { blockedBy: normalizeDocumentId(query.blockedBy, "blocked_by") }),
64
+ ranking
65
+ });
66
+ }
67
+ function contextSelection(query) {
68
+ const { ranking = "binary-default", ...criteria } = query;
69
+ return Object.freeze({ ranking, query: Object.freeze(criteria) });
70
+ }
71
+ function foundationQuery(query) {
72
+ if (query.ranking !== "fuzzy-advisory") {
73
+ return query;
74
+ }
75
+ return Object.freeze({
76
+ ...(query.id === undefined ? {} : { id: query.id }),
77
+ ...(query.type === undefined ? {} : { type: query.type }),
78
+ ...(query.status === undefined ? {} : { status: query.status }),
79
+ ...(query.owner === undefined ? {} : { owner: query.owner }),
80
+ ...(query.related === undefined ? {} : { related: query.related }),
81
+ ...(query.blockedBy === undefined ? {} : { blockedBy: query.blockedBy })
82
+ });
83
+ }
84
+ function catalogDiagnostics(diagnostics) {
85
+ return Object.freeze(diagnostics.map((entry) => Object.freeze({
86
+ ruleId: entry.ruleId,
87
+ severity: entry.severity,
88
+ phase: "authority",
89
+ subject: entry.subject,
90
+ message: entry.message
91
+ })));
92
+ }
93
+ function diagnosticIdentity(diagnostic) {
94
+ return JSON.stringify([
95
+ diagnostic.ruleId,
96
+ diagnostic.severity,
97
+ diagnostic.phase,
98
+ diagnostic.subject,
99
+ diagnostic.message
100
+ ]);
101
+ }
102
+ function uniqueDiagnostics(...groups) {
103
+ const identities = new Set();
104
+ const merged = [];
105
+ for (const group of groups) {
106
+ for (const diagnostic of group) {
107
+ const identity = diagnosticIdentity(diagnostic);
108
+ if (!identities.has(identity)) {
109
+ identities.add(identity);
110
+ merged.push(diagnostic);
111
+ }
112
+ }
113
+ }
114
+ return Object.freeze(merged);
115
+ }
116
+ function contextDiagnostics(...groups) {
117
+ const unique = uniqueDiagnostics(...groups);
118
+ if (unique.length <= 256) {
119
+ return unique;
120
+ }
121
+ const merged = unique.slice(0, 255);
122
+ let omitted = unique.length - merged.length;
123
+ let marker = Object.freeze({
124
+ ruleId: "docs.context.diagnostics-truncated",
125
+ severity: "warning",
126
+ phase: "authority",
127
+ subject: "diagnostics",
128
+ message: `Omitted ${String(omitted)} additional unique diagnostics after the deterministic 255-item context evidence limit.`
129
+ });
130
+ const duplicateIndex = merged.findIndex((diagnostic) => diagnosticIdentity(diagnostic) === diagnosticIdentity(marker));
131
+ if (duplicateIndex >= 0) {
132
+ merged.splice(duplicateIndex, 1);
133
+ omitted = unique.length - merged.length;
134
+ marker = Object.freeze({
135
+ ruleId: "docs.context.diagnostics-truncated",
136
+ severity: "warning",
137
+ phase: "authority",
138
+ subject: "diagnostics",
139
+ message: `Omitted ${String(omitted)} additional unique diagnostics after the deterministic 255-item context evidence limit.`
140
+ });
141
+ }
142
+ merged.push(marker);
143
+ return Object.freeze(merged);
144
+ }
145
+ function projectDocuments(documents, query, advisoryText) {
146
+ const filtered = documents.filter((document) => (query.related === undefined || document.related.includes(query.related)) &&
147
+ (query.blockedBy === undefined || document.blockedBy.includes(query.blockedBy)));
148
+ const matches = advisoryText === undefined
149
+ ? filtered.toSorted((left, right) => BINARY(left.id, right.id) || BINARY(left.repositoryPath, right.repositoryPath))
150
+ : rankCommunityDocuments({
151
+ documents: filtered,
152
+ query: advisoryText,
153
+ searchIndex: createCommunityMiniSearchIndex()
154
+ }).map(({ document }) => document);
155
+ const diagnostics = query.ranking === "fuzzy-advisory"
156
+ ? Object.freeze([{
157
+ ruleId: "docs.find.fuzzy-advisory",
158
+ severity: "info",
159
+ phase: "query",
160
+ subject: "query.ranking",
161
+ message: "Fuzzy ranking is advisory; verify document authority and current status before acting."
162
+ }])
163
+ : Object.freeze([]);
164
+ return Object.freeze({
165
+ diagnostics,
166
+ result: Object.freeze({
167
+ kind: "find",
168
+ matches: matches.length,
169
+ documents: Object.freeze(matches),
170
+ ...(query.ranking === "fuzzy-advisory" ? { ranking: "fuzzy-advisory" } : {})
171
+ })
172
+ });
173
+ }
174
+ export async function projectLegacyFind(input) {
175
+ const query = normalizedLegacyQuery(input.query);
176
+ const documents = await input.foundation.find({
177
+ consumerRoot: input.consumerRoot,
178
+ profilePath: input.foundationProfilePath,
179
+ query: foundationQuery(query),
180
+ ...signalOption(input.signal)
181
+ });
182
+ const projection = projectDocuments(documents, query);
183
+ return Object.freeze({
184
+ diagnostics: projection.diagnostics,
185
+ outcome: "success",
186
+ result: Object.freeze({
187
+ kind: "find",
188
+ matches: projection.result.matches,
189
+ documents: projection.result.documents
190
+ })
191
+ });
192
+ }
193
+ export async function projectCommunityFind(input) {
194
+ const query = normalizedCommunityQuery(input.query);
195
+ const advisoryText = query.ranking === "fuzzy-advisory" ? query.text : undefined;
196
+ const evidence = await input.foundation.findWithEvidence({
197
+ consumerRoot: input.consumerRoot,
198
+ profilePath: input.foundationProfilePath,
199
+ query: foundationQuery(query),
200
+ ...signalOption(input.signal)
201
+ });
202
+ const complete = evidence.catalogStatus === "complete" && evidence.diagnostics.length === 0;
203
+ const projection = projectDocuments(complete ? evidence.documents : Object.freeze([]), query, advisoryText);
204
+ return Object.freeze({
205
+ catalogSemanticDigest: evidence.catalogSemanticDigest,
206
+ catalogStatus: evidence.catalogStatus,
207
+ diagnostics: uniqueDiagnostics(catalogDiagnostics(evidence.diagnostics), projection.diagnostics),
208
+ outcome: complete ? "success" : "violation",
209
+ result: projection.result,
210
+ selection: contextSelection(query)
211
+ });
212
+ }
213
+ export async function projectCommunityContext(input) {
214
+ const limits = normalizeCommunityContextLimits(input.request.limits);
215
+ const found = await projectCommunityFind({
216
+ consumerRoot: input.request.consumerRoot,
217
+ foundation: input.foundation,
218
+ foundationProfilePath: input.foundationProfilePath,
219
+ query: input.request.query,
220
+ ...signalOption(input.request.signal)
221
+ });
222
+ const catalogAfter = await input.foundation.buildCatalog({
223
+ consumerRoot: input.request.consumerRoot,
224
+ profilePath: input.foundationProfilePath,
225
+ ...signalOption(input.request.signal)
226
+ });
227
+ const stale = input.catalogBefore.semanticDigest !== found.catalogSemanticDigest ||
228
+ found.catalogSemanticDigest !== catalogAfter.semanticDigest ||
229
+ input.catalogBefore.projectId !== catalogAfter.projectId;
230
+ if (stale) {
231
+ return Object.freeze({
232
+ outcome: "authority-stale",
233
+ result: Object.freeze({
234
+ kind: "context",
235
+ format: "llms.txt",
236
+ projectId: catalogAfter.projectId,
237
+ catalogSemanticDigest: catalogAfter.semanticDigest,
238
+ selection: found.selection,
239
+ limits,
240
+ includedDocuments: 0,
241
+ omittedDocuments: catalogAfter.documents.length,
242
+ truncated: catalogAfter.documents.length > 0,
243
+ content: ""
244
+ }),
245
+ diagnostics: Object.freeze([{
246
+ ruleId: "docs.context.authority-stale",
247
+ severity: "error",
248
+ phase: "authority",
249
+ subject: input.foundationProfilePath,
250
+ message: "Documentation authority changed while agent context was being projected; retry from a fresh snapshot."
251
+ }])
252
+ });
253
+ }
254
+ const complete = input.catalogBefore.status === "complete" && catalogAfter.status === "complete" &&
255
+ found.outcome === "success" && input.catalogBefore.diagnostics.length === 0 && catalogAfter.diagnostics.length === 0;
256
+ if (!complete) {
257
+ const diagnostics = contextDiagnostics(catalogDiagnostics(input.catalogBefore.diagnostics), found.diagnostics, catalogDiagnostics(catalogAfter.diagnostics));
258
+ return Object.freeze({
259
+ outcome: "violation",
260
+ result: Object.freeze({
261
+ kind: "context",
262
+ format: "llms.txt",
263
+ projectId: catalogAfter.projectId,
264
+ catalogSemanticDigest: catalogAfter.semanticDigest,
265
+ selection: found.selection,
266
+ limits,
267
+ includedDocuments: 0,
268
+ omittedDocuments: catalogAfter.documents.length,
269
+ truncated: catalogAfter.documents.length > 0,
270
+ content: ""
271
+ }),
272
+ diagnostics: diagnostics.length > 0 ? diagnostics : Object.freeze([{
273
+ ruleId: "docs.context.catalog-partial",
274
+ severity: "error",
275
+ phase: "authority",
276
+ subject: input.foundationProfilePath,
277
+ message: "Documentation catalog is partial; context projection is withheld until the authority is complete."
278
+ }])
279
+ });
280
+ }
281
+ const projection = projectCommunityLlmsText({
282
+ catalog: {
283
+ projectId: catalogAfter.projectId,
284
+ title: `${catalogAfter.projectId} documentation`,
285
+ summary: "Deterministic repository documentation context for humans and agents."
286
+ },
287
+ documents: found.result.documents,
288
+ limits,
289
+ selection: found.selection.ranking === "fuzzy-advisory"
290
+ ? { kind: "fuzzy-advisory" }
291
+ : { kind: "filtered" }
292
+ });
293
+ return Object.freeze({
294
+ outcome: "success",
295
+ result: Object.freeze({
296
+ kind: "context",
297
+ format: "llms.txt",
298
+ projectId: catalogAfter.projectId,
299
+ catalogSemanticDigest: catalogAfter.semanticDigest,
300
+ selection: found.selection,
301
+ ...projection
302
+ }),
303
+ diagnostics: found.diagnostics
304
+ });
305
+ }
306
+ //# sourceMappingURL=community-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community-query.js","sourceRoot":"","sources":["../../../src/community/context/community-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { CommunityContextError, rankCommunityDocuments } from "./ranked-search.js";
2
+ export type { CommunityRankedDocument, CommunitySearchHit, CommunitySearchIndex, CommunitySearchRecord, RankCommunityDocumentsInput } from "./ranked-search.js";
3
+ export { MINIMUM_COMMUNITY_CONTEXT_BYTES, MAXIMUM_COMMUNITY_CONTEXT_BYTES, MAXIMUM_COMMUNITY_CONTEXT_DOCUMENTS, projectCommunityLlmsText } from "./llms-text.js";
4
+ export { CommunityMiniSearchIndex, createCommunityMiniSearchIndex } from "./minisearch-adapter.js";
5
+ export type { CommunityContextCatalog, CommunityContextLimits, EffectiveCommunityContextLimits, CommunityLlmsTextInput, CommunityLlmsTextProjection } from "./llms-text.js";
6
+ export { projectCommunityContext, projectCommunityFind, projectLegacyFind } from "./community-query.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/community/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,mCAAmC,EACnC,wBAAwB,EACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,EACtB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { CommunityContextError, rankCommunityDocuments } from "./ranked-search.js";
2
+ export { MINIMUM_COMMUNITY_CONTEXT_BYTES, MAXIMUM_COMMUNITY_CONTEXT_BYTES, MAXIMUM_COMMUNITY_CONTEXT_DOCUMENTS, projectCommunityLlmsText } from "./llms-text.js";
3
+ export { CommunityMiniSearchIndex, createCommunityMiniSearchIndex } from "./minisearch-adapter.js";
4
+ export { projectCommunityContext, projectCommunityFind, projectLegacyFind } from "./community-query.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/community/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,mCAAmC,EACnC,wBAAwB,EACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { DocsFindDocument } from "../../domain/model.js";
2
+ export declare const MINIMUM_COMMUNITY_CONTEXT_BYTES = 1024;
3
+ export declare const MAXIMUM_COMMUNITY_CONTEXT_BYTES = 1048576;
4
+ export declare const MAXIMUM_COMMUNITY_CONTEXT_DOCUMENTS = 10000;
5
+ export interface CommunityContextCatalog {
6
+ readonly projectId: string;
7
+ readonly title: string;
8
+ readonly summary?: string;
9
+ }
10
+ export interface CommunityContextLimits {
11
+ readonly maxDocuments?: number;
12
+ readonly maxBytes?: number;
13
+ }
14
+ export interface EffectiveCommunityContextLimits {
15
+ readonly maxDocuments: number;
16
+ readonly maxBytes: number;
17
+ }
18
+ export interface CommunityLlmsTextInput {
19
+ readonly catalog: CommunityContextCatalog;
20
+ readonly documents: readonly DocsFindDocument[];
21
+ readonly limits?: CommunityContextLimits;
22
+ readonly selection?: {
23
+ readonly kind: "filtered";
24
+ } | {
25
+ readonly kind: "fuzzy-advisory";
26
+ };
27
+ }
28
+ export interface CommunityLlmsTextProjection {
29
+ readonly content: string;
30
+ readonly includedDocuments: number;
31
+ readonly omittedDocuments: number;
32
+ readonly truncated: boolean;
33
+ readonly limits: EffectiveCommunityContextLimits;
34
+ }
35
+ export declare function normalizeCommunityContextLimits(limits?: CommunityContextLimits): EffectiveCommunityContextLimits;
36
+ export declare function projectCommunityLlmsText(input: CommunityLlmsTextInput): CommunityLlmsTextProjection;
37
+ //# sourceMappingURL=llms-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms-text.d.ts","sourceRoot":"","sources":["../../../src/community/context/llms-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,eAAO,MAAM,+BAA+B,OAAQ,CAAC;AACrD,eAAO,MAAM,+BAA+B,UAAY,CAAC;AACzD,eAAO,MAAM,mCAAmC,QAAS,CAAC;AAK1D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EACf;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;KAAE,GAC7B;QAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC;CACzC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,+BAA+B,CAAC;CAClD;AAUD,wBAAgB,+BAA+B,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,+BAA+B,CAOhH;AAoDD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,GAAG,2BAA2B,CAgEnG"}
@@ -0,0 +1,130 @@
1
+ import { CommunityContextError, rankCommunityDocuments } from "./ranked-search.js";
2
+ const DEFAULT_MAXIMUM_DOCUMENTS = 64;
3
+ const DEFAULT_MAXIMUM_BYTES = 262_144;
4
+ export const MINIMUM_COMMUNITY_CONTEXT_BYTES = 1_024;
5
+ export const MAXIMUM_COMMUNITY_CONTEXT_BYTES = 1_048_576;
6
+ export const MAXIMUM_COMMUNITY_CONTEXT_DOCUMENTS = 10_000;
7
+ const BINARY = (left, right) => Buffer.compare(Buffer.from(left, "utf8"), Buffer.from(right, "utf8"));
8
+ function boundedInteger(value, fallback, maximum, subject) {
9
+ const projected = value ?? fallback;
10
+ if (!Number.isSafeInteger(projected) || projected < 0 || projected > maximum) {
11
+ throw new CommunityContextError(`${subject} must be an integer from 0 through ${String(maximum)}.`);
12
+ }
13
+ return projected;
14
+ }
15
+ export function normalizeCommunityContextLimits(limits) {
16
+ const maxDocuments = boundedInteger(limits?.maxDocuments, DEFAULT_MAXIMUM_DOCUMENTS, MAXIMUM_COMMUNITY_CONTEXT_DOCUMENTS, "maxDocuments");
17
+ const maxBytes = boundedInteger(limits?.maxBytes, DEFAULT_MAXIMUM_BYTES, MAXIMUM_COMMUNITY_CONTEXT_BYTES, "maxBytes");
18
+ if (maxBytes < MINIMUM_COMMUNITY_CONTEXT_BYTES) {
19
+ throw new CommunityContextError(`maxBytes must be at least ${String(MINIMUM_COMMUNITY_CONTEXT_BYTES)}.`);
20
+ }
21
+ return Object.freeze({ maxBytes, maxDocuments });
22
+ }
23
+ function normalizedText(value, subject) {
24
+ if (typeof value !== "string") {
25
+ throw new CommunityContextError(`${subject} must be a string.`);
26
+ }
27
+ const normalized = value.normalize("NFC");
28
+ if (normalized.includes("\u0000") || Buffer.byteLength(normalized, "utf8") > 65_536) {
29
+ throw new CommunityContextError(`${subject} is outside the bounded text contract.`);
30
+ }
31
+ return normalized;
32
+ }
33
+ function inlineText(value) {
34
+ return value.replace(/[\r\n\t]+/gu, " ").replace(/\s{2,}/gu, " ").trim();
35
+ }
36
+ function markdownText(value) {
37
+ return inlineText(value).replace(/[\\`*_[\]<>]/gu, "\\$&");
38
+ }
39
+ function relativeMarkdownLink(repositoryPath) {
40
+ const path = normalizedText(repositoryPath, "document.repositoryPath");
41
+ if (path.length === 0 || path.startsWith("/") || path.startsWith("\\") ||
42
+ /^[A-Za-z]:/u.test(path) || /^[A-Za-z][A-Za-z0-9+.-]*:/u.test(path) ||
43
+ path.includes("\\") || path.split("/").some((segment) => segment.length === 0 || segment === "." || segment === "..")) {
44
+ throw new CommunityContextError(`Document path must be a canonical repository-relative path: ${path}.`);
45
+ }
46
+ return `./${path.split("/").map((segment) => encodeURIComponent(segment)).join("/")}`;
47
+ }
48
+ function compareDocuments(left, right) {
49
+ const leftId = left.id.normalize("NFC");
50
+ const rightId = right.id.normalize("NFC");
51
+ return BINARY(leftId, rightId) || BINARY(left.repositoryPath.normalize("NFC"), right.repositoryPath.normalize("NFC"));
52
+ }
53
+ function documentBlock(document) {
54
+ const id = markdownText(normalizedText(document.id, "document.id"));
55
+ const title = markdownText(normalizedText(document.title, `${document.id}.title`));
56
+ const summary = markdownText(normalizedText(document.summary, `${document.id}.summary`));
57
+ const type = markdownText(normalizedText(document.type, `${document.id}.type`));
58
+ const status = markdownText(normalizedText(document.status, `${document.id}.status`));
59
+ const owner = markdownText(normalizedText(document.owner, `${document.id}.owner`));
60
+ const link = relativeMarkdownLink(document.repositoryPath);
61
+ return `- [${id}: ${title}](${link})\n - ${summary}\n - Type: ${type}; status: ${status}; owner: ${owner}\n`;
62
+ }
63
+ function byteLength(value) {
64
+ return Buffer.byteLength(value, "utf8");
65
+ }
66
+ export function projectCommunityLlmsText(input) {
67
+ const limits = normalizeCommunityContextLimits(input.limits);
68
+ const { maxBytes, maxDocuments } = limits;
69
+ // Reuse the canonicalization and duplicate checks without invoking a search adapter.
70
+ const canonicalDocuments = rankCommunityDocuments({ documents: input.documents, query: "" })
71
+ .map(({ document }) => document);
72
+ const canonicalById = new Map(canonicalDocuments.map((document) => [document.id, document]));
73
+ const documents = input.selection?.kind === "fuzzy-advisory"
74
+ ? input.documents.map((document) => {
75
+ const id = document.id.normalize("NFC");
76
+ const canonical = canonicalById.get(id);
77
+ if (canonical === undefined) {
78
+ throw new CommunityContextError(`Fuzzy projection contains an unknown canonical document id: ${id}.`);
79
+ }
80
+ return canonical;
81
+ })
82
+ : canonicalDocuments.toSorted(compareDocuments);
83
+ const projectId = markdownText(normalizedText(input.catalog.projectId, "catalog.projectId"));
84
+ const title = markdownText(normalizedText(input.catalog.title, "catalog.title"));
85
+ const summary = input.catalog.summary === undefined
86
+ ? ""
87
+ : `${markdownText(normalizedText(input.catalog.summary, "catalog.summary"))}\n\n`;
88
+ const advisory = input.selection?.kind === "fuzzy-advisory"
89
+ ? "> Fuzzy advisory ranking was used. Verify document authority and current status before acting.\n\n"
90
+ : "";
91
+ const header = `# ${title}\n\n${summary}Project: ${projectId}\n\n${advisory}## Documents\n\n`;
92
+ if (byteLength(header) >= maxBytes) {
93
+ throw new CommunityContextError("Catalog header leaves no room for an explicit bounded projection.");
94
+ }
95
+ const candidates = documents.slice(0, maxDocuments);
96
+ const included = [];
97
+ for (const document of candidates) {
98
+ const block = documentBlock(document);
99
+ const projectedIncluded = included.length + 1;
100
+ const omitted = documents.length - projectedIncluded;
101
+ const marker = omitted > 0
102
+ ? `\n## Truncation\n\nIncluded ${String(projectedIncluded)} of ${String(documents.length)} documents; ${String(omitted)} omitted by maxDocuments/maxBytes limits.\n`
103
+ : "";
104
+ if (byteLength(`${header}${included.join("")}${block}${marker}`) > maxBytes) {
105
+ break;
106
+ }
107
+ included.push(block);
108
+ }
109
+ const omittedDocuments = documents.length - included.length;
110
+ const marker = omittedDocuments > 0
111
+ ? `\n## Truncation\n\nIncluded ${String(included.length)} of ${String(documents.length)} documents; ${String(omittedDocuments)} omitted by maxDocuments/maxBytes limits.\n`
112
+ : "";
113
+ let content = `${header}${included.join("")}${marker}`;
114
+ if (byteLength(content) > maxBytes) {
115
+ // This is possible only when zero documents fit and the explicit marker itself exhausts the budget.
116
+ content = `# ${title}\n\n## Truncation\n\n0 of ${String(documents.length)} documents included due to bounded output limits.\n`;
117
+ }
118
+ if (byteLength(content) > maxBytes) {
119
+ throw new CommunityContextError("maxBytes cannot represent the catalog title and explicit truncation state.");
120
+ }
121
+ content = `${content.trimEnd()}\n`.normalize("NFC");
122
+ return Object.freeze({
123
+ content,
124
+ includedDocuments: included.length,
125
+ omittedDocuments,
126
+ truncated: omittedDocuments > 0,
127
+ limits
128
+ });
129
+ }
130
+ //# sourceMappingURL=llms-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms-text.js","sourceRoot":"","sources":["../../../src/community/context/llms-text.ts"],"names":[],"mappings":"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"}