iamai 0.2.2a1.dev2__tar.gz → 0.3.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.
- iamai-0.3.0/.github/ISSUE_TEMPLATE/bug-report.yml +102 -0
- iamai-0.3.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
- iamai-0.3.0/.github/ISSUE_TEMPLATE/ecosystem-submission.yml +104 -0
- iamai-0.3.0/.github/ISSUE_TEMPLATE/feature-request.yml +84 -0
- iamai-0.3.0/.github/dependabot.yml +62 -0
- iamai-0.3.0/.github/workflows/check.yml +110 -0
- iamai-0.3.0/.github/workflows/release.yml +229 -0
- iamai-0.3.0/.gitignore +20 -0
- iamai-0.3.0/.pre-commit-config.yaml +10 -0
- iamai-0.3.0/.readthedocs.yaml +13 -0
- iamai-0.3.0/CHANGELOG.md +27 -0
- iamai-0.3.0/Cargo.lock +195 -0
- iamai-0.3.0/Cargo.toml +20 -0
- iamai-0.3.0/LICENSE +21 -0
- iamai-0.3.0/PKG-INFO +179 -0
- iamai-0.3.0/README.md +165 -0
- iamai-0.3.0/README.zh.md +165 -0
- iamai-0.3.0/docs/Makefile +14 -0
- iamai-0.3.0/docs/_ext/iamai_blog.py +393 -0
- iamai-0.3.0/docs/_ext/iamai_i18n_versions.py +146 -0
- iamai-0.3.0/docs/_ext/iamai_mermaid.py +66 -0
- iamai-0.3.0/docs/_ext/iamai_store.py +510 -0
- iamai-0.3.0/docs/_static/brand/favicon.ico +0 -0
- iamai-0.3.0/docs/_static/brand/iamai-icon-128.png +0 -0
- iamai-0.3.0/docs/_static/brand/iamai-icon-16.png +0 -0
- iamai-0.3.0/docs/_static/brand/iamai-icon-180.png +0 -0
- iamai-0.3.0/docs/_static/brand/iamai-icon-192.png +0 -0
- iamai-0.3.0/docs/_static/brand/iamai-icon-256.png +0 -0
- iamai-0.3.0/docs/_static/brand/iamai-icon-32.png +0 -0
- iamai-0.3.0/docs/_static/brand/iamai-icon-48.png +0 -0
- iamai-0.3.0/docs/_static/brand/iamai-icon-512.png +0 -0
- iamai-0.3.0/docs/_static/brand/iamai-icon-64.png +0 -0
- iamai-0.3.0/docs/_static/brand/iamai-logo-wide.svg +58 -0
- iamai-0.3.0/docs/_static/brand/iamai-logo.svg +55 -0
- iamai-0.3.0/docs/_static/custom.css +150 -0
- iamai-0.3.0/docs/_static/iamai-blog.css +426 -0
- iamai-0.3.0/docs/_static/iamai-docs-switcher.css +147 -0
- iamai-0.3.0/docs/_static/iamai-docs-switcher.js +97 -0
- iamai-0.3.0/docs/_static/iamai-mermaid.js +29 -0
- iamai-0.3.0/docs/_static/iamai-store.css +526 -0
- iamai-0.3.0/docs/_static/iamai-store.js +729 -0
- iamai-0.3.0/docs/api/index.rst +10 -0
- iamai-0.3.0/docs/community/blog/index.rst +7 -0
- iamai-0.3.0/docs/community/blog/posts/adapter-conformance.rst +20 -0
- iamai-0.3.0/docs/community/blog/posts/architecture-lifecycle.rst +43 -0
- iamai-0.3.0/docs/community/blog/posts/community-store.rst +20 -0
- iamai-0.3.0/docs/community/index.rst +33 -0
- iamai-0.3.0/docs/community/store.rst +7 -0
- iamai-0.3.0/docs/concepts.rst +76 -0
- iamai-0.3.0/docs/conf.py +99 -0
- iamai-0.3.0/docs/ecosystem/entries/adapter.onebot11.json +17 -0
- iamai-0.3.0/docs/ecosystem/entries/adapter.onebot11_http_builtin.json +20 -0
- iamai-0.3.0/docs/ecosystem/entries/adapter.onebot11_reverse_ws_builtin.json +20 -0
- iamai-0.3.0/docs/ecosystem/entries/adapter.onebot11_ws_builtin.json +20 -0
- iamai-0.3.0/docs/ecosystem/entries/adapter.telegram.json +17 -0
- iamai-0.3.0/docs/ecosystem/entries/adapter.terminal.json +17 -0
- iamai-0.3.0/docs/ecosystem/entries/adapter.webhook.json +18 -0
- iamai-0.3.0/docs/ecosystem/entries/agent_tool.group_digest_example.json +20 -0
- iamai-0.3.0/docs/ecosystem/entries/agent_tool.planner_executor_example.json +20 -0
- iamai-0.3.0/docs/ecosystem/entries/agent_tool.react_tools_example.json +20 -0
- iamai-0.3.0/docs/ecosystem/entries/agent_tool.supervisor_team_example.json +20 -0
- iamai-0.3.0/docs/ecosystem/entries/agent_tool.web_search.json +16 -0
- iamai-0.3.0/docs/ecosystem/entries/plugin.arcade_quests_example.json +19 -0
- iamai-0.3.0/docs/ecosystem/entries/plugin.group_assistant_example.json +19 -0
- iamai-0.3.0/docs/ecosystem/entries/plugin.life_sim_example.json +19 -0
- iamai-0.3.0/docs/ecosystem/entries/plugin.management.json +24 -0
- iamai-0.3.0/docs/ecosystem/entries/plugin.persona_rp_example.json +19 -0
- iamai-0.3.0/docs/ecosystem/entries/plugin.story_director_example.json +19 -0
- iamai-0.3.0/docs/ecosystem/entries/state_backend.sqlite.json +17 -0
- iamai-0.3.0/docs/ecosystem/entries/template.echo_runtime.json +15 -0
- iamai-0.3.0/docs/ecosystem/index.rst +8 -0
- iamai-0.3.0/docs/guides/adapters.rst +248 -0
- iamai-0.3.0/docs/guides/agent-runtime.rst +63 -0
- iamai-0.3.0/docs/guides/architecture.rst +141 -0
- iamai-0.3.0/docs/guides/configuration.rst +105 -0
- iamai-0.3.0/docs/guides/ecosystem-comparison.rst +243 -0
- iamai-0.3.0/docs/guides/index.rst +42 -0
- iamai-0.3.0/docs/guides/operations.rst +132 -0
- iamai-0.3.0/docs/guides/plugins.rst +198 -0
- iamai-0.3.0/docs/guides/roadmap.rst +61 -0
- iamai-0.3.0/docs/guides/state-and-sessions.rst +92 -0
- iamai-0.3.0/docs/index.rst +94 -0
- iamai-0.3.0/docs/installation.rst +49 -0
- iamai-0.3.0/docs/locales/README.md +17 -0
- iamai-0.3.0/docs/make.bat +15 -0
- iamai-0.3.0/docs/quickstart.rst +130 -0
- iamai-0.3.0/docs/reference/cli.rst +55 -0
- iamai-0.3.0/docs/reference/configuration.rst +148 -0
- iamai-0.3.0/docs/reference/docs-i18n-versions.rst +51 -0
- iamai-0.3.0/docs/reference/extensions.rst +285 -0
- iamai-0.3.0/docs/reference/index.rst +36 -0
- iamai-0.3.0/docs/reference/quality-gates.rst +29 -0
- iamai-0.3.0/docs/reference/rules.rst +138 -0
- iamai-0.3.0/docs/reference/webhook-signatures.rst +50 -0
- iamai-0.3.0/docs/requirements.txt +6 -0
- iamai-0.3.0/docs/tutorials/index.rst +41 -0
- iamai-0.3.0/docs/tutorials/part-1-terminal-runtime.rst +82 -0
- iamai-0.3.0/docs/tutorials/part-2-commands-rules.rst +162 -0
- iamai-0.3.0/docs/tutorials/part-3-state-sessions.rst +87 -0
- iamai-0.3.0/docs/tutorials/part-4-webhook-production.rst +98 -0
- iamai-0.3.0/docs/tutorials/part-5-adapter-development.rst +198 -0
- iamai-0.3.0/docs/tutorials/part-6-ecosystem-publishing.rst +59 -0
- iamai-0.3.0/examples/_shared/README.md +11 -0
- iamai-0.3.0/examples/_shared/pyproject.toml +11 -0
- iamai-0.3.0/examples/_shared/src/iamai_example_utils/__init__.py +13 -0
- iamai-0.3.0/examples/_shared/src/iamai_example_utils/llm.py +80 -0
- iamai-0.3.0/examples/arcade-runtime/README.md +25 -0
- iamai-0.3.0/examples/arcade-runtime/config.onebot11.napcat.ws_reverse.toml +41 -0
- iamai-0.3.0/examples/arcade-runtime/config.terminal.toml +37 -0
- iamai-0.3.0/examples/arcade-runtime/pyproject.toml +12 -0
- iamai-0.3.0/examples/arcade-runtime/run.py +23 -0
- iamai-0.3.0/examples/arcade-runtime/src/arcade_runtime/__init__.py +1 -0
- iamai-0.3.0/examples/arcade-runtime/src/arcade_runtime/plugins/__init__.py +6 -0
- iamai-0.3.0/examples/arcade-runtime/src/arcade_runtime/plugins/arcade.py +95 -0
- iamai-0.3.0/examples/arcade-runtime/src/arcade_runtime/plugins/chaos.py +14 -0
- iamai-0.3.0/examples/arcade-runtime/src/arcade_runtime/plugins/quests.py +48 -0
- iamai-0.3.0/examples/arcade-runtime/src/arcade_runtime/plugins/session.py +40 -0
- iamai-0.3.0/examples/echo-runtime/README.md +54 -0
- iamai-0.3.0/examples/echo-runtime/config.onebot11.http.toml +27 -0
- iamai-0.3.0/examples/echo-runtime/config.onebot11.napcat.ws_reverse.toml +30 -0
- iamai-0.3.0/examples/echo-runtime/config.onebot11.ws.toml +25 -0
- iamai-0.3.0/examples/echo-runtime/config.onebot11.ws_reverse.toml +26 -0
- iamai-0.3.0/examples/echo-runtime/config.terminal.toml +31 -0
- iamai-0.3.0/examples/echo-runtime/config.webhook.toml +31 -0
- iamai-0.3.0/examples/echo-runtime/logs/echo-runtime.log +37 -0
- iamai-0.3.0/examples/echo-runtime/pyproject.toml +12 -0
- iamai-0.3.0/examples/echo-runtime/run.py +23 -0
- iamai-0.3.0/examples/echo-runtime/src/echo_runtime/__init__.py +1 -0
- iamai-0.3.0/examples/echo-runtime/src/echo_runtime/plugins/__init__.py +3 -0
- iamai-0.3.0/examples/echo-runtime/src/echo_runtime/plugins/echo.py +56 -0
- iamai-0.3.0/examples/group-assistant-runtime/.asterline/state.json +13 -0
- iamai-0.3.0/examples/group-assistant-runtime/README.md +24 -0
- iamai-0.3.0/examples/group-assistant-runtime/config.onebot11.napcat.ws_reverse.toml +41 -0
- iamai-0.3.0/examples/group-assistant-runtime/config.terminal.toml +37 -0
- iamai-0.3.0/examples/group-assistant-runtime/pyproject.toml +14 -0
- iamai-0.3.0/examples/group-assistant-runtime/run.py +23 -0
- iamai-0.3.0/examples/group-assistant-runtime/src/group_assistant_runtime/__init__.py +1 -0
- iamai-0.3.0/examples/group-assistant-runtime/src/group_assistant_runtime/plugins/__init__.py +1 -0
- iamai-0.3.0/examples/group-assistant-runtime/src/group_assistant_runtime/plugins/assistant.py +123 -0
- iamai-0.3.0/examples/group-assistant-runtime/src/group_assistant_runtime/plugins/room.py +49 -0
- iamai-0.3.0/examples/life-sim-runtime/.asterline/state.json +53 -0
- iamai-0.3.0/examples/life-sim-runtime/README.md +23 -0
- iamai-0.3.0/examples/life-sim-runtime/config.onebot11.napcat.ws_reverse.toml +38 -0
- iamai-0.3.0/examples/life-sim-runtime/config.terminal.toml +34 -0
- iamai-0.3.0/examples/life-sim-runtime/pyproject.toml +14 -0
- iamai-0.3.0/examples/life-sim-runtime/run.py +23 -0
- iamai-0.3.0/examples/life-sim-runtime/src/life_sim_runtime/__init__.py +1 -0
- iamai-0.3.0/examples/life-sim-runtime/src/life_sim_runtime/plugins/__init__.py +1 -0
- iamai-0.3.0/examples/life-sim-runtime/src/life_sim_runtime/plugins/life.py +208 -0
- iamai-0.3.0/examples/life-sim-runtime/src/life_sim_runtime/plugins/state.py +49 -0
- iamai-0.3.0/examples/persona-rp-runtime/.asterline/state.json +12 -0
- iamai-0.3.0/examples/persona-rp-runtime/README.md +22 -0
- iamai-0.3.0/examples/persona-rp-runtime/config.onebot11.napcat.ws_reverse.toml +40 -0
- iamai-0.3.0/examples/persona-rp-runtime/config.terminal.toml +36 -0
- iamai-0.3.0/examples/persona-rp-runtime/pyproject.toml +14 -0
- iamai-0.3.0/examples/persona-rp-runtime/run.py +23 -0
- iamai-0.3.0/examples/persona-rp-runtime/src/persona_rp_runtime/__init__.py +1 -0
- iamai-0.3.0/examples/persona-rp-runtime/src/persona_rp_runtime/plugins/__init__.py +1 -0
- iamai-0.3.0/examples/persona-rp-runtime/src/persona_rp_runtime/plugins/lounge.py +33 -0
- iamai-0.3.0/examples/persona-rp-runtime/src/persona_rp_runtime/plugins/persona.py +97 -0
- iamai-0.3.0/examples/planner-executor-runtime/README.md +23 -0
- iamai-0.3.0/examples/planner-executor-runtime/config.onebot11.napcat.ws_reverse.toml +41 -0
- iamai-0.3.0/examples/planner-executor-runtime/config.terminal.toml +36 -0
- iamai-0.3.0/examples/planner-executor-runtime/pyproject.toml +14 -0
- iamai-0.3.0/examples/planner-executor-runtime/run.py +23 -0
- iamai-0.3.0/examples/planner-executor-runtime/src/planner_executor_runtime/__init__.py +1 -0
- iamai-0.3.0/examples/planner-executor-runtime/src/planner_executor_runtime/plugins/__init__.py +1 -0
- iamai-0.3.0/examples/planner-executor-runtime/src/planner_executor_runtime/plugins/executor.py +161 -0
- iamai-0.3.0/examples/planner-executor-runtime/src/planner_executor_runtime/plugins/planner.py +119 -0
- iamai-0.3.0/examples/planner-executor-runtime/src/planner_executor_runtime/plugins/session.py +38 -0
- iamai-0.3.0/examples/react-runtime/README.md +35 -0
- iamai-0.3.0/examples/react-runtime/SOUL.md +58 -0
- iamai-0.3.0/examples/react-runtime/config.onebot11.napcat.ws_reverse.toml +41 -0
- iamai-0.3.0/examples/react-runtime/config.terminal.toml +39 -0
- iamai-0.3.0/examples/react-runtime/pyproject.toml +15 -0
- iamai-0.3.0/examples/react-runtime/run.py +23 -0
- iamai-0.3.0/examples/react-runtime/src/react_runtime/__init__.py +1 -0
- iamai-0.3.0/examples/react-runtime/src/react_runtime/plugins/__init__.py +1 -0
- iamai-0.3.0/examples/react-runtime/src/react_runtime/plugins/mcp.py +51 -0
- iamai-0.3.0/examples/react-runtime/src/react_runtime/plugins/memory.py +66 -0
- iamai-0.3.0/examples/react-runtime/src/react_runtime/plugins/reactor.py +181 -0
- iamai-0.3.0/examples/react-runtime/src/react_runtime/plugins/tools.py +139 -0
- iamai-0.3.0/examples/skill-chat-runtime/README.md +100 -0
- iamai-0.3.0/examples/skill-chat-runtime/config.terminal.toml +36 -0
- iamai-0.3.0/examples/skill-chat-runtime/pyproject.toml +14 -0
- iamai-0.3.0/examples/skill-chat-runtime/run.py +24 -0
- iamai-0.3.0/examples/skill-chat-runtime/src/skill_chat_runtime/__init__.py +1 -0
- iamai-0.3.0/examples/skill-chat-runtime/src/skill_chat_runtime/data/__init__.py +24 -0
- iamai-0.3.0/examples/skill-chat-runtime/src/skill_chat_runtime/data/route_rules.json +22 -0
- iamai-0.3.0/examples/skill-chat-runtime/src/skill_chat_runtime/data/seed_skills.json +72 -0
- iamai-0.3.0/examples/skill-chat-runtime/src/skill_chat_runtime/data/stopwords.txt +40 -0
- iamai-0.3.0/examples/skill-chat-runtime/src/skill_chat_runtime/plugins/__init__.py +1 -0
- iamai-0.3.0/examples/skill-chat-runtime/src/skill_chat_runtime/plugins/memory.py +123 -0
- iamai-0.3.0/examples/skill-chat-runtime/src/skill_chat_runtime/plugins/router.py +182 -0
- iamai-0.3.0/examples/skill-chat-runtime/src/skill_chat_runtime/plugins/skills.py +339 -0
- iamai-0.3.0/examples/skill-chat-runtime/src/skill_chat_runtime/plugins/tools.py +219 -0
- iamai-0.3.0/examples/skill-chat-runtime/src/skill_chat_runtime/skilllib.py +258 -0
- iamai-0.3.0/examples/state-runtime/README.md +23 -0
- iamai-0.3.0/examples/state-runtime/__init__.py +1 -0
- iamai-0.3.0/examples/state-runtime/config.terminal.toml +22 -0
- iamai-0.3.0/examples/state-runtime/pyproject.toml +14 -0
- iamai-0.3.0/examples/state-runtime/run.py +23 -0
- iamai-0.3.0/examples/state-runtime/src/state_runtime/__init__.py +1 -0
- iamai-0.3.0/examples/state-runtime/src/state_runtime/plugins/__init__.py +1 -0
- iamai-0.3.0/examples/state-runtime/src/state_runtime/plugins/states.py +18 -0
- iamai-0.3.0/examples/story-runtime/README.md +24 -0
- iamai-0.3.0/examples/story-runtime/config.onebot11.napcat.ws_reverse.toml +33 -0
- iamai-0.3.0/examples/story-runtime/config.terminal.toml +28 -0
- iamai-0.3.0/examples/story-runtime/pyproject.toml +12 -0
- iamai-0.3.0/examples/story-runtime/run.py +23 -0
- iamai-0.3.0/examples/story-runtime/src/story_runtime/__init__.py +1 -0
- iamai-0.3.0/examples/story-runtime/src/story_runtime/plugins/__init__.py +6 -0
- iamai-0.3.0/examples/story-runtime/src/story_runtime/plugins/cast.py +22 -0
- iamai-0.3.0/examples/story-runtime/src/story_runtime/plugins/director.py +80 -0
- iamai-0.3.0/examples/story-runtime/src/story_runtime/plugins/memory.py +40 -0
- iamai-0.3.0/examples/story-runtime/src/story_runtime/plugins/world.py +19 -0
- iamai-0.3.0/examples/supervisor-team-runtime/README.md +22 -0
- iamai-0.3.0/examples/supervisor-team-runtime/config.onebot11.napcat.ws_reverse.toml +38 -0
- iamai-0.3.0/examples/supervisor-team-runtime/config.terminal.toml +33 -0
- iamai-0.3.0/examples/supervisor-team-runtime/pyproject.toml +14 -0
- iamai-0.3.0/examples/supervisor-team-runtime/run.py +23 -0
- iamai-0.3.0/examples/supervisor-team-runtime/src/supervisor_team_runtime/__init__.py +1 -0
- iamai-0.3.0/examples/supervisor-team-runtime/src/supervisor_team_runtime/plugins/__init__.py +1 -0
- iamai-0.3.0/examples/supervisor-team-runtime/src/supervisor_team_runtime/plugins/briefing.py +33 -0
- iamai-0.3.0/examples/supervisor-team-runtime/src/supervisor_team_runtime/plugins/supervisor.py +167 -0
- iamai-0.3.0/examples/supervisor-team-runtime/src/supervisor_team_runtime/plugins/workers.py +69 -0
- iamai-0.3.0/pyproject.toml +108 -0
- iamai-0.3.0/python/iamai/__init__.py +140 -0
- iamai-0.3.0/python/iamai/__main__.py +6 -0
- iamai-0.3.0/python/iamai/_core.pyi +30 -0
- iamai-0.3.0/python/iamai/adapter.py +54 -0
- iamai-0.3.0/python/iamai/adapters/__init__.py +8 -0
- iamai-0.3.0/python/iamai/adapters/middleware.py +757 -0
- iamai-0.3.0/python/iamai/adapters/onebot11.py +143 -0
- iamai-0.3.0/python/iamai/adapters/telegram.py +175 -0
- iamai-0.3.0/python/iamai/adapters/terminal.py +74 -0
- iamai-0.3.0/python/iamai/adapters/webhook.py +350 -0
- iamai-0.3.0/python/iamai/agent.py +557 -0
- iamai-0.3.0/python/iamai/config.py +548 -0
- iamai-0.3.0/python/iamai/context.py +91 -0
- iamai-0.3.0/python/iamai/core.py +35 -0
- iamai-0.3.0/python/iamai/di.py +19 -0
- iamai-0.3.0/python/iamai/event.py +70 -0
- iamai-0.3.0/python/iamai/httpio.py +313 -0
- iamai-0.3.0/python/iamai/logging.py +102 -0
- iamai-0.3.0/python/iamai/message.py +93 -0
- iamai-0.3.0/python/iamai/middleware.py +48 -0
- iamai-0.3.0/python/iamai/net.py +87 -0
- iamai-0.3.0/python/iamai/observability.py +92 -0
- iamai-0.3.0/python/iamai/permissions.py +156 -0
- iamai-0.3.0/python/iamai/plugin.py +251 -0
- iamai-0.3.0/python/iamai/plugins/__init__.py +6 -0
- iamai-0.3.0/python/iamai/plugins/management.py +233 -0
- iamai-0.3.0/python/iamai/plugins/management_api.py +123 -0
- iamai-0.3.0/python/iamai/py.typed +1 -0
- iamai-0.3.0/python/iamai/rules.py +696 -0
- iamai-0.3.0/python/iamai/runtime.py +1734 -0
- iamai-0.3.0/python/iamai/session.py +164 -0
- iamai-0.3.0/python/iamai/state.py +125 -0
- iamai-0.3.0/python/iamai/testing/__init__.py +17 -0
- iamai-0.3.0/python/iamai/testing/adapters.py +45 -0
- iamai-0.3.0/python/iamai/validation.py +79 -0
- iamai-0.3.0/python/iamai/webhook_security.py +242 -0
- iamai-0.3.0/scripts/check_example_configs.sh +7 -0
- iamai-0.3.0/scripts/typecheck.sh +8 -0
- iamai-0.3.0/scripts/validate_ecosystem_store.py +65 -0
- iamai-0.3.0/src/lib.rs +444 -0
- iamai-0.3.0/tests/test_adapter_conformance.py +77 -0
- iamai-0.3.0/tests/test_adapter_middleware.py +247 -0
- iamai-0.3.0/tests/test_agent_tools.py +76 -0
- iamai-0.3.0/tests/test_docs_content.py +59 -0
- iamai-0.3.0/tests/test_docs_extensions.py +68 -0
- iamai-0.3.0/tests/test_docs_i18n_versions.py +37 -0
- iamai-0.3.0/tests/test_echo_runtime_management.py +56 -0
- iamai-0.3.0/tests/test_ecosystem_store.py +192 -0
- iamai-0.3.0/tests/test_example_llm.py +100 -0
- iamai-0.3.0/tests/test_logging_config.py +88 -0
- iamai-0.3.0/tests/test_management_api.py +67 -0
- iamai-0.3.0/tests/test_package_discovery.py +194 -0
- iamai-0.3.0/tests/test_react_runtime.py +299 -0
- iamai-0.3.0/tests/test_release_contract.py +76 -0
- iamai-0.3.0/tests/test_rules_engine.py +160 -0
- iamai-0.3.0/tests/test_runtime_introspection.py +108 -0
- iamai-0.3.0/tests/test_runtime_safety.py +1257 -0
- iamai-0.3.0/tests/test_telegram_adapter.py +120 -0
- iamai-0.3.0/uv.lock +2475 -0
- iamai-0.2.2a1.dev2/.github/FUNDING.yml +0 -13
- iamai-0.2.2a1.dev2/.github/actions/setup-node/action.yml +0 -21
- iamai-0.2.2a1.dev2/.github/actions/setup-python/action.yml +0 -25
- iamai-0.2.2a1.dev2/.github/config.yml +0 -7
- iamai-0.2.2a1.dev2/.github/copilot-instructions.md +0 -7
- iamai-0.2.2a1.dev2/.github/dependabot.yml +0 -19
- iamai-0.2.2a1.dev2/.github/workflows/build-api.yml +0 -63
- iamai-0.2.2a1.dev2/.github/workflows/changelog.yml +0 -43
- iamai-0.2.2a1.dev2/.github/workflows/dependency-review.yml +0 -20
- iamai-0.2.2a1.dev2/.github/workflows/nightly.yml +0 -64
- iamai-0.2.2a1.dev2/.github/workflows/publish-docker.yml +0 -59
- iamai-0.2.2a1.dev2/.github/workflows/release.yml +0 -207
- iamai-0.2.2a1.dev2/.gitignore +0 -166
- iamai-0.2.2a1.dev2/.gitpod.yml +0 -10
- iamai-0.2.2a1.dev2/.pre-commit-config.yaml +0 -20
- iamai-0.2.2a1.dev2/.readthedocs.yaml +0 -32
- iamai-0.2.2a1.dev2/.sourcery.yaml +0 -74
- iamai-0.2.2a1.dev2/.vscode/launch.json +0 -33
- iamai-0.2.2a1.dev2/CHANGELOG.md +0 -252
- iamai-0.2.2a1.dev2/CITATION.cff +0 -22
- iamai-0.2.2a1.dev2/CODE_OF_CONDUCT.md +0 -128
- iamai-0.2.2a1.dev2/COPYING +0 -661
- iamai-0.2.2a1.dev2/Cargo.lock +0 -1347
- iamai-0.2.2a1.dev2/Cargo.toml +0 -31
- iamai-0.2.2a1.dev2/Dockerfile +0 -18
- iamai-0.2.2a1.dev2/MANIFEST.in +0 -2
- iamai-0.2.2a1.dev2/Makefile +0 -53
- iamai-0.2.2a1.dev2/PKG-INFO +0 -481
- iamai-0.2.2a1.dev2/README.md +0 -435
- iamai-0.2.2a1.dev2/docs/Makefile +0 -41
- iamai-0.2.2a1.dev2/docs/_static/assets/blog-theme.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/card-1.dark.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/card-1.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/credits.pdf +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/docs/banner.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/docs/custom-theme.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/docs/how-it-works.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/docs/logo.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/docs/menu.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/docs/navigation.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/docs/project-link.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/docs/sidebar-customized.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/docs/sub-docs.mp4 +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/docs/title-suffix.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/docs-theme.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/gradient-bg.jpeg +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/high-contrast.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/routing.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/routing@1x.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/search-dark.mp4 +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/search.mp4 +0 -0
- iamai-0.2.2a1.dev2/docs/_static/assets/syntax-highlighting.svg +0 -1
- iamai-0.2.2a1.dev2/docs/_static/demo.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/favicon-dark.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/favicon-dark.svg +0 -39
- iamai-0.2.2a1.dev2/docs/_static/favicon.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/favicon.svg +0 -39
- iamai-0.2.2a1.dev2/docs/_static/icons/android-chrome-192x192.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/icons/android-chrome-512x512.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/icons/apple-touch-icon.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/icons/favicon-16x16.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/icons/favicon-32x32.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/icons/favicon.ico +0 -0
- iamai-0.2.2a1.dev2/docs/_static/icons/logo.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/icons/mstile-150x150.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/icons/retroOG-ICON4.svg +0 -1
- iamai-0.2.2a1.dev2/docs/_static/icons/retro_plus.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/icons/safari-pinned-tab.svg +0 -94
- iamai-0.2.2a1.dev2/docs/_static/icons/site.webmanifest +0 -1
- iamai-0.2.2a1.dev2/docs/_static/kook-structures.drawio +0 -42
- iamai-0.2.2a1.dev2/docs/_static/logo.png +0 -0
- iamai-0.2.2a1.dev2/docs/_static/logo.svg +0 -1
- iamai-0.2.2a1.dev2/docs/_static/manifest.json +0 -20
- iamai-0.2.2a1.dev2/docs/_static/og.jpeg +0 -0
- iamai-0.2.2a1.dev2/docs/_static/retro.png +0 -0
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/COPYING.po +0 -61
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/changelog.po +0 -631
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/credits.po +0 -1726
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/index.po +0 -148
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/adapters/cqhttp-adapter.po +0 -165
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/adapters/dingtalk-adapter.po +0 -118
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/adapters/mirai-adapter.po +0 -129
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/advanced/hook-function.po +0 -95
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/advanced/hot-reload.po +0 -109
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/advanced/plugin-advanced.po +0 -93
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/advanced/scheduler.po +0 -204
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.apscheduler.config.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.apscheduler.event.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.apscheduler.po +0 -36
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.bililive.config.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.bililive.event.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.bililive.exceptions.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.bililive.message.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.bililive.po +0 -36
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.bililive.tests.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.console.config.po +0 -50
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.console.event.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.console.message.po +0 -67
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.console.po +0 -36
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.cqhttp.config.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.cqhttp.event.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.cqhttp.exceptions.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.cqhttp.message.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.cqhttp.po +0 -36
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.dingtalk.config.po +0 -74
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.dingtalk.event.po +0 -104
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.dingtalk.exceptions.po +0 -44
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.dingtalk.message.po +0 -95
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.dingtalk.po +0 -159
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.gensokyo.config.po +0 -83
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.gensokyo.event.po +0 -205
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.gensokyo.exceptions.po +0 -53
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.gensokyo.message.po +0 -167
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.gensokyo.po +0 -213
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.kook.api.client.po +0 -29
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.kook.api.handle.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.kook.api.model.po +0 -482
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.kook.api.po +0 -36
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.kook.config.po +0 -86
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.kook.event.po +0 -572
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.kook.exceptions.po +0 -65
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.kook.message.po +0 -79
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.kook.po +0 -161
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.onebot11.config.po +0 -110
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.onebot11.event.po +0 -498
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.onebot11.exceptions.po +0 -73
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.onebot11.message.po +0 -258
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.onebot11.po +0 -301
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.po +0 -130
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.red.config.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.red.event.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.red.po +0 -36
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.adapter.utils.po +0 -98
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.bot.po +0 -252
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.cli.po +0 -25
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.config.po +0 -112
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.const.po +0 -25
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.dependencies.po +0 -50
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.event.po +0 -141
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.exceptions.po +0 -68
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.libcore.po +0 -25
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.log.po +0 -34
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.message.po +0 -231
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.models.BM25.config.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.models.BM25.po +0 -39
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.models.po +0 -33
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.plugin.po +0 -106
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.po +0 -499
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.typing.po +0 -31
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/iamai.utils.po +0 -223
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/api/index.po +0 -25
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/basic/basic-config.po +0 -140
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/basic/builtin-message.po +0 -134
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/basic/plugin-basics.po +0 -321
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/blog/iamai-v3.po +0 -37
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/blog/index.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/community/assets-library.po +0 -26
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/credits.po +0 -1307
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/development/contributing.po +0 -29
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/introduction.po +0 -95
- iamai-0.2.2a1.dev2/docs/locales/zh_CN/LC_MESSAGES/pages/starting/getting-started.po +0 -278
- iamai-0.2.2a1.dev2/docs/requirements.txt +0 -9
- iamai-0.2.2a1.dev2/docs/source/COPYING.rst +0 -6
- iamai-0.2.2a1.dev2/docs/source/changelog.md +0 -2
- iamai-0.2.2a1.dev2/docs/source/conf.py +0 -119
- iamai-0.2.2a1.dev2/docs/source/credits.md +0 -4585
- iamai-0.2.2a1.dev2/docs/source/index.rst +0 -62
- iamai-0.2.2a1.dev2/docs/source/pages/adapters/cqhttp-adapter.md +0 -112
- iamai-0.2.2a1.dev2/docs/source/pages/adapters/dingtalk-adapter.md +0 -48
- iamai-0.2.2a1.dev2/docs/source/pages/adapters/mirai-adapter.md +0 -136
- iamai-0.2.2a1.dev2/docs/source/pages/advanced/hook-function.md +0 -92
- iamai-0.2.2a1.dev2/docs/source/pages/advanced/hot-reload.md +0 -55
- iamai-0.2.2a1.dev2/docs/source/pages/advanced/plugin-advanced.md +0 -37
- iamai-0.2.2a1.dev2/docs/source/pages/advanced/scheduler.md +0 -247
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.apscheduler.config.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.apscheduler.event.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.apscheduler.rst +0 -19
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.bililive.config.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.bililive.event.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.bililive.exceptions.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.bililive.message.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.bililive.rst +0 -22
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.bililive.tests.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.console.config.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.console.event.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.console.message.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.console.rst +0 -20
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.cqhttp.config.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.cqhttp.event.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.cqhttp.exceptions.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.cqhttp.message.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.cqhttp.rst +0 -21
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.dingtalk.config.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.dingtalk.event.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.dingtalk.exceptions.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.dingtalk.message.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.dingtalk.rst +0 -21
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.gensokyo.config.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.gensokyo.event.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.gensokyo.exceptions.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.gensokyo.message.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.gensokyo.rst +0 -21
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.kook.api.client.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.kook.api.handle.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.kook.api.model.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.kook.api.rst +0 -20
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.kook.config.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.kook.event.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.kook.exceptions.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.kook.message.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.kook.rst +0 -29
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.red.config.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.red.event.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.red.rst +0 -19
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.rst +0 -33
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.adapter.utils.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.bot.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.cli.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.config.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.const.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.dependencies.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.event.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.exceptions.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.i18n.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.log.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.message.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.model.BM25.config.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.model.BM25.rst +0 -18
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.model.rst +0 -18
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.plugin.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.rst +0 -39
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.typing.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/iamai.utils.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/api/index.rst +0 -7
- iamai-0.2.2a1.dev2/docs/source/pages/basic/basic-config.md +0 -115
- iamai-0.2.2a1.dev2/docs/source/pages/basic/builtin-message.md +0 -96
- iamai-0.2.2a1.dev2/docs/source/pages/basic/plugin-basics.md +0 -241
- iamai-0.2.2a1.dev2/docs/source/pages/blog/iamai-v3.rst +0 -10
- iamai-0.2.2a1.dev2/docs/source/pages/blog/index.rst +0 -2
- iamai-0.2.2a1.dev2/docs/source/pages/community/assets-library.rst +0 -2
- iamai-0.2.2a1.dev2/docs/source/pages/dev-api/.gitkeep +0 -0
- iamai-0.2.2a1.dev2/docs/source/pages/development/contributing.rst +0 -1
- iamai-0.2.2a1.dev2/docs/source/pages/starting/getting-started.rst +0 -128
- iamai-0.2.2a1.dev2/examples/basic_example/config.toml +0 -21
- iamai-0.2.2a1.dev2/examples/basic_example/main.py +0 -105
- iamai-0.2.2a1.dev2/examples/basic_example/plugins/__init__.py +0 -1
- iamai-0.2.2a1.dev2/examples/bottle_example/config.toml +0 -25
- iamai-0.2.2a1.dev2/examples/bottle_example/main.py +0 -77
- iamai-0.2.2a1.dev2/examples/bottle_example/plugins/__init__.py +0 -1
- iamai-0.2.2a1.dev2/examples/bottle_example/plugins/bottle.py +0 -64
- iamai-0.2.2a1.dev2/noxfile.py +0 -17
- iamai-0.2.2a1.dev2/pyproject.toml +0 -174
- iamai-0.2.2a1.dev2/src/iamai/__init__.py +0 -56
- iamai-0.2.2a1.dev2/src/iamai/bot.py +0 -324
- iamai-0.2.2a1.dev2/src/iamai/config.py +0 -189
- iamai-0.2.2a1.dev2/src/iamai/event.py +0 -100
- iamai-0.2.2a1.dev2/src/iamai/logger.py +0 -51
- iamai-0.2.2a1.dev2/src/iamai/message.py +0 -162
- iamai-0.2.2a1.dev2/src/iamai/middleware/__init__.py +0 -134
- iamai-0.2.2a1.dev2/src/iamai/middleware/console.py +0 -207
- iamai-0.2.2a1.dev2/src/iamai/middleware/websockets.py +0 -218
- iamai-0.2.2a1.dev2/src/iamai/plugin.py +0 -242
- iamai-0.2.2a1.dev2/src/iamai/rule.py +0 -264
- iamai-0.2.2a1.dev2/src/iamai/typing.py +0 -120
- iamai-0.2.2a1.dev2/src/lib.rs +0 -68
- iamai-0.2.2a1.dev2/tests/test_minimal.py +0 -82
- iamai-0.2.2a1.dev2/tests/test_textual_ui.py +0 -124
- iamai-0.2.2a1.dev2/uv.lock +0 -2224
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
name: Bug report
|
|
2
|
+
description: Report a reproducible defect in the iamai runtime, CLI, adapters, or packaging.
|
|
3
|
+
title: "[Bug] "
|
|
4
|
+
labels:
|
|
5
|
+
- bug
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Please provide a minimal reproduction. Questions and usage help belong in GitHub Discussions.
|
|
11
|
+
|
|
12
|
+
- type: input
|
|
13
|
+
id: version
|
|
14
|
+
attributes:
|
|
15
|
+
label: iamai version or commit
|
|
16
|
+
description: Paste the installed version or full commit SHA.
|
|
17
|
+
placeholder: 0.3.0 or 87ba55b4a1e05c8d158f1f9b43cbf7b1afdcd2f0
|
|
18
|
+
validations:
|
|
19
|
+
required: true
|
|
20
|
+
|
|
21
|
+
- type: dropdown
|
|
22
|
+
id: surface
|
|
23
|
+
attributes:
|
|
24
|
+
label: Affected surface
|
|
25
|
+
options:
|
|
26
|
+
- Runtime lifecycle
|
|
27
|
+
- Event or message model
|
|
28
|
+
- Plugin or adapter lifecycle
|
|
29
|
+
- State backend
|
|
30
|
+
- CLI or configuration
|
|
31
|
+
- Python packaging
|
|
32
|
+
- Rust core
|
|
33
|
+
- Documentation or examples
|
|
34
|
+
- Other
|
|
35
|
+
validations:
|
|
36
|
+
required: true
|
|
37
|
+
|
|
38
|
+
- type: textarea
|
|
39
|
+
id: reproduction
|
|
40
|
+
attributes:
|
|
41
|
+
label: Minimal reproduction
|
|
42
|
+
description: Include the smallest code or repository that reproduces the problem.
|
|
43
|
+
render: python
|
|
44
|
+
validations:
|
|
45
|
+
required: true
|
|
46
|
+
|
|
47
|
+
- type: textarea
|
|
48
|
+
id: steps
|
|
49
|
+
attributes:
|
|
50
|
+
label: Steps to reproduce
|
|
51
|
+
placeholder: |
|
|
52
|
+
1. Install ...
|
|
53
|
+
2. Run ...
|
|
54
|
+
3. Observe ...
|
|
55
|
+
validations:
|
|
56
|
+
required: true
|
|
57
|
+
|
|
58
|
+
- type: textarea
|
|
59
|
+
id: expected
|
|
60
|
+
attributes:
|
|
61
|
+
label: Expected behavior
|
|
62
|
+
validations:
|
|
63
|
+
required: true
|
|
64
|
+
|
|
65
|
+
- type: textarea
|
|
66
|
+
id: actual
|
|
67
|
+
attributes:
|
|
68
|
+
label: Actual behavior and logs
|
|
69
|
+
description: Remove tokens, credentials, and private endpoints before posting.
|
|
70
|
+
render: shell
|
|
71
|
+
validations:
|
|
72
|
+
required: true
|
|
73
|
+
|
|
74
|
+
- type: textarea
|
|
75
|
+
id: environment
|
|
76
|
+
attributes:
|
|
77
|
+
label: Environment
|
|
78
|
+
placeholder: |
|
|
79
|
+
OS: macOS 15.5
|
|
80
|
+
Python: 3.12.4
|
|
81
|
+
Rust: 1.xx
|
|
82
|
+
Installer: uv 0.x
|
|
83
|
+
validations:
|
|
84
|
+
required: true
|
|
85
|
+
|
|
86
|
+
- type: textarea
|
|
87
|
+
id: regression
|
|
88
|
+
attributes:
|
|
89
|
+
label: Regression information
|
|
90
|
+
description: State the last known working version, or write "unknown".
|
|
91
|
+
validations:
|
|
92
|
+
required: true
|
|
93
|
+
|
|
94
|
+
- type: checkboxes
|
|
95
|
+
id: confirmations
|
|
96
|
+
attributes:
|
|
97
|
+
label: Confirmations
|
|
98
|
+
options:
|
|
99
|
+
- label: I searched existing issues and Discussions for duplicates.
|
|
100
|
+
required: true
|
|
101
|
+
- label: The reproduction and logs contain no secrets or private data.
|
|
102
|
+
required: true
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: Questions and design discussions
|
|
4
|
+
url: https://github.com/retrofor/iamai/discussions
|
|
5
|
+
about: Ask usage questions or discuss ideas before proposing a core change.
|
|
6
|
+
- name: Security vulnerability
|
|
7
|
+
url: https://github.com/retrofor/iamai/security/advisories/new
|
|
8
|
+
about: Report vulnerabilities privately instead of opening a public issue.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
name: Ecosystem submission
|
|
2
|
+
description: Publish an iamai plugin, adapter, ruleset, tool, template, or other ecosystem entry.
|
|
3
|
+
title: "[Ecosystem] "
|
|
4
|
+
labels:
|
|
5
|
+
- ecosystem-submission
|
|
6
|
+
- triage
|
|
7
|
+
body:
|
|
8
|
+
- type: markdown
|
|
9
|
+
attributes:
|
|
10
|
+
value: |
|
|
11
|
+
Thanks for publishing an iamai ecosystem entry. Maintainers will validate the package or repository before adding it to the public registry.
|
|
12
|
+
- type: dropdown
|
|
13
|
+
id: extension_type
|
|
14
|
+
attributes:
|
|
15
|
+
label: Extension type
|
|
16
|
+
options:
|
|
17
|
+
- plugin
|
|
18
|
+
- adapter
|
|
19
|
+
- ruleset
|
|
20
|
+
- permission
|
|
21
|
+
- state_backend
|
|
22
|
+
- agent_tool
|
|
23
|
+
- agent_skill
|
|
24
|
+
- middleware
|
|
25
|
+
- template
|
|
26
|
+
- example
|
|
27
|
+
- provider
|
|
28
|
+
- theme
|
|
29
|
+
validations:
|
|
30
|
+
required: true
|
|
31
|
+
- type: input
|
|
32
|
+
id: entry_id
|
|
33
|
+
attributes:
|
|
34
|
+
label: Registry entry id
|
|
35
|
+
description: Use a stable lowercase id such as plugin.echo or adapter.acme.
|
|
36
|
+
placeholder: plugin.echo
|
|
37
|
+
validations:
|
|
38
|
+
required: true
|
|
39
|
+
- type: input
|
|
40
|
+
id: display_name
|
|
41
|
+
attributes:
|
|
42
|
+
label: Display name
|
|
43
|
+
placeholder: Echo Plugin
|
|
44
|
+
validations:
|
|
45
|
+
required: true
|
|
46
|
+
- type: textarea
|
|
47
|
+
id: summary
|
|
48
|
+
attributes:
|
|
49
|
+
label: Summary
|
|
50
|
+
description: One sentence, 180 characters or fewer.
|
|
51
|
+
placeholder: Echo command plugin for local testing.
|
|
52
|
+
validations:
|
|
53
|
+
required: true
|
|
54
|
+
- type: input
|
|
55
|
+
id: package_name
|
|
56
|
+
attributes:
|
|
57
|
+
label: Python package
|
|
58
|
+
description: Required unless this entry is repository-only.
|
|
59
|
+
placeholder: iamai-plugin-echo
|
|
60
|
+
- type: input
|
|
61
|
+
id: repository_url
|
|
62
|
+
attributes:
|
|
63
|
+
label: Repository URL
|
|
64
|
+
description: Required unless this entry is package-only.
|
|
65
|
+
placeholder: https://github.com/you/iamai-plugin-echo
|
|
66
|
+
- type: textarea
|
|
67
|
+
id: runtime_capabilities
|
|
68
|
+
attributes:
|
|
69
|
+
label: Runtime capabilities
|
|
70
|
+
description: Comma or newline separated capabilities such as network:http, storage:sqlite, agent:tool, approval:required.
|
|
71
|
+
placeholder: network:http, storage:sqlite
|
|
72
|
+
- type: textarea
|
|
73
|
+
id: security_notes
|
|
74
|
+
attributes:
|
|
75
|
+
label: Security statement
|
|
76
|
+
description: Declare network access, credentials, dangerous actions, optional dependencies, or review notes.
|
|
77
|
+
placeholder: Requires outbound HTTPS and an API token stored in adapter config.
|
|
78
|
+
- type: textarea
|
|
79
|
+
id: permission_notes
|
|
80
|
+
attributes:
|
|
81
|
+
label: Permission notes
|
|
82
|
+
description: For Agent tools, declare permission name, input schema, audit fields, and whether human approval is required.
|
|
83
|
+
placeholder: permission=web.search; audit_fields=query,provider; approval=false
|
|
84
|
+
- type: textarea
|
|
85
|
+
id: registry_json
|
|
86
|
+
attributes:
|
|
87
|
+
label: Candidate registry JSON
|
|
88
|
+
description: Paste or keep the JSON generated by the documentation submission form.
|
|
89
|
+
render: json
|
|
90
|
+
validations:
|
|
91
|
+
required: true
|
|
92
|
+
- type: checkboxes
|
|
93
|
+
id: confirmations
|
|
94
|
+
attributes:
|
|
95
|
+
label: Confirmations
|
|
96
|
+
options:
|
|
97
|
+
- label: The package or repository is public and reachable.
|
|
98
|
+
required: true
|
|
99
|
+
- label: This submission contains no secrets, private endpoints, or unsafe install steps.
|
|
100
|
+
required: true
|
|
101
|
+
- label: I declared network access, credential needs, dangerous actions, and Agent tool permissions where applicable.
|
|
102
|
+
required: true
|
|
103
|
+
- label: I understand verification badges are assigned by iamai maintainers after review.
|
|
104
|
+
required: true
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
name: Feature request
|
|
2
|
+
description: Propose a scoped, testable change to the iamai core or ecosystem contract.
|
|
3
|
+
title: "[Feature] "
|
|
4
|
+
labels:
|
|
5
|
+
- enhancement
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
iamai keeps the core focused on a safe, testable runtime. Platform integrations and model-specific capabilities normally belong in external packages.
|
|
11
|
+
|
|
12
|
+
- type: textarea
|
|
13
|
+
id: problem
|
|
14
|
+
attributes:
|
|
15
|
+
label: Problem and user scenario
|
|
16
|
+
description: Describe the concrete workflow that is blocked today.
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
- type: dropdown
|
|
21
|
+
id: ownership
|
|
22
|
+
attributes:
|
|
23
|
+
label: Proposed ownership boundary
|
|
24
|
+
options:
|
|
25
|
+
- Core runtime or public API
|
|
26
|
+
- Official adapter or plugin
|
|
27
|
+
- External ecosystem package
|
|
28
|
+
- Documentation or example
|
|
29
|
+
- Unsure
|
|
30
|
+
validations:
|
|
31
|
+
required: true
|
|
32
|
+
|
|
33
|
+
- type: textarea
|
|
34
|
+
id: proposal
|
|
35
|
+
attributes:
|
|
36
|
+
label: Proposed change
|
|
37
|
+
description: Define the smallest behavior or contract that solves the scenario.
|
|
38
|
+
validations:
|
|
39
|
+
required: true
|
|
40
|
+
|
|
41
|
+
- type: textarea
|
|
42
|
+
id: alternatives
|
|
43
|
+
attributes:
|
|
44
|
+
label: Alternatives considered
|
|
45
|
+
description: Include existing plugins, adapters, or composition options you evaluated.
|
|
46
|
+
validations:
|
|
47
|
+
required: true
|
|
48
|
+
|
|
49
|
+
- type: textarea
|
|
50
|
+
id: compatibility
|
|
51
|
+
attributes:
|
|
52
|
+
label: Compatibility impact
|
|
53
|
+
description: Note public API, serialization, lifecycle, schema, packaging, or migration effects.
|
|
54
|
+
validations:
|
|
55
|
+
required: true
|
|
56
|
+
|
|
57
|
+
- type: textarea
|
|
58
|
+
id: acceptance
|
|
59
|
+
attributes:
|
|
60
|
+
label: Acceptance criteria
|
|
61
|
+
placeholder: |
|
|
62
|
+
- [ ] Observable behavior is defined.
|
|
63
|
+
- [ ] Backward compatibility is preserved or migration is documented.
|
|
64
|
+
- [ ] Tests cover the new contract.
|
|
65
|
+
validations:
|
|
66
|
+
required: true
|
|
67
|
+
|
|
68
|
+
- type: textarea
|
|
69
|
+
id: test_plan
|
|
70
|
+
attributes:
|
|
71
|
+
label: Test plan
|
|
72
|
+
description: Identify the unit, integration, conformance, or packaging checks that prove completion.
|
|
73
|
+
validations:
|
|
74
|
+
required: true
|
|
75
|
+
|
|
76
|
+
- type: checkboxes
|
|
77
|
+
id: confirmations
|
|
78
|
+
attributes:
|
|
79
|
+
label: Confirmations
|
|
80
|
+
options:
|
|
81
|
+
- label: I searched existing issues, the roadmap, and Discussions for duplicates.
|
|
82
|
+
required: true
|
|
83
|
+
- label: I have identified whether this belongs in core or the external ecosystem.
|
|
84
|
+
required: true
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
|
|
3
|
+
updates:
|
|
4
|
+
- package-ecosystem: "uv"
|
|
5
|
+
directory: "/"
|
|
6
|
+
schedule:
|
|
7
|
+
interval: "weekly"
|
|
8
|
+
day: "monday"
|
|
9
|
+
time: "09:00"
|
|
10
|
+
timezone: "Asia/Shanghai"
|
|
11
|
+
open-pull-requests-limit: 5
|
|
12
|
+
labels:
|
|
13
|
+
- "dependencies"
|
|
14
|
+
- "python:uv"
|
|
15
|
+
commit-message:
|
|
16
|
+
prefix: "deps(python)"
|
|
17
|
+
groups:
|
|
18
|
+
python-minor-and-patch:
|
|
19
|
+
patterns:
|
|
20
|
+
- "*"
|
|
21
|
+
update-types:
|
|
22
|
+
- "minor"
|
|
23
|
+
- "patch"
|
|
24
|
+
|
|
25
|
+
- package-ecosystem: "cargo"
|
|
26
|
+
directory: "/"
|
|
27
|
+
schedule:
|
|
28
|
+
interval: "weekly"
|
|
29
|
+
day: "monday"
|
|
30
|
+
time: "09:10"
|
|
31
|
+
timezone: "Asia/Shanghai"
|
|
32
|
+
open-pull-requests-limit: 5
|
|
33
|
+
labels:
|
|
34
|
+
- "dependencies"
|
|
35
|
+
- "rust"
|
|
36
|
+
commit-message:
|
|
37
|
+
prefix: "deps(rust)"
|
|
38
|
+
groups:
|
|
39
|
+
rust-minor-and-patch:
|
|
40
|
+
patterns:
|
|
41
|
+
- "*"
|
|
42
|
+
update-types:
|
|
43
|
+
- "minor"
|
|
44
|
+
- "patch"
|
|
45
|
+
|
|
46
|
+
- package-ecosystem: "github-actions"
|
|
47
|
+
directory: "/"
|
|
48
|
+
schedule:
|
|
49
|
+
interval: "weekly"
|
|
50
|
+
day: "monday"
|
|
51
|
+
time: "09:20"
|
|
52
|
+
timezone: "Asia/Shanghai"
|
|
53
|
+
open-pull-requests-limit: 5
|
|
54
|
+
labels:
|
|
55
|
+
- "dependencies"
|
|
56
|
+
- "github_actions"
|
|
57
|
+
commit-message:
|
|
58
|
+
prefix: "deps(actions)"
|
|
59
|
+
groups:
|
|
60
|
+
github-actions:
|
|
61
|
+
patterns:
|
|
62
|
+
- "*"
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- dev
|
|
7
|
+
pull_request:
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
concurrency:
|
|
11
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
12
|
+
cancel-in-progress: true
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
lint-and-rust:
|
|
19
|
+
name: Lint / Rust / Config
|
|
20
|
+
runs-on: ubuntu-24.04
|
|
21
|
+
steps:
|
|
22
|
+
- name: Check out repository
|
|
23
|
+
uses: actions/checkout@v6
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
uses: actions/setup-python@v6
|
|
27
|
+
with:
|
|
28
|
+
python-version: "3.12"
|
|
29
|
+
|
|
30
|
+
- name: Set up uv
|
|
31
|
+
uses: astral-sh/setup-uv@v8.3.2
|
|
32
|
+
with:
|
|
33
|
+
enable-cache: true
|
|
34
|
+
cache-local-path: .uv-cache
|
|
35
|
+
|
|
36
|
+
- name: Set up Rust
|
|
37
|
+
uses: dtolnay/rust-toolchain@stable
|
|
38
|
+
|
|
39
|
+
- name: Sync development dependencies
|
|
40
|
+
run: uv sync --locked --all-packages --group dev
|
|
41
|
+
|
|
42
|
+
- name: Run Ruff
|
|
43
|
+
run: uv run ruff check .
|
|
44
|
+
|
|
45
|
+
- name: Run Mypy
|
|
46
|
+
run: uv run python -m mypy
|
|
47
|
+
|
|
48
|
+
- name: Run Rust tests
|
|
49
|
+
run: cargo test --no-default-features
|
|
50
|
+
|
|
51
|
+
- name: Validate example configs
|
|
52
|
+
run: bash scripts/check_example_configs.sh
|
|
53
|
+
|
|
54
|
+
test:
|
|
55
|
+
name: Pytest (Python ${{ matrix.python-version }})
|
|
56
|
+
runs-on: ubuntu-24.04
|
|
57
|
+
strategy:
|
|
58
|
+
fail-fast: false
|
|
59
|
+
matrix:
|
|
60
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
61
|
+
steps:
|
|
62
|
+
- name: Check out repository
|
|
63
|
+
uses: actions/checkout@v6
|
|
64
|
+
|
|
65
|
+
- name: Set up Python
|
|
66
|
+
uses: actions/setup-python@v6
|
|
67
|
+
with:
|
|
68
|
+
python-version: ${{ matrix.python-version }}
|
|
69
|
+
|
|
70
|
+
- name: Set up uv
|
|
71
|
+
uses: astral-sh/setup-uv@v8.3.2
|
|
72
|
+
with:
|
|
73
|
+
enable-cache: true
|
|
74
|
+
cache-local-path: .uv-cache
|
|
75
|
+
|
|
76
|
+
- name: Set up Rust
|
|
77
|
+
uses: dtolnay/rust-toolchain@stable
|
|
78
|
+
|
|
79
|
+
- name: Sync test dependencies
|
|
80
|
+
run: uv sync --locked --all-packages --group dev --group docs
|
|
81
|
+
|
|
82
|
+
- name: Run pytest
|
|
83
|
+
run: uv run pytest
|
|
84
|
+
|
|
85
|
+
docs:
|
|
86
|
+
name: Docs
|
|
87
|
+
runs-on: ubuntu-24.04
|
|
88
|
+
steps:
|
|
89
|
+
- name: Check out repository
|
|
90
|
+
uses: actions/checkout@v6
|
|
91
|
+
|
|
92
|
+
- name: Set up Python
|
|
93
|
+
uses: actions/setup-python@v6
|
|
94
|
+
with:
|
|
95
|
+
python-version: "3.12"
|
|
96
|
+
|
|
97
|
+
- name: Set up uv
|
|
98
|
+
uses: astral-sh/setup-uv@v8.3.2
|
|
99
|
+
with:
|
|
100
|
+
enable-cache: true
|
|
101
|
+
cache-local-path: .uv-cache
|
|
102
|
+
|
|
103
|
+
- name: Set up Rust
|
|
104
|
+
uses: dtolnay/rust-toolchain@stable
|
|
105
|
+
|
|
106
|
+
- name: Sync documentation dependencies
|
|
107
|
+
run: uv sync --locked --group dev --group docs
|
|
108
|
+
|
|
109
|
+
- name: Build Sphinx docs
|
|
110
|
+
run: uv run sphinx-build -W --keep-going -b html docs docs/_build/html
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
---
|
|
2
|
+
# This file is autogenerated by maturin v1.13.1
|
|
3
|
+
# To update, run
|
|
4
|
+
#
|
|
5
|
+
# maturin generate-ci github -o CI.yml
|
|
6
|
+
#
|
|
7
|
+
name: release
|
|
8
|
+
on:
|
|
9
|
+
push:
|
|
10
|
+
tags: ['v*']
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
jobs:
|
|
15
|
+
validate:
|
|
16
|
+
name: Validate release source
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v6
|
|
20
|
+
- uses: actions/setup-python@v6
|
|
21
|
+
with:
|
|
22
|
+
python-version: 3.12
|
|
23
|
+
- uses: astral-sh/setup-uv@v8.3.2
|
|
24
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
25
|
+
- name: Sync workspace dependencies
|
|
26
|
+
run: uv sync --locked --all-packages --group dev --group docs
|
|
27
|
+
- name: Verify tag matches package version
|
|
28
|
+
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
|
29
|
+
run: |
|
|
30
|
+
package_version="$(uv run python -c 'import tomllib; print(tomllib.load(open("pyproject.toml", "rb"))["project"]["version"])')"
|
|
31
|
+
test "$GITHUB_REF_NAME" = "v$package_version"
|
|
32
|
+
- name: Run Python checks
|
|
33
|
+
run: |
|
|
34
|
+
uv run ruff check .
|
|
35
|
+
uv run mypy
|
|
36
|
+
uv run pytest
|
|
37
|
+
- name: Run Rust tests
|
|
38
|
+
run: cargo test --no-default-features
|
|
39
|
+
- name: Validate example configurations
|
|
40
|
+
run: bash scripts/check_example_configs.sh
|
|
41
|
+
linux:
|
|
42
|
+
needs: validate
|
|
43
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
44
|
+
strategy:
|
|
45
|
+
matrix:
|
|
46
|
+
platform:
|
|
47
|
+
- runner: ubuntu-22.04
|
|
48
|
+
target: x86_64
|
|
49
|
+
- runner: ubuntu-22.04
|
|
50
|
+
target: x86
|
|
51
|
+
- runner: ubuntu-22.04
|
|
52
|
+
target: aarch64
|
|
53
|
+
- runner: ubuntu-22.04
|
|
54
|
+
target: armv7
|
|
55
|
+
- runner: ubuntu-22.04
|
|
56
|
+
target: s390x
|
|
57
|
+
- runner: ubuntu-22.04
|
|
58
|
+
target: ppc64le
|
|
59
|
+
steps:
|
|
60
|
+
- uses: actions/checkout@v6
|
|
61
|
+
- uses: actions/setup-python@v6
|
|
62
|
+
with:
|
|
63
|
+
python-version: 3.11
|
|
64
|
+
- name: Build wheels
|
|
65
|
+
uses: PyO3/maturin-action@v1
|
|
66
|
+
with:
|
|
67
|
+
target: ${{ matrix.platform.target }}
|
|
68
|
+
args: --release --out dist --find-interpreter
|
|
69
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
70
|
+
manylinux: auto
|
|
71
|
+
- name: Upload wheels
|
|
72
|
+
uses: actions/upload-artifact@v6
|
|
73
|
+
with:
|
|
74
|
+
name: wheels-linux-${{ matrix.platform.target }}
|
|
75
|
+
path: dist
|
|
76
|
+
musllinux:
|
|
77
|
+
needs: validate
|
|
78
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
79
|
+
strategy:
|
|
80
|
+
matrix:
|
|
81
|
+
platform:
|
|
82
|
+
- runner: ubuntu-22.04
|
|
83
|
+
target: x86_64
|
|
84
|
+
- runner: ubuntu-22.04
|
|
85
|
+
target: x86
|
|
86
|
+
- runner: ubuntu-22.04
|
|
87
|
+
target: aarch64
|
|
88
|
+
- runner: ubuntu-22.04
|
|
89
|
+
target: armv7
|
|
90
|
+
steps:
|
|
91
|
+
- uses: actions/checkout@v6
|
|
92
|
+
- uses: actions/setup-python@v6
|
|
93
|
+
with:
|
|
94
|
+
python-version: 3.11
|
|
95
|
+
- name: Build wheels
|
|
96
|
+
uses: PyO3/maturin-action@v1
|
|
97
|
+
with:
|
|
98
|
+
target: ${{ matrix.platform.target }}
|
|
99
|
+
args: --release --out dist --find-interpreter
|
|
100
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
101
|
+
manylinux: musllinux_1_2
|
|
102
|
+
- name: Upload wheels
|
|
103
|
+
uses: actions/upload-artifact@v6
|
|
104
|
+
with:
|
|
105
|
+
name: wheels-musllinux-${{ matrix.platform.target }}
|
|
106
|
+
path: dist
|
|
107
|
+
windows:
|
|
108
|
+
needs: validate
|
|
109
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
110
|
+
strategy:
|
|
111
|
+
matrix:
|
|
112
|
+
platform:
|
|
113
|
+
- runner: windows-latest
|
|
114
|
+
target: x64
|
|
115
|
+
python_arch: x64
|
|
116
|
+
- runner: windows-latest
|
|
117
|
+
target: x86
|
|
118
|
+
python_arch: x86
|
|
119
|
+
- runner: windows-11-arm
|
|
120
|
+
target: aarch64
|
|
121
|
+
python_arch: arm64
|
|
122
|
+
steps:
|
|
123
|
+
- uses: actions/checkout@v6
|
|
124
|
+
- uses: actions/setup-python@v6
|
|
125
|
+
with:
|
|
126
|
+
python-version: 3.13
|
|
127
|
+
architecture: ${{ matrix.platform.python_arch }}
|
|
128
|
+
- name: Build wheels
|
|
129
|
+
uses: PyO3/maturin-action@v1
|
|
130
|
+
with:
|
|
131
|
+
target: ${{ matrix.platform.target }}
|
|
132
|
+
args: --release --out dist --find-interpreter
|
|
133
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
134
|
+
- name: Upload wheels
|
|
135
|
+
uses: actions/upload-artifact@v6
|
|
136
|
+
with:
|
|
137
|
+
name: wheels-windows-${{ matrix.platform.target }}
|
|
138
|
+
path: dist
|
|
139
|
+
macos:
|
|
140
|
+
needs: validate
|
|
141
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
142
|
+
strategy:
|
|
143
|
+
matrix:
|
|
144
|
+
platform:
|
|
145
|
+
- runner: macos-15-intel
|
|
146
|
+
target: x86_64
|
|
147
|
+
- runner: macos-latest
|
|
148
|
+
target: aarch64
|
|
149
|
+
steps:
|
|
150
|
+
- uses: actions/checkout@v6
|
|
151
|
+
- uses: actions/setup-python@v6
|
|
152
|
+
with:
|
|
153
|
+
python-version: 3.11
|
|
154
|
+
- name: Build wheels
|
|
155
|
+
uses: PyO3/maturin-action@v1
|
|
156
|
+
with:
|
|
157
|
+
target: ${{ matrix.platform.target }}
|
|
158
|
+
args: --release --out dist --find-interpreter
|
|
159
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
160
|
+
- name: Upload wheels
|
|
161
|
+
uses: actions/upload-artifact@v6
|
|
162
|
+
with:
|
|
163
|
+
name: wheels-macos-${{ matrix.platform.target }}
|
|
164
|
+
path: dist
|
|
165
|
+
sdist:
|
|
166
|
+
needs: validate
|
|
167
|
+
runs-on: ubuntu-latest
|
|
168
|
+
steps:
|
|
169
|
+
- uses: actions/checkout@v6
|
|
170
|
+
- name: Build sdist
|
|
171
|
+
uses: PyO3/maturin-action@v1
|
|
172
|
+
with:
|
|
173
|
+
command: sdist
|
|
174
|
+
args: --out dist
|
|
175
|
+
- name: Upload sdist
|
|
176
|
+
uses: actions/upload-artifact@v6
|
|
177
|
+
with:
|
|
178
|
+
name: wheels-sdist
|
|
179
|
+
path: dist
|
|
180
|
+
release:
|
|
181
|
+
name: Release
|
|
182
|
+
runs-on: ubuntu-latest
|
|
183
|
+
if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
|
|
184
|
+
needs: [linux, musllinux, windows, macos, sdist]
|
|
185
|
+
permissions:
|
|
186
|
+
# Use to sign the release artifacts
|
|
187
|
+
id-token: write
|
|
188
|
+
# Used to upload release artifacts
|
|
189
|
+
contents: write
|
|
190
|
+
# Used to generate artifact attestation
|
|
191
|
+
attestations: write
|
|
192
|
+
steps:
|
|
193
|
+
- uses: actions/download-artifact@v7
|
|
194
|
+
- name: Generate artifact attestation
|
|
195
|
+
uses: actions/attest-build-provenance@v3
|
|
196
|
+
with:
|
|
197
|
+
subject-path: wheels-*/*
|
|
198
|
+
- name: Install uv
|
|
199
|
+
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
|
200
|
+
uses: astral-sh/setup-uv@v8.3.2
|
|
201
|
+
- name: Publish to PyPI
|
|
202
|
+
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
|
203
|
+
run: uv publish --check-url https://pypi.org/simple 'wheels-*/*'
|
|
204
|
+
env:
|
|
205
|
+
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN || secrets.PYPI_TOKEN }}
|
|
206
|
+
- name: Create draft GitHub release
|
|
207
|
+
id: github_release
|
|
208
|
+
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
|
209
|
+
env:
|
|
210
|
+
GH_TOKEN: ${{ github.token }}
|
|
211
|
+
run: |
|
|
212
|
+
if gh release view "$GITHUB_REF_NAME" >/dev/null 2>&1; then
|
|
213
|
+
if [[ "$(gh release view "$GITHUB_REF_NAME" --json isDraft --jq .isDraft)" == "false" ]]; then
|
|
214
|
+
echo "already_published=true" >> "$GITHUB_OUTPUT"
|
|
215
|
+
exit 0
|
|
216
|
+
fi
|
|
217
|
+
gh release upload "$GITHUB_REF_NAME" wheels-*/* --clobber
|
|
218
|
+
else
|
|
219
|
+
gh release create "$GITHUB_REF_NAME" wheels-*/* \
|
|
220
|
+
--draft \
|
|
221
|
+
--generate-notes \
|
|
222
|
+
--title "$GITHUB_REF_NAME" \
|
|
223
|
+
--verify-tag
|
|
224
|
+
fi
|
|
225
|
+
- name: Publish GitHub release
|
|
226
|
+
if: ${{ startsWith(github.ref, 'refs/tags/') && steps.github_release.outputs.already_published != 'true' }}
|
|
227
|
+
env:
|
|
228
|
+
GH_TOKEN: ${{ github.token }}
|
|
229
|
+
run: gh release edit "$GITHUB_REF_NAME" --draft=false
|