@dudousxd/nestjs-agent 1.10.0 → 1.12.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/README.md +75 -48
- package/dist/{agent-deps.factory-DuTy1UyU.d.cts → agent-deps.factory-pqv_qTmJ.d.cts} +47 -71
- package/dist/{agent-deps.factory-DuTy1UyU.d.ts → agent-deps.factory-pqv_qTmJ.d.ts} +47 -71
- package/dist/durable/index.cjs +729 -584
- package/dist/durable/index.cjs.map +1 -1
- package/dist/durable/index.d.cts +1 -1
- package/dist/durable/index.d.ts +1 -1
- package/dist/durable/index.js +634 -489
- package/dist/durable/index.js.map +1 -1
- package/dist/index.cjs +805 -591
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +137 -55
- package/dist/index.d.ts +137 -55
- package/dist/index.js +699 -491
- package/dist/index.js.map +1 -1
- package/dist/media/index.cjs +11 -2
- package/dist/media/index.cjs.map +1 -1
- package/dist/media/index.d.cts +5 -1
- package/dist/media/index.d.ts +5 -1
- package/dist/media/index.js +11 -2
- package/dist/media/index.js.map +1 -1
- package/package.json +3 -3
package/dist/durable/index.cjs
CHANGED
|
@@ -828,8 +828,8 @@ AgentDurableModule = _ts_decorate4([
|
|
|
828
828
|
], AgentDurableModule);
|
|
829
829
|
|
|
830
830
|
// src/agent.module.ts
|
|
831
|
-
var
|
|
832
|
-
var
|
|
831
|
+
var import_nestjs_agent_core28 = require("@dudousxd/nestjs-agent-core");
|
|
832
|
+
var import_common24 = require("@nestjs/common");
|
|
833
833
|
var import_core4 = require("@nestjs/core");
|
|
834
834
|
|
|
835
835
|
// src/agent-deps.factory.ts
|
|
@@ -879,11 +879,10 @@ var AgentDepsFactory2 = class {
|
|
|
879
879
|
registry;
|
|
880
880
|
agents;
|
|
881
881
|
promptContributors;
|
|
882
|
-
quota;
|
|
883
882
|
pricingStore;
|
|
884
883
|
skills;
|
|
885
884
|
memory;
|
|
886
|
-
constructor(options, model, store, sink, rolesPolicy, registry, agents, promptContributors,
|
|
885
|
+
constructor(options, model, store, sink, rolesPolicy, registry, agents, promptContributors, pricingStore, skills, memory) {
|
|
887
886
|
this.options = options;
|
|
888
887
|
this.model = model;
|
|
889
888
|
this.store = store;
|
|
@@ -892,7 +891,6 @@ var AgentDepsFactory2 = class {
|
|
|
892
891
|
this.registry = registry;
|
|
893
892
|
this.agents = agents;
|
|
894
893
|
this.promptContributors = promptContributors;
|
|
895
|
-
this.quota = quota;
|
|
896
894
|
this.pricingStore = pricingStore;
|
|
897
895
|
this.skills = skills;
|
|
898
896
|
this.memory = memory;
|
|
@@ -953,7 +951,7 @@ var AgentDepsFactory2 = class {
|
|
|
953
951
|
} : {},
|
|
954
952
|
registry: this.registry,
|
|
955
953
|
promptContributors: this.promptContributors,
|
|
956
|
-
systemPrompt: definition?.systemPrompt ?? "You are a helpful assistant.",
|
|
954
|
+
systemPrompt: definition?.systemPrompt ?? this.options.systemPrompt ?? "You are a helpful assistant.",
|
|
957
955
|
maxSteps: definition?.maxSteps ?? 8,
|
|
958
956
|
...definition?.maxDelegationDepth !== void 0 ? {
|
|
959
957
|
maxDelegationDepth: definition.maxDelegationDepth
|
|
@@ -964,9 +962,6 @@ var AgentDepsFactory2 = class {
|
|
|
964
962
|
...definition?.modelId !== void 0 ? {
|
|
965
963
|
modelId: definition.modelId
|
|
966
964
|
} : {},
|
|
967
|
-
...this.quota !== void 0 ? {
|
|
968
|
-
quota: this.quota
|
|
969
|
-
} : {},
|
|
970
965
|
...this.pricingStore !== void 0 ? {
|
|
971
966
|
pricingStore: this.pricingStore
|
|
972
967
|
} : {},
|
|
@@ -1073,13 +1068,12 @@ AgentDepsFactory2 = _ts_decorate5([
|
|
|
1073
1068
|
_ts_param4(5, (0, import_common5.Inject)(import_nestjs_agent_core6.AGENT_TOOL_REGISTRY)),
|
|
1074
1069
|
_ts_param4(6, (0, import_common5.Inject)(import_nestjs_agent_core6.AGENT_REGISTRY)),
|
|
1075
1070
|
_ts_param4(7, (0, import_common5.Inject)(import_nestjs_agent_core6.AGENT_PROMPT_CONTRIBUTORS)),
|
|
1076
|
-
_ts_param4(8, (0, import_common5.
|
|
1071
|
+
_ts_param4(8, (0, import_common5.Optional)()),
|
|
1072
|
+
_ts_param4(8, (0, import_common5.Inject)(import_nestjs_agent_core6.AGENT_PRICING_STORE)),
|
|
1077
1073
|
_ts_param4(9, (0, import_common5.Optional)()),
|
|
1078
|
-
_ts_param4(9, (0, import_common5.Inject)(import_nestjs_agent_core6.
|
|
1074
|
+
_ts_param4(9, (0, import_common5.Inject)(import_nestjs_agent_core6.AGENT_SKILLS)),
|
|
1079
1075
|
_ts_param4(10, (0, import_common5.Optional)()),
|
|
1080
|
-
_ts_param4(10, (0, import_common5.Inject)(import_nestjs_agent_core6.
|
|
1081
|
-
_ts_param4(11, (0, import_common5.Optional)()),
|
|
1082
|
-
_ts_param4(11, (0, import_common5.Inject)(import_nestjs_agent_core6.AGENT_MEMORY)),
|
|
1076
|
+
_ts_param4(10, (0, import_common5.Inject)(import_nestjs_agent_core6.AGENT_MEMORY)),
|
|
1083
1077
|
_ts_metadata4("design:type", Function),
|
|
1084
1078
|
_ts_metadata4("design:paramtypes", [
|
|
1085
1079
|
typeof AgentModuleOptions === "undefined" ? Object : AgentModuleOptions,
|
|
@@ -1092,7 +1086,6 @@ AgentDepsFactory2 = _ts_decorate5([
|
|
|
1092
1086
|
Array,
|
|
1093
1087
|
Object,
|
|
1094
1088
|
Object,
|
|
1095
|
-
Object,
|
|
1096
1089
|
Object
|
|
1097
1090
|
])
|
|
1098
1091
|
], AgentDepsFactory2);
|
|
@@ -1133,16 +1126,14 @@ var AgentService = class {
|
|
|
1133
1126
|
runner;
|
|
1134
1127
|
store;
|
|
1135
1128
|
deps;
|
|
1136
|
-
quota;
|
|
1137
1129
|
staging;
|
|
1138
1130
|
models;
|
|
1139
1131
|
quotaProvider;
|
|
1140
1132
|
options;
|
|
1141
|
-
constructor(runner, store, deps,
|
|
1133
|
+
constructor(runner, store, deps, staging, models, quotaProvider, options) {
|
|
1142
1134
|
this.runner = runner;
|
|
1143
1135
|
this.store = store;
|
|
1144
1136
|
this.deps = deps;
|
|
1145
|
-
this.quota = quota;
|
|
1146
1137
|
this.staging = staging;
|
|
1147
1138
|
this.models = models;
|
|
1148
1139
|
this.quotaProvider = quotaProvider;
|
|
@@ -1158,33 +1149,23 @@ var AgentService = class {
|
|
|
1158
1149
|
actor
|
|
1159
1150
|
});
|
|
1160
1151
|
}
|
|
1161
|
-
const
|
|
1152
|
+
const { usedTokens, costUsd } = await this.store.quotaToday(actor.id, utcDay());
|
|
1162
1153
|
return {
|
|
1163
1154
|
windows: [
|
|
1164
1155
|
{
|
|
1165
1156
|
period: "day",
|
|
1166
|
-
usedTokens
|
|
1167
|
-
|
|
1168
|
-
limitTokens: today.limitTokens
|
|
1169
|
-
} : {},
|
|
1170
|
-
usedUsd: today.costUsd
|
|
1157
|
+
usedTokens,
|
|
1158
|
+
usedUsd: costUsd
|
|
1171
1159
|
}
|
|
1172
|
-
]
|
|
1173
|
-
...today.withinLimit ? {} : {
|
|
1174
|
-
blocked: {
|
|
1175
|
-
period: "day"
|
|
1176
|
-
}
|
|
1177
|
-
}
|
|
1160
|
+
]
|
|
1178
1161
|
};
|
|
1179
1162
|
}
|
|
1180
1163
|
/**
|
|
1181
1164
|
* Refuse a turn the actor's budget no longer covers — only when the host configured one
|
|
1182
|
-
* (`
|
|
1183
|
-
* quota the loop enforces keeps working as it always has.
|
|
1165
|
+
* (`quota`): the default report is informational.
|
|
1184
1166
|
*/
|
|
1185
1167
|
async assertWithinQuota(actor) {
|
|
1186
|
-
|
|
1187
|
-
if (!gated || this.quotaProvider === void 0) {
|
|
1168
|
+
if (this.options?.quota === void 0 || this.quotaProvider === void 0) {
|
|
1188
1169
|
return;
|
|
1189
1170
|
}
|
|
1190
1171
|
const { blocked } = await this.quotaProvider.report({
|
|
@@ -1435,7 +1416,7 @@ var AgentService = class {
|
|
|
1435
1416
|
async getThread(actor, threadId) {
|
|
1436
1417
|
await this.assertOwnsThread(actor, threadId);
|
|
1437
1418
|
const thread = await this.store.getThread(threadId);
|
|
1438
|
-
return thread === null ? null : this.toDetailView(thread);
|
|
1419
|
+
return thread === null ? null : this.toDetailView(thread, actor);
|
|
1439
1420
|
}
|
|
1440
1421
|
async deleteThread(actor, threadId) {
|
|
1441
1422
|
await this.assertOwnsThread(actor, threadId);
|
|
@@ -1527,19 +1508,46 @@ var AgentService = class {
|
|
|
1527
1508
|
...thread,
|
|
1528
1509
|
defaultAgent: thread.defaultAgent ?? null,
|
|
1529
1510
|
model: thread.model ?? null,
|
|
1530
|
-
activeRunId: await this.store.activeRunForThread?.(thread.id) ?? null
|
|
1511
|
+
activeRunId: await this.store.activeRunForThread?.(thread.id) ?? thread.activeRunId ?? null
|
|
1531
1512
|
};
|
|
1532
1513
|
}
|
|
1533
|
-
async toDetailView(thread) {
|
|
1514
|
+
async toDetailView(thread, actor) {
|
|
1534
1515
|
const summary = await this.toSummaryView(thread);
|
|
1535
1516
|
return {
|
|
1536
1517
|
...summary,
|
|
1537
|
-
messages: thread.messages,
|
|
1538
|
-
...thread.activeStreamId !== void 0 ? {
|
|
1539
|
-
activeStreamId: thread.activeStreamId
|
|
1540
|
-
} : {}
|
|
1518
|
+
messages: await this.freshAttachmentUrls(thread.messages, actor)
|
|
1541
1519
|
};
|
|
1542
1520
|
}
|
|
1521
|
+
/**
|
|
1522
|
+
* Re-mint each replayed attachment's url from the staging store, by `mediaId`: the url persisted
|
|
1523
|
+
* with the message was minted for THAT turn (a presigned url with an expiry), so an old turn would
|
|
1524
|
+
* otherwise show a dead link. The store's own access check applies — an attachment it will not
|
|
1525
|
+
* resolve for this actor keeps the url it was stored with.
|
|
1526
|
+
*/
|
|
1527
|
+
async freshAttachmentUrls(messages, actor) {
|
|
1528
|
+
const staging = this.staging;
|
|
1529
|
+
if (staging === void 0 || !messages.some((message) => message.attachments?.length)) {
|
|
1530
|
+
return messages;
|
|
1531
|
+
}
|
|
1532
|
+
return Promise.all(messages.map(async (message) => {
|
|
1533
|
+
if (message.attachments === void 0 || message.attachments.length === 0) return message;
|
|
1534
|
+
const attachments = await Promise.all(message.attachments.map(async (attachment) => {
|
|
1535
|
+
try {
|
|
1536
|
+
const fresh = await staging.resolve({
|
|
1537
|
+
mediaId: attachment.mediaId,
|
|
1538
|
+
actor
|
|
1539
|
+
});
|
|
1540
|
+
return fresh ?? attachment;
|
|
1541
|
+
} catch {
|
|
1542
|
+
return attachment;
|
|
1543
|
+
}
|
|
1544
|
+
}));
|
|
1545
|
+
return {
|
|
1546
|
+
...message,
|
|
1547
|
+
attachments
|
|
1548
|
+
};
|
|
1549
|
+
}));
|
|
1550
|
+
}
|
|
1543
1551
|
async promoteThread(actor, threadId) {
|
|
1544
1552
|
await this.assertOwnsThread(actor, threadId);
|
|
1545
1553
|
return this.store.promoteThread(threadId);
|
|
@@ -1649,30 +1657,6 @@ var AgentService = class {
|
|
|
1649
1657
|
return list;
|
|
1650
1658
|
}
|
|
1651
1659
|
/**
|
|
1652
|
-
* The day's usage for the badge: tokens + summed USD cost from the store, and the configured
|
|
1653
|
-
* limit from the quota store (null → unlimited). `withinLimit` comes from the quota store so it
|
|
1654
|
-
* can never drift from what enforcement uses.
|
|
1655
|
-
*/
|
|
1656
|
-
async quotaToday(actorRef) {
|
|
1657
|
-
const day = utcDay();
|
|
1658
|
-
const { usedTokens, costUsd } = await this.store.quotaToday(actorRef, day);
|
|
1659
|
-
if (this.quota === void 0) {
|
|
1660
|
-
return {
|
|
1661
|
-
usedTokens,
|
|
1662
|
-
costUsd,
|
|
1663
|
-
limitTokens: null,
|
|
1664
|
-
withinLimit: true
|
|
1665
|
-
};
|
|
1666
|
-
}
|
|
1667
|
-
const state = await this.quota.check(actorRef, day);
|
|
1668
|
-
return {
|
|
1669
|
-
usedTokens: state.usedTokens,
|
|
1670
|
-
costUsd,
|
|
1671
|
-
limitTokens: state.limitTokens,
|
|
1672
|
-
withinLimit: state.withinLimit
|
|
1673
|
-
};
|
|
1674
|
-
}
|
|
1675
|
-
/**
|
|
1676
1660
|
* Authorization seam for thread-scoped endpoints: the caller must own the thread. A missing
|
|
1677
1661
|
* thread is a 404; someone else's thread is a 403 — one actor never touches another's thread.
|
|
1678
1662
|
*/
|
|
@@ -1791,21 +1775,19 @@ AgentService = _ts_decorate6([
|
|
|
1791
1775
|
_ts_param5(0, (0, import_common6.Inject)(import_nestjs_agent_core8.AGENT_RUNNER)),
|
|
1792
1776
|
_ts_param5(1, (0, import_common6.Inject)(import_nestjs_agent_core8.AGENT_STORE)),
|
|
1793
1777
|
_ts_param5(2, (0, import_common6.Inject)(import_nestjs_agent_core8.AGENT_DEPS_FACTORY)),
|
|
1794
|
-
_ts_param5(3, (0, import_common6.
|
|
1778
|
+
_ts_param5(3, (0, import_common6.Optional)()),
|
|
1779
|
+
_ts_param5(3, (0, import_common6.Inject)(import_nestjs_agent_core8.AGENT_ATTACHMENT_STAGING)),
|
|
1795
1780
|
_ts_param5(4, (0, import_common6.Optional)()),
|
|
1796
|
-
_ts_param5(4, (0, import_common6.Inject)(import_nestjs_agent_core8.
|
|
1781
|
+
_ts_param5(4, (0, import_common6.Inject)(import_nestjs_agent_core8.AGENT_MODEL_CATALOG)),
|
|
1797
1782
|
_ts_param5(5, (0, import_common6.Optional)()),
|
|
1798
|
-
_ts_param5(5, (0, import_common6.Inject)(import_nestjs_agent_core8.
|
|
1783
|
+
_ts_param5(5, (0, import_common6.Inject)(import_nestjs_agent_core8.AGENT_QUOTA_PROVIDER)),
|
|
1799
1784
|
_ts_param5(6, (0, import_common6.Optional)()),
|
|
1800
|
-
_ts_param5(6, (0, import_common6.Inject)(import_nestjs_agent_core8.
|
|
1801
|
-
_ts_param5(7, (0, import_common6.Optional)()),
|
|
1802
|
-
_ts_param5(7, (0, import_common6.Inject)(import_nestjs_agent_core8.AGENT_OPTIONS)),
|
|
1785
|
+
_ts_param5(6, (0, import_common6.Inject)(import_nestjs_agent_core8.AGENT_OPTIONS)),
|
|
1803
1786
|
_ts_metadata5("design:type", Function),
|
|
1804
1787
|
_ts_metadata5("design:paramtypes", [
|
|
1805
1788
|
typeof AgentRunner === "undefined" ? Object : AgentRunner,
|
|
1806
1789
|
typeof AgentStore === "undefined" ? Object : AgentStore,
|
|
1807
1790
|
typeof AgentDepsFactory === "undefined" ? Object : AgentDepsFactory,
|
|
1808
|
-
Object,
|
|
1809
1791
|
typeof AttachmentStagingStore === "undefined" ? Object : AttachmentStagingStore,
|
|
1810
1792
|
typeof ModelCatalog === "undefined" ? Object : ModelCatalog,
|
|
1811
1793
|
typeof QuotaProvider === "undefined" ? Object : QuotaProvider,
|
|
@@ -1951,6 +1933,33 @@ AgentsController = _ts_decorate8([
|
|
|
1951
1933
|
var import_nestjs_agent_core10 = require("@dudousxd/nestjs-agent-core");
|
|
1952
1934
|
var import_common9 = require("@nestjs/common");
|
|
1953
1935
|
var import_platform_express = require("@nestjs/platform-express");
|
|
1936
|
+
|
|
1937
|
+
// src/attachment-limits.ts
|
|
1938
|
+
var DEFAULT_MAX_ATTACHMENT_BYTES = 20 * 1024 * 1024;
|
|
1939
|
+
var DEFAULT_ALLOWED_ATTACHMENT_CONTENT_TYPES = [
|
|
1940
|
+
"image/png",
|
|
1941
|
+
"image/jpeg",
|
|
1942
|
+
"image/gif",
|
|
1943
|
+
"image/webp",
|
|
1944
|
+
"application/pdf",
|
|
1945
|
+
"text/plain",
|
|
1946
|
+
"text/csv"
|
|
1947
|
+
];
|
|
1948
|
+
var MAX_ATTACHMENTS_PER_MESSAGE = 10;
|
|
1949
|
+
function attachmentLimits(options, staging) {
|
|
1950
|
+
const declared = staging?.describe?.();
|
|
1951
|
+
const own = options?.attachments;
|
|
1952
|
+
return {
|
|
1953
|
+
enabled: staging !== void 0,
|
|
1954
|
+
upload: staging === void 0 ? null : declared?.upload ?? "multipart",
|
|
1955
|
+
maxBytes: declared?.maxBytes ?? own?.maxBytes ?? DEFAULT_MAX_ATTACHMENT_BYTES,
|
|
1956
|
+
allowedContentTypes: declared?.allowedContentTypes ?? own?.allowedContentTypes ?? DEFAULT_ALLOWED_ATTACHMENT_CONTENT_TYPES,
|
|
1957
|
+
maxPerMessage: MAX_ATTACHMENTS_PER_MESSAGE
|
|
1958
|
+
};
|
|
1959
|
+
}
|
|
1960
|
+
__name(attachmentLimits, "attachmentLimits");
|
|
1961
|
+
|
|
1962
|
+
// src/controller/attachments.controller.ts
|
|
1954
1963
|
function _ts_decorate9(decorators, target, key, desc) {
|
|
1955
1964
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1956
1965
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
@@ -1977,18 +1986,8 @@ function _ts_param7(paramIndex, decorator) {
|
|
|
1977
1986
|
};
|
|
1978
1987
|
}
|
|
1979
1988
|
__name(_ts_param7, "_ts_param");
|
|
1980
|
-
var DEFAULT_MAX_ATTACHMENT_BYTES = 20 * 1024 * 1024;
|
|
1981
1989
|
var HARD_MAX_ATTACHMENT_BYTES = 32 * 1024 * 1024;
|
|
1982
1990
|
var ATTACHMENT_PAGE_SIZE = 50;
|
|
1983
|
-
var DEFAULT_ALLOWED_ATTACHMENT_CONTENT_TYPES = [
|
|
1984
|
-
"image/png",
|
|
1985
|
-
"image/jpeg",
|
|
1986
|
-
"image/gif",
|
|
1987
|
-
"image/webp",
|
|
1988
|
-
"application/pdf",
|
|
1989
|
-
"text/plain",
|
|
1990
|
-
"text/csv"
|
|
1991
|
-
];
|
|
1992
1991
|
var AttachmentsController = class {
|
|
1993
1992
|
static {
|
|
1994
1993
|
__name(this, "AttachmentsController");
|
|
@@ -2004,17 +2003,6 @@ var AttachmentsController = class {
|
|
|
2004
2003
|
this.staging = staging;
|
|
2005
2004
|
}
|
|
2006
2005
|
/**
|
|
2007
|
-
* `attachments.upload: true` is what mounts this controller at all (see `agent.module.ts`), so by
|
|
2008
|
-
* the time an instance exists the host clearly intends uploads to work. Fail boot loudly rather
|
|
2009
|
-
* than mounting a controller that would 501 on every single request because nobody bound
|
|
2010
|
-
* `AGENT_ATTACHMENT_STAGING`.
|
|
2011
|
-
*/
|
|
2012
|
-
onModuleInit() {
|
|
2013
|
-
if (this.options.attachments?.upload === true && this.staging === void 0) {
|
|
2014
|
-
throw new Error("AgentModule: attachments.upload is true but no AGENT_ATTACHMENT_STAGING provider is bound. Bind one (e.g. `{ provide: AGENT_ATTACHMENT_STAGING, useClass: MyStagingStore }`) in a module imported alongside AgentModule, or set attachments.upload to false.");
|
|
2015
|
-
}
|
|
2016
|
-
}
|
|
2017
|
-
/**
|
|
2018
2006
|
* The caller's own staged files, newest first — the one question `GET /agent/threads/:id` cannot
|
|
2019
2007
|
* answer, since an upload that was never sent belongs to no thread.
|
|
2020
2008
|
*
|
|
@@ -2031,16 +2019,15 @@ var AttachmentsController = class {
|
|
|
2031
2019
|
}
|
|
2032
2020
|
async upload(req, file) {
|
|
2033
2021
|
if (this.staging === void 0) {
|
|
2034
|
-
throw new import_common9.NotImplementedException("Attachment upload is not configured on this server.");
|
|
2022
|
+
throw new import_common9.NotImplementedException("Attachment upload is not configured on this server: bind AGENT_ATTACHMENT_STAGING (e.g. import AgentMediaAttachmentsModule).");
|
|
2035
2023
|
}
|
|
2036
2024
|
if (file === void 0) {
|
|
2037
2025
|
throw new import_common9.BadRequestException('multipart field "file" is required');
|
|
2038
2026
|
}
|
|
2039
|
-
const allowedContentTypes = this.options.
|
|
2027
|
+
const { allowedContentTypes, maxBytes } = attachmentLimits(this.options, this.staging);
|
|
2040
2028
|
if (!allowedContentTypes.includes(file.mimetype)) {
|
|
2041
2029
|
throw new import_common9.UnsupportedMediaTypeException(`content type "${file.mimetype}" is not allowed (allowed: ${allowedContentTypes.join(", ")})`);
|
|
2042
2030
|
}
|
|
2043
|
-
const maxBytes = this.options.attachments?.maxBytes ?? DEFAULT_MAX_ATTACHMENT_BYTES;
|
|
2044
2031
|
if (file.size > maxBytes) {
|
|
2045
2032
|
throw new import_common9.PayloadTooLargeException(`file exceeds the ${maxBytes}-byte limit`);
|
|
2046
2033
|
}
|
|
@@ -2123,7 +2110,6 @@ function _ts_param8(paramIndex, decorator) {
|
|
|
2123
2110
|
};
|
|
2124
2111
|
}
|
|
2125
2112
|
__name(_ts_param8, "_ts_param");
|
|
2126
|
-
var MAX_ATTACHMENTS_PER_MESSAGE = 10;
|
|
2127
2113
|
function attachmentRefs(claimed) {
|
|
2128
2114
|
if (claimed === void 0) {
|
|
2129
2115
|
return [];
|
|
@@ -2138,6 +2124,9 @@ function attachmentRefs(claimed) {
|
|
|
2138
2124
|
if (typeof entry !== "object" || entry === null || !("mediaId" in entry)) {
|
|
2139
2125
|
throw new import_common10.BadRequestException("each attachment must be an object with a mediaId");
|
|
2140
2126
|
}
|
|
2127
|
+
if (Object.keys(entry).some((key) => key !== "mediaId")) {
|
|
2128
|
+
throw new import_common10.BadRequestException("attachments are { mediaId } refs \u2014 send nothing but the id");
|
|
2129
|
+
}
|
|
2141
2130
|
const { mediaId } = entry;
|
|
2142
2131
|
if (typeof mediaId !== "string" || mediaId.length === 0) {
|
|
2143
2132
|
throw new import_common10.BadRequestException("each attachment must carry a non-empty string mediaId");
|
|
@@ -2333,9 +2322,98 @@ function parseCursor(raw) {
|
|
|
2333
2322
|
}
|
|
2334
2323
|
__name(parseCursor, "parseCursor");
|
|
2335
2324
|
|
|
2336
|
-
// src/controller/
|
|
2325
|
+
// src/controller/config.controller.ts
|
|
2337
2326
|
var import_nestjs_agent_core12 = require("@dudousxd/nestjs-agent-core");
|
|
2338
2327
|
var import_common11 = require("@nestjs/common");
|
|
2328
|
+
|
|
2329
|
+
// src/resolver/anonymous-actor-resolver.ts
|
|
2330
|
+
var import_node_crypto2 = require("crypto");
|
|
2331
|
+
var TOKEN_PATTERN = /^[A-Za-z0-9_-]{43}$/;
|
|
2332
|
+
var MINTED = /* @__PURE__ */ Symbol("nestjs-agent:anonymous-token");
|
|
2333
|
+
function readCookie(req, name) {
|
|
2334
|
+
const header = req.headers?.cookie;
|
|
2335
|
+
const raw = Array.isArray(header) ? header.join("; ") : header;
|
|
2336
|
+
if (raw === void 0) return void 0;
|
|
2337
|
+
for (const pair of raw.split(";")) {
|
|
2338
|
+
const index = pair.indexOf("=");
|
|
2339
|
+
if (index === -1) continue;
|
|
2340
|
+
if (pair.slice(0, index).trim() === name) {
|
|
2341
|
+
try {
|
|
2342
|
+
return decodeURIComponent(pair.slice(index + 1).trim());
|
|
2343
|
+
} catch {
|
|
2344
|
+
return void 0;
|
|
2345
|
+
}
|
|
2346
|
+
}
|
|
2347
|
+
}
|
|
2348
|
+
return void 0;
|
|
2349
|
+
}
|
|
2350
|
+
__name(readCookie, "readCookie");
|
|
2351
|
+
function isHttps(req) {
|
|
2352
|
+
if (req.secure === true) return true;
|
|
2353
|
+
const forwarded = req.headers?.["x-forwarded-proto"];
|
|
2354
|
+
const proto = Array.isArray(forwarded) ? forwarded[0] : forwarded;
|
|
2355
|
+
return proto?.split(",")[0]?.trim() === "https";
|
|
2356
|
+
}
|
|
2357
|
+
__name(isHttps, "isHttps");
|
|
2358
|
+
var AnonymousActorResolver = class {
|
|
2359
|
+
static {
|
|
2360
|
+
__name(this, "AnonymousActorResolver");
|
|
2361
|
+
}
|
|
2362
|
+
options;
|
|
2363
|
+
cookieName;
|
|
2364
|
+
roles;
|
|
2365
|
+
constructor(options = {}) {
|
|
2366
|
+
this.options = options;
|
|
2367
|
+
this.cookieName = options.cookieName ?? "agent_anon";
|
|
2368
|
+
this.roles = options.roles ?? [
|
|
2369
|
+
"anonymous"
|
|
2370
|
+
];
|
|
2371
|
+
}
|
|
2372
|
+
resolve(request) {
|
|
2373
|
+
const req = typeof request === "object" && request !== null ? request : {};
|
|
2374
|
+
let token = req[MINTED] ?? readCookie(req, this.cookieName);
|
|
2375
|
+
if (token === void 0 || !TOKEN_PATTERN.test(token)) {
|
|
2376
|
+
token = (0, import_node_crypto2.randomBytes)(32).toString("base64url");
|
|
2377
|
+
req[MINTED] = token;
|
|
2378
|
+
this.setCookie(req, token);
|
|
2379
|
+
}
|
|
2380
|
+
const digest = (0, import_node_crypto2.createHash)("sha256").update(token).digest("base64url").slice(0, 32);
|
|
2381
|
+
return {
|
|
2382
|
+
id: `anon:${digest}`,
|
|
2383
|
+
roles: [
|
|
2384
|
+
...this.roles
|
|
2385
|
+
]
|
|
2386
|
+
};
|
|
2387
|
+
}
|
|
2388
|
+
setCookie(req, token) {
|
|
2389
|
+
const res = req.res;
|
|
2390
|
+
if (res?.setHeader === void 0 || res.headersSent === true) return;
|
|
2391
|
+
const sameSite = this.options.sameSite ?? "lax";
|
|
2392
|
+
const secureOption = this.options.secure ?? "auto";
|
|
2393
|
+
const secure = sameSite === "none" || (secureOption === "auto" ? isHttps(req) : secureOption);
|
|
2394
|
+
const maxAge = Math.round((this.options.maxAgeDays ?? 365) * 24 * 60 * 60);
|
|
2395
|
+
const cookie = [
|
|
2396
|
+
`${this.cookieName}=${token}`,
|
|
2397
|
+
`Path=${this.options.path ?? "/"}`,
|
|
2398
|
+
`Max-Age=${maxAge}`,
|
|
2399
|
+
"HttpOnly",
|
|
2400
|
+
`SameSite=${sameSite === "none" ? "None" : sameSite === "strict" ? "Strict" : "Lax"}`,
|
|
2401
|
+
...secure ? [
|
|
2402
|
+
"Secure"
|
|
2403
|
+
] : []
|
|
2404
|
+
].join("; ");
|
|
2405
|
+
const existing = res.getHeader?.("Set-Cookie");
|
|
2406
|
+
const list = Array.isArray(existing) ? existing.map(String) : existing !== void 0 ? [
|
|
2407
|
+
String(existing)
|
|
2408
|
+
] : [];
|
|
2409
|
+
res.setHeader("Set-Cookie", [
|
|
2410
|
+
...list,
|
|
2411
|
+
cookie
|
|
2412
|
+
]);
|
|
2413
|
+
}
|
|
2414
|
+
};
|
|
2415
|
+
|
|
2416
|
+
// src/controller/config.controller.ts
|
|
2339
2417
|
function _ts_decorate11(decorators, target, key, desc) {
|
|
2340
2418
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2341
2419
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
@@ -2362,6 +2440,91 @@ function _ts_param9(paramIndex, decorator) {
|
|
|
2362
2440
|
};
|
|
2363
2441
|
}
|
|
2364
2442
|
__name(_ts_param9, "_ts_param");
|
|
2443
|
+
var ConfigController = class {
|
|
2444
|
+
static {
|
|
2445
|
+
__name(this, "ConfigController");
|
|
2446
|
+
}
|
|
2447
|
+
options;
|
|
2448
|
+
actorResolver;
|
|
2449
|
+
staging;
|
|
2450
|
+
models;
|
|
2451
|
+
constructor(options, actorResolver, staging, models) {
|
|
2452
|
+
this.options = options;
|
|
2453
|
+
this.actorResolver = actorResolver;
|
|
2454
|
+
this.staging = staging;
|
|
2455
|
+
this.models = models;
|
|
2456
|
+
}
|
|
2457
|
+
async config(req) {
|
|
2458
|
+
await this.actorResolver.resolve(req);
|
|
2459
|
+
return {
|
|
2460
|
+
attachments: attachmentLimits(this.options, this.staging),
|
|
2461
|
+
models: {
|
|
2462
|
+
enabled: this.models !== void 0
|
|
2463
|
+
},
|
|
2464
|
+
quota: {
|
|
2465
|
+
enforced: this.options.quota !== void 0
|
|
2466
|
+
},
|
|
2467
|
+
identity: {
|
|
2468
|
+
anonymous: this.actorResolver instanceof AnonymousActorResolver
|
|
2469
|
+
}
|
|
2470
|
+
};
|
|
2471
|
+
}
|
|
2472
|
+
};
|
|
2473
|
+
_ts_decorate11([
|
|
2474
|
+
(0, import_common11.Get)(),
|
|
2475
|
+
_ts_param9(0, (0, import_common11.Req)()),
|
|
2476
|
+
_ts_metadata10("design:type", Function),
|
|
2477
|
+
_ts_metadata10("design:paramtypes", [
|
|
2478
|
+
typeof Request === "undefined" ? Object : Request
|
|
2479
|
+
]),
|
|
2480
|
+
_ts_metadata10("design:returntype", Promise)
|
|
2481
|
+
], ConfigController.prototype, "config", null);
|
|
2482
|
+
ConfigController = _ts_decorate11([
|
|
2483
|
+
(0, import_common11.Controller)("config"),
|
|
2484
|
+
_ts_param9(0, (0, import_common11.Inject)(import_nestjs_agent_core12.AGENT_OPTIONS)),
|
|
2485
|
+
_ts_param9(1, (0, import_common11.Inject)(import_nestjs_agent_core12.AGENT_ACTOR_RESOLVER)),
|
|
2486
|
+
_ts_param9(2, (0, import_common11.Optional)()),
|
|
2487
|
+
_ts_param9(2, (0, import_common11.Inject)(import_nestjs_agent_core12.AGENT_ATTACHMENT_STAGING)),
|
|
2488
|
+
_ts_param9(3, (0, import_common11.Optional)()),
|
|
2489
|
+
_ts_param9(3, (0, import_common11.Inject)(import_nestjs_agent_core12.AGENT_MODEL_CATALOG)),
|
|
2490
|
+
_ts_metadata10("design:type", Function),
|
|
2491
|
+
_ts_metadata10("design:paramtypes", [
|
|
2492
|
+
typeof AgentModuleOptions === "undefined" ? Object : AgentModuleOptions,
|
|
2493
|
+
typeof ActorResolver === "undefined" ? Object : ActorResolver,
|
|
2494
|
+
Object,
|
|
2495
|
+
Object
|
|
2496
|
+
])
|
|
2497
|
+
], ConfigController);
|
|
2498
|
+
|
|
2499
|
+
// src/controller/memories.controller.ts
|
|
2500
|
+
var import_nestjs_agent_core13 = require("@dudousxd/nestjs-agent-core");
|
|
2501
|
+
var import_common12 = require("@nestjs/common");
|
|
2502
|
+
function _ts_decorate12(decorators, target, key, desc) {
|
|
2503
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2504
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
2505
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
2506
|
+
} else {
|
|
2507
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
2508
|
+
if (d = decorators[i]) {
|
|
2509
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
2510
|
+
}
|
|
2511
|
+
}
|
|
2512
|
+
}
|
|
2513
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
2514
|
+
}
|
|
2515
|
+
__name(_ts_decorate12, "_ts_decorate");
|
|
2516
|
+
function _ts_metadata11(metadataKey, metadataValue) {
|
|
2517
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
2518
|
+
return Reflect.metadata(metadataKey, metadataValue);
|
|
2519
|
+
}
|
|
2520
|
+
}
|
|
2521
|
+
__name(_ts_metadata11, "_ts_metadata");
|
|
2522
|
+
function _ts_param10(paramIndex, decorator) {
|
|
2523
|
+
return function(target, key) {
|
|
2524
|
+
decorator(target, key, paramIndex);
|
|
2525
|
+
};
|
|
2526
|
+
}
|
|
2527
|
+
__name(_ts_param10, "_ts_param");
|
|
2365
2528
|
var MemoriesController = class {
|
|
2366
2529
|
static {
|
|
2367
2530
|
__name(this, "MemoriesController");
|
|
@@ -2395,20 +2558,20 @@ var MemoriesController = class {
|
|
|
2395
2558
|
*/
|
|
2396
2559
|
async forget(req, id) {
|
|
2397
2560
|
if (this.memory === void 0) {
|
|
2398
|
-
throw new
|
|
2561
|
+
throw new import_common12.NotFoundException("No memory is configured in this deployment.");
|
|
2399
2562
|
}
|
|
2400
2563
|
const actor = await this.actorResolver.resolve(req);
|
|
2401
2564
|
const digest = await this.unbounded("", actor);
|
|
2402
2565
|
const entry = digest.entries.find((candidate) => candidate.id === id);
|
|
2403
2566
|
if (entry === void 0) {
|
|
2404
|
-
throw new
|
|
2567
|
+
throw new import_common12.NotFoundException(`No memory with id "${id}".`);
|
|
2405
2568
|
}
|
|
2406
|
-
const verdict = (0,
|
|
2569
|
+
const verdict = (0, import_nestjs_agent_core13.memoryForgetVerdict)({
|
|
2407
2570
|
record: entry,
|
|
2408
2571
|
actor
|
|
2409
2572
|
});
|
|
2410
2573
|
if (!verdict.allowed) {
|
|
2411
|
-
throw new
|
|
2574
|
+
throw new import_common12.ForbiddenException(verdict.reason);
|
|
2412
2575
|
}
|
|
2413
2576
|
return {
|
|
2414
2577
|
forgotten: await this.memory.provider.forget({
|
|
@@ -2422,7 +2585,7 @@ var MemoriesController = class {
|
|
|
2422
2585
|
}
|
|
2423
2586
|
async unbounded(threadId, actor) {
|
|
2424
2587
|
const config = this.memory;
|
|
2425
|
-
return await (0,
|
|
2588
|
+
return await (0, import_nestjs_agent_core13.offerMemories)({
|
|
2426
2589
|
config: {
|
|
2427
2590
|
...config,
|
|
2428
2591
|
maxMemories: Number.POSITIVE_INFINITY
|
|
@@ -2434,44 +2597,44 @@ var MemoriesController = class {
|
|
|
2434
2597
|
});
|
|
2435
2598
|
}
|
|
2436
2599
|
};
|
|
2437
|
-
|
|
2438
|
-
(0,
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2600
|
+
_ts_decorate12([
|
|
2601
|
+
(0, import_common12.Get)(),
|
|
2602
|
+
_ts_param10(0, (0, import_common12.Req)()),
|
|
2603
|
+
_ts_param10(1, (0, import_common12.Query)("threadId")),
|
|
2604
|
+
_ts_metadata11("design:type", Function),
|
|
2605
|
+
_ts_metadata11("design:paramtypes", [
|
|
2443
2606
|
typeof Request === "undefined" ? Object : Request,
|
|
2444
2607
|
String
|
|
2445
2608
|
]),
|
|
2446
|
-
|
|
2609
|
+
_ts_metadata11("design:returntype", Promise)
|
|
2447
2610
|
], MemoriesController.prototype, "list", null);
|
|
2448
|
-
|
|
2449
|
-
(0,
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2611
|
+
_ts_decorate12([
|
|
2612
|
+
(0, import_common12.Delete)(":id"),
|
|
2613
|
+
_ts_param10(0, (0, import_common12.Req)()),
|
|
2614
|
+
_ts_param10(1, (0, import_common12.Param)("id")),
|
|
2615
|
+
_ts_metadata11("design:type", Function),
|
|
2616
|
+
_ts_metadata11("design:paramtypes", [
|
|
2454
2617
|
typeof Request === "undefined" ? Object : Request,
|
|
2455
2618
|
String
|
|
2456
2619
|
]),
|
|
2457
|
-
|
|
2620
|
+
_ts_metadata11("design:returntype", Promise)
|
|
2458
2621
|
], MemoriesController.prototype, "forget", null);
|
|
2459
|
-
MemoriesController =
|
|
2460
|
-
(0,
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2622
|
+
MemoriesController = _ts_decorate12([
|
|
2623
|
+
(0, import_common12.Controller)("memories"),
|
|
2624
|
+
_ts_param10(0, (0, import_common12.Inject)(import_nestjs_agent_core13.AGENT_ACTOR_RESOLVER)),
|
|
2625
|
+
_ts_param10(1, (0, import_common12.Optional)()),
|
|
2626
|
+
_ts_param10(1, (0, import_common12.Inject)(import_nestjs_agent_core13.AGENT_MEMORY)),
|
|
2627
|
+
_ts_metadata11("design:type", Function),
|
|
2628
|
+
_ts_metadata11("design:paramtypes", [
|
|
2466
2629
|
typeof ActorResolver === "undefined" ? Object : ActorResolver,
|
|
2467
2630
|
Object
|
|
2468
2631
|
])
|
|
2469
2632
|
], MemoriesController);
|
|
2470
2633
|
|
|
2471
2634
|
// src/controller/messages.controller.ts
|
|
2472
|
-
var
|
|
2473
|
-
var
|
|
2474
|
-
function
|
|
2635
|
+
var import_nestjs_agent_core14 = require("@dudousxd/nestjs-agent-core");
|
|
2636
|
+
var import_common13 = require("@nestjs/common");
|
|
2637
|
+
function _ts_decorate13(decorators, target, key, desc) {
|
|
2475
2638
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2476
2639
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
2477
2640
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -2484,19 +2647,19 @@ function _ts_decorate12(decorators, target, key, desc) {
|
|
|
2484
2647
|
}
|
|
2485
2648
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
2486
2649
|
}
|
|
2487
|
-
__name(
|
|
2488
|
-
function
|
|
2650
|
+
__name(_ts_decorate13, "_ts_decorate");
|
|
2651
|
+
function _ts_metadata12(metadataKey, metadataValue) {
|
|
2489
2652
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
2490
2653
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
2491
2654
|
}
|
|
2492
2655
|
}
|
|
2493
|
-
__name(
|
|
2494
|
-
function
|
|
2656
|
+
__name(_ts_metadata12, "_ts_metadata");
|
|
2657
|
+
function _ts_param11(paramIndex, decorator) {
|
|
2495
2658
|
return function(target, key) {
|
|
2496
2659
|
decorator(target, key, paramIndex);
|
|
2497
2660
|
};
|
|
2498
2661
|
}
|
|
2499
|
-
__name(
|
|
2662
|
+
__name(_ts_param11, "_ts_param");
|
|
2500
2663
|
var MessagesController = class {
|
|
2501
2664
|
static {
|
|
2502
2665
|
__name(this, "MessagesController");
|
|
@@ -2524,34 +2687,34 @@ var MessagesController = class {
|
|
|
2524
2687
|
};
|
|
2525
2688
|
}
|
|
2526
2689
|
};
|
|
2527
|
-
|
|
2528
|
-
(0,
|
|
2529
|
-
(0,
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2690
|
+
_ts_decorate13([
|
|
2691
|
+
(0, import_common13.Post)(":id/feedback"),
|
|
2692
|
+
(0, import_common13.HttpCode)(200),
|
|
2693
|
+
_ts_param11(0, (0, import_common13.Req)()),
|
|
2694
|
+
_ts_param11(1, (0, import_common13.Param)("id")),
|
|
2695
|
+
_ts_param11(2, (0, import_common13.Body)()),
|
|
2696
|
+
_ts_metadata12("design:type", Function),
|
|
2697
|
+
_ts_metadata12("design:paramtypes", [
|
|
2535
2698
|
typeof Request === "undefined" ? Object : Request,
|
|
2536
2699
|
String,
|
|
2537
2700
|
typeof FeedbackBody === "undefined" ? Object : FeedbackBody
|
|
2538
2701
|
]),
|
|
2539
|
-
|
|
2702
|
+
_ts_metadata12("design:returntype", Promise)
|
|
2540
2703
|
], MessagesController.prototype, "feedback", null);
|
|
2541
|
-
MessagesController =
|
|
2542
|
-
(0,
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2704
|
+
MessagesController = _ts_decorate13([
|
|
2705
|
+
(0, import_common13.Controller)("messages"),
|
|
2706
|
+
_ts_param11(1, (0, import_common13.Inject)(import_nestjs_agent_core14.AGENT_ACTOR_RESOLVER)),
|
|
2707
|
+
_ts_metadata12("design:type", Function),
|
|
2708
|
+
_ts_metadata12("design:paramtypes", [
|
|
2546
2709
|
typeof AgentService === "undefined" ? Object : AgentService,
|
|
2547
2710
|
typeof ActorResolver === "undefined" ? Object : ActorResolver
|
|
2548
2711
|
])
|
|
2549
2712
|
], MessagesController);
|
|
2550
2713
|
|
|
2551
2714
|
// src/controller/models.controller.ts
|
|
2552
|
-
var
|
|
2553
|
-
var
|
|
2554
|
-
function
|
|
2715
|
+
var import_nestjs_agent_core15 = require("@dudousxd/nestjs-agent-core");
|
|
2716
|
+
var import_common14 = require("@nestjs/common");
|
|
2717
|
+
function _ts_decorate14(decorators, target, key, desc) {
|
|
2555
2718
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2556
2719
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
2557
2720
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -2564,19 +2727,19 @@ function _ts_decorate13(decorators, target, key, desc) {
|
|
|
2564
2727
|
}
|
|
2565
2728
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
2566
2729
|
}
|
|
2567
|
-
__name(
|
|
2568
|
-
function
|
|
2730
|
+
__name(_ts_decorate14, "_ts_decorate");
|
|
2731
|
+
function _ts_metadata13(metadataKey, metadataValue) {
|
|
2569
2732
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
2570
2733
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
2571
2734
|
}
|
|
2572
2735
|
}
|
|
2573
|
-
__name(
|
|
2574
|
-
function
|
|
2736
|
+
__name(_ts_metadata13, "_ts_metadata");
|
|
2737
|
+
function _ts_param12(paramIndex, decorator) {
|
|
2575
2738
|
return function(target, key) {
|
|
2576
2739
|
decorator(target, key, paramIndex);
|
|
2577
2740
|
};
|
|
2578
2741
|
}
|
|
2579
|
-
__name(
|
|
2742
|
+
__name(_ts_param12, "_ts_param");
|
|
2580
2743
|
var ModelsController = class {
|
|
2581
2744
|
static {
|
|
2582
2745
|
__name(this, "ModelsController");
|
|
@@ -2596,31 +2759,31 @@ var ModelsController = class {
|
|
|
2596
2759
|
return this.agent.listModels(actor, agent);
|
|
2597
2760
|
}
|
|
2598
2761
|
};
|
|
2599
|
-
|
|
2600
|
-
(0,
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2762
|
+
_ts_decorate14([
|
|
2763
|
+
(0, import_common14.Get)(),
|
|
2764
|
+
_ts_param12(0, (0, import_common14.Req)()),
|
|
2765
|
+
_ts_param12(1, (0, import_common14.Query)("agent")),
|
|
2766
|
+
_ts_metadata13("design:type", Function),
|
|
2767
|
+
_ts_metadata13("design:paramtypes", [
|
|
2605
2768
|
typeof Request === "undefined" ? Object : Request,
|
|
2606
2769
|
String
|
|
2607
2770
|
]),
|
|
2608
|
-
|
|
2771
|
+
_ts_metadata13("design:returntype", Promise)
|
|
2609
2772
|
], ModelsController.prototype, "list", null);
|
|
2610
|
-
ModelsController =
|
|
2611
|
-
(0,
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2773
|
+
ModelsController = _ts_decorate14([
|
|
2774
|
+
(0, import_common14.Controller)("models"),
|
|
2775
|
+
_ts_param12(1, (0, import_common14.Inject)(import_nestjs_agent_core15.AGENT_ACTOR_RESOLVER)),
|
|
2776
|
+
_ts_metadata13("design:type", Function),
|
|
2777
|
+
_ts_metadata13("design:paramtypes", [
|
|
2615
2778
|
typeof AgentService === "undefined" ? Object : AgentService,
|
|
2616
2779
|
typeof ActorResolver === "undefined" ? Object : ActorResolver
|
|
2617
2780
|
])
|
|
2618
2781
|
], ModelsController);
|
|
2619
2782
|
|
|
2620
2783
|
// src/controller/quota.controller.ts
|
|
2621
|
-
var
|
|
2622
|
-
var
|
|
2623
|
-
function
|
|
2784
|
+
var import_nestjs_agent_core16 = require("@dudousxd/nestjs-agent-core");
|
|
2785
|
+
var import_common15 = require("@nestjs/common");
|
|
2786
|
+
function _ts_decorate15(decorators, target, key, desc) {
|
|
2624
2787
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2625
2788
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
2626
2789
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -2633,19 +2796,19 @@ function _ts_decorate14(decorators, target, key, desc) {
|
|
|
2633
2796
|
}
|
|
2634
2797
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
2635
2798
|
}
|
|
2636
|
-
__name(
|
|
2637
|
-
function
|
|
2799
|
+
__name(_ts_decorate15, "_ts_decorate");
|
|
2800
|
+
function _ts_metadata14(metadataKey, metadataValue) {
|
|
2638
2801
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
2639
2802
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
2640
2803
|
}
|
|
2641
2804
|
}
|
|
2642
|
-
__name(
|
|
2643
|
-
function
|
|
2805
|
+
__name(_ts_metadata14, "_ts_metadata");
|
|
2806
|
+
function _ts_param13(paramIndex, decorator) {
|
|
2644
2807
|
return function(target, key) {
|
|
2645
2808
|
decorator(target, key, paramIndex);
|
|
2646
2809
|
};
|
|
2647
2810
|
}
|
|
2648
|
-
__name(
|
|
2811
|
+
__name(_ts_param13, "_ts_param");
|
|
2649
2812
|
var QuotaController = class {
|
|
2650
2813
|
static {
|
|
2651
2814
|
__name(this, "QuotaController");
|
|
@@ -2664,43 +2827,30 @@ var QuotaController = class {
|
|
|
2664
2827
|
const actor = await this.actorResolver.resolve(req);
|
|
2665
2828
|
return this.agent.quotaReport(actor);
|
|
2666
2829
|
}
|
|
2667
|
-
async today(req) {
|
|
2668
|
-
const actor = await this.actorResolver.resolve(req);
|
|
2669
|
-
return this.agent.quotaToday(actor.id);
|
|
2670
|
-
}
|
|
2671
2830
|
};
|
|
2672
|
-
|
|
2673
|
-
(0,
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2831
|
+
_ts_decorate15([
|
|
2832
|
+
(0, import_common15.Get)(),
|
|
2833
|
+
_ts_param13(0, (0, import_common15.Req)()),
|
|
2834
|
+
_ts_metadata14("design:type", Function),
|
|
2835
|
+
_ts_metadata14("design:paramtypes", [
|
|
2677
2836
|
typeof Request === "undefined" ? Object : Request
|
|
2678
2837
|
]),
|
|
2679
|
-
|
|
2838
|
+
_ts_metadata14("design:returntype", Promise)
|
|
2680
2839
|
], QuotaController.prototype, "report", null);
|
|
2681
|
-
|
|
2682
|
-
(0,
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
typeof Request === "undefined" ? Object : Request
|
|
2687
|
-
]),
|
|
2688
|
-
_ts_metadata13("design:returntype", Promise)
|
|
2689
|
-
], QuotaController.prototype, "today", null);
|
|
2690
|
-
QuotaController = _ts_decorate14([
|
|
2691
|
-
(0, import_common14.Controller)("quota"),
|
|
2692
|
-
_ts_param12(1, (0, import_common14.Inject)(import_nestjs_agent_core15.AGENT_ACTOR_RESOLVER)),
|
|
2693
|
-
_ts_metadata13("design:type", Function),
|
|
2694
|
-
_ts_metadata13("design:paramtypes", [
|
|
2840
|
+
QuotaController = _ts_decorate15([
|
|
2841
|
+
(0, import_common15.Controller)("quota"),
|
|
2842
|
+
_ts_param13(1, (0, import_common15.Inject)(import_nestjs_agent_core16.AGENT_ACTOR_RESOLVER)),
|
|
2843
|
+
_ts_metadata14("design:type", Function),
|
|
2844
|
+
_ts_metadata14("design:paramtypes", [
|
|
2695
2845
|
typeof AgentService === "undefined" ? Object : AgentService,
|
|
2696
2846
|
typeof ActorResolver === "undefined" ? Object : ActorResolver
|
|
2697
2847
|
])
|
|
2698
2848
|
], QuotaController);
|
|
2699
2849
|
|
|
2700
2850
|
// src/controller/skills.controller.ts
|
|
2701
|
-
var
|
|
2702
|
-
var
|
|
2703
|
-
function
|
|
2851
|
+
var import_nestjs_agent_core17 = require("@dudousxd/nestjs-agent-core");
|
|
2852
|
+
var import_common16 = require("@nestjs/common");
|
|
2853
|
+
function _ts_decorate16(decorators, target, key, desc) {
|
|
2704
2854
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2705
2855
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
2706
2856
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -2713,19 +2863,19 @@ function _ts_decorate15(decorators, target, key, desc) {
|
|
|
2713
2863
|
}
|
|
2714
2864
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
2715
2865
|
}
|
|
2716
|
-
__name(
|
|
2717
|
-
function
|
|
2866
|
+
__name(_ts_decorate16, "_ts_decorate");
|
|
2867
|
+
function _ts_metadata15(metadataKey, metadataValue) {
|
|
2718
2868
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
2719
2869
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
2720
2870
|
}
|
|
2721
2871
|
}
|
|
2722
|
-
__name(
|
|
2723
|
-
function
|
|
2872
|
+
__name(_ts_metadata15, "_ts_metadata");
|
|
2873
|
+
function _ts_param14(paramIndex, decorator) {
|
|
2724
2874
|
return function(target, key) {
|
|
2725
2875
|
decorator(target, key, paramIndex);
|
|
2726
2876
|
};
|
|
2727
2877
|
}
|
|
2728
|
-
__name(
|
|
2878
|
+
__name(_ts_param14, "_ts_param");
|
|
2729
2879
|
var SkillsController = class {
|
|
2730
2880
|
static {
|
|
2731
2881
|
__name(this, "SkillsController");
|
|
@@ -2741,40 +2891,40 @@ var SkillsController = class {
|
|
|
2741
2891
|
return [];
|
|
2742
2892
|
}
|
|
2743
2893
|
const actor = await this.actorResolver.resolve(req);
|
|
2744
|
-
const offer = await (0,
|
|
2894
|
+
const offer = await (0, import_nestjs_agent_core17.offerSkills)(this.skills, {
|
|
2745
2895
|
actor,
|
|
2746
2896
|
threadId: threadId ?? ""
|
|
2747
2897
|
});
|
|
2748
2898
|
return offer.entries;
|
|
2749
2899
|
}
|
|
2750
2900
|
};
|
|
2751
|
-
|
|
2752
|
-
(0,
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2901
|
+
_ts_decorate16([
|
|
2902
|
+
(0, import_common16.Get)(),
|
|
2903
|
+
_ts_param14(0, (0, import_common16.Req)()),
|
|
2904
|
+
_ts_param14(1, (0, import_common16.Query)("threadId")),
|
|
2905
|
+
_ts_metadata15("design:type", Function),
|
|
2906
|
+
_ts_metadata15("design:paramtypes", [
|
|
2757
2907
|
typeof Request === "undefined" ? Object : Request,
|
|
2758
2908
|
String
|
|
2759
2909
|
]),
|
|
2760
|
-
|
|
2910
|
+
_ts_metadata15("design:returntype", Promise)
|
|
2761
2911
|
], SkillsController.prototype, "list", null);
|
|
2762
|
-
SkillsController =
|
|
2763
|
-
(0,
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2912
|
+
SkillsController = _ts_decorate16([
|
|
2913
|
+
(0, import_common16.Controller)("skills"),
|
|
2914
|
+
_ts_param14(0, (0, import_common16.Inject)(import_nestjs_agent_core17.AGENT_ACTOR_RESOLVER)),
|
|
2915
|
+
_ts_param14(1, (0, import_common16.Optional)()),
|
|
2916
|
+
_ts_param14(1, (0, import_common16.Inject)(import_nestjs_agent_core17.AGENT_SKILLS)),
|
|
2917
|
+
_ts_metadata15("design:type", Function),
|
|
2918
|
+
_ts_metadata15("design:paramtypes", [
|
|
2769
2919
|
typeof ActorResolver === "undefined" ? Object : ActorResolver,
|
|
2770
2920
|
Object
|
|
2771
2921
|
])
|
|
2772
2922
|
], SkillsController);
|
|
2773
2923
|
|
|
2774
2924
|
// src/controller/threads.controller.ts
|
|
2775
|
-
var
|
|
2776
|
-
var
|
|
2777
|
-
function
|
|
2925
|
+
var import_nestjs_agent_core18 = require("@dudousxd/nestjs-agent-core");
|
|
2926
|
+
var import_common17 = require("@nestjs/common");
|
|
2927
|
+
function _ts_decorate17(decorators, target, key, desc) {
|
|
2778
2928
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2779
2929
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
2780
2930
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -2787,19 +2937,19 @@ function _ts_decorate16(decorators, target, key, desc) {
|
|
|
2787
2937
|
}
|
|
2788
2938
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
2789
2939
|
}
|
|
2790
|
-
__name(
|
|
2791
|
-
function
|
|
2940
|
+
__name(_ts_decorate17, "_ts_decorate");
|
|
2941
|
+
function _ts_metadata16(metadataKey, metadataValue) {
|
|
2792
2942
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
2793
2943
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
2794
2944
|
}
|
|
2795
2945
|
}
|
|
2796
|
-
__name(
|
|
2797
|
-
function
|
|
2946
|
+
__name(_ts_metadata16, "_ts_metadata");
|
|
2947
|
+
function _ts_param15(paramIndex, decorator) {
|
|
2798
2948
|
return function(target, key) {
|
|
2799
2949
|
decorator(target, key, paramIndex);
|
|
2800
2950
|
};
|
|
2801
2951
|
}
|
|
2802
|
-
__name(
|
|
2952
|
+
__name(_ts_param15, "_ts_param");
|
|
2803
2953
|
var ThreadsController = class {
|
|
2804
2954
|
static {
|
|
2805
2955
|
__name(this, "ThreadsController");
|
|
@@ -2866,101 +3016,101 @@ var ThreadsController = class {
|
|
|
2866
3016
|
};
|
|
2867
3017
|
}
|
|
2868
3018
|
};
|
|
2869
|
-
|
|
2870
|
-
(0,
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
3019
|
+
_ts_decorate17([
|
|
3020
|
+
(0, import_common17.Get)(),
|
|
3021
|
+
_ts_param15(0, (0, import_common17.Req)()),
|
|
3022
|
+
_ts_metadata16("design:type", Function),
|
|
3023
|
+
_ts_metadata16("design:paramtypes", [
|
|
2874
3024
|
typeof Request === "undefined" ? Object : Request
|
|
2875
3025
|
]),
|
|
2876
|
-
|
|
3026
|
+
_ts_metadata16("design:returntype", Promise)
|
|
2877
3027
|
], ThreadsController.prototype, "list", null);
|
|
2878
|
-
|
|
2879
|
-
(0,
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
3028
|
+
_ts_decorate17([
|
|
3029
|
+
(0, import_common17.Get)(":id"),
|
|
3030
|
+
_ts_param15(0, (0, import_common17.Req)()),
|
|
3031
|
+
_ts_param15(1, (0, import_common17.Param)("id")),
|
|
3032
|
+
_ts_metadata16("design:type", Function),
|
|
3033
|
+
_ts_metadata16("design:paramtypes", [
|
|
2884
3034
|
typeof Request === "undefined" ? Object : Request,
|
|
2885
3035
|
String
|
|
2886
3036
|
]),
|
|
2887
|
-
|
|
3037
|
+
_ts_metadata16("design:returntype", Promise)
|
|
2888
3038
|
], ThreadsController.prototype, "detail", null);
|
|
2889
|
-
|
|
2890
|
-
(0,
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
3039
|
+
_ts_decorate17([
|
|
3040
|
+
(0, import_common17.Delete)(":id"),
|
|
3041
|
+
_ts_param15(0, (0, import_common17.Req)()),
|
|
3042
|
+
_ts_param15(1, (0, import_common17.Param)("id")),
|
|
3043
|
+
_ts_metadata16("design:type", Function),
|
|
3044
|
+
_ts_metadata16("design:paramtypes", [
|
|
2895
3045
|
typeof Request === "undefined" ? Object : Request,
|
|
2896
3046
|
String
|
|
2897
3047
|
]),
|
|
2898
|
-
|
|
3048
|
+
_ts_metadata16("design:returntype", Promise)
|
|
2899
3049
|
], ThreadsController.prototype, "remove", null);
|
|
2900
|
-
|
|
2901
|
-
(0,
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
3050
|
+
_ts_decorate17([
|
|
3051
|
+
(0, import_common17.Post)(":id/fork-from/:messageId"),
|
|
3052
|
+
_ts_param15(0, (0, import_common17.Req)()),
|
|
3053
|
+
_ts_param15(1, (0, import_common17.Param)("id")),
|
|
3054
|
+
_ts_param15(2, (0, import_common17.Param)("messageId")),
|
|
3055
|
+
_ts_metadata16("design:type", Function),
|
|
3056
|
+
_ts_metadata16("design:paramtypes", [
|
|
2907
3057
|
typeof Request === "undefined" ? Object : Request,
|
|
2908
3058
|
String,
|
|
2909
3059
|
String
|
|
2910
3060
|
]),
|
|
2911
|
-
|
|
3061
|
+
_ts_metadata16("design:returntype", Promise)
|
|
2912
3062
|
], ThreadsController.prototype, "fork", null);
|
|
2913
|
-
|
|
2914
|
-
(0,
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
3063
|
+
_ts_decorate17([
|
|
3064
|
+
(0, import_common17.Patch)(":id"),
|
|
3065
|
+
_ts_param15(0, (0, import_common17.Req)()),
|
|
3066
|
+
_ts_param15(1, (0, import_common17.Param)("id")),
|
|
3067
|
+
_ts_param15(2, (0, import_common17.Body)()),
|
|
3068
|
+
_ts_metadata16("design:type", Function),
|
|
3069
|
+
_ts_metadata16("design:paramtypes", [
|
|
2920
3070
|
typeof Request === "undefined" ? Object : Request,
|
|
2921
3071
|
String,
|
|
2922
3072
|
typeof UpdateThreadBody === "undefined" ? Object : UpdateThreadBody
|
|
2923
3073
|
]),
|
|
2924
|
-
|
|
3074
|
+
_ts_metadata16("design:returntype", Promise)
|
|
2925
3075
|
], ThreadsController.prototype, "update", null);
|
|
2926
|
-
|
|
2927
|
-
(0,
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
3076
|
+
_ts_decorate17([
|
|
3077
|
+
(0, import_common17.Post)(":id/promote"),
|
|
3078
|
+
_ts_param15(0, (0, import_common17.Req)()),
|
|
3079
|
+
_ts_param15(1, (0, import_common17.Param)("id")),
|
|
3080
|
+
_ts_metadata16("design:type", Function),
|
|
3081
|
+
_ts_metadata16("design:paramtypes", [
|
|
2932
3082
|
typeof Request === "undefined" ? Object : Request,
|
|
2933
3083
|
String
|
|
2934
3084
|
]),
|
|
2935
|
-
|
|
3085
|
+
_ts_metadata16("design:returntype", Promise)
|
|
2936
3086
|
], ThreadsController.prototype, "promote", null);
|
|
2937
|
-
|
|
2938
|
-
(0,
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
3087
|
+
_ts_decorate17([
|
|
3088
|
+
(0, import_common17.Delete)(":id/from/:messageId"),
|
|
3089
|
+
_ts_param15(0, (0, import_common17.Req)()),
|
|
3090
|
+
_ts_param15(1, (0, import_common17.Param)("id")),
|
|
3091
|
+
_ts_param15(2, (0, import_common17.Param)("messageId")),
|
|
3092
|
+
_ts_metadata16("design:type", Function),
|
|
3093
|
+
_ts_metadata16("design:paramtypes", [
|
|
2944
3094
|
typeof Request === "undefined" ? Object : Request,
|
|
2945
3095
|
String,
|
|
2946
3096
|
String
|
|
2947
3097
|
]),
|
|
2948
|
-
|
|
3098
|
+
_ts_metadata16("design:returntype", Promise)
|
|
2949
3099
|
], ThreadsController.prototype, "truncateFrom", null);
|
|
2950
|
-
ThreadsController =
|
|
2951
|
-
(0,
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
3100
|
+
ThreadsController = _ts_decorate17([
|
|
3101
|
+
(0, import_common17.Controller)("threads"),
|
|
3102
|
+
_ts_param15(1, (0, import_common17.Inject)(import_nestjs_agent_core18.AGENT_ACTOR_RESOLVER)),
|
|
3103
|
+
_ts_metadata16("design:type", Function),
|
|
3104
|
+
_ts_metadata16("design:paramtypes", [
|
|
2955
3105
|
typeof AgentService === "undefined" ? Object : AgentService,
|
|
2956
3106
|
typeof ActorResolver === "undefined" ? Object : ActorResolver
|
|
2957
3107
|
])
|
|
2958
3108
|
], ThreadsController);
|
|
2959
3109
|
|
|
2960
3110
|
// src/controller/tool-call.controller.ts
|
|
2961
|
-
var
|
|
2962
|
-
var
|
|
2963
|
-
function
|
|
3111
|
+
var import_nestjs_agent_core19 = require("@dudousxd/nestjs-agent-core");
|
|
3112
|
+
var import_common18 = require("@nestjs/common");
|
|
3113
|
+
function _ts_decorate18(decorators, target, key, desc) {
|
|
2964
3114
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2965
3115
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
2966
3116
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -2973,19 +3123,19 @@ function _ts_decorate17(decorators, target, key, desc) {
|
|
|
2973
3123
|
}
|
|
2974
3124
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
2975
3125
|
}
|
|
2976
|
-
__name(
|
|
2977
|
-
function
|
|
3126
|
+
__name(_ts_decorate18, "_ts_decorate");
|
|
3127
|
+
function _ts_metadata17(metadataKey, metadataValue) {
|
|
2978
3128
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
2979
3129
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
2980
3130
|
}
|
|
2981
3131
|
}
|
|
2982
|
-
__name(
|
|
2983
|
-
function
|
|
3132
|
+
__name(_ts_metadata17, "_ts_metadata");
|
|
3133
|
+
function _ts_param16(paramIndex, decorator) {
|
|
2984
3134
|
return function(target, key) {
|
|
2985
3135
|
decorator(target, key, paramIndex);
|
|
2986
3136
|
};
|
|
2987
3137
|
}
|
|
2988
|
-
__name(
|
|
3138
|
+
__name(_ts_param16, "_ts_param");
|
|
2989
3139
|
var MAX_ANSWERED_QUESTIONS = 100;
|
|
2990
3140
|
var MAX_VALUES_PER_QUESTION = 100;
|
|
2991
3141
|
var MAX_ANSWER_VALUE_LENGTH = 4096;
|
|
@@ -2994,7 +3144,7 @@ var MAX_VIA_LENGTH = 64;
|
|
|
2994
3144
|
var DEFAULT_VIA = "web";
|
|
2995
3145
|
function toolCallId(claimed) {
|
|
2996
3146
|
if (typeof claimed !== "string" || claimed.length === 0) {
|
|
2997
|
-
throw new
|
|
3147
|
+
throw new import_common18.BadRequestException("toolCallId must be a non-empty string");
|
|
2998
3148
|
}
|
|
2999
3149
|
return claimed;
|
|
3000
3150
|
}
|
|
@@ -3004,10 +3154,10 @@ function rejectReason(claimed) {
|
|
|
3004
3154
|
return void 0;
|
|
3005
3155
|
}
|
|
3006
3156
|
if (typeof claimed !== "string") {
|
|
3007
|
-
throw new
|
|
3157
|
+
throw new import_common18.BadRequestException("reason must be a string");
|
|
3008
3158
|
}
|
|
3009
3159
|
if (claimed.length > MAX_REJECT_REASON_LENGTH) {
|
|
3010
|
-
throw new
|
|
3160
|
+
throw new import_common18.BadRequestException(`reason must be at most ${MAX_REJECT_REASON_LENGTH} characters`);
|
|
3011
3161
|
}
|
|
3012
3162
|
return claimed;
|
|
3013
3163
|
}
|
|
@@ -3017,7 +3167,7 @@ function remember(claimed) {
|
|
|
3017
3167
|
return false;
|
|
3018
3168
|
}
|
|
3019
3169
|
if (typeof claimed !== "boolean") {
|
|
3020
|
-
throw new
|
|
3170
|
+
throw new import_common18.BadRequestException("remember must be a boolean");
|
|
3021
3171
|
}
|
|
3022
3172
|
return claimed;
|
|
3023
3173
|
}
|
|
@@ -3027,7 +3177,7 @@ function via(claimed) {
|
|
|
3027
3177
|
return DEFAULT_VIA;
|
|
3028
3178
|
}
|
|
3029
3179
|
if (typeof claimed !== "string" || claimed.length === 0 || claimed.length > MAX_VIA_LENGTH) {
|
|
3030
|
-
throw new
|
|
3180
|
+
throw new import_common18.BadRequestException(`via must be a string of 1-${MAX_VIA_LENGTH} characters`);
|
|
3031
3181
|
}
|
|
3032
3182
|
return claimed;
|
|
3033
3183
|
}
|
|
@@ -3037,26 +3187,26 @@ function answers(claimed) {
|
|
|
3037
3187
|
return void 0;
|
|
3038
3188
|
}
|
|
3039
3189
|
if (typeof claimed !== "object" || claimed === null || Array.isArray(claimed)) {
|
|
3040
|
-
throw new
|
|
3190
|
+
throw new import_common18.BadRequestException("answers must be an object of questionId \u2192 chosen values");
|
|
3041
3191
|
}
|
|
3042
3192
|
const entries = Object.entries(claimed);
|
|
3043
3193
|
if (entries.length > MAX_ANSWERED_QUESTIONS) {
|
|
3044
|
-
throw new
|
|
3194
|
+
throw new import_common18.BadRequestException(`answers may cover at most ${MAX_ANSWERED_QUESTIONS} questions`);
|
|
3045
3195
|
}
|
|
3046
3196
|
const validated = /* @__PURE__ */ Object.create(null);
|
|
3047
3197
|
for (const [questionId, values] of entries) {
|
|
3048
3198
|
if (!Array.isArray(values)) {
|
|
3049
|
-
throw new
|
|
3199
|
+
throw new import_common18.BadRequestException(`answers["${questionId}"] must be an array of chosen values`);
|
|
3050
3200
|
}
|
|
3051
3201
|
if (values.length > MAX_VALUES_PER_QUESTION) {
|
|
3052
|
-
throw new
|
|
3202
|
+
throw new import_common18.BadRequestException(`answers["${questionId}"] may carry at most ${MAX_VALUES_PER_QUESTION} values`);
|
|
3053
3203
|
}
|
|
3054
3204
|
for (const value of values) {
|
|
3055
3205
|
if (typeof value !== "string") {
|
|
3056
|
-
throw new
|
|
3206
|
+
throw new import_common18.BadRequestException(`answers["${questionId}"] must contain only strings`);
|
|
3057
3207
|
}
|
|
3058
3208
|
if (value.length > MAX_ANSWER_VALUE_LENGTH) {
|
|
3059
|
-
throw new
|
|
3209
|
+
throw new import_common18.BadRequestException(`answers["${questionId}"] values must be at most ${MAX_ANSWER_VALUE_LENGTH} characters`);
|
|
3060
3210
|
}
|
|
3061
3211
|
}
|
|
3062
3212
|
validated[questionId] = values;
|
|
@@ -3114,64 +3264,64 @@ var ToolCallController = class {
|
|
|
3114
3264
|
};
|
|
3115
3265
|
}
|
|
3116
3266
|
};
|
|
3117
|
-
|
|
3118
|
-
(0,
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3267
|
+
_ts_decorate18([
|
|
3268
|
+
(0, import_common18.Post)("approve"),
|
|
3269
|
+
_ts_param16(0, (0, import_common18.Req)()),
|
|
3270
|
+
_ts_param16(1, (0, import_common18.Body)()),
|
|
3271
|
+
_ts_metadata17("design:type", Function),
|
|
3272
|
+
_ts_metadata17("design:paramtypes", [
|
|
3123
3273
|
typeof Request === "undefined" ? Object : Request,
|
|
3124
3274
|
typeof ApproveBody === "undefined" ? Object : ApproveBody
|
|
3125
3275
|
]),
|
|
3126
|
-
|
|
3276
|
+
_ts_metadata17("design:returntype", Promise)
|
|
3127
3277
|
], ToolCallController.prototype, "approve", null);
|
|
3128
|
-
|
|
3129
|
-
(0,
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3278
|
+
_ts_decorate18([
|
|
3279
|
+
(0, import_common18.Post)("reject"),
|
|
3280
|
+
_ts_param16(0, (0, import_common18.Req)()),
|
|
3281
|
+
_ts_param16(1, (0, import_common18.Body)()),
|
|
3282
|
+
_ts_metadata17("design:type", Function),
|
|
3283
|
+
_ts_metadata17("design:paramtypes", [
|
|
3134
3284
|
typeof Request === "undefined" ? Object : Request,
|
|
3135
3285
|
typeof RejectBody === "undefined" ? Object : RejectBody
|
|
3136
3286
|
]),
|
|
3137
|
-
|
|
3287
|
+
_ts_metadata17("design:returntype", Promise)
|
|
3138
3288
|
], ToolCallController.prototype, "reject", null);
|
|
3139
|
-
|
|
3140
|
-
(0,
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3289
|
+
_ts_decorate18([
|
|
3290
|
+
(0, import_common18.Post)("answer"),
|
|
3291
|
+
_ts_param16(0, (0, import_common18.Req)()),
|
|
3292
|
+
_ts_param16(1, (0, import_common18.Body)()),
|
|
3293
|
+
_ts_metadata17("design:type", Function),
|
|
3294
|
+
_ts_metadata17("design:paramtypes", [
|
|
3145
3295
|
typeof Request === "undefined" ? Object : Request,
|
|
3146
3296
|
typeof AnswerBody === "undefined" ? Object : AnswerBody
|
|
3147
3297
|
]),
|
|
3148
|
-
|
|
3298
|
+
_ts_metadata17("design:returntype", Promise)
|
|
3149
3299
|
], ToolCallController.prototype, "answer", null);
|
|
3150
|
-
|
|
3151
|
-
(0,
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3300
|
+
_ts_decorate18([
|
|
3301
|
+
(0, import_common18.Post)("skip"),
|
|
3302
|
+
_ts_param16(0, (0, import_common18.Req)()),
|
|
3303
|
+
_ts_param16(1, (0, import_common18.Body)()),
|
|
3304
|
+
_ts_metadata17("design:type", Function),
|
|
3305
|
+
_ts_metadata17("design:paramtypes", [
|
|
3156
3306
|
typeof Request === "undefined" ? Object : Request,
|
|
3157
3307
|
Object
|
|
3158
3308
|
]),
|
|
3159
|
-
|
|
3309
|
+
_ts_metadata17("design:returntype", Promise)
|
|
3160
3310
|
], ToolCallController.prototype, "skip", null);
|
|
3161
|
-
ToolCallController =
|
|
3162
|
-
(0,
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3311
|
+
ToolCallController = _ts_decorate18([
|
|
3312
|
+
(0, import_common18.Controller)("tool-call"),
|
|
3313
|
+
_ts_param16(1, (0, import_common18.Inject)(import_nestjs_agent_core19.AGENT_ACTOR_RESOLVER)),
|
|
3314
|
+
_ts_metadata17("design:type", Function),
|
|
3315
|
+
_ts_metadata17("design:paramtypes", [
|
|
3166
3316
|
typeof AgentService === "undefined" ? Object : AgentService,
|
|
3167
3317
|
typeof ActorResolver === "undefined" ? Object : ActorResolver
|
|
3168
3318
|
])
|
|
3169
3319
|
], ToolCallController);
|
|
3170
3320
|
|
|
3171
3321
|
// src/controller/tools.controller.ts
|
|
3172
|
-
var
|
|
3173
|
-
var
|
|
3174
|
-
function
|
|
3322
|
+
var import_nestjs_agent_core20 = require("@dudousxd/nestjs-agent-core");
|
|
3323
|
+
var import_common19 = require("@nestjs/common");
|
|
3324
|
+
function _ts_decorate19(decorators, target, key, desc) {
|
|
3175
3325
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3176
3326
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
3177
3327
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -3184,19 +3334,19 @@ function _ts_decorate18(decorators, target, key, desc) {
|
|
|
3184
3334
|
}
|
|
3185
3335
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
3186
3336
|
}
|
|
3187
|
-
__name(
|
|
3188
|
-
function
|
|
3337
|
+
__name(_ts_decorate19, "_ts_decorate");
|
|
3338
|
+
function _ts_metadata18(metadataKey, metadataValue) {
|
|
3189
3339
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
3190
3340
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
3191
3341
|
}
|
|
3192
3342
|
}
|
|
3193
|
-
__name(
|
|
3194
|
-
function
|
|
3343
|
+
__name(_ts_metadata18, "_ts_metadata");
|
|
3344
|
+
function _ts_param17(paramIndex, decorator) {
|
|
3195
3345
|
return function(target, key) {
|
|
3196
3346
|
decorator(target, key, paramIndex);
|
|
3197
3347
|
};
|
|
3198
3348
|
}
|
|
3199
|
-
__name(
|
|
3349
|
+
__name(_ts_param17, "_ts_param");
|
|
3200
3350
|
var ToolsController = class {
|
|
3201
3351
|
static {
|
|
3202
3352
|
__name(this, "ToolsController");
|
|
@@ -3211,7 +3361,7 @@ var ToolsController = class {
|
|
|
3211
3361
|
}
|
|
3212
3362
|
async list(req, agent) {
|
|
3213
3363
|
if (agent !== void 0 && this.agents.get(agent) === void 0) {
|
|
3214
|
-
throw new
|
|
3364
|
+
throw new import_common19.NotFoundException(`No agent named "${agent}"`);
|
|
3215
3365
|
}
|
|
3216
3366
|
const actor = await this.actorResolver.resolve(req);
|
|
3217
3367
|
const deps = this.depsFactory.forAgent(agent);
|
|
@@ -3225,33 +3375,33 @@ var ToolsController = class {
|
|
|
3225
3375
|
}));
|
|
3226
3376
|
}
|
|
3227
3377
|
};
|
|
3228
|
-
|
|
3229
|
-
(0,
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3378
|
+
_ts_decorate19([
|
|
3379
|
+
(0, import_common19.Get)(),
|
|
3380
|
+
_ts_param17(0, (0, import_common19.Req)()),
|
|
3381
|
+
_ts_param17(1, (0, import_common19.Query)("agent")),
|
|
3382
|
+
_ts_metadata18("design:type", Function),
|
|
3383
|
+
_ts_metadata18("design:paramtypes", [
|
|
3234
3384
|
typeof Request === "undefined" ? Object : Request,
|
|
3235
3385
|
String
|
|
3236
3386
|
]),
|
|
3237
|
-
|
|
3387
|
+
_ts_metadata18("design:returntype", Promise)
|
|
3238
3388
|
], ToolsController.prototype, "list", null);
|
|
3239
|
-
ToolsController =
|
|
3240
|
-
(0,
|
|
3241
|
-
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
|
|
3245
|
-
|
|
3389
|
+
ToolsController = _ts_decorate19([
|
|
3390
|
+
(0, import_common19.Controller)("tools"),
|
|
3391
|
+
_ts_param17(0, (0, import_common19.Inject)(import_nestjs_agent_core20.AGENT_ACTOR_RESOLVER)),
|
|
3392
|
+
_ts_param17(1, (0, import_common19.Inject)(import_nestjs_agent_core20.AGENT_DEPS_FACTORY)),
|
|
3393
|
+
_ts_param17(2, (0, import_common19.Inject)(import_nestjs_agent_core20.AGENT_REGISTRY)),
|
|
3394
|
+
_ts_metadata18("design:type", Function),
|
|
3395
|
+
_ts_metadata18("design:paramtypes", [
|
|
3246
3396
|
typeof ActorResolver === "undefined" ? Object : ActorResolver,
|
|
3247
3397
|
typeof AgentDepsFactory === "undefined" ? Object : AgentDepsFactory,
|
|
3248
|
-
typeof
|
|
3398
|
+
typeof import_nestjs_agent_core20.AgentRegistry === "undefined" ? Object : import_nestjs_agent_core20.AgentRegistry
|
|
3249
3399
|
])
|
|
3250
3400
|
], ToolsController);
|
|
3251
3401
|
|
|
3252
3402
|
// src/discovery/agent-discovery.service.ts
|
|
3253
|
-
var
|
|
3254
|
-
var
|
|
3403
|
+
var import_nestjs_agent_core21 = require("@dudousxd/nestjs-agent-core");
|
|
3404
|
+
var import_common20 = require("@nestjs/common");
|
|
3255
3405
|
var import_core = require("@nestjs/core");
|
|
3256
3406
|
|
|
3257
3407
|
// src/decorator/agent.decorator.ts
|
|
@@ -3268,7 +3418,7 @@ var SYSTEM_PROMPT_METADATA = /* @__PURE__ */ Symbol.for("@dudousxd/nestjs-agent:
|
|
|
3268
3418
|
var SYSTEM_PROMPT_CONTRIBUTOR_METADATA = /* @__PURE__ */ Symbol.for("@dudousxd/nestjs-agent:system-prompt-contributor");
|
|
3269
3419
|
|
|
3270
3420
|
// src/discovery/agent-discovery.service.ts
|
|
3271
|
-
function
|
|
3421
|
+
function _ts_decorate20(decorators, target, key, desc) {
|
|
3272
3422
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3273
3423
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
3274
3424
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -3281,19 +3431,19 @@ function _ts_decorate19(decorators, target, key, desc) {
|
|
|
3281
3431
|
}
|
|
3282
3432
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
3283
3433
|
}
|
|
3284
|
-
__name(
|
|
3285
|
-
function
|
|
3434
|
+
__name(_ts_decorate20, "_ts_decorate");
|
|
3435
|
+
function _ts_metadata19(metadataKey, metadataValue) {
|
|
3286
3436
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
3287
3437
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
3288
3438
|
}
|
|
3289
3439
|
}
|
|
3290
|
-
__name(
|
|
3291
|
-
function
|
|
3440
|
+
__name(_ts_metadata19, "_ts_metadata");
|
|
3441
|
+
function _ts_param18(paramIndex, decorator) {
|
|
3292
3442
|
return function(target, key) {
|
|
3293
3443
|
decorator(target, key, paramIndex);
|
|
3294
3444
|
};
|
|
3295
3445
|
}
|
|
3296
|
-
__name(
|
|
3446
|
+
__name(_ts_param18, "_ts_param");
|
|
3297
3447
|
var AgentDiscoveryService = class _AgentDiscoveryService {
|
|
3298
3448
|
static {
|
|
3299
3449
|
__name(this, "AgentDiscoveryService");
|
|
@@ -3302,7 +3452,7 @@ var AgentDiscoveryService = class _AgentDiscoveryService {
|
|
|
3302
3452
|
scanner;
|
|
3303
3453
|
registry;
|
|
3304
3454
|
contributors;
|
|
3305
|
-
logger = new
|
|
3455
|
+
logger = new import_common20.Logger(_AgentDiscoveryService.name);
|
|
3306
3456
|
constructor(discovery, scanner, registry, contributors) {
|
|
3307
3457
|
this.discovery = discovery;
|
|
3308
3458
|
this.scanner = scanner;
|
|
@@ -3420,22 +3570,22 @@ var AgentDiscoveryService = class _AgentDiscoveryService {
|
|
|
3420
3570
|
return (ctx) => candidate.call(instance, ctx);
|
|
3421
3571
|
}
|
|
3422
3572
|
};
|
|
3423
|
-
AgentDiscoveryService =
|
|
3424
|
-
(0,
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
|
|
3428
|
-
|
|
3573
|
+
AgentDiscoveryService = _ts_decorate20([
|
|
3574
|
+
(0, import_common20.Injectable)(),
|
|
3575
|
+
_ts_param18(2, (0, import_common20.Inject)(import_nestjs_agent_core21.AGENT_REGISTRY)),
|
|
3576
|
+
_ts_param18(3, (0, import_common20.Inject)(import_nestjs_agent_core21.AGENT_PROMPT_CONTRIBUTORS)),
|
|
3577
|
+
_ts_metadata19("design:type", Function),
|
|
3578
|
+
_ts_metadata19("design:paramtypes", [
|
|
3429
3579
|
typeof import_core.DiscoveryService === "undefined" ? Object : import_core.DiscoveryService,
|
|
3430
3580
|
typeof import_core.MetadataScanner === "undefined" ? Object : import_core.MetadataScanner,
|
|
3431
|
-
typeof
|
|
3581
|
+
typeof import_nestjs_agent_core21.AgentRegistry === "undefined" ? Object : import_nestjs_agent_core21.AgentRegistry,
|
|
3432
3582
|
Array
|
|
3433
3583
|
])
|
|
3434
3584
|
], AgentDiscoveryService);
|
|
3435
3585
|
|
|
3436
3586
|
// src/discovery/ai-tool-discovery.service.ts
|
|
3437
|
-
var
|
|
3438
|
-
var
|
|
3587
|
+
var import_nestjs_agent_core22 = require("@dudousxd/nestjs-agent-core");
|
|
3588
|
+
var import_common21 = require("@nestjs/common");
|
|
3439
3589
|
var import_core2 = require("@nestjs/core");
|
|
3440
3590
|
var import_zod = require("zod");
|
|
3441
3591
|
|
|
@@ -3455,7 +3605,7 @@ function isBrandedFunctionalTool(value) {
|
|
|
3455
3605
|
__name(isBrandedFunctionalTool, "isBrandedFunctionalTool");
|
|
3456
3606
|
|
|
3457
3607
|
// src/discovery/ai-tool-discovery.service.ts
|
|
3458
|
-
function
|
|
3608
|
+
function _ts_decorate21(decorators, target, key, desc) {
|
|
3459
3609
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3460
3610
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
3461
3611
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -3468,19 +3618,19 @@ function _ts_decorate20(decorators, target, key, desc) {
|
|
|
3468
3618
|
}
|
|
3469
3619
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
3470
3620
|
}
|
|
3471
|
-
__name(
|
|
3472
|
-
function
|
|
3621
|
+
__name(_ts_decorate21, "_ts_decorate");
|
|
3622
|
+
function _ts_metadata20(metadataKey, metadataValue) {
|
|
3473
3623
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
3474
3624
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
3475
3625
|
}
|
|
3476
3626
|
}
|
|
3477
|
-
__name(
|
|
3478
|
-
function
|
|
3627
|
+
__name(_ts_metadata20, "_ts_metadata");
|
|
3628
|
+
function _ts_param19(paramIndex, decorator) {
|
|
3479
3629
|
return function(target, key) {
|
|
3480
3630
|
decorator(target, key, paramIndex);
|
|
3481
3631
|
};
|
|
3482
3632
|
}
|
|
3483
|
-
__name(
|
|
3633
|
+
__name(_ts_param19, "_ts_param");
|
|
3484
3634
|
var AiToolDiscoveryService = class _AiToolDiscoveryService {
|
|
3485
3635
|
static {
|
|
3486
3636
|
__name(this, "AiToolDiscoveryService");
|
|
@@ -3489,7 +3639,7 @@ var AiToolDiscoveryService = class _AiToolDiscoveryService {
|
|
|
3489
3639
|
registry;
|
|
3490
3640
|
agents;
|
|
3491
3641
|
options;
|
|
3492
|
-
logger = new
|
|
3642
|
+
logger = new import_common21.Logger(_AiToolDiscoveryService.name);
|
|
3493
3643
|
constructor(discovery, registry, agents, options) {
|
|
3494
3644
|
this.discovery = discovery;
|
|
3495
3645
|
this.registry = registry;
|
|
@@ -3574,7 +3724,7 @@ var AiToolDiscoveryService = class _AiToolDiscoveryService {
|
|
|
3574
3724
|
let delegates = 0;
|
|
3575
3725
|
for (const definition of this.agents.list()) {
|
|
3576
3726
|
for (const edge of definition.delegatesTo ?? []) {
|
|
3577
|
-
const { agent: target, detached } = (0,
|
|
3727
|
+
const { agent: target, detached } = (0, import_nestjs_agent_core22.normalizeDelegation)(edge);
|
|
3578
3728
|
const targetDefinition = this.agents.get(target);
|
|
3579
3729
|
if (targetDefinition === void 0) {
|
|
3580
3730
|
throw new Error(`Agent "${definition.name}" hands off to "${target}", which is not a registered @Agent. Declare it as an @Agent provider or fix the reference.`);
|
|
@@ -3624,13 +3774,13 @@ var AiToolDiscoveryService = class _AiToolDiscoveryService {
|
|
|
3624
3774
|
return true;
|
|
3625
3775
|
}
|
|
3626
3776
|
};
|
|
3627
|
-
AiToolDiscoveryService =
|
|
3628
|
-
(0,
|
|
3629
|
-
|
|
3630
|
-
|
|
3631
|
-
|
|
3632
|
-
|
|
3633
|
-
|
|
3777
|
+
AiToolDiscoveryService = _ts_decorate21([
|
|
3778
|
+
(0, import_common21.Injectable)(),
|
|
3779
|
+
_ts_param19(1, (0, import_common21.Inject)(import_nestjs_agent_core22.AGENT_TOOL_REGISTRY)),
|
|
3780
|
+
_ts_param19(2, (0, import_common21.Inject)(import_nestjs_agent_core22.AGENT_REGISTRY)),
|
|
3781
|
+
_ts_param19(3, (0, import_common21.Inject)(import_nestjs_agent_core22.AGENT_OPTIONS)),
|
|
3782
|
+
_ts_metadata20("design:type", Function),
|
|
3783
|
+
_ts_metadata20("design:paramtypes", [
|
|
3634
3784
|
typeof import_core2.DiscoveryService === "undefined" ? Object : import_core2.DiscoveryService,
|
|
3635
3785
|
typeof ToolRegistry === "undefined" ? Object : ToolRegistry,
|
|
3636
3786
|
typeof AgentRegistry === "undefined" ? Object : AgentRegistry,
|
|
@@ -3639,25 +3789,25 @@ AiToolDiscoveryService = _ts_decorate20([
|
|
|
3639
3789
|
], AiToolDiscoveryService);
|
|
3640
3790
|
|
|
3641
3791
|
// src/discovery/skill-discovery.service.ts
|
|
3642
|
-
var
|
|
3643
|
-
var
|
|
3792
|
+
var import_nestjs_agent_core24 = require("@dudousxd/nestjs-agent-core");
|
|
3793
|
+
var import_common22 = require("@nestjs/common");
|
|
3644
3794
|
var import_core3 = require("@nestjs/core");
|
|
3645
3795
|
|
|
3646
3796
|
// src/decorator/skill.decorator.ts
|
|
3647
3797
|
var import_reflect_metadata4 = require("reflect-metadata");
|
|
3648
|
-
var
|
|
3798
|
+
var import_nestjs_agent_core23 = require("@dudousxd/nestjs-agent-core");
|
|
3649
3799
|
var SKILL_METADATA = /* @__PURE__ */ Symbol.for("@dudousxd/nestjs-agent:skill-metadata");
|
|
3650
3800
|
function readSkillMetadata(target) {
|
|
3651
3801
|
return Reflect.getMetadata(SKILL_METADATA, target);
|
|
3652
3802
|
}
|
|
3653
3803
|
__name(readSkillMetadata, "readSkillMetadata");
|
|
3654
3804
|
function skillScope(options) {
|
|
3655
|
-
return options.scope ??
|
|
3805
|
+
return options.scope ?? import_nestjs_agent_core23.GLOBAL_SCOPE;
|
|
3656
3806
|
}
|
|
3657
3807
|
__name(skillScope, "skillScope");
|
|
3658
3808
|
|
|
3659
3809
|
// src/discovery/skill-discovery.service.ts
|
|
3660
|
-
function
|
|
3810
|
+
function _ts_decorate22(decorators, target, key, desc) {
|
|
3661
3811
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3662
3812
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
3663
3813
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -3670,26 +3820,26 @@ function _ts_decorate21(decorators, target, key, desc) {
|
|
|
3670
3820
|
}
|
|
3671
3821
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
3672
3822
|
}
|
|
3673
|
-
__name(
|
|
3674
|
-
function
|
|
3823
|
+
__name(_ts_decorate22, "_ts_decorate");
|
|
3824
|
+
function _ts_metadata21(metadataKey, metadataValue) {
|
|
3675
3825
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
3676
3826
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
3677
3827
|
}
|
|
3678
3828
|
}
|
|
3679
|
-
__name(
|
|
3680
|
-
function
|
|
3829
|
+
__name(_ts_metadata21, "_ts_metadata");
|
|
3830
|
+
function _ts_param20(paramIndex, decorator) {
|
|
3681
3831
|
return function(target, key) {
|
|
3682
3832
|
decorator(target, key, paramIndex);
|
|
3683
3833
|
};
|
|
3684
3834
|
}
|
|
3685
|
-
__name(
|
|
3835
|
+
__name(_ts_param20, "_ts_param");
|
|
3686
3836
|
var SkillDiscoveryService = class _SkillDiscoveryService {
|
|
3687
3837
|
static {
|
|
3688
3838
|
__name(this, "SkillDiscoveryService");
|
|
3689
3839
|
}
|
|
3690
3840
|
discovery;
|
|
3691
3841
|
declared;
|
|
3692
|
-
logger = new
|
|
3842
|
+
logger = new import_common22.Logger(_SkillDiscoveryService.name);
|
|
3693
3843
|
constructor(discovery, declared) {
|
|
3694
3844
|
this.discovery = discovery;
|
|
3695
3845
|
this.declared = declared;
|
|
@@ -3726,28 +3876,26 @@ var SkillDiscoveryService = class _SkillDiscoveryService {
|
|
|
3726
3876
|
return flat === void 0 ? void 0 : () => flat;
|
|
3727
3877
|
}
|
|
3728
3878
|
};
|
|
3729
|
-
SkillDiscoveryService =
|
|
3730
|
-
(0,
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3879
|
+
SkillDiscoveryService = _ts_decorate22([
|
|
3880
|
+
(0, import_common22.Injectable)(),
|
|
3881
|
+
_ts_param20(1, (0, import_common22.Inject)(import_nestjs_agent_core24.AGENT_SKILL_SOURCES)),
|
|
3882
|
+
_ts_metadata21("design:type", Function),
|
|
3883
|
+
_ts_metadata21("design:paramtypes", [
|
|
3734
3884
|
typeof import_core3.DiscoveryService === "undefined" ? Object : import_core3.DiscoveryService,
|
|
3735
3885
|
Array
|
|
3736
3886
|
])
|
|
3737
3887
|
], SkillDiscoveryService);
|
|
3738
3888
|
|
|
3739
3889
|
// src/ledger-quota-provider.ts
|
|
3740
|
-
var
|
|
3890
|
+
var import_nestjs_agent_core25 = require("@dudousxd/nestjs-agent-core");
|
|
3741
3891
|
var LedgerQuotaProvider = class {
|
|
3742
3892
|
static {
|
|
3743
3893
|
__name(this, "LedgerQuotaProvider");
|
|
3744
3894
|
}
|
|
3745
3895
|
store;
|
|
3746
|
-
quota;
|
|
3747
3896
|
limits;
|
|
3748
|
-
constructor(store,
|
|
3897
|
+
constructor(store, limits = {}) {
|
|
3749
3898
|
this.store = store;
|
|
3750
|
-
this.quota = quota;
|
|
3751
3899
|
this.limits = limits;
|
|
3752
3900
|
}
|
|
3753
3901
|
async report(query) {
|
|
@@ -3757,11 +3905,11 @@ var LedgerQuotaProvider = class {
|
|
|
3757
3905
|
await this.dayWindow(actorRef, now)
|
|
3758
3906
|
];
|
|
3759
3907
|
if (this.store.usageBetween !== void 0) {
|
|
3760
|
-
const range = (0,
|
|
3908
|
+
const range = (0, import_nestjs_agent_core25.quotaPeriodRange)("month", now);
|
|
3761
3909
|
const used = await this.store.usageBetween(actorRef, range.fromDay, range.toDay);
|
|
3762
3910
|
windows.push(this.window("month", used.usedTokens, used.costUsd, range.resetsAt));
|
|
3763
3911
|
}
|
|
3764
|
-
const blocked = (0,
|
|
3912
|
+
const blocked = (0, import_nestjs_agent_core25.exhaustedWindow)(windows);
|
|
3765
3913
|
return {
|
|
3766
3914
|
windows,
|
|
3767
3915
|
...blocked !== void 0 ? {
|
|
@@ -3770,17 +3918,9 @@ var LedgerQuotaProvider = class {
|
|
|
3770
3918
|
};
|
|
3771
3919
|
}
|
|
3772
3920
|
async dayWindow(actorRef, now) {
|
|
3773
|
-
const range = (0,
|
|
3921
|
+
const range = (0, import_nestjs_agent_core25.quotaPeriodRange)("day", now);
|
|
3774
3922
|
const { usedTokens, costUsd } = await this.store.quotaToday(actorRef, range.fromDay);
|
|
3775
|
-
|
|
3776
|
-
return this.window("day", usedTokens, costUsd, range.resetsAt);
|
|
3777
|
-
}
|
|
3778
|
-
const state = await this.quota.check(actorRef, range.fromDay);
|
|
3779
|
-
const window = this.window("day", state.usedTokens, costUsd, range.resetsAt);
|
|
3780
|
-
if (window.limitTokens === void 0) {
|
|
3781
|
-
window.limitTokens = state.limitTokens;
|
|
3782
|
-
}
|
|
3783
|
-
return window;
|
|
3923
|
+
return this.window("day", usedTokens, costUsd, range.resetsAt);
|
|
3784
3924
|
}
|
|
3785
3925
|
window(period, usedTokens, usedUsd, resetsAt) {
|
|
3786
3926
|
const limits = this.limits[period] ?? {};
|
|
@@ -3799,33 +3939,10 @@ var LedgerQuotaProvider = class {
|
|
|
3799
3939
|
}
|
|
3800
3940
|
};
|
|
3801
3941
|
|
|
3802
|
-
// src/ledger-quota-store.ts
|
|
3803
|
-
var LedgerQuotaStore = class {
|
|
3804
|
-
static {
|
|
3805
|
-
__name(this, "LedgerQuotaStore");
|
|
3806
|
-
}
|
|
3807
|
-
store;
|
|
3808
|
-
limitTokens;
|
|
3809
|
-
constructor(store, limitTokens) {
|
|
3810
|
-
this.store = store;
|
|
3811
|
-
this.limitTokens = limitTokens;
|
|
3812
|
-
}
|
|
3813
|
-
async check(actorRef, day) {
|
|
3814
|
-
const { usedTokens } = await this.store.quotaToday(actorRef, day);
|
|
3815
|
-
return {
|
|
3816
|
-
usedTokens,
|
|
3817
|
-
limitTokens: this.limitTokens,
|
|
3818
|
-
withinLimit: usedTokens < this.limitTokens
|
|
3819
|
-
};
|
|
3820
|
-
}
|
|
3821
|
-
async bump(_actorRef, _day, _tokens) {
|
|
3822
|
-
}
|
|
3823
|
-
};
|
|
3824
|
-
|
|
3825
3942
|
// src/runner/inline-agent-runner.ts
|
|
3826
|
-
var
|
|
3827
|
-
var
|
|
3828
|
-
function
|
|
3943
|
+
var import_nestjs_agent_core26 = require("@dudousxd/nestjs-agent-core");
|
|
3944
|
+
var import_common23 = require("@nestjs/common");
|
|
3945
|
+
function _ts_decorate23(decorators, target, key, desc) {
|
|
3829
3946
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3830
3947
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
3831
3948
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -3838,26 +3955,26 @@ function _ts_decorate22(decorators, target, key, desc) {
|
|
|
3838
3955
|
}
|
|
3839
3956
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
3840
3957
|
}
|
|
3841
|
-
__name(
|
|
3842
|
-
function
|
|
3958
|
+
__name(_ts_decorate23, "_ts_decorate");
|
|
3959
|
+
function _ts_metadata22(metadataKey, metadataValue) {
|
|
3843
3960
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
3844
3961
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
3845
3962
|
}
|
|
3846
3963
|
}
|
|
3847
|
-
__name(
|
|
3848
|
-
function
|
|
3964
|
+
__name(_ts_metadata22, "_ts_metadata");
|
|
3965
|
+
function _ts_param21(paramIndex, decorator) {
|
|
3849
3966
|
return function(target, key) {
|
|
3850
3967
|
decorator(target, key, paramIndex);
|
|
3851
3968
|
};
|
|
3852
3969
|
}
|
|
3853
|
-
__name(
|
|
3970
|
+
__name(_ts_param21, "_ts_param");
|
|
3854
3971
|
var InlineAgentRunner = class _InlineAgentRunner {
|
|
3855
3972
|
static {
|
|
3856
3973
|
__name(this, "InlineAgentRunner");
|
|
3857
3974
|
}
|
|
3858
3975
|
factory;
|
|
3859
3976
|
store;
|
|
3860
|
-
logger = new
|
|
3977
|
+
logger = new import_common23.Logger(_InlineAgentRunner.name);
|
|
3861
3978
|
pending = /* @__PURE__ */ new Map();
|
|
3862
3979
|
/**
|
|
3863
3980
|
* Runs someone has asked to stop. In-process, like `pending`, and for the same reason: this runner
|
|
@@ -3886,18 +4003,18 @@ var InlineAgentRunner = class _InlineAgentRunner {
|
|
|
3886
4003
|
] : []
|
|
3887
4004
|
]
|
|
3888
4005
|
});
|
|
3889
|
-
void (0,
|
|
4006
|
+
void (0, import_nestjs_agent_core26.runAgentLoop)({
|
|
3890
4007
|
...deps,
|
|
3891
4008
|
day
|
|
3892
4009
|
}, input, hooks).then(() => this.store.setActiveStream(input.threadId, null)).catch(async (error) => {
|
|
3893
|
-
if (error instanceof
|
|
4010
|
+
if (error instanceof import_nestjs_agent_core26.RunCancelledError) {
|
|
3894
4011
|
await this.settleCancelled(runId, input.threadId, deps);
|
|
3895
4012
|
return;
|
|
3896
4013
|
}
|
|
3897
4014
|
const message = error instanceof Error ? error.message : String(error);
|
|
3898
|
-
const code = (0,
|
|
4015
|
+
const code = (0, import_nestjs_agent_core26.agentFailureCode)(error);
|
|
3899
4016
|
this.logger.error(`agent run ${runId} failed (${code}): ${message}`);
|
|
3900
|
-
(0,
|
|
4017
|
+
(0, import_nestjs_agent_core26.publishAgentRunFailed)({
|
|
3901
4018
|
runId,
|
|
3902
4019
|
code,
|
|
3903
4020
|
message
|
|
@@ -3946,7 +4063,7 @@ var InlineAgentRunner = class _InlineAgentRunner {
|
|
|
3946
4063
|
for (const [key, waiter] of this.pending) {
|
|
3947
4064
|
if (key.startsWith(`${runId}:`)) {
|
|
3948
4065
|
this.pending.delete(key);
|
|
3949
|
-
waiter.reject(new
|
|
4066
|
+
waiter.reject(new import_nestjs_agent_core26.RunCancelledError());
|
|
3950
4067
|
}
|
|
3951
4068
|
}
|
|
3952
4069
|
await Promise.resolve();
|
|
@@ -3961,7 +4078,7 @@ var InlineAgentRunner = class _InlineAgentRunner {
|
|
|
3961
4078
|
this.logger.log(`agent run ${runId} cancelled`);
|
|
3962
4079
|
await this.store.setActiveStream(threadId, null);
|
|
3963
4080
|
const writer = await deps.sink.open(runId);
|
|
3964
|
-
await writer.write((0,
|
|
4081
|
+
await writer.write((0, import_nestjs_agent_core26.encodeStreamEvent)({
|
|
3965
4082
|
kind: "cancelled"
|
|
3966
4083
|
}));
|
|
3967
4084
|
await writer.end();
|
|
@@ -4022,7 +4139,7 @@ var InlineAgentRunner = class _InlineAgentRunner {
|
|
|
4022
4139
|
awaitApproval: /* @__PURE__ */ __name((call, _ctx, opts) => this.parkApproval(runId, call.id, opts?.timeoutMs), "awaitApproval"),
|
|
4023
4140
|
awaitAnswers: /* @__PURE__ */ __name((request) => this.park(runId, request.id), "awaitAnswers"),
|
|
4024
4141
|
step: /* @__PURE__ */ __name((_name, fn) => fn(), "step"),
|
|
4025
|
-
parallel:
|
|
4142
|
+
parallel: import_nestjs_agent_core26.settleAll,
|
|
4026
4143
|
cancelled: /* @__PURE__ */ __name(async () => this.cancelled.has(runId), "cancelled"),
|
|
4027
4144
|
runAgent: /* @__PURE__ */ __name((agentName, task) => this.runNested({
|
|
4028
4145
|
agentName,
|
|
@@ -4073,7 +4190,7 @@ var InlineAgentRunner = class _InlineAgentRunner {
|
|
|
4073
4190
|
awaitApproval: /* @__PURE__ */ __name((call, _ctx, opts) => this.parkApproval(runId, call.id, opts?.timeoutMs), "awaitApproval"),
|
|
4074
4191
|
awaitAnswers: /* @__PURE__ */ __name((request) => this.park(runId, request.id), "awaitAnswers"),
|
|
4075
4192
|
step: /* @__PURE__ */ __name((_name, fn) => fn(), "step"),
|
|
4076
|
-
parallel:
|
|
4193
|
+
parallel: import_nestjs_agent_core26.settleAll,
|
|
4077
4194
|
cancelled: /* @__PURE__ */ __name(async () => this.cancelled.has(runId), "cancelled"),
|
|
4078
4195
|
runAgent: /* @__PURE__ */ __name((childName, childTask) => this.runNested({
|
|
4079
4196
|
agentName: childName,
|
|
@@ -4106,7 +4223,7 @@ var InlineAgentRunner = class _InlineAgentRunner {
|
|
|
4106
4223
|
}
|
|
4107
4224
|
}), "startAgent")
|
|
4108
4225
|
};
|
|
4109
|
-
void (0,
|
|
4226
|
+
void (0, import_nestjs_agent_core26.runAgentLoop)({
|
|
4110
4227
|
...deps,
|
|
4111
4228
|
day
|
|
4112
4229
|
}, {
|
|
@@ -4120,13 +4237,13 @@ var InlineAgentRunner = class _InlineAgentRunner {
|
|
|
4120
4237
|
parentRunId,
|
|
4121
4238
|
deliverTo
|
|
4122
4239
|
}, hooks).catch(async (error) => {
|
|
4123
|
-
const cancelled = error instanceof
|
|
4240
|
+
const cancelled = error instanceof import_nestjs_agent_core26.RunCancelledError;
|
|
4124
4241
|
const message = error instanceof Error ? error.message : String(error);
|
|
4125
4242
|
if (!cancelled) {
|
|
4126
4243
|
this.logger.error(`detached agent run ${runId} failed: ${message}`);
|
|
4127
|
-
(0,
|
|
4244
|
+
(0, import_nestjs_agent_core26.publishAgentRunFailed)({
|
|
4128
4245
|
runId,
|
|
4129
|
-
code: (0,
|
|
4246
|
+
code: (0, import_nestjs_agent_core26.agentFailureCode)(error),
|
|
4130
4247
|
message
|
|
4131
4248
|
});
|
|
4132
4249
|
}
|
|
@@ -4134,11 +4251,11 @@ var InlineAgentRunner = class _InlineAgentRunner {
|
|
|
4134
4251
|
runId,
|
|
4135
4252
|
status: cancelled ? "cancelled" : "failed",
|
|
4136
4253
|
...cancelled ? {} : {
|
|
4137
|
-
errorCode: (0,
|
|
4254
|
+
errorCode: (0, import_nestjs_agent_core26.agentFailureCode)(error),
|
|
4138
4255
|
errorMessage: message
|
|
4139
4256
|
}
|
|
4140
4257
|
});
|
|
4141
|
-
await (0,
|
|
4258
|
+
await (0, import_nestjs_agent_core26.settleUnsettledDelegation)({
|
|
4142
4259
|
store: this.store,
|
|
4143
4260
|
delivery: deliverTo,
|
|
4144
4261
|
agent: agentName,
|
|
@@ -4177,7 +4294,7 @@ var InlineAgentRunner = class _InlineAgentRunner {
|
|
|
4177
4294
|
awaitApproval: /* @__PURE__ */ __name((call, _ctx, opts) => this.parkApproval(runId, call.id, opts?.timeoutMs), "awaitApproval"),
|
|
4178
4295
|
awaitAnswers: /* @__PURE__ */ __name((request) => this.park(runId, request.id), "awaitAnswers"),
|
|
4179
4296
|
step: /* @__PURE__ */ __name((_name, fn) => fn(), "step"),
|
|
4180
|
-
parallel:
|
|
4297
|
+
parallel: import_nestjs_agent_core26.settleAll,
|
|
4181
4298
|
// A child stops when it is cancelled OR when the run a human is actually watching is: the
|
|
4182
4299
|
// canceller names the top-level run, which is the only id that ever left the server.
|
|
4183
4300
|
cancelled: /* @__PURE__ */ __name(async () => this.cancelled.has(runId) || this.cancelled.has(sinkRunId), "cancelled"),
|
|
@@ -4212,7 +4329,7 @@ var InlineAgentRunner = class _InlineAgentRunner {
|
|
|
4212
4329
|
}), "startAgent")
|
|
4213
4330
|
};
|
|
4214
4331
|
try {
|
|
4215
|
-
return await (0,
|
|
4332
|
+
return await (0, import_nestjs_agent_core26.runAgentLoop)({
|
|
4216
4333
|
...deps,
|
|
4217
4334
|
day
|
|
4218
4335
|
}, {
|
|
@@ -4231,19 +4348,19 @@ var InlineAgentRunner = class _InlineAgentRunner {
|
|
|
4231
4348
|
}
|
|
4232
4349
|
}
|
|
4233
4350
|
};
|
|
4234
|
-
InlineAgentRunner =
|
|
4235
|
-
(0,
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
|
|
4239
|
-
|
|
4351
|
+
InlineAgentRunner = _ts_decorate23([
|
|
4352
|
+
(0, import_common23.Injectable)(),
|
|
4353
|
+
_ts_param21(0, (0, import_common23.Inject)(import_nestjs_agent_core26.AGENT_DEPS_FACTORY)),
|
|
4354
|
+
_ts_param21(1, (0, import_common23.Inject)(import_nestjs_agent_core26.AGENT_STORE)),
|
|
4355
|
+
_ts_metadata22("design:type", Function),
|
|
4356
|
+
_ts_metadata22("design:paramtypes", [
|
|
4240
4357
|
typeof AgentDepsFactory === "undefined" ? Object : AgentDepsFactory,
|
|
4241
4358
|
typeof AgentStore === "undefined" ? Object : AgentStore
|
|
4242
4359
|
])
|
|
4243
4360
|
], InlineAgentRunner);
|
|
4244
4361
|
|
|
4245
4362
|
// src/skills-config.ts
|
|
4246
|
-
var
|
|
4363
|
+
var import_nestjs_agent_core27 = require("@dudousxd/nestjs-agent-core");
|
|
4247
4364
|
function declaredSkillProvider(declared) {
|
|
4248
4365
|
return {
|
|
4249
4366
|
list: /* @__PURE__ */ __name(({ scopes }) => declared.filter((skill) => scopes.includes(skill.scope)).map(({ name, description, scope }) => ({
|
|
@@ -4269,7 +4386,7 @@ function resolveSkillsConfig(options, declared) {
|
|
|
4269
4386
|
declaredSkillProvider(declared)
|
|
4270
4387
|
];
|
|
4271
4388
|
return {
|
|
4272
|
-
provider: providers.length === 1 ? providers[0] : (0,
|
|
4389
|
+
provider: providers.length === 1 ? providers[0] : (0, import_nestjs_agent_core27.compositeSkillProvider)(providers),
|
|
4273
4390
|
...options.scopes !== void 0 ? {
|
|
4274
4391
|
scopes: options.scopes
|
|
4275
4392
|
} : {},
|
|
@@ -4281,7 +4398,7 @@ function resolveSkillsConfig(options, declared) {
|
|
|
4281
4398
|
__name(resolveSkillsConfig, "resolveSkillsConfig");
|
|
4282
4399
|
|
|
4283
4400
|
// src/agent.module.ts
|
|
4284
|
-
function
|
|
4401
|
+
function _ts_decorate24(decorators, target, key, desc) {
|
|
4285
4402
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4286
4403
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
4287
4404
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -4294,108 +4411,150 @@ function _ts_decorate23(decorators, target, key, desc) {
|
|
|
4294
4411
|
}
|
|
4295
4412
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
4296
4413
|
}
|
|
4297
|
-
__name(
|
|
4414
|
+
__name(_ts_decorate24, "_ts_decorate");
|
|
4298
4415
|
var DEFAULT_PATH = "agent";
|
|
4299
|
-
|
|
4416
|
+
var logger = new import_common24.Logger("AgentModule");
|
|
4417
|
+
function externalStoreWrapper(modules) {
|
|
4418
|
+
for (const module2 of modules.values()) {
|
|
4419
|
+
if (module2.metatype === AgentModule) continue;
|
|
4420
|
+
const wrapper = module2.providers.get(import_nestjs_agent_core28.AGENT_STORE);
|
|
4421
|
+
if (wrapper !== void 0) return wrapper;
|
|
4422
|
+
}
|
|
4423
|
+
return void 0;
|
|
4424
|
+
}
|
|
4425
|
+
__name(externalStoreWrapper, "externalStoreWrapper");
|
|
4426
|
+
function forwardingStore(wrapper) {
|
|
4427
|
+
const target = /* @__PURE__ */ __name(() => {
|
|
4428
|
+
const instance = wrapper.instance;
|
|
4429
|
+
if (instance === void 0 || instance === null) {
|
|
4430
|
+
throw new Error("AgentModule: the AGENT_STORE bound by another module is not ready yet");
|
|
4431
|
+
}
|
|
4432
|
+
return instance;
|
|
4433
|
+
}, "target");
|
|
4434
|
+
return new Proxy({}, {
|
|
4435
|
+
get(_, property) {
|
|
4436
|
+
const store = target();
|
|
4437
|
+
const value = store[property];
|
|
4438
|
+
return typeof value === "function" ? value.bind(store) : value;
|
|
4439
|
+
},
|
|
4440
|
+
has(_, property) {
|
|
4441
|
+
return property in target();
|
|
4442
|
+
}
|
|
4443
|
+
});
|
|
4444
|
+
}
|
|
4445
|
+
__name(forwardingStore, "forwardingStore");
|
|
4446
|
+
function resolveStore(options, modules) {
|
|
4447
|
+
if (options.store !== void 0) return options.store;
|
|
4448
|
+
const external = externalStoreWrapper(modules);
|
|
4449
|
+
if (external !== void 0) return forwardingStore(external);
|
|
4450
|
+
logger.warn("No `store` configured and no store module imported \u2014 using the in-memory store. Threads are lost on restart and not shared between processes: not for production. Pass `store`, or import a store module (e.g. MikroOrmAgentStoreModule.forFeature()).");
|
|
4451
|
+
return new import_nestjs_agent_core28.InMemoryAgentStore();
|
|
4452
|
+
}
|
|
4453
|
+
__name(resolveStore, "resolveStore");
|
|
4454
|
+
function isQuotaProvider(quota) {
|
|
4455
|
+
return quota !== void 0 && typeof quota.report === "function";
|
|
4456
|
+
}
|
|
4457
|
+
__name(isQuotaProvider, "isQuotaProvider");
|
|
4458
|
+
function resolveCatalog(options) {
|
|
4459
|
+
if (options.models !== void 0) return options.models;
|
|
4460
|
+
const carried = options.model.catalog;
|
|
4461
|
+
return carried !== void 0 && typeof carried.list === "function" ? carried : void 0;
|
|
4462
|
+
}
|
|
4463
|
+
__name(resolveCatalog, "resolveCatalog");
|
|
4464
|
+
function sharedProviders(durable) {
|
|
4300
4465
|
const providers = [
|
|
4301
4466
|
{
|
|
4302
|
-
provide:
|
|
4303
|
-
useFactory: /* @__PURE__ */ __name(() => new
|
|
4467
|
+
provide: import_nestjs_agent_core28.AGENT_TOOL_REGISTRY,
|
|
4468
|
+
useFactory: /* @__PURE__ */ __name(() => new import_nestjs_agent_core28.ToolRegistry(), "useFactory")
|
|
4304
4469
|
},
|
|
4305
4470
|
// Starts empty; AgentDiscoveryService populates it from `@Agent`-decorated providers at boot.
|
|
4306
4471
|
{
|
|
4307
|
-
provide:
|
|
4308
|
-
useFactory: /* @__PURE__ */ __name(() => new
|
|
4472
|
+
provide: import_nestjs_agent_core28.AGENT_REGISTRY,
|
|
4473
|
+
useFactory: /* @__PURE__ */ __name(() => new import_nestjs_agent_core28.AgentRegistry(), "useFactory")
|
|
4309
4474
|
},
|
|
4310
4475
|
// A shared, mutable list AgentDiscoveryService fills with `@SystemPromptContributor()` methods.
|
|
4311
4476
|
{
|
|
4312
|
-
provide:
|
|
4477
|
+
provide: import_nestjs_agent_core28.AGENT_PROMPT_CONTRIBUTORS,
|
|
4313
4478
|
useFactory: /* @__PURE__ */ __name(() => [], "useFactory")
|
|
4314
4479
|
},
|
|
4315
4480
|
// Likewise for `@Skill`-decorated providers — filled by SkillDiscoveryService at onModuleInit,
|
|
4316
4481
|
// read lazily by the AGENT_SKILLS provider below (which DI builds before discovery has run).
|
|
4317
4482
|
{
|
|
4318
|
-
provide:
|
|
4483
|
+
provide: import_nestjs_agent_core28.AGENT_SKILL_SOURCES,
|
|
4319
4484
|
useFactory: /* @__PURE__ */ __name(() => [], "useFactory")
|
|
4320
4485
|
},
|
|
4321
4486
|
{
|
|
4322
4487
|
// One resolution, shared by the loop's deps and the listing endpoint: a second one would
|
|
4323
4488
|
// drift, and a user would be offered a skill the agent cannot reach. `undefined` when the
|
|
4324
4489
|
// host configured none — which is what keeps the turn's checkpoint sequence unchanged.
|
|
4325
|
-
provide:
|
|
4490
|
+
provide: import_nestjs_agent_core28.AGENT_SKILLS,
|
|
4326
4491
|
useFactory: /* @__PURE__ */ __name((options, declared) => resolveSkillsConfig(options.skills, declared), "useFactory"),
|
|
4327
4492
|
inject: [
|
|
4328
|
-
|
|
4329
|
-
|
|
4493
|
+
import_nestjs_agent_core28.AGENT_OPTIONS,
|
|
4494
|
+
import_nestjs_agent_core28.AGENT_SKILL_SOURCES
|
|
4330
4495
|
]
|
|
4331
4496
|
},
|
|
4332
4497
|
{
|
|
4333
4498
|
// One resolution, shared by the loop's deps and the read-back endpoint: a person has to be
|
|
4334
4499
|
// shown what the model was shown, and two resolutions would eventually disagree about that.
|
|
4335
|
-
provide:
|
|
4500
|
+
provide: import_nestjs_agent_core28.AGENT_MEMORY,
|
|
4336
4501
|
useFactory: /* @__PURE__ */ __name((options) => options.memory, "useFactory"),
|
|
4337
4502
|
inject: [
|
|
4338
|
-
|
|
4503
|
+
import_nestjs_agent_core28.AGENT_OPTIONS
|
|
4339
4504
|
]
|
|
4340
4505
|
},
|
|
4341
4506
|
{
|
|
4342
|
-
provide:
|
|
4507
|
+
provide: import_nestjs_agent_core28.AGENT_SINK,
|
|
4343
4508
|
useFactory: /* @__PURE__ */ __name((options) => options.sink ?? new InProcessTokenStreamSink(), "useFactory"),
|
|
4344
4509
|
inject: [
|
|
4345
|
-
|
|
4510
|
+
import_nestjs_agent_core28.AGENT_OPTIONS
|
|
4346
4511
|
]
|
|
4347
4512
|
},
|
|
4348
4513
|
{
|
|
4349
|
-
provide:
|
|
4350
|
-
useFactory: /* @__PURE__ */ __name((options) => options.rolesPolicy ?? new
|
|
4514
|
+
provide: import_nestjs_agent_core28.AGENT_ROLES_POLICY,
|
|
4515
|
+
useFactory: /* @__PURE__ */ __name((options) => options.rolesPolicy ?? new import_nestjs_agent_core28.DefaultRolesPolicy(options.defaultRoles), "useFactory"),
|
|
4351
4516
|
inject: [
|
|
4352
|
-
|
|
4517
|
+
import_nestjs_agent_core28.AGENT_OPTIONS
|
|
4353
4518
|
]
|
|
4354
4519
|
},
|
|
4355
4520
|
{
|
|
4356
|
-
provide:
|
|
4357
|
-
useFactory: /* @__PURE__ */ __name((options) =>
|
|
4521
|
+
provide: import_nestjs_agent_core28.AGENT_ACTOR_RESOLVER,
|
|
4522
|
+
useFactory: /* @__PURE__ */ __name((options) => {
|
|
4523
|
+
if (options.actorResolver !== void 0) return options.actorResolver;
|
|
4524
|
+
logger.warn("No `actorResolver` configured \u2014 the agent endpoints are PUBLIC: every browser gets its own anonymous identity (an HttpOnly cookie). Set `actorResolver: requestUserActorResolver()` (or your own) to require login.");
|
|
4525
|
+
return new AnonymousActorResolver();
|
|
4526
|
+
}, "useFactory"),
|
|
4358
4527
|
inject: [
|
|
4359
|
-
|
|
4528
|
+
import_nestjs_agent_core28.AGENT_OPTIONS
|
|
4360
4529
|
]
|
|
4361
4530
|
},
|
|
4362
4531
|
{
|
|
4363
|
-
provide:
|
|
4532
|
+
provide: import_nestjs_agent_core28.AGENT_MODEL,
|
|
4364
4533
|
useFactory: /* @__PURE__ */ __name((o) => o.model, "useFactory"),
|
|
4365
4534
|
inject: [
|
|
4366
|
-
|
|
4367
|
-
]
|
|
4368
|
-
},
|
|
4369
|
-
{
|
|
4370
|
-
// An explicit `quota` wins; otherwise `quotaLimitTokens` binds the built-in ledger-backed
|
|
4371
|
-
// store; otherwise quotas are off (undefined). The ledger store reads the same usage rows
|
|
4372
|
-
// the loop already writes, so enforcement needs no extra shared state across replicas.
|
|
4373
|
-
provide: import_nestjs_agent_core27.AGENT_QUOTA_STORE,
|
|
4374
|
-
useFactory: /* @__PURE__ */ __name((o, store) => o.quota ?? (o.quotaLimitTokens !== void 0 ? new LedgerQuotaStore(store, o.quotaLimitTokens) : void 0), "useFactory"),
|
|
4375
|
-
inject: [
|
|
4376
|
-
import_nestjs_agent_core27.AGENT_OPTIONS,
|
|
4377
|
-
import_nestjs_agent_core27.AGENT_STORE
|
|
4535
|
+
import_nestjs_agent_core28.AGENT_OPTIONS
|
|
4378
4536
|
]
|
|
4379
4537
|
},
|
|
4380
4538
|
{
|
|
4381
|
-
|
|
4382
|
-
|
|
4539
|
+
// `quota` is either a provider of the host's own or ceilings for the built-in ledger one;
|
|
4540
|
+
// omitted, the ledger provider still reports usage, with no ceiling to block on.
|
|
4541
|
+
provide: import_nestjs_agent_core28.AGENT_QUOTA_PROVIDER,
|
|
4542
|
+
useFactory: /* @__PURE__ */ __name((o, store) => isQuotaProvider(o.quota) ? o.quota : new LedgerQuotaProvider(store, o.quota?.limits), "useFactory"),
|
|
4383
4543
|
inject: [
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
import_nestjs_agent_core27.AGENT_QUOTA_STORE
|
|
4544
|
+
import_nestjs_agent_core28.AGENT_OPTIONS,
|
|
4545
|
+
import_nestjs_agent_core28.AGENT_STORE
|
|
4387
4546
|
]
|
|
4388
4547
|
},
|
|
4389
4548
|
{
|
|
4390
|
-
provide:
|
|
4391
|
-
useFactory: /* @__PURE__ */ __name((o) => o
|
|
4549
|
+
provide: import_nestjs_agent_core28.AGENT_MODEL_CATALOG,
|
|
4550
|
+
useFactory: /* @__PURE__ */ __name((o) => resolveCatalog(o), "useFactory"),
|
|
4392
4551
|
inject: [
|
|
4393
|
-
|
|
4552
|
+
import_nestjs_agent_core28.AGENT_OPTIONS
|
|
4394
4553
|
]
|
|
4395
4554
|
},
|
|
4396
4555
|
AgentDepsFactory2,
|
|
4397
4556
|
{
|
|
4398
|
-
provide:
|
|
4557
|
+
provide: import_nestjs_agent_core28.AGENT_DEPS_FACTORY,
|
|
4399
4558
|
useExisting: AgentDepsFactory2
|
|
4400
4559
|
},
|
|
4401
4560
|
// Populates the registry + contributors (onModuleInit) BEFORE AiToolDiscoveryService synthesizes
|
|
@@ -4409,22 +4568,21 @@ function sharedProviders(durable, includeStore) {
|
|
|
4409
4568
|
// through AgentService.signalToolCall, which reaches whichever AGENT_RUNNER is bound above.
|
|
4410
4569
|
AgentApprovalPortAdapter,
|
|
4411
4570
|
{
|
|
4412
|
-
provide:
|
|
4571
|
+
provide: import_nestjs_agent_core28.AGENT_APPROVAL_PORT,
|
|
4413
4572
|
useExisting: AgentApprovalPortAdapter
|
|
4414
4573
|
}
|
|
4415
4574
|
];
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
|
|
4423
|
-
|
|
4424
|
-
}
|
|
4575
|
+
providers.push({
|
|
4576
|
+
provide: import_nestjs_agent_core28.AGENT_STORE,
|
|
4577
|
+
useFactory: /* @__PURE__ */ __name((o, modules) => resolveStore(o, modules), "useFactory"),
|
|
4578
|
+
inject: [
|
|
4579
|
+
import_nestjs_agent_core28.AGENT_OPTIONS,
|
|
4580
|
+
import_core4.ModulesContainer
|
|
4581
|
+
]
|
|
4582
|
+
});
|
|
4425
4583
|
if (durable) {
|
|
4426
4584
|
providers.push({
|
|
4427
|
-
provide:
|
|
4585
|
+
provide: import_nestjs_agent_core28.AGENT_RUNNER,
|
|
4428
4586
|
useFactory: /* @__PURE__ */ __name((durableRunner) => {
|
|
4429
4587
|
if (durableRunner === void 0) {
|
|
4430
4588
|
throw new Error("AgentModule.forRoot({ durable: true }) requires importing AgentDurableModule from '@dudousxd/nestjs-agent/durable' (alongside a configured DurableModule). It was not found.");
|
|
@@ -4433,43 +4591,40 @@ function sharedProviders(durable, includeStore) {
|
|
|
4433
4591
|
}, "useFactory"),
|
|
4434
4592
|
inject: [
|
|
4435
4593
|
{
|
|
4436
|
-
token:
|
|
4594
|
+
token: import_nestjs_agent_core28.AGENT_DURABLE_RUNNER,
|
|
4437
4595
|
optional: true
|
|
4438
4596
|
}
|
|
4439
4597
|
]
|
|
4440
4598
|
});
|
|
4441
4599
|
} else {
|
|
4442
4600
|
providers.push({
|
|
4443
|
-
provide:
|
|
4601
|
+
provide: import_nestjs_agent_core28.AGENT_RUNNER,
|
|
4444
4602
|
useExisting: InlineAgentRunner
|
|
4445
4603
|
});
|
|
4446
4604
|
}
|
|
4447
4605
|
return providers;
|
|
4448
4606
|
}
|
|
4449
4607
|
__name(sharedProviders, "sharedProviders");
|
|
4450
|
-
function exportsFor(
|
|
4608
|
+
function exportsFor() {
|
|
4451
4609
|
return [
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
|
|
4459
|
-
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
import_nestjs_agent_core27.AGENT_SKILLS,
|
|
4467
|
-
import_nestjs_agent_core27.AGENT_MEMORY,
|
|
4468
|
-
import_nestjs_agent_core27.AGENT_DEPS_FACTORY,
|
|
4610
|
+
import_nestjs_agent_core28.AGENT_OPTIONS,
|
|
4611
|
+
import_nestjs_agent_core28.AGENT_TOOL_REGISTRY,
|
|
4612
|
+
import_nestjs_agent_core28.AGENT_REGISTRY,
|
|
4613
|
+
import_nestjs_agent_core28.AGENT_SINK,
|
|
4614
|
+
import_nestjs_agent_core28.AGENT_ROLES_POLICY,
|
|
4615
|
+
import_nestjs_agent_core28.AGENT_ACTOR_RESOLVER,
|
|
4616
|
+
import_nestjs_agent_core28.AGENT_MODEL,
|
|
4617
|
+
import_nestjs_agent_core28.AGENT_STORE,
|
|
4618
|
+
import_nestjs_agent_core28.AGENT_MODEL_CATALOG,
|
|
4619
|
+
import_nestjs_agent_core28.AGENT_QUOTA_PROVIDER,
|
|
4620
|
+
import_nestjs_agent_core28.AGENT_PROMPT_CONTRIBUTORS,
|
|
4621
|
+
import_nestjs_agent_core28.AGENT_SKILLS,
|
|
4622
|
+
import_nestjs_agent_core28.AGENT_MEMORY,
|
|
4623
|
+
import_nestjs_agent_core28.AGENT_DEPS_FACTORY,
|
|
4469
4624
|
AgentDepsFactory2,
|
|
4470
4625
|
AgentService,
|
|
4471
4626
|
InlineAgentRunner,
|
|
4472
|
-
|
|
4627
|
+
import_nestjs_agent_core28.AGENT_APPROVAL_PORT
|
|
4473
4628
|
];
|
|
4474
4629
|
}
|
|
4475
4630
|
__name(exportsFor, "exportsFor");
|
|
@@ -4483,21 +4638,13 @@ var BASE_CONTROLLERS = [
|
|
|
4483
4638
|
MemoriesController,
|
|
4484
4639
|
ToolsController,
|
|
4485
4640
|
MessagesController,
|
|
4486
|
-
ModelsController
|
|
4487
|
-
|
|
4488
|
-
var GUARDABLE_CONTROLLERS = [
|
|
4489
|
-
...BASE_CONTROLLERS,
|
|
4641
|
+
ModelsController,
|
|
4642
|
+
ConfigController,
|
|
4490
4643
|
AttachmentsController
|
|
4491
4644
|
];
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
AttachmentsController
|
|
4496
|
-
] : BASE_CONTROLLERS;
|
|
4497
|
-
}
|
|
4498
|
-
__name(controllersFor, "controllersFor");
|
|
4499
|
-
function controllersForSurface(surface, mountAttachments) {
|
|
4500
|
-
return surface === "engine" ? [] : controllersFor(mountAttachments);
|
|
4645
|
+
var GUARDABLE_CONTROLLERS = BASE_CONTROLLERS;
|
|
4646
|
+
function controllersForSurface(surface) {
|
|
4647
|
+
return surface === "engine" ? [] : BASE_CONTROLLERS;
|
|
4501
4648
|
}
|
|
4502
4649
|
__name(controllersForSurface, "controllersForSurface");
|
|
4503
4650
|
var GUARDS_METADATA = "__guards__";
|
|
@@ -4529,7 +4676,6 @@ var AgentModule = class _AgentModule {
|
|
|
4529
4676
|
}
|
|
4530
4677
|
static forRoot(options) {
|
|
4531
4678
|
const path = options.path ?? DEFAULT_PATH;
|
|
4532
|
-
const includeStore = options.store !== void 0;
|
|
4533
4679
|
applyGuards(options.guards);
|
|
4534
4680
|
return {
|
|
4535
4681
|
module: _AgentModule,
|
|
@@ -4538,21 +4684,20 @@ var AgentModule = class _AgentModule {
|
|
|
4538
4684
|
import_core4.DiscoveryModule,
|
|
4539
4685
|
routerFor(path)
|
|
4540
4686
|
],
|
|
4541
|
-
controllers: controllersForSurface(options.surface
|
|
4687
|
+
controllers: controllersForSurface(options.surface),
|
|
4542
4688
|
providers: [
|
|
4543
4689
|
{
|
|
4544
|
-
provide:
|
|
4690
|
+
provide: import_nestjs_agent_core28.AGENT_OPTIONS,
|
|
4545
4691
|
useValue: options
|
|
4546
4692
|
},
|
|
4547
|
-
...sharedProviders(options.durable ?? false
|
|
4693
|
+
...sharedProviders(options.durable ?? false),
|
|
4548
4694
|
...guardProviders(options.guards)
|
|
4549
4695
|
],
|
|
4550
|
-
exports: exportsFor(
|
|
4696
|
+
exports: exportsFor()
|
|
4551
4697
|
};
|
|
4552
4698
|
}
|
|
4553
4699
|
static forRootAsync(options) {
|
|
4554
4700
|
const path = options.path ?? DEFAULT_PATH;
|
|
4555
|
-
const includeStore = options.externalStore !== true;
|
|
4556
4701
|
applyGuards(options.guards);
|
|
4557
4702
|
return {
|
|
4558
4703
|
module: _AgentModule,
|
|
@@ -4562,10 +4707,10 @@ var AgentModule = class _AgentModule {
|
|
|
4562
4707
|
routerFor(path),
|
|
4563
4708
|
...options.imports ?? []
|
|
4564
4709
|
],
|
|
4565
|
-
controllers: controllersForSurface(options.surface
|
|
4710
|
+
controllers: controllersForSurface(options.surface),
|
|
4566
4711
|
providers: [
|
|
4567
4712
|
{
|
|
4568
|
-
provide:
|
|
4713
|
+
provide: import_nestjs_agent_core28.AGENT_OPTIONS,
|
|
4569
4714
|
// Stamp the STATIC wiring flags onto the factory result: `durable`/`surface` are
|
|
4570
4715
|
// authoritative on the async config object (they decided the actual wiring above), and
|
|
4571
4716
|
// the durable module reads `durable` back off AGENT_OPTIONS. `surface` isn't read back by
|
|
@@ -4579,16 +4724,16 @@ var AgentModule = class _AgentModule {
|
|
|
4579
4724
|
}), "useFactory"),
|
|
4580
4725
|
inject: options.inject ?? []
|
|
4581
4726
|
},
|
|
4582
|
-
...sharedProviders(options.durable ?? false
|
|
4727
|
+
...sharedProviders(options.durable ?? false),
|
|
4583
4728
|
...guardProviders(options.guards)
|
|
4584
4729
|
],
|
|
4585
|
-
exports: exportsFor(
|
|
4730
|
+
exports: exportsFor()
|
|
4586
4731
|
};
|
|
4587
4732
|
}
|
|
4588
4733
|
};
|
|
4589
|
-
AgentModule =
|
|
4590
|
-
(0,
|
|
4591
|
-
(0,
|
|
4734
|
+
AgentModule = _ts_decorate24([
|
|
4735
|
+
(0, import_common24.Global)(),
|
|
4736
|
+
(0, import_common24.Module)({})
|
|
4592
4737
|
], AgentModule);
|
|
4593
4738
|
|
|
4594
4739
|
// src/durable/agent-durable.ts
|