@agentuity/runtime 0.0.93 → 0.0.95
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/_standalone.d.ts.map +1 -1
- package/dist/_standalone.js +27 -21
- package/dist/_standalone.js.map +1 -1
- package/dist/workbench.d.ts +1 -0
- package/dist/workbench.d.ts.map +1 -1
- package/dist/workbench.js +116 -0
- package/dist/workbench.js.map +1 -1
- package/package.json +5 -5
- package/src/_standalone.ts +74 -66
- package/src/workbench.ts +149 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_standalone.d.ts","sourceRoot":"","sources":["../src/_standalone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,OAAO,EAAS,MAAM,oBAAoB,CAAC;AAE5F,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"_standalone.d.ts","sourceRoot":"","sources":["../src/_standalone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,OAAO,EAAS,MAAM,oBAAoB,CAAC;AAE5F,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASjD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACxC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,iBAAiB,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,sBAAsB,CAClC,SAAS,SAAS,aAAa,GAAG,aAAa,EAC/C,OAAO,GAAG,OAAO,EACjB,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAChC,YAAW,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;IAGvD,KAAK,EAAE,SAAS,CAAmB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,oBAAoB,EAAE,MAAM,CAAC;IAC5C,EAAE,EAAG,eAAe,CAAC;IACrB,MAAM,EAAG,aAAa,CAAC;IACvB,MAAM,EAAG,aAAa,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,SAAS,CAAC;IACf,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAInC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAG1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyD;IACjF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;gBAE/B,OAAO,CAAC,EAAE,wBAAwB;IAyD9C,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;IAOxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;CA+O1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACnE,OAAO,CAAC,EAAE,wBAAwB,GAChC,sBAAsB,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,CAE3D"}
|
package/dist/_standalone.js
CHANGED
|
@@ -5,8 +5,8 @@ import { generateId } from './session';
|
|
|
5
5
|
import WaitUntilHandler from './_waituntil';
|
|
6
6
|
import { registerServices } from './_services';
|
|
7
7
|
import { getAgentAsyncLocalStorage } from './_context';
|
|
8
|
-
import { getLogger, getTracer, getAppState
|
|
9
|
-
import { getThreadProvider, getSessionProvider, getSessionEventProvider
|
|
8
|
+
import { getLogger, getTracer, getAppState } from './_server';
|
|
9
|
+
import { getThreadProvider, getSessionProvider, getSessionEventProvider } from './_services';
|
|
10
10
|
import * as runtimeConfig from './_config';
|
|
11
11
|
/**
|
|
12
12
|
* Standalone agent context for executing agents outside of HTTP requests.
|
|
@@ -80,22 +80,26 @@ export class StandaloneAgentContext {
|
|
|
80
80
|
// Session ID will be set properly in invoke() after span is created
|
|
81
81
|
this.sessionId = options?.sessionId ?? 'pending';
|
|
82
82
|
// Thread and session will be restored in invoke()
|
|
83
|
-
this.thread =
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
83
|
+
this.thread =
|
|
84
|
+
options?.thread ??
|
|
85
|
+
{
|
|
86
|
+
id: 'pending',
|
|
87
|
+
state: new Map(),
|
|
88
|
+
addEventListener: () => { },
|
|
89
|
+
removeEventListener: () => { },
|
|
90
|
+
destroy: async () => { },
|
|
91
|
+
empty: () => true,
|
|
92
|
+
};
|
|
93
|
+
this.session =
|
|
94
|
+
options?.session ??
|
|
95
|
+
{
|
|
96
|
+
id: 'pending',
|
|
97
|
+
thread: this.thread,
|
|
98
|
+
state: new Map(),
|
|
99
|
+
addEventListener: () => { },
|
|
100
|
+
removeEventListener: () => { },
|
|
101
|
+
serializeUserData: () => undefined,
|
|
102
|
+
};
|
|
99
103
|
// Create isolated runtime state
|
|
100
104
|
this[AGENT_RUNTIME] = {
|
|
101
105
|
agents: new Map(),
|
|
@@ -167,12 +171,14 @@ export class StandaloneAgentContext {
|
|
|
167
171
|
return await trace.getTracer('standalone-agent').startActiveSpan(options?.spanName ?? 'agent-invocation', {
|
|
168
172
|
kind: SpanKind.INTERNAL, // Not HTTP, but internal invocation
|
|
169
173
|
attributes: {
|
|
170
|
-
|
|
174
|
+
trigger: this.trigger,
|
|
171
175
|
},
|
|
172
176
|
}, async (span) => {
|
|
173
177
|
const sctx = span.spanContext();
|
|
174
178
|
// Generate sessionId from traceId if not provided
|
|
175
|
-
invocationSessionId =
|
|
179
|
+
invocationSessionId =
|
|
180
|
+
this.initialSessionId ??
|
|
181
|
+
(sctx?.traceId ? `sess_${sctx.traceId}` : generateId('sess'));
|
|
176
182
|
callContext.sessionId = invocationSessionId;
|
|
177
183
|
// Add to tracestate (like otelMiddleware does)
|
|
178
184
|
// Note: SpanContext.traceState is readonly, so we update it by setting the span with a new context
|
|
@@ -196,7 +202,7 @@ export class StandaloneAgentContext {
|
|
|
196
202
|
// as the span already has the trace state we need for propagation
|
|
197
203
|
trace.setSpan(context.active(), trace.wrapSpanContext({
|
|
198
204
|
...sctx,
|
|
199
|
-
traceState
|
|
205
|
+
traceState,
|
|
200
206
|
}));
|
|
201
207
|
// Restore thread and session (like otelMiddleware does)
|
|
202
208
|
// For standalone contexts, we create a simple thread/session if not provided
|
package/dist/_standalone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_standalone.js","sourceRoot":"","sources":["../src/_standalone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAgB,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"_standalone.js","sourceRoot":"","sources":["../src/_standalone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAgB,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,gBAAgB,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,KAAK,aAAa,MAAM,WAAW,CAAC;AAwC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,OAAO,sBAAsB;IAMlC,4DAA4D;IAC5D,KAAK,GAAc,EAAe,CAAC;IACnC,MAAM,CAAS;IACf,MAAM,CAAsC;IAC5C,EAAE,CAAmB;IACrB,MAAM,CAAiB;IACvB,MAAM,CAAiB;IACvB,MAAM,CAAU;IAChB,GAAG,CAAY;IACf,CAAC,aAAa,CAAC,CAAoB;IAEnC,uFAAuF;IACvF,oFAAoF;IACpF,SAAS,CAAS;IAClB,KAAK,CAAuB;IAC5B,OAAO,CAAU;IACjB,MAAM,CAAS;IACf,CAAC,SAAS,CAAC,CAAe;IAE1B,4CAA4C;IAC3B,aAAa,CAAU;IACvB,OAAO,CAAyD;IAChE,gBAAgB,CAAU;IAE3C,YAAY,OAAkC;QAC7C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;QAE1B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACd,qGAAqG,CACrG,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAgB,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,EAAa,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAChE,IAAI,CAAC,OAAO,GAAI,OAAO,EAAE,OAA+B,IAAI,QAAQ,CAAC;QACrE,IAAI,CAAC,gBAAgB,GAAG,OAAO,EAAE,SAAS,CAAC;QAE3C,oEAAoE;QACpE,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,SAAS,CAAC;QAEjD,kDAAkD;QAClD,IAAI,CAAC,MAAM;YACV,OAAO,EAAE,MAAM;gBACd;oBACA,EAAE,EAAE,SAAS;oBACb,KAAK,EAAE,IAAI,GAAG,EAAE;oBAChB,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;oBAC1B,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;oBAC7B,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;oBACvB,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;iBACN,CAAC;QAEd,IAAI,CAAC,OAAO;YACX,OAAO,EAAE,OAAO;gBACf;oBACA,EAAE,EAAE,SAAS;oBACb,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,KAAK,EAAE,IAAI,GAAG,EAAE;oBAChB,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;oBAC1B,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;oBAC7B,iBAAiB,EAAE,GAAG,EAAE,CAAC,SAAS;iBACtB,CAAC;QAEf,gCAAgC;QAChC,IAAI,CAAC,aAAa,CAAC,GAAG;YACrB,MAAM,EAAE,IAAI,GAAG,EAAE;YACjB,YAAY,EAAE,IAAI,GAAG,EAAE;YACvB,mBAAmB,EAAE,IAAI,OAAO,EAAE;SAClC,CAAC;QAEF,yCAAyC;QACzC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,kCAAkC;IACjE,CAAC;IAED,SAAS,CAAC,SAAuD;QAChE,8EAA8E;QAC9E,8EAA8E;QAC9E,gFAAgF;QAChF,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,KAAK,CAAC,MAAM,CAAI,EAAoB,EAAE,OAAuB;QAC5D,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC3C,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAC7C,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;QAE5C,6EAA6E;QAC7E,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,IAAI,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC;QAC7D,IAAI,gBAAwB,CAAC;QAC7B,IAAI,iBAA0B,CAAC;QAC/B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;QAEnD,mFAAmF;QACnF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAIrC,CAAC;QACF,WAAW,CAAC,SAAS,GAAG,mBAAmB,CAAC;QAC5C,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC;QACpC,WAAW,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;QAClC,WAAW,CAAC,SAAS,GAAG,CAAC,QAAsD,EAAE,EAAE;YAClF,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,0DAA0D;QAC1D,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;YACxD,4EAA4E;YAC5E,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,eAAe,CAC/D,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EACvC;gBACC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,oCAAoC;gBAC7D,UAAU,EAAE;oBACX,OAAO,EAAE,IAAI,CAAC,OAAO;iBACrB;aACD,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;gBACd,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAEhC,kDAAkD;gBAClD,mBAAmB;oBAClB,IAAI,CAAC,gBAAgB;wBACrB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC/D,WAAW,CAAC,SAAS,GAAG,mBAAmB,CAAC;gBAE5C,+CAA+C;gBAC/C,mGAAmG;gBACnG,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,UAAU,EAAE,CAAC;gBACrD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;gBAChD,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,EAAE,CAAC;gBACrD,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;gBAC5C,IAAI,SAAS,EAAE,CAAC;oBACf,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC/C,CAAC;gBACD,IAAI,KAAK,EAAE,CAAC;oBACX,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,SAAS,EAAE,CAAC;oBACf,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvC,CAAC;gBAED,qDAAqD;gBACrD,yEAAyE;gBACzE,wEAAwE;gBACxE,kEAAkE;gBAClE,KAAK,CAAC,OAAO,CACZ,OAAO,CAAC,MAAM,EAAE,EAChB,KAAK,CAAC,eAAe,CAAC;oBACrB,GAAG,IAAI;oBACP,UAAU;iBACV,CAAC,CACF,CAAC;gBAEF,wDAAwD;gBACxD,6EAA6E;gBAC7E,8EAA8E;gBAC9E,oEAAoE;gBACpE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;gBACvE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/B,gBAAgB,GAAG,IAAI,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAC/D,WAAW,CAAC,MAAM,GAAG,gBAAgB,CAAC;gBAEtC,iBAAiB,GAAG,MAAM,eAAe,CAAC,OAAO,CAChD,gBAAgB,EAChB,mBAAmB,CACnB,CAAC;gBACF,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC;gBAExC,2CAA2C;gBAC3C,MAAM,iBAAiB,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;gBACjD,IAAI,oBAAoB,GAAG,IAAI,CAAC;gBAEhC,IAAI,iBAAiB,EAAE,CAAC;oBACvB,MAAM,oBAAoB;yBACxB,KAAK,CAAC;wBACN,EAAE,EAAE,mBAAmB;wBACvB,KAAK;wBACL,SAAS;wBACT,QAAQ,EAAE,gBAAgB,CAAC,EAAE;wBAC7B,OAAO,EAAE,YAAY,EAAE,mCAAmC;wBAC1D,YAAY;wBACZ,OAAO,EAAE,SAAS;wBAClB,WAAW,EAAE,aAAa,CAAC,cAAc,EAAE;wBAC3C,MAAM,EAAE,YAAY;wBACpB,GAAG,EAAE,EAAE;wBACP,OAAO,EAAE,IAAI,CAAC,OAAO;qBACrB,CAAC;yBACD,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;wBACb,oBAAoB,GAAG,KAAK,CAAC;wBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,EAAE,CAAC,CAAC;oBAChE,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,eAAe,GAAG,KAAK,CAAC;gBAE5B,IAAI,CAAC;oBACJ,0EAA0E;oBAC1E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;oBAElD,uDAAuD;oBACvD,IAAI,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC;wBACnC,eAAe,GAAG,IAAI,CAAC;wBACvB,gBAAgB;6BACd,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC;6BAC9C,IAAI,CAAC,KAAK,IAAI,EAAE;4BAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAChB,oCAAoC,EACpC,mBAAmB,CACnB,CAAC;4BACF,MAAM,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;4BAC9C,MAAM,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;4BAC5C,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;4BAC5C,IAAI,iBAAiB,IAAI,oBAAoB,EAAE,CAAC;gCAC/C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;gCACvD,oBAAoB;qCAClB,QAAQ,CAAC;oCACT,EAAE,EAAE,mBAAmB;oCACvB,QAAQ,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE;oCAC/D,UAAU,EAAE,GAAG,EAAE,UAAU;oCAC3B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;oCAC9B,QAAQ;iCACR,CAAC;qCACD,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;qCACd,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;4BACxC,CAAC;wBACF,CAAC,CAAC;6BACD,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;4BACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAChB,uCAAuC,EACvC,mBAAmB,EACnB,EAAE,CACF,CAAC;4BACF,IAAI,EAAE,YAAY,KAAK,EAAE,CAAC;gCACzB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;4BAC1B,CAAC;4BACD,MAAM,OAAO,GAAI,EAAY,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;4BACpD,IAAI,CAAC,SAAS,CAAC;gCACd,IAAI,EAAE,cAAc,CAAC,KAAK;gCAC1B,OAAO;6BACP,CAAC,CAAC;4BACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BAC3B,IAAI,iBAAiB,IAAI,oBAAoB,EAAE,CAAC;gCAC/C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;gCACvD,oBAAoB;qCAClB,QAAQ,CAAC;oCACT,EAAE,EAAE,mBAAmB;oCACvB,QAAQ,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE;oCAC/D,UAAU,EAAE,GAAG,EAAE,QAAQ;oCACzB,KAAK,EAAE,OAAO;oCACd,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;oCAC9B,QAAQ;iCACR,CAAC;qCACD,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;qCACd,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;4BACxC,CAAC;wBACF,CAAC,CAAC;6BACD,OAAO,CAAC,GAAG,EAAE;4BACb,IAAI,CAAC,GAAG,EAAE,CAAC;wBACZ,CAAC,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACP,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC5C,IAAI,iBAAiB,IAAI,oBAAoB,EAAE,CAAC;4BAC/C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;4BACvD,oBAAoB;iCAClB,QAAQ,CAAC;gCACT,EAAE,EAAE,mBAAmB;gCACvB,QAAQ,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE;gCAC/D,UAAU,EAAE,GAAG;gCACf,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;gCAC9B,QAAQ;6BACR,CAAC;iCACD,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;iCACd,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;wBACxC,CAAC;oBACF,CAAC;oBAED,OAAO,MAAM,CAAC;gBACf,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACb,IAAI,EAAE,YAAY,KAAK,EAAE,CAAC;wBACzB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;oBAC1B,CAAC;oBACD,MAAM,OAAO,GAAI,EAAY,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;oBACpD,IAAI,CAAC,SAAS,CAAC;wBACd,IAAI,EAAE,cAAc,CAAC,KAAK;wBAC1B,OAAO;qBACP,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC3B,IAAI,iBAAiB,IAAI,oBAAoB,EAAE,CAAC;wBAC/C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;wBACvD,oBAAoB;6BAClB,QAAQ,CAAC;4BACT,EAAE,EAAE,mBAAmB;4BACvB,QAAQ,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE;4BAC/D,UAAU,EAAE,GAAG;4BACf,KAAK,EAAE,OAAO;4BACd,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;4BAC9B,QAAQ;yBACR,CAAC;6BACD,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;6BACd,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;oBACxC,CAAC;oBACD,MAAM,EAAE,CAAC;gBACV,CAAC;wBAAS,CAAC;oBACV,IAAI,CAAC,eAAe,EAAE,CAAC;wBACtB,IAAI,CAAC;4BACJ,MAAM,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;4BAC9C,MAAM,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;wBAC7C,CAAC;gCAAS,CAAC;4BACV,IAAI,CAAC,GAAG,EAAE,CAAC;wBACZ,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC,CACD,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,kBAAkB,CACjC,OAAkC;IAElC,OAAO,IAAI,sBAAsB,CAAoC,OAAO,CAAC,CAAC;AAC/E,CAAC"}
|
package/dist/workbench.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare const createWorkbenchExecutionRoute: () => Handler;
|
|
|
5
5
|
* Creates a workbench router with proper agent middleware for execution routes
|
|
6
6
|
*/
|
|
7
7
|
export declare const createWorkbenchRouter: () => import("hono").Hono<import("./app").Env<Record<string, never>>, import("hono").Schema, "/">;
|
|
8
|
+
export declare const createWorkbenchSampleRoute: () => Handler;
|
|
8
9
|
export declare const createWorkbenchMetadataRoute: () => Handler;
|
|
9
10
|
export declare const createWorkbenchWebsocketRoute: () => (_ctx: Context) => (ws: WebSocketConnection) => void;
|
|
10
11
|
//# sourceMappingURL=workbench.d.ts.map
|
package/dist/workbench.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workbench.d.ts","sourceRoot":"","sources":["../src/workbench.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAK7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,eAAO,MAAM,6BAA6B,QAAO,OAsFhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"workbench.d.ts","sourceRoot":"","sources":["../src/workbench.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAK7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,eAAO,MAAM,6BAA6B,QAAO,OAsFhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,mGAoCjC,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAAO,OAkJ7C,CAAC;AAEF,eAAO,MAAM,4BAA4B,QAAO,OA2C/C,CAAC;AAKF,eAAO,MAAM,6BAA6B,SACjC,MAAM,OAAO,MACZ,IAAI,mBAAmB,SA6BhC,CAAC"}
|
package/dist/workbench.js
CHANGED
|
@@ -112,9 +112,125 @@ export const createWorkbenchRouter = () => {
|
|
|
112
112
|
// Add workbench routes
|
|
113
113
|
router.websocket('/_agentuity/workbench/ws', createWorkbenchWebsocketRoute());
|
|
114
114
|
router.get('/_agentuity/workbench/metadata.json', createWorkbenchMetadataRoute());
|
|
115
|
+
router.get('/_agentuity/workbench/sample', createWorkbenchSampleRoute());
|
|
115
116
|
router.post('/_agentuity/workbench/execute', createWorkbenchExecutionRoute());
|
|
116
117
|
return router;
|
|
117
118
|
};
|
|
119
|
+
export const createWorkbenchSampleRoute = () => {
|
|
120
|
+
const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
|
|
121
|
+
? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
|
|
122
|
+
: undefined;
|
|
123
|
+
return async (ctx) => {
|
|
124
|
+
// Authentication check
|
|
125
|
+
if (authHeader) {
|
|
126
|
+
try {
|
|
127
|
+
const authValue = ctx.req.header('Authorization');
|
|
128
|
+
if (!authValue ||
|
|
129
|
+
!timingSafeEqual(Buffer.from(authValue, 'utf-8'), Buffer.from(authHeader, 'utf-8'))) {
|
|
130
|
+
return ctx.text('Unauthorized', { status: 401 });
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return ctx.text('Unauthorized', { status: 401 });
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
const agentId = ctx.req.query('agentId');
|
|
139
|
+
if (!agentId) {
|
|
140
|
+
return ctx.json({ error: 'Missing agentId query parameter' }, { status: 400 });
|
|
141
|
+
}
|
|
142
|
+
// Get agents registry and find the agent
|
|
143
|
+
const allAgents = getAgents();
|
|
144
|
+
let agentObj;
|
|
145
|
+
for (const [, agent] of allAgents) {
|
|
146
|
+
if (agent.metadata.agentId === agentId) {
|
|
147
|
+
agentObj = agent;
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (!agentObj) {
|
|
152
|
+
return ctx.text('Agent not found', { status: 404 });
|
|
153
|
+
}
|
|
154
|
+
// Check if agent has input schema
|
|
155
|
+
if (!agentObj.inputSchema) {
|
|
156
|
+
return ctx.json({ error: 'Agent has no input schema' }, { status: 400 });
|
|
157
|
+
}
|
|
158
|
+
// Convert schema to JSON Schema
|
|
159
|
+
const jsonSchema = toJSONSchema(agentObj.inputSchema);
|
|
160
|
+
// Get Agentuity SDK key and gateway URL
|
|
161
|
+
const sdkKey = process.env.AGENTUITY_SDK_KEY;
|
|
162
|
+
const gatewayUrl = process.env.AGENTUITY_AIGATEWAY_URL ||
|
|
163
|
+
process.env.AGENTUITY_TRANSPORT_URL ||
|
|
164
|
+
(sdkKey ? 'https://agentuity.ai' : '');
|
|
165
|
+
if (!sdkKey || !gatewayUrl) {
|
|
166
|
+
return ctx.json({
|
|
167
|
+
error: 'AGENTUITY_SDK_KEY and gateway URL must be configured',
|
|
168
|
+
message: 'Set AGENTUITY_SDK_KEY and either AGENTUITY_AIGATEWAY_URL, AGENTUITY_TRANSPORT_URL, or use https://agentuity.ai',
|
|
169
|
+
}, { status: 500 });
|
|
170
|
+
}
|
|
171
|
+
// Generate sample using Groq via Agentuity Gateway
|
|
172
|
+
const prompt = `Generate a realistic sample data object that matches this JSON schema. Return only valid JSON, no markdown code blocks or explanations.
|
|
173
|
+
|
|
174
|
+
JSON Schema:
|
|
175
|
+
${JSON.stringify(jsonSchema, null, 2)}
|
|
176
|
+
|
|
177
|
+
Return a JSON object that matches this schema with realistic values.`;
|
|
178
|
+
const gatewayEndpoint = `${gatewayUrl}/gateway/groq/openai/v1/chat/completions`;
|
|
179
|
+
const groqResponse = await fetch(gatewayEndpoint, {
|
|
180
|
+
method: 'POST',
|
|
181
|
+
headers: {
|
|
182
|
+
Authorization: `Bearer ${sdkKey}`,
|
|
183
|
+
'Content-Type': 'application/json',
|
|
184
|
+
},
|
|
185
|
+
body: JSON.stringify({
|
|
186
|
+
model: 'llama-3.3-70b-versatile',
|
|
187
|
+
messages: [
|
|
188
|
+
{
|
|
189
|
+
role: 'user',
|
|
190
|
+
content: prompt,
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
}),
|
|
194
|
+
});
|
|
195
|
+
if (!groqResponse.ok) {
|
|
196
|
+
const errorText = await groqResponse.text();
|
|
197
|
+
return ctx.json({
|
|
198
|
+
error: 'Groq API request failed',
|
|
199
|
+
message: `Status ${groqResponse.status}: ${errorText}`,
|
|
200
|
+
}, { status: 500 });
|
|
201
|
+
}
|
|
202
|
+
const groqData = (await groqResponse.json());
|
|
203
|
+
const text = groqData.choices?.[0]?.message?.content;
|
|
204
|
+
if (!text) {
|
|
205
|
+
return ctx.json({ error: 'Invalid response from Groq API', response: groqData }, { status: 500 });
|
|
206
|
+
}
|
|
207
|
+
// Parse the JSON response
|
|
208
|
+
let sample;
|
|
209
|
+
try {
|
|
210
|
+
// Remove markdown code blocks if present
|
|
211
|
+
const cleanedText = text
|
|
212
|
+
.trim()
|
|
213
|
+
.replace(/^```json\s*|\s*```$/g, '')
|
|
214
|
+
.replace(/^```\s*|\s*```$/g, '');
|
|
215
|
+
sample = JSON.parse(cleanedText);
|
|
216
|
+
}
|
|
217
|
+
catch (parseError) {
|
|
218
|
+
return ctx.json({
|
|
219
|
+
error: 'Failed to parse generated JSON',
|
|
220
|
+
message: parseError instanceof Error ? parseError.message : String(parseError),
|
|
221
|
+
generatedText: text,
|
|
222
|
+
}, { status: 500 });
|
|
223
|
+
}
|
|
224
|
+
return ctx.json(sample);
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
return ctx.json({
|
|
228
|
+
error: 'Internal server error',
|
|
229
|
+
message: error instanceof Error ? error.message : String(error),
|
|
230
|
+
}, { status: 500 });
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
};
|
|
118
234
|
export const createWorkbenchMetadataRoute = () => {
|
|
119
235
|
const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
|
|
120
236
|
? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
|
package/dist/workbench.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workbench.js","sourceRoot":"","sources":["../src/workbench.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workbench.js","sourceRoot":"","sources":["../src/workbench.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentuity/runtime",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.95",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Agentuity employees and contributors",
|
|
6
6
|
"type": "module",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"prepublishOnly": "bun run clean && bun run build"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@agentuity/core": "0.0.
|
|
30
|
-
"@agentuity/schema": "0.0.
|
|
31
|
-
"@agentuity/server": "0.0.
|
|
29
|
+
"@agentuity/core": "0.0.95",
|
|
30
|
+
"@agentuity/schema": "0.0.95",
|
|
31
|
+
"@agentuity/server": "0.0.95",
|
|
32
32
|
"@opentelemetry/api": "^1.9.0",
|
|
33
33
|
"@opentelemetry/api-logs": "^0.207.0",
|
|
34
34
|
"@opentelemetry/auto-instrumentations-node": "^0.66.0",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@types/ws": "^8.5.13"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@agentuity/test-utils": "0.0.
|
|
57
|
+
"@agentuity/test-utils": "0.0.95",
|
|
58
58
|
"@types/bun": "latest",
|
|
59
59
|
"@types/react": "^19.2.2",
|
|
60
60
|
"@types/react-dom": "^19.2.2",
|
package/src/_standalone.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { context, SpanKind, SpanStatusCode, type Context, trace } from '@opentelemetry/api';
|
|
2
2
|
import { TraceState } from '@opentelemetry/core';
|
|
3
|
-
import type {
|
|
4
|
-
KeyValueStorage,
|
|
5
|
-
StreamStorage,
|
|
6
|
-
VectorStorage,
|
|
7
|
-
} from '@agentuity/core';
|
|
3
|
+
import type { KeyValueStorage, StreamStorage, VectorStorage } from '@agentuity/core';
|
|
8
4
|
import type { AgentContext, AgentRegistry, AgentRuntimeState } from './agent';
|
|
9
5
|
import { AGENT_RUNTIME, AGENT_IDS } from './_config';
|
|
10
6
|
import type { Logger } from './logger';
|
|
@@ -13,21 +9,13 @@ import { generateId } from './session';
|
|
|
13
9
|
import WaitUntilHandler from './_waituntil';
|
|
14
10
|
import { registerServices } from './_services';
|
|
15
11
|
import { getAgentAsyncLocalStorage } from './_context';
|
|
16
|
-
import {
|
|
17
|
-
|
|
18
|
-
getTracer,
|
|
19
|
-
getAppState,
|
|
20
|
-
} from './_server';
|
|
21
|
-
import {
|
|
22
|
-
getThreadProvider,
|
|
23
|
-
getSessionProvider,
|
|
24
|
-
getSessionEventProvider,
|
|
25
|
-
} from './_services';
|
|
12
|
+
import { getLogger, getTracer, getAppState } from './_server';
|
|
13
|
+
import { getThreadProvider, getSessionProvider, getSessionEventProvider } from './_services';
|
|
26
14
|
import * as runtimeConfig from './_config';
|
|
27
15
|
|
|
28
16
|
/**
|
|
29
17
|
* Options for creating a standalone agent context.
|
|
30
|
-
*
|
|
18
|
+
*
|
|
31
19
|
* Use this when executing agents outside of HTTP requests (Discord bots, cron jobs, etc.)
|
|
32
20
|
*/
|
|
33
21
|
export interface StandaloneContextOptions {
|
|
@@ -65,30 +53,30 @@ export interface InvokeOptions {
|
|
|
65
53
|
|
|
66
54
|
/**
|
|
67
55
|
* Standalone agent context for executing agents outside of HTTP requests.
|
|
68
|
-
*
|
|
56
|
+
*
|
|
69
57
|
* This context provides the same infrastructure as HTTP request contexts:
|
|
70
58
|
* - OpenTelemetry tracing with proper span hierarchy
|
|
71
59
|
* - Session and thread management (save/restore)
|
|
72
60
|
* - Background task handling (waitUntil)
|
|
73
61
|
* - Session event tracking (start/complete)
|
|
74
62
|
* - Access to all services (kv, stream, vector)
|
|
75
|
-
*
|
|
63
|
+
*
|
|
76
64
|
* @example
|
|
77
65
|
* ```typescript
|
|
78
66
|
* import { createAgentContext } from '@agentuity/runtime';
|
|
79
67
|
* import myAgent from './agents/my-agent';
|
|
80
|
-
*
|
|
68
|
+
*
|
|
81
69
|
* // Simple usage:
|
|
82
70
|
* const ctx = createAgentContext();
|
|
83
71
|
* const result = await ctx.invoke(() => myAgent.run(input));
|
|
84
|
-
*
|
|
72
|
+
*
|
|
85
73
|
* // With custom session tracking:
|
|
86
|
-
* const ctx = createAgentContext({
|
|
74
|
+
* const ctx = createAgentContext({
|
|
87
75
|
* sessionId: discordMessage.id,
|
|
88
76
|
* trigger: 'discord'
|
|
89
77
|
* });
|
|
90
78
|
* const result = await ctx.invoke(() => myAgent.run(input));
|
|
91
|
-
*
|
|
79
|
+
*
|
|
92
80
|
* // Reuse context for multiple agents:
|
|
93
81
|
* const ctx = createAgentContext();
|
|
94
82
|
* const result1 = await ctx.invoke(() => agent1.run(input1));
|
|
@@ -111,7 +99,7 @@ export class StandaloneAgentContext<
|
|
|
111
99
|
config: TConfig;
|
|
112
100
|
app: TAppState;
|
|
113
101
|
[AGENT_RUNTIME]: AgentRuntimeState;
|
|
114
|
-
|
|
102
|
+
|
|
115
103
|
// Note: The following are mutable and will be set per-invocation via AsyncLocalStorage
|
|
116
104
|
// They exist on the interface for compatibility but are overwritten during invoke()
|
|
117
105
|
sessionId: string;
|
|
@@ -119,7 +107,7 @@ export class StandaloneAgentContext<
|
|
|
119
107
|
session: Session;
|
|
120
108
|
thread: Thread;
|
|
121
109
|
[AGENT_IDS]?: Set<string>;
|
|
122
|
-
|
|
110
|
+
|
|
123
111
|
// Immutable options stored from constructor
|
|
124
112
|
private readonly parentContext: Context;
|
|
125
113
|
private readonly trigger: import('@agentuity/core').SessionStartEvent['trigger'];
|
|
@@ -147,25 +135,29 @@ export class StandaloneAgentContext<
|
|
|
147
135
|
|
|
148
136
|
// Session ID will be set properly in invoke() after span is created
|
|
149
137
|
this.sessionId = options?.sessionId ?? 'pending';
|
|
150
|
-
|
|
138
|
+
|
|
151
139
|
// Thread and session will be restored in invoke()
|
|
152
|
-
this.thread =
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
140
|
+
this.thread =
|
|
141
|
+
options?.thread ??
|
|
142
|
+
({
|
|
143
|
+
id: 'pending',
|
|
144
|
+
state: new Map(),
|
|
145
|
+
addEventListener: () => {},
|
|
146
|
+
removeEventListener: () => {},
|
|
147
|
+
destroy: async () => {},
|
|
148
|
+
empty: () => true,
|
|
149
|
+
} as Thread);
|
|
150
|
+
|
|
151
|
+
this.session =
|
|
152
|
+
options?.session ??
|
|
153
|
+
({
|
|
154
|
+
id: 'pending',
|
|
155
|
+
thread: this.thread,
|
|
156
|
+
state: new Map(),
|
|
157
|
+
addEventListener: () => {},
|
|
158
|
+
removeEventListener: () => {},
|
|
159
|
+
serializeUserData: () => undefined,
|
|
160
|
+
} as Session);
|
|
169
161
|
|
|
170
162
|
// Create isolated runtime state
|
|
171
163
|
this[AGENT_RUNTIME] = {
|
|
@@ -187,7 +179,7 @@ export class StandaloneAgentContext<
|
|
|
187
179
|
|
|
188
180
|
/**
|
|
189
181
|
* Execute a function within this agent context.
|
|
190
|
-
*
|
|
182
|
+
*
|
|
191
183
|
* This method:
|
|
192
184
|
* 1. Creates an OpenTelemetry span for the invocation
|
|
193
185
|
* 2. Restores/creates session and thread
|
|
@@ -196,16 +188,16 @@ export class StandaloneAgentContext<
|
|
|
196
188
|
* 5. Waits for background tasks (waitUntil)
|
|
197
189
|
* 6. Saves session and thread
|
|
198
190
|
* 7. Sends session complete event
|
|
199
|
-
*
|
|
191
|
+
*
|
|
200
192
|
* @param fn - Function to execute (typically () => agent.run(input))
|
|
201
193
|
* @param options - Optional configuration for the invocation
|
|
202
194
|
* @returns Promise that resolves to the function's return value
|
|
203
|
-
*
|
|
195
|
+
*
|
|
204
196
|
* @example
|
|
205
197
|
* ```typescript
|
|
206
198
|
* const result = await ctx.invoke(() => myAgent.run({ userId: '123' }));
|
|
207
199
|
* ```
|
|
208
|
-
*
|
|
200
|
+
*
|
|
209
201
|
* @example
|
|
210
202
|
* ```typescript
|
|
211
203
|
* // Multiple agents in sequence:
|
|
@@ -220,7 +212,7 @@ export class StandaloneAgentContext<
|
|
|
220
212
|
const sessionProvider = getSessionProvider();
|
|
221
213
|
const sessionEventProvider = getSessionEventProvider();
|
|
222
214
|
const storage = getAgentAsyncLocalStorage();
|
|
223
|
-
|
|
215
|
+
|
|
224
216
|
// Create per-invocation state (prevents race conditions on concurrent calls)
|
|
225
217
|
const waitUntilHandler = new WaitUntilHandler(this.tracer);
|
|
226
218
|
const agentIds = new Set<string>();
|
|
@@ -228,9 +220,13 @@ export class StandaloneAgentContext<
|
|
|
228
220
|
let invocationThread: Thread;
|
|
229
221
|
let invocationSession: Session;
|
|
230
222
|
const invocationState = new Map<string, unknown>();
|
|
231
|
-
|
|
223
|
+
|
|
232
224
|
// Create a per-call context that inherits from this but has isolated mutable state
|
|
233
|
-
const callContext = Object.create(this) as StandaloneAgentContext<
|
|
225
|
+
const callContext = Object.create(this) as StandaloneAgentContext<
|
|
226
|
+
TAgentMap,
|
|
227
|
+
TConfig,
|
|
228
|
+
TAppState
|
|
229
|
+
>;
|
|
234
230
|
callContext.sessionId = invocationSessionId;
|
|
235
231
|
callContext.state = invocationState;
|
|
236
232
|
callContext[AGENT_IDS] = agentIds;
|
|
@@ -246,14 +242,16 @@ export class StandaloneAgentContext<
|
|
|
246
242
|
{
|
|
247
243
|
kind: SpanKind.INTERNAL, // Not HTTP, but internal invocation
|
|
248
244
|
attributes: {
|
|
249
|
-
|
|
245
|
+
trigger: this.trigger,
|
|
250
246
|
},
|
|
251
247
|
},
|
|
252
248
|
async (span) => {
|
|
253
249
|
const sctx = span.spanContext();
|
|
254
|
-
|
|
250
|
+
|
|
255
251
|
// Generate sessionId from traceId if not provided
|
|
256
|
-
invocationSessionId =
|
|
252
|
+
invocationSessionId =
|
|
253
|
+
this.initialSessionId ??
|
|
254
|
+
(sctx?.traceId ? `sess_${sctx.traceId}` : generateId('sess'));
|
|
257
255
|
callContext.sessionId = invocationSessionId;
|
|
258
256
|
|
|
259
257
|
// Add to tracestate (like otelMiddleware does)
|
|
@@ -272,7 +270,7 @@ export class StandaloneAgentContext<
|
|
|
272
270
|
if (isDevMode) {
|
|
273
271
|
traceState = traceState.set('d', '1');
|
|
274
272
|
}
|
|
275
|
-
|
|
273
|
+
|
|
276
274
|
// Update the active context with the new trace state
|
|
277
275
|
// We do this by setting the span in the context with updated trace state
|
|
278
276
|
// Note: This creates a new context but we don't need to use it directly
|
|
@@ -281,7 +279,7 @@ export class StandaloneAgentContext<
|
|
|
281
279
|
context.active(),
|
|
282
280
|
trace.wrapSpanContext({
|
|
283
281
|
...sctx,
|
|
284
|
-
traceState
|
|
282
|
+
traceState,
|
|
285
283
|
})
|
|
286
284
|
);
|
|
287
285
|
|
|
@@ -293,8 +291,11 @@ export class StandaloneAgentContext<
|
|
|
293
291
|
const threadId = genId('thrd');
|
|
294
292
|
invocationThread = new DefaultThread(threadProvider, threadId);
|
|
295
293
|
callContext.thread = invocationThread;
|
|
296
|
-
|
|
297
|
-
invocationSession = await sessionProvider.restore(
|
|
294
|
+
|
|
295
|
+
invocationSession = await sessionProvider.restore(
|
|
296
|
+
invocationThread,
|
|
297
|
+
invocationSessionId
|
|
298
|
+
);
|
|
298
299
|
callContext.session = invocationSession;
|
|
299
300
|
|
|
300
301
|
// Send session start event (if configured)
|
|
@@ -334,7 +335,10 @@ export class StandaloneAgentContext<
|
|
|
334
335
|
waitUntilHandler
|
|
335
336
|
.waitUntilAll(this.logger, invocationSessionId)
|
|
336
337
|
.then(async () => {
|
|
337
|
-
this.logger.debug(
|
|
338
|
+
this.logger.debug(
|
|
339
|
+
'wait until finished for session %s',
|
|
340
|
+
invocationSessionId
|
|
341
|
+
);
|
|
338
342
|
await sessionProvider.save(invocationSession);
|
|
339
343
|
await threadProvider.save(invocationThread);
|
|
340
344
|
span.setStatus({ code: SpanStatusCode.OK });
|
|
@@ -353,7 +357,11 @@ export class StandaloneAgentContext<
|
|
|
353
357
|
}
|
|
354
358
|
})
|
|
355
359
|
.catch((ex) => {
|
|
356
|
-
this.logger.error(
|
|
360
|
+
this.logger.error(
|
|
361
|
+
'wait until errored for session %s. %s',
|
|
362
|
+
invocationSessionId,
|
|
363
|
+
ex
|
|
364
|
+
);
|
|
357
365
|
if (ex instanceof Error) {
|
|
358
366
|
span.recordException(ex);
|
|
359
367
|
}
|
|
@@ -442,34 +450,34 @@ export class StandaloneAgentContext<
|
|
|
442
450
|
|
|
443
451
|
/**
|
|
444
452
|
* Create a standalone agent context for executing agents outside of HTTP requests.
|
|
445
|
-
*
|
|
453
|
+
*
|
|
446
454
|
* This is useful for Discord bots, cron jobs, WebSocket callbacks, or any scenario
|
|
447
455
|
* where you need to run agents but don't have an HTTP request context.
|
|
448
|
-
*
|
|
456
|
+
*
|
|
449
457
|
* @param options - Optional configuration for the context
|
|
450
458
|
* @returns A StandaloneAgentContext instance
|
|
451
|
-
*
|
|
459
|
+
*
|
|
452
460
|
* @example
|
|
453
461
|
* ```typescript
|
|
454
462
|
* import { createAgentContext } from '@agentuity/runtime';
|
|
455
463
|
* import myAgent from './agents/my-agent';
|
|
456
|
-
*
|
|
464
|
+
*
|
|
457
465
|
* // Simple usage:
|
|
458
466
|
* const ctx = createAgentContext();
|
|
459
467
|
* const result = await ctx.invoke(() => myAgent.run(input));
|
|
460
|
-
*
|
|
468
|
+
*
|
|
461
469
|
* // Discord bot example:
|
|
462
470
|
* client.on('messageCreate', async (message) => {
|
|
463
|
-
* const ctx = createAgentContext({
|
|
471
|
+
* const ctx = createAgentContext({
|
|
464
472
|
* sessionId: message.id,
|
|
465
473
|
* trigger: 'discord'
|
|
466
474
|
* });
|
|
467
|
-
* const response = await ctx.invoke(() =>
|
|
475
|
+
* const response = await ctx.invoke(() =>
|
|
468
476
|
* chatAgent.run({ message: message.content })
|
|
469
477
|
* );
|
|
470
478
|
* await message.reply(response.text);
|
|
471
479
|
* });
|
|
472
|
-
*
|
|
480
|
+
*
|
|
473
481
|
* // Cron job example:
|
|
474
482
|
* cron.schedule('0 * * * *', async () => {
|
|
475
483
|
* const ctx = createAgentContext({ trigger: 'cron' });
|
package/src/workbench.ts
CHANGED
|
@@ -130,10 +130,159 @@ export const createWorkbenchRouter = () => {
|
|
|
130
130
|
// Add workbench routes
|
|
131
131
|
router.websocket('/_agentuity/workbench/ws', createWorkbenchWebsocketRoute());
|
|
132
132
|
router.get('/_agentuity/workbench/metadata.json', createWorkbenchMetadataRoute());
|
|
133
|
+
router.get('/_agentuity/workbench/sample', createWorkbenchSampleRoute());
|
|
133
134
|
router.post('/_agentuity/workbench/execute', createWorkbenchExecutionRoute());
|
|
134
135
|
return router;
|
|
135
136
|
};
|
|
136
137
|
|
|
138
|
+
export const createWorkbenchSampleRoute = (): Handler => {
|
|
139
|
+
const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
|
|
140
|
+
? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
|
|
141
|
+
: undefined;
|
|
142
|
+
return async (ctx: Context) => {
|
|
143
|
+
// Authentication check
|
|
144
|
+
if (authHeader) {
|
|
145
|
+
try {
|
|
146
|
+
const authValue = ctx.req.header('Authorization');
|
|
147
|
+
if (
|
|
148
|
+
!authValue ||
|
|
149
|
+
!timingSafeEqual(Buffer.from(authValue, 'utf-8'), Buffer.from(authHeader, 'utf-8'))
|
|
150
|
+
) {
|
|
151
|
+
return ctx.text('Unauthorized', { status: 401 });
|
|
152
|
+
}
|
|
153
|
+
} catch {
|
|
154
|
+
return ctx.text('Unauthorized', { status: 401 });
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
try {
|
|
159
|
+
const agentId = ctx.req.query('agentId');
|
|
160
|
+
if (!agentId) {
|
|
161
|
+
return ctx.json({ error: 'Missing agentId query parameter' }, { status: 400 });
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// Get agents registry and find the agent
|
|
165
|
+
const allAgents = getAgents();
|
|
166
|
+
|
|
167
|
+
let agentObj;
|
|
168
|
+
for (const [, agent] of allAgents) {
|
|
169
|
+
if (agent.metadata.agentId === agentId) {
|
|
170
|
+
agentObj = agent;
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (!agentObj) {
|
|
176
|
+
return ctx.text('Agent not found', { status: 404 });
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// Check if agent has input schema
|
|
180
|
+
if (!agentObj.inputSchema) {
|
|
181
|
+
return ctx.json({ error: 'Agent has no input schema' }, { status: 400 });
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// Convert schema to JSON Schema
|
|
185
|
+
const jsonSchema = toJSONSchema(agentObj.inputSchema);
|
|
186
|
+
|
|
187
|
+
// Get Agentuity SDK key and gateway URL
|
|
188
|
+
const sdkKey = process.env.AGENTUITY_SDK_KEY;
|
|
189
|
+
const gatewayUrl =
|
|
190
|
+
process.env.AGENTUITY_AIGATEWAY_URL ||
|
|
191
|
+
process.env.AGENTUITY_TRANSPORT_URL ||
|
|
192
|
+
(sdkKey ? 'https://agentuity.ai' : '');
|
|
193
|
+
|
|
194
|
+
if (!sdkKey || !gatewayUrl) {
|
|
195
|
+
return ctx.json(
|
|
196
|
+
{
|
|
197
|
+
error: 'AGENTUITY_SDK_KEY and gateway URL must be configured',
|
|
198
|
+
message:
|
|
199
|
+
'Set AGENTUITY_SDK_KEY and either AGENTUITY_AIGATEWAY_URL, AGENTUITY_TRANSPORT_URL, or use https://agentuity.ai',
|
|
200
|
+
},
|
|
201
|
+
{ status: 500 }
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// Generate sample using Groq via Agentuity Gateway
|
|
206
|
+
const prompt = `Generate a realistic sample data object that matches this JSON schema. Return only valid JSON, no markdown code blocks or explanations.
|
|
207
|
+
|
|
208
|
+
JSON Schema:
|
|
209
|
+
${JSON.stringify(jsonSchema, null, 2)}
|
|
210
|
+
|
|
211
|
+
Return a JSON object that matches this schema with realistic values.`;
|
|
212
|
+
|
|
213
|
+
const gatewayEndpoint = `${gatewayUrl}/gateway/groq/openai/v1/chat/completions`;
|
|
214
|
+
const groqResponse = await fetch(gatewayEndpoint, {
|
|
215
|
+
method: 'POST',
|
|
216
|
+
headers: {
|
|
217
|
+
Authorization: `Bearer ${sdkKey}`,
|
|
218
|
+
'Content-Type': 'application/json',
|
|
219
|
+
},
|
|
220
|
+
body: JSON.stringify({
|
|
221
|
+
model: 'llama-3.3-70b-versatile',
|
|
222
|
+
messages: [
|
|
223
|
+
{
|
|
224
|
+
role: 'user',
|
|
225
|
+
content: prompt,
|
|
226
|
+
},
|
|
227
|
+
],
|
|
228
|
+
}),
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
if (!groqResponse.ok) {
|
|
232
|
+
const errorText = await groqResponse.text();
|
|
233
|
+
return ctx.json(
|
|
234
|
+
{
|
|
235
|
+
error: 'Groq API request failed',
|
|
236
|
+
message: `Status ${groqResponse.status}: ${errorText}`,
|
|
237
|
+
},
|
|
238
|
+
{ status: 500 }
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
const groqData = (await groqResponse.json()) as {
|
|
243
|
+
choices?: Array<{ message?: { content?: string } }>;
|
|
244
|
+
};
|
|
245
|
+
const text = groqData.choices?.[0]?.message?.content;
|
|
246
|
+
if (!text) {
|
|
247
|
+
return ctx.json(
|
|
248
|
+
{ error: 'Invalid response from Groq API', response: groqData },
|
|
249
|
+
{ status: 500 }
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// Parse the JSON response
|
|
254
|
+
let sample: unknown;
|
|
255
|
+
try {
|
|
256
|
+
// Remove markdown code blocks if present
|
|
257
|
+
const cleanedText = text
|
|
258
|
+
.trim()
|
|
259
|
+
.replace(/^```json\s*|\s*```$/g, '')
|
|
260
|
+
.replace(/^```\s*|\s*```$/g, '');
|
|
261
|
+
sample = JSON.parse(cleanedText);
|
|
262
|
+
} catch (parseError) {
|
|
263
|
+
return ctx.json(
|
|
264
|
+
{
|
|
265
|
+
error: 'Failed to parse generated JSON',
|
|
266
|
+
message: parseError instanceof Error ? parseError.message : String(parseError),
|
|
267
|
+
generatedText: text,
|
|
268
|
+
},
|
|
269
|
+
{ status: 500 }
|
|
270
|
+
);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
return ctx.json(sample);
|
|
274
|
+
} catch (error) {
|
|
275
|
+
return ctx.json(
|
|
276
|
+
{
|
|
277
|
+
error: 'Internal server error',
|
|
278
|
+
message: error instanceof Error ? error.message : String(error),
|
|
279
|
+
},
|
|
280
|
+
{ status: 500 }
|
|
281
|
+
);
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
|
|
137
286
|
export const createWorkbenchMetadataRoute = (): Handler => {
|
|
138
287
|
const authHeader = process.env.AGENTUITY_WORKBENCH_APIKEY
|
|
139
288
|
? `Bearer ${process.env.AGENTUITY_WORKBENCH_APIKEY}`
|