feat: widgets and ai chat
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
import type {
|
||||
TAutomationCourseTagAssignment,
|
||||
TAutomationDraftTagAssignment,
|
||||
TAutomationDraftTagParam
|
||||
} from '@cio/utils/validation/tag';
|
||||
import type { TCourseContentReorder, TCourseLandingPageUpdate, TCourseUpdateParam } from '@cio/utils/validation/course';
|
||||
import type {
|
||||
TCourseImportCourseParam,
|
||||
TCourseImportDraftCreate,
|
||||
@@ -6,7 +12,6 @@ import type {
|
||||
TCourseImportDraftPublishToCourse,
|
||||
TCourseImportDraftUpdate
|
||||
} from '@cio/utils/validation/course-import';
|
||||
import type { TCourseContentReorder, TCourseLandingPageUpdate, TCourseUpdateParam } from '@cio/utils/validation/course';
|
||||
import type {
|
||||
TExerciseCreate,
|
||||
TExerciseFromTemplate,
|
||||
@@ -14,14 +19,9 @@ import type {
|
||||
TExerciseListQuery,
|
||||
TExerciseUpdate
|
||||
} from '@cio/utils/validation/exercise';
|
||||
import type { TGetOrganizationCoursesQuery } from '@cio/utils/validation/organization';
|
||||
import type {
|
||||
TAutomationCourseTagAssignment,
|
||||
TAutomationDraftTagAssignment,
|
||||
TAutomationDraftTagParam
|
||||
} from '@cio/utils/validation/tag';
|
||||
|
||||
import type { McpServerConfig } from './config.js';
|
||||
import type { McpServerConfig } from './config';
|
||||
import type { TGetOrganizationCoursesQuery } from '@cio/utils/validation/organization';
|
||||
|
||||
type ApiSuccess<T> = {
|
||||
success: true;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { ClassroomIoApiClient, ClassroomIoApiError } from './api-client';
|
||||
|
||||
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
||||
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
||||
|
||||
import { ClassroomIoApiClient, ClassroomIoApiError } from './api-client.js';
|
||||
import { getConfig } from './config.js';
|
||||
import { registerCourseDraftTools } from './tools/course-drafts.js';
|
||||
import { getConfig } from './config';
|
||||
import { registerCourseDraftTools } from './tools/course-drafts';
|
||||
|
||||
async function main() {
|
||||
const config = getConfig();
|
||||
|
||||
@@ -3,7 +3,21 @@ import {
|
||||
ZAutomationDraftTagAssignment,
|
||||
ZAutomationDraftTagParam
|
||||
} from '@cio/utils/validation/tag';
|
||||
import { ZGetOrganizationCoursesQuery } from '@cio/utils/validation/organization';
|
||||
import {
|
||||
ZCourseContentReorder,
|
||||
ZCourseContentReorderBase,
|
||||
ZCourseLandingPageUpdate
|
||||
} from '@cio/utils/validation/course';
|
||||
import {
|
||||
ZCourseImportCourseParam,
|
||||
ZCourseImportDraftCreate,
|
||||
ZCourseImportDraftCreateFromCourse,
|
||||
ZCourseImportDraftGetParam,
|
||||
ZCourseImportDraftPublishBase,
|
||||
ZCourseImportDraftPublishToCourse,
|
||||
ZCourseImportDraftPublishToCourseBase,
|
||||
ZCourseImportDraftUpdate
|
||||
} from '@cio/utils/validation/course-import';
|
||||
import {
|
||||
ZExerciseCreate,
|
||||
ZExerciseFromTemplate,
|
||||
@@ -11,24 +25,11 @@ import {
|
||||
ZExerciseListQuery,
|
||||
ZExerciseUpdate
|
||||
} from '@cio/utils/validation/exercise';
|
||||
import {
|
||||
ZCourseImportCourseParam,
|
||||
ZCourseImportDraftCreate,
|
||||
ZCourseImportDraftCreateFromCourse,
|
||||
ZCourseImportDraftGetParam,
|
||||
ZCourseImportDraftPublish,
|
||||
ZCourseImportDraftPublishToCourse,
|
||||
ZCourseImportDraftUpdate
|
||||
} from '@cio/utils/validation/course-import';
|
||||
import {
|
||||
ZCourseContentReorder,
|
||||
ZCourseContentReorderBase,
|
||||
ZCourseLandingPageUpdate
|
||||
} from '@cio/utils/validation/course';
|
||||
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
||||
import type { ZodRawShapeCompat } from '@modelcontextprotocol/sdk/server/zod-compat.js';
|
||||
|
||||
import type { ClassroomIoApiClient } from '../api-client.js';
|
||||
import type { ClassroomIoApiClient } from '../api-client';
|
||||
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
||||
import { ZGetOrganizationCoursesQuery } from '@cio/utils/validation/organization';
|
||||
import type { ZodRawShapeCompat } from '@modelcontextprotocol/sdk/server/zod-compat.js';
|
||||
|
||||
export const ZUpdateCourseDraftToolInput = ZCourseImportDraftUpdate.extend({
|
||||
draftId: ZCourseImportDraftGetParam.shape.draftId
|
||||
@@ -69,12 +70,18 @@ export const ZReorderCourseContentToolInput = ZCourseContentReorderBase.extend({
|
||||
courseId: ZCourseImportCourseParam.shape.courseId
|
||||
});
|
||||
|
||||
export const ZPublishCourseDraftToolInput = ZCourseImportDraftPublish.extend({
|
||||
export const ZPublishCourseDraftToolInput = ZCourseImportDraftPublishBase.extend({
|
||||
draftId: ZCourseImportDraftGetParam.shape.draftId
|
||||
}).refine((data) => data.type !== 'COMPLIANCE' || data.compliance !== undefined, {
|
||||
message: 'Compliance settings are required for COMPLIANCE courses',
|
||||
path: ['compliance']
|
||||
});
|
||||
|
||||
export const ZPublishCourseDraftToExistingCourseToolInput = ZCourseImportDraftPublishToCourse.extend({
|
||||
export const ZPublishCourseDraftToExistingCourseToolInput = ZCourseImportDraftPublishToCourseBase.extend({
|
||||
draftId: ZCourseImportDraftGetParam.shape.draftId
|
||||
}).refine((data) => data.type !== 'COMPLIANCE' || data.compliance !== undefined, {
|
||||
message: 'Compliance settings are required for COMPLIANCE courses',
|
||||
path: ['compliance']
|
||||
});
|
||||
|
||||
const createCourseDraftShape = ZCourseImportDraftCreate.shape as unknown as ZodRawShapeCompat;
|
||||
|
||||
Reference in New Issue
Block a user