@seanyao/roll 2.603.1 → 2.604.1
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/CHANGELOG.md +40 -11
- package/bin/roll +84 -757
- package/lib/changelog_audit.py +149 -0
- package/lib/changelog_generate.py +41 -23
- package/lib/consistency_check.py +409 -0
- package/lib/i18n/consistency.sh +8 -0
- package/lib/prices/snapshot-2026-05-22.json +1 -7
- package/lib/prices/snapshot-2026-05-23-deepseek.json +0 -2
- package/lib/prices/snapshot-2026-06-02-kimi.json +0 -1
- package/lib/prices_fetcher.py +1 -20
- package/lib/roll-loop-status.py +1 -1
- package/package.json +1 -1
- package/lib/__pycache__/changelog_generate.cpython-314.pyc +0 -0
- package/lib/__pycache__/github_sync.cpython-314.pyc +0 -0
- package/lib/__pycache__/loop-fmt.cpython-314.pyc +0 -0
- package/lib/__pycache__/loop_result_eval.cpython-314.pyc +0 -0
- package/lib/__pycache__/loop_unstick.cpython-314.pyc +0 -0
- package/lib/__pycache__/model_prices.cpython-314.pyc +0 -0
- package/lib/__pycache__/prices_fetcher.cpython-314.pyc +0 -0
- package/lib/__pycache__/roll-home.cpython-314.pyc +0 -0
- package/lib/__pycache__/roll-loop-status.cpython-314.pyc +0 -0
- package/lib/__pycache__/roll_git.cpython-314.pyc +0 -0
- package/lib/__pycache__/roll_render.cpython-314.pyc +0 -0
- package/lib/__pycache__/slides-render.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/__init__.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/gemini.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/kimi.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/openai.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/pi.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/pi_emit.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/qwen.cpython-314.pyc +0 -0
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
"default_model": "kimi-k2.6",
|
|
8
8
|
"notes": "Rates per million tokens (CNY), verified 2026-06-02 against the official Kimi platform pricing pages (pricing/chat-k25 + pricing/chat-k26). Corrects the 2026-05-23 snapshot, which had copied the original-K2 rate (1/4) onto EVERY kimi model — real K2.5 is 4/21, K2.6 is 6.5/27, so the current models' cost was under-reported ~5-7x on output. Field convention: `in` = standard (cache-miss) input price; `cache_read` = cache-hit input price; `cache_create` = cache-miss input rate (Kimi documents no separate cache-write surcharge, mirroring DeepSeek). kimi-for-coding is the kimi-code CLI's model id; the CLI config pins it to K2.6 (display_name Kimi-k2.6, default_thinking=true, base_url api.kimi.com/coding/v1), so it is priced at K2.6 rates. NOTE: kimi-code is a coding *subscription*; these per-token rates are the published K2.6 API rates used as a usage-cost estimate, not the flat subscription fee. kimi-k2 is the prior-gen original K2, retained at its launch rate (1/4) for currency resolution of legacy name variants; it is no longer on the public pricing page and is not actually billed — only kimi-for-coding (K2.6) is.",
|
|
9
9
|
"prices": {
|
|
10
|
-
"kimi-k2": {"in": 1.00, "out": 4.00, "cache_create": 1.00, "cache_read": 0.25},
|
|
11
10
|
"kimi-k2.5": {"in": 4.00, "out": 21.00, "cache_create": 4.00, "cache_read": 0.70},
|
|
12
11
|
"kimi-k2.6": {"in": 6.50, "out": 27.00, "cache_create": 6.50, "cache_read": 1.10},
|
|
13
12
|
"kimi-for-coding": {"in": 6.50, "out": 27.00, "cache_create": 6.50, "cache_read": 1.10}
|
package/lib/prices_fetcher.py
CHANGED
|
@@ -162,12 +162,6 @@ def _parse_deepseek_html(html: str) -> Dict[str, Dict[str, float]]:
|
|
|
162
162
|
if not prices:
|
|
163
163
|
raise ParseError('no price rows found in HTML; page layout may have changed')
|
|
164
164
|
|
|
165
|
-
# Aliases: deepseek-chat and deepseek-reasoner both map to v4-flash.
|
|
166
|
-
if 'deepseek-v4-flash' in prices:
|
|
167
|
-
flash = prices['deepseek-v4-flash']
|
|
168
|
-
prices['deepseek-chat'] = dict(flash)
|
|
169
|
-
prices['deepseek-reasoner'] = dict(flash)
|
|
170
|
-
|
|
171
165
|
return prices
|
|
172
166
|
|
|
173
167
|
|
|
@@ -212,13 +206,6 @@ def _parse_kimi_html(html: str) -> Dict[str, Dict[str, float]]:
|
|
|
212
206
|
if prices:
|
|
213
207
|
if "kimi-k2.6" in prices:
|
|
214
208
|
prices["kimi-for-coding"] = dict(prices["kimi-k2.6"])
|
|
215
|
-
if "kimi-k2" not in prices:
|
|
216
|
-
prices["kimi-k2"] = {
|
|
217
|
-
"in": 1.00,
|
|
218
|
-
"out": 4.00,
|
|
219
|
-
"cache_create": 1.00,
|
|
220
|
-
"cache_read": 0.25,
|
|
221
|
-
}
|
|
222
209
|
return prices
|
|
223
210
|
|
|
224
211
|
sub_urls = [
|
|
@@ -238,13 +225,7 @@ def _parse_kimi_html(html: str) -> Dict[str, Dict[str, float]]:
|
|
|
238
225
|
|
|
239
226
|
if "kimi-k2.6" in prices:
|
|
240
227
|
prices["kimi-for-coding"] = dict(prices["kimi-k2.6"])
|
|
241
|
-
|
|
242
|
-
prices["kimi-k2"] = {
|
|
243
|
-
"in": 1.00,
|
|
244
|
-
"out": 4.00,
|
|
245
|
-
"cache_create": 1.00,
|
|
246
|
-
"cache_read": 0.25,
|
|
247
|
-
}
|
|
228
|
+
|
|
248
229
|
return prices
|
|
249
230
|
|
|
250
231
|
|
package/lib/roll-loop-status.py
CHANGED
|
@@ -737,7 +737,7 @@ def merge_runs_into_cycles(cycles: List[Dict[str, Any]], runs: Dict[str, Dict[st
|
|
|
737
737
|
# Outcome: runs.jsonl wins when events stream was vacuous or
|
|
738
738
|
# misleading (idle/failed emitted by _loop_event even though the
|
|
739
739
|
# agent completed work and _runs_append recorded built).
|
|
740
|
-
if cy.get("outcome") in ("unknown", "running", "idle", "failed") and r.get("status"):
|
|
740
|
+
if cy.get("outcome") in ("unknown", "running", "idle", "failed", "orphan") and r.get("status"):
|
|
741
741
|
cy["outcome"] = {"built": "done", "interrupted": "fail"}.get(r["status"], r["status"])
|
|
742
742
|
if not cy.get("story") and r["built"]:
|
|
743
743
|
cy["story"] = r["built"][0]
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|