This commit is contained in:
2026-09-09 10:29:02 +08:00
parent 2aa49b5263
commit ccb12dad7c
102 changed files with 7879 additions and 559 deletions

View File

@@ -0,0 +1,49 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""待办事项 demo CLI 入口(结构对齐 skill-template 的 main.py)。
分层:cli(argv)→ service(业务编排)→ db(持久化)→ util(通用工具)。
独立运行说明:
真实技能依赖宿主共享 Python runtime 的 ``jiangchang_skill_core``。
本 demo 自带一份最小 mock(``scripts/_mock_platform/``),在没有宿主时
由本文件自动注入 sys.path,使 demo 在任意 Python 3.10+ 环境可直接跑通。
设置环境变量 ``JIANGCHANG_DATA_ROOT`` 即可切到真实平台 runtime 模式。
"""
from __future__ import annotations
import os
import sys
# Windows 终端 UTF-8(对齐模板)
if sys.platform == "win32":
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace")
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding="utf-8", errors="replace")
_scripts_dir = os.path.dirname(os.path.abspath(__file__))
if _scripts_dir not in sys.path:
sys.path.insert(0, _scripts_dir)
# 没有真实平台库时启用 mock(demo 自带,便于脱离宿主独立运行);
# 设环境变量 ``TODO_SKILL_USE_REAL_PLATFORM=1`` 可强制走真实 runtime。
if not os.environ.get("TODO_SKILL_USE_REAL_PLATFORM"):
try:
import jiangchang_skill_core # noqa: F401
except ImportError:
_mock_platform = os.path.join(_scripts_dir, "_mock_platform")
if _mock_platform not in sys.path:
sys.path.insert(0, _mock_platform)
from jiangchang_skill_core.runtime_env import apply_cli_local_defaults # noqa: E402
apply_cli_local_defaults()
from util.config_bootstrap import bootstrap_skill_config # noqa: E402
bootstrap_skill_config()
from cli.app import main # noqa: E402
if __name__ == "__main__":
raise SystemExit(main())