@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,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Immutable AST nodes for the Sponsio formula language.
|
|
3
|
+
*
|
|
4
|
+
* Direct port of sponsio/formulas/formula.py.
|
|
5
|
+
* Three families: Propositional, Temporal (LTL), Arithmetic.
|
|
6
|
+
*/
|
|
7
|
+
export type Formula = Atom | Not | And | Or | Implies | G | F | X | U | Le | Lt | Ge | Gt | Eq | Var | Const;
|
|
8
|
+
export declare class Atom {
|
|
9
|
+
readonly predicate: string;
|
|
10
|
+
readonly args: readonly string[];
|
|
11
|
+
readonly kind: "Atom";
|
|
12
|
+
constructor(predicate: string, args?: readonly string[]);
|
|
13
|
+
key(): string;
|
|
14
|
+
}
|
|
15
|
+
export declare class Not {
|
|
16
|
+
readonly child: Formula;
|
|
17
|
+
readonly kind: "Not";
|
|
18
|
+
constructor(child: Formula);
|
|
19
|
+
}
|
|
20
|
+
export declare class And {
|
|
21
|
+
readonly left: Formula;
|
|
22
|
+
readonly right: Formula;
|
|
23
|
+
readonly kind: "And";
|
|
24
|
+
constructor(left: Formula, right: Formula);
|
|
25
|
+
}
|
|
26
|
+
export declare class Or {
|
|
27
|
+
readonly left: Formula;
|
|
28
|
+
readonly right: Formula;
|
|
29
|
+
readonly kind: "Or";
|
|
30
|
+
constructor(left: Formula, right: Formula);
|
|
31
|
+
}
|
|
32
|
+
export declare class Implies {
|
|
33
|
+
readonly left: Formula;
|
|
34
|
+
readonly right: Formula;
|
|
35
|
+
readonly kind: "Implies";
|
|
36
|
+
constructor(left: Formula, right: Formula);
|
|
37
|
+
}
|
|
38
|
+
export declare class G {
|
|
39
|
+
readonly child: Formula;
|
|
40
|
+
readonly kind: "G";
|
|
41
|
+
constructor(child: Formula);
|
|
42
|
+
}
|
|
43
|
+
export declare class F {
|
|
44
|
+
readonly child: Formula;
|
|
45
|
+
readonly kind: "F";
|
|
46
|
+
constructor(child: Formula);
|
|
47
|
+
}
|
|
48
|
+
export declare class X {
|
|
49
|
+
readonly child: Formula;
|
|
50
|
+
readonly kind: "X";
|
|
51
|
+
constructor(child: Formula);
|
|
52
|
+
}
|
|
53
|
+
export declare class U {
|
|
54
|
+
readonly left: Formula;
|
|
55
|
+
readonly right: Formula;
|
|
56
|
+
readonly kind: "U";
|
|
57
|
+
constructor(left: Formula, right: Formula);
|
|
58
|
+
}
|
|
59
|
+
export declare class Var {
|
|
60
|
+
readonly name: string;
|
|
61
|
+
readonly kind: "Var";
|
|
62
|
+
readonly args: readonly string[];
|
|
63
|
+
constructor(name: string, ...args: string[]);
|
|
64
|
+
key(): string;
|
|
65
|
+
}
|
|
66
|
+
export declare class Const {
|
|
67
|
+
readonly value: number;
|
|
68
|
+
readonly kind: "Const";
|
|
69
|
+
constructor(value: number);
|
|
70
|
+
}
|
|
71
|
+
export type ArithExpr = Var | Const;
|
|
72
|
+
export declare class Le {
|
|
73
|
+
readonly left: ArithExpr;
|
|
74
|
+
readonly right: ArithExpr;
|
|
75
|
+
readonly kind: "Le";
|
|
76
|
+
constructor(left: ArithExpr, right: ArithExpr);
|
|
77
|
+
}
|
|
78
|
+
export declare class Lt {
|
|
79
|
+
readonly left: ArithExpr;
|
|
80
|
+
readonly right: ArithExpr;
|
|
81
|
+
readonly kind: "Lt";
|
|
82
|
+
constructor(left: ArithExpr, right: ArithExpr);
|
|
83
|
+
}
|
|
84
|
+
export declare class Ge {
|
|
85
|
+
readonly left: ArithExpr;
|
|
86
|
+
readonly right: ArithExpr;
|
|
87
|
+
readonly kind: "Ge";
|
|
88
|
+
constructor(left: ArithExpr, right: ArithExpr);
|
|
89
|
+
}
|
|
90
|
+
export declare class Gt {
|
|
91
|
+
readonly left: ArithExpr;
|
|
92
|
+
readonly right: ArithExpr;
|
|
93
|
+
readonly kind: "Gt";
|
|
94
|
+
constructor(left: ArithExpr, right: ArithExpr);
|
|
95
|
+
}
|
|
96
|
+
export declare class Eq {
|
|
97
|
+
readonly left: ArithExpr;
|
|
98
|
+
readonly right: ArithExpr;
|
|
99
|
+
readonly kind: "Eq";
|
|
100
|
+
constructor(left: ArithExpr, right: ArithExpr);
|
|
101
|
+
}
|
|
102
|
+
export declare function predKey(predicate: string, ...args: string[]): string;
|
|
103
|
+
//# sourceMappingURL=formula.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../../src/core/formula.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,MAAM,MAAM,OAAO,GACf,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,OAAO,GAC/B,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GACb,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GACtB,GAAG,GAAG,KAAK,CAAC;AAIhB,qBAAa,IAAI;IAGb,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE;IAHlC,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;gBAErB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,SAAS,MAAM,EAAO;IAGvC,GAAG,IAAI,MAAM;CAGd;AAED,qBAAa,GAAG;IAEF,QAAQ,CAAC,KAAK,EAAE,OAAO;IADnC,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;gBACV,KAAK,EAAE,OAAO;CACpC;AAED,qBAAa,GAAG;IAEF,QAAQ,CAAC,IAAI,EAAE,OAAO;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO;IAD3D,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;gBACV,IAAI,EAAE,OAAO,EAAW,KAAK,EAAE,OAAO;CAC5D;AAED,qBAAa,EAAE;IAED,QAAQ,CAAC,IAAI,EAAE,OAAO;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO;IAD3D,QAAQ,CAAC,IAAI,EAAG,IAAI,CAAU;gBACT,IAAI,EAAE,OAAO,EAAW,KAAK,EAAE,OAAO;CAC5D;AAED,qBAAa,OAAO;IAEN,QAAQ,CAAC,IAAI,EAAE,OAAO;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO;IAD3D,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;gBACd,IAAI,EAAE,OAAO,EAAW,KAAK,EAAE,OAAO;CAC5D;AAID,qBAAa,CAAC;IAEA,QAAQ,CAAC,KAAK,EAAE,OAAO;IADnC,QAAQ,CAAC,IAAI,EAAG,GAAG,CAAU;gBACR,KAAK,EAAE,OAAO;CACpC;AAED,qBAAa,CAAC;IAEA,QAAQ,CAAC,KAAK,EAAE,OAAO;IADnC,QAAQ,CAAC,IAAI,EAAG,GAAG,CAAU;gBACR,KAAK,EAAE,OAAO;CACpC;AAED,qBAAa,CAAC;IAEA,QAAQ,CAAC,KAAK,EAAE,OAAO;IADnC,QAAQ,CAAC,IAAI,EAAG,GAAG,CAAU;gBACR,KAAK,EAAE,OAAO;CACpC;AAED,qBAAa,CAAC;IAEA,QAAQ,CAAC,IAAI,EAAE,OAAO;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO;IAD3D,QAAQ,CAAC,IAAI,EAAG,GAAG,CAAU;gBACR,IAAI,EAAE,OAAO,EAAW,KAAK,EAAE,OAAO;CAC5D;AAID,qBAAa,GAAG;IAGF,QAAQ,CAAC,IAAI,EAAE,MAAM;IAFjC,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;gBACZ,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE;IAGpD,GAAG,IAAI,MAAM;CAMd;AAED,qBAAa,KAAK;IAEJ,QAAQ,CAAC,KAAK,EAAE,MAAM;IADlC,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;gBACZ,KAAK,EAAE,MAAM;CACnC;AAED,MAAM,MAAM,SAAS,GAAG,GAAG,GAAG,KAAK,CAAC;AAEpC,qBAAa,EAAE;IAED,QAAQ,CAAC,IAAI,EAAE,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS;IAD/D,QAAQ,CAAC,IAAI,EAAG,IAAI,CAAU;gBACT,IAAI,EAAE,SAAS,EAAW,KAAK,EAAE,SAAS;CAChE;AAED,qBAAa,EAAE;IAED,QAAQ,CAAC,IAAI,EAAE,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS;IAD/D,QAAQ,CAAC,IAAI,EAAG,IAAI,CAAU;gBACT,IAAI,EAAE,SAAS,EAAW,KAAK,EAAE,SAAS;CAChE;AAED,qBAAa,EAAE;IAED,QAAQ,CAAC,IAAI,EAAE,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS;IAD/D,QAAQ,CAAC,IAAI,EAAG,IAAI,CAAU;gBACT,IAAI,EAAE,SAAS,EAAW,KAAK,EAAE,SAAS;CAChE;AAED,qBAAa,EAAE;IAED,QAAQ,CAAC,IAAI,EAAE,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS;IAD/D,QAAQ,CAAC,IAAI,EAAG,IAAI,CAAU;gBACT,IAAI,EAAE,SAAS,EAAW,KAAK,EAAE,SAAS;CAChE;AAED,qBAAa,EAAE;IAED,QAAQ,CAAC,IAAI,EAAE,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS;IAD/D,QAAQ,CAAC,IAAI,EAAG,IAAI,CAAU;gBACT,IAAI,EAAE,SAAS,EAAW,KAAK,EAAE,SAAS;CAChE;AAaD,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAGpE"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Immutable AST nodes for the Sponsio formula language.
|
|
3
|
+
*
|
|
4
|
+
* Direct port of sponsio/formulas/formula.py.
|
|
5
|
+
* Three families: Propositional, Temporal (LTL), Arithmetic.
|
|
6
|
+
*/
|
|
7
|
+
// --- Propositional ---
|
|
8
|
+
export class Atom {
|
|
9
|
+
predicate;
|
|
10
|
+
args;
|
|
11
|
+
kind = "Atom";
|
|
12
|
+
constructor(predicate, args = []) {
|
|
13
|
+
this.predicate = predicate;
|
|
14
|
+
this.args = args;
|
|
15
|
+
}
|
|
16
|
+
key() {
|
|
17
|
+
return predKey(this.predicate, ...this.args);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export class Not {
|
|
21
|
+
child;
|
|
22
|
+
kind = "Not";
|
|
23
|
+
constructor(child) {
|
|
24
|
+
this.child = child;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class And {
|
|
28
|
+
left;
|
|
29
|
+
right;
|
|
30
|
+
kind = "And";
|
|
31
|
+
constructor(left, right) {
|
|
32
|
+
this.left = left;
|
|
33
|
+
this.right = right;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export class Or {
|
|
37
|
+
left;
|
|
38
|
+
right;
|
|
39
|
+
kind = "Or";
|
|
40
|
+
constructor(left, right) {
|
|
41
|
+
this.left = left;
|
|
42
|
+
this.right = right;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class Implies {
|
|
46
|
+
left;
|
|
47
|
+
right;
|
|
48
|
+
kind = "Implies";
|
|
49
|
+
constructor(left, right) {
|
|
50
|
+
this.left = left;
|
|
51
|
+
this.right = right;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// --- Temporal (LTL) ---
|
|
55
|
+
export class G {
|
|
56
|
+
child;
|
|
57
|
+
kind = "G";
|
|
58
|
+
constructor(child) {
|
|
59
|
+
this.child = child;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export class F {
|
|
63
|
+
child;
|
|
64
|
+
kind = "F";
|
|
65
|
+
constructor(child) {
|
|
66
|
+
this.child = child;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export class X {
|
|
70
|
+
child;
|
|
71
|
+
kind = "X";
|
|
72
|
+
constructor(child) {
|
|
73
|
+
this.child = child;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export class U {
|
|
77
|
+
left;
|
|
78
|
+
right;
|
|
79
|
+
kind = "U";
|
|
80
|
+
constructor(left, right) {
|
|
81
|
+
this.left = left;
|
|
82
|
+
this.right = right;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// --- Arithmetic ---
|
|
86
|
+
export class Var {
|
|
87
|
+
name;
|
|
88
|
+
kind = "Var";
|
|
89
|
+
args;
|
|
90
|
+
constructor(name, ...args) {
|
|
91
|
+
this.name = name;
|
|
92
|
+
this.args = args;
|
|
93
|
+
}
|
|
94
|
+
key() {
|
|
95
|
+
if (this.args.length > 0) {
|
|
96
|
+
return predKey(this.name, ...this.args);
|
|
97
|
+
}
|
|
98
|
+
return this.name;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
export class Const {
|
|
102
|
+
value;
|
|
103
|
+
kind = "Const";
|
|
104
|
+
constructor(value) {
|
|
105
|
+
this.value = value;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export class Le {
|
|
109
|
+
left;
|
|
110
|
+
right;
|
|
111
|
+
kind = "Le";
|
|
112
|
+
constructor(left, right) {
|
|
113
|
+
this.left = left;
|
|
114
|
+
this.right = right;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export class Lt {
|
|
118
|
+
left;
|
|
119
|
+
right;
|
|
120
|
+
kind = "Lt";
|
|
121
|
+
constructor(left, right) {
|
|
122
|
+
this.left = left;
|
|
123
|
+
this.right = right;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
export class Ge {
|
|
127
|
+
left;
|
|
128
|
+
right;
|
|
129
|
+
kind = "Ge";
|
|
130
|
+
constructor(left, right) {
|
|
131
|
+
this.left = left;
|
|
132
|
+
this.right = right;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
export class Gt {
|
|
136
|
+
left;
|
|
137
|
+
right;
|
|
138
|
+
kind = "Gt";
|
|
139
|
+
constructor(left, right) {
|
|
140
|
+
this.left = left;
|
|
141
|
+
this.right = right;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export class Eq {
|
|
145
|
+
left;
|
|
146
|
+
right;
|
|
147
|
+
kind = "Eq";
|
|
148
|
+
constructor(left, right) {
|
|
149
|
+
this.left = left;
|
|
150
|
+
this.right = right;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// --- Predicate key ---
|
|
154
|
+
function escape(s) {
|
|
155
|
+
return s
|
|
156
|
+
.replace(/\\/g, "\\\\")
|
|
157
|
+
.replace(/\(/g, "\\(")
|
|
158
|
+
.replace(/\)/g, "\\)")
|
|
159
|
+
.replace(/,/g, "\\,")
|
|
160
|
+
.replace(/ /g, "\\ ");
|
|
161
|
+
}
|
|
162
|
+
export function predKey(predicate, ...args) {
|
|
163
|
+
if (args.length === 0)
|
|
164
|
+
return `${predicate}()`;
|
|
165
|
+
return `${predicate}(${args.map(escape).join(", ")})`;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=formula.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula.js","sourceRoot":"","sources":["../../src/core/formula.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grounding: convert tool-call events into per-timestep predicate valuations.
|
|
3
|
+
*
|
|
4
|
+
* Port of sponsio/tracer/grounding.py (Det-relevant atoms).
|
|
5
|
+
*
|
|
6
|
+
* Supported atoms:
|
|
7
|
+
* called(tool) — tool was called at this timestep
|
|
8
|
+
* count(tool) — cumulative invocation count
|
|
9
|
+
* called_with(tool, pattern) — tool args match regex pattern
|
|
10
|
+
* count_with(tool, pattern) — cumulative count of pattern matches
|
|
11
|
+
* consecutive_count(tool) — how many times same tool called in a row
|
|
12
|
+
* arg_has(tool, pattern) — tool args (serialized) match regex
|
|
13
|
+
* arg_field_has(tool, field, p) — specific arg field matches regex
|
|
14
|
+
* arg_length_exceeds(tool, field, N) — field length > N chars
|
|
15
|
+
* arg_numeric(tool, field) — numeric value extracted from args (int)
|
|
16
|
+
* arg_paths_within(tool, *prefixes) — all paths in args within prefix set
|
|
17
|
+
* token_count(type) — cumulative tokens (from event.args.tokens)
|
|
18
|
+
* delegation_depth — depth of agent-to-agent delegation
|
|
19
|
+
*/
|
|
20
|
+
import type { Formula } from "./formula.js";
|
|
21
|
+
export interface ToolEvent {
|
|
22
|
+
tool: string;
|
|
23
|
+
args?: Record<string, unknown>;
|
|
24
|
+
}
|
|
25
|
+
export interface GroundingState {
|
|
26
|
+
callCounts: Record<string, number>;
|
|
27
|
+
callWithCounts: Record<string, number>;
|
|
28
|
+
lastTool: string | null;
|
|
29
|
+
consecutiveCounts: Record<string, number>;
|
|
30
|
+
tokenCounts: Record<string, number>;
|
|
31
|
+
delegationDepth: number;
|
|
32
|
+
}
|
|
33
|
+
export declare function newGroundingState(): GroundingState;
|
|
34
|
+
/**
|
|
35
|
+
* Collect content atoms from a formula tree.
|
|
36
|
+
* These are atoms whose grounding depends on event content (arg patterns).
|
|
37
|
+
*/
|
|
38
|
+
export declare function collectContentAtoms(formulas: Formula[]): Record<string, Set<string>>;
|
|
39
|
+
/**
|
|
40
|
+
* Ground a single tool-call event into a predicate valuation dict.
|
|
41
|
+
*/
|
|
42
|
+
export declare function groundEvent(event: ToolEvent, state: GroundingState, contentAtoms?: Record<string, Set<string>>): Record<string, boolean | number>;
|
|
43
|
+
//# sourceMappingURL=grounding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grounding.d.ts","sourceRoot":"","sources":["../../src/core/grounding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAoC,MAAM,cAAc,CAAC;AAE9E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CASlD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,OAAO,EAAE,GAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAgC7B;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,cAAc,EACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CA6MlC"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grounding: convert tool-call events into per-timestep predicate valuations.
|
|
3
|
+
*
|
|
4
|
+
* Port of sponsio/tracer/grounding.py (Det-relevant atoms).
|
|
5
|
+
*
|
|
6
|
+
* Supported atoms:
|
|
7
|
+
* called(tool) — tool was called at this timestep
|
|
8
|
+
* count(tool) — cumulative invocation count
|
|
9
|
+
* called_with(tool, pattern) — tool args match regex pattern
|
|
10
|
+
* count_with(tool, pattern) — cumulative count of pattern matches
|
|
11
|
+
* consecutive_count(tool) — how many times same tool called in a row
|
|
12
|
+
* arg_has(tool, pattern) — tool args (serialized) match regex
|
|
13
|
+
* arg_field_has(tool, field, p) — specific arg field matches regex
|
|
14
|
+
* arg_length_exceeds(tool, field, N) — field length > N chars
|
|
15
|
+
* arg_numeric(tool, field) — numeric value extracted from args (int)
|
|
16
|
+
* arg_paths_within(tool, *prefixes) — all paths in args within prefix set
|
|
17
|
+
* token_count(type) — cumulative tokens (from event.args.tokens)
|
|
18
|
+
* delegation_depth — depth of agent-to-agent delegation
|
|
19
|
+
*/
|
|
20
|
+
import { predKey } from "./formula.js";
|
|
21
|
+
export function newGroundingState() {
|
|
22
|
+
return {
|
|
23
|
+
callCounts: {},
|
|
24
|
+
callWithCounts: {},
|
|
25
|
+
lastTool: null,
|
|
26
|
+
consecutiveCounts: {},
|
|
27
|
+
tokenCounts: {},
|
|
28
|
+
delegationDepth: 0,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Collect content atoms from a formula tree.
|
|
33
|
+
* These are atoms whose grounding depends on event content (arg patterns).
|
|
34
|
+
*/
|
|
35
|
+
export function collectContentAtoms(formulas) {
|
|
36
|
+
const atoms = {};
|
|
37
|
+
function walk(node) {
|
|
38
|
+
if (node.kind === "Atom") {
|
|
39
|
+
const pred = node.predicate;
|
|
40
|
+
if ([
|
|
41
|
+
"called_with", "count_with",
|
|
42
|
+
"arg_has", "arg_field_has", "arg_length_exceeds", "arg_paths_within",
|
|
43
|
+
].includes(pred)) {
|
|
44
|
+
if (!atoms[pred])
|
|
45
|
+
atoms[pred] = new Set();
|
|
46
|
+
atoms[pred].add(node.args.join("|"));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (node.kind === "Var") {
|
|
50
|
+
if ([
|
|
51
|
+
"count_with", "count", "consecutive_count",
|
|
52
|
+
"arg_numeric", "token_count", "delegation_depth",
|
|
53
|
+
].includes(node.name)) {
|
|
54
|
+
const pred = node.name;
|
|
55
|
+
if (!atoms[pred])
|
|
56
|
+
atoms[pred] = new Set();
|
|
57
|
+
atoms[pred].add(node.args.join("|"));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Recurse into children
|
|
61
|
+
if ("child" in node && node.child)
|
|
62
|
+
walk(node.child);
|
|
63
|
+
if ("left" in node && node.left)
|
|
64
|
+
walk(node.left);
|
|
65
|
+
if ("right" in node && node.right)
|
|
66
|
+
walk(node.right);
|
|
67
|
+
}
|
|
68
|
+
for (const f of formulas)
|
|
69
|
+
walk(f);
|
|
70
|
+
return atoms;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Ground a single tool-call event into a predicate valuation dict.
|
|
74
|
+
*/
|
|
75
|
+
export function groundEvent(event, state, contentAtoms) {
|
|
76
|
+
const v = {};
|
|
77
|
+
const tool = event.tool;
|
|
78
|
+
const argsStr = event.args ? JSON.stringify(event.args) : "";
|
|
79
|
+
// called(tool)
|
|
80
|
+
v[predKey("called", tool)] = true;
|
|
81
|
+
// called_any — fires whenever any tool is invoked. Used by
|
|
82
|
+
// ``tool_allowlist`` to encode "whenever any tool runs, it must
|
|
83
|
+
// be one of the allowed ones".
|
|
84
|
+
v[predKey("called_any")] = true;
|
|
85
|
+
// count(tool)
|
|
86
|
+
state.callCounts[tool] = (state.callCounts[tool] || 0) + 1;
|
|
87
|
+
v[predKey("count", tool)] = state.callCounts[tool];
|
|
88
|
+
// consecutive_count(tool)
|
|
89
|
+
if (tool === state.lastTool) {
|
|
90
|
+
state.consecutiveCounts[tool] = (state.consecutiveCounts[tool] || 1) + 1;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
if (state.lastTool)
|
|
94
|
+
state.consecutiveCounts[state.lastTool] = 0;
|
|
95
|
+
state.consecutiveCounts[tool] = 1;
|
|
96
|
+
}
|
|
97
|
+
state.lastTool = tool;
|
|
98
|
+
v[predKey("consecutive_count", tool)] = state.consecutiveCounts[tool];
|
|
99
|
+
// called_with / count_with — regex on serialized args
|
|
100
|
+
if (contentAtoms) {
|
|
101
|
+
const cwPatterns = new Set();
|
|
102
|
+
for (const key of ["called_with", "count_with"]) {
|
|
103
|
+
const s = contentAtoms[key];
|
|
104
|
+
if (s)
|
|
105
|
+
for (const p of s)
|
|
106
|
+
cwPatterns.add(p);
|
|
107
|
+
}
|
|
108
|
+
for (const raw of cwPatterns) {
|
|
109
|
+
const parts = raw.split("|");
|
|
110
|
+
if (parts.length >= 2) {
|
|
111
|
+
const targetTool = parts[0];
|
|
112
|
+
const pattern = parts.slice(1).join("|");
|
|
113
|
+
if (targetTool === tool) {
|
|
114
|
+
const matched = new RegExp(pattern).test(argsStr);
|
|
115
|
+
v[predKey("called_with", targetTool, pattern)] = matched;
|
|
116
|
+
if (matched) {
|
|
117
|
+
const cwKey = `${targetTool}|${pattern}`;
|
|
118
|
+
state.callWithCounts[cwKey] = (state.callWithCounts[cwKey] || 0) + 1;
|
|
119
|
+
}
|
|
120
|
+
v[predKey("count_with", targetTool, pattern)] =
|
|
121
|
+
state.callWithCounts[`${targetTool}|${pattern}`] || 0;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// arg_has(tool, pattern)
|
|
126
|
+
const argHasPatterns = contentAtoms["arg_has"];
|
|
127
|
+
if (argHasPatterns && argsStr) {
|
|
128
|
+
for (const raw of argHasPatterns) {
|
|
129
|
+
const parts = raw.split("|");
|
|
130
|
+
if (parts.length >= 2) {
|
|
131
|
+
const targetTool = parts[0];
|
|
132
|
+
const pattern = parts.slice(1).join("|");
|
|
133
|
+
if (targetTool === tool) {
|
|
134
|
+
v[predKey("arg_has", targetTool, pattern)] = new RegExp(pattern).test(argsStr);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// arg_field_has(tool, field, pattern)
|
|
140
|
+
const afhPatterns = contentAtoms["arg_field_has"];
|
|
141
|
+
if (afhPatterns && event.args) {
|
|
142
|
+
for (const raw of afhPatterns) {
|
|
143
|
+
const parts = raw.split("|");
|
|
144
|
+
if (parts.length >= 3) {
|
|
145
|
+
const targetTool = parts[0];
|
|
146
|
+
const field = parts[1];
|
|
147
|
+
const pattern = parts.slice(2).join("|");
|
|
148
|
+
if (targetTool === tool) {
|
|
149
|
+
const fieldVal = event.args[field];
|
|
150
|
+
const matched = fieldVal != null && new RegExp(pattern).test(String(fieldVal));
|
|
151
|
+
v[predKey("arg_field_has", targetTool, field, pattern)] = matched;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// arg_length_exceeds(tool, field, max_chars)
|
|
157
|
+
const ale = contentAtoms["arg_length_exceeds"];
|
|
158
|
+
if (ale && event.args) {
|
|
159
|
+
for (const raw of ale) {
|
|
160
|
+
const parts = raw.split("|");
|
|
161
|
+
if (parts.length >= 3) {
|
|
162
|
+
const targetTool = parts[0];
|
|
163
|
+
const field = parts[1];
|
|
164
|
+
const maxChars = parseInt(parts[2], 10) || 500;
|
|
165
|
+
if (targetTool === tool) {
|
|
166
|
+
const fieldVal = event.args[field] ?? "";
|
|
167
|
+
v[predKey("arg_length_exceeds", targetTool, field, String(maxChars))] =
|
|
168
|
+
String(fieldVal).length > maxChars;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// arg_numeric(tool, field) — extract numeric value via 3 strategies:
|
|
174
|
+
// 1. Direct dict key
|
|
175
|
+
// 2. CLI flag "--field VALUE"
|
|
176
|
+
// 3. Positional token in command string
|
|
177
|
+
const anPatterns = contentAtoms["arg_numeric"];
|
|
178
|
+
if (anPatterns) {
|
|
179
|
+
for (const raw of anPatterns) {
|
|
180
|
+
const parts = raw.split("|");
|
|
181
|
+
if (parts.length >= 2) {
|
|
182
|
+
const targetTool = parts[0];
|
|
183
|
+
const field = parts[1];
|
|
184
|
+
if (targetTool === tool) {
|
|
185
|
+
let numericVal = null;
|
|
186
|
+
// Strategy 1: direct dict key
|
|
187
|
+
if (event.args && field in event.args) {
|
|
188
|
+
const val = event.args[field];
|
|
189
|
+
const n = typeof val === "number" ? val : parseFloat(String(val));
|
|
190
|
+
if (!isNaN(n))
|
|
191
|
+
numericVal = n;
|
|
192
|
+
}
|
|
193
|
+
// Strategy 2: CLI --field VALUE
|
|
194
|
+
if (numericVal == null && argsStr) {
|
|
195
|
+
const flagRe = new RegExp(`--${field.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\s+([+-]?\\d+(?:\\.\\d+)?)`);
|
|
196
|
+
const m = argsStr.match(flagRe);
|
|
197
|
+
if (m)
|
|
198
|
+
numericVal = parseFloat(m[1]);
|
|
199
|
+
}
|
|
200
|
+
// Strategy 3: positional index
|
|
201
|
+
if (numericVal == null && event.args && /^\d+$/.test(field)) {
|
|
202
|
+
const cmdStr = String(event.args.command ?? "");
|
|
203
|
+
const tokens = cmdStr.split(/\s+/);
|
|
204
|
+
const pos = parseInt(field, 10);
|
|
205
|
+
if (pos < tokens.length) {
|
|
206
|
+
const n = parseFloat(tokens[pos]);
|
|
207
|
+
if (!isNaN(n))
|
|
208
|
+
numericVal = n;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (numericVal != null) {
|
|
212
|
+
v[predKey("arg_numeric", targetTool, field)] = numericVal;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// arg_paths_within(tool, *prefixes) — all /-paths in args within prefix set
|
|
219
|
+
const apw = contentAtoms["arg_paths_within"];
|
|
220
|
+
if (apw && argsStr) {
|
|
221
|
+
for (const raw of apw) {
|
|
222
|
+
const parts = raw.split("|");
|
|
223
|
+
if (parts.length >= 2) {
|
|
224
|
+
const targetTool = parts[0];
|
|
225
|
+
const prefixes = parts.slice(1);
|
|
226
|
+
if (targetTool === tool) {
|
|
227
|
+
const paths = argsStr.match(/(\/[^\s;|&>"']+)/g) ?? [];
|
|
228
|
+
const allWithin = paths.length === 0 ||
|
|
229
|
+
paths.every((p) => prefixes.some((pre) => p.startsWith(pre)));
|
|
230
|
+
v[predKey("arg_paths_within", targetTool, ...prefixes)] = allWithin;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// token_count(type) — cumulative token count
|
|
237
|
+
// Extract from event.args.tokens if present (gen_ai.usage.* convention)
|
|
238
|
+
if (event.args) {
|
|
239
|
+
const tokens = event.args.tokens;
|
|
240
|
+
if (tokens) {
|
|
241
|
+
if (typeof tokens.input === "number") {
|
|
242
|
+
state.tokenCounts["input_tokens"] = (state.tokenCounts["input_tokens"] || 0) + tokens.input;
|
|
243
|
+
}
|
|
244
|
+
if (typeof tokens.output === "number") {
|
|
245
|
+
state.tokenCounts["output_tokens"] = (state.tokenCounts["output_tokens"] || 0) + tokens.output;
|
|
246
|
+
}
|
|
247
|
+
const total = (tokens.input || 0) + (tokens.output || 0);
|
|
248
|
+
state.tokenCounts["total"] = (state.tokenCounts["total"] || 0) + total;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
for (const [scope, cnt] of Object.entries(state.tokenCounts)) {
|
|
252
|
+
v[predKey("token_count", scope)] = cnt;
|
|
253
|
+
}
|
|
254
|
+
// delegation_depth — incremented by event.event_type === "delegation"
|
|
255
|
+
if (event.event_type === "delegation") {
|
|
256
|
+
state.delegationDepth += 1;
|
|
257
|
+
}
|
|
258
|
+
v[predKey("delegation_depth")] = state.delegationDepth;
|
|
259
|
+
// Emit count/count_with for all tracked vars
|
|
260
|
+
for (const [t, cnt] of Object.entries(state.callCounts)) {
|
|
261
|
+
v[predKey("count", t)] = cnt;
|
|
262
|
+
}
|
|
263
|
+
for (const [key, cnt] of Object.entries(state.callWithCounts)) {
|
|
264
|
+
const [t, p] = [key.split("|")[0], key.split("|").slice(1).join("|")];
|
|
265
|
+
v[predKey("count_with", t, p)] = cnt;
|
|
266
|
+
}
|
|
267
|
+
return v;
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=grounding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../src/core/grounding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NL → Formula parser (rule-based keyword matching).
|
|
3
|
+
*
|
|
4
|
+
* Simplified port of sponsio/generation/nl_to_contract.py.
|
|
5
|
+
* Handles common NL patterns like:
|
|
6
|
+
* "tool `A` must precede `B`"
|
|
7
|
+
* "tool `X` at most 3 times"
|
|
8
|
+
* "tools `A` and `B` are mutually exclusive"
|
|
9
|
+
*/
|
|
10
|
+
import type { DetFormula } from "./patterns.js";
|
|
11
|
+
export declare function parseNl(text: string): DetFormula | null;
|
|
12
|
+
//# sourceMappingURL=nl-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nl-parser.d.ts","sourceRoot":"","sources":["../../src/core/nl-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmHhD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA8CvD"}
|