@ozzylabs/feedradar 0.2.0 → 0.2.2
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/README.ja.md +51 -13
- package/README.md +51 -13
- package/dist/agents/_boundary.d.ts +21 -0
- package/dist/agents/_boundary.d.ts.map +1 -1
- package/dist/agents/_boundary.js +34 -0
- package/dist/agents/_boundary.js.map +1 -1
- package/dist/agents/claude-code.d.ts.map +1 -1
- package/dist/agents/claude-code.js +14 -6
- package/dist/agents/claude-code.js.map +1 -1
- package/dist/agents/codex-cli.d.ts.map +1 -1
- package/dist/agents/codex-cli.js +13 -7
- package/dist/agents/codex-cli.js.map +1 -1
- package/dist/agents/copilot.d.ts.map +1 -1
- package/dist/agents/copilot.js +13 -6
- package/dist/agents/copilot.js.map +1 -1
- package/dist/agents/gemini-cli.d.ts.map +1 -1
- package/dist/agents/gemini-cli.js +13 -6
- package/dist/agents/gemini-cli.js.map +1 -1
- package/dist/agents/types.d.ts +26 -0
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/claude-skills/dismiss/SKILL.md +4 -4
- package/dist/claude-skills/research/SKILL.md +2 -3
- package/dist/claude-skills/review/SKILL.md +2 -2
- package/dist/claude-skills/update/SKILL.md +7 -7
- package/dist/cli/_locale.d.ts +96 -0
- package/dist/cli/_locale.d.ts.map +1 -0
- package/dist/cli/_locale.js +130 -0
- package/dist/cli/_locale.js.map +1 -0
- package/dist/cli/_progress.d.ts +30 -1
- package/dist/cli/_progress.d.ts.map +1 -1
- package/dist/cli/_progress.js +9 -1
- package/dist/cli/_progress.js.map +1 -1
- package/dist/cli/dismiss.d.ts.map +1 -1
- package/dist/cli/dismiss.js +61 -54
- package/dist/cli/dismiss.js.map +1 -1
- package/dist/cli/doctor.d.ts +8 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +91 -60
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +36 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +79 -18
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +15 -0
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +149 -51
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/items.d.ts.map +1 -1
- package/dist/cli/items.js +51 -30
- package/dist/cli/items.js.map +1 -1
- package/dist/cli/research.d.ts.map +1 -1
- package/dist/cli/research.js +138 -109
- package/dist/cli/research.js.map +1 -1
- package/dist/cli/review.d.ts.map +1 -1
- package/dist/cli/review.js +114 -92
- package/dist/cli/review.js.map +1 -1
- package/dist/cli/routine/fire.d.ts +3 -2
- package/dist/cli/routine/fire.d.ts.map +1 -1
- package/dist/cli/routine/fire.js +30 -25
- package/dist/cli/routine/fire.js.map +1 -1
- package/dist/cli/routine/generate-pipeline.d.ts +70 -1
- package/dist/cli/routine/generate-pipeline.d.ts.map +1 -1
- package/dist/cli/routine/generate-pipeline.js +273 -44
- package/dist/cli/routine/generate-pipeline.js.map +1 -1
- package/dist/cli/routine/generate-watch.d.ts +10 -1
- package/dist/cli/routine/generate-watch.d.ts.map +1 -1
- package/dist/cli/routine/generate-watch.js +49 -37
- package/dist/cli/routine/generate-watch.js.map +1 -1
- package/dist/cli/routine.d.ts.map +1 -1
- package/dist/cli/routine.js +28 -24
- package/dist/cli/routine.js.map +1 -1
- package/dist/cli/source.d.ts.map +1 -1
- package/dist/cli/source.js +206 -182
- package/dist/cli/source.js.map +1 -1
- package/dist/cli/triage.d.ts.map +1 -1
- package/dist/cli/triage.js +146 -130
- package/dist/cli/triage.js.map +1 -1
- package/dist/cli/undismiss.d.ts.map +1 -1
- package/dist/cli/undismiss.js +32 -25
- package/dist/cli/undismiss.js.map +1 -1
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +77 -61
- package/dist/cli/update.js.map +1 -1
- package/dist/cli/watch.d.ts.map +1 -1
- package/dist/cli/watch.js +71 -31
- package/dist/cli/watch.js.map +1 -1
- package/dist/cli/workflow/generate-combined-with-triage.d.ts +9 -2
- package/dist/cli/workflow/generate-combined-with-triage.d.ts.map +1 -1
- package/dist/cli/workflow/generate-combined-with-triage.js +120 -71
- package/dist/cli/workflow/generate-combined-with-triage.js.map +1 -1
- package/dist/cli/workflow/generate-combined.d.ts +8 -1
- package/dist/cli/workflow/generate-combined.d.ts.map +1 -1
- package/dist/cli/workflow/generate-combined.js +39 -33
- package/dist/cli/workflow/generate-combined.js.map +1 -1
- package/dist/cli/workflow/generate-watch.d.ts +10 -1
- package/dist/cli/workflow/generate-watch.d.ts.map +1 -1
- package/dist/cli/workflow/generate-watch.js +37 -30
- package/dist/cli/workflow/generate-watch.js.map +1 -1
- package/dist/cli/workflow.d.ts.map +1 -1
- package/dist/cli/workflow.js +28 -23
- package/dist/cli/workflow.js.map +1 -1
- package/dist/core/config.d.ts +2 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +14 -4
- package/dist/core/config.js.map +1 -1
- package/dist/core/feeds/html-js.d.ts.map +1 -1
- package/dist/core/feeds/html-js.js +16 -9
- package/dist/core/feeds/html-js.js.map +1 -1
- package/dist/core/feeds/types.d.ts +9 -0
- package/dist/core/feeds/types.d.ts.map +1 -1
- package/dist/core/locale.d.ts +69 -0
- package/dist/core/locale.d.ts.map +1 -0
- package/dist/core/locale.js +74 -0
- package/dist/core/locale.js.map +1 -0
- package/dist/core/watcher.d.ts +11 -0
- package/dist/core/watcher.d.ts.map +1 -1
- package/dist/core/watcher.js +21 -5
- package/dist/core/watcher.js.map +1 -1
- package/dist/i18n/index.d.ts +57 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +49 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/messages/en.d.ts +993 -0
- package/dist/i18n/messages/en.d.ts.map +1 -0
- package/dist/i18n/messages/en.js +1096 -0
- package/dist/i18n/messages/en.js.map +1 -0
- package/dist/i18n/messages/ja.d.ts +13 -0
- package/dist/i18n/messages/ja.d.ts.map +1 -0
- package/dist/i18n/messages/ja.js +970 -0
- package/dist/i18n/messages/ja.js.map +1 -0
- package/dist/schemas/config.d.ts +7 -0
- package/dist/schemas/config.d.ts.map +1 -1
- package/dist/schemas/config.js +5 -0
- package/dist/schemas/config.js.map +1 -1
- package/dist/schemas/recipe.d.ts +1 -1
- package/dist/schemas/source.d.ts +3 -3
- package/dist/skills/research/SKILL.md +13 -12
- package/dist/skills/review/SKILL.md +13 -12
- package/dist/skills/update/SKILL.md +19 -19
- package/dist/templates/en/agents/AGENTS.md +284 -0
- package/dist/templates/en/claude/CLAUDE.md +5 -0
- package/dist/templates/en/default.md +16 -0
- package/dist/templates/en/digest.md +66 -0
- package/dist/templates/en/feedradar.md +235 -0
- package/dist/templates/{routines → en/routines}/pipeline.yaml.tmpl +30 -41
- package/dist/templates/{routines → en/routines}/watch-daily.yaml +12 -15
- package/dist/templates/{routines → en/routines}/watch.yaml.tmpl +11 -14
- package/dist/templates/{workflows → en/workflows}/combined-with-triage.template.yaml.tmpl +3 -3
- package/dist/templates/{workflows → en/workflows}/combined.template.yaml.tmpl +6 -6
- package/dist/templates/{workflows → en/workflows}/watch.template.yaml.tmpl +8 -8
- package/dist/templates/{workflows → en/workflows}/watch.yaml +3 -3
- package/dist/templates/{agents → ja/agents}/AGENTS.md +16 -16
- package/dist/templates/{digest.md → ja/digest.md} +5 -6
- package/dist/templates/{feedradar.md → ja/feedradar.md} +12 -12
- package/dist/templates/ja/routines/pipeline.yaml.tmpl +211 -0
- package/dist/templates/ja/routines/watch-daily.yaml +151 -0
- package/dist/templates/ja/routines/watch.yaml.tmpl +145 -0
- package/dist/templates/ja/workflows/combined-with-triage.template.yaml.tmpl +123 -0
- package/dist/templates/ja/workflows/combined.template.yaml.tmpl +109 -0
- package/dist/templates/ja/workflows/watch.template.yaml.tmpl +100 -0
- package/dist/templates/ja/workflows/watch.yaml +73 -0
- package/package.json +1 -1
- /package/dist/templates/{claude → ja/claude}/CLAUDE.md +0 -0
- /package/dist/templates/{default.md → ja/default.md} +0 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { access, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
2
|
import { dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { createTranslator } from "../../i18n/index.js";
|
|
5
|
+
import { LangFlagError, parseLangFlag, resolveWorkspaceLocale } from "../_locale.js";
|
|
4
6
|
import { collectSourceHosts, isSafeRoutinePath, isSubHourlyCron, isValidCron, renderNetworkAccessBlock, SUPPORTED_MODELS, } from "./generate-watch.js";
|
|
5
7
|
/**
|
|
6
8
|
* `radar routine generate pipeline` (ADR-0020 D5 `pipeline`).
|
|
@@ -25,6 +27,185 @@ import { collectSourceHosts, isSafeRoutinePath, isSubHourlyCron, isValidCron, re
|
|
|
25
27
|
* Mirrors the conservative default of the GHA `combined-with-triage` cap.
|
|
26
28
|
*/
|
|
27
29
|
export const PIPELINE_DEFAULT_MAX_ITEMS = 10;
|
|
30
|
+
/**
|
|
31
|
+
* Landing / output modes for the pipeline routine's step-6 commit (#301).
|
|
32
|
+
*
|
|
33
|
+
* Symmetric with the GHA `combined-with-triage --output-mode pr|direct-commit`
|
|
34
|
+
* (#258), but the names differ because the mechanics differ:
|
|
35
|
+
*
|
|
36
|
+
* - `pr` (default): open a `claude/pipeline/...` branch + PR and STOP. A human
|
|
37
|
+
* reviews and merges. This is the ADR-0020 D3a safe default — no unreviewed
|
|
38
|
+
* routine output reaches the default branch.
|
|
39
|
+
* - `auto-merge`: open the same `claude/pipeline/...` PR, then immediately
|
|
40
|
+
* `gh pr merge --squash` it so the output lands on `main`. Distinct from the
|
|
41
|
+
* GHA `direct-commit` (which pushes to main with NO PR at all); here a PR is
|
|
42
|
+
* always created first. Opt-in because the step-5 self-review makes the PR
|
|
43
|
+
* review-complete (ADR-0020 D3a opt-in auto-merge).
|
|
44
|
+
*
|
|
45
|
+
* NB: `--auto` (vs immediate `--squash`) is intentionally NOT used — on a repo
|
|
46
|
+
* with no required checks `gh pr merge --auto` never merges, so the routine
|
|
47
|
+
* uses an immediate squash merge instead (#301).
|
|
48
|
+
*/
|
|
49
|
+
export const OUTPUT_MODES = ["pr", "auto-merge"];
|
|
50
|
+
/**
|
|
51
|
+
* Build the instructions step-6 commit/landing block for the given output mode.
|
|
52
|
+
*
|
|
53
|
+
* - `pr`: open a `claude/pipeline/...` branch + PR and stop (the current,
|
|
54
|
+
* pre-#301 behavior).
|
|
55
|
+
* - `auto-merge`: the same branch + PR, then `git switch main` and
|
|
56
|
+
* `gh pr merge "${BRANCH}" --squash --delete-branch` so the output lands on
|
|
57
|
+
* `main`. Switching to `main` before `--delete-branch` keeps the merge
|
|
58
|
+
* robust; the merge is fail-soft (`|| true`) so a transient failure leaves
|
|
59
|
+
* the PR open rather than aborting the routine.
|
|
60
|
+
*
|
|
61
|
+
* Emitted with the same 5-space body indentation as the surrounding numbered
|
|
62
|
+
* step (the placeholder sits where the step body starts). Exported for unit
|
|
63
|
+
* testing (mirrors the GHA generator's `buildFinalStep`).
|
|
64
|
+
*/
|
|
65
|
+
export function buildPipelineLandingStep(mode, locale = "en") {
|
|
66
|
+
// The `${...}` / `$(...)` tokens below are bash expansions in the GENERATED
|
|
67
|
+
// YAML, not JS template placeholders, so they are assembled by concatenation
|
|
68
|
+
// to keep biome's noTemplateCurlyInString quiet (same convention as the GHA
|
|
69
|
+
// `generate-combined-with-triage.ts` builders).
|
|
70
|
+
const BR = "$" + "{BRANCH}";
|
|
71
|
+
const DATE_BRANCH = "$" + "(date -u +%Y%m%d-%H%M)";
|
|
72
|
+
const DATE_COMMIT = "$" + "(date -u +%Y-%m-%d)";
|
|
73
|
+
const common = [
|
|
74
|
+
` BRANCH="claude/pipeline/${DATE_BRANCH}"`,
|
|
75
|
+
` git switch -c "${BR}"`,
|
|
76
|
+
" git add items/ state/ research/",
|
|
77
|
+
` git commit -m "chore(pipeline): triage/research/review ${DATE_COMMIT}"`,
|
|
78
|
+
` git push -u origin "${BR}"`,
|
|
79
|
+
` gh pr create --fill --base main --head "${BR}" || true`,
|
|
80
|
+
];
|
|
81
|
+
if (mode === "auto-merge") {
|
|
82
|
+
const prose = locale === "ja"
|
|
83
|
+
? [
|
|
84
|
+
" 6. `items/`・`state/`・`research/` が変わったら、それらを `claude/*` ブランチへ",
|
|
85
|
+
" コミットし、プルリクエストを開き、`main` へ squash-merge する(auto-merge は",
|
|
86
|
+
" ここではオプトイン — 手順 5 のレビューが PR をレビュー完了にする):",
|
|
87
|
+
]
|
|
88
|
+
: [
|
|
89
|
+
" 6. If `items/`, `state/`, or `research/` changed, commit them to a `claude/*`",
|
|
90
|
+
" branch, open a pull request, then squash-merge it to `main` (auto-merge is",
|
|
91
|
+
" opt-in here — the step-5 review makes the PR review-complete):",
|
|
92
|
+
];
|
|
93
|
+
const mergeComment = locale === "ja"
|
|
94
|
+
? [
|
|
95
|
+
" # マージを堅牢にするため --delete-branch の前に head ブランチから離れ、",
|
|
96
|
+
" # 即座に squash-merge する(--auto ではない: 必須チェックのない repo では",
|
|
97
|
+
" # --auto は決してマージしない)。一時的なマージ失敗で実行を中断せず PR を",
|
|
98
|
+
" # 開いたまま残すよう fail-soft にする。",
|
|
99
|
+
]
|
|
100
|
+
: [
|
|
101
|
+
" # Switch off the head branch before --delete-branch so the merge is",
|
|
102
|
+
" # robust, then squash-merge immediately (NOT --auto: on a repo with no",
|
|
103
|
+
" # required checks --auto never merges). Fail-soft so a transient merge",
|
|
104
|
+
" # failure leaves the PR open rather than aborting the run.",
|
|
105
|
+
];
|
|
106
|
+
return [
|
|
107
|
+
...prose,
|
|
108
|
+
"",
|
|
109
|
+
" ```bash",
|
|
110
|
+
" if ! git diff --quiet items/ state/ research/; then",
|
|
111
|
+
...common,
|
|
112
|
+
...mergeComment,
|
|
113
|
+
" git switch main",
|
|
114
|
+
` gh pr merge "${BR}" --squash --delete-branch || true`,
|
|
115
|
+
" fi",
|
|
116
|
+
" ```",
|
|
117
|
+
].join("\n");
|
|
118
|
+
}
|
|
119
|
+
const prose = locale === "ja"
|
|
120
|
+
? [
|
|
121
|
+
" 6. `items/`・`state/`・`research/` が変わったら、それらを `claude/*` ブランチへ",
|
|
122
|
+
" コミットし、プルリクエストを開く(`main` へは push しない):",
|
|
123
|
+
]
|
|
124
|
+
: [
|
|
125
|
+
" 6. If `items/`, `state/`, or `research/` changed, commit them to a `claude/*`",
|
|
126
|
+
" branch and open a pull request (do NOT push to `main`):",
|
|
127
|
+
];
|
|
128
|
+
return [
|
|
129
|
+
...prose,
|
|
130
|
+
"",
|
|
131
|
+
" ```bash",
|
|
132
|
+
" if ! git diff --quiet items/ state/ research/; then",
|
|
133
|
+
...common,
|
|
134
|
+
" fi",
|
|
135
|
+
" ```",
|
|
136
|
+
].join("\n");
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Build the hard-constraints output-gate bullet for the given output mode.
|
|
140
|
+
*
|
|
141
|
+
* - `pr`: the current "do NOT push to main; claude/* branch + PR only"
|
|
142
|
+
* constraint (ADR-0020 D3a, no auto-merge).
|
|
143
|
+
* - `auto-merge`: flips the constraint to say auto-merge is intentional — the
|
|
144
|
+
* routine opens a `claude/pipeline/...` PR then squash-merges it, and the
|
|
145
|
+
* step-5 review is what makes the PR review-complete (ADR-0020 D3a opt-in
|
|
146
|
+
* auto-merge).
|
|
147
|
+
*
|
|
148
|
+
* Exported for unit testing (mirrors the GHA generator's exported builders).
|
|
149
|
+
*/
|
|
150
|
+
export function buildOutputGateConstraint(mode, locale = "en") {
|
|
151
|
+
if (mode === "auto-merge") {
|
|
152
|
+
if (locale === "ja") {
|
|
153
|
+
return [
|
|
154
|
+
" - auto-merge はここでは意図的: この routine は `claude/pipeline/...` PR を開いてから",
|
|
155
|
+
" `main` へ squash-merge する。手順 5 のレビューが PR をレビュー完了にする。",
|
|
156
|
+
].join("\n");
|
|
157
|
+
}
|
|
158
|
+
return [
|
|
159
|
+
" - Auto-merge is intentional here: this routine opens a `claude/pipeline/...`",
|
|
160
|
+
" PR then squash-merges it to `main`. The step-5 review makes the PR",
|
|
161
|
+
" review-complete.",
|
|
162
|
+
].join("\n");
|
|
163
|
+
}
|
|
164
|
+
if (locale === "ja") {
|
|
165
|
+
return [
|
|
166
|
+
" - `main` へ直接 push しない。常に `claude/pipeline/...` ブランチと PR を使う",
|
|
167
|
+
" (出力ゲート。auto-merge なし)。",
|
|
168
|
+
].join("\n");
|
|
169
|
+
}
|
|
170
|
+
return [
|
|
171
|
+
" - Do NOT push to `main` directly. Always use a `claude/pipeline/...` branch",
|
|
172
|
+
" and a PR (output gate; no auto-merge).",
|
|
173
|
+
].join("\n");
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Build the `notes:` output-gate sentence for the given output mode. Mirrors
|
|
177
|
+
* `buildOutputGateConstraint` but phrased for the ops `notes` block.
|
|
178
|
+
*/
|
|
179
|
+
export function buildOutputGateNote(mode, locale = "en") {
|
|
180
|
+
if (mode === "auto-merge") {
|
|
181
|
+
if (locale === "ja") {
|
|
182
|
+
return [
|
|
183
|
+
" 出力は `claude/*` ブランチ / PR にコミットされ、その後 main へ squash-merge される",
|
|
184
|
+
" (auto-merge はオプトイン。手順 5 のレビューが PR をレビュー完了にする)。",
|
|
185
|
+
" 単一の Claude セッション、spawn なし: GHA パイプラインのクロスエージェント",
|
|
186
|
+
" レビューはここには存在しない。",
|
|
187
|
+
].join("\n");
|
|
188
|
+
}
|
|
189
|
+
return [
|
|
190
|
+
" Output is committed to a `claude/*` branch / PR, then squash-merged to main",
|
|
191
|
+
" (auto-merge is opt-in; the step-5 review makes the PR review-complete).",
|
|
192
|
+
" Single Claude session, no spawn: the cross-agent review",
|
|
193
|
+
" of the GHA pipeline is NOT present here.",
|
|
194
|
+
].join("\n");
|
|
195
|
+
}
|
|
196
|
+
if (locale === "ja") {
|
|
197
|
+
return [
|
|
198
|
+
" 出力は `claude/*` ブランチ / PR のみにコミットされる(main へ直接ではない)。",
|
|
199
|
+
" 単一の Claude セッション、spawn なし: GHA パイプラインのクロスエージェント",
|
|
200
|
+
" レビューはここには存在しない。",
|
|
201
|
+
].join("\n");
|
|
202
|
+
}
|
|
203
|
+
return [
|
|
204
|
+
" Output is committed to a `claude/*` branch / PR only (never main directly).",
|
|
205
|
+
" Single Claude session, no spawn: the cross-agent review",
|
|
206
|
+
" of the GHA pipeline is NOT present here.",
|
|
207
|
+
].join("\n");
|
|
208
|
+
}
|
|
28
209
|
/**
|
|
29
210
|
* Resolve the directory holding the bundled routine templates.
|
|
30
211
|
*
|
|
@@ -64,7 +245,11 @@ export function renderPipelineRoutineTemplate(template, values) {
|
|
|
64
245
|
.replace(/\{\{timezone\}\}/g, values.timezone)
|
|
65
246
|
.replace(/\{\{model\}\}/g, values.model)
|
|
66
247
|
.replace(/\{\{maxItems\}\}/g, String(values.maxItems))
|
|
67
|
-
.replace(/\{\{networkAccessBlock\}\}/g, values.networkAccessBlock)
|
|
248
|
+
.replace(/\{\{networkAccessBlock\}\}/g, values.networkAccessBlock)
|
|
249
|
+
.replace(/\{\{landingStep\}\}/g, values.landingStep)
|
|
250
|
+
.replace(/\{\{outputGateConstraint\}\}/g, values.outputGateConstraint)
|
|
251
|
+
.replace(/\{\{outputGateNote\}\}/g, values.outputGateNote)
|
|
252
|
+
.replace(/\{\{allowUnrestrictedGitPush\}\}/g, String(values.allowUnrestrictedGitPush));
|
|
68
253
|
}
|
|
69
254
|
/**
|
|
70
255
|
* Core implementation of `radar routine generate pipeline` (ADR-0020 D5
|
|
@@ -78,9 +263,14 @@ export function renderPipelineRoutineTemplate(template, values) {
|
|
|
78
263
|
* (ADR-0020 D1).
|
|
79
264
|
*/
|
|
80
265
|
export async function generatePipelineRoutine(options) {
|
|
81
|
-
const { cwd, name, repository, cron, timezone, model, maxItems, output, force } = options;
|
|
266
|
+
const { cwd, name, repository, cron, timezone, model, maxItems, outputMode, output, force } = options;
|
|
267
|
+
const locale = options.locale ?? "en";
|
|
268
|
+
const t = createTranslator(locale);
|
|
82
269
|
const log = options.io?.log ?? ((m) => console.log(m));
|
|
83
270
|
const warn = options.io?.warn ?? ((m) => console.warn(m));
|
|
271
|
+
if (!OUTPUT_MODES.includes(outputMode)) {
|
|
272
|
+
throw new Error(`invalid --output-mode '${outputMode}' (expected one of: ${OUTPUT_MODES.join(" | ")})`);
|
|
273
|
+
}
|
|
84
274
|
if (!isValidCron(cron)) {
|
|
85
275
|
throw new Error(`invalid --cron expression '${cron}' (expected 5-field POSIX cron, e.g. "0 * * * *")`);
|
|
86
276
|
}
|
|
@@ -99,7 +289,7 @@ export async function generatePipelineRoutine(options) {
|
|
|
99
289
|
throw new Error(`invalid --repo '${repository}' (expected owner/repo)`);
|
|
100
290
|
}
|
|
101
291
|
const templatesRoot = options.templatesRoot ?? (await resolveTemplatesRoot());
|
|
102
|
-
const templatePath = join(templatesRoot, "routines", "pipeline.yaml.tmpl");
|
|
292
|
+
const templatePath = join(templatesRoot, locale, "routines", "pipeline.yaml.tmpl");
|
|
103
293
|
if (!(await pathExists(templatePath))) {
|
|
104
294
|
throw new Error(`bundled template not found: ${templatePath}`);
|
|
105
295
|
}
|
|
@@ -113,6 +303,10 @@ export async function generatePipelineRoutine(options) {
|
|
|
113
303
|
model,
|
|
114
304
|
maxItems,
|
|
115
305
|
networkAccessBlock: renderNetworkAccessBlock(hosts),
|
|
306
|
+
landingStep: buildPipelineLandingStep(outputMode, locale),
|
|
307
|
+
outputGateConstraint: buildOutputGateConstraint(outputMode, locale),
|
|
308
|
+
outputGateNote: buildOutputGateNote(outputMode, locale),
|
|
309
|
+
allowUnrestrictedGitPush: outputMode === "auto-merge",
|
|
116
310
|
});
|
|
117
311
|
const destAbs = isAbsolute(output) ? output : join(cwd, output);
|
|
118
312
|
const destRel = isAbsolute(output) ? relative(cwd, output) : output;
|
|
@@ -120,28 +314,48 @@ export async function generatePipelineRoutine(options) {
|
|
|
120
314
|
throw new Error(`output file already exists: ${destRel} (use --force to overwrite)`);
|
|
121
315
|
}
|
|
122
316
|
if ((await pathExists(destAbs)) && force) {
|
|
123
|
-
warn(
|
|
317
|
+
warn(t("cli.routine.generatePipelineOverwriting", { path: destRel }));
|
|
124
318
|
}
|
|
125
319
|
await mkdir(dirname(destAbs), { recursive: true });
|
|
126
320
|
await writeFile(destAbs, rendered, "utf8");
|
|
127
|
-
log(
|
|
128
|
-
log(
|
|
321
|
+
log(t("cli.routine.generatePipelineWrote", { path: destRel }));
|
|
322
|
+
log(t("cli.routine.generatePipelineSummary", {
|
|
323
|
+
name,
|
|
324
|
+
repo: repository,
|
|
325
|
+
cron,
|
|
326
|
+
model,
|
|
327
|
+
maxItems,
|
|
328
|
+
outputMode,
|
|
329
|
+
}));
|
|
330
|
+
if (outputMode === "auto-merge") {
|
|
331
|
+
warn(t("cli.routine.autoMergeWarning", { cmd: "routine generate pipeline" }));
|
|
332
|
+
}
|
|
129
333
|
log("");
|
|
130
|
-
log("
|
|
131
|
-
log("
|
|
132
|
-
log("
|
|
133
|
-
log("
|
|
134
|
-
log(
|
|
135
|
-
log(
|
|
136
|
-
log("
|
|
334
|
+
log(t("cli.routine.pasteNoApi"));
|
|
335
|
+
log(t("cli.routine.pasteStep1"));
|
|
336
|
+
log(t("cli.routine.pasteStep2"));
|
|
337
|
+
log(t("cli.routine.pasteStep3"));
|
|
338
|
+
log(t("cli.routine.pasteYqInstructions", { path: destRel }));
|
|
339
|
+
log(t("cli.routine.pasteYqSetupScript", { path: destRel }));
|
|
340
|
+
log(t("cli.routine.pasteStep4"));
|
|
137
341
|
log("");
|
|
138
|
-
log("
|
|
139
|
-
log(
|
|
342
|
+
log(t("cli.routine.scheduleNote1"));
|
|
343
|
+
log(t("cli.routine.scheduleNote2"));
|
|
344
|
+
log(t("cli.routine.scheduleNote3"));
|
|
345
|
+
log(t("cli.routine.scheduleNote4"));
|
|
346
|
+
log(t("cli.routine.scheduleNote5"));
|
|
347
|
+
log(t("cli.routine.scheduleNote6"));
|
|
348
|
+
log(t("cli.routine.scheduleNote7"));
|
|
140
349
|
log("");
|
|
141
|
-
log(
|
|
142
|
-
log("
|
|
143
|
-
log(
|
|
144
|
-
|
|
350
|
+
log(t("cli.routine.pipelineNoSpawn1"));
|
|
351
|
+
log(t("cli.routine.pipelineNoSpawn2"));
|
|
352
|
+
log(t("cli.routine.pipelineItemCaps", { maxItems }));
|
|
353
|
+
if (outputMode === "auto-merge") {
|
|
354
|
+
log(t("cli.routine.outputGateAutoMerge"));
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
log(t("cli.routine.outputGateBranchPr"));
|
|
358
|
+
}
|
|
145
359
|
return { outputPath: destRel };
|
|
146
360
|
}
|
|
147
361
|
/**
|
|
@@ -157,6 +371,7 @@ export function parseGeneratePipelineRoutineArgs(args) {
|
|
|
157
371
|
let timezone = "UTC";
|
|
158
372
|
let model = "claude-sonnet-4-6";
|
|
159
373
|
let maxItems = PIPELINE_DEFAULT_MAX_ITEMS;
|
|
374
|
+
let outputMode = "pr";
|
|
160
375
|
let output;
|
|
161
376
|
let force = false;
|
|
162
377
|
let help = false;
|
|
@@ -215,6 +430,16 @@ export function parseGeneratePipelineRoutineArgs(args) {
|
|
|
215
430
|
maxItems = n;
|
|
216
431
|
continue;
|
|
217
432
|
}
|
|
433
|
+
if (a === "--output-mode") {
|
|
434
|
+
const value = args[++i];
|
|
435
|
+
if (value === undefined)
|
|
436
|
+
throw new Error(`option ${a} requires a value`);
|
|
437
|
+
if (!OUTPUT_MODES.includes(value)) {
|
|
438
|
+
throw new Error(`option --output-mode expects one of: ${OUTPUT_MODES.join(" | ")}, got '${value}'`);
|
|
439
|
+
}
|
|
440
|
+
outputMode = value;
|
|
441
|
+
continue;
|
|
442
|
+
}
|
|
218
443
|
if (a === "--output") {
|
|
219
444
|
const value = args[++i];
|
|
220
445
|
if (value === undefined)
|
|
@@ -238,34 +463,17 @@ export function parseGeneratePipelineRoutineArgs(args) {
|
|
|
238
463
|
timezone,
|
|
239
464
|
model,
|
|
240
465
|
maxItems,
|
|
466
|
+
outputMode,
|
|
241
467
|
output: output ?? join(".claude", "routines", `${name}.yaml`),
|
|
242
468
|
force,
|
|
243
469
|
help,
|
|
244
470
|
};
|
|
245
471
|
}
|
|
246
|
-
export function printGeneratePipelineRoutineHelp(log) {
|
|
247
|
-
log("
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
log("processing items ONE AT A TIME (ADR-0020 D5 `pipeline`). It does NOT spawn");
|
|
252
|
-
log("other agents (D2), so the cross-agent review of the GHA combined-with-triage");
|
|
253
|
-
log("workflow is NOT present. Per-run item count is bounded by CLI flags (D3e).");
|
|
254
|
-
log("");
|
|
255
|
-
log("Options:");
|
|
256
|
-
log(' --name <name> Routine name (default: "feedradar-pipeline")');
|
|
257
|
-
log(" Also the default output filename.");
|
|
258
|
-
log(" --repo <owner/repo> Target repository (default: <owner>/<repo>)");
|
|
259
|
-
log(' --cron <expression> 5-field cron, min interval 1 HOUR (default: "0 * * * *")');
|
|
260
|
-
log(' Sub-hourly (e.g. "*/5 * * * *") is rejected.');
|
|
261
|
-
log(' --timezone <tz> Schedule timezone (default: "UTC")');
|
|
262
|
-
log(` --model <name> ${SUPPORTED_MODELS.join(" | ")}`);
|
|
263
|
-
log(" (default: claude-sonnet-4-6)");
|
|
264
|
-
log(` --max-items N Hard cap on items triaged/researched/reviewed per run`);
|
|
265
|
-
log(` (default: ${PIPELINE_DEFAULT_MAX_ITEMS}). Drives triage --max-items and items --limit.`);
|
|
266
|
-
log(" --output <path> Output file under .claude/routines/");
|
|
267
|
-
log(" (default: .claude/routines/<name>.yaml)");
|
|
268
|
-
log(" --force, -f Overwrite existing output file");
|
|
472
|
+
export function printGeneratePipelineRoutineHelp(t, log) {
|
|
473
|
+
log(t("cli.routine.generatePipelineHelp", {
|
|
474
|
+
models: SUPPORTED_MODELS.join(" | "),
|
|
475
|
+
maxItems: PIPELINE_DEFAULT_MAX_ITEMS,
|
|
476
|
+
}));
|
|
269
477
|
}
|
|
270
478
|
/**
|
|
271
479
|
* Entry point invoked by `runRoutine` (in `src/cli/routine.ts`) when the user
|
|
@@ -276,16 +484,35 @@ export function printGeneratePipelineRoutineHelp(log) {
|
|
|
276
484
|
export async function runGeneratePipelineRoutine(args, io = {}, cwd = process.cwd()) {
|
|
277
485
|
const log = io.log ?? ((m) => console.log(m));
|
|
278
486
|
const error = io.error ?? ((m) => console.error(m));
|
|
487
|
+
// Strip `--lang <en|ja>` before the type parser sees argv (mirrors `init`).
|
|
488
|
+
let langFlag;
|
|
489
|
+
let rest;
|
|
490
|
+
try {
|
|
491
|
+
const langState = parseLangFlag(args);
|
|
492
|
+
langFlag = langState.flag;
|
|
493
|
+
rest = langState.rest;
|
|
494
|
+
}
|
|
495
|
+
catch (e) {
|
|
496
|
+
if (e instanceof LangFlagError) {
|
|
497
|
+
error(`routine generate pipeline: ${e.message}`);
|
|
498
|
+
return 2;
|
|
499
|
+
}
|
|
500
|
+
throw e;
|
|
501
|
+
}
|
|
279
502
|
let parsed;
|
|
280
503
|
try {
|
|
281
|
-
parsed = parseGeneratePipelineRoutineArgs(
|
|
504
|
+
parsed = parseGeneratePipelineRoutineArgs(rest);
|
|
282
505
|
}
|
|
283
506
|
catch (e) {
|
|
284
507
|
error(`routine generate pipeline: ${e instanceof Error ? e.message : String(e)}`);
|
|
285
508
|
return 2;
|
|
286
509
|
}
|
|
510
|
+
// Resolve the locale before the help branch so `--help` honors --lang / env /
|
|
511
|
+
// config (the per-type help is now sourced from the i18n catalog, #337).
|
|
512
|
+
const locale = await resolveWorkspaceLocale({ flag: langFlag, cwd, warn: error });
|
|
513
|
+
const t = createTranslator(locale);
|
|
287
514
|
if (parsed.help) {
|
|
288
|
-
printGeneratePipelineRoutineHelp(log);
|
|
515
|
+
printGeneratePipelineRoutineHelp(t, log);
|
|
289
516
|
return 0;
|
|
290
517
|
}
|
|
291
518
|
try {
|
|
@@ -297,8 +524,10 @@ export async function runGeneratePipelineRoutine(args, io = {}, cwd = process.cw
|
|
|
297
524
|
timezone: parsed.timezone,
|
|
298
525
|
model: parsed.model,
|
|
299
526
|
maxItems: parsed.maxItems,
|
|
527
|
+
outputMode: parsed.outputMode,
|
|
300
528
|
output: parsed.output,
|
|
301
529
|
force: parsed.force,
|
|
530
|
+
locale,
|
|
302
531
|
io,
|
|
303
532
|
});
|
|
304
533
|
return 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-pipeline.js","sourceRoot":"","sources":["../../../src/cli/routine/generate-pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate-pipeline.js","sourceRoot":"","sources":["../../../src/cli/routine/generate-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Locale } from "../../core/locale.js";
|
|
2
|
+
import { type Translator } from "../../i18n/index.js";
|
|
1
3
|
/**
|
|
2
4
|
* Sinks for the `routine generate watch` command's user-facing output.
|
|
3
5
|
*
|
|
@@ -126,6 +128,13 @@ export interface GenerateWatchRoutineOptions {
|
|
|
126
128
|
model: SupportedModel;
|
|
127
129
|
output: string;
|
|
128
130
|
force: boolean;
|
|
131
|
+
/**
|
|
132
|
+
* UI locale selecting the per-locale template subtree
|
|
133
|
+
* (`<templatesRoot>/<locale>/routines/`). Defaults to `en` (#315). Only the
|
|
134
|
+
* `notes:` / `instructions:` prose and comments differ; the cron / model /
|
|
135
|
+
* network_access functional fields are identical across locales.
|
|
136
|
+
*/
|
|
137
|
+
locale?: Locale;
|
|
129
138
|
/** Test seam: override the templates root location. */
|
|
130
139
|
templatesRoot?: string;
|
|
131
140
|
io?: RoutineIO;
|
|
@@ -162,7 +171,7 @@ interface ParsedFlags {
|
|
|
162
171
|
* AFTER the loop once `--name` is known (a `--output` flag, if given, wins).
|
|
163
172
|
*/
|
|
164
173
|
export declare function parseGenerateWatchRoutineArgs(args: string[]): ParsedFlags;
|
|
165
|
-
export declare function printGenerateWatchRoutineHelp(log: (m: string) => void): void;
|
|
174
|
+
export declare function printGenerateWatchRoutineHelp(t: Translator, log: (m: string) => void): void;
|
|
166
175
|
/**
|
|
167
176
|
* Entry point invoked by `runRoutine` (in `src/cli/routine.ts`) when the user
|
|
168
177
|
* types `radar routine generate watch`. Translates parsed flags into
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-watch.d.ts","sourceRoot":"","sources":["../../../src/cli/routine/generate-watch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-watch.d.ts","sourceRoot":"","sources":["../../../src/cli/routine/generate-watch.ts"],"names":[],"mappings":"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"}
|