Skip to main content

corespine

Spine 家族的薄共享核(见 ADR 0001)。 只装 domain-neutral 的底层原语——既不属于 RAG 也不属于 agent 的稳定地基,被 ragspine / agentspine 兄弟包各自依赖,不含任何它们的领域概念。

刻意地薄。按证据(rule of three)增长,不预先造框架。详见 CLAUDE.md 宪章。

缝的元模式

每条缝都长一个样,核心 import 零 SDK、离线可跑:

Protocol + 离线确定性默认 + Registry / make_* 工厂 + 参数化 conformance

里面有什么

模块 原语
seam/registry.py Registry:name→factory 解析(大小写/留白/连字符不敏感)+ entry-point 自动发现(corespine.<seam> group)+ 未知 spec 列清可用名 + lazy_extra_import(缺 extra 给"pip install …"友好提示)
observability/trace.py TraceSink 协议 + InProcessPrivacyTraceSink:只记 code/计数/耗时,拒绝任何携带正文(answer/value/text/content…)的载荷
llm/provider.py LLMProvider 协议 + 离线确定性 MockProvider(零网络、零 key、可复现)
config/env.py load_from_env:把 PREFIX_* 环境变量读进一个 frozen dataclass(范式同 ragspine from_env)
queue/task_queue.py TaskQueue 协议 + FakeQueue:同步内联执行 + 记录,离线/测试用
conformance/harness.py ConformanceSuite × InvariantPack:把"实现 × 不变量"绑成笛卡尔积逐格执行(机制,具体不变量由各 app 自己绑)

本地开发(始终从包根)

uv venv .venv
VIRTUAL_ENV="$(pwd)/.venv" uv pip install -e ".[dev]"
.venv/bin/python -m pytest -q
.venv/bin/python -c "import corespine"

30 秒上手

from corespine import Registry, MockProvider, InProcessPrivacyTraceSink, FakeQueue

# 缝:一个 spec 选实现(大小写/留白不敏感;找不到列清可用名;还能 entry-point 自动发现)
reg: Registry = Registry("llm")
reg.register("mock", lambda **kw: MockProvider(**kw))
provider = reg.make("  MOCK ")
# OpenAI chat-completions 规范:messages 进,OpenAI 形状的 ChatCompletion 出(确定性可复现)
out = provider.chat([{"role": "user", "content": "hello"}])
print(out.choices[0].message.content)

# 隐私 trace:只记元数据;塞正文会被直接拒绝(raise TraceError)
sink = InProcessPrivacyTraceSink()
sink.emit("retrieve", count=3, took_ms=12)

# 任务队列:同步内联执行
q = FakeQueue()
jid = q.enqueue(lambda p: {"doubled": p["n"] * 2}, {"n": 21})
print(q.get(jid).result)                 # {'doubled': 42}

Metadata

Release files for hancore 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hancore 0.0.1
File Size Uploaded
hancore-0.0.1.tar.gz 32.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hancore 0.0.1
File Interpreter ABI Platform
hancore-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 52.9 kB

Release files / hancore-0.0.1.tar.gz

Download URL hancore-0.0.1.tar.gz
Size 32.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6296e26e889bc4f87e17ea0c1abaecf8b86b5aee0f44044d2827b4be60ec552c
BLAKE2b-256 checksum
How to use checksums
04b9270da101f61e49377c6ebc26fd0556f0cf5d524689ac613d0db6207bfec1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Release files / hancore-0.0.1-py3-none-any.whl

Download URL hancore-0.0.1-py3-none-any.whl
Size 20.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c8eab3d07b5263ecb9f2be9ac09ed3aeebcf90ee3a1c69561dd0846b8a765f50
BLAKE2b-256 checksum
How to use checksums
2657e212ddf6c2ca68494558e6ee397cb2e6b5d74a818a02792bd1bec2ff48a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page