thatgfsj-code 3.0.3 → 3.0.4

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.
@@ -10,9 +10,10 @@
10
10
  * Tool-heavy turns → main model
11
11
  *
12
12
  * 2. Cache TTL
13
- * Short conversations → 5m (cheap write, expires fast)
14
- * Long conversations (>15 turns) 1h (cache hits pay back the
15
- * expensive write each round)
13
+ * v3.0.4: default to 1h (long-task TTL). We cannot predict task
14
+ * length at round 0, so we choose the TTL that cannot expire
15
+ * mid-task. 5m is opt-in only (user pins it via /ttl 5m or the
16
+ * init wizard).
16
17
  *
17
18
  * Why TTL is decided per-ROUND but CHANGES per-CONVERSATION:
18
19
  * The Anthropic cache_control marker is part of the request body.
@@ -24,14 +25,11 @@
24
25
  * round) and never change it. Subsequent rounds get the same TTL,
25
26
  * which keeps the cache prefix stable and lets Anthropic match it.
26
27
  *
27
- * The "smart" part is that we look at the FULL conversation so far,
28
- * not just the last input. A 16-turn conversation that started with a
29
- * short prompt but grew into a long refactor still gets 1h.
30
- *
31
- * Trade-off: the first round is evaluated with 0 history, so it
32
- * defaults to 5m. If the conversation then grows long, future rounds
33
- * still use 5m for the system-token cache (because we already wrote
34
- * it with 5m). The tool definition cache gets the same TTL.
28
+ * Trade-off: 1h write costs 2x input price (vs 1.25x for 5m), but
29
+ * reads are the same 0.1x. A long task hitting cache 2-3 times pays
30
+ * back the extra write cost; a short task pays it once and moves on.
31
+ * That is strictly better than guessing 5m and having the cache expire
32
+ * mid-task.
35
33
  */
36
34
  import type { ChatMessage } from '../types.js';
37
35
  export interface SmartModelDecision {
@@ -67,19 +65,28 @@ export declare function totalConversationChars(messages: ChatMessage[]): number;
67
65
  /**
68
66
  * Decide the cache TTL for the current round.
69
67
  *
70
- * Inputs:
71
- * - messages: full conversation so far (system + user + assistant + tool)
72
- * - previousTTL: TTL chosen in a prior round (null on round 0)
68
+ * v3.0.4: The previous implementation tried to *predict* the task length
69
+ * from the conversation so far (short sessions 5m, long 1h). That
70
+ * was wrong: at the moment the decision is made (first round), the task
71
+ * hasn't started yet — there is no way to know whether it will be a
72
+ * 30-second question or a 3-hour refactor. Predicting 5m for a task
73
+ * that turns out to be long means the cache expires mid-task (5-minute
74
+ * TTL counts from the last HIT, and agent work often has >5m gaps while
75
+ * tools run / user reads output), so every round after the gap re-writes
76
+ * the whole prefix at full price.
73
77
  *
74
- * Decision matrix:
75
- * - round 0 + any input length 5m (default; user can override via init)
76
- * - round 1-14 + total chars < 50k → 5m (short sessions, 5m is enough)
77
- * - round 15+ OR total chars > 50k 1h (long sessions, 1h amortizes the write)
78
+ * Correct rule: DEFAULT TO THE LONG TTL (1h) and don't guess.
79
+ * - 1h costs 2x input price to WRITE (vs 1.25x for 5m), but reads are
80
+ * the same 0.1x for both.
81
+ * - A long task that hits cache even 2-3 times pays back the extra
82
+ * write cost. A short task only pays the extra write once.
83
+ * - Users who are SURE the session is short can pin 5m via
84
+ * /ttl 5m or the init wizard — the default stays 1h.
78
85
  *
79
- * Stability rule: once a TTL is chosen, it is reused for every
80
- * subsequent round in the same session. Changing TTL between rounds
81
- * would invalidate the Anthropic cache prefix and cost more than it
82
- * saves.
86
+ * Stability rule (unchanged): once a TTL is chosen, it is reused for
87
+ * every subsequent round in the same session. Changing TTL between
88
+ * rounds would invalidate the Anthropic cache prefix and cost more
89
+ * than it saves.
83
90
  *
84
91
  * The `isFirstDecision` flag tells the caller whether to apply the
85
92
  * decision (first round) or reuse the previous one (later rounds).
@@ -1 +1 @@
1
- {"version":3,"file":"smartModel.d.ts","sourceRoot":"","sources":["../../src/cache/smartModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,kBAAkB,CAUlG;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAYtE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,WAAW,EAAE,EACvB,WAAW,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAC9B,gBAAgB,CA2BlB"}
1
+ {"version":3,"file":"smartModel.d.ts","sourceRoot":"","sources":["../../src/cache/smartModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,kBAAkB,CAUlG;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAYtE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,WAAW,EAAE,EACvB,WAAW,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAC9B,gBAAgB,CAQlB"}
@@ -10,9 +10,10 @@
10
10
  * Tool-heavy turns → main model
11
11
  *
12
12
  * 2. Cache TTL
13
- * Short conversations → 5m (cheap write, expires fast)
14
- * Long conversations (>15 turns) 1h (cache hits pay back the
15
- * expensive write each round)
13
+ * v3.0.4: default to 1h (long-task TTL). We cannot predict task
14
+ * length at round 0, so we choose the TTL that cannot expire
15
+ * mid-task. 5m is opt-in only (user pins it via /ttl 5m or the
16
+ * init wizard).
16
17
  *
17
18
  * Why TTL is decided per-ROUND but CHANGES per-CONVERSATION:
18
19
  * The Anthropic cache_control marker is part of the request body.
@@ -24,14 +25,11 @@
24
25
  * round) and never change it. Subsequent rounds get the same TTL,
25
26
  * which keeps the cache prefix stable and lets Anthropic match it.
26
27
  *
27
- * The "smart" part is that we look at the FULL conversation so far,
28
- * not just the last input. A 16-turn conversation that started with a
29
- * short prompt but grew into a long refactor still gets 1h.
30
- *
31
- * Trade-off: the first round is evaluated with 0 history, so it
32
- * defaults to 5m. If the conversation then grows long, future rounds
33
- * still use 5m for the system-token cache (because we already wrote
34
- * it with 5m). The tool definition cache gets the same TTL.
28
+ * Trade-off: 1h write costs 2x input price (vs 1.25x for 5m), but
29
+ * reads are the same 0.1x. A long task hitting cache 2-3 times pays
30
+ * back the extra write cost; a short task pays it once and moves on.
31
+ * That is strictly better than guessing 5m and having the cache expire
32
+ * mid-task.
35
33
  */
36
34
  /**
37
35
  * Heuristic: downgrade when
@@ -78,19 +76,28 @@ export function totalConversationChars(messages) {
78
76
  /**
79
77
  * Decide the cache TTL for the current round.
80
78
  *
81
- * Inputs:
82
- * - messages: full conversation so far (system + user + assistant + tool)
83
- * - previousTTL: TTL chosen in a prior round (null on round 0)
79
+ * v3.0.4: The previous implementation tried to *predict* the task length
80
+ * from the conversation so far (short sessions 5m, long 1h). That
81
+ * was wrong: at the moment the decision is made (first round), the task
82
+ * hasn't started yet — there is no way to know whether it will be a
83
+ * 30-second question or a 3-hour refactor. Predicting 5m for a task
84
+ * that turns out to be long means the cache expires mid-task (5-minute
85
+ * TTL counts from the last HIT, and agent work often has >5m gaps while
86
+ * tools run / user reads output), so every round after the gap re-writes
87
+ * the whole prefix at full price.
84
88
  *
85
- * Decision matrix:
86
- * - round 0 + any input length 5m (default; user can override via init)
87
- * - round 1-14 + total chars < 50k → 5m (short sessions, 5m is enough)
88
- * - round 15+ OR total chars > 50k 1h (long sessions, 1h amortizes the write)
89
+ * Correct rule: DEFAULT TO THE LONG TTL (1h) and don't guess.
90
+ * - 1h costs 2x input price to WRITE (vs 1.25x for 5m), but reads are
91
+ * the same 0.1x for both.
92
+ * - A long task that hits cache even 2-3 times pays back the extra
93
+ * write cost. A short task only pays the extra write once.
94
+ * - Users who are SURE the session is short can pin 5m via
95
+ * /ttl 5m or the init wizard — the default stays 1h.
89
96
  *
90
- * Stability rule: once a TTL is chosen, it is reused for every
91
- * subsequent round in the same session. Changing TTL between rounds
92
- * would invalidate the Anthropic cache prefix and cost more than it
93
- * saves.
97
+ * Stability rule (unchanged): once a TTL is chosen, it is reused for
98
+ * every subsequent round in the same session. Changing TTL between
99
+ * rounds would invalidate the Anthropic cache prefix and cost more
100
+ * than it saves.
94
101
  *
95
102
  * The `isFirstDecision` flag tells the caller whether to apply the
96
103
  * decision (first round) or reuse the previous one (later rounds).
@@ -99,23 +106,9 @@ export function decideTTL(messages, previousTTL) {
99
106
  if (previousTTL) {
100
107
  return { ttl: previousTTL, reason: 'reused-from-previous-round', isFirstDecision: false };
101
108
  }
102
- const turnCount = messages.filter(m => m.role === 'user' || m.role === 'assistant').length;
103
- const totalChars = totalConversationChars(messages);
104
- // Round 0: empty / first input. Default to 5m.
105
- if (turnCount === 0) {
106
- return { ttl: '5m', reason: 'first-round-default', isFirstDecision: true };
107
- }
108
- // Multi-turn but small conversation → 5m
109
- if (turnCount < 15 && totalChars < 50_000) {
110
- return { ttl: '5m', reason: `short-session-${turnCount}-turns`, isFirstDecision: true };
111
- }
112
- // Long conversations → 1h
113
- if (turnCount >= 15) {
114
- return { ttl: '1h', reason: `long-session-${turnCount}-turns`, isFirstDecision: true };
115
- }
116
- if (totalChars >= 50_000) {
117
- return { ttl: '1h', reason: `long-context-${totalChars}-chars`, isFirstDecision: true };
118
- }
119
- return { ttl: '5m', reason: 'fallback', isFirstDecision: true };
109
+ // Default: long-task TTL. We cannot know the task length upfront, so
110
+ // we pick the TTL that cannot expire mid-task. 5m is only used when
111
+ // the user explicitly pins it.
112
+ return { ttl: '1h', reason: 'default-long-task', isFirstDecision: true };
120
113
  }
121
114
  //# sourceMappingURL=smartModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"smartModel.js","sourceRoot":"","sources":["../../src/cache/smartModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartModel.js","sourceRoot":"","sources":["../../src/cache/smartModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAkBH;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,QAAuB,EAAE,aAAqB;IAC5E,IAAI,aAAa,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC/B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACzD,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrF,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAuB;IAC5D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5B,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;oBAAE,KAAK,IAAK,GAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,SAAS,CACvB,QAAuB,EACvB,WAA+B;IAE/B,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,4BAA4B,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IAC5F,CAAC;IACD,qEAAqE;IACrE,oEAAoE;IACpE,+BAA+B;IAC/B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;AAC3E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAgB,MAAM,YAAY,CAAC;AAsBjE,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO;IAKP;;OAEG;WACU,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;IAsB3C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAmC9B;;OAEG;IACH,GAAG,IAAI,MAAM;IAIb;;OAEG;IACH,WAAW,IAAI,QAAQ;IAWvB;;OAEG;IACH,iBAAiB,IAAI,QAAQ,GAAG,WAAW,GAAG,QAAQ;IAItD;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnD;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,gBAAgB,IAAI,OAAO;CAG5B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAgB,MAAM,YAAY,CAAC;AAoBjE,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO;IAKP;;OAEG;WACU,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;IAsB3C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAmC9B;;OAEG;IACH,GAAG,IAAI,MAAM;IAIb;;OAEG;IACH,WAAW,IAAI,QAAQ;IAWvB;;OAEG;IACH,iBAAiB,IAAI,QAAQ,GAAG,WAAW,GAAG,QAAQ;IAItD;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnD;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,gBAAgB,IAAI,OAAO;CAG5B"}
@@ -13,14 +13,12 @@ const DEFAULT_CONFIG = {
13
13
  maxTokens: 4096,
14
14
  contextLength: 50,
15
15
  provider: 'siliconflow',
16
- // v3.0.0: prompt cache policy. Default = enabled, 'auto' TTL.
17
- // v3.0.3: 'auto' TTL lets the runtime's decideTTL() pick 5m for short
18
- // sessions and 1h for long ones (>= 15 turns or >= 50k chars). The
19
- // chosen TTL is sticky across rounds within a session so the cache
20
- // prefix stays stable.
16
+ // v3.0.0: prompt cache policy. v3.0.4: default TTL is 1h (long-task).
17
+ // We cannot predict task length at round 0, so we default to the TTL
18
+ // that cannot expire mid-task. 5m is opt-in via /ttl 5m or init wizard.
21
19
  cache: {
22
20
  enabled: true,
23
- ttl: 'auto',
21
+ ttl: '1h',
24
22
  strategy: 'auto',
25
23
  },
26
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAY,WAAW,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAgB,MAAM,oBAAoB,CAAC;AAOzE,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,MAAM,CAAS;gBAEX,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM;IAKjD;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAA4B;IAE/C,2EAA2E;IAC3E,cAAc,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI;IAIpC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;KAAE,GAAG,UAAU;IAkC7E,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAMlC,eAAe,IAAI,MAAM;IACzB,SAAS,IAAI,OAAO;IAEd,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAMjF;;;;;;;;;;;;;OAaG;IACI,UAAU,CACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GAAG;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GACjD,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC;IA6J5C,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,eAAe;CAYxB;AAED,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAY,WAAW,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAgB,MAAM,oBAAoB,CAAC;AAOzE,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,MAAM,CAAS;gBAEX,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM;IAKjD;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAA4B;IAE/C,2EAA2E;IAC3E,cAAc,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI;IAIpC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;KAAE,GAAG,UAAU;IAkC7E,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAMlC,eAAe,IAAI,MAAM;IACzB,SAAS,IAAI,OAAO;IAEd,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAMjF;;;;;;;;;;;;;OAaG;IACI,UAAU,CACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GAAG;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GACjD,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC;IA8J5C,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,eAAe;CAYxB;AAED,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
package/dist/llm/index.js CHANGED
@@ -93,10 +93,11 @@ export class LLMService {
93
93
  async *chatStream(messages, options) {
94
94
  if (!this.hasApiKey())
95
95
  throw new Error(this.getNoKeyMessage());
96
- // v3.0.3: Resolve TTL once per session. If config says 'auto', call
97
- // decideTTL to pick 5m (short sessions) or 1h (long ones). For
98
- // non-Anthropic providers we don't need to do anythingcache
99
- // markers are wired into the system regardless.
96
+ // v3.0.3: Resolve TTL once per session.
97
+ // v3.0.4: default is 1h (long-task). 'auto' (legacy config value)
98
+ // resolves via decideTTL which now always returns 1hwe cannot
99
+ // predict task length at round 0, so we default to the TTL that
100
+ // cannot expire mid-task. '5m'/'1h' are explicit user pins.
100
101
  const configTtl = this.provider.config?.cache?.ttl;
101
102
  if (configTtl === 'auto' && this.resolvedTtl === null) {
102
103
  const decision = decideTTL(messages, null);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,6 @@ function hitRateColor(rate) {
17
17
  }
18
18
  export const Header = React.memo(function Header({ provider, model, cacheHitRate, cacheSavingsCNY, cacheTtl }) {
19
19
  const showCache = typeof cacheHitRate === 'number' && cacheHitRate > 0;
20
- return (_jsxs(Box, { flexDirection: "column", marginBottom: 0, children: [_jsxs(Box, { justifyContent: "space-between", width: "100%", children: [_jsxs(Box, { children: [_jsx(Text, { color: "#06B6D4", bold: true, children: " \u26A1 " }), _jsx(Text, { color: "#22D3EE", bold: true, children: "THATGFSJ CODE" }), _jsx(Text, { dimColor: true, children: " v3.0.3" })] }), _jsxs(Box, { children: [showCache && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: hitRateColor(cacheHitRate), bold: true, children: [" \u26A1 ", (cacheHitRate * 100).toFixed(1), "% "] }), _jsxs(Text, { dimColor: true, children: [" \u00B7 \u8282\u7701 \u00A5", (cacheSavingsCNY ?? 0).toFixed(2), " "] }), _jsx(Text, { dimColor: true, children: " \u00B7 " })] })), cacheTtl && (_jsxs(Text, { color: "#A78BFA", bold: true, children: [" \u23F1 ", cacheTtl, " "] })), _jsxs(Text, { color: "#06B6D4", bold: true, children: [" ", provider, " "] }), _jsx(Text, { dimColor: true, children: "/" }), _jsxs(Text, { color: "#22D3EE", children: [" ", model, " "] })] })] }), _jsx(Text, { color: "#374151", children: '─'.repeat(80) })] }));
20
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 0, children: [_jsxs(Box, { justifyContent: "space-between", width: "100%", children: [_jsxs(Box, { children: [_jsx(Text, { color: "#06B6D4", bold: true, children: " \u26A1 " }), _jsx(Text, { color: "#22D3EE", bold: true, children: "THATGFSJ CODE" }), _jsx(Text, { dimColor: true, children: " v3.0.4" })] }), _jsxs(Box, { children: [showCache && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: hitRateColor(cacheHitRate), bold: true, children: [" \u26A1 ", (cacheHitRate * 100).toFixed(1), "% "] }), _jsxs(Text, { dimColor: true, children: [" \u00B7 \u8282\u7701 \u00A5", (cacheSavingsCNY ?? 0).toFixed(2), " "] }), _jsx(Text, { dimColor: true, children: " \u00B7 " })] })), cacheTtl && (_jsxs(Text, { color: "#A78BFA", bold: true, children: [" \u23F1 ", cacheTtl, " "] })), _jsxs(Text, { color: "#06B6D4", bold: true, children: [" ", provider, " "] }), _jsx(Text, { dimColor: true, children: "/" }), _jsxs(Text, { color: "#22D3EE", children: [" ", model, " "] })] })] }), _jsx(Text, { color: "#374151", children: '─'.repeat(80) })] }));
21
21
  });
22
22
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InitWizard.d.ts","sourceRoot":"","sources":["../../../src/tui/components/InitWizard.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,KAAmB,MAAM,OAAO,CAAC;AAOxC,OAAO,EAAuC,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,UAAU,KAAK;IACb,UAAU,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9F,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,KAAK,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAOpG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,4BA2MzD;AAGD,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"InitWizard.d.ts","sourceRoot":"","sources":["../../../src/tui/components/InitWizard.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,KAAmB,MAAM,OAAO,CAAC;AAOxC,OAAO,EAAuC,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,UAAU,KAAK;IACb,UAAU,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9F,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,KAAK,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAOpG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,4BAuMzD;AAGD,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -133,24 +133,19 @@ export function InitWizard({ onComplete, onCancel }) {
133
133
  }
134
134
  } })] })] }));
135
135
  }
136
- // v3.0.3: prompt-cache strategy step — auto / 5m / 1h / off.
137
- // The wizard used to require two questions (on/off + 5m/1h). Now it
138
- // gives the user a single, clear choice up front, with "自动" as the
139
- // default. The auto path lets the runtime pick the TTL based on the
140
- // conversation length (see cache/smartModel.ts decideTTL).
136
+ // v3.0.4: prompt-cache strategy step.
137
+ // Default is 1h (long-task TTL): we cannot predict how long a task
138
+ // will run, so we pick the TTL that cannot expire mid-task. 5m is
139
+ // for users who are sure the session is short.
141
140
  if (step === 'cache_strategy') {
142
141
  const items = [
143
- { label: '🤖 自动(推荐:根据会话长度智能选 5m / 1h)', value: 'auto' },
144
- { label: '⏱ 强制 5 分钟(短会话,写入便宜)', value: '5m' },
145
- { label: '🕐 强制 1 小时(长会话,命中率优先)', value: '1h' },
142
+ { label: '🕐 1 小时(推荐:默认长任务,缓存不中途失效)', value: '1h' },
143
+ { label: '⏱ 5 分钟(只适合你确认是短会话)', value: '5m' },
146
144
  { label: '✗ 关闭(每次请求都重新计算)', value: 'off' },
147
145
  ];
148
- return (_jsxs(Box, { flexDirection: "column", paddingLeft: 1, children: [_jsx(Text, { color: "#06B6D4", bold: true, children: "Prompt Caching \u7B56\u7565:" }), _jsx(Text, { dimColor: true, children: "\u5BF9 Anthropic / DeepSeek / Gemini \u6709\u6548\u3002" }), _jsx(Text, { dimColor: true, children: "\u81EA\u52A8\u6A21\u5F0F\uFF1A\u77ED\u4F1A\u8BDD\u7528 5m\uFF08\u4FBF\u5B9C\uFF09\uFF0C\u957F\u4F1A\u8BDD\uFF08>15 \u8F6E\uFF09\u81EA\u52A8\u5207 1h\u3002" }), _jsx(SelectInput, { items: items, onSelect: (item) => {
146
+ return (_jsxs(Box, { flexDirection: "column", paddingLeft: 1, children: [_jsx(Text, { color: "#06B6D4", bold: true, children: "Prompt Caching \u7B56\u7565:" }), _jsx(Text, { dimColor: true, children: "\u5BF9 Anthropic / DeepSeek / Gemini \u6709\u6548\u3002" }), _jsx(Text, { dimColor: true, children: "\u63A8\u8350 1 \u5C0F\u65F6\uFF1A\u4EFB\u52A1\u5F00\u59CB\u524D\u65E0\u6CD5\u9884\u77E5\u957F\u5EA6\uFF0C5 \u5206\u949F TTL \u4F1A\u5728\u957F\u4EFB\u52A1\u4E2D\u9014\u8FC7\u671F\u3002" }), _jsx(SelectInput, { items: items, onSelect: (item) => {
149
147
  if (item.value === 'off') {
150
- setCacheChoice({ enabled: false, ttl: '5m' });
151
- }
152
- else if (item.value === 'auto') {
153
- setCacheChoice({ enabled: true, ttl: '5m' }); // start at 5m, smartModel will upgrade
148
+ setCacheChoice({ enabled: false, ttl: '1h' });
154
149
  }
155
150
  else {
156
151
  setCacheChoice({ enabled: true, ttl: item.value });
@@ -1 +1 @@
1
- {"version":3,"file":"InitWizard.js","sourceRoot":"","sources":["../../../src/tui/components/InitWizard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InitWizard.js","sourceRoot":"","sources":["../../../src/tui/components/InitWizard.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCommands.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useCommands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC7B;AAmBD,eAAO,MAAM,YAAY;;;GAUxB,CAAC;AAEF,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG;2BAEQ,MAAM,KAAG,aAAa;EAwOjE"}
1
+ {"version":3,"file":"useCommands.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useCommands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC7B;AAmBD,eAAO,MAAM,YAAY;;;GAUxB,CAAC;AAEF,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG;2BAEQ,MAAM,KAAG,aAAa;EAsOjE"}
@@ -128,37 +128,35 @@ export function useCommands(app) {
128
128
  return { handled: true, output: lines.join('\n') };
129
129
  }
130
130
  // v3.0.3: /ttl — view or pin the cache TTL.
131
+ // v3.0.4: default is 1h (long-task). We cannot predict task length
132
+ // at round 0, so the default TTL is the one that cannot expire
133
+ // mid-task. Pinning 5m is only for users who are sure the session
134
+ // is short.
131
135
  //
132
136
  // /ttl show current effective TTL + decision reason
133
137
  // /ttl 5m|1h pin TTL for this session (sticky, no cache reset)
134
- // /ttl auto resume auto-decision (clears the pin)
138
+ // /ttl 1h back to the long-task default
135
139
  if (name === '/ttl') {
136
140
  const configTtl = app.config.get().cache?.ttl;
137
141
  const resolved = app.resolvedTtl;
138
- if (arg === 'auto') {
139
- app.config.save({ cache: { ...app.config.get().cache, ttl: 'auto' } });
140
- app.resolvedTtl = null;
141
- return { handled: true, output: '✓ Cache TTL 已重置为自动(下一轮重新评估)' };
142
- }
143
142
  if (arg === '5m' || arg === '1h') {
144
143
  app.config.save({ cache: { ...app.config.get().cache, ttl: arg } });
145
144
  app.resolvedTtl = arg;
146
145
  return { handled: true, output: `✓ Cache TTL 已固定为 ${arg}(首次请求会重建缓存)` };
147
146
  }
148
147
  // No arg: show current state
148
+ const effective = resolved ?? (configTtl === 'auto' ? '1h' : (configTtl ?? '1h'));
149
149
  const lines = [
150
150
  '⏱ Cache TTL',
151
151
  '─────────────────────────',
152
- ` 配置: ${configTtl ?? 'auto'}`,
152
+ ` 配置: ${configTtl ?? '1h'}`,
153
153
  ` 当前会话: ${resolved ?? '尚未评估'}`,
154
154
  '',
155
- '说明: ' +
156
- (configTtl === 'auto'
157
- ? '自动模式 短会话(≤14 轮)用 5m节省写入成本,' +
158
- '长会话(≥15 轮 或 ≥50k 字符)自动升级到 1h 复用缓存。'
159
- : `${configTtl} 模式 – TTL 每次请求都固定。`),
155
+ '说明: 默认 1 小时(长任务)。任务开始前无法预知长度,',
156
+ ' 5 分钟 TTL 会在长任务中途过期;1 小时缓存命中即可回本。',
157
+ ' 只有你确定会话很短时才建议 /ttl 5m',
160
158
  '',
161
- '/ttl 5m|1h|auto 调整 TTL',
159
+ '/ttl 5m|1h 调整 TTL',
162
160
  ];
163
161
  return { handled: true, output: lines.join('\n') };
164
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useCommands.js","sourceRoot":"","sources":["../../../src/tui/hooks/useCommands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useCommands.js","sourceRoot":"","sources":["../../../src/tui/hooks/useCommands.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thatgfsj-code",
3
- "version": "3.0.3",
3
+ "version": "3.0.4",
4
4
  "description": "Thatgfsj Code - AI Coding Assistant with Reasonix-style prompt caching",
5
5
  "main": "dist/cmd/index.js",
6
6
  "type": "module",
@@ -10,9 +10,10 @@
10
10
  * Tool-heavy turns → main model
11
11
  *
12
12
  * 2. Cache TTL
13
- * Short conversations → 5m (cheap write, expires fast)
14
- * Long conversations (>15 turns) 1h (cache hits pay back the
15
- * expensive write each round)
13
+ * v3.0.4: default to 1h (long-task TTL). We cannot predict task
14
+ * length at round 0, so we choose the TTL that cannot expire
15
+ * mid-task. 5m is opt-in only (user pins it via /ttl 5m or the
16
+ * init wizard).
16
17
  *
17
18
  * Why TTL is decided per-ROUND but CHANGES per-CONVERSATION:
18
19
  * The Anthropic cache_control marker is part of the request body.
@@ -24,14 +25,11 @@
24
25
  * round) and never change it. Subsequent rounds get the same TTL,
25
26
  * which keeps the cache prefix stable and lets Anthropic match it.
26
27
  *
27
- * The "smart" part is that we look at the FULL conversation so far,
28
- * not just the last input. A 16-turn conversation that started with a
29
- * short prompt but grew into a long refactor still gets 1h.
30
- *
31
- * Trade-off: the first round is evaluated with 0 history, so it
32
- * defaults to 5m. If the conversation then grows long, future rounds
33
- * still use 5m for the system-token cache (because we already wrote
34
- * it with 5m). The tool definition cache gets the same TTL.
28
+ * Trade-off: 1h write costs 2x input price (vs 1.25x for 5m), but
29
+ * reads are the same 0.1x. A long task hitting cache 2-3 times pays
30
+ * back the extra write cost; a short task pays it once and moves on.
31
+ * That is strictly better than guessing 5m and having the cache expire
32
+ * mid-task.
35
33
  */
36
34
 
37
35
  import type { ChatMessage } from '../types.js';
@@ -95,19 +93,28 @@ export function totalConversationChars(messages: ChatMessage[]): number {
95
93
  /**
96
94
  * Decide the cache TTL for the current round.
97
95
  *
98
- * Inputs:
99
- * - messages: full conversation so far (system + user + assistant + tool)
100
- * - previousTTL: TTL chosen in a prior round (null on round 0)
96
+ * v3.0.4: The previous implementation tried to *predict* the task length
97
+ * from the conversation so far (short sessions 5m, long 1h). That
98
+ * was wrong: at the moment the decision is made (first round), the task
99
+ * hasn't started yet — there is no way to know whether it will be a
100
+ * 30-second question or a 3-hour refactor. Predicting 5m for a task
101
+ * that turns out to be long means the cache expires mid-task (5-minute
102
+ * TTL counts from the last HIT, and agent work often has >5m gaps while
103
+ * tools run / user reads output), so every round after the gap re-writes
104
+ * the whole prefix at full price.
101
105
  *
102
- * Decision matrix:
103
- * - round 0 + any input length 5m (default; user can override via init)
104
- * - round 1-14 + total chars < 50k → 5m (short sessions, 5m is enough)
105
- * - round 15+ OR total chars > 50k 1h (long sessions, 1h amortizes the write)
106
+ * Correct rule: DEFAULT TO THE LONG TTL (1h) and don't guess.
107
+ * - 1h costs 2x input price to WRITE (vs 1.25x for 5m), but reads are
108
+ * the same 0.1x for both.
109
+ * - A long task that hits cache even 2-3 times pays back the extra
110
+ * write cost. A short task only pays the extra write once.
111
+ * - Users who are SURE the session is short can pin 5m via
112
+ * /ttl 5m or the init wizard — the default stays 1h.
106
113
  *
107
- * Stability rule: once a TTL is chosen, it is reused for every
108
- * subsequent round in the same session. Changing TTL between rounds
109
- * would invalidate the Anthropic cache prefix and cost more than it
110
- * saves.
114
+ * Stability rule (unchanged): once a TTL is chosen, it is reused for
115
+ * every subsequent round in the same session. Changing TTL between
116
+ * rounds would invalidate the Anthropic cache prefix and cost more
117
+ * than it saves.
111
118
  *
112
119
  * The `isFirstDecision` flag tells the caller whether to apply the
113
120
  * decision (first round) or reuse the previous one (later rounds).
@@ -119,27 +126,8 @@ export function decideTTL(
119
126
  if (previousTTL) {
120
127
  return { ttl: previousTTL, reason: 'reused-from-previous-round', isFirstDecision: false };
121
128
  }
122
-
123
- const turnCount = messages.filter(m => m.role === 'user' || m.role === 'assistant').length;
124
- const totalChars = totalConversationChars(messages);
125
-
126
- // Round 0: empty / first input. Default to 5m.
127
- if (turnCount === 0) {
128
- return { ttl: '5m', reason: 'first-round-default', isFirstDecision: true };
129
- }
130
-
131
- // Multi-turn but small conversation → 5m
132
- if (turnCount < 15 && totalChars < 50_000) {
133
- return { ttl: '5m', reason: `short-session-${turnCount}-turns`, isFirstDecision: true };
134
- }
135
-
136
- // Long conversations → 1h
137
- if (turnCount >= 15) {
138
- return { ttl: '1h', reason: `long-session-${turnCount}-turns`, isFirstDecision: true };
139
- }
140
- if (totalChars >= 50_000) {
141
- return { ttl: '1h', reason: `long-context-${totalChars}-chars`, isFirstDecision: true };
142
- }
143
-
144
- return { ttl: '5m', reason: 'fallback', isFirstDecision: true };
129
+ // Default: long-task TTL. We cannot know the task length upfront, so
130
+ // we pick the TTL that cannot expire mid-task. 5m is only used when
131
+ // the user explicitly pins it.
132
+ return { ttl: '1h', reason: 'default-long-task', isFirstDecision: true };
145
133
  }
@@ -16,14 +16,12 @@ const DEFAULT_CONFIG: Config = {
16
16
  maxTokens: 4096,
17
17
  contextLength: 50,
18
18
  provider: 'siliconflow',
19
- // v3.0.0: prompt cache policy. Default = enabled, 'auto' TTL.
20
- // v3.0.3: 'auto' TTL lets the runtime's decideTTL() pick 5m for short
21
- // sessions and 1h for long ones (>= 15 turns or >= 50k chars). The
22
- // chosen TTL is sticky across rounds within a session so the cache
23
- // prefix stays stable.
19
+ // v3.0.0: prompt cache policy. v3.0.4: default TTL is 1h (long-task).
20
+ // We cannot predict task length at round 0, so we default to the TTL
21
+ // that cannot expire mid-task. 5m is opt-in via /ttl 5m or init wizard.
24
22
  cache: {
25
23
  enabled: true,
26
- ttl: 'auto',
24
+ ttl: '1h',
27
25
  strategy: 'auto',
28
26
  },
29
27
  };
package/src/llm/index.ts CHANGED
@@ -114,10 +114,11 @@ export class LLMService {
114
114
  ): AsyncGenerator<StreamChunk, ChatResponse> {
115
115
  if (!this.hasApiKey()) throw new Error(this.getNoKeyMessage());
116
116
 
117
- // v3.0.3: Resolve TTL once per session. If config says 'auto', call
118
- // decideTTL to pick 5m (short sessions) or 1h (long ones). For
119
- // non-Anthropic providers we don't need to do anythingcache
120
- // markers are wired into the system regardless.
117
+ // v3.0.3: Resolve TTL once per session.
118
+ // v3.0.4: default is 1h (long-task). 'auto' (legacy config value)
119
+ // resolves via decideTTL which now always returns 1hwe cannot
120
+ // predict task length at round 0, so we default to the TTL that
121
+ // cannot expire mid-task. '5m'/'1h' are explicit user pins.
121
122
  const configTtl = (this.provider as any).config?.cache?.ttl;
122
123
  if (configTtl === 'auto' && this.resolvedTtl === null) {
123
124
  const decision = decideTTL(messages, null);
@@ -42,7 +42,7 @@ export const Header = React.memo(function Header({ provider, model, cacheHitRate
42
42
  <Box>
43
43
  <Text color="#06B6D4" bold> ⚡ </Text>
44
44
  <Text color="#22D3EE" bold>THATGFSJ CODE</Text>
45
- <Text dimColor> v3.0.3</Text>
45
+ <Text dimColor> v3.0.4</Text>
46
46
  </Box>
47
47
  <Box>
48
48
  {showCache && (
@@ -208,30 +208,26 @@ export function InitWizard({ onComplete, onCancel }: Props) {
208
208
  );
209
209
  }
210
210
 
211
- // v3.0.3: prompt-cache strategy step — auto / 5m / 1h / off.
212
- // The wizard used to require two questions (on/off + 5m/1h). Now it
213
- // gives the user a single, clear choice up front, with "自动" as the
214
- // default. The auto path lets the runtime pick the TTL based on the
215
- // conversation length (see cache/smartModel.ts decideTTL).
211
+ // v3.0.4: prompt-cache strategy step.
212
+ // Default is 1h (long-task TTL): we cannot predict how long a task
213
+ // will run, so we pick the TTL that cannot expire mid-task. 5m is
214
+ // for users who are sure the session is short.
216
215
  if (step === 'cache_strategy') {
217
216
  const items = [
218
- { label: '🤖 自动(推荐:根据会话长度智能选 5m / 1h)', value: 'auto' },
219
- { label: '⏱ 强制 5 分钟(短会话,写入便宜)', value: '5m' },
220
- { label: '🕐 强制 1 小时(长会话,命中率优先)', value: '1h' },
217
+ { label: '🕐 1 小时(推荐:默认长任务,缓存不中途失效)', value: '1h' },
218
+ { label: '⏱ 5 分钟(只适合你确认是短会话)', value: '5m' },
221
219
  { label: '✗ 关闭(每次请求都重新计算)', value: 'off' },
222
220
  ];
223
221
  return (
224
222
  <Box flexDirection="column" paddingLeft={1}>
225
223
  <Text color="#06B6D4" bold>Prompt Caching 策略:</Text>
226
224
  <Text dimColor>对 Anthropic / DeepSeek / Gemini 有效。</Text>
227
- <Text dimColor>自动模式:短会话用 5m(便宜),长会话(&gt;15 轮)自动切 1h。</Text>
225
+ <Text dimColor>推荐 1 小时:任务开始前无法预知长度,5 分钟 TTL 会在长任务中途过期。</Text>
228
226
  <SelectInput
229
227
  items={items}
230
228
  onSelect={(item) => {
231
229
  if (item.value === 'off') {
232
- setCacheChoice({ enabled: false, ttl: '5m' });
233
- } else if (item.value === 'auto') {
234
- setCacheChoice({ enabled: true, ttl: '5m' }); // start at 5m, smartModel will upgrade
230
+ setCacheChoice({ enabled: false, ttl: '1h' });
235
231
  } else {
236
232
  setCacheChoice({ enabled: true, ttl: item.value as '5m' | '1h' });
237
233
  }
@@ -146,37 +146,35 @@ export function useCommands(app: App) {
146
146
  }
147
147
 
148
148
  // v3.0.3: /ttl — view or pin the cache TTL.
149
+ // v3.0.4: default is 1h (long-task). We cannot predict task length
150
+ // at round 0, so the default TTL is the one that cannot expire
151
+ // mid-task. Pinning 5m is only for users who are sure the session
152
+ // is short.
149
153
  //
150
154
  // /ttl show current effective TTL + decision reason
151
155
  // /ttl 5m|1h pin TTL for this session (sticky, no cache reset)
152
- // /ttl auto resume auto-decision (clears the pin)
156
+ // /ttl 1h back to the long-task default
153
157
  if (name === '/ttl') {
154
158
  const configTtl = (app.config.get() as any).cache?.ttl as 'auto' | '5m' | '1h' | undefined;
155
159
  const resolved = app.resolvedTtl;
156
- if (arg === 'auto') {
157
- app.config.save({ cache: { ...(app.config.get() as any).cache, ttl: 'auto' } });
158
- app.resolvedTtl = null;
159
- return { handled: true, output: '✓ Cache TTL 已重置为自动(下一轮重新评估)' };
160
- }
161
160
  if (arg === '5m' || arg === '1h') {
162
161
  app.config.save({ cache: { ...(app.config.get() as any).cache, ttl: arg } });
163
162
  app.resolvedTtl = arg;
164
163
  return { handled: true, output: `✓ Cache TTL 已固定为 ${arg}(首次请求会重建缓存)` };
165
164
  }
166
165
  // No arg: show current state
166
+ const effective = resolved ?? (configTtl === 'auto' ? '1h' : (configTtl ?? '1h'));
167
167
  const lines = [
168
168
  '⏱ Cache TTL',
169
169
  '─────────────────────────',
170
- ` 配置: ${configTtl ?? 'auto'}`,
170
+ ` 配置: ${configTtl ?? '1h'}`,
171
171
  ` 当前会话: ${resolved ?? '尚未评估'}`,
172
172
  '',
173
- '说明: '+
174
- (configTtl === 'auto'
175
- ? '自动模式 短会话(≤14 轮)用 5m节省写入成本,' +
176
- '长会话(≥15 轮 或 ≥50k 字符)自动升级到 1h 复用缓存。'
177
- : `${configTtl} 模式 – TTL 每次请求都固定。`),
173
+ '说明: 默认 1 小时(长任务)。任务开始前无法预知长度,',
174
+ ' 5 分钟 TTL 会在长任务中途过期;1 小时缓存命中即可回本。',
175
+ ' 只有你确定会话很短时才建议 /ttl 5m',
178
176
  '',
179
- '/ttl 5m|1h|auto 调整 TTL',
177
+ '/ttl 5m|1h 调整 TTL',
180
178
  ];
181
179
  return { handled: true, output: lines.join('\n') };
182
180
  }
@@ -10,13 +10,14 @@ function assistantMsg(s: string): ChatMessage {
10
10
  }
11
11
 
12
12
  describe('decideTTL', () => {
13
- it('round 0 5m (default)', () => {
13
+ it('defaults to 1h (long-task) on round 0 task length unknown', () => {
14
14
  const d = decideTTL([], null);
15
- expect(d.ttl).toBe('5m');
15
+ expect(d.ttl).toBe('1h');
16
16
  expect(d.isFirstDecision).toBe(true);
17
+ expect(d.reason).toBe('default-long-task');
17
18
  });
18
19
 
19
- it('short session (≤14 turns, <50k chars) 5m', () => {
20
+ it('defaults to 1h even for a small conversation — cannot predict future length', () => {
20
21
  const messages = [
21
22
  userMsg('hello'),
22
23
  assistantMsg('hi'),
@@ -24,12 +25,10 @@ describe('decideTTL', () => {
24
25
  assistantMsg('good'),
25
26
  ];
26
27
  const d = decideTTL(messages, null);
27
- expect(d.ttl).toBe('5m');
28
- expect(d.reason).toMatch(/short-session/);
28
+ expect(d.ttl).toBe('1h');
29
29
  });
30
30
 
31
- it('long session (≥15 turns) 1h', () => {
32
- // Build 16 user + 16 assistant = 32 messages (16 turns)
31
+ it('defaults to 1h for a large conversation too', () => {
33
32
  const messages: ChatMessage[] = [];
34
33
  for (let i = 0; i < 16; i++) {
35
34
  messages.push(userMsg(`question ${i}`));
@@ -37,35 +36,24 @@ describe('decideTTL', () => {
37
36
  }
38
37
  const d = decideTTL(messages, null);
39
38
  expect(d.ttl).toBe('1h');
40
- expect(d.reason).toMatch(/long-session/);
41
- });
42
-
43
- it('large context (>50k chars) → 1h even with few turns', () => {
44
- const bigContent = 'x'.repeat(60_000);
45
- const messages: ChatMessage[] = [
46
- userMsg('hi'),
47
- { role: 'assistant', content: bigContent },
48
- ];
49
- const d = decideTTL(messages, null);
50
- expect(d.ttl).toBe('1h');
51
- expect(d.reason).toMatch(/long-context/);
52
39
  });
53
40
 
54
41
  it('reuses previous TTL (stability rule)', () => {
55
42
  const messages = [userMsg('hello'), assistantMsg('hi')];
56
43
  const d1 = decideTTL(messages, null);
57
- expect(d1.ttl).toBe('5m');
44
+ expect(d1.ttl).toBe('1h');
58
45
  expect(d1.isFirstDecision).toBe(true);
59
46
 
60
- // Now grow to 30 turns without changing TTL
61
- for (let i = 0; i < 30; i++) {
62
- messages.push(userMsg(`q${i}`));
63
- messages.push(assistantMsg(`a${i}`));
64
- }
47
+ // Once pinned to 5m by the user, later rounds keep 5m.
65
48
  const d2 = decideTTL(messages, '5m');
66
49
  expect(d2.ttl).toBe('5m');
67
50
  expect(d2.isFirstDecision).toBe(false);
68
51
  expect(d2.reason).toBe('reused-from-previous-round');
52
+
53
+ // And once pinned to 1h, later rounds keep 1h.
54
+ const d3 = decideTTL(messages, '1h');
55
+ expect(d3.ttl).toBe('1h');
56
+ expect(d3.isFirstDecision).toBe(false);
69
57
  });
70
58
  });
71
59