@honeybee-ai/hivemind-sdk 0.2.0

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,152 @@
1
+ import { httpReq } from './http.js';
2
+ import { getActiveProfile, setProfile, isTokenExpired, refreshToken } from './auth.js';
3
+ export function createPlatformClient(options) {
4
+ const profileName = options?.profileName || 'personal';
5
+ const maybeProfile = getActiveProfile(profileName);
6
+ if (!maybeProfile) {
7
+ throw new Error('Not logged in. Run `wgl auth login` first.');
8
+ }
9
+ const profile = maybeProfile;
10
+ const platform = options?.platform || profile.platform;
11
+ // Derive API base: hivemind.honeyb.dev → api.hivemind.honeyb.dev
12
+ const platformUrl = new URL(platform);
13
+ const apiBase = `${platformUrl.protocol}//api.${platformUrl.host}/rest/v1`;
14
+ let accessToken = profile.accessToken;
15
+ let refreshPromise = null;
16
+ async function doRefresh() {
17
+ try {
18
+ const tokens = await refreshToken(profile.platform, profile.refreshToken);
19
+ accessToken = tokens.access_token;
20
+ setProfile(profileName, {
21
+ platform: profile.platform,
22
+ email: profile.email,
23
+ org: profile.org,
24
+ accessToken: tokens.access_token,
25
+ refreshToken: tokens.refresh_token,
26
+ expiresAt: Math.floor(Date.now() / 1000) + tokens.expires_in,
27
+ });
28
+ }
29
+ catch {
30
+ throw new Error('Session expired. Run `wgl auth login` to re-authenticate.');
31
+ }
32
+ finally {
33
+ refreshPromise = null;
34
+ }
35
+ }
36
+ async function ensureValidToken() {
37
+ if (!isTokenExpired(profile))
38
+ return;
39
+ // Mutex: only one refresh in flight — subsequent callers await the same promise
40
+ if (!refreshPromise) {
41
+ refreshPromise = doRefresh();
42
+ }
43
+ return refreshPromise;
44
+ }
45
+ function fetch(method, path, body, skipAuth = false) {
46
+ const url = `${apiBase}${path}`;
47
+ const headers = {};
48
+ if (!skipAuth) {
49
+ headers['Authorization'] = `Bearer ${accessToken}`;
50
+ }
51
+ return httpReq(method, url, body, headers);
52
+ }
53
+ async function authedFetch(method, path, body) {
54
+ await ensureValidToken();
55
+ const res = await fetch(method, path, body);
56
+ // Retry once on 401 (token may have expired mid-session)
57
+ if (res.status === 401) {
58
+ if (!refreshPromise) {
59
+ refreshPromise = doRefresh();
60
+ }
61
+ await refreshPromise;
62
+ return fetch(method, path, body);
63
+ }
64
+ return res;
65
+ }
66
+ return {
67
+ // --- Marketplace (search/info/download are public) ---
68
+ searchSpecs: (query, opts) => {
69
+ const params = new URLSearchParams();
70
+ if (query)
71
+ params.set('q', query);
72
+ if (opts?.tag)
73
+ params.set('tag', opts.tag);
74
+ if (opts?.sort)
75
+ params.set('sort', opts.sort);
76
+ if (opts?.page)
77
+ params.set('page', String(opts.page));
78
+ const qs = params.toString();
79
+ return fetch('GET', `/marketplace/specs${qs ? '?' + qs : ''}`);
80
+ },
81
+ getSpec: (name) => fetch('GET', `/marketplace/specs/${encodeURIComponent(name)}`),
82
+ downloadSpec: (name) => fetch('GET', `/marketplace/specs/${encodeURIComponent(name)}/download`),
83
+ publishSpec: (input) => authedFetch('POST', '/marketplace/specs', input),
84
+ updateSpec: (name, input) => authedFetch('PUT', `/marketplace/specs/${encodeURIComponent(name)}`, input),
85
+ forkSpec: (name, forkName) => authedFetch('POST', `/marketplace/specs/${encodeURIComponent(name)}/fork`, forkName ? { fork_name: forkName } : undefined),
86
+ listMySpecs: () => authedFetch('GET', '/marketplace/specs/mine'),
87
+ deleteSpec: (name) => authedFetch('DELETE', `/marketplace/specs/${encodeURIComponent(name)}`),
88
+ // Reviews
89
+ listReviews: (specName) => fetch('GET', `/marketplace/specs/${encodeURIComponent(specName)}/reviews`),
90
+ createReview: (specName, rating, comment) => authedFetch('POST', `/marketplace/specs/${encodeURIComponent(specName)}/reviews`, { rating, comment }),
91
+ deleteReview: (specName, reviewId) => authedFetch('DELETE', `/marketplace/specs/${encodeURIComponent(specName)}/reviews/${encodeURIComponent(reviewId)}`),
92
+ // --- Marketplace Integrations (search/info/download are public) ---
93
+ searchIntegrations: (query, opts) => {
94
+ const params = new URLSearchParams();
95
+ if (query)
96
+ params.set('q', query);
97
+ if (opts?.category)
98
+ params.set('category', opts.category);
99
+ if (opts?.sort)
100
+ params.set('sort', opts.sort);
101
+ if (opts?.page)
102
+ params.set('page', String(opts.page));
103
+ const qs = params.toString();
104
+ return fetch('GET', `/marketplace/integrations${qs ? '?' + qs : ''}`);
105
+ },
106
+ getIntegration: (name) => fetch('GET', `/marketplace/integrations/${encodeURIComponent(name)}`),
107
+ downloadIntegration: (name) => fetch('GET', `/marketplace/integrations/${encodeURIComponent(name)}/download`),
108
+ publishIntegration: (input) => authedFetch('POST', '/marketplace/integrations', input),
109
+ updateIntegration: (name, input) => authedFetch('PUT', `/marketplace/integrations/${encodeURIComponent(name)}`, input),
110
+ deleteIntegration: (name) => authedFetch('DELETE', `/marketplace/integrations/${encodeURIComponent(name)}`),
111
+ // Integration Reviews
112
+ listIntegrationReviews: (name, opts) => {
113
+ const params = new URLSearchParams();
114
+ if (opts?.page)
115
+ params.set('page', String(opts.page));
116
+ const qs = params.toString();
117
+ return fetch('GET', `/marketplace/integrations/${encodeURIComponent(name)}/reviews${qs ? '?' + qs : ''}`);
118
+ },
119
+ createIntegrationReview: (name, rating, comment) => authedFetch('POST', `/marketplace/integrations/${encodeURIComponent(name)}/reviews`, { rating, comment }),
120
+ deleteIntegrationReview: (name, reviewId) => authedFetch('DELETE', `/marketplace/integrations/${encodeURIComponent(name)}/reviews/${encodeURIComponent(reviewId)}`),
121
+ // --- Colony ---
122
+ listSwarms: () => authedFetch('GET', '/colony/swarms'),
123
+ createSwarm: (opts) => authedFetch('POST', '/colony/swarms', opts),
124
+ getSwarm: (id) => authedFetch('GET', `/colony/swarms/${encodeURIComponent(id)}`),
125
+ deleteSwarm: (id) => authedFetch('DELETE', `/colony/swarms/${encodeURIComponent(id)}`),
126
+ pauseSwarm: (id) => authedFetch('POST', `/colony/swarms/${encodeURIComponent(id)}/pause`),
127
+ resumeSwarm: (id) => authedFetch('POST', `/colony/swarms/${encodeURIComponent(id)}/resume`),
128
+ getSwarmEvents: (id, since) => authedFetch('GET', `/colony/swarms/${encodeURIComponent(id)}/events${since ? '?since=' + since : ''}`),
129
+ listKeys: () => authedFetch('GET', '/colony/keys'),
130
+ createKey: (opts) => authedFetch('POST', '/colony/keys', opts),
131
+ revokeKey: (id) => authedFetch('DELETE', `/colony/keys/${encodeURIComponent(id)}`),
132
+ // --- Carapace ---
133
+ scan: (input) => authedFetch('POST', '/carapace/v1/scan', input),
134
+ carapaceDashboard: () => authedFetch('GET', '/carapace/dashboard/overview'),
135
+ carapaceUsage: (hours) => authedFetch('GET', `/carapace/dashboard/usage${hours ? '?hours=' + hours : ''}`),
136
+ carapaceBlocked: (opts) => {
137
+ const params = new URLSearchParams();
138
+ if (opts?.limit)
139
+ params.set('limit', String(opts.limit));
140
+ if (opts?.offset)
141
+ params.set('offset', String(opts.offset));
142
+ const qs = params.toString();
143
+ return authedFetch('GET', `/carapace/dashboard/blocked${qs ? '?' + qs : ''}`);
144
+ },
145
+ listCarapaceKeys: () => authedFetch('GET', '/carapace/dashboard/keys'),
146
+ createCarapaceKey: (name, mode) => authedFetch('POST', '/carapace/dashboard/keys', { name, mode }),
147
+ deleteCarapaceKey: (id) => authedFetch('DELETE', `/carapace/dashboard/keys/${encodeURIComponent(id)}`),
148
+ // --- Auth ---
149
+ getMe: () => authedFetch('GET', '/auth/me'),
150
+ };
151
+ }
152
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { marketplace, colony, carapace } from './contracts/index.js';
2
+ export type SpecListItem = marketplace.SpecListItem;
3
+ export type SpecDetail = marketplace.SpecDetail;
4
+ export type SpecAuthor = marketplace.SpecAuthor;
5
+ export type Review = marketplace.Review;
6
+ export type PublishSpecInput = marketplace.PublishSpecInput;
7
+ export type UpdateSpecInput = marketplace.UpdateSpecInput;
8
+ export type Swarm = colony.Swarm;
9
+ export type ApiKey = colony.ApiKey;
10
+ export type CreateSwarmInput = colony.CreateSwarmInput;
11
+ export type CreateKeyInput = colony.CreateKeyInput;
12
+ export type ScanResult = carapace.ScanResult;
13
+ export type Finding = carapace.Finding;
14
+ export type ScanInput = carapace.ScanInput;
15
+ export type DashboardOverview = carapace.DashboardOverview;
16
+ export type UsageStats = carapace.UsageStats;
17
+ export type BlockedEntry = carapace.BlockedEntry;
18
+ export type CarapaceApiKey = carapace.CarapaceApiKey;
19
+ /** @deprecated Use SpecListItem */
20
+ export type MarketplaceSpec = SpecListItem;
21
+ /** @deprecated Use ApiKey */
22
+ export type ColonyApiKey = ApiKey;
23
+ /** @deprecated Use Finding */
24
+ export type ScanFinding = Finding;
25
+ export type IntegrationCategory = marketplace.IntegrationCategory;
26
+ export type IntegrationListItem = marketplace.IntegrationListItem;
27
+ export type IntegrationDetail = marketplace.IntegrationDetail;
28
+ export type IntegrationReview = marketplace.IntegrationReview;
29
+ export type PublishIntegrationInput = marketplace.PublishIntegrationInput;
30
+ export type UpdateIntegrationInput = marketplace.UpdateIntegrationInput;
31
+ export interface AuthProfile {
32
+ platform: string;
33
+ accessToken: string;
34
+ refreshToken: string;
35
+ expiresAt: number;
36
+ email: string;
37
+ org: string;
38
+ }
39
+ export interface AuthStore {
40
+ profiles: Record<string, AuthProfile>;
41
+ }
42
+ export interface PaginatedResponse<T> {
43
+ data: T[];
44
+ total: number;
45
+ page: number;
46
+ limit: number;
47
+ has_more: boolean;
48
+ }
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@honeybee-ai/hivemind-sdk",
3
+ "version": "0.2.0",
4
+ "description": "Hivemind platform SDK — auth, marketplace, colony, carapace, contracts, integrations",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./contracts": {
14
+ "types": "./dist/contracts/index.d.ts",
15
+ "import": "./dist/contracts/index.js"
16
+ },
17
+ "./integrations": {
18
+ "types": "./dist/integrations/index.d.ts",
19
+ "import": "./dist/integrations/index.js"
20
+ }
21
+ },
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "scripts": {
26
+ "build": "tsc",
27
+ "test": "vitest run && node --test test/*.test.js",
28
+ "test:watch": "vitest",
29
+ "prepublishOnly": "npm run build"
30
+ },
31
+ "keywords": [
32
+ "honeybee",
33
+ "hivemind",
34
+ "sdk",
35
+ "platform",
36
+ "client",
37
+ "contracts",
38
+ "zod",
39
+ "integrations"
40
+ ],
41
+ "license": "MIT",
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "https://github.com/honeybee-ai/hivemind-sdk.git"
45
+ },
46
+ "engines": {
47
+ "node": ">=20"
48
+ },
49
+ "dependencies": {
50
+ "zod": "^3.24.0"
51
+ },
52
+ "devDependencies": {
53
+ "@types/node": "^22.0.0",
54
+ "typescript": "^5.7.0",
55
+ "vitest": "^2.1.0"
56
+ }
57
+ }