@agenticros/core 0.8.6 → 0.8.8

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.
Files changed (62) hide show
  1. package/dist/capabilities.d.ts.map +1 -1
  2. package/dist/capabilities.js +34 -0
  3. package/dist/capabilities.js.map +1 -1
  4. package/dist/capability-schema.d.ts +2 -2
  5. package/dist/config.d.ts +71 -0
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +28 -0
  8. package/dist/config.js.map +1 -1
  9. package/dist/external-capability.d.ts.map +1 -1
  10. package/dist/external-capability.js +25 -0
  11. package/dist/external-capability.js.map +1 -1
  12. package/dist/hive/client.d.ts +65 -0
  13. package/dist/hive/client.d.ts.map +1 -0
  14. package/dist/hive/client.js +418 -0
  15. package/dist/hive/client.js.map +1 -0
  16. package/dist/hive/deny.d.ts +13 -0
  17. package/dist/hive/deny.d.ts.map +1 -0
  18. package/dist/hive/deny.js +29 -0
  19. package/dist/hive/deny.js.map +1 -0
  20. package/dist/hive/event.d.ts +10 -0
  21. package/dist/hive/event.d.ts.map +1 -0
  22. package/dist/hive/event.js +18 -0
  23. package/dist/hive/event.js.map +1 -0
  24. package/dist/hive/factory.d.ts +10 -0
  25. package/dist/hive/factory.d.ts.map +1 -0
  26. package/dist/hive/factory.js +14 -0
  27. package/dist/hive/factory.js.map +1 -0
  28. package/dist/hive/index.d.ts +10 -0
  29. package/dist/hive/index.d.ts.map +1 -0
  30. package/dist/hive/index.js +7 -0
  31. package/dist/hive/index.js.map +1 -0
  32. package/dist/hive/persist.d.ts +18 -0
  33. package/dist/hive/persist.d.ts.map +1 -0
  34. package/dist/hive/persist.js +27 -0
  35. package/dist/hive/persist.js.map +1 -0
  36. package/dist/hive/types.d.ts +84 -0
  37. package/dist/hive/types.d.ts.map +1 -0
  38. package/dist/hive/types.js +39 -0
  39. package/dist/hive/types.js.map +1 -0
  40. package/dist/index.d.ts +7 -2
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +4 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/mission-bindings.d.ts.map +1 -1
  45. package/dist/mission-bindings.js +19 -0
  46. package/dist/mission-bindings.js.map +1 -1
  47. package/dist/places-runtime.d.ts +24 -0
  48. package/dist/places-runtime.d.ts.map +1 -0
  49. package/dist/places-runtime.js +96 -0
  50. package/dist/places-runtime.js.map +1 -0
  51. package/dist/places.d.ts +39 -0
  52. package/dist/places.d.ts.map +1 -0
  53. package/dist/places.js +110 -0
  54. package/dist/places.js.map +1 -0
  55. package/dist/planner/index.d.ts.map +1 -1
  56. package/dist/planner/index.js +223 -0
  57. package/dist/planner/index.js.map +1 -1
  58. package/dist/safety.d.ts +18 -0
  59. package/dist/safety.d.ts.map +1 -1
  60. package/dist/safety.js +34 -0
  61. package/dist/safety.js.map +1 -1
  62. package/package.json +10 -9
@@ -0,0 +1,418 @@
1
+ import { isDeniedActuationTopic, taskDefinitionMentionsActuation } from "./deny.js";
2
+ import { makeHiveEvent } from "./event.js";
3
+ import { DEFAULT_HIVE_URL, HIVE_RECIPE_CATALOG, HIVE_RECIPE_IDS, HiveUnavailableError, } from "./types.js";
4
+ const RECIPE_TEMPLATE_BASE = "https://corebrum.com/recipes";
5
+ const RECIPE_TASK_PREFIX = "agenticros/recipe/";
6
+ export class HiveHttpClient {
7
+ url;
8
+ identityId;
9
+ hiveId;
10
+ hiveName;
11
+ robotId;
12
+ recipes;
13
+ fetchFn;
14
+ persist;
15
+ persistRecipes;
16
+ ensured = false;
17
+ constructor(config, overrides = {}, hooks = {}) {
18
+ this.url = stripTrailingSlash(overrides.url ?? config.hive?.url ?? DEFAULT_HIVE_URL);
19
+ this.identityId = overrides.identityId ?? config.hive?.identityId;
20
+ this.hiveId = overrides.hiveId ?? config.hive?.hiveId;
21
+ this.hiveName = overrides.hiveName ?? config.hive?.hiveId ?? "local-fleet";
22
+ this.robotId = this.identityId ?? "local";
23
+ this.recipes = {
24
+ detect: !!config.hive?.recipes?.detect,
25
+ describe: !!config.hive?.recipes?.describe,
26
+ health: !!config.hive?.recipes?.health,
27
+ };
28
+ this.fetchFn = hooks.fetch ?? fetch;
29
+ this.persist = hooks.persist;
30
+ this.persistRecipes = hooks.persistRecipes;
31
+ }
32
+ async ensure() {
33
+ const identityId = await this.ensureIdentity();
34
+ const hiveId = await this.ensureHive(identityId);
35
+ await this.joinHive(hiveId, identityId);
36
+ this.identityId = identityId;
37
+ this.hiveId = hiveId;
38
+ this.ensured = true;
39
+ await this.persist?.({ identityId, hiveId });
40
+ return {
41
+ enabled: true,
42
+ identityId,
43
+ hiveId,
44
+ message: "Fleet memory on.",
45
+ };
46
+ }
47
+ async remember(content, opts) {
48
+ const { identityId, hiveId } = await this.requireJoin();
49
+ const key = opts?.key?.trim() || `notes/${Date.now()}-${slug(content)}`;
50
+ const event = makeHiveEvent({
51
+ robotId: this.robotId,
52
+ kind: "note",
53
+ topic: "hive/notes",
54
+ payload: {
55
+ content,
56
+ tags: opts?.tags,
57
+ path: opts?.path,
58
+ },
59
+ });
60
+ await this.request("PUT", `/api/hives/${enc(hiveId)}/memory/${enc(key)}?key_id=${enc(identityId)}`, {
61
+ value: event,
62
+ memory_type: "durable",
63
+ });
64
+ return { key };
65
+ }
66
+ async recall(query, limit = 20) {
67
+ const { identityId, hiveId } = await this.requireJoin();
68
+ const data = await this.request("GET", `/api/hives/${enc(hiveId)}/memory?key_id=${enc(identityId)}`);
69
+ const items = parseMemoryItems(data);
70
+ const q = (query ?? "").trim().toLowerCase();
71
+ const filtered = q
72
+ ? items.filter((item) => JSON.stringify(item.value).toLowerCase().includes(q) || item.key.toLowerCase().includes(q))
73
+ : items;
74
+ return filtered.slice(0, Math.max(1, limit));
75
+ }
76
+ async forget(key, query) {
77
+ const { identityId, hiveId } = await this.requireJoin();
78
+ if (key?.trim()) {
79
+ await this.request("DELETE", `/api/hives/${enc(hiveId)}/memory/${enc(key.trim())}?key_id=${enc(identityId)}`);
80
+ return { removed: 1 };
81
+ }
82
+ const items = await this.recall(query, 500);
83
+ let removed = 0;
84
+ for (const item of items) {
85
+ await this.request("DELETE", `/api/hives/${enc(hiveId)}/memory/${enc(item.key)}?key_id=${enc(identityId)}`);
86
+ removed += 1;
87
+ }
88
+ return { removed };
89
+ }
90
+ async status() {
91
+ const reachable = await this.ping();
92
+ const recipeRows = HIVE_RECIPE_IDS.map((id) => ({
93
+ id,
94
+ label: HIVE_RECIPE_CATALOG.find((r) => r.id === id)?.label ?? id,
95
+ on: this.recipes[id],
96
+ }));
97
+ if (!reachable) {
98
+ return {
99
+ enabled: true,
100
+ reachable: false,
101
+ message: "Corebrum is not running.",
102
+ url: this.url,
103
+ identityId: this.identityId,
104
+ hiveId: this.hiveId,
105
+ recipes: recipeRows,
106
+ };
107
+ }
108
+ try {
109
+ const { identityId, hiveId } = await this.requireJoin();
110
+ const hive = await this.request("GET", `/api/hives/${enc(hiveId)}`);
111
+ const memories = await this.request("GET", `/api/hives/${enc(hiveId)}/memory?key_id=${enc(identityId)}`);
112
+ const items = parseMemoryItems(memories);
113
+ const running = recipeRows.filter((r) => r.on).map((r) => r.label);
114
+ const memberCount = typeof hive.member_count === "number" ? hive.member_count : undefined;
115
+ const sharing = memberCount && memberCount > 0 ? ` ${memberCount} robots sharing.` : "";
116
+ const recipeBit = running.length > 0 ? ` ${running.join("; ")}.` : "";
117
+ return {
118
+ enabled: true,
119
+ reachable: true,
120
+ message: `Fleet memory on.${sharing}${recipeBit}`,
121
+ url: this.url,
122
+ identityId,
123
+ hiveId,
124
+ hiveName: typeof hive.name === "string" ? hive.name : undefined,
125
+ memberCount,
126
+ recordCount: items.length,
127
+ recipes: recipeRows,
128
+ };
129
+ }
130
+ catch (err) {
131
+ if (err instanceof HiveUnavailableError) {
132
+ return {
133
+ enabled: true,
134
+ reachable: true,
135
+ message: err.ownerMessage,
136
+ url: this.url,
137
+ identityId: this.identityId,
138
+ hiveId: this.hiveId,
139
+ recipes: recipeRows,
140
+ };
141
+ }
142
+ throw err;
143
+ }
144
+ }
145
+ async setRecipe(id, on, bindings) {
146
+ if (!HIVE_RECIPE_IDS.includes(id)) {
147
+ throw new HiveUnavailableError(`Unknown recipe "${id}". Use detect, describe, or health.`);
148
+ }
149
+ const label = HIVE_RECIPE_CATALOG.find((r) => r.id === id)?.label ?? id;
150
+ const { identityId, hiveId } = await this.requireJoin();
151
+ const recipeKey = `${RECIPE_TASK_PREFIX}${id}`;
152
+ if (!on) {
153
+ const existing = await this.readRecipeTaskId(identityId, hiveId, recipeKey);
154
+ if (existing) {
155
+ await this.request("POST", `/api/cancel/${enc(existing)}`).catch(() => undefined);
156
+ }
157
+ await this.request("DELETE", `/api/hives/${enc(hiveId)}/memory/${enc(recipeKey)}?key_id=${enc(identityId)}`).catch(() => undefined);
158
+ this.recipes[id] = false;
159
+ await this.persistRecipes?.({ ...this.recipes });
160
+ return { id, on: false, label, message: `Stopped: ${label}.` };
161
+ }
162
+ const input = {
163
+ recipe: id,
164
+ robot_id: bindings?.robotId ?? this.robotId,
165
+ camera_topic: bindings?.cameraTopic ?? "",
166
+ namespace: bindings?.namespace ?? "",
167
+ };
168
+ if (isDeniedActuationTopic(input.camera_topic)) {
169
+ throw new HiveUnavailableError("Hive recipes cannot target drive topics.");
170
+ }
171
+ let taskId;
172
+ const v2 = await this.tryRecipesApi(id, { on: true, ...input, identity_id: identityId });
173
+ if (v2) {
174
+ taskId = v2;
175
+ }
176
+ else {
177
+ const file = `${RECIPE_TEMPLATE_BASE}/agenticros-${id}.yaml`;
178
+ const submitted = await this.request("POST", "/api/submit", {
179
+ file,
180
+ input: JSON.stringify(input),
181
+ identity_id: identityId,
182
+ capability: "python",
183
+ });
184
+ if (taskDefinitionMentionsActuation(submitted)) {
185
+ throw new HiveUnavailableError("Hive recipes cannot include actuation.");
186
+ }
187
+ taskId = typeof submitted.task_id === "string" ? submitted.task_id : undefined;
188
+ }
189
+ await this.request("PUT", `/api/hives/${enc(hiveId)}/memory/${enc(recipeKey)}?key_id=${enc(identityId)}`, {
190
+ value: makeHiveEvent({
191
+ robotId: this.robotId,
192
+ kind: id === "detect" ? "detection" : id === "describe" ? "caption" : "health",
193
+ topic: recipeKey,
194
+ payload: { ...input, task_id: taskId, on: true },
195
+ }),
196
+ memory_type: "durable",
197
+ });
198
+ this.recipes[id] = true;
199
+ await this.persistRecipes?.({ ...this.recipes });
200
+ return {
201
+ id,
202
+ on: true,
203
+ label,
204
+ taskId,
205
+ message: `Watching: ${label}.`,
206
+ };
207
+ }
208
+ async tryRecipesApi(id, body) {
209
+ try {
210
+ const data = await this.request("POST", `/api/recipes/${enc(id)}`, body);
211
+ if (typeof data.task_id === "string")
212
+ return data.task_id;
213
+ return typeof data.id === "string" ? data.id : "ok";
214
+ }
215
+ catch (err) {
216
+ if (err instanceof HiveUnavailableError && /not found|404/i.test(err.ownerMessage)) {
217
+ return undefined;
218
+ }
219
+ // 404 from missing v2 route — fall back to submit
220
+ if (err instanceof HiveHttpError && err.status === 404)
221
+ return undefined;
222
+ throw err;
223
+ }
224
+ }
225
+ async readRecipeTaskId(identityId, hiveId, recipeKey) {
226
+ try {
227
+ const data = await this.request("GET", `/api/hives/${enc(hiveId)}/memory/${enc(recipeKey)}?key_id=${enc(identityId)}`);
228
+ const value = data.value ?? data;
229
+ const payload = value && typeof value === "object" && "payload" in value
230
+ ? value.payload
231
+ : undefined;
232
+ return typeof payload?.task_id === "string" ? payload.task_id : undefined;
233
+ }
234
+ catch {
235
+ return undefined;
236
+ }
237
+ }
238
+ async requireJoin() {
239
+ if (!this.ensured || !this.identityId || !this.hiveId) {
240
+ await this.ensure();
241
+ }
242
+ return { identityId: this.identityId, hiveId: this.hiveId };
243
+ }
244
+ async ensureIdentity() {
245
+ const wanted = this.identityId?.trim();
246
+ if (wanted) {
247
+ const existing = await this.findIdentity(wanted);
248
+ if (existing)
249
+ return existing;
250
+ const created = await this.request("POST", "/api/identity", {
251
+ key_id: wanted,
252
+ set_as_default: false,
253
+ });
254
+ if (typeof created.key_id === "string")
255
+ return created.key_id;
256
+ return wanted;
257
+ }
258
+ const created = await this.request("POST", "/api/identity", { set_as_default: false });
259
+ if (typeof created.key_id !== "string" || !created.key_id) {
260
+ throw new HiveUnavailableError("Fleet memory is not available yet.");
261
+ }
262
+ return created.key_id;
263
+ }
264
+ async findIdentity(keyId) {
265
+ try {
266
+ const list = await this.request("GET", "/api/identity");
267
+ const rows = Array.isArray(list) ? list : Array.isArray(list.identities) ? list.identities : [];
268
+ for (const row of rows) {
269
+ if (row && typeof row === "object" && row.key_id === keyId) {
270
+ return keyId;
271
+ }
272
+ }
273
+ }
274
+ catch {
275
+ // list can fail on a fresh install — create instead
276
+ }
277
+ return undefined;
278
+ }
279
+ async ensureHive(identityId) {
280
+ if (this.hiveId?.trim()) {
281
+ try {
282
+ await this.request("GET", `/api/hives/${enc(this.hiveId.trim())}`);
283
+ return this.hiveId.trim();
284
+ }
285
+ catch (err) {
286
+ if (!(err instanceof HiveHttpError && err.status === 404))
287
+ throw err;
288
+ }
289
+ }
290
+ const listed = await this.request("GET", `/api/hives?key_id=${enc(identityId)}`);
291
+ const hives = Array.isArray(listed.hives) ? listed.hives : [];
292
+ const named = hives.find((h) => h && typeof h === "object" && h.name === this.hiveName);
293
+ if (named?.hive_id)
294
+ return named.hive_id;
295
+ const created = await this.request("POST", `/api/hives?key_id=${enc(identityId)}`, {
296
+ name: this.hiveName,
297
+ description: "AgenticROS fleet hive",
298
+ });
299
+ if (typeof created.hive_id !== "string" || !created.hive_id) {
300
+ throw new HiveUnavailableError("Fleet memory is not available yet.");
301
+ }
302
+ return created.hive_id;
303
+ }
304
+ async joinHive(hiveId, identityId) {
305
+ await this.request("PUT", `/api/hives/${enc(hiveId)}/members/${enc(identityId)}`);
306
+ }
307
+ async ping() {
308
+ try {
309
+ const res = await this.fetchFn(`${this.url}/api/compute-capacity`, {
310
+ method: "GET",
311
+ headers: { Accept: "application/json" },
312
+ signal: AbortSignal.timeout(2500),
313
+ });
314
+ return res.ok || res.status === 401 || res.status === 403;
315
+ }
316
+ catch {
317
+ try {
318
+ const res = await this.fetchFn(`${this.url}/api/identity`, {
319
+ method: "GET",
320
+ headers: { Accept: "application/json" },
321
+ signal: AbortSignal.timeout(2500),
322
+ });
323
+ return res.ok || res.status === 401 || res.status === 403;
324
+ }
325
+ catch {
326
+ return false;
327
+ }
328
+ }
329
+ }
330
+ async request(method, path, body) {
331
+ let res;
332
+ try {
333
+ res = await this.fetchFn(`${this.url}${path}`, {
334
+ method,
335
+ headers: {
336
+ Accept: "application/json",
337
+ ...(body !== undefined ? { "Content-Type": "application/json" } : {}),
338
+ },
339
+ body: body !== undefined ? JSON.stringify(body) : undefined,
340
+ signal: AbortSignal.timeout(15_000),
341
+ });
342
+ }
343
+ catch (err) {
344
+ throw new HiveUnavailableError("Corebrum is not running.", err);
345
+ }
346
+ const text = await res.text();
347
+ let data = {};
348
+ if (text) {
349
+ try {
350
+ const parsed = JSON.parse(text);
351
+ data = parsed && typeof parsed === "object" && !Array.isArray(parsed)
352
+ ? parsed
353
+ : { identities: parsed, value: parsed };
354
+ if (Array.isArray(parsed)) {
355
+ data = { identities: parsed };
356
+ }
357
+ }
358
+ catch {
359
+ data = { message: text };
360
+ }
361
+ }
362
+ if (!res.ok) {
363
+ throw mapHttpError(res.status, data, text);
364
+ }
365
+ return data;
366
+ }
367
+ }
368
+ class HiveHttpError extends HiveUnavailableError {
369
+ status;
370
+ constructor(status, ownerMessage) {
371
+ super(ownerMessage);
372
+ this.status = status;
373
+ this.name = "HiveHttpError";
374
+ }
375
+ }
376
+ function mapHttpError(status, data, text) {
377
+ const raw = String(data.error ?? data.message ?? text ?? "");
378
+ if (status === 403 || /license|feature|plan|forbidden/i.test(raw)) {
379
+ return new HiveHttpError(status, "Fleet memory needs a hive plan.");
380
+ }
381
+ if (status === 404) {
382
+ return new HiveHttpError(status, raw || "not found");
383
+ }
384
+ return new HiveHttpError(status, "Fleet memory is not available yet.");
385
+ }
386
+ function parseMemoryItems(data) {
387
+ const items = data.items;
388
+ if (Array.isArray(items)) {
389
+ return items
390
+ .map((row) => {
391
+ if (!row || typeof row !== "object")
392
+ return null;
393
+ const r = row;
394
+ return typeof r.key === "string" ? { key: r.key, value: r.value } : null;
395
+ })
396
+ .filter((x) => x !== null);
397
+ }
398
+ const keys = data.keys;
399
+ if (Array.isArray(keys)) {
400
+ return keys.filter((k) => typeof k === "string").map((key) => ({ key, value: undefined }));
401
+ }
402
+ return [];
403
+ }
404
+ function slug(content) {
405
+ const s = content
406
+ .toLowerCase()
407
+ .replace(/[^a-z0-9]+/g, "-")
408
+ .replace(/^-|-$/g, "")
409
+ .slice(0, 32);
410
+ return s || "note";
411
+ }
412
+ function enc(value) {
413
+ return encodeURIComponent(value);
414
+ }
415
+ function stripTrailingSlash(url) {
416
+ return url.replace(/\/+$/, "");
417
+ }
418
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/hive/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Client-side deny-list: Corebrum publish is unclamped. AgenticROS never
3
+ * calls POST /api/publish, and refuses any recipe/task payload that would
4
+ * write Twist / joints / gripper / Nav2 goals.
5
+ */
6
+ export declare function isDeniedActuationTopic(topic: string): boolean;
7
+ export declare function taskDefinitionMentionsActuation(value: unknown): boolean;
8
+ /**
9
+ * The hive client has no publish method. Call this if a future caller
10
+ * tries to route actuation through Corebrum.
11
+ */
12
+ export declare function assertHivePublishDenied(topic: string): never;
13
+ //# sourceMappingURL=deny.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deny.d.ts","sourceRoot":"","sources":["../../src/hive/deny.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAI7D;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMvE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAI5D"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Client-side deny-list: Corebrum publish is unclamped. AgenticROS never
3
+ * calls POST /api/publish, and refuses any recipe/task payload that would
4
+ * write Twist / joints / gripper / Nav2 goals.
5
+ */
6
+ const ACTUATION_TOPIC_RE = /(^|\/)(cmd_vel|cmd_vel_stamped|joint_trajectory|joint_command|joint_commands|gripper|follow_joint_trajectory|navigate_to_pose|navigate_through_poses|follow_path)(\/|$)/i;
7
+ const ACTUATION_HINT_RE = /\b(cmd_vel|joint_trajectory|joint_command|gripper_cmd|navigate_to_pose|follow_path)\b/i;
8
+ export function isDeniedActuationTopic(topic) {
9
+ const t = topic.trim();
10
+ if (!t)
11
+ return false;
12
+ return ACTUATION_TOPIC_RE.test(t);
13
+ }
14
+ export function taskDefinitionMentionsActuation(value) {
15
+ try {
16
+ return ACTUATION_HINT_RE.test(JSON.stringify(value));
17
+ }
18
+ catch {
19
+ return false;
20
+ }
21
+ }
22
+ /**
23
+ * The hive client has no publish method. Call this if a future caller
24
+ * tries to route actuation through Corebrum.
25
+ */
26
+ export function assertHivePublishDenied(topic) {
27
+ throw new Error(`Hive client refuses to publish to "${topic}". Driving and joints stay in AgenticROS.`);
28
+ }
29
+ //# sourceMappingURL=deny.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deny.js","sourceRoot":"","sources":["../../src/hive/deny.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,kBAAkB,GACtB,0KAA0K,CAAC;AAE7K,MAAM,iBAAiB,GACrB,wFAAwF,CAAC;AAE3F,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,KAAc;IAC5D,IAAI,CAAC;QACH,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,IAAI,KAAK,CACb,sCAAsC,KAAK,2CAA2C,CACvF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type HiveEvent, type HiveEventKind } from "./types.js";
2
+ export declare function makeHiveEvent(input: {
3
+ robotId: string;
4
+ kind: HiveEventKind;
5
+ topic?: string;
6
+ payload?: unknown;
7
+ ts?: number;
8
+ }): HiveEvent;
9
+ export declare function isHiveEvent(value: unknown): value is HiveEvent;
10
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/hive/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEnF,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,SAAS,CASZ;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAI9D"}
@@ -0,0 +1,18 @@
1
+ import { HIVE_EVENT_SCHEMA } from "./types.js";
2
+ export function makeHiveEvent(input) {
3
+ return {
4
+ schema: HIVE_EVENT_SCHEMA,
5
+ robot_id: input.robotId,
6
+ kind: input.kind,
7
+ topic: input.topic ?? "",
8
+ payload: input.payload ?? {},
9
+ ts: input.ts ?? Date.now(),
10
+ };
11
+ }
12
+ export function isHiveEvent(value) {
13
+ if (!value || typeof value !== "object" || Array.isArray(value))
14
+ return false;
15
+ const o = value;
16
+ return o.schema === HIVE_EVENT_SCHEMA && typeof o.robot_id === "string" && typeof o.kind === "string";
17
+ }
18
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/hive/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAsC,MAAM,YAAY,CAAC;AAEnF,MAAM,UAAU,aAAa,CAAC,KAM7B;IACC,OAAO;QACL,MAAM,EAAE,iBAAiB;QACzB,QAAQ,EAAE,KAAK,CAAC,OAAO;QACvB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;QAC5B,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,CAAC,CAAC,MAAM,KAAK,iBAAiB,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AACxG,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { AgenticROSConfig } from "../config.js";
2
+ import { type HiveClientHooks, type HiveClientOverrides } from "./client.js";
3
+ import type { HiveClient } from "./types.js";
4
+ /**
5
+ * Build a hive HTTP client, or `null` when hive is disabled.
6
+ * Dynamic-import friendly: callers that never enable hive never construct this.
7
+ */
8
+ export declare function createHiveClient(config: AgenticROSConfig, overrides?: HiveClientOverrides, hooks?: HiveClientHooks): HiveClient | null;
9
+ export declare function hiveRecipeOn(config: AgenticROSConfig, id: "detect" | "describe" | "health"): boolean;
10
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/hive/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,SAAS,CAAC,EAAE,mBAAmB,EAC/B,KAAK,CAAC,EAAE,eAAe,GACtB,UAAU,GAAG,IAAI,CAGnB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,gBAAgB,EACxB,EAAE,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GACnC,OAAO,CAET"}
@@ -0,0 +1,14 @@
1
+ import { HiveHttpClient } from "./client.js";
2
+ /**
3
+ * Build a hive HTTP client, or `null` when hive is disabled.
4
+ * Dynamic-import friendly: callers that never enable hive never construct this.
5
+ */
6
+ export function createHiveClient(config, overrides, hooks) {
7
+ if (!config.hive?.enabled)
8
+ return null;
9
+ return new HiveHttpClient(config, overrides ?? {}, hooks ?? {});
10
+ }
11
+ export function hiveRecipeOn(config, id) {
12
+ return !!config.hive?.enabled && !!config.hive.recipes?.[id];
13
+ }
14
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/hive/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAkD,MAAM,aAAa,CAAC;AAG7F;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAwB,EACxB,SAA+B,EAC/B,KAAuB;IAEvB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAAwB,EACxB,EAAoC;IAEpC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,10 @@
1
+ export { createHiveClient, hiveRecipeOn } from "./factory.js";
2
+ export { HiveHttpClient } from "./client.js";
3
+ export type { HiveClientHooks, HiveClientOverrides } from "./client.js";
4
+ export { DEFAULT_HIVE_URL, HIVE_EVENT_SCHEMA, HIVE_RECIPE_CATALOG, HIVE_RECIPE_IDS, HiveUnavailableError, } from "./types.js";
5
+ export type { HiveClient, HiveEnableResult, HiveEvent, HiveEventKind, HiveMemoryItem, HiveRecipeCatalogEntry, HiveRecipeId, HiveRecipeResult, HiveStatus, } from "./types.js";
6
+ export { isDeniedActuationTopic, taskDefinitionMentionsActuation, assertHivePublishDenied } from "./deny.js";
7
+ export { makeHiveEvent, isHiveEvent } from "./event.js";
8
+ export { mergeHiveConfig } from "./persist.js";
9
+ export type { HiveConfigPatch } from "./persist.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hive/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { createHiveClient, hiveRecipeOn } from "./factory.js";
2
+ export { HiveHttpClient } from "./client.js";
3
+ export { DEFAULT_HIVE_URL, HIVE_EVENT_SCHEMA, HIVE_RECIPE_CATALOG, HIVE_RECIPE_IDS, HiveUnavailableError, } from "./types.js";
4
+ export { isDeniedActuationTopic, taskDefinitionMentionsActuation, assertHivePublishDenied } from "./deny.js";
5
+ export { makeHiveEvent, isHiveEvent } from "./event.js";
6
+ export { mergeHiveConfig } from "./persist.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hive/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAYpB,OAAO,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Merge a hive patch into a raw config object (no Zod). Used by the CLI
3
+ * and hive_enable so adapters can write ~/.agenticros/config.json without
4
+ * pulling transport deps beyond what's already imported.
5
+ */
6
+ export interface HiveConfigPatch {
7
+ enabled?: boolean;
8
+ url?: string;
9
+ identityId?: string;
10
+ hiveId?: string;
11
+ recipes?: {
12
+ detect?: boolean;
13
+ describe?: boolean;
14
+ health?: boolean;
15
+ };
16
+ }
17
+ export declare function mergeHiveConfig(raw: Record<string, unknown>, patch: HiveConfigPatch): Record<string, unknown>;
18
+ //# sourceMappingURL=persist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../../src/hive/persist.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,KAAK,EAAE,eAAe,GACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzB"}