deepclause-sdk 0.0.88 → 0.0.89
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/LICENSE +21 -0
- package/README.md +35 -0
- package/dist/agent.d.ts +2 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +164 -0
- package/dist/agent.js.map +1 -1
- package/dist/compiler_prompt.d.ts +1 -1
- package/dist/compiler_prompt.d.ts.map +1 -1
- package/dist/compiler_prompt.js +2 -2
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/judge/index.d.ts +9 -0
- package/dist/judge/index.d.ts.map +1 -0
- package/dist/judge/index.js +6 -0
- package/dist/judge/index.js.map +1 -0
- package/dist/judge/jev.d.ts +21 -0
- package/dist/judge/jev.d.ts.map +1 -0
- package/dist/judge/jev.js +218 -0
- package/dist/judge/jev.js.map +1 -0
- package/dist/judge/llm.d.ts +23 -0
- package/dist/judge/llm.d.ts.map +1 -0
- package/dist/judge/llm.js +120 -0
- package/dist/judge/llm.js.map +1 -0
- package/dist/judge/marshal.d.ts +26 -0
- package/dist/judge/marshal.d.ts.map +1 -0
- package/dist/judge/marshal.js +266 -0
- package/dist/judge/marshal.js.map +1 -0
- package/dist/judge/mock.d.ts +28 -0
- package/dist/judge/mock.d.ts.map +1 -0
- package/dist/judge/mock.js +98 -0
- package/dist/judge/mock.js.map +1 -0
- package/dist/judge/types.d.ts +95 -0
- package/dist/judge/types.d.ts.map +1 -0
- package/dist/judge/types.js +23 -0
- package/dist/judge/types.js.map +1 -0
- package/dist/prolog/bridge.d.ts +3 -1
- package/dist/prolog/bridge.d.ts.map +1 -1
- package/dist/prolog/bridge.js +22 -1
- package/dist/prolog/bridge.js.map +1 -1
- package/dist/prolog-src/deepclause_mi.pl +204 -4
- package/dist/runner.d.ts +14 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +170 -9
- package/dist/runner.js.map +1 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +56 -0
- package/dist/sdk.js.map +1 -1
- package/dist/system/assets/docs/DML_REFERENCE.md +82 -1
- package/dist/types.d.ts +69 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/prolog-src/deepclause_mi.pl +204 -4
- package/dist/system/assets/compactors/default-memory-compactor.dml +0 -6
package/dist/sdk.js
CHANGED
|
@@ -5,6 +5,7 @@ import { DMLRunner } from './runner.js';
|
|
|
5
5
|
import { loadProlog } from './prolog/loader.js';
|
|
6
6
|
import { compileToDML } from './compiler.js';
|
|
7
7
|
import { getBuiltInCompileTools } from './tools.js';
|
|
8
|
+
import { createLLMJudgeBackend } from './judge/llm.js';
|
|
8
9
|
import * as fs from 'fs/promises';
|
|
9
10
|
import * as path from 'path';
|
|
10
11
|
function extractAgentMainArities(code) {
|
|
@@ -58,6 +59,34 @@ export async function createDeepClause(options) {
|
|
|
58
59
|
}
|
|
59
60
|
// Initialize SWI-Prolog WASM
|
|
60
61
|
const swipl = await loadProlog();
|
|
62
|
+
// Judgment backends: an explicit default/registry, or an LLM judge created
|
|
63
|
+
// from the same model options so judge predicates work out of the box.
|
|
64
|
+
const judgeSelection = {
|
|
65
|
+
backends: new Map(),
|
|
66
|
+
defaultName: options.defaultJudge ?? 'llm',
|
|
67
|
+
};
|
|
68
|
+
if (options.judgeBackend) {
|
|
69
|
+
judgeSelection.backends.set(options.judgeBackend.id, options.judgeBackend);
|
|
70
|
+
}
|
|
71
|
+
if (options.judgeBackends) {
|
|
72
|
+
for (const [name, backend] of Object.entries(options.judgeBackends)) {
|
|
73
|
+
judgeSelection.backends.set(name, backend);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (judgeSelection.backends.size === 0) {
|
|
77
|
+
judgeSelection.backends.set('llm', createLLMJudgeBackend({
|
|
78
|
+
llmBackend: options.llmBackend,
|
|
79
|
+
model: options.model,
|
|
80
|
+
provider,
|
|
81
|
+
temperature: options.temperature,
|
|
82
|
+
maxTokens: options.maxTokens,
|
|
83
|
+
baseUrl: options.baseUrl,
|
|
84
|
+
providerOptions: options.providerOptions,
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
if (!judgeSelection.backends.has(judgeSelection.defaultName)) {
|
|
88
|
+
judgeSelection.defaultName = judgeSelection.backends.keys().next().value ?? 'llm';
|
|
89
|
+
}
|
|
61
90
|
// Create the runner instance
|
|
62
91
|
const runner = new DMLRunner(swipl, {
|
|
63
92
|
model: options.model,
|
|
@@ -73,6 +102,8 @@ export async function createDeepClause(options) {
|
|
|
73
102
|
reasoningType: options.reasoningType,
|
|
74
103
|
reasoningBudgetMap: options.reasoningBudgetMap,
|
|
75
104
|
contextWindow: options.contextWindow,
|
|
105
|
+
llmBackend: options.llmBackend,
|
|
106
|
+
judgeSelection,
|
|
76
107
|
});
|
|
77
108
|
// Tool registry
|
|
78
109
|
const tools = new Map();
|
|
@@ -164,6 +195,31 @@ export async function createDeepClause(options) {
|
|
|
164
195
|
getMemory() {
|
|
165
196
|
return runner.getMemory();
|
|
166
197
|
},
|
|
198
|
+
registerJudgeBackend(name, backend) {
|
|
199
|
+
if (disposed) {
|
|
200
|
+
throw new Error('SDK has been disposed');
|
|
201
|
+
}
|
|
202
|
+
judgeSelection.backends.set(name, backend);
|
|
203
|
+
},
|
|
204
|
+
setJudgeBackend(name) {
|
|
205
|
+
if (disposed) {
|
|
206
|
+
throw new Error('SDK has been disposed');
|
|
207
|
+
}
|
|
208
|
+
if (!judgeSelection.backends.has(name)) {
|
|
209
|
+
throw new Error(`Unknown judgment backend: ${name}`);
|
|
210
|
+
}
|
|
211
|
+
judgeSelection.defaultName = name;
|
|
212
|
+
},
|
|
213
|
+
getJudgeBackends() {
|
|
214
|
+
return [...judgeSelection.backends.keys()];
|
|
215
|
+
},
|
|
216
|
+
getJudgeCapabilities(name) {
|
|
217
|
+
const key = name ?? judgeSelection.defaultName;
|
|
218
|
+
const backend = judgeSelection.backends.get(key);
|
|
219
|
+
if (!backend)
|
|
220
|
+
throw new Error(`Unknown judgment backend: ${key}`);
|
|
221
|
+
return backend.capabilities;
|
|
222
|
+
},
|
|
167
223
|
async dispose() {
|
|
168
224
|
if (disposed)
|
|
169
225
|
return;
|
package/dist/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,SAAS,uBAAuB,CAAC,IAAY;IAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,WAAW,GAAG,0CAA0C,CAAC;IAC/D,IAAI,KAA6B,CAAC;IAElC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,OAAO;aACjB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,IAAgB;IAC1D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;IACxC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAAC;QACzC,MAAM,aAAa,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,GAAG,aAAa,uBAAuB,CAAC;QAC9G,MAAM,aAAa,GAAG,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,aAAa,YAAY,CAAC;QACxF,OAAO,kDAAkD,aAAa,kBAAkB,aAAa,gFAAgF,CAAC;IACxL,CAAC;IAED,OAAO,2DAA2D,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,aAAa,yGAAyG,CAAC;AACxO,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAsB;IAC3D,mDAAmD;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEnE,yCAAyC;IACzC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,6BAA6B;IAC7B,MAAM,KAAK,GAAG,MAAM,UAAU,EAAE,CAAC;IAEjC,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,cAAc,GAAmB;QACrC,QAAQ,EAAE,IAAI,GAAG,EAAwB;QACzC,WAAW,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;KAC3C,CAAC;IACF,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACpE,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,qBAAqB,CAAC;YACvD,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ;YACR,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAC,CAAC;IACN,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,cAAc,CAAC,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC;IACpF,CAAC;IAED,6BAA6B;IAC7B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ;QACR,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;QACvC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;QACrC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;QAC7B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;QACrC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;QAC7B,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc;KACf,CAAC,CAAC;IAEH,gBAAgB;IAChB,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,IAAI,UAAU,GAAsB,IAAI,CAAC;IACzC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,iBAAiB;IACjB,IAAI,mBAAmB,GAAqC,IAAI,CAAC;IAEjE,MAAM,GAAG,GAAkB;QACzB,KAAK,CAAC,CAAC,MAAM,CAAC,IAAY,EAAE,UAAuB;YACjD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7E,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;gBAC1D,OAAO;YACT,CAAC;YAED,wCAAwC;YACxC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;gBACtB,GAAG,UAAU;gBACb,UAAU,EAAE,UAAU,EAAE,UAAU;gBAClC,KAAK;gBACL,UAAU;gBACV,QAAQ,EAAE,UAAU,EAAE,QAAQ;gBAC9B,eAAe,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;oBACxC,IAAI,UAAU,EAAE,WAAW,EAAE,CAAC;wBAC5B,OAAO,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBACxC,CAAC;oBACD,2DAA2D;oBAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC7B,mBAAmB,GAAG,OAAO,CAAC;oBAChC,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,cAA+B;YAC3D,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,QAAQ,GAAG,MAAM,CAAC;YAEtB,qEAAqE;YACrE,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;gBACnD,IAAI,CAAC;oBACH,4DAA4D;oBAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;oBACxF,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAClD,CAAC;gBAAC,MAAM,CAAC;oBACP,sEAAsE;gBACxE,CAAC;YACH,CAAC;YAED,gBAAgB;YAChB,MAAM,aAAa,GAAmB;gBACpC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,QAAe;gBACzB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,KAAK,EAAE,sBAAsB,EAAE;gBAC/B,GAAG,cAAc;aAClB,CAAC;YAEF,OAAO,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC/C,CAAC;QAED,YAAY,CAAC,IAAY,EAAE,IAAoB;YAC7C,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,aAAa,CAAC,MAAkB;YAC9B,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;QAED,eAAe;YACb,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,aAAa;YACX,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,QAAQ;YACN,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,YAAY,CAAC,KAAa;YACxB,IAAI,mBAAmB,EAAE,CAAC;gBACxB,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC3B,mBAAmB,GAAG,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,SAAS;YACP,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5B,CAAC;QAED,oBAAoB,CAAC,IAAY,EAAE,OAAqB;YACtD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,eAAe,CAAC,IAAY;YAC1B,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC;QACpC,CAAC;QAED,gBAAgB;YACd,OAAO,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,oBAAoB,CAAC,IAAa;YAChC,MAAM,GAAG,GAAG,IAAI,IAAI,cAAc,CAAC,WAAW,CAAC;YAC/C,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;YAClE,OAAO,OAAO,CAAC,YAAY,CAAC;QAC9B,CAAC;QAED,KAAK,CAAC,OAAO;YACX,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;KACF,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAElC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1E,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,2CAA2C;IAC3C,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,QAAgB,EAAE,MAAc;IACjD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC;YACpC,MAAM;QACR,KAAK,WAAW;YACd,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC;YACvC,MAAM;QACR,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,MAAM,CAAC;YAClD,MAAM;QACR,KAAK,YAAY;YACf,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC;YACxC,MAAM;IACV,CAAC;AACH,CAAC"}
|
|
@@ -653,4 +653,85 @@ for await (const event of dc.runDML(code, {
|
|
|
653
653
|
})) {
|
|
654
654
|
console.log(event.type, event.content);
|
|
655
655
|
}
|
|
656
|
-
```
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
---
|
|
659
|
+
|
|
660
|
+
## Semantic Judgment Predicates
|
|
661
|
+
|
|
662
|
+
Semantic judgments answer bounded, typed questions about an explicit state.
|
|
663
|
+
They are not generative: a `choose` picks one of your options, a `rate` picks
|
|
664
|
+
one of your levels, and a `verify` returns a probability / yes-no answer. They
|
|
665
|
+
never read or write DML memory (`system/1`, `user/1`, `task/N`), and one `judge/2`
|
|
666
|
+
call sends every question in a single request.
|
|
667
|
+
|
|
668
|
+
### `judge(+State, +Specs)`
|
|
669
|
+
|
|
670
|
+
Each element of `Specs` is `Question - Output`. The output variable is bound
|
|
671
|
+
when the batch completes.
|
|
672
|
+
|
|
673
|
+
```prolog
|
|
674
|
+
agent_main(Message) :-
|
|
675
|
+
judge(Message, [
|
|
676
|
+
choose("Which team should handle this?",
|
|
677
|
+
[billing-"Charges and refunds", orders-"Delivery and returns",
|
|
678
|
+
account-"Login and security"]) - Team,
|
|
679
|
+
rate("How frustrated is the customer?", [calm, frustrated, angry]) - Frustration,
|
|
680
|
+
verify("Does the message ask for a refund?") - Refund,
|
|
681
|
+
probability("Is this urgent?") - Urgency
|
|
682
|
+
]),
|
|
683
|
+
( Refund == yes
|
|
684
|
+
-> answer("Escalating to the refund queue.")
|
|
685
|
+
; format(string(R), "Routing to ~w (frustration ~w, urgency ~w)", [Team, Frustration, Urgency]),
|
|
686
|
+
answer(R)
|
|
687
|
+
).
|
|
688
|
+
```
|
|
689
|
+
|
|
690
|
+
Question forms:
|
|
691
|
+
|
|
692
|
+
- `choose(Instruction, Options)` - options are atoms or `Option-"description"`.
|
|
693
|
+
- `rate(Instruction, Levels)` - an ordered list of level descriptions.
|
|
694
|
+
- `verify(Instruction)` / `verify(Instruction, criteria(True, False))`.
|
|
695
|
+
- `probability(Instruction)`.
|
|
696
|
+
|
|
697
|
+
### One-off predicates
|
|
698
|
+
|
|
699
|
+
Each is a single request for a single judgment:
|
|
700
|
+
|
|
701
|
+
```prolog
|
|
702
|
+
choose(State, Question, Options, Choice)
|
|
703
|
+
rate(State, Question, Levels, Level)
|
|
704
|
+
verify(State, Question, Truth) % yes | no | unknown
|
|
705
|
+
probability(State, Question, P) % number
|
|
706
|
+
holds(State, Question) % semidet: succeeds when verify == yes
|
|
707
|
+
holds(State, Question, Threshold) % semidet: probability >= Threshold
|
|
708
|
+
```
|
|
709
|
+
|
|
710
|
+
### Backends and capabilities
|
|
711
|
+
|
|
712
|
+
Judgments are backend-agnostic. Backends are registered on the SDK
|
|
713
|
+
(`createDeepClause({ judgeBackends, defaultJudge })`) and can be selected per
|
|
714
|
+
run or per scope:
|
|
715
|
+
|
|
716
|
+
```prolog
|
|
717
|
+
with_judgment(jev, choose("state", "Which team?", [billing, orders], Team)).
|
|
718
|
+
require_judgment(calibrated, verify("state", "Is this urgent?", Truth)).
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
`require_judgment/2` fails the wrapped goal before it runs when the active
|
|
722
|
+
backend does not provide the capability, so a skill that depends on calibrated
|
|
723
|
+
probabilities cannot silently run on an uncalibrated backend. Available
|
|
724
|
+
capabilities include `calibrated`, `probability`, `confidence`, and
|
|
725
|
+
`independentQuestions`.
|
|
726
|
+
|
|
727
|
+
Observations are memoized per run by backend, model, state, and questions, so
|
|
728
|
+
backtracking reuses an answer instead of re-querying the model.
|
|
729
|
+
|
|
730
|
+
### Notes
|
|
731
|
+
|
|
732
|
+
- `verify` is three-valued: `yes`, `no`, or `unknown`. Never read `\+` as
|
|
733
|
+
"the model said no"; use the returned truth value.
|
|
734
|
+
- Values are constrained to the options/levels you supply. A `choose` answer is
|
|
735
|
+
always one of your option atoms.
|
|
736
|
+
- Prefer one `judge/2` batch over several one-off calls when you need more than
|
|
737
|
+
one or two judgments.
|
package/dist/types.d.ts
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Type definitions for DeepClause SDK
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
+
import type { JudgeBackend, JudgeCapabilities } from './judge/types.js';
|
|
6
|
+
export type { JudgeAnswer, JudgeBackend, JudgeBackendRequest, JudgeBackendResponse, JudgeBasis, JudgeCapabilities, JudgeLevel, JudgeOption, JudgeQuestion, JudgeQuestionKind, JudgeSelection, JudgeUsage, JsonValue, } from './judge/types.js';
|
|
5
7
|
/**
|
|
6
8
|
* Options for creating a DeepClause SDK instance
|
|
7
9
|
*/
|
|
@@ -34,6 +36,53 @@ export interface CreateOptions {
|
|
|
34
36
|
reasoningBudgetMap?: Record<string, number>;
|
|
35
37
|
/** Model context window in tokens (from model database) */
|
|
36
38
|
contextWindow?: number;
|
|
39
|
+
/** Host-provided LLM backend. When set, no provider credentials or environment variables are used. */
|
|
40
|
+
llmBackend?: LLMBackend;
|
|
41
|
+
/** Default judgment backend. When omitted, an LLM judge backend is created from the model options. */
|
|
42
|
+
judgeBackend?: JudgeBackend;
|
|
43
|
+
/** Named judgment backends selectable from DML with with_judgment/2. */
|
|
44
|
+
judgeBackends?: Record<string, JudgeBackend>;
|
|
45
|
+
/** Name of the default judgment backend. Defaults to the first registered backend. */
|
|
46
|
+
defaultJudge?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface LLMBackendMessage {
|
|
49
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
50
|
+
content: string;
|
|
51
|
+
toolCalls?: LLMBackendToolCall[];
|
|
52
|
+
toolCallId?: string;
|
|
53
|
+
toolName?: string;
|
|
54
|
+
/** Opaque host-native message used to preserve provider state across backend calls. */
|
|
55
|
+
providerData?: unknown;
|
|
56
|
+
}
|
|
57
|
+
export interface LLMBackendTool {
|
|
58
|
+
name: string;
|
|
59
|
+
description: string;
|
|
60
|
+
parameters: Record<string, unknown>;
|
|
61
|
+
}
|
|
62
|
+
export interface LLMBackendToolCall {
|
|
63
|
+
id: string;
|
|
64
|
+
name: string;
|
|
65
|
+
arguments: Record<string, unknown>;
|
|
66
|
+
}
|
|
67
|
+
export interface LLMBackendRequest {
|
|
68
|
+
messages: LLMBackendMessage[];
|
|
69
|
+
tools?: LLMBackendTool[];
|
|
70
|
+
temperature?: number;
|
|
71
|
+
maxTokens?: number;
|
|
72
|
+
signal?: AbortSignal;
|
|
73
|
+
/** Receives model text as it becomes available. Backends may emit one final chunk. */
|
|
74
|
+
onText?: (chunk: string) => void;
|
|
75
|
+
}
|
|
76
|
+
export interface LLMBackendResponse {
|
|
77
|
+
text: string;
|
|
78
|
+
toolCalls?: LLMBackendToolCall[];
|
|
79
|
+
usage?: LLMUsage;
|
|
80
|
+
finishReason?: 'stop' | 'length' | 'tool_use' | 'error' | 'aborted';
|
|
81
|
+
/** Opaque host-native assistant message to replay on a subsequent backend call. */
|
|
82
|
+
providerData?: unknown;
|
|
83
|
+
}
|
|
84
|
+
export interface LLMBackend {
|
|
85
|
+
complete(request: LLMBackendRequest): Promise<LLMBackendResponse>;
|
|
37
86
|
}
|
|
38
87
|
export type CompactorSourceType = 'inline' | 'file' | 'auto';
|
|
39
88
|
export type CompactionScope = 'session' | 'loop' | 'run';
|
|
@@ -83,6 +132,8 @@ export interface RunOptions {
|
|
|
83
132
|
params?: Record<string, unknown>;
|
|
84
133
|
/** Path to workspace directory */
|
|
85
134
|
workspacePath?: string;
|
|
135
|
+
/** Per-run default judgment backend name override. */
|
|
136
|
+
judgeBackend?: string;
|
|
86
137
|
/** Maximum number of execution steps (gas) */
|
|
87
138
|
gasLimit?: number;
|
|
88
139
|
/** Handler for user input requests */
|
|
@@ -174,6 +225,16 @@ export interface DMLEvent {
|
|
|
174
225
|
taskDescription?: string;
|
|
175
226
|
/** Correlation ID for matching start/end of a step (only for 'task_activity' events) */
|
|
176
227
|
taskId?: string;
|
|
228
|
+
/** Judgment backend name (only for judge activity events) */
|
|
229
|
+
judgeBackend?: string;
|
|
230
|
+
/** Judged question ids (only for judge activity events) */
|
|
231
|
+
judgeQuestionIds?: string[];
|
|
232
|
+
/** Judgment step lifecycle state (only for judge activity events) */
|
|
233
|
+
judgeState?: 'started' | 'completed' | 'failed';
|
|
234
|
+
/** Which subsystem produced a usage event. */
|
|
235
|
+
usageSource?: 'llm' | 'judge';
|
|
236
|
+
/** Model that produced a usage event. */
|
|
237
|
+
usageModel?: string;
|
|
177
238
|
}
|
|
178
239
|
/**
|
|
179
240
|
* Tool definition for registering external tools
|
|
@@ -325,6 +386,14 @@ export interface DeepClauseSDK {
|
|
|
325
386
|
* @returns Array of memory messages (system, user, assistant)
|
|
326
387
|
*/
|
|
327
388
|
getMemory(): MemoryMessage[];
|
|
389
|
+
/** Register or replace a named judgment backend. */
|
|
390
|
+
registerJudgeBackend(name: string, backend: JudgeBackend): void;
|
|
391
|
+
/** Select the default judgment backend by name. */
|
|
392
|
+
setJudgeBackend(name: string): void;
|
|
393
|
+
/** List registered judgment backend names. */
|
|
394
|
+
getJudgeBackends(): string[];
|
|
395
|
+
/** Get the capabilities of a judgment backend (default when omitted). */
|
|
396
|
+
getJudgeCapabilities(name?: string): JudgeCapabilities;
|
|
328
397
|
/**
|
|
329
398
|
* Clean up resources
|
|
330
399
|
*/
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
post_exec_result/3,
|
|
25
25
|
post_sample_token_result/3,
|
|
26
26
|
post_llm_result/3,
|
|
27
|
+
post_judgment_result/3,
|
|
27
28
|
provide_input/2,
|
|
28
29
|
mi/3,
|
|
29
30
|
% Tool engine predicates for isolated tool execution
|
|
@@ -50,6 +51,7 @@
|
|
|
50
51
|
:- dynamic session_exec_result/2. % session_exec_result(SessionId, Result)
|
|
51
52
|
:- dynamic session_sample_token_result/2. % session_sample_token_result(SessionId, Result)
|
|
52
53
|
:- dynamic session_llm_result/2. % session_llm_result(SessionId, Result)
|
|
54
|
+
:- dynamic session_judgment_result/2. % session_judgment_result(SessionId, Result)
|
|
53
55
|
:- dynamic session_trace_log/2. % session_trace_log(SessionId, TraceLog) - accumulated trace entries
|
|
54
56
|
:- dynamic session_trace_enabled/2. % session_trace_enabled(SessionId, true/false)
|
|
55
57
|
:- dynamic session_pending_signal/2. % session_pending_signal(SessionId, Signal) - fallback for engine_fetch
|
|
@@ -562,7 +564,7 @@ process_engine_result(output(Text), output, Text, none) :- !.
|
|
|
562
564
|
process_engine_result(log(Text), log, Text, none) :- !.
|
|
563
565
|
process_engine_result(answer(Text), answer, Text, none) :- !.
|
|
564
566
|
%% Note: Memory and tool scope are now passed in the payload for the agent loop
|
|
565
|
-
process_engine_result(request_agent_loop(Desc, Vars, Tools, Memory, ToolScope, ReasoningEffort, RecipeContext), request_agent_loop, '',
|
|
567
|
+
process_engine_result(request_agent_loop(Desc, Vars, Tools, Memory, ToolScope, ReasoningEffort, RecipeContext), request_agent_loop, '',
|
|
566
568
|
payload{taskDescription: Desc, outputVars: Vars, userTools: Tools, memory: Memory, toolScope: ToolScope, reasoningEffort: ReasoningEffort, recipeContext: RecipeContext}) :- !.
|
|
567
569
|
%% Legacy 5-arg format (no reasoning/recipe)
|
|
568
570
|
process_engine_result(request_agent_loop(Desc, Vars, Tools, Memory, ToolScope), request_agent_loop, '',
|
|
@@ -576,6 +578,7 @@ process_engine_result(request_sample_token(Prompt, Allowed), request_sample_toke
|
|
|
576
578
|
payload{prompt: Prompt, allowedTokens: Allowed}) :- !.
|
|
577
579
|
process_engine_result(request_llm(Messages), request_llm, '',
|
|
578
580
|
payload{messages: Messages}) :- !.
|
|
581
|
+
process_engine_result(request_judgment(Payload), request_judgment, '', Payload) :- !.
|
|
579
582
|
%% Tool result from inline tool execution
|
|
580
583
|
process_engine_result(tool_result(Result), tool_result, '',
|
|
581
584
|
payload{result: Result}) :- !.
|
|
@@ -599,6 +602,7 @@ destroy_engine(SessionId) :-
|
|
|
599
602
|
retractall(session_exec_result(SessionId, _)),
|
|
600
603
|
retractall(session_sample_token_result(SessionId, _)),
|
|
601
604
|
retractall(session_llm_result(SessionId, _)),
|
|
605
|
+
retractall(session_judgment_result(SessionId, _)),
|
|
602
606
|
retractall(session_trace_log(SessionId, _)),
|
|
603
607
|
retractall(session_trace_enabled(SessionId, _)),
|
|
604
608
|
( current_module(SessionId)
|
|
@@ -645,6 +649,17 @@ post_sample_token_result(SessionId, Status, TokenOrError) :-
|
|
|
645
649
|
assertz(session_sample_token_result(SessionId, result{status: Status, token: TokenOrError})),
|
|
646
650
|
post_signal_to_engine(SessionId, sample_token_done).
|
|
647
651
|
|
|
652
|
+
%% post_judgment_result(+SessionId, +Status, +ValuesOrError)
|
|
653
|
+
%% On success Values is the list of answer values in question order.
|
|
654
|
+
post_judgment_result(SessionId, success, Values) :-
|
|
655
|
+
retractall(session_judgment_result(SessionId, _)),
|
|
656
|
+
assertz(session_judgment_result(SessionId, result{status: success, values: Values})),
|
|
657
|
+
post_signal_to_engine(SessionId, judgment_done).
|
|
658
|
+
post_judgment_result(SessionId, failure, Error) :-
|
|
659
|
+
retractall(session_judgment_result(SessionId, _)),
|
|
660
|
+
assertz(session_judgment_result(SessionId, result{status: failure, error: Error})),
|
|
661
|
+
post_signal_to_engine(SessionId, judgment_done).
|
|
662
|
+
|
|
648
663
|
%% post_llm_result(+SessionId, +Status, +TextOrError)
|
|
649
664
|
post_llm_result(SessionId, Status, TextOrError) :-
|
|
650
665
|
retractall(session_llm_result(SessionId, _)),
|
|
@@ -1042,6 +1057,7 @@ process_tool_engine_result(request_sample_token(Prompt, Allowed), request_sample
|
|
|
1042
1057
|
payload{prompt: Prompt, allowedTokens: Allowed}) :- !.
|
|
1043
1058
|
process_tool_engine_result(request_llm(Messages), request_llm, '',
|
|
1044
1059
|
payload{messages: Messages}) :- !.
|
|
1060
|
+
process_tool_engine_result(request_judgment(Payload), request_judgment, '', Payload) :- !.
|
|
1045
1061
|
process_tool_engine_result(request_agent_loop(Desc, Vars, Tools, Memory, ToolScope, ReasoningEffort, RecipeContext), request_agent_loop, '',
|
|
1046
1062
|
payload{taskDescription: Desc, outputVars: Vars, userTools: Tools, memory: Memory, toolScope: ToolScope, reasoningEffort: ReasoningEffort, recipeContext: RecipeContext}) :- !.
|
|
1047
1063
|
%% Legacy 5-arg format (no reasoning/recipe)
|
|
@@ -1313,6 +1329,175 @@ wait_sample_token_signal(SessionId) :-
|
|
|
1313
1329
|
; wait_sample_token_signal(SessionId)
|
|
1314
1330
|
).
|
|
1315
1331
|
|
|
1332
|
+
%% ============================================================
|
|
1333
|
+
%% Semantic Judgment Predicates
|
|
1334
|
+
%% ============================================================
|
|
1335
|
+
%% judge/2 asks one batch of typed questions about an explicit state and binds
|
|
1336
|
+
%% the answers into output variables carried by the spec terms. The one-off
|
|
1337
|
+
%% predicates are sugar over the same request.
|
|
1338
|
+
%%
|
|
1339
|
+
%% judge(Message, [
|
|
1340
|
+
%% choose("Which team?", [billing, orders, account]) - Team,
|
|
1341
|
+
%% rate("How frustrated?", [calm, frustrated, angry]) - Frustration,
|
|
1342
|
+
%% verify("Does it ask for a refund?") - Refund
|
|
1343
|
+
%% ]).
|
|
1344
|
+
%%
|
|
1345
|
+
%% Backends (llm, jev, mock) are selected with with_judgment/2, the workspace
|
|
1346
|
+
%% configuration, or a per-run override. require_judgment/2 gates a goal on a
|
|
1347
|
+
%% backend capability such as calibrated.
|
|
1348
|
+
|
|
1349
|
+
mi_call(judge(State, Specs), StateIn, StateOut) :-
|
|
1350
|
+
!,
|
|
1351
|
+
mi_call_judgment(State, Specs, StateIn, StateOut).
|
|
1352
|
+
|
|
1353
|
+
mi_call(choose(State, Question, Options, Choice), StateIn, StateOut) :-
|
|
1354
|
+
!,
|
|
1355
|
+
mi_call_judgment(State, [choose(Question, Options) - Choice], StateIn, StateOut).
|
|
1356
|
+
|
|
1357
|
+
mi_call(rate(State, Question, Levels, Level), StateIn, StateOut) :-
|
|
1358
|
+
!,
|
|
1359
|
+
mi_call_judgment(State, [rate(Question, Levels) - Level], StateIn, StateOut).
|
|
1360
|
+
|
|
1361
|
+
mi_call(verify(State, Question, Truth), StateIn, StateOut) :-
|
|
1362
|
+
!,
|
|
1363
|
+
mi_call_judgment(State, [verify(Question) - Truth], StateIn, StateOut).
|
|
1364
|
+
|
|
1365
|
+
mi_call(probability(State, Question, Probability), StateIn, StateOut) :-
|
|
1366
|
+
!,
|
|
1367
|
+
mi_call_judgment(State, [probability(Question) - Probability], StateIn, StateOut).
|
|
1368
|
+
|
|
1369
|
+
mi_call(holds(State, Question), StateIn, StateOut) :-
|
|
1370
|
+
!,
|
|
1371
|
+
mi_call_judgment(State, [verify(Question) - Truth], StateIn, StateOut),
|
|
1372
|
+
( Truth == yes
|
|
1373
|
+
-> true
|
|
1374
|
+
; fail
|
|
1375
|
+
).
|
|
1376
|
+
|
|
1377
|
+
mi_call(holds(State, Question, Threshold), StateIn, StateOut) :-
|
|
1378
|
+
!,
|
|
1379
|
+
mi_call_judgment(State, [probability(Question) - Probability], StateIn, StateOut),
|
|
1380
|
+
( number(Probability), Probability >= Threshold
|
|
1381
|
+
-> true
|
|
1382
|
+
; fail
|
|
1383
|
+
).
|
|
1384
|
+
|
|
1385
|
+
mi_call(with_judgment(Backend, Goal), StateIn, StateOut) :-
|
|
1386
|
+
!,
|
|
1387
|
+
set_judge_backend(StateIn, Backend, ScopedState),
|
|
1388
|
+
mi_call(Goal, ScopedState, StateWithScope),
|
|
1389
|
+
clear_judge_backend(StateWithScope, StateOut).
|
|
1390
|
+
|
|
1391
|
+
mi_call(require_judgment(Capability, Goal), StateIn, StateOut) :-
|
|
1392
|
+
!,
|
|
1393
|
+
push_required_judgment(StateIn, Capability, ScopedState),
|
|
1394
|
+
mi_call(Goal, ScopedState, StateWithScope),
|
|
1395
|
+
pop_required_judgment(StateWithScope, StateOut).
|
|
1396
|
+
|
|
1397
|
+
%% mi_call_judgment(+State, +Specs, +StateIn, -StateOut)
|
|
1398
|
+
mi_call_judgment(State, Specs, StateIn, StateOut) :-
|
|
1399
|
+
consume_gas(StateIn, State1),
|
|
1400
|
+
get_session_id(SessionId),
|
|
1401
|
+
get_depth(State1, Depth),
|
|
1402
|
+
split_specs(Specs, Questions, Outputs),
|
|
1403
|
+
length(Questions, Count),
|
|
1404
|
+
add_trace_entry(SessionId, llm_call, judgment, [Count], Depth),
|
|
1405
|
+
get_judge_backend(State1, Backend),
|
|
1406
|
+
get_required_judgments(State1, Requires),
|
|
1407
|
+
engine_yield(request_judgment(payload{
|
|
1408
|
+
state: State,
|
|
1409
|
+
questions: Questions,
|
|
1410
|
+
backend: Backend,
|
|
1411
|
+
requires: Requires
|
|
1412
|
+
})),
|
|
1413
|
+
wait_judgment_signal(SessionId),
|
|
1414
|
+
( session_judgment_result(SessionId, Result)
|
|
1415
|
+
-> retract(session_judgment_result(SessionId, _)),
|
|
1416
|
+
( Result.status == success
|
|
1417
|
+
-> add_trace_with_result(SessionId, exit, judgment, [Count], Result.values, Depth),
|
|
1418
|
+
bind_judgment_outputs(Outputs, Result.values),
|
|
1419
|
+
StateOut = State1
|
|
1420
|
+
; ( get_dict(error, Result, ErrorMsg), ErrorMsg \= ""
|
|
1421
|
+
-> format(atom(WarnMsg), 'Warning: judgment failed: ~w', [ErrorMsg])
|
|
1422
|
+
; format(atom(WarnMsg), 'Warning: judgment failed (status=~w)', [Result.status])
|
|
1423
|
+
),
|
|
1424
|
+
add_trace_entry(SessionId, fail, judgment, [Count], Depth),
|
|
1425
|
+
engine_yield(output(WarnMsg)),
|
|
1426
|
+
fail
|
|
1427
|
+
)
|
|
1428
|
+
; add_trace_entry(SessionId, fail, judgment, [Count], Depth),
|
|
1429
|
+
engine_yield(output('Warning: judgment failed (no result returned)')),
|
|
1430
|
+
fail
|
|
1431
|
+
).
|
|
1432
|
+
|
|
1433
|
+
wait_judgment_signal(SessionId) :-
|
|
1434
|
+
get_next_signal(SessionId, Signal),
|
|
1435
|
+
( Signal == judgment_done
|
|
1436
|
+
-> true
|
|
1437
|
+
; Signal = error_signal(_)
|
|
1438
|
+
-> true
|
|
1439
|
+
; wait_judgment_signal(SessionId)
|
|
1440
|
+
).
|
|
1441
|
+
|
|
1442
|
+
%% split_specs(+Specs, -Questions, -Outputs)
|
|
1443
|
+
%% Each spec is `Question - Output`. Outputs are bound after the batch.
|
|
1444
|
+
split_specs([], [], []).
|
|
1445
|
+
split_specs([Spec-Output|Rest], [Question|Questions], [Output|Outputs]) :-
|
|
1446
|
+
spec_question(Spec, Question),
|
|
1447
|
+
split_specs(Rest, Questions, Outputs).
|
|
1448
|
+
|
|
1449
|
+
spec_question(choose(Instruction, Options),
|
|
1450
|
+
question{kind: choose, instruction: Instruction, options: Options}).
|
|
1451
|
+
spec_question(rate(Instruction, Levels),
|
|
1452
|
+
question{kind: rate, instruction: Instruction, levels: Levels}).
|
|
1453
|
+
spec_question(verify(Instruction),
|
|
1454
|
+
question{kind: verify, instruction: Instruction}).
|
|
1455
|
+
spec_question(verify(Instruction, Criteria),
|
|
1456
|
+
question{kind: verify, instruction: Instruction, criteria: Criteria}).
|
|
1457
|
+
spec_question(probability(Instruction),
|
|
1458
|
+
question{kind: probability, instruction: Instruction}).
|
|
1459
|
+
|
|
1460
|
+
bind_judgment_outputs([], []).
|
|
1461
|
+
bind_judgment_outputs([Output|Outputs], [Value|Values]) :-
|
|
1462
|
+
Output = Value,
|
|
1463
|
+
bind_judgment_outputs(Outputs, Values).
|
|
1464
|
+
|
|
1465
|
+
%% get_judge_backend(+State, -Backend)
|
|
1466
|
+
get_judge_backend(State, Backend) :-
|
|
1467
|
+
( get_dict(judge_backend, State, Scoped)
|
|
1468
|
+
-> Backend = Scoped
|
|
1469
|
+
; Backend = default
|
|
1470
|
+
).
|
|
1471
|
+
|
|
1472
|
+
set_judge_backend(StateIn, Backend, StateOut) :-
|
|
1473
|
+
StateOut = StateIn.put(judge_backend, Backend).
|
|
1474
|
+
|
|
1475
|
+
clear_judge_backend(StateIn, StateOut) :-
|
|
1476
|
+
( get_dict(judge_backend, StateIn, _)
|
|
1477
|
+
-> del_dict(judge_backend, StateIn, _, StateOut)
|
|
1478
|
+
; StateOut = StateIn
|
|
1479
|
+
).
|
|
1480
|
+
|
|
1481
|
+
get_required_judgments(State, Requires) :-
|
|
1482
|
+
( get_dict(judgment_requires, State, Requires)
|
|
1483
|
+
-> true
|
|
1484
|
+
; Requires = []
|
|
1485
|
+
).
|
|
1486
|
+
|
|
1487
|
+
push_required_judgment(StateIn, Capability, StateOut) :-
|
|
1488
|
+
get_required_judgments(StateIn, Existing),
|
|
1489
|
+
( member(Capability, Existing)
|
|
1490
|
+
-> StateOut = StateIn
|
|
1491
|
+
; append(Existing, [Capability], Updated),
|
|
1492
|
+
StateOut = StateIn.put(judgment_requires, Updated)
|
|
1493
|
+
).
|
|
1494
|
+
|
|
1495
|
+
pop_required_judgment(StateIn, StateOut) :-
|
|
1496
|
+
( get_dict(judgment_requires, StateIn, _)
|
|
1497
|
+
-> del_dict(judgment_requires, StateIn, _, StateOut)
|
|
1498
|
+
; StateOut = StateIn
|
|
1499
|
+
).
|
|
1500
|
+
|
|
1316
1501
|
mi_call(llm(Messages, Reply), StateIn, StateOut) :-
|
|
1317
1502
|
!,
|
|
1318
1503
|
consume_gas(StateIn, State1),
|
|
@@ -2205,6 +2390,16 @@ is_mi_special_predicate(without_tools(_,_)).
|
|
|
2205
2390
|
is_mi_special_predicate(with_reasoning(_,_)).
|
|
2206
2391
|
%% Recipe context scoping
|
|
2207
2392
|
is_mi_special_predicate(with_recipe(_,_)).
|
|
2393
|
+
%% Semantic judgment predicates
|
|
2394
|
+
is_mi_special_predicate(judge(_,_)).
|
|
2395
|
+
is_mi_special_predicate(choose(_,_,_,_)).
|
|
2396
|
+
is_mi_special_predicate(rate(_,_,_,_)).
|
|
2397
|
+
is_mi_special_predicate(verify(_,_,_)).
|
|
2398
|
+
is_mi_special_predicate(probability(_,_,_)).
|
|
2399
|
+
is_mi_special_predicate(holds(_,_)).
|
|
2400
|
+
is_mi_special_predicate(holds(_,_,_)).
|
|
2401
|
+
is_mi_special_predicate(with_judgment(_,_)).
|
|
2402
|
+
is_mi_special_predicate(require_judgment(_,_)).
|
|
2208
2403
|
%% Context stack management
|
|
2209
2404
|
is_mi_special_predicate(get_memory(_)).
|
|
2210
2405
|
is_mi_special_predicate(push_context).
|
|
@@ -2331,9 +2526,14 @@ mi_call_dispatch(Goal, StateIn, StateOut) :-
|
|
|
2331
2526
|
clause(SessionId:Goal, Body),
|
|
2332
2527
|
NewDepth is Depth + 1,
|
|
2333
2528
|
set_depth(StateIn, NewDepth, State1),
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2529
|
+
% Soft cut: execute the body for every solution (so findall/backtracking
|
|
2530
|
+
% works), but still record a fail trace when the body has none.
|
|
2531
|
+
( mi_call(Body, State1, State2)
|
|
2532
|
+
*-> add_trace_entry(SessionId, exit, Functor, Args, Depth),
|
|
2533
|
+
set_depth(State2, Depth, StateOut)
|
|
2534
|
+
; add_trace_entry(SessionId, fail, Functor, Args, Depth),
|
|
2535
|
+
fail
|
|
2536
|
+
)
|
|
2337
2537
|
).
|
|
2338
2538
|
|
|
2339
2539
|
mi_call_dispatch(Goal, StateIn, StateIn) :-
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
agent_main :-
|
|
2
|
-
param(compact_reason, Reason),
|
|
3
|
-
param(compact_source_markdown, SourceMarkdown),
|
|
4
|
-
system("You compress older DeepClause task history into a compact working-memory summary. Preserve user goals, decisions, outputs, files, constraints, and unresolved next steps. Keep the answer dense and concise. Return only summary text."),
|
|
5
|
-
task("Summarize this prior run history for memory compaction.\n\nReason: {Reason}\n\n{SourceMarkdown}\n\nPreserve:\n- the user's overall goal\n- completed subtasks and important outcomes\n- files, artifacts, commands, or external resources that matter later\n- constraints, assumptions, unresolved issues, and next steps\n\nReturn only the summary text.", string(Summary)),
|
|
6
|
-
answer(Summary).
|