@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.
@@ -0,0 +1,122 @@
1
+ function escapeHtml(value) {
2
+ return value
3
+ .replace(/&/g, "&")
4
+ .replace(/</g, "&lt;")
5
+ .replace(/>/g, "&gt;")
6
+ .replace(/"/g, "&quot;")
7
+ .replace(/'/g, "&#39;");
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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"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAU,CAAC;AA+QhD,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"}
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"}
@@ -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>;
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"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"}
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",
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",