// foreach_control — 輸出第一個元素,Cypher Executor 負責迭代 // //go:build tinygo package main import ( "encoding/json" "io" "os" ) type Input struct { Items []json.RawMessage `json:"items"` ItemKey string `json:"item_key"` } func main() { raw, err := io.ReadAll(os.Stdin) if err != nil { writeError("failed to read stdin: " + err.Error()) return } var input Input if err := json.Unmarshal(raw, &input); err != nil { writeError("invalid input JSON: " + err.Error()) return } if len(input.Items) == 0 { writeError("items 不能為空") return } itemKey := input.ItemKey if itemKey == "" { itemKey = "item" } out, _ := json.Marshal(map[string]interface{}{ "success": true, "data": map[string]interface{}{ "items": input.Items, "count": len(input.Items), "current_index": 0, "current_item": input.Items[0], "item_key": itemKey, }, }) os.Stdout.Write(out) } func writeError(msg string) { out, _ := json.Marshal(map[string]interface{}{"success": false, "error": msg}) os.Stdout.Write(out) }