@neat.is/types 0.9.2-dev.20260821 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -706,6 +706,57 @@ var ObservedDependenciesResultSchema = z5.object({
706
706
  window: z5.enum(["7d", "lifetime"]).optional(),
707
707
  inboundLastObserved: z5.string().datetime().optional()
708
708
  });
709
+ var AskIntentSchema = z5.enum([
710
+ "root-cause",
711
+ "blast-radius",
712
+ "dependencies",
713
+ "observed",
714
+ "incidents",
715
+ "divergence",
716
+ "overview"
717
+ ]);
718
+ var AskMatchSchema = z5.object({
719
+ nodeId: z5.string(),
720
+ label: z5.string(),
721
+ via: z5.enum(["id", "label", "token", "embedding"]),
722
+ score: z5.number().min(0).max(1)
723
+ });
724
+ var AskFactSchema = z5.object({
725
+ text: z5.string(),
726
+ provenance: ProvenanceSchema.optional(),
727
+ confidence: z5.number().min(0).max(1).optional()
728
+ });
729
+ var AskSectionSchema = z5.object({
730
+ heading: z5.string(),
731
+ facts: z5.array(AskFactSchema)
732
+ });
733
+ var AskResultSchema = z5.object({
734
+ question: z5.string(),
735
+ // The traversal the router chose from the question's intent keywords.
736
+ intent: AskIntentSchema,
737
+ // The entities the question resolved to, best match first.
738
+ matched: z5.array(AskMatchSchema),
739
+ // The node the answer is anchored on — matched[0]'s id, absent when nothing
740
+ // in the question resolved to a node.
741
+ primaryNode: z5.string().optional(),
742
+ // Whether the answer is anchored on one node or spans the whole graph.
743
+ // `'node'` when an entity resolved; `'global'` when the question was
744
+ // inherently graph-wide (overview / divergences / incidents) and answered
745
+ // across the whole graph with no entity named. Absent when nothing resolved
746
+ // and the intent needs a subject (dependencies / blast-radius / root-cause /
747
+ // observed) — those return naming guidance, not a graph-wide answer.
748
+ scope: z5.enum(["global", "node"]).optional(),
749
+ // The composed, provenance-tagged context, section by section.
750
+ sections: z5.array(AskSectionSchema),
751
+ // The compact, answer-shaped summary the agent reads first — not a raw graph
752
+ // dump, so the graph reads as lower-friction than grep.
753
+ answer: z5.string(),
754
+ // Headline confidence of the leading section, when it has one.
755
+ confidence: z5.number().min(0).max(1).optional(),
756
+ // The distinct provenances across every fact in the answer, so the footer can
757
+ // tell the agent how much of this is OBSERVED vs EXTRACTED.
758
+ provenance: z5.array(ProvenanceSchema)
759
+ });
709
760
 
710
761
  // src/identity.ts
711
762
  var SERVICE_PREFIX = "service:";
@@ -1202,6 +1253,9 @@ var MCP_TOOL_NAMES = [
1202
1253
  // Two-way RCA navigation (ADR-189): step the graph and confirm a link.
1203
1254
  "expand",
1204
1255
  "relate",
1256
+ // Plain-language door over the fused graph (ADR-198): resolve a question to
1257
+ // nodes, route to the right traversal, answer with provenance-tagged context.
1258
+ "ask",
1205
1259
  // Six /neat extend tools (ADR-081, ADR-086, #387).
1206
1260
  "neat_list_uninstrumented",
1207
1261
  "neat_lookup_instrumentation",
@@ -1388,6 +1442,11 @@ function passesExtractedFloor(confidence) {
1388
1442
  export {
1389
1443
  ApplicablePoliciesResponseSchema,
1390
1444
  ApplicablePolicySchema,
1445
+ AskFactSchema,
1446
+ AskIntentSchema,
1447
+ AskMatchSchema,
1448
+ AskResultSchema,
1449
+ AskSectionSchema,
1391
1450
  BlastRadiusAffectedNodeSchema,
1392
1451
  BlastRadiusResultSchema,
1393
1452
  BlastRadiusRuleSchema,