chiasmus 0.1.1 → 0.1.2
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/README.md +8 -0
- package/dist/formalize/engine.d.ts.map +1 -1
- package/dist/formalize/engine.js +22 -33
- package/dist/formalize/engine.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +116 -73
- package/dist/mcp-server.js.map +1 -1
- package/dist/skills/learner.d.ts.map +1 -1
- package/dist/skills/learner.js +4 -18
- package/dist/skills/learner.js.map +1 -1
- package/dist/skills/starters.d.ts.map +1 -1
- package/dist/skills/starters.js +153 -73
- package/dist/skills/starters.js.map +1 -1
- package/dist/skills/types.d.ts +4 -0
- package/dist/skills/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
MCP server that gives LLMs access to formal verification via Z3 (SMT solver) and Tau Prolog. Translates natural language problems into formal logic using a template-based pipeline, verifies results with mathematical certainty.
|
|
4
4
|
|
|
5
|
+
### Example use cases
|
|
6
|
+
|
|
7
|
+
- **"Can our RBAC rules ever conflict?"** → Z3 finds the exact role/action/resource triple where allow and deny both fire
|
|
8
|
+
- **"Find compatible package versions"** → Z3 solves dependency constraints with incompatibility rules, returns a valid assignment or proves none exists
|
|
9
|
+
- **"Can user input reach the database?"** → Prolog traces all paths through the call graph, flags taint flows to sensitive sinks
|
|
10
|
+
- **"Are our frontend and backend validations consistent?"** → Z3 finds concrete inputs that pass one but fail the other (e.g. age=15 passes frontend min=13 but fails backend min=18)
|
|
11
|
+
- **"Does our workflow have dead-end or unreachable states?"** → Prolog checks reachability from the initial state, identifies orphaned and terminal nodes
|
|
12
|
+
|
|
5
13
|
## Setup
|
|
6
14
|
|
|
7
15
|
```bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/formalize/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAe,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wDAAwD;IACxD,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/formalize/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAe,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wDAAwD;IACxD,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAgBD,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,GAAG;gBADH,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,UAAU;IAGzB;;;OAGG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAU1D;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAuCjE,OAAO,CAAC,iBAAiB;YAwCX,OAAO;YAUP,MAAM;IAwBpB,OAAO,CAAC,gBAAgB;IAsBxB;;;OAGG;YACW,QAAQ;IAuCtB,gEAAgE;IAChE,OAAO,CAAC,aAAa;CAMtB"}
|
package/dist/formalize/engine.js
CHANGED
|
@@ -1,30 +1,17 @@
|
|
|
1
1
|
import { correctionLoop } from "../solvers/correction-loop.js";
|
|
2
2
|
import { lintSpec } from "./validate.js";
|
|
3
|
-
const FORMALIZE_SYSTEM = `
|
|
3
|
+
const FORMALIZE_SYSTEM = `Formalization engine. Translate natural language → formal logic.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
2. Read the template skeleton and slot descriptions
|
|
8
|
-
3. Use the template as a STARTING POINT — fill the slots, but also adapt the structure if the problem requires it
|
|
9
|
-
4. You may add extra variables, assertions, or rules beyond what the template defines
|
|
10
|
-
5. You may remove or restructure parts of the skeleton that don't fit the specific problem
|
|
11
|
-
6. Return ONLY the complete specification — no explanation, no markdown fences, no comments outside the spec
|
|
5
|
+
Template = starting point. Fill slots, but adapt structure if needed. Add/remove variables, assertions, rules.
|
|
6
|
+
Output ONLY complete spec. No explanation, no markdown fences.
|
|
12
7
|
|
|
13
|
-
|
|
8
|
+
Z3: valid SMT-LIB. No (check-sat)/(get-model). Use (= flag (or ...)) not (=> ... flag).
|
|
9
|
+
Prolog: valid ISO Prolog. All clauses end with period.
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
Precise syntax — spec goes directly to solver.`;
|
|
12
|
+
const FIX_SYSTEM = `Fix failed formal spec. Return ONLY corrected spec. No explanation, no fences.
|
|
17
13
|
|
|
18
|
-
|
|
19
|
-
const FIX_SYSTEM = `You are a formal logic repair engine. You receive a specification that failed verification and the error message from the solver.
|
|
20
|
-
|
|
21
|
-
Fix the specification to resolve the error. Return ONLY the corrected specification — no explanation, no markdown fences.
|
|
22
|
-
|
|
23
|
-
Common issues:
|
|
24
|
-
- Type mismatches: ensure all comparisons use matching types
|
|
25
|
-
- Missing declarations: every constant must be declared before use
|
|
26
|
-
- Syntax errors: check parentheses, commas, periods
|
|
27
|
-
- For Prolog: ensure all clauses end with a period`;
|
|
14
|
+
Common fixes: type mismatches → matching types | missing declarations → declare before use | unbalanced parens | Prolog missing periods.`;
|
|
28
15
|
export class FormalizationEngine {
|
|
29
16
|
library;
|
|
30
17
|
llm;
|
|
@@ -85,28 +72,30 @@ export class FormalizationEngine {
|
|
|
85
72
|
.map((n) => ` - ${n.source}: ${n.transform}`)
|
|
86
73
|
.join("\n");
|
|
87
74
|
const queryNote = template.solver === "prolog"
|
|
88
|
-
? `\
|
|
75
|
+
? `\nAlso provide Prolog query goal (ending with period) for the question.`
|
|
76
|
+
: "";
|
|
77
|
+
const tipsSection = template.tips?.length
|
|
78
|
+
? `\n⚠ TIPS:\n${template.tips.map((t) => ` ${t}`).join("\n")}`
|
|
79
|
+
: "";
|
|
80
|
+
const exampleSection = template.example
|
|
81
|
+
? `\nEXAMPLE (reference only — write your own):\n${template.example}`
|
|
89
82
|
: "";
|
|
90
|
-
return
|
|
91
|
-
DESCRIPTION: ${template.signature}
|
|
83
|
+
return `${template.name} (${template.solver}) — ${template.signature}
|
|
92
84
|
|
|
93
85
|
SKELETON:
|
|
94
86
|
${template.skeleton}
|
|
95
87
|
|
|
96
|
-
SLOTS
|
|
88
|
+
SLOTS:
|
|
97
89
|
${slotDescs}
|
|
98
90
|
|
|
99
|
-
|
|
100
|
-
${
|
|
101
|
-
${queryNote}
|
|
91
|
+
NORMALIZE: ${normGuidance}
|
|
92
|
+
${tipsSection}${exampleSection}${queryNote}
|
|
102
93
|
|
|
103
94
|
PROBLEM: ${problem}
|
|
104
95
|
|
|
105
|
-
Fill
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
${template.solver === "z3" ? "Do NOT include (check-sat) or (get-model) — the tool adds these automatically." : "Ensure all clauses end with a period."}
|
|
109
|
-
Return only the complete filled specification.`;
|
|
96
|
+
Fill {{SLOT:name}} markers. Template = starting point — adapt if needed. Add/remove parts freely.
|
|
97
|
+
${template.solver === "z3" ? "No (check-sat)/(get-model)." : "All clauses end with period."}
|
|
98
|
+
Output ONLY filled spec.`;
|
|
110
99
|
}
|
|
111
100
|
async llmFill(problem, template) {
|
|
112
101
|
const instructions = this.buildInstructions(problem, template);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/formalize/engine.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAmBzC,MAAM,gBAAgB,GAAG
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/formalize/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAQnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAQnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AA+cD,wBAAsB,oBAAoB,CACxC,YAAY,CAAC,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,UAAU,GAAG,IAAI,GAC9B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAA;CAAE,CAAC,CAiD5F"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -8,6 +8,7 @@ import { SolverSession } from "./solvers/session.js";
|
|
|
8
8
|
import { SkillLibrary } from "./skills/library.js";
|
|
9
9
|
import { FormalizationEngine } from "./formalize/engine.js";
|
|
10
10
|
import { SkillLearner } from "./skills/learner.js";
|
|
11
|
+
import { lintSpec } from "./formalize/validate.js";
|
|
11
12
|
import { createLLMFromEnv } from "./llm/anthropic.js";
|
|
12
13
|
export function getChiasmusHome() {
|
|
13
14
|
return process.env.CHIASMUS_HOME ?? join(homedir(), ".chiasmus");
|
|
@@ -15,34 +16,30 @@ export function getChiasmusHome() {
|
|
|
15
16
|
const TOOLS = [
|
|
16
17
|
{
|
|
17
18
|
name: "chiasmus_verify",
|
|
18
|
-
description: `Submit
|
|
19
|
+
description: `Submit formal logic to solver. Returns verified result.
|
|
19
20
|
|
|
20
21
|
SOLVERS:
|
|
21
|
-
z3
|
|
22
|
-
prolog
|
|
22
|
+
z3 — SMT-LIB format → SAT + model | UNSAT | error
|
|
23
|
+
prolog — facts/rules + query goal → answers | error
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
- Derive conclusions: "what follows from these facts and rules?"
|
|
25
|
+
Z3 RULES:
|
|
26
|
+
⚠ No (check-sat)/(get-model) — added automatically
|
|
27
|
+
⚠ Use (= flag (or ...)) NOT (=> ... flag) — implication → trivially SAT
|
|
28
|
+
⚠ No (define-fun) with args — breaks model extraction. Use (declare-const) + (assert (=)) instead
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
PROLOG RULES:
|
|
31
|
+
⚠ All clauses end with period
|
|
32
|
+
⚠ No recursive reachability on cyclic graphs — Tau Prolog lacks tabling → infinite loop. Query edges individually, BFS externally.
|
|
33
|
+
⚠ Use "queries" param (JSON array) to batch multiple queries against same program in one call
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
(assert (> y 0))
|
|
41
|
-
|
|
42
|
-
Prolog (derive permissions):
|
|
43
|
-
solver: "prolog"
|
|
44
|
-
input: "role(alice, admin). can_access(X, resource) :- role(X, admin)."
|
|
45
|
-
query: "can_access(alice, resource)."`,
|
|
35
|
+
Z3 EXAMPLE (RBAC conflict):
|
|
36
|
+
(declare-datatypes ((Role 0)) (((admin) (editor))))
|
|
37
|
+
(declare-datatypes ((Action 0)) (((read) (write))))
|
|
38
|
+
(declare-const r Role) (declare-const a Action)
|
|
39
|
+
(declare-const allowed Bool) (declare-const denied Bool)
|
|
40
|
+
(assert (= allowed (or (and (= r admin) (= a read)) (and (= r editor) (= a write)))))
|
|
41
|
+
(assert (= denied (or (and (= r editor) (= a write)))))
|
|
42
|
+
(assert allowed) (assert denied)`,
|
|
46
43
|
inputSchema: {
|
|
47
44
|
type: "object",
|
|
48
45
|
properties: {
|
|
@@ -57,7 +54,12 @@ EXAMPLES:
|
|
|
57
54
|
},
|
|
58
55
|
query: {
|
|
59
56
|
type: "string",
|
|
60
|
-
description: "Prolog query goal (required for prolog
|
|
57
|
+
description: "Prolog query goal (required for prolog unless queries is set). Must end with period.",
|
|
58
|
+
},
|
|
59
|
+
queries: {
|
|
60
|
+
type: "array",
|
|
61
|
+
items: { type: "string" },
|
|
62
|
+
description: "Batch mode: array of Prolog query goals. Runs all against same program. Returns array of results.",
|
|
61
63
|
},
|
|
62
64
|
},
|
|
63
65
|
required: ["solver", "input"],
|
|
@@ -65,22 +67,12 @@ EXAMPLES:
|
|
|
65
67
|
},
|
|
66
68
|
{
|
|
67
69
|
name: "chiasmus_skills",
|
|
68
|
-
description: `Search
|
|
69
|
-
|
|
70
|
-
Returns matching templates with their skeletons, slot definitions, normalization recipes,
|
|
71
|
-
and usage metadata (reuse count, success rate).
|
|
72
|
-
|
|
73
|
-
Use this to find an appropriate template before calling chiasmus_verify or chiasmus_solve.
|
|
70
|
+
description: `Search/list formalization templates. Returns skeletons, slots, normalization recipes, usage metadata.
|
|
74
71
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
List all Prolog templates:
|
|
80
|
-
solver: "prolog"
|
|
81
|
-
|
|
82
|
-
Get a specific template:
|
|
83
|
-
name: "policy-contradiction"`,
|
|
72
|
+
Find template before chiasmus_verify or chiasmus_formalize.
|
|
73
|
+
query: "access control policies conflict" → search
|
|
74
|
+
solver: "prolog" → filter by solver
|
|
75
|
+
name: "policy-contradiction" → exact lookup`,
|
|
84
76
|
inputSchema: {
|
|
85
77
|
type: "object",
|
|
86
78
|
properties: {
|
|
@@ -106,18 +98,12 @@ EXAMPLES:
|
|
|
106
98
|
},
|
|
107
99
|
{
|
|
108
100
|
name: "chiasmus_formalize",
|
|
109
|
-
description: `Find
|
|
110
|
-
|
|
111
|
-
This is a GUIDED workflow: the tool finds the right template and tells you how to fill it.
|
|
112
|
-
You then fill the slots and submit the result via chiasmus_verify.
|
|
101
|
+
description: `Find best template for problem → return skeleton + slot-filling instructions + tips.
|
|
113
102
|
|
|
114
|
-
|
|
115
|
-
1.
|
|
116
|
-
2.
|
|
117
|
-
3.
|
|
118
|
-
4. Submit the filled specification via chiasmus_verify
|
|
119
|
-
|
|
120
|
-
Use this when you want full control over the formalization process.`,
|
|
103
|
+
Guided workflow:
|
|
104
|
+
1. chiasmus_formalize → get template + slots + tips
|
|
105
|
+
2. Fill slots using your context
|
|
106
|
+
3. chiasmus_verify → verified result`,
|
|
121
107
|
inputSchema: {
|
|
122
108
|
type: "object",
|
|
123
109
|
properties: {
|
|
@@ -131,17 +117,10 @@ Use this when you want full control over the formalization process.`,
|
|
|
131
117
|
},
|
|
132
118
|
{
|
|
133
119
|
name: "chiasmus_solve",
|
|
134
|
-
description: `End-to-end:
|
|
135
|
-
|
|
136
|
-
Uses an LLM to select a template, fill slots, and run the correction loop.
|
|
137
|
-
Requires ANTHROPIC_API_KEY to be set. Without it, falls back to returning
|
|
138
|
-
template instructions (same as chiasmus_formalize).
|
|
120
|
+
description: `End-to-end: select template → fill slots → lint → verify → correction loop.
|
|
139
121
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
- The problem maps to a known domain (authorization, config, dependency, rules, reachability)
|
|
143
|
-
|
|
144
|
-
Returns the verified solver result, the template used, and correction loop history.`,
|
|
122
|
+
Needs ANTHROPIC_API_KEY | DEEPSEEK_API_KEY | OPENAI_API_KEY. Without key → falls back to chiasmus_formalize.
|
|
123
|
+
Returns: verified result + template used + correction history.`,
|
|
145
124
|
inputSchema: {
|
|
146
125
|
type: "object",
|
|
147
126
|
properties: {
|
|
@@ -155,19 +134,10 @@ Returns the verified solver result, the template used, and correction loop histo
|
|
|
155
134
|
},
|
|
156
135
|
{
|
|
157
136
|
name: "chiasmus_learn",
|
|
158
|
-
description: `Extract
|
|
159
|
-
|
|
160
|
-
After solving a problem with chiasmus_verify, call this to generalize the solution into a
|
|
161
|
-
reusable template. The template is stored as a candidate — it gets promoted to full status
|
|
162
|
-
after being successfully reused ${3} times.
|
|
137
|
+
description: `Extract reusable template from verified solution → add to skill library.
|
|
163
138
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
WORKFLOW:
|
|
167
|
-
1. Solve a problem with chiasmus_verify
|
|
168
|
-
2. Call chiasmus_learn with the verified spec and problem description
|
|
169
|
-
3. The extracted template appears in chiasmus_skills searches
|
|
170
|
-
4. Future similar problems can use the template via chiasmus_formalize`,
|
|
139
|
+
Generalizes concrete spec into parameterized template. Stored as candidate → promoted after 3+ successful reuses.
|
|
140
|
+
Needs API key. Flow: chiasmus_verify → chiasmus_learn → template appears in chiasmus_skills.`,
|
|
171
141
|
inputSchema: {
|
|
172
142
|
type: "object",
|
|
173
143
|
properties: {
|
|
@@ -188,6 +158,29 @@ WORKFLOW:
|
|
|
188
158
|
required: ["solver", "spec", "problem"],
|
|
189
159
|
},
|
|
190
160
|
},
|
|
161
|
+
{
|
|
162
|
+
name: "chiasmus_lint",
|
|
163
|
+
description: `Fast structural validation of formal spec without running solver.
|
|
164
|
+
|
|
165
|
+
Auto-fixes: markdown fences, (check-sat)/(get-model), (set-logic).
|
|
166
|
+
Checks: balanced parens, unfilled {{SLOT:}} markers, missing periods (Prolog).
|
|
167
|
+
Returns cleaned spec + fixes applied + remaining errors.`,
|
|
168
|
+
inputSchema: {
|
|
169
|
+
type: "object",
|
|
170
|
+
properties: {
|
|
171
|
+
solver: {
|
|
172
|
+
type: "string",
|
|
173
|
+
enum: ["z3", "prolog"],
|
|
174
|
+
description: "Solver type for syntax rules",
|
|
175
|
+
},
|
|
176
|
+
input: {
|
|
177
|
+
type: "string",
|
|
178
|
+
description: "Spec to lint",
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
required: ["solver", "input"],
|
|
182
|
+
},
|
|
183
|
+
},
|
|
191
184
|
];
|
|
192
185
|
async function handleVerify(args) {
|
|
193
186
|
const solver = args.solver;
|
|
@@ -213,10 +206,36 @@ async function handleVerify(args) {
|
|
|
213
206
|
}
|
|
214
207
|
}
|
|
215
208
|
else if (solver === "prolog") {
|
|
209
|
+
const queries = args.queries;
|
|
210
|
+
if (queries && Array.isArray(queries) && queries.length > 0) {
|
|
211
|
+
// Validate all items are strings
|
|
212
|
+
if (queries.some((q) => typeof q !== "string")) {
|
|
213
|
+
return {
|
|
214
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
215
|
+
status: "error",
|
|
216
|
+
error: "queries array must contain only strings",
|
|
217
|
+
}) }],
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
// Batch mode: run multiple queries against same program
|
|
221
|
+
const session = await SolverSession.create("prolog");
|
|
222
|
+
try {
|
|
223
|
+
const results = [];
|
|
224
|
+
for (const q of queries) {
|
|
225
|
+
results.push(await session.solve({ type: "prolog", program: input, query: q }));
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
content: [{ type: "text", text: JSON.stringify(results, null, 2) }],
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
finally {
|
|
232
|
+
session.dispose();
|
|
233
|
+
}
|
|
234
|
+
}
|
|
216
235
|
if (!query) {
|
|
217
236
|
result = {
|
|
218
237
|
status: "error",
|
|
219
|
-
error: "
|
|
238
|
+
error: "'query' or 'queries' parameter required for prolog solver",
|
|
220
239
|
};
|
|
221
240
|
}
|
|
222
241
|
else {
|
|
@@ -395,6 +414,28 @@ async function handleLearn(learner, args) {
|
|
|
395
414
|
}, null, 2) }],
|
|
396
415
|
};
|
|
397
416
|
}
|
|
417
|
+
function handleLint(args) {
|
|
418
|
+
const solver = args.solver;
|
|
419
|
+
const input = args.input;
|
|
420
|
+
if (typeof solver !== "string" || typeof input !== "string") {
|
|
421
|
+
return {
|
|
422
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
423
|
+
error: "Required: solver (string), input (string)",
|
|
424
|
+
}) }],
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
if (solver !== "z3" && solver !== "prolog") {
|
|
428
|
+
return {
|
|
429
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
430
|
+
error: `Unknown solver: ${solver}. Use "z3" or "prolog".`,
|
|
431
|
+
}) }],
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
const result = lintSpec(input, solver);
|
|
435
|
+
return {
|
|
436
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
437
|
+
};
|
|
438
|
+
}
|
|
398
439
|
export async function createChiasmusServer(chiasmusHome, llmOverride) {
|
|
399
440
|
const home = chiasmusHome ?? getChiasmusHome();
|
|
400
441
|
const library = await SkillLibrary.create(home);
|
|
@@ -423,6 +464,8 @@ export async function createChiasmusServer(chiasmusHome, llmOverride) {
|
|
|
423
464
|
return handleSolve(formalizer, library, args ?? {});
|
|
424
465
|
case "chiasmus_learn":
|
|
425
466
|
return handleLearn(learner, args ?? {});
|
|
467
|
+
case "chiasmus_lint":
|
|
468
|
+
return handleLint(args ?? {});
|
|
426
469
|
default:
|
|
427
470
|
return {
|
|
428
471
|
content: [
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learner.d.ts","sourceRoot":"","sources":["../../src/skills/learner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAA0B,MAAM,YAAY,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"learner.d.ts","sourceRoot":"","sources":["../../src/skills/learner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAA0B,MAAM,YAAY,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAatD,qBAAa,YAAY;IAErB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,GAAG;gBADH,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,UAAU;IAGzB;;;OAGG;IACG,eAAe,CACnB,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAkEhC,kFAAkF;IAClF,eAAe,IAAI,IAAI;IAiBvB,4DAA4D;IAC5D,OAAO,CAAC,WAAW;IAUnB,yDAAyD;IACzD,OAAO,CAAC,cAAc;CAOvB"}
|
package/dist/skills/learner.js
CHANGED
|
@@ -1,26 +1,12 @@
|
|
|
1
1
|
const PROMOTION_THRESHOLD = 3;
|
|
2
2
|
const PROMOTION_SUCCESS_RATE = 0.6;
|
|
3
3
|
const DEDUP_SIMILARITY_THRESHOLD = 0.7;
|
|
4
|
-
const EXTRACT_SYSTEM = `
|
|
4
|
+
const EXTRACT_SYSTEM = `Extract reusable template from verified spec.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
1. Identify which parts are problem-specific (concrete values) vs structural (the pattern)
|
|
8
|
-
2. Replace concrete values with {{SLOT:name}} markers
|
|
9
|
-
3. Name and describe each slot
|
|
10
|
-
4. Write a general signature that describes the class of problems this template solves
|
|
11
|
-
5. Suggest normalization recipes for common input formats
|
|
6
|
+
Concrete values → {{SLOT:name}} markers. Name each slot. Write general signature. Suggest normalizations.
|
|
12
7
|
|
|
13
|
-
Return
|
|
14
|
-
{
|
|
15
|
-
"name": "kebab-case-name",
|
|
16
|
-
"domain": "one of: authorization, configuration, dependency, validation, rules, analysis",
|
|
17
|
-
"signature": "Natural language description of what class of problems this solves",
|
|
18
|
-
"slots": [{ "name": "slot_name", "description": "what goes here", "format": "example" }],
|
|
19
|
-
"normalizations": [{ "source": "input format", "transform": "how to map it" }],
|
|
20
|
-
"skeleton": "the template with {{SLOT:name}} markers"
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
Return ONLY valid JSON, no markdown fences, no explanation.`;
|
|
8
|
+
Return JSON only — no fences, no explanation:
|
|
9
|
+
{"name":"kebab-case","domain":"authorization|configuration|dependency|validation|rules|analysis","signature":"what class of problems this solves","slots":[{"name":"x","description":"what","format":"example"}],"normalizations":[{"source":"format","transform":"how"}],"skeleton":"template with {{SLOT:name}}"}`;
|
|
24
10
|
export class SkillLearner {
|
|
25
11
|
library;
|
|
26
12
|
llm;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learner.js","sourceRoot":"","sources":["../../src/skills/learner.ts"],"names":[],"mappings":"AAKA,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC,MAAM,cAAc,GAAG
|
|
1
|
+
{"version":3,"file":"learner.js","sourceRoot":"","sources":["../../src/skills/learner.ts"],"names":[],"mappings":"AAKA,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC,MAAM,cAAc,GAAG;;;;;oTAK6R,CAAC;AAErT,MAAM,OAAO,YAAY;IAEb;IACA;IAFV,YACU,OAAqB,EACrB,GAAe;QADf,YAAO,GAAP,OAAO,CAAc;QACrB,QAAG,GAAH,GAAG,CAAY;IACtB,CAAC;IAEJ;;;OAGG;IACH,KAAK,CAAC,eAAe,CACnB,MAAkB,EAClB,YAAoB,EACpB,kBAA0B;QAE1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE;YACvD;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,WAAW,MAAM;;EAEhC,YAAY;;uBAES,kBAAkB;;yDAEgB;aAClD;SACF,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,OAAO,GAAG,QAAQ;aACrB,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;aACjC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;aACxB,IAAI,EAAE,CAAC;QAEV,IAAI,MAA+B,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2BAA2B;QAC3B,IACE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAC/B,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YACjC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YACpC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACnC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EACrC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAkB;YAC9B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM;YACN,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAG,MAAM,CAAC,KAAmB,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAC1B,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;gBACjC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAC/B;YACD,cAAc,EAAG,MAAM,CAAC,cAAkC,CAAC,MAAM,CAC/D,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CACvE;SACF,CAAC;QAEF,uBAAuB;QACvB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,kFAAkF;IAClF,eAAe;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;gBAAE,SAAS;YACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,mBAAmB;gBAAE,SAAS;YAE7D,MAAM,WAAW,GACf,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU;gBACvD,CAAC,CAAC,CAAC,CAAC;YAER,IAAI,WAAW,IAAI,sBAAsB,EAAE,CAAC;gBAC1C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,4DAA4D;IACpD,WAAW,CAAC,SAAwB;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACvE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,0BAA0B,EAAE,CAAC;gBACrG,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yDAAyD;IACjD,cAAc,CAAC,CAAS,EAAE,CAAS;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACrE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starters.d.ts","sourceRoot":"","sources":["../../src/skills/starters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,iBAAiB,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"starters.d.ts","sourceRoot":"","sources":["../../src/skills/starters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,iBAAiB,EAAE,aAAa,EA4d5C,CAAC"}
|
package/dist/skills/starters.js
CHANGED
|
@@ -9,60 +9,81 @@ export const STARTER_TEMPLATES = [
|
|
|
9
9
|
; Principals, resources, and actions as enumerated types
|
|
10
10
|
{{SLOT:type_declarations}}
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
(declare-const
|
|
14
|
-
(declare-const
|
|
15
|
-
(declare-const action {{SLOT:action_type}})
|
|
12
|
+
(declare-const r {{SLOT:principal_type}})
|
|
13
|
+
(declare-const a {{SLOT:action_type}})
|
|
14
|
+
(declare-const res {{SLOT:resource_type}})
|
|
16
15
|
(declare-const allowed Bool)
|
|
17
16
|
(declare-const denied Bool)
|
|
18
17
|
|
|
19
|
-
;
|
|
20
|
-
{{SLOT:
|
|
18
|
+
; allowed is true IFF the (r, a, res) triple matches ANY allow rule
|
|
19
|
+
(assert (= allowed (or {{SLOT:allow_rules}})))
|
|
20
|
+
|
|
21
|
+
; denied is true IFF the (r, a, res) triple matches ANY deny rule
|
|
22
|
+
(assert (= denied (or {{SLOT:deny_rules}})))
|
|
21
23
|
|
|
22
|
-
; Check: can both
|
|
24
|
+
; Check: can both be true simultaneously?
|
|
23
25
|
(assert allowed)
|
|
24
26
|
(assert denied)`,
|
|
25
27
|
slots: [
|
|
26
28
|
{
|
|
27
29
|
name: "type_declarations",
|
|
28
|
-
description: "SMT-LIB declare-datatypes for principals,
|
|
29
|
-
format: "(declare-datatypes ((
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
name: "principal_type",
|
|
33
|
-
description: "The type name for principals",
|
|
34
|
-
format: "Principal",
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
name: "resource_type",
|
|
38
|
-
description: "The type name for resources",
|
|
39
|
-
format: "Resource",
|
|
30
|
+
description: "SMT-LIB declare-datatypes for principals, actions, resources",
|
|
31
|
+
format: "(declare-datatypes ((Role 0)) (((admin) (editor) (viewer))))\n(declare-datatypes ((Action 0)) (((read) (write) (delete))))\n(declare-datatypes ((Resource 0)) (((docs) (settings))))",
|
|
40
32
|
},
|
|
33
|
+
{ name: "principal_type", description: "Type name for principals", format: "Role" },
|
|
34
|
+
{ name: "action_type", description: "Type name for actions", format: "Action" },
|
|
35
|
+
{ name: "resource_type", description: "Type name for resources", format: "Resource" },
|
|
41
36
|
{
|
|
42
|
-
name: "
|
|
43
|
-
description: "
|
|
44
|
-
format: "
|
|
37
|
+
name: "allow_rules",
|
|
38
|
+
description: "OR of all allow conditions — each is (and (= r X) (= a Y) (= res Z))",
|
|
39
|
+
format: "(and (= r admin) (= a read) (= res docs))\n (and (= r editor) (= a write) (= res docs))",
|
|
45
40
|
},
|
|
46
41
|
{
|
|
47
|
-
name: "
|
|
48
|
-
description: "
|
|
49
|
-
format: "(
|
|
42
|
+
name: "deny_rules",
|
|
43
|
+
description: "OR of all deny conditions — each is (and (= r X) (= a Y) (= res Z))",
|
|
44
|
+
format: "(and (= r editor) (= a delete) (= res docs))",
|
|
50
45
|
},
|
|
51
46
|
],
|
|
52
47
|
normalizations: [
|
|
53
48
|
{
|
|
54
49
|
source: "AWS IAM JSON",
|
|
55
|
-
transform: "Map each Statement's Effect/Principal/Action/Resource to
|
|
50
|
+
transform: "Map each Statement's Effect/Principal/Action/Resource to an (and ...) clause",
|
|
56
51
|
},
|
|
57
52
|
{
|
|
58
53
|
source: "Kubernetes RBAC",
|
|
59
|
-
transform: "Expand rules[].{verbs, resources
|
|
54
|
+
transform: "Expand rules[].{verbs, resources} into (and (= a verb) (= res resource)) clauses",
|
|
60
55
|
},
|
|
61
56
|
{
|
|
62
57
|
source: "natural language",
|
|
63
|
-
transform: "Extract entities, classify as principal/resource
|
|
58
|
+
transform: "Extract entities, classify as principal/action/resource, build (and ...) clauses",
|
|
64
59
|
},
|
|
65
60
|
],
|
|
61
|
+
tips: [
|
|
62
|
+
"Use (= flag (or ...)) NOT (=> ... flag) — implication → trivially SAT",
|
|
63
|
+
"No define-fun with args — breaks model. Use declare-const + (assert (=))",
|
|
64
|
+
"Model returns r, a, res = exact conflicting request",
|
|
65
|
+
],
|
|
66
|
+
example: `(declare-datatypes ((Role 0)) (((admin) (editor))))
|
|
67
|
+
(declare-datatypes ((Action 0)) (((read) (write))))
|
|
68
|
+
(declare-datatypes ((Resource 0)) (((docs) (billing))))
|
|
69
|
+
|
|
70
|
+
(declare-const r Role)
|
|
71
|
+
(declare-const a Action)
|
|
72
|
+
(declare-const res Resource)
|
|
73
|
+
(declare-const allowed Bool)
|
|
74
|
+
(declare-const denied Bool)
|
|
75
|
+
|
|
76
|
+
(assert (= allowed (or
|
|
77
|
+
(and (= r admin) (= a read) (= res billing))
|
|
78
|
+
(and (= r editor) (= a write) (= res docs))
|
|
79
|
+
)))
|
|
80
|
+
|
|
81
|
+
(assert (= denied (or
|
|
82
|
+
(and (= r editor) (= a write) (= res docs))
|
|
83
|
+
)))
|
|
84
|
+
|
|
85
|
+
(assert allowed)
|
|
86
|
+
(assert denied)`,
|
|
66
87
|
},
|
|
67
88
|
{
|
|
68
89
|
name: "policy-reachability",
|
|
@@ -77,8 +98,8 @@ export const STARTER_TEMPLATES = [
|
|
|
77
98
|
(declare-const action {{SLOT:action_type}})
|
|
78
99
|
(declare-const can_access Bool)
|
|
79
100
|
|
|
80
|
-
;
|
|
81
|
-
{{SLOT:
|
|
101
|
+
; Define can_access as true IFF role rules grant it
|
|
102
|
+
(assert (= can_access (or {{SLOT:access_rules}})))
|
|
82
103
|
|
|
83
104
|
; Target: can this specific principal access this specific resource?
|
|
84
105
|
(assert (= principal {{SLOT:target_principal}}))
|
|
@@ -87,16 +108,16 @@ export const STARTER_TEMPLATES = [
|
|
|
87
108
|
slots: [
|
|
88
109
|
{
|
|
89
110
|
name: "type_declarations",
|
|
90
|
-
description: "SMT-LIB declare-datatypes
|
|
111
|
+
description: "SMT-LIB declare-datatypes",
|
|
91
112
|
format: "(declare-datatypes ...)",
|
|
92
113
|
},
|
|
93
114
|
{ name: "principal_type", description: "Type name for principals", format: "Principal" },
|
|
94
115
|
{ name: "resource_type", description: "Type name for resources", format: "Resource" },
|
|
95
116
|
{ name: "action_type", description: "Type name for actions", format: "Action" },
|
|
96
117
|
{
|
|
97
|
-
name: "
|
|
98
|
-
description: "
|
|
99
|
-
format: "(
|
|
118
|
+
name: "access_rules",
|
|
119
|
+
description: "OR of conditions that grant access",
|
|
120
|
+
format: "(and (= principal alice) (= action read) (= resource docs))",
|
|
100
121
|
},
|
|
101
122
|
{ name: "target_principal", description: "The principal to check", format: "alice" },
|
|
102
123
|
{ name: "target_resource", description: "The resource to check", format: "secret_doc" },
|
|
@@ -104,13 +125,17 @@ export const STARTER_TEMPLATES = [
|
|
|
104
125
|
normalizations: [
|
|
105
126
|
{
|
|
106
127
|
source: "Django permissions",
|
|
107
|
-
transform: "Extract user/group assignments and permission checks into
|
|
128
|
+
transform: "Extract user/group assignments and permission checks into access rule clauses",
|
|
108
129
|
},
|
|
109
130
|
{
|
|
110
131
|
source: "natural language",
|
|
111
132
|
transform: "Identify the target principal and resource, extract role hierarchy",
|
|
112
133
|
},
|
|
113
134
|
],
|
|
135
|
+
tips: [
|
|
136
|
+
"Use (=) not (=>) for can_access",
|
|
137
|
+
"SAT = access possible | UNSAT = unreachable",
|
|
138
|
+
],
|
|
114
139
|
},
|
|
115
140
|
{
|
|
116
141
|
name: "config-equivalence",
|
|
@@ -121,14 +146,16 @@ export const STARTER_TEMPLATES = [
|
|
|
121
146
|
; Input variables representing all possible inputs
|
|
122
147
|
{{SLOT:input_declarations}}
|
|
123
148
|
|
|
124
|
-
;
|
|
125
|
-
|
|
149
|
+
; Config A output
|
|
150
|
+
(declare-const result_a Bool)
|
|
151
|
+
(assert (= result_a {{SLOT:config_a_expr}}))
|
|
126
152
|
|
|
127
|
-
;
|
|
128
|
-
|
|
153
|
+
; Config B output
|
|
154
|
+
(declare-const result_b Bool)
|
|
155
|
+
(assert (= result_b {{SLOT:config_b_expr}}))
|
|
129
156
|
|
|
130
157
|
; Check: is there any input where the two configs produce different outputs?
|
|
131
|
-
(assert (not (=
|
|
158
|
+
(assert (not (= result_a result_b)))`,
|
|
132
159
|
slots: [
|
|
133
160
|
{
|
|
134
161
|
name: "input_declarations",
|
|
@@ -136,28 +163,39 @@ export const STARTER_TEMPLATES = [
|
|
|
136
163
|
format: "(declare-const port Int) (declare-const src_ip Int)",
|
|
137
164
|
},
|
|
138
165
|
{
|
|
139
|
-
name: "
|
|
140
|
-
description: "
|
|
141
|
-
format: "(
|
|
166
|
+
name: "config_a_expr",
|
|
167
|
+
description: "Boolean expression for config A's behavior",
|
|
168
|
+
format: "(and (>= port 80) (<= port 443))",
|
|
142
169
|
},
|
|
143
170
|
{
|
|
144
|
-
name: "
|
|
145
|
-
description: "
|
|
146
|
-
format: "(
|
|
171
|
+
name: "config_b_expr",
|
|
172
|
+
description: "Boolean expression for config B's behavior",
|
|
173
|
+
format: "(and (>= port 80) (<= port 8080))",
|
|
147
174
|
},
|
|
148
|
-
{ name: "output_a", description: "Output variable from config A", format: "result_a" },
|
|
149
|
-
{ name: "output_b", description: "Output variable from config B", format: "result_b" },
|
|
150
175
|
],
|
|
151
176
|
normalizations: [
|
|
152
177
|
{
|
|
153
178
|
source: "firewall rules",
|
|
154
|
-
transform: "Encode each rule set as boolean
|
|
179
|
+
transform: "Encode each rule set as boolean expression over port/protocol/address variables",
|
|
155
180
|
},
|
|
156
181
|
{
|
|
157
182
|
source: "Kubernetes NetworkPolicy",
|
|
158
183
|
transform: "Map ingress/egress rules to boolean expressions over pod labels and ports",
|
|
159
184
|
},
|
|
160
185
|
],
|
|
186
|
+
tips: [
|
|
187
|
+
"Use (=) to define result vars",
|
|
188
|
+
"SAT = configs differ (model = diverging input) | UNSAT = equivalent",
|
|
189
|
+
],
|
|
190
|
+
example: `(declare-const port Int)
|
|
191
|
+
|
|
192
|
+
(declare-const result_a Bool)
|
|
193
|
+
(assert (= result_a (and (>= port 80) (<= port 443))))
|
|
194
|
+
|
|
195
|
+
(declare-const result_b Bool)
|
|
196
|
+
(assert (= result_b (and (>= port 80) (<= port 8080))))
|
|
197
|
+
|
|
198
|
+
(assert (not (= result_a result_b)))`,
|
|
161
199
|
},
|
|
162
200
|
{
|
|
163
201
|
name: "constraint-satisfaction",
|
|
@@ -184,12 +222,12 @@ export const STARTER_TEMPLATES = [
|
|
|
184
222
|
},
|
|
185
223
|
{
|
|
186
224
|
name: "range_constraints",
|
|
187
|
-
description: "Constrain each package to its available
|
|
188
|
-
format: "(assert (
|
|
225
|
+
description: "Constrain each package to its available versions using (or (= pkg v1) (= pkg v2) ...)",
|
|
226
|
+
format: "(assert (or (= pkg_a 1) (= pkg_a 2) (= pkg_a 3)))",
|
|
189
227
|
},
|
|
190
228
|
{
|
|
191
229
|
name: "dependency_rules",
|
|
192
|
-
description: "Conditional version requirements
|
|
230
|
+
description: "Conditional version requirements. Use (=>) for 'if pkg_a >= 2 then pkg_b >= 3'",
|
|
193
231
|
format: "(assert (=> (>= pkg_a 2) (>= pkg_b 3)))",
|
|
194
232
|
},
|
|
195
233
|
{
|
|
@@ -201,13 +239,23 @@ export const STARTER_TEMPLATES = [
|
|
|
201
239
|
normalizations: [
|
|
202
240
|
{
|
|
203
241
|
source: "package.json",
|
|
204
|
-
transform: "Parse semver ranges into
|
|
242
|
+
transform: "Parse semver ranges into (or (= pkg v) ...) constraints, map peer deps to (=>) rules",
|
|
205
243
|
},
|
|
206
244
|
{
|
|
207
245
|
source: "requirements.txt",
|
|
208
246
|
transform: "Parse version specifiers (>=, ==, !=) into SMT constraints",
|
|
209
247
|
},
|
|
210
248
|
],
|
|
249
|
+
tips: [
|
|
250
|
+
"Discrete versions: (or (= pkg 1) (= pkg 2)) not (and (>= 1) (<= 2)) — latter allows non-integers",
|
|
251
|
+
"SAT = valid assignment | UNSAT = no solution",
|
|
252
|
+
],
|
|
253
|
+
example: `(declare-const app Int)
|
|
254
|
+
(declare-const lib Int)
|
|
255
|
+
(assert (or (= app 1) (= app 2) (= app 3)))
|
|
256
|
+
(assert (or (= lib 1) (= lib 2)))
|
|
257
|
+
(assert (=> (>= app 2) (>= lib 2)))
|
|
258
|
+
(assert (not (and (= app 3) (= lib 1))))`,
|
|
211
259
|
},
|
|
212
260
|
{
|
|
213
261
|
name: "schema-consistency",
|
|
@@ -218,14 +266,17 @@ export const STARTER_TEMPLATES = [
|
|
|
218
266
|
; Input field variables
|
|
219
267
|
{{SLOT:field_declarations}}
|
|
220
268
|
|
|
221
|
-
;
|
|
222
|
-
|
|
269
|
+
; Value passes rule set A
|
|
270
|
+
(declare-const passes_a Bool)
|
|
271
|
+
(assert (= passes_a (and {{SLOT:rule_set_a_conditions}})))
|
|
223
272
|
|
|
224
|
-
;
|
|
225
|
-
|
|
273
|
+
; Value passes rule set B
|
|
274
|
+
(declare-const passes_b Bool)
|
|
275
|
+
(assert (= passes_b (and {{SLOT:rule_set_b_conditions}})))
|
|
226
276
|
|
|
227
|
-
; Check: is there an input that passes A but fails B
|
|
228
|
-
(assert
|
|
277
|
+
; Check: is there an input that passes A but fails B?
|
|
278
|
+
(assert passes_a)
|
|
279
|
+
(assert (not passes_b))`,
|
|
229
280
|
slots: [
|
|
230
281
|
{
|
|
231
282
|
name: "field_declarations",
|
|
@@ -233,28 +284,41 @@ export const STARTER_TEMPLATES = [
|
|
|
233
284
|
format: "(declare-const age Int) (declare-const name_len Int)",
|
|
234
285
|
},
|
|
235
286
|
{
|
|
236
|
-
name: "
|
|
237
|
-
description: "
|
|
238
|
-
format: "(
|
|
287
|
+
name: "rule_set_a_conditions",
|
|
288
|
+
description: "Conjunction of conditions for rule set A (e.g. frontend validation)",
|
|
289
|
+
format: "(>= age 13) (<= age 120) (>= name_len 3)",
|
|
239
290
|
},
|
|
240
291
|
{
|
|
241
|
-
name: "
|
|
242
|
-
description: "
|
|
243
|
-
format: "(
|
|
292
|
+
name: "rule_set_b_conditions",
|
|
293
|
+
description: "Conjunction of conditions for rule set B (e.g. backend validation)",
|
|
294
|
+
format: "(>= age 18) (<= age 150) (>= name_len 3)",
|
|
244
295
|
},
|
|
245
|
-
{ name: "passes_a", description: "Variable indicating input passes rule set A", format: "valid_a" },
|
|
246
|
-
{ name: "passes_b", description: "Variable indicating input passes rule set B", format: "valid_b" },
|
|
247
296
|
],
|
|
248
297
|
normalizations: [
|
|
249
298
|
{
|
|
250
299
|
source: "JSON Schema",
|
|
251
|
-
transform: "Map minimum/maximum/pattern/required to integer/boolean
|
|
300
|
+
transform: "Map minimum/maximum/pattern/required to integer/boolean conditions",
|
|
252
301
|
},
|
|
253
302
|
{
|
|
254
303
|
source: "Zod schema",
|
|
255
|
-
transform: "Extract .min()/.max()/.refine() chains into
|
|
304
|
+
transform: "Extract .min()/.max()/.refine() chains into conditions",
|
|
256
305
|
},
|
|
257
306
|
],
|
|
307
|
+
tips: [
|
|
308
|
+
"Use (=) to define passes_a/passes_b",
|
|
309
|
+
"SAT = gap exists (model = concrete counterexample) | UNSAT = no gap",
|
|
310
|
+
"Swap A/B to check both directions. Per-field: separate check per field.",
|
|
311
|
+
],
|
|
312
|
+
example: `(declare-const age Int)
|
|
313
|
+
|
|
314
|
+
(declare-const passes_frontend Bool)
|
|
315
|
+
(assert (= passes_frontend (and (>= age 13) (<= age 120))))
|
|
316
|
+
|
|
317
|
+
(declare-const passes_backend Bool)
|
|
318
|
+
(assert (= passes_backend (and (>= age 18) (<= age 150))))
|
|
319
|
+
|
|
320
|
+
(assert passes_frontend)
|
|
321
|
+
(assert (not passes_backend))`,
|
|
258
322
|
},
|
|
259
323
|
// ─── Prolog Templates ────────────────────────────────────
|
|
260
324
|
{
|
|
@@ -290,19 +354,22 @@ export const STARTER_TEMPLATES = [
|
|
|
290
354
|
transform: "Identify entities, properties, and conditional relationships",
|
|
291
355
|
},
|
|
292
356
|
],
|
|
357
|
+
tips: [
|
|
358
|
+
"All clauses end with period. Lowercase = atoms, Uppercase = variables.",
|
|
359
|
+
"No recursive rules on cyclic data — Tau Prolog lacks tabling → infinite loop.",
|
|
360
|
+
],
|
|
293
361
|
},
|
|
294
362
|
{
|
|
295
363
|
name: "graph-reachability",
|
|
296
364
|
domain: "analysis",
|
|
297
365
|
solver: "prolog",
|
|
298
|
-
signature: "Check if node A can reach node B through any path in a directed graph — data flow, dependency chains, call graphs",
|
|
366
|
+
signature: "Check if node A can reach node B through any path in a directed graph — data flow, dependency chains, call graphs, taint analysis",
|
|
299
367
|
skeleton: `
|
|
300
368
|
% Direct edges in the graph
|
|
301
369
|
{{SLOT:edges}}
|
|
302
370
|
|
|
303
|
-
%
|
|
304
|
-
|
|
305
|
-
reaches(A, B) :- edge(A, Mid), reaches(Mid, B).`,
|
|
371
|
+
% Direct neighbor query (use for individual checks)
|
|
372
|
+
neighbor(A, B) :- edge(A, B).`,
|
|
306
373
|
slots: [
|
|
307
374
|
{
|
|
308
375
|
name: "edges",
|
|
@@ -324,6 +391,15 @@ reaches(A, B) :- edge(A, Mid), reaches(Mid, B).`,
|
|
|
324
391
|
transform: "Map function calls to edge(caller, callee) facts",
|
|
325
392
|
},
|
|
326
393
|
],
|
|
394
|
+
tips: [
|
|
395
|
+
"⚠ No recursive reaches/2 on cyclic graphs — infinite loop (no tabling)",
|
|
396
|
+
"Cyclic: query edge(X,Y) individually, BFS externally. DAGs: recursive rule safe.",
|
|
397
|
+
],
|
|
398
|
+
example: `edge(user_input, handler).
|
|
399
|
+
edge(handler, validator).
|
|
400
|
+
edge(validator, database).
|
|
401
|
+
edge(handler, logger).
|
|
402
|
+
neighbor(A, B) :- edge(A, B).`,
|
|
327
403
|
},
|
|
328
404
|
{
|
|
329
405
|
name: "permission-derivation",
|
|
@@ -376,6 +452,10 @@ can(User, Action, Resource) :- has_role(User, Role), permission(Role, Action, Re
|
|
|
376
452
|
transform: "Map ClusterRole/Role bindings to role facts, aggregate rules to permission facts",
|
|
377
453
|
},
|
|
378
454
|
],
|
|
455
|
+
tips: [
|
|
456
|
+
"Role hierarchy must be acyclic — cycles → infinite loop",
|
|
457
|
+
"can(alice, Action, Resource) → enumerate all permissions for user",
|
|
458
|
+
],
|
|
379
459
|
},
|
|
380
460
|
];
|
|
381
461
|
//# sourceMappingURL=starters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starters.js","sourceRoot":"","sources":["../../src/skills/starters.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAoB;IAChD,4DAA4D;IAE5D;QACE,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,IAAI;QACZ,SAAS,EACP,wGAAwG;QAC1G,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"starters.js","sourceRoot":"","sources":["../../src/skills/starters.ts"],"names":[],"mappings":"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"}
|
package/dist/skills/types.d.ts
CHANGED
|
@@ -31,6 +31,10 @@ export interface SkillTemplate {
|
|
|
31
31
|
slots: SlotDef[];
|
|
32
32
|
/** Known normalization recipes */
|
|
33
33
|
normalizations: Normalization[];
|
|
34
|
+
/** Encoding tips and pitfalls specific to this template */
|
|
35
|
+
tips?: string[];
|
|
36
|
+
/** A complete worked example showing a filled version of this template */
|
|
37
|
+
example?: string;
|
|
34
38
|
}
|
|
35
39
|
/** Runtime metadata tracked per template */
|
|
36
40
|
export interface SkillMetadata {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,wDAAwD;AACxD,MAAM,WAAW,OAAO;IACtB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,kCAAkC;IAClC,cAAc,EAAE,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,wDAAwD;AACxD,MAAM,WAAW,OAAO;IACtB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,kCAAkC;IAClC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf"}
|