@askalf/dario 5.5.6 → 5.5.8

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.
@@ -390,7 +390,7 @@ export declare function detectDrift(t: TemplateData, installedOverride?: string
390
390
  */
391
391
  export declare const SUPPORTED_CC_RANGE: {
392
392
  readonly min: "1.0.0";
393
- readonly maxTested: "2.1.226";
393
+ readonly maxTested: "2.1.227";
394
394
  };
395
395
  /**
396
396
  * Compare two dotted-numeric version strings. Returns negative if `a<b`,
@@ -1009,7 +1009,7 @@ export function detectDrift(t, installedOverride) {
1009
1009
  */
1010
1010
  export const SUPPORTED_CC_RANGE = {
1011
1011
  min: '1.0.0',
1012
- maxTested: '2.1.226',
1012
+ maxTested: '2.1.227',
1013
1013
  };
1014
1014
  /**
1015
1015
  * Compare two dotted-numeric version strings. Returns negative if `a<b`,
package/dist/proxy.js CHANGED
@@ -615,9 +615,20 @@ const ORCHESTRATION_PATTERNS_DEFAULT = buildOrchestrationPatterns();
615
615
  /** Strip orchestration wrapper tags from message content. */
616
616
  function sanitizeContent(text, patterns) {
617
617
  let result = text;
618
- for (const pattern of patterns) {
619
- pattern.lastIndex = 0;
620
- result = result.replace(pattern, '');
618
+ // Fast path: every pattern in buildOrchestrationPatterns is anchored on a
619
+ // literal `<`, so a body with no `<` cannot match any of them — skip the
620
+ // ~28 full-string regex passes. sanitizeMessages runs on EVERY request,
621
+ // including byte-faithful CC traffic, and most message blocks (prose user
622
+ // turns, command/tool output) carry no tag; on a realistic mix this drops
623
+ // ~80% of the scrub's CPU while producing byte-identical output (the loop
624
+ // is skipped only when it provably cannot change the string). The trailing
625
+ // whitespace normalization still runs so no-tag blocks are treated exactly
626
+ // as before.
627
+ if (result.indexOf('<') !== -1) {
628
+ for (const pattern of patterns) {
629
+ pattern.lastIndex = 0;
630
+ result = result.replace(pattern, '');
631
+ }
621
632
  }
622
633
  return result.replace(/\n{3,}/g, '\n\n').trim();
623
634
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askalf/dario",
3
- "version": "5.5.6",
3
+ "version": "5.5.8",
4
4
  "description": "Use your Claude Pro/Max subscription in any tool — Cursor, Cline, Aider, the Agent SDK, your scripts — at subscription pricing, not per-token API bills. One local Anthropic + OpenAI-compatible endpoint.",
5
5
  "type": "module",
6
6
  "bin": {