@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.
Files changed (2) hide show
  1. package/action.yml +73 -31
  2. 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: Build agent-mux action runtime
146
+ - name: Resolve action runtime
147
+ id: resolve-runtime
147
148
  shell: bash
148
149
  env:
149
- ACTION_ROOT: ${{ github.action_path }}
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
- REPO_ROOT=$(cd "$ACTION_ROOT/../.." && pwd)
153
- cd "$REPO_ROOT"
154
- npm ci
155
- npm run build:agent-mux
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
- node "$REPO_ROOT/packages/agent-mux/cli/dist/index.js" install "$INPUT_HARNESS" || true
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
- # Generate plugins if in monorepo with generator script
185
- if [ -f "$REPO_ROOT/package.json" ] && node -e "process.exit(JSON.parse(require('fs').readFileSync('$REPO_ROOT/package.json','utf8')).scripts?.['generate:plugins'] ? 0 : 1)" 2>/dev/null; then
186
- cd "$REPO_ROOT" && npm run generate:plugins && cd "$INPUT_WORKING_DIRECTORY"
187
- fi
188
-
189
- # Install SDK globally
190
- npm install -g @a5c-ai/babysitter-sdk || npm install -g "$REPO_ROOT/packages/sdk"
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 into harness
193
- babysitter harness:install-plugin "$INPUT_HARNESS" --workspace "$INPUT_WORKING_DIRECTORY"
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
- cp "$INPUT_PROCESS_FILE" .a5c/processes/
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
- node "$REPO_ROOT/packages/agent-mux/cli/dist/index.js" plugin install "$INPUT_ADAPTER" "$plugin"
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
- node "$REPO_ROOT/packages/triggers/dist/cli.js" enrich \
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 node "$REPO_ROOT/packages/triggers/dist/cli.js" evaluate \
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
- REPO_ROOT=$(cd "$ACTION_ROOT/../.." && pwd)
294
- AMUX="node $REPO_ROOT/packages/agent-mux/cli/dist/index.js"
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 "$INPUT_HARNESS" ] && ARGS+=("$INPUT_HARNESS")
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@a5c-ai/triggers",
3
- "version": "5.0.1-staging.7dd7a3ea6",
3
+ "version": "5.0.1-staging.7ea4b0cdaefa",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Event trigger normalization, enrichment, and filtering helpers for automation actions",