@opencomputer/cli 0.5.1 → 0.5.3

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.
@@ -4,7 +4,7 @@ import { tmpdir } from "node:os";
4
4
  import { resolve } from "node:path";
5
5
  import { pathToFileURL } from "node:url";
6
6
  import test from "node:test";
7
- import { buildAgentArtifact, findAgentRoot, initializeAgentProject, prepareAgent, } from "./project.js";
7
+ import { buildAgentArtifact, findAgentRoot, initializeAgentProject, prepareAgent, readProjectResources, } from "./project.js";
8
8
  test("init creates a multi-agent-ready project and React hello world app", async () => {
9
9
  const parent = await mkdtemp(resolve(tmpdir(), "opencomputer-project-"));
10
10
  const root = resolve(parent, "hello-app");
@@ -24,7 +24,7 @@ test("init creates a multi-agent-ready project and React hello world app", async
24
24
  const packageJSON = JSON.parse(await readFile(resolve(root, "package.json"), "utf8"));
25
25
  assert.equal(packageJSON.scripts.dev, "opencomputer dev");
26
26
  assert.equal(packageJSON.scripts["dev:web"], undefined);
27
- assert.equal(packageJSON.dependencies["@opencomputer/agent"], "^0.4.0");
27
+ assert.equal(packageJSON.dependencies["@opencomputer/agent"], "^0.5.0");
28
28
  assert.equal(packageJSON.dependencies["@opencomputer/react"], "^0.1.0");
29
29
  assert.equal(packageJSON.devDependencies["@opencomputer/cli"], "^0.5.0");
30
30
  assert.ok(packageJSON.devDependencies["@types/node"]);
@@ -71,6 +71,89 @@ test("init creates a multi-agent-ready project and React hello world app", async
71
71
  await rm(parent, { recursive: true, force: true });
72
72
  }
73
73
  });
74
+ test("the compiler normalizes project channels, registrations, and outboxes", async () => {
75
+ const parent = await mkdtemp(resolve(tmpdir(), "opencomputer-channels-"));
76
+ const root = resolve(parent, "app");
77
+ try {
78
+ const initialized = await initializeAgentProject(root, undefined, {
79
+ spa: false,
80
+ });
81
+ const opencomputer = resolve(root, "opencomputer");
82
+ await mkdir(resolve(opencomputer, "channels"), { recursive: true });
83
+ await mkdir(resolve(opencomputer, "outboxes"), { recursive: true });
84
+ await mkdir(resolve(initialized.agentRoot, "channels"), { recursive: true });
85
+ await mkdir(resolve(initialized.agentRoot, "outboxes"), { recursive: true });
86
+ await writeFile(resolve(opencomputer, "channels", "team-slack.ts"), `import { defineChannel } from "@opencomputer/agent";
87
+ export default defineChannel({
88
+ id: "team-slack",
89
+ type: "slack",
90
+ scopes: { bot: ["chat:write", "channels:read", "app_mentions:read"] },
91
+ events: ["app_mention"],
92
+ destinations: {
93
+ "pull-request-reviews": { type: "conversation", visibility: "public" },
94
+ },
95
+ routing: { whenAmbiguous: "ask" },
96
+ });
97
+ `);
98
+ await writeFile(resolve(opencomputer, "outboxes", "review-requests.ts"), `import { defineOutbox } from "@opencomputer/agent";
99
+ import teamSlack from "../channels/team-slack.js";
100
+ export default defineOutbox({
101
+ id: "review-requests",
102
+ delivery: { channel: teamSlack, destination: "pull-request-reviews" },
103
+ });
104
+ `);
105
+ await writeFile(resolve(initialized.agentRoot, "channels", "team-slack.ts"), `import { registerChannel } from "@opencomputer/agent";
106
+ import teamSlack from "../../../channels/team-slack.js";
107
+ export default registerChannel(teamSlack, { on: ["mention"] });
108
+ `);
109
+ await writeFile(resolve(initialized.agentRoot, "outboxes", "review-requests.ts"), `import { registerOutbox } from "@opencomputer/agent";
110
+ import reviewRequests from "../../../outboxes/review-requests.js";
111
+ export default registerOutbox(reviewRequests);
112
+ `);
113
+ const built = await readProjectResources(root);
114
+ assert.match(built.digest, /^[a-f0-9]{64}$/);
115
+ assert.deepEqual(built.manifest, {
116
+ version: 1,
117
+ channels: [
118
+ {
119
+ id: "team-slack",
120
+ type: "slack",
121
+ scopes: {
122
+ bot: ["app_mentions:read", "channels:read", "chat:write"],
123
+ },
124
+ events: ["app_mention"],
125
+ destinations: {
126
+ "pull-request-reviews": {
127
+ type: "conversation",
128
+ visibility: "public",
129
+ },
130
+ },
131
+ routing: { whenAmbiguous: "ask" },
132
+ },
133
+ ],
134
+ channelRegistrations: [
135
+ {
136
+ agentId: "hello-world",
137
+ channelId: "team-slack",
138
+ triggers: ["mention"],
139
+ },
140
+ ],
141
+ outboxes: [
142
+ {
143
+ id: "review-requests",
144
+ channelId: "team-slack",
145
+ destination: "pull-request-reviews",
146
+ },
147
+ ],
148
+ outboxRegistrations: [
149
+ { agentId: "hello-world", outboxId: "review-requests" },
150
+ ],
151
+ });
152
+ }
153
+ finally {
154
+ await rm(parent, { recursive: true, force: true });
155
+ }
156
+ });
74
157
  test("init can create an agent-only project", async () => {
75
158
  const parent = await mkdtemp(resolve(tmpdir(), "opencomputer-agent-only-"));
76
159
  const root = resolve(parent, "hello-agent");
@@ -258,6 +341,64 @@ export default function Agent() {
258
341
  await rm(parent, { recursive: true, force: true });
259
342
  }
260
343
  });
344
+ test("packaged tools can publish to a registered outbox by id", async () => {
345
+ const parent = await mkdtemp(resolve(tmpdir(), "opencomputer-outbox-publish-"));
346
+ const root = resolve(parent, "app");
347
+ const originalFetch = globalThis.fetch;
348
+ const originalUrl = process.env.OPENCOMPUTER_OUTBOX_URL;
349
+ const originalToken = process.env.OPENCOMPUTER_OUTBOX_TOKEN;
350
+ try {
351
+ const initialized = await initializeAgentProject(root);
352
+ await mkdir(resolve(initialized.agentRoot, "tools"), { recursive: true });
353
+ await writeFile(resolve(initialized.agentRoot, "tools", "notify.ts"), `import { defineTool, publishOutbox } from "@opencomputer/agent";
354
+ export const notify = defineTool({
355
+ name: "notify_reviewer",
356
+ description: "Notify a pull request reviewer",
357
+ async run() {
358
+ return publishOutbox("review-requests", {
359
+ type: "pull-request.ready",
360
+ idempotencyKey: "example/repo#42",
361
+ content: { title: "Review requested", url: "https://example.com/pull/42" },
362
+ });
363
+ },
364
+ });
365
+ `);
366
+ await writeFile(resolve(initialized.agentRoot, "agent.ts"), `import { useTool } from "@opencomputer/agent";
367
+ import { notify } from "./tools/notify.js";
368
+ export default function Agent() { useTool(notify); return "Notify reviewers."; }
369
+ `);
370
+ const runtimeRoot = await prepareAgent(initialized.agentRoot);
371
+ const manifest = JSON.parse(await readFile(resolve(runtimeRoot, ".opencomputer", "reactive.json"), "utf8"));
372
+ assert.ok(manifest.tools.includes("notify_reviewer"));
373
+ process.env.OPENCOMPUTER_OUTBOX_URL = "http://outbox.test/outboxes";
374
+ process.env.OPENCOMPUTER_OUTBOX_TOKEN = "runtime-token";
375
+ let request;
376
+ globalThis.fetch = (async (url, init) => {
377
+ request = { url: String(url), init };
378
+ return Response.json({ id: "item-1", status: "pending", duplicate: false }, { status: 202 });
379
+ });
380
+ const runtime = await import(`${pathToFileURL(resolve(runtimeRoot, "opencomputer-agent.js")).href}?test=${crypto.randomUUID()}`);
381
+ await runtime.publishOutbox("review-requests", {
382
+ type: "pull-request.ready",
383
+ idempotencyKey: "example/repo#42",
384
+ content: { title: "Review requested" },
385
+ });
386
+ assert.equal(request?.url, "http://outbox.test/outboxes/review-requests/items");
387
+ assert.equal(new Headers(request?.init?.headers).get("authorization"), "Bearer runtime-token");
388
+ }
389
+ finally {
390
+ globalThis.fetch = originalFetch;
391
+ if (originalUrl === undefined)
392
+ delete process.env.OPENCOMPUTER_OUTBOX_URL;
393
+ else
394
+ process.env.OPENCOMPUTER_OUTBOX_URL = originalUrl;
395
+ if (originalToken === undefined)
396
+ delete process.env.OPENCOMPUTER_OUTBOX_TOKEN;
397
+ else
398
+ process.env.OPENCOMPUTER_OUTBOX_TOKEN = originalToken;
399
+ await rm(parent, { recursive: true, force: true });
400
+ }
401
+ });
261
402
  test("the compiler rejects hard-coded sensitive connection headers", async () => {
262
403
  const parent = await mkdtemp(resolve(tmpdir(), "opencomputer-egress-secret-"));
263
404
  const root = resolve(parent, "app");
@@ -1 +1 @@
1
- {"version":3,"file":"project.test.js","sourceRoot":"","sources":["../src/project.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.test.js","sourceRoot":"","sources":["../src/project.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export type SessionAction = "create" | "list" | "inspect" | "attach" | "send" | "end";
2
+ export type SessionCommand = {
3
+ action: SessionAction;
4
+ args: string[];
5
+ keep: boolean;
6
+ agent?: string;
7
+ };
8
+ export declare function developmentAgentReference(agentId: string): string;
9
+ export declare function resolveProjectAgent(agents: Array<{
10
+ id: string;
11
+ name: string;
12
+ }>, selector: string): string;
13
+ export declare function parseSessionCommand(rawArgs: string[]): SessionCommand;
@@ -0,0 +1,70 @@
1
+ export function developmentAgentReference(agentId) {
2
+ return `${agentId}@development`;
3
+ }
4
+ export function resolveProjectAgent(agents, selector) {
5
+ if (selector.includes("@")) {
6
+ throw new Error("--agent selects a project agent only; session environment aliases are not supported.");
7
+ }
8
+ const exactId = agents.find((agent) => agent.id === selector);
9
+ if (exactId)
10
+ return exactId.id;
11
+ const named = agents.filter((agent) => agent.name === selector);
12
+ if (named.length === 1)
13
+ return named[0].id;
14
+ const available = agents.map((agent) => agent.id).join(", ") || "none";
15
+ throw new Error(`Agent ${selector} is not unique in the current project. Available agents: ${available}.`);
16
+ }
17
+ const ACTIONS = new Set([
18
+ "create",
19
+ "list",
20
+ "inspect",
21
+ "attach",
22
+ "send",
23
+ "end",
24
+ ]);
25
+ const DEPRECATED_ROUTING_OPTIONS = [
26
+ "--local",
27
+ "--remote",
28
+ "--alias",
29
+ ];
30
+ function takeAgentOption(args) {
31
+ const equalsIndex = args.findIndex((argument) => argument.startsWith("--agent="));
32
+ if (equalsIndex >= 0) {
33
+ const value = args[equalsIndex].slice("--agent=".length);
34
+ if (!value)
35
+ throw new Error("--agent requires a value");
36
+ args.splice(equalsIndex, 1);
37
+ return value;
38
+ }
39
+ const index = args.indexOf("--agent");
40
+ if (index < 0)
41
+ return undefined;
42
+ const value = args[index + 1];
43
+ if (!value || value.startsWith("--")) {
44
+ throw new Error("--agent requires a value");
45
+ }
46
+ args.splice(index, 2);
47
+ return value;
48
+ }
49
+ export function parseSessionCommand(rawArgs) {
50
+ const deprecated = rawArgs.find((argument) => DEPRECATED_ROUTING_OPTIONS.some((option) => argument === option || argument.startsWith(`${option}=`)));
51
+ if (deprecated) {
52
+ throw new Error(`${deprecated.split("=")[0]} is no longer supported; ` +
53
+ "sessions use the current project's Development deployment.");
54
+ }
55
+ const args = [...rawArgs];
56
+ const agent = takeAgentOption(args);
57
+ const keepIndex = args.indexOf("--keep");
58
+ const keep = keepIndex >= 0;
59
+ if (keep)
60
+ args.splice(keepIndex, 1);
61
+ const shorthand = args[0];
62
+ const action = shorthand && ACTIONS.has(shorthand)
63
+ ? args.shift()
64
+ : "create";
65
+ if (agent && action !== "create") {
66
+ throw new Error("--agent is only supported when creating a session.");
67
+ }
68
+ return { action, args, keep, ...(agent ? { agent } : {}) };
69
+ }
70
+ //# sourceMappingURL=session-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-command.js","sourceRoot":"","sources":["../src/session-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,53 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+ import { developmentAgentReference, parseSessionCommand, resolveProjectAgent, } from "./session-command.js";
4
+ test("sessions target the bound agent's Development deployment", () => {
5
+ assert.equal(developmentAgentReference("unleash-mcp-test"), "unleash-mcp-test@development");
6
+ });
7
+ test("session shorthand targets the normal create flow", () => {
8
+ assert.deepEqual(parseSessionCommand(["Review", "this", "repository"]), {
9
+ action: "create",
10
+ args: ["Review", "this", "repository"],
11
+ keep: false,
12
+ });
13
+ });
14
+ test("session create retains lifecycle options", () => {
15
+ assert.deepEqual(parseSessionCommand(["create", "Hello", "--keep"]), {
16
+ action: "create",
17
+ args: ["Hello"],
18
+ keep: true,
19
+ });
20
+ });
21
+ test("session accepts a project agent selector", () => {
22
+ assert.deepEqual(parseSessionCommand(["Hello", "--agent", "reviewer"]), {
23
+ action: "create",
24
+ args: ["Hello"],
25
+ keep: false,
26
+ agent: "reviewer",
27
+ });
28
+ assert.deepEqual(parseSessionCommand(["--agent=reviewer", "Hello"]), {
29
+ action: "create",
30
+ args: ["Hello"],
31
+ keep: false,
32
+ agent: "reviewer",
33
+ });
34
+ });
35
+ test("session resolves an agent only within the current project", () => {
36
+ const agents = [
37
+ { id: "triage", name: "Triage" },
38
+ { id: "reviewer", name: "Reviewer" },
39
+ ];
40
+ assert.equal(resolveProjectAgent(agents, "reviewer"), "reviewer");
41
+ assert.equal(resolveProjectAgent(agents, "Triage"), "triage");
42
+ assert.throws(() => resolveProjectAgent(agents, "external"), /Available agents: triage, reviewer/);
43
+ assert.throws(() => resolveProjectAgent(agents, "reviewer@production"), /environment aliases are not supported/);
44
+ });
45
+ for (const option of ["--local", "--remote", "--alias"]) {
46
+ test(`session rejects deprecated routing option ${option}`, () => {
47
+ assert.throws(() => parseSessionCommand(["Hello", option, "value"]), new RegExp(`${option} is no longer supported; sessions use the current project's Development deployment`));
48
+ });
49
+ }
50
+ test("session rejects equals-form deprecated routing options", () => {
51
+ assert.throws(() => parseSessionCommand(["Hello", "--alias=production"]), /--alias is no longer supported/);
52
+ });
53
+ //# sourceMappingURL=session-command.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-command.test.js","sourceRoot":"","sources":["../src/session-command.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencomputer/cli",
3
- "version": "0.5.1",
3
+ "version": "0.5.3",
4
4
  "description": "Build, test, deploy, and share OpenComputer agents as code.",
5
5
  "type": "module",
6
6
  "bin": {