service-forge 0.1.41__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.
Potentially problematic release.
This version of service-forge might be problematic. Click here for more details.
- service_forge-0.1.41/.gitignore +45 -0
- service_forge-0.1.41/.gitmodules +3 -0
- service_forge-0.1.41/.python-version +1 -0
- service_forge-0.1.41/PKG-INFO +102 -0
- service_forge-0.1.41/README.md +62 -0
- service_forge-0.1.41/build-and-push-base.sh +49 -0
- service_forge-0.1.41/config_format.md +589 -0
- service_forge-0.1.41/configs/service/test_service.yaml +17 -0
- service_forge-0.1.41/configs/service/test_service_websocket.yaml +10 -0
- service_forge-0.1.41/configs/workflow/test_fastapi_node.yaml +12 -0
- service_forge-0.1.41/configs/workflow/test_if.yaml +19 -0
- service_forge-0.1.41/configs/workflow/test_if_console_input.yaml +29 -0
- service_forge-0.1.41/configs/workflow/test_kafka_api_node.yaml +15 -0
- service_forge-0.1.41/configs/workflow/test_query_llm.yaml +19 -0
- service_forge-0.1.41/configs/workflow/test_sub_workflow.yaml +45 -0
- service_forge-0.1.41/configs/workflow/test_switch.yaml +22 -0
- service_forge-0.1.41/configs/workflow/test_websocket.yaml +37 -0
- service_forge-0.1.41/docker-compose.yaml +199 -0
- service_forge-0.1.41/dockerfile.base +30 -0
- service_forge-0.1.41/dockerfile.service.example +15 -0
- service_forge-0.1.41/docs/WebSocket_API.md +528 -0
- service_forge-0.1.41/docs/javascript_client_example.js +184 -0
- service_forge-0.1.41/docs/sft_config_api_guide.md +260 -0
- service_forge-0.1.41/example/tag-service/.env.example +46 -0
- service_forge-0.1.41/example/tag-service/.sftignore +1 -0
- service_forge-0.1.41/example/tag-service/Dockerfile +17 -0
- service_forge-0.1.41/example/tag-service/README.md +0 -0
- service_forge-0.1.41/example/tag-service/alembic/README +1 -0
- service_forge-0.1.41/example/tag-service/alembic/env.py +110 -0
- service_forge-0.1.41/example/tag-service/alembic/script.py.mako +28 -0
- service_forge-0.1.41/example/tag-service/alembic/versions/3c2f486fa1d4_change_user_id_to_string.py +41 -0
- service_forge-0.1.41/example/tag-service/alembic/versions/483c59e9a5e1_add_type.py +28 -0
- service_forge-0.1.41/example/tag-service/alembic/versions/5fbbb21acc92_add_description_and_example.py +30 -0
- service_forge-0.1.41/example/tag-service/alembic/versions/78e0ab93b1e5_add_user_id.py +28 -0
- service_forge-0.1.41/example/tag-service/alembic/versions/8ff25e2b3fd9_create_database.py +37 -0
- service_forge-0.1.41/example/tag-service/alembic.ini +147 -0
- service_forge-0.1.41/example/tag-service/config.py +102 -0
- service_forge-0.1.41/example/tag-service/configs/service.yaml +65 -0
- service_forge-0.1.41/example/tag-service/configs/workflow/create_tag_workflow.yaml +22 -0
- service_forge-0.1.41/example/tag-service/configs/workflow/delete_tag_workflow.yaml +22 -0
- service_forge-0.1.41/example/tag-service/configs/workflow/get_tags_from_record.yaml +23 -0
- service_forge-0.1.41/example/tag-service/configs/workflow/kafka_workflow.yaml +28 -0
- service_forge-0.1.41/example/tag-service/configs/workflow/query_tags_param_workflow.yaml +23 -0
- service_forge-0.1.41/example/tag-service/configs/workflow/query_tags_workflow.yaml +23 -0
- service_forge-0.1.41/example/tag-service/configs/workflow/test_a2a_workflow.yaml +28 -0
- service_forge-0.1.41/example/tag-service/configs/workflow/test_context_workflow.yaml +26 -0
- service_forge-0.1.41/example/tag-service/configs/workflow/test_sse_workflow.yaml +22 -0
- service_forge-0.1.41/example/tag-service/configs/workflow/test_websocket_workflow.yaml +21 -0
- service_forge-0.1.41/example/tag-service/configs/workflow/update_tag_workflow.yaml +22 -0
- service_forge-0.1.41/example/tag-service/deployment.yaml +38 -0
- service_forge-0.1.41/example/tag-service/main.py +43 -0
- service_forge-0.1.41/example/tag-service/migrate.py +119 -0
- service_forge-0.1.41/example/tag-service/model/db/tag_base.py +19 -0
- service_forge-0.1.41/example/tag-service/model/http/create_tag_model.py +6 -0
- service_forge-0.1.41/example/tag-service/model/http/delete_tag_model.py +4 -0
- service_forge-0.1.41/example/tag-service/model/http/query_tags_model.py +8 -0
- service_forge-0.1.41/example/tag-service/model/http/test_sse_model.py +4 -0
- service_forge-0.1.41/example/tag-service/model/http/update_tag_model.py +7 -0
- service_forge-0.1.41/example/tag-service/nodes/__init__.py +9 -0
- service_forge-0.1.41/example/tag-service/nodes/get_tags_node.py +79 -0
- service_forge-0.1.41/example/tag-service/nodes/http_create_tag_node.py +31 -0
- service_forge-0.1.41/example/tag-service/nodes/http_delete_tag_node.py +35 -0
- service_forge-0.1.41/example/tag-service/nodes/http_query_tags_node.py +83 -0
- service_forge-0.1.41/example/tag-service/nodes/http_update_tag_node.py +39 -0
- service_forge-0.1.41/example/tag-service/nodes/test_a2a_node.py +24 -0
- service_forge-0.1.41/example/tag-service/nodes/test_context_node.py +24 -0
- service_forge-0.1.41/example/tag-service/nodes/test_sse_node.py +23 -0
- service_forge-0.1.41/example/tag-service/nodes/test_websocket_node.py +24 -0
- service_forge-0.1.41/example/tag-service/prompt/default_tag.json +24 -0
- service_forge-0.1.41/example/tag-service/prompt/get_tags.md +39 -0
- service_forge-0.1.41/example/tag-service/proto/.git +1 -0
- service_forge-0.1.41/example/tag-service/proto/.github/workflows/update_template.yml +38 -0
- service_forge-0.1.41/example/tag-service/proto/.gitignore +48 -0
- service_forge-0.1.41/example/tag-service/proto/Makefile +55 -0
- service_forge-0.1.41/example/tag-service/proto/README.md +109 -0
- service_forge-0.1.41/example/tag-service/proto/__init__.py +1 -0
- service_forge-0.1.41/example/tag-service/proto/entryService/chat_message.pb.go +243 -0
- service_forge-0.1.41/example/tag-service/proto/entryService/chat_message_pb2.py +39 -0
- service_forge-0.1.41/example/tag-service/proto/entryService/chat_message_pb2.pyi +35 -0
- service_forge-0.1.41/example/tag-service/proto/entryService/record.pb.go +271 -0
- service_forge-0.1.41/example/tag-service/proto/entryService/record_pb2.py +37 -0
- service_forge-0.1.41/example/tag-service/proto/entryService/record_pb2.pyi +45 -0
- service_forge-0.1.41/example/tag-service/proto/intentService/intent.pb.go +59 -0
- service_forge-0.1.41/example/tag-service/proto/intentService/intent_pb2.py +35 -0
- service_forge-0.1.41/example/tag-service/proto/intentService/intent_pb2.pyi +4 -0
- service_forge-0.1.41/example/tag-service/proto/intentService/intent_response.pb.go +299 -0
- service_forge-0.1.41/example/tag-service/proto/intentService/intent_response_pb2.py +39 -0
- service_forge-0.1.41/example/tag-service/proto/intentService/intent_response_pb2.pyi +51 -0
- service_forge-0.1.41/example/tag-service/proto/intentService/record_group.pb.go +158 -0
- service_forge-0.1.41/example/tag-service/proto/intentService/record_group_pb2.py +37 -0
- service_forge-0.1.41/example/tag-service/proto/intentService/record_group_pb2.pyi +19 -0
- service_forge-0.1.41/example/tag-service/proto/parse_topics.py +235 -0
- service_forge-0.1.41/example/tag-service/proto/proto/entryService/chat_message.proto +21 -0
- service_forge-0.1.41/example/tag-service/proto/proto/entryService/record.proto +25 -0
- service_forge-0.1.41/example/tag-service/proto/proto/intentService/intent.proto +21 -0
- service_forge-0.1.41/example/tag-service/proto/proto/intentService/intent_response.proto +30 -0
- service_forge-0.1.41/example/tag-service/proto/proto/intentService/record_group.proto +13 -0
- service_forge-0.1.41/example/tag-service/proto/proto/scheduleService/schedule.proto +12 -0
- service_forge-0.1.41/example/tag-service/proto/proto/tagService/tag.proto +12 -0
- service_forge-0.1.41/example/tag-service/proto/pyproject.toml +10 -0
- service_forge-0.1.41/example/tag-service/proto/scheduleService/schedule.pb.go +149 -0
- service_forge-0.1.41/example/tag-service/proto/scheduleService/schedule_pb2.py +37 -0
- service_forge-0.1.41/example/tag-service/proto/scheduleService/schedule_pb2.pyi +17 -0
- service_forge-0.1.41/example/tag-service/proto/tagService/tag.pb.go +150 -0
- service_forge-0.1.41/example/tag-service/proto/tagService/tag_pb2.py +37 -0
- service_forge-0.1.41/example/tag-service/proto/tagService/tag_pb2.pyi +19 -0
- service_forge-0.1.41/example/tag-service/proto/topics.go +17 -0
- service_forge-0.1.41/example/tag-service/proto/topics.py +16 -0
- service_forge-0.1.41/example/tag-service/proto/topics.yaml +102 -0
- service_forge-0.1.41/example/tag-service/proto/uv.lock +58 -0
- service_forge-0.1.41/example/tag-service/pyproject.toml +15 -0
- service_forge-0.1.41/example/tag-service/sf-meta.yaml +26 -0
- service_forge-0.1.41/example/tag-service/start.sh +10 -0
- service_forge-0.1.41/example/tag-service/tests/test_service_router.py +315 -0
- service_forge-0.1.41/example/tag-service/tests/test_websocket_client.py +159 -0
- service_forge-0.1.41/main.py +27 -0
- service_forge-0.1.41/prompt/test_query_llm_prompt.txt +1 -0
- service_forge-0.1.41/prompt/test_query_llm_system_prompt.txt +1 -0
- service_forge-0.1.41/publish_pypi.sh +4 -0
- service_forge-0.1.41/pyproject.toml +64 -0
- service_forge-0.1.41/scripts/cleanup_feedback_demo.sh +24 -0
- service_forge-0.1.41/scripts/create_feedback_table.py +49 -0
- service_forge-0.1.41/scripts/kafka_consumer.py +132 -0
- service_forge-0.1.41/scripts/start_feedback_demo.sh +134 -0
- service_forge-0.1.41/scripts/tag_kafka_producer.py +51 -0
- service_forge-0.1.41/scripts/tag_kafka_producer_json.py +42 -0
- service_forge-0.1.41/scripts/test_kafka.py +16 -0
- service_forge-0.1.41/scripts/view_feedback_db.sh +54 -0
- service_forge-0.1.41/src/service_forge/__init__.py +0 -0
- service_forge-0.1.41/src/service_forge/api/http_api.py +143 -0
- service_forge-0.1.41/src/service_forge/api/http_api_doc.py +455 -0
- service_forge-0.1.41/src/service_forge/api/kafka_api.py +214 -0
- service_forge-0.1.41/src/service_forge/api/routers/feedback/feedback_router.py +148 -0
- service_forge-0.1.41/src/service_forge/api/routers/meta_api/meta_api_router.py +57 -0
- service_forge-0.1.41/src/service_forge/api/routers/service/service_router.py +163 -0
- service_forge-0.1.41/src/service_forge/api/routers/trace/trace_router.py +326 -0
- service_forge-0.1.41/src/service_forge/api/routers/websocket/websocket_manager.py +83 -0
- service_forge-0.1.41/src/service_forge/api/routers/websocket/websocket_router.py +146 -0
- service_forge-0.1.41/src/service_forge/api/service_studio.py +9 -0
- service_forge-0.1.41/src/service_forge/current_service.py +14 -0
- service_forge-0.1.41/src/service_forge/db/__init__.py +1 -0
- service_forge-0.1.41/src/service_forge/db/database.py +254 -0
- service_forge-0.1.41/src/service_forge/db/migrations/feedback_migration.py +154 -0
- service_forge-0.1.41/src/service_forge/db/models/__init__.py +0 -0
- service_forge-0.1.41/src/service_forge/db/models/feedback.py +33 -0
- service_forge-0.1.41/src/service_forge/execution_context.py +106 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/CreateNewNodeDialog-DkrEMxSH.js +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/CreateNewNodeDialog-DwFcBiGp.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/EditorSidePanel-BNVms9Fq.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/EditorSidePanel-DZbB3ILL.js +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/FeedbackPanel-CC8HX7Yo.js +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/FeedbackPanel-ClgniIVk.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/FormattedCodeViewer.vue_vue_type_script_setup_true_lang-BNuI1NCs.js +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/NodeDetailWrapper-BqFFM7-r.js +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/NodeDetailWrapper-pZBxv3J0.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/TestRunningDialog-D0GrCoYs.js +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/TestRunningDialog-dhXOsPgH.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/TracePanelWrapper-B9zvDSc_.js +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/TracePanelWrapper-BiednCrq.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/WorkflowEditor-CcaGGbko.js +3 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/WorkflowEditor-CmasOOYK.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/WorkflowList-Copuwi-a.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/WorkflowList-LrRJ7B7h.js +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/WorkflowStudio-CthjgII2.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/WorkflowStudio-FCyhGD4y.js +2 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/api-BDer3rj7.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/api-DyiqpKJK.js +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/code-editor-DBSql_sc.js +12 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/el-collapse-item-D4LG0FJ0.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/el-empty-D4ZqTl4F.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/el-form-item-BWkJzdQ_.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/el-input-D6B3r8CH.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/el-select-B0XIb2QK.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/el-tag-DljBBxJR.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/element-ui-D3x2y3TA.js +12 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/elkjs-Dm5QV7uy.js +24 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/highlightjs-D4ATuRwX.js +3 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/index-BMvodlwc.js +2 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/index-CjSe8i2q.css +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/js-yaml-yTPt38rv.js +32 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/time-DKCKV6Ug.js +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/ui-components-DQ7-U3pr.js +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/vue-core-DL-LgTX0.js +1 -0
- service_forge-0.1.41/src/service_forge/frontend/static/assets/vue-flow-Dn7R8GPr.js +39 -0
- service_forge-0.1.41/src/service_forge/frontend/static/index.html +16 -0
- service_forge-0.1.41/src/service_forge/frontend/static/vite.svg +1 -0
- service_forge-0.1.41/src/service_forge/llm/__init__.py +67 -0
- service_forge-0.1.41/src/service_forge/llm/llm.py +56 -0
- service_forge-0.1.41/src/service_forge/model/__init__.py +0 -0
- service_forge-0.1.41/src/service_forge/model/feedback.py +30 -0
- service_forge-0.1.41/src/service_forge/model/meta_api/__init__.py +0 -0
- service_forge-0.1.41/src/service_forge/model/meta_api/schema.py +29 -0
- service_forge-0.1.41/src/service_forge/model/trace.py +82 -0
- service_forge-0.1.41/src/service_forge/model/websocket.py +13 -0
- service_forge-0.1.41/src/service_forge/proto/foo_input.py +5 -0
- service_forge-0.1.41/src/service_forge/service.py +308 -0
- service_forge-0.1.41/src/service_forge/service_config.py +58 -0
- service_forge-0.1.41/src/service_forge/sft/cli.py +130 -0
- service_forge-0.1.41/src/service_forge/sft/cmd/config_command.py +67 -0
- service_forge-0.1.41/src/service_forge/sft/cmd/deploy_service.py +123 -0
- service_forge-0.1.41/src/service_forge/sft/cmd/list_tars.py +41 -0
- service_forge-0.1.41/src/service_forge/sft/cmd/remote_deploy.py +160 -0
- service_forge-0.1.41/src/service_forge/sft/cmd/remote_list_tars.py +111 -0
- service_forge-0.1.41/src/service_forge/sft/cmd/service_command.py +149 -0
- service_forge-0.1.41/src/service_forge/sft/cmd/upload_service.py +36 -0
- service_forge-0.1.41/src/service_forge/sft/config/injector.py +176 -0
- service_forge-0.1.41/src/service_forge/sft/config/injector_default_files.py +143 -0
- service_forge-0.1.41/src/service_forge/sft/config/sf_metadata.py +34 -0
- service_forge-0.1.41/src/service_forge/sft/config/sft_config.py +218 -0
- service_forge-0.1.41/src/service_forge/sft/file/__init__.py +0 -0
- service_forge-0.1.41/src/service_forge/sft/file/ignore_pattern.py +80 -0
- service_forge-0.1.41/src/service_forge/sft/file/sft_file_manager.py +107 -0
- service_forge-0.1.41/src/service_forge/sft/kubernetes/kubernetes_manager.py +257 -0
- service_forge-0.1.41/src/service_forge/sft/util/assert_util.py +24 -0
- service_forge-0.1.41/src/service_forge/sft/util/logger.py +16 -0
- service_forge-0.1.41/src/service_forge/sft/util/name_util.py +8 -0
- service_forge-0.1.41/src/service_forge/sft/util/yaml_utils.py +57 -0
- service_forge-0.1.41/src/service_forge/storage/__init__.py +5 -0
- service_forge-0.1.41/src/service_forge/storage/feedback_storage.py +245 -0
- service_forge-0.1.41/src/service_forge/telemetry.py +66 -0
- service_forge-0.1.41/src/service_forge/utils/__init__.py +0 -0
- service_forge-0.1.41/src/service_forge/utils/default_type_converter.py +12 -0
- service_forge-0.1.41/src/service_forge/utils/register.py +39 -0
- service_forge-0.1.41/src/service_forge/utils/type_converter.py +104 -0
- service_forge-0.1.41/src/service_forge/utils/workflow_clone.py +124 -0
- service_forge-0.1.41/src/service_forge/workflow/__init__.py +1 -0
- service_forge-0.1.41/src/service_forge/workflow/context.py +14 -0
- service_forge-0.1.41/src/service_forge/workflow/edge.py +24 -0
- service_forge-0.1.41/src/service_forge/workflow/node.py +431 -0
- service_forge-0.1.41/src/service_forge/workflow/nodes/__init__.py +8 -0
- service_forge-0.1.41/src/service_forge/workflow/nodes/control/if_node.py +29 -0
- service_forge-0.1.41/src/service_forge/workflow/nodes/control/switch_node.py +28 -0
- service_forge-0.1.41/src/service_forge/workflow/nodes/input/console_input_node.py +26 -0
- service_forge-0.1.41/src/service_forge/workflow/nodes/llm/query_llm_node.py +41 -0
- service_forge-0.1.41/src/service_forge/workflow/nodes/nested/workflow_node.py +28 -0
- service_forge-0.1.41/src/service_forge/workflow/nodes/output/kafka_output_node.py +27 -0
- service_forge-0.1.41/src/service_forge/workflow/nodes/output/print_node.py +29 -0
- service_forge-0.1.41/src/service_forge/workflow/nodes/test/if_console_input_node.py +33 -0
- service_forge-0.1.41/src/service_forge/workflow/nodes/test/time_consuming_node.py +62 -0
- service_forge-0.1.41/src/service_forge/workflow/port.py +89 -0
- service_forge-0.1.41/src/service_forge/workflow/trigger.py +28 -0
- service_forge-0.1.41/src/service_forge/workflow/triggers/__init__.py +6 -0
- service_forge-0.1.41/src/service_forge/workflow/triggers/a2a_api_trigger.py +257 -0
- service_forge-0.1.41/src/service_forge/workflow/triggers/fast_api_trigger.py +238 -0
- service_forge-0.1.41/src/service_forge/workflow/triggers/kafka_api_trigger.py +47 -0
- service_forge-0.1.41/src/service_forge/workflow/triggers/once_trigger.py +23 -0
- service_forge-0.1.41/src/service_forge/workflow/triggers/period_trigger.py +29 -0
- service_forge-0.1.41/src/service_forge/workflow/triggers/websocket_api_trigger.py +216 -0
- service_forge-0.1.41/src/service_forge/workflow/workflow.py +313 -0
- service_forge-0.1.41/src/service_forge/workflow/workflow_callback.py +164 -0
- service_forge-0.1.41/src/service_forge/workflow/workflow_config.py +67 -0
- service_forge-0.1.41/src/service_forge/workflow/workflow_event.py +15 -0
- service_forge-0.1.41/src/service_forge/workflow/workflow_factory.py +260 -0
- service_forge-0.1.41/src/service_forge/workflow/workflow_group.py +51 -0
- service_forge-0.1.41/src/service_forge/workflow/workflow_type.py +52 -0
- service_forge-0.1.41/tests/__init__.py +2 -0
- service_forge-0.1.41/tests/test_a2a_client.py +143 -0
- service_forge-0.1.41/tests/test_sdk_ws.py +437 -0
- service_forge-0.1.41/tests/test_workflow.py +71 -0
- service_forge-0.1.41/tests/test_workflow_config.py +9 -0
- service_forge-0.1.41/tests/websocket_client_test.py +256 -0
- service_forge-0.1.41/uv.lock +2091 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Python-generated files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[oc]
|
|
4
|
+
build/
|
|
5
|
+
dist/
|
|
6
|
+
wheels/
|
|
7
|
+
*.egg-info
|
|
8
|
+
|
|
9
|
+
# Virtual environments
|
|
10
|
+
.venv
|
|
11
|
+
venv/
|
|
12
|
+
|
|
13
|
+
# General
|
|
14
|
+
.DS_Store
|
|
15
|
+
__MACOSX/
|
|
16
|
+
.AppleDouble
|
|
17
|
+
.LSOverride
|
|
18
|
+
Icon[]
|
|
19
|
+
CLAUDE.md
|
|
20
|
+
|
|
21
|
+
# Thumbnails
|
|
22
|
+
._*
|
|
23
|
+
|
|
24
|
+
# Files that might appear in the root of a volume
|
|
25
|
+
.DocumentRevisions-V100
|
|
26
|
+
.fseventsd
|
|
27
|
+
.Spotlight-V100
|
|
28
|
+
.TemporaryItems
|
|
29
|
+
.Trashes
|
|
30
|
+
.VolumeIcon.icns
|
|
31
|
+
.com.apple.timemachine.donotpresent
|
|
32
|
+
|
|
33
|
+
# Directories potentially created on remote AFP share
|
|
34
|
+
.AppleDB
|
|
35
|
+
.AppleDesktop
|
|
36
|
+
Network Trash Folder
|
|
37
|
+
Temporary Items
|
|
38
|
+
.apdisk
|
|
39
|
+
|
|
40
|
+
.env
|
|
41
|
+
.vscode/settings.json
|
|
42
|
+
.vscode/launch.json
|
|
43
|
+
.idea
|
|
44
|
+
example/tag-service/.vscode/settings.json
|
|
45
|
+
client_id.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.11
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: service-forge
|
|
3
|
+
Version: 0.1.41
|
|
4
|
+
Summary: Add your description here
|
|
5
|
+
Author-email: euxcet <zcc.qwer@gmail.com>
|
|
6
|
+
Requires-Python: >=3.11
|
|
7
|
+
Requires-Dist: a2a-sdk>=0.3.22
|
|
8
|
+
Requires-Dist: aiokafka>=0.12.0
|
|
9
|
+
Requires-Dist: alembic>=1.17.0
|
|
10
|
+
Requires-Dist: asyncpg>=0.30.0
|
|
11
|
+
Requires-Dist: dotenv>=0.9.9
|
|
12
|
+
Requires-Dist: fastapi>=0.119.1
|
|
13
|
+
Requires-Dist: greenlet>=3.2.4
|
|
14
|
+
Requires-Dist: jinja2>=3.1.6
|
|
15
|
+
Requires-Dist: kubernetes>=28.0.0
|
|
16
|
+
Requires-Dist: loguru>=0.7.3
|
|
17
|
+
Requires-Dist: omegaconf>=2.3.0
|
|
18
|
+
Requires-Dist: openai>=2.3.0
|
|
19
|
+
Requires-Dist: opentelemetry-api>=1.38.0
|
|
20
|
+
Requires-Dist: opentelemetry-exporter-otlp>=1.38.0
|
|
21
|
+
Requires-Dist: opentelemetry-sdk>=1.38.0
|
|
22
|
+
Requires-Dist: protobuf>=6.33.1
|
|
23
|
+
Requires-Dist: psycopg2-binary>=2.9.11
|
|
24
|
+
Requires-Dist: pydantic>=2.12.0
|
|
25
|
+
Requires-Dist: pymongo>=4.15.5
|
|
26
|
+
Requires-Dist: pytest-asyncio>=1.2.0
|
|
27
|
+
Requires-Dist: pytest>=8.4.2
|
|
28
|
+
Requires-Dist: python-dotenv>=1.1.1
|
|
29
|
+
Requires-Dist: python-jose>=3.5.0
|
|
30
|
+
Requires-Dist: python-multipart>=0.0.20
|
|
31
|
+
Requires-Dist: redis>=7.1.0
|
|
32
|
+
Requires-Dist: requests>=2.32.5
|
|
33
|
+
Requires-Dist: restrictedpython>=8.0
|
|
34
|
+
Requires-Dist: rich>=13.0.0
|
|
35
|
+
Requires-Dist: sqlalchemy>=2.0.44
|
|
36
|
+
Requires-Dist: typer>=0.12.0
|
|
37
|
+
Requires-Dist: uvicorn>=0.38.0
|
|
38
|
+
Requires-Dist: websockets>=15.0.1
|
|
39
|
+
Description-Content-Type: text/markdown
|
|
40
|
+
|
|
41
|
+
# Service Forge
|
|
42
|
+
|
|
43
|
+
Automated service creation and maintenance tool.
|
|
44
|
+
|
|
45
|
+
## Install
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pip install -e .
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## CLI Usage (sft)
|
|
52
|
+
|
|
53
|
+
Service Forge 提供了命令行工具 `sft` 用于服务管理。
|
|
54
|
+
|
|
55
|
+
### 服务上传和部署
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# 上传服务(打包并上传到服务器)
|
|
59
|
+
sft upload [project_path]
|
|
60
|
+
|
|
61
|
+
# 列出本地已打包的服务包
|
|
62
|
+
sft list
|
|
63
|
+
|
|
64
|
+
# 部署服务(只在服务器上使用)
|
|
65
|
+
sft deploy <name> <version>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 配置管理
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# 列出所有配置项
|
|
72
|
+
sft config list
|
|
73
|
+
|
|
74
|
+
# 获取指定配置项的值
|
|
75
|
+
sft config get <key>
|
|
76
|
+
|
|
77
|
+
# 设置配置项的值
|
|
78
|
+
sft config set <key> <value>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 服务管理
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# 列出所有服务
|
|
85
|
+
sft service list
|
|
86
|
+
|
|
87
|
+
# 删除服务(只在服务器上使用)
|
|
88
|
+
sft service delete <service_name> [--force, -f]
|
|
89
|
+
|
|
90
|
+
# 查看服务日志(只在服务器上使用)
|
|
91
|
+
sft service logs <service_name> [--container, -c] [--tail, -n] [--follow, -f] [--previous, -p]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## TODO
|
|
95
|
+
|
|
96
|
+
- [ ] Workflow相关更加精确的报错信息
|
|
97
|
+
- [ ] 完善通用节点
|
|
98
|
+
- [ ] 服务之间的相互调用
|
|
99
|
+
- [ ] 节点自动生成
|
|
100
|
+
- [ ] proto管理和注入
|
|
101
|
+
- [ ] 服务存活心跳包
|
|
102
|
+
- [ ] 各种类型的测试
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Service Forge
|
|
2
|
+
|
|
3
|
+
Automated service creation and maintenance tool.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install -e .
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## CLI Usage (sft)
|
|
12
|
+
|
|
13
|
+
Service Forge 提供了命令行工具 `sft` 用于服务管理。
|
|
14
|
+
|
|
15
|
+
### 服务上传和部署
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# 上传服务(打包并上传到服务器)
|
|
19
|
+
sft upload [project_path]
|
|
20
|
+
|
|
21
|
+
# 列出本地已打包的服务包
|
|
22
|
+
sft list
|
|
23
|
+
|
|
24
|
+
# 部署服务(只在服务器上使用)
|
|
25
|
+
sft deploy <name> <version>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 配置管理
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# 列出所有配置项
|
|
32
|
+
sft config list
|
|
33
|
+
|
|
34
|
+
# 获取指定配置项的值
|
|
35
|
+
sft config get <key>
|
|
36
|
+
|
|
37
|
+
# 设置配置项的值
|
|
38
|
+
sft config set <key> <value>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 服务管理
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# 列出所有服务
|
|
45
|
+
sft service list
|
|
46
|
+
|
|
47
|
+
# 删除服务(只在服务器上使用)
|
|
48
|
+
sft service delete <service_name> [--force, -f]
|
|
49
|
+
|
|
50
|
+
# 查看服务日志(只在服务器上使用)
|
|
51
|
+
sft service logs <service_name> [--container, -c] [--tail, -n] [--follow, -f] [--previous, -p]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## TODO
|
|
55
|
+
|
|
56
|
+
- [ ] Workflow相关更加精确的报错信息
|
|
57
|
+
- [ ] 完善通用节点
|
|
58
|
+
- [ ] 服务之间的相互调用
|
|
59
|
+
- [ ] 节点自动生成
|
|
60
|
+
- [ ] proto管理和注入
|
|
61
|
+
- [ ] 服务存活心跳包
|
|
62
|
+
- [ ] 各种类型的测试
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# 一键 Docker 构建和上传 service-forge 基础镜像脚本
|
|
3
|
+
# 配置参数
|
|
4
|
+
IMAGE_NAME="service-forge"
|
|
5
|
+
REGISTRY_ADDRESS="crpi-cev6qq28wwgwwj0y.cn-beijing.personal.cr.aliyuncs.com"
|
|
6
|
+
REPOSITORY_NAMESPACE="nexthci"
|
|
7
|
+
REPOSITORY_NAME="service-forge"
|
|
8
|
+
VERSION="latest"
|
|
9
|
+
DOCKERFILE="dockerfile.base"
|
|
10
|
+
|
|
11
|
+
echo "=== 开始构建 service-forge 基础镜像 ==="
|
|
12
|
+
|
|
13
|
+
if [ ! -f "$DOCKERFILE" ]; then
|
|
14
|
+
echo "错误: 找不到基础镜像 Dockerfile $DOCKERFILE!"
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
# 1. 构建 Docker 镜像
|
|
19
|
+
echo "步骤 1/3: 构建 Docker 基础镜像..."
|
|
20
|
+
docker build -f $DOCKERFILE -t $IMAGE_NAME:latest .
|
|
21
|
+
if [ $? -ne 0 ]; then
|
|
22
|
+
echo "错误: Docker 基础镜像构建失败!"
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
echo "✓ 基础镜像构建成功"
|
|
26
|
+
|
|
27
|
+
# 2. 获取镜像ID并标记
|
|
28
|
+
echo "步骤 2/3: 标记基础镜像..."
|
|
29
|
+
IMAGE_ID=$(docker images -q $IMAGE_NAME:latest)
|
|
30
|
+
if [ -z "$IMAGE_ID" ]; then
|
|
31
|
+
echo "错误: 找不到 $IMAGE_NAME:latest 镜像!"
|
|
32
|
+
exit 1
|
|
33
|
+
fi
|
|
34
|
+
TARGET_IMAGE="$REGISTRY_ADDRESS/$REPOSITORY_NAMESPACE/$REPOSITORY_NAME:$VERSION"
|
|
35
|
+
docker tag $IMAGE_ID $TARGET_IMAGE
|
|
36
|
+
echo "✓ 基础镜像标记完成: $TARGET_IMAGE"
|
|
37
|
+
|
|
38
|
+
# 3. 推送镜像
|
|
39
|
+
echo "步骤 3/3: 推送基础镜像到仓库..."
|
|
40
|
+
docker push $TARGET_IMAGE
|
|
41
|
+
if [ $? -ne 0 ]; then
|
|
42
|
+
echo "错误: 基础镜像推送失败!"
|
|
43
|
+
exit 1
|
|
44
|
+
fi
|
|
45
|
+
echo "✓ 基础镜像推送成功"
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
echo "=== 基础镜像构建完成 ==="
|
|
49
|
+
echo "基础镜像地址: $TARGET_IMAGE"
|