@a5c-ai/triggers 5.0.1-staging.69cb593ea → 5.0.1-staging.6ab464ce4307
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 +63 -68
- package/package.json +7 -1
package/action.yml
CHANGED
|
@@ -147,75 +147,55 @@ runs:
|
|
|
147
147
|
id: resolve-runtime
|
|
148
148
|
shell: bash
|
|
149
149
|
env:
|
|
150
|
-
|
|
150
|
+
ACTION_REF: ${{ github.action_ref }}
|
|
151
151
|
run: |
|
|
152
152
|
set -euo pipefail
|
|
153
|
-
|
|
154
|
-
if [ -d "$
|
|
153
|
+
WORKSPACE="${GITHUB_WORKSPACE:-$(pwd)}"
|
|
154
|
+
if [ -d "$WORKSPACE/packages/agent-mux/cli" ] && [ -f "$WORKSPACE/packages/triggers/action.yml" ]; then
|
|
155
155
|
echo "mode=monorepo" >> "$GITHUB_OUTPUT"
|
|
156
|
-
echo "
|
|
156
|
+
echo "tag=staging" >> "$GITHUB_OUTPUT"
|
|
157
|
+
elif [ "$ACTION_REF" = "staging" ]; then
|
|
158
|
+
echo "mode=external" >> "$GITHUB_OUTPUT"
|
|
159
|
+
echo "tag=staging" >> "$GITHUB_OUTPUT"
|
|
157
160
|
else
|
|
158
|
-
echo "mode=
|
|
159
|
-
echo "
|
|
161
|
+
echo "mode=external" >> "$GITHUB_OUTPUT"
|
|
162
|
+
echo "tag=latest" >> "$GITHUB_OUTPUT"
|
|
160
163
|
fi
|
|
161
164
|
|
|
162
|
-
- name:
|
|
163
|
-
if: steps.resolve-runtime.outputs.mode == 'monorepo'
|
|
164
|
-
uses: actions/cache@v4
|
|
165
|
-
with:
|
|
166
|
-
path: |
|
|
167
|
-
${{ steps.resolve-runtime.outputs.repo_root }}/node_modules
|
|
168
|
-
${{ steps.resolve-runtime.outputs.repo_root }}/packages/**/dist
|
|
169
|
-
${{ steps.resolve-runtime.outputs.repo_root }}/packages/**/tsconfig.tsbuildinfo
|
|
170
|
-
key: triggers-build-${{ runner.os }}-${{ hashFiles(format('{0}/package-lock.json', steps.resolve-runtime.outputs.repo_root)) }}
|
|
171
|
-
restore-keys: |
|
|
172
|
-
triggers-build-${{ runner.os }}-
|
|
173
|
-
|
|
174
|
-
- name: Build agent-mux (monorepo)
|
|
175
|
-
if: steps.resolve-runtime.outputs.mode == 'monorepo'
|
|
165
|
+
- name: Install runtime packages
|
|
176
166
|
shell: bash
|
|
177
167
|
env:
|
|
178
|
-
|
|
168
|
+
NPM_TAG: ${{ steps.resolve-runtime.outputs.tag }}
|
|
179
169
|
run: |
|
|
180
170
|
set -euo pipefail
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
if [ ! -f "packages/agent-mux/cli/dist/index.js" ]; then
|
|
186
|
-
npm run build:agent-mux
|
|
187
|
-
fi
|
|
188
|
-
if [ ! -f "packages/triggers/dist/cli.js" ]; then
|
|
189
|
-
npm run build --workspace=@a5c-ai/triggers
|
|
190
|
-
fi
|
|
191
|
-
if [ ! -f "packages/sdk/dist/cli/main.js" ]; then
|
|
192
|
-
npm run build --workspace=@a5c-ai/babysitter-sdk
|
|
193
|
-
fi
|
|
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; }
|
|
194
175
|
|
|
195
176
|
- name: Install harness
|
|
196
177
|
if: ${{ inputs.harness != '' || inputs.adapter != '' }}
|
|
197
178
|
shell: bash
|
|
198
179
|
env:
|
|
199
|
-
ACTION_ROOT: ${{ github.action_path }}
|
|
200
|
-
RUNTIME_MODE: ${{ steps.resolve-runtime.outputs.mode }}
|
|
201
|
-
REPO_ROOT: ${{ steps.resolve-runtime.outputs.repo_root }}
|
|
202
180
|
INPUT_HARNESS: ${{ inputs.harness || inputs.adapter }}
|
|
203
181
|
INPUT_WORKING_DIRECTORY: ${{ inputs.working-directory }}
|
|
204
182
|
run: |
|
|
205
183
|
set -euo pipefail
|
|
206
184
|
cd "$INPUT_WORKING_DIRECTORY"
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
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
|
|
212
194
|
|
|
213
195
|
- name: Install babysitter plugin
|
|
214
196
|
if: ${{ inputs.babysitter-plugin == 'true' }}
|
|
215
197
|
shell: bash
|
|
216
198
|
env:
|
|
217
|
-
RUNTIME_MODE: ${{ steps.resolve-runtime.outputs.mode }}
|
|
218
|
-
REPO_ROOT: ${{ steps.resolve-runtime.outputs.repo_root }}
|
|
219
199
|
INPUT_HARNESS: ${{ inputs.harness || inputs.adapter }}
|
|
220
200
|
INPUT_WORKING_DIRECTORY: ${{ inputs.working-directory }}
|
|
221
201
|
INPUT_PROCESS_FILE: ${{ inputs.process-file }}
|
|
@@ -223,26 +203,35 @@ runs:
|
|
|
223
203
|
set -euo pipefail
|
|
224
204
|
cd "$INPUT_WORKING_DIRECTORY"
|
|
225
205
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
# External use — install from npm
|
|
235
|
-
npm install -g @a5c-ai/babysitter-sdk
|
|
236
|
-
BABYSITTER="babysitter"
|
|
237
|
-
fi
|
|
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
|
|
238
214
|
|
|
239
|
-
# Install babysitter plugin
|
|
240
|
-
|
|
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
|
|
241
229
|
|
|
242
|
-
# Copy process file if provided
|
|
230
|
+
# Copy process file if provided (skip if already in target dir)
|
|
243
231
|
if [ -n "$INPUT_PROCESS_FILE" ]; then
|
|
244
232
|
mkdir -p .a5c/processes
|
|
245
|
-
|
|
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/
|
|
246
235
|
fi
|
|
247
236
|
|
|
248
237
|
- name: Install plugins (legacy)
|
|
@@ -254,10 +243,9 @@ runs:
|
|
|
254
243
|
INPUT_PLUGINS: ${{ inputs.plugins }}
|
|
255
244
|
run: |
|
|
256
245
|
set -euo pipefail
|
|
257
|
-
REPO_ROOT=$(cd "$ACTION_ROOT/../.." && pwd)
|
|
258
246
|
while IFS= read -r plugin; do
|
|
259
247
|
[ -z "$plugin" ] && continue
|
|
260
|
-
|
|
248
|
+
amux plugin install "$INPUT_ADAPTER" "$plugin"
|
|
261
249
|
done <<< "$INPUT_PLUGINS"
|
|
262
250
|
|
|
263
251
|
- name: Evaluate trigger
|
|
@@ -271,21 +259,20 @@ runs:
|
|
|
271
259
|
EFFECTIVE_GITHUB_TOKEN: ${{ steps.a5c-token.outputs.a5c_token || inputs.github-token }}
|
|
272
260
|
run: |
|
|
273
261
|
set -euo pipefail
|
|
274
|
-
REPO_ROOT=$(cd "$ACTION_ROOT/../.." && pwd)
|
|
275
262
|
EVENT_FILE="$RUNNER_TEMP/agent-mux-event.json"
|
|
276
263
|
RESULT_FILE="$RUNNER_TEMP/agent-mux-trigger.json"
|
|
277
264
|
INCLUDE_DIFF_ARGS=()
|
|
278
265
|
if [ "$INPUT_INCLUDE_DIFF" = "true" ]; then
|
|
279
266
|
INCLUDE_DIFF_ARGS+=(--include-diff)
|
|
280
267
|
fi
|
|
281
|
-
|
|
268
|
+
triggers enrich \
|
|
282
269
|
--backend "$INPUT_TRIGGER_BACKEND" \
|
|
283
270
|
--token "$EFFECTIVE_GITHUB_TOKEN" \
|
|
284
271
|
"${INCLUDE_DIFF_ARGS[@]}" \
|
|
285
272
|
--output "$EVENT_FILE"
|
|
286
273
|
if [ -z "$INPUT_TRIGGER_QUERY" ]; then
|
|
287
274
|
echo '{"matched":true,"reasons":["no trigger query configured"]}' > "$RESULT_FILE"
|
|
288
|
-
elif
|
|
275
|
+
elif triggers evaluate \
|
|
289
276
|
--backend "$INPUT_TRIGGER_BACKEND" \
|
|
290
277
|
--query "$INPUT_TRIGGER_QUERY" \
|
|
291
278
|
--token "$EFFECTIVE_GITHUB_TOKEN" \
|
|
@@ -337,14 +324,22 @@ runs:
|
|
|
337
324
|
AMUX_TRIGGER_EVENT_PATH: ${{ steps.trigger.outputs.event }}
|
|
338
325
|
run: |
|
|
339
326
|
set -euo pipefail
|
|
340
|
-
|
|
341
|
-
|
|
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
|
|
342
337
|
|
|
343
338
|
# Build command args
|
|
344
339
|
ARGS=()
|
|
345
340
|
if [ "$INPUT_COMMAND" = "launch" ] || [ "$INPUT_COMMAND" = "run" ]; then
|
|
346
341
|
ARGS+=("$INPUT_COMMAND")
|
|
347
|
-
[ -n "$
|
|
342
|
+
[ -n "$AMUX_HARNESS" ] && ARGS+=("$AMUX_HARNESS")
|
|
348
343
|
[ -n "$INPUT_PROVIDER" ] && ARGS+=("$INPUT_PROVIDER")
|
|
349
344
|
else
|
|
350
345
|
ARGS+=("$INPUT_COMMAND")
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@a5c-ai/triggers",
|
|
3
|
-
"version": "5.0.1-staging.
|
|
3
|
+
"version": "5.0.1-staging.6ab464ce4307",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Event trigger normalization, enrichment, and filtering helpers for automation actions",
|
|
@@ -65,5 +65,11 @@
|
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@vitest/coverage-v8": "^4.1.4"
|
|
68
|
+
},
|
|
69
|
+
"atlas": {
|
|
70
|
+
"layers": [
|
|
71
|
+
"cross-cutting"
|
|
72
|
+
],
|
|
73
|
+
"muxes": []
|
|
68
74
|
}
|
|
69
75
|
}
|