pyquipu-spec 0.1.0__tar.gz

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.
Files changed (25) hide show
  1. pyquipu_spec-0.1.0/.gitignore +75 -0
  2. pyquipu_spec-0.1.0/PKG-INFO +18 -0
  3. pyquipu_spec-0.1.0/pyproject.toml +31 -0
  4. pyquipu_spec-0.1.0/src/quipu/__init__.py +3 -0
  5. pyquipu_spec-0.1.0/src/quipu/spec/__init__.py +0 -0
  6. pyquipu_spec-0.1.0/src/quipu/spec/constants.py +4 -0
  7. pyquipu_spec-0.1.0/src/quipu/spec/exceptions.py +14 -0
  8. pyquipu_spec-0.1.0/src/quipu/spec/exceptions.stitcher.yaml +8 -0
  9. pyquipu_spec-0.1.0/src/quipu/spec/models/__init__.py +0 -0
  10. pyquipu_spec-0.1.0/src/quipu/spec/models/execution.py +12 -0
  11. pyquipu_spec-0.1.0/src/quipu/spec/models/execution.stitcher.yaml +2 -0
  12. pyquipu_spec-0.1.0/src/quipu/spec/models/graph.py +32 -0
  13. pyquipu_spec-0.1.0/src/quipu/spec/models/graph.stitcher.yaml +2 -0
  14. pyquipu_spec-0.1.0/src/quipu/spec/protocols/__init__.py +0 -0
  15. pyquipu_spec-0.1.0/src/quipu/spec/protocols/engine.py +27 -0
  16. pyquipu_spec-0.1.0/src/quipu/spec/protocols/engine.stitcher.yaml +2 -0
  17. pyquipu_spec-0.1.0/src/quipu/spec/protocols/messaging.py +10 -0
  18. pyquipu_spec-0.1.0/src/quipu/spec/protocols/messaging.stitcher.yaml +2 -0
  19. pyquipu_spec-0.1.0/src/quipu/spec/protocols/parser.py +7 -0
  20. pyquipu_spec-0.1.0/src/quipu/spec/protocols/parser.stitcher.yaml +2 -0
  21. pyquipu_spec-0.1.0/src/quipu/spec/protocols/runtime.py +45 -0
  22. pyquipu_spec-0.1.0/src/quipu/spec/protocols/runtime.stitcher.yaml +8 -0
  23. pyquipu_spec-0.1.0/src/quipu/spec/protocols/storage.py +25 -0
  24. pyquipu_spec-0.1.0/src/quipu/spec/protocols/storage.stitcher.yaml +4 -0
  25. pyquipu_spec-0.1.0/stitcher.lock +203 -0
@@ -0,0 +1,75 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # tmpfiles
7
+ o.md
8
+ a.md
9
+ a
10
+ o
11
+ t
12
+ tmpfile
13
+
14
+ # Scaffoldings
15
+ context_builder.yml
16
+ context_builder.py
17
+ current_prompts
18
+
19
+ # Distribution / Packaging
20
+ .Python
21
+ build/
22
+ develop-eggs/
23
+ dist/
24
+ downloads/
25
+ eggs/
26
+ .eggs/
27
+ lib/
28
+ lib64/
29
+ parts/
30
+ sdist/
31
+ var/
32
+ wheels/
33
+ *.egg-info/
34
+ .installed.cfg
35
+ *.egg
36
+
37
+ # Virtual Environments
38
+ venv/
39
+ env/
40
+ .env
41
+ .venv/
42
+
43
+ # Testing
44
+ .tox/
45
+ .coverage
46
+ .coverage.*
47
+ .cache
48
+ nosetests.xml
49
+ coverage.xml
50
+ *.cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+
54
+ # IDEs
55
+ .idea/
56
+ .vscode/
57
+ *.swp
58
+ *.swo
59
+
60
+ # Project Specific
61
+ *.log
62
+ axon.log
63
+ # Ignore test vaults or scratchpads if created in root
64
+ vault/
65
+ temp/
66
+ scratch/
67
+ # --- Quipu Dev Infra ---
68
+ .envs/
69
+ .uv/
70
+ sandbox/
71
+ *.egg-info/
72
+ __pycache__/
73
+ .pytest_cache/
74
+ .coverage
75
+ htmlcov/
@@ -0,0 +1,18 @@
1
+ Metadata-Version: 2.4
2
+ Name: pyquipu-spec
3
+ Version: 0.1.0
4
+ Summary: The constitutional specifications and protocols for the Quipu ecosystem.
5
+ Project-URL: Homepage, https://github.com/quipu-dev/Quipu
6
+ Project-URL: Repository, https://github.com/quipu-dev/Quipu
7
+ Author-email: doucx <doucxldh@gmail.com>
8
+ License-Expression: Apache-2.0
9
+ Classifier: Development Status :: 3 - Alpha
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: OSI Approved :: Apache Software License
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
+ Classifier: Typing :: Typed
18
+ Requires-Python: >=3.10
@@ -0,0 +1,31 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "pyquipu-spec"
7
+ version = "0.1.0"
8
+ authors = [{ name="doucx", email="doucxldh@gmail.com" }]
9
+ description = "The constitutional specifications and protocols for the Quipu ecosystem."
10
+ requires-python = ">=3.10"
11
+ license = "Apache-2.0"
12
+ classifiers = [
13
+ "Development Status :: 3 - Alpha",
14
+ "Intended Audience :: Developers",
15
+ "License :: OSI Approved :: Apache Software License",
16
+ "Operating System :: OS Independent",
17
+ "Programming Language :: Python :: 3",
18
+ "Programming Language :: Python :: 3.10",
19
+ "Programming Language :: Python :: 3.11",
20
+ "Topic :: Software Development :: Libraries :: Python Modules",
21
+ "Typing :: Typed",
22
+ ]
23
+
24
+ dependencies = []
25
+
26
+ [project.urls]
27
+ Homepage = "https://github.com/quipu-dev/Quipu"
28
+ Repository = "https://github.com/quipu-dev/Quipu"
29
+
30
+ [tool.hatch.build.targets.wheel]
31
+ packages = ["src/quipu"]
@@ -0,0 +1,3 @@
1
+ # This allows this package to coexist with other distribution packages
2
+ # that contribute to the 'quipu' namespace.
3
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__)
File without changes
@@ -0,0 +1,4 @@
1
+ # Quipu 系统全局常量规范
2
+
3
+ # Git 空树的哈希值,作为所有历史图谱的绝对起点 (Genesis)
4
+ EMPTY_TREE_HASH = "4b825dc642cb6eb9a060e54bf8d69288fbee4904"
@@ -0,0 +1,14 @@
1
+ class AIFSOpsError(Exception):
2
+ pass
3
+
4
+
5
+ class ParseError(AIFSOpsError):
6
+ pass
7
+
8
+
9
+ class ExecutionError(AIFSOpsError):
10
+ pass
11
+
12
+
13
+ class OperationCancelledError(ExecutionError):
14
+ pass
@@ -0,0 +1,8 @@
1
+ AIFSOpsError: |-
2
+ Quipu 生态系统的基础异常类
3
+ ExecutionError: |-
4
+ Act 操作执行错误
5
+ OperationCancelledError: |-
6
+ 当用户取消一个需要确认的操作时引发
7
+ ParseError: |-
8
+ Markdown 或指令解析错误
File without changes
@@ -0,0 +1,12 @@
1
+ from dataclasses import dataclass, field
2
+ from typing import Any, Dict, Optional
3
+
4
+
5
+ @dataclass
6
+ class QuipuResult:
7
+ success: bool
8
+ exit_code: int
9
+ message: str = ""
10
+ data: Any = None
11
+ error: Optional[Exception] = None
12
+ msg_kwargs: Dict[str, Any] = field(default_factory=dict)
@@ -0,0 +1,2 @@
1
+ QuipuResult: |-
2
+ Quipu 业务逻辑执行结果的标准容器
@@ -0,0 +1,32 @@
1
+ from __future__ import annotations
2
+ import dataclasses
3
+ from datetime import datetime
4
+ from pathlib import Path
5
+ from typing import List, Optional
6
+
7
+
8
+ @dataclasses.dataclass
9
+ class QuipuNode:
10
+ commit_hash: str
11
+ output_tree: str
12
+ input_tree: str
13
+ timestamp: datetime
14
+ filename: Path
15
+ node_type: str # "plan" | "capture"
16
+ content: str = ""
17
+ summary: str = ""
18
+ owner_id: Optional[str] = None
19
+
20
+ # 图遍历字段(由加载器填充)
21
+ parent: Optional[QuipuNode] = None
22
+ children: List[QuipuNode] = dataclasses.field(default_factory=list)
23
+
24
+ @property
25
+ def short_hash(self) -> str:
26
+ return self.output_tree[:7]
27
+
28
+ @property
29
+ def siblings(self) -> List[QuipuNode]:
30
+ if not self.parent:
31
+ return [self]
32
+ return self.parent.children
@@ -0,0 +1,2 @@
1
+ QuipuNode: |-
2
+ 表示 Quipu 历史图谱中的一个节点(DTO)
@@ -0,0 +1,27 @@
1
+ from typing import Protocol, Dict, Optional, List, runtime_checkable
2
+ from pathlib import Path
3
+ from ..models.graph import QuipuNode
4
+ from .storage import HistoryReader, HistoryWriter
5
+
6
+
7
+ @runtime_checkable
8
+ class QuipuEngine(Protocol):
9
+ root_dir: Path
10
+ reader: HistoryReader
11
+ writer: HistoryWriter
12
+ history_graph: Dict[str, QuipuNode]
13
+ current_node: Optional[QuipuNode]
14
+
15
+ def align(self) -> str: ...
16
+ def visit(self, target_hash: str) -> None: ...
17
+ def capture_drift(self, current_hash: str, message: Optional[str] = None) -> QuipuNode: ...
18
+ def create_plan_node(
19
+ self, input_tree: str, output_tree: str, plan_content: str, summary_override: Optional[str] = None
20
+ ) -> QuipuNode: ...
21
+ def checkout(self, target_hash: str) -> None: ...
22
+ def back(self) -> Optional[str]: ...
23
+ def forward(self) -> Optional[str]: ...
24
+ def find_nodes(
25
+ self, summary_regex: Optional[str] = None, node_type: Optional[str] = None, limit: int = 10
26
+ ) -> List[QuipuNode]: ...
27
+ def close(self) -> None: ...
@@ -0,0 +1,2 @@
1
+ QuipuEngine: |-
2
+ 定义 Quipu 状态引擎的核心行为契约
@@ -0,0 +1,10 @@
1
+ from typing import Protocol, runtime_checkable
2
+
3
+
4
+ @runtime_checkable
5
+ class Renderer(Protocol):
6
+ def success(self, message: str) -> None: ...
7
+ def info(self, message: str) -> None: ...
8
+ def warning(self, message: str) -> None: ...
9
+ def error(self, message: str) -> None: ...
10
+ def data(self, data_string: str) -> None: ...
@@ -0,0 +1,2 @@
1
+ Renderer: |-
2
+ 定义消息渲染器的行为契约
@@ -0,0 +1,7 @@
1
+ from typing import Protocol, List, runtime_checkable
2
+ from .runtime import Statement
3
+
4
+
5
+ @runtime_checkable
6
+ class PlanParser(Protocol):
7
+ def parse(self, text: str) -> List[Statement]: ...
@@ -0,0 +1,2 @@
1
+ PlanParser: |-
2
+ 定义 Plan 文件解析器的行为契约
@@ -0,0 +1,45 @@
1
+ from __future__ import annotations
2
+ from pathlib import Path
3
+ from typing import Protocol, List, Callable, runtime_checkable, TypedDict
4
+ from ..exceptions import ExecutionError
5
+
6
+
7
+ @runtime_checkable
8
+ class ExecutorProtocol(Protocol):
9
+ @property
10
+ def root_dir(self) -> Path: ...
11
+ def resolve_path(self, rel_path: str) -> Path: ...
12
+ def request_confirmation(self, file_path: Path, old_content: str, new_content: str) -> bool: ...
13
+
14
+
15
+ class ActContext:
16
+ def __init__(self, executor: ExecutorProtocol):
17
+ self._executor = executor
18
+
19
+ @property
20
+ def root_dir(self) -> Path:
21
+ return self._executor.root_dir
22
+
23
+ def resolve_path(self, rel_path: str) -> Path:
24
+ return self._executor.resolve_path(rel_path)
25
+
26
+ def request_confirmation(self, file_path: Path, old_content: str, new_content: str) -> bool:
27
+ return self._executor.request_confirmation(file_path, old_content, new_content)
28
+
29
+ def fail(self, message: str):
30
+ raise ExecutionError(message)
31
+
32
+
33
+ # --- Runtime Type Definitions ---
34
+
35
+
36
+ class Statement(TypedDict):
37
+ act: str
38
+ contexts: List[str]
39
+
40
+
41
+ # Act 函数签名定义: (context, args) -> None
42
+ ActFunction = Callable[[ActContext, List[str]], None]
43
+
44
+ # Summarizer 函数签名定义: (args, context_blocks) -> str
45
+ Summarizer = Callable[[List[str], List[str]], str]
@@ -0,0 +1,8 @@
1
+ ActContext: |-
2
+ 提供给插件函数的上下文 API。
3
+
4
+ 它是插件与 ExecutorProtocol 之间的稳定接口。
5
+ ExecutorProtocol: |-
6
+ 定义执行器的核心能力契约
7
+ Statement: |-
8
+ 表示解析后的单个操作语句
@@ -0,0 +1,25 @@
1
+ from typing import Protocol, List, Dict, Optional, Set, Any, runtime_checkable
2
+ from ..models.graph import QuipuNode
3
+
4
+
5
+ @runtime_checkable
6
+ class HistoryReader(Protocol):
7
+ def load_all_nodes(self) -> List[QuipuNode]: ...
8
+ def get_node_content(self, node: QuipuNode) -> str: ...
9
+ def get_node_blobs(self, commit_hash: str) -> Dict[str, bytes]: ...
10
+ def find_nodes(
11
+ self, summary_regex: Optional[str] = None, node_type: Optional[str] = None, limit: int = 10
12
+ ) -> List[QuipuNode]: ...
13
+ def get_node_count(self) -> int: ...
14
+ def load_nodes_paginated(self, limit: int, offset: int) -> List[QuipuNode]: ...
15
+ def get_ancestor_output_trees(self, start_output_tree_hash: str) -> Set[str]: ...
16
+ def get_private_data(self, node_commit_hash: str) -> Optional[str]: ...
17
+ def get_descendant_output_trees(self, start_output_tree_hash: str) -> Set[str]: ...
18
+ def get_node_position(self, output_tree_hash: str) -> int: ...
19
+
20
+
21
+ @runtime_checkable
22
+ class HistoryWriter(Protocol):
23
+ def create_node(
24
+ self, node_type: str, input_tree: str, output_tree: str, content: str, **kwargs: Any
25
+ ) -> QuipuNode: ...
@@ -0,0 +1,4 @@
1
+ HistoryReader: |-
2
+ 定义从存储后端读取历史图谱的行为契约
3
+ HistoryWriter: |-
4
+ 定义向历史存储后端写入新节点的行为契约
@@ -0,0 +1,203 @@
1
+ {
2
+ "fingerprints": {
3
+ "py://packages/pyquipu-spec/src/quipu/spec/exceptions.py#AIFSOpsError": {
4
+ "baseline_code_signature_text": "class AIFSOpsError(Exception):",
5
+ "baseline_code_structure_hash": "fc5a372aeb969f843698f3493aa2bbc8413b4488b3724476302ce75d35ac0d81",
6
+ "baseline_yaml_content_hash": "3245641438af8cc0aa61938b811047fa2ff793959293fb9afbd3419480064a33"
7
+ },
8
+ "py://packages/pyquipu-spec/src/quipu/spec/exceptions.py#ExecutionError": {
9
+ "baseline_code_signature_text": "class ExecutionError(AIFSOpsError):",
10
+ "baseline_code_structure_hash": "4baa72bc61c1156d30b52ef5718ef7aa16746e13bc93fc24f9bb8fe89020a18d",
11
+ "baseline_yaml_content_hash": "f24a55592d50ea1cd068a6c63d24990c099e370cc88dd37ebae2000bcc6d494e"
12
+ },
13
+ "py://packages/pyquipu-spec/src/quipu/spec/exceptions.py#OperationCancelledError": {
14
+ "baseline_code_signature_text": "class OperationCancelledError(ExecutionError):",
15
+ "baseline_code_structure_hash": "6b6f2855825ce5c170266021f9651c88c44e78c976576e92f0e136439f9fb265",
16
+ "baseline_yaml_content_hash": "40ac817483d7f36965450fcfb0979b9e1fe35d8418a1b9d470655782da2d91be"
17
+ },
18
+ "py://packages/pyquipu-spec/src/quipu/spec/exceptions.py#ParseError": {
19
+ "baseline_code_signature_text": "class ParseError(AIFSOpsError):",
20
+ "baseline_code_structure_hash": "c53679185cfd1e86925b3f794c283f62c133f1169fce4ba5359ea6a329233eaa",
21
+ "baseline_yaml_content_hash": "0e5e2927b8793764757b06dcf6d809ff1524c7088b1c28aefa5a55b69026a7f8"
22
+ },
23
+ "py://packages/pyquipu-spec/src/quipu/spec/models/execution.py#QuipuResult": {
24
+ "baseline_code_signature_text": "class QuipuResult:",
25
+ "baseline_code_structure_hash": "06b50f4dedf8b7dcddee0ed040535cd004e63102bb6082ec803891200e84f50a",
26
+ "baseline_yaml_content_hash": "d4a607c76c74ba666a0cc713186d78f5c7984e6967d43e9a65a5a2b3f866a723"
27
+ },
28
+ "py://packages/pyquipu-spec/src/quipu/spec/models/graph.py#QuipuNode": {
29
+ "baseline_code_signature_text": "class QuipuNode:",
30
+ "baseline_code_structure_hash": "5fe448b7c1b35c0ac2fbb70cdbdfb63d81a1ccfd8b2976512ca7dff5bfeccb58",
31
+ "baseline_yaml_content_hash": "0a104488ff08e05df2ce18abde8f30b3e7c365996a210c02f99c2c94f7daabfa"
32
+ },
33
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/engine.py#QuipuEngine": {
34
+ "baseline_code_signature_text": "class QuipuEngine(Protocol):",
35
+ "baseline_code_structure_hash": "e27cc52ef3c1bfc958d700e567fd0529204de368ff314349ce8b38af02464b3c",
36
+ "baseline_yaml_content_hash": "90a8bab6a3c92ecc639ce41d990d49f8f6dfd0005c22be0cc1f925c2e57717c5"
37
+ },
38
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/engine.py#QuipuEngine.align": {
39
+ "baseline_code_signature_text": "def align(self) -> str:",
40
+ "baseline_code_structure_hash": "ca024696817bc79db5069e2e16d7d503f5c7187d13ecc10f5e571df4e3670ddd"
41
+ },
42
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/engine.py#QuipuEngine.back": {
43
+ "baseline_code_signature_text": "def back(self) -> Optional[str]:",
44
+ "baseline_code_structure_hash": "a7748b7fc946b8eb824e020a87aa0c57ce9228f36f2bfea46eae4e36acc5a368"
45
+ },
46
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/engine.py#QuipuEngine.capture_drift": {
47
+ "baseline_code_signature_text": "def capture_drift(self, current_hash: str, message: Optional[str] = None) -> QuipuNode:",
48
+ "baseline_code_structure_hash": "d4756168f9df0f9c1e09da7cd742ce1442c7cf4e4ffba883161ab492798eb903"
49
+ },
50
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/engine.py#QuipuEngine.checkout": {
51
+ "baseline_code_signature_text": "def checkout(self, target_hash: str) -> None:",
52
+ "baseline_code_structure_hash": "ba0395f6a2fcb87f0a8fc64eac5649905d7b4312c20934596e6f363202bb5f9f"
53
+ },
54
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/engine.py#QuipuEngine.close": {
55
+ "baseline_code_signature_text": "def close(self) -> None:",
56
+ "baseline_code_structure_hash": "448a81ea26422a473726844413387f1a9caae2b00fb595913c94c1bad3e387a7"
57
+ },
58
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/engine.py#QuipuEngine.create_plan_node": {
59
+ "baseline_code_signature_text": "def create_plan_node(self, input_tree: str, output_tree: str, plan_content: str, summary_override: Optional[str] = None) -> QuipuNode:",
60
+ "baseline_code_structure_hash": "54a7940fb7f43ac7495fdbde9c1f62b7befd3a341f3c23d6917c3cbfa9d22cd5"
61
+ },
62
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/engine.py#QuipuEngine.find_nodes": {
63
+ "baseline_code_signature_text": "def find_nodes(self, summary_regex: Optional[str] = None, node_type: Optional[str] = None, limit: int = 10) -> List[QuipuNode]:",
64
+ "baseline_code_structure_hash": "3d04cb357877311ed8d37041f5ad5d0f322ed4105e52f5b88cfd40b6f110f6cc"
65
+ },
66
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/engine.py#QuipuEngine.forward": {
67
+ "baseline_code_signature_text": "def forward(self) -> Optional[str]:",
68
+ "baseline_code_structure_hash": "dc27f9b55154bebc01529f9ea3b0e1ae8e57be3dfeebc5e1bf291caa3aa73ee9"
69
+ },
70
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/engine.py#QuipuEngine.visit": {
71
+ "baseline_code_signature_text": "def visit(self, target_hash: str) -> None:",
72
+ "baseline_code_structure_hash": "00e303c1d2d4e189968576ae68fec363919d576a7bbf0ffd61e434a73cb32ca0"
73
+ },
74
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/messaging.py#Renderer": {
75
+ "baseline_code_signature_text": "class Renderer(Protocol):",
76
+ "baseline_code_structure_hash": "8342694db8d308b36ba5d1ecf2dc07bba1460712ac3a9a9438c5abba24852b3d",
77
+ "baseline_yaml_content_hash": "b5559e5e5454686dd205a6a527f55c70fd458fd9fc661fe1bb5970418663d7eb"
78
+ },
79
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/messaging.py#Renderer.data": {
80
+ "baseline_code_signature_text": "def data(self, data_string: str) -> None:",
81
+ "baseline_code_structure_hash": "e24670692edbaa5b2b5efeb813dbb1f8c58794e5f10e72f7b92f5ee5d18f505c"
82
+ },
83
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/messaging.py#Renderer.error": {
84
+ "baseline_code_signature_text": "def error(self, message: str) -> None:",
85
+ "baseline_code_structure_hash": "2cd45ec5cc7b5fb349714653e4b1c9f36712fc8adf7a7ef9e1eb8774b61e7f4c"
86
+ },
87
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/messaging.py#Renderer.info": {
88
+ "baseline_code_signature_text": "def info(self, message: str) -> None:",
89
+ "baseline_code_structure_hash": "74013f04bbff01b4572176f4cdac1721665fcad57786891db1ea372e5ce7de3b"
90
+ },
91
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/messaging.py#Renderer.success": {
92
+ "baseline_code_signature_text": "def success(self, message: str) -> None:",
93
+ "baseline_code_structure_hash": "17cccbfacd9894cee2db64164628e166abec8d66b260be2492fa5a812ad9d615"
94
+ },
95
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/messaging.py#Renderer.warning": {
96
+ "baseline_code_signature_text": "def warning(self, message: str) -> None:",
97
+ "baseline_code_structure_hash": "122aef289ffd46f5b55b51ddb08da50008b03914266298a8a491fe22cbdaabe4"
98
+ },
99
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/parser.py#PlanParser": {
100
+ "baseline_code_signature_text": "class PlanParser(Protocol):",
101
+ "baseline_code_structure_hash": "f6e7e0b1506b088368f020fd72b96b9ace617e4f9a02eb4c513e6a2c375cbfca",
102
+ "baseline_yaml_content_hash": "1fd3fc5addd4bd1a9e6f8b839b574d143003d974972fcf069ff8d7a5c562edfd"
103
+ },
104
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/parser.py#PlanParser.parse": {
105
+ "baseline_code_signature_text": "def parse(self, text: str) -> List[Statement]:",
106
+ "baseline_code_structure_hash": "707b6f06d9e47b672e6523beff9a1e7699ff5ad4f4c930ad4aa87c75b18fbd7f"
107
+ },
108
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/runtime.py#ActContext": {
109
+ "baseline_code_signature_text": "class ActContext:",
110
+ "baseline_code_structure_hash": "59a96b50a86285ea69756266a316ce62a8181101f51429907fa666ae5395f058",
111
+ "baseline_yaml_content_hash": "09d4e02b8db12698b3d87b51752bf82c4bc9e988caa5c486801a885cabf2f464"
112
+ },
113
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/runtime.py#ActContext.__init__": {
114
+ "baseline_code_signature_text": "def __init__(self, executor: ExecutorProtocol):",
115
+ "baseline_code_structure_hash": "e1b93ee725aa5ee39941887fb26b49732a7a8f61df0b77926daeda9129a29b32"
116
+ },
117
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/runtime.py#ActContext.fail": {
118
+ "baseline_code_signature_text": "def fail(self, message: str):",
119
+ "baseline_code_structure_hash": "958e2673564bee10478978290bfc40000240b95caeda5960ba5ab3f021fde407"
120
+ },
121
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/runtime.py#ActContext.request_confirmation": {
122
+ "baseline_code_signature_text": "def request_confirmation(self, file_path: Path, old_content: str, new_content: str) -> bool:",
123
+ "baseline_code_structure_hash": "308ac488c4d05a8380d8910726f80f5b8037609442117aefbf79db0737ed1831"
124
+ },
125
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/runtime.py#ActContext.resolve_path": {
126
+ "baseline_code_signature_text": "def resolve_path(self, rel_path: str) -> Path:",
127
+ "baseline_code_structure_hash": "72f5dd33f74cb5de3c3603b501ffd27c15a1aa7ad04c772be50667efef35f981"
128
+ },
129
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/runtime.py#ExecutorProtocol": {
130
+ "baseline_code_signature_text": "class ExecutorProtocol(Protocol):",
131
+ "baseline_code_structure_hash": "5ba8feddbb90925be658fe1a55a0fcca2a2067850b995da8a15bd3f327af9910",
132
+ "baseline_yaml_content_hash": "c265feb8cdf711f4a009e3a054c6d9b9e1cac38ca22db5431cacab79130a77b5"
133
+ },
134
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/runtime.py#ExecutorProtocol.request_confirmation": {
135
+ "baseline_code_signature_text": "def request_confirmation(self, file_path: Path, old_content: str, new_content: str) -> bool:",
136
+ "baseline_code_structure_hash": "308ac488c4d05a8380d8910726f80f5b8037609442117aefbf79db0737ed1831"
137
+ },
138
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/runtime.py#ExecutorProtocol.resolve_path": {
139
+ "baseline_code_signature_text": "def resolve_path(self, rel_path: str) -> Path:",
140
+ "baseline_code_structure_hash": "72f5dd33f74cb5de3c3603b501ffd27c15a1aa7ad04c772be50667efef35f981"
141
+ },
142
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/runtime.py#Statement": {
143
+ "baseline_code_signature_text": "class Statement(TypedDict):",
144
+ "baseline_code_structure_hash": "a71a6d36d5b816cfe96b1b76cc1eb0f218a04eea3080823362237ea3de4ff3d0",
145
+ "baseline_yaml_content_hash": "617d059dce0d2b84285f00ed8eabdd9d9e88d5529b7528b747a13c60d70f1787"
146
+ },
147
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryReader": {
148
+ "baseline_code_signature_text": "class HistoryReader(Protocol):",
149
+ "baseline_code_structure_hash": "3ce92e99b1a40f6db0b4198af11310d36f37a101133c16b1d695493411282ad2",
150
+ "baseline_yaml_content_hash": "368ba6f89cf6384287d88bae6db4504c4c9e54be888685b16083b875c4cfc25e"
151
+ },
152
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryReader.find_nodes": {
153
+ "baseline_code_signature_text": "def find_nodes(self, summary_regex: Optional[str] = None, node_type: Optional[str] = None, limit: int = 10) -> List[QuipuNode]:",
154
+ "baseline_code_structure_hash": "3d04cb357877311ed8d37041f5ad5d0f322ed4105e52f5b88cfd40b6f110f6cc"
155
+ },
156
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryReader.get_ancestor_output_trees": {
157
+ "baseline_code_signature_text": "def get_ancestor_output_trees(self, start_output_tree_hash: str) -> Set[str]:",
158
+ "baseline_code_structure_hash": "5ae091ca177977fc323d5563cb7f0c6e7af44ac50237f951d24c9793c2336220"
159
+ },
160
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryReader.get_descendant_output_trees": {
161
+ "baseline_code_signature_text": "def get_descendant_output_trees(self, start_output_tree_hash: str) -> Set[str]:",
162
+ "baseline_code_structure_hash": "8eb09e56e11e9534720ef7286af9a75507b606322ada07811813f6b3278f5edd"
163
+ },
164
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryReader.get_node_blobs": {
165
+ "baseline_code_signature_text": "def get_node_blobs(self, commit_hash: str) -> Dict[str, bytes]:",
166
+ "baseline_code_structure_hash": "48acf7a37a5612c09d5062797e966133a5c15ba17d05e10407be3235bb076f3d"
167
+ },
168
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryReader.get_node_content": {
169
+ "baseline_code_signature_text": "def get_node_content(self, node: QuipuNode) -> str:",
170
+ "baseline_code_structure_hash": "72fb728d5fb5468b523a77045d87750229fb34202f36e0bfe8861de1ab999ed8"
171
+ },
172
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryReader.get_node_count": {
173
+ "baseline_code_signature_text": "def get_node_count(self) -> int:",
174
+ "baseline_code_structure_hash": "f248a486494c998cc0f98482e50a5e3292f3132d247377d5088251762489517e"
175
+ },
176
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryReader.get_node_position": {
177
+ "baseline_code_signature_text": "def get_node_position(self, output_tree_hash: str) -> int:",
178
+ "baseline_code_structure_hash": "eeb815e029cbffaf43c5365481a21a4251ca6fb30632886a63a5716104041b0e"
179
+ },
180
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryReader.get_private_data": {
181
+ "baseline_code_signature_text": "def get_private_data(self, node_commit_hash: str) -> Optional[str]:",
182
+ "baseline_code_structure_hash": "b03c5152ce31de33095b38682a69df3dcfcd6551fd2d0e5109137fb9a8e6a772"
183
+ },
184
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryReader.load_all_nodes": {
185
+ "baseline_code_signature_text": "def load_all_nodes(self) -> List[QuipuNode]:",
186
+ "baseline_code_structure_hash": "860f1b0ce953562bf9798d8e0e7a6d05c0aada817fc5e88689012cb45876f7be"
187
+ },
188
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryReader.load_nodes_paginated": {
189
+ "baseline_code_signature_text": "def load_nodes_paginated(self, limit: int, offset: int) -> List[QuipuNode]:",
190
+ "baseline_code_structure_hash": "cf4d892bf90a00fa3f083ef8e4bb292b58bf36a417cf53e04002657744c0022e"
191
+ },
192
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryWriter": {
193
+ "baseline_code_signature_text": "class HistoryWriter(Protocol):",
194
+ "baseline_code_structure_hash": "740981829e9176f53f5b3009c22bed5ac51dbacc64df70ffe3dcf2e19b74bb07",
195
+ "baseline_yaml_content_hash": "a64382b70e78938181dd8dcb30eeb0300d71d9443d85bc50ef4729e69ce2b6c6"
196
+ },
197
+ "py://packages/pyquipu-spec/src/quipu/spec/protocols/storage.py#HistoryWriter.create_node": {
198
+ "baseline_code_signature_text": "def create_node(self, node_type: str, input_tree: str, output_tree: str, content: str, **kwargs: Any = {}) -> QuipuNode:",
199
+ "baseline_code_structure_hash": "f04bb8222f7e248eae151188752d560054da0331a6605ee0e8b2938943348a8d"
200
+ }
201
+ },
202
+ "version": "1.0"
203
+ }