@opencomputer/blue 0.0.3 → 0.0.4
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.md +61 -13
- package/dist/auth/cli-auth.d.ts +1 -0
- package/dist/auth/cli-auth.js +1 -1
- package/dist/auth/cli-auth.js.map +1 -1
- package/dist/channels/composio.d.ts +32 -0
- package/dist/channels/composio.js +149 -0
- package/dist/channels/composio.js.map +1 -0
- package/dist/cli/index.js +69 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/core/artifact.d.ts +1 -0
- package/dist/core/artifact.js +18 -0
- package/dist/core/artifact.js.map +1 -1
- package/dist/dev/local-control-plane.d.ts +2 -0
- package/dist/dev/local-control-plane.js +16 -0
- package/dist/dev/local-control-plane.js.map +1 -1
- package/dist/dev/manager.js +16 -0
- package/dist/dev/manager.js.map +1 -1
- package/dist/landing/agent.d.ts +12 -0
- package/dist/landing/agent.js +122 -0
- package/dist/landing/agent.js.map +1 -0
- package/dist/protocol.d.ts +27 -0
- package/dist/protocol.js.map +1 -1
- package/dist/sdk/client.d.ts +4 -1
- package/dist/sdk/client.js +14 -0
- package/dist/sdk/client.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
function escapeHtml(value) {
|
|
2
|
+
return value
|
|
3
|
+
.replace(/&/g, "&")
|
|
4
|
+
.replace(/</g, "<")
|
|
5
|
+
.replace(/>/g, ">")
|
|
6
|
+
.replace(/"/g, """)
|
|
7
|
+
.replace(/'/g, "'");
|
|
8
|
+
}
|
|
9
|
+
export function agentLandingPath(accountId, agentId) {
|
|
10
|
+
const account = btoa(accountId)
|
|
11
|
+
.replace(/\+/g, "-")
|
|
12
|
+
.replace(/\//g, "_")
|
|
13
|
+
.replace(/=+$/, "");
|
|
14
|
+
return `/agents/${account}/${encodeURIComponent(agentId)}`;
|
|
15
|
+
}
|
|
16
|
+
export function parseAgentLandingPath(pathname) {
|
|
17
|
+
const match = pathname.match(/^\/agents\/([^/]+)\/([^/]+)$/);
|
|
18
|
+
if (!match?.[1] || !match[2])
|
|
19
|
+
return null;
|
|
20
|
+
try {
|
|
21
|
+
const encoded = match[1].replace(/-/g, "+").replace(/_/g, "/");
|
|
22
|
+
const accountId = atob(encoded.padEnd(Math.ceil(encoded.length / 4) * 4, "="));
|
|
23
|
+
return {
|
|
24
|
+
accountId,
|
|
25
|
+
agentId: decodeURIComponent(match[2]),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function renderAgentLanding(options) {
|
|
33
|
+
const agentId = escapeHtml(options.agentId);
|
|
34
|
+
const reference = escapeHtml(`${options.agentId}@${options.alias ?? "production"}`);
|
|
35
|
+
const sessionCommand = options.mode === "local"
|
|
36
|
+
? "blue session"
|
|
37
|
+
: `blue session --remote --agent ${reference}`;
|
|
38
|
+
const promptCommand = options.mode === "local"
|
|
39
|
+
? 'blue session "What can you help me with?"'
|
|
40
|
+
: `blue session --remote --agent ${reference} "What can you help me with?"`;
|
|
41
|
+
const slackCommand = options.mode === "local"
|
|
42
|
+
? "blue dev"
|
|
43
|
+
: `blue channels connect slack --agent ${reference} --channel C0123456789`;
|
|
44
|
+
const modeLabel = options.mode === "local" ? "Local development" : "Deployed agent";
|
|
45
|
+
return `<!doctype html>
|
|
46
|
+
<html lang="en">
|
|
47
|
+
<head>
|
|
48
|
+
<meta charset="utf-8">
|
|
49
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
50
|
+
<meta name="color-scheme" content="light">
|
|
51
|
+
<title>${agentId} | Blue</title>
|
|
52
|
+
<style>
|
|
53
|
+
:root { color-scheme: light; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #f5f7fb; color: #111827; }
|
|
54
|
+
* { box-sizing: border-box; }
|
|
55
|
+
body { margin: 0; min-height: 100vh; background: linear-gradient(180deg, #edf3ff 0, #f5f7fb 300px); }
|
|
56
|
+
main { width: min(1040px, calc(100% - 32px)); margin: 0 auto; padding: 38px 0 64px; }
|
|
57
|
+
header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 72px; }
|
|
58
|
+
.brand { display: flex; align-items: center; gap: 11px; font-weight: 750; font-size: 17px; }
|
|
59
|
+
.mark { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 7px; background: #0a35ff; color: white; font-size: 18px; }
|
|
60
|
+
.mode { color: #536071; font: 600 12px ui-monospace, SFMono-Regular, Menlo, monospace; text-transform: uppercase; }
|
|
61
|
+
.intro { max-width: 760px; margin-bottom: 34px; }
|
|
62
|
+
.eyebrow { color: #0a35ff; font: 700 12px ui-monospace, SFMono-Regular, Menlo, monospace; text-transform: uppercase; }
|
|
63
|
+
h1 { margin: 14px 0 14px; font-size: clamp(38px, 7vw, 68px); line-height: .98; letter-spacing: 0; overflow-wrap: anywhere; }
|
|
64
|
+
.lede { margin: 0; color: #536071; font-size: 19px; line-height: 1.6; max-width: 680px; }
|
|
65
|
+
.options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
|
|
66
|
+
article { background: rgba(255,255,255,.92); border: 1px solid #dce2ec; border-radius: 8px; padding: 26px; box-shadow: 0 10px 30px rgba(25,46,90,.06); }
|
|
67
|
+
.number { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #e9efff; color: #0a35ff; font: 750 13px ui-monospace, SFMono-Regular, Menlo, monospace; }
|
|
68
|
+
h2 { margin: 22px 0 8px; font-size: 22px; letter-spacing: 0; }
|
|
69
|
+
article p { margin: 0 0 20px; color: #606b7b; line-height: 1.55; }
|
|
70
|
+
code { display: block; min-height: 74px; padding: 16px; border-radius: 6px; background: #101828; color: #e7edff; font: 500 13px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
71
|
+
.secondary { margin-top: 12px; color: #708099; font: 500 12px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; overflow-wrap: anywhere; }
|
|
72
|
+
.unavailable { opacity: .62; }
|
|
73
|
+
footer { display: flex; justify-content: space-between; gap: 20px; margin-top: 34px; padding-top: 22px; border-top: 1px solid #dce2ec; color: #718096; font-size: 13px; }
|
|
74
|
+
a { color: #0a35ff; text-decoration: none; font-weight: 650; }
|
|
75
|
+
@media (max-width: 720px) {
|
|
76
|
+
main { padding-top: 24px; }
|
|
77
|
+
header { margin-bottom: 50px; }
|
|
78
|
+
.options { grid-template-columns: 1fr; }
|
|
79
|
+
.mode { display: none; }
|
|
80
|
+
footer { flex-direction: column; }
|
|
81
|
+
}
|
|
82
|
+
</style>
|
|
83
|
+
</head>
|
|
84
|
+
<body>
|
|
85
|
+
<main>
|
|
86
|
+
<header>
|
|
87
|
+
<div class="brand"><span class="mark">b</span> blue</div>
|
|
88
|
+
<div class="mode">${modeLabel}</div>
|
|
89
|
+
</header>
|
|
90
|
+
<section class="intro">
|
|
91
|
+
<div class="eyebrow">Agent ready</div>
|
|
92
|
+
<h1>${agentId}</h1>
|
|
93
|
+
<p class="lede">Start a session from the Blue CLI, or connect this agent to Slack so every conversation has its own persistent workspace.</p>
|
|
94
|
+
</section>
|
|
95
|
+
<section class="options" aria-label="Ways to use this agent">
|
|
96
|
+
<article>
|
|
97
|
+
<span class="number">01</span>
|
|
98
|
+
<h2>Use the Blue CLI</h2>
|
|
99
|
+
<p>Open an interactive, multi-turn session from your terminal.</p>
|
|
100
|
+
<code>${sessionCommand}</code>
|
|
101
|
+
<div class="secondary">${promptCommand}</div>
|
|
102
|
+
</article>
|
|
103
|
+
<article${options.slackEnabled ? "" : ' class="unavailable"'}>
|
|
104
|
+
<span class="number">02</span>
|
|
105
|
+
<h2>Connect Slack</h2>
|
|
106
|
+
<p>${options.slackEnabled
|
|
107
|
+
? "Connect a managed Slack app through Composio, then message this agent in the selected channel."
|
|
108
|
+
: "Add the Slack channel to this agent and deploy it again to enable managed Slack."}</p>
|
|
109
|
+
<code>${options.slackEnabled
|
|
110
|
+
? slackCommand
|
|
111
|
+
: "blue channels add slack\nblue deploy"}</code>
|
|
112
|
+
</article>
|
|
113
|
+
</section>
|
|
114
|
+
<footer>
|
|
115
|
+
<span>Each Slack thread maps to one resumable Blue session.</span>
|
|
116
|
+
<a href="https://github.com/diggerhq/blue">Documentation</a>
|
|
117
|
+
</footer>
|
|
118
|
+
</main>
|
|
119
|
+
</body>
|
|
120
|
+
</html>`;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/landing/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -69,6 +69,7 @@ export interface AgentDeployment {
|
|
|
69
69
|
id: string;
|
|
70
70
|
agentId: string;
|
|
71
71
|
alias: string;
|
|
72
|
+
channels: string[];
|
|
72
73
|
artifact: AgentArtifactReference;
|
|
73
74
|
imageArn: string;
|
|
74
75
|
imageVersion: string;
|
|
@@ -91,10 +92,36 @@ export interface BlueIdentity {
|
|
|
91
92
|
export interface RegisterDeploymentInput {
|
|
92
93
|
agentId: string;
|
|
93
94
|
alias: string;
|
|
95
|
+
channels?: string[];
|
|
94
96
|
artifact: AgentArtifactReference;
|
|
95
97
|
imageArn?: string;
|
|
96
98
|
imageVersion?: string;
|
|
97
99
|
}
|
|
100
|
+
export type ChannelConnectionStatus = "pending" | "connected" | "expired" | "disconnected" | "failed";
|
|
101
|
+
export interface SlackConnection {
|
|
102
|
+
id: string;
|
|
103
|
+
agentId: string;
|
|
104
|
+
alias: string;
|
|
105
|
+
channelId: string;
|
|
106
|
+
connectedAccountId: string;
|
|
107
|
+
triggerId?: string;
|
|
108
|
+
status: ChannelConnectionStatus;
|
|
109
|
+
createdAt: string;
|
|
110
|
+
updatedAt: string;
|
|
111
|
+
}
|
|
112
|
+
export interface CreateSlackConnectionInput {
|
|
113
|
+
agentId: string;
|
|
114
|
+
channelId: string;
|
|
115
|
+
}
|
|
116
|
+
export interface CreateSlackConnectionResult {
|
|
117
|
+
connection: SlackConnection;
|
|
118
|
+
redirectUrl: string;
|
|
119
|
+
}
|
|
120
|
+
export interface SlackTurnDelivery {
|
|
121
|
+
connectedAccountId: string;
|
|
122
|
+
channelId: string;
|
|
123
|
+
threadTimestamp: string;
|
|
124
|
+
}
|
|
98
125
|
export interface EnqueueTurnInput {
|
|
99
126
|
input: string;
|
|
100
127
|
idempotencyKey: string;
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAU,CAAC;AAoThD,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/sdk/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentDeployment, AgentSummary, BlueIdentity, CreateDeploymentUploadInput, DeploymentUpload, BindMicrovmInput, BlueEvent, EnqueueTurnResult, InitializeSessionResult, RegisterDeploymentInput, SessionSnapshot } from "../protocol.js";
|
|
1
|
+
import type { AgentDeployment, AgentSummary, BlueIdentity, CreateDeploymentUploadInput, CreateSlackConnectionInput, CreateSlackConnectionResult, DeploymentUpload, BindMicrovmInput, BlueEvent, EnqueueTurnResult, InitializeSessionResult, RegisterDeploymentInput, SessionSnapshot, SlackConnection } from "../protocol.js";
|
|
2
2
|
export interface CreateSessionInput {
|
|
3
3
|
agentId?: string;
|
|
4
4
|
deploymentId?: string;
|
|
@@ -12,6 +12,9 @@ export declare class BlueClient {
|
|
|
12
12
|
createDeploymentUpload(input: CreateDeploymentUploadInput): Promise<DeploymentUpload>;
|
|
13
13
|
getDeployment(deploymentId: string): Promise<AgentDeployment>;
|
|
14
14
|
listAgents(): Promise<AgentSummary[]>;
|
|
15
|
+
createSlackConnection(input: CreateSlackConnectionInput): Promise<CreateSlackConnectionResult>;
|
|
16
|
+
listChannelConnections(): Promise<SlackConnection[]>;
|
|
17
|
+
disconnectSlack(connectionId: string): Promise<SlackConnection>;
|
|
15
18
|
whoami(): Promise<BlueIdentity>;
|
|
16
19
|
listSessions(): Promise<SessionSnapshot[]>;
|
|
17
20
|
getSession(sessionId: string): Promise<SessionSnapshot>;
|
package/dist/sdk/client.js
CHANGED
|
@@ -33,6 +33,20 @@ export class BlueClient {
|
|
|
33
33
|
const result = await this.request("/v1/agents");
|
|
34
34
|
return result.agents;
|
|
35
35
|
}
|
|
36
|
+
async createSlackConnection(input) {
|
|
37
|
+
return this.request("/v1/channels/slack/connections", {
|
|
38
|
+
method: "POST",
|
|
39
|
+
headers: { "content-type": "application/json" },
|
|
40
|
+
body: JSON.stringify(input),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async listChannelConnections() {
|
|
44
|
+
const result = await this.request("/v1/channels");
|
|
45
|
+
return result.connections;
|
|
46
|
+
}
|
|
47
|
+
async disconnectSlack(connectionId) {
|
|
48
|
+
return this.request(`/v1/channels/slack/connections/${encodeURIComponent(connectionId)}`, { method: "DELETE" });
|
|
49
|
+
}
|
|
36
50
|
async whoami() {
|
|
37
51
|
return this.request("/v1/me");
|
|
38
52
|
}
|
package/dist/sdk/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opencomputer/blue",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Build, test, deploy, and run persistent OpenCode agents with Blue.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/sdk/index.js",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"dist/cli",
|
|
25
25
|
"dist/core",
|
|
26
26
|
"dist/dev",
|
|
27
|
+
"dist/landing",
|
|
27
28
|
"dist/openrouter",
|
|
28
29
|
"dist/runtime",
|
|
29
30
|
"dist/sdk",
|