chiasmus 0.1.18 → 0.1.19

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # Chiasmus
2
2
 
3
- MCP server that gives LLMs access to formal verification via Z3 (SMT solver) and Tau Prolog, plus tree-sitter-based source code analysis. Translates natural language problems into formal logic using a template-based pipeline, verifies results with mathematical certainty, and analyzes call graphs for reachability, dead code, and impact analysis.
3
+ MCP server that gives LLMs access to formal verification via Z3 (SMT solver) and SWI-Prolog (via `prolog-wasm-full`, includes `library(clpfd)`), plus tree-sitter-based source code analysis. Translates natural language problems into formal logic using a template-based pipeline, verifies results with mathematical certainty, and analyzes call graphs for reachability, dead code, and impact analysis.
4
4
 
5
5
  ### Example use cases
6
6
 
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Native graph analyses — O(V+E) implementations that run directly on a
3
- * CodeGraph without going through Tau Prolog. These exist because Prolog
4
- * (no tabling, linear-scan method filter) times out on mid-size codebases
5
- * for the reachability-heavy analyses (cycles, impact, reachability, path,
6
- * dead-code). The Prolog rule set is still emitted by graphToProlog so the
7
- * `facts` output remains usable with chiasmus_verify.
3
+ * CodeGraph without going through Prolog. These exist because the
4
+ * Prolog rule set we emit (no tabling, linear-scan method filter) times
5
+ * out on mid-size codebases for the reachability-heavy analyses (cycles,
6
+ * impact, reachability, path, dead-code). The Prolog rule set is still
7
+ * emitted by graphToProlog so the `facts` output remains usable with
8
+ * chiasmus_verify.
8
9
  */
9
10
  import type { CodeGraph } from "./types.js";
10
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"native-analyses.d.ts","sourceRoot":"","sources":["../../src/graph/native-analyses.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA+C5C;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAgGjD;AAsBD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAqBhF;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAoDzE;AAsDD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BjE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAiC3E;AAED,0GAA0G;AAC1G,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYlE;AAED,2GAA2G;AAC3G,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYlE"}
1
+ {"version":3,"file":"native-analyses.d.ts","sourceRoot":"","sources":["../../src/graph/native-analyses.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA+C5C;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAgGjD;AAsBD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAqBhF;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAoDzE;AAsDD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BjE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAiC3E;AAED,0GAA0G;AAC1G,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYlE;AAED,2GAA2G;AAC3G,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYlE"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Native graph analyses — O(V+E) implementations that run directly on a
3
- * CodeGraph without going through Tau Prolog. These exist because Prolog
4
- * (no tabling, linear-scan method filter) times out on mid-size codebases
5
- * for the reachability-heavy analyses (cycles, impact, reachability, path,
6
- * dead-code). The Prolog rule set is still emitted by graphToProlog so the
7
- * `facts` output remains usable with chiasmus_verify.
3
+ * CodeGraph without going through Prolog. These exist because the
4
+ * Prolog rule set we emit (no tabling, linear-scan method filter) times
5
+ * out on mid-size codebases for the reachability-heavy analyses (cycles,
6
+ * impact, reachability, path, dead-code). The Prolog rule set is still
7
+ * emitted by graphToProlog so the `facts` output remains usable with
8
+ * chiasmus_verify.
8
9
  */
9
10
  function buildIndex(graph) {
10
11
  const adj = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"native-analyses.js","sourceRoot":"","sources":["../../src/graph/native-analyses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native-analyses.js","sourceRoot":"","sources":["../../src/graph/native-analyses.ts"],"names":[],"mappings":"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"}
@@ -26,14 +26,23 @@ export declare class AnthropicAdapter implements LLMAdapter {
26
26
  export declare function createLLMFromEnv(): LLMAdapter | null;
27
27
  /**
28
28
  * Create an EmbeddingAdapter from environment variables, or null if not
29
- * configured. Anthropic has no embeddings API, so this checks OpenAI-
30
- * compatible providers only:
31
- * OPENAI_API_KEY → OpenAI
32
- * DEEPSEEK_API_KEY → DeepSeek (compatible)
33
- * OPENROUTER_API_KEY OpenRouter
29
+ * configured. Anthropic has no embeddings API, so this checks third-party
30
+ * providers:
31
+ * AZURE_OPENAI_API_KEY (+ AZURE_OPENAI_API_ENDPOINT or AZURE_OPENAI_ENDPOINT,
32
+ * + AZURE_OPENAI_EMBED_DEPLOYMENT)
33
+ * Azure OpenAI
34
+ * OPENAI_API_KEY → OpenAI
35
+ * DEEPSEEK_API_KEY → DeepSeek (OpenAI-compatible)
36
+ * OPENROUTER_API_KEY → OpenRouter (OpenAI-compatible)
34
37
  *
35
38
  * Override model with CHIASMUS_EMBED_MODEL, base URL with
36
39
  * CHIASMUS_EMBED_URL, and dimension with CHIASMUS_EMBED_DIM.
40
+ *
41
+ * Azure ignores CHIASMUS_EMBED_URL — its URL is derived from
42
+ * AZURE_OPENAI_API_ENDPOINT plus the deployment name. The deployment name
43
+ * (a value chosen by the user at provisioning time, not a model name)
44
+ * must be supplied via AZURE_OPENAI_EMBED_DEPLOYMENT; there is no safe
45
+ * default. API version comes from AZURE_OPENAI_API_VERSION.
37
46
  */
38
47
  export declare function createEmbeddingFromEnv(): EmbeddingAdapter | null;
39
48
  //# sourceMappingURL=anthropic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQ3E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,eAAe;IAO7B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAkCxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,GAAG,IAAI,CAmCpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,GAAG,IAAI,CAqChE"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS3E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,eAAe;IAO7B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAkCxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,GAAG,IAAI,CAmCpD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,GAAG,IAAI,CAyDhE"}
@@ -1,4 +1,5 @@
1
1
  import { OpenAICompatibleAdapter, OpenAICompatibleEmbeddingAdapter } from "./openai-compatible.js";
2
+ import { AzureOpenAIEmbeddingAdapter } from "./azure-openai.js";
2
3
  const DEFAULT_MODEL = "claude-sonnet-4-6";
3
4
  const DEFAULT_URL = "https://api.anthropic.com/v1/messages";
4
5
  const DEFAULT_MAX_TOKENS = 4096;
@@ -87,20 +88,45 @@ export function createLLMFromEnv() {
87
88
  }
88
89
  /**
89
90
  * Create an EmbeddingAdapter from environment variables, or null if not
90
- * configured. Anthropic has no embeddings API, so this checks OpenAI-
91
- * compatible providers only:
92
- * OPENAI_API_KEY → OpenAI
93
- * DEEPSEEK_API_KEY → DeepSeek (compatible)
94
- * OPENROUTER_API_KEY OpenRouter
91
+ * configured. Anthropic has no embeddings API, so this checks third-party
92
+ * providers:
93
+ * AZURE_OPENAI_API_KEY (+ AZURE_OPENAI_API_ENDPOINT or AZURE_OPENAI_ENDPOINT,
94
+ * + AZURE_OPENAI_EMBED_DEPLOYMENT)
95
+ * Azure OpenAI
96
+ * OPENAI_API_KEY → OpenAI
97
+ * DEEPSEEK_API_KEY → DeepSeek (OpenAI-compatible)
98
+ * OPENROUTER_API_KEY → OpenRouter (OpenAI-compatible)
95
99
  *
96
100
  * Override model with CHIASMUS_EMBED_MODEL, base URL with
97
101
  * CHIASMUS_EMBED_URL, and dimension with CHIASMUS_EMBED_DIM.
102
+ *
103
+ * Azure ignores CHIASMUS_EMBED_URL — its URL is derived from
104
+ * AZURE_OPENAI_API_ENDPOINT plus the deployment name. The deployment name
105
+ * (a value chosen by the user at provisioning time, not a model name)
106
+ * must be supplied via AZURE_OPENAI_EMBED_DEPLOYMENT; there is no safe
107
+ * default. API version comes from AZURE_OPENAI_API_VERSION.
98
108
  */
99
109
  export function createEmbeddingFromEnv() {
100
110
  const model = process.env.CHIASMUS_EMBED_MODEL ?? "text-embedding-3-small";
101
111
  const customUrl = process.env.CHIASMUS_EMBED_URL;
102
112
  const dimEnv = process.env.CHIASMUS_EMBED_DIM;
103
113
  const dimension = dimEnv ? Number.parseInt(dimEnv, 10) : undefined;
114
+ const azureKey = process.env.AZURE_OPENAI_API_KEY;
115
+ const azureEndpoint = process.env.AZURE_OPENAI_API_ENDPOINT ?? process.env.AZURE_OPENAI_ENDPOINT;
116
+ if (azureKey && azureEndpoint) {
117
+ const deployment = process.env.AZURE_OPENAI_EMBED_DEPLOYMENT;
118
+ if (!deployment) {
119
+ console.warn("[chiasmus] Azure OpenAI embedding configuration is incomplete: AZURE_OPENAI_API_KEY and AZURE_OPENAI_API_ENDPOINT are set, but AZURE_OPENAI_EMBED_DEPLOYMENT is missing. Azure routes by deployment name (chosen at provisioning), so there is no safe default. Embeddings will be unavailable until the deployment name is provided.");
120
+ return null;
121
+ }
122
+ return new AzureOpenAIEmbeddingAdapter({
123
+ apiKey: azureKey,
124
+ endpoint: azureEndpoint,
125
+ deployment,
126
+ apiVersion: process.env.AZURE_OPENAI_API_VERSION,
127
+ dimension,
128
+ });
129
+ }
104
130
  const openaiKey = process.env.OPENAI_API_KEY;
105
131
  if (openaiKey) {
106
132
  return new OpenAICompatibleEmbeddingAdapter({
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { EmbeddingAdapter } from "./types.js";
2
+ export interface AzureOpenAIEmbeddingConfig {
3
+ apiKey: string;
4
+ /** Azure OpenAI resource endpoint, e.g. "https://my-resource.openai.azure.com" */
5
+ endpoint: string;
6
+ /** Deployment name (Azure routes by deployment, not model). */
7
+ deployment: string;
8
+ /** Azure OpenAI API version, e.g. "2023-05-15". */
9
+ apiVersion?: string;
10
+ /** Optional fixed dimension. Defaults to the deployment's native output. */
11
+ dimension?: number;
12
+ /** Max texts per request. Defaults to 16 (Azure embedding limit). */
13
+ batchSize?: number;
14
+ }
15
+ /**
16
+ * Adapter for Azure OpenAI embeddings. Differs from the vanilla
17
+ * OpenAI-compatible adapter in two ways:
18
+ * - auth header is `api-key`, not `Authorization: Bearer`
19
+ * - URL is `<endpoint>/openai/deployments/<deployment>/embeddings?api-version=<v>`
20
+ * (the deployment determines the model; no `model` field in the body)
21
+ *
22
+ * Azure caps embedding requests at 16 inputs by default; the adapter
23
+ * batches accordingly.
24
+ */
25
+ export declare class AzureOpenAIEmbeddingAdapter implements EmbeddingAdapter {
26
+ private apiKey;
27
+ private url;
28
+ private dim;
29
+ private batchSize;
30
+ constructor(config: AzureOpenAIEmbeddingConfig);
31
+ embed(texts: string[]): Promise<number[][]>;
32
+ dimension(): number;
33
+ }
34
+ //# sourceMappingURL=azure-openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-openai.d.ts","sourceRoot":"","sources":["../../src/llm/azure-openai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKnD,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,qBAAa,2BAA4B,YAAW,gBAAgB;IAClE,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,0BAA0B;IAexC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAmCjD,SAAS,IAAI,MAAM;CAQpB"}
@@ -0,0 +1,71 @@
1
+ const DEFAULT_TIMEOUT_MS = 30_000;
2
+ const DEFAULT_API_VERSION = "2023-05-15";
3
+ /**
4
+ * Adapter for Azure OpenAI embeddings. Differs from the vanilla
5
+ * OpenAI-compatible adapter in two ways:
6
+ * - auth header is `api-key`, not `Authorization: Bearer`
7
+ * - URL is `<endpoint>/openai/deployments/<deployment>/embeddings?api-version=<v>`
8
+ * (the deployment determines the model; no `model` field in the body)
9
+ *
10
+ * Azure caps embedding requests at 16 inputs by default; the adapter
11
+ * batches accordingly.
12
+ */
13
+ export class AzureOpenAIEmbeddingAdapter {
14
+ apiKey;
15
+ url;
16
+ dim;
17
+ batchSize;
18
+ constructor(config) {
19
+ const endpoint = config.endpoint.replace(/\/+$/, "");
20
+ const apiVersion = config.apiVersion ?? DEFAULT_API_VERSION;
21
+ this.apiKey = config.apiKey;
22
+ // Azure deployment names today are restricted to alphanumerics, dashes,
23
+ // and underscores, but encodeURIComponent costs nothing and prevents
24
+ // the URL from breaking if those rules ever loosen or if a stray space
25
+ // sneaks in via env config. apiVersion gets the same treatment.
26
+ const deployment = encodeURIComponent(config.deployment);
27
+ const versionParam = encodeURIComponent(apiVersion);
28
+ this.url = `${endpoint}/openai/deployments/${deployment}/embeddings?api-version=${versionParam}`;
29
+ this.dim = config.dimension ?? null;
30
+ this.batchSize = config.batchSize ?? 16;
31
+ }
32
+ async embed(texts) {
33
+ if (texts.length === 0)
34
+ return [];
35
+ const out = [];
36
+ for (let i = 0; i < texts.length; i += this.batchSize) {
37
+ const chunk = texts.slice(i, i + this.batchSize);
38
+ const body = { input: chunk };
39
+ if (this.dim !== null)
40
+ body.dimensions = this.dim;
41
+ const response = await fetch(this.url, {
42
+ method: "POST",
43
+ headers: {
44
+ "Content-Type": "application/json",
45
+ "api-key": this.apiKey,
46
+ },
47
+ body: JSON.stringify(body),
48
+ signal: AbortSignal.timeout(DEFAULT_TIMEOUT_MS),
49
+ });
50
+ if (!response.ok) {
51
+ const text = await response.text();
52
+ throw new Error(`Azure embeddings API error ${response.status}: ${text}`);
53
+ }
54
+ const data = (await response.json());
55
+ const sorted = [...data.data].sort((a, b) => a.index - b.index);
56
+ for (const row of sorted) {
57
+ if (this.dim === null)
58
+ this.dim = row.embedding.length;
59
+ out.push(row.embedding);
60
+ }
61
+ }
62
+ return out;
63
+ }
64
+ dimension() {
65
+ if (this.dim === null) {
66
+ throw new Error("Embedding dimension is unknown until the first embed() call. Pass { dimension } in config to avoid this.");
67
+ }
68
+ return this.dim;
69
+ }
70
+ }
71
+ //# sourceMappingURL=azure-openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-openai.js","sourceRoot":"","sources":["../../src/llm/azure-openai.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ export { createLLMFromEnv, createEmbeddingFromEnv, AnthropicAdapter } from "./an
2
2
  export type { AnthropicConfig } from "./anthropic.js";
3
3
  export { OpenAICompatibleAdapter, OpenAICompatibleEmbeddingAdapter } from "./openai-compatible.js";
4
4
  export type { OpenAICompatibleConfig, OpenAICompatibleEmbeddingConfig } from "./openai-compatible.js";
5
+ export { AzureOpenAIEmbeddingAdapter } from "./azure-openai.js";
6
+ export type { AzureOpenAIEmbeddingConfig } from "./azure-openai.js";
5
7
  export { MockEmbeddingAdapter } from "./mock.js";
6
8
  export type { MockEmbeddingConfig } from "./mock.js";
7
9
  export type { LLMAdapter, LLMMessage, EmbeddingAdapter } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AACnG,YAAY,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AACnG,YAAY,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACtG,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,YAAY,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
package/dist/llm/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { createLLMFromEnv, createEmbeddingFromEnv, AnthropicAdapter } from "./anthropic.js";
2
2
  export { OpenAICompatibleAdapter, OpenAICompatibleEmbeddingAdapter } from "./openai-compatible.js";
3
+ export { AzureOpenAIEmbeddingAdapter } from "./azure-openai.js";
3
4
  export { MockEmbeddingAdapter } from "./mock.js";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE5F,OAAO,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAEnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE5F,OAAO,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAEnG,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
@@ -52,7 +52,7 @@ Z3 RULES:
52
52
 
53
53
  PROLOG RULES:
54
54
  ⚠ All clauses end with period
55
- ⚠ No recursive reachability on cyclic graphs Tau Prolog lacks tabling → infinite loop. Query edges individually, BFS externally.
55
+ ⚠ No recursive reachability on cyclic graphs without tabling → infinite loop. Add ":- table reach/2." (SWI tabling), or query edges individually and BFS externally.
56
56
  ⚠ Use "queries" param (JSON array) to batch multiple queries against same program in one call
57
57
 
58
58
  Z3 EXAMPLE (RBAC conflict):
@@ -356,7 +356,7 @@ export const STARTER_TEMPLATES = [
356
356
  ],
357
357
  tips: [
358
358
  "All clauses end with period. Lowercase = atoms, Uppercase = variables.",
359
- "No recursive rules on cyclic data Tau Prolog lacks tabling → infinite loop.",
359
+ "No recursive rules on cyclic data without tabling → infinite loop. Add `:- table reach/2.` if needed.",
360
360
  ],
361
361
  },
362
362
  {
@@ -806,7 +806,7 @@ missing_pair(Func, Expected) :-
806
806
  "For CALLER → CALLEE propagation, reverse the calls/2 direction in the rule",
807
807
  "Multiple labels: duplicate the skeleton for each label with a different predicate name",
808
808
  "Add negation to find gaps: unlabeled_but_should_be(Func) :- calls_failing(Func), \\+ has_error_handler(Func).",
809
- "Keep call graph acyclic in propagation rules or add depth limits Tau Prolog has no tabling",
809
+ "Keep call graph acyclic in propagation rules, add depth limits, or table the recursive predicate (`:- table prop/1.`)",
810
810
  ],
811
811
  example: `calls(handle_request, db_query).
812
812
  calls(handle_request, validate).
@@ -886,7 +886,7 @@ violation(Sink) :- tainted(Sink), sink(Sink).`,
886
886
  "sanitize(X) stops propagation: nodes AFTER a sanitizer are NOT tainted",
887
887
  "Query tainted(X) to see all tainted nodes, violation(X) to see actual security issues",
888
888
  "For multi-path analysis: a node is tainted if ANY incoming path is unsanitized",
889
- "Keep flow graph acyclic or add visited-list tracking Tau Prolog has no tabling",
889
+ "Keep flow graph acyclic, add visited-list tracking, or table the recursive predicate (`:- table tainted/1.`)",
890
890
  ],
891
891
  example: `flows(user_input, parse).
892
892
  flows(parse, validate).
@@ -1 +1 @@
1
- {"version":3,"file":"starters.js","sourceRoot":"","sources":["../../src/skills/starters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"starters.js","sourceRoot":"","sources":["../../src/skills/starters.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prolog-solver.d.ts","sourceRoot":"","sources":["../../src/solvers/prolog-solver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAA2C,MAAM,YAAY,CAAC;AAgLlF,wBAAgB,kBAAkB,IAAI,MAAM,CAyF3C"}
1
+ {"version":3,"file":"prolog-solver.d.ts","sourceRoot":"","sources":["../../src/solvers/prolog-solver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAA2C,MAAM,YAAY,CAAC;AAmdlF,wBAAgB,kBAAkB,IAAI,MAAM,CAsK3C"}
@@ -1,46 +1,317 @@
1
- import pl from "tau-prolog";
1
+ import { initProlog } from "prolog-wasm-full";
2
2
  const MAX_ANSWERS = 1000;
3
3
  const DEFAULT_MAX_INFERENCES = 100_000;
4
4
  const MAX_TRACE_ENTRIES = 500;
5
- // Tau Prolog is callback-based; these wrap it in promises.
6
- function consult(session, program) {
7
- return new Promise((resolve, reject) => {
8
- session.consult(program, {
9
- success: () => resolve(),
10
- error: (err) => reject(err),
11
- });
12
- });
5
+ // Internal variable for detecting inference-limit overrun. Picked to be
6
+ // unlikely to collide with anything a user program writes.
7
+ const LIMIT_MARKER_VAR = "ChiasmusLimitResult_3F2A1B";
8
+ const LIMIT_EXCEEDED_ATOM = "inference_limit_exceeded";
9
+ const SAFE_PATH_RE = /^[/A-Za-z0-9_.-]+$/;
10
+ // prolog-wasm-full has a single-init lifecycle (Emscripten factory
11
+ // invalidates after first instantiation), so we lazily init exactly
12
+ // one global instance shared across solver calls. Per-solve isolation
13
+ // happens by wrapping every consult in its own SWI module and tearing
14
+ // the module down afterwards — concurrent solves with overlapping
15
+ // predicate names see independent namespaces. The `/tmp/_chiasmus_*.pl`
16
+ // paths look like host filesystem paths but live in Emscripten's
17
+ // in-memory MEMFS — nothing touches the host disk.
18
+ let plPromise = null;
19
+ let pathCounter = 0;
20
+ let sessionCounter = 0;
21
+ function uniqueSessionModule() {
22
+ return `chiasmus_session_${++sessionCounter}`;
13
23
  }
14
- function query(session, goal) {
15
- return new Promise((resolve, reject) => {
16
- session.query(goal, {
17
- success: () => resolve(),
18
- error: (err) => reject(err),
19
- });
20
- });
24
+ async function getPl() {
25
+ plPromise ??= (async () => {
26
+ const pl = await initProlog();
27
+ // The message-capture predicate and hook must be module-qualified to
28
+ // `user:`. SWI invokes message_hook from whichever module is emitting
29
+ // the message (often `system:` for low-level errors), and an unqualified
30
+ // assertz inside the hook body would resolve to the caller's module —
31
+ // failing silently with `Unknown procedure: system:$chiasmus_msg/2` and
32
+ // dropping the error on the floor.
33
+ pl.consult(`
34
+ :- use_module(library(lists)).
35
+ :- use_module(library(clpfd)).
36
+ :- dynamic(user:'$chiasmus_msg'/2).
37
+ :- multifile(user:message_hook/3).
38
+ user:message_hook(_Term, Kind, Lines) :-
39
+ (Kind == error ; Kind == warning),
40
+ with_output_to(string(S),
41
+ print_message_lines(current_output, '', Lines)),
42
+ assertz(user:'$chiasmus_msg'(Kind, S)),
43
+ fail.
44
+ `);
45
+ return pl;
46
+ })();
47
+ return plPromise;
21
48
  }
22
- function nextAnswer(session) {
23
- return new Promise((resolve, reject) => {
24
- session.answer({
25
- success: (ans) => resolve(ans),
26
- fail: () => resolve(null),
27
- error: (err) => reject(err),
28
- limit: () => reject(new Error("inference limit exceeded")),
29
- });
30
- });
49
+ function clearMessages(pl) {
50
+ try {
51
+ pl.stock.call(`retractall(user:'$chiasmus_msg'(_, _))`);
52
+ }
53
+ catch {
54
+ /* best-effort */
55
+ }
56
+ }
57
+ function collectErrorMessages(pl) {
58
+ try {
59
+ const rows = pl.query(`user:'$chiasmus_msg'(error, M)`).all();
60
+ return rows
61
+ .map((r) => (r.M == null ? "" : String(r.M).trim()))
62
+ .filter((s) => s.length > 0);
63
+ }
64
+ catch {
65
+ return [];
66
+ }
67
+ }
68
+ /**
69
+ * Validate a query string by attempting to parse it. Returns null on
70
+ * success, or the syntax-error description on failure.
71
+ *
72
+ * `pl.query()` does not propagate parse errors through the JS layer
73
+ * (they print to stderr but the handle just returns no answers). We
74
+ * pre-parse via `read_term_from_atom/3` so callers see a structured
75
+ * error rather than silent empty results.
76
+ */
77
+ function validateQuery(pl, goal) {
78
+ // Single-quote escape for embedding in Prolog atom syntax.
79
+ const atom = goal.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
80
+ clearMessages(pl);
81
+ const ok = pl.stock.call(`catch(read_term_from_atom('${atom}', _, []), Err, ` +
82
+ `(with_output_to(string(EStr), write(Err)), ` +
83
+ `assertz(user:'$chiasmus_msg'(error, EStr))))`);
84
+ const errs = collectErrorMessages(pl);
85
+ if (errs.length > 0)
86
+ return errs.join("\n");
87
+ if (!ok)
88
+ return "query parse failed";
89
+ return null;
90
+ }
91
+ function uniqueTempPath() {
92
+ return `/tmp/_chiasmus_prolog_${Date.now()}_${pathCounter++}.pl`;
93
+ }
94
+ // ---------------------------------------------------------------------
95
+ // Term rendering — reverse of prolog-wasm-full's stock marshaller.
96
+ //
97
+ // The stock query API returns these JS shapes:
98
+ // atom → string ("knight")
99
+ // integer / float → number
100
+ // true / false → boolean
101
+ // list → array
102
+ // compound foo(...) → { $t: "t", functor: "foo", foo: [[arg1, ...]] }
103
+ // Args are double-wrapped (`foo: [[a, b, c]]`) — outer array has one
104
+ // element, the args tuple. We unwrap and render to Prolog syntax.
105
+ function isAtomBare(s) {
106
+ return /^[a-z][a-zA-Z0-9_]*$/.test(s);
107
+ }
108
+ function termToProlog(value) {
109
+ if (value === null || value === undefined)
110
+ return "_";
111
+ if (typeof value === "boolean")
112
+ return value ? "true" : "false";
113
+ if (typeof value === "number")
114
+ return String(value);
115
+ if (typeof value === "string") {
116
+ if (isAtomBare(value))
117
+ return value;
118
+ return `'${value.replace(/\\/g, "\\\\").replace(/'/g, "\\'")}'`;
119
+ }
120
+ if (Array.isArray(value)) {
121
+ return `[${value.map(termToProlog).join(", ")}]`;
122
+ }
123
+ if (typeof value === "object") {
124
+ const v = value;
125
+ if (v.$t === "t" && typeof v.functor === "string") {
126
+ const fn = v.functor;
127
+ const argsWrap = v[fn];
128
+ const args = Array.isArray(argsWrap) &&
129
+ argsWrap.length === 1 &&
130
+ Array.isArray(argsWrap[0])
131
+ ? argsWrap[0]
132
+ : Array.isArray(argsWrap)
133
+ ? argsWrap
134
+ : [argsWrap];
135
+ if (fn === "-" && args.length === 2) {
136
+ return `${termToProlog(args[0])}-${termToProlog(args[1])}`;
137
+ }
138
+ return `${fn}(${args.map(termToProlog).join(", ")})`;
139
+ }
140
+ return JSON.stringify(v);
141
+ }
142
+ return JSON.stringify(value);
143
+ }
144
+ function bindingsToFormatted(bindings) {
145
+ const entries = Object.entries(bindings);
146
+ if (entries.length === 0)
147
+ return "true";
148
+ return entries.map(([k, v]) => `${k} = ${v}`).join(", ");
149
+ }
150
+ /**
151
+ * Strip a trailing `.` or leading `?-` the user/model sometimes includes
152
+ * around a goal — SWI's stock query API expects a bare goal expression.
153
+ */
154
+ function normalizeQuery(q) {
155
+ let s = q.trim();
156
+ if (s.startsWith("?-"))
157
+ s = s.slice(2).trim();
158
+ if (s.endsWith("."))
159
+ s = s.slice(0, -1).trim();
160
+ return s;
161
+ }
162
+ class CapReachedError extends Error {
163
+ }
164
+ class LimitExceededError extends Error {
165
+ }
166
+ function runQuery(pl, goal, opts = {}) {
167
+ const normalized = normalizeQuery(goal);
168
+ if (!normalized)
169
+ return { error: "empty query" };
170
+ let handle;
171
+ try {
172
+ handle = pl.query(normalized);
173
+ }
174
+ catch (e) {
175
+ return { error: e instanceof Error ? e.message : String(e) };
176
+ }
177
+ const answers = [];
178
+ const cap = opts.maxAnswers ?? MAX_ANSWERS;
179
+ let limitExceeded = false;
180
+ try {
181
+ try {
182
+ handle.forEach((rawBindings) => {
183
+ if (answers.length >= cap)
184
+ throw new CapReachedError();
185
+ if (opts.detectLimitMarker) {
186
+ const marker = rawBindings[LIMIT_MARKER_VAR];
187
+ if (marker === LIMIT_EXCEEDED_ATOM) {
188
+ limitExceeded = true;
189
+ throw new LimitExceededError();
190
+ }
191
+ }
192
+ const bindings = {};
193
+ for (const [k, v] of Object.entries(rawBindings)) {
194
+ if (k === LIMIT_MARKER_VAR)
195
+ continue;
196
+ bindings[k] = termToProlog(v);
197
+ }
198
+ answers.push(bindings);
199
+ });
200
+ }
201
+ finally {
202
+ try {
203
+ handle.close();
204
+ }
205
+ catch {
206
+ /* best-effort */
207
+ }
208
+ }
209
+ }
210
+ catch (e) {
211
+ if (e instanceof LimitExceededError || limitExceeded) {
212
+ return { error: "inference limit exceeded" };
213
+ }
214
+ if (!(e instanceof CapReachedError)) {
215
+ return { error: e instanceof Error ? e.message : String(e) };
216
+ }
217
+ // Cap reached — return what we have.
218
+ }
219
+ return { answers };
31
220
  }
32
221
  /**
33
- * Instrument a Prolog program for derivation tracing.
34
- * Rewrites each rule `head :- body.` to `head :- body, assertz(trace_goal(head)).`
35
- * so trace_goal/1 accumulates which rules fired with bound variables.
36
- * Facts and directives are left unchanged.
222
+ * Tear down a session module: abolish every locally-defined predicate
223
+ * (skipping imports), unload the source file, unlink the MEMFS path.
224
+ * Returns warnings strings naming each step that failed. Cleanup is
225
+ * best-effort: a failure leaks a small amount of state into the global
226
+ * SWI namespace but the user already has their answer, so we surface
227
+ * it on the result rather than masking the solve outcome.
37
228
  */
229
+ function cleanupSession(pl, moduleId, path) {
230
+ const warnings = [];
231
+ // Enumerate user-defined predicates in the module. `imported_from(_)`
232
+ // filter excludes preds pulled in by `use_module(library(...))` — we
233
+ // don't want to abolish library bindings, only the user's clauses.
234
+ let preds = [];
235
+ try {
236
+ preds = pl
237
+ .query(`current_predicate(${moduleId}:F/A), ` +
238
+ `functor(H, F, A), ` +
239
+ `\\+ predicate_property(${moduleId}:H, imported_from(_))`)
240
+ .all();
241
+ }
242
+ catch (e) {
243
+ warnings.push(`enumerate predicates in ${moduleId}: ${e instanceof Error ? e.message : String(e)}`);
244
+ }
245
+ for (const row of preds) {
246
+ const f = row.F;
247
+ const a = row.A;
248
+ if (typeof f !== "string" || typeof a !== "number") {
249
+ warnings.push(`skip non-canonical predicate spec: ${String(f)}/${String(a)}`);
250
+ continue;
251
+ }
252
+ if (!isAtomBare(f)) {
253
+ // Quoted atoms (e.g. internal `$...` preds) — abolish via quoted form.
254
+ try {
255
+ const quoted = `'${f.replace(/\\/g, "\\\\").replace(/'/g, "\\'")}'`;
256
+ const ok = pl.stock.call(`abolish(${moduleId}:${quoted}/${a})`);
257
+ if (!ok)
258
+ warnings.push(`abolish ${moduleId}:${quoted}/${a} returned false`);
259
+ }
260
+ catch (e) {
261
+ warnings.push(`abolish ${moduleId}:${f}/${a}: ${e instanceof Error ? e.message : String(e)}`);
262
+ }
263
+ continue;
264
+ }
265
+ try {
266
+ const ok = pl.stock.call(`abolish(${moduleId}:${f}/${a})`);
267
+ if (!ok)
268
+ warnings.push(`abolish ${moduleId}:${f}/${a} returned false`);
269
+ }
270
+ catch (e) {
271
+ warnings.push(`abolish ${moduleId}:${f}/${a}: ${e instanceof Error ? e.message : String(e)}`);
272
+ }
273
+ }
274
+ try {
275
+ pl.stock.call(`unload_file('${path}')`);
276
+ }
277
+ catch (e) {
278
+ warnings.push(`unload_file ${path}: ${e instanceof Error ? e.message : String(e)}`);
279
+ }
280
+ try {
281
+ pl.em.FS.unlink(path);
282
+ }
283
+ catch {
284
+ // File may already be gone (e.g. consult never ran). Not a warning —
285
+ // we explicitly call cleanupSession even on the never-consulted path.
286
+ }
287
+ return warnings;
288
+ }
289
+ /**
290
+ * Best-effort unlink for the case where the program never made it to
291
+ * consult. Failures here are silent — there's nothing actionable for
292
+ * the caller (the file simply may not exist).
293
+ */
294
+ function tryUnlink(pl, path) {
295
+ try {
296
+ pl.em.FS.unlink(path);
297
+ }
298
+ catch {
299
+ /* never written */
300
+ }
301
+ return [];
302
+ }
303
+ // ---------------------------------------------------------------------
304
+ // Tracing instrumentation
305
+ // ---------------------------------------------------------------------
306
+ //
307
+ // Rewrites each rule `head :- body.` to `head :- body, assertz(trace_goal(head)).`
308
+ // so trace_goal/1 accumulates which rules fired with bound variables.
309
+ // Facts and directives are left unchanged.
38
310
  function instrumentForTracing(program) {
39
311
  const parts = [":- dynamic(trace_goal/1).\n\n"];
40
312
  let pos = 0;
41
313
  const len = program.length;
42
314
  while (pos < len) {
43
- // Skip whitespace in bulk
44
315
  const wsStart = pos;
45
316
  while (pos < len && /\s/.test(program[pos]))
46
317
  pos++;
@@ -49,7 +320,6 @@ function instrumentForTracing(program) {
49
320
  }
50
321
  if (pos >= len)
51
322
  break;
52
- // Skip line comments in bulk
53
323
  if (program[pos] === "%") {
54
324
  const nlIdx = program.indexOf("\n", pos);
55
325
  if (nlIdx === -1) {
@@ -60,15 +330,14 @@ function instrumentForTracing(program) {
60
330
  pos = nlIdx + 1;
61
331
  continue;
62
332
  }
63
- // Scan a clause: from pos to the next period at depth 0
64
333
  const clauseStart = pos;
65
334
  let depth = 0;
66
335
  let inQuote = false;
336
+ let emittedClause = false;
67
337
  while (pos < len) {
68
338
  const ch = program[pos];
69
339
  if (inQuote) {
70
340
  if (ch === "\\") {
71
- // Backslash escape: skip the next char (covers \', \\, \n, etc.)
72
341
  pos += 2;
73
342
  continue;
74
343
  }
@@ -107,10 +376,10 @@ function instrumentForTracing(program) {
107
376
  continue;
108
377
  }
109
378
  if (ch === "." && depth === 0) {
110
- // A `.` flanked by digits is a decimal literal (e.g. `3.14`), not
111
- // a clause terminator. In Prolog only whitespace, EOF, or `%`
112
- // comment legitimately follow a clause-ending period, so the
113
- // digit-flanked case is unambiguous.
379
+ // A `.` flanked by digits is a decimal literal, not a clause
380
+ // terminator. In Prolog only whitespace, EOF, or `%` legitimately
381
+ // follows a clause-ending period, so the digit-flanked case is
382
+ // unambiguous.
114
383
  const prevCh = pos > 0 ? program[pos - 1] : "";
115
384
  const nextCh = pos + 1 < len ? program[pos + 1] : "";
116
385
  if (prevCh >= "0" && prevCh <= "9" && nextCh >= "0" && nextCh <= "9") {
@@ -121,22 +390,29 @@ function instrumentForTracing(program) {
121
390
  const clause = program.slice(clauseStart, pos).trim();
122
391
  if (clause.startsWith(":-")) {
123
392
  parts.push(clause + "\n");
124
- break;
125
- }
126
- const neckIdx = findNeck(clause);
127
- if (neckIdx >= 0) {
128
- const head = clause.slice(0, neckIdx).trim();
129
- const body = clause.slice(neckIdx + 2).slice(0, -1).trim();
130
- parts.push(`${head} :- ${body}, assertz(trace_goal(${head})).\n`);
131
393
  }
132
394
  else {
133
- parts.push(clause + "\n");
395
+ const neckIdx = findNeck(clause);
396
+ if (neckIdx >= 0) {
397
+ const head = clause.slice(0, neckIdx).trim();
398
+ const body = clause.slice(neckIdx + 2).slice(0, -1).trim();
399
+ parts.push(`${head} :- ${body}, assertz(trace_goal(${head})).\n`);
400
+ }
401
+ else {
402
+ parts.push(clause + "\n");
403
+ }
134
404
  }
405
+ emittedClause = true;
135
406
  break;
136
407
  }
137
408
  pos++;
138
409
  }
139
- if (pos >= len && program.slice(clauseStart, pos).trim()) {
410
+ // If we exhausted the input without finding a clause-terminator, the
411
+ // tail is a partial clause — push it verbatim so SWI surfaces the
412
+ // syntax error rather than us silently dropping it. Don't push if we
413
+ // already emitted a clause from the inner while: pos can equal len
414
+ // there too (final clause flush against EOF) and we'd double-emit.
415
+ if (!emittedClause && program.slice(clauseStart, pos).trim()) {
140
416
  parts.push(program.slice(clauseStart));
141
417
  }
142
418
  }
@@ -151,7 +427,7 @@ function findNeck(clause) {
151
427
  if (ch === "\\") {
152
428
  i++;
153
429
  continue;
154
- } // backslash escape: skip next char
430
+ }
155
431
  if (ch === "'" && clause[i + 1] === "'") {
156
432
  i++;
157
433
  continue;
@@ -185,16 +461,6 @@ function findNeck(clause) {
185
461
  }
186
462
  return -1;
187
463
  }
188
- function formatError(session, err) {
189
- if (err instanceof Error)
190
- return err.message;
191
- try {
192
- return session.format_answer(err) || String(err);
193
- }
194
- catch {
195
- return String(err);
196
- }
197
- }
198
464
  export function createPrologSolver() {
199
465
  let disposed = false;
200
466
  return {
@@ -206,71 +472,136 @@ export function createPrologSolver() {
206
472
  if (input.type !== "prolog") {
207
473
  return { status: "error", error: "Expected prolog input type" };
208
474
  }
209
- const explain = input.explain ?? false;
210
- const program = explain ? instrumentForTracing(input.program) : input.program;
211
- const inferenceBudget = input.maxInferences ?? DEFAULT_MAX_INFERENCES;
212
- const session = pl.create(inferenceBudget);
475
+ let pl;
213
476
  try {
214
- await consult(session, program);
477
+ pl = await getPl();
215
478
  }
216
479
  catch (e) {
217
- return { status: "error", error: formatError(session, e) };
480
+ return {
481
+ status: "error",
482
+ error: `prolog init failed: ${e instanceof Error ? e.message : String(e)}`,
483
+ };
484
+ }
485
+ const explain = input.explain ?? false;
486
+ const userProgram = explain
487
+ ? instrumentForTracing(input.program)
488
+ : input.program;
489
+ const inferenceBudget = input.maxInferences ?? DEFAULT_MAX_INFERENCES;
490
+ const moduleId = uniqueSessionModule();
491
+ const path = uniqueTempPath();
492
+ if (!SAFE_PATH_RE.test(path)) {
493
+ return {
494
+ status: "error",
495
+ error: `internal: tempfile path failed safety check: ${path}`,
496
+ };
218
497
  }
498
+ // Wrap the user code in a fresh module. `:- module(M, [])` puts
499
+ // every definition in M's namespace; built-ins still resolve via
500
+ // the auto-imported `system` module, and we explicitly import
501
+ // the libraries the user is likely to reach for. This is what
502
+ // gives concurrent solves with overlapping predicate names
503
+ // independent state.
504
+ const program = `:- module(${moduleId}, []).\n` +
505
+ `:- use_module(library(lists)).\n` +
506
+ `:- use_module(library(clpfd)).\n` +
507
+ userProgram;
508
+ let consulted = false;
509
+ const finalize = (result, prefix = []) => {
510
+ const cleanupWarnings = consulted
511
+ ? cleanupSession(pl, moduleId, path)
512
+ : tryUnlink(pl, path);
513
+ const warnings = [...prefix, ...cleanupWarnings];
514
+ if (warnings.length === 0)
515
+ return result;
516
+ if (result.status === "success") {
517
+ return { ...result, warnings };
518
+ }
519
+ if (result.status === "error") {
520
+ return { ...result, warnings };
521
+ }
522
+ return result;
523
+ };
219
524
  try {
220
- await query(session, input.query);
525
+ pl.em.FS.writeFile(path, program);
221
526
  }
222
527
  catch (e) {
223
- return { status: "error", error: formatError(session, e) };
528
+ return finalize({
529
+ status: "error",
530
+ error: `failed to stage program: ${e instanceof Error ? e.message : String(e)}`,
531
+ });
224
532
  }
225
- const answers = [];
533
+ clearMessages(pl);
226
534
  try {
227
- for (let i = 0; i < MAX_ANSWERS; i++) {
228
- const ans = await nextAnswer(session);
229
- if (ans === null)
230
- break;
231
- const bindings = {};
232
- const links = ans.links;
233
- if (links) {
234
- for (const [name, term] of Object.entries(links)) {
235
- bindings[name] = term.toString?.()
236
- ?? term.id
237
- ?? String(term);
238
- }
239
- }
240
- const formatted = pl.format_answer(ans) ?? "";
241
- answers.push({ bindings, formatted });
242
- }
535
+ pl.stock.call(`consult('${path}')`);
536
+ consulted = true;
243
537
  }
244
538
  catch (e) {
245
- return { status: "error", error: formatError(session, e) };
246
- }
247
- // Collect derivation trace if explain mode is on
248
- if (explain) {
249
- try {
250
- await query(session, "trace_goal(X).");
251
- const trace = [];
252
- const seen = new Set();
253
- for (let i = 0; i < MAX_TRACE_ENTRIES; i++) {
254
- const t = await nextAnswer(session);
255
- if (t === null)
256
- break;
257
- const links = t.links;
258
- if (links?.X) {
259
- const entry = links.X.toString?.() ?? String(links.X);
260
- if (!seen.has(entry)) {
261
- seen.add(entry);
262
- trace.push(entry);
263
- }
264
- }
265
- }
266
- return { status: "success", answers, trace };
267
- }
268
- catch {
269
- // Trace collection failed return answers without trace
270
- return { status: "success", answers };
539
+ return finalize({
540
+ status: "error",
541
+ error: `consult failed: ${e instanceof Error ? e.message : String(e)}`,
542
+ });
543
+ }
544
+ const consultErrs = collectErrorMessages(pl);
545
+ if (consultErrs.length > 0) {
546
+ return finalize({ status: "error", error: consultErrs.join("\n") });
547
+ }
548
+ const normalized = normalizeQuery(input.query);
549
+ if (!normalized) {
550
+ return finalize({ status: "error", error: "empty query" });
551
+ }
552
+ const parseErr = validateQuery(pl, normalized);
553
+ if (parseErr) {
554
+ return finalize({ status: "error", error: parseErr });
555
+ }
556
+ // Wrap the user goal in three concentric layers (innermost first):
557
+ // 1. `${moduleId}:Goal` — resolve predicates against the session
558
+ // module, so the user's `parent(...)` finds their own clauses.
559
+ // 2. `call_with_inference_limit(..., Budget, Marker)` — bound
560
+ // runaway labelings; Marker binds to LIMIT_EXCEEDED_ATOM on
561
+ // overrun.
562
+ // 3. `catch(..., Err, recovery)` — turn existence_error and
563
+ // friends into structured solver errors instead of letting
564
+ // SWI print them and the JS handle silently return zero
565
+ // answers. Recovery asserts the error term to our shared
566
+ // message buffer and fails so the iterator terminates.
567
+ const wrapped = `catch(` +
568
+ `call_with_inference_limit((${moduleId}:(${normalized})), ${inferenceBudget}, ${LIMIT_MARKER_VAR}), ` +
569
+ `Err, ` +
570
+ `(with_output_to(string(EStr), write(Err)), ` +
571
+ `assertz(user:'$chiasmus_msg'(error, EStr)), fail))`;
572
+ clearMessages(pl);
573
+ const queryResult = runQuery(pl, wrapped, { detectLimitMarker: true });
574
+ const queryErrs = collectErrorMessages(pl);
575
+ if (queryErrs.length > 0) {
576
+ return finalize({ status: "error", error: queryErrs.join("\n") });
577
+ }
578
+ if ("error" in queryResult) {
579
+ return finalize({ status: "error", error: queryResult.error });
580
+ }
581
+ const answers = queryResult.answers.map((bindings) => ({
582
+ bindings,
583
+ formatted: bindingsToFormatted(bindings),
584
+ }));
585
+ if (!explain) {
586
+ return finalize({ status: "success", answers });
587
+ }
588
+ // Collect derivation trace from the session-local trace_goal/1.
589
+ const traceResult = runQuery(pl, `${moduleId}:trace_goal(X)`, {
590
+ maxAnswers: MAX_TRACE_ENTRIES,
591
+ });
592
+ if ("error" in traceResult) {
593
+ return finalize({ status: "success", answers });
594
+ }
595
+ const trace = [];
596
+ const seen = new Set();
597
+ for (const row of traceResult.answers) {
598
+ const entry = row.X;
599
+ if (typeof entry === "string" && !seen.has(entry)) {
600
+ seen.add(entry);
601
+ trace.push(entry);
271
602
  }
272
603
  }
273
- return { status: "success", answers };
604
+ return finalize({ status: "success", answers, trace });
274
605
  },
275
606
  dispose() {
276
607
  if (!disposed) {
@@ -1 +1 @@
1
- {"version":3,"file":"prolog-solver.js","sourceRoot":"","sources":["../../src/solvers/prolog-solver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prolog-solver.js","sourceRoot":"","sources":["../../src/solvers/prolog-solver.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,11 @@ export type SolverResult = {
13
13
  status: "success";
14
14
  answers: PrologAnswer[];
15
15
  trace?: string[];
16
+ warnings?: string[];
16
17
  } | {
17
18
  status: "error";
18
19
  error: string;
20
+ warnings?: string[];
19
21
  };
20
22
  /** A single Prolog query answer: variable bindings */
21
23
  export interface PrologAnswer {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/solvers/types.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEzC,mCAAmC;AACnC,MAAM,MAAM,YAAY,GACpB;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAChD;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAChE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+CAA+C;AAC/C,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAE1B;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEjD,0DAA0D;IAC1D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAwB;AACxB,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/solvers/types.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEzC,mCAAmC;AACnC,MAAM,MAAM,YAAY,GACpB;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAChD;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACrF;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE5D,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+CAA+C;AAC/C,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAE1B;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEjD,0DAA0D;IAC1D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAwB;AACxB,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "chiasmus",
3
- "version": "0.1.18",
3
+ "version": "0.1.19",
4
4
  "type": "module",
5
- "description": "Neurosymbolic verification engine - MCP server for formal reasoning with Z3 and Tau Prolog",
5
+ "description": "Neurosymbolic verification engine - MCP server for formal reasoning with Z3 and SWI-Prolog (WASM)",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "bin": {
@@ -83,7 +83,7 @@
83
83
  "graphology-metrics": "^2.4.0",
84
84
  "proper-lockfile": "^4.1.2",
85
85
  "repl-sandbox": "^0.1.1",
86
- "tau-prolog": "^0.3.4",
86
+ "prolog-wasm-full": "^0.2.0",
87
87
  "tree-sitter": "^0.22.4",
88
88
  "tree-sitter-go": "^0.23.2",
89
89
  "tree-sitter-javascript": "^0.23.1",