@@ -29,6 +29,9 @@ create() {
29
29
30
30
prompt () {
31
31
requiredenvs CODER_URL CODER_SESSION_TOKEN WORKSPACE_NAME PROMPT
32
+
33
+ wait
34
+
32
35
username=$( curl \
33
36
--fail \
34
37
--header" Coder-Session-Token:${CODER_SESSION_TOKEN} " \
@@ -56,6 +59,43 @@ prompt() {
56
59
echo " Failed to send prompt"
57
60
exit 1
58
61
fi
62
+
63
+ wait
64
+ }
65
+
66
+ wait () {
67
+ requiredenvs CODER_URL CODER_SESSION_TOKEN WORKSPACE_NAME PROMPT
68
+ username=$( curl \
69
+ --fail \
70
+ --header" Coder-Session-Token:${CODER_SESSION_TOKEN} " \
71
+ --location \
72
+ --show-error \
73
+ --silent \
74
+ " ${CODER_URL} /api/v2/users/me" | jq -r' .username' )
75
+
76
+ payload=" {
77
+ \" content\" :\" ${PROMPT} \" ,
78
+ \" type\" :\" user\"
79
+ }"
80
+
81
+ for attempt in {1..600}; do
82
+ response=$( curl \
83
+ --data-raw" ${payload} " \
84
+ --fail \
85
+ --header" Content-Type: application/json" \
86
+ --header" Coder-Session-Token:${CODER_SESSION_TOKEN} " \
87
+ --location \
88
+ --request GET \
89
+ --show-error \
90
+ --silent \
91
+ " ${CODER_URL} /@${username} /${WORKSPACE_NAME} /apps/agentapi/status" | jq -r' .status' )
92
+ if [[" ${response} " == " stable" ]]; then
93
+ echo " AgentAPI stable"
94
+ break
95
+ fi
96
+ echo " Waiting for AgentAPI to report stable status (attempt${attempt} /600)"
97
+ sleep 1
98
+ done
59
99
}
60
100
61
101
archive () {
@@ -98,6 +138,9 @@ main() {
98
138
delete)
99
139
delete
100
140
;;
141
+ wait)
142
+ wait
143
+ ;;
101
144
* )
102
145
echo " Unknown option:$1 "
103
146
usage