@x12i/memorix-scoper 2.0.0 → 2.1.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.
@@ -1,5 +1,7 @@
1
1
  import { createAiDispatcher, AiDispatcherError, } from "@x12i/ai-dispatcher";
2
2
  import { RetrievalPlanSchema, ScoperError, markdownBody, normalizeUpstreamError, } from "@x12i/memorix-scoper-contracts";
3
+ import { asToolArgs, compactToolResult, createFindTools, toolFailure } from "../toolbox.js";
4
+ import { validatePlanAgainstCatalog } from "../validation.js";
3
5
  function extractJsonObject(text) {
4
6
  const trimmed = text.trim();
5
7
  try {
@@ -14,7 +16,7 @@ function extractJsonObject(text) {
14
16
  throw new Error("no JSON object in model response");
15
17
  }
16
18
  }
17
- function buildPrompt(input) {
19
+ function buildPrompt(input, withTools = false) {
18
20
  const catalogIds = input.catalog.entries.map((e) => e.id).join(", ");
19
21
  const example = {
20
22
  planId: "plan-1",
@@ -39,10 +41,13 @@ function buildPrompt(input) {
39
41
  `Objective: ${objective ?? ""}`,
40
42
  "The objective is why this scope exists. Plan only the reads that objective needs.",
41
43
  `Question: ${input.request.question}`,
44
+ `Focus: ${JSON.stringify(input.request.focus ?? {})}`,
42
45
  `Allowed catalog entry ids: ${catalogIds}`,
43
46
  `Budgets (immutable — do not attempt to change): ${JSON.stringify(input.budgets)}`,
44
47
  `Epistemic rules: ${input.profile.epistemicRules.join(" | ")}`,
45
- "Return ONLY a JSON RetrievalPlan. No tools. No markdown.",
48
+ withTools
49
+ ? "Call the read tools until you know which records the objective needs. Do not guess an object type or record id you have not seen. Then return ONLY a JSON RetrievalPlan for the reads you kept. No markdown."
50
+ : "Return ONLY a JSON RetrievalPlan. No tools. No markdown.",
46
51
  "Required fields: planId (string), rationale (string), steps (non-empty array), selections (array, may be []).",
47
52
  "Each step: { id, capability, catalogEntryId, args, required? }. catalogEntryId must be one of the allowed ids.",
48
53
  "Each selection: { stepId, maxItems?, notes? } — stepId must match a step.id. Never put bare strings in selections.",
@@ -72,24 +77,58 @@ function coerceRetrievalPlan(raw) {
72
77
  }
73
78
  return plan;
74
79
  }
80
+ function createDispatcherFrom(options) {
81
+ if (options.dispatcher) {
82
+ if (options.metadataPriority) {
83
+ throw new TypeError("AiDispatcherReasoner: metadataPriority applies only to a dispatcher Scoper creates. Set it on the dispatcher you pass.");
84
+ }
85
+ return options.dispatcher;
86
+ }
87
+ const dispatcherOptions = { ...options.dispatcherOptions };
88
+ if (options.metadataPriority)
89
+ dispatcherOptions.metadataPriority = options.metadataPriority;
90
+ return createAiDispatcher(dispatcherOptions);
91
+ }
92
+ function callFields(call) {
93
+ if (!call)
94
+ return {};
95
+ const fields = {};
96
+ if (call.agentId)
97
+ fields.agentId = call.agentId;
98
+ if (call.orgId)
99
+ fields.orgId = call.orgId;
100
+ if (call.stepId)
101
+ fields.stepId = call.stepId;
102
+ if (call.skillId)
103
+ fields.skillId = call.skillId;
104
+ if (call.role)
105
+ fields.role = { ...call.role };
106
+ if (call.metadata && Object.keys(call.metadata).length)
107
+ fields.metadata = { ...call.metadata };
108
+ return fields;
109
+ }
75
110
  /**
76
111
  * AI reasoner via @x12i/ai-dispatcher (gateway only — OpenRouter / Bedrock / OpenAI).
77
- * Uses run() only — no tools. One repair attempt is owned by the coordinator.
112
+ * `proposePlan` returns JSON with no tools. `locate` may call the read toolbox
113
+ * (catalog, list, query, get). It never receives the scope tool.
114
+ * One repair attempt is owned by the coordinator.
78
115
  */
79
116
  export class AiDispatcherReasoner {
80
117
  dispatcher;
81
118
  model;
82
119
  provider;
83
120
  constructor(options = {}) {
84
- this.dispatcher = options.dispatcher ?? createAiDispatcher(options.dispatcherOptions ?? {});
121
+ this.dispatcher = createDispatcherFrom(options);
85
122
  this.provider = options.provider ?? options.dispatcherOptions?.provider;
86
123
  this.model = options.model?.trim() || "openai/gpt-6-luna";
87
124
  }
88
125
  async proposePlan(input) {
89
126
  try {
90
127
  const response = await this.dispatcher.run({
128
+ ...callFields(input.call),
91
129
  ...(this.provider ? { provider: this.provider } : {}),
92
130
  model: this.model,
131
+ mcp: false,
93
132
  system: [
94
133
  input.profile.systemPrompt,
95
134
  "Scope only to serve the stated objective. Do not plan reads the objective does not need.",
@@ -109,12 +148,70 @@ export class AiDispatcherReasoner {
109
148
  return RetrievalPlanSchema.parse(raw);
110
149
  }
111
150
  catch (err) {
112
- if (err instanceof AiDispatcherError && err.code === "PROVIDER_NOT_IMPLEMENTED") {
113
- throw new ScoperError("PROVIDER_NOT_IMPLEMENTED", err.message, { details: err.details });
151
+ throw normalizeReasonerError(err);
152
+ }
153
+ }
154
+ async locate(input) {
155
+ const items = [];
156
+ const allowed = new Set(input.profile.allowedCapabilities);
157
+ const tools = createFindTools({
158
+ sdk: input.sdk,
159
+ context: input.context,
160
+ request: input.request,
161
+ allowed,
162
+ items,
163
+ });
164
+ try {
165
+ const response = await this.dispatcher.run({
166
+ ...callFields(input.call),
167
+ ...(this.provider ? { provider: this.provider } : {}),
168
+ model: this.model,
169
+ mcp: false,
170
+ execution: { maxToolIterations: 4, maxFunctionToolCalls: 6 },
171
+ functionTools: tools.map((tool) => ({
172
+ name: tool.name,
173
+ description: tool.description,
174
+ parameters: tool.parameters,
175
+ executor: async (args) => {
176
+ try {
177
+ return compactToolResult(await tool.execute(asToolArgs(args)));
178
+ }
179
+ catch (err) {
180
+ return toolFailure(err);
181
+ }
182
+ },
183
+ })),
184
+ system: [
185
+ input.profile.systemPrompt,
186
+ "Scope only to serve the stated objective. Do not read records the objective does not need.",
187
+ "Use the read tools to find those records. scope is not a tool you can call.",
188
+ "After the tools return, reply with JSON only.",
189
+ ]
190
+ .filter(Boolean)
191
+ .join("\n"),
192
+ prompt: buildPrompt(input, true),
193
+ });
194
+ const text = response.text?.trim() ? response.text : "";
195
+ if (!text && !items.length) {
196
+ throw new ScoperError("REASONER_INVALID_PLAN", "AI dispatcher returned empty text", {
197
+ details: { status: response.status, model: response.model },
198
+ });
114
199
  }
115
- if (err instanceof ScoperError)
116
- throw err;
117
- throw normalizeUpstreamError(err);
200
+ if (!text)
201
+ return { plan: auditPlan(input), items };
202
+ try {
203
+ const plan = RetrievalPlanSchema.parse(coerceRetrievalPlan(extractJsonObject(text)));
204
+ validatePlanAgainstCatalog(plan, input.catalog.entries, input.profile);
205
+ return { plan, items };
206
+ }
207
+ catch (err) {
208
+ if (!items.length)
209
+ throw err;
210
+ return { plan: auditPlan(input), items };
211
+ }
212
+ }
213
+ catch (err) {
214
+ throw normalizeReasonerError(err);
118
215
  }
119
216
  }
120
217
  async synthesize(input) {
@@ -124,8 +221,10 @@ export class AiDispatcherReasoner {
124
221
  }
125
222
  try {
126
223
  const response = await this.dispatcher.run({
224
+ ...callFields(input.call),
127
225
  ...(this.provider ? { provider: this.provider } : {}),
128
226
  model: this.model,
227
+ mcp: false,
129
228
  system: [
130
229
  input.profile.systemPrompt,
131
230
  "You synthesize retrieved Memorix evidence for one objective.",
@@ -155,6 +254,34 @@ export class AiDispatcherReasoner {
155
254
  }
156
255
  }
157
256
  }
257
+ function normalizeReasonerError(err) {
258
+ if (err instanceof AiDispatcherError && err.code === "PROVIDER_NOT_IMPLEMENTED") {
259
+ throw new ScoperError("PROVIDER_NOT_IMPLEMENTED", err.message, { details: err.details });
260
+ }
261
+ if (err instanceof ScoperError)
262
+ throw err;
263
+ throw normalizeUpstreamError(err);
264
+ }
265
+ function auditPlan(input) {
266
+ const entry = input.catalog.entries.find((candidate) => input.profile.allowedCapabilities.includes(candidate.capability));
267
+ if (!entry) {
268
+ throw new ScoperError("CATALOG_REJECTED", "profile allows no catalog entries");
269
+ }
270
+ return RetrievalPlanSchema.parse({
271
+ planId: "located",
272
+ rationale: "Reads already gathered by the toolbox.",
273
+ steps: [
274
+ {
275
+ id: "located",
276
+ capability: entry.capability,
277
+ catalogEntryId: entry.id,
278
+ args: {},
279
+ required: false,
280
+ },
281
+ ],
282
+ selections: [],
283
+ });
284
+ }
158
285
  function evidenceText(item) {
159
286
  const payload = item.payload;
160
287
  if (typeof payload === "string")
@@ -1 +1 @@
1
- {"version":3,"file":"ai-dispatcher.js","sourceRoot":"","sources":["../../src/reasoner/ai-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAIlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,sBAAsB,GAGvB,MAAM,gCAAgC,CAAC;AAGxC,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAoB;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,qDAAqD;QAChE,KAAK,EAAE;YACL;gBACE,EAAE,EAAE,IAAI;gBACR,UAAU,EAAE,kBAAkB;gBAC9B,cAAc,EAAE,kBAAkB;gBAClC,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,IAAI;aACf;SACF;QACD,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;KAC7C,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ;QAC3B,CAAC,CAAC,gCAAgC,KAAK,CAAC,QAAQ,CAAC,KAAK,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,oEAAoE;QACzL,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IAClD,OAAO;QACL,YAAY,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;QAC9B,cAAc,SAAS,IAAI,EAAE,EAAE;QAC/B,mFAAmF;QACnF,aAAa,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;QACrC,8BAA8B,UAAU,EAAE;QAC1C,mDAAmD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QAClF,oBAAoB,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC9D,0DAA0D;QAC1D,+GAA+G;QAC/G,gHAAgH;QAChH,oHAAoH;QACpH,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACrC,MAAM;KACP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,gEAAgE;AAChE,SAAS,mBAAmB,CAAC,GAAY;IACvC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACtE,MAAM,IAAI,GAAG,EAAE,GAAI,GAA+B,EAAE,CAAC;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5C,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;YACpD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC;YACtE,MAAM,CAAC,GAAG,EAAE,GAAI,GAA+B,EAAE,CAAC;YAClD,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;gBAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9E,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAUD;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACd,UAAU,CAAe;IACzB,KAAK,CAAS;IACd,QAAQ,CAA2B;IAEpD,YAAY,UAAuC,EAAE;QACnD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC;QACxE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,mBAAmB,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAoB;QACpC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBACzC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE;oBACN,KAAK,CAAC,OAAO,CAAC,YAAY;oBAC1B,0FAA0F;oBAC1F,6BAA6B;iBAC9B;qBACE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;aAC3B,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,WAAW,CAAC,uBAAuB,EAAE,mCAAmC,EAAE;oBAClF,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE;iBAC5D,CAAC,CAAC;YACL,CAAC;YACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,OAAO,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,iBAAiB,IAAI,GAAG,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;gBAChF,MAAM,IAAI,WAAW,CAAC,0BAA0B,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,GAAG,YAAY,WAAW;gBAAE,MAAM,GAAG,CAAC;YAC1C,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAqB;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,WAAW,CACnB,iBAAiB,EACjB,uFAAuF,CACxF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBACzC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE;oBACN,KAAK,CAAC,OAAO,CAAC,YAAY;oBAC1B,8DAA8D;oBAC9D,uHAAuH;oBACvH,sEAAsE;oBACtE,yEAAyE;oBACzE,4CAA4C;iBAC7C;qBACE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE;oBACN,cAAc,SAAS,EAAE;oBACzB,aAAa,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;oBACrC,WAAW;oBACX,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC7B,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,iBAAiB,IAAI,GAAG,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;gBAChF,MAAM,IAAI,WAAW,CAAC,0BAA0B,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,GAAG,YAAY,WAAW;gBAAE,MAAM,GAAG,CAAC;YAC1C,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF;AAED,SAAS,YAAY,CAAC,IAAkB;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC;IAC3F,MAAM,MAAM,GAAG,OAAkC,CAAC;IAClD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9F,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,SAAS,eAAe,CAAC,KAAqB,EAAE,QAAQ,GAAG,MAAM;IAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;SAC1C,CAAC,CAAC;QACH,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjC,MAAM;QACR,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,wBAAwB,CACtC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,kBAAkB,IAAI,YAAY,CAAiB,CAAC;IAC1E,MAAM,OAAO,GAAwB,EAAE,QAAQ,EAAE,CAAC;IAClD,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC3B,OAAO,CAAC,UAAU,GAAG;YACnB,MAAM,EAAE,GAAG,CAAC,kBAAkB;YAC9B,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,QAAQ,KAAK,YAAY;gBAClD,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,eAAe,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACzC,OAAO,CAAC,OAAO,GAAG;YAChB,MAAM,EAAE,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,UAAW;YAC7C,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,QAAQ,KAAK,SAAS;gBAC/C,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,eAAe,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,GAAG;YACf,MAAM,EAAE,GAAG,CAAC,cAAc;YAC1B,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,QAAQ,KAAK,QAAQ;gBAC9C,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,eAAe,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"ai-dispatcher.js","sourceRoot":"","sources":["../../src/reasoner/ai-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type { ScoperReasoner, ReasonerInput, SynthesisInput } from "./types.js";
1
+ export type { ScoperReasoner, ReasonerInput, SynthesisInput, ModelCallFields } from "./types.js";
2
2
  export { ScriptedReasoner, type ScriptedReasonerOptions } from "./scripted.js";
3
3
  export { AiDispatcherReasoner, dispatcherOptionsFromEnv, type AiDispatcherReasonerOptions } from "./ai-dispatcher.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reasoner/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,KAAK,2BAA2B,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reasoner/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,KAAK,2BAA2B,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,5 +1,12 @@
1
1
  import type { ScopeRequest, TrustedExecutionContext, ScoperProfile, RetrievalPlan, ScoperBudgets, EvidenceItem } from "@x12i/memorix-scoper-contracts";
2
2
  import type { ContextualSdk } from "@x12i/memorix-scoper-sdk";
3
+ import type { AiDispatcherRequest } from "@x12i/ai-dispatcher";
4
+ /**
5
+ * Host fields for every model call one scope makes. The dispatcher stores them in its
6
+ * one provider metadata record (`xtivix.execution`, `recordId`, `stepId`, and so on).
7
+ * A dedicated field wins over the same key inside `metadata`.
8
+ */
9
+ export type ModelCallFields = Pick<AiDispatcherRequest, "agentId" | "orgId" | "stepId" | "skillId" | "role" | "metadata">;
3
10
  export interface ReasonerInput {
4
11
  request: ScopeRequest;
5
12
  context: TrustedExecutionContext;
@@ -10,6 +17,15 @@ export interface ReasonerInput {
10
17
  previousPlan: unknown;
11
18
  error: string;
12
19
  };
20
+ call?: ModelCallFields;
21
+ }
22
+ /** Reads the model already gathered. When `items` is non-empty, scope does not run the plan again. */
23
+ export interface LocatedReads {
24
+ plan: RetrievalPlan;
25
+ items: EvidenceItem[];
26
+ }
27
+ export interface LocateInput extends ReasonerInput {
28
+ sdk: ContextualSdk;
13
29
  }
14
30
  export interface SynthesisInput {
15
31
  request: ScopeRequest;
@@ -17,9 +33,15 @@ export interface SynthesisInput {
17
33
  profile: ScoperProfile;
18
34
  budgets: ScoperBudgets;
19
35
  items: EvidenceItem[];
36
+ call?: ModelCallFields;
20
37
  }
21
38
  export interface ScoperReasoner {
22
39
  proposePlan(input: ReasonerInput): Promise<RetrievalPlan>;
40
+ /**
41
+ * Look up records with the read toolbox, then return a plan.
42
+ * Must not call scope. When `items` is non-empty those reads are the evidence.
43
+ */
44
+ locate?(input: LocateInput): Promise<LocatedReads>;
23
45
  /** Write the answer for `request.objective` from retrieved evidence. AI reasoners only. */
24
46
  synthesize?(input: SynthesisInput): Promise<string>;
25
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/reasoner/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACb,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,uBAAuB,CAAC;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,uBAAuB,CAAC;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1D,2FAA2F;IAC3F,UAAU,CAAC,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACrD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/reasoner/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACb,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,mBAAmB,EACnB,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CACjE,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,uBAAuB,CAAC;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED,sGAAsG;AACtG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,GAAG,EAAE,aAAa,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,uBAAuB,CAAC;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1D;;;OAGG;IACH,MAAM,CAAC,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnD,2FAA2F;IAC3F,UAAU,CAAC,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACrD"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Read toolbox shared by MCP and the synthesize locator.
3
+ * These calls read Memorix. They do not call scope(), so they cannot recurse.
4
+ */
5
+ import { type EvidenceItem, type ScopeRequest, type TrustedExecutionContext } from "@x12i/memorix-scoper-contracts";
6
+ import type { ContextualSdk } from "@x12i/memorix-scoper-sdk";
7
+ export declare const CATALOG_INPUT_SCHEMA: Record<string, unknown>;
8
+ export declare const SUBJECTS_LIST_INPUT_SCHEMA: Record<string, unknown>;
9
+ export declare const SUBJECTS_QUERY_INPUT_SCHEMA: Record<string, unknown>;
10
+ export type FindTool = {
11
+ name: string;
12
+ description: string;
13
+ parameters: Record<string, unknown>;
14
+ execute(args: Record<string, unknown>): Promise<unknown>;
15
+ };
16
+ type ReadOptions = {
17
+ /** Scope-level markdown request. Tool args can still ask on their own. */
18
+ forceMarkdown?: boolean;
19
+ /** Always dropped, merged with a tool's own exclude list. */
20
+ exclude?: string[];
21
+ };
22
+ export declare function readCatalog(sdk: ContextualSdk): Promise<{
23
+ version: string;
24
+ entries: Array<{
25
+ id: string;
26
+ capability: string;
27
+ description: string;
28
+ }>;
29
+ }>;
30
+ export declare function readSubjectsList(sdk: ContextualSdk, context: TrustedExecutionContext, args: Record<string, unknown>, into?: EvidenceItem[], options?: ReadOptions): Promise<unknown>;
31
+ export declare function readSubjectsQuery(sdk: ContextualSdk, context: TrustedExecutionContext, args: Record<string, unknown>, into?: EvidenceItem[], options?: ReadOptions): Promise<unknown>;
32
+ export declare function readSubjectsGet(sdk: ContextualSdk, context: TrustedExecutionContext, args: Record<string, unknown>, into?: EvidenceItem[], options?: ReadOptions): Promise<unknown>;
33
+ /**
34
+ * Read tools for one synthesize pass. Names are catalog, subjects_list, subjects_query, subjects_get.
35
+ * scope is never included.
36
+ */
37
+ export declare function createFindTools(input: {
38
+ sdk: ContextualSdk;
39
+ context: TrustedExecutionContext;
40
+ request: ScopeRequest;
41
+ allowed: ReadonlySet<string>;
42
+ items: EvidenceItem[];
43
+ }): FindTool[];
44
+ export declare function asToolArgs(args: unknown): Record<string, unknown>;
45
+ /** Model-facing text. Full records stay on the evidence items. */
46
+ export declare function compactToolResult(body: unknown, maxChars?: number): string;
47
+ export declare function toolFailure(err: unknown): string;
48
+ export {};
49
+ //# sourceMappingURL=toolbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbox.d.ts","sourceRoot":"","sources":["../src/toolbox.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAML,KAAK,YAAY,EAEjB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAIxD,CAAC;AAcF,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAc9D,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAiB/D,CAAC;AAiBF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAsB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzE,CAAC,CAUD;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,uBAAuB,EAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,CAAC,EAAE,YAAY,EAAE,EACrB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,OAAO,CAAC,CA+BlB;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,uBAAuB,EAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,CAAC,EAAE,YAAY,EAAE,EACrB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,OAAO,CAAC,CA8BlB;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,uBAAuB,EAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,CAAC,EAAE,YAAY,EAAE,EACrB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,OAAO,CAAC,CAyBlB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,GAAG,EAAE,aAAa,CAAC;IACnB,OAAO,EAAE,uBAAuB,CAAC;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB,GAAG,QAAQ,EAAE,CA0Cb;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKjE;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,SAAQ,GAAG,MAAM,CAIzE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAOhD"}