@m4trix/core 0.11.1 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +3 -274
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.js +4 -274
- package/dist/index.js.map +1 -1
- package/dist/matrix/index.cjs +3 -3
- package/dist/matrix/index.cjs.map +1 -1
- package/dist/matrix/index.d.ts +12 -10
- package/dist/matrix/index.js +3 -3
- package/dist/matrix/index.js.map +1 -1
- package/package.json +18 -35
- package/dist/helper/index.cjs +0 -279
- package/dist/helper/index.cjs.map +0 -1
- package/dist/helper/index.d.ts +0 -108
- package/dist/helper/index.js +0 -277
- package/dist/helper/index.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var messages = require('@langchain/core/messages');
|
|
4
3
|
var effect = require('effect');
|
|
5
4
|
var crypto$1 = require('crypto');
|
|
6
5
|
|
|
@@ -809,275 +808,6 @@ var SocketIoFactory = class _SocketIoFactory {
|
|
|
809
808
|
return this.prefix ? `${this.prefix}:${event}` : event;
|
|
810
809
|
}
|
|
811
810
|
};
|
|
812
|
-
var humanAndAI = (message) => message instanceof messages.HumanMessage || message instanceof messages.AIMessage;
|
|
813
|
-
var humanOnly = (message) => message instanceof messages.HumanMessage;
|
|
814
|
-
var aiOnly = (message) => message instanceof messages.AIMessage;
|
|
815
|
-
var includingTags = (message, tags) => {
|
|
816
|
-
if (tags) {
|
|
817
|
-
return tags.some(
|
|
818
|
-
(tag) => Array.isArray(message.additional_kwargs?.tags) ? message.additional_kwargs?.tags.includes(tag) : false
|
|
819
|
-
);
|
|
820
|
-
}
|
|
821
|
-
return true;
|
|
822
|
-
};
|
|
823
|
-
var excludingTags = (message, tags) => {
|
|
824
|
-
if (tags) {
|
|
825
|
-
return !tags.some(
|
|
826
|
-
(tag) => Array.isArray(message.additional_kwargs?.tags) ? message.additional_kwargs?.tags.includes(tag) : false
|
|
827
|
-
);
|
|
828
|
-
}
|
|
829
|
-
return true;
|
|
830
|
-
};
|
|
831
|
-
var typeOnFilter = {
|
|
832
|
-
["HumanAndAI" /* HumanAndAI */]: humanAndAI,
|
|
833
|
-
["HumanOnly" /* HumanOnly */]: humanOnly,
|
|
834
|
-
["AIOnly" /* AIOnly */]: aiOnly,
|
|
835
|
-
["IncludingTags" /* IncludingTags */]: includingTags,
|
|
836
|
-
["ExcludingTags" /* ExcludingTags */]: excludingTags
|
|
837
|
-
};
|
|
838
|
-
function concise(messages$1) {
|
|
839
|
-
return messages$1.map((message) => {
|
|
840
|
-
const prefix = message instanceof messages.AIMessage ? "AI" : "Human";
|
|
841
|
-
return `${prefix}: ${message.content}`;
|
|
842
|
-
}).join("\n");
|
|
843
|
-
}
|
|
844
|
-
function verbose(messages$1) {
|
|
845
|
-
return messages$1.map((message) => {
|
|
846
|
-
const prefix = message instanceof messages.AIMessage ? "AI" : "Human";
|
|
847
|
-
return `${prefix}:
|
|
848
|
-
${message.content}`;
|
|
849
|
-
}).join("\n-------------------\n");
|
|
850
|
-
}
|
|
851
|
-
function redactAi(messages$1) {
|
|
852
|
-
return messages$1.map((message) => {
|
|
853
|
-
const prefix = message instanceof messages.AIMessage ? "AI" : "Human";
|
|
854
|
-
const content = message instanceof messages.AIMessage ? "[...]" : message.content;
|
|
855
|
-
return `${prefix}: ${content}`;
|
|
856
|
-
}).join("\n");
|
|
857
|
-
}
|
|
858
|
-
function redactHuman(messages$1) {
|
|
859
|
-
return messages$1.map((message) => {
|
|
860
|
-
const prefix = message instanceof messages.AIMessage ? "AI" : "Human";
|
|
861
|
-
const content = message instanceof messages.AIMessage ? "[...]" : message.content;
|
|
862
|
-
return `${prefix}: ${content}`;
|
|
863
|
-
}).join("\n");
|
|
864
|
-
}
|
|
865
|
-
var typeOnFormatter = {
|
|
866
|
-
["concise" /* Concise */]: concise,
|
|
867
|
-
["verbose" /* Verbose */]: verbose,
|
|
868
|
-
["redact-ai" /* RedactAi */]: redactAi,
|
|
869
|
-
["redact-human" /* RedactHuman */]: redactHuman
|
|
870
|
-
};
|
|
871
|
-
|
|
872
|
-
// src/helper/transform-messages/TransformMessages.ts
|
|
873
|
-
var TransformMessages = class _TransformMessages {
|
|
874
|
-
constructor(effect) {
|
|
875
|
-
this.effect = effect;
|
|
876
|
-
}
|
|
877
|
-
/**
|
|
878
|
-
* Create a new TransformMessages from an array of messages.
|
|
879
|
-
*/
|
|
880
|
-
static from(messages) {
|
|
881
|
-
return new _TransformMessages(effect.Effect.succeed(messages));
|
|
882
|
-
}
|
|
883
|
-
/**
|
|
884
|
-
* Filter messages based on a predicate function
|
|
885
|
-
*/
|
|
886
|
-
filter(predicate, tags) {
|
|
887
|
-
let finalPredicate;
|
|
888
|
-
if (typeof predicate === "string") {
|
|
889
|
-
finalPredicate = typeOnFilter[predicate];
|
|
890
|
-
} else {
|
|
891
|
-
finalPredicate = predicate;
|
|
892
|
-
}
|
|
893
|
-
return new _TransformMessages(
|
|
894
|
-
effect.pipe(
|
|
895
|
-
this.effect,
|
|
896
|
-
effect.Effect.map(
|
|
897
|
-
(messages) => messages.filter((message) => finalPredicate(message, tags))
|
|
898
|
-
)
|
|
899
|
-
)
|
|
900
|
-
);
|
|
901
|
-
}
|
|
902
|
-
/**
|
|
903
|
-
* Take only the last n messages, but safely.
|
|
904
|
-
* Tool calls should not be separated from the last human message.
|
|
905
|
-
* Ensures all tool call conversations in the last n messages are complete.
|
|
906
|
-
*/
|
|
907
|
-
safelyTakeLast(n, pruneAfterNOvershootingMessages = 0) {
|
|
908
|
-
return new _TransformMessages(
|
|
909
|
-
effect.pipe(
|
|
910
|
-
this.effect,
|
|
911
|
-
effect.Effect.map((messages$1) => {
|
|
912
|
-
const total = messages$1.length;
|
|
913
|
-
if (n <= 0 || total === 0)
|
|
914
|
-
return [];
|
|
915
|
-
const start = Math.max(0, total - n);
|
|
916
|
-
const end = total;
|
|
917
|
-
const lastSlice = messages$1.slice(start, end);
|
|
918
|
-
if (lastSlice[0] instanceof messages.ToolMessage && lastSlice[0].tool_call_id) {
|
|
919
|
-
let messagesToInclude = [];
|
|
920
|
-
const remainingMessages = messages$1.slice(0, start);
|
|
921
|
-
for (let i = remainingMessages.length - 1; i >= 0; i--) {
|
|
922
|
-
const msg = remainingMessages[i];
|
|
923
|
-
if (pruneAfterNOvershootingMessages > 0 && messagesToInclude.length - 1 >= pruneAfterNOvershootingMessages) {
|
|
924
|
-
messagesToInclude = [];
|
|
925
|
-
const filteredSlice = [];
|
|
926
|
-
let foundFirstNonToolMessage = false;
|
|
927
|
-
for (let i2 = 0; i2 < lastSlice.length; i2++) {
|
|
928
|
-
const msg2 = lastSlice[i2];
|
|
929
|
-
if (msg2 instanceof messages.ToolMessage) {
|
|
930
|
-
if (foundFirstNonToolMessage) {
|
|
931
|
-
filteredSlice.push(msg2);
|
|
932
|
-
}
|
|
933
|
-
} else {
|
|
934
|
-
foundFirstNonToolMessage = true;
|
|
935
|
-
filteredSlice.push(msg2);
|
|
936
|
-
}
|
|
937
|
-
}
|
|
938
|
-
return filteredSlice;
|
|
939
|
-
}
|
|
940
|
-
if (msg instanceof messages.AIMessage && Array.isArray(msg.tool_calls)) {
|
|
941
|
-
messagesToInclude.push(msg);
|
|
942
|
-
break;
|
|
943
|
-
} else if (msg instanceof messages.ToolMessage) {
|
|
944
|
-
messagesToInclude.push(msg);
|
|
945
|
-
} else {
|
|
946
|
-
throw new Error(
|
|
947
|
-
"Messages array invalid no adjacent AI message found"
|
|
948
|
-
);
|
|
949
|
-
}
|
|
950
|
-
}
|
|
951
|
-
return [...messagesToInclude.reverse(), ...lastSlice];
|
|
952
|
-
} else {
|
|
953
|
-
return lastSlice;
|
|
954
|
-
}
|
|
955
|
-
})
|
|
956
|
-
)
|
|
957
|
-
);
|
|
958
|
-
}
|
|
959
|
-
/**
|
|
960
|
-
* Take only the last n messages
|
|
961
|
-
*/
|
|
962
|
-
last(n) {
|
|
963
|
-
return new _TransformMessages(
|
|
964
|
-
effect.pipe(
|
|
965
|
-
this.effect,
|
|
966
|
-
effect.Effect.map((messages) => messages.slice(-n))
|
|
967
|
-
)
|
|
968
|
-
);
|
|
969
|
-
}
|
|
970
|
-
/**
|
|
971
|
-
* Take only the first n messages
|
|
972
|
-
*/
|
|
973
|
-
first(n) {
|
|
974
|
-
return new _TransformMessages(
|
|
975
|
-
effect.pipe(
|
|
976
|
-
this.effect,
|
|
977
|
-
effect.Effect.map((messages) => messages.slice(0, n))
|
|
978
|
-
)
|
|
979
|
-
);
|
|
980
|
-
}
|
|
981
|
-
/**
|
|
982
|
-
* Skip the first n messages
|
|
983
|
-
*/
|
|
984
|
-
skip(n) {
|
|
985
|
-
return new _TransformMessages(
|
|
986
|
-
effect.pipe(
|
|
987
|
-
this.effect,
|
|
988
|
-
effect.Effect.map((messages) => messages.slice(n))
|
|
989
|
-
)
|
|
990
|
-
);
|
|
991
|
-
}
|
|
992
|
-
/**
|
|
993
|
-
* Reverse the order of messages
|
|
994
|
-
*/
|
|
995
|
-
reverse() {
|
|
996
|
-
return new _TransformMessages(
|
|
997
|
-
effect.pipe(
|
|
998
|
-
this.effect,
|
|
999
|
-
effect.Effect.map((messages) => [...messages].reverse())
|
|
1000
|
-
)
|
|
1001
|
-
);
|
|
1002
|
-
}
|
|
1003
|
-
/**
|
|
1004
|
-
* Map over messages with a transformation function
|
|
1005
|
-
*/
|
|
1006
|
-
map(fn) {
|
|
1007
|
-
return new _TransformMessages(
|
|
1008
|
-
effect.pipe(
|
|
1009
|
-
this.effect,
|
|
1010
|
-
effect.Effect.map((messages) => messages.map(fn))
|
|
1011
|
-
)
|
|
1012
|
-
);
|
|
1013
|
-
}
|
|
1014
|
-
/**
|
|
1015
|
-
* Format messages according to the specified format type
|
|
1016
|
-
*/
|
|
1017
|
-
format(formatType) {
|
|
1018
|
-
const result = effect.Effect.runSync(
|
|
1019
|
-
effect.pipe(
|
|
1020
|
-
this.effect,
|
|
1021
|
-
effect.Effect.map((messages) => {
|
|
1022
|
-
if (formatType === "json" /* JSON */) {
|
|
1023
|
-
return JSON.stringify(messages, null, 2);
|
|
1024
|
-
}
|
|
1025
|
-
const formatter = typeOnFormatter[formatType];
|
|
1026
|
-
return formatter(messages);
|
|
1027
|
-
})
|
|
1028
|
-
)
|
|
1029
|
-
);
|
|
1030
|
-
return result;
|
|
1031
|
-
}
|
|
1032
|
-
// Sink methods
|
|
1033
|
-
/**
|
|
1034
|
-
* Convert to array - runs the effect and returns the result
|
|
1035
|
-
return pipe(
|
|
1036
|
-
this.effect,
|
|
1037
|
-
Effect.map((messages) => {
|
|
1038
|
-
if (formatType === FormatType.JSON) {
|
|
1039
|
-
return JSON.stringify(messages, null, 2);
|
|
1040
|
-
}
|
|
1041
|
-
|
|
1042
|
-
const formatter = typeOnFormatter[formatType];
|
|
1043
|
-
return formatter(messages);
|
|
1044
|
-
})
|
|
1045
|
-
);
|
|
1046
|
-
}
|
|
1047
|
-
|
|
1048
|
-
// Sink methods
|
|
1049
|
-
|
|
1050
|
-
/**
|
|
1051
|
-
* Convert to array - runs the effect and returns the result
|
|
1052
|
-
*/
|
|
1053
|
-
toArray() {
|
|
1054
|
-
return effect.Effect.runSync(this.effect);
|
|
1055
|
-
}
|
|
1056
|
-
/**
|
|
1057
|
-
* Convert to string - runs the effect and returns JSON string
|
|
1058
|
-
*/
|
|
1059
|
-
toString() {
|
|
1060
|
-
const result = effect.Effect.runSync(
|
|
1061
|
-
effect.pipe(
|
|
1062
|
-
this.effect,
|
|
1063
|
-
effect.Effect.map((messages) => JSON.stringify(messages, null, 2))
|
|
1064
|
-
)
|
|
1065
|
-
);
|
|
1066
|
-
return result;
|
|
1067
|
-
}
|
|
1068
|
-
/**
|
|
1069
|
-
* Get the count of messages
|
|
1070
|
-
*/
|
|
1071
|
-
count() {
|
|
1072
|
-
const result = effect.Effect.runSync(
|
|
1073
|
-
effect.pipe(
|
|
1074
|
-
this.effect,
|
|
1075
|
-
effect.Effect.map((messages) => messages.length)
|
|
1076
|
-
)
|
|
1077
|
-
);
|
|
1078
|
-
return result;
|
|
1079
|
-
}
|
|
1080
|
-
};
|
|
1081
811
|
var KEBAB_CASE_REGEX = /^[a-z0-9]+(-[a-z0-9]+)*$/;
|
|
1082
812
|
var ChannelName = effect.Brand.refined(
|
|
1083
813
|
(s) => typeof s === "string" && KEBAB_CASE_REGEX.test(s),
|
|
@@ -1829,7 +1559,7 @@ var LayerName = effect.Brand.refined(
|
|
|
1829
1559
|
(s) => typeof s === "string" && CAMEL_CASE_REGEX.test(s),
|
|
1830
1560
|
(s) => effect.Brand.error(`Expected camelCase (e.g. myLayerFoo), got: ${s}`)
|
|
1831
1561
|
);
|
|
1832
|
-
var
|
|
1562
|
+
var DepedencyLayer = {
|
|
1833
1563
|
of(config) {
|
|
1834
1564
|
const name = LayerName(config.name);
|
|
1835
1565
|
const decode = effect.Schema.decodeUnknown(config.shape);
|
|
@@ -1898,7 +1628,7 @@ var Skill = class _Skill {
|
|
|
1898
1628
|
doneSchema: schema
|
|
1899
1629
|
});
|
|
1900
1630
|
}
|
|
1901
|
-
|
|
1631
|
+
dependsOn(...layers) {
|
|
1902
1632
|
const normalized = toLayerArray(layers);
|
|
1903
1633
|
const allLayers = [...this._layers, ...normalized];
|
|
1904
1634
|
assertUniqueLayerNames(allLayers);
|
|
@@ -2196,6 +1926,7 @@ exports.AgentNetworkEvent = AgentNetworkEvent;
|
|
|
2196
1926
|
exports.Channel = Channel;
|
|
2197
1927
|
exports.ChannelName = ChannelName;
|
|
2198
1928
|
exports.ConfiguredChannel = ConfiguredChannel;
|
|
1929
|
+
exports.DepedencyLayer = DepedencyLayer;
|
|
2199
1930
|
exports.EventMetaSchema = EventMetaSchema;
|
|
2200
1931
|
exports.ExposeAuthError = ExposeAuthError;
|
|
2201
1932
|
exports.ExpressEndpoint = ExpressEndpoint;
|
|
@@ -2204,9 +1935,7 @@ exports.NextEndpoint = NextEndpoint;
|
|
|
2204
1935
|
exports.Pump = Pump;
|
|
2205
1936
|
exports.Sink = Sink;
|
|
2206
1937
|
exports.Skill = Skill;
|
|
2207
|
-
exports.SkillDependency = SkillDependency;
|
|
2208
1938
|
exports.SocketIoFactory = SocketIoFactory;
|
|
2209
|
-
exports.TransformMessages = TransformMessages;
|
|
2210
1939
|
exports.consoleTracer = consoleTracer;
|
|
2211
1940
|
exports.consoleTracerLayer = consoleTracerLayer;
|
|
2212
1941
|
exports.ensureFullWords = ensureFullWords;
|