@agentuity/hono 3.1.5 → 3.1.7
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/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -16
- package/dist/index.js.map +1 -1
- package/package.json +10 -10
- package/src/index.ts +42 -16
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,EAEN,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,MAAM,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,WAAW,cAAc;IAC9B,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,OAAO,CAAC,EAAE;QACT,EAAE,CAAC,EAAE,qBAAqB,CAAC;QAC3B,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,KAAK,CAAC,EAAE,kBAAkB,CAAC;QAC3B,KAAK,CAAC,EAAE,kBAAkB,CAAC;QAC3B,IAAI,CAAC,EAAE,iBAAiB,CAAC;QACzB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;QACjC,OAAO,CAAC,EAAE,oBAAoB,CAAC;KAC/B,CAAC;CACF;AAED,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,cAAc,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,EAEN,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,MAAM,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,WAAW,cAAc;IAC9B,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,OAAO,CAAC,EAAE;QACT,EAAE,CAAC,EAAE,qBAAqB,CAAC;QAC3B,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,KAAK,CAAC,EAAE,kBAAkB,CAAC;QAC3B,KAAK,CAAC,EAAE,kBAAkB,CAAC;QAC3B,IAAI,CAAC,EAAE,iBAAiB,CAAC;QACzB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;QACjC,OAAO,CAAC,EAAE,oBAAoB,CAAC;KAC/B,CAAC;CACF;AAED,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,cAAc,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC1B;AA8CD;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAMtC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,MAAM,GAAG,GAAG,EACpE,OAAO,CAAC,EAAE,gBAAgB,GACxB,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CA0CzB;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,iBAAiB,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAG5B;AAGD,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -29,16 +29,31 @@ import { EmailClient } from '@agentuity/email';
|
|
|
29
29
|
import { TaskClient } from '@agentuity/task';
|
|
30
30
|
import { ScheduleClient } from '@agentuity/schedule';
|
|
31
31
|
import { SandboxClient } from '@agentuity/sandbox';
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
// Process-global state (survives bun --hot module re-evaluation)
|
|
33
|
+
const telemetryInstanceKey = Symbol.for('@agentuity/hono:telemetry');
|
|
34
|
+
const servicesInstanceKey = Symbol.for('@agentuity/hono:services');
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
+
const g = globalThis;
|
|
37
|
+
function getTelemetryInstance() {
|
|
38
|
+
return g[telemetryInstanceKey] ?? null;
|
|
39
|
+
}
|
|
40
|
+
function setTelemetryInstance(value) {
|
|
41
|
+
g[telemetryInstanceKey] = value;
|
|
42
|
+
}
|
|
43
|
+
function getGlobalServices() {
|
|
44
|
+
return g[servicesInstanceKey] ?? null;
|
|
45
|
+
}
|
|
46
|
+
function setGlobalServices(value) {
|
|
47
|
+
g[servicesInstanceKey] = value;
|
|
48
|
+
}
|
|
35
49
|
/**
|
|
36
50
|
* Initialize service clients.
|
|
37
51
|
*/
|
|
38
52
|
function initServices(config) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
53
|
+
const existing = getGlobalServices();
|
|
54
|
+
if (existing)
|
|
55
|
+
return existing;
|
|
56
|
+
const services = {
|
|
42
57
|
kv: new KeyValueClient({ logger: config?.logger, ...config?.clients?.kv }),
|
|
43
58
|
stream: new StreamClient({ logger: config?.logger, ...config?.clients?.stream }),
|
|
44
59
|
vector: new VectorClient({ logger: config?.logger, ...config?.clients?.vector }),
|
|
@@ -48,22 +63,24 @@ function initServices(config) {
|
|
|
48
63
|
schedule: new ScheduleClient({ logger: config?.logger, ...config?.clients?.schedule }),
|
|
49
64
|
sandbox: new SandboxClient({ logger: config?.logger, ...config?.clients?.sandbox }),
|
|
50
65
|
};
|
|
51
|
-
|
|
66
|
+
setGlobalServices(services);
|
|
67
|
+
return services;
|
|
52
68
|
}
|
|
53
69
|
/**
|
|
54
70
|
* Get initialized services. Throws if not initialized.
|
|
55
71
|
*/
|
|
56
72
|
export function getServices() {
|
|
57
|
-
|
|
73
|
+
const services = getGlobalServices();
|
|
74
|
+
if (!services) {
|
|
58
75
|
throw new Error('Services not initialized. Call agentuity() first.');
|
|
59
76
|
}
|
|
60
|
-
return
|
|
77
|
+
return services;
|
|
61
78
|
}
|
|
62
79
|
/**
|
|
63
80
|
* Reset global state (for testing).
|
|
64
81
|
*/
|
|
65
82
|
export function resetServices() {
|
|
66
|
-
|
|
83
|
+
setGlobalServices(null);
|
|
67
84
|
}
|
|
68
85
|
/**
|
|
69
86
|
* Create the Agentuity middleware for Hono.
|
|
@@ -75,9 +92,12 @@ export function resetServices() {
|
|
|
75
92
|
* Services auto-configure from AGENTUITY_SDK_KEY.
|
|
76
93
|
*/
|
|
77
94
|
export function agentuity(options) {
|
|
78
|
-
// Initialize telemetry (auto-configures from env vars)
|
|
95
|
+
// Initialize telemetry (auto-configures from env vars).
|
|
96
|
+
// Stored on globalThis so bun --hot does not re-register and re-patch console.
|
|
97
|
+
let telemetryInstance = getTelemetryInstance();
|
|
79
98
|
if (!telemetryInstance) {
|
|
80
99
|
telemetryInstance = register(options?.telemetry);
|
|
100
|
+
setTelemetryInstance(telemetryInstance);
|
|
81
101
|
}
|
|
82
102
|
// Initialize services
|
|
83
103
|
initServices({
|
|
@@ -90,10 +110,11 @@ export function agentuity(options) {
|
|
|
90
110
|
// consuming app's Variables map. Set by string here so typed apps can
|
|
91
111
|
// choose the subset of Agentuity variables they want to expose.
|
|
92
112
|
const setVar = c.set;
|
|
113
|
+
const activeTelemetry = getTelemetryInstance() ?? telemetryInstance;
|
|
93
114
|
// Inject telemetry into context
|
|
94
|
-
setVar('tracer',
|
|
95
|
-
setVar('logger',
|
|
96
|
-
setVar('meter',
|
|
115
|
+
setVar('tracer', activeTelemetry.tracer);
|
|
116
|
+
setVar('logger', activeTelemetry.logger);
|
|
117
|
+
setVar('meter', activeTelemetry.meter);
|
|
97
118
|
// Inject services into context
|
|
98
119
|
const services = getServices();
|
|
99
120
|
setVar('kv', services.kv);
|
|
@@ -111,13 +132,13 @@ export function agentuity(options) {
|
|
|
111
132
|
* Get the telemetry instance. Available after agentuity() is composed.
|
|
112
133
|
*/
|
|
113
134
|
export function getTelemetry() {
|
|
114
|
-
return
|
|
135
|
+
return getTelemetryInstance();
|
|
115
136
|
}
|
|
116
137
|
/**
|
|
117
138
|
* Reset global state (for testing).
|
|
118
139
|
*/
|
|
119
140
|
export function reset() {
|
|
120
|
-
|
|
141
|
+
setTelemetryInstance(null);
|
|
121
142
|
resetServices();
|
|
122
143
|
}
|
|
123
144
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EACN,QAAQ,GAIR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAA8B,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,YAAY,EAA4B,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAA4B,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,UAAU,EAA0B,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,cAAc,EAA8B,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAoC9E,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentuity/hono",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.7",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Agentuity employees and contributors",
|
|
6
6
|
"type": "module",
|
|
@@ -24,15 +24,15 @@
|
|
|
24
24
|
"test": "bun test"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@agentuity/telemetry": "3.1.
|
|
28
|
-
"@agentuity/keyvalue": "3.1.
|
|
29
|
-
"@agentuity/vector": "3.1.
|
|
30
|
-
"@agentuity/stream": "3.1.
|
|
31
|
-
"@agentuity/queue": "3.1.
|
|
32
|
-
"@agentuity/email": "3.1.
|
|
33
|
-
"@agentuity/task": "3.1.
|
|
34
|
-
"@agentuity/schedule": "3.1.
|
|
35
|
-
"@agentuity/sandbox": "3.1.
|
|
27
|
+
"@agentuity/telemetry": "3.1.7",
|
|
28
|
+
"@agentuity/keyvalue": "3.1.7",
|
|
29
|
+
"@agentuity/vector": "3.1.7",
|
|
30
|
+
"@agentuity/stream": "3.1.7",
|
|
31
|
+
"@agentuity/queue": "3.1.7",
|
|
32
|
+
"@agentuity/email": "3.1.7",
|
|
33
|
+
"@agentuity/task": "3.1.7",
|
|
34
|
+
"@agentuity/schedule": "3.1.7",
|
|
35
|
+
"@agentuity/sandbox": "3.1.7",
|
|
36
36
|
"hono": "^4.7.13"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
package/src/index.ts
CHANGED
|
@@ -71,17 +71,37 @@ export interface AgentuityOptions {
|
|
|
71
71
|
services?: ServicesConfig;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
//
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
// Process-global state (survives bun --hot module re-evaluation)
|
|
75
|
+
const telemetryInstanceKey = Symbol.for('@agentuity/hono:telemetry');
|
|
76
|
+
const servicesInstanceKey = Symbol.for('@agentuity/hono:services');
|
|
77
|
+
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
79
|
+
const g = globalThis as any;
|
|
80
|
+
|
|
81
|
+
function getTelemetryInstance(): TelemetryResponse | null {
|
|
82
|
+
return (g[telemetryInstanceKey] as TelemetryResponse | undefined) ?? null;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function setTelemetryInstance(value: TelemetryResponse | null): void {
|
|
86
|
+
g[telemetryInstanceKey] = value;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function getGlobalServices(): Services | null {
|
|
90
|
+
return (g[servicesInstanceKey] as Services | undefined) ?? null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function setGlobalServices(value: Services | null): void {
|
|
94
|
+
g[servicesInstanceKey] = value;
|
|
95
|
+
}
|
|
77
96
|
|
|
78
97
|
/**
|
|
79
98
|
* Initialize service clients.
|
|
80
99
|
*/
|
|
81
100
|
function initServices(config?: ServicesConfig): Services {
|
|
82
|
-
|
|
101
|
+
const existing = getGlobalServices();
|
|
102
|
+
if (existing) return existing;
|
|
83
103
|
|
|
84
|
-
|
|
104
|
+
const services: Services = {
|
|
85
105
|
kv: new KeyValueClient({ logger: config?.logger, ...config?.clients?.kv }),
|
|
86
106
|
stream: new StreamClient({ logger: config?.logger, ...config?.clients?.stream }),
|
|
87
107
|
vector: new VectorClient({ logger: config?.logger, ...config?.clients?.vector }),
|
|
@@ -91,25 +111,26 @@ function initServices(config?: ServicesConfig): Services {
|
|
|
91
111
|
schedule: new ScheduleClient({ logger: config?.logger, ...config?.clients?.schedule }),
|
|
92
112
|
sandbox: new SandboxClient({ logger: config?.logger, ...config?.clients?.sandbox }),
|
|
93
113
|
};
|
|
94
|
-
|
|
95
|
-
return
|
|
114
|
+
setGlobalServices(services);
|
|
115
|
+
return services;
|
|
96
116
|
}
|
|
97
117
|
|
|
98
118
|
/**
|
|
99
119
|
* Get initialized services. Throws if not initialized.
|
|
100
120
|
*/
|
|
101
121
|
export function getServices(): Services {
|
|
102
|
-
|
|
122
|
+
const services = getGlobalServices();
|
|
123
|
+
if (!services) {
|
|
103
124
|
throw new Error('Services not initialized. Call agentuity() first.');
|
|
104
125
|
}
|
|
105
|
-
return
|
|
126
|
+
return services;
|
|
106
127
|
}
|
|
107
128
|
|
|
108
129
|
/**
|
|
109
130
|
* Reset global state (for testing).
|
|
110
131
|
*/
|
|
111
132
|
export function resetServices(): void {
|
|
112
|
-
|
|
133
|
+
setGlobalServices(null);
|
|
113
134
|
}
|
|
114
135
|
|
|
115
136
|
/**
|
|
@@ -124,9 +145,12 @@ export function resetServices(): void {
|
|
|
124
145
|
export function agentuity<E extends Env = any, P extends string = any>(
|
|
125
146
|
options?: AgentuityOptions
|
|
126
147
|
): MiddlewareHandler<E, P> {
|
|
127
|
-
// Initialize telemetry (auto-configures from env vars)
|
|
148
|
+
// Initialize telemetry (auto-configures from env vars).
|
|
149
|
+
// Stored on globalThis so bun --hot does not re-register and re-patch console.
|
|
150
|
+
let telemetryInstance = getTelemetryInstance();
|
|
128
151
|
if (!telemetryInstance) {
|
|
129
152
|
telemetryInstance = register(options?.telemetry);
|
|
153
|
+
setTelemetryInstance(telemetryInstance);
|
|
130
154
|
}
|
|
131
155
|
|
|
132
156
|
// Initialize services
|
|
@@ -142,10 +166,12 @@ export function agentuity<E extends Env = any, P extends string = any>(
|
|
|
142
166
|
// choose the subset of Agentuity variables they want to expose.
|
|
143
167
|
const setVar = c.set as (key: string, value: unknown) => void;
|
|
144
168
|
|
|
169
|
+
const activeTelemetry = getTelemetryInstance() ?? telemetryInstance;
|
|
170
|
+
|
|
145
171
|
// Inject telemetry into context
|
|
146
|
-
setVar('tracer',
|
|
147
|
-
setVar('logger',
|
|
148
|
-
setVar('meter',
|
|
172
|
+
setVar('tracer', activeTelemetry.tracer);
|
|
173
|
+
setVar('logger', activeTelemetry.logger);
|
|
174
|
+
setVar('meter', activeTelemetry.meter);
|
|
149
175
|
|
|
150
176
|
// Inject services into context
|
|
151
177
|
const services = getServices();
|
|
@@ -166,14 +192,14 @@ export function agentuity<E extends Env = any, P extends string = any>(
|
|
|
166
192
|
* Get the telemetry instance. Available after agentuity() is composed.
|
|
167
193
|
*/
|
|
168
194
|
export function getTelemetry(): TelemetryResponse | null {
|
|
169
|
-
return
|
|
195
|
+
return getTelemetryInstance();
|
|
170
196
|
}
|
|
171
197
|
|
|
172
198
|
/**
|
|
173
199
|
* Reset global state (for testing).
|
|
174
200
|
*/
|
|
175
201
|
export function reset(): void {
|
|
176
|
-
|
|
202
|
+
setTelemetryInstance(null);
|
|
177
203
|
resetServices();
|
|
178
204
|
}
|
|
179
205
|
|