@pompeii-labs/magma
Version:
The Typescript framework to build AI agents quickly and easily
100 lines (94 loc) • 3.25 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
// src/types/messages.ts
var _MagmaMessage = class _MagmaMessage {
constructor({ role, content, blocks, id }) {
__publicField(this, "id");
__publicField(this, "role");
__publicField(this, "blocks", []);
this.id = id;
this.role = role;
if (blocks) {
this.blocks = blocks;
} else if (content !== void 0 && content !== null) {
this.blocks = [
{
type: "text",
text: content
}
];
}
}
getText() {
return this.blocks.filter((block) => block.type === "text").map((block) => block.text).join("\n");
}
getToolCalls() {
return this.blocks.filter((block) => block.type === "tool_call").map((block) => block.tool_call);
}
getToolResults() {
return this.blocks.filter((block) => block.type === "tool_result").map((block) => block.tool_result);
}
getReasoning() {
return this.blocks.filter((block) => block.type === "reasoning").filter((block) => !block.redacted).map((block) => block.reasoning).join("\n");
}
getImages() {
return this.blocks.filter((block) => block.type === "image").map((block) => block.image);
}
get content() {
return this.getText();
}
};
__name(_MagmaMessage, "MagmaMessage");
var MagmaMessage = _MagmaMessage;
var _MagmaUserMessage = class _MagmaUserMessage extends MagmaMessage {
constructor(magmaUserMessage) {
super(magmaUserMessage);
__publicField(this, "role", "user");
}
};
__name(_MagmaUserMessage, "MagmaUserMessage");
var MagmaUserMessage = _MagmaUserMessage;
var _MagmaAssistantMessage = class _MagmaAssistantMessage extends MagmaMessage {
constructor(magmaAssistantMessage) {
super(magmaAssistantMessage);
__publicField(this, "role", "assistant");
}
};
__name(_MagmaAssistantMessage, "MagmaAssistantMessage");
var MagmaAssistantMessage = _MagmaAssistantMessage;
var _MagmaSystemMessage = class _MagmaSystemMessage extends MagmaMessage {
constructor(magmaSystemMessage) {
super(magmaSystemMessage);
__publicField(this, "role", "system");
this.blocks.forEach((block) => {
var _a;
block.cache = (_a = block.cache) != null ? _a : magmaSystemMessage.cache;
});
}
};
__name(_MagmaSystemMessage, "MagmaSystemMessage");
var MagmaSystemMessage = _MagmaSystemMessage;
// src/types/providers.ts
var MagmaProviders = [
"openai",
"anthropic",
"groq",
"google"
];
// src/types/utilities/middleware.ts
var MagmaMiddlewareTriggers = [
"onCompletion",
"preCompletion",
"onToolExecution",
"preToolExecution",
"onMainFinish"
];
exports.MagmaAssistantMessage = MagmaAssistantMessage;
exports.MagmaMessage = MagmaMessage;
exports.MagmaMiddlewareTriggers = MagmaMiddlewareTriggers;
exports.MagmaProviders = MagmaProviders;
exports.MagmaSystemMessage = MagmaSystemMessage;
exports.MagmaUserMessage = MagmaUserMessage;