fabricatio 0.3.13__tar.gz → 0.3.14.dev0__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.
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/PKG-INFO +1 -1
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/minor/hello_fabricatio.py +4 -3
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/pyproject.toml +1 -1
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/__init__.py +2 -7
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/action.py +6 -21
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/generic.py +2 -1
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/kwargs_types.py +1 -46
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/role.py +42 -24
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/utils.py +38 -4
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/src/event.rs +35 -34
- fabricatio-0.3.14.dev0/templates.tar.gz +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/uv.lock +10 -10
- fabricatio-0.3.13/templates.tar.gz +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/.github/workflows/build-package.yaml +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/.github/workflows/ruff.yaml +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/.github/workflows/tests.yaml +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/.gitignore +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/.python-version +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/Cargo.lock +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/Cargo.toml +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/LICENSE +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/Makefile +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/README.md +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/correct/correct.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/correct/correct_loop.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/extract_and_inject/.gitignore +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/extract_and_inject/article_rag.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/extract_and_inject/ask.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/extract_and_inject/chunk_article.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/extract_and_inject/extract_and_inject.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/extract_article/extract.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/llm_usages/llm_usage.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/make_a_rating/rating.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/make_diary/commits.json +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/make_diary/diary.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/minor/write_a_poem.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/propose_task/.gitignore +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/propose_task/propose.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/reviewer/censor.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/reviewer/review.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/rules/.gitignore +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/rules/draft_ruleset.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/search_bibtex/.gitignore +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/search_bibtex/search.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/simple_chat/chat.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/simple_rag/simple_rag.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/task_handle/handle_task.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/write_article/.gitignore +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/write_article/article_rag.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/write_article/post_process.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/write_article/write_article.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/write_outline/.gitignore +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/write_outline/write_outline.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/write_outline/write_outline_corrected.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/actions/__init__.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/actions/article.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/actions/article_rag.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/actions/fs.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/actions/output.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/actions/rag.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/actions/rules.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/__init__.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/advanced_judge.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/advanced_rag.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/censor.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/check.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/correct.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/extract.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/propose.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/rag.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/rating.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/review.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/task.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/core.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/decorators.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/fs/__init__.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/fs/curd.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/fs/readers.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/journal.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/adv_kwargs_types.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/__init__.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/advanced_judge.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/aricle_rag.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/article_base.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/article_essence.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/article_main.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/article_outline.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/article_proposal.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/patches.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/problem.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/rag.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/rule.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/task.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/tool.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/usages.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/parser.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/py.typed +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/rust.pyi +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/toolboxes/__init__.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/toolboxes/arithmetic.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/toolboxes/fs.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/workflows/__init__.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/workflows/articles.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/workflows/rag.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/src/bib_tools.rs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/src/config.rs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/src/hash.rs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/src/hbs_helpers.rs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/src/language.rs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/src/lib.rs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/src/macro_utils/Cargo.toml +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/src/macro_utils/src/lib.rs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/src/templates.rs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/src/typst_tools.rs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/src/word_split.rs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/as_prompt.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/binary-exploitation-ctf-solver.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/chap_summary.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/check_string.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/claude-xml.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/clean-up-code.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/co_validation.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/create_json_obj.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/cryptography-ctf-solver.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/dependencies.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/document-the-code.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/draft_rating_criteria.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/draft_rating_manual.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/draft_rating_weights_klee.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/draft_tool_usage_code.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/extract.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/extract_criteria_from_reasons.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/extract_reasons_from_examples.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/find-security-vulnerabilities.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/fix-bugs.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/fix_troubled_obj.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/fix_troubled_string.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/generic_string.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/improve-performance.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/liststr.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/make_choice.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/make_judgment.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/pathstr.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/rate_fine_grind.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/refactor.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/refined_query.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/retrieved_display.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/reverse-engineering-ctf-solver.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/review_string.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/rule_requirement.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/ruleset_requirement_breakdown.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/task_briefing.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/web-ctf-solver.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/write-git-commit.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/write-github-pull-request.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/write-github-readme.hbs +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/tests/test_config.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/tests/test_models/test_action.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/tests/test_models/test_advanced.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/tests/test_models/test_generic.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/tests/test_models/test_problem.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/tests/test_models/test_role.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/tests/test_models/test_task.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/tests/test_models/test_tool.py +0 -0
- {fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/tests/test_models/test_usages.py +0 -0
@@ -3,7 +3,7 @@
|
|
3
3
|
import asyncio
|
4
4
|
from typing import Any
|
5
5
|
|
6
|
-
from fabricatio import Action, Role, Task, WorkFlow, logger
|
6
|
+
from fabricatio import Action, Role, Task, WorkFlow, logger, Event
|
7
7
|
|
8
8
|
task = Task(name="say hello")
|
9
9
|
|
@@ -21,9 +21,10 @@ class Hello(Action):
|
|
21
21
|
|
22
22
|
async def main() -> None:
|
23
23
|
"""Main function."""
|
24
|
-
Role(name="talker", description="talker role",
|
24
|
+
Role(name="talker", description="talker role",
|
25
|
+
registry={Event.quick_instantiate("talk"): WorkFlow(name="talk", steps=(Hello,))})
|
25
26
|
|
26
|
-
logger.success(f"Result: {await task.delegate()}")
|
27
|
+
logger.success(f"Result: {await task.delegate("talk")}")
|
27
28
|
|
28
29
|
|
29
30
|
if __name__ == "__main__":
|
@@ -3,32 +3,27 @@
|
|
3
3
|
from fabricatio.rust import CONFIG, TEMPLATE_MANAGER, BibManager, Event
|
4
4
|
|
5
5
|
from fabricatio import actions, capabilities, toolboxes, workflows
|
6
|
-
from fabricatio
|
6
|
+
from fabricatio import parser
|
7
7
|
from fabricatio.journal import logger
|
8
8
|
from fabricatio.models import extra
|
9
9
|
from fabricatio.models.action import Action, WorkFlow
|
10
10
|
from fabricatio.models.role import Role
|
11
11
|
from fabricatio.models.task import Task
|
12
12
|
from fabricatio.models.tool import ToolBox
|
13
|
-
from fabricatio.parser import Capture, GenericCapture, JsonCapture, PythonCapture
|
14
13
|
|
15
14
|
__all__ = [
|
16
15
|
"CONFIG",
|
17
16
|
"TEMPLATE_MANAGER",
|
18
17
|
"Action",
|
19
18
|
"BibManager",
|
20
|
-
"
|
19
|
+
"parser",
|
21
20
|
"Event",
|
22
|
-
"GenericCapture",
|
23
|
-
"JsonCapture",
|
24
|
-
"PythonCapture",
|
25
21
|
"Role",
|
26
22
|
"Task",
|
27
23
|
"ToolBox",
|
28
24
|
"WorkFlow",
|
29
25
|
"actions",
|
30
26
|
"capabilities",
|
31
|
-
"env",
|
32
27
|
"extra",
|
33
28
|
"logger",
|
34
29
|
"toolboxes",
|
@@ -12,14 +12,13 @@ Classes:
|
|
12
12
|
import traceback
|
13
13
|
from abc import abstractmethod
|
14
14
|
from asyncio import Queue, create_task
|
15
|
-
from typing import Any, ClassVar, Dict, Self, Sequence, Tuple, Type, Union, final
|
15
|
+
from typing import Any, ClassVar, Dict, Self, Sequence, Tuple, Type, Union, final, Generator
|
16
16
|
|
17
17
|
from pydantic import Field, PrivateAttr
|
18
18
|
|
19
19
|
from fabricatio.journal import logger
|
20
20
|
from fabricatio.models.generic import WithBriefing
|
21
21
|
from fabricatio.models.task import Task
|
22
|
-
from fabricatio.models.usages import ToolBoxUsage
|
23
22
|
from fabricatio.utils import override_kwargs
|
24
23
|
|
25
24
|
OUTPUT_KEY = "task_output"
|
@@ -106,7 +105,7 @@ class Action(WithBriefing):
|
|
106
105
|
return self
|
107
106
|
|
108
107
|
|
109
|
-
class WorkFlow(WithBriefing
|
108
|
+
class WorkFlow(WithBriefing):
|
110
109
|
"""Manages sequences of actions to fulfill tasks.
|
111
110
|
|
112
111
|
Handles context propagation between actions, error handling, and task lifecycle
|
@@ -148,6 +147,10 @@ class WorkFlow(WithBriefing, ToolBoxUsage):
|
|
148
147
|
# Convert any action classes to instances
|
149
148
|
self._instances = tuple(step if isinstance(step, Action) else step() for step in self.steps)
|
150
149
|
|
150
|
+
def iter_actions(self) -> Generator[Action, None, None]:
|
151
|
+
"""Iterate over action instances."""
|
152
|
+
yield from self._instances
|
153
|
+
|
151
154
|
def inject_personality(self, personality: str) -> Self:
|
152
155
|
"""Set personality for actions without existing personality.
|
153
156
|
|
@@ -249,24 +252,6 @@ class WorkFlow(WithBriefing, ToolBoxUsage):
|
|
249
252
|
|
250
253
|
await self._context.put({self.task_input_key: task, **ctx})
|
251
254
|
|
252
|
-
def steps_fallback_to_self(self) -> Self:
|
253
|
-
"""Configure all steps to use this workflow's configuration as fallback.
|
254
|
-
|
255
|
-
Returns:
|
256
|
-
Self: The workflow instance for method chaining.
|
257
|
-
"""
|
258
|
-
self.hold_to(self._instances)
|
259
|
-
return self
|
260
|
-
|
261
|
-
def steps_supply_tools_from_self(self) -> Self:
|
262
|
-
"""Provide this workflow's tools to all steps in the workflow.
|
263
|
-
|
264
|
-
Returns:
|
265
|
-
Self: The workflow instance for method chaining.
|
266
|
-
"""
|
267
|
-
self.provide_tools_to(i for i in self._instances if isinstance(i, ToolBoxUsage))
|
268
|
-
return self
|
269
|
-
|
270
255
|
def update_init_context(self, /, **kwargs) -> Self:
|
271
256
|
"""Update the initial context with additional key-value pairs.
|
272
257
|
|
@@ -7,7 +7,6 @@ from typing import Any, Callable, Dict, Iterable, List, Mapping, Optional, Self,
|
|
7
7
|
|
8
8
|
import ujson
|
9
9
|
from fabricatio.rust import CONFIG, TEMPLATE_MANAGER, blake3_hash, detect_language
|
10
|
-
from litellm.utils import token_counter
|
11
10
|
from pydantic import (
|
12
11
|
BaseModel,
|
13
12
|
ConfigDict,
|
@@ -666,6 +665,8 @@ class Vectorizable:
|
|
666
665
|
Raises:
|
667
666
|
ValueError: If the chunk exceeds the maximum sequence length.
|
668
667
|
"""
|
668
|
+
from litellm.utils import token_counter
|
669
|
+
|
669
670
|
max_length = max_length or CONFIG.embedding.max_sequence_length
|
670
671
|
chunk = self._prepare_vectorization_inner()
|
671
672
|
if max_length and (length := token_counter(text=chunk)) > max_length:
|
@@ -1,9 +1,6 @@
|
|
1
1
|
"""This module contains the types for the keyword arguments of the methods in the models module."""
|
2
2
|
|
3
|
-
from typing import
|
4
|
-
|
5
|
-
from litellm.caching.caching import CacheMode
|
6
|
-
from litellm.types.caching import CachingSupportedCallTypes
|
3
|
+
from typing import Dict, List, Literal, NotRequired, Optional, Required, TypedDict
|
7
4
|
|
8
5
|
|
9
6
|
class ChunkKwargs(TypedDict):
|
@@ -70,7 +67,6 @@ class ValidateKwargs[T](GenerateKwargs, total=False):
|
|
70
67
|
max_validations: int
|
71
68
|
|
72
69
|
|
73
|
-
|
74
70
|
class CompositeScoreKwargs(ValidateKwargs[List[Dict[str, float]]], total=False):
|
75
71
|
"""Arguments for composite score generation operations.
|
76
72
|
|
@@ -125,47 +121,6 @@ class ChooseKwargs[T](ValidateKwargs[T], total=False):
|
|
125
121
|
k: int
|
126
122
|
|
127
123
|
|
128
|
-
class CacheKwargs(TypedDict, total=False):
|
129
|
-
"""Configuration parameters for the caching system.
|
130
|
-
|
131
|
-
These arguments control the behavior of various caching backends,
|
132
|
-
including in-memory, Redis, S3, and vector database caching options.
|
133
|
-
"""
|
134
|
-
|
135
|
-
mode: CacheMode # when default_on cache is always on, when default_off cache is opt in
|
136
|
-
host: str
|
137
|
-
port: str
|
138
|
-
password: str
|
139
|
-
namespace: str
|
140
|
-
ttl: float
|
141
|
-
default_in_memory_ttl: float
|
142
|
-
default_in_redis_ttl: float
|
143
|
-
similarity_threshold: float
|
144
|
-
supported_call_types: list[CachingSupportedCallTypes]
|
145
|
-
# s3 Bucket, boto3 configuration
|
146
|
-
s3_bucket_name: str
|
147
|
-
s3_region_name: str
|
148
|
-
s3_api_version: str
|
149
|
-
s3_use_ssl: bool
|
150
|
-
s3_verify: bool | str
|
151
|
-
s3_endpoint_url: str
|
152
|
-
s3_aws_access_key_id: str
|
153
|
-
s3_aws_secret_access_key: str
|
154
|
-
s3_aws_session_token: str
|
155
|
-
s3_config: Any
|
156
|
-
s3_path: str
|
157
|
-
redis_semantic_cache_use_async: bool
|
158
|
-
redis_semantic_cache_embedding_model: str
|
159
|
-
redis_flush_size: int
|
160
|
-
redis_startup_nodes: list
|
161
|
-
disk_cache_dir: Any
|
162
|
-
qdrant_api_base: str
|
163
|
-
qdrant_api_key: str
|
164
|
-
qdrant_collection_name: str
|
165
|
-
qdrant_quantization_config: str
|
166
|
-
qdrant_semantic_cache_embedding_model: str
|
167
|
-
|
168
|
-
|
169
124
|
class RerankOptions(TypedDict, total=False):
|
170
125
|
"""Optional keyword arguments for the rerank method."""
|
171
126
|
|
@@ -1,40 +1,35 @@
|
|
1
1
|
"""Module that contains the Role class for managing workflows and their event registrations."""
|
2
|
-
|
3
|
-
from typing import Any, Self,
|
2
|
+
from functools import partial
|
3
|
+
from typing import Any, Self, Dict
|
4
4
|
|
5
5
|
from fabricatio.rust import Event
|
6
6
|
from pydantic import Field, ConfigDict
|
7
7
|
|
8
|
-
from fabricatio.capabilities.propose import Propose
|
9
8
|
from fabricatio.core import env
|
10
9
|
from fabricatio.journal import logger
|
11
10
|
from fabricatio.models.action import WorkFlow
|
12
11
|
from fabricatio.models.generic import WithBriefing
|
13
|
-
from fabricatio.
|
14
|
-
|
12
|
+
from fabricatio.utils import is_subclass_of_base
|
13
|
+
|
14
|
+
is_toolbox_usage = partial(is_subclass_of_base, base_module="fabricatio.models.usages",
|
15
|
+
base_name="ToolBoxUsage")
|
16
|
+
is_scoped_config = partial(is_subclass_of_base, base_module="fabricatio.models.generic",
|
17
|
+
base_name="ScopedConfig")
|
15
18
|
|
16
19
|
|
17
|
-
class Role(WithBriefing
|
20
|
+
class Role(WithBriefing):
|
18
21
|
"""Class that represents a role with a registry of events and workflows.
|
19
22
|
|
20
23
|
A Role serves as a container for workflows, managing their registration to events
|
21
24
|
and providing them with shared configuration like tools and personality.
|
22
|
-
|
23
|
-
Attributes:
|
24
|
-
registry: Mapping of events to workflows that handle them
|
25
|
-
toolboxes: Set of toolboxes available to this role and its workflows
|
26
25
|
"""
|
27
|
-
# fixme: not use arbitrary_types_allowed
|
28
26
|
model_config = ConfigDict(use_attribute_docstrings=True, arbitrary_types_allowed=True)
|
29
27
|
description: str = ""
|
30
28
|
"""A brief description of the role's responsibilities and capabilities."""
|
31
29
|
|
32
|
-
registry:
|
30
|
+
registry: Dict[Event, WorkFlow] = Field(default_factory=dict)
|
33
31
|
"""The registry of events and workflows."""
|
34
32
|
|
35
|
-
toolboxes: Set[ToolBox] = Field(default_factory=set)
|
36
|
-
"""Collection of tools available to this role."""
|
37
|
-
|
38
33
|
def model_post_init(self, __context: Any) -> None:
|
39
34
|
"""Initialize the role by resolving configurations and registering workflows.
|
40
35
|
|
@@ -51,7 +46,7 @@ class Role(WithBriefing, Propose, ToolBoxUsage):
|
|
51
46
|
"""
|
52
47
|
for event, workflow in self.registry.items():
|
53
48
|
logger.debug(
|
54
|
-
f"Registering workflow: `{workflow.name}` for event: `{
|
49
|
+
f"Registering workflow: `{workflow.name}` for event: `{event.collapse()}`"
|
55
50
|
)
|
56
51
|
env.on(event, workflow.serve)
|
57
52
|
return self
|
@@ -67,12 +62,35 @@ class Role(WithBriefing, Propose, ToolBoxUsage):
|
|
67
62
|
"""
|
68
63
|
for workflow in self.registry.values():
|
69
64
|
logger.debug(f"Resolving config for workflow: `{workflow.name}`")
|
70
|
-
(
|
71
|
-
|
72
|
-
|
73
|
-
.inject_personality(self.briefing)
|
74
|
-
.supply_tools_from(self)
|
75
|
-
.steps_supply_tools_from_self()
|
76
|
-
)
|
77
|
-
|
65
|
+
self._configure_scoped_config(workflow)
|
66
|
+
self._configure_toolbox_usage(workflow)
|
67
|
+
workflow.inject_personality(self.briefing)
|
78
68
|
return self
|
69
|
+
|
70
|
+
def _configure_scoped_config(self, workflow) -> None:
|
71
|
+
"""Configure scoped configuration for workflow and its actions."""
|
72
|
+
|
73
|
+
if not is_scoped_config(self.__class__):
|
74
|
+
return
|
75
|
+
|
76
|
+
fallback_target = self
|
77
|
+
if is_scoped_config(workflow):
|
78
|
+
workflow.fallback_to(self)
|
79
|
+
fallback_target = workflow
|
80
|
+
|
81
|
+
for action in (a for a in workflow.iter_actions() if is_scoped_config(a)):
|
82
|
+
action.fallback_to(fallback_target)
|
83
|
+
|
84
|
+
def _configure_toolbox_usage(self, workflow) -> None:
|
85
|
+
"""Configure toolbox usage for workflow and its actions."""
|
86
|
+
|
87
|
+
if not is_toolbox_usage(self.__class__):
|
88
|
+
return
|
89
|
+
|
90
|
+
supply_target = self
|
91
|
+
if is_toolbox_usage(workflow):
|
92
|
+
workflow.supply_tools_from(self)
|
93
|
+
supply_target = workflow
|
94
|
+
|
95
|
+
for action in (a for a in workflow.iter_actions() if is_toolbox_usage(a)):
|
96
|
+
action.supply_tools_from(supply_target)
|
@@ -1,15 +1,46 @@
|
|
1
1
|
"""A collection of utility functions for the fabricatio package."""
|
2
2
|
|
3
|
-
from typing import Any, Dict, List, Mapping, Optional, TypedDict, Unpack, overload
|
4
|
-
|
5
|
-
import aiohttp
|
6
|
-
import requests
|
3
|
+
from typing import Any, Dict, List, Mapping, Optional, TypedDict, Unpack, overload, Type, Tuple
|
7
4
|
|
8
5
|
from fabricatio.decorators import precheck_package
|
9
6
|
from fabricatio.journal import logger
|
10
7
|
from fabricatio.models.kwargs_types import RerankOptions
|
11
8
|
|
12
9
|
|
10
|
+
def is_subclass_of_base(cls: Type, base_module: str, base_name: str) -> bool:
|
11
|
+
"""Determines if the given class is a subclass of an unimported base class.
|
12
|
+
|
13
|
+
Args:
|
14
|
+
cls: The class to check
|
15
|
+
base_module: The module name of the base class
|
16
|
+
base_name: The class name of the base class
|
17
|
+
|
18
|
+
Returns:
|
19
|
+
bool: True if cls is a subclass of the specified base class, False otherwise
|
20
|
+
"""
|
21
|
+
for ancestor in cls.__mro__:
|
22
|
+
if ancestor.__module__ == base_module and ancestor.__name__ == base_name:
|
23
|
+
return True
|
24
|
+
return False
|
25
|
+
|
26
|
+
|
27
|
+
def is_subclass_of_any_base(cls: Type, bases: List[Tuple[str, str]]) -> bool:
|
28
|
+
"""Determines if the given class is a subclass of the candidate base classes.
|
29
|
+
|
30
|
+
Args:
|
31
|
+
cls: The class to check
|
32
|
+
bases: A list of tuples where each tuple contains (module_name, class_name)
|
33
|
+
|
34
|
+
Returns:
|
35
|
+
bool: True if cls is a subclass of the specified base classes, False otherwise
|
36
|
+
"""
|
37
|
+
for ancestor in cls.__mro__:
|
38
|
+
for base_module, base_name in bases:
|
39
|
+
if ancestor.__module__ == base_module and ancestor.__name__ == base_name:
|
40
|
+
return True
|
41
|
+
return False
|
42
|
+
|
43
|
+
|
13
44
|
@precheck_package(
|
14
45
|
"questionary", "'questionary' is required to run this function. Have you installed `fabricatio[qa]`?."
|
15
46
|
)
|
@@ -164,6 +195,7 @@ class RerankerAPI:
|
|
164
195
|
ValueError: If input parameters are invalid or the API returns a client-side error.
|
165
196
|
RuntimeError: If the API call fails or returns a server-side error.
|
166
197
|
"""
|
198
|
+
import requests
|
167
199
|
# Validate inputs
|
168
200
|
if not isinstance(query, str) or not query.strip():
|
169
201
|
raise ValueError("Query must be a non-empty string.")
|
@@ -219,6 +251,8 @@ class RerankerAPI:
|
|
219
251
|
ValueError: If input parameters are invalid or the API returns a client-side error.
|
220
252
|
RuntimeError: If the API call fails or returns a server-side error.
|
221
253
|
"""
|
254
|
+
import aiohttp
|
255
|
+
|
222
256
|
# Validate inputs
|
223
257
|
if not isinstance(query, str) or not query.strip():
|
224
258
|
raise ValueError("Query must be a non-empty string.")
|
@@ -57,18 +57,18 @@ impl Event {
|
|
57
57
|
))
|
58
58
|
}
|
59
59
|
}
|
60
|
-
|
61
60
|
#[staticmethod]
|
62
61
|
fn quick_instantiate(event: &Bound<'_, PyAny>) -> PyResult<Self> {
|
63
62
|
let mut event = Self::instantiate_from(event)?;
|
64
|
-
event.
|
65
|
-
event.
|
63
|
+
event.segments.push("*".to_string());
|
64
|
+
event.segments.push(TaskStatus::Pending.to_string());
|
66
65
|
Ok(event)
|
67
66
|
}
|
68
67
|
|
69
68
|
fn derive(&self, event: &Bound<'_, PyAny>) -> PyResult<Self> {
|
70
69
|
let mut new_event = self.clone();
|
71
|
-
|
70
|
+
let sub = Event::instantiate_from(event)?;
|
71
|
+
new_event.segments.extend(sub.segments);
|
72
72
|
Ok(new_event)
|
73
73
|
}
|
74
74
|
|
@@ -80,10 +80,9 @@ impl Event {
|
|
80
80
|
self.clone()
|
81
81
|
}
|
82
82
|
|
83
|
-
fn push(
|
83
|
+
fn push<'py>(mut slf: PyRefMut<'py, Self>, segment: Bound<'py, PyAny>) -> PyResult<PyRefMut<'py, Self>> {
|
84
84
|
if let Ok(status) = segment.extract::<TaskStatus>() {
|
85
|
-
|
86
|
-
Ok(self.clone())
|
85
|
+
slf.segments.push(status.to_string());
|
87
86
|
} else if let Ok(string) = segment.extract::<String>() {
|
88
87
|
if string.is_empty() {
|
89
88
|
return Err(PyErr::new::<pyo3::exceptions::PyValueError, _>(
|
@@ -96,57 +95,59 @@ impl Event {
|
|
96
95
|
format!("The segment must not contain the delimiter '{}'", delimiter),
|
97
96
|
));
|
98
97
|
}
|
99
|
-
|
100
|
-
Ok(self.clone())
|
98
|
+
slf.segments.push(string);
|
101
99
|
} else {
|
102
|
-
Err(PyErr::new::<pyo3::exceptions::PyTypeError, _>(
|
100
|
+
return Err(PyErr::new::<pyo3::exceptions::PyTypeError, _>(
|
103
101
|
"The segment must be a string or TaskStatus".to_string(),
|
104
|
-
))
|
102
|
+
));
|
105
103
|
}
|
104
|
+
Ok(slf)
|
106
105
|
}
|
107
106
|
|
108
|
-
fn push_wildcard(
|
109
|
-
|
110
|
-
|
107
|
+
fn push_wildcard<'py>(mut slf: PyRefMut<'py, Self>) -> PyRefMut<'py, Self> {
|
108
|
+
slf.segments.push("*".to_string());
|
109
|
+
slf
|
111
110
|
}
|
112
111
|
|
113
|
-
fn push_pending(
|
114
|
-
|
115
|
-
|
112
|
+
fn push_pending<'py>(mut slf: PyRefMut<'py, Self>) -> PyRefMut<'py, Self> {
|
113
|
+
slf.segments.push(TaskStatus::Pending.to_string());
|
114
|
+
slf
|
116
115
|
}
|
117
116
|
|
118
|
-
fn push_running(
|
119
|
-
|
120
|
-
|
117
|
+
fn push_running<'py>(mut slf: PyRefMut<'py, Self>) -> PyRefMut<'py, Self> {
|
118
|
+
slf.segments.push(TaskStatus::Running.to_string());
|
119
|
+
slf
|
121
120
|
}
|
122
121
|
|
123
|
-
fn push_finished(
|
124
|
-
|
125
|
-
|
122
|
+
fn push_finished<'py>(mut slf: PyRefMut<'py, Self>) -> PyRefMut<'py, Self> {
|
123
|
+
slf.segments.push(TaskStatus::Finished.to_string());
|
124
|
+
slf
|
126
125
|
}
|
127
126
|
|
128
|
-
fn push_failed(
|
129
|
-
|
130
|
-
|
127
|
+
fn push_failed<'py>(mut slf: PyRefMut<'py, Self>) -> PyRefMut<'py, Self> {
|
128
|
+
slf.segments.push(TaskStatus::Failed.to_string());
|
129
|
+
slf
|
131
130
|
}
|
132
131
|
|
133
|
-
fn push_cancelled(
|
134
|
-
|
135
|
-
|
132
|
+
fn push_cancelled<'py>(mut slf: PyRefMut<'py, Self>) -> PyRefMut<'py, Self> {
|
133
|
+
slf.segments.push(TaskStatus::Cancelled.to_string());
|
134
|
+
slf
|
136
135
|
}
|
137
136
|
|
138
137
|
fn pop(&mut self) -> Option<String> {
|
139
138
|
self.segments.pop()
|
140
139
|
}
|
141
140
|
|
142
|
-
fn clear(
|
143
|
-
|
141
|
+
fn clear(mut slf: PyRefMut<Self>) -> PyRefMut<Self> {
|
142
|
+
slf.segments.clear();
|
143
|
+
slf
|
144
144
|
}
|
145
145
|
|
146
|
-
|
146
|
+
|
147
|
+
fn concat<'py>(mut slf: PyRefMut<'py, Self>, event: &Bound<'_, PyAny>) -> PyResult<PyRefMut<'py, Self>> {
|
147
148
|
let other = Self::instantiate_from(event)?;
|
148
|
-
|
149
|
-
Ok(
|
149
|
+
slf.segments.extend(other.segments);
|
150
|
+
Ok(slf)
|
150
151
|
}
|
151
152
|
|
152
153
|
|
Binary file
|
@@ -239,7 +239,7 @@ wheels = [
|
|
239
239
|
|
240
240
|
[[package]]
|
241
241
|
name = "fabricatio"
|
242
|
-
version = "0.3.
|
242
|
+
version = "0.3.14.dev0"
|
243
243
|
source = { editable = "." }
|
244
244
|
dependencies = [
|
245
245
|
{ name = "asyncio" },
|
@@ -629,7 +629,7 @@ wheels = [
|
|
629
629
|
|
630
630
|
[[package]]
|
631
631
|
name = "litellm"
|
632
|
-
version = "1.67.
|
632
|
+
version = "1.67.6"
|
633
633
|
source = { registry = "https://mirrors.bfsu.edu.cn/pypi/web/simple" }
|
634
634
|
dependencies = [
|
635
635
|
{ name = "aiohttp" },
|
@@ -644,9 +644,9 @@ dependencies = [
|
|
644
644
|
{ name = "tiktoken" },
|
645
645
|
{ name = "tokenizers" },
|
646
646
|
]
|
647
|
-
sdist = { url = "https://mirrors.bfsu.edu.cn/pypi/web/packages/
|
647
|
+
sdist = { url = "https://mirrors.bfsu.edu.cn/pypi/web/packages/ab/26/a07aa0c7a622e89b34dd26ae4c17fda398e1664fefa71379015656744546/litellm-1.67.6.tar.gz", hash = "sha256:8cd23db10463a02bb5a64fb69b243d97879ecf4075fe38740f8c4b93f3f770a6", size = 7308919, upload-time = "2025-05-02T19:26:07.058Z" }
|
648
648
|
wheels = [
|
649
|
-
{ url = "https://mirrors.bfsu.edu.cn/pypi/web/packages/
|
649
|
+
{ url = "https://mirrors.bfsu.edu.cn/pypi/web/packages/d5/bf/27fe677b5c6631d40d14620983e521239e7e1360cb7c8ab4111f35971f56/litellm-1.67.6-py3-none-any.whl", hash = "sha256:3c3fb31e9e6e51d8d0eb2da4df1538a3924c2d8e1201775358678f79b1625966", size = 7677070, upload-time = "2025-05-02T19:26:04.005Z" },
|
650
650
|
]
|
651
651
|
|
652
652
|
[[package]]
|
@@ -891,7 +891,7 @@ wheels = [
|
|
891
891
|
|
892
892
|
[[package]]
|
893
893
|
name = "openai"
|
894
|
-
version = "1.
|
894
|
+
version = "1.75.0"
|
895
895
|
source = { registry = "https://mirrors.bfsu.edu.cn/pypi/web/simple" }
|
896
896
|
dependencies = [
|
897
897
|
{ name = "anyio" },
|
@@ -903,9 +903,9 @@ dependencies = [
|
|
903
903
|
{ name = "tqdm" },
|
904
904
|
{ name = "typing-extensions" },
|
905
905
|
]
|
906
|
-
sdist = { url = "https://mirrors.bfsu.edu.cn/pypi/web/packages/
|
906
|
+
sdist = { url = "https://mirrors.bfsu.edu.cn/pypi/web/packages/99/b1/318f5d4c482f19c5fcbcde190801bfaaaec23413cda0b88a29f6897448ff/openai-1.75.0.tar.gz", hash = "sha256:fb3ea907efbdb1bcfd0c44507ad9c961afd7dce3147292b54505ecfd17be8fd1", size = 429492, upload-time = "2025-04-16T16:49:29.25Z" }
|
907
907
|
wheels = [
|
908
|
-
{ url = "https://mirrors.bfsu.edu.cn/pypi/web/packages/
|
908
|
+
{ url = "https://mirrors.bfsu.edu.cn/pypi/web/packages/80/9a/f34f163294345f123673ed03e77c33dee2534f3ac1f9d18120384457304d/openai-1.75.0-py3-none-any.whl", hash = "sha256:fe6f932d2ded3b429ff67cc9ad118c71327db32eb9d32dd723de3acfca337125", size = 646972, upload-time = "2025-04-16T16:49:27.196Z" },
|
909
909
|
]
|
910
910
|
|
911
911
|
[[package]]
|
@@ -1404,11 +1404,11 @@ wheels = [
|
|
1404
1404
|
|
1405
1405
|
[[package]]
|
1406
1406
|
name = "setuptools"
|
1407
|
-
version = "80.
|
1407
|
+
version = "80.2.0"
|
1408
1408
|
source = { registry = "https://mirrors.bfsu.edu.cn/pypi/web/simple" }
|
1409
|
-
sdist = { url = "https://mirrors.bfsu.edu.cn/pypi/web/packages/
|
1409
|
+
sdist = { url = "https://mirrors.bfsu.edu.cn/pypi/web/packages/24/65/19a02e93da9d9f118ecb311419a353ae68a8e236c057bf164c866daa227f/setuptools-80.2.0.tar.gz", hash = "sha256:16a390b41627e1455567193435e7cafa9101803ffaa2fdd9ecd0af098301981d", size = 1354232, upload-time = "2025-05-03T02:58:17.474Z" }
|
1410
1410
|
wheels = [
|
1411
|
-
{ url = "https://mirrors.bfsu.edu.cn/pypi/web/packages/
|
1411
|
+
{ url = "https://mirrors.bfsu.edu.cn/pypi/web/packages/51/95/522fb99f76ecf2efe0a372ee02665a3cda1e5653b37514fd05c98f05a9cf/setuptools-80.2.0-py3-none-any.whl", hash = "sha256:5f982284ad5d644764e1985baca205e235651b55f9a7ea8d46878d37104aa5e5", size = 1240763, upload-time = "2025-05-03T02:58:14.874Z" },
|
1412
1412
|
]
|
1413
1413
|
|
1414
1414
|
[[package]]
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/extract_and_inject/extract_and_inject.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/examples/write_outline/write_outline_corrected.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/capabilities/advanced_judge.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/advanced_judge.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/article_essence.py
RENAMED
File without changes
|
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/article_outline.py
RENAMED
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/python/fabricatio/models/extra/article_proposal.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/binary-exploitation-ctf-solver.hbs
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/draft_rating_weights_klee.hbs
RENAMED
File without changes
|
File without changes
|
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/extract_criteria_from_reasons.hbs
RENAMED
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/extract_reasons_from_examples.hbs
RENAMED
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/find-security-vulnerabilities.hbs
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/reverse-engineering-ctf-solver.hbs
RENAMED
File without changes
|
File without changes
|
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/ruleset_requirement_breakdown.hbs
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fabricatio-0.3.13 → fabricatio-0.3.14.dev0}/templates/built-in/write-github-pull-request.hbs
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|