feat: select workspace by name via /workspaces/lookup
Add workspace_name input; the runner resolves it to a workspace_id through
GET {api_base}/workspaces/lookup?user_id=... before uploading the agent.
workspace_id remains as an explicit override. Name matching is NFC-normalized
(handles Korean NFD/NFC) with a case-insensitive fallback, and a no-match
error lists the available workspace names. Requires one of name/id.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -21,9 +21,11 @@
|
||||
# 그러면 api_base = http://agent-backend:8000 (container_name, 내부 포트 8000).
|
||||
#
|
||||
# 실행 흐름 (SKILL.md §0.6 경로 A):
|
||||
# upload-agent 등록 → SSE start → stage_complete 자동 confirm → execution_complete
|
||||
# workspaces/lookup(이름→UUID) → upload-agent 등록 → SSE start →
|
||||
# stage_complete 자동 confirm → execution_complete
|
||||
# stage_error 발생 시 세션을 cancel 하고 실패 처리한다.
|
||||
# 전체 이벤트 로그 / final_output / summary 는 아티팩트로 저장된다.
|
||||
# ※ workspace_name(작업실 이름) 또는 workspace_id(UUID) 중 하나는 반드시 지정.
|
||||
#
|
||||
# 실행 시간 상한 (주의):
|
||||
# Gitea 의 [actions] ENDLESS_TASK_TIMEOUT 과 act_runner 의 runner.timeout 기본값이
|
||||
@@ -48,10 +50,15 @@ on:
|
||||
required: false
|
||||
default: 'jsahn'
|
||||
type: string
|
||||
workspace_id:
|
||||
description: 'AgentBackend workspace_id'
|
||||
workspace_name:
|
||||
description: '작업실 이름 (예: 팬아웃 테스트). GET /workspaces/lookup 으로 UUID 자동 해석'
|
||||
required: false
|
||||
default: 'e1d0baed-cec9-44af-9989-b7aab09bcfd1'
|
||||
default: ''
|
||||
type: string
|
||||
workspace_id:
|
||||
description: '작업실 UUID 직접 지정(override). 비우면 workspace_name 으로 해석'
|
||||
required: false
|
||||
default: ''
|
||||
type: string
|
||||
user_input:
|
||||
description: 'Agent 에 전달할 user_input'
|
||||
@@ -95,16 +102,18 @@ jobs:
|
||||
YAML_PATH: ${{ inputs.yaml_path }}
|
||||
API_BASE: ${{ inputs.api_base }}
|
||||
AGENT_USER_ID: ${{ inputs.user_id }}
|
||||
AGENT_WORKSPACE_NAME: ${{ inputs.workspace_name }}
|
||||
AGENT_WORKSPACE_ID: ${{ inputs.workspace_id }}
|
||||
AGENT_USER_INPUT: ${{ inputs.user_input }}
|
||||
START_STAGE_INDEX: ${{ inputs.start_stage_index }}
|
||||
MAX_RUNTIME_SECONDS: ${{ inputs.max_runtime_seconds }}
|
||||
# '=' 형식 필수: user_input 이 '-' 로 시작하는 자유 텍스트여도 argparse 가 값으로 인식
|
||||
# '=' 형식 필수: 값이 '-' 로 시작하는 자유 텍스트여도 argparse 가 값으로 인식
|
||||
run: |
|
||||
python scripts/run_agent_api.py \
|
||||
--yaml-path="$YAML_PATH" \
|
||||
--api-base="$API_BASE" \
|
||||
--user-id="$AGENT_USER_ID" \
|
||||
--workspace-name="$AGENT_WORKSPACE_NAME" \
|
||||
--workspace-id="$AGENT_WORKSPACE_ID" \
|
||||
--user-input="$AGENT_USER_INPUT" \
|
||||
--start-stage-index="$START_STAGE_INDEX" \
|
||||
|
||||
Reference in New Issue
Block a user