@cat-factory/kernel 0.323.2 → 0.325.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/dist/domain/environment-readiness.logic.d.ts +22 -0
  2. package/dist/domain/environment-readiness.logic.d.ts.map +1 -1
  3. package/dist/domain/environment-readiness.logic.js +35 -10
  4. package/dist/domain/environment-readiness.logic.js.map +1 -1
  5. package/dist/domain/foundational-services.d.ts +107 -4
  6. package/dist/domain/foundational-services.d.ts.map +1 -1
  7. package/dist/domain/foundational-services.js +395 -25
  8. package/dist/domain/foundational-services.js.map +1 -1
  9. package/dist/domain/models.d.ts.map +1 -1
  10. package/dist/domain/models.js +6 -4
  11. package/dist/domain/models.js.map +1 -1
  12. package/dist/domain/workspace-cascade.d.ts +1 -1
  13. package/dist/domain/workspace-cascade.d.ts.map +1 -1
  14. package/dist/domain/workspace-cascade.js +1 -0
  15. package/dist/domain/workspace-cascade.js.map +1 -1
  16. package/dist/index.d.ts +4 -4
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +6 -4
  19. package/dist/index.js.map +1 -1
  20. package/dist/ports/environment-diagnostics.d.ts +119 -0
  21. package/dist/ports/environment-diagnostics.d.ts.map +1 -0
  22. package/dist/ports/environment-diagnostics.js +2 -0
  23. package/dist/ports/environment-diagnostics.js.map +1 -0
  24. package/dist/ports/environment-investigation.d.ts +132 -0
  25. package/dist/ports/environment-investigation.d.ts.map +1 -0
  26. package/dist/ports/environment-investigation.js +2 -0
  27. package/dist/ports/environment-investigation.js.map +1 -0
  28. package/dist/ports/environment-provider.d.ts +32 -0
  29. package/dist/ports/environment-provider.d.ts.map +1 -1
  30. package/dist/ports/environment-repositories.d.ts +10 -1
  31. package/dist/ports/environment-repositories.d.ts.map +1 -1
  32. package/dist/ports/foundational-service-repositories.d.ts +52 -1
  33. package/dist/ports/foundational-service-repositories.d.ts.map +1 -1
  34. package/dist/ports/index.d.ts +4 -0
  35. package/dist/ports/index.d.ts.map +1 -1
  36. package/dist/ports/index.js.map +1 -1
  37. package/dist/ports/llm-metrics.d.ts +33 -0
  38. package/dist/ports/llm-metrics.d.ts.map +1 -1
  39. package/dist/ports/llm-metrics.js.map +1 -1
  40. package/dist/ports/secret-delegation.d.ts +12 -1
  41. package/dist/ports/secret-delegation.d.ts.map +1 -1
  42. package/dist/ports/secret-delegation.js +11 -0
  43. package/dist/ports/secret-delegation.js.map +1 -1
  44. package/dist/ports/service-catalog-repositories.d.ts +56 -0
  45. package/dist/ports/service-catalog-repositories.d.ts.map +1 -0
  46. package/dist/ports/service-catalog-repositories.js +2 -0
  47. package/dist/ports/service-catalog-repositories.js.map +1 -0
  48. package/dist/ports/service-catalog.d.ts +102 -0
  49. package/dist/ports/service-catalog.d.ts.map +1 -0
  50. package/dist/ports/service-catalog.js +2 -0
  51. package/dist/ports/service-catalog.js.map +1 -0
  52. package/dist/shared/redact-secrets.logic.d.ts +20 -0
  53. package/dist/shared/redact-secrets.logic.d.ts.map +1 -1
  54. package/dist/shared/redact-secrets.logic.js +46 -0
  55. package/dist/shared/redact-secrets.logic.js.map +1 -1
  56. package/package.json +2 -2
  57. package/dist/domain/cache-policy.d.ts +0 -6
  58. package/dist/domain/cache-policy.d.ts.map +0 -1
  59. package/dist/domain/cache-policy.js +0 -33
  60. package/dist/domain/cache-policy.js.map +0 -1
@@ -28,6 +28,29 @@ export const MAX_CATALOG_OPERATIONS = 40;
28
28
  * API that happens to stop at `/f`.
29
29
  */
30
30
  export const MAX_CONTRACT_BODY_CHARS = 120_000;
31
+ /**
32
+ * How many characters the rendered CATALOG (or estate) block may run to.
33
+ *
34
+ * A total, where {@link MAX_CATALOG_OPERATIONS} is a per-contract cap, because the two bound
35
+ * different growth. The per-contract cap keeps one verbose spec from dominating; this one keeps
36
+ * the block proportional to nothing at all, which is what an imported estate demands: a portal
37
+ * import admits up to a thousand services, each carrying a description as long as the stored
38
+ * field allows, so an organisation's size would otherwise decide how much of every dispatch's
39
+ * context the catalog eats.
40
+ *
41
+ * What is dropped is STATED as a prefix (see {@link renderFoundationalCatalog}), because a
42
+ * silently shortened catalog reads as an organisation that runs fewer services than it does.
43
+ */
44
+ export const MAX_CATALOG_RENDER_CHARS = 40_000;
45
+ /**
46
+ * How much of ONE service's description rides the rendered block.
47
+ *
48
+ * Its own cap beside the total, so a single service with a 20,000-character description cannot
49
+ * consume the whole budget and push every service after it out of the list. The description is
50
+ * the field an author writes for this purpose, so it keeps a generous share; the truncation is
51
+ * stated on the line itself.
52
+ */
53
+ export const MAX_CATALOG_DESCRIPTION_CHARS = 1_500;
31
54
  /** The `.cat-context/` directory the resolved contract documents are injected under. */
32
55
  export const FOUNDATIONAL_CONTEXT_DIR = 'foundational-services';
33
56
  /** The index file listing what was injected (and what was asked for but could not be). */
@@ -40,6 +63,18 @@ export const FOUNDATIONAL_INDEX_FILE = `${FOUNDATIONAL_CONTEXT_DIR}/index.md`;
40
63
  * to agree on a rendering.
41
64
  */
42
65
  export const FOUNDATIONAL_CATALOG_FILE = `${FOUNDATIONAL_CONTEXT_DIR}/catalog.md`;
66
+ /**
67
+ * The file an ORIENTATION-time kind reads: a triage or investigation agent that has to work out
68
+ * WHICH of the organisation's services a piece of work belongs to.
69
+ *
70
+ * A separate path from {@link FOUNDATIONAL_CATALOG_FILE} carrying a separate rendering of the
71
+ * same rows, because the two readers need opposite framings of them. The catalog file tells a
72
+ * designer "prefer consuming one of these over building your own", which is the wrong sentence
73
+ * to put in front of an agent whose job is to locate a fault: it invites a triage report that
74
+ * recommends adopting a shared service. The estate file states ownership and interface surface
75
+ * and asks for neither a preference nor a declaration.
76
+ */
77
+ export const FOUNDATIONAL_ESTATE_FILE = `${FOUNDATIONAL_CONTEXT_DIR}/estate.md`;
43
78
  /**
44
79
  * The fenced block the Architect writes its declaration in. Parsed back by
45
80
  * {@link parseFoundationalDeclaration}; named in the trait guidance so the two cannot drift.
@@ -63,15 +98,36 @@ export function detectContractFormat(path, content) {
63
98
  return 'toad-contract';
64
99
  return null;
65
100
  }
66
- if (endsWithAny(lower, OPENAPI_DOCUMENT_EXTENSIONS)) {
67
- return isOpenApiDocument(content) ? 'openapi' : null;
101
+ if (endsWithAny(lower, GRAPHQL_DOCUMENT_EXTENSIONS)) {
102
+ return isGraphqlSchemaDocument(content) ? 'graphql' : null;
103
+ }
104
+ if (endsWithAny(lower, PROTOBUF_DOCUMENT_EXTENSIONS)) {
105
+ return isGrpcServiceDocument(content) ? 'grpc' : null;
106
+ }
107
+ if (endsWithAny(lower, STRUCTURED_DOCUMENT_EXTENSIONS)) {
108
+ if (isOpenApiDocument(content))
109
+ return 'openapi';
110
+ // AsyncAPI shares OpenAPI's extensions and its envelope shape, so the two are told apart by
111
+ // the version key alone. Checked SECOND rather than in parallel because a document carrying
112
+ // both keys is malformed either way and `openapi` is the one whose operations are indexed.
113
+ return isAsyncApiDocument(content) ? 'asyncapi' : null;
68
114
  }
69
115
  return null;
70
116
  }
71
117
  /** Extensions a TypeScript/JavaScript contract MODULE can carry. */
72
118
  const CONTRACT_MODULE_EXTENSIONS = ['.ts', '.mts', '.js'];
73
- /** Extensions an OpenAPI document can carry (JSON or YAML). */
74
- const OPENAPI_DOCUMENT_EXTENSIONS = ['.json', '.yaml', '.yml', '.openapi'];
119
+ /**
120
+ * Extensions a STRUCTURED (JSON/YAML) API document can carry: an OpenAPI or an AsyncAPI one.
121
+ *
122
+ * Shared between the two on purpose: they are the same serialisation and differ only in the
123
+ * version key their envelope declares, so a per-format extension list would be two copies of
124
+ * one fact and would make `service.asyncapi.yaml` unreadable for no reason.
125
+ */
126
+ const STRUCTURED_DOCUMENT_EXTENSIONS = ['.json', '.yaml', '.yml', '.openapi', '.asyncapi'];
127
+ /** Extensions a GraphQL schema (SDL) can carry. */
128
+ const GRAPHQL_DOCUMENT_EXTENSIONS = ['.graphql', '.graphqls', '.gql'];
129
+ /** Extensions a Protocol Buffers service definition can carry. */
130
+ const PROTOBUF_DOCUMENT_EXTENSIONS = ['.proto'];
75
131
  /**
76
132
  * Basenames that carry a contract EXTENSION but are never served as contracts: the package,
77
133
  * lockfile and compiler manifests every repository root holds.
@@ -110,19 +166,28 @@ const TSCONFIG_BASENAME = /^tsconfig(\..+)?\.json$/;
110
166
  * contract. This keeps a scan's file reads proportional to the CANDIDATES rather than to the
111
167
  * folder's size.
112
168
  *
113
- * The extension half is derived from the same two lists `detectContractFormat` branches on, so
114
- * the two cannot drift. The basename half ({@link NON_CONTRACT_BASENAMES}) is definitional
115
- * rather than derived: a candidate may still be rejected on its content, and a non-candidate is
116
- * never a contract we serve.
169
+ * The extension half is derived from the same lists `detectContractFormat` branches on, so the
170
+ * two cannot drift. The basename half ({@link NON_CONTRACT_BASENAMES}) is definitional rather
171
+ * than derived: a candidate may still be rejected on its content, and a non-candidate is never a
172
+ * contract we serve.
117
173
  */
118
174
  export function isContractCandidatePath(path) {
119
175
  const lower = path.toLowerCase();
120
176
  const base = lower.split('/').pop() ?? lower;
121
177
  if (NON_CONTRACT_BASENAMES.has(base) || TSCONFIG_BASENAME.test(base))
122
178
  return false;
123
- return (endsWithAny(lower, CONTRACT_MODULE_EXTENSIONS) ||
124
- endsWithAny(lower, OPENAPI_DOCUMENT_EXTENSIONS));
179
+ return CONTRACT_EXTENSIONS.some((extension) => lower.endsWith(extension));
125
180
  }
181
+ /**
182
+ * Every extension a contract document can carry, in ONE list so the candidate test and the
183
+ * detector can never disagree about what is worth reading.
184
+ */
185
+ const CONTRACT_EXTENSIONS = [
186
+ ...CONTRACT_MODULE_EXTENSIONS,
187
+ ...STRUCTURED_DOCUMENT_EXTENSIONS,
188
+ ...GRAPHQL_DOCUMENT_EXTENSIONS,
189
+ ...PROTOBUF_DOCUMENT_EXTENSIONS,
190
+ ];
126
191
  /**
127
192
  * Whether `path` names a TypeScript/JavaScript contract MODULE rather than an OpenAPI document,
128
193
  * derived from the same extension list {@link detectContractFormat} branches on.
@@ -167,8 +232,162 @@ function parseOpenApiDocument(content) {
167
232
  return null;
168
233
  return doc;
169
234
  }
235
+ /** Whether `content` parses as an AsyncAPI **2.x/3.x** document (JSON or YAML). */
236
+ export function isAsyncApiDocument(content) {
237
+ return parseAsyncApiDocument(content) !== null;
238
+ }
239
+ /**
240
+ * Parse an AsyncAPI 2.x/3.x document from JSON or YAML, or null when it is neither.
241
+ *
242
+ * The twin of {@link parseOpenApiDocument} and deliberately as strict: the `asyncapi` version key
243
+ * is what separates an event-driven interface from the many other `channels`-bearing YAML files a
244
+ * repo holds (a broker config, a Kafka Connect descriptor), and accepting any of them would
245
+ * register a service whose "interface" is infrastructure config.
246
+ */
247
+ function parseAsyncApiDocument(content) {
248
+ let parsed;
249
+ try {
250
+ parsed = parseYaml(content);
251
+ }
252
+ catch {
253
+ // silent-catch-ok: an unparseable document is simply "not AsyncAPI"; the caller reports the
254
+ // file as unrecognised, and the parse error names only the file's own syntax.
255
+ return null;
256
+ }
257
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
258
+ return null;
259
+ const doc = parsed;
260
+ const version = doc.asyncapi;
261
+ if (typeof version !== 'string')
262
+ return null;
263
+ return version.startsWith('2.') || version.startsWith('3.') ? doc : null;
264
+ }
265
+ /**
266
+ * Whether `content` is a GraphQL SDL **schema** rather than an operation document.
267
+ *
268
+ * The distinction is the whole reason this exists. A `.graphql` / `.gql` file in a repository is
269
+ * far more often a client's `query`/`mutation`/`fragment` text than the schema a service
270
+ * publishes, and a scan that registered one would tell an Architect the service exposes a surface
271
+ * it does not. What separates the two is a TYPE-SYSTEM definition, which an operation document by
272
+ * construction never carries.
273
+ *
274
+ * Recognition rather than validation, deliberately: the platform indexes no GraphQL operations
275
+ * ({@link operationsAreIndexable}), so the verdict this needs to reach is only "is this file the
276
+ * service's published interface", and a real parser would buy nothing for the extra dependency.
277
+ */
278
+ export function isGraphqlSchemaDocument(content) {
279
+ return GRAPHQL_TYPE_SYSTEM_DEFINITION.test(stripLineComments(content, '#'));
280
+ }
281
+ /**
282
+ * Whether `content` declares a gRPC **service** rather than only message shapes.
283
+ *
284
+ * A `.proto` file is routinely vendored, generated, or purely structural (shared `message`
285
+ * definitions with no RPCs at all), and none of those is an interface the owning service
286
+ * publishes. What makes a protobuf file a gRPC contract is a `service` block, so that is what is
287
+ * required rather than the extension alone.
288
+ */
289
+ export function isGrpcServiceDocument(content) {
290
+ return PROTOBUF_SERVICE_DEFINITION.test(stripLineComments(content, '//'));
291
+ }
292
+ /** A GraphQL type-system definition (or extension), which only a SCHEMA document carries. */
293
+ const GRAPHQL_TYPE_SYSTEM_DEFINITION = /^[ \t]*(extend[ \t]+)?(schema|type|interface|input|enum|union|scalar|directive)[ \t]/m;
294
+ /** A protobuf `service Foo` declaration, the one thing that makes a `.proto` a gRPC contract. */
295
+ const PROTOBUF_SERVICE_DEFINITION = /^[ \t]*service[ \t]+[A-Za-z_][A-Za-z0-9_]*/m;
296
+ /**
297
+ * Drop whole-line comments so a keyword mentioned in prose cannot be read as a declaration.
298
+ *
299
+ * Whole-line only, and that asymmetry is on purpose: a trailing comment cannot introduce a false
300
+ * POSITIVE (the line already holds real syntax before it), while stripping mid-line would have to
301
+ * understand string literals to avoid cutting a `#` or `//` inside one.
302
+ */
303
+ function stripLineComments(content, marker) {
304
+ return content
305
+ .split(/\r?\n/)
306
+ .filter((line) => !line.trimStart().startsWith(marker))
307
+ .join('\n');
308
+ }
170
309
  // --- operation indexing ----------------------------------------------------
171
310
  const HTTP_METHODS = ['get', 'put', 'post', 'delete', 'patch', 'head', 'options', 'trace'];
311
+ /** The per-channel operation keys AsyncAPI **2.x** declares (3.x moved these to `operations`). */
312
+ const ASYNCAPI_2_CHANNEL_OPERATIONS = ['publish', 'subscribe'];
313
+ /**
314
+ * The operations an AsyncAPI document declares, as `PUBLISH orders/created` strings, capped at
315
+ * {@link MAX_CATALOG_OPERATIONS}.
316
+ *
317
+ * Both major versions are read, because an org's portal will hold documents of each and the two
318
+ * state the same fact in different places:
319
+ *
320
+ * - **2.x** puts the verb under the channel (`channels['orders/created'].subscribe`), so the
321
+ * operation is the channel name plus which side of it the document declares.
322
+ * - **3.x** hoists them into a top-level `operations` map whose entries carry an `action`
323
+ * (`send`/`receive`) and a `$ref` to the channel, so the operation is the action plus the
324
+ * channel the ref names, falling back to the operation's own key when the ref is not a local
325
+ * `#/channels/<name>` pointer. That fallback is the honest half: following an external ref
326
+ * would need a fetch this parser will not make, and the key is the document's own name for
327
+ * the operation rather than an invented one.
328
+ *
329
+ * A document whose version is neither indexes to nothing rather than being guessed at.
330
+ */
331
+ export function indexAsyncApiOperations(content) {
332
+ const doc = parseAsyncApiDocument(content);
333
+ if (!doc)
334
+ return { operations: [], omitted: 0 };
335
+ const all = String(doc.asyncapi).startsWith('3.')
336
+ ? asyncApi3Operations(doc)
337
+ : asyncApi2Operations(doc);
338
+ all.sort();
339
+ return {
340
+ operations: all.slice(0, MAX_CATALOG_OPERATIONS),
341
+ omitted: Math.max(0, all.length - MAX_CATALOG_OPERATIONS),
342
+ };
343
+ }
344
+ function asyncApi2Operations(doc) {
345
+ const channels = doc.channels;
346
+ if (!channels || typeof channels !== 'object')
347
+ return [];
348
+ const out = [];
349
+ for (const [channel, item] of Object.entries(channels)) {
350
+ if (!item || typeof item !== 'object')
351
+ continue;
352
+ for (const operation of ASYNCAPI_2_CHANNEL_OPERATIONS) {
353
+ if (operation in item) {
354
+ out.push(`${operation.toUpperCase()} ${channel}`);
355
+ }
356
+ }
357
+ }
358
+ return out;
359
+ }
360
+ function asyncApi3Operations(doc) {
361
+ const operations = doc.operations;
362
+ if (!operations || typeof operations !== 'object')
363
+ return [];
364
+ const out = [];
365
+ for (const [key, item] of Object.entries(operations)) {
366
+ if (!item || typeof item !== 'object')
367
+ continue;
368
+ const operation = item;
369
+ const action = typeof operation.action === 'string' ? operation.action.toUpperCase() : null;
370
+ if (!action)
371
+ continue;
372
+ out.push(`${action} ${asyncApi3ChannelName(operation.channel?.$ref) ?? key}`);
373
+ }
374
+ return out;
375
+ }
376
+ /** The channel a 3.x operation's `$ref` names, when it is a local `#/channels/<name>` pointer. */
377
+ function asyncApi3ChannelName(ref) {
378
+ if (typeof ref !== 'string')
379
+ return null;
380
+ const local = /^#\/channels\/(.+)$/.exec(ref);
381
+ const pointer = local?.[1];
382
+ if (!pointer)
383
+ return null;
384
+ // AsyncAPI escapes `/` in a JSON-Pointer segment as `~1` (and `~` as `~0`), which is what a
385
+ // slash-bearing channel name like `orders/created` becomes. Decoding is what stops the
386
+ // rendered operation naming a channel the document does not contain. `~1` is unescaped first
387
+ // and `~0` second, which is the order RFC 6901 fixes: the reverse turns a literal `~1` into a
388
+ // slash.
389
+ return pointer.replace(/~1/g, '/').replace(/~0/g, '~');
390
+ }
172
391
  /**
173
392
  * The operations an OpenAPI document declares, as `GET /files/{id}` strings, capped at
174
393
  * {@link MAX_CATALOG_OPERATIONS}. Returns `omitted` so the caller can STATE that the list is
@@ -207,6 +426,8 @@ export function indexOpenApiOperations(content) {
207
426
  export function indexContractOperations(format, body) {
208
427
  if (format === 'openapi')
209
428
  return indexOpenApiOperations(body);
429
+ if (format === 'asyncapi')
430
+ return indexAsyncApiOperations(body);
210
431
  if (format === 'toad-contract')
211
432
  return indexToadContractOperations(body);
212
433
  return { operations: [], omitted: 0 };
@@ -324,8 +545,9 @@ export function validateFoundationalDefinition(input) {
324
545
  problems.push({ reason: 'duplicate_contract_id', contractId: contract.contractId });
325
546
  }
326
547
  seen.add(contract.contractId);
327
- if (contract.format === 'openapi' && !isOpenApiDocument(contract.body)) {
328
- problems.push({ reason: 'invalid_openapi_document', contractId: contract.contractId });
548
+ const invalid = describeInvalidStructuredDocument(contract.format, contract.body);
549
+ if (invalid) {
550
+ problems.push({ reason: invalid, contractId: contract.contractId });
329
551
  }
330
552
  }
331
553
  for (const [format, library] of Object.entries(CONTRACT_LIBRARY)) {
@@ -350,12 +572,35 @@ export function describeFoundationalProblem(problem) {
350
572
  return `Duplicate contract id '${problem.contractId}'`;
351
573
  case 'invalid_openapi_document':
352
574
  return `Contract '${problem.contractId}' is not a valid OpenAPI 3.x document (JSON or YAML)`;
575
+ case 'invalid_asyncapi_document':
576
+ return `Contract '${problem.contractId}' is not a valid AsyncAPI 2.x/3.x document (JSON or YAML)`;
353
577
  case 'contract_library_not_referenced':
354
578
  return `No document declared as '${problem.format}' (${problem.contractIds.join(', ')}) references ${problem.expected}. A set may include the modules a contract imports, but at least one of them must be the contract itself.`;
355
579
  case 'capability_tag_near_miss':
356
580
  return `Capability tag '${problem.capability}' differs from the reserved tag '${problem.expected}' only in case or separators. The platform matches '${problem.expected}' exactly, so this tag would be silently ignored — use it, or pick a tag that is not a near-miss of it.`;
357
581
  }
358
582
  }
583
+ /**
584
+ * Why a document does not hold up as the STRUCTURED format it was declared as, or null when it
585
+ * does (and for every format that is not parsed here).
586
+ *
587
+ * Only the two JSON/YAML formats are checked, and the reason is the failure this rule exists to
588
+ * prevent rather than a preference for parseable things: a document claiming to be OpenAPI or
589
+ * AsyncAPI but which is neither registers cleanly and then lists ZERO operations, which reads to
590
+ * an Architect as a fully-specified service that offers no endpoints. GraphQL SDL and protobuf
591
+ * index no operations at all (`operationsAreIndexable` says so), so neither can produce that
592
+ * false impression here. Their own recognisers ({@link isGraphqlSchemaDocument},
593
+ * {@link isGrpcServiceDocument}) answer a different question and are used where it is asked: a
594
+ * SCAN has to decide whether a file it found is the service's published interface, where an
595
+ * upload was told so by the person making it.
596
+ */
597
+ function describeInvalidStructuredDocument(format, body) {
598
+ if (format === 'openapi')
599
+ return isOpenApiDocument(body) ? null : 'invalid_openapi_document';
600
+ if (format === 'asyncapi')
601
+ return isAsyncApiDocument(body) ? null : 'invalid_asyncapi_document';
602
+ return null;
603
+ }
359
604
  /** Build the catalog-facing summary of one stored contract document. */
360
605
  export function summarizeContract(input) {
361
606
  const indexed = indexContractOperations(input.format, input.body);
@@ -448,21 +693,68 @@ export function renderFoundationalCatalog(read) {
448
693
  'FOUNDATIONAL SERVICES available to this system (shared capabilities that already exist — prefer consuming one over building your own):',
449
694
  '',
450
695
  ];
451
- for (const service of services) {
452
- lines.push(`- id: ${service.id} ${service.name}`);
453
- lines.push(` ${service.summary}`);
454
- if (service.capabilities.length > 0) {
455
- lines.push(` capabilities: ${service.capabilities.join(', ')}`);
456
- }
457
- if (service.description.trim()) {
458
- lines.push(` ${service.description.trim().replace(/\r?\n/g, '\n ')}`);
696
+ const rendered = withinRenderBudget(services.map((service) => {
697
+ const block = [`- id: ${service.id} (${service.name})`, ` ${service.summary}`];
698
+ appendServiceBody(block, service, 'contract');
699
+ block.push('');
700
+ return block;
701
+ }));
702
+ for (const block of rendered.kept)
703
+ lines.push(...block);
704
+ if (rendered.omitted > 0)
705
+ lines.push(describeOmittedServices(rendered.omitted));
706
+ return lines.join('\n').trimEnd();
707
+ }
708
+ /**
709
+ * The half of a service's block both renderings share: its tags, its description and its
710
+ * interface lines.
711
+ *
712
+ * Shared where the two documents agree and no further: the heading line and the contract label
713
+ * differ because the two readers are doing different jobs, and folding those into one parameterised
714
+ * template would make every future change to one framing a change to the other by default.
715
+ */
716
+ function appendServiceBody(block, service, contractLabel) {
717
+ if (service.capabilities.length > 0) {
718
+ block.push(` capabilities: ${service.capabilities.join(', ')}`);
719
+ }
720
+ const description = service.description.trim();
721
+ if (description) {
722
+ const capped = description.slice(0, MAX_CATALOG_DESCRIPTION_CHARS);
723
+ block.push(` ${capped.replace(/\r?\n/g, '\n ')}`);
724
+ if (description.length > capped.length) {
725
+ block.push(` [description truncated here: ${description.length - capped.length} further characters are recorded in the catalog]`);
459
726
  }
460
- for (const contract of service.contracts) {
461
- lines.push(` contract (${contract.format}): ${contract.title}${describeOperations(contract)}`);
727
+ }
728
+ for (const contract of service.contracts) {
729
+ block.push(` ${contractLabel} (${contract.format}): ${contract.title}${describeOperations(contract)}`);
730
+ }
731
+ }
732
+ /**
733
+ * As many whole service blocks as fit in {@link MAX_CATALOG_RENDER_CHARS}, plus how many were left
734
+ * out.
735
+ *
736
+ * WHOLE blocks, never a partial one: half a service reads as a service whose interfaces are the
737
+ * ones listed, which is the same lie the operation caps exist to avoid telling. The catalog is
738
+ * ordered by service id, so the kept set is a plain prefix and the caller says so.
739
+ */
740
+ function withinRenderBudget(blocks) {
741
+ const kept = [];
742
+ let used = 0;
743
+ for (const [index, block] of blocks.entries()) {
744
+ const size = block.reduce((total, line) => total + line.length + 1, 0);
745
+ // The FIRST block is admitted whatever it costs: an over-budget single service must render as
746
+ // one (capped) service rather than as an empty catalog, which is the outage-shaped answer.
747
+ if (index > 0 && used + size > MAX_CATALOG_RENDER_CHARS) {
748
+ return { kept, omitted: blocks.length - index };
462
749
  }
463
- lines.push('');
750
+ kept.push(block);
751
+ used += size;
464
752
  }
465
- return lines.join('\n').trimEnd();
753
+ return { kept, omitted: 0 };
754
+ }
755
+ /** The line that states a rendered catalog is a PREFIX, never a silently shortened whole. */
756
+ function describeOmittedServices(omitted) {
757
+ return `... and ${omitted} further registered services that did not fit in this file. The list above is a PREFIX of the catalog, not all of it: do not conclude that a service does not exist because it is missing here.`;
466
758
  }
467
759
  /**
468
760
  * The operation clause after one contract's line in the catalog.
@@ -486,6 +778,55 @@ function describeOperations(contract) {
486
778
  : '';
487
779
  return ` — ${contract.operations.join(', ')}${omitted}`;
488
780
  }
781
+ /**
782
+ * Render the ESTATE block an orientation-time kind reads: which services the organisation runs,
783
+ * who owns each, and what interface each publishes.
784
+ *
785
+ * The same rows as {@link renderFoundationalCatalog} and a different document, because the reader
786
+ * is doing a different job. A triage agent is not choosing a shared capability to build against;
787
+ * it is trying to work out which service a report belongs to and who to route it to, and the
788
+ * design framing ("prefer consuming one of these") would push it towards recommending an
789
+ * adoption instead of naming a fault. So this states ownership first, asks for no declaration,
790
+ * and says plainly what it does NOT carry: the full interface documents, which stay behind a
791
+ * design's declaration because folding every one of them into every dispatch is the cost the
792
+ * catalog/contracts split exists to avoid.
793
+ *
794
+ * The three-state input is the same one the catalog renderer takes, and for the same reason: an
795
+ * estate that could not be READ must not render as an organisation that runs nothing, which is
796
+ * exactly the substitution that would have a triage agent conclude a service does not exist.
797
+ */
798
+ export function renderServiceEstate(read) {
799
+ if (read.status === 'unavailable') {
800
+ return [
801
+ "SERVICE ESTATE: the catalog of this organisation's services COULD NOT BE READ, so which services exist, who owns them and what they expose is unknown here.",
802
+ 'This is a platform failure, not evidence about the organisation. Do not conclude that a service you would expect does not exist, and do not attribute ownership from a name.',
803
+ 'Work from the repositories and code you can actually see, and state in your report that the service catalog was unavailable.',
804
+ ].join('\n');
805
+ }
806
+ const services = read.services;
807
+ if (services.length === 0) {
808
+ return [
809
+ 'SERVICE ESTATE: no service catalog is registered for this workspace, so the only services you can reason about are the ones whose code you have been given.',
810
+ 'Do not infer ownership or the existence of a neighbouring service from a name alone; if the work plainly crosses into a system you cannot see, say so in your report.',
811
+ ].join('\n');
812
+ }
813
+ const lines = [
814
+ 'SERVICE ESTATE. These are the services this organisation runs, as its own catalog records them. Use the list to work out WHICH service a piece of work belongs to and WHO owns it:',
815
+ '',
816
+ ];
817
+ const rendered = withinRenderBudget(services.map((service) => {
818
+ const block = [`- id: ${service.id} (${service.name})`, ` ${service.summary}`];
819
+ appendServiceBody(block, service, 'interface');
820
+ block.push('');
821
+ return block;
822
+ }));
823
+ for (const block of rendered.kept)
824
+ lines.push(...block);
825
+ if (rendered.omitted > 0)
826
+ lines.push(describeOmittedServices(rendered.omitted), '');
827
+ lines.push('The operation lists above are the interface SURFACE, not the full API documents: they are enough to say which service exposes what, and not enough to write a call against. Never invent an endpoint, a field or an owner that is not stated here, and if what you need is a service this list does not carry, say so rather than guessing at it.');
828
+ return lines.join('\n').trimEnd();
829
+ }
489
830
  /**
490
831
  * Render ONE service's contract documents as the body of its injected context file. Each
491
832
  * document is fenced with a language matching its format so the agent reads it as the
@@ -504,7 +845,7 @@ export function renderContractDocument(bundle) {
504
845
  ];
505
846
  for (const contract of bundle.contracts) {
506
847
  lines.push(`## ${contract.title} (${contract.format})`, '');
507
- const fence = contract.format === 'openapi' ? 'yaml' : 'ts';
848
+ const fence = contractFenceLanguage(contract.format);
508
849
  const { text, omitted } = capBody(contract.body);
509
850
  lines.push(`\`\`\`${fence}`, text, '```');
510
851
  if (omitted > 0) {
@@ -514,6 +855,35 @@ export function renderContractDocument(bundle) {
514
855
  }
515
856
  return lines.join('\n').trimEnd();
516
857
  }
858
+ /**
859
+ * The fence language one contract document is rendered under.
860
+ *
861
+ * Exhaustive over the format union with a `never` guard, so adding a format fails the BUILD here
862
+ * rather than fencing a `.proto` file as TypeScript. The fence is not cosmetic: it is what tells
863
+ * the agent which artifact it is reading, and a document fenced as the wrong language is one a
864
+ * model will try to fix rather than call.
865
+ */
866
+ function contractFenceLanguage(format) {
867
+ switch (format) {
868
+ case 'openapi':
869
+ case 'asyncapi':
870
+ // YAML's grammar is a superset of JSON's, so one fence serves a document stored as either.
871
+ return 'yaml';
872
+ case 'graphql':
873
+ return 'graphql';
874
+ case 'grpc':
875
+ return 'proto';
876
+ case 'toad-contract':
877
+ case 'lokalise-api-contract':
878
+ return 'ts';
879
+ default:
880
+ return exhaustiveContractFormat(format);
881
+ }
882
+ }
883
+ /** The compile-time totality guard for {@link contractFenceLanguage}. */
884
+ function exhaustiveContractFormat(format) {
885
+ return String(format);
886
+ }
517
887
  function capBody(body) {
518
888
  if (body.length <= MAX_CONTRACT_BODY_CHARS)
519
889
  return { text: body, omitted: 0 };
@@ -1 +1 @@
1
- {"version":3,"file":"foundational-services.js","sourceRoot":"","sources":["../../src/domain/foundational-services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"foundational-services.js","sourceRoot":"","sources":["../../src/domain/foundational-services.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/domain/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/domain/models.ts"],"names":[],"mappings":"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"}