@a5c-ai/triggers 5.0.1-staging.7dd7a3ea6 → 5.0.1-staging.7ea4b0cdaefa
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.
- package/action.yml +73 -31
- package/package.json +1 -1
package/action.yml
CHANGED
|
@@ -143,59 +143,95 @@ runs:
|
|
|
143
143
|
continue-on-error: true
|
|
144
144
|
uses: a5c-ai/generate-token-action@main
|
|
145
145
|
|
|
146
|
-
- name:
|
|
146
|
+
- name: Resolve action runtime
|
|
147
|
+
id: resolve-runtime
|
|
147
148
|
shell: bash
|
|
148
149
|
env:
|
|
149
|
-
|
|
150
|
+
ACTION_REF: ${{ github.action_ref }}
|
|
151
|
+
run: |
|
|
152
|
+
set -euo pipefail
|
|
153
|
+
WORKSPACE="${GITHUB_WORKSPACE:-$(pwd)}"
|
|
154
|
+
if [ -d "$WORKSPACE/packages/agent-mux/cli" ] && [ -f "$WORKSPACE/packages/triggers/action.yml" ]; then
|
|
155
|
+
echo "mode=monorepo" >> "$GITHUB_OUTPUT"
|
|
156
|
+
echo "tag=staging" >> "$GITHUB_OUTPUT"
|
|
157
|
+
elif [ "$ACTION_REF" = "staging" ]; then
|
|
158
|
+
echo "mode=external" >> "$GITHUB_OUTPUT"
|
|
159
|
+
echo "tag=staging" >> "$GITHUB_OUTPUT"
|
|
160
|
+
else
|
|
161
|
+
echo "mode=external" >> "$GITHUB_OUTPUT"
|
|
162
|
+
echo "tag=latest" >> "$GITHUB_OUTPUT"
|
|
163
|
+
fi
|
|
164
|
+
|
|
165
|
+
- name: Install runtime packages
|
|
166
|
+
shell: bash
|
|
167
|
+
env:
|
|
168
|
+
NPM_TAG: ${{ steps.resolve-runtime.outputs.tag }}
|
|
150
169
|
run: |
|
|
151
170
|
set -euo pipefail
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
npm
|
|
155
|
-
|
|
156
|
-
npm run build --workspace=@a5c-ai/triggers
|
|
171
|
+
echo "Installing @a5c-ai packages with tag: $NPM_TAG"
|
|
172
|
+
npm install -g --legacy-peer-deps @a5c-ai/agent-mux-cli@$NPM_TAG @a5c-ai/babysitter-sdk@$NPM_TAG @a5c-ai/triggers@$NPM_TAG
|
|
173
|
+
npm install -g --legacy-peer-deps @a5c-ai/hooks-mux-cli@$NPM_TAG 2>/dev/null || echo "hooks-mux-cli install skipped (optional)"
|
|
174
|
+
which amux && amux --version || { echo "ERROR: amux not found after install"; exit 1; }
|
|
157
175
|
|
|
158
176
|
- name: Install harness
|
|
159
177
|
if: ${{ inputs.harness != '' || inputs.adapter != '' }}
|
|
160
178
|
shell: bash
|
|
161
179
|
env:
|
|
162
|
-
ACTION_ROOT: ${{ github.action_path }}
|
|
163
180
|
INPUT_HARNESS: ${{ inputs.harness || inputs.adapter }}
|
|
164
181
|
INPUT_WORKING_DIRECTORY: ${{ inputs.working-directory }}
|
|
165
182
|
run: |
|
|
166
183
|
set -euo pipefail
|
|
167
|
-
REPO_ROOT=$(cd "$ACTION_ROOT/../.." && pwd)
|
|
168
184
|
cd "$INPUT_WORKING_DIRECTORY"
|
|
169
|
-
|
|
185
|
+
# Map adapter names to amux agent aliases
|
|
186
|
+
AMUX_AGENT="$INPUT_HARNESS"
|
|
187
|
+
case "$INPUT_HARNESS" in
|
|
188
|
+
claude-code) AMUX_AGENT="claude" ;;
|
|
189
|
+
gemini-cli) AMUX_AGENT="gemini" ;;
|
|
190
|
+
copilot-cli) AMUX_AGENT="copilot" ;;
|
|
191
|
+
cursor-cli) AMUX_AGENT="cursor" ;;
|
|
192
|
+
esac
|
|
193
|
+
amux install "$AMUX_AGENT" || true
|
|
170
194
|
|
|
171
195
|
- name: Install babysitter plugin
|
|
172
196
|
if: ${{ inputs.babysitter-plugin == 'true' }}
|
|
173
197
|
shell: bash
|
|
174
198
|
env:
|
|
175
|
-
ACTION_ROOT: ${{ github.action_path }}
|
|
176
199
|
INPUT_HARNESS: ${{ inputs.harness || inputs.adapter }}
|
|
177
200
|
INPUT_WORKING_DIRECTORY: ${{ inputs.working-directory }}
|
|
178
201
|
INPUT_PROCESS_FILE: ${{ inputs.process-file }}
|
|
179
202
|
run: |
|
|
180
203
|
set -euo pipefail
|
|
181
|
-
REPO_ROOT=$(cd "$ACTION_ROOT/../.." && pwd)
|
|
182
204
|
cd "$INPUT_WORKING_DIRECTORY"
|
|
183
205
|
|
|
184
|
-
#
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
206
|
+
# Map to SDK harness names
|
|
207
|
+
SDK_HARNESS="$INPUT_HARNESS"
|
|
208
|
+
case "$INPUT_HARNESS" in
|
|
209
|
+
claude-code) SDK_HARNESS="claude" ;;
|
|
210
|
+
gemini-cli) SDK_HARNESS="gemini" ;;
|
|
211
|
+
copilot-cli) SDK_HARNESS="copilot" ;;
|
|
212
|
+
cursor-cli) SDK_HARNESS="cursor" ;;
|
|
213
|
+
esac
|
|
191
214
|
|
|
192
|
-
# Install babysitter plugin
|
|
193
|
-
babysitter harness:install-plugin "$
|
|
215
|
+
# Install babysitter plugin — try SDK installer first, fall back to direct harness commands
|
|
216
|
+
if ! babysitter harness:install-plugin "$SDK_HARNESS" --workspace "$INPUT_WORKING_DIRECTORY" 2>/dev/null; then
|
|
217
|
+
echo "Plugin installer unavailable — installing plugin directly"
|
|
218
|
+
case "$SDK_HARNESS" in
|
|
219
|
+
claude)
|
|
220
|
+
claude plugin marketplace add a5c-ai/babysitter-claude 2>/dev/null || true
|
|
221
|
+
claude plugin install --scope project babysitter@a5c.ai 2>/dev/null || true
|
|
222
|
+
;;
|
|
223
|
+
*)
|
|
224
|
+
mkdir -p .a5c
|
|
225
|
+
echo '{"type":"module"}' > .a5c/package.json 2>/dev/null || true
|
|
226
|
+
;;
|
|
227
|
+
esac
|
|
228
|
+
fi
|
|
194
229
|
|
|
195
|
-
# Copy process file if provided
|
|
230
|
+
# Copy process file if provided (skip if already in target dir)
|
|
196
231
|
if [ -n "$INPUT_PROCESS_FILE" ]; then
|
|
197
232
|
mkdir -p .a5c/processes
|
|
198
|
-
|
|
233
|
+
TARGET=".a5c/processes/$(basename "$INPUT_PROCESS_FILE")"
|
|
234
|
+
[ "$(realpath "$INPUT_PROCESS_FILE" 2>/dev/null)" = "$(realpath "$TARGET" 2>/dev/null)" ] || cp "$INPUT_PROCESS_FILE" .a5c/processes/
|
|
199
235
|
fi
|
|
200
236
|
|
|
201
237
|
- name: Install plugins (legacy)
|
|
@@ -207,10 +243,9 @@ runs:
|
|
|
207
243
|
INPUT_PLUGINS: ${{ inputs.plugins }}
|
|
208
244
|
run: |
|
|
209
245
|
set -euo pipefail
|
|
210
|
-
REPO_ROOT=$(cd "$ACTION_ROOT/../.." && pwd)
|
|
211
246
|
while IFS= read -r plugin; do
|
|
212
247
|
[ -z "$plugin" ] && continue
|
|
213
|
-
|
|
248
|
+
amux plugin install "$INPUT_ADAPTER" "$plugin"
|
|
214
249
|
done <<< "$INPUT_PLUGINS"
|
|
215
250
|
|
|
216
251
|
- name: Evaluate trigger
|
|
@@ -224,21 +259,20 @@ runs:
|
|
|
224
259
|
EFFECTIVE_GITHUB_TOKEN: ${{ steps.a5c-token.outputs.a5c_token || inputs.github-token }}
|
|
225
260
|
run: |
|
|
226
261
|
set -euo pipefail
|
|
227
|
-
REPO_ROOT=$(cd "$ACTION_ROOT/../.." && pwd)
|
|
228
262
|
EVENT_FILE="$RUNNER_TEMP/agent-mux-event.json"
|
|
229
263
|
RESULT_FILE="$RUNNER_TEMP/agent-mux-trigger.json"
|
|
230
264
|
INCLUDE_DIFF_ARGS=()
|
|
231
265
|
if [ "$INPUT_INCLUDE_DIFF" = "true" ]; then
|
|
232
266
|
INCLUDE_DIFF_ARGS+=(--include-diff)
|
|
233
267
|
fi
|
|
234
|
-
|
|
268
|
+
triggers enrich \
|
|
235
269
|
--backend "$INPUT_TRIGGER_BACKEND" \
|
|
236
270
|
--token "$EFFECTIVE_GITHUB_TOKEN" \
|
|
237
271
|
"${INCLUDE_DIFF_ARGS[@]}" \
|
|
238
272
|
--output "$EVENT_FILE"
|
|
239
273
|
if [ -z "$INPUT_TRIGGER_QUERY" ]; then
|
|
240
274
|
echo '{"matched":true,"reasons":["no trigger query configured"]}' > "$RESULT_FILE"
|
|
241
|
-
elif
|
|
275
|
+
elif triggers evaluate \
|
|
242
276
|
--backend "$INPUT_TRIGGER_BACKEND" \
|
|
243
277
|
--query "$INPUT_TRIGGER_QUERY" \
|
|
244
278
|
--token "$EFFECTIVE_GITHUB_TOKEN" \
|
|
@@ -290,14 +324,22 @@ runs:
|
|
|
290
324
|
AMUX_TRIGGER_EVENT_PATH: ${{ steps.trigger.outputs.event }}
|
|
291
325
|
run: |
|
|
292
326
|
set -euo pipefail
|
|
293
|
-
|
|
294
|
-
|
|
327
|
+
AMUX="amux"
|
|
328
|
+
|
|
329
|
+
# Map harness names to amux aliases
|
|
330
|
+
AMUX_HARNESS="$INPUT_HARNESS"
|
|
331
|
+
case "$INPUT_HARNESS" in
|
|
332
|
+
claude-code) AMUX_HARNESS="claude" ;;
|
|
333
|
+
gemini-cli) AMUX_HARNESS="gemini" ;;
|
|
334
|
+
copilot-cli) AMUX_HARNESS="copilot" ;;
|
|
335
|
+
cursor-cli) AMUX_HARNESS="cursor" ;;
|
|
336
|
+
esac
|
|
295
337
|
|
|
296
338
|
# Build command args
|
|
297
339
|
ARGS=()
|
|
298
340
|
if [ "$INPUT_COMMAND" = "launch" ] || [ "$INPUT_COMMAND" = "run" ]; then
|
|
299
341
|
ARGS+=("$INPUT_COMMAND")
|
|
300
|
-
[ -n "$
|
|
342
|
+
[ -n "$AMUX_HARNESS" ] && ARGS+=("$AMUX_HARNESS")
|
|
301
343
|
[ -n "$INPUT_PROVIDER" ] && ARGS+=("$INPUT_PROVIDER")
|
|
302
344
|
else
|
|
303
345
|
ARGS+=("$INPUT_COMMAND")
|
package/package.json
CHANGED