@ozzylabs/feedradar 0.1.4 → 0.1.6
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 +12 -6
- package/README.md +11 -6
- package/dist/agents/claude-code.d.ts +12 -1
- package/dist/agents/claude-code.d.ts.map +1 -1
- package/dist/agents/claude-code.js +9 -5
- package/dist/agents/claude-code.js.map +1 -1
- package/dist/agents/codex-cli.d.ts +7 -1
- package/dist/agents/codex-cli.d.ts.map +1 -1
- package/dist/agents/codex-cli.js +9 -5
- package/dist/agents/codex-cli.js.map +1 -1
- package/dist/agents/copilot.d.ts +7 -1
- package/dist/agents/copilot.d.ts.map +1 -1
- package/dist/agents/copilot.js +9 -5
- package/dist/agents/copilot.js.map +1 -1
- package/dist/agents/gemini-cli.d.ts +7 -1
- package/dist/agents/gemini-cli.d.ts.map +1 -1
- package/dist/agents/gemini-cli.js +9 -5
- package/dist/agents/gemini-cli.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/types.d.ts +33 -0
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/cli/_progress.d.ts +138 -0
- package/dist/cli/_progress.d.ts.map +1 -0
- package/dist/cli/_progress.js +176 -0
- package/dist/cli/_progress.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/research.d.ts +18 -20
- package/dist/cli/research.d.ts.map +1 -1
- package/dist/cli/research.js +318 -203
- package/dist/cli/research.js.map +1 -1
- package/dist/cli/review.d.ts +7 -0
- package/dist/cli/review.d.ts.map +1 -1
- package/dist/cli/review.js +46 -1
- package/dist/cli/review.js.map +1 -1
- package/dist/cli/source.d.ts +23 -2
- package/dist/cli/source.d.ts.map +1 -1
- package/dist/cli/source.js +428 -7
- package/dist/cli/source.js.map +1 -1
- package/dist/cli/update.d.ts +7 -0
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +41 -1
- package/dist/cli/update.js.map +1 -1
- package/dist/cli/watch.d.ts.map +1 -1
- package/dist/cli/watch.js +67 -3
- package/dist/cli/watch.js.map +1 -1
- package/dist/cli/workflow/generate-combined.d.ts +100 -0
- package/dist/cli/workflow/generate-combined.d.ts.map +1 -0
- package/dist/cli/workflow/generate-combined.js +387 -0
- package/dist/cli/workflow/generate-combined.js.map +1 -0
- package/dist/cli/workflow/generate-watch.d.ts +142 -0
- package/dist/cli/workflow/generate-watch.d.ts.map +1 -0
- package/dist/cli/workflow/generate-watch.js +338 -0
- package/dist/cli/workflow/generate-watch.js.map +1 -0
- package/dist/cli/workflow.d.ts +29 -0
- package/dist/cli/workflow.d.ts.map +1 -0
- package/dist/cli/workflow.js +66 -0
- package/dist/cli/workflow.js.map +1 -0
- package/dist/core/feeds/_fetch.d.ts +10 -0
- package/dist/core/feeds/_fetch.d.ts.map +1 -1
- package/dist/core/feeds/_fetch.js +182 -0
- package/dist/core/feeds/_fetch.js.map +1 -1
- package/dist/core/feeds/_jsonpath.d.ts +57 -0
- package/dist/core/feeds/_jsonpath.d.ts.map +1 -0
- package/dist/core/feeds/_jsonpath.js +207 -0
- package/dist/core/feeds/_jsonpath.js.map +1 -0
- package/dist/core/feeds/html-js.d.ts +8 -0
- package/dist/core/feeds/html-js.d.ts.map +1 -1
- package/dist/core/feeds/html-js.js +47 -1
- package/dist/core/feeds/html-js.js.map +1 -1
- package/dist/core/feeds/index.d.ts +1 -1
- package/dist/core/feeds/index.d.ts.map +1 -1
- package/dist/core/feeds/index.js +4 -0
- package/dist/core/feeds/index.js.map +1 -1
- package/dist/core/feeds/json-api.d.ts +29 -0
- package/dist/core/feeds/json-api.d.ts.map +1 -0
- package/dist/core/feeds/json-api.js +860 -0
- package/dist/core/feeds/json-api.js.map +1 -0
- package/dist/core/feeds/json-feed.d.ts +11 -0
- package/dist/core/feeds/json-feed.d.ts.map +1 -0
- package/dist/core/feeds/json-feed.js +242 -0
- package/dist/core/feeds/json-feed.js.map +1 -0
- package/dist/core/feeds/types.d.ts +123 -0
- package/dist/core/feeds/types.d.ts.map +1 -1
- package/dist/core/progress.d.ts +101 -0
- package/dist/core/progress.d.ts.map +1 -0
- package/dist/core/progress.js +212 -0
- package/dist/core/progress.js.map +1 -0
- package/dist/core/recipes.d.ts +138 -0
- package/dist/core/recipes.d.ts.map +1 -0
- package/dist/core/recipes.js +242 -0
- package/dist/core/recipes.js.map +1 -0
- package/dist/core/watcher.d.ts +61 -1
- package/dist/core/watcher.d.ts.map +1 -1
- package/dist/core/watcher.js +99 -2
- package/dist/core/watcher.js.map +1 -1
- package/dist/recipes/aws-whats-new.yaml +87 -0
- package/dist/recipes/dev-to.yaml +40 -0
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/recipe.d.ts +127 -0
- package/dist/schemas/recipe.d.ts.map +1 -0
- package/dist/schemas/recipe.js +57 -0
- package/dist/schemas/recipe.js.map +1 -0
- package/dist/schemas/source.d.ts +222 -0
- package/dist/schemas/source.d.ts.map +1 -1
- package/dist/schemas/source.js +234 -0
- package/dist/schemas/source.js.map +1 -1
- package/dist/templates/agents/AGENTS.md +33 -3
- package/dist/templates/feedradar.md +23 -8
- package/dist/templates/workflows/combined.template.yaml.tmpl +110 -0
- package/dist/templates/workflows/watch.template.yaml.tmpl +103 -0
- package/package.json +1 -2
package/README.ja.md
CHANGED
|
@@ -11,9 +11,12 @@
|
|
|
11
11
|
## 主な特徴
|
|
12
12
|
|
|
13
13
|
- **多エージェント対応**: Claude Code / Codex CLI / Gemini CLI / GitHub Copilot CLI を adapter 経由で切り替え。
|
|
14
|
-
- **複数フィード種別**: RSS / HTML / **HTML (JS rendered)** / GitHub Releases / npm registry を同一の `Source`
|
|
14
|
+
- **複数フィード種別**: RSS / HTML / **HTML (JS rendered)** / GitHub Releases / npm registry / **JSON Feed (1.0 / 1.1)** / **JSON API (recipe ベース、過去全件取り込みの `--backfill` 対応)** を同一の `Source` 抽象で扱う ([ADR-0012](./docs/adr/0012-json-api-adapter-and-recipe-strategy.md))。
|
|
15
|
+
- **バンドル recipe**: `radar source recipes` で同梱済み YAML recipe (例: AWS What's New / dev.to) を一覧、`radar source add <id> --recipe <name>` で 1 行で source 化 ([ADR-0012 §D3](./docs/adr/0012-json-api-adapter-and-recipe-strategy.md))。
|
|
15
16
|
- **Digest モード**: 短期間に複数ヒットした item や、複数 feed に跨る同テーマの item を 1 本の横断レポートにまとめる ([ADR-0011](./docs/adr/0011-digest-research-output.md))。
|
|
16
17
|
- **ユーザー側データ管理**: `sources/` `items/` `state/` `research/` `templates/` は **ユーザーの任意ディレクトリ** に置き、本パッケージは engine のみを提供する。
|
|
18
|
+
- **定期実行 workflow 後追い生成**: `radar workflow generate watch` / `combined` で GitHub Actions YAML を CLI から後追い生成。`combined` は watch + 自動 research を `--max-items` ハードキャップ付きで実行し、暴走 feed による LLM cost 爆発を設計レベルで遮断 ([ADR-0014](./docs/adr/0014-workflow-generate-and-auto-research-safety.md))。
|
|
19
|
+
- **進捗表示と verbose mode**: 長時間実行コマンド (`research` / `review` / `update` / `watch run --backfill` / html-js fetch / `source test`) が phase markers + spinner + 副次メトリクス (`stdout` / `output` / `page x/N`) を stderr に出力する。`--verbose` で agent CLI の stdout/stderr を pass-through、`--quiet`(CI なら `RADAR_NO_PROGRESS=1`)で reporter を完全に黙らせる ([ADR-0015](./docs/adr/0015-progress-reporting-ux.md))。
|
|
17
20
|
- **npm 単体配布**: OIDC Trusted Publishers で `@ozzylabs/feedradar` を npm 配布。
|
|
18
21
|
|
|
19
22
|
## インストール
|
|
@@ -70,11 +73,14 @@ radar research --digest <id1> <id2> ... # 複数 item を 1 つの digest レ
|
|
|
70
73
|
radar dismiss <item-id> # 不要 item を dismissed に遷移(LLM 不要)
|
|
71
74
|
radar review <research-id> # レポートを別エージェントで相互レビュー
|
|
72
75
|
radar update <research-id> # 既存レポートを最新 item で更新(v+1)
|
|
73
|
-
radar doctor # workspace / agent CLI / Playwright の health check
|
|
76
|
+
radar doctor # workspace / agent CLI / Playwright / proxy / TLS の health check
|
|
77
|
+
# --no-proxy-check で live proxy round-trip をスキップ (offline 環境向け)
|
|
78
|
+
radar workflow generate watch # GitHub Actions watch workflow を後追い生成 (ADR-0014)
|
|
79
|
+
radar workflow generate combined # watch + 自動 research を --max-items ハードキャップ付きで生成 (ADR-0014)
|
|
74
80
|
radar --help # ヘルプ
|
|
75
81
|
```
|
|
76
82
|
|
|
77
|
-
全
|
|
83
|
+
全 9 サブコマンド (`init` / `source` / `watch` / `research` / `dismiss` / `review` / `update` / `doctor` / `workflow`) が実装済み。詳細は [docs/user-guide.md](./docs/user-guide.md) を参照。
|
|
78
84
|
|
|
79
85
|
## 開発
|
|
80
86
|
|
|
@@ -96,7 +102,7 @@ node dist/index.js --help # 等価
|
|
|
96
102
|
```text
|
|
97
103
|
src/
|
|
98
104
|
index.ts CLI entry point (#!/usr/bin/env node)
|
|
99
|
-
cli/ init / source / watch / research / dismiss / review / update
|
|
105
|
+
cli/ init / source / watch / research / dismiss / review / update / doctor / workflow
|
|
100
106
|
core/
|
|
101
107
|
watcher.ts source → adapter → items
|
|
102
108
|
filter.ts keyword / excludeKeyword
|
|
@@ -105,7 +111,7 @@ src/
|
|
|
105
111
|
state.ts state/<sourceId>.yaml の load / save
|
|
106
112
|
config.ts radar.config.yaml の load / 検証
|
|
107
113
|
injection-detector.ts prompt injection regex pre-filter (ADR-0009 M1a)
|
|
108
|
-
feeds/ rss / html / html-js / github-releases / npm-registry
|
|
114
|
+
feeds/ rss / html / html-js / github-releases / npm-registry / json-feed / json-api
|
|
109
115
|
agents/ 4 CLI adapters(claude-code / codex-cli / gemini-cli / copilot)
|
|
110
116
|
schemas/ Zod スキーマ(Source / Item / State / Research)
|
|
111
117
|
skills/ engine SKILL bundle (research / review / update; init で .agents/skills/ に配布)
|
|
@@ -120,7 +126,7 @@ src/
|
|
|
120
126
|
- [docs/user-guide.md](./docs/user-guide.md) — インストール / クイックスタート / コマンド仕様
|
|
121
127
|
- [docs/user-guide/proxy-setup.ja.md](./docs/user-guide/proxy-setup.ja.md) — 企業プロキシ / TLS 中継 / NTLM ブリッジ / WSL2 環境のセットアップ
|
|
122
128
|
- [docs/release.md](./docs/release.md) — リリース手順(初回手動 publish + Trusted Publisher 登録 + 以降の OIDC 自動化)
|
|
123
|
-
- [docs/adr/](./docs/adr/README.md) — FeedRadar 内部の設計判断記録(Agent / Source / Output / Schedule / User Data / Filter / Skill Bundling / Status State Machine / Untrusted External Content Handling)
|
|
129
|
+
- [docs/adr/](./docs/adr/README.md) — FeedRadar 内部の設計判断記録(Agent / Source / Output / Schedule / User Data / Filter / Skill Bundling / Status State Machine / Untrusted External Content Handling / html-js Adapter / Digest Research / JSON API & Recipes / Workflow Generate / Progress Reporting)
|
|
124
130
|
|
|
125
131
|
## 規約
|
|
126
132
|
|
package/README.md
CHANGED
|
@@ -11,9 +11,12 @@ Tracking multiple official blogs, docs, and release notes — and summarizing wh
|
|
|
11
11
|
## Highlights
|
|
12
12
|
|
|
13
13
|
- **Multi-agent**: switch between Claude Code / Codex CLI / Gemini CLI / GitHub Copilot CLI via adapters.
|
|
14
|
-
- **Multiple feed kinds**: RSS / HTML / **HTML (JS rendered)** / GitHub Releases / npm registry are all driven through the same `Source` abstraction.
|
|
14
|
+
- **Multiple feed kinds**: RSS / HTML / **HTML (JS rendered)** / GitHub Releases / npm registry / **JSON Feed (1.0 / 1.1)** / **JSON API (recipe-driven, with `--backfill` for full history)** are all driven through the same `Source` abstraction ([ADR-0012](./docs/adr/0012-json-api-adapter-and-recipe-strategy.md)).
|
|
15
|
+
- **Bundled recipes**: `radar source recipes` lists maintained YAML recipes (e.g. AWS What's New, dev.to) and `radar source add <id> --recipe <name>` applies one in a single line — no boilerplate ([ADR-0012 §D3](./docs/adr/0012-json-api-adapter-and-recipe-strategy.md)).
|
|
15
16
|
- **Digest mode**: bundle multiple items hit in a short period — or across feeds on the same topic — into a single cross-cutting report ([ADR-0011](./docs/adr/0011-digest-research-output.md)).
|
|
16
17
|
- **User-owned data**: `sources/` `items/` `state/` `research/` `templates/` live in **your workspace directory**. This package ships only the engine.
|
|
18
|
+
- **Scheduled workflows**: `radar workflow generate watch` / `combined` emits GitHub Actions YAML on demand — combine watch with auto-research under a hard-capped `--max-items` budget so a runaway feed cannot blow your LLM bill ([ADR-0014](./docs/adr/0014-workflow-generate-and-auto-research-safety.md)).
|
|
19
|
+
- **Progress reporting & verbose mode**: long-running commands (`research` / `review` / `update` / `watch run --backfill` / html-js fetch / `source test`) stream phase markers + a spinner + side metrics (`stdout` / `output` / `page x/N`) on stderr. Pass `--verbose` to also stream the agent CLI's stdout/stderr, `--quiet` (or `RADAR_NO_PROGRESS=1` for CI) to silence the reporter ([ADR-0015](./docs/adr/0015-progress-reporting-ux.md)).
|
|
17
20
|
- **Single npm package**: distributed as `@ozzylabs/feedradar` via OIDC Trusted Publishers.
|
|
18
21
|
|
|
19
22
|
## Install
|
|
@@ -29,7 +32,7 @@ npm i -g playwright
|
|
|
29
32
|
npx playwright install chromium
|
|
30
33
|
```
|
|
31
34
|
|
|
32
|
-
Run `radar doctor` to verify Playwright / Chromium are detected before adding an `html-js` source. CI setup details and a sample workflow are in [
|
|
35
|
+
Run `radar doctor` to verify Playwright / Chromium are detected before adding an `html-js` source. CI setup details and a sample workflow are in [the user-guide's `--kind html-js` → CI section](./docs/user-guide.md#ci-で使う) (the user-guide is Japanese-only today, so the anchor stays as-is).
|
|
33
36
|
|
|
34
37
|
While developing locally, clone this repo and run `pnpm install && pnpm run build` to produce `dist/index.js`, then invoke `node dist/index.js <command>`.
|
|
35
38
|
|
|
@@ -72,10 +75,12 @@ radar review <research-id> # cross-review a report with a different agent
|
|
|
72
75
|
radar update <research-id> # refresh an existing report against the latest item (v+1)
|
|
73
76
|
radar doctor # check workspace / agent CLI / Playwright / proxy / TLS health
|
|
74
77
|
# --no-proxy-check skips the live proxy round-trip (offline-friendly)
|
|
78
|
+
radar workflow generate watch # emit a GitHub Actions watch workflow on demand (ADR-0014)
|
|
79
|
+
radar workflow generate combined # watch + auto-research with --max-items hard cap (ADR-0014)
|
|
75
80
|
radar --help # help
|
|
76
81
|
```
|
|
77
82
|
|
|
78
|
-
All
|
|
83
|
+
All 9 subcommands are implemented (`init` / `source` / `watch` / `research` / `dismiss` / `review` / `update` / `doctor` / `workflow`). See [docs/user-guide.md](./docs/user-guide.md) for the full spec.
|
|
79
84
|
|
|
80
85
|
## Development
|
|
81
86
|
|
|
@@ -97,7 +102,7 @@ node dist/index.js --help # equivalent
|
|
|
97
102
|
```text
|
|
98
103
|
src/
|
|
99
104
|
index.ts CLI entry point (#!/usr/bin/env node)
|
|
100
|
-
cli/ init / source / watch / research / dismiss / review / update
|
|
105
|
+
cli/ init / source / watch / research / dismiss / review / update / doctor / workflow
|
|
101
106
|
core/
|
|
102
107
|
watcher.ts source → adapter → items
|
|
103
108
|
filter.ts keyword / excludeKeyword
|
|
@@ -106,7 +111,7 @@ src/
|
|
|
106
111
|
state.ts state/<sourceId>.yaml load / save
|
|
107
112
|
config.ts radar.config.yaml load / validate
|
|
108
113
|
injection-detector.ts prompt injection regex pre-filter (ADR-0009 M1a)
|
|
109
|
-
feeds/ rss / html / html-js / github-releases / npm-registry
|
|
114
|
+
feeds/ rss / html / html-js / github-releases / npm-registry / json-feed / json-api
|
|
110
115
|
agents/ 4 CLI adapters (claude-code / codex-cli / gemini-cli / copilot)
|
|
111
116
|
schemas/ Zod schemas (Source / Item / State / Research)
|
|
112
117
|
skills/ engine SKILL bundle (research / review / update; init copies into .agents/skills/)
|
|
@@ -121,7 +126,7 @@ src/
|
|
|
121
126
|
- [docs/user-guide.md](./docs/user-guide.md) — install / quickstart / command reference
|
|
122
127
|
- [docs/user-guide/proxy-setup.md](./docs/user-guide/proxy-setup.md) — corporate proxy / TLS interception / NTLM bridge / WSL2 setup
|
|
123
128
|
- [docs/release.md](./docs/release.md) — release procedure (manual initial publish + Trusted Publisher registration + subsequent OIDC automation)
|
|
124
|
-
- [docs/adr/](./docs/adr/README.md) — FeedRadar design-decision records (Agent / Source / Output / Schedule / User Data / Filter / Skill Bundling / Status State Machine / Untrusted External Content Handling)
|
|
129
|
+
- [docs/adr/](./docs/adr/README.md) — FeedRadar design-decision records (Agent / Source / Output / Schedule / User Data / Filter / Skill Bundling / Status State Machine / Untrusted External Content Handling / html-js Adapter / Digest Research / JSON API & Recipes / Workflow Generate / Progress Reporting)
|
|
125
130
|
|
|
126
131
|
## Conventions
|
|
127
132
|
|
|
@@ -1,9 +1,20 @@
|
|
|
1
|
-
import type { AgentAdapter } from "./types.js";
|
|
1
|
+
import type { AgentAdapter, AgentProgressCallback } from "./types.js";
|
|
2
2
|
interface SpawnOptions {
|
|
3
3
|
cwd: string;
|
|
4
4
|
stdin: string;
|
|
5
5
|
log?: (message: string) => void;
|
|
6
6
|
warn?: (message: string) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Optional per-chunk callback for the spawned child's stdout / stderr.
|
|
9
|
+
*
|
|
10
|
+
* Added in #196 (ADR-0015 D3) to let callers wire a `ProgressReporter` —
|
|
11
|
+
* for example, bumping `stdout: 4.2 KB` on the spinner row or piping the
|
|
12
|
+
* chunk verbatim under `--verbose`. Adapter spawners MUST keep the
|
|
13
|
+
* existing `stdout`/`stderr` buffering behaviour and ALSO invoke this
|
|
14
|
+
* callback on each chunk. Unset means "no progress reporting" so existing
|
|
15
|
+
* call sites are byte-equivalent.
|
|
16
|
+
*/
|
|
17
|
+
onProgress?: AgentProgressCallback;
|
|
7
18
|
}
|
|
8
19
|
interface SpawnResult {
|
|
9
20
|
code: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/agents/claude-code.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/agents/claude-code.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,qBAAqB,EAItB,MAAM,YAAY,CAAC;AAsKpB,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AA6CD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAE3F,UAAU,wBAAwB;IAChC,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,wBAA6B,GAAG,YAAY,CAgE5F;AAED,eAAO,MAAM,iBAAiB,EAAE,YAAwC,CAAC"}
|
|
@@ -174,10 +174,14 @@ async function runClaudeCli(prompt, options) {
|
|
|
174
174
|
let stdout = "";
|
|
175
175
|
let stderr = "";
|
|
176
176
|
child.stdout?.on("data", (chunk) => {
|
|
177
|
-
|
|
177
|
+
const text = chunk.toString();
|
|
178
|
+
stdout += text;
|
|
179
|
+
options.onProgress?.("stdout", text);
|
|
178
180
|
});
|
|
179
181
|
child.stderr?.on("data", (chunk) => {
|
|
180
|
-
|
|
182
|
+
const text = chunk.toString();
|
|
183
|
+
stderr += text;
|
|
184
|
+
options.onProgress?.("stderr", text);
|
|
181
185
|
});
|
|
182
186
|
child.on("error", (err) => {
|
|
183
187
|
reject(new Error(err.message.includes("ENOENT")
|
|
@@ -212,7 +216,7 @@ export function createClaudeCodeAdapter(options = {}) {
|
|
|
212
216
|
items: req.items,
|
|
213
217
|
outputPath: req.outputPath,
|
|
214
218
|
}, null, 2)}\n`;
|
|
215
|
-
const result = await run(prompt, { cwd: req.cwd, stdin });
|
|
219
|
+
const result = await run(prompt, { cwd: req.cwd, stdin, onProgress: req.onProgress });
|
|
216
220
|
if (result.code !== 0) {
|
|
217
221
|
const tail = result.stderr.trim() || result.stdout.trim() || "(no output)";
|
|
218
222
|
throw new Error(`claude-code adapter: claude CLI exited with code ${result.code}: ${tail}`);
|
|
@@ -228,7 +232,7 @@ export function createClaudeCodeAdapter(options = {}) {
|
|
|
228
232
|
researchFrontmatter: req.researchFrontmatter,
|
|
229
233
|
researchBody: req.researchBody,
|
|
230
234
|
}, null, 2)}\n`;
|
|
231
|
-
const result = await run(prompt, { cwd: req.cwd, stdin });
|
|
235
|
+
const result = await run(prompt, { cwd: req.cwd, stdin, onProgress: req.onProgress });
|
|
232
236
|
if (result.code !== 0) {
|
|
233
237
|
const tail = result.stderr.trim() || result.stdout.trim() || "(no output)";
|
|
234
238
|
throw new Error(`claude-code adapter: claude CLI exited with code ${result.code}: ${tail}`);
|
|
@@ -244,7 +248,7 @@ export function createClaudeCodeAdapter(options = {}) {
|
|
|
244
248
|
items: req.items,
|
|
245
249
|
outputPath: req.outputPath,
|
|
246
250
|
}, null, 2)}\n`;
|
|
247
|
-
const result = await run(prompt, { cwd: req.cwd, stdin });
|
|
251
|
+
const result = await run(prompt, { cwd: req.cwd, stdin, onProgress: req.onProgress });
|
|
248
252
|
if (result.code !== 0) {
|
|
249
253
|
const tail = result.stderr.trim() || result.stdout.trim() || "(no output)";
|
|
250
254
|
throw new Error(`claude-code adapter: claude CLI exited with code ${result.code}: ${tail}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/agents/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/agents/claude-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import type { AgentAdapter } from "./types.js";
|
|
1
|
+
import type { AgentAdapter, AgentProgressCallback } from "./types.js";
|
|
2
2
|
interface SpawnOptions {
|
|
3
3
|
cwd: string;
|
|
4
4
|
stdin: string;
|
|
5
5
|
log?: (message: string) => void;
|
|
6
6
|
warn?: (message: string) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Optional per-chunk callback for the spawned child's stdout / stderr.
|
|
9
|
+
* See `src/agents/claude-code.ts` `SpawnOptions.onProgress` (#196 /
|
|
10
|
+
* ADR-0015 D3) — same contract.
|
|
11
|
+
*/
|
|
12
|
+
onProgress?: AgentProgressCallback;
|
|
7
13
|
}
|
|
8
14
|
interface SpawnResult {
|
|
9
15
|
code: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-cli.d.ts","sourceRoot":"","sources":["../../src/agents/codex-cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"codex-cli.d.ts","sourceRoot":"","sources":["../../src/agents/codex-cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,qBAAqB,EAItB,MAAM,YAAY,CAAC;AAkKpB,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AA0ED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAE1F,UAAU,sBAAsB;IAC9B,GAAG,CAAC,EAAE,WAAW,CAAC;CACnB;AAmBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,YAAY,CA+ExF;AAED,eAAO,MAAM,eAAe,EAAE,YAAsC,CAAC"}
|
package/dist/agents/codex-cli.js
CHANGED
|
@@ -199,10 +199,14 @@ async function runCodexCli(prompt, options) {
|
|
|
199
199
|
let stdout = "";
|
|
200
200
|
let stderr = "";
|
|
201
201
|
child.stdout?.on("data", (chunk) => {
|
|
202
|
-
|
|
202
|
+
const text = chunk.toString();
|
|
203
|
+
stdout += text;
|
|
204
|
+
options.onProgress?.("stdout", text);
|
|
203
205
|
});
|
|
204
206
|
child.stderr?.on("data", (chunk) => {
|
|
205
|
-
|
|
207
|
+
const text = chunk.toString();
|
|
208
|
+
stderr += text;
|
|
209
|
+
options.onProgress?.("stderr", text);
|
|
206
210
|
});
|
|
207
211
|
child.on("error", (err) => {
|
|
208
212
|
reject(new Error(err.message.includes("ENOENT")
|
|
@@ -250,7 +254,7 @@ export function createCodexCliAdapter(options = {}) {
|
|
|
250
254
|
items: req.items,
|
|
251
255
|
outputPath: req.outputPath,
|
|
252
256
|
}, null, 2)}\n`;
|
|
253
|
-
const result = await run(prompt, { cwd: req.cwd, stdin });
|
|
257
|
+
const result = await run(prompt, { cwd: req.cwd, stdin, onProgress: req.onProgress });
|
|
254
258
|
if (result.code !== 0) {
|
|
255
259
|
const tail = result.stderr.trim() || result.stdout.trim() || "(no output)";
|
|
256
260
|
if (isAuthError(`${result.stderr}\n${result.stdout}`)) {
|
|
@@ -269,7 +273,7 @@ export function createCodexCliAdapter(options = {}) {
|
|
|
269
273
|
researchFrontmatter: req.researchFrontmatter,
|
|
270
274
|
researchBody: req.researchBody,
|
|
271
275
|
}, null, 2)}\n`;
|
|
272
|
-
const result = await run(prompt, { cwd: req.cwd, stdin });
|
|
276
|
+
const result = await run(prompt, { cwd: req.cwd, stdin, onProgress: req.onProgress });
|
|
273
277
|
if (result.code !== 0) {
|
|
274
278
|
const tail = result.stderr.trim() || result.stdout.trim() || "(no output)";
|
|
275
279
|
if (isAuthError(`${result.stderr}\n${result.stdout}`)) {
|
|
@@ -288,7 +292,7 @@ export function createCodexCliAdapter(options = {}) {
|
|
|
288
292
|
items: req.items,
|
|
289
293
|
outputPath: req.outputPath,
|
|
290
294
|
}, null, 2)}\n`;
|
|
291
|
-
const result = await run(prompt, { cwd: req.cwd, stdin });
|
|
295
|
+
const result = await run(prompt, { cwd: req.cwd, stdin, onProgress: req.onProgress });
|
|
292
296
|
if (result.code !== 0) {
|
|
293
297
|
const tail = result.stderr.trim() || result.stdout.trim() || "(no output)";
|
|
294
298
|
if (isAuthError(`${result.stderr}\n${result.stdout}`)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-cli.js","sourceRoot":"","sources":["../../src/agents/codex-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-cli.js","sourceRoot":"","sources":["../../src/agents/codex-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/copilot.d.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import type { AgentAdapter } from "./types.js";
|
|
1
|
+
import type { AgentAdapter, AgentProgressCallback } from "./types.js";
|
|
2
2
|
interface SpawnOptions {
|
|
3
3
|
cwd: string;
|
|
4
4
|
stdin: string;
|
|
5
|
+
/**
|
|
6
|
+
* Optional per-chunk callback for the spawned child's stdout / stderr.
|
|
7
|
+
* See `src/agents/claude-code.ts` `SpawnOptions.onProgress` (#196 /
|
|
8
|
+
* ADR-0015 D3) — same contract.
|
|
9
|
+
*/
|
|
10
|
+
onProgress?: AgentProgressCallback;
|
|
5
11
|
}
|
|
6
12
|
interface SpawnResult {
|
|
7
13
|
code: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/agents/copilot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/agents/copilot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,qBAAqB,EAItB,MAAM,YAAY,CAAC;AAgKpB,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAoDD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAE5F,UAAU,qBAAqB;IAC7B,GAAG,CAAC,EAAE,aAAa,CAAC;CACrB;AAsBD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,YAAY,CA+EtF;AAED,eAAO,MAAM,cAAc,EAAE,YAAqC,CAAC"}
|
package/dist/agents/copilot.js
CHANGED
|
@@ -175,10 +175,14 @@ async function runCopilotCli(prompt, options) {
|
|
|
175
175
|
let stdout = "";
|
|
176
176
|
let stderr = "";
|
|
177
177
|
child.stdout?.on("data", (chunk) => {
|
|
178
|
-
|
|
178
|
+
const text = chunk.toString();
|
|
179
|
+
stdout += text;
|
|
180
|
+
options.onProgress?.("stdout", text);
|
|
179
181
|
});
|
|
180
182
|
child.stderr?.on("data", (chunk) => {
|
|
181
|
-
|
|
183
|
+
const text = chunk.toString();
|
|
184
|
+
stderr += text;
|
|
185
|
+
options.onProgress?.("stderr", text);
|
|
182
186
|
});
|
|
183
187
|
child.on("error", (err) => {
|
|
184
188
|
reject(new Error(err.message.includes("ENOENT")
|
|
@@ -229,7 +233,7 @@ export function createCopilotAdapter(options = {}) {
|
|
|
229
233
|
items: req.items,
|
|
230
234
|
outputPath: req.outputPath,
|
|
231
235
|
}, null, 2)}\n`;
|
|
232
|
-
const result = await run(prompt, { cwd: req.cwd, stdin });
|
|
236
|
+
const result = await run(prompt, { cwd: req.cwd, stdin, onProgress: req.onProgress });
|
|
233
237
|
if (result.code !== 0) {
|
|
234
238
|
const tail = result.stderr.trim() || result.stdout.trim() || "(no output)";
|
|
235
239
|
if (isAuthError(tail)) {
|
|
@@ -248,7 +252,7 @@ export function createCopilotAdapter(options = {}) {
|
|
|
248
252
|
researchFrontmatter: req.researchFrontmatter,
|
|
249
253
|
researchBody: req.researchBody,
|
|
250
254
|
}, null, 2)}\n`;
|
|
251
|
-
const result = await run(prompt, { cwd: req.cwd, stdin });
|
|
255
|
+
const result = await run(prompt, { cwd: req.cwd, stdin, onProgress: req.onProgress });
|
|
252
256
|
if (result.code !== 0) {
|
|
253
257
|
const tail = result.stderr.trim() || result.stdout.trim() || "(no output)";
|
|
254
258
|
if (isAuthError(tail)) {
|
|
@@ -267,7 +271,7 @@ export function createCopilotAdapter(options = {}) {
|
|
|
267
271
|
items: req.items,
|
|
268
272
|
outputPath: req.outputPath,
|
|
269
273
|
}, null, 2)}\n`;
|
|
270
|
-
const result = await run(prompt, { cwd: req.cwd, stdin });
|
|
274
|
+
const result = await run(prompt, { cwd: req.cwd, stdin, onProgress: req.onProgress });
|
|
271
275
|
if (result.code !== 0) {
|
|
272
276
|
const tail = result.stderr.trim() || result.stdout.trim() || "(no output)";
|
|
273
277
|
if (isAuthError(tail)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/agents/copilot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/agents/copilot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import type { AgentAdapter } from "./types.js";
|
|
1
|
+
import type { AgentAdapter, AgentProgressCallback } from "./types.js";
|
|
2
2
|
interface SpawnOptions {
|
|
3
3
|
cwd: string;
|
|
4
4
|
stdin: string;
|
|
5
|
+
/**
|
|
6
|
+
* Optional per-chunk callback for the spawned child's stdout / stderr.
|
|
7
|
+
* See `src/agents/claude-code.ts` `SpawnOptions.onProgress` (#196 /
|
|
8
|
+
* ADR-0015 D3) — same contract.
|
|
9
|
+
*/
|
|
10
|
+
onProgress?: AgentProgressCallback;
|
|
5
11
|
}
|
|
6
12
|
interface SpawnResult {
|
|
7
13
|
code: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-cli.d.ts","sourceRoot":"","sources":["../../src/agents/gemini-cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"gemini-cli.d.ts","sourceRoot":"","sources":["../../src/agents/gemini-cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,qBAAqB,EAItB,MAAM,YAAY,CAAC;AAsKpB,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AA6FD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAE3F,UAAU,uBAAuB;IAC/B,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,uBAA4B,GAAG,YAAY,CA+E1F;AAED,eAAO,MAAM,gBAAgB,EAAE,YAAuC,CAAC"}
|
|
@@ -225,10 +225,14 @@ async function runGeminiCli(prompt, options) {
|
|
|
225
225
|
let stdout = "";
|
|
226
226
|
let stderr = "";
|
|
227
227
|
child.stdout?.on("data", (chunk) => {
|
|
228
|
-
|
|
228
|
+
const text = chunk.toString();
|
|
229
|
+
stdout += text;
|
|
230
|
+
options.onProgress?.("stdout", text);
|
|
229
231
|
});
|
|
230
232
|
child.stderr?.on("data", (chunk) => {
|
|
231
|
-
|
|
233
|
+
const text = chunk.toString();
|
|
234
|
+
stderr += text;
|
|
235
|
+
options.onProgress?.("stderr", text);
|
|
232
236
|
});
|
|
233
237
|
child.on("error", (err) => {
|
|
234
238
|
reject(new Error(err.message.includes("ENOENT")
|
|
@@ -263,7 +267,7 @@ export function createGeminiCliAdapter(options = {}) {
|
|
|
263
267
|
items: req.items,
|
|
264
268
|
outputPath: req.outputPath,
|
|
265
269
|
}, null, 2)}\n`;
|
|
266
|
-
const result = await run(prompt, { cwd: req.cwd, stdin });
|
|
270
|
+
const result = await run(prompt, { cwd: req.cwd, stdin, onProgress: req.onProgress });
|
|
267
271
|
if (result.code !== 0) {
|
|
268
272
|
const tail = result.stderr.trim() || result.stdout.trim() || "(no output)";
|
|
269
273
|
if (looksLikeAuthError(`${result.stderr}\n${result.stdout}`)) {
|
|
@@ -282,7 +286,7 @@ export function createGeminiCliAdapter(options = {}) {
|
|
|
282
286
|
researchFrontmatter: req.researchFrontmatter,
|
|
283
287
|
researchBody: req.researchBody,
|
|
284
288
|
}, null, 2)}\n`;
|
|
285
|
-
const result = await run(prompt, { cwd: req.cwd, stdin });
|
|
289
|
+
const result = await run(prompt, { cwd: req.cwd, stdin, onProgress: req.onProgress });
|
|
286
290
|
if (result.code !== 0) {
|
|
287
291
|
const tail = result.stderr.trim() || result.stdout.trim() || "(no output)";
|
|
288
292
|
if (looksLikeAuthError(`${result.stderr}\n${result.stdout}`)) {
|
|
@@ -301,7 +305,7 @@ export function createGeminiCliAdapter(options = {}) {
|
|
|
301
305
|
items: req.items,
|
|
302
306
|
outputPath: req.outputPath,
|
|
303
307
|
}, null, 2)}\n`;
|
|
304
|
-
const result = await run(prompt, { cwd: req.cwd, stdin });
|
|
308
|
+
const result = await run(prompt, { cwd: req.cwd, stdin, onProgress: req.onProgress });
|
|
305
309
|
if (result.code !== 0) {
|
|
306
310
|
const tail = result.stderr.trim() || result.stdout.trim() || "(no output)";
|
|
307
311
|
if (looksLikeAuthError(`${result.stderr}\n${result.stdout}`)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-cli.js","sourceRoot":"","sources":["../../src/agents/gemini-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini-cli.js","sourceRoot":"","sources":["../../src/agents/gemini-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/index.d.ts
CHANGED
|
@@ -8,5 +8,5 @@ export declare function getAgentAdapter(id: AgentId): AgentAdapter;
|
|
|
8
8
|
* afterEach.
|
|
9
9
|
*/
|
|
10
10
|
export declare function registerAgentAdapter(adapter: AgentAdapter): AgentAdapter | undefined;
|
|
11
|
-
export type { AgentAdapter, ResearchRequest, ReviewRequest, UpdateRequest } from "./types.js";
|
|
11
|
+
export type { AgentAdapter, AgentProgressCallback, ResearchRequest, ReviewRequest, UpdateRequest, } from "./types.js";
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAKnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAa/C,wBAAgB,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,YAAY,CAMzD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAIpF;AAED,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAKnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAa/C,wBAAgB,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,YAAY,CAMzD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAIpF;AAED,YAAY,EACV,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC"}
|
package/dist/agents/types.d.ts
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
import type { AgentId, Item, ResearchFrontmatter } from "../schemas/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Low-level stream pass-through callback (ADR-0015 D3).
|
|
4
|
+
*
|
|
5
|
+
* Adapters wire this to each `child.stdout` / `child.stderr` `"data"` chunk
|
|
6
|
+
* so the caller (`research` / `review` / `update` CLI in #197) can keep a
|
|
7
|
+
* `ProgressReporter` ticking — e.g. update `stdout: 4.2 KB` on the spinner
|
|
8
|
+
* row, or stream the chunk verbatim under `--verbose`.
|
|
9
|
+
*
|
|
10
|
+
* Stays at the lowest level (raw chunk text) so the adapter contract does
|
|
11
|
+
* not have to know about the `ProgressReporter` shape; callers translate
|
|
12
|
+
* chunks into reporter calls. `kind` distinguishes streams because some
|
|
13
|
+
* callers render stderr differently (warning colour, separate buffer).
|
|
14
|
+
*
|
|
15
|
+
* Optional everywhere: leaving `onProgress` unset is byte-equivalent to the
|
|
16
|
+
* pre-#196 adapter behaviour.
|
|
17
|
+
*/
|
|
18
|
+
export type AgentProgressCallback = (kind: "stdout" | "stderr", text: string) => void;
|
|
2
19
|
export interface ResearchRequest {
|
|
3
20
|
agent: AgentId;
|
|
4
21
|
templateId: string;
|
|
@@ -13,6 +30,12 @@ export interface ResearchRequest {
|
|
|
13
30
|
* `research/`, and resolve relative paths the same way the CLI does.
|
|
14
31
|
*/
|
|
15
32
|
cwd: string;
|
|
33
|
+
/**
|
|
34
|
+
* Optional progress callback. Invoked once per `stdout` / `stderr` chunk
|
|
35
|
+
* from the spawned agent CLI. Unset means "no progress reporting"
|
|
36
|
+
* (#196 forward-compat: existing call sites work unchanged).
|
|
37
|
+
*/
|
|
38
|
+
onProgress?: AgentProgressCallback;
|
|
16
39
|
}
|
|
17
40
|
/**
|
|
18
41
|
* Inputs for the `review` adapter method.
|
|
@@ -48,6 +71,11 @@ export interface ReviewRequest {
|
|
|
48
71
|
* `items/`, `sources/`, etc. with relative paths.
|
|
49
72
|
*/
|
|
50
73
|
cwd: string;
|
|
74
|
+
/**
|
|
75
|
+
* Optional progress callback. See {@link AgentProgressCallback} /
|
|
76
|
+
* {@link ResearchRequest.onProgress}.
|
|
77
|
+
*/
|
|
78
|
+
onProgress?: AgentProgressCallback;
|
|
51
79
|
}
|
|
52
80
|
/**
|
|
53
81
|
* Inputs for the `update` adapter method.
|
|
@@ -93,6 +121,11 @@ export interface UpdateRequest {
|
|
|
93
121
|
* `items/`, `sources/`, etc. with relative paths.
|
|
94
122
|
*/
|
|
95
123
|
cwd: string;
|
|
124
|
+
/**
|
|
125
|
+
* Optional progress callback. See {@link AgentProgressCallback} /
|
|
126
|
+
* {@link ResearchRequest.onProgress}.
|
|
127
|
+
*/
|
|
128
|
+
onProgress?: AgentProgressCallback;
|
|
96
129
|
}
|
|
97
130
|
export interface AgentAdapter {
|
|
98
131
|
id: AgentId;
|