@fitlab-ai/agent-infra 0.5.2 → 0.5.4

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 (85) hide show
  1. package/README.md +3 -3
  2. package/README.zh-CN.md +3 -3
  3. package/lib/merge.js +22 -7
  4. package/lib/sandbox/commands/rm.js +1 -1
  5. package/lib/sandbox/runtimes/base.dockerfile +17 -1
  6. package/package.json +1 -1
  7. package/templates/.agents/rules/issue-pr-commands.github.en.md +25 -9
  8. package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +25 -9
  9. package/templates/.agents/rules/issue-sync.github.en.md +111 -23
  10. package/templates/.agents/rules/issue-sync.github.zh-CN.md +105 -17
  11. package/templates/.agents/rules/milestone-inference.github.en.md +13 -6
  12. package/templates/.agents/rules/milestone-inference.github.zh-CN.md +13 -6
  13. package/templates/.agents/rules/pr-sync.github.en.md +3 -1
  14. package/templates/.agents/rules/pr-sync.github.zh-CN.md +3 -1
  15. package/templates/.agents/scripts/platform-adapters/platform-sync.github.js +1080 -0
  16. package/templates/.agents/scripts/validate-artifact.js +54 -805
  17. package/templates/.agents/skills/analyze-task/SKILL.en.md +4 -4
  18. package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +4 -4
  19. package/templates/.agents/skills/analyze-task/config/verify.json +1 -1
  20. package/templates/.agents/skills/archive-tasks/scripts/archive-tasks.sh +1 -1
  21. package/templates/.agents/skills/block-task/SKILL.en.md +4 -4
  22. package/templates/.agents/skills/block-task/SKILL.zh-CN.md +4 -4
  23. package/templates/.agents/skills/block-task/config/verify.json +1 -1
  24. package/templates/.agents/skills/cancel-task/SKILL.en.md +18 -18
  25. package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +18 -18
  26. package/templates/.agents/skills/cancel-task/config/verify.json +1 -1
  27. package/templates/.agents/skills/close-codescan/SKILL.en.md +2 -2
  28. package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +2 -2
  29. package/templates/.agents/skills/close-dependabot/SKILL.en.md +2 -2
  30. package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +2 -2
  31. package/templates/.agents/skills/commit/SKILL.en.md +15 -3
  32. package/templates/.agents/skills/commit/SKILL.zh-CN.md +15 -3
  33. package/templates/.agents/skills/commit/config/verify.json +2 -1
  34. package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +23 -0
  35. package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +23 -0
  36. package/templates/.agents/skills/commit/reference/task-status-update.en.md +2 -2
  37. package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +2 -2
  38. package/templates/.agents/skills/complete-task/SKILL.en.md +13 -13
  39. package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +13 -13
  40. package/templates/.agents/skills/complete-task/config/verify.json +1 -1
  41. package/templates/.agents/skills/create-issue/SKILL.en.md +4 -2
  42. package/templates/.agents/skills/create-issue/SKILL.zh-CN.md +4 -2
  43. package/templates/.agents/skills/create-issue/config/verify.json +1 -1
  44. package/templates/.agents/skills/create-issue/reference/label-and-type.en.md +6 -1
  45. package/templates/.agents/skills/create-issue/reference/label-and-type.zh-CN.md +6 -1
  46. package/templates/.agents/skills/create-pr/SKILL.en.md +5 -5
  47. package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +5 -5
  48. package/templates/.agents/skills/create-pr/config/verify.json +1 -1
  49. package/templates/.agents/skills/create-pr/reference/pr-body-template.en.md +9 -5
  50. package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +9 -5
  51. package/templates/.agents/skills/create-task/SKILL.en.md +4 -4
  52. package/templates/.agents/skills/create-task/SKILL.zh-CN.md +4 -4
  53. package/templates/.agents/skills/create-task/config/verify.json +1 -1
  54. package/templates/.agents/skills/implement-task/SKILL.en.md +6 -6
  55. package/templates/.agents/skills/implement-task/SKILL.zh-CN.md +6 -6
  56. package/templates/.agents/skills/implement-task/config/verify.json +1 -2
  57. package/templates/.agents/skills/import-codescan/SKILL.en.md +2 -2
  58. package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +2 -2
  59. package/templates/.agents/skills/import-codescan/config/verify.json +1 -1
  60. package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -2
  61. package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +2 -2
  62. package/templates/.agents/skills/import-dependabot/config/verify.json +1 -1
  63. package/templates/.agents/skills/import-issue/SKILL.en.md +5 -5
  64. package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +5 -5
  65. package/templates/.agents/skills/import-issue/config/verify.json +1 -1
  66. package/templates/.agents/skills/plan-task/SKILL.en.md +4 -4
  67. package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +4 -4
  68. package/templates/.agents/skills/plan-task/config/verify.json +1 -1
  69. package/templates/.agents/skills/refine-task/SKILL.en.md +4 -6
  70. package/templates/.agents/skills/refine-task/SKILL.zh-CN.md +4 -6
  71. package/templates/.agents/skills/refine-task/config/verify.json +1 -2
  72. package/templates/.agents/skills/refine-title/SKILL.en.md +5 -1
  73. package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +5 -1
  74. package/templates/.agents/skills/restore-task/SKILL.en.md +2 -2
  75. package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +2 -2
  76. package/templates/.agents/skills/restore-task/config/verify.json +1 -1
  77. package/templates/.agents/skills/review-task/SKILL.en.md +4 -4
  78. package/templates/.agents/skills/review-task/SKILL.zh-CN.md +4 -4
  79. package/templates/.agents/skills/review-task/config/verify.json +1 -1
  80. package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +1 -1
  81. package/templates/.agents/templates/task.en.md +3 -3
  82. package/templates/.agents/templates/task.zh-CN.md +3 -3
  83. package/templates/.github/workflows/metadata-sync.yml +127 -0
  84. package/templates/.github/workflows/pr-label.yml +75 -0
  85. package/templates/.github/workflows/status-label.yml +12 -8
@@ -0,0 +1,75 @@
1
+ name: PR Label & Assignee
2
+
3
+ on:
4
+ pull_request_target:
5
+ types: [opened, synchronize]
6
+
7
+ permissions:
8
+ contents: read
9
+ issues: write
10
+ pull-requests: write
11
+
12
+ concurrency:
13
+ group: pr-label-${{ github.event.pull_request.number }}
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ label-and-assign:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - name: Checkout base branch
21
+ uses: actions/checkout@v4
22
+
23
+ - name: Sync in-labels
24
+ env:
25
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26
+ PR_NUMBER: ${{ github.event.pull_request.number }}
27
+ run: |
28
+ changed_files=$(gh api "repos/$GITHUB_REPOSITORY/pulls/$PR_NUMBER/files" \
29
+ --paginate --jq '[.[].filename]')
30
+
31
+ should_labels=$(jq -rn \
32
+ --argjson files "$changed_files" \
33
+ --argjson mapping "$(jq '.labels.in // {}' .agents/.airc.json)" \
34
+ '$mapping
35
+ | to_entries
36
+ | map(select(.value | any(. as $prefix | $files | any(startswith($prefix)))))
37
+ | map("in: " + .key)
38
+ | .[]?')
39
+
40
+ current_labels=$(gh pr view "$PR_NUMBER" \
41
+ --repo "$GITHUB_REPOSITORY" \
42
+ --json labels --jq '.labels[].name | select(startswith("in: "))' \
43
+ 2>/dev/null || true)
44
+
45
+ printf '%s\n' "$should_labels" | while IFS= read -r label; do
46
+ [ -z "$label" ] && continue
47
+ if ! printf '%s\n' "$current_labels" | grep -qxF "$label"; then
48
+ gh pr edit "$PR_NUMBER" \
49
+ --repo "$GITHUB_REPOSITORY" \
50
+ --add-label "$label" 2>/dev/null || true
51
+ fi
52
+ done
53
+
54
+ printf '%s\n' "$current_labels" | while IFS= read -r label; do
55
+ [ -z "$label" ] && continue
56
+ if ! printf '%s\n' "$should_labels" | grep -qxF "$label"; then
57
+ gh pr edit "$PR_NUMBER" \
58
+ --repo "$GITHUB_REPOSITORY" \
59
+ --remove-label "$label" 2>/dev/null || true
60
+ fi
61
+ done
62
+
63
+ - name: Assign PR creator if unassigned
64
+ env:
65
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
66
+ PR_NUMBER: ${{ github.event.pull_request.number }}
67
+ CREATOR: ${{ github.event.pull_request.user.login }}
68
+ ASSIGNEES_JSON: ${{ toJSON(github.event.pull_request.assignees) }}
69
+ run: |
70
+ count=$(printf '%s' "$ASSIGNEES_JSON" | jq 'length')
71
+ if [ "$count" -eq 0 ]; then
72
+ gh pr edit "$PR_NUMBER" \
73
+ --repo "$GITHUB_REPOSITORY" \
74
+ --add-assignee "$CREATOR" 2>/dev/null || true
75
+ fi
@@ -40,19 +40,23 @@ jobs:
40
40
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41
41
  ISSUE_NUMBER: ${{ github.event.issue.number }}
42
42
  run: |
43
- gh issue view "$ISSUE_NUMBER" \
43
+ current_status_labels=$(gh issue view "$ISSUE_NUMBER" \
44
44
  --repo "$GITHUB_REPOSITORY" \
45
45
  --json labels --jq '.labels[].name | select(startswith("status:"))' \
46
- 2>/dev/null \
47
- | while IFS= read -r label; do
48
- [ -z "$label" ] && continue
46
+ 2>/dev/null || true)
47
+ printf '%s\n' "$current_status_labels" | while IFS= read -r label; do
48
+ [ -z "$label" ] && continue
49
+ if [ "$label" != "status: waiting-for-triage" ]; then
49
50
  gh issue edit "$ISSUE_NUMBER" \
50
51
  --repo "$GITHUB_REPOSITORY" \
51
52
  --remove-label "$label"
52
- done || true
53
- gh issue edit "$ISSUE_NUMBER" \
54
- --repo "$GITHUB_REPOSITORY" \
55
- --add-label "status: waiting-for-triage"
53
+ fi
54
+ done || true
55
+ if ! printf '%s\n' "$current_status_labels" | grep -qxF "status: waiting-for-triage"; then
56
+ gh issue edit "$ISSUE_NUMBER" \
57
+ --repo "$GITHUB_REPOSITORY" \
58
+ --add-label "status: waiting-for-triage"
59
+ fi
56
60
 
57
61
  - name: Clean status labels on PR merge
58
62
  if: >-