Skip to content

Commit 4c6ca5e

Browse files
committed
wip
1 parent d65a171 commit 4c6ca5e

18 files changed

+399
-148
lines changed

packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-metadata-required-metadata-for-validation.constant.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,11 @@ export const ALL_METADATA_REQUIRED_METADATA_FOR_VALIDATION = {
5252
role: {},
5353
roleTarget: {
5454
role: true,
55+
agent: true,
56+
},
57+
agent: {
58+
role: true,
5559
},
56-
agent: {},
5760
pageLayout: {},
5861
pageLayoutTab: {
5962
pageLayout: true,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { type STANDARD_ROLE_TARGET } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-role-target.constant';
2+
import { type AllStandardRoleTargetTypeName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-role-target-type-name.type';
3+
4+
export type AllStandardRoleTargetName<
5+
T extends AllStandardRoleTargetTypeName = AllStandardRoleTargetTypeName,
6+
> = keyof (typeof STANDARD_ROLE_TARGET)[T];
7+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { type STANDARD_ROLE_TARGET } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-role-target.constant';
2+
3+
export type AllStandardRoleTargetTypeName = keyof typeof STANDARD_ROLE_TARGET;
4+

packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/types/twenty-standard-all-flat-entity-maps.type.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,7 @@ export type TwentyStandardAllFlatEntityMaps = Pick<
99
| 'flatViewFilterMaps'
1010
| 'flatViewGroupMaps'
1111
| 'flatViewMaps'
12+
| 'flatRoleMaps'
13+
| 'flatAgentMaps'
14+
| 'flatRoleTargetMaps'
1215
>;

packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/agent-metadata/build-standard-flat-agent-metadata-maps.util.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { STANDARD_FLAT_AGENT_METADATA_BUILDERS_BY_AGENT_NAME } from 'src/engine/
66
import { type CreateStandardAgentArgs } from 'src/engine/workspace-manager/twenty-standard-application/utils/agent-metadata/create-standard-agent-flat-metadata.util';
77

88
export const buildStandardFlatAgentMetadataMaps = (
9-
args: Omit<CreateStandardAgentArgs, 'context' | 'agentName'>,
9+
args: Omit<CreateStandardAgentArgs, 'context'>,
1010
): FlatEntityMaps<FlatAgent> => {
1111
const allAgentMetadatas: FlatAgent[] = Object.values(
1212
STANDARD_FLAT_AGENT_METADATA_BUILDERS_BY_AGENT_NAME,
@@ -23,4 +23,3 @@ export const buildStandardFlatAgentMetadataMaps = (
2323

2424
return flatAgentMetadataMaps;
2525
};
26-

packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/agent-metadata/create-standard-agent-flat-metadata.util.ts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
1+
import { v4 } from 'uuid';
2+
13
import { type AgentResponseFormat } from 'src/engine/metadata-modules/ai/ai-agent/types/agent-response-format.type';
24
import { type ModelConfiguration } from 'src/engine/metadata-modules/ai/ai-agent/types/modelConfiguration';
35
import { type ModelId } from 'src/engine/metadata-modules/ai/ai-models/constants/ai-models.const';
46
import { type FlatAgent } from 'src/engine/metadata-modules/flat-agent/types/flat-agent.type';
7+
import { type AllStandardAgentName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-agent-name.type';
8+
import { type StandardBuilderArgs } from 'src/engine/workspace-manager/twenty-standard-application/types/metadata-standard-buillder-args.type';
59

610
export type CreateStandardAgentContext = {
11+
agentName: AllStandardAgentName;
712
universalIdentifier: string;
813
standardId: string;
914
name: string;
@@ -18,13 +23,8 @@ export type CreateStandardAgentContext = {
1823
evaluationInputs: string[];
1924
};
2025

21-
export type CreateStandardAgentArgs = {
22-
workspaceId: string;
23-
twentyStandardApplicationId: string;
24-
now: string;
26+
export type CreateStandardAgentArgs = StandardBuilderArgs<'agent'> & {
2527
context: CreateStandardAgentContext;
26-
standardAgentRelatedEntityIds: Record<string, { id: string }>;
27-
agentName: string;
2828
};
2929

3030
export const createStandardAgentFlatMetadata = ({
@@ -45,10 +45,8 @@ export const createStandardAgentFlatMetadata = ({
4545
workspaceId,
4646
twentyStandardApplicationId,
4747
now,
48-
standardAgentRelatedEntityIds,
49-
agentName,
5048
}: CreateStandardAgentArgs): FlatAgent => ({
51-
id: standardAgentRelatedEntityIds[agentName].id,
49+
id: v4(),
5250
universalIdentifier,
5351
standardId,
5452
name,
@@ -67,4 +65,3 @@ export const createStandardAgentFlatMetadata = ({
6765
updatedAt: now,
6866
deletedAt: null,
6967
});
70-

packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/agent-metadata/create-standard-flat-agent-metadata.util.ts

Lines changed: 19 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,11 @@ import {
88
} from 'src/engine/workspace-manager/twenty-standard-application/utils/agent-metadata/create-standard-agent-flat-metadata.util';
99

1010
export const STANDARD_FLAT_AGENT_METADATA_BUILDERS_BY_AGENT_NAME = {
11-
dashboardBuilder: ({
12-
now,
13-
workspaceId,
14-
twentyStandardApplicationId,
15-
standardAgentRelatedEntityIds,
16-
}: Omit<CreateStandardAgentArgs, 'context' | 'agentName'>) =>
11+
dashboardBuilder: (args: Omit<CreateStandardAgentArgs, 'context'>) =>
1712
createStandardAgentFlatMetadata({
18-
agentName: 'dashboardBuilder',
13+
...args,
1914
context: {
15+
agentName: 'dashboardBuilder',
2016
universalIdentifier:
2117
STANDARD_AGENT.dashboardBuilder.universalIdentifier,
2218
standardId: STANDARD_AGENT.dashboardBuilder.universalIdentifier,
@@ -82,20 +78,12 @@ Prioritize user needs and dashboard usability.`,
8278
modelConfiguration: {},
8379
evaluationInputs: [],
8480
},
85-
workspaceId,
86-
twentyStandardApplicationId,
87-
standardAgentRelatedEntityIds,
88-
now,
8981
}),
90-
dataManipulator: ({
91-
now,
92-
workspaceId,
93-
twentyStandardApplicationId,
94-
standardAgentRelatedEntityIds,
95-
}: Omit<CreateStandardAgentArgs, 'context' | 'agentName'>) =>
82+
dataManipulator: (args: Omit<CreateStandardAgentArgs, 'context'>) =>
9683
createStandardAgentFlatMetadata({
97-
agentName: 'dataManipulator',
84+
...args,
9885
context: {
86+
agentName: 'dataManipulator',
9987
universalIdentifier: STANDARD_AGENT.dataManipulator.universalIdentifier,
10088
standardId: STANDARD_AGENT.dataManipulator.universalIdentifier,
10189
name: 'data-manipulator',
@@ -138,20 +126,12 @@ Prioritize data integrity and provide clear feedback on operations performed.`,
138126
modelConfiguration: {},
139127
evaluationInputs: [],
140128
},
141-
workspaceId,
142-
twentyStandardApplicationId,
143-
standardAgentRelatedEntityIds,
144-
now,
145129
}),
146-
helper: ({
147-
now,
148-
workspaceId,
149-
twentyStandardApplicationId,
150-
standardAgentRelatedEntityIds,
151-
}: Omit<CreateStandardAgentArgs, 'context' | 'agentName'>) =>
130+
helper: (args: Omit<CreateStandardAgentArgs, 'context'>) =>
152131
createStandardAgentFlatMetadata({
153-
agentName: 'helper',
132+
...args,
154133
context: {
134+
agentName: 'helper',
155135
universalIdentifier: STANDARD_AGENT.helper.universalIdentifier,
156136
standardId: STANDARD_AGENT.helper.universalIdentifier,
157137
name: 'helper',
@@ -188,20 +168,12 @@ Always base answers on official Twenty documentation. Be patient and helpful.`,
188168
modelConfiguration: {},
189169
evaluationInputs: [],
190170
},
191-
workspaceId,
192-
twentyStandardApplicationId,
193-
standardAgentRelatedEntityIds,
194-
now,
195171
}),
196-
metadataBuilder: ({
197-
now,
198-
workspaceId,
199-
twentyStandardApplicationId,
200-
standardAgentRelatedEntityIds,
201-
}: Omit<CreateStandardAgentArgs, 'context' | 'agentName'>) =>
172+
metadataBuilder: (args: Omit<CreateStandardAgentArgs, 'context'>) =>
202173
createStandardAgentFlatMetadata({
203-
agentName: 'metadataBuilder',
174+
...args,
204175
context: {
176+
agentName: 'metadataBuilder',
205177
universalIdentifier:
206178
STANDARD_AGENT.metadataBuilder.universalIdentifier,
207179
standardId: STANDARD_AGENT.metadataBuilder.universalIdentifier,
@@ -276,20 +248,12 @@ Prioritize data model integrity and user understanding.`,
276248
'Create a relation between Person and Company for the account manager',
277249
],
278250
},
279-
workspaceId,
280-
twentyStandardApplicationId,
281-
standardAgentRelatedEntityIds,
282-
now,
283251
}),
284-
researcher: ({
285-
now,
286-
workspaceId,
287-
twentyStandardApplicationId,
288-
standardAgentRelatedEntityIds,
289-
}: Omit<CreateStandardAgentArgs, 'context' | 'agentName'>) =>
252+
researcher: (args: Omit<CreateStandardAgentArgs, 'context'>) =>
290253
createStandardAgentFlatMetadata({
291-
agentName: 'researcher',
254+
...args,
292255
context: {
256+
agentName: 'researcher',
293257
universalIdentifier: STANDARD_AGENT.researcher.universalIdentifier,
294258
standardId: STANDARD_AGENT.researcher.universalIdentifier,
295259
name: 'researcher',
@@ -329,20 +293,12 @@ Be persistent in finding accurate information.`,
329293
},
330294
evaluationInputs: [],
331295
},
332-
workspaceId,
333-
twentyStandardApplicationId,
334-
standardAgentRelatedEntityIds,
335-
now,
336296
}),
337-
workflowBuilder: ({
338-
now,
339-
workspaceId,
340-
twentyStandardApplicationId,
341-
standardAgentRelatedEntityIds,
342-
}: Omit<CreateStandardAgentArgs, 'context' | 'agentName'>) =>
297+
workflowBuilder: (args: Omit<CreateStandardAgentArgs, 'context'>) =>
343298
createStandardAgentFlatMetadata({
344-
agentName: 'workflowBuilder',
299+
...args,
345300
context: {
301+
agentName: 'workflowBuilder',
346302
universalIdentifier:
347303
STANDARD_AGENT.workflowBuilder.universalIdentifier,
348304
standardId: STANDARD_AGENT.workflowBuilder.universalIdentifier,
@@ -427,14 +383,9 @@ Prioritize user understanding and workflow effectiveness.`,
427383
'workflow to automatically generate quote pdf when opportunity moves to proposal stage',
428384
],
429385
},
430-
workspaceId,
431-
twentyStandardApplicationId,
432-
standardAgentRelatedEntityIds,
433-
now,
434386
}),
435387
} satisfies {
436388
[P in AllStandardAgentName]: (
437-
args: Omit<CreateStandardAgentArgs, 'context' | 'agentName'>,
389+
args: Omit<CreateStandardAgentArgs, 'context'>,
438390
) => FlatAgent;
439391
};
440-
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { v4 } from 'uuid';
2+
3+
import { STANDARD_AGENT } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-agent.contant';
4+
import { type AllStandardAgentName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-agent-name.type';
5+
6+
export type StandardAgentRelatedEntityIds = Record<
7+
AllStandardAgentName,
8+
{ id: string }
9+
>;
10+
11+
export const getStandardAgentRelatedEntityIds =
12+
(): StandardAgentRelatedEntityIds => {
13+
const result = {} as StandardAgentRelatedEntityIds;
14+
15+
for (const agentName of Object.keys(
16+
STANDARD_AGENT,
17+
) as AllStandardAgentName[]) {
18+
result[agentName] = { id: v4() };
19+
}
20+
21+
return result;
22+
};
23+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { v4 } from 'uuid';
2+
3+
import { STANDARD_AGENT } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-agent.contant';
4+
import { type AllStandardAgentName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-agent-name.type';
5+
6+
export type StandardAgentRelatedEntityIds = Record<
7+
AllStandardAgentName,
8+
{ id: string }
9+
>;
10+
11+
export const getStandardAgentRelatedEntityIds =
12+
(): StandardAgentRelatedEntityIds => {
13+
const result = {} as StandardAgentRelatedEntityIds;
14+
15+
for (const agentName of Object.keys(
16+
STANDARD_AGENT,
17+
) as AllStandardAgentName[]) {
18+
result[agentName] = { id: v4() };
19+
}
20+
21+
return result;
22+
};
23+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { v4 } from 'uuid';
2+
3+
import { STANDARD_ROLE } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-role.constant';
4+
import { type AllStandardRoleName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-role-name.type';
5+
6+
export type StandardRoleRelatedEntityIds = Record<
7+
AllStandardRoleName,
8+
{ id: string }
9+
>;
10+
11+
export const getStandardRoleRelatedEntityIds =
12+
(): StandardRoleRelatedEntityIds => {
13+
const result = {} as StandardRoleRelatedEntityIds;
14+
15+
for (const roleName of Object.keys(
16+
STANDARD_ROLE,
17+
) as AllStandardRoleName[]) {
18+
result[roleName] = { id: v4() };
19+
}
20+
21+
return result;
22+
};
23+

0 commit comments

Comments
 (0)