Skip to content

Commit e89e44e

Browse files
committed
feat(intern): ship intern as a workspace agent package
1 parent fc5e047 commit e89e44e

7 files changed

Lines changed: 65 additions & 7 deletions

File tree

‎agents/intern/package.json‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"name": "@corbits/agent-intern",
3+
"version": "0.1.0",
4+
"private": true,
5+
"type": "module",
6+
"license": "SEE LICENSE IN LICENSE.md",
7+
"exports": {
8+
".": {
9+
"types": "./src/index.ts",
10+
"default": "./src/index.ts"
11+
}
12+
}
13+
}
Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,36 @@
1-
import type { DirectorPackage } from "../types.js";
2-
import { INTERN_TOOLS } from "../tool-sets.js";
3-
41
/**
52
* Mechanical intern worker — near-literal port of the gaas intern agent.
63
* Shell/commands first — no judgment, no exploration; path writes only when the brief requires them.
74
*/
8-
export const internPackage: DirectorPackage = {
5+
export type AgentPackage = {
6+
readonly id: "intern";
7+
readonly primaryIntent: string;
8+
readonly outOfLane: readonly string[];
9+
readonly description: string;
10+
readonly systemPrompt: string;
11+
readonly optionalSkills: readonly string[];
12+
readonly tools: {
13+
readonly allow: readonly string[];
14+
};
15+
readonly spawn: {
16+
readonly maySpawn: false;
17+
};
18+
readonly modelRole: "implement";
19+
readonly tier: "leaf";
20+
};
21+
22+
const INTERN_TOOLS = [
23+
"run_shell",
24+
"read_file",
25+
"list_dir",
26+
"write_file",
27+
"edit_file",
28+
"delete_file",
29+
"skill_search",
30+
"use_skill",
31+
] as const;
32+
33+
export const internPackage: AgentPackage = {
934
id: "intern",
1035
primaryIntent:
1136
"Execute clear mechanical instructions exactly — zero judgment, zero invention",

‎bun.lock‎

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@
5656
"./vendor/intx-mailbox",
5757
"./vendor/intx-harness",
5858
"./vendor/intx-mime",
59-
"./packages/*"
59+
"./packages/*",
60+
"./agents/*"
6061
],
6162
"overrides": {
6263
"@intx/inference": "workspace:*",
@@ -82,6 +83,7 @@
8283
"tar": "^7.5.1"
8384
},
8485
"dependencies": {
86+
"@corbits/agent-intern": "workspace:*",
8587
"@corbits/codex-provider": "github:corbitsdev/corbits-codex-provider",
8688
"@corbits/oauth-core": "github:corbitsdev/corbits-oauth-core",
8789
"@corbits/openai-responses": "github:corbitsdev/corbits-openai-responses",

‎src/agent/directors/intern/package.test.ts‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
11
import { describe, expect, test } from "bun:test";
22

3-
import { internPackage } from "./package.js";
3+
import { internPackage, type AgentPackage } from "@corbits/agent-intern";
4+
import { DIRECTOR_REGISTRY } from "../registry.js";
5+
import { INTERN_TOOLS } from "../tool-sets.js";
46

57
describe("internPackage", () => {
8+
test("workspace package is an AgentPackage used by the registry", () => {
9+
const pkg: AgentPackage = internPackage;
10+
expect(pkg.id).toBe("intern");
11+
expect(DIRECTOR_REGISTRY.intern).toBe(internPackage);
12+
expect([...(pkg.tools?.allow ?? [])]).toEqual([...INTERN_TOOLS]);
13+
});
14+
615
test("systemPrompt is mechanical executor (gaas intern port)", () => {
716
const p = internPackage.systemPrompt;
817
expect(p).toMatch(/execute clear (mechanical )?instructions/i);

‎src/agent/directors/registry.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { internPackage } from "@corbits/agent-intern";
12
import type { AgentProfile, CapabilityFilter } from "../profile-types.js";
23
import { randPackage } from "./rand/package.js";
34
import { bruckheimerPackage } from "./bruckheimer/package.js";
@@ -8,7 +9,6 @@ import { explorerPackage } from "./explorer/package.js";
89
import { gaasbotPackage } from "./gaasbot/package.js";
910
import { greybeardPackage } from "./greybeard/package.js";
1011
import { builderPackage } from "./builder/package.js";
11-
import { internPackage } from "./intern/package.js";
1212
import { migratorPackage } from "./migrator/package.js";
1313
import { neckbeardPackage } from "./neckbeard/package.js";
1414
import { counselPackage } from "./counsel/package.js";

‎tsconfig.json‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"composite": false,
66
"baseUrl": ".",
77
"paths": {
8+
"@corbits/agent-intern": ["./agents/intern/src/index.ts"],
89
"@corbits/provider-opencode-go": ["./packages/opencode-go/src/index.ts"],
910
"@corbits/first-class-providers": [
1011
"./packages/first-class-providers/src/index.ts"
@@ -16,6 +17,7 @@
1617
"include": [
1718
"src/**/*.ts",
1819
"packages/**/*.ts",
20+
"agents/**/*.ts",
1921
"tests/**/*.ts",
2022
"evals/**/*.ts",
2123
"scripts/**/*.ts"

0 commit comments

Comments
 (0)