初始化项目版本
This commit is contained in:
54
.cursor/hooks/token_budget_session.py
Executable file
54
.cursor/hooks/token_budget_session.py
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env python3
|
||||
"""sessionStart: inject token-budget context and init turn counter."""
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
STATE_DIR = Path(__file__).resolve().parent / "state"
|
||||
CONTEXT = """[Token Budget · auto]
|
||||
省用量模式已开启:
|
||||
1) 默认短会话、窄检索,禁止无必要全仓扫描
|
||||
2) 日常任务用 Auto/Composer;不要主动升到 High/Grok High
|
||||
3) 禁止默认并行多 Agent / Best-of-N
|
||||
4) 长会话收口后建议用户新开聊天,先给摘要
|
||||
用户说「确认高耗」或「继续本会话」时可放宽。"""
|
||||
|
||||
|
||||
def main() -> None:
|
||||
raw = sys.stdin.read().strip()
|
||||
payload = json.loads(raw) if raw else {}
|
||||
session_id = payload.get("session_id") or payload.get("conversation_id") or "unknown"
|
||||
STATE_DIR.mkdir(parents=True, exist_ok=True)
|
||||
state = {
|
||||
"session_id": session_id,
|
||||
"turns": 0,
|
||||
"warned_long": False,
|
||||
"warned_expensive": False,
|
||||
}
|
||||
state_path = STATE_DIR / f"session-{session_id}.json"
|
||||
state_path.write_text(json.dumps(state, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
(STATE_DIR / "latest-session.json").write_text(
|
||||
json.dumps({"session_id": session_id}, ensure_ascii=False),
|
||||
encoding="utf-8",
|
||||
)
|
||||
print(
|
||||
json.dumps(
|
||||
{
|
||||
"env": {
|
||||
"ONEOS_TOKEN_BUDGET": "1",
|
||||
"ONEOS_TOKEN_BUDGET_SESSION": str(session_id),
|
||||
},
|
||||
"additional_context": CONTEXT,
|
||||
},
|
||||
ensure_ascii=False,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
main()
|
||||
except Exception:
|
||||
print("{}")
|
||||
Reference in New Issue
Block a user