alibabacloud-agentcore-sdk 0.1.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.
- package/LICENSE +202 -0
- package/README.md +189 -0
- package/dist/access-key-CkoHq3S8.d.cts +30 -0
- package/dist/access-key-CkoHq3S8.d.ts +30 -0
- package/dist/agent-sa-token-DD1Sb8P1.d.cts +14 -0
- package/dist/agent-sa-token-DD1Sb8P1.d.ts +14 -0
- package/dist/auth/index.cjs +36 -0
- package/dist/auth/index.cjs.map +1 -0
- package/dist/auth/index.d.cts +34 -0
- package/dist/auth/index.d.ts +34 -0
- package/dist/auth/index.js +36 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/bound-credentials-C1fM0thh.d.cts +39 -0
- package/dist/bound-credentials-DqT64Q2s.d.ts +39 -0
- package/dist/chunk-2E5EWEDG.cjs +142 -0
- package/dist/chunk-2E5EWEDG.cjs.map +1 -0
- package/dist/chunk-55XZZRKO.js +220 -0
- package/dist/chunk-55XZZRKO.js.map +1 -0
- package/dist/chunk-5JXA7JPS.js +29 -0
- package/dist/chunk-5JXA7JPS.js.map +1 -0
- package/dist/chunk-5RKN46UU.cjs +139 -0
- package/dist/chunk-5RKN46UU.cjs.map +1 -0
- package/dist/chunk-5ZOLHQXO.js +296 -0
- package/dist/chunk-5ZOLHQXO.js.map +1 -0
- package/dist/chunk-7Y263YIW.js +298 -0
- package/dist/chunk-7Y263YIW.js.map +1 -0
- package/dist/chunk-A3PF2SPD.cjs +141 -0
- package/dist/chunk-A3PF2SPD.cjs.map +1 -0
- package/dist/chunk-A3WMLVJC.cjs +141 -0
- package/dist/chunk-A3WMLVJC.cjs.map +1 -0
- package/dist/chunk-BVZ7H2F5.cjs +582 -0
- package/dist/chunk-BVZ7H2F5.cjs.map +1 -0
- package/dist/chunk-EGUKJE3Z.cjs +24 -0
- package/dist/chunk-EGUKJE3Z.cjs.map +1 -0
- package/dist/chunk-EKXZKKJJ.js +24 -0
- package/dist/chunk-EKXZKKJJ.js.map +1 -0
- package/dist/chunk-GYLT23D3.js +110 -0
- package/dist/chunk-GYLT23D3.js.map +1 -0
- package/dist/chunk-IF7LMBXC.js +306 -0
- package/dist/chunk-IF7LMBXC.js.map +1 -0
- package/dist/chunk-IUCLCPVV.js +113 -0
- package/dist/chunk-IUCLCPVV.js.map +1 -0
- package/dist/chunk-JSP7ZROS.cjs +95 -0
- package/dist/chunk-JSP7ZROS.cjs.map +1 -0
- package/dist/chunk-JW62DVIC.js +238 -0
- package/dist/chunk-JW62DVIC.js.map +1 -0
- package/dist/chunk-K3TE7625.js +139 -0
- package/dist/chunk-K3TE7625.js.map +1 -0
- package/dist/chunk-LE5P3SJW.cjs +16 -0
- package/dist/chunk-LE5P3SJW.cjs.map +1 -0
- package/dist/chunk-LXHW6OT4.cjs +77 -0
- package/dist/chunk-LXHW6OT4.cjs.map +1 -0
- package/dist/chunk-MICRSJ6R.js +48 -0
- package/dist/chunk-MICRSJ6R.js.map +1 -0
- package/dist/chunk-MWAHO47B.cjs +220 -0
- package/dist/chunk-MWAHO47B.cjs.map +1 -0
- package/dist/chunk-MZ5UWGXS.js +95 -0
- package/dist/chunk-MZ5UWGXS.js.map +1 -0
- package/dist/chunk-NZL3VPJ2.js +16 -0
- package/dist/chunk-NZL3VPJ2.js.map +1 -0
- package/dist/chunk-PC4FM2RP.cjs +180 -0
- package/dist/chunk-PC4FM2RP.cjs.map +1 -0
- package/dist/chunk-PKYET77D.cjs +296 -0
- package/dist/chunk-PKYET77D.cjs.map +1 -0
- package/dist/chunk-PTJPB27L.js +31 -0
- package/dist/chunk-PTJPB27L.js.map +1 -0
- package/dist/chunk-QIZO3A4Y.cjs +306 -0
- package/dist/chunk-QIZO3A4Y.cjs.map +1 -0
- package/dist/chunk-RBAY4MO2.js +202 -0
- package/dist/chunk-RBAY4MO2.js.map +1 -0
- package/dist/chunk-RHY7Y43E.js +582 -0
- package/dist/chunk-RHY7Y43E.js.map +1 -0
- package/dist/chunk-RQRI6RCG.cjs +238 -0
- package/dist/chunk-RQRI6RCG.cjs.map +1 -0
- package/dist/chunk-RYXL25AI.js +141 -0
- package/dist/chunk-RYXL25AI.js.map +1 -0
- package/dist/chunk-RZNQGEGJ.cjs +113 -0
- package/dist/chunk-RZNQGEGJ.cjs.map +1 -0
- package/dist/chunk-S7PWSJNP.cjs +48 -0
- package/dist/chunk-S7PWSJNP.cjs.map +1 -0
- package/dist/chunk-TWEO5XVM.cjs +298 -0
- package/dist/chunk-TWEO5XVM.cjs.map +1 -0
- package/dist/chunk-UBP5CHU7.js +142 -0
- package/dist/chunk-UBP5CHU7.js.map +1 -0
- package/dist/chunk-ULJTQSLE.cjs +35 -0
- package/dist/chunk-ULJTQSLE.cjs.map +1 -0
- package/dist/chunk-UWPKFJYM.js +77 -0
- package/dist/chunk-UWPKFJYM.js.map +1 -0
- package/dist/chunk-WKZUYPDS.js +180 -0
- package/dist/chunk-WKZUYPDS.js.map +1 -0
- package/dist/chunk-YZP55W7S.cjs +29 -0
- package/dist/chunk-YZP55W7S.cjs.map +1 -0
- package/dist/chunk-ZELRQU4J.cjs +31 -0
- package/dist/chunk-ZELRQU4J.cjs.map +1 -0
- package/dist/chunk-ZLKYXRNM.js +141 -0
- package/dist/chunk-ZLKYXRNM.js.map +1 -0
- package/dist/chunk-ZLQ2IBTC.cjs +110 -0
- package/dist/chunk-ZLQ2IBTC.cjs.map +1 -0
- package/dist/chunk-ZTWLCHCO.cjs +202 -0
- package/dist/chunk-ZTWLCHCO.cjs.map +1 -0
- package/dist/chunk-ZWQBAJ5O.js +35 -0
- package/dist/chunk-ZWQBAJ5O.js.map +1 -0
- package/dist/client-DDU4-ygJ.d.cts +72 -0
- package/dist/client-pDzS7EZR.d.ts +72 -0
- package/dist/collaboration/index.cjs +44 -0
- package/dist/collaboration/index.cjs.map +1 -0
- package/dist/collaboration/index.d.cts +73 -0
- package/dist/collaboration/index.d.ts +73 -0
- package/dist/collaboration/index.js +44 -0
- package/dist/collaboration/index.js.map +1 -0
- package/dist/common-BSXkQfxI.d.cts +25 -0
- package/dist/common-BSXkQfxI.d.ts +25 -0
- package/dist/common-DRdI-75k.d.ts +8 -0
- package/dist/common-_vxreiEW.d.cts +8 -0
- package/dist/config-CMkmMtx1.d.cts +20 -0
- package/dist/config-CMkmMtx1.d.ts +20 -0
- package/dist/context-M9rOTifU.d.cts +12 -0
- package/dist/context-M9rOTifU.d.ts +12 -0
- package/dist/controller-DWs3Sy04.d.cts +9 -0
- package/dist/controller-DmI4L4sP.d.ts +9 -0
- package/dist/controlplane/index.cjs +13 -0
- package/dist/controlplane/index.cjs.map +1 -0
- package/dist/controlplane/index.d.cts +66 -0
- package/dist/controlplane/index.d.ts +66 -0
- package/dist/controlplane/index.js +13 -0
- package/dist/controlplane/index.js.map +1 -0
- package/dist/errors-BjGO6N10.d.ts +93 -0
- package/dist/errors-D9OtcR-o.d.cts +93 -0
- package/dist/event-converters-BIn8odqo.d.ts +38 -0
- package/dist/event-converters-Cn_NeGyQ.d.cts +38 -0
- package/dist/google-adk-model-N47R7GB2.js +208 -0
- package/dist/google-adk-model-N47R7GB2.js.map +1 -0
- package/dist/google-adk-model-PDBKY5YZ.cjs +208 -0
- package/dist/google-adk-model-PDBKY5YZ.cjs.map +1 -0
- package/dist/index.cjs +322 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +78 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.js +322 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/ai-sdk.cjs +15 -0
- package/dist/integrations/ai-sdk.cjs.map +1 -0
- package/dist/integrations/ai-sdk.d.cts +21 -0
- package/dist/integrations/ai-sdk.d.ts +21 -0
- package/dist/integrations/ai-sdk.js +15 -0
- package/dist/integrations/ai-sdk.js.map +1 -0
- package/dist/integrations/google-adk.cjs +90 -0
- package/dist/integrations/google-adk.cjs.map +1 -0
- package/dist/integrations/google-adk.d.cts +46 -0
- package/dist/integrations/google-adk.d.ts +46 -0
- package/dist/integrations/google-adk.js +90 -0
- package/dist/integrations/google-adk.js.map +1 -0
- package/dist/integrations/langchain.cjs +95 -0
- package/dist/integrations/langchain.cjs.map +1 -0
- package/dist/integrations/langchain.d.cts +52 -0
- package/dist/integrations/langchain.d.ts +52 -0
- package/dist/integrations/langchain.js +95 -0
- package/dist/integrations/langchain.js.map +1 -0
- package/dist/integrations/langgraph.cjs +30 -0
- package/dist/integrations/langgraph.cjs.map +1 -0
- package/dist/integrations/langgraph.d.cts +53 -0
- package/dist/integrations/langgraph.d.ts +53 -0
- package/dist/integrations/langgraph.js +30 -0
- package/dist/integrations/langgraph.js.map +1 -0
- package/dist/integrations/mastra.cjs +108 -0
- package/dist/integrations/mastra.cjs.map +1 -0
- package/dist/integrations/mastra.d.cts +47 -0
- package/dist/integrations/mastra.d.ts +47 -0
- package/dist/integrations/mastra.js +108 -0
- package/dist/integrations/mastra.js.map +1 -0
- package/dist/langchain-adapter-DFJdEX04.d.cts +47 -0
- package/dist/langchain-adapter-DJsyjm5V.d.ts +47 -0
- package/dist/langchain-provider-NF5GIDQV.cjs +227 -0
- package/dist/langchain-provider-NF5GIDQV.cjs.map +1 -0
- package/dist/langchain-provider-PHL4UWNF.js +227 -0
- package/dist/langchain-provider-PHL4UWNF.js.map +1 -0
- package/dist/loader-DrIQ37nm.d.ts +38 -0
- package/dist/loader-eWuJ2GSL.d.cts +38 -0
- package/dist/logging-C8GLLg1f.d.cts +9 -0
- package/dist/logging-C8GLLg1f.d.ts +9 -0
- package/dist/managed-CwLx9h4C.d.cts +32 -0
- package/dist/managed-D9eQK1ut.d.ts +32 -0
- package/dist/mcp/index.cjs +12 -0
- package/dist/mcp/index.cjs.map +1 -0
- package/dist/mcp/index.d.cts +62 -0
- package/dist/mcp/index.d.ts +62 -0
- package/dist/mcp/index.js +12 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/memory/index.cjs +12 -0
- package/dist/memory/index.cjs.map +1 -0
- package/dist/memory/index.d.cts +113 -0
- package/dist/memory/index.d.ts +113 -0
- package/dist/memory/index.js +12 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/model/index.cjs +16 -0
- package/dist/model/index.cjs.map +1 -0
- package/dist/model/index.d.cts +129 -0
- package/dist/model/index.d.ts +129 -0
- package/dist/model/index.js +16 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model-CkYHzHPk.d.cts +50 -0
- package/dist/model-CkYHzHPk.d.ts +50 -0
- package/dist/runtime/index.cjs +49 -0
- package/dist/runtime/index.cjs.map +1 -0
- package/dist/runtime/index.d.cts +73 -0
- package/dist/runtime/index.d.ts +73 -0
- package/dist/runtime/index.js +49 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/server/index.cjs +604 -0
- package/dist/server/index.cjs.map +1 -0
- package/dist/server/index.d.cts +69 -0
- package/dist/server/index.d.ts +69 -0
- package/dist/server/index.js +604 -0
- package/dist/server/index.js.map +1 -0
- package/dist/skill/index.cjs +14 -0
- package/dist/skill/index.cjs.map +1 -0
- package/dist/skill/index.d.cts +16 -0
- package/dist/skill/index.d.ts +16 -0
- package/dist/skill/index.js +14 -0
- package/dist/skill/index.js.map +1 -0
- package/package.json +292 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2;
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkZELRQU4Jcjs = require('./chunk-ZELRQU4J.cjs');
|
|
5
|
+
|
|
6
|
+
// src/integrations/event-converters.ts
|
|
7
|
+
var _crypto = require('crypto');
|
|
8
|
+
var endText = () => new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.TEXT_END, {});
|
|
9
|
+
function messageEvents(message) {
|
|
10
|
+
const blocks = _nullishCoalesce(_optionalChain([message, 'optionalAccess', _ => _.contentBlocks]), () => ( (typeof _optionalChain([message, 'optionalAccess', _2 => _2.content]) === "string" ? [{ type: "text", text: message.content }] : _nullishCoalesce(_optionalChain([message, 'optionalAccess', _3 => _3.content]), () => ( [])))));
|
|
11
|
+
return blocks.flatMap((block) => {
|
|
12
|
+
if (block.type !== "text" && block.type !== "reasoning") return [];
|
|
13
|
+
const delta = block.type === "text" ? block.text : block.reasoning;
|
|
14
|
+
return delta ? [new (0, _chunkZELRQU4Jcjs.AgentEvent)(
|
|
15
|
+
block.type === "text" ? _chunkZELRQU4Jcjs.EventType.TEXT : _chunkZELRQU4Jcjs.EventType.REASONING,
|
|
16
|
+
{ delta }
|
|
17
|
+
)] : [];
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
var EventConverter = class {
|
|
21
|
+
/** One converter per invocation; supply the entire framework event stream. */
|
|
22
|
+
async *stream(events) {
|
|
23
|
+
for await (const event of events) yield* this.convert(event);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
var LangChainEventConverter = (_class = class extends EventConverter {constructor(...args2) { super(...args2); _class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this); }
|
|
27
|
+
__init() {this.streamed = /* @__PURE__ */ new Map()}
|
|
28
|
+
__init2() {this.messages = /* @__PURE__ */ new Map()}
|
|
29
|
+
__init3() {this.segments = /* @__PURE__ */ new Map()}
|
|
30
|
+
__init4() {this.calls = /* @__PURE__ */ new Set()}
|
|
31
|
+
__init5() {this.results = /* @__PURE__ */ new Set()}
|
|
32
|
+
convert(event) {
|
|
33
|
+
const data = _nullishCoalesce(event.data, () => ( {})), runId = event.run_id;
|
|
34
|
+
if (event.event === "on_chat_model_stream") {
|
|
35
|
+
const events = messageEvents(data.chunk);
|
|
36
|
+
const kinds = _nullishCoalesce(this.streamed.get(runId), () => ( /* @__PURE__ */ new Set()));
|
|
37
|
+
events.forEach((e) => kinds.add(e.type));
|
|
38
|
+
this.streamed.set(runId, kinds);
|
|
39
|
+
return this.withMessageIds(runId, events);
|
|
40
|
+
} else if (event.event === "on_chat_model_end") {
|
|
41
|
+
const output = data.output, streamed = this.streamed.get(runId);
|
|
42
|
+
const events = this.withMessageIds(runId, messageEvents(output).filter((e) => !_optionalChain([streamed, 'optionalAccess', _4 => _4.has, 'call', _5 => _5(e.type)])));
|
|
43
|
+
this.streamed.delete(runId);
|
|
44
|
+
events.push(...this.endMessage(runId));
|
|
45
|
+
this.segments.delete(runId);
|
|
46
|
+
for (const call of _nullishCoalesce(_optionalChain([output, 'optionalAccess', _6 => _6.tool_calls]), () => ( []))) {
|
|
47
|
+
this.calls.add(call.id);
|
|
48
|
+
events.push(new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.TOOL_CALL, { id: call.id, name: call.name, args: call.args }));
|
|
49
|
+
}
|
|
50
|
+
return events;
|
|
51
|
+
} else if (event.event === "on_tool_end") {
|
|
52
|
+
return this.toolResult(data.output);
|
|
53
|
+
} else if (event.event === "on_chain_end") {
|
|
54
|
+
const messages = Array.isArray(data.output) ? data.output : _nullishCoalesce(_optionalChain([data, 'access', _7 => _7.output, 'optionalAccess', _8 => _8.messages]), () => ( []));
|
|
55
|
+
return messages.filter((message) => (_nullishCoalesce(_optionalChain([message, 'optionalAccess', _9 => _9.type]), () => ( _optionalChain([message, 'optionalAccess', _10 => _10._getType, 'optionalCall', _11 => _11()])))) === "tool" && this.calls.has(message.tool_call_id)).flatMap((message) => this.toolResult(message));
|
|
56
|
+
}
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
toolResult(message) {
|
|
60
|
+
const id = _optionalChain([message, 'optionalAccess', _12 => _12.tool_call_id]);
|
|
61
|
+
if (!id || this.results.has(id)) return [];
|
|
62
|
+
this.results.add(id);
|
|
63
|
+
return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.TOOL_RESULT, { id, name: message.name, result: message.content })];
|
|
64
|
+
}
|
|
65
|
+
endMessage(runId) {
|
|
66
|
+
const previous = this.messages.get(runId);
|
|
67
|
+
this.messages.delete(runId);
|
|
68
|
+
return previous ? [new (0, _chunkZELRQU4Jcjs.AgentEvent)(
|
|
69
|
+
previous.event === _chunkZELRQU4Jcjs.EventType.TEXT ? _chunkZELRQU4Jcjs.EventType.TEXT_END : _chunkZELRQU4Jcjs.EventType.REASONING_END,
|
|
70
|
+
{ message_id: previous.data.message_id }
|
|
71
|
+
)] : [];
|
|
72
|
+
}
|
|
73
|
+
withMessageIds(runId, events) {
|
|
74
|
+
const converted = [];
|
|
75
|
+
for (const event of events) {
|
|
76
|
+
const previous = this.messages.get(runId);
|
|
77
|
+
let messageId = _optionalChain([previous, 'optionalAccess', _13 => _13.data, 'access', _14 => _14.message_id]);
|
|
78
|
+
if (!previous || previous.event !== event.event) {
|
|
79
|
+
converted.push(...this.endMessage(runId));
|
|
80
|
+
const segment = (_nullishCoalesce(this.segments.get(runId), () => ( 0))) + 1;
|
|
81
|
+
this.segments.set(runId, segment);
|
|
82
|
+
messageId = `${runId}:${segment}`;
|
|
83
|
+
}
|
|
84
|
+
const identified = new (0, _chunkZELRQU4Jcjs.AgentEvent)(event.event, { ...event.data, message_id: messageId });
|
|
85
|
+
this.messages.set(runId, identified);
|
|
86
|
+
converted.push(identified);
|
|
87
|
+
}
|
|
88
|
+
return converted;
|
|
89
|
+
}
|
|
90
|
+
}, _class);
|
|
91
|
+
var GoogleADKEventConverter = (_class2 = class extends EventConverter {constructor(...args3) { super(...args3); _class2.prototype.__init6.call(this);_class2.prototype.__init7.call(this); }
|
|
92
|
+
__init6() {this.partial = /* @__PURE__ */ new Set()}
|
|
93
|
+
__init7() {this.calls = /* @__PURE__ */ new Set()}
|
|
94
|
+
convert(event) {
|
|
95
|
+
if (event.errorCode) return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.ERROR, { code: event.errorCode, message: event.errorMessage })];
|
|
96
|
+
const events = [], author = event.author;
|
|
97
|
+
for (const part of _nullishCoalesce(_optionalChain([event, 'access', _15 => _15.content, 'optionalAccess', _16 => _16.parts]), () => ( []))) {
|
|
98
|
+
if (part.text && (event.partial || !this.partial.has(author))) events.push(new (0, _chunkZELRQU4Jcjs.AgentEvent)(
|
|
99
|
+
part.thought ? _chunkZELRQU4Jcjs.EventType.REASONING : _chunkZELRQU4Jcjs.EventType.TEXT,
|
|
100
|
+
{ delta: part.text }
|
|
101
|
+
));
|
|
102
|
+
const call = part.functionCall;
|
|
103
|
+
if (call && !this.calls.has(call.id)) {
|
|
104
|
+
this.calls.add(call.id);
|
|
105
|
+
events.push(new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.TOOL_CALL, { id: call.id, name: call.name, args: call.args }));
|
|
106
|
+
}
|
|
107
|
+
const result = part.functionResponse;
|
|
108
|
+
if (result) events.push(new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.TOOL_RESULT, { id: result.id, name: result.name, result: result.response }));
|
|
109
|
+
}
|
|
110
|
+
if (event.partial) this.partial.add(author);
|
|
111
|
+
else {
|
|
112
|
+
this.partial.delete(author);
|
|
113
|
+
events.push(endText(), new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.REASONING_END, {}));
|
|
114
|
+
}
|
|
115
|
+
return events;
|
|
116
|
+
}
|
|
117
|
+
}, _class2);
|
|
118
|
+
var AISDKEventConverter = class extends EventConverter {
|
|
119
|
+
|
|
120
|
+
convert(event) {
|
|
121
|
+
switch (event.type) {
|
|
122
|
+
case "text-start":
|
|
123
|
+
this.textId = _crypto.randomUUID.call(void 0, );
|
|
124
|
+
return [];
|
|
125
|
+
case "text-delta":
|
|
126
|
+
return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.TEXT, { delta: event.text, message_id: this.textId })];
|
|
127
|
+
case "text-end":
|
|
128
|
+
return [endText()];
|
|
129
|
+
case "reasoning-delta":
|
|
130
|
+
return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.REASONING, { delta: event.text })];
|
|
131
|
+
case "reasoning-end":
|
|
132
|
+
return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.REASONING_END, {})];
|
|
133
|
+
case "tool-call":
|
|
134
|
+
return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.TOOL_CALL, { id: event.toolCallId, name: event.toolName, args: event.input })];
|
|
135
|
+
case "tool-result":
|
|
136
|
+
return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.TOOL_RESULT, { id: event.toolCallId, name: event.toolName, result: event.output })];
|
|
137
|
+
case "tool-error":
|
|
138
|
+
return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.TOOL_RESULT, { id: event.toolCallId, name: event.toolName, result: String(event.error) })];
|
|
139
|
+
case "error":
|
|
140
|
+
throw event.error;
|
|
141
|
+
default:
|
|
142
|
+
return [];
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
var MastraEventConverter = class extends EventConverter {
|
|
147
|
+
|
|
148
|
+
convert(event) {
|
|
149
|
+
const data = _nullishCoalesce(event.payload, () => ( {}));
|
|
150
|
+
switch (event.type) {
|
|
151
|
+
case "text-start":
|
|
152
|
+
this.textId = _crypto.randomUUID.call(void 0, );
|
|
153
|
+
return [];
|
|
154
|
+
case "text-delta":
|
|
155
|
+
return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.TEXT, { delta: data.text, message_id: this.textId })];
|
|
156
|
+
case "text-end":
|
|
157
|
+
return [endText()];
|
|
158
|
+
case "reasoning-delta":
|
|
159
|
+
return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.REASONING, { delta: data.text })];
|
|
160
|
+
case "reasoning-end":
|
|
161
|
+
return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.REASONING_END, {})];
|
|
162
|
+
case "tool-call":
|
|
163
|
+
return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.TOOL_CALL, { id: data.toolCallId, name: data.toolName, args: data.args })];
|
|
164
|
+
case "tool-result":
|
|
165
|
+
return [new (0, _chunkZELRQU4Jcjs.AgentEvent)(_chunkZELRQU4Jcjs.EventType.TOOL_RESULT, { id: data.toolCallId, name: data.toolName, result: data.result })];
|
|
166
|
+
case "error":
|
|
167
|
+
throw data.error;
|
|
168
|
+
default:
|
|
169
|
+
return [];
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
exports.LangChainEventConverter = LangChainEventConverter; exports.GoogleADKEventConverter = GoogleADKEventConverter; exports.AISDKEventConverter = AISDKEventConverter; exports.MastraEventConverter = MastraEventConverter;
|
|
180
|
+
//# sourceMappingURL=chunk-PC4FM2RP.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/zhuoguang/Documents/Code/collaborate/hiclaw/agentcore-sdk-nodejs/dist/chunk-PC4FM2RP.cjs","../src/integrations/event-converters.ts"],"names":[],"mappings":"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","file":"/Users/zhuoguang/Documents/Code/collaborate/hiclaw/agentcore-sdk-nodejs/dist/chunk-PC4FM2RP.cjs","sourcesContent":[null,"import { randomUUID } from 'node:crypto';\nimport { AgentEvent, EventType } from '../server/model';\n\n// These adapters accept native framework events, including framework extension fields.\ntype NativeEvent = Record<string, any>;\nconst endText = () => new AgentEvent(EventType.TEXT_END, {});\nfunction messageEvents(message: any): AgentEvent[] {\n const blocks = message?.contentBlocks ?? (typeof message?.content === 'string'\n ? [{ type: 'text', text: message.content }] : message?.content ?? []);\n return blocks.flatMap((block: any) => {\n if (block.type !== 'text' && block.type !== 'reasoning') return [];\n const delta = block.type === 'text' ? block.text : block.reasoning;\n return delta ? [new AgentEvent(block.type === 'text' ? EventType.TEXT : EventType.REASONING,\n { delta })] : [];\n });\n}\n\nabstract class EventConverter {\n abstract convert(event: NativeEvent): AgentEvent[];\n /** One converter per invocation; supply the entire framework event stream. */\n async *stream(events: AsyncIterable<NativeEvent>): AsyncGenerator<AgentEvent> {\n for await (const event of events) yield* this.convert(event);\n }\n}\n\n/** streamEvents(version: 'v2'); emit complete arguments once at model end. */\nexport class LangChainEventConverter extends EventConverter {\n private readonly streamed = new Map<string, Set<string>>();\n private readonly messages = new Map<string, AgentEvent>();\n private readonly segments = new Map<string, number>();\n private readonly calls = new Set<string>();\n private readonly results = new Set<string>();\n convert(event: NativeEvent): AgentEvent[] {\n const data = event.data ?? {}, runId = event.run_id;\n if (event.event === 'on_chat_model_stream') {\n const events = messageEvents(data.chunk);\n const kinds = this.streamed.get(runId) ?? new Set<string>();\n events.forEach(e => kinds.add(e.type));\n this.streamed.set(runId, kinds);\n return this.withMessageIds(runId, events);\n } else if (event.event === 'on_chat_model_end') {\n const output = data.output, streamed = this.streamed.get(runId);\n const events = this.withMessageIds(runId, messageEvents(output).filter(e => !streamed?.has(e.type)));\n this.streamed.delete(runId);\n events.push(...this.endMessage(runId));\n this.segments.delete(runId);\n for (const call of output?.tool_calls ?? []) {\n this.calls.add(call.id);\n events.push(new AgentEvent(EventType.TOOL_CALL, { id: call.id, name: call.name, args: call.args }));\n }\n return events;\n } else if (event.event === 'on_tool_end') {\n return this.toolResult(data.output);\n } else if (event.event === 'on_chain_end') {\n // Handled ToolNode failures have no on_tool_end. Root snapshots repeat\n // results and history, so only forward calls observed in this invocation.\n const messages = Array.isArray(data.output) ? data.output : data.output?.messages ?? [];\n return messages.filter((message: any) => (message?.type ?? message?._getType?.()) === 'tool'\n && this.calls.has(message.tool_call_id)).flatMap((message: any) => this.toolResult(message));\n }\n return [];\n }\n private toolResult(message: any): AgentEvent[] {\n const id = message?.tool_call_id;\n if (!id || this.results.has(id)) return [];\n this.results.add(id);\n return [new AgentEvent(EventType.TOOL_RESULT, { id, name: message.name, result: message.content })];\n }\n private endMessage(runId: string): AgentEvent[] {\n const previous = this.messages.get(runId);\n this.messages.delete(runId);\n return previous ? [new AgentEvent(previous.event === EventType.TEXT ? EventType.TEXT_END : EventType.REASONING_END,\n { message_id: previous.data.message_id })] : [];\n }\n private withMessageIds(runId: string, events: AgentEvent[]): AgentEvent[] {\n const converted: AgentEvent[] = [];\n for (const event of events) {\n const previous = this.messages.get(runId);\n let messageId = previous?.data.message_id;\n if (!previous || previous.event !== event.event) {\n converted.push(...this.endMessage(runId));\n const segment = (this.segments.get(runId) ?? 0) + 1;\n this.segments.set(runId, segment);\n messageId = `${runId}:${segment}`;\n }\n const identified = new AgentEvent(event.event, { ...event.data, message_id: messageId });\n this.messages.set(runId, identified);\n converted.push(identified);\n }\n return converted;\n }\n}\n\n/** ADK runAsync events; final snapshots must not duplicate partial text. */\nexport class GoogleADKEventConverter extends EventConverter {\n private readonly partial = new Set<string>();\n private readonly calls = new Set<string>();\n convert(event: NativeEvent): AgentEvent[] {\n if (event.errorCode) return [new AgentEvent(EventType.ERROR, { code: event.errorCode, message: event.errorMessage })];\n const events: AgentEvent[] = [], author = event.author;\n for (const part of event.content?.parts ?? []) {\n if (part.text && (event.partial || !this.partial.has(author))) events.push(new AgentEvent(\n part.thought ? EventType.REASONING : EventType.TEXT, { delta: part.text },\n ));\n const call = part.functionCall;\n if (call && !this.calls.has(call.id)) {\n this.calls.add(call.id);\n events.push(new AgentEvent(EventType.TOOL_CALL, { id: call.id, name: call.name, args: call.args }));\n }\n const result = part.functionResponse;\n if (result) events.push(new AgentEvent(EventType.TOOL_RESULT, { id: result.id, name: result.name, result: result.response }));\n }\n if (event.partial) this.partial.add(author);\n else {\n this.partial.delete(author);\n events.push(endText(), new AgentEvent(EventType.REASONING_END, {}));\n }\n return events;\n }\n}\n\n/** Vercel AI SDK fullStream. TextStream alone has already lost tool events. */\nexport class AISDKEventConverter extends EventConverter {\n private textId?: string;\n convert(event: NativeEvent): AgentEvent[] {\n switch (event.type) {\n case 'text-start': this.textId = randomUUID(); return [];\n case 'text-delta': return [new AgentEvent(EventType.TEXT, { delta: event.text, message_id: this.textId })];\n case 'text-end': return [endText()];\n case 'reasoning-delta': return [new AgentEvent(EventType.REASONING, { delta: event.text })];\n case 'reasoning-end': return [new AgentEvent(EventType.REASONING_END, {})];\n case 'tool-call': return [new AgentEvent(EventType.TOOL_CALL, { id: event.toolCallId, name: event.toolName, args: event.input })];\n case 'tool-result': return [new AgentEvent(EventType.TOOL_RESULT, { id: event.toolCallId, name: event.toolName, result: event.output })];\n case 'tool-error': return [new AgentEvent(EventType.TOOL_RESULT, { id: event.toolCallId, name: event.toolName, result: String(event.error) })];\n case 'error': throw event.error;\n default: return [];\n }\n }\n}\n\n/** Mastra fullStream has payload-wrapped events, unlike AI SDK fullStream. */\nexport class MastraEventConverter extends EventConverter {\n private textId?: string;\n convert(event: NativeEvent): AgentEvent[] {\n const data = event.payload ?? {};\n switch (event.type) {\n case 'text-start': this.textId = randomUUID(); return [];\n case 'text-delta': return [new AgentEvent(EventType.TEXT, { delta: data.text, message_id: this.textId })];\n case 'text-end': return [endText()];\n case 'reasoning-delta': return [new AgentEvent(EventType.REASONING, { delta: data.text })];\n case 'reasoning-end': return [new AgentEvent(EventType.REASONING_END, {})];\n case 'tool-call': return [new AgentEvent(EventType.TOOL_CALL, { id: data.toolCallId, name: data.toolName, args: data.args })];\n case 'tool-result': return [new AgentEvent(EventType.TOOL_RESULT, { id: data.toolCallId, name: data.toolName, result: data.result })];\n case 'error': throw data.error;\n default: return [];\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;
|
|
2
|
+
|
|
3
|
+
var _chunkYZP55W7Scjs = require('./chunk-YZP55W7S.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkRZNQGEGJcjs = require('./chunk-RZNQGEGJ.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _chunk5RKN46UUcjs = require('./chunk-5RKN46UU.cjs');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
var _chunkLE5P3SJWcjs = require('./chunk-LE5P3SJW.cjs');
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
var _chunkJSP7ZROScjs = require('./chunk-JSP7ZROS.cjs');
|
|
21
|
+
|
|
22
|
+
// src/controlplane/client.ts
|
|
23
|
+
var _agentcore20260804 = require('@alicloud/agentcore20260804'); var models = _interopRequireWildcard(_agentcore20260804);
|
|
24
|
+
var _openapicore = require('@alicloud/openapi-core');
|
|
25
|
+
var _typescript = require('@darabonba/typescript');
|
|
26
|
+
var GeneratedClient = typeof models.default === "function" ? models.default : models.default.default;
|
|
27
|
+
function exact(items, field, name, label, ErrorType = _chunkJSP7ZROScjs.ResourceNotConfiguredError) {
|
|
28
|
+
const matches = items.filter((item) => item[field] === name);
|
|
29
|
+
if (!matches.length) throw new ErrorType(`${label} ${JSON.stringify(name)} does not exist`);
|
|
30
|
+
if (matches.length !== 1) throw new (0, _chunkJSP7ZROScjs.ConfigError)(`${label} ${JSON.stringify(name)} is not unique`);
|
|
31
|
+
return matches[0];
|
|
32
|
+
}
|
|
33
|
+
function errorField(error, key) {
|
|
34
|
+
return error && typeof error === "object" ? error[key] : void 0;
|
|
35
|
+
}
|
|
36
|
+
function responseBody(body) {
|
|
37
|
+
if (body === void 0) throw new (0, _chunkJSP7ZROScjs.ConfigError)("AgentCore returned an empty control-plane response");
|
|
38
|
+
return body;
|
|
39
|
+
}
|
|
40
|
+
function endpointFailure(error) {
|
|
41
|
+
const status = errorField(error, "statusCode");
|
|
42
|
+
const code = errorField(error, "code");
|
|
43
|
+
return typeof status === "number" && status >= 500 && status < 600 || ["ECONNREFUSED", "ECONNRESET", "ENOTFOUND", "EAI_AGAIN", "ETIMEDOUT", "ESOCKETTIMEDOUT"].includes(String(code)) || errorField(error, "name") === "TimeoutError";
|
|
44
|
+
}
|
|
45
|
+
var AgentCoreControlPlane = (_class = class {
|
|
46
|
+
constructor(options) {;_class.prototype.__init.call(this);
|
|
47
|
+
this.options = options;
|
|
48
|
+
this.workspaceId = _chunk5RKN46UUcjs.requiredString.call(void 0, options.workspaceId, "workspaceId");
|
|
49
|
+
this.regionId = _chunk5RKN46UUcjs.requiredString.call(void 0, options.regionId, "regionId");
|
|
50
|
+
if (!options.accessKeyCredential && !options.resourceSTSProvider) throw new (0, _chunkJSP7ZROScjs.ConfigError)("AgentCore control plane requires an AccessKey credential source");
|
|
51
|
+
if (options.endpoint !== void 0) {
|
|
52
|
+
const value = options.endpoint.trim();
|
|
53
|
+
const url = new URL(_chunk5RKN46UUcjs.httpUrl.call(void 0, value.includes("://") ? value : `https://${value}`, "AgentCore control endpoint"));
|
|
54
|
+
if (url.pathname !== "/") throw new (0, _chunkJSP7ZROScjs.ConfigError)("AgentCore control endpoint must not contain a path");
|
|
55
|
+
this.endpoint = url.host;
|
|
56
|
+
this.protocol = url.protocol.slice(0, -1);
|
|
57
|
+
}
|
|
58
|
+
this.logger = _nullishCoalesce(options.logger, () => ( _chunkLE5P3SJWcjs.nullLogger));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
__init() {this.lifetime = new AbortController()}
|
|
68
|
+
async resolveModel(connectionName, modelName) {
|
|
69
|
+
const client = await this.client();
|
|
70
|
+
const connections = [];
|
|
71
|
+
let nextToken;
|
|
72
|
+
do {
|
|
73
|
+
const response = await this.invoke(client, "ListModelConnections", () => client.listModelConnectionsWithOptions(
|
|
74
|
+
this.workspaceId,
|
|
75
|
+
new models.ListModelConnectionsRequest({ name: connectionName, searchType: "accurate", maxResults: 100, nextToken }),
|
|
76
|
+
{},
|
|
77
|
+
this.runtimeOptions()
|
|
78
|
+
));
|
|
79
|
+
const body = responseBody(response.body);
|
|
80
|
+
connections.push(..._nullishCoalesce(body.items, () => ( [])));
|
|
81
|
+
nextToken = body.nextToken;
|
|
82
|
+
} while (nextToken);
|
|
83
|
+
const connection = exact(connections, "name", connectionName, "model connection", _chunkJSP7ZROScjs.ModelConnectionNotFoundError);
|
|
84
|
+
const connectionId = _chunk5RKN46UUcjs.requiredString.call(void 0, connection.connectionId, "connectionId");
|
|
85
|
+
const available = [];
|
|
86
|
+
do {
|
|
87
|
+
const response = await this.invoke(client, "ListModels", () => client.listModelsWithOptions(
|
|
88
|
+
this.workspaceId,
|
|
89
|
+
new models.ListModelsRequest({ connectionId, modelName, maxResults: 100, nextToken }),
|
|
90
|
+
{},
|
|
91
|
+
this.runtimeOptions()
|
|
92
|
+
));
|
|
93
|
+
const body = responseBody(response.body);
|
|
94
|
+
available.push(..._nullishCoalesce(body.items, () => ( [])));
|
|
95
|
+
nextToken = body.nextToken;
|
|
96
|
+
} while (nextToken);
|
|
97
|
+
let model;
|
|
98
|
+
if (modelName !== void 0) model = exact(available, "modelName", modelName, "model");
|
|
99
|
+
else {
|
|
100
|
+
if (available.length !== 1) throw new (0, _chunkJSP7ZROScjs.ResourceNotConfiguredError)(`model connection ${JSON.stringify(connectionName)} requires an explicit model name`);
|
|
101
|
+
model = available[0];
|
|
102
|
+
}
|
|
103
|
+
const capabilities = Object.fromEntries(Object.entries(_nullishCoalesce(model.capabilities, () => ( {}))).filter((entry) => typeof entry[1] === "boolean"));
|
|
104
|
+
const descriptor = Object.freeze({
|
|
105
|
+
connectionId,
|
|
106
|
+
connectionName: _chunk5RKN46UUcjs.requiredString.call(void 0, connection.name, "connection name"),
|
|
107
|
+
protocol: _nullishCoalesce(connection.protocol, () => ( "")),
|
|
108
|
+
providerType: _nullishCoalesce(connection.providerType, () => ( "")),
|
|
109
|
+
modelId: _chunk5RKN46UUcjs.requiredString.call(void 0, model.modelId, "modelId"),
|
|
110
|
+
modelName: _chunk5RKN46UUcjs.requiredString.call(void 0, model.modelName, "modelName"),
|
|
111
|
+
contextSize: model.contextSize,
|
|
112
|
+
maxTokens: model.maxTokens,
|
|
113
|
+
capabilities: Object.freeze(capabilities)
|
|
114
|
+
});
|
|
115
|
+
this.logger.info("agentcore.control_plane.model.resolve.succeeded", { connectionName, connectionId, modelName: descriptor.modelName });
|
|
116
|
+
return descriptor;
|
|
117
|
+
}
|
|
118
|
+
async resolveMCP(name) {
|
|
119
|
+
const client = await this.client();
|
|
120
|
+
const items = [];
|
|
121
|
+
let nextToken;
|
|
122
|
+
do {
|
|
123
|
+
const response = await this.invoke(client, "ListMcps", () => client.listMcpsWithOptions(
|
|
124
|
+
this.workspaceId,
|
|
125
|
+
new models.ListMcpsRequest({ name, searchType: "accurate", maxResults: 100, nextToken }),
|
|
126
|
+
{},
|
|
127
|
+
this.runtimeOptions()
|
|
128
|
+
));
|
|
129
|
+
const body = responseBody(response.body);
|
|
130
|
+
items.push(..._nullishCoalesce(body.items, () => ( [])));
|
|
131
|
+
nextToken = body.nextToken;
|
|
132
|
+
} while (nextToken);
|
|
133
|
+
const item = exact(items, "name", name, "MCP server", _chunkJSP7ZROScjs.MCPServerNotFoundError);
|
|
134
|
+
const descriptor = Object.freeze({
|
|
135
|
+
mcpServerId: _chunk5RKN46UUcjs.requiredString.call(void 0, item.mcpServerId, "mcpServerId"),
|
|
136
|
+
name: _chunk5RKN46UUcjs.requiredString.call(void 0, item.name, "MCP name"),
|
|
137
|
+
protocol: _nullishCoalesce(item.protocol, () => ( "")),
|
|
138
|
+
type: _nullishCoalesce(item.type, () => ( "")),
|
|
139
|
+
status: _nullishCoalesce(item.status, () => ( ""))
|
|
140
|
+
});
|
|
141
|
+
this.logger.info("agentcore.control_plane.mcp.resolve.succeeded", { name, mcpServerId: descriptor.mcpServerId, protocol: descriptor.protocol });
|
|
142
|
+
return descriptor;
|
|
143
|
+
}
|
|
144
|
+
async getSkill(name, version) {
|
|
145
|
+
const client = await this.client();
|
|
146
|
+
if (version === void 0) {
|
|
147
|
+
const detail = await this.invoke(client, "GetSkillDetail", () => client.getSkillDetailWithOptions(this.workspaceId, name, new models.GetSkillDetailRequest({}), {}, this.runtimeOptions()));
|
|
148
|
+
version = latestVersion(responseBody(detail.body).data);
|
|
149
|
+
}
|
|
150
|
+
const resolvedVersion = version;
|
|
151
|
+
const response = await this.invoke(client, "DownloadSkillVersionViaOss", () => client.downloadSkillVersionViaOssWithOptions(
|
|
152
|
+
this.workspaceId,
|
|
153
|
+
name,
|
|
154
|
+
resolvedVersion,
|
|
155
|
+
new models.DownloadSkillVersionViaOssRequest({}),
|
|
156
|
+
{},
|
|
157
|
+
this.runtimeOptions()
|
|
158
|
+
));
|
|
159
|
+
const downloadURL = responseBody(response.body).data;
|
|
160
|
+
if (typeof downloadURL !== "string") throw new (0, _chunkJSP7ZROScjs.ConfigError)("AgentCore returned an invalid Skill download URL");
|
|
161
|
+
return { version: resolvedVersion, archive: await this.downloadSkill(downloadURL) };
|
|
162
|
+
}
|
|
163
|
+
close() {
|
|
164
|
+
this.lifetime.abort();
|
|
165
|
+
}
|
|
166
|
+
async resolveCredential(name) {
|
|
167
|
+
const client = await this.client();
|
|
168
|
+
const params = new _openapicore.$OpenApiUtil.Params({
|
|
169
|
+
action: "ListCredentials",
|
|
170
|
+
version: "2026-08-04",
|
|
171
|
+
protocol: "HTTPS",
|
|
172
|
+
pathname: `/workspaces/${encodeURIComponent(this.workspaceId)}/credentials`,
|
|
173
|
+
method: "GET",
|
|
174
|
+
authType: "AK",
|
|
175
|
+
style: "ROA",
|
|
176
|
+
reqBodyType: "json",
|
|
177
|
+
bodyType: "json"
|
|
178
|
+
});
|
|
179
|
+
const items = [];
|
|
180
|
+
let nextToken;
|
|
181
|
+
do {
|
|
182
|
+
const request = new _openapicore.$OpenApiUtil.OpenApiRequest({ query: { name, maxResults: "100", ...nextToken ? { nextToken } : {} } });
|
|
183
|
+
const response = await this.invoke(client, "ListCredentials", () => client.callApi(params, request, this.runtimeOptions()));
|
|
184
|
+
const body = responseBody(response.body);
|
|
185
|
+
items.push(..._nullishCoalesce(body.items, () => ( [])));
|
|
186
|
+
nextToken = body.nextToken;
|
|
187
|
+
} while (nextToken);
|
|
188
|
+
const item = exact(items, "name", name, "credential");
|
|
189
|
+
const refs = _nullishCoalesce(item.resourceRefs, () => ( []));
|
|
190
|
+
return {
|
|
191
|
+
credentialId: _chunk5RKN46UUcjs.requiredString.call(void 0, item.credentialId, "credentialId"),
|
|
192
|
+
name: _chunk5RKN46UUcjs.requiredString.call(void 0, item.name, "name"),
|
|
193
|
+
credentialType: _chunk5RKN46UUcjs.requiredString.call(void 0, item.credentialType, "credentialType"),
|
|
194
|
+
resourceScope: String(_nullishCoalesce(item.resourceScope, () => ( ""))),
|
|
195
|
+
resourceRefs: refs.map((ref) => ({ resourceType: _chunk5RKN46UUcjs.requiredString.call(void 0, ref.resourceType, "resourceType"), resourceId: _chunk5RKN46UUcjs.requiredString.call(void 0, ref.resourceId, "resourceId") }))
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
runtimeOptions() {
|
|
199
|
+
return new (0, _typescript.RuntimeOptions)({ autoretry: false, connectTimeout: 1e4, readTimeout: 3e4 });
|
|
200
|
+
}
|
|
201
|
+
async client() {
|
|
202
|
+
this.lifetime.signal.throwIfAborted();
|
|
203
|
+
const credential = await _asyncNullishCoalesce(this.options.accessKeyCredential, async () => ( await this.options.resourceSTSProvider.get(_chunkRZNQGEGJcjs.HIGH_CODE_SDK_PURPOSE)));
|
|
204
|
+
return new GeneratedClient(new _openapicore.$OpenApiUtil.Config({
|
|
205
|
+
accessKeyId: credential.accessKeyId,
|
|
206
|
+
accessKeySecret: credential.accessKeySecret,
|
|
207
|
+
securityToken: credential.securityToken,
|
|
208
|
+
regionId: this.regionId,
|
|
209
|
+
endpoint: _nullishCoalesce(this.endpoint, () => ( this.discoveredEndpoint)),
|
|
210
|
+
protocol: this.protocol
|
|
211
|
+
}));
|
|
212
|
+
}
|
|
213
|
+
async invoke(client, operation, call) {
|
|
214
|
+
this.lifetime.signal.throwIfAborted();
|
|
215
|
+
const invoke = async () => {
|
|
216
|
+
this.logger.debug("agentcore.control_plane.request.started", { operation, host: client._endpoint });
|
|
217
|
+
try {
|
|
218
|
+
return await call();
|
|
219
|
+
} catch (cause) {
|
|
220
|
+
const data = errorField(cause, "data");
|
|
221
|
+
this.logger.warn("agentcore.control_plane.request.failed", {
|
|
222
|
+
operation,
|
|
223
|
+
host: client._endpoint,
|
|
224
|
+
status: String(_nullishCoalesce(errorField(cause, "statusCode"), () => ( "-"))),
|
|
225
|
+
code: String(_nullishCoalesce(errorField(cause, "code"), () => ( "-"))),
|
|
226
|
+
requestId: String(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(errorField(cause, "requestId"), () => ( errorField(data, "RequestId"))), () => ( errorField(data, "requestId"))), () => ( "-")))
|
|
227
|
+
});
|
|
228
|
+
throw new (0, _chunkJSP7ZROScjs.InvocationError)("AgentCore control-plane request failed", { cause });
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
try {
|
|
232
|
+
return await invoke();
|
|
233
|
+
} catch (error) {
|
|
234
|
+
if (!(error instanceof _chunkJSP7ZROScjs.InvocationError) || this.endpoint || client._endpoint !== `agentcore.${this.regionId}.aliyuncs.com` || !endpointFailure(error.cause)) throw error;
|
|
235
|
+
const host = `agentcore-vpc.${this.regionId}.aliyuncs.com`;
|
|
236
|
+
this.logger.warn("agentcore.control_plane.endpoint.fallback", { operation, fromHost: client._endpoint, toHost: host });
|
|
237
|
+
client._endpoint = host;
|
|
238
|
+
const result = await invoke();
|
|
239
|
+
this.discoveredEndpoint = host;
|
|
240
|
+
return result;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
async downloadSkill(value) {
|
|
244
|
+
let original;
|
|
245
|
+
try {
|
|
246
|
+
original = new URL(value);
|
|
247
|
+
} catch (e) {
|
|
248
|
+
throw new (0, _chunkJSP7ZROScjs.ConfigError)("AgentCore returned an invalid Skill download URL");
|
|
249
|
+
}
|
|
250
|
+
if (!["http:", "https:"].includes(original.protocol) || original.username || original.password) throw new (0, _chunkJSP7ZROScjs.ConfigError)("AgentCore returned an invalid Skill download URL");
|
|
251
|
+
let candidate = original;
|
|
252
|
+
for (; ; ) {
|
|
253
|
+
this.lifetime.signal.throwIfAborted();
|
|
254
|
+
let status;
|
|
255
|
+
try {
|
|
256
|
+
const response = await fetch(candidate, { redirect: "manual", signal: AbortSignal.any([this.lifetime.signal, AbortSignal.timeout(3e4)]) });
|
|
257
|
+
if (response.ok) {
|
|
258
|
+
const archive = await _chunkYZP55W7Scjs.readBytes.call(void 0, response, 10 * 1024 * 1024, "Skill archive");
|
|
259
|
+
if (!archive.length) throw new (0, _chunkJSP7ZROScjs.ConfigError)("Skill package is empty");
|
|
260
|
+
return archive;
|
|
261
|
+
}
|
|
262
|
+
status = response.status;
|
|
263
|
+
await _optionalChain([response, 'access', _ => _.body, 'optionalAccess', _2 => _2.cancel, 'call', _3 => _3()]);
|
|
264
|
+
} catch (error) {
|
|
265
|
+
this.lifetime.signal.throwIfAborted();
|
|
266
|
+
if (error instanceof _chunkJSP7ZROScjs.ConfigError) throw error;
|
|
267
|
+
}
|
|
268
|
+
this.logger.warn("agentcore.control_plane.skill.download.failed", { host: candidate.host, path: candidate.pathname, status });
|
|
269
|
+
const fallback = candidate === original && (status === void 0 || status >= 500 && status < 600) ? internalOSSURL(original) : void 0;
|
|
270
|
+
if (!fallback) throw new (0, _chunkJSP7ZROScjs.InvocationError)(status ? `Skill package download failed with HTTP ${status}` : "Skill package download failed");
|
|
271
|
+
this.logger.warn("agentcore.control_plane.skill.download.fallback", { fromHost: candidate.host, toHost: fallback.host });
|
|
272
|
+
candidate = fallback;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}, _class);
|
|
276
|
+
function latestVersion(data) {
|
|
277
|
+
if (!data) throw new (0, _chunkJSP7ZROScjs.ResourceNotConfiguredError)("AgentCore Skill does not exist");
|
|
278
|
+
for (const [label, value] of Object.entries(_nullishCoalesce(data.labels, () => ( {})))) if (label.toLowerCase() === "latest" && value) return value;
|
|
279
|
+
const online = (_nullishCoalesce(data.versions, () => ( []))).filter((v) => _optionalChain([v, 'access', _4 => _4.status, 'optionalAccess', _5 => _5.toLowerCase, 'call', _6 => _6()]) === "online" && v.version);
|
|
280
|
+
online.sort((a, b) => (_nullishCoalesce(b.updateTime, () => ( -1))) - (_nullishCoalesce(a.updateTime, () => ( -1))) || (_nullishCoalesce(b.version, () => ( ""))).localeCompare(_nullishCoalesce(a.version, () => ( ""))));
|
|
281
|
+
if (!_optionalChain([online, 'access', _7 => _7[0], 'optionalAccess', _8 => _8.version])) throw new (0, _chunkJSP7ZROScjs.ResourceNotConfiguredError)("AgentCore Skill has no online version");
|
|
282
|
+
return online[0].version;
|
|
283
|
+
}
|
|
284
|
+
function internalOSSURL(url) {
|
|
285
|
+
const match = /^([a-z0-9-]+)\.(oss-[a-z]+-[a-z0-9-]+)\.aliyuncs\.com$/.exec(url.hostname);
|
|
286
|
+
if (!match || match[2].endsWith("-internal") || match[2].startsWith("oss-accelerate") || url.username || url.password) return void 0;
|
|
287
|
+
if (url.searchParams.getAll("x-oss-additional-headers").some((v) => v.split(";").includes("host"))) return void 0;
|
|
288
|
+
const result = new URL(url);
|
|
289
|
+
result.hostname = `${match[1]}.${match[2]}-internal.aliyuncs.com`;
|
|
290
|
+
return result;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
exports.AgentCoreControlPlane = AgentCoreControlPlane;
|
|
296
|
+
//# sourceMappingURL=chunk-PKYET77D.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/zhuoguang/Documents/Code/collaborate/hiclaw/agentcore-sdk-nodejs/dist/chunk-PKYET77D.cjs","../src/controlplane/client.ts"],"names":[],"mappings":"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","file":"/Users/zhuoguang/Documents/Code/collaborate/hiclaw/agentcore-sdk-nodejs/dist/chunk-PKYET77D.cjs","sourcesContent":[null,"import Client, * as models from '@alicloud/agentcore20260804';\nimport { $OpenApiUtil } from '@alicloud/openapi-core';\nimport { RuntimeOptions } from '@darabonba/typescript';\nimport { AccessKeyCredential, type CredentialProvider } from '../auth/access-key';\nimport { HIGH_CODE_SDK_PURPOSE } from '../auth/resource-sts';\nimport { ConfigError, InvocationError, MCPServerNotFoundError, ModelConnectionNotFoundError, ResourceNotConfiguredError } from '../errors';\nimport { readBytes } from '../http';\nimport { nullLogger, type Logger } from '../logging';\nimport { httpUrl, requiredString } from '../runtime/config';\n\n// The generated package is CJS: native ESM sees module.exports as the default.\nconst GeneratedClient = typeof Client === 'function' ? Client : (Client as unknown as { default: typeof Client }).default;\n\nexport interface ModelDescriptor {\n readonly connectionId: string;\n readonly connectionName: string;\n readonly protocol: string;\n readonly providerType: string;\n readonly modelId: string;\n readonly modelName: string;\n readonly contextSize?: number;\n readonly maxTokens?: number;\n readonly capabilities: Readonly<Record<string, boolean>>;\n}\nexport interface MCPDescriptor {\n readonly mcpServerId: string;\n readonly name: string;\n readonly protocol: string;\n readonly type: string;\n readonly status: string;\n}\nexport interface SkillArtifact { version: string; archive: Uint8Array; }\nexport interface CredentialMetadata {\n readonly credentialId: string;\n readonly name: string;\n readonly credentialType: string;\n readonly resourceScope: string;\n readonly resourceRefs: ReadonlyArray<{ resourceType: string; resourceId: string }>;\n}\nexport interface ControlPlaneOptions {\n workspaceId: string;\n regionId: string;\n accessKeyCredential?: AccessKeyCredential;\n resourceSTSProvider?: CredentialProvider;\n endpoint?: string;\n logger?: Logger;\n}\n\nfunction exact<T>(items: T[], field: keyof T, name: string, label: string, ErrorType: typeof ResourceNotConfiguredError = ResourceNotConfiguredError): T {\n const matches = items.filter((item) => item[field] === name);\n if (!matches.length) throw new ErrorType(`${label} ${JSON.stringify(name)} does not exist`);\n if (matches.length !== 1) throw new ConfigError(`${label} ${JSON.stringify(name)} is not unique`);\n return matches[0]!;\n}\n\nfunction errorField(error: unknown, key: string): unknown {\n return error && typeof error === 'object' ? (error as Record<string, unknown>)[key] : undefined;\n}\nfunction responseBody<T>(body: T | undefined): T {\n if (body === undefined) throw new ConfigError('AgentCore returned an empty control-plane response');\n return body;\n}\nfunction endpointFailure(error: unknown): boolean {\n const status = errorField(error, 'statusCode');\n const code = errorField(error, 'code');\n return (typeof status === 'number' && status >= 500 && status < 600) ||\n ['ECONNREFUSED', 'ECONNRESET', 'ENOTFOUND', 'EAI_AGAIN', 'ETIMEDOUT', 'ESOCKETTIMEDOUT'].includes(String(code)) ||\n errorField(error, 'name') === 'TimeoutError';\n}\n\nexport class AgentCoreControlPlane {\n readonly workspaceId: string;\n readonly regionId: string;\n private readonly endpoint?: string;\n private readonly protocol?: string;\n private discoveredEndpoint?: string;\n private readonly logger: Logger;\n private readonly lifetime = new AbortController();\n\n constructor(private readonly options: ControlPlaneOptions) {\n this.workspaceId = requiredString(options.workspaceId, 'workspaceId');\n this.regionId = requiredString(options.regionId, 'regionId');\n if (!options.accessKeyCredential && !options.resourceSTSProvider) throw new ConfigError('AgentCore control plane requires an AccessKey credential source');\n if (options.endpoint !== undefined) {\n const value = options.endpoint.trim();\n const url = new URL(httpUrl(value.includes('://') ? value : `https://${value}`, 'AgentCore control endpoint'));\n if (url.pathname !== '/') throw new ConfigError('AgentCore control endpoint must not contain a path');\n this.endpoint = url.host; this.protocol = url.protocol.slice(0, -1);\n }\n this.logger = options.logger ?? nullLogger;\n }\n\n async resolveModel(connectionName: string, modelName?: string): Promise<ModelDescriptor> {\n const client = await this.client();\n const connections: models.ListModelConnectionsResponseBodyItems[] = [];\n let nextToken: string | undefined;\n do {\n const response = await this.invoke(client, 'ListModelConnections', () => client.listModelConnectionsWithOptions(this.workspaceId,\n new models.ListModelConnectionsRequest({ name: connectionName, searchType: 'accurate', maxResults: 100, nextToken }), {}, this.runtimeOptions()));\n const body = responseBody(response.body);\n connections.push(...(body.items ?? [])); nextToken = body.nextToken;\n } while (nextToken);\n const connection = exact(connections, 'name', connectionName, 'model connection', ModelConnectionNotFoundError);\n const connectionId = requiredString(connection.connectionId, 'connectionId');\n const available: models.ListModelsResponseBodyItems[] = [];\n do {\n const response = await this.invoke(client, 'ListModels', () => client.listModelsWithOptions(this.workspaceId,\n new models.ListModelsRequest({ connectionId, modelName, maxResults: 100, nextToken }), {}, this.runtimeOptions()));\n const body = responseBody(response.body);\n available.push(...(body.items ?? [])); nextToken = body.nextToken;\n } while (nextToken);\n let model: models.ListModelsResponseBodyItems;\n if (modelName !== undefined) model = exact(available, 'modelName', modelName, 'model');\n else {\n if (available.length !== 1) throw new ResourceNotConfiguredError(`model connection ${JSON.stringify(connectionName)} requires an explicit model name`);\n model = available[0]!;\n }\n const capabilities = Object.fromEntries(Object.entries(model.capabilities ?? {}).filter((entry): entry is [string, boolean] => typeof entry[1] === 'boolean'));\n const descriptor = Object.freeze({ connectionId, connectionName: requiredString(connection.name, 'connection name'),\n protocol: connection.protocol ?? '', providerType: connection.providerType ?? '',\n modelId: requiredString(model.modelId, 'modelId'), modelName: requiredString(model.modelName, 'modelName'),\n contextSize: model.contextSize, maxTokens: model.maxTokens, capabilities: Object.freeze(capabilities),\n });\n this.logger.info('agentcore.control_plane.model.resolve.succeeded', { connectionName, connectionId, modelName: descriptor.modelName });\n return descriptor;\n }\n\n async resolveMCP(name: string): Promise<MCPDescriptor> {\n const client = await this.client();\n const items: models.ListMcpsResponseBodyItems[] = [];\n let nextToken: string | undefined;\n do {\n const response = await this.invoke(client, 'ListMcps', () => client.listMcpsWithOptions(this.workspaceId,\n new models.ListMcpsRequest({ name, searchType: 'accurate', maxResults: 100, nextToken }), {}, this.runtimeOptions()));\n const body = responseBody(response.body);\n items.push(...(body.items ?? [])); nextToken = body.nextToken;\n } while (nextToken);\n const item = exact(items, 'name', name, 'MCP server', MCPServerNotFoundError);\n const descriptor = Object.freeze({ mcpServerId: requiredString(item.mcpServerId, 'mcpServerId'),\n name: requiredString(item.name, 'MCP name'), protocol: item.protocol ?? '', type: item.type ?? '', status: item.status ?? '',\n });\n this.logger.info('agentcore.control_plane.mcp.resolve.succeeded', { name, mcpServerId: descriptor.mcpServerId, protocol: descriptor.protocol });\n return descriptor;\n }\n\n async getSkill(name: string, version?: string): Promise<SkillArtifact> {\n const client = await this.client();\n if (version === undefined) {\n const detail = await this.invoke(client, 'GetSkillDetail', () => client.getSkillDetailWithOptions(this.workspaceId, name, new models.GetSkillDetailRequest({}), {}, this.runtimeOptions()));\n version = latestVersion(responseBody(detail.body).data);\n }\n const resolvedVersion = version;\n const response = await this.invoke(client, 'DownloadSkillVersionViaOss', () => client.downloadSkillVersionViaOssWithOptions(this.workspaceId, name, resolvedVersion,\n new models.DownloadSkillVersionViaOssRequest({}), {}, this.runtimeOptions()));\n const downloadURL = responseBody(response.body).data;\n if (typeof downloadURL !== 'string') throw new ConfigError('AgentCore returned an invalid Skill download URL');\n return { version: resolvedVersion, archive: await this.downloadSkill(downloadURL) };\n }\n\n close(): void { this.lifetime.abort(); }\n\n async resolveCredential(name: string): Promise<CredentialMetadata> {\n const client = await this.client();\n const params = new $OpenApiUtil.Params({ action: 'ListCredentials', version: '2026-08-04', protocol: 'HTTPS',\n pathname: `/workspaces/${encodeURIComponent(this.workspaceId)}/credentials`, method: 'GET', authType: 'AK',\n style: 'ROA', reqBodyType: 'json', bodyType: 'json' });\n const items: Record<string, unknown>[] = [];\n let nextToken: string | undefined;\n do {\n const request = new $OpenApiUtil.OpenApiRequest({ query: { name, maxResults: '100', ...(nextToken ? { nextToken } : {}) } });\n const response = await this.invoke(client, 'ListCredentials', () => client.callApi(params, request, this.runtimeOptions()));\n const body = responseBody(response.body);\n items.push(...(body.items ?? [])); nextToken = body.nextToken;\n } while (nextToken);\n const item = exact(items, 'name', name, 'credential');\n const refs = (item.resourceRefs ?? []) as Array<Record<string, unknown>>;\n return {\n credentialId: requiredString(item.credentialId, 'credentialId'), name: requiredString(item.name, 'name'),\n credentialType: requiredString(item.credentialType, 'credentialType'), resourceScope: String(item.resourceScope ?? ''),\n resourceRefs: refs.map((ref) => ({ resourceType: requiredString(ref.resourceType, 'resourceType'), resourceId: requiredString(ref.resourceId, 'resourceId') })),\n };\n }\n\n private runtimeOptions(): RuntimeOptions { return new RuntimeOptions({ autoretry: false, connectTimeout: 10_000, readTimeout: 30_000 }); }\n private async client(): Promise<Client> {\n this.lifetime.signal.throwIfAborted();\n const credential = this.options.accessKeyCredential ?? await this.options.resourceSTSProvider!.get(HIGH_CODE_SDK_PURPOSE);\n return new GeneratedClient(new $OpenApiUtil.Config({\n accessKeyId: credential.accessKeyId, accessKeySecret: credential.accessKeySecret, securityToken: credential.securityToken,\n regionId: this.regionId, endpoint: this.endpoint ?? this.discoveredEndpoint, protocol: this.protocol,\n }));\n }\n private async invoke<T>(client: Client, operation: string, call: () => Promise<T>): Promise<T> {\n this.lifetime.signal.throwIfAborted();\n const invoke = async () => {\n this.logger.debug('agentcore.control_plane.request.started', { operation, host: client._endpoint });\n try { return await call(); }\n catch (cause) {\n const data = errorField(cause, 'data');\n this.logger.warn('agentcore.control_plane.request.failed', { operation, host: client._endpoint,\n status: String(errorField(cause, 'statusCode') ?? '-'), code: String(errorField(cause, 'code') ?? '-'),\n requestId: String(errorField(cause, 'requestId') ?? errorField(data, 'RequestId') ?? errorField(data, 'requestId') ?? '-'),\n });\n throw new InvocationError('AgentCore control-plane request failed', { cause });\n }\n };\n try { return await invoke(); }\n catch (error) {\n if (!(error instanceof InvocationError) || this.endpoint || client._endpoint !== `agentcore.${this.regionId}.aliyuncs.com` || !endpointFailure(error.cause)) throw error;\n const host = `agentcore-vpc.${this.regionId}.aliyuncs.com`;\n this.logger.warn('agentcore.control_plane.endpoint.fallback', { operation, fromHost: client._endpoint, toHost: host });\n client._endpoint = host;\n const result = await invoke(); this.discoveredEndpoint = host; return result;\n }\n }\n\n private async downloadSkill(value: string): Promise<Uint8Array> {\n let original: URL;\n try { original = new URL(value); } catch { throw new ConfigError('AgentCore returned an invalid Skill download URL'); }\n if (!['http:', 'https:'].includes(original.protocol) || original.username || original.password) throw new ConfigError('AgentCore returned an invalid Skill download URL');\n let candidate = original;\n for (;;) {\n this.lifetime.signal.throwIfAborted();\n let status: number | undefined;\n try {\n const response = await fetch(candidate, { redirect: 'manual', signal: AbortSignal.any([this.lifetime.signal, AbortSignal.timeout(30_000)]) });\n if (response.ok) {\n const archive = await readBytes(response, 10 * 1024 * 1024, 'Skill archive');\n if (!archive.length) throw new ConfigError('Skill package is empty');\n return archive;\n }\n status = response.status; await response.body?.cancel();\n } catch (error) {\n this.lifetime.signal.throwIfAborted();\n if (error instanceof ConfigError) throw error;\n }\n this.logger.warn('agentcore.control_plane.skill.download.failed', { host: candidate.host, path: candidate.pathname, status });\n const fallback = candidate === original && (status === undefined || status >= 500 && status < 600) ? internalOSSURL(original) : undefined;\n if (!fallback) throw new InvocationError(status ? `Skill package download failed with HTTP ${status}` : 'Skill package download failed');\n this.logger.warn('agentcore.control_plane.skill.download.fallback', { fromHost: candidate.host, toHost: fallback.host });\n candidate = fallback;\n }\n }\n}\n\nfunction latestVersion(data?: models.GetSkillDetailResponseBodyData): string {\n if (!data) throw new ResourceNotConfiguredError('AgentCore Skill does not exist');\n for (const [label, value] of Object.entries(data.labels ?? {})) if (label.toLowerCase() === 'latest' && value) return value;\n const online = (data.versions ?? []).filter((v) => v.status?.toLowerCase() === 'online' && v.version);\n online.sort((a, b) => (b.updateTime ?? -1) - (a.updateTime ?? -1) || (b.version ?? '').localeCompare(a.version ?? ''));\n if (!online[0]?.version) throw new ResourceNotConfiguredError('AgentCore Skill has no online version');\n return online[0].version;\n}\n\nexport function internalOSSURL(url: URL): URL | undefined {\n const match = /^([a-z0-9-]+)\\.(oss-[a-z]+-[a-z0-9-]+)\\.aliyuncs\\.com$/.exec(url.hostname);\n if (!match || match[2]!.endsWith('-internal') || match[2]!.startsWith('oss-accelerate') || url.username || url.password) return undefined;\n if (url.searchParams.getAll('x-oss-additional-headers').some((v) => v.split(';').includes('host'))) return undefined;\n const result = new URL(url); result.hostname = `${match[1]}.${match[2]}-internal.aliyuncs.com`; return result;\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// src/server/model.ts
|
|
2
|
+
var EventType = {
|
|
3
|
+
TEXT: "TEXT",
|
|
4
|
+
TEXT_END: "TEXT_END",
|
|
5
|
+
REASONING: "REASONING",
|
|
6
|
+
REASONING_END: "REASONING_END",
|
|
7
|
+
TOOL_CALL: "TOOL_CALL",
|
|
8
|
+
TOOL_CALL_CHUNK: "TOOL_CALL_CHUNK",
|
|
9
|
+
TOOL_RESULT: "TOOL_RESULT",
|
|
10
|
+
ERROR: "ERROR"
|
|
11
|
+
};
|
|
12
|
+
var AgentEvent = class {
|
|
13
|
+
constructor(event, data) {
|
|
14
|
+
this.event = event;
|
|
15
|
+
this.data = data;
|
|
16
|
+
}
|
|
17
|
+
event;
|
|
18
|
+
data;
|
|
19
|
+
get type() {
|
|
20
|
+
return this.event;
|
|
21
|
+
}
|
|
22
|
+
toJSON() {
|
|
23
|
+
return { ...this.data, type: this.event };
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export {
|
|
28
|
+
EventType,
|
|
29
|
+
AgentEvent
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=chunk-PTJPB27L.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/model.ts"],"sourcesContent":["export type MessageRole = 'developer' | 'system' | 'user' | 'assistant' | 'tool' | 'activity' | 'reasoning';\nexport interface ToolCall { id: string; type: string; function: Record<string, unknown>; }\nexport interface Message {\n role: MessageRole;\n content?: string | ReadonlyArray<Record<string, unknown>> | null;\n id?: string;\n name?: string;\n toolCalls?: ToolCall[];\n toolCallId?: string;\n}\nexport interface AgentTool { name: string; description: string; parameters: Record<string, unknown>; }\nexport interface AgentRequest {\n protocol: string;\n messages: Message[];\n tools?: AgentTool[];\n stream: boolean;\n rawRequest: Request;\n rawPayload: Record<string, unknown>;\n /** Forward this signal to model/tool calls and any long-running application work. */\n signal: AbortSignal;\n}\nexport const EventType = {\n TEXT: 'TEXT', TEXT_END: 'TEXT_END', REASONING: 'REASONING', REASONING_END: 'REASONING_END', TOOL_CALL: 'TOOL_CALL',\n TOOL_CALL_CHUNK: 'TOOL_CALL_CHUNK', TOOL_RESULT: 'TOOL_RESULT', ERROR: 'ERROR',\n} as const;\nexport class AgentEvent {\n constructor(readonly event: string, readonly data: Record<string, unknown>) {}\n get type(): string { return this.event; }\n toJSON(): Record<string, unknown> { return { ...this.data, type: this.event }; }\n}\nexport type AgentOutput = string | AgentEvent | undefined | null;\nexport type AgentResult = AgentOutput | Iterable<AgentOutput> | AsyncIterable<AgentOutput>;\n"],"mappings":";AAqBO,IAAM,YAAY;AAAA,EACvB,MAAM;AAAA,EAAQ,UAAU;AAAA,EAAY,WAAW;AAAA,EAAa,eAAe;AAAA,EAAiB,WAAW;AAAA,EACvG,iBAAiB;AAAA,EAAmB,aAAa;AAAA,EAAe,OAAO;AACzE;AACO,IAAM,aAAN,MAAiB;AAAA,EACtB,YAAqB,OAAwB,MAA+B;AAAvD;AAAwB;AAAA,EAAgC;AAAA,EAAxD;AAAA,EAAwB;AAAA,EAC7C,IAAI,OAAe;AAAE,WAAO,KAAK;AAAA,EAAO;AAAA,EACxC,SAAkC;AAAE,WAAO,EAAE,GAAG,KAAK,MAAM,MAAM,KAAK,MAAM;AAAA,EAAG;AACjF;","names":[]}
|