@deepintel-ltd/farmpro-contracts 1.5.7 → 1.5.9

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 (53) hide show
  1. package/dist/index.js +50 -92
  2. package/dist/routes/admin.routes.js +13 -16
  3. package/dist/routes/agent-workflows.routes.js +81 -84
  4. package/dist/routes/agents.routes.js +29 -32
  5. package/dist/routes/analytics.routes.js +11 -14
  6. package/dist/routes/auth.routes.js +55 -58
  7. package/dist/routes/categories.routes.js +23 -26
  8. package/dist/routes/documents.routes.js +67 -70
  9. package/dist/routes/equipment.routes.js +55 -58
  10. package/dist/routes/farms.routes.js +32 -35
  11. package/dist/routes/field-monitoring.routes.js +70 -73
  12. package/dist/routes/field-observations.routes.js +41 -44
  13. package/dist/routes/fields.routes.js +44 -47
  14. package/dist/routes/finance.routes.js +121 -124
  15. package/dist/routes/harvest.routes.js +46 -49
  16. package/dist/routes/health.routes.js +6 -9
  17. package/dist/routes/index.js +51 -54
  18. package/dist/routes/input-usage.routes.js +14 -17
  19. package/dist/routes/inventory.routes.js +57 -60
  20. package/dist/routes/seasonal-plans.routes.js +14 -17
  21. package/dist/routes/soil-tests.routes.js +45 -48
  22. package/dist/routes/suppliers.routes.js +70 -73
  23. package/dist/routes/tasks.routes.js +65 -68
  24. package/dist/routes/team.routes.js +57 -60
  25. package/dist/routes/users.routes.js +13 -16
  26. package/dist/routes/weather.routes.js +10 -13
  27. package/dist/schemas/admin.schemas.js +43 -46
  28. package/dist/schemas/agent-workflows.schemas.js +34 -37
  29. package/dist/schemas/agents.schemas.js +46 -49
  30. package/dist/schemas/analytics.schemas.js +51 -54
  31. package/dist/schemas/auth.schemas.js +96 -99
  32. package/dist/schemas/categories.schemas.js +27 -30
  33. package/dist/schemas/common.schemas.js +89 -95
  34. package/dist/schemas/documents.schemas.js +59 -62
  35. package/dist/schemas/equipment.schemas.js +86 -89
  36. package/dist/schemas/farms.schemas.js +40 -43
  37. package/dist/schemas/field-monitoring.schemas.js +207 -210
  38. package/dist/schemas/field-observations.schemas.js +93 -96
  39. package/dist/schemas/fields.schemas.js +82 -85
  40. package/dist/schemas/finance.schemas.js +134 -137
  41. package/dist/schemas/harvest.schemas.js +46 -49
  42. package/dist/schemas/health.schemas.js +14 -17
  43. package/dist/schemas/input-usage.schemas.js +21 -24
  44. package/dist/schemas/inventory.schemas.js +58 -61
  45. package/dist/schemas/recommendations.schemas.js +22 -25
  46. package/dist/schemas/seasonal-plans.schemas.js +21 -24
  47. package/dist/schemas/soil-tests.schemas.js +70 -73
  48. package/dist/schemas/suppliers.schemas.js +90 -93
  49. package/dist/schemas/tasks.schemas.js +93 -96
  50. package/dist/schemas/team.schemas.js +35 -38
  51. package/dist/schemas/users.schemas.js +19 -22
  52. package/dist/schemas/weather.schemas.js +32 -35
  53. package/package.json +9 -1
@@ -1,28 +1,25 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.teamRouter = void 0;
4
- const core_1 = require("@ts-rest/core");
5
- const zod_1 = require("zod");
6
- const team_schemas_1 = require("../schemas/team.schemas");
7
- const common_schemas_1 = require("../schemas/common.schemas");
8
- const c = (0, core_1.initContract)();
9
- exports.teamRouter = c.router({
1
+ import { initContract } from '@ts-rest/core';
2
+ import { z } from 'zod';
3
+ import { createTeamMemberSchema, updateTeamMemberSchema, teamMemberResponseSchema, teamMemberListResponseSchema, teamMemberRoleSchema, } from '../schemas/team.schemas';
4
+ import { jsonApiErrorResponseSchema, jsonApiSuccessResponseSchema, jsonApiPaginationQuerySchema, jsonApiSortQuerySchema, jsonApiIncludeQuerySchema, jsonApiFilterQuerySchema } from '../schemas/common.schemas';
5
+ const c = initContract();
6
+ export const teamRouter = c.router({
10
7
  // List team members for a farm
11
8
  listTeamMembers: {
12
9
  method: 'GET',
13
10
  path: '/farms/:farmId/team',
14
- pathParams: zod_1.z.object({ farmId: zod_1.z.string().uuid() }),
15
- query: common_schemas_1.jsonApiPaginationQuerySchema
16
- .merge(common_schemas_1.jsonApiSortQuerySchema)
17
- .merge(common_schemas_1.jsonApiIncludeQuerySchema)
18
- .merge(common_schemas_1.jsonApiFilterQuerySchema)
19
- .merge(zod_1.z.object({
20
- 'filter[role]': team_schemas_1.teamMemberRoleSchema.optional(),
11
+ pathParams: z.object({ farmId: z.string().uuid() }),
12
+ query: jsonApiPaginationQuerySchema
13
+ .merge(jsonApiSortQuerySchema)
14
+ .merge(jsonApiIncludeQuerySchema)
15
+ .merge(jsonApiFilterQuerySchema)
16
+ .merge(z.object({
17
+ 'filter[role]': teamMemberRoleSchema.optional(),
21
18
  })),
22
19
  responses: {
23
- 200: team_schemas_1.teamMemberListResponseSchema,
24
- 404: common_schemas_1.jsonApiErrorResponseSchema,
25
- 401: common_schemas_1.jsonApiErrorResponseSchema,
20
+ 200: teamMemberListResponseSchema,
21
+ 404: jsonApiErrorResponseSchema,
22
+ 401: jsonApiErrorResponseSchema,
26
23
  },
27
24
  summary: 'List team members',
28
25
  description: 'Get all team members for a farm with optional filtering',
@@ -31,14 +28,14 @@ exports.teamRouter = c.router({
31
28
  createTeamMember: {
32
29
  method: 'POST',
33
30
  path: '/farms/:farmId/team',
34
- pathParams: zod_1.z.object({ farmId: zod_1.z.string().uuid() }),
35
- body: zod_1.z.object({ data: team_schemas_1.createTeamMemberSchema }),
31
+ pathParams: z.object({ farmId: z.string().uuid() }),
32
+ body: z.object({ data: createTeamMemberSchema }),
36
33
  responses: {
37
- 201: team_schemas_1.teamMemberResponseSchema,
38
- 400: common_schemas_1.jsonApiErrorResponseSchema,
39
- 404: common_schemas_1.jsonApiErrorResponseSchema,
40
- 401: common_schemas_1.jsonApiErrorResponseSchema,
41
- 422: common_schemas_1.jsonApiErrorResponseSchema,
34
+ 201: teamMemberResponseSchema,
35
+ 400: jsonApiErrorResponseSchema,
36
+ 404: jsonApiErrorResponseSchema,
37
+ 401: jsonApiErrorResponseSchema,
38
+ 422: jsonApiErrorResponseSchema,
42
39
  },
43
40
  summary: 'Create team member',
44
41
  description: 'Add a new team member to the farm',
@@ -47,15 +44,15 @@ exports.teamRouter = c.router({
47
44
  getTeamMember: {
48
45
  method: 'GET',
49
46
  path: '/farms/:farmId/team/:id',
50
- pathParams: zod_1.z.object({
51
- farmId: zod_1.z.string().uuid(),
52
- id: zod_1.z.string().uuid(),
47
+ pathParams: z.object({
48
+ farmId: z.string().uuid(),
49
+ id: z.string().uuid(),
53
50
  }),
54
- query: common_schemas_1.jsonApiIncludeQuerySchema,
51
+ query: jsonApiIncludeQuerySchema,
55
52
  responses: {
56
- 200: team_schemas_1.teamMemberResponseSchema,
57
- 404: common_schemas_1.jsonApiErrorResponseSchema,
58
- 401: common_schemas_1.jsonApiErrorResponseSchema,
53
+ 200: teamMemberResponseSchema,
54
+ 404: jsonApiErrorResponseSchema,
55
+ 401: jsonApiErrorResponseSchema,
59
56
  },
60
57
  summary: 'Get team member by ID',
61
58
  description: 'Get detailed information about a team member',
@@ -64,17 +61,17 @@ exports.teamRouter = c.router({
64
61
  updateTeamMember: {
65
62
  method: 'PATCH',
66
63
  path: '/farms/:farmId/team/:id',
67
- pathParams: zod_1.z.object({
68
- farmId: zod_1.z.string().uuid(),
69
- id: zod_1.z.string().uuid(),
64
+ pathParams: z.object({
65
+ farmId: z.string().uuid(),
66
+ id: z.string().uuid(),
70
67
  }),
71
- body: zod_1.z.object({ data: team_schemas_1.updateTeamMemberSchema }),
68
+ body: z.object({ data: updateTeamMemberSchema }),
72
69
  responses: {
73
- 200: team_schemas_1.teamMemberResponseSchema,
74
- 400: common_schemas_1.jsonApiErrorResponseSchema,
75
- 404: common_schemas_1.jsonApiErrorResponseSchema,
76
- 401: common_schemas_1.jsonApiErrorResponseSchema,
77
- 422: common_schemas_1.jsonApiErrorResponseSchema,
70
+ 200: teamMemberResponseSchema,
71
+ 400: jsonApiErrorResponseSchema,
72
+ 404: jsonApiErrorResponseSchema,
73
+ 401: jsonApiErrorResponseSchema,
74
+ 422: jsonApiErrorResponseSchema,
78
75
  },
79
76
  summary: 'Update team member',
80
77
  description: 'Update team member information',
@@ -83,14 +80,14 @@ exports.teamRouter = c.router({
83
80
  deleteTeamMember: {
84
81
  method: 'DELETE',
85
82
  path: '/farms/:farmId/team/:id',
86
- pathParams: zod_1.z.object({
87
- farmId: zod_1.z.string().uuid(),
88
- id: zod_1.z.string().uuid(),
83
+ pathParams: z.object({
84
+ farmId: z.string().uuid(),
85
+ id: z.string().uuid(),
89
86
  }),
90
87
  responses: {
91
- 204: common_schemas_1.jsonApiSuccessResponseSchema,
92
- 404: common_schemas_1.jsonApiErrorResponseSchema,
93
- 401: common_schemas_1.jsonApiErrorResponseSchema,
88
+ 204: jsonApiSuccessResponseSchema,
89
+ 404: jsonApiErrorResponseSchema,
90
+ 401: jsonApiErrorResponseSchema,
94
91
  },
95
92
  summary: 'Delete team member',
96
93
  description: 'Remove a team member from the farm',
@@ -99,24 +96,24 @@ exports.teamRouter = c.router({
99
96
  acceptInvitation: {
100
97
  method: 'POST',
101
98
  path: '/team/invitations/accept',
102
- body: zod_1.z.object({
103
- data: zod_1.z.object({
104
- attributes: zod_1.z.object({
105
- token: zod_1.z.string().min(1),
99
+ body: z.object({
100
+ data: z.object({
101
+ attributes: z.object({
102
+ token: z.string().min(1),
106
103
  }),
107
104
  }),
108
105
  }),
109
106
  responses: {
110
- 200: common_schemas_1.jsonApiSuccessResponseSchema.merge(zod_1.z.object({
111
- meta: zod_1.z.object({
112
- message: zod_1.z.string(),
113
- farmId: zod_1.z.string().uuid(),
114
- memberId: zod_1.z.string().uuid(),
107
+ 200: jsonApiSuccessResponseSchema.merge(z.object({
108
+ meta: z.object({
109
+ message: z.string(),
110
+ farmId: z.string().uuid(),
111
+ memberId: z.string().uuid(),
115
112
  }),
116
113
  })),
117
- 400: common_schemas_1.jsonApiErrorResponseSchema,
118
- 401: common_schemas_1.jsonApiErrorResponseSchema,
119
- 404: common_schemas_1.jsonApiErrorResponseSchema,
114
+ 400: jsonApiErrorResponseSchema,
115
+ 401: jsonApiErrorResponseSchema,
116
+ 404: jsonApiErrorResponseSchema,
120
117
  },
121
118
  summary: 'Accept team invitation',
122
119
  description: 'Accept a team invitation by token and link to user account',
@@ -1,19 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.usersRouter = void 0;
4
- const core_1 = require("@ts-rest/core");
5
- const zod_1 = require("zod");
6
- const users_schemas_1 = require("../schemas/users.schemas");
7
- const common_schemas_1 = require("../schemas/common.schemas");
8
- const c = (0, core_1.initContract)();
9
- exports.usersRouter = c.router({
1
+ import { initContract } from '@ts-rest/core';
2
+ import { z } from 'zod';
3
+ import { updateProfileSchema, userResponseSchema } from '../schemas/users.schemas';
4
+ import { jsonApiErrorResponseSchema } from '../schemas/common.schemas';
5
+ const c = initContract();
6
+ export const usersRouter = c.router({
10
7
  // Get current user profile
11
8
  getProfile: {
12
9
  method: 'GET',
13
10
  path: '/user/profile',
14
11
  responses: {
15
- 200: users_schemas_1.userResponseSchema,
16
- 401: common_schemas_1.jsonApiErrorResponseSchema,
12
+ 200: userResponseSchema,
13
+ 401: jsonApiErrorResponseSchema,
17
14
  },
18
15
  summary: 'Get current user profile',
19
16
  description: 'Get authenticated user profile information',
@@ -22,12 +19,12 @@ exports.usersRouter = c.router({
22
19
  updateProfile: {
23
20
  method: 'PATCH',
24
21
  path: '/user/profile',
25
- body: zod_1.z.object({ data: users_schemas_1.updateProfileSchema }),
22
+ body: z.object({ data: updateProfileSchema }),
26
23
  responses: {
27
- 200: users_schemas_1.userResponseSchema,
28
- 400: common_schemas_1.jsonApiErrorResponseSchema,
29
- 401: common_schemas_1.jsonApiErrorResponseSchema,
30
- 422: common_schemas_1.jsonApiErrorResponseSchema,
24
+ 200: userResponseSchema,
25
+ 400: jsonApiErrorResponseSchema,
26
+ 401: jsonApiErrorResponseSchema,
27
+ 422: jsonApiErrorResponseSchema,
31
28
  },
32
29
  summary: 'Update user profile',
33
30
  description: 'Update authenticated user profile information',
@@ -1,21 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.weatherRouter = void 0;
4
- const core_1 = require("@ts-rest/core");
5
- const zod_1 = require("zod");
6
- const weather_schemas_1 = require("../schemas/weather.schemas");
7
- const common_schemas_1 = require("../schemas/common.schemas");
8
- const c = (0, core_1.initContract)();
9
- exports.weatherRouter = c.router({
1
+ import { initContract } from '@ts-rest/core';
2
+ import { z } from 'zod';
3
+ import { weatherResponseSchema } from '../schemas/weather.schemas';
4
+ import { jsonApiErrorResponseSchema } from '../schemas/common.schemas';
5
+ const c = initContract();
6
+ export const weatherRouter = c.router({
10
7
  // Get weather for a farm
11
8
  getWeather: {
12
9
  method: 'GET',
13
10
  path: '/farms/:farmId/weather',
14
- pathParams: zod_1.z.object({ farmId: zod_1.z.string().uuid() }),
11
+ pathParams: z.object({ farmId: z.string().uuid() }),
15
12
  responses: {
16
- 200: weather_schemas_1.weatherResponseSchema,
17
- 404: common_schemas_1.jsonApiErrorResponseSchema,
18
- 401: common_schemas_1.jsonApiErrorResponseSchema,
13
+ 200: weatherResponseSchema,
14
+ 404: jsonApiErrorResponseSchema,
15
+ 401: jsonApiErrorResponseSchema,
19
16
  },
20
17
  summary: 'Get weather data',
21
18
  description: 'Get current weather, forecast, and alerts for a farm',
@@ -1,63 +1,60 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.autonomousMonitoringStatsResponseSchema = exports.autonomousMonitoringStatsResourceSchema = exports.autonomousMonitoringStatsAttributesSchema = exports.learnedPatternSchema = exports.effectivenessSchema = exports.crossSourceMatchSchema = exports.sourceStatsSchema = void 0;
4
- const zod_1 = require("zod");
5
- const common_schemas_1 = require("./common.schemas");
1
+ import { z } from 'zod';
2
+ import { createJsonApiResourceSchema, jsonApiSingleResponseSchema, } from './common.schemas';
6
3
  /**
7
4
  * Admin schemas for autonomous monitoring analytics
8
5
  */
9
6
  // Source statistics
10
- exports.sourceStatsSchema = zod_1.z.object({
11
- recommendations: zod_1.z.number(),
12
- tasksCreated: zod_1.z.number(),
13
- tasksUpdated: zod_1.z.number(),
14
- skipped: zod_1.z.number(),
15
- avgConfidence: zod_1.z.number(),
16
- tasksCompleted: zod_1.z.number().optional(),
17
- successfulOutcomes: zod_1.z.number().optional(),
18
- successRate: zod_1.z.number().optional(),
7
+ export const sourceStatsSchema = z.object({
8
+ recommendations: z.number(),
9
+ tasksCreated: z.number(),
10
+ tasksUpdated: z.number(),
11
+ skipped: z.number(),
12
+ avgConfidence: z.number(),
13
+ tasksCompleted: z.number().optional(),
14
+ successfulOutcomes: z.number().optional(),
15
+ successRate: z.number().optional(),
19
16
  });
20
17
  // Cross-source match
21
- exports.crossSourceMatchSchema = zod_1.z.object({
22
- issueType: zod_1.z.string(),
23
- sources: zod_1.z.array(zod_1.z.string()),
24
- occurrences: zod_1.z.number(),
25
- tasksCreated: zod_1.z.number(),
26
- deduplicationRate: zod_1.z.number(),
18
+ export const crossSourceMatchSchema = z.object({
19
+ issueType: z.string(),
20
+ sources: z.array(z.string()),
21
+ occurrences: z.number(),
22
+ tasksCreated: z.number(),
23
+ deduplicationRate: z.number(),
27
24
  });
28
25
  // Effectiveness metrics
29
- exports.effectivenessSchema = zod_1.z.object({
30
- tasksCompleted: zod_1.z.number(),
31
- successfulOutcomes: zod_1.z.number(),
32
- successRate: zod_1.z.number(),
33
- avgImprovementScore: zod_1.z.number(),
26
+ export const effectivenessSchema = z.object({
27
+ tasksCompleted: z.number(),
28
+ successfulOutcomes: z.number(),
29
+ successRate: z.number(),
30
+ avgImprovementScore: z.number(),
34
31
  });
35
32
  // Learned pattern
36
- exports.learnedPatternSchema = zod_1.z.object({
37
- issueType: zod_1.z.string(),
38
- bestSource: zod_1.z.string(),
39
- bestSourceScore: zod_1.z.number(),
40
- worstSource: zod_1.z.string(),
41
- worstSourceScore: zod_1.z.number(),
33
+ export const learnedPatternSchema = z.object({
34
+ issueType: z.string(),
35
+ bestSource: z.string(),
36
+ bestSourceScore: z.number(),
37
+ worstSource: z.string(),
38
+ worstSourceScore: z.number(),
42
39
  });
43
40
  // Autonomous monitoring stats attributes
44
- exports.autonomousMonitoringStatsAttributesSchema = zod_1.z.object({
45
- overall: zod_1.z.object({
46
- totalRecommendations: zod_1.z.number(),
47
- tasksCreated: zod_1.z.number(),
48
- tasksUpdated: zod_1.z.number(),
49
- skipped: zod_1.z.number(),
50
- deduplicationRate: zod_1.z.number(),
41
+ export const autonomousMonitoringStatsAttributesSchema = z.object({
42
+ overall: z.object({
43
+ totalRecommendations: z.number(),
44
+ tasksCreated: z.number(),
45
+ tasksUpdated: z.number(),
46
+ skipped: z.number(),
47
+ deduplicationRate: z.number(),
51
48
  }),
52
- bySource: zod_1.z.record(zod_1.z.string(), exports.sourceStatsSchema),
53
- crossSourceMatches: zod_1.z.array(exports.crossSourceMatchSchema),
54
- effectiveness: zod_1.z.record(zod_1.z.string(), exports.effectivenessSchema),
55
- learnedPatterns: zod_1.z.object({
56
- totalPatterns: zod_1.z.number(),
57
- patterns: zod_1.z.array(exports.learnedPatternSchema),
49
+ bySource: z.record(z.string(), sourceStatsSchema),
50
+ crossSourceMatches: z.array(crossSourceMatchSchema),
51
+ effectiveness: z.record(z.string(), effectivenessSchema),
52
+ learnedPatterns: z.object({
53
+ totalPatterns: z.number(),
54
+ patterns: z.array(learnedPatternSchema),
58
55
  }),
59
56
  });
60
57
  // Resource schema
61
- exports.autonomousMonitoringStatsResourceSchema = (0, common_schemas_1.createJsonApiResourceSchema)('autonomous-monitoring-stats', exports.autonomousMonitoringStatsAttributesSchema);
58
+ export const autonomousMonitoringStatsResourceSchema = createJsonApiResourceSchema('autonomous-monitoring-stats', autonomousMonitoringStatsAttributesSchema);
62
59
  // Response schema
63
- exports.autonomousMonitoringStatsResponseSchema = (0, common_schemas_1.jsonApiSingleResponseSchema)(exports.autonomousMonitoringStatsResourceSchema);
60
+ export const autonomousMonitoringStatsResponseSchema = jsonApiSingleResponseSchema(autonomousMonitoringStatsResourceSchema);
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.agentWorkflowListResponseSchema = exports.agentWorkflowResponseSchema = exports.agentWorkflowResourceSchema = exports.agentWorkflowAttributesSchema = exports.agentResultsSchema = exports.agentRecommendationResultSchema = exports.recommendationOutcomeSchema = exports.workflowOutcomeSchema = exports.agentWorkflowStatusSchema = void 0;
4
- const zod_1 = require("zod");
5
- const recommendations_schemas_1 = require("./recommendations.schemas");
6
- const common_schemas_1 = require("./common.schemas");
1
+ import { z } from 'zod';
2
+ import { recommendationSchema } from './recommendations.schemas';
3
+ import { createJsonApiResourceSchema, jsonApiSingleResponseSchema, jsonApiCollectionResponseSchema, timestampsSchema, } from './common.schemas';
7
4
  /**
8
5
  * Agent Workflow Schemas
9
6
  *
@@ -12,59 +9,59 @@ const common_schemas_1 = require("./common.schemas");
12
9
  * process of turning a recommendation into a task.
13
10
  */
14
11
  // The overall status of an agent workflow
15
- exports.agentWorkflowStatusSchema = zod_1.z.enum([
12
+ export const agentWorkflowStatusSchema = z.enum([
16
13
  'in_progress',
17
14
  'completed',
18
15
  'failed',
19
16
  ]);
20
17
  // The final outcome of a recommendation-to-task workflow
21
- exports.workflowOutcomeSchema = zod_1.z.enum([
18
+ export const workflowOutcomeSchema = z.enum([
22
19
  'task_created',
23
20
  'task_updated',
24
21
  'no_action_needed',
25
22
  'error',
26
23
  ]);
27
24
  // The outcome for a single recommendation within a workflow
28
- exports.recommendationOutcomeSchema = zod_1.z.enum([
25
+ export const recommendationOutcomeSchema = z.enum([
29
26
  'created',
30
27
  'updated',
31
28
  'skipped',
32
29
  'error',
33
30
  ]);
34
31
  // Result for a single recommendation processed by the agent
35
- exports.agentRecommendationResultSchema = zod_1.z.object({
36
- recommendation: recommendations_schemas_1.recommendationSchema,
37
- outcome: exports.recommendationOutcomeSchema,
38
- taskId: zod_1.z.string().uuid().optional(),
39
- reason: zod_1.z.string(),
32
+ export const agentRecommendationResultSchema = z.object({
33
+ recommendation: recommendationSchema,
34
+ outcome: recommendationOutcomeSchema,
35
+ taskId: z.string().uuid().optional(),
36
+ reason: z.string(),
40
37
  });
41
38
  // The `agentResults` object that will be stored as JSON in the database
42
- exports.agentResultsSchema = zod_1.z.object({
43
- summary: zod_1.z.object({
44
- sourceType: zod_1.z.string(),
45
- tasksCreated: zod_1.z.number().int(),
46
- tasksUpdated: zod_1.z.number().int(),
47
- skipped: zod_1.z.number().int(),
39
+ export const agentResultsSchema = z.object({
40
+ summary: z.object({
41
+ sourceType: z.string(),
42
+ tasksCreated: z.number().int(),
43
+ tasksUpdated: z.number().int(),
44
+ skipped: z.number().int(),
48
45
  }),
49
- results: zod_1.z.array(exports.agentRecommendationResultSchema),
46
+ results: z.array(agentRecommendationResultSchema),
50
47
  // Optionally include other agent reviews for full traceability
51
- taskReview: zod_1.z.any().optional(),
48
+ taskReview: z.any().optional(),
52
49
  });
53
50
  // The main attributes for an AgentWorkflow record
54
- exports.agentWorkflowAttributesSchema = zod_1.z.object({
55
- workflowType: zod_1.z.literal('recommendation_to_task'),
56
- triggerEvent: zod_1.z.string(), // e.g., 'observation.analysis.completed'
57
- triggerId: zod_1.z.string(), // ID of the observation, alert, etc.
58
- fieldId: zod_1.z.string().uuid(),
59
- farmId: zod_1.z.string().uuid(),
60
- status: exports.agentWorkflowStatusSchema,
61
- outcome: exports.workflowOutcomeSchema.nullable(),
62
- agentResults: exports.agentResultsSchema.nullable(),
63
- errorMessage: zod_1.z.string().nullable(),
64
- completedAt: zod_1.z.date().nullable(),
65
- }).merge(common_schemas_1.timestampsSchema);
51
+ export const agentWorkflowAttributesSchema = z.object({
52
+ workflowType: z.literal('recommendation_to_task'),
53
+ triggerEvent: z.string(), // e.g., 'observation.analysis.completed'
54
+ triggerId: z.string(), // ID of the observation, alert, etc.
55
+ fieldId: z.string().uuid(),
56
+ farmId: z.string().uuid(),
57
+ status: agentWorkflowStatusSchema,
58
+ outcome: workflowOutcomeSchema.nullable(),
59
+ agentResults: agentResultsSchema.nullable(),
60
+ errorMessage: z.string().nullable(),
61
+ completedAt: z.date().nullable(),
62
+ }).merge(timestampsSchema);
66
63
  // JSON:API resource schemas
67
- exports.agentWorkflowResourceSchema = (0, common_schemas_1.createJsonApiResourceSchema)('agent-workflows', exports.agentWorkflowAttributesSchema);
64
+ export const agentWorkflowResourceSchema = createJsonApiResourceSchema('agent-workflows', agentWorkflowAttributesSchema);
68
65
  // Response schemas
69
- exports.agentWorkflowResponseSchema = (0, common_schemas_1.jsonApiSingleResponseSchema)(exports.agentWorkflowResourceSchema);
70
- exports.agentWorkflowListResponseSchema = (0, common_schemas_1.jsonApiCollectionResponseSchema)(exports.agentWorkflowResourceSchema);
66
+ export const agentWorkflowResponseSchema = jsonApiSingleResponseSchema(agentWorkflowResourceSchema);
67
+ export const agentWorkflowListResponseSchema = jsonApiCollectionResponseSchema(agentWorkflowResourceSchema);
@@ -1,77 +1,74 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.conversationListResponseSchema = exports.conversationListResourceSchema = exports.conversationListAttributesSchema = exports.conversationListItemSchema = exports.conversationHistoryResponseSchema = exports.conversationHistoryResourceSchema = exports.conversationHistoryAttributesSchema = exports.conversationHistoryMessageSchema = exports.agentChatResponseSchema = exports.agentChatResponseResourceSchema = exports.agentChatResponseAttributesSchema = exports.chatRequestSchema = exports.chatRequestAttributesSchema = exports.toolCallResultSchema = exports.conversationMessageSchema = exports.messageRoleSchema = void 0;
4
- const zod_1 = require("zod");
5
- const common_schemas_1 = require("./common.schemas");
1
+ import { z } from 'zod';
2
+ import { createJsonApiResourceSchema, jsonApiSingleResponseSchema, } from './common.schemas';
6
3
  /**
7
4
  * Agents schemas - JSON:API compliant
8
5
  */
9
6
  // Conversation message role enum
10
- exports.messageRoleSchema = zod_1.z.enum(['user', 'assistant']);
7
+ export const messageRoleSchema = z.enum(['user', 'assistant']);
11
8
  // Conversation message schema
12
- exports.conversationMessageSchema = zod_1.z.object({
13
- role: exports.messageRoleSchema,
14
- content: zod_1.z.string().min(1),
9
+ export const conversationMessageSchema = z.object({
10
+ role: messageRoleSchema,
11
+ content: z.string().min(1),
15
12
  });
16
13
  // Tool call result schema
17
- exports.toolCallResultSchema = zod_1.z.object({
18
- tool: zod_1.z.string(),
19
- result: zod_1.z.unknown(), // Tool results can be any shape
14
+ export const toolCallResultSchema = z.object({
15
+ tool: z.string(),
16
+ result: z.unknown(), // Tool results can be any shape
20
17
  });
21
18
  // Chat request attributes schema
22
- exports.chatRequestAttributesSchema = zod_1.z.object({
23
- message: zod_1.z.string().min(1).max(5000),
24
- farmId: zod_1.z.string().uuid().optional(),
25
- conversationId: zod_1.z.string().uuid().optional(), // Continue existing conversation
26
- conversationHistory: zod_1.z.array(exports.conversationMessageSchema).optional(),
19
+ export const chatRequestAttributesSchema = z.object({
20
+ message: z.string().min(1).max(5000),
21
+ farmId: z.string().uuid().optional(),
22
+ conversationId: z.string().uuid().optional(), // Continue existing conversation
23
+ conversationHistory: z.array(conversationMessageSchema).optional(),
27
24
  });
28
25
  // Chat request input (JSON:API format)
29
- exports.chatRequestSchema = zod_1.z.object({
30
- type: zod_1.z.literal('agent-chat-requests'),
31
- attributes: exports.chatRequestAttributesSchema,
26
+ export const chatRequestSchema = z.object({
27
+ type: z.literal('agent-chat-requests'),
28
+ attributes: chatRequestAttributesSchema,
32
29
  });
33
30
  // Agent chat response attributes schema
34
- exports.agentChatResponseAttributesSchema = zod_1.z.object({
35
- response: zod_1.z.string(),
36
- toolCalls: zod_1.z.array(exports.toolCallResultSchema).optional(),
37
- conversationId: zod_1.z.string().uuid(), // Return conversation ID for continuing
31
+ export const agentChatResponseAttributesSchema = z.object({
32
+ response: z.string(),
33
+ toolCalls: z.array(toolCallResultSchema).optional(),
34
+ conversationId: z.string().uuid(), // Return conversation ID for continuing
38
35
  });
39
36
  // Agent chat response resource (JSON:API resource object)
40
- exports.agentChatResponseResourceSchema = (0, common_schemas_1.createJsonApiResourceSchema)('agent-chat-responses', exports.agentChatResponseAttributesSchema);
37
+ export const agentChatResponseResourceSchema = createJsonApiResourceSchema('agent-chat-responses', agentChatResponseAttributesSchema);
41
38
  // Agent chat response (JSON:API single response)
42
- exports.agentChatResponseSchema = (0, common_schemas_1.jsonApiSingleResponseSchema)(exports.agentChatResponseResourceSchema);
39
+ export const agentChatResponseSchema = jsonApiSingleResponseSchema(agentChatResponseResourceSchema);
43
40
  // Conversation history message schema (with timestamp)
44
- exports.conversationHistoryMessageSchema = zod_1.z.object({
45
- role: exports.messageRoleSchema,
46
- content: zod_1.z.string(),
47
- createdAt: zod_1.z.string().datetime().optional(),
41
+ export const conversationHistoryMessageSchema = z.object({
42
+ role: messageRoleSchema,
43
+ content: z.string(),
44
+ createdAt: z.string().datetime().optional(),
48
45
  });
49
46
  // Conversation history response attributes
50
- exports.conversationHistoryAttributesSchema = zod_1.z.object({
51
- messages: zod_1.z.array(exports.conversationHistoryMessageSchema),
52
- conversationId: zod_1.z.string().uuid(),
47
+ export const conversationHistoryAttributesSchema = z.object({
48
+ messages: z.array(conversationHistoryMessageSchema),
49
+ conversationId: z.string().uuid(),
53
50
  });
54
51
  // Conversation history resource
55
- exports.conversationHistoryResourceSchema = (0, common_schemas_1.createJsonApiResourceSchema)('conversation-histories', exports.conversationHistoryAttributesSchema);
52
+ export const conversationHistoryResourceSchema = createJsonApiResourceSchema('conversation-histories', conversationHistoryAttributesSchema);
56
53
  // Conversation history response
57
- exports.conversationHistoryResponseSchema = (0, common_schemas_1.jsonApiSingleResponseSchema)(exports.conversationHistoryResourceSchema);
54
+ export const conversationHistoryResponseSchema = jsonApiSingleResponseSchema(conversationHistoryResourceSchema);
58
55
  // Conversation list item schema
59
- exports.conversationListItemSchema = zod_1.z.object({
60
- id: zod_1.z.string().uuid(),
61
- title: zod_1.z.string().nullable(),
62
- summary: zod_1.z.string().nullable(),
63
- farmId: zod_1.z.string().uuid().nullable(),
64
- messageCount: zod_1.z.number().int().min(0),
65
- lastMessageAt: zod_1.z.string().datetime().nullable(),
66
- createdAt: zod_1.z.string().datetime(),
67
- updatedAt: zod_1.z.string().datetime(),
56
+ export const conversationListItemSchema = z.object({
57
+ id: z.string().uuid(),
58
+ title: z.string().nullable(),
59
+ summary: z.string().nullable(),
60
+ farmId: z.string().uuid().nullable(),
61
+ messageCount: z.number().int().min(0),
62
+ lastMessageAt: z.string().datetime().nullable(),
63
+ createdAt: z.string().datetime(),
64
+ updatedAt: z.string().datetime(),
68
65
  });
69
66
  // Conversation list response attributes
70
- exports.conversationListAttributesSchema = zod_1.z.object({
71
- conversations: zod_1.z.array(exports.conversationListItemSchema),
72
- total: zod_1.z.number().int().min(0),
67
+ export const conversationListAttributesSchema = z.object({
68
+ conversations: z.array(conversationListItemSchema),
69
+ total: z.number().int().min(0),
73
70
  });
74
71
  // Conversation list resource
75
- exports.conversationListResourceSchema = (0, common_schemas_1.createJsonApiResourceSchema)('conversation-lists', exports.conversationListAttributesSchema);
72
+ export const conversationListResourceSchema = createJsonApiResourceSchema('conversation-lists', conversationListAttributesSchema);
76
73
  // Conversation list response
77
- exports.conversationListResponseSchema = (0, common_schemas_1.jsonApiSingleResponseSchema)(exports.conversationListResourceSchema);
74
+ export const conversationListResponseSchema = jsonApiSingleResponseSchema(conversationListResourceSchema);