@askalf/dario 4.8.65 → 4.8.66

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.
@@ -73,6 +73,24 @@ export declare const CC_AGENT_IDENTITY: string;
73
73
  * CLI resolves file paths to file contents up-front so this layer
74
74
  * stays filesystem-pure.
75
75
  */
76
+ /**
77
+ * Precedence framing inserted between CC's persona prompt and the client's
78
+ * own system text in the merged block-3 system prompt.
79
+ *
80
+ * Why this exists (observed 2026-06-12, deepdive planner regression): a bare
81
+ * `\n\n` append silently stopped working on claude-sonnet-4-6 — the model
82
+ * followed the CC persona and treated the appended client instructions as
83
+ * ignorable boilerplate, deterministically (0/6 on a trivial "reply with
84
+ * only PONG" system instruction; haiku obeyed 6/6 on the identical merged
85
+ * body, and the same shape had obeyed on sonnet the previous evening — an
86
+ * upstream serving-side behavior shift, not a dario regression). With this
87
+ * explicit override framing, sonnet obedience returned to 6/6.
88
+ *
89
+ * Billing-safety: system prompt CONTENT/length are not classifier inputs —
90
+ * docs/research/system-prompt-classifier-study.md — so this framing cannot
91
+ * affect Max-pool routing.
92
+ */
93
+ export declare const CLIENT_SYSTEM_PREFACE: string;
76
94
  export declare function resolveSystemPrompt(arg: string | undefined): string;
77
95
  /**
78
96
  * Apply the live template's captured header_order to an outbound header
@@ -79,6 +79,26 @@ export const CC_AGENT_IDENTITY = TEMPLATE.agent_identity;
79
79
  * CLI resolves file paths to file contents up-front so this layer
80
80
  * stays filesystem-pure.
81
81
  */
82
+ /**
83
+ * Precedence framing inserted between CC's persona prompt and the client's
84
+ * own system text in the merged block-3 system prompt.
85
+ *
86
+ * Why this exists (observed 2026-06-12, deepdive planner regression): a bare
87
+ * `\n\n` append silently stopped working on claude-sonnet-4-6 — the model
88
+ * followed the CC persona and treated the appended client instructions as
89
+ * ignorable boilerplate, deterministically (0/6 on a trivial "reply with
90
+ * only PONG" system instruction; haiku obeyed 6/6 on the identical merged
91
+ * body, and the same shape had obeyed on sonnet the previous evening — an
92
+ * upstream serving-side behavior shift, not a dario regression). With this
93
+ * explicit override framing, sonnet obedience returned to 6/6.
94
+ *
95
+ * Billing-safety: system prompt CONTENT/length are not classifier inputs —
96
+ * docs/research/system-prompt-classifier-study.md — so this framing cannot
97
+ * affect Max-pool routing.
98
+ */
99
+ export const CLIENT_SYSTEM_PREFACE = '\n\n---\n\nIMPORTANT: The operator of this session has supplied the following ' +
100
+ 'task-specific instructions. For this conversation they OVERRIDE any ' +
101
+ 'conflicting general behavior described above. Follow them exactly:\n\n';
82
102
  export function resolveSystemPrompt(arg) {
83
103
  if (!arg || arg === 'verbatim')
84
104
  return CC_SYSTEM_PROMPT;
@@ -1381,7 +1401,7 @@ export function buildCCRequest(clientBody, billingTag, cacheControl, identity, o
1381
1401
  // validation that this slot is unfingerprinted by the billing classifier.
1382
1402
  const baseSystemPrompt = resolveSystemPrompt(opts.systemPrompt);
1383
1403
  const fullSystemPrompt = systemText
1384
- ? `${baseSystemPrompt}\n\n${systemText}`
1404
+ ? `${baseSystemPrompt}${CLIENT_SYSTEM_PREFACE}${systemText}`
1385
1405
  : baseSystemPrompt;
1386
1406
  const ccRequest = {
1387
1407
  model,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askalf/dario",
3
- "version": "4.8.65",
3
+ "version": "4.8.66",
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": {