Skip to content

Commit 25bb5df

Browse files
committed
feat(agent): barrel the director fleet through a single entrypoint
Re-export the six-name surface per @corbits/code-agent-<id> workspace package plus a FLEET registry keyed by id over each package's director. The 10 extract PRs have merged, so the TEMP stub files are gone and the barrel imports the real packages via the tsconfig paths aliases. Reconcile the dead-export allowlist by dropping the now-consumed agent/defineAgent entries.
1 parent e15b430 commit 25bb5df

3 files changed

Lines changed: 209 additions & 10 deletions

File tree

‎scripts/dead-export-allowlist.txt‎

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,8 @@ packages/opencode-go/src/models.ts: readonly
4343
# consumed by the app registry/barrel once the fleet merges; on a per-extract
4444
# branch they have no in-repo consumer yet. Public API by design — owned by the
4545
# agent-template lane; remove with the code if the package is deleted.
46-
agents/dispatch/src/index.ts: agent
47-
agents/dispatch/src/index.ts: defineAgent
4846
agents/dispatch/src/config.ts: satisfies
4947
agents/dispatch/src/config.ts: boolean
50-
agents/warden/src/index.ts: agent
51-
agents/warden/src/index.ts: defineAgent
5248
agents/warden/src/config.ts: satisfies
5349
agents/warden/src/config.ts: boolean
5450
agents/designer/src/index.ts: agent
@@ -111,15 +107,9 @@ packages/prompt-variance/src/index.ts: PromptVarianceRow
111107
# consumed by the app registry/barrel once the fleet merges; on a per-extract
112108
# branch they have no in-repo consumer yet. Public API by design — owned by the
113109
# agent-template lane; remove with the code if the package is deleted.
114-
agents/artist/src/index.ts: agent
115-
agents/artist/src/index.ts: defineAgent
116110
agents/artist/src/config.ts: satisfies
117111
agents/artist/src/config.ts: boolean
118-
agents/shakespeare/src/index.ts: agent
119-
agents/shakespeare/src/index.ts: defineAgent
120112
agents/shakespeare/src/config.ts: satisfies
121113
agents/shakespeare/src/config.ts: boolean
122-
agents/prober/src/index.ts: agent
123-
agents/prober/src/index.ts: defineAgent
124114
agents/prober/src/config.ts: satisfies
125115
agents/prober/src/config.ts: boolean

‎src/agent/fleet.test.ts‎

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { describe, expect, test } from "bun:test";
2+
3+
import { FLEET } from "./fleet.js";
4+
import { DIRECTOR_IDS, type DirectorId } from "./directors/types.js";
5+
6+
describe("fleet barrel", () => {
7+
test("FLEET covers all 10 extract ids in the closed director set", () => {
8+
const closed = new Set<string>(DIRECTOR_IDS);
9+
expect(Object.keys(FLEET).length).toBe(10);
10+
for (const id of Object.keys(FLEET) as readonly DirectorId[]) {
11+
expect(closed).toContain(id);
12+
}
13+
});
14+
15+
test("every FLEET entry structurally satisfies the director contract", () => {
16+
for (const id of Object.keys(FLEET) as readonly (keyof typeof FLEET)[]) {
17+
const entry = FLEET[id];
18+
expect(entry.id).toBe(id);
19+
}
20+
});
21+
22+
test("barrel owns no in-tree director package data", () => {
23+
// Backed only by the workspace packages (never in-tree ./directors/* re-exports
24+
// — the merge-order stale re-export hazard), via the tsconfig paths aliases to
25+
// agents/<id>/src/index.ts on this standalone branch.
26+
expect(Object.keys(FLEET)).toEqual([
27+
"artist",
28+
"coder",
29+
"designer",
30+
"dispatch",
31+
"explorer",
32+
"planner",
33+
"prober",
34+
"reviewer",
35+
"shakespeare",
36+
"warden",
37+
]);
38+
});
39+
});

‎src/agent/fleet.ts‎

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
/**
2+
* Fleet barrel (CL-9808, PR #1352): one import site for the closed director fleet.
3+
*
4+
* Re-exports the six-name surface per @corbits/code-agent-<id> workspace package,
5+
* plus a FLEET registry keyed by id over each package's director. Re-export only —
6+
* never in-tree ./directors/* (the merge-order stale re-export hazard).
7+
*
8+
* All 10 @corbits/code-agent-<id> packages have merged; `tsconfig` `paths`
9+
* aliases resolve each name to the real agents/<id>/src/index.ts package entry.
10+
*/
11+
12+
// Workspace packages — six-name surface each.
13+
import {
14+
agent as artistAgent,
15+
config as artistConfig,
16+
defineAgent as defineArtistAgent,
17+
director as artistDirector,
18+
systemPrompt as artistSystemPrompt,
19+
tools as artistTools,
20+
} from "@corbits/code-agent-artist";
21+
import {
22+
agent as coderAgent,
23+
config as coderConfig,
24+
defineAgent as defineCoderAgent,
25+
director as coderDirector,
26+
systemPrompt as coderSystemPrompt,
27+
tools as coderTools,
28+
} from "@corbits/code-agent-coder";
29+
import {
30+
agent as designerAgent,
31+
config as designerConfig,
32+
defineAgent as defineDesignerAgent,
33+
director as designerDirector,
34+
systemPrompt as designerSystemPrompt,
35+
tools as designerTools,
36+
} from "@corbits/code-agent-designer";
37+
import {
38+
agent as dispatchAgent,
39+
config as dispatchConfig,
40+
defineAgent as defineDispatchAgent,
41+
director as dispatchDirector,
42+
systemPrompt as dispatchSystemPrompt,
43+
tools as dispatchTools,
44+
} from "@corbits/code-agent-dispatch";
45+
import {
46+
agent as explorerAgent,
47+
config as explorerConfig,
48+
defineAgent as defineExplorerAgent,
49+
director as explorerDirector,
50+
systemPrompt as explorerSystemPrompt,
51+
tools as explorerTools,
52+
} from "@corbits/code-agent-explorer";
53+
import {
54+
agent as plannerAgent,
55+
config as plannerConfig,
56+
defineAgent as definePlannerAgent,
57+
director as plannerDirector,
58+
systemPrompt as plannerSystemPrompt,
59+
tools as plannerTools,
60+
} from "@corbits/code-agent-planner";
61+
import {
62+
agent as proberAgent,
63+
config as proberConfig,
64+
defineAgent as defineProberAgent,
65+
director as proberDirector,
66+
systemPrompt as proberSystemPrompt,
67+
tools as proberTools,
68+
} from "@corbits/code-agent-prober";
69+
import {
70+
agent as reviewerAgent,
71+
config as reviewerConfig,
72+
defineAgent as defineReviewerAgent,
73+
director as reviewerDirector,
74+
systemPrompt as reviewerSystemPrompt,
75+
tools as reviewerTools,
76+
} from "@corbits/code-agent-reviewer";
77+
import {
78+
agent as shakespeareAgent,
79+
config as shakespeareConfig,
80+
defineAgent as defineShakespeareAgent,
81+
director as shakespeareDirector,
82+
systemPrompt as shakespeareSystemPrompt,
83+
tools as shakespeareTools,
84+
} from "@corbits/code-agent-shakespeare";
85+
import {
86+
agent as wardenAgent,
87+
config as wardenConfig,
88+
defineAgent as defineWardenAgent,
89+
director as wardenDirector,
90+
systemPrompt as wardenSystemPrompt,
91+
tools as wardenTools,
92+
} from "@corbits/code-agent-warden";
93+
94+
// Fleet registry — keyed by id, one director per workspace package.
95+
export const FLEET = {
96+
artist: artistDirector,
97+
coder: coderDirector,
98+
designer: designerDirector,
99+
dispatch: dispatchDirector,
100+
explorer: explorerDirector,
101+
planner: plannerDirector,
102+
prober: proberDirector,
103+
reviewer: reviewerDirector,
104+
shakespeare: shakespeareDirector,
105+
warden: wardenDirector,
106+
} as const;
107+
108+
// Re-exports — six-name surface per package.
109+
export {
110+
artistAgent,
111+
artistConfig,
112+
artistDirector,
113+
artistSystemPrompt,
114+
artistTools,
115+
coderAgent,
116+
coderConfig,
117+
coderDirector,
118+
coderSystemPrompt,
119+
coderTools,
120+
defineArtistAgent,
121+
defineCoderAgent,
122+
defineDesignerAgent,
123+
defineDispatchAgent,
124+
defineExplorerAgent,
125+
definePlannerAgent,
126+
defineProberAgent,
127+
defineReviewerAgent,
128+
defineShakespeareAgent,
129+
defineWardenAgent,
130+
designerAgent,
131+
designerConfig,
132+
designerDirector,
133+
designerSystemPrompt,
134+
designerTools,
135+
dispatchAgent,
136+
dispatchConfig,
137+
dispatchDirector,
138+
dispatchSystemPrompt,
139+
dispatchTools,
140+
explorerAgent,
141+
explorerConfig,
142+
explorerDirector,
143+
explorerSystemPrompt,
144+
explorerTools,
145+
plannerAgent,
146+
plannerConfig,
147+
plannerDirector,
148+
plannerSystemPrompt,
149+
plannerTools,
150+
proberAgent,
151+
proberConfig,
152+
proberDirector,
153+
proberSystemPrompt,
154+
proberTools,
155+
reviewerAgent,
156+
reviewerConfig,
157+
reviewerDirector,
158+
reviewerSystemPrompt,
159+
reviewerTools,
160+
shakespeareAgent,
161+
shakespeareConfig,
162+
shakespeareDirector,
163+
shakespeareSystemPrompt,
164+
shakespeareTools,
165+
wardenAgent,
166+
wardenConfig,
167+
wardenDirector,
168+
wardenSystemPrompt,
169+
wardenTools,
170+
};

0 commit comments

Comments
 (0)