@sponsio/sdk 0.1.0-alpha.3
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/contracts/capability/credentials.yaml +188 -0
- package/contracts/capability/database.yaml +141 -0
- package/contracts/capability/filesystem-strict.yaml +101 -0
- package/contracts/capability/filesystem.yaml +239 -0
- package/contracts/capability/self-modify.yaml +152 -0
- package/contracts/capability/shell.yaml +246 -0
- package/contracts/capability/subagent.yaml +184 -0
- package/contracts/core/llm_safety.yaml +130 -0
- package/contracts/core/runaway.yaml +43 -0
- package/contracts/core/universal.yaml +34 -0
- package/contracts/incident/claude-code-secret-bypass.yaml +197 -0
- package/contracts/incident/cursor-railway-wipe.yaml +164 -0
- package/contracts/incident/mcp-composition.yaml +418 -0
- package/contracts/incident/openclaw.yaml +500 -0
- package/contracts/incident/subagent-escape.yaml +177 -0
- package/contracts/premium/.gitkeep +7 -0
- package/dist/contract.d.ts +59 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +97 -0
- package/dist/contract.js.map +1 -0
- package/dist/core/config-loader.d.ts +90 -0
- package/dist/core/config-loader.d.ts.map +1 -0
- package/dist/core/config-loader.js +530 -0
- package/dist/core/config-loader.js.map +1 -0
- package/dist/core/evaluator.d.ts +15 -0
- package/dist/core/evaluator.d.ts.map +1 -0
- package/dist/core/evaluator.js +87 -0
- package/dist/core/evaluator.js.map +1 -0
- package/dist/core/formula.d.ts +103 -0
- package/dist/core/formula.d.ts.map +1 -0
- package/dist/core/formula.js +167 -0
- package/dist/core/formula.js.map +1 -0
- package/dist/core/grounding.d.ts +43 -0
- package/dist/core/grounding.d.ts.map +1 -0
- package/dist/core/grounding.js +269 -0
- package/dist/core/grounding.js.map +1 -0
- package/dist/core/nl-parser.d.ts +12 -0
- package/dist/core/nl-parser.d.ts.map +1 -0
- package/dist/core/nl-parser.js +152 -0
- package/dist/core/nl-parser.js.map +1 -0
- package/dist/core/pack-loader.d.ts +15 -0
- package/dist/core/pack-loader.d.ts.map +1 -0
- package/dist/core/pack-loader.js +220 -0
- package/dist/core/pack-loader.js.map +1 -0
- package/dist/core/parser.d.ts +19 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/parser.js +235 -0
- package/dist/core/parser.js.map +1 -0
- package/dist/core/pattern-factory.d.ts +38 -0
- package/dist/core/pattern-factory.d.ts.map +1 -0
- package/dist/core/pattern-factory.js +222 -0
- package/dist/core/pattern-factory.js.map +1 -0
- package/dist/core/patterns.d.ts +67 -0
- package/dist/core/patterns.d.ts.map +1 -0
- package/dist/core/patterns.js +585 -0
- package/dist/core/patterns.js.map +1 -0
- package/dist/core/session-log.d.ts +91 -0
- package/dist/core/session-log.d.ts.map +1 -0
- package/dist/core/session-log.js +196 -0
- package/dist/core/session-log.js.map +1 -0
- package/dist/core/spans.d.ts +92 -0
- package/dist/core/spans.d.ts.map +1 -0
- package/dist/core/spans.js +148 -0
- package/dist/core/spans.js.map +1 -0
- package/dist/core/sto.d.ts +120 -0
- package/dist/core/sto.d.ts.map +1 -0
- package/dist/core/sto.js +147 -0
- package/dist/core/sto.js.map +1 -0
- package/dist/index.d.ts +267 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +540 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/claude-agent.d.ts +29 -0
- package/dist/integrations/claude-agent.d.ts.map +1 -0
- package/dist/integrations/claude-agent.js +40 -0
- package/dist/integrations/claude-agent.js.map +1 -0
- package/dist/integrations/google-adk.d.ts +27 -0
- package/dist/integrations/google-adk.d.ts.map +1 -0
- package/dist/integrations/google-adk.js +81 -0
- package/dist/integrations/google-adk.js.map +1 -0
- package/dist/integrations/langchain.d.ts +26 -0
- package/dist/integrations/langchain.d.ts.map +1 -0
- package/dist/integrations/langchain.js +74 -0
- package/dist/integrations/langchain.js.map +1 -0
- package/dist/integrations/openai-agents.d.ts +45 -0
- package/dist/integrations/openai-agents.d.ts.map +1 -0
- package/dist/integrations/openai-agents.js +81 -0
- package/dist/integrations/openai-agents.js.map +1 -0
- package/dist/integrations/openai.d.ts +24 -0
- package/dist/integrations/openai.d.ts.map +1 -0
- package/dist/integrations/openai.js +77 -0
- package/dist/integrations/openai.js.map +1 -0
- package/dist/integrations/vercel-ai.d.ts +38 -0
- package/dist/integrations/vercel-ai.d.ts.map +1 -0
- package/dist/integrations/vercel-ai.js +107 -0
- package/dist/integrations/vercel-ai.js.map +1 -0
- package/dist/render/components.d.ts +23 -0
- package/dist/render/components.d.ts.map +1 -0
- package/dist/render/components.js +133 -0
- package/dist/render/components.js.map +1 -0
- package/dist/render/derive.d.ts +23 -0
- package/dist/render/derive.d.ts.map +1 -0
- package/dist/render/derive.js +92 -0
- package/dist/render/derive.js.map +1 -0
- package/dist/render/session-view.d.ts +19 -0
- package/dist/render/session-view.d.ts.map +1 -0
- package/dist/render/session-view.js +236 -0
- package/dist/render/session-view.js.map +1 -0
- package/dist/render/tokens.d.ts +44 -0
- package/dist/render/tokens.d.ts.map +1 -0
- package/dist/render/tokens.js +72 -0
- package/dist/render/tokens.js.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sto.d.ts","sourceRoot":"","sources":["../../src/core/sto.ts"],"names":[],"mappings":"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"}
|
package/dist/core/sto.js
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stub for the sto (stochastic / LLM-judge) pipeline.
|
|
3
|
+
*
|
|
4
|
+
* The real evaluator catalog (``tone`` / ``relevance`` / ``llm_judge`` /
|
|
5
|
+
* ``hallucination_free`` …) and the OpenAI-compatible judge client are
|
|
6
|
+
* Sponsio Cloud features, not bundled with the OSS engine. The OSS
|
|
7
|
+
* ``Sponsio`` constructor logs-and-skips sto contracts at load time
|
|
8
|
+
* with a one-time warning — matching Python's
|
|
9
|
+
* ``sponsio.patterns.sto_catalog`` behaviour.
|
|
10
|
+
*
|
|
11
|
+
* This file exists so that:
|
|
12
|
+
* - imports in ``index.ts`` resolve cleanly
|
|
13
|
+
* - downstream consumers depending on the type names
|
|
14
|
+
* (``StoEvaluator``, ``JudgeClient``, …) compile against the
|
|
15
|
+
* same surface
|
|
16
|
+
* - any code path that *constructs* an evaluator or *builds* a
|
|
17
|
+
* judge fails loudly with ``CloudFeatureError`` rather than
|
|
18
|
+
* silently pretending to enforce
|
|
19
|
+
*
|
|
20
|
+
* Operators who want the sto pipeline:
|
|
21
|
+
*
|
|
22
|
+
* pip install sponsio[cloud]
|
|
23
|
+
*
|
|
24
|
+
* or contact your Sponsio account team for managed sto access. See
|
|
25
|
+
* ``docs/oss_scope.md`` for the OSS / Cloud boundary.
|
|
26
|
+
*/
|
|
27
|
+
// ----- CloudFeatureError ---------------------------------------------
|
|
28
|
+
const CLOUD_HINT = "Sponsio's sto (LLM-judge) pipeline is a Cloud feature, not bundled " +
|
|
29
|
+
"with the OSS engine. Install `sponsio[cloud]` (Python) or contact " +
|
|
30
|
+
"your Sponsio account team for managed sto access. See " +
|
|
31
|
+
"https://github.com/SponsioLabs/Sponsio/blob/main/docs/oss_scope.md.";
|
|
32
|
+
export class CloudFeatureError extends Error {
|
|
33
|
+
constructor(featureName) {
|
|
34
|
+
super(`[sponsio] ${featureName} is not available in OSS. ${CLOUD_HINT}`);
|
|
35
|
+
this.name = "CloudFeatureError";
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// ----- createJudge: stub ---------------------------------------------
|
|
39
|
+
/**
|
|
40
|
+
* Stub. The OSS engine does not ship a managed judge client; calling
|
|
41
|
+
* this throws ``CloudFeatureError``. The OSS ``Sponsio`` constructor
|
|
42
|
+
* never reaches this — yaml ``judge:`` blocks and ``options.judge``
|
|
43
|
+
* are routed through the ``skipped`` warning path instead.
|
|
44
|
+
*/
|
|
45
|
+
export function createJudge(_config) {
|
|
46
|
+
throw new CloudFeatureError("createJudge()");
|
|
47
|
+
}
|
|
48
|
+
// ----- parseScore: pure utility, kept --------------------------------
|
|
49
|
+
/**
|
|
50
|
+
* Parse a 0–1 score from a judge response. Pure utility; safe to ship
|
|
51
|
+
* because it never calls a judge. Kept so any user calling it
|
|
52
|
+
* directly (rare) keeps working.
|
|
53
|
+
*/
|
|
54
|
+
export function parseScore(raw) {
|
|
55
|
+
const trimmed = raw.trim();
|
|
56
|
+
if (trimmed.startsWith("{")) {
|
|
57
|
+
try {
|
|
58
|
+
const obj = JSON.parse(trimmed);
|
|
59
|
+
if (typeof obj.score === "number")
|
|
60
|
+
return clamp01(obj.score);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
/* fall through */
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const m = trimmed.match(/([01](?:\.\d+)?|0?\.\d+)/);
|
|
67
|
+
if (!m) {
|
|
68
|
+
throw new Error(`unparseable score: ${JSON.stringify(trimmed.slice(0, 80))}`);
|
|
69
|
+
}
|
|
70
|
+
const n = parseFloat(m[1]);
|
|
71
|
+
if (!Number.isFinite(n))
|
|
72
|
+
throw new Error(`non-finite score: ${m[1]}`);
|
|
73
|
+
return clamp01(n);
|
|
74
|
+
}
|
|
75
|
+
function clamp01(n) {
|
|
76
|
+
if (n < 0)
|
|
77
|
+
return 0;
|
|
78
|
+
if (n > 1)
|
|
79
|
+
return 1;
|
|
80
|
+
return n;
|
|
81
|
+
}
|
|
82
|
+
// ----- Evaluator class stubs -----------------------------------------
|
|
83
|
+
// Each class preserves the 3 public ``StoEvaluator`` fields that
|
|
84
|
+
// callers may inspect (``atom`` / ``desc`` / ``threshold``), but
|
|
85
|
+
// ``evaluate()`` rejects with ``CloudFeatureError``. The OSS Sponsio
|
|
86
|
+
// ctor never instantiates these — yaml sto specs flow through the
|
|
87
|
+
// ``skipped`` path before any evaluator is built.
|
|
88
|
+
class _StubEvaluator {
|
|
89
|
+
desc;
|
|
90
|
+
threshold;
|
|
91
|
+
constructor(desc, threshold) {
|
|
92
|
+
this.desc = desc;
|
|
93
|
+
this.threshold = threshold;
|
|
94
|
+
}
|
|
95
|
+
evaluate(_input) {
|
|
96
|
+
return Promise.reject(new CloudFeatureError(`${this.atom} evaluator`));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export class LlmJudgeEvaluator extends _StubEvaluator {
|
|
100
|
+
atom = "llm_judge";
|
|
101
|
+
constructor(desc, threshold, _judge, _promptTemplate) {
|
|
102
|
+
super(desc, threshold);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export class ToneEvaluator extends _StubEvaluator {
|
|
106
|
+
atom = "tone";
|
|
107
|
+
constructor(desc, threshold, _judge, _targetTone) {
|
|
108
|
+
super(desc, threshold);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
export class RelevanceEvaluator extends _StubEvaluator {
|
|
112
|
+
atom = "relevance";
|
|
113
|
+
constructor(desc, threshold, _judge) {
|
|
114
|
+
super(desc, threshold);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export class SemanticPiiFreeEvaluator extends _StubEvaluator {
|
|
118
|
+
atom = "semantic_pii_free";
|
|
119
|
+
constructor(desc, threshold, _judge) {
|
|
120
|
+
super(desc, threshold);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
export class HallucinationFreeEvaluator extends _StubEvaluator {
|
|
124
|
+
atom = "hallucination_free";
|
|
125
|
+
constructor(desc, threshold, _judge) {
|
|
126
|
+
super(desc, threshold);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
export class ScopeRespectEvaluator extends _StubEvaluator {
|
|
130
|
+
atom = "scope_respect";
|
|
131
|
+
constructor(desc, threshold, _judge, _defaultScope) {
|
|
132
|
+
super(desc, threshold);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
export class MetricIntegrityEvaluator extends _StubEvaluator {
|
|
136
|
+
atom = "metric_integrity";
|
|
137
|
+
constructor(desc, threshold, _judge) {
|
|
138
|
+
super(desc, threshold);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
export class InjectionFreeEvaluator extends _StubEvaluator {
|
|
142
|
+
atom = "injection_free";
|
|
143
|
+
constructor(desc, threshold, _judge) {
|
|
144
|
+
super(desc, threshold);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=sto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sto.js","sourceRoot":"","sources":["../../src/core/sto.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sponsio/sdk — Runtime contract enforcement for LLM agents.
|
|
3
|
+
*
|
|
4
|
+
* Native TypeScript implementation. < 50KB bundle, zero cold start,
|
|
5
|
+
* Edge/Serverless compatible.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* import { Sponsio } from "@sponsio/sdk"
|
|
9
|
+
*
|
|
10
|
+
* // Inline contracts:
|
|
11
|
+
* const guard = new Sponsio({
|
|
12
|
+
* agentId: "refund_bot",
|
|
13
|
+
* contracts: ["tool `check_policy` must precede `issue_refund`"]
|
|
14
|
+
* })
|
|
15
|
+
*
|
|
16
|
+
* // Or loaded from a shared sponsio.yaml:
|
|
17
|
+
* const guard = new Sponsio({ config: "sponsio.yaml", agentId: "refund_bot" })
|
|
18
|
+
*
|
|
19
|
+
* const result = guard.guardBefore("issue_refund", { orderId: "#123" })
|
|
20
|
+
* if (result.blocked) { ... }
|
|
21
|
+
*/
|
|
22
|
+
import { AgentTurnSpan } from "./core/spans.js";
|
|
23
|
+
import type { DetFormula } from "./core/patterns.js";
|
|
24
|
+
import { type JudgeClient, type JudgeConfig, type StoContextSnapshot } from "./core/sto.js";
|
|
25
|
+
export { evaluate } from "./core/evaluator.js";
|
|
26
|
+
export type { Valuation } from "./core/evaluator.js";
|
|
27
|
+
export * from "./core/formula.js";
|
|
28
|
+
export * from "./core/patterns.js";
|
|
29
|
+
export { parseNl } from "./core/nl-parser.js";
|
|
30
|
+
export { parseRepr, ParseError } from "./core/parser.js";
|
|
31
|
+
export { groundEvent, newGroundingState, collectContentAtoms, } from "./core/grounding.js";
|
|
32
|
+
export { loadSponsoConfig } from "./core/config-loader.js";
|
|
33
|
+
export type { LoadedConfig, SkippedItem } from "./core/config-loader.js";
|
|
34
|
+
export { SessionLogger, rotateSessions } from "./core/session-log.js";
|
|
35
|
+
export type { SessionRecord, SessionLoggerOptions, } from "./core/session-log.js";
|
|
36
|
+
export { contract, ContractBuilder } from "./contract.js";
|
|
37
|
+
export { createJudge, LlmJudgeEvaluator, ToneEvaluator, RelevanceEvaluator, SemanticPiiFreeEvaluator, HallucinationFreeEvaluator, ScopeRespectEvaluator, MetricIntegrityEvaluator, InjectionFreeEvaluator, parseScore, } from "./core/sto.js";
|
|
38
|
+
export type { StoEvaluator, StoContract, StoInput, StoResult, StoContextSnapshot, JudgeClient, JudgeConfig, } from "./core/sto.js";
|
|
39
|
+
/**
|
|
40
|
+
* One det violation, with enough structure to feed into downstream
|
|
41
|
+
* agent feedback — mirrors Python's ``EnforcementResult`` fields that
|
|
42
|
+
* examples reach for (``check.det_violations[0].message``).
|
|
43
|
+
*
|
|
44
|
+
* Phrasing contract (mirrors Python ``OutcomeBuilder``):
|
|
45
|
+
*
|
|
46
|
+
* - ``message`` is the **human-facing** log line —
|
|
47
|
+
* ``"BLOCKED: agent.tool — det constraint violated: …"``. It keeps
|
|
48
|
+
* the legacy prefix so log-parsing back-compat holds. Don't inject
|
|
49
|
+
* it into the LLM's next prompt; it's noise to the model.
|
|
50
|
+
* - ``agentMsg`` is the **agent-facing** line, phrased to nudge the
|
|
51
|
+
* model into the right reaction. For block this should read
|
|
52
|
+
* "abandon this action" rather than parroting the log line.
|
|
53
|
+
* Empty until the strategy populates it; integrations fall back to
|
|
54
|
+
* ``message`` when empty.
|
|
55
|
+
* - ``ruleId`` is a stable identifier (``DetFormula.patternName`` or
|
|
56
|
+
* sto atom name) integrations can group on without parsing
|
|
57
|
+
* free text.
|
|
58
|
+
* - ``retryHint`` is populated only on retry-style outcomes — the
|
|
59
|
+
* "to fix this, do X" guidance, kept distinct from ``agentMsg``
|
|
60
|
+
* so adapters can format the two parts in framework-native ways.
|
|
61
|
+
* - ``alternatives`` is an optional list of suggested replacement
|
|
62
|
+
* actions for blocked / redirected outcomes.
|
|
63
|
+
*/
|
|
64
|
+
export interface DetViolation {
|
|
65
|
+
/** Human-readable contract description (``DetFormula.desc``). */
|
|
66
|
+
desc: string;
|
|
67
|
+
/** Formatted ``"[WOULD-]BLOCKED: agent.tool — det constraint …"``. */
|
|
68
|
+
message: string;
|
|
69
|
+
/** Stable rule identifier (pattern name / contract id). */
|
|
70
|
+
ruleId?: string;
|
|
71
|
+
/** Agent-facing line, tuned per action voice. Falls back to ``message``. */
|
|
72
|
+
agentMsg?: string;
|
|
73
|
+
/** "To fix this, do X" guidance. Only set on retry-style outcomes. */
|
|
74
|
+
retryHint?: string;
|
|
75
|
+
/** Suggested replacement actions for the agent. */
|
|
76
|
+
alternatives?: string[];
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Best-effort accessor for the agent-facing line. Prefers the
|
|
80
|
+
* structured ``agentMsg`` field when populated; falls back to
|
|
81
|
+
* ``message`` for adapters that haven't migrated yet. Mirrors the
|
|
82
|
+
* Python ``select_agent_message`` helper.
|
|
83
|
+
*/
|
|
84
|
+
export declare function selectAgentMessage(violations: DetViolation[], fallback?: string): string;
|
|
85
|
+
export interface CheckResult {
|
|
86
|
+
blocked: boolean;
|
|
87
|
+
allowed: boolean;
|
|
88
|
+
message: string;
|
|
89
|
+
/**
|
|
90
|
+
* Flat list of violation messages — kept for back-compat with
|
|
91
|
+
* existing TS call sites that only need a string feed.
|
|
92
|
+
*/
|
|
93
|
+
violations: string[];
|
|
94
|
+
/**
|
|
95
|
+
* Structured det violations — parallel to Python's
|
|
96
|
+
* ``CheckResult.det_violations``. Populated in both enforce-block
|
|
97
|
+
* and observe-log paths; empty on a clean allow.
|
|
98
|
+
*/
|
|
99
|
+
detViolations: DetViolation[];
|
|
100
|
+
/**
|
|
101
|
+
* Sto-pipeline violations — populated by ``guardAfter`` when
|
|
102
|
+
* stochastic contracts (e.g. ``tone``, ``llm_judge``) are declared
|
|
103
|
+
* in the yaml and a ``judge:`` block is configured. Empty on a
|
|
104
|
+
* clean pass or when no sto contracts exist.
|
|
105
|
+
*/
|
|
106
|
+
stoViolations: DetViolation[];
|
|
107
|
+
}
|
|
108
|
+
export type SponsoMode = "enforce" | "observe";
|
|
109
|
+
export interface SponsoOptions {
|
|
110
|
+
/** Logical agent id — used for session log paths. */
|
|
111
|
+
agentId?: string;
|
|
112
|
+
/** Inline NL-string / DetFormula contracts. Merged with `config:` if both given. */
|
|
113
|
+
contracts?: (string | DetFormula)[];
|
|
114
|
+
/**
|
|
115
|
+
* Path to a ``sponsio.yaml`` config file. Loaded synchronously at
|
|
116
|
+
* construction time; contracts and runtime settings from the yaml
|
|
117
|
+
* merge with inline options.
|
|
118
|
+
*
|
|
119
|
+
* When set, the TS SDK reads:
|
|
120
|
+
* - ``runtime.mode`` (observe | enforce)
|
|
121
|
+
* - ``agents.<agentId>.contracts[]`` (NL strings; structured
|
|
122
|
+
* patterns and packs are skipped with a warning)
|
|
123
|
+
*
|
|
124
|
+
* Uses the ``yaml`` package (declared as a dependency of
|
|
125
|
+
* ``@sponsio/sdk``).
|
|
126
|
+
*/
|
|
127
|
+
config?: string;
|
|
128
|
+
/**
|
|
129
|
+
* Runtime mode. Precedence (matches the Python SDK):
|
|
130
|
+
*
|
|
131
|
+
* SPONSIO_MODE env > ctor arg > yaml runtime.mode > "observe"
|
|
132
|
+
*
|
|
133
|
+
* ``observe`` (the default) logs every would-have-blocked decision
|
|
134
|
+
* to ``~/.sponsio/sessions/<agent_id>/*.jsonl`` without actually
|
|
135
|
+
* blocking. ``enforce`` returns ``blocked: true`` on violation.
|
|
136
|
+
*/
|
|
137
|
+
mode?: SponsoMode;
|
|
138
|
+
/**
|
|
139
|
+
* Write session JSONL log to ``~/.sponsio/sessions/<agent_id>/…``.
|
|
140
|
+
* Defaults to ``true`` in observe mode, ``true`` in enforce mode
|
|
141
|
+
* (matches Python — the log is the audit trail, not an observe
|
|
142
|
+
* mode artefact). Pass ``false`` to disable (tests, edge runtimes
|
|
143
|
+
* without a writable home dir).
|
|
144
|
+
*/
|
|
145
|
+
sessionLog?: boolean;
|
|
146
|
+
/** Override session log base dir (tests / alternative layouts). */
|
|
147
|
+
sessionLogBaseDir?: string;
|
|
148
|
+
/**
|
|
149
|
+
* Judge config for the sto pipeline. Either a plain config object
|
|
150
|
+
* (provider / model / apiKey / baseUrl / fallbackMode) or a
|
|
151
|
+
* pre-built ``JudgeClient``. Falls through to the yaml ``judge:``
|
|
152
|
+
* block if the ctor arg is omitted. When no sto contracts exist,
|
|
153
|
+
* the judge is never contacted.
|
|
154
|
+
*/
|
|
155
|
+
judge?: JudgeConfig | JudgeClient;
|
|
156
|
+
}
|
|
157
|
+
export declare class Sponsio {
|
|
158
|
+
readonly agentId: string;
|
|
159
|
+
readonly mode: SponsoMode;
|
|
160
|
+
private _contracts;
|
|
161
|
+
private _stoContracts;
|
|
162
|
+
private _judge;
|
|
163
|
+
private _judgeFallback;
|
|
164
|
+
private _stoContext;
|
|
165
|
+
private _trace;
|
|
166
|
+
private _state;
|
|
167
|
+
private _contentAtoms;
|
|
168
|
+
private _violations;
|
|
169
|
+
private _logger;
|
|
170
|
+
private _turnSpans;
|
|
171
|
+
constructor(options?: SponsoOptions);
|
|
172
|
+
/**
|
|
173
|
+
* Check a tool call against contracts before execution.
|
|
174
|
+
*
|
|
175
|
+
* On block, **all** mutations made by ``groundEvent`` are rolled back via a
|
|
176
|
+
* pre-call snapshot. Previously only ``callCounts[toolName]`` was undone,
|
|
177
|
+
* leaving ``consecutiveCounts``, ``lastTool``, ``callWithCounts``,
|
|
178
|
+
* ``tokenCounts``, and ``delegationDepth`` in a stale state; subsequent
|
|
179
|
+
* guards saw counts as if the blocked call had executed.
|
|
180
|
+
*
|
|
181
|
+
* In **observe mode**, violations are logged to the session JSONL
|
|
182
|
+
* but not reported as blocks — the method always returns ``allowed: true``.
|
|
183
|
+
* In **enforce mode**, the first violation blocks the call.
|
|
184
|
+
*/
|
|
185
|
+
/** Read the human-readable descs of all compiled contracts (det only). */
|
|
186
|
+
contractDescs(): string[];
|
|
187
|
+
guardBefore(toolName: string, args?: Record<string, unknown>): CheckResult;
|
|
188
|
+
/**
|
|
189
|
+
* Snapshot of the per-turn span trees this guard has produced since
|
|
190
|
+
* construction (or the last ``resetSession``). One root
|
|
191
|
+
* ``AgentTurnSpan`` per ``guardBefore`` call, with nested
|
|
192
|
+
* ``ContractCheckSpan`` / ``GuaranteeSpan`` / ``EnforcementSpan``
|
|
193
|
+
* children. Mirrors Python's ``RuntimeMonitor.turn_spans``.
|
|
194
|
+
*/
|
|
195
|
+
turnSpans(): AgentTurnSpan[];
|
|
196
|
+
/** Drop accumulated turn spans (used between sessions in tests). */
|
|
197
|
+
resetSession(): void;
|
|
198
|
+
/**
|
|
199
|
+
* Render the end-of-session view to ``out`` (defaults to stderr) —
|
|
200
|
+
* banner, contracts armed, trace tree, verdict, perf, CTA. Mirrors
|
|
201
|
+
* Python's ``RuntimeMonitor.finish_session`` + ``render_session``
|
|
202
|
+
* pipeline. Call this once at the end of the agent's run.
|
|
203
|
+
*/
|
|
204
|
+
finishSession(opts?: {
|
|
205
|
+
out?: NodeJS.WritableStream;
|
|
206
|
+
sessionId?: string;
|
|
207
|
+
tenant?: string;
|
|
208
|
+
env?: string;
|
|
209
|
+
sdk?: string;
|
|
210
|
+
ctas?: string[];
|
|
211
|
+
useColor?: boolean;
|
|
212
|
+
}): void;
|
|
213
|
+
/** Deep-copy the grounding state so it can be restored on a blocked call. */
|
|
214
|
+
private _snapshotState;
|
|
215
|
+
private _logViolations;
|
|
216
|
+
private _logAllow;
|
|
217
|
+
/**
|
|
218
|
+
* Record tool output after execution and run the sto pipeline.
|
|
219
|
+
*
|
|
220
|
+
* Returns a ``CheckResult`` whose ``stoViolations`` carries any
|
|
221
|
+
* stochastic rule failures (``tone`` / ``llm_judge``). When no sto
|
|
222
|
+
* contracts are declared the method returns synchronously in
|
|
223
|
+
* effect (the ``Promise`` resolves on the microtask queue) and
|
|
224
|
+
* never contacts the judge LLM.
|
|
225
|
+
*
|
|
226
|
+
* In **observe mode** violations are logged but the method still
|
|
227
|
+
* reports ``allowed: true``. In **enforce mode** the first sto
|
|
228
|
+
* violation flips ``blocked: true`` — but the tool output has
|
|
229
|
+
* already executed, so the caller is responsible for routing the
|
|
230
|
+
* result (retry with feedback, redirect to safe, etc.).
|
|
231
|
+
*/
|
|
232
|
+
guardAfter(toolName: string, output?: string): Promise<CheckResult>;
|
|
233
|
+
private _logSto;
|
|
234
|
+
/**
|
|
235
|
+
* Reset guard state for a new session.
|
|
236
|
+
*/
|
|
237
|
+
reset(): void;
|
|
238
|
+
/**
|
|
239
|
+
* Stash per-turn context for the sto pipeline. Atoms that need
|
|
240
|
+
* grounding — ``relevance`` (``query``), ``hallucination_free``
|
|
241
|
+
* (``source``), ``scope_respect`` (``scope`` override),
|
|
242
|
+
* ``metric_integrity`` (``history``) — read from this snapshot on
|
|
243
|
+
* the next ``guardAfter`` call.
|
|
244
|
+
*
|
|
245
|
+
* Merges with any previously-set context; pass ``{ query: undefined }``
|
|
246
|
+
* to explicitly clear a field. ``reset()`` clears the whole snapshot.
|
|
247
|
+
*/
|
|
248
|
+
setContext(ctx: Partial<StoContextSnapshot>): void;
|
|
249
|
+
/**
|
|
250
|
+
* Get all violations from this session.
|
|
251
|
+
*/
|
|
252
|
+
get violations(): string[];
|
|
253
|
+
/**
|
|
254
|
+
* Get a summary string. Returns a formatted list of violations
|
|
255
|
+
* observed in this session, or ``"No violations"`` if clean.
|
|
256
|
+
*/
|
|
257
|
+
summary(): string;
|
|
258
|
+
/**
|
|
259
|
+
* Print the session summary to stdout — Python parity for
|
|
260
|
+
* ``guard.print_summary()``. Equivalent to
|
|
261
|
+
* ``console.log(guard.summary())``; exists so copy-pasted Python
|
|
262
|
+
* snippets compile (and so ad-hoc review in scripts reads the
|
|
263
|
+
* same way across both SDKs).
|
|
264
|
+
*/
|
|
265
|
+
printSummary(): void;
|
|
266
|
+
}
|
|
267
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAkBH,OAAO,EACL,aAAa,EAKd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAUL,KAAK,WAAW,EAChB,KAAK,WAAW,EAEhB,KAAK,kBAAkB,EAExB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACtE,YAAY,EACV,aAAa,EACb,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,YAAY,EAAE,EAC1B,QAAQ,GAAE,MAA6B,GACtC,MAAM,CAUR;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB;;;;OAIG;IACH,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B;;;;;OAKG;IACH,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,oFAAoF;IACpF,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC;IAEpC;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;CACnC;AAED,qBAAa,OAAO;IAClB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,UAAU,CAAuB;gBAE7B,OAAO,GAAE,aAAkB;IAuFvC;;;;;;;;;;;;OAYG;IACH,0EAA0E;IAC1E,aAAa,IAAI,MAAM,EAAE;IAIzB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,WAAW;IA2F9E;;;;;;OAMG;IACH,SAAS,IAAI,aAAa,EAAE;IAI5B,oEAAoE;IACpE,YAAY,IAAI,IAAI;IAIpB;;;;;OAKG;IACH,aAAa,CAAC,IAAI,GAAE;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACf,GAAG,IAAI;IAUb,6EAA6E;IAC7E,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,SAAS;IAYjB;;;;;;;;;;;;;;OAcG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAW,GAClB,OAAO,CAAC,WAAW,CAAC;IA4GvB,OAAO,CAAC,OAAO;IAmCf;;OAEG;IACH,KAAK,IAAI,IAAI;IAUb;;;;;;;;;OASG;IACH,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAIlD;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,EAAE,CAEzB;IAED;;;OAGG;IACH,OAAO,IAAI,MAAM;IAKjB;;;;;;OAMG;IACH,YAAY,IAAI,IAAI;CAGrB"}
|