@seanyao/roll 2.604.1 → 3.0.0
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 +24 -0
- package/README.md +6 -0
- package/bin/roll +37 -44
- package/dist/roll.mjs +12875 -0
- package/lib/__pycache__/changelog_audit.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
- package/lib/i18n/loop.sh +0 -4
- package/lib/roll-loop-status.py +14 -6
- package/package.json +20 -6
|
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
|
package/lib/i18n/loop.sh
CHANGED
|
@@ -7,8 +7,6 @@ _i18n_set en loop.roll_loop_s_active_02d_00 " • roll-loop %s active %02d:0
|
|
|
7
7
|
_i18n_set zh loop.roll_loop_s_active_02d_00 " • roll-loop %s 有效窗口 %02d:00–%02d:00 %s(active %02d:00–%02d:00)"
|
|
8
8
|
_i18n_set en loop.roll_dream_daily_at_02d_02d " • roll-.dream daily at %02d:%02d 每天 %02d:%02d"
|
|
9
9
|
_i18n_set zh loop.roll_dream_daily_at_02d_02d " • roll-.dream daily at %02d:%02d 每天 %02d:%02d"
|
|
10
|
-
_i18n_set en loop.roll_brief_daily_at_02d_02d " • roll-brief daily at %02d:%02d 每天 %02d:%02d"
|
|
11
|
-
_i18n_set zh loop.roll_brief_daily_at_02d_02d " • roll-brief daily at %02d:%02d 每天 %02d:%02d"
|
|
12
10
|
_i18n_set en loop.loop_already_enabled_for_this_project_2 "Loop already enabled for this project"
|
|
13
11
|
_i18n_set zh loop.loop_already_enabled_for_this_project_2 "当前项目 loop 已启用"
|
|
14
12
|
_i18n_set en loop.loop_enabled_2 "Loop enabled"
|
|
@@ -17,8 +15,6 @@ _i18n_set en loop.roll_loop_s_active_02d_00_2 " • roll-loop %s active %02d
|
|
|
17
15
|
_i18n_set zh loop.roll_loop_s_active_02d_00_2 " • roll-loop %s 有效窗口 %02d:00–%02d:00 %s(active %02d:00–%02d:00)"
|
|
18
16
|
_i18n_set en loop.roll_dream_daily_at_02d_02d_2 " • roll-.dream daily at %02d:%02d 每天 %02d:%02d"
|
|
19
17
|
_i18n_set zh loop.roll_dream_daily_at_02d_02d_2 " • roll-.dream daily at %02d:%02d 每天 %02d:%02d"
|
|
20
|
-
_i18n_set en loop.roll_brief_daily_at_02d_02d_2 " • roll-brief daily at %02d:%02d 每天 %02d:%02d"
|
|
21
|
-
_i18n_set zh loop.roll_brief_daily_at_02d_02d_2 " • roll-brief daily at %02d:%02d 每天 %02d:%02d"
|
|
22
18
|
_i18n_set en loop.loop_not_enabled_for_this_project "Loop not enabled for this project"
|
|
23
19
|
_i18n_set zh loop.loop_not_enabled_for_this_project "当前项目 loop 未启用"
|
|
24
20
|
_i18n_set en loop.loop_disabled "Loop disabled"
|
package/lib/roll-loop-status.py
CHANGED
|
@@ -668,6 +668,12 @@ def load_runs(slug: str) -> Dict[str, Dict[str, Any]]:
|
|
|
668
668
|
r = json.loads(line)
|
|
669
669
|
except Exception:
|
|
670
670
|
continue
|
|
671
|
+
# FIX-193: a stray line can parse as a bare JSON scalar (e.g. an
|
|
672
|
+
# agent pretty-printed a record across lines and `"FIX-181"` parses
|
|
673
|
+
# as a str) — r.get() then crashes the whole dashboard. Records
|
|
674
|
+
# must be objects; skip anything else.
|
|
675
|
+
if not isinstance(r, dict):
|
|
676
|
+
continue
|
|
671
677
|
p = r.get("project", "")
|
|
672
678
|
if p != slug and p != base and not p.startswith(f"{slug}-cycle-"):
|
|
673
679
|
# String match failed — try path match for old-slug salvage.
|
|
@@ -1186,15 +1192,17 @@ def render(events, cron, state, backlog, *, days=3, lang="both", now=None,
|
|
|
1186
1192
|
# would duplicate signal without adding info.
|
|
1187
1193
|
print(eb_zh)
|
|
1188
1194
|
|
|
1189
|
-
# US-LOOP-036: daily service (dream
|
|
1190
|
-
#
|
|
1191
|
-
#
|
|
1192
|
-
|
|
1195
|
+
# US-LOOP-036: daily service (dream) next-fire line, read straight from the
|
|
1196
|
+
# launchd plist so it reflects the latest `roll config dream-time` reload
|
|
1197
|
+
# rather than a stale yaml-derived guess.
|
|
1198
|
+
# FIX-194/FIX-195: brief loop retired — dream is the only daily service.
|
|
1199
|
+
for _svc in ("dream",):
|
|
1193
1200
|
_sl = _daily_schedule_line(_svc, now=now)
|
|
1194
1201
|
if _sl:
|
|
1195
1202
|
print(" " + c("dim", _sl))
|
|
1196
|
-
# FIX-151: dedicated loop
|
|
1197
|
-
|
|
1203
|
+
# FIX-151: dedicated loop last-tick age.
|
|
1204
|
+
# FIX-194: ci/alert loops retired — pr is the only dedicated loop tick.
|
|
1205
|
+
for _loop in ("pr",):
|
|
1198
1206
|
_tl = _tick_age_line(_loop, now=now)
|
|
1199
1207
|
if _tl:
|
|
1200
1208
|
print(" " + c("dim", _tl))
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seanyao/roll",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Roll
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "Roll \u2014 Roll out features with AI agents",
|
|
5
|
+
"packageManager": "pnpm@11.1.3",
|
|
5
6
|
"scripts": {
|
|
6
|
-
"test": "bash
|
|
7
|
+
"test": "bash scripts/test-ts.sh",
|
|
8
|
+
"test:bats": "bash tests/run.sh",
|
|
9
|
+
"bundle": "node scripts/bundle.mjs",
|
|
10
|
+
"prepack": "pnpm -r build && pnpm bundle"
|
|
7
11
|
},
|
|
8
12
|
"keywords": [
|
|
9
13
|
"ai",
|
|
@@ -18,11 +22,12 @@
|
|
|
18
22
|
"url": "git+https://github.com/seanyao/roll.git"
|
|
19
23
|
},
|
|
20
24
|
"bin": {
|
|
21
|
-
"roll": "
|
|
25
|
+
"roll": "dist/roll.mjs"
|
|
22
26
|
},
|
|
23
27
|
"license": "MIT",
|
|
24
28
|
"author": "Sean Yao <sean.dlut@gmail.com>",
|
|
25
29
|
"files": [
|
|
30
|
+
"dist/",
|
|
26
31
|
"bin/",
|
|
27
32
|
"conventions/",
|
|
28
33
|
"lib/",
|
|
@@ -30,5 +35,14 @@
|
|
|
30
35
|
"template/",
|
|
31
36
|
"README.md",
|
|
32
37
|
"CHANGELOG.md"
|
|
33
|
-
]
|
|
34
|
-
|
|
38
|
+
],
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=22"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@types/node": "^25.9.1",
|
|
44
|
+
"esbuild": "^0.28.0",
|
|
45
|
+
"typescript": "^6.0.3",
|
|
46
|
+
"vitest": "^4.1.8"
|
|
47
|
+
}
|
|
48
|
+
}
|