yumoqing 5d4e70da8e feat: complete missing UI files and API endpoints for hermes-web-cli
- Added all missing .ui files referenced in index.ui:
  * new_session.ui
  * sessions.ui
  * services.ui
  * settings.ui
  * session_detail.ui
  * add_service.ui
  * edit_service.ui

- Created corresponding .dspy API endpoints with proper directory structure:
  * /hermes-web-cli/services → services/index.dspy
  * /hermes-web-cli/services/list → services/list/index.dspy
  * /hermes-web-cli/services/{id} → services/id/index.dspy
  * /hermes-web-cli/services/test?id={id} → services/test/index.dspy
  * /hermes-web-cli/sessions (POST) → sessions/index.dspy
  * /hermes-web-cli/sessions/messages?session_id={id} → sessions/messages/index.dspy
  * /hermes-web-cli/settings → settings/index.dspy
  * /hermes-web-cli/settings/reset → settings/reset/index.dspy

- Fixed UI styling to comply with bricks-framework (removed nested style objects)
- Updated URL references to use query parameters instead of path parameters for dynamic routes
- All files follow production-ready module development specifications
2026-04-22 11:22:44 +08:00

60 lines
2.0 KiB
Plaintext

# This is a controlled Python script (.dspy file) that will be executed by the web framework
# It provides the API endpoint for /hermes-web-cli/sessions (POST to create)
import json
import os
from hermes_web_cli.init import create_session
def main():
"""Main function to handle the create session API request."""
try:
# Get request method
request_method = os.environ.get('REQUEST_METHOD', 'GET')
if request_method == 'POST':
# Read POST data from stdin
content_length = int(os.environ.get('CONTENT_LENGTH', 0))
if content_length > 0:
post_data = json.loads(os.read(0, content_length).decode('utf-8'))
service_id = post_data.get('service_id')
initial_message = post_data.get('initial_message')
if not service_id or not initial_message:
return {
"status": "error",
"message": "service_id and initial_message are required",
"data": None
}
# Create session
session_id = create_session(service_id, initial_message)
return {
"status": "success",
"data": {
"session_id": session_id,
"service_id": service_id
}
}
else:
return {
"status": "error",
"message": "No POST data provided",
"data": None
}
else:
return {
"status": "error",
"message": "Method not allowed",
"data": None
}
except Exception as e:
return {
"status": "error",
"message": str(e),
"data": None
}
# Execute and return JSON response
result = main()
print(json.dumps(result, ensure_ascii=False))