@framers/agentos 0.13.2 → 0.13.4
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/api/AgentOS.d.ts +29 -0
- package/dist/api/AgentOS.d.ts.map +1 -1
- package/dist/api/AgentOS.js +137 -10
- package/dist/api/AgentOS.js.map +1 -1
- package/dist/api/runtime/AgentOSOrchestrator.d.ts +7 -0
- package/dist/api/runtime/AgentOSOrchestrator.d.ts.map +1 -1
- package/dist/api/runtime/AgentOSOrchestrator.js +7 -0
- package/dist/api/runtime/AgentOSOrchestrator.js.map +1 -1
- package/dist/cognition/emergent/EffectsStore.d.ts +6 -1
- package/dist/cognition/emergent/EffectsStore.d.ts.map +1 -1
- package/dist/cognition/emergent/EffectsStore.js.map +1 -1
- package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts +8 -0
- package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts.map +1 -1
- package/dist/cognition/emergent/EmergentCapabilityEngine.js +84 -9
- package/dist/cognition/emergent/EmergentCapabilityEngine.js.map +1 -1
- package/dist/cognition/emergent/EmergentJudge.d.ts.map +1 -1
- package/dist/cognition/emergent/EmergentJudge.js +8 -1
- package/dist/cognition/emergent/EmergentJudge.js.map +1 -1
- package/dist/cognition/emergent/ForgeToolMetaTool.d.ts +2 -1
- package/dist/cognition/emergent/ForgeToolMetaTool.d.ts.map +1 -1
- package/dist/cognition/emergent/ForgeToolMetaTool.js +27 -4
- package/dist/cognition/emergent/ForgeToolMetaTool.js.map +1 -1
- package/dist/cognition/emergent/SandboxedToolForge.d.ts +7 -3
- package/dist/cognition/emergent/SandboxedToolForge.d.ts.map +1 -1
- package/dist/cognition/emergent/SandboxedToolForge.js +21 -8
- package/dist/cognition/emergent/SandboxedToolForge.js.map +1 -1
- package/dist/cognition/emergent/broker/CapabilityBroker.d.ts +56 -18
- package/dist/cognition/emergent/broker/CapabilityBroker.d.ts.map +1 -1
- package/dist/cognition/emergent/broker/CapabilityBroker.js +309 -47
- package/dist/cognition/emergent/broker/CapabilityBroker.js.map +1 -1
- package/dist/cognition/emergent/broker/dry-run.d.ts +39 -0
- package/dist/cognition/emergent/broker/dry-run.d.ts.map +1 -0
- package/dist/cognition/emergent/broker/dry-run.js +88 -0
- package/dist/cognition/emergent/broker/dry-run.js.map +1 -0
- package/dist/cognition/emergent/broker/fetch.d.ts +30 -7
- package/dist/cognition/emergent/broker/fetch.d.ts.map +1 -1
- package/dist/cognition/emergent/broker/fetch.js +69 -9
- package/dist/cognition/emergent/broker/fetch.js.map +1 -1
- package/dist/cognition/emergent/broker/fs-write.d.ts +73 -0
- package/dist/cognition/emergent/broker/fs-write.d.ts.map +1 -0
- package/dist/cognition/emergent/broker/fs-write.js +268 -0
- package/dist/cognition/emergent/broker/fs-write.js.map +1 -0
- package/dist/cognition/emergent/broker/protected.d.ts +19 -0
- package/dist/cognition/emergent/broker/protected.d.ts.map +1 -0
- package/dist/cognition/emergent/broker/protected.js +89 -0
- package/dist/cognition/emergent/broker/protected.js.map +1 -0
- package/dist/cognition/emergent/capabilities.d.ts +2 -0
- package/dist/cognition/emergent/capabilities.d.ts.map +1 -1
- package/dist/cognition/emergent/capabilities.js +12 -2
- package/dist/cognition/emergent/capabilities.js.map +1 -1
- package/dist/cognition/emergent/ceiling.d.ts +38 -3
- package/dist/cognition/emergent/ceiling.d.ts.map +1 -1
- package/dist/cognition/emergent/ceiling.js +119 -2
- package/dist/cognition/emergent/ceiling.js.map +1 -1
- package/dist/cognition/emergent/executor/QuickJSExecutor.d.ts +1 -1
- package/dist/cognition/emergent/executor/QuickJSExecutor.d.ts.map +1 -1
- package/dist/cognition/emergent/executor/QuickJSExecutor.js +73 -22
- package/dist/cognition/emergent/executor/QuickJSExecutor.js.map +1 -1
- package/dist/cognition/emergent/executor/guest-prelude.d.ts.map +1 -1
- package/dist/cognition/emergent/executor/guest-prelude.js +54 -17
- package/dist/cognition/emergent/executor/guest-prelude.js.map +1 -1
- package/dist/cognition/emergent/executor/guest-surface.d.ts.map +1 -1
- package/dist/cognition/emergent/executor/guest-surface.js +28 -5
- package/dist/cognition/emergent/executor/guest-surface.js.map +1 -1
- package/dist/cognition/emergent/persisted-source.d.ts.map +1 -1
- package/dist/cognition/emergent/persisted-source.js +7 -1
- package/dist/cognition/emergent/persisted-source.js.map +1 -1
- package/dist/cognition/emergent/types.d.ts +117 -6
- package/dist/cognition/emergent/types.d.ts.map +1 -1
- package/dist/cognition/emergent/types.js.map +1 -1
- package/dist/cognition/substrate/GMI.d.ts.map +1 -1
- package/dist/cognition/substrate/GMI.js +6 -0
- package/dist/cognition/substrate/GMI.js.map +1 -1
- package/dist/cognition/substrate/personas/IPersonaDefinition.d.ts +6 -0
- package/dist/cognition/substrate/personas/IPersonaDefinition.d.ts.map +1 -1
- package/dist/cognition/substrate/personas/SoulLoader.js.map +1 -1
- package/dist/cognition/substrate/personas/hardLimits.d.ts +16 -0
- package/dist/cognition/substrate/personas/hardLimits.d.ts.map +1 -0
- package/dist/cognition/substrate/personas/hardLimits.js +21 -0
- package/dist/cognition/substrate/personas/hardLimits.js.map +1 -0
- package/dist/core/conversation/ConversationContext.d.ts +8 -0
- package/dist/core/conversation/ConversationContext.d.ts.map +1 -1
- package/dist/core/conversation/ConversationContext.js +17 -0
- package/dist/core/conversation/ConversationContext.js.map +1 -1
- package/dist/core/tools/ITool.d.ts +12 -2
- package/dist/core/tools/ITool.d.ts.map +1 -1
- package/dist/core/utils/errors.d.ts +2 -0
- package/dist/core/utils/errors.d.ts.map +1 -1
- package/dist/core/utils/errors.js +3 -0
- package/dist/core/utils/errors.js.map +1 -1
- package/dist/io/hearing/LiveKitTranscriptionOutput.d.ts +95 -0
- package/dist/io/hearing/LiveKitTranscriptionOutput.d.ts.map +1 -0
- package/dist/io/hearing/LiveKitTranscriptionOutput.js +108 -0
- package/dist/io/hearing/LiveKitTranscriptionOutput.js.map +1 -0
- package/dist/io/hearing/livekit.d.ts +15 -0
- package/dist/io/hearing/livekit.d.ts.map +1 -0
- package/dist/io/hearing/livekit.js +15 -0
- package/dist/io/hearing/livekit.js.map +1 -0
- package/dist/io/voice-pipeline/browser.d.ts +19 -0
- package/dist/io/voice-pipeline/browser.d.ts.map +1 -0
- package/dist/io/voice-pipeline/browser.js +20 -0
- package/dist/io/voice-pipeline/browser.js.map +1 -0
- package/dist/io/voice-pipeline/index.d.ts +1 -0
- package/dist/io/voice-pipeline/index.d.ts.map +1 -1
- package/dist/io/voice-pipeline/index.js +1 -0
- package/dist/io/voice-pipeline/index.js.map +1 -1
- package/dist/io/voice-pipeline/transcriptLedger.d.ts +139 -0
- package/dist/io/voice-pipeline/transcriptLedger.d.ts.map +1 -0
- package/dist/io/voice-pipeline/transcriptLedger.js +192 -0
- package/dist/io/voice-pipeline/transcriptLedger.js.map +1 -0
- package/dist/io/voice-pipeline/types.d.ts +27 -0
- package/dist/io/voice-pipeline/types.d.ts.map +1 -1
- package/dist/safety/guardrails/IGuardrailService.d.ts +11 -0
- package/dist/safety/guardrails/IGuardrailService.d.ts.map +1 -1
- package/dist/safety/guardrails/ParallelGuardrailDispatcher.d.ts.map +1 -1
- package/dist/safety/guardrails/ParallelGuardrailDispatcher.js +206 -80
- package/dist/safety/guardrails/ParallelGuardrailDispatcher.js.map +1 -1
- package/dist/safety/guardrails/builtin/PhraseListGuardrail.d.ts +109 -0
- package/dist/safety/guardrails/builtin/PhraseListGuardrail.d.ts.map +1 -0
- package/dist/safety/guardrails/builtin/PhraseListGuardrail.js +180 -0
- package/dist/safety/guardrails/builtin/PhraseListGuardrail.js.map +1 -0
- package/dist/safety/guardrails/guardrailDispatcher.d.ts +20 -0
- package/dist/safety/guardrails/guardrailDispatcher.d.ts.map +1 -1
- package/dist/safety/guardrails/guardrailDispatcher.js.map +1 -1
- package/dist/safety/guardrails/index.d.ts +3 -1
- package/dist/safety/guardrails/index.d.ts.map +1 -1
- package/dist/safety/guardrails/index.js +4 -0
- package/dist/safety/guardrails/index.js.map +1 -1
- package/dist/safety/guardrails/requiredGuardrails.d.ts +34 -0
- package/dist/safety/guardrails/requiredGuardrails.d.ts.map +1 -0
- package/dist/safety/guardrails/requiredGuardrails.js +68 -0
- package/dist/safety/guardrails/requiredGuardrails.js.map +1 -0
- package/package.json +11 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AgentOSResponseChunkType, } from '../../api/types/AgentOSResponse.js';
|
|
1
|
+
import { AgentOSResponseChunkType, isActionableToolCallRequestChunk, } from '../../api/types/AgentOSResponse.js';
|
|
2
2
|
import { GuardrailAction, } from './IGuardrailService.js';
|
|
3
3
|
import { serializeEvaluation, withGuardrailMetadata, createGuardrailBlockedStream, hasEvaluateOutput, } from './guardrailDispatcher.js';
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
@@ -320,6 +320,103 @@ export class ParallelGuardrailDispatcher {
|
|
|
320
320
|
// also carries the same sources. Track them here so per-chunk
|
|
321
321
|
// evaluateOutput calls see the live state, not just the initial option.
|
|
322
322
|
let currentRagSources = options.ragSources;
|
|
323
|
+
// -- Hold mode: the reply's text deltas wait for the final verdict ----
|
|
324
|
+
// With `holdUntilFinal`, no TEXT_DELTA reaches the caller before the
|
|
325
|
+
// final guards have passed the whole reply: the deltas are buffered and
|
|
326
|
+
// flushed only when the final chunk is allowed (or flagged). A block or a
|
|
327
|
+
// sanitize drops them, since they carry the text the guards refused.
|
|
328
|
+
const hold = options.holdUntilFinal === true;
|
|
329
|
+
let held = [];
|
|
330
|
+
const notify = async (verdict) => {
|
|
331
|
+
if (!options.onVerdict)
|
|
332
|
+
return;
|
|
333
|
+
try {
|
|
334
|
+
await options.onVerdict(verdict);
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
console.warn('[AgentOS][Guardrails] onVerdict threw; the verdict stands.', error);
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
/**
|
|
341
|
+
* The final guards over one final chunk: Phase 1 sanitizers in order,
|
|
342
|
+
* then Phase 2 classifiers in parallel. Returns the first BLOCK, or the
|
|
343
|
+
* chunk as the sanitizers left it with every evaluation attached.
|
|
344
|
+
*/
|
|
345
|
+
const evaluateFinal = async (chunkIn) => {
|
|
346
|
+
const outputEvaluations = [];
|
|
347
|
+
let workingChunk = chunkIn;
|
|
348
|
+
let sanitized = false;
|
|
349
|
+
// Phase 1: sequential final sanitizers
|
|
350
|
+
for (const svc of finalSanitizers) {
|
|
351
|
+
if (!svc.evaluateOutput) {
|
|
352
|
+
continue;
|
|
353
|
+
}
|
|
354
|
+
const timeoutMs = svc.config?.timeoutMs;
|
|
355
|
+
const raw = await callWithTimeout(() => svc.evaluateOutput({ context, chunk: workingChunk, ragSources: currentRagSources }), timeoutMs, svc.config?.failClosed);
|
|
356
|
+
if (!raw) {
|
|
357
|
+
continue;
|
|
358
|
+
}
|
|
359
|
+
const evaluation = stampGuardrailId(raw, svc);
|
|
360
|
+
outputEvaluations.push(evaluation);
|
|
361
|
+
// BLOCK terminates the stream
|
|
362
|
+
if (evaluation.action === GuardrailAction.BLOCK) {
|
|
363
|
+
return { outcome: 'block', evaluation };
|
|
364
|
+
}
|
|
365
|
+
// SANITIZE: modify every text field of the final response, or the textDelta
|
|
366
|
+
if (evaluation.action === GuardrailAction.SANITIZE && evaluation.modifiedText !== undefined) {
|
|
367
|
+
sanitized = true;
|
|
368
|
+
if (workingChunk.type === AgentOSResponseChunkType.FINAL_RESPONSE) {
|
|
369
|
+
workingChunk = {
|
|
370
|
+
...workingChunk,
|
|
371
|
+
finalResponseText: evaluation.modifiedText,
|
|
372
|
+
finalResponseTextPlain: evaluation.modifiedText,
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
workingChunk = {
|
|
377
|
+
...workingChunk,
|
|
378
|
+
textDelta: evaluation.modifiedText,
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
// Phase 2: parallel final classifiers
|
|
384
|
+
if (finalParallel.length > 0) {
|
|
385
|
+
const tasks = finalParallel.map(({ svc, registrationIndex }) => {
|
|
386
|
+
if (!svc.evaluateOutput) {
|
|
387
|
+
return Promise.resolve({ evaluation: null, registrationIndex, svc });
|
|
388
|
+
}
|
|
389
|
+
const timeoutMs = svc.config?.timeoutMs;
|
|
390
|
+
return callWithTimeout(() => svc.evaluateOutput({ context, chunk: workingChunk, ragSources: currentRagSources }), timeoutMs, svc.config?.failClosed).then((evaluation) => ({ evaluation, registrationIndex, svc }));
|
|
391
|
+
});
|
|
392
|
+
const results = await Promise.allSettled(tasks);
|
|
393
|
+
for (const result of results) {
|
|
394
|
+
if (result.status === 'rejected') {
|
|
395
|
+
console.warn('[AgentOS][Guardrails] Phase 2 final evaluateOutput rejected.', result.reason);
|
|
396
|
+
continue;
|
|
397
|
+
}
|
|
398
|
+
const { evaluation: rawEvaluation, registrationIndex, svc } = result.value;
|
|
399
|
+
if (!rawEvaluation) {
|
|
400
|
+
continue;
|
|
401
|
+
}
|
|
402
|
+
// Downgrade SANITIZE → FLAG in Phase 2
|
|
403
|
+
const evaluation = stampGuardrailId(downgradePhase2Sanitize(rawEvaluation, registrationIndex), svc);
|
|
404
|
+
outputEvaluations.push(evaluation);
|
|
405
|
+
// BLOCK terminates the stream
|
|
406
|
+
if (evaluation.action === GuardrailAction.BLOCK) {
|
|
407
|
+
return { outcome: 'block', evaluation };
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
// Attach output evaluation metadata
|
|
412
|
+
if (outputEvaluations.length > 0) {
|
|
413
|
+
workingChunk = withGuardrailMetadata(workingChunk, {
|
|
414
|
+
output: outputEvaluations.map(serializeEvaluation),
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
return { outcome: 'pass', chunk: workingChunk, sanitized, worst: worstAction(outputEvaluations) };
|
|
418
|
+
};
|
|
419
|
+
const finalTextOf = (chunk) => chunk.type === AgentOSResponseChunkType.FINAL_RESPONSE ? (chunk.finalResponseText ?? null) : null;
|
|
323
420
|
// -- Main stream loop ----------------------------------------------
|
|
324
421
|
for await (const chunk of stream) {
|
|
325
422
|
let currentChunk = chunk;
|
|
@@ -354,7 +451,7 @@ export class ParallelGuardrailDispatcher {
|
|
|
354
451
|
let workingChunk = currentChunk;
|
|
355
452
|
// Phase 1: sequential streaming sanitizers
|
|
356
453
|
for (const svc of streamingSanitizers) {
|
|
357
|
-
const svcId = svc.id || 'unknown';
|
|
454
|
+
const svcId = svc.id || svc.id || 'unknown';
|
|
358
455
|
const currentCount = streamingEvaluationCounts.get(svcId) || 0;
|
|
359
456
|
const maxEvals = svc.config?.maxStreamingEvaluations;
|
|
360
457
|
// Skip if this service has hit its rate limit
|
|
@@ -362,15 +459,18 @@ export class ParallelGuardrailDispatcher {
|
|
|
362
459
|
continue;
|
|
363
460
|
}
|
|
364
461
|
const timeoutMs = svc.config?.timeoutMs;
|
|
365
|
-
const
|
|
462
|
+
const raw = await callWithTimeout(() => svc.evaluateOutput({ context, chunk: workingChunk, ragSources: currentRagSources }), timeoutMs, svc.config?.failClosed);
|
|
366
463
|
streamingEvaluationCounts.set(svcId, currentCount + 1);
|
|
367
|
-
if (!
|
|
464
|
+
if (!raw) {
|
|
368
465
|
continue;
|
|
369
466
|
}
|
|
467
|
+
const evaluation = stampGuardrailId(raw, svc);
|
|
370
468
|
outputEvaluations.push(evaluation);
|
|
371
469
|
// BLOCK terminates the stream immediately
|
|
372
470
|
if (evaluation.action === GuardrailAction.BLOCK) {
|
|
373
|
-
|
|
471
|
+
held = [];
|
|
472
|
+
await notify({ streamId: options.streamId, action: GuardrailAction.BLOCK, guardrailId: guardrailIdOf(evaluation), reasonCode: evaluation.reasonCode, finalText: evaluation.replacementText ?? null, originalText: null });
|
|
473
|
+
yield* blockedOutput(context, evaluation, options);
|
|
374
474
|
return;
|
|
375
475
|
}
|
|
376
476
|
// SANITIZE: modify the textDelta for downstream services
|
|
@@ -384,17 +484,17 @@ export class ParallelGuardrailDispatcher {
|
|
|
384
484
|
// Phase 2: parallel streaming classifiers
|
|
385
485
|
if (streamingParallel.length > 0) {
|
|
386
486
|
const tasks = streamingParallel.map(({ svc, registrationIndex }) => {
|
|
387
|
-
const svcId = svc.id || `svc-${registrationIndex}`;
|
|
487
|
+
const svcId = svc.id || svc.id || `svc-${registrationIndex}`;
|
|
388
488
|
const currentCount = streamingEvaluationCounts.get(svcId) || 0;
|
|
389
489
|
const maxEvals = svc.config?.maxStreamingEvaluations;
|
|
390
490
|
// Rate-limited services return null immediately
|
|
391
491
|
if (maxEvals !== undefined && currentCount >= maxEvals) {
|
|
392
|
-
return Promise.resolve({ evaluation: null, registrationIndex, svcId });
|
|
492
|
+
return Promise.resolve({ evaluation: null, registrationIndex, svcId, svc });
|
|
393
493
|
}
|
|
394
494
|
const timeoutMs = svc.config?.timeoutMs;
|
|
395
495
|
return callWithTimeout(() => svc.evaluateOutput({ context, chunk: workingChunk, ragSources: currentRagSources }), timeoutMs, svc.config?.failClosed).then((evaluation) => {
|
|
396
496
|
streamingEvaluationCounts.set(svcId, currentCount + 1);
|
|
397
|
-
return { evaluation, registrationIndex, svcId };
|
|
497
|
+
return { evaluation, registrationIndex, svcId, svc };
|
|
398
498
|
});
|
|
399
499
|
});
|
|
400
500
|
const results = await Promise.allSettled(tasks);
|
|
@@ -403,16 +503,18 @@ export class ParallelGuardrailDispatcher {
|
|
|
403
503
|
console.warn('[AgentOS][Guardrails] Phase 2 streaming evaluateOutput rejected.', result.reason);
|
|
404
504
|
continue;
|
|
405
505
|
}
|
|
406
|
-
const { evaluation: rawEvaluation, registrationIndex } = result.value;
|
|
506
|
+
const { evaluation: rawEvaluation, registrationIndex, svc } = result.value;
|
|
407
507
|
if (!rawEvaluation) {
|
|
408
508
|
continue;
|
|
409
509
|
}
|
|
410
510
|
// Downgrade SANITIZE → FLAG in Phase 2
|
|
411
|
-
const evaluation = downgradePhase2Sanitize(rawEvaluation, registrationIndex);
|
|
511
|
+
const evaluation = stampGuardrailId(downgradePhase2Sanitize(rawEvaluation, registrationIndex), svc);
|
|
412
512
|
outputEvaluations.push(evaluation);
|
|
413
513
|
// BLOCK terminates the stream immediately
|
|
414
514
|
if (evaluation.action === GuardrailAction.BLOCK) {
|
|
415
|
-
|
|
515
|
+
held = [];
|
|
516
|
+
await notify({ streamId: options.streamId, action: GuardrailAction.BLOCK, guardrailId: guardrailIdOf(evaluation), reasonCode: evaluation.reasonCode, finalText: evaluation.replacementText ?? null, originalText: null });
|
|
517
|
+
yield* blockedOutput(context, evaluation, options);
|
|
416
518
|
return;
|
|
417
519
|
}
|
|
418
520
|
}
|
|
@@ -425,85 +527,109 @@ export class ParallelGuardrailDispatcher {
|
|
|
425
527
|
}
|
|
426
528
|
currentChunk = workingChunk;
|
|
427
529
|
}
|
|
530
|
+
// In hold mode a text delta waits for the final verdict.
|
|
531
|
+
if (hold && chunk.type === AgentOSResponseChunkType.TEXT_DELTA && !chunk.isFinal) {
|
|
532
|
+
held.push(currentChunk);
|
|
533
|
+
continue;
|
|
534
|
+
}
|
|
535
|
+
// An actionable tool call ends the turn's text for now: in hold mode the
|
|
536
|
+
// text so far is judged as a final reply before the tool call goes out.
|
|
537
|
+
if (hold && isActionableToolCallRequestChunk(chunk) && held.length > 0) {
|
|
538
|
+
const text = held.map((h) => String(h.textDelta ?? '')).join('');
|
|
539
|
+
const synthetic = {
|
|
540
|
+
type: AgentOSResponseChunkType.FINAL_RESPONSE,
|
|
541
|
+
streamId: chunk.streamId,
|
|
542
|
+
gmiInstanceId: chunk.gmiInstanceId,
|
|
543
|
+
personaId: chunk.personaId,
|
|
544
|
+
isFinal: true,
|
|
545
|
+
timestamp: chunk.timestamp,
|
|
546
|
+
finalResponseText: text,
|
|
547
|
+
finalResponseTextPlain: text,
|
|
548
|
+
};
|
|
549
|
+
const verdict = await evaluateFinal(synthetic);
|
|
550
|
+
if (verdict.outcome === 'block') {
|
|
551
|
+
held = [];
|
|
552
|
+
await notify({ streamId: options.streamId, action: GuardrailAction.BLOCK, guardrailId: guardrailIdOf(verdict.evaluation), reasonCode: verdict.evaluation.reasonCode, finalText: verdict.evaluation.replacementText ?? null, originalText: text });
|
|
553
|
+
yield* blockedOutput(context, verdict.evaluation, options);
|
|
554
|
+
return;
|
|
555
|
+
}
|
|
556
|
+
if (verdict.sanitized) {
|
|
557
|
+
held = [{ ...held[0], textDelta: finalTextOf(verdict.chunk) ?? '' }];
|
|
558
|
+
}
|
|
559
|
+
for (const h of held)
|
|
560
|
+
yield h;
|
|
561
|
+
held = [];
|
|
562
|
+
yield currentChunk;
|
|
563
|
+
continue;
|
|
564
|
+
}
|
|
428
565
|
// ---------------------------------------------------------------
|
|
429
566
|
// isFinal chunks: all guardrails participate
|
|
430
567
|
// ---------------------------------------------------------------
|
|
431
568
|
if (chunk.isFinal &&
|
|
432
569
|
(finalSanitizers.length > 0 || finalParallel.length > 0)) {
|
|
433
|
-
const
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
const timeoutMs = svc.config?.timeoutMs;
|
|
441
|
-
const evaluation = await callWithTimeout(() => svc.evaluateOutput({ context, chunk: workingChunk, ragSources: currentRagSources }), timeoutMs, svc.config?.failClosed);
|
|
442
|
-
if (!evaluation) {
|
|
443
|
-
continue;
|
|
444
|
-
}
|
|
445
|
-
outputEvaluations.push(evaluation);
|
|
446
|
-
// BLOCK terminates the stream
|
|
447
|
-
if (evaluation.action === GuardrailAction.BLOCK) {
|
|
448
|
-
yield* createGuardrailBlockedStream(context, evaluation, options);
|
|
449
|
-
return;
|
|
450
|
-
}
|
|
451
|
-
// SANITIZE: modify finalResponseText or textDelta
|
|
452
|
-
if (evaluation.action === GuardrailAction.SANITIZE &&
|
|
453
|
-
evaluation.modifiedText !== undefined) {
|
|
454
|
-
if (workingChunk.type === AgentOSResponseChunkType.FINAL_RESPONSE) {
|
|
455
|
-
workingChunk = {
|
|
456
|
-
...workingChunk,
|
|
457
|
-
finalResponseText: evaluation.modifiedText,
|
|
458
|
-
};
|
|
459
|
-
}
|
|
460
|
-
else {
|
|
461
|
-
workingChunk = {
|
|
462
|
-
...workingChunk,
|
|
463
|
-
textDelta: evaluation.modifiedText,
|
|
464
|
-
};
|
|
465
|
-
}
|
|
466
|
-
}
|
|
570
|
+
const originalText = finalTextOf(currentChunk);
|
|
571
|
+
const verdict = await evaluateFinal(currentChunk);
|
|
572
|
+
if (verdict.outcome === 'block') {
|
|
573
|
+
held = [];
|
|
574
|
+
await notify({ streamId: options.streamId, action: GuardrailAction.BLOCK, guardrailId: guardrailIdOf(verdict.evaluation), reasonCode: verdict.evaluation.reasonCode, finalText: verdict.evaluation.replacementText ?? null, originalText });
|
|
575
|
+
yield* blockedOutput(context, verdict.evaluation, options);
|
|
576
|
+
return;
|
|
467
577
|
}
|
|
468
|
-
//
|
|
469
|
-
if (
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
if (!rawEvaluation) {
|
|
485
|
-
continue;
|
|
486
|
-
}
|
|
487
|
-
// Downgrade SANITIZE → FLAG in Phase 2
|
|
488
|
-
const evaluation = downgradePhase2Sanitize(rawEvaluation, registrationIndex);
|
|
489
|
-
outputEvaluations.push(evaluation);
|
|
490
|
-
// BLOCK terminates the stream
|
|
491
|
-
if (evaluation.action === GuardrailAction.BLOCK) {
|
|
492
|
-
yield* createGuardrailBlockedStream(context, evaluation, options);
|
|
493
|
-
return;
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
// Attach output evaluation metadata
|
|
498
|
-
if (outputEvaluations.length > 0) {
|
|
499
|
-
workingChunk = withGuardrailMetadata(workingChunk, {
|
|
500
|
-
output: outputEvaluations.map(serializeEvaluation),
|
|
501
|
-
});
|
|
578
|
+
// the deltas carry the text a sanitizer changed: only the final chunk's text stands
|
|
579
|
+
if (verdict.sanitized)
|
|
580
|
+
held = [];
|
|
581
|
+
await notify({
|
|
582
|
+
streamId: options.streamId,
|
|
583
|
+
action: verdict.sanitized ? GuardrailAction.SANITIZE : verdict.worst,
|
|
584
|
+
finalText: finalTextOf(verdict.chunk),
|
|
585
|
+
originalText,
|
|
586
|
+
});
|
|
587
|
+
currentChunk = verdict.chunk;
|
|
588
|
+
}
|
|
589
|
+
if (chunk.isFinal && held.length > 0) {
|
|
590
|
+
// held text is sent only beside the final response the guards judged; a turn that ended in an error drops it unjudged
|
|
591
|
+
if (currentChunk.type === AgentOSResponseChunkType.FINAL_RESPONSE) {
|
|
592
|
+
for (const h of held)
|
|
593
|
+
yield h;
|
|
502
594
|
}
|
|
503
|
-
|
|
595
|
+
held = [];
|
|
504
596
|
}
|
|
505
597
|
yield currentChunk;
|
|
506
598
|
}
|
|
599
|
+
// A stream that ended without a final chunk leaves its held text unjudged; it is dropped, never sent.
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
/** The id of the guard that produced an evaluation, when it had one. */
|
|
603
|
+
function guardrailIdOf(evaluation) {
|
|
604
|
+
const id = evaluation.metadata?.guardrailId;
|
|
605
|
+
return typeof id === 'string' ? id : undefined;
|
|
606
|
+
}
|
|
607
|
+
/** The evaluation with its guard's id in `metadata.guardrailId`, when the guard has an id. */
|
|
608
|
+
function stampGuardrailId(evaluation, svc) {
|
|
609
|
+
if (!svc.id)
|
|
610
|
+
return evaluation;
|
|
611
|
+
return { ...evaluation, metadata: { ...(evaluation.metadata ?? {}), guardrailId: svc.id } };
|
|
612
|
+
}
|
|
613
|
+
/**
|
|
614
|
+
* What the caller receives in place of a blocked reply: the guard's fixed reply as a final response that records the
|
|
615
|
+
* block, when the guard gave one; otherwise the error chunk.
|
|
616
|
+
*/
|
|
617
|
+
async function* blockedOutput(context, evaluation, options) {
|
|
618
|
+
if (typeof evaluation.replacementText === 'string' && evaluation.replacementText.length > 0) {
|
|
619
|
+
const replacement = {
|
|
620
|
+
type: AgentOSResponseChunkType.FINAL_RESPONSE,
|
|
621
|
+
streamId: options.streamId,
|
|
622
|
+
gmiInstanceId: 'guardrail',
|
|
623
|
+
personaId: options.personaId ?? context.personaId ?? 'unknown_persona',
|
|
624
|
+
isFinal: true,
|
|
625
|
+
timestamp: new Date().toISOString(),
|
|
626
|
+
finalResponseText: evaluation.replacementText,
|
|
627
|
+
finalResponseTextPlain: evaluation.replacementText,
|
|
628
|
+
metadata: { guardrail: { output: [serializeEvaluation(evaluation)] } },
|
|
629
|
+
};
|
|
630
|
+
yield replacement;
|
|
631
|
+
return;
|
|
507
632
|
}
|
|
633
|
+
yield* createGuardrailBlockedStream(context, evaluation, options);
|
|
508
634
|
}
|
|
509
635
|
//# sourceMappingURL=ParallelGuardrailDispatcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParallelGuardrailDispatcher.js","sourceRoot":"","sources":["../../../src/safety/guardrails/ParallelGuardrailDispatcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ParallelGuardrailDispatcher.js","sourceRoot":"","sources":["../../../src/safety/guardrails/ParallelGuardrailDispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module guardrails/builtin/PhraseListGuardrail
|
|
3
|
+
*
|
|
4
|
+
* A guard over a reviewed list of phrases. Each entry blocks on a match, or asks a judge whether the match, read in
|
|
5
|
+
* its context, crosses the rule. A blocked reply can be answered with a fixed replacement per rule, so a product's
|
|
6
|
+
* safety templates reach the person in place of the model's words.
|
|
7
|
+
*
|
|
8
|
+
* The text is normalised before matching (NFKC, case folded, zero-width characters and combining marks removed,
|
|
9
|
+
* common Cyrillic and Greek look-alikes mapped to Latin letters, curly quotes straightened, whitespace collapsed), so
|
|
10
|
+
* a phrase cannot slip past by a lookalike letter or an invisible joiner.
|
|
11
|
+
*
|
|
12
|
+
* The guard fails closed: a judge that throws, answers nothing usable, or answers with too little confidence blocks.
|
|
13
|
+
*/
|
|
14
|
+
import type { ExtensionPack } from '../../../extensions/manifest';
|
|
15
|
+
import type { FallbackProviderEntry } from '../../../api/generateText';
|
|
16
|
+
import { type JudgeLlmConfig } from '../../../core/llm/providers/judge-config';
|
|
17
|
+
import { type GuardrailConfig, type GuardrailContext, type GuardrailEvaluationResult, type GuardrailInputPayload, type GuardrailOutputPayload, type IGuardrailService } from '../IGuardrailService';
|
|
18
|
+
export interface PhraseEntry {
|
|
19
|
+
phrase: string;
|
|
20
|
+
/**
|
|
21
|
+
* `word`: the phrase between word boundaries; `substring`: anywhere; `regex`: the phrase is a regular expression.
|
|
22
|
+
* Every entry runs over the normalised text (lower case, marks and zero-width characters removed, look-alike
|
|
23
|
+
* letters mapped to Latin, quotes straightened): a word or substring phrase is normalised the same way before it is
|
|
24
|
+
* compiled, while a regex source is compiled as written, so write a regex in that normalised form.
|
|
25
|
+
*/
|
|
26
|
+
match: 'word' | 'substring' | 'regex';
|
|
27
|
+
/** `block`: a match blocks; `judge`: the judge decides whether the match, in context, crosses the rule. */
|
|
28
|
+
onMatch: 'block' | 'judge';
|
|
29
|
+
/** The rule the entry belongs to: the block's `reasonCode` and the key of its replacement. */
|
|
30
|
+
ruleId?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface PhraseListSnapshot {
|
|
33
|
+
version: string;
|
|
34
|
+
reviewedAt: string;
|
|
35
|
+
reviewedBy: string;
|
|
36
|
+
entries: PhraseEntry[];
|
|
37
|
+
}
|
|
38
|
+
export interface PhraseListSource {
|
|
39
|
+
load(): Promise<PhraseListSnapshot>;
|
|
40
|
+
}
|
|
41
|
+
export interface PhraseJudgeVerdict {
|
|
42
|
+
block: boolean;
|
|
43
|
+
confidence: number;
|
|
44
|
+
reason?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface PhraseJudge {
|
|
47
|
+
judge(text: string, matched: readonly PhraseEntry[], context: GuardrailContext): Promise<PhraseJudgeVerdict>;
|
|
48
|
+
}
|
|
49
|
+
export interface PhraseListGuardrailOptions {
|
|
50
|
+
id: string;
|
|
51
|
+
source: PhraseListSource;
|
|
52
|
+
/** Required when any entry is `judge`. */
|
|
53
|
+
judge?: PhraseJudge;
|
|
54
|
+
/** A judge's block counts only at or above this confidence; a lower one blocks all the same (fail closed). Default 0.7. */
|
|
55
|
+
judgeThreshold?: number;
|
|
56
|
+
/** The stages the guard evaluates. Default both. */
|
|
57
|
+
stages?: Array<'input' | 'output'>;
|
|
58
|
+
/** The reply a block is answered with when no rule's own replacement applies. */
|
|
59
|
+
replacementText?: string;
|
|
60
|
+
/** The reply for a rule's block. */
|
|
61
|
+
replacementFor?(ruleId: string): string | undefined;
|
|
62
|
+
/** The deadline for one evaluation, judge included. Default 8 seconds. */
|
|
63
|
+
timeoutMs?: number;
|
|
64
|
+
/** Replaces the built-in normalisation. */
|
|
65
|
+
normalize?(text: string): string;
|
|
66
|
+
}
|
|
67
|
+
/** The built-in normalisation, applied alike to the list and to every text judged. */
|
|
68
|
+
export declare function normalizePhraseText(text: string): string;
|
|
69
|
+
/** A list held in code or built from the product's own files. */
|
|
70
|
+
export declare class StaticPhraseListSource implements PhraseListSource {
|
|
71
|
+
private readonly snapshot;
|
|
72
|
+
constructor(snapshot: PhraseListSnapshot);
|
|
73
|
+
load(): Promise<PhraseListSnapshot>;
|
|
74
|
+
}
|
|
75
|
+
export declare class PhraseListGuardrail implements IGuardrailService {
|
|
76
|
+
private readonly opts;
|
|
77
|
+
readonly id: string;
|
|
78
|
+
readonly config: GuardrailConfig;
|
|
79
|
+
private compiled;
|
|
80
|
+
private loaded;
|
|
81
|
+
private readonly normalize;
|
|
82
|
+
private readonly stages;
|
|
83
|
+
private constructor();
|
|
84
|
+
/** Loads the list and compiles it. Refuses a list that does not load, is empty, or has judge entries and no judge. */
|
|
85
|
+
static create(opts: PhraseListGuardrailOptions): Promise<PhraseListGuardrail>;
|
|
86
|
+
/** The list in force: its version and when and by whom it was reviewed. */
|
|
87
|
+
get snapshot(): PhraseListSnapshot | null;
|
|
88
|
+
/**
|
|
89
|
+
* Loads the list again and swaps it in whole. A list that fails to load or compile leaves the last good one in force
|
|
90
|
+
* (and throws, so the caller hears of it).
|
|
91
|
+
*/
|
|
92
|
+
reload(): Promise<void>;
|
|
93
|
+
evaluateInput({ input, context }: GuardrailInputPayload): Promise<GuardrailEvaluationResult | null>;
|
|
94
|
+
evaluateOutput({ chunk, context }: GuardrailOutputPayload): Promise<GuardrailEvaluationResult | null>;
|
|
95
|
+
private block;
|
|
96
|
+
private evaluateText;
|
|
97
|
+
}
|
|
98
|
+
/** A judge on a language model: asked whether the matched phrases, read in the text, cross the rule's criteria. */
|
|
99
|
+
export declare function createLlmPhraseJudge(opts: JudgeLlmConfig & {
|
|
100
|
+
criteria: string;
|
|
101
|
+
apiKey?: string;
|
|
102
|
+
baseUrl?: string;
|
|
103
|
+
/** The providers the call may fall back to. Default none: an undefined chain would reach any provider whose key the host holds. */
|
|
104
|
+
fallbackProviders?: FallbackProviderEntry[];
|
|
105
|
+
timeoutMs?: number;
|
|
106
|
+
}): PhraseJudge;
|
|
107
|
+
/** The guard as an extension pack, for `extensionManifest.packs: [{ factory: () => createPhraseListPack(guard) }]`. */
|
|
108
|
+
export declare function createPhraseListPack(guard: PhraseListGuardrail): ExtensionPack;
|
|
109
|
+
//# sourceMappingURL=PhraseListGuardrail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhraseListGuardrail.d.ts","sourceRoot":"","sources":["../../../../src/safety/guardrails/builtin/PhraseListGuardrail.ts"],"names":[],"mappings":"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"}
|