@msm-core/mini 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 (45) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +53 -0
  3. package/dist/adapters/redis-memory.d.ts +3 -0
  4. package/dist/adapters/redis-memory.d.ts.map +1 -1
  5. package/dist/adapters/redis-memory.js +6 -0
  6. package/dist/adapters/redis-memory.js.map +1 -1
  7. package/dist/adapters/redis-types.d.ts +2 -0
  8. package/dist/adapters/redis-types.d.ts.map +1 -1
  9. package/dist/brain/anthropic.d.ts.map +1 -1
  10. package/dist/brain/anthropic.js +11 -3
  11. package/dist/brain/anthropic.js.map +1 -1
  12. package/dist/brain/gemini.d.ts.map +1 -1
  13. package/dist/brain/gemini.js +10 -2
  14. package/dist/brain/gemini.js.map +1 -1
  15. package/dist/brain/ollama.d.ts.map +1 -1
  16. package/dist/brain/ollama.js +3 -2
  17. package/dist/brain/ollama.js.map +1 -1
  18. package/dist/brain/openai.d.ts.map +1 -1
  19. package/dist/brain/openai.js +2 -1
  20. package/dist/brain/openai.js.map +1 -1
  21. package/dist/brain/retry.d.ts +21 -0
  22. package/dist/brain/retry.d.ts.map +1 -0
  23. package/dist/brain/retry.js +63 -0
  24. package/dist/brain/retry.js.map +1 -0
  25. package/dist/core/loop.d.ts.map +1 -1
  26. package/dist/core/loop.js +98 -36
  27. package/dist/core/loop.js.map +1 -1
  28. package/dist/core/types.d.ts +8 -4
  29. package/dist/core/types.d.ts.map +1 -1
  30. package/dist/definition/parser.d.ts.map +1 -1
  31. package/dist/definition/parser.js +5 -2
  32. package/dist/definition/parser.js.map +1 -1
  33. package/dist/server.d.ts +24 -1
  34. package/dist/server.d.ts.map +1 -1
  35. package/dist/server.js +90 -25
  36. package/dist/server.js.map +1 -1
  37. package/dist/tools/dedup.d.ts +7 -2
  38. package/dist/tools/dedup.d.ts.map +1 -1
  39. package/dist/tools/dedup.js +9 -9
  40. package/dist/tools/dedup.js.map +1 -1
  41. package/dist/tools/executor.d.ts +4 -2
  42. package/dist/tools/executor.d.ts.map +1 -1
  43. package/dist/tools/executor.js +47 -13
  44. package/dist/tools/executor.js.map +1 -1
  45. package/package.json +3 -3
package/dist/core/loop.js CHANGED
@@ -47,15 +47,76 @@ export function createAgent(config) {
47
47
  }
48
48
  return _redis;
49
49
  }
50
+ /**
51
+ * Run the optional output gate on a terminal response. Used by EVERY exit
52
+ * path that delivers model text (normal respond, force-finalize, guard
53
+ * force_respond/escalate) — guard-terminated text is exactly where a model
54
+ * under budget pressure is most likely to emit something the gate should
55
+ * catch. A throwing validator must never drop a valid response: fails safe
56
+ * to "review".
57
+ */
58
+ async function applyOutputGate(text) {
59
+ if (!config.validator || !text)
60
+ return { finalText: text };
61
+ let validation;
62
+ try {
63
+ validation = await config.validator.validate(text);
64
+ }
65
+ catch {
66
+ validation = {
67
+ passed: false,
68
+ score: 0,
69
+ violations: ["validator_error"],
70
+ action: "review",
71
+ strategy: "error",
72
+ latency_ms: 0,
73
+ };
74
+ }
75
+ const finalText = validation.action === "block"
76
+ ? "I'm not able to share that response. Could you rephrase your request?"
77
+ : text;
78
+ return { finalText, validation };
79
+ }
80
+ /** Tenant-scoped Redis prefix: {base}:{companyId}:{agentType} when present. */
81
+ function tenantPrefixFor(event) {
82
+ return event.tenantContext
83
+ ? `${prefix}:${event.tenantContext.companyId}:${event.tenantContext.agentType}`
84
+ : prefix;
85
+ }
86
+ /**
87
+ * Public entry point — runs the loop, then persists final run metadata
88
+ * (status / iterations / cost) for ops dashboards. Metadata is best-effort:
89
+ * it never blocks or fails the response.
90
+ */
50
91
  async function handle(event) {
92
+ const outcome = await handleCore(event);
93
+ try {
94
+ const redis = await getRedis();
95
+ const memory = new RedisMemory(redis, {
96
+ prefix: tenantPrefixFor(event),
97
+ ...(ttl.history !== undefined ? { historyTtl: ttl.history } : {}),
98
+ });
99
+ await memory.setMetadata(event.sessionId, {
100
+ iterationCount: outcome.metrics.iterations,
101
+ startedAt: Date.now() - outcome.metrics.durationMs,
102
+ totalCostUsd: outcome.metrics.totalCostUsd,
103
+ status: outcome.type === "error"
104
+ ? outcome.terminatedBy === "task_killed"
105
+ ? "killed"
106
+ : "failed"
107
+ : "completed",
108
+ });
109
+ }
110
+ catch {
111
+ // best-effort — a metadata write failure must not affect the response
112
+ }
113
+ return outcome;
114
+ }
115
+ async function handleCore(event) {
51
116
  const sessionId = event.sessionId;
52
117
  const taskId = makeTaskId();
53
118
  const started = Date.now();
54
- // Scope all Redis keys to the tenant when a TenantContext is present.
55
- // Format: {base}:{companyId}:{agentType}:session:{sessionId}:...
56
- const tenantPrefix = event.tenantContext
57
- ? `${prefix}:${event.tenantContext.companyId}:${event.tenantContext.agentType}`
58
- : prefix;
119
+ const tenantPrefix = tenantPrefixFor(event);
59
120
  // Per-event guard overrides (e.g. per-company cost caps from config_json).
60
121
  const effectiveGuards = event.guardsOverride
61
122
  ? resolveGuards({ ...guards, ...event.guardsOverride })
@@ -73,7 +134,10 @@ export function createAgent(config) {
73
134
  if (gated)
74
135
  return gated;
75
136
  // ── Distributed lock ─────────────────────────────────────
76
- const lockHandle = await lock.acquireWithRetry(sessionId, guards.timeoutMs + 30_000);
137
+ // TTL must cover the EFFECTIVE timeout (incl. per-request overrides)
138
+ // otherwise an override raising timeoutMs lets the lock expire mid-run
139
+ // and a second worker can enter the same session concurrently.
140
+ const lockHandle = await lock.acquireWithRetry(sessionId, effectiveGuards.timeoutMs + 30_000);
77
141
  const state = {
78
142
  sessionId,
79
143
  taskId,
@@ -140,16 +204,23 @@ export function createAgent(config) {
140
204
  if (process.env["MINI_DEBUG"])
141
205
  console.error(`[mini] finalize fired; forced.len=${forced.length} orch=${finalPayload.orchestration?.action}`);
142
206
  if (forced) {
207
+ const gated = await applyOutputGate(forced);
208
+ await memory.appendHistory(sessionId, {
209
+ role: "user",
210
+ content: event.message,
211
+ timestamp: started,
212
+ });
143
213
  await memory.appendHistory(sessionId, {
144
214
  role: "assistant",
145
- content: forced,
215
+ content: gated.finalText,
146
216
  timestamp: Date.now(),
147
217
  });
148
218
  await lockHandle.release();
149
- return makeOutcome("response", sessionId, taskId, state, started, {
150
- text: forced,
219
+ return makeOutcome(gated.validation?.action === "block" ? "suppressed" : "response", sessionId, taskId, state, started, {
220
+ text: gated.finalText,
151
221
  terminatedBy: hardSignal.type,
152
222
  toolCalls: toolResults,
223
+ ...(gated.validation ? { validation: gated.validation } : {}),
153
224
  });
154
225
  }
155
226
  }
@@ -161,17 +232,30 @@ export function createAgent(config) {
161
232
  const lastText = state.lastPayload?.generation?.response_text ??
162
233
  state.lastPayload?.final_output?.text ??
163
234
  "I was unable to complete this request within the allowed limits. Please try a more specific question.";
164
- const outcomeType = ha === "escalate" ? "escalate" : "response";
235
+ const gatedLast = await applyOutputGate(lastText);
236
+ const outcomeType = gatedLast.validation?.action === "block"
237
+ ? "suppressed"
238
+ : ha === "escalate"
239
+ ? "escalate"
240
+ : "response";
241
+ // Record BOTH sides of the turn — assistant-only history leaves
242
+ // orphaned turns that misalign the conversation on the next call.
243
+ await memory.appendHistory(sessionId, {
244
+ role: "user",
245
+ content: event.message,
246
+ timestamp: started,
247
+ });
165
248
  await memory.appendHistory(sessionId, {
166
249
  role: "assistant",
167
- content: lastText,
250
+ content: gatedLast.finalText,
168
251
  timestamp: Date.now(),
169
252
  });
170
253
  await lockHandle.release();
171
254
  return makeOutcome(outcomeType, sessionId, taskId, state, started, {
172
- text: lastText,
255
+ text: gatedLast.finalText,
173
256
  terminatedBy: hardSignal.type,
174
257
  toolCalls: toolResults,
258
+ ...(gatedLast.validation ? { validation: gatedLast.validation } : {}),
175
259
  });
176
260
  }
177
261
  // ── Context build ─────────────────────────────────────
@@ -265,30 +349,8 @@ export function createAgent(config) {
265
349
  fireSectionComplete(config.hooks, sessionId, currentSection, idx, documentState.sections.length);
266
350
  }
267
351
  }
268
- // ── Optional output gate ─────────────────────────────
269
- // Runs only when a validator is configured. A throwing validator must
270
- // never drop a valid response, so it fails safe to "review".
271
- let finalText = text;
272
- let validation;
273
- if (config.validator && text) {
274
- try {
275
- validation = await config.validator.validate(text);
276
- }
277
- catch {
278
- validation = {
279
- passed: false,
280
- score: 0,
281
- violations: ["validator_error"],
282
- action: "review",
283
- strategy: "error",
284
- latency_ms: 0,
285
- };
286
- }
287
- if (validation.action === "block") {
288
- finalText =
289
- "I'm not able to share that response. Could you rephrase your request?";
290
- }
291
- }
352
+ // ── Optional output gate (shared with all guard exits) ─
353
+ const { finalText, validation } = await applyOutputGate(text);
292
354
  // Record to history (the delivered text, post-gate)
293
355
  await memory.appendHistory(sessionId, {
294
356
  role: "user",
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/core/loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/core/loop.ts"],"names":[],"mappings":"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"}
@@ -354,16 +354,20 @@ export interface AgentHooks {
354
354
  onGuard?: (info: GuardFiredInfo) => void;
355
355
  onFatalError?: (error: Error, sessionId: string) => void;
356
356
  /**
357
- * Called before every tool execution (after dedup check, before execute).
358
- * Return "proceed" to execute normally, "skip" to skip silently, or
359
- * { substituteResult } to inject a result without calling tool.execute().
357
+ * Called before every tool execution (BEFORE the dedup check, so cached
358
+ * results can never bypass the gate). Return "proceed" to execute normally,
359
+ * "skip" to skip silently, or { substituteResult } to inject a result
360
+ * without calling tool.execute().
360
361
  *
361
362
  * Use case: mid-conversation approval gate (Approval v2). The hook can
362
363
  * park execution and return a "pending_approval" substitute result that
363
364
  * the agent reports to the user. On the next run, when the approval is
364
365
  * resolved, the hook returns "proceed".
365
366
  *
366
- * Errors thrown by this hook are caught and treated as "proceed" (safe default).
367
+ * Failure semantics: a throwing hook is treated as "proceed" for ordinary
368
+ * tools, but FAILS CLOSED (execution blocked) for tools marked
369
+ * requiresApproval. Tools with requiresApproval and NO hook configured are
370
+ * always blocked — requiresApproval is a contract, not decoration.
367
371
  */
368
372
  onBeforeTool?: (toolName: string, params: Record<string, unknown>, meta: ToolMeta) => Promise<BeforeToolHookResult>;
369
373
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/definition/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAM9D"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/definition/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAU9D"}
@@ -9,8 +9,11 @@ import { readFileSync } from "fs";
9
9
  * Parse an agent definition from a .md file path or raw markdown string.
10
10
  */
11
11
  export function parseDefinition(input) {
12
- // If it looks like a file path, read it
13
- const md = input.trimStart().startsWith("#")
12
+ // Treat as inline markdown if it starts with a heading OR contains a
13
+ // newline (file paths can't) — a definition whose first line is metadata
14
+ // (e.g. "Domain: legal") previously fell into readFileSync and threw a
15
+ // confusing ENOENT.
16
+ const md = input.trimStart().startsWith("#") || input.includes("\n")
14
17
  ? input
15
18
  : readFileSync(input, "utf-8");
16
19
  return parseMd(md);
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/definition/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/definition/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAGlC;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,qEAAqE;IACrE,yEAAyE;IACzE,uEAAuE;IACvE,oBAAoB;IACpB,MAAM,EAAE,GACN,KAAK,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,OAAO,CAAC,EAAU;IACzB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE7B,mBAAmB;IACnB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAEvE,wDAAwD;IACxD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEjC,WAAW;IACX,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAErD,MAAM,WAAW,GACf,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,YAAY,GAChB,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;IAEtD,OAAO;QACL,IAAI;QACJ,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE;YACP,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D;QACD,KAAK,EAAE;YACL,QAAQ,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC1B,KAAK,CAAC,UAAU,CAAC;gBACjB,QAAQ,CAAyC;YACnD,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,aAAa;YACxD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpE;QACD,YAAY;QACZ,MAAM,EAAE;YACN,aAAa,EAAE,MAAM,CACnB,MAAM,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CACzD;YACD,cAAc,EAAE,MAAM,CACpB,MAAM,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAC5D;YACD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC;YACxE,mBAAmB,EAAE,MAAM,CACzB,MAAM,CAAC,qBAAqB,CAAC,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,IAAI,CACvE;YACD,sBAAsB,EAAE,MAAM,CAC5B,MAAM,CAAC,wBAAwB,CAAC;gBAC9B,MAAM,CAAC,wBAAwB,CAAC;gBAChC,CAAC,CACJ;SACF;QACD,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,gEAAgE;AAEhE,SAAS,YAAY,CAAC,KAAe;IACnC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,MAAM;QACjC,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,KAAe,EAAE,WAAmB;IAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CACrC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,WAAW,OAAO,EAAE,GAAG,CAAC,CAAC,CACvD,CAAC;IACF,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM;QAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM;QAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CACnB,KAAe,EACf,WAAmB;IAEnB,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAe;IACxC,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAe,EAAE,WAAmB;IAC5D,OAAO,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SACzC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAe;IACzC,OAAO,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CACjB,GAA2B,EAC3B,GAAW;IAEX,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5C,CAAC"}
package/dist/server.d.ts CHANGED
@@ -8,20 +8,43 @@
8
8
  * The UTS api/server.ts proxies /chat → /v1/event on this server.
9
9
  * All other msm-agent HTTP surface (dashboard etc.) is NOT replicated — keep it slim.
10
10
  *
11
+ * Security posture: this server is designed to sit on localhost behind a
12
+ * trusted gateway. It still hard-validates its inputs: request bodies are
13
+ * size-capped and `guardsOverride` is whitelisted + type-checked so a caller
14
+ * can never disable the loop's safety guards with malformed values.
15
+ *
11
16
  * @example
12
17
  * const agentServer = createAgentServer(agent, { port: PORT + 1 });
13
18
  * await agentServer.start();
14
19
  * // ...
15
20
  * await agentServer.stop();
16
21
  */
17
- import type { Agent } from "./core/types.js";
22
+ import type { Agent, GuardConfig } from "./core/types.js";
18
23
  export interface AgentServerOptions {
19
24
  port: number;
20
25
  host?: string;
26
+ /** Max request body size in bytes (default: 262_144 = 256 KB). */
27
+ maxBodyBytes?: number;
28
+ /**
29
+ * CORS origin for browser callers. Default: undefined (no CORS headers —
30
+ * server-to-server only). Set "*" or a concrete origin to enable.
31
+ */
32
+ corsOrigin?: string;
21
33
  }
22
34
  export interface AgentServer {
23
35
  start(): Promise<void>;
24
36
  stop(): Promise<void>;
25
37
  }
38
+ /**
39
+ * Whitelist + type-check a guards override coming from the network.
40
+ *
41
+ * Without this, a malformed value silently DISABLES guards: resolveGuards
42
+ * merges with `??` (any non-nullish survives), and every guard comparison
43
+ * against a non-number is false — `5 >= "x"` never trips the iteration cap,
44
+ * `"x" > 0` turns the cost cap and timeout off entirely.
45
+ *
46
+ * Only known numeric keys with finite, non-negative values pass through.
47
+ */
48
+ export declare function sanitizeGuardsOverride(raw: unknown): Partial<GuardConfig> | undefined;
26
49
  export declare function createAgentServer(agent: Agent, opts: AgentServerOptions): AgentServer;
27
50
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AA4BD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,kBAAkB,GACvB,WAAW,CA4Gb"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAgCD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,CAoBlC;AAID,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,kBAAkB,GACvB,WAAW,CAoIb"}
package/dist/server.js CHANGED
@@ -8,6 +8,11 @@
8
8
  * The UTS api/server.ts proxies /chat → /v1/event on this server.
9
9
  * All other msm-agent HTTP surface (dashboard etc.) is NOT replicated — keep it slim.
10
10
  *
11
+ * Security posture: this server is designed to sit on localhost behind a
12
+ * trusted gateway. It still hard-validates its inputs: request bodies are
13
+ * size-capped and `guardsOverride` is whitelisted + type-checked so a caller
14
+ * can never disable the loop's safety guards with malformed values.
15
+ *
11
16
  * @example
12
17
  * const agentServer = createAgentServer(agent, { port: PORT + 1 });
13
18
  * await agentServer.start();
@@ -15,10 +20,24 @@
15
20
  * await agentServer.stop();
16
21
  */
17
22
  import { createServer, } from "node:http";
18
- function readBody(req) {
23
+ class BodyTooLargeError extends Error {
24
+ constructor() {
25
+ super("Request body too large");
26
+ }
27
+ }
28
+ function readBody(req, maxBytes) {
19
29
  return new Promise((resolve, reject) => {
20
30
  const chunks = [];
21
- req.on("data", (c) => chunks.push(c));
31
+ let received = 0;
32
+ req.on("data", (c) => {
33
+ received += c.length;
34
+ if (received > maxBytes) {
35
+ req.destroy();
36
+ reject(new BodyTooLargeError());
37
+ return;
38
+ }
39
+ chunks.push(c);
40
+ });
22
41
  req.on("end", () => {
23
42
  try {
24
43
  resolve(JSON.parse(Buffer.concat(chunks).toString("utf8")));
@@ -30,27 +49,66 @@ function readBody(req) {
30
49
  req.on("error", reject);
31
50
  });
32
51
  }
33
- function json(res, status, body) {
34
- const payload = JSON.stringify(body);
35
- res.writeHead(status, {
36
- "Content-Type": "application/json",
37
- "Content-Length": Buffer.byteLength(payload),
38
- });
39
- res.end(payload);
52
+ /**
53
+ * Whitelist + type-check a guards override coming from the network.
54
+ *
55
+ * Without this, a malformed value silently DISABLES guards: resolveGuards
56
+ * merges with `??` (any non-nullish survives), and every guard comparison
57
+ * against a non-number is false — `5 >= "x"` never trips the iteration cap,
58
+ * `"x" > 0` turns the cost cap and timeout off entirely.
59
+ *
60
+ * Only known numeric keys with finite, non-negative values pass through.
61
+ */
62
+ export function sanitizeGuardsOverride(raw) {
63
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
64
+ return undefined;
65
+ }
66
+ const NUMERIC_KEYS = [
67
+ "maxIterations",
68
+ "costCapPerTask",
69
+ "timeoutMs",
70
+ "confidenceThreshold",
71
+ "maxToolCallsPerTask",
72
+ "maxConsecutiveFailures",
73
+ ];
74
+ const out = {};
75
+ for (const key of NUMERIC_KEYS) {
76
+ const v = raw[key];
77
+ if (typeof v === "number" && Number.isFinite(v) && v >= 0) {
78
+ out[key] = v;
79
+ }
80
+ }
81
+ return Object.keys(out).length > 0 ? out : undefined;
40
82
  }
41
83
  const START_TIME = Date.now();
42
84
  export function createAgentServer(agent, opts) {
43
85
  const host = opts.host ?? "127.0.0.1";
44
86
  const port = opts.port;
87
+ const maxBodyBytes = opts.maxBodyBytes ?? 262_144;
88
+ const corsOrigin = opts.corsOrigin;
89
+ function json(res, status, body) {
90
+ const payload = JSON.stringify(body);
91
+ res.writeHead(status, {
92
+ "Content-Type": "application/json",
93
+ "Content-Length": Buffer.byteLength(payload),
94
+ ...(corsOrigin ? { "Access-Control-Allow-Origin": corsOrigin } : {}),
95
+ });
96
+ res.end(payload);
97
+ }
45
98
  const server = createServer(async (req, res) => {
46
99
  const path = (req.url ?? "/").split("?")[0];
47
- // CORS preflight
100
+ // CORS preflight — only when CORS is enabled
48
101
  if (req.method === "OPTIONS") {
49
- res.writeHead(204, {
50
- "Access-Control-Allow-Origin": "*",
51
- "Access-Control-Allow-Methods": "POST, GET, OPTIONS",
52
- "Access-Control-Allow-Headers": "Content-Type, Authorization",
53
- });
102
+ if (corsOrigin) {
103
+ res.writeHead(204, {
104
+ "Access-Control-Allow-Origin": corsOrigin,
105
+ "Access-Control-Allow-Methods": "POST, GET, OPTIONS",
106
+ "Access-Control-Allow-Headers": "Content-Type, Authorization",
107
+ });
108
+ }
109
+ else {
110
+ res.writeHead(405);
111
+ }
54
112
  res.end();
55
113
  return;
56
114
  }
@@ -64,10 +122,15 @@ export function createAgentServer(agent, opts) {
64
122
  if (path === "/v1/event" && req.method === "POST") {
65
123
  let body;
66
124
  try {
67
- body = (await readBody(req));
125
+ body = (await readBody(req, maxBodyBytes));
68
126
  }
69
- catch {
70
- json(res, 400, { error: "Invalid JSON body" });
127
+ catch (err) {
128
+ if (err instanceof BodyTooLargeError) {
129
+ json(res, 413, { error: "Request body too large" });
130
+ }
131
+ else {
132
+ json(res, 400, { error: "Invalid JSON body" });
133
+ }
71
134
  return;
72
135
  }
73
136
  const sessionId = typeof body["sessionId"] === "string" ? body["sessionId"] : "";
@@ -87,12 +150,9 @@ export function createAgentServer(agent, opts) {
87
150
  const agentType = (typeof bodyTenant?.["agentType"] === "string" ? bodyTenant["agentType"] : undefined) ??
88
151
  (typeof req.headers["x-agent-type"] === "string" ? req.headers["x-agent-type"] : undefined);
89
152
  const tenantContext = companyId && agentType ? { companyId, agentType } : undefined;
90
- // Per-tenant guard overrides (cost cap, rate limits) from body.
91
- const guardsOverride = body["guardsOverride"] !== undefined &&
92
- typeof body["guardsOverride"] === "object" &&
93
- body["guardsOverride"] !== null
94
- ? body["guardsOverride"]
95
- : undefined;
153
+ // Per-tenant guard overrides whitelisted + type-checked, so malformed
154
+ // values can't silently disable the loop's safety guards.
155
+ const guardsOverride = sanitizeGuardsOverride(body["guardsOverride"]);
96
156
  const outcome = await agent.handle({
97
157
  sessionId,
98
158
  message: text,
@@ -113,8 +173,13 @@ export function createAgentServer(agent, opts) {
113
173
  });
114
174
  return {
115
175
  start() {
116
- return new Promise((resolve) => {
176
+ return new Promise((resolve, reject) => {
177
+ // Surface listen failures (EADDRINUSE etc.) as a rejected promise
178
+ // instead of an unhandled 'error' event crash.
179
+ const onError = (err) => reject(err);
180
+ server.once("error", onError);
117
181
  server.listen(port, host, () => {
182
+ server.removeListener("error", onError);
118
183
  console.log(`[AgentServer] listening on http://${host}:${port}`);
119
184
  resolve();
120
185
  });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}