@solidxai/core 0.1.8-beta.0 → 0.1.8-beta.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.
Files changed (91) hide show
  1. package/dist/controllers/agent-event.controller.d.ts +35 -0
  2. package/dist/controllers/agent-event.controller.d.ts.map +1 -0
  3. package/dist/controllers/agent-event.controller.js +147 -0
  4. package/dist/controllers/agent-event.controller.js.map +1 -0
  5. package/dist/controllers/agent-session.controller.d.ts +35 -0
  6. package/dist/controllers/agent-session.controller.d.ts.map +1 -0
  7. package/dist/controllers/agent-session.controller.js +147 -0
  8. package/dist/controllers/agent-session.controller.js.map +1 -0
  9. package/dist/dtos/create-agent-event.dto.d.ts +19 -0
  10. package/dist/dtos/create-agent-event.dto.d.ts.map +1 -0
  11. package/dist/dtos/create-agent-event.dto.js +118 -0
  12. package/dist/dtos/create-agent-event.dto.js.map +1 -0
  13. package/dist/dtos/create-agent-session.dto.d.ts +15 -0
  14. package/dist/dtos/create-agent-session.dto.d.ts.map +1 -0
  15. package/dist/dtos/create-agent-session.dto.js +94 -0
  16. package/dist/dtos/create-agent-session.dto.js.map +1 -0
  17. package/dist/dtos/update-agent-event.dto.d.ts +19 -0
  18. package/dist/dtos/update-agent-event.dto.d.ts.map +1 -0
  19. package/dist/dtos/update-agent-event.dto.js +117 -0
  20. package/dist/dtos/update-agent-event.dto.js.map +1 -0
  21. package/dist/dtos/update-agent-session.dto.d.ts +15 -0
  22. package/dist/dtos/update-agent-session.dto.d.ts.map +1 -0
  23. package/dist/dtos/update-agent-session.dto.js +93 -0
  24. package/dist/dtos/update-agent-session.dto.js.map +1 -0
  25. package/dist/entities/agent-event.entity.d.ts +28 -0
  26. package/dist/entities/agent-event.entity.d.ts.map +1 -0
  27. package/dist/entities/agent-event.entity.js +114 -0
  28. package/dist/entities/agent-event.entity.js.map +1 -0
  29. package/dist/entities/agent-session.entity.d.ts +23 -0
  30. package/dist/entities/agent-session.entity.d.ts.map +1 -0
  31. package/dist/entities/agent-session.entity.js +94 -0
  32. package/dist/entities/agent-session.entity.js.map +1 -0
  33. package/dist/index.d.ts +8 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +8 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/repository/agent-event.repository.d.ts +12 -0
  38. package/dist/repository/agent-event.repository.d.ts.map +1 -0
  39. package/dist/repository/agent-event.repository.js +34 -0
  40. package/dist/repository/agent-event.repository.js.map +1 -0
  41. package/dist/repository/agent-session.repository.d.ts +12 -0
  42. package/dist/repository/agent-session.repository.d.ts.map +1 -0
  43. package/dist/repository/agent-session.repository.js +34 -0
  44. package/dist/repository/agent-session.repository.js.map +1 -0
  45. package/dist/seeders/seed-data/solid-core-metadata.json +834 -20
  46. package/dist/services/agent-event.service.d.ts +12 -0
  47. package/dist/services/agent-event.service.d.ts.map +1 -0
  48. package/dist/services/agent-event.service.js +38 -0
  49. package/dist/services/agent-event.service.js.map +1 -0
  50. package/dist/services/agent-session.service.d.ts +12 -0
  51. package/dist/services/agent-session.service.d.ts.map +1 -0
  52. package/dist/services/agent-session.service.js +38 -0
  53. package/dist/services/agent-session.service.js.map +1 -0
  54. package/dist/services/model-metadata.service.d.ts.map +1 -1
  55. package/dist/services/model-metadata.service.js +6 -0
  56. package/dist/services/model-metadata.service.js.map +1 -1
  57. package/dist/services/module-metadata.service.d.ts.map +1 -1
  58. package/dist/services/module-metadata.service.js +6 -0
  59. package/dist/services/module-metadata.service.js.map +1 -1
  60. package/dist/services/settings/default-settings-provider.service.js +2 -2
  61. package/dist/services/settings/default-settings-provider.service.js.map +1 -1
  62. package/dist/services/user-activity-history.service.d.ts +1 -0
  63. package/dist/services/user-activity-history.service.d.ts.map +1 -1
  64. package/dist/services/user-activity-history.service.js +17 -10
  65. package/dist/services/user-activity-history.service.js.map +1 -1
  66. package/dist/services/view-metadata.service.js +1 -1
  67. package/dist/services/view-metadata.service.js.map +1 -1
  68. package/dist/solid-core.module.d.ts.map +1 -1
  69. package/dist/solid-core.module.js +16 -0
  70. package/dist/solid-core.module.js.map +1 -1
  71. package/package.json +1 -1
  72. package/src/controllers/agent-event.controller.ts +70 -0
  73. package/src/controllers/agent-session.controller.ts +70 -0
  74. package/src/dtos/create-agent-event.dto.ts +84 -0
  75. package/src/dtos/create-agent-session.dto.ts +64 -0
  76. package/src/dtos/update-agent-event.dto.ts +83 -0
  77. package/src/dtos/update-agent-session.dto.ts +63 -0
  78. package/src/entities/agent-event.entity.ts +88 -0
  79. package/src/entities/agent-session.entity.ts +71 -0
  80. package/src/index.ts +8 -0
  81. package/src/repository/agent-event.repository.ts +17 -0
  82. package/src/repository/agent-session.repository.ts +17 -0
  83. package/src/seeders/seed-data/solid-core-metadata.json +834 -20
  84. package/src/services/agent-event.service.ts +19 -0
  85. package/src/services/agent-session.service.ts +19 -0
  86. package/src/services/model-metadata.service.ts +1 -0
  87. package/src/services/module-metadata.service.ts +1 -2
  88. package/src/services/settings/default-settings-provider.service.ts +2 -2
  89. package/src/services/user-activity-history.service.ts +16 -10
  90. package/src/services/view-metadata.service.ts +1 -1
  91. package/src/solid-core.module.ts +16 -0
@@ -0,0 +1,64 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import { IsDate, IsInt, IsNotEmpty, IsNumber, IsOptional, IsString } from 'class-validator';
3
+
4
+ export class CreateAgentSessionDto {
5
+ @IsNotEmpty()
6
+ @IsString()
7
+ @ApiProperty()
8
+ sessionId: string;
9
+
10
+ @IsOptional()
11
+ @IsInt()
12
+ @ApiProperty()
13
+ userId: number;
14
+
15
+ @IsOptional()
16
+ @IsString()
17
+ @ApiProperty()
18
+ projectRoot: string;
19
+
20
+ @IsNotEmpty()
21
+ @IsString()
22
+ @ApiProperty()
23
+ modelName: string;
24
+
25
+ @IsNotEmpty()
26
+ @IsString()
27
+ @ApiProperty()
28
+ status: string;
29
+
30
+ @IsOptional()
31
+ @IsNumber()
32
+ @ApiProperty()
33
+ totalCost: number;
34
+
35
+ @IsOptional()
36
+ @IsInt()
37
+ @ApiProperty()
38
+ totalSteps: number;
39
+
40
+ @IsOptional()
41
+ @IsInt()
42
+ @ApiProperty()
43
+ totalInputTokens: number;
44
+
45
+ @IsOptional()
46
+ @IsInt()
47
+ @ApiProperty()
48
+ totalOutputTokens: number;
49
+
50
+ @IsOptional()
51
+ @IsString()
52
+ @ApiProperty()
53
+ summary: string;
54
+
55
+ @IsOptional()
56
+ @IsDate()
57
+ @ApiProperty()
58
+ createdAt: Date;
59
+
60
+ @IsOptional()
61
+ @IsDate()
62
+ @ApiProperty()
63
+ updatedAt: Date;
64
+ }
@@ -0,0 +1,83 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import { IsInt, IsNumber, IsOptional, IsString } from 'class-validator';
3
+
4
+ export class UpdateAgentEventDto {
5
+ @IsOptional()
6
+ @IsInt()
7
+ id: number;
8
+
9
+ @IsOptional()
10
+ @IsString()
11
+ @ApiProperty()
12
+ sessionId: string;
13
+
14
+ @IsOptional()
15
+ @IsInt()
16
+ @ApiProperty()
17
+ turnNumber: number;
18
+
19
+ @IsOptional()
20
+ @IsInt()
21
+ @ApiProperty()
22
+ stepNumber: number;
23
+
24
+ @IsOptional()
25
+ @IsString()
26
+ @ApiProperty()
27
+ eventType: string;
28
+
29
+ @IsOptional()
30
+ @IsString()
31
+ @ApiProperty()
32
+ eventData: string;
33
+
34
+ @IsOptional()
35
+ @IsString()
36
+ @ApiProperty()
37
+ content: string;
38
+
39
+ @IsOptional()
40
+ @IsString()
41
+ @ApiProperty()
42
+ toolName: string;
43
+
44
+ @IsOptional()
45
+ @IsString()
46
+ @ApiProperty()
47
+ toolArguments: string;
48
+
49
+ @IsOptional()
50
+ @IsString()
51
+ @ApiProperty()
52
+ toolOutput: string;
53
+
54
+ @IsOptional()
55
+ @IsInt()
56
+ @ApiProperty()
57
+ toolReturncode: number;
58
+
59
+ @IsOptional()
60
+ @IsNumber()
61
+ @ApiProperty()
62
+ durationMs: number;
63
+
64
+ @IsOptional()
65
+ @IsNumber()
66
+ @ApiProperty()
67
+ cost: number;
68
+
69
+ @IsOptional()
70
+ @IsInt()
71
+ @ApiProperty()
72
+ inputTokens: number;
73
+
74
+ @IsOptional()
75
+ @IsInt()
76
+ @ApiProperty()
77
+ outputTokens: number;
78
+
79
+ @IsOptional()
80
+ @IsString()
81
+ @ApiProperty()
82
+ modelUsed: string;
83
+ }
@@ -0,0 +1,63 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import { IsDate, IsInt, IsNumber, IsOptional, IsString } from 'class-validator';
3
+
4
+ export class UpdateAgentSessionDto {
5
+ @IsOptional()
6
+ @IsInt()
7
+ id: number;
8
+
9
+ @IsOptional()
10
+ @IsString()
11
+ @ApiProperty()
12
+ sessionId: string;
13
+
14
+ @IsOptional()
15
+ @IsInt()
16
+ @ApiProperty()
17
+ userId: number;
18
+
19
+ @IsOptional()
20
+ @IsString()
21
+ @ApiProperty()
22
+ projectRoot: string;
23
+
24
+ @IsOptional()
25
+ @IsString()
26
+ @ApiProperty()
27
+ modelName: string;
28
+
29
+ @IsOptional()
30
+ @IsString()
31
+ @ApiProperty()
32
+ status: string;
33
+
34
+ @IsOptional()
35
+ @IsNumber()
36
+ @ApiProperty()
37
+ totalCost: number;
38
+
39
+ @IsOptional()
40
+ @IsInt()
41
+ @ApiProperty()
42
+ totalSteps: number;
43
+
44
+ @IsOptional()
45
+ @IsInt()
46
+ @ApiProperty()
47
+ totalInputTokens: number;
48
+
49
+ @IsOptional()
50
+ @IsInt()
51
+ @ApiProperty()
52
+ totalOutputTokens: number;
53
+
54
+ @IsOptional()
55
+ @IsString()
56
+ @ApiProperty()
57
+ summary: string;
58
+
59
+ @IsOptional()
60
+ @IsDate()
61
+ @ApiProperty()
62
+ updatedAt: Date;
63
+ }
@@ -0,0 +1,88 @@
1
+ import { Column, Entity, Index, PrimaryGeneratedColumn } from 'typeorm';
2
+ import { Expose, Exclude } from 'class-transformer';
3
+
4
+ @Exclude()
5
+ @Entity({ name: 'ss_agent_events', synchronize: false })
6
+ export class AgentEvent {
7
+ @Expose()
8
+ @PrimaryGeneratedColumn({ type: 'integer' })
9
+ id: number;
10
+
11
+ @Expose()
12
+ @Index()
13
+ @Column({ type: 'varchar', length: 36, name: 'session_id' })
14
+ sessionId: string;
15
+
16
+ @Expose()
17
+ @Column({ type: 'integer', name: 'turn_number' })
18
+ turnNumber: number;
19
+
20
+ @Expose()
21
+ @Column({ type: 'integer', nullable: true, name: 'step_number' })
22
+ stepNumber: number;
23
+
24
+ @Expose()
25
+ @Index()
26
+ @Column({ type: 'varchar', length: 64, name: 'event_type' })
27
+ eventType: string;
28
+
29
+ @Expose()
30
+ @Column({ type: 'text', nullable: true, name: 'event_data' })
31
+ eventData: string;
32
+
33
+ @Expose()
34
+ @Column({ type: 'text', nullable: true, name: 'content' })
35
+ content: string;
36
+
37
+ @Expose()
38
+ @Index()
39
+ @Column({ type: 'varchar', length: 128, nullable: true, name: 'tool_name' })
40
+ toolName: string;
41
+
42
+ @Expose()
43
+ @Column({ type: 'text', nullable: true, name: 'tool_arguments' })
44
+ toolArguments: string;
45
+
46
+ @Expose()
47
+ @Column({ type: 'text', nullable: true, name: 'tool_output' })
48
+ toolOutput: string;
49
+
50
+ @Expose()
51
+ @Column({ type: 'integer', nullable: true, name: 'tool_returncode' })
52
+ toolReturncode: number;
53
+
54
+ @Expose()
55
+ @Column({ type: 'double precision', nullable: true, name: 'duration_ms' })
56
+ durationMs: number;
57
+
58
+ @Expose()
59
+ @Column({ type: 'double precision', nullable: true, name: 'cost' })
60
+ cost: number;
61
+
62
+ @Expose()
63
+ @Column({ type: 'integer', nullable: true, name: 'input_tokens' })
64
+ inputTokens: number;
65
+
66
+ @Expose()
67
+ @Column({ type: 'integer', nullable: true, name: 'output_tokens' })
68
+ outputTokens: number;
69
+
70
+ @Expose()
71
+ @Column({ type: 'varchar', length: 255, nullable: true, name: 'model_used' })
72
+ modelUsed: string;
73
+
74
+ @Expose()
75
+ @Column({ type: 'timestamp without time zone', name: 'created_at' })
76
+ createdAt: Date;
77
+
78
+ // The following properties satisfy CRUDService<T extends CommonEntity> structural typing
79
+ // They are not mapped to DB columns (synchronize: false ensures no schema changes)
80
+ updatedAt: Date;
81
+ deletedAt: Date;
82
+ deletedTracker: string;
83
+ publishedAt: Date;
84
+ localeName: string;
85
+ defaultEntityLocaleId: number;
86
+ createdBy: number;
87
+ updatedBy: number;
88
+ }
@@ -0,0 +1,71 @@
1
+ import { Column, Entity, Index, PrimaryGeneratedColumn } from 'typeorm';
2
+ import { Expose, Exclude } from 'class-transformer';
3
+
4
+ @Exclude()
5
+ @Entity({ name: 'ss_agent_sessions', synchronize: false })
6
+ export class AgentSession {
7
+ @Expose()
8
+ @PrimaryGeneratedColumn({ type: 'integer' })
9
+ id: number;
10
+
11
+ @Expose()
12
+ @Index({ unique: true })
13
+ @Column({ type: 'varchar', length: 36, name: 'session_id' })
14
+ sessionId: string;
15
+
16
+ @Expose()
17
+ @Index()
18
+ @Column({ type: 'integer', nullable: true, name: 'user_id' })
19
+ userId: number;
20
+
21
+ @Expose()
22
+ @Column({ type: 'text', nullable: true, name: 'project_root' })
23
+ projectRoot: string;
24
+
25
+ @Expose()
26
+ @Column({ type: 'varchar', length: 255, name: 'model_name' })
27
+ modelName: string;
28
+
29
+ @Expose()
30
+ @Index()
31
+ @Column({ type: 'varchar', length: 32, name: 'status' })
32
+ status: string;
33
+
34
+ @Expose()
35
+ @Column({ type: 'double precision', name: 'total_cost', default: 0 })
36
+ totalCost: number;
37
+
38
+ @Expose()
39
+ @Column({ type: 'integer', name: 'total_steps', default: 0 })
40
+ totalSteps: number;
41
+
42
+ @Expose()
43
+ @Column({ type: 'integer', name: 'total_input_tokens', default: 0 })
44
+ totalInputTokens: number;
45
+
46
+ @Expose()
47
+ @Column({ type: 'integer', name: 'total_output_tokens', default: 0 })
48
+ totalOutputTokens: number;
49
+
50
+ @Expose()
51
+ @Column({ type: 'text', nullable: true, name: 'summary' })
52
+ summary: string;
53
+
54
+ @Expose()
55
+ @Column({ type: 'timestamp without time zone', name: 'created_at' })
56
+ createdAt: Date;
57
+
58
+ @Expose()
59
+ @Column({ type: 'timestamp without time zone', name: 'updated_at' })
60
+ updatedAt: Date;
61
+
62
+ // The following properties satisfy CRUDService<T extends CommonEntity> structural typing
63
+ // They are not mapped to DB columns (synchronize: false ensures no schema changes)
64
+ deletedAt: Date;
65
+ deletedTracker: string;
66
+ publishedAt: Date;
67
+ localeName: string;
68
+ defaultEntityLocaleId: number;
69
+ createdBy: number;
70
+ updatedBy: number;
71
+ }
package/src/index.ts CHANGED
@@ -46,6 +46,8 @@ export * from './dtos/create-model-metadata.dto'
46
46
  export * from './dtos/create-module-metadata.dto'
47
47
  export * from './dtos/create-mq-message-queue.dto'
48
48
  export * from './dtos/create-mq-message.dto'
49
+ export * from './dtos/create-agent-session.dto'
50
+ export * from './dtos/create-agent-event.dto'
49
51
  export * from './dtos/create-scheduled-job.dto'
50
52
  export * from './dtos/create-permission-metadata.dto'
51
53
  export * from './dtos/create-role-metadata.dto'
@@ -84,6 +86,8 @@ export * from './dtos/update-model-metadata.dto'
84
86
  export * from './dtos/update-module-metadata.dto'
85
87
  export * from './dtos/update-mq-message-queue.dto'
86
88
  export * from './dtos/update-mq-message.dto'
89
+ export * from './dtos/update-agent-session.dto'
90
+ export * from './dtos/update-agent-event.dto'
87
91
  export * from './dtos/update-scheduled-job.dto'
88
92
  export * from './dtos/update-permission-metadata.dto'
89
93
  export * from './dtos/update-role-metadata.dto'
@@ -115,6 +119,8 @@ export * from './entities/model-metadata.entity'
115
119
  export * from './entities/module-metadata.entity'
116
120
  export * from './entities/mq-message-queue.entity'
117
121
  export * from './entities/mq-message.entity'
122
+ export * from './entities/agent-session.entity'
123
+ export * from './entities/agent-event.entity'
118
124
  export * from './entities/scheduled-job.entity'
119
125
  export * from './entities/permission-metadata.entity'
120
126
  export * from './entities/role-metadata.entity'
@@ -284,6 +290,8 @@ export * from './services/model-metadata.service'
284
290
  export * from './services/module-metadata.service'
285
291
  export * from './services/mq-message-queue.service'
286
292
  export * from './services/mq-message.service'
293
+ export * from './services/agent-session.service'
294
+ export * from './services/agent-event.service'
287
295
  export * from './services/scheduled-job.service'
288
296
  export * from './services/pdf.service'
289
297
  export * from './services/permission-metadata.service'
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import { AgentEvent } from 'src/entities/agent-event.entity';
3
+ import { RequestContextService } from 'src/services/request-context.service';
4
+ import { DataSource } from 'typeorm';
5
+ import { SecurityRuleRepository } from './security-rule.repository';
6
+ import { SolidBaseRepository } from './solid-base.repository';
7
+
8
+ @Injectable()
9
+ export class AgentEventRepository extends SolidBaseRepository<AgentEvent> {
10
+ constructor(
11
+ readonly dataSource: DataSource,
12
+ readonly requestContextService: RequestContextService,
13
+ readonly securityRuleRepository: SecurityRuleRepository,
14
+ ) {
15
+ super(AgentEvent, dataSource, requestContextService, securityRuleRepository);
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import { AgentSession } from 'src/entities/agent-session.entity';
3
+ import { RequestContextService } from 'src/services/request-context.service';
4
+ import { DataSource } from 'typeorm';
5
+ import { SecurityRuleRepository } from './security-rule.repository';
6
+ import { SolidBaseRepository } from './solid-base.repository';
7
+
8
+ @Injectable()
9
+ export class AgentSessionRepository extends SolidBaseRepository<AgentSession> {
10
+ constructor(
11
+ readonly dataSource: DataSource,
12
+ readonly requestContextService: RequestContextService,
13
+ readonly securityRuleRepository: SecurityRuleRepository,
14
+ ) {
15
+ super(AgentSession, dataSource, requestContextService, securityRuleRepository);
16
+ }
17
+ }