deepclause-sdk 0.0.12 → 0.0.14

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.
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAmB,MAAM,YAAY,CAAC;AAM5F,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAuBD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwF/E;AAkGD;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA+FrE;AA6DD;;GAEG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CA6ExB;AA8JD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAU7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAqBlI;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiB3D"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAmB,MAAM,YAAY,CAAC;AAM5F,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAuBD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyF/E;AAqQD;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA+FrE;AA6DD;;GAEG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CA6ExB;AA8JD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAU7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAqBlI;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiB3D"}
package/dist/compiler.js CHANGED
@@ -88,8 +88,9 @@ export async function validateWithProlog(dml) {
88
88
  const delimiterCheck = checkBalancedDelimiters(dml);
89
89
  errors.push(...delimiterCheck.errors);
90
90
  // Check for common mistakes
91
- const lintWarnings = lintDML(dml);
92
- warnings.push(...lintWarnings);
91
+ const lintResult = lintDML(dml);
92
+ errors.push(...lintResult.errors);
93
+ warnings.push(...lintResult.warnings);
93
94
  // Cleanup temp file
94
95
  try {
95
96
  swipl.FS.unlink(tempPath);
@@ -156,21 +157,164 @@ function checkBalancedDelimiters(dml) {
156
157
  return { errors };
157
158
  }
158
159
  /**
159
- * Lint DML for common issues
160
+ * Extract all string literals from DML code (both single and double quoted)
161
+ */
162
+ function extractStringLiterals(dml) {
163
+ const doubleQuoted = [];
164
+ const singleQuoted = [];
165
+ // Double-quoted strings
166
+ for (const m of dml.matchAll(/"((?:[^"\\]|\\.)*)"/g)) {
167
+ doubleQuoted.push(m[1]);
168
+ }
169
+ // Single-quoted atoms
170
+ for (const m of dml.matchAll(/'((?:[^'\\]|\\.)*)'/g)) {
171
+ singleQuoted.push(m[1]);
172
+ }
173
+ return { doubleQuoted, singleQuoted };
174
+ }
175
+ /**
176
+ * Strip comments and string contents for structural analysis
177
+ */
178
+ function stripForAnalysis(dml) {
179
+ return dml
180
+ .replace(/%.*$/gm, '') // line comments
181
+ .replace(/\/\*[\s\S]*?\*\//g, '') // block comments
182
+ .replace(/"(?:[^"\\]|\\.)*"/g, '""') // double-quoted string contents
183
+ .replace(/'(?:[^'\\]|\\.)*'/g, "''"); // single-quoted atom contents
184
+ }
185
+ /**
186
+ * Lint DML for common issues — focused on string handling and structural errors.
187
+ * Returns errors (will crash at runtime) and warnings (likely wrong).
160
188
  */
161
189
  function lintDML(dml) {
190
+ const errors = [];
162
191
  const warnings = [];
163
- // Check for format() passed directly to answer/output
192
+ const stripped = stripForAnalysis(dml);
193
+ const { doubleQuoted, singleQuoted } = extractStringLiterals(dml);
194
+ const allStrings = [...doubleQuoted, ...singleQuoted];
195
+ // ═══════════════════════════════════════════════════════════════════════════
196
+ // STRING HANDLING ERRORS — these WILL crash or produce wrong output
197
+ // ═══════════════════════════════════════════════════════════════════════════
198
+ // E1: format() passed directly to output() or answer()
199
+ // format/3 binds its first arg, it does NOT return a value.
200
+ // output(format("...", [...])) is always wrong.
201
+ if (/output\s*\(\s*format\s*\(/.test(dml)) {
202
+ errors.push('ERROR: format/3 does not return a value. `output(format(...))` will crash. Fix: format(string(S), "...", [...]), output(S).');
203
+ }
164
204
  if (/answer\s*\(\s*format\s*\(/.test(dml)) {
165
- warnings.push('Avoid passing format() directly to answer/1 - use format/2 with a stream or format_to_atom/3');
205
+ errors.push('ERROR: format/3 does not return a value. `answer(format(...))` will crash. Fix: format(string(S), "...", [...]), answer(S).');
206
+ }
207
+ // E2: ~Variable in task/prompt description strings (only ~w, ~d, ~a, ~s work with format)
208
+ // task("Analyze ~Topic", R) does NOT interpolate. Use {Topic}.
209
+ for (const s of doubleQuoted) {
210
+ if (/~[A-Z][a-zA-Z0-9_]*/.test(s)) {
211
+ errors.push(`ERROR: ~Variable interpolation does not work in DML. Found in: "...${s.substring(0, 60)}...". Use {Variable} syntax instead (e.g. {Topic} not ~Topic).`);
212
+ break;
213
+ }
214
+ }
215
+ // E3: {Variable} inside format/3 template string
216
+ // format(string(S), "Hello {Name}", []) — the {Name} won't be interpolated by format.
217
+ // This is a style-mixing bug.
218
+ const formatCalls = dml.matchAll(/format\s*\(\s*(?:string|atom)\s*\([^)]*\)\s*,\s*"([^"]*)"/g);
219
+ for (const m of formatCalls) {
220
+ const tmpl = m[1];
221
+ if (/\{[A-Z][a-zA-Z0-9_]*\}/.test(tmpl)) {
222
+ errors.push(`ERROR: {Variable} inside format() template does nothing — format uses ~w placeholders. Found: "${tmpl.substring(0, 60)}". Use EITHER {Variable} in task() strings OR ~w in format() strings, never both in the same string.`);
223
+ break;
224
+ }
225
+ }
226
+ // E4: String concatenation with + operator
227
+ // "hello" + "world" or Var + Var — Prolog's + is arithmetic only.
228
+ if (/"\s*\+\s*"/.test(dml) || /"\s*\+\s*[A-Z]/.test(dml) || /[A-Z][a-zA-Z_0-9]*\s*\+\s*"/.test(dml)) {
229
+ errors.push('ERROR: The + operator is arithmetic only in Prolog, not string concatenation. Use {Variable} interpolation in task() strings, or atom_concat/3, or format/3 for building strings.');
230
+ }
231
+ // E5: task() with non-string first arg — task(llm(...)) or task(prompt(...))
232
+ if (/task\s*\(\s*(?:llm|prompt)\s*\(/.test(stripped)) {
233
+ errors.push('ERROR: task() takes a plain string as first argument. task(llm(...)) and task(prompt(...)) are wrong. Use: task("description string", Var).');
166
234
  }
167
- // Check for mixing {Var} and format/3
235
+ // E6: Hallucinated predicates these do NOT exist in DML runtime
236
+ // But skip if user defines the predicate themselves (pred(...) :- ...).
237
+ const hallucinated = [
238
+ ['json_parse', 'json_parse/2 does not exist. Use task() to extract data from JSON via LLM.'],
239
+ ['http_get', 'http_get does not exist. Use exec(url_fetch(url: URL), R).'],
240
+ ['string_format', 'string_format does not exist. Use format(string(R), FormatStr, Args).'],
241
+ ['get_field', 'get_field does not exist. Use get_dict(Key, Dict, Value) — note: Key comes first.'],
242
+ ['string_join', 'string_join does not exist. Use atomic_list_concat(List, Sep, Atom).'],
243
+ ['string_lower', 'string_lower does not exist. Use downcase_atom(Atom, Lower).'],
244
+ ['string_trim', 'string_trim does not exist. Use normalize_space(string(Out), In).'],
245
+ ['contains', 'contains/2 does not exist. Use sub_atom/5 or sub_string/5.'],
246
+ ];
247
+ for (const [name, msg] of hallucinated) {
248
+ const usePattern = new RegExp(`(?<!\\w)${name}\\s*\\(`, 'g');
249
+ if (usePattern.test(stripped)) {
250
+ // Check if user defines this predicate (name(...) :- or name(...) .)
251
+ const defPattern = new RegExp(`^${name}\\s*\\([^)]*\\)\\s*(?::-|\\.)`, 'm');
252
+ if (!defPattern.test(stripped)) {
253
+ errors.push(`ERROR: ${msg}`);
254
+ }
255
+ }
256
+ }
257
+ // E7: url_fetch used as a bare predicate (not wrapped in exec)
258
+ // url_fetch("url", R) is wrong. Must be exec(url_fetch(url: "..."), R).
259
+ if (/(?<!exec\s*\(\s*)url_fetch\s*\(\s*"/.test(stripped)) {
260
+ errors.push('ERROR: url_fetch is not a predicate. Must use exec/2 wrapper: exec(url_fetch(url: URL), R).');
261
+ }
262
+ // E8: curl/wget in bash command strings
263
+ for (const s of allStrings) {
264
+ if (/\b(?:curl|wget)\s/.test(s)) {
265
+ errors.push('ERROR: curl and wget are banned — the VM has no direct internet. Use exec(url_fetch(url: URL), R) to fetch web content.');
266
+ break;
267
+ }
268
+ }
269
+ // E9: writeln() used for user output — not a DML predicate
270
+ if (/(?<!\w)writeln\s*\(/.test(stripped)) {
271
+ // Check it's not inside an open/close file I/O block (write to stream is OK)
272
+ // Simple heuristic: if there's no open() call, writeln is definitely wrong
273
+ if (!/\bopen\s*\(/.test(stripped) || /writeln\s*\(\s*['"]/.test(dml)) {
274
+ errors.push('ERROR: writeln() is not a DML output predicate. Use output() for progress messages and answer() for final results.');
275
+ }
276
+ }
277
+ // ═══════════════════════════════════════════════════════════════════════════
278
+ // STRING HANDLING WARNINGS — likely wrong, should fix
279
+ // ═══════════════════════════════════════════════════════════════════════════
280
+ // W1: Mixing {Variable} interpolation and format/3 in the same clause
281
+ // Not always wrong (different strings), but a code smell with small models
168
282
  const hasInterpolation = /\{[A-Z][a-zA-Z0-9_]*\}/.test(dml);
169
- const hasFormat = /format\s*\(/.test(dml);
283
+ const hasFormat = /format\s*\(/.test(stripped);
170
284
  if (hasInterpolation && hasFormat) {
171
- warnings.push('Consider using either {Variable} interpolation OR format/3, not both');
285
+ warnings.push('WARNING: Code mixes {Variable} interpolation and format/3. This is allowed but can confuse the runtime if mixed in the same string. Ensure {Variable} is only in task()/output()/answer() strings and ~w is only in format() strings.');
286
+ }
287
+ // W2: No tool definitions — model probably wrote pure Prolog
288
+ if (!/\btool\s*\(/.test(dml)) {
289
+ warnings.push('WARNING: No tool() definitions found. Most DML skills need 2-4 tools for the LLM to use during task() calls.');
290
+ }
291
+ // W3: No task() call — model probably wrote pure Prolog logic
292
+ if (!/\btask\s*\(/.test(stripped)) {
293
+ warnings.push('WARNING: No task() call found. DML skills should use task() to let the LLM reason, not pure Prolog logic.');
294
+ }
295
+ // W4: No system() call — LLM has no instructions
296
+ if (!/\bsystem\s*\(/.test(stripped)) {
297
+ warnings.push('WARNING: No system() call found. Use system() inside agent_main to tell the LLM how to use the tools.');
298
+ }
299
+ // W5: No answer() call — skill completes silently
300
+ if (!/\banswer\s*\(/.test(stripped)) {
301
+ warnings.push('WARNING: No answer() call found. The skill will complete without returning a result to the user.');
302
+ }
303
+ // W6: No output() before task/exec — skill appears frozen
304
+ if (/\btask\s*\(/.test(stripped) && !/\boutput\s*\(/.test(stripped)) {
305
+ warnings.push('WARNING: No output() calls found. Add output() before long-running task() or exec() calls so the skill doesn\'t appear frozen.');
306
+ }
307
+ // W7: Single agent_main clause — no fallback
308
+ const mainMatches = stripped.match(/agent_main\s*[\(\.]/g);
309
+ if (mainMatches && mainMatches.length === 1) {
310
+ warnings.push('WARNING: Only one agent_main clause. Add a fallback clause with a static error message (no LLM calls) as required by Rule 7.');
311
+ }
312
+ // W8: Dict dot notation — Result.field etc.
313
+ // Only check outside strings — match Var.key pattern in code
314
+ if (/[A-Z][a-zA-Z_0-9]*\.[a-z][a-z_]+(?!\s*\()/.test(stripped)) {
315
+ warnings.push('WARNING: Possible dict dot notation (e.g. Result.stdout). This may not work — use get_dict(Key, Dict, Value) instead.');
172
316
  }
173
- return warnings;
317
+ return { errors, warnings };
174
318
  }
175
319
  /**
176
320
  * Basic syntax validation (fallback when Prolog fails)
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAoB,MAAM,oBAAoB,CAAC;AAkBlE,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,IAAI,cAAc,GAAuB,IAAI,CAAC;AAE9C;;GAEG;AACH,KAAK,UAAU,SAAS;IACtB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,MAAM,UAAU,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAW;IAClD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAEhC,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,iBAAiB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7F,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAElC,uEAAuE;QACvE,IAAI,CAAC;YACH,KAAK,CAAC,MAAM,CAAC,KAAK,CAChB;;oBAEY,QAAQ;;;;;;;;;;;;;;;;;yCAiBa,CAClC,CAAC;YAEF,2CAA2C;YAC3C,IAAI,CAAC;gBACH,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,IAAI,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC3F,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1D,mCAAmC;oBACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;oBAC9E,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC3C,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QACzF,CAAC;QAED,gCAAgC;QAChC,MAAM,cAAc,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAEtC,4BAA4B;QAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAE/B,oBAAoB;QACpB,IAAI,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wDAAwD;QACxD,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;QACN,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KACrD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,GAAW;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,qDAAqD;IACrD,MAAM,QAAQ,GAAG,GAAG;SACjB,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAE,yBAAyB;SAC9D,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAiB,uBAAuB;SAC7D,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAK,wBAAwB;IAEjE,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,KAAK,GAAG;YAAE,UAAU,EAAE,CAAC;QAC/B,IAAI,IAAI,KAAK,GAAG;YAAE,UAAU,EAAE,CAAC;QAC/B,IAAI,IAAI,KAAK,GAAG;YAAE,YAAY,EAAE,CAAC;QACjC,IAAI,IAAI,KAAK,GAAG;YAAE,YAAY,EAAE,CAAC;QACjC,IAAI,IAAI,KAAK,GAAG;YAAE,UAAU,EAAE,CAAC;QAC/B,IAAI,IAAI,KAAK,GAAG;YAAE,UAAU,EAAE,CAAC;QAE/B,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACvD,MAAM;QACR,CAAC;QACD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACpD,MAAM;QACR,CAAC;QACD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAClD,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,UAAU,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,2BAA2B,UAAU,aAAa,CAAC,CAAC;IACpF,IAAI,YAAY,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,YAAY,aAAa,CAAC,CAAC;IACrF,IAAI,UAAU,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,UAAU,aAAa,CAAC,CAAC;IAE/E,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,sDAAsD;IACtD,IAAI,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,QAAQ,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;IAChH,CAAC;IAED,sCAAsC;IACtC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,gBAAgB,IAAI,SAAS,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,GAAW;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,cAAc,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAEtC,6BAA6B;IAC7B,MAAM,aAAa,GAAG,oBAAoB,CAAC;IAC3C,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,iBAAiB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAE9F,IAAI,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAElC,wCAAwC;QACxC,MAAM,KAAK,GAAG;6BACW,QAAQ;;KAEhC,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,aAAa;QACb,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;QAElC,0CAA0C;QAC1C,8CAA8C;QAC9C,MAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,IAAI,OAAO,GAAG,iBAAiB,CAAC;gBAEhC,iFAAiF;gBACjF,IAAI,IAAI,GAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;oBACX,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;gBAChB,CAAC;qBAAM,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;oBACpE,qEAAqE;oBACrE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBAC3B,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACpD,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACrB,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvB,2CAA2C;oBAC3C,OAAO,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChG,CAAC;gBAED,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,KAAiC;oBACxC,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,WAAW,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;YACxE,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC5B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;qBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,EAAE,CAAC;oBACzC,4CAA4C;oBAC5C,MAAM,OAAO,GAAI,GAAW,CAAC,OAAO,CAAC;oBACrC,IAAI,OAAO,EAAE,CAAC;wBACX,IAAI,IAAI,GAAU,EAAE,CAAC;wBACrB,MAAM,KAAK,GAAI,GAAW,CAAC,OAAO,CAAC,CAAC;wBACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BAClD,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACpB,CAAC;wBAED,IAAI,OAAO,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC7C,YAAY,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC7C,CAAC;6BAAM,CAAC;4BACL,YAAY,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACvD,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACL,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClC,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,WAAW,CAAC,KAAK,KAAK,IAAI,IAAI,WAAW,CAAC,KAAK,KAAK,MAAM;YACjE,QAAQ;YACR,YAAY;YACZ,aAAa,EAAE,SAAS;YACxB,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SACjE,CAAC;IAEJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,KAAK,EAAE,yDAAyD;YACvE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,CAAC,EAAE,EAAE,CAAC;YAC9D,YAAY,EAAE,EAAE;YAChB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;SACjB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,QAAQ,CACrB,GAAW,EACX,cAA8B,EAC9B,KAAa,EACb,QAAgB,EAChB,OAAgB;IAEhB,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG;;;;;;EAMf,GAAG;;;;EAIH,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGxF,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;CAevC,CAAC;IAEA,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,KAAK,EAAE,GAAG;YACV,MAAM;YACN,WAAW,EAAE,GAAG;SACjB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,iBAAiB,CAAC,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,4BAA4B;AAC5B,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,OAAuB;IAEvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEhC,+BAA+B;IAC/B,MAAM,YAAY,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,cAAc,GAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAEpE,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,WAAW,CAC3B,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,OAAO,CACR,CAAC;YAEF,OAAO,GAAG,GAAG,CAAC;YACd,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACjD,cAAc,GAAG,UAAU,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;YAEnC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,sBAAsB;gBACtB,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBAEvC,yBAAyB;gBACzB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjB,QAAQ,CAAC,aAAa,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACpF,CAAC;gBAED,uBAAuB;gBACvB,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAE7E,OAAO;oBACL,GAAG;oBACH,KAAK,EAAE,uBAAuB,CAAC,GAAG,CAAC;oBACnC,WAAW;oBACX,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,IAAI;oBACX,QAAQ;iBACT,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG,EAAE,OAAO;gBACZ,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;aAChD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,cAAc,CAAC,MAAM,CAAC,CAAC;IACzD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5C,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC;QACvC,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAC7B,QAAQ,EAAE,WAAW;KACtB,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;GAEG;AACH,KAAK,UAAU,WAAW,CACxB,YAAoB,EACpB,WAAmB,EACnB,gBAAsC,EACtC,KAAa,EACb,QAAgB,EAChB,WAAoB,EACpB,OAAgB;IAEhB,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAEvD,iEAAiE;IACjE,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAE5E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,KAAK,EAAE,GAAG;QACV,QAAQ;QACR,WAAW,EAAE,WAAW,IAAI,GAAG;QAC/B,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CACpB,YAAoB,EACpB,WAAmB,EACnB,gBAAsC;IAEtC,MAAM,QAAQ,GAAsE;QAClF,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;QACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;KACvC,CAAC;IAEF,6DAA6D;IAC7D,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,OAAO,CAAC,GAAG;SACrB,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG;YACpB,qDAAqD;YACrD,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,EAAE;YACF,0DAA0D;SAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,GAAW,EACX,KAAa,EACb,QAAgB,EAChB,OAAgB;IAEhB,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,+DAA+D;YACvE,MAAM,EAAE,oFAAoF,GAAG,+FAA+F;YAC9L,WAAW,EAAE,GAAG;YAChB,eAAe,EAAE,GAAG;SACrB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;QAC5D,OAAO,oCAAoC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAEtB,8BAA8B;IAC9B,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAgB,EAAE,KAAa,EAAE,OAAgB;IACzE,iFAAiF;IACjF,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,YAAY,CAAC;YACzB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO;SAChF,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,KAAK,WAAW;YACd,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,QAAQ;YACX,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,UAAU,GAAG,YAAY,CAAC;gBAC9B,OAAO,EAAE,8BAA8B;gBACvC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;aACvC,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAW;IACjD,MAAM,WAAW,GAAG,uCAAuC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,WAAW,GAAG,+BAA+B,CAAC;IACpD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;SAClB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACtB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEjC,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnG,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
@@ -631,6 +631,12 @@ set_context_stack(StateIn, Stack, StateOut) :-
631
631
  set_memory(StateIn, Memory, StateOut) :-
632
632
  StateOut = StateIn.put(memory, Memory).
633
633
 
634
+ %% is_system_memory_message(+Message)
635
+ %% True if the memory message has role=system
636
+ is_system_memory_message(Message) :-
637
+ is_dict(Message),
638
+ get_dict(role, Message, system).
639
+
634
640
  %% ============================================================
635
641
  %% Tool Scope Helpers
636
642
  %% ============================================================
@@ -999,8 +1005,11 @@ mi_call(task(Desc), StateIn, StateOut) :-
999
1005
  ),
1000
1006
  % Use full messages from agent loop result
1001
1007
  ( get_dict(messages, Result, Messages), Messages \= []
1002
- -> % Replace memory with all messages from agent (includes system, history, and new messages)
1003
- set_memory(StateAfterAgent, Messages, StateOut)
1008
+ -> % Preserve system messages from current memory (agent only returns user/assistant)
1009
+ get_memory(StateAfterAgent, OldMemory),
1010
+ include(is_system_memory_message, OldMemory, SystemMessages),
1011
+ append(SystemMessages, Messages, NewMemory),
1012
+ set_memory(StateAfterAgent, NewMemory, StateOut)
1004
1013
  ; % Fallback: just add task description and response (old behavior)
1005
1014
  add_memory(StateAfterAgent, user, InterpDesc, State1),
1006
1015
  ( get_dict(response, Result, Response), Response \= ""
@@ -1111,8 +1120,11 @@ mi_call_task_n(Desc, Vars, VarNames, StateIn, StateOut) :-
1111
1120
  bind_task_variables(Result.variables, VarNames, Vars),
1112
1121
  % Use full messages from agent loop result
1113
1122
  ( get_dict(messages, Result, Messages), Messages \= []
1114
- -> % Replace memory with all messages from agent
1115
- set_memory(StateAfterAgent, Messages, StateOut)
1123
+ -> % Preserve system messages from current memory (agent only returns user/assistant)
1124
+ get_memory(StateAfterAgent, OldMemory),
1125
+ include(is_system_memory_message, OldMemory, SystemMessages),
1126
+ append(SystemMessages, Messages, NewMemory),
1127
+ set_memory(StateAfterAgent, NewMemory, StateOut)
1116
1128
  ; % Fallback: just add task description and response (old behavior)
1117
1129
  add_memory(StateAfterAgent, user, InterpDesc, State1),
1118
1130
  ( get_dict(response, Result, Response), Response \= ""
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepclause-sdk",
3
- "version": "0.0.12",
3
+ "version": "0.0.14",
4
4
  "description": "DeepClause CLI Tool and Typescript SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -631,6 +631,12 @@ set_context_stack(StateIn, Stack, StateOut) :-
631
631
  set_memory(StateIn, Memory, StateOut) :-
632
632
  StateOut = StateIn.put(memory, Memory).
633
633
 
634
+ %% is_system_memory_message(+Message)
635
+ %% True if the memory message has role=system
636
+ is_system_memory_message(Message) :-
637
+ is_dict(Message),
638
+ get_dict(role, Message, system).
639
+
634
640
  %% ============================================================
635
641
  %% Tool Scope Helpers
636
642
  %% ============================================================
@@ -999,8 +1005,11 @@ mi_call(task(Desc), StateIn, StateOut) :-
999
1005
  ),
1000
1006
  % Use full messages from agent loop result
1001
1007
  ( get_dict(messages, Result, Messages), Messages \= []
1002
- -> % Replace memory with all messages from agent (includes system, history, and new messages)
1003
- set_memory(StateAfterAgent, Messages, StateOut)
1008
+ -> % Preserve system messages from current memory (agent only returns user/assistant)
1009
+ get_memory(StateAfterAgent, OldMemory),
1010
+ include(is_system_memory_message, OldMemory, SystemMessages),
1011
+ append(SystemMessages, Messages, NewMemory),
1012
+ set_memory(StateAfterAgent, NewMemory, StateOut)
1004
1013
  ; % Fallback: just add task description and response (old behavior)
1005
1014
  add_memory(StateAfterAgent, user, InterpDesc, State1),
1006
1015
  ( get_dict(response, Result, Response), Response \= ""
@@ -1111,8 +1120,11 @@ mi_call_task_n(Desc, Vars, VarNames, StateIn, StateOut) :-
1111
1120
  bind_task_variables(Result.variables, VarNames, Vars),
1112
1121
  % Use full messages from agent loop result
1113
1122
  ( get_dict(messages, Result, Messages), Messages \= []
1114
- -> % Replace memory with all messages from agent
1115
- set_memory(StateAfterAgent, Messages, StateOut)
1123
+ -> % Preserve system messages from current memory (agent only returns user/assistant)
1124
+ get_memory(StateAfterAgent, OldMemory),
1125
+ include(is_system_memory_message, OldMemory, SystemMessages),
1126
+ append(SystemMessages, Messages, NewMemory),
1127
+ set_memory(StateAfterAgent, NewMemory, StateOut)
1116
1128
  ; % Fallback: just add task description and response (old behavior)
1117
1129
  add_memory(StateAfterAgent, user, InterpDesc, State1),
1118
1130
  ( get_dict(response, Result, Response), Response \= ""