@heossihq/bee 0.1.5

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,123 @@
1
+ /**
2
+ * BeeClient — dependency-free TypeScript SDK for Bee.
3
+ *
4
+ * Usage:
5
+ *
6
+ * import { BeeClient } from "@heossihq/bee";
7
+ *
8
+ * const bee = new BeeClient({ apiKey: process.env.BEE_API_KEY! });
9
+ *
10
+ * const out = await bee.chat.completions.create({
11
+ * model: "bee-cell",
12
+ * messages: [{ role: "user", content: "Hello." }],
13
+ * });
14
+ * console.log(out.choices[0].message.content);
15
+ *
16
+ * The SDK targets api.bee.heossi.com/bee/* (the public API proxy). Override `baseURL` to point at a self-hosted Bee Enclave or
17
+ * a staging environment.
18
+ */
19
+ import type { ChatCompletion, ChatCompletionChunk, ChatCompletionCreateParams, ModelsListResponse, ProvenanceResult, QuantumReasoningCapabilities, QuantumReasoningJob, QuantumReasoningJobCreateParams, UsageResponse } from "./types.js";
20
+ export interface BeeClientOptions {
21
+ /** Bee API key. Issue from https://workspace.bee.heossi.com/account/api-keys. */
22
+ apiKey: string;
23
+ /** Override the default base URL. Useful for staging or self-hosted Enclave. */
24
+ baseURL?: string;
25
+ /** Per-request timeout in ms. Default 300_000. */
26
+ timeoutMs?: number;
27
+ /** Extra headers to send on every request. */
28
+ headers?: Record<string, string>;
29
+ /** Inject a custom fetch (for tests / Node <18 polyfills). Defaults to globalThis.fetch. */
30
+ fetch?: typeof fetch;
31
+ }
32
+ export declare class BeeClient {
33
+ private readonly apiKey;
34
+ private readonly baseURL;
35
+ private readonly timeoutMs;
36
+ private readonly extraHeaders;
37
+ private readonly fetchImpl;
38
+ readonly chat: ChatNamespace;
39
+ readonly models: ModelsNamespace;
40
+ readonly quantumReasoning: QuantumReasoningNamespace;
41
+ readonly provenance: ProvenanceNamespace;
42
+ readonly usage: UsageNamespace;
43
+ constructor(opts: BeeClientOptions);
44
+ /** Internal — request wrapper with timeout, auth header, and structured error mapping. */
45
+ _request(method: "GET" | "POST" | "PATCH" | "DELETE", path: string, body: unknown, accept: "application/json" | "text/event-stream", requestHeaders?: Record<string, string>): Promise<Response>;
46
+ }
47
+ declare class ChatNamespace {
48
+ readonly completions: ChatCompletionsResource;
49
+ constructor(client: BeeClient);
50
+ }
51
+ declare class ChatCompletionsResource {
52
+ private readonly client;
53
+ constructor(client: BeeClient);
54
+ /** Non-streaming chat completion. */
55
+ create(params: ChatCompletionCreateParams & {
56
+ stream?: false | undefined;
57
+ }): Promise<ChatCompletion>;
58
+ /** Streaming chat completion — returns an async iterator over OpenAI SSE chunks. */
59
+ create(params: ChatCompletionCreateParams & {
60
+ stream: true;
61
+ }): Promise<AsyncIterable<ChatCompletionChunk>>;
62
+ }
63
+ declare class ModelsNamespace {
64
+ private readonly client;
65
+ constructor(client: BeeClient);
66
+ list(): Promise<ModelsListResponse>;
67
+ }
68
+ declare class QuantumReasoningNamespace {
69
+ readonly jobs: QuantumReasoningJobsResource;
70
+ constructor(client: BeeClient);
71
+ }
72
+ declare class QuantumReasoningJobsResource {
73
+ private readonly client;
74
+ constructor(client: BeeClient);
75
+ create(params: QuantumReasoningJobCreateParams): Promise<QuantumReasoningJob>;
76
+ list(params?: {
77
+ cursor?: string;
78
+ limit?: number;
79
+ status?: QuantumReasoningJob["status"];
80
+ model?: QuantumReasoningJob["model"];
81
+ }): Promise<{
82
+ jobs: QuantumReasoningJob[];
83
+ capabilities: QuantumReasoningCapabilities;
84
+ next_cursor: string | null;
85
+ }>;
86
+ retrieve(id: string): Promise<QuantumReasoningJob>;
87
+ /** Cancels queued work or erases terminal content while retaining audit metadata. */
88
+ remove(id: string): Promise<{
89
+ ok: true;
90
+ status: "cancelled" | "deleted";
91
+ }>;
92
+ wait(id: string, options?: {
93
+ timeout_ms?: number;
94
+ poll_interval_ms?: number;
95
+ signal?: AbortSignal;
96
+ }): Promise<QuantumReasoningJob>;
97
+ }
98
+ /**
99
+ * Verifiable agent provenance. When an agent-loop request carries a stable
100
+ * `session_id`, Bee seals each served turn into a per-session, ML-DSA-65-signed
101
+ * (NIST FIPS 204) hash chain. `verify(sessionId)` returns Bee's verdict, the
102
+ * chain (digests only — never your code), and the SPKI public key so you can
103
+ * INDEPENDENTLY re-verify every link offline with any FIPS-204 verifier.
104
+ */
105
+ declare class ProvenanceNamespace {
106
+ private readonly client;
107
+ constructor(client: BeeClient);
108
+ verify(sessionId: string): Promise<ProvenanceResult>;
109
+ }
110
+ /**
111
+ * Account & usage. `retrieve()` returns the caller's account (email, plan,
112
+ * organization), usage (pooled tokens, per-tier allowances, resets_at, messages,
113
+ * active days, credits), and the "what's contributing" tier breakdown over a
114
+ * `day` (24h) or `week` (7d) window — the SAME real data the Bee workspace,
115
+ * desktop, mobile, and IDE surfaces show, for every tier.
116
+ */
117
+ declare class UsageNamespace {
118
+ private readonly client;
119
+ constructor(client: BeeClient);
120
+ retrieve(window?: "day" | "week"): Promise<UsageResponse>;
121
+ }
122
+ export {};
123
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js ADDED
@@ -0,0 +1,331 @@
1
+ /**
2
+ * BeeClient — dependency-free TypeScript SDK for Bee.
3
+ *
4
+ * Usage:
5
+ *
6
+ * import { BeeClient } from "@heossihq/bee";
7
+ *
8
+ * const bee = new BeeClient({ apiKey: process.env.BEE_API_KEY! });
9
+ *
10
+ * const out = await bee.chat.completions.create({
11
+ * model: "bee-cell",
12
+ * messages: [{ role: "user", content: "Hello." }],
13
+ * });
14
+ * console.log(out.choices[0].message.content);
15
+ *
16
+ * The SDK targets api.bee.heossi.com/bee/* (the public API proxy). Override `baseURL` to point at a self-hosted Bee Enclave or
17
+ * a staging environment.
18
+ */
19
+ import { BeeAuthError, BeeError, BeeRateLimitError, BeeTimeoutError } from "./errors.js";
20
+ const DEFAULT_BASE_URL = "https://api.bee.heossi.com/bee";
21
+ const DEFAULT_TIMEOUT_MS = 300_000;
22
+ export class BeeClient {
23
+ apiKey;
24
+ baseURL;
25
+ timeoutMs;
26
+ extraHeaders;
27
+ fetchImpl;
28
+ chat;
29
+ models;
30
+ quantumReasoning;
31
+ provenance;
32
+ usage;
33
+ constructor(opts) {
34
+ if (!opts.apiKey || typeof opts.apiKey !== "string") {
35
+ throw new Error("BeeClient: apiKey is required");
36
+ }
37
+ this.apiKey = opts.apiKey;
38
+ this.baseURL = (opts.baseURL ?? DEFAULT_BASE_URL).replace(/\/+$/, "");
39
+ this.timeoutMs = typeof opts.timeoutMs === "number" ? opts.timeoutMs : DEFAULT_TIMEOUT_MS;
40
+ this.extraHeaders = { ...(opts.headers ?? {}) };
41
+ const f = opts.fetch ?? globalThis.fetch;
42
+ if (typeof f !== "function") {
43
+ throw new Error("BeeClient: no fetch implementation found. On Node <18, pass `fetch` explicitly.");
44
+ }
45
+ this.fetchImpl = f;
46
+ this.chat = new ChatNamespace(this);
47
+ this.models = new ModelsNamespace(this);
48
+ this.quantumReasoning = new QuantumReasoningNamespace(this);
49
+ this.provenance = new ProvenanceNamespace(this);
50
+ this.usage = new UsageNamespace(this);
51
+ }
52
+ /** Internal — request wrapper with timeout, auth header, and structured error mapping. */
53
+ async _request(method, path, body, accept, requestHeaders = {}) {
54
+ const url = `${this.baseURL}${path}`;
55
+ const controller = new AbortController();
56
+ const timer = setTimeout(() => controller.abort(), this.timeoutMs);
57
+ const headers = {
58
+ Authorization: `Bearer ${this.apiKey}`,
59
+ Accept: accept,
60
+ ...this.extraHeaders,
61
+ ...requestHeaders,
62
+ };
63
+ if (body !== undefined)
64
+ headers["Content-Type"] = "application/json";
65
+ let resp;
66
+ try {
67
+ resp = await this.fetchImpl(url, {
68
+ method,
69
+ headers,
70
+ body: body === undefined ? undefined : JSON.stringify(body),
71
+ signal: controller.signal,
72
+ });
73
+ }
74
+ catch (err) {
75
+ clearTimeout(timer);
76
+ if (err instanceof Error && err.name === "AbortError") {
77
+ throw new BeeTimeoutError(`Request to ${url} timed out`, this.timeoutMs);
78
+ }
79
+ throw err;
80
+ }
81
+ clearTimeout(timer);
82
+ if (!resp.ok) {
83
+ const errorBody = await safeReadJson(resp);
84
+ const message = `Bee request to ${path} failed: HTTP ${resp.status}`;
85
+ if (resp.status === 401 || resp.status === 403) {
86
+ throw new BeeAuthError(message, resp.status, errorBody);
87
+ }
88
+ if (resp.status === 429) {
89
+ const ra = resp.headers.get("retry-after");
90
+ const retryAfter = ra && /^\d+$/.test(ra) ? Number.parseInt(ra, 10) : null;
91
+ throw new BeeRateLimitError(message, errorBody, retryAfter);
92
+ }
93
+ throw new BeeError(message, resp.status, errorBody);
94
+ }
95
+ return resp;
96
+ }
97
+ }
98
+ class ChatNamespace {
99
+ completions;
100
+ constructor(client) {
101
+ this.completions = new ChatCompletionsResource(client);
102
+ }
103
+ }
104
+ class ChatCompletionsResource {
105
+ client;
106
+ constructor(client) {
107
+ this.client = client;
108
+ }
109
+ async create(params) {
110
+ validateMessages(params.messages);
111
+ const body = {
112
+ model: params.model ?? "bee-cell",
113
+ messages: params.messages,
114
+ ...(typeof params.temperature === "number" ? { temperature: params.temperature } : {}),
115
+ ...(typeof params.max_tokens === "number" ? { max_tokens: params.max_tokens } : {}),
116
+ ...(typeof params.seed === "number" ? { seed: params.seed } : {}),
117
+ ...(params.stream ? { stream: true } : {}),
118
+ };
119
+ if (params.stream) {
120
+ const resp = await this.client._request("POST", "/chat/completions", body, "text/event-stream");
121
+ return iterateSse(resp);
122
+ }
123
+ const resp = await this.client._request("POST", "/chat/completions", body, "application/json");
124
+ return (await resp.json());
125
+ }
126
+ }
127
+ class ModelsNamespace {
128
+ client;
129
+ constructor(client) {
130
+ this.client = client;
131
+ }
132
+ async list() {
133
+ const resp = await this.client._request("GET", "/models", undefined, "application/json");
134
+ return (await resp.json());
135
+ }
136
+ }
137
+ class QuantumReasoningNamespace {
138
+ jobs;
139
+ constructor(client) {
140
+ this.jobs = new QuantumReasoningJobsResource(client);
141
+ }
142
+ }
143
+ class QuantumReasoningJobsResource {
144
+ client;
145
+ constructor(client) {
146
+ this.client = client;
147
+ }
148
+ async create(params) {
149
+ if (!params.prompt?.trim())
150
+ throw new Error("BeeClient: prompt is required");
151
+ const idempotencyKey = params.idempotency_key ?? crypto.randomUUID();
152
+ const resp = await this.client._request("POST", "/quantum-reasoning/jobs", {
153
+ prompt: params.prompt,
154
+ model: params.model,
155
+ product: params.product,
156
+ ...(params.provider_connection_id !== undefined
157
+ ? { provider_connection_id: params.provider_connection_id }
158
+ : {}),
159
+ ...(params.workspace_id !== undefined ? { workspace_id: params.workspace_id } : {}),
160
+ }, "application/json", { "Idempotency-Key": idempotencyKey });
161
+ return (await resp.json()).job;
162
+ }
163
+ async list(params = {}) {
164
+ const search = new URLSearchParams();
165
+ if (params.cursor)
166
+ search.set("cursor", params.cursor);
167
+ if (params.limit !== undefined)
168
+ search.set("limit", String(params.limit));
169
+ if (params.status)
170
+ search.set("status", params.status);
171
+ if (params.model)
172
+ search.set("model", params.model);
173
+ const resp = await this.client._request("GET", `/quantum-reasoning/jobs${search.size ? `?${search}` : ""}`, undefined, "application/json");
174
+ return (await resp.json());
175
+ }
176
+ async retrieve(id) {
177
+ const resp = await this.client._request("GET", `/quantum-reasoning/jobs/${encodeURIComponent(id)}`, undefined, "application/json");
178
+ return (await resp.json()).job;
179
+ }
180
+ /** Cancels queued work or erases terminal content while retaining audit metadata. */
181
+ async remove(id) {
182
+ const resp = await this.client._request("DELETE", `/quantum-reasoning/jobs/${encodeURIComponent(id)}`, undefined, "application/json");
183
+ return (await resp.json());
184
+ }
185
+ async wait(id, options = {}) {
186
+ const timeout = options.timeout_ms ?? 15 * 60_000;
187
+ const pollInterval = options.poll_interval_ms ?? 2_000;
188
+ if (timeout <= 0 || pollInterval <= 0) {
189
+ throw new Error("BeeClient: timeout_ms and poll_interval_ms must be positive");
190
+ }
191
+ const deadline = Date.now() + timeout;
192
+ const active = new Set([
193
+ "queued",
194
+ "generating_candidates",
195
+ "scoring",
196
+ "selecting",
197
+ "awaiting_qpu",
198
+ ]);
199
+ while (Date.now() < deadline) {
200
+ if (options.signal?.aborted)
201
+ throw options.signal.reason ?? new Error("Aborted");
202
+ const job = await this.retrieve(id);
203
+ if (!active.has(job.status))
204
+ return job;
205
+ if (options.signal?.aborted)
206
+ throw options.signal.reason ?? new Error("Aborted");
207
+ await new Promise((resolve, reject) => {
208
+ const onAbort = () => {
209
+ clearTimeout(timer);
210
+ reject(options.signal?.reason ?? new Error("Aborted"));
211
+ };
212
+ const timer = setTimeout(() => {
213
+ options.signal?.removeEventListener("abort", onAbort);
214
+ resolve();
215
+ }, pollInterval);
216
+ options.signal?.addEventListener("abort", onAbort, { once: true });
217
+ });
218
+ }
219
+ throw new Error(`BeeClient: timed out waiting for quantum reasoning job ${id}`);
220
+ }
221
+ }
222
+ /**
223
+ * Verifiable agent provenance. When an agent-loop request carries a stable
224
+ * `session_id`, Bee seals each served turn into a per-session, ML-DSA-65-signed
225
+ * (NIST FIPS 204) hash chain. `verify(sessionId)` returns Bee's verdict, the
226
+ * chain (digests only — never your code), and the SPKI public key so you can
227
+ * INDEPENDENTLY re-verify every link offline with any FIPS-204 verifier.
228
+ */
229
+ class ProvenanceNamespace {
230
+ client;
231
+ constructor(client) {
232
+ this.client = client;
233
+ }
234
+ async verify(sessionId) {
235
+ if (!sessionId || typeof sessionId !== "string") {
236
+ throw new Error("BeeClient: provenance.verify requires a session id");
237
+ }
238
+ const resp = await this.client._request("GET", `/provenance/${encodeURIComponent(sessionId)}`, undefined, "application/json");
239
+ return (await resp.json());
240
+ }
241
+ }
242
+ /**
243
+ * Account & usage. `retrieve()` returns the caller's account (email, plan,
244
+ * organization), usage (pooled tokens, per-tier allowances, resets_at, messages,
245
+ * active days, credits), and the "what's contributing" tier breakdown over a
246
+ * `day` (24h) or `week` (7d) window — the SAME real data the Bee workspace,
247
+ * desktop, mobile, and IDE surfaces show, for every tier.
248
+ */
249
+ class UsageNamespace {
250
+ client;
251
+ constructor(client) {
252
+ this.client = client;
253
+ }
254
+ async retrieve(window = "day") {
255
+ const w = window === "week" ? "week" : "day";
256
+ const resp = await this.client._request("GET", `/usage?window=${w}`, undefined, "application/json");
257
+ return (await resp.json());
258
+ }
259
+ }
260
+ // ── Helpers ──────────────────────────────────────────────────────────────
261
+ function validateMessages(messages) {
262
+ if (!Array.isArray(messages) || messages.length === 0) {
263
+ throw new Error("BeeClient: messages must be a non-empty array");
264
+ }
265
+ for (const m of messages) {
266
+ if (!m || typeof m.role !== "string") {
267
+ throw new Error("BeeClient: each message must have a string `role`");
268
+ }
269
+ if (typeof m.content !== "string" && !Array.isArray(m.content)) {
270
+ throw new Error("BeeClient: each message `content` must be a string or array of parts");
271
+ }
272
+ }
273
+ }
274
+ async function safeReadJson(resp) {
275
+ try {
276
+ return await resp.json();
277
+ }
278
+ catch {
279
+ try {
280
+ return await resp.text();
281
+ }
282
+ catch {
283
+ return null;
284
+ }
285
+ }
286
+ }
287
+ /**
288
+ * Yield OpenAI-style SSE chunks. The server emits `data: {...}\n\n`
289
+ * lines terminated by `data: [DONE]\n\n`. Lines we can't parse as JSON
290
+ * are skipped silently — same behaviour as the OpenAI SDK.
291
+ */
292
+ async function* iterateSse(resp) {
293
+ if (!resp.body) {
294
+ throw new BeeError("Streaming response had no body", resp.status, null);
295
+ }
296
+ const reader = resp.body.getReader();
297
+ const decoder = new TextDecoder();
298
+ let buffer = "";
299
+ try {
300
+ while (true) {
301
+ const { value, done } = await reader.read();
302
+ if (done)
303
+ break;
304
+ buffer += decoder.decode(value, { stream: true });
305
+ let eventEnd;
306
+ while ((eventEnd = buffer.indexOf("\n\n")) !== -1) {
307
+ const event = buffer.slice(0, eventEnd);
308
+ buffer = buffer.slice(eventEnd + 2);
309
+ const dataLine = event
310
+ .split("\n")
311
+ .find((line) => line.startsWith("data:"))
312
+ ?.slice(5)
313
+ .trim();
314
+ if (!dataLine)
315
+ continue;
316
+ if (dataLine === "[DONE]")
317
+ return;
318
+ try {
319
+ yield JSON.parse(dataLine);
320
+ }
321
+ catch {
322
+ // Malformed line — skip and continue.
323
+ }
324
+ }
325
+ }
326
+ }
327
+ finally {
328
+ reader.releaseLock();
329
+ }
330
+ }
331
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/code.d.ts ADDED
@@ -0,0 +1,162 @@
1
+ /** Public contracts for Bee's managed Code sessions and actions. */
2
+ export declare const BEE_CODE_AUTHORITY_MODES: readonly ["read_only", "approve_edits", "auto_edit"];
3
+ export type BeeCodeAuthorityMode = (typeof BEE_CODE_AUTHORITY_MODES)[number];
4
+ export declare const BEE_CODE_ACTIONS: readonly ["list_files", "discover_repository_controls", "read_file", "search_files", "write_file", "stage_file_chunk", "apply_file_batch", "rollback_file_batch", "git_status", "git_diff", "create_checkpoint", "checkpoint_diff", "create_branch", "commit_changes", "open_pull_request", "diagnostics", "test", "lint", "typecheck", "build", "run_hooks"];
5
+ export type BeeCodeAction = (typeof BEE_CODE_ACTIONS)[number];
6
+ export interface BeeCodeActionArgumentMap {
7
+ list_files: Record<string, never>;
8
+ discover_repository_controls: Record<string, never>;
9
+ read_file: {
10
+ path: string;
11
+ };
12
+ search_files: {
13
+ query: string;
14
+ };
15
+ write_file: {
16
+ path: string;
17
+ content: string;
18
+ checkpoint_sha: string;
19
+ approved?: boolean;
20
+ };
21
+ stage_file_chunk: {
22
+ batch_id: string;
23
+ path: string;
24
+ chunk_index: number;
25
+ total_chunks: number;
26
+ content: string;
27
+ content_sha256: string;
28
+ approved?: boolean;
29
+ };
30
+ apply_file_batch: {
31
+ batch_id: string;
32
+ checkpoint_sha: string;
33
+ approved?: boolean;
34
+ };
35
+ rollback_file_batch: {
36
+ batch_id: string;
37
+ approved?: boolean;
38
+ };
39
+ git_status: Record<string, never>;
40
+ git_diff: {
41
+ path?: string;
42
+ };
43
+ create_checkpoint: Record<string, never>;
44
+ checkpoint_diff: {
45
+ checkpoint_sha: string;
46
+ path?: string;
47
+ };
48
+ create_branch: {
49
+ branch: string;
50
+ approved?: boolean;
51
+ };
52
+ commit_changes: {
53
+ message: string;
54
+ approved?: boolean;
55
+ };
56
+ open_pull_request: {
57
+ title: string;
58
+ description: string;
59
+ base?: string;
60
+ approved?: boolean;
61
+ };
62
+ diagnostics: Record<string, never>;
63
+ test: {
64
+ approved?: boolean;
65
+ };
66
+ lint: {
67
+ approved?: boolean;
68
+ };
69
+ typecheck: {
70
+ approved?: boolean;
71
+ };
72
+ build: {
73
+ approved?: boolean;
74
+ };
75
+ run_hooks: {
76
+ approved?: boolean;
77
+ };
78
+ }
79
+ export type BeeCodeActionRequest = {
80
+ [Action in BeeCodeAction]: {
81
+ action: Action;
82
+ } & BeeCodeActionArgumentMap[Action];
83
+ }[BeeCodeAction];
84
+ export type BeeCodeSessionEnvironment = "local" | "modal_cloud";
85
+ export type BeeCodeSessionStatus = "provisioning" | "ready" | "busy" | "stopping" | "completed" | "failed" | "expired";
86
+ /** A session returned by the managed Code list route. */
87
+ export interface BeeCodeSession {
88
+ id: string;
89
+ environment: BeeCodeSessionEnvironment;
90
+ repository: string;
91
+ repository_ref: string;
92
+ authority_mode: BeeCodeAuthorityMode;
93
+ status: BeeCodeSessionStatus;
94
+ provider_connection_id: string | null;
95
+ terminal_reason: string | null;
96
+ last_activity_at: string;
97
+ absolute_deadline: string;
98
+ created_at: string;
99
+ }
100
+ /** The intentionally compact session shape returned by creation. */
101
+ export interface BeeCodeCreatedSession {
102
+ id: string;
103
+ status: "ready";
104
+ repository: string;
105
+ repository_ref: string;
106
+ authority_mode: BeeCodeAuthorityMode;
107
+ }
108
+ export interface BeeCodeSessionCreateParams {
109
+ repository_url?: string;
110
+ provider_connection_id?: string;
111
+ repository?: string;
112
+ ref?: string;
113
+ authority_mode?: BeeCodeAuthorityMode;
114
+ }
115
+ export interface BeeCodeRequestOptions {
116
+ /** Select a workspace without changing the request body. */
117
+ workspaceId?: string;
118
+ }
119
+ export interface BeeCodeActionExecuteOptions extends BeeCodeRequestOptions {
120
+ /** 16–200 characters. A UUID is generated once when omitted. */
121
+ idempotencyKey?: string;
122
+ }
123
+ /** Command output plus the action-specific evidence emitted by managed Code. */
124
+ export interface BeeCodeActionResult {
125
+ exit_code: number;
126
+ stdout: string;
127
+ stderr: string;
128
+ truncated: boolean;
129
+ sha256?: string;
130
+ commit_sha?: string;
131
+ pull_request_url?: string;
132
+ pull_request_number?: number;
133
+ batch_id?: string;
134
+ batch_sha256?: string;
135
+ checkpoint_sha?: string;
136
+ current_checkpoint_sha?: string;
137
+ original_content_sha256?: string;
138
+ file_count?: number;
139
+ rolled_back?: boolean;
140
+ }
141
+ export interface BeeCodeStopResult {
142
+ ok: true;
143
+ status: "completed";
144
+ }
145
+ export type BeeCodeCapabilityState = "available" | "requires_upgrade" | "requires_connection" | "requires_approval" | "policy_blocked";
146
+ /** Capability is a shared contract type; the public bridge has no capability endpoint. */
147
+ export interface BeeCodeCapability {
148
+ local: {
149
+ state: BeeCodeCapabilityState;
150
+ reason: string;
151
+ };
152
+ cloud: {
153
+ state: BeeCodeCapabilityState;
154
+ reason: string;
155
+ max_session_minutes: number;
156
+ access_mode: string;
157
+ plan_id: string;
158
+ };
159
+ }
160
+ /** Validate untyped JavaScript/CLI input before any managed Code action is sent. */
161
+ export declare function validateBeeCodeActionRequest(value: unknown): BeeCodeActionRequest;
162
+ //# sourceMappingURL=code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"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"}