Skip to content

Commit

Permalink
Update our custom matrix identifiers from org.boxel to app.boxel
Browse files Browse the repository at this point in the history
  • Loading branch information
lukemelia committed Dec 18, 2024
1 parent 6fd5262 commit 6c6ae21
Show file tree
Hide file tree
Showing 37 changed files with 331 additions and 232 deletions.
25 changes: 16 additions & 9 deletions packages/ai-bot/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ import { MatrixEvent, type IRoomEvent } from 'matrix-js-sdk';
import { ChatCompletionMessageToolCall } from 'openai/resources/chat/completions';
import * as Sentry from '@sentry/node';
import { logger } from '@cardstack/runtime-common';
import {
APP_BOXEL_CARDFRAGMENT_MSGTYPE,
APP_BOXEL_MESSAGE_MSGTYPE,
APP_BOXEL_COMMAND_MSGTYPE,
APP_BOXEL_COMMAND_RESULT_MSGTYPE,
APP_BOXEL_ROOM_SKILLS_EVENT_TYPE,
} from '@cardstack/runtime-common/matrix-constants';

let log = logger('ai-bot');

Expand Down Expand Up @@ -91,7 +98,7 @@ export function extractCardFragmentsFromEvents(
const fragments = new Map<string, CardFragmentContent>(); // eventId => fragment
for (let event of eventList) {
if (event.type === 'm.room.message') {
if (event.content.msgtype === 'org.boxel.cardFragment') {
if (event.content.msgtype === APP_BOXEL_CARDFRAGMENT_MSGTYPE) {
fragments.set(event.event_id, event.content as CardFragmentContent);
}
}
Expand Down Expand Up @@ -136,10 +143,10 @@ export function constructHistory(
continue;
}
let eventId = event.event_id!;
if (event.content.msgtype === 'org.boxel.cardFragment') {
if (event.content.msgtype === APP_BOXEL_CARDFRAGMENT_MSGTYPE) {
continue;
}
if (event.content.msgtype === 'org.boxel.message') {
if (event.content.msgtype === APP_BOXEL_MESSAGE_MSGTYPE) {
let { attachedCardsEventIds } = event.content.data;
if (attachedCardsEventIds && attachedCardsEventIds.length > 0) {
event.content.data.attachedCards = attachedCardsEventIds.map((id) =>
Expand Down Expand Up @@ -174,7 +181,7 @@ function getEnabledSkills(
cardFragments: Map<string, CardFragmentContent>,
): LooseCardResource[] {
let skillsConfigEvent = eventlist.findLast(
(event) => event.type === 'com.cardstack.boxel.room.skills',
(event) => event.type === APP_BOXEL_ROOM_SKILLS_EVENT_TYPE,
) as SkillsConfigEvent;
if (!skillsConfigEvent) {
return [];
Expand Down Expand Up @@ -272,7 +279,7 @@ export function getRelevantCards(
}
if (event.sender !== aiBotUserId) {
let { content } = event;
if (content.msgtype === 'org.boxel.message') {
if (content.msgtype === APP_BOXEL_MESSAGE_MSGTYPE) {
setRelevantCards(attachedCardMap, content.data?.attachedCards);
if (content.data?.attachedCards) {
mostRecentlyAttachedCard = getMostRecentlyAttachedCard(
Expand Down Expand Up @@ -310,7 +317,7 @@ export function getTools(
const lastMessage = userMessages[userMessages.length - 1];
if (
lastMessage.type === 'm.room.message' &&
lastMessage.content.msgtype === 'org.boxel.message' &&
lastMessage.content.msgtype === APP_BOXEL_MESSAGE_MSGTYPE &&
lastMessage.content.data?.context?.tools?.length
) {
return lastMessage.content.data.context.tools;
Expand All @@ -326,7 +333,7 @@ export function isCommandResultEvent(
return (
event.type === 'm.room.message' &&
typeof event.content === 'object' &&
event.content.msgtype === 'org.boxel.commandResult'
event.content.msgtype === APP_BOXEL_COMMAND_RESULT_MSGTYPE
);
}

Expand Down Expand Up @@ -449,7 +456,7 @@ export function getModifyPrompt(
}
} else {
if (
event.content.msgtype === 'org.boxel.message' &&
event.content.msgtype === APP_BOXEL_MESSAGE_MSGTYPE &&
event.content.data?.context?.openCardIds
) {
body = `User message: ${body}
Expand Down Expand Up @@ -559,7 +566,7 @@ export function isCommandEvent(
return (
event.type === 'm.room.message' &&
typeof event.content === 'object' &&
event.content.msgtype === 'org.boxel.command' &&
event.content.msgtype === APP_BOXEL_COMMAND_MSGTYPE &&
event.content.format === 'org.matrix.custom.html' &&
typeof event.content.data === 'object' &&
typeof event.content.data.toolCall === 'object'
Expand Down
3 changes: 2 additions & 1 deletion packages/ai-bot/lib/matrix.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { logger } from '@cardstack/runtime-common';
import { OpenAIError } from 'openai/error';
import * as Sentry from '@sentry/node';
import { FunctionToolCall } from '@cardstack/runtime-common/helpers/ai';
import { APP_BOXEL_COMMAND_MSGTYPE } from '../helpers';

let log = logger('ai-bot');

Expand Down Expand Up @@ -129,7 +130,7 @@ export const toMatrixMessageCommandContent = (
const body = payload['description'] || 'Issuing command';
let messageObject: IContent = {
body: body,
msgtype: 'org.boxel.command',
msgtype: APP_BOXEL_COMMAND_MSGTYPE,
formatted_body: body,
format: 'org.matrix.custom.html',
data: {
Expand Down
4 changes: 3 additions & 1 deletion packages/ai-bot/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ import {
getPromptParts,
extractCardFragmentsFromEvents,
} from './helpers';
import { APP_BOXEL_CARDFRAGMENT_MSGTYPE } from '@cardstack/runtime-common/matrix-constants';

import {
shouldSetRoomTitle,
setTitle,
Expand Down Expand Up @@ -167,7 +169,7 @@ Common issues are:
if (event.getType() !== 'm.room.message') {
return; // only print messages
}
if (event.getContent().msgtype === 'org.boxel.cardFragment') {
if (event.getContent().msgtype === APP_BOXEL_CARDFRAGMENT_MSGTYPE) {
return; // don't respond to card fragments, we just gather these in our history
}

Expand Down
5 changes: 3 additions & 2 deletions packages/ai-bot/tests/chat-titling-test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { module, test, assert } from 'qunit';
import { shouldSetRoomTitle } from '../lib/set-title';
import type { MatrixEvent as DiscreteMatrixEvent } from 'https://cardstack.com/base/matrix-event';
import { APP_BOXEL_COMMAND_MSGTYPE } from '@cardstack/runtime-common/matrix-constants';

module('shouldSetRoomTitle', () => {
test('Do not set a title when there is no content', () => {
Expand Down Expand Up @@ -370,7 +371,7 @@ module('shouldSetRoomTitle', () => {
event_id: '2',
origin_server_ts: 1234567890,
content: {
msgtype: 'org.boxel.command',
msgtype: APP_BOXEL_COMMAND_MSGTYPE,
format: 'org.matrix.custom.html',
body: 'patching card',
formatted_body: 'patching card',
Expand Down Expand Up @@ -439,7 +440,7 @@ module('shouldSetRoomTitle', () => {
event_id: '2',
origin_server_ts: 1234567890,
content: {
msgtype: 'org.boxel.command',
msgtype: APP_BOXEL_COMMAND_MSGTYPE,
format: 'org.matrix.custom.html',
body: 'patching card',
formatted_body: 'patching card',
Expand Down
26 changes: 16 additions & 10 deletions packages/ai-bot/tests/history-construction-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ import {
extractCardFragmentsFromEvents,
HistoryConstructionError,
} from '../helpers';
import {
APP_BOXEL_CARD_FORMAT,
APP_BOXEL_CARDFRAGMENT_MSGTYPE,
APP_BOXEL_MESSAGE_MSGTYPE,
} from '@cardstack/runtime-common/matrix-constants';

import { type IRoomEvent } from 'matrix-js-sdk';
import type { MatrixEvent as DiscreteMatrixEvent } from 'https://cardstack.com/base/matrix-event';

Expand Down Expand Up @@ -383,8 +389,8 @@ module('constructHistory', () => {
event_id: '1',
origin_server_ts: 1234567900,
content: {
msgtype: 'org.boxel.cardFragment',
format: 'org.boxel.card',
msgtype: APP_BOXEL_CARDFRAGMENT_MSGTYPE,
format: APP_BOXEL_CARD_FORMAT,
formatted_body: '',
body: '',
data: JSON.stringify({
Expand All @@ -405,8 +411,8 @@ module('constructHistory', () => {
event_id: '2',
origin_server_ts: 1234567890,
content: {
msgtype: 'org.boxel.cardFragment',
format: 'org.boxel.card',
msgtype: APP_BOXEL_CARDFRAGMENT_MSGTYPE,
format: APP_BOXEL_CARD_FORMAT,
formatted_body: '',
body: '',
data: JSON.stringify({
Expand All @@ -428,8 +434,8 @@ module('constructHistory', () => {
event_id: '3',
origin_server_ts: 1234567910,
content: {
msgtype: 'org.boxel.cardFragment',
format: 'org.boxel.card',
msgtype: APP_BOXEL_CARDFRAGMENT_MSGTYPE,
format: APP_BOXEL_CARD_FORMAT,
formatted_body: '',
body: '',
data: JSON.stringify({
Expand All @@ -450,7 +456,7 @@ module('constructHistory', () => {
event_id: '4',
origin_server_ts: 1234567920,
content: {
msgtype: 'org.boxel.message',
msgtype: APP_BOXEL_MESSAGE_MSGTYPE,
format: 'org.matrix.custom.html',
body: 'Hey',
formatted_body: 'Hey',
Expand Down Expand Up @@ -479,7 +485,7 @@ module('constructHistory', () => {
event_id: '4',
origin_server_ts: 1234567920,
content: {
msgtype: 'org.boxel.message',
msgtype: APP_BOXEL_MESSAGE_MSGTYPE,
format: 'org.matrix.custom.html',
body: 'Hey',
formatted_body: 'Hey',
Expand Down Expand Up @@ -542,8 +548,8 @@ module('constructHistory', () => {
room_id: 'room1',
sender: '@user:localhost',
content: {
msgtype: 'org.boxel.cardFragment',
format: 'org.boxel.card',
msgtype: APP_BOXEL_CARDFRAGMENT_MSGTYPE,
format: APP_BOXEL_CARD_FORMAT,
body: 'card fragment 1 of 1',
formatted_body: 'card fragment 1 of 1',
// data should be a JSON string
Expand Down
Loading

0 comments on commit 6c6ae21

Please sign in to comment.