@ozzylabs/feedradar 0.1.7 → 0.1.9

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 (72) hide show
  1. package/README.md +2 -1
  2. package/dist/agents/_boundary.d.ts +87 -1
  3. package/dist/agents/_boundary.d.ts.map +1 -1
  4. package/dist/agents/_boundary.js +197 -0
  5. package/dist/agents/_boundary.js.map +1 -1
  6. package/dist/agents/claude-code.d.ts.map +1 -1
  7. package/dist/agents/claude-code.js +33 -93
  8. package/dist/agents/claude-code.js.map +1 -1
  9. package/dist/agents/codex-cli.d.ts.map +1 -1
  10. package/dist/agents/codex-cli.js +34 -93
  11. package/dist/agents/codex-cli.js.map +1 -1
  12. package/dist/agents/copilot.d.ts.map +1 -1
  13. package/dist/agents/copilot.js +33 -93
  14. package/dist/agents/copilot.js.map +1 -1
  15. package/dist/agents/gemini-cli.d.ts.map +1 -1
  16. package/dist/agents/gemini-cli.js +33 -93
  17. package/dist/agents/gemini-cli.js.map +1 -1
  18. package/dist/claude-skills/dismiss/SKILL.md +18 -12
  19. package/dist/claude-skills/research/SKILL.md +21 -1
  20. package/dist/claude-skills/review/SKILL.md +23 -1
  21. package/dist/claude-skills/update/SKILL.md +24 -2
  22. package/dist/cli/_commit-path.d.ts +33 -0
  23. package/dist/cli/_commit-path.d.ts.map +1 -0
  24. package/dist/cli/_commit-path.js +43 -0
  25. package/dist/cli/_commit-path.js.map +1 -0
  26. package/dist/cli/dismiss.d.ts +38 -8
  27. package/dist/cli/dismiss.d.ts.map +1 -1
  28. package/dist/cli/dismiss.js +237 -55
  29. package/dist/cli/dismiss.js.map +1 -1
  30. package/dist/cli/research.d.ts.map +1 -1
  31. package/dist/cli/research.js +307 -45
  32. package/dist/cli/research.js.map +1 -1
  33. package/dist/cli/review.d.ts.map +1 -1
  34. package/dist/cli/review.js +169 -0
  35. package/dist/cli/review.js.map +1 -1
  36. package/dist/cli/source.d.ts.map +1 -1
  37. package/dist/cli/source.js +18 -0
  38. package/dist/cli/source.js.map +1 -1
  39. package/dist/cli/update.d.ts.map +1 -1
  40. package/dist/cli/update.js +429 -141
  41. package/dist/cli/update.js.map +1 -1
  42. package/dist/cli/workflow/generate-combined-with-triage.d.ts +49 -1
  43. package/dist/cli/workflow/generate-combined-with-triage.d.ts.map +1 -1
  44. package/dist/cli/workflow/generate-combined-with-triage.js +139 -3
  45. package/dist/cli/workflow/generate-combined-with-triage.js.map +1 -1
  46. package/dist/core/feeds/json-api.d.ts +5 -2
  47. package/dist/core/feeds/json-api.d.ts.map +1 -1
  48. package/dist/core/feeds/json-api.js +113 -13
  49. package/dist/core/feeds/json-api.js.map +1 -1
  50. package/dist/core/feeds/types.d.ts +40 -0
  51. package/dist/core/feeds/types.d.ts.map +1 -1
  52. package/dist/core/triage/adapter.d.ts +45 -0
  53. package/dist/core/triage/adapter.d.ts.map +1 -1
  54. package/dist/core/triage/adapter.js +50 -11
  55. package/dist/core/triage/adapter.js.map +1 -1
  56. package/dist/core/watcher.d.ts.map +1 -1
  57. package/dist/core/watcher.js +12 -2
  58. package/dist/core/watcher.js.map +1 -1
  59. package/dist/gemini-commands/research.toml +1 -1
  60. package/dist/gemini-commands/review.toml +1 -1
  61. package/dist/gemini-commands/update.toml +1 -1
  62. package/dist/recipes/aws-whats-new.yaml +7 -1
  63. package/dist/schemas/recipe.d.ts +1 -1
  64. package/dist/schemas/source.d.ts +22 -4
  65. package/dist/schemas/source.d.ts.map +1 -1
  66. package/dist/schemas/source.js +31 -3
  67. package/dist/schemas/source.js.map +1 -1
  68. package/dist/skills/research/SKILL.md +75 -8
  69. package/dist/skills/review/SKILL.md +79 -7
  70. package/dist/skills/update/SKILL.md +68 -7
  71. package/dist/templates/workflows/combined-with-triage.template.yaml.tmpl +29 -30
  72. package/package.json +1 -1
@@ -5,6 +5,14 @@
5
5
  # LoC-heavy research/review steps see ~5-15% of the raw detected count
6
6
  # instead of the full firehose. Template placeholders / hard-cap rationale
7
7
  # are documented in `src/cli/workflow/generate-combined-with-triage.ts`.
8
+ #
9
+ # The final step is rendered from `--output-mode` (default `pr`):
10
+ # pr — peter-evans/create-pull-request@v6 (human reviews the PR
11
+ # before research/ lands on the default branch).
12
+ # direct-commit — commit & push straight to the default branch (no PR gate;
13
+ # `permissions:` drops `pull-requests: write`). Do NOT put a
14
+ # PR-required branch protection on the default branch when
15
+ # using this mode — the bot pushes directly.
8
16
 
9
17
  name: feedradar-daily
10
18
 
@@ -13,9 +21,7 @@ on:
13
21
  - cron: "{{watchCron}}"
14
22
  workflow_dispatch: {}
15
23
 
16
- permissions:
17
- contents: write
18
- pull-requests: write
24
+ {{permissionsBlock}}
19
25
 
20
26
  concurrency:
21
27
  # Distinct from feedradar-watch / feedradar-combined so this can co-exist
@@ -70,19 +76,33 @@ jobs:
70
76
  # matching item.
71
77
  run: |
72
78
  set -euo pipefail
73
- GROUPS=$(radar items list --status triaged_digest --field triage.group | sort -u | grep -v '^-$' || true)
74
- if [ -z "$GROUPS" ]; then
79
+ # `mapfile` reads the group list into an array so each element is a
80
+ # single, properly-quoted token. The earlier command-substitution
81
+ # scalar assignment tripped actionlint/shellcheck SC2128 (expanding an
82
+ # array without an index) / SC2178 (reusing a name as both scalar and
83
+ # array) once the loop below treated it array-like. The pipeline still
84
+ # de-dupes and drops the `-` sentinel that `--field` prints for
85
+ # ungrouped items.
86
+ #
87
+ # NB: the array is NOT named `GROUPS` — that is a special bash array
88
+ # (the caller's group IDs); reading the group list into that reserved
89
+ # name fails outright under `set -e`. Use a non-reserved name.
90
+ mapfile -t DIGEST_GROUPS < <(radar items list --status triaged_digest --field triage.group | sort -u | grep -v '^-$' || true)
91
+ if [ "${#DIGEST_GROUPS[@]}" -eq 0 ]; then
75
92
  echo "no triaged_digest groups to process"
76
93
  exit 0
77
94
  fi
78
- while IFS= read -r GROUP; do
95
+ for GROUP in "${DIGEST_GROUPS[@]}"; do
79
96
  [ -z "$GROUP" ] && continue
80
97
  echo "::group::digest for triage.group=$GROUP"
81
98
  IDS=$(radar items list --triage-group "$GROUP" --status triaged_digest --field id | tr '\n' ' ')
99
+ # `--triage-group "$GROUP"` names the digest file after the group so
100
+ # two same-day groups from a single-keyword source no longer collide
101
+ # on `<date>_digest_<slug>_v1.md` (#255).
82
102
  # shellcheck disable=SC2086
83
- radar research --digest $IDS --agent {{researchAgent}}
103
+ radar research --digest $IDS --triage-group "$GROUP" --agent {{researchAgent}}
84
104
  echo "::endgroup::"
85
- done <<< "$GROUPS"
105
+ done
86
106
 
87
107
  - name: Review researched items (agent={{reviewAgent}})
88
108
  # Cross-agent review (ADR-0001): the review step intentionally uses
@@ -109,25 +129,4 @@ jobs:
109
129
  -d "{\"text\":\"feedradar: $UNSURE items need human triage review\"}"
110
130
  fi
111
131
 
112
- - name: Create PR with research output
113
- # `peter-evans/create-pull-request@v6` stages items/ state/ research/
114
- # into a single PR per cron tick. Human reviews the PR before
115
- # research/ lands on main, giving an explicit gate on auto-generated
116
- # content (ADR-0014 §X5 / ADR-0018 §W5).
117
- uses: peter-evans/create-pull-request@v6
118
- with:
119
- commit-message: "chore(feedradar): daily watch + triage + research"
120
- # peter-evans/create-pull-request does not run shell on these
121
- # fields, so `$(date ...)` would land literally in the PR title.
122
- # Use the `github.run_id` expression to keep titles unique per run.
123
- title: "feedradar: daily triage + research (run ${{ github.run_id }})"
124
- body: |
125
- Automated feedradar pipeline output. Review the research/ Markdown
126
- before merging — generated content is untrusted (ADR-0009).
127
- branch: feedradar/daily
128
- base: ${{ github.ref_name }}
129
- delete-branch: true
130
- add-paths: |
131
- items/
132
- state/
133
- research/
132
+ {{finalStep}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ozzylabs/feedradar",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "Multi-agent CLI that watches blogs and release feeds, then turns keyword hits into Markdown research reports",
5
5
  "type": "module",
6
6
  "publishConfig": {