diff --git a/README.assets/image.png b/README.assets/image.png
new file mode 100644
index 0000000..48c3910
Binary files /dev/null and b/README.assets/image.png differ
diff --git a/README.md b/README.md
index d0b5ffe..6833f31 100644
--- a/README.md
+++ b/README.md
@@ -1,44 +1,42 @@
# code_work_spawner
-Repository issue thread assistant with an Agent Orchestrator style YAML config.
+Repository issue thread assistant configured by YAML.
-It consumes issue tracker events for configured GitHub, GitLab, Gitea, or OpenProject
-projects, reads issue threads, and uses CLI responders such as `codex`, `opencode`, or
-`copilot-cli` to decide when to reply. It supports
-multi-repo config, responder fallback chains, and optional Discord webhook and
-desktop notifications. Repository access is configured separately through each
-project's `scm` block so tracker and checkout handling can evolve
-independently.
+It watches GitHub, GitLab, Gitea, or OpenProject issue events, reads threads, and triggers CLI responders such as `codex`, `opencode`, or `copilot-cli`.
+Supports multi-repo config, responder fallback chains, isolated worktrees, and optional Discord or desktop notifications.
+
+
## Highlights
-- Consume GitHub, GitLab, Gitea, and OpenProject issue events across multiple projects
-- Trigger replies from mentions or meaningful thread updates
-- Run planning and bug-verification flows in isolated worktrees
-- Send optional Discord or desktop notifications for assistant events
+- Track issue events across multiple repositories
+- Reply on mentions or meaningful thread updates
+- Run planning and bug verification in isolated worktrees
+- Send optional Discord and desktop notifications
## Requirements
- Dart SDK
-- `gh`, `glab`, `tea`, and/or OpenProject API credentials authenticated for the target projects
+- Authenticated `gh`, `glab`, `tea`, and/or OpenProject API credentials
- Local checkouts for configured repositories
-- Optional local responder CLIs such as `codex`, `opencode`, or `copilot-cli`
+- Optional responder CLIs (`codex`, `opencode`, `copilot-cli`)
## Config
-Create a local `agent-orchestrator.yaml` and use
-[`examples/README.md`](examples/README.md) plus
-[`examples/simple-github.yaml`](examples/simple-github.yaml),
-[`examples/simple-gitlab.yaml`](examples/simple-gitlab.yaml), or
-[`examples/simple-gitea.yaml`](examples/simple-gitea.yaml) as the reference.
+Create `CWS_conf.yaml` using:
+- [examples/README.md](examples/README.md)
+- [examples/simple-github.yaml](examples/simple-github.yaml)
+- [examples/simple-gitlab.yaml](examples/simple-gitlab.yaml)
+- [examples/simple-gitea.yaml](examples/simple-gitea.yaml)
-Environment placeholders such as `${CWS_DISCORD_WEBHOOK}` are resolved from the
-process environment and from a `.env` file placed next to the selected config
-file. Logging also supports `CWS_LOG_LEVEL` (or `LOG_LEVEL`) with values such
-as `trace`, `debug`, `info`, `warning`, `error`, or `fatal`. See
-[.env.example](.env.example) for a minimal starter file.
+Environment placeholders (for example `${CWS_DISCORD_WEBHOOK}`) are resolved
+from process env vars and from a `.env` file next to your config.
-Generate a starter config:
+Logging level can be set with `CWS_LOG_LEVEL` (or `LOG_LEVEL`): `trace`,
+`debug`, `info`, `warning`, `error`, `fatal`. Minimal example:
+[.env.example](.env.example).
+
+Generate starter config:
```bash
dart run bin/code_work_spawner.dart init-config
@@ -50,23 +48,25 @@ dart run bin/code_work_spawner.dart init-config --output agent-orchestrator.yaml
## Run
+Generate code first:
+
```bash
dart run build_runner build --delete-conflicting-outputs
```
-Single event-source reconciliation cycle:
+Run once:
```bash
dart run bin/code_work_spawner.dart --once
```
-Long-running tracker runtime:
+Run continuously:
```bash
dart run bin/code_work_spawner.dart
```
-Override tracker CLI paths when needed:
+Override CLI paths if needed:
```bash
dart run bin/code_work_spawner.dart \
@@ -79,7 +79,7 @@ dart run bin/code_work_spawner.dart \
## Install Binary
-Install the latest matching release binary from GitHub Releases:
+Install latest release binary:
```bash
# export GH_TOKEN="$TOKEN" # If got 404, `GITHUB_TOKEN` also work
diff --git a/bin/code_work_spawner.dart b/bin/code_work_spawner.dart
index 7eaf156..0dc64fd 100644
--- a/bin/code_work_spawner.dart
+++ b/bin/code_work_spawner.dart
@@ -18,7 +18,7 @@ class _CodeWorkSpawnerCommandRunner extends CommandRunner {
_CodeWorkSpawnerCommandRunner()
: super(
'code_work_spawner',
- 'Repository issue thread assistant with an Agent Orchestrator style YAML config.',
+ 'Repository issue thread assistant with a YAML config.',
) {
argParser
..addFlag(
@@ -30,8 +30,8 @@ class _CodeWorkSpawnerCommandRunner extends CommandRunner {
..addOption(
'config',
abbr: 'c',
- help: 'Path to agent-orchestrator.yaml.',
- defaultsTo: 'agent-orchestrator.yaml',
+ help: 'Path to the YAML config file.',
+ defaultsTo: 'CWS_conf.yaml',
)
..addOption(
'db',
diff --git a/examples/simple-github.yaml b/examples/simple-github.yaml
index f6c4ff0..6489918 100644
--- a/examples/simple-github.yaml
+++ b/examples/simple-github.yaml
@@ -25,10 +25,15 @@ defaults:
# Replace this with a responder available on your machine.
- id: codex
command: codex
- args: ["exec", "--json"]
+ args: ["-s", "danger-full-access", "exec", "--json"]
timeout: 10m
# - id: opencode
# command: opencode
+ # args: ["run", "-f", "json"]
+ # timeout: 10m
+ # - id: copilot-cli
+ # command: copilot
+ # args: ["--allow-all", "--autopilot", "-p", "--output-format", "json"]
# timeout: 10m
# notifications:
# # Optional Discord notifications for assistant activity.
diff --git a/lib/src/config/config.dart b/lib/src/config/config.dart
index b49ee90..d2233ea 100644
--- a/lib/src/config/config.dart
+++ b/lib/src/config/config.dart
@@ -1081,6 +1081,11 @@ ${_commentBlock(defaultIssueAssistantPrompt, indent: ' # ')}
# timeout: 10m
# - id: opencode
# command: opencode
+ # args: ["run", "-f", "json"]
+ # timeout: 10m
+ # - id: copilot-cli
+ # command: copilot
+ # args: ["--allow-all", "--autopilot", "-p", "--output-format", "json"]
# timeout: 10m
# notifications:
# - type: discordWebhook
diff --git a/skills-lock.json b/skills-lock.json
index 6dcd056..e401c99 100644
--- a/skills-lock.json
+++ b/skills-lock.json
@@ -46,6 +46,11 @@
"sourceType": "github",
"computedHash": "8bfae087ef27eb37092d94caf1da3406b500aa908756772bb1349a1ac70823dd"
},
+ "babysit-pr": {
+ "source": "openai/codex",
+ "sourceType": "github",
+ "computedHash": "8d952e21312ebf8573d9f5655c0e0eb3ad6e2ca14fcc6b95cbad046692eaf651"
+ },
"breakdown-epic-arch": {
"source": "github/awesome-copilot",
"sourceType": "github",
@@ -101,6 +106,11 @@
"sourceType": "github",
"computedHash": "a7d80450799b2141ddff9ec614477e237c1f50acb9eeade2dd869aeac3d004a9"
},
+ "codex": {
+ "source": "softaworks/agent-toolkit",
+ "sourceType": "github",
+ "computedHash": "4b7e8695807b567a7a7d467ab15b3da330aa0a847827067d79c654c540a72fe9"
+ },
"comment-code-generate-a-tutorial": {
"source": "github/awesome-copilot",
"sourceType": "github",
@@ -121,6 +131,11 @@
"sourceType": "github",
"computedHash": "934c017d41118a44f4db0e80b526db175cadcfdf8c5354fc9eceb0b3cb6beb50"
},
+ "copilot-cli-quickstart": {
+ "source": "github/awesome-copilot",
+ "sourceType": "github",
+ "computedHash": "720e848c508c9fccc0d9edbdb7a68ede333866e1e0a126b7d4b179e01d7ba5d7"
+ },
"create-agentsmd": {
"source": "github/awesome-copilot",
"sourceType": "github",
diff --git a/test/config/app_config_test.dart b/test/config/app_config_test.dart
index ed34540..a2a71a6 100644
--- a/test/config/app_config_test.dart
+++ b/test/config/app_config_test.dart
@@ -60,7 +60,7 @@ void main() {
test('Merge defaults with project overrides', () async {
// Given camelCase config with shared defaults and one project override.
final tempDir = await Directory.systemTemp.createTemp('cws-config-');
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -120,7 +120,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-default-templates-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -163,7 +163,7 @@ projects:
test('Resolve config placeholders from a colocated dotenv file', () async {
// Given an orchestrator config with environment placeholders and a colocated dotenv file.
final tempDir = await Directory.systemTemp.createTemp('cws-dotenv-');
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
final dotenvFile = File(p.join(tempDir.path, '.env'));
addTearDown(AppEnvironment.resetForTest);
await dotenvFile.writeAsString('''
@@ -211,7 +211,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-comment-template-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -249,7 +249,7 @@ projects:
test('Normalize legacy codex json flag', () async {
// Given an orchestrator config that still uses the legacy codex --json-output flag.
final tempDir = await Directory.systemTemp.createTemp('cws-codex-args-');
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -285,7 +285,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-notification-config-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -340,7 +340,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-desktop-notification-config-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -379,7 +379,7 @@ projects:
test('Load camelCase config with shared worktree root', () async {
// Given camelCase config with dataDir, worktreeDir, and project settings.
final tempDir = await Directory.systemTemp.createTemp('cws-camel-case-');
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
dataDir: ~/.agent-orchestrator
worktreeDir: ~/.worktrees
@@ -420,7 +420,7 @@ projects:
test('Infer a Gitea issue tracker provider from the event source', () async {
// Given a config whose project sets tea/polling as the event source type.
final tempDir = await Directory.systemTemp.createTemp('cws-gitea-');
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -456,7 +456,7 @@ projects:
test('Infer a GitLab issue tracker provider from the event source', () async {
// Given a config whose project sets glab/polling as the event source type.
final tempDir = await Directory.systemTemp.createTemp('cws-gitlab-');
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -497,9 +497,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-openproject-',
);
- final configFile = File(
- p.join(tempDir.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -542,7 +540,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-openproject-missing-scm-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -585,7 +583,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-openproject-project-name-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -621,7 +619,7 @@ projects:
test('Load gh/gosmee as the issue event source', () async {
// Given a GitHub project config that opts into gh/gosmee.
final tempDir = await Directory.systemTemp.createTemp('cws-gh-gosmee-');
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -655,7 +653,7 @@ projects:
test('Load glab/gosmee as the issue event source', () async {
// Given a GitLab project config that opts into glab/gosmee.
final tempDir = await Directory.systemTemp.createTemp('cws-glab-gosmee-');
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -693,9 +691,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-explicit-scm-',
);
- final configFile = File(
- p.join(tempDir.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -732,7 +728,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-legacy-provider-fallback-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -769,7 +765,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-gh-gosmee-gitea-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -813,9 +809,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-glab-gosmee-github-',
);
- final configFile = File(
- p.join(tempDir.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -860,7 +854,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-webhook-forward-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -896,7 +890,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-channel-reconcile-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -941,7 +935,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-legacy-channel-poll-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -985,9 +979,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-webhook-forward-gitea-',
);
- final configFile = File(
- p.join(tempDir.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -1028,7 +1020,7 @@ projects:
test('Load tea/gosmee as the issue event source', () async {
// Given a Gitea project config that opts into tea/gosmee.
final tempDir = await Directory.systemTemp.createTemp('cws-gosmee-');
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -1066,9 +1058,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-gosmee-github-',
);
- final configFile = File(
- p.join(tempDir.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -1110,7 +1100,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-snake-case-invalid-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
worktree_dir: ~/.worktrees
projects:
@@ -1146,7 +1136,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-invalid-repo-slug-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
@@ -1180,7 +1170,7 @@ projects:
test('Generate a starter config that parses as valid YAML', () async {
// Given the built-in initial config renderer.
final tempDir = await Directory.systemTemp.createTemp('cws-init-config-');
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
final contents = AppConfig.renderInitialConfig();
// When writing the generated starter config to disk.
@@ -1220,7 +1210,7 @@ projects:
final tempDir = await Directory.systemTemp.createTemp(
'cws-init-optional-',
);
- final configFile = File(p.join(tempDir.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(tempDir.path, 'CWS_conf.yaml'));
final contents = AppConfig.renderInitialConfig()
.replaceFirst(
' # capabilities: ["planning", "bug_verification"]',
diff --git a/test/config/init_config_cli_test.dart b/test/config/init_config_cli_test.dart
index 5bd412b..8259328 100644
--- a/test/config/init_config_cli_test.dart
+++ b/test/config/init_config_cli_test.dart
@@ -115,7 +115,7 @@ void main() {
test('Print the starter config to stdout', () async {
// Given the CLI is executed with the init-config command.
final sandbox = await Directory.systemTemp.createTemp('cws-cli-stdout-');
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
final result = await runCli(['init-config']);
// When the process completes successfully.
@@ -164,7 +164,7 @@ void main() {
test('Refuse overwrite unless force is provided', () async {
// Given an existing output file for the init-config command.
final sandbox = await Directory.systemTemp.createTemp('cws-cli-force-');
- final outputFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final outputFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await outputFile.writeAsString('original');
// When the CLI writes without the force flag and then with the force flag.
diff --git a/test/core/concurrency_test.dart b/test/core/concurrency_test.dart
index faa42b0..53806b9 100644
--- a/test/core/concurrency_test.dart
+++ b/test/core/concurrency_test.dart
@@ -124,7 +124,7 @@ void registerIssueAssistantAppRunOnceConcurrencyTests() {
);
// And an orchestrator-style config with maxConcurrentIssues set to three.
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -266,7 +266,7 @@ projects:
});
// And a fake gh command that fails the authenticated user lookup.
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -360,7 +360,7 @@ projects:
);
// And an AO subset config that enables the assistant without defining responders.
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
projects:
sample:
diff --git a/test/core/core_test.dart b/test/core/core_test.dart
index 7c9efd8..c558645 100644
--- a/test/core/core_test.dart
+++ b/test/core/core_test.dart
@@ -79,7 +79,7 @@ void registerIssueAssistantAppRunOnceCoreTests() {
});
// And an orchestrator-style config pointing to the fake repo and responder.
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -189,9 +189,7 @@ projects:
});
// And an orchestrator-style config pointing to the fake repo and responder.
- final configFile = File(
- p.join(sandbox.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -291,7 +289,7 @@ projects:
});
// And an orchestrator-style config pointing to the fake repo and responder.
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -419,9 +417,7 @@ projects:
});
// And an orchestrator-style config limiting replies after a human comment to one.
- final configFile = File(
- p.join(sandbox.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -524,7 +520,7 @@ projects:
}, stderr: 'codex diagnostic trace');
// And an orchestrator-style config pointing to the fake repo and responder.
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
diff --git a/test/core/multi_project_test.dart b/test/core/multi_project_test.dart
index 9417d68..33d8ceb 100644
--- a/test/core/multi_project_test.dart
+++ b/test/core/multi_project_test.dart
@@ -144,9 +144,7 @@ void registerIssueAssistantAppRunOnceMultiProjectTests() {
});
// And an orchestrator-style config with both repositories enabled.
- final configFile = File(
- p.join(sandbox.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -293,7 +291,7 @@ projects:
});
// And an orchestrator-style config that marks the project provider as gitea.
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -392,9 +390,7 @@ CWS_GITEA_TOKEN=test-token
});
// And an orchestrator-style config that uses an OpenProject project name.
- final configFile = File(
- p.join(sandbox.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
diff --git a/test/core/no_reply_acknowledgement_test.dart b/test/core/no_reply_acknowledgement_test.dart
index 29b93bf..004915e 100644
--- a/test/core/no_reply_acknowledgement_test.dart
+++ b/test/core/no_reply_acknowledgement_test.dart
@@ -85,9 +85,7 @@ void main() {
});
// And an orchestrator-style config that marks the project provider as gitea.
- final configFile = File(
- p.join(sandbox.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -212,9 +210,7 @@ CWS_GITEA_TOKEN=test-token
});
// And an orchestrator-style config that marks the project provider as gitlab.
- final configFile = File(
- p.join(sandbox.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -315,9 +311,7 @@ projects:
});
// And an orchestrator-style config that uses OpenProject as the tracker provider.
- final configFile = File(
- p.join(sandbox.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
diff --git a/test/core/retry_test.dart b/test/core/retry_test.dart
index 5223a0a..2b8810d 100644
--- a/test/core/retry_test.dart
+++ b/test/core/retry_test.dart
@@ -67,7 +67,7 @@ void registerIssueAssistantAppRunRetryTests() {
);
// And an orchestrator-style config with a short poll interval.
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
diff --git a/test/issue_event_source/test_helpers.dart b/test/issue_event_source/test_helpers.dart
index 52cdc60..1c87246 100644
--- a/test/issue_event_source/test_helpers.dart
+++ b/test/issue_event_source/test_helpers.dart
@@ -22,7 +22,7 @@ Future writeSingleProjectIssueAssistantConfig({
required String repoPath,
required List eventSourceLines,
}) async {
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
final eventSourceYaml = eventSourceLines
.map((line) => ' $line')
.join('\n');
diff --git a/test/issue_event_source/webhook_forward_test.dart b/test/issue_event_source/webhook_forward_test.dart
index e72335c..330c23e 100644
--- a/test/issue_event_source/webhook_forward_test.dart
+++ b/test/issue_event_source/webhook_forward_test.dart
@@ -168,7 +168,7 @@ void registerIssueAssistantAppRunWebhookForwardTests() {
};
// And an orchestrator-style config that uses gh/webhook-forward.
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
diff --git a/test/notifier/notifications_test.dart b/test/notifier/notifications_test.dart
index c72dc55..658f9d1 100644
--- a/test/notifier/notifications_test.dart
+++ b/test/notifier/notifications_test.dart
@@ -99,7 +99,7 @@ void registerIssueAssistantAppRunOnceNotificationTests() {
});
// And an orchestrator-style config pointing to the fake repo and responder.
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -225,9 +225,7 @@ projects:
}());
// And an orchestrator-style config with a discord webhook notifier.
- final configFile = File(
- p.join(sandbox.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
diff --git a/test/workspace/worktree_test.dart b/test/workspace/worktree_test.dart
index 88d9b1c..29faaee 100644
--- a/test/workspace/worktree_test.dart
+++ b/test/workspace/worktree_test.dart
@@ -88,9 +88,7 @@ void registerIssueAssistantAppRunOnceWorktreeTests() {
);
// And an orchestrator-style config pointing to the fake repo and responder.
- final configFile = File(
- p.join(sandbox.path, 'agent-orchestrator.yaml'),
- );
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant:
@@ -212,7 +210,7 @@ projects:
}, cwdCapture: cwdCapture);
// And an orchestrator-style config pointing to the fake repo and responder.
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
worktreeDir: ${worktreeRoot.path}
defaults:
@@ -312,7 +310,7 @@ projects:
});
// And an orchestrator-style config pointing to the fake repo and responder.
- final configFile = File(p.join(sandbox.path, 'agent-orchestrator.yaml'));
+ final configFile = File(p.join(sandbox.path, 'CWS_conf.yaml'));
await configFile.writeAsString('''
defaults:
issueAssistant: