Tool tree
gradeNot graded
get_system_capabilitiesAnswer
Discover registered profiles, providers, surfaces, actions, guidance capabilities, and limits.
View tool JSON
{
"name": "get_system_capabilities",
"kind": "answer",
"impl": "imperative",
"description": "Discover registered profiles, providers, surfaces, actions, guidance capabilities, and limits.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"include": {
"minItems": 1,
"maxItems": 12,
"type": "array",
"items": {
"type": "string",
"enum": [
"profiles",
"languages",
"runtimes",
"surfaces",
"actions",
"scene_effects",
"target_resolvers",
"assistant_states",
"interaction_events",
"locators",
"validators",
"limits"
]
}
},
"profileId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
}
},
"additionalProperties": false
}
}set_guide_build_statusAnswer
Report the real guide-planning stage before classroom creation. Start with understanding-goal, advance one stage at a time, and let create_guided_lesson own successful completion. Use error with a learner-facing message when planning cannot continue.
View tool JSON
{
"name": "set_guide_build_status",
"kind": "answer",
"impl": "imperative",
"description": "Report the real guide-planning stage before classroom creation. Start with understanding-goal, advance one stage at a time, and let create_guided_lesson own successful completion. Use error with a learner-facing message when planning cannot continue.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"building",
"completed",
"error"
]
},
"stage": {
"type": "string",
"enum": [
"understanding-goal",
"preparing-lesson",
"setting-up-classroom"
]
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
"required": [
"status"
],
"additionalProperties": false
}
}create_guided_lessonAction
Create or replace a complete guided lesson transactionally. Always declare lessonMode. Use only the lesson steps and scene beats required for clarity, with at most 15 Learning Plan steps and 15 scene beats. Avoid filler or unnatural compression and group closely related concepts when needed. Use explain when the learner asks to understand, learn, see, or be shown a concept: provide complete example code and progressive explanation beats, not a workspace full of TODOs. When an initial scene teaches source code, preserve Monaco precision by giving each visual explanation beat one semantic target for the exact token, single line, or contiguous multi-line range being discussed, together with the registered highlight, spotlight, focus, or pointer effects that communicate that target. Treat endColumn as the exclusive endpoint after the final target character. Use practice only when the learner asks for an exercise, challenge, TODO, or hands-on work. Use mixed for a demonstration followed by a small validated exercise. Map every coding-exercise beat, including an intermediate exercise, to a lesson step with structural validation criteria and an editor-change interaction wait; Lessonique validates it in the same beat and gates Next or Finish. Use at most 5 final-exercise criteria and write each criterion's learner-visible requirement alongside its validator. Omit supportingItems from the final beat: Lessonique derives the numbered list from those criterion requirements in the same order, so the guide and validation progress cannot diverge. Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation.
View tool JSON
{
"name": "create_guided_lesson",
"kind": "act",
"impl": "imperative",
"description": "Create or replace a complete guided lesson transactionally. Always declare lessonMode. Use only the lesson steps and scene beats required for clarity, with at most 15 Learning Plan steps and 15 scene beats. Avoid filler or unnatural compression and group closely related concepts when needed. Use explain when the learner asks to understand, learn, see, or be shown a concept: provide complete example code and progressive explanation beats, not a workspace full of TODOs. When an initial scene teaches source code, preserve Monaco precision by giving each visual explanation beat one semantic target for the exact token, single line, or contiguous multi-line range being discussed, together with the registered highlight, spotlight, focus, or pointer effects that communicate that target. Treat endColumn as the exclusive endpoint after the final target character. Use practice only when the learner asks for an exercise, challenge, TODO, or hands-on work. Use mixed for a demonstration followed by a small validated exercise. Map every coding-exercise beat, including an intermediate exercise, to a lesson step with structural validation criteria and an editor-change interaction wait; Lessonique validates it in the same beat and gates Next or Finish. Use at most 5 final-exercise criteria and write each criterion's learner-visible requirement alongside its validator. Omit supportingItems from the final beat: Lessonique derives the numbered list from those criterion requirements in the same order, so the guide and validation progress cannot diverge. Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"lessonId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"objective": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"lessonMode": {
"type": "string",
"enum": [
"explain",
"practice",
"mixed"
],
"description": "Use explain for complete examples and guided demonstrations without TODO-driven work; practice for incomplete exercises and validation; mixed for explanation followed by a small exercise."
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"language": {
"type": "string",
"enum": [
"es",
"en"
]
},
"replaceExisting": {
"type": "boolean",
"const": true
},
"environment": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"runtimeProviderId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"languageIds": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
}
},
"surfaces": {
"maxItems": 30,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"visible": {
"type": "boolean"
},
"order": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"placementId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"modeId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"size": {
"type": "number",
"exclusiveMinimum": 0
},
"options": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"optionId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"value": {
"type": [
"string",
"number",
"boolean"
]
}
},
"required": [
"optionId",
"value"
],
"additionalProperties": false
}
}
},
"required": [
"id"
],
"additionalProperties": false
}
},
"activeFile": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"activeSurfaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
}
},
"required": [
"profileId"
],
"additionalProperties": false
},
"files": {
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"languageId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"content": {
"type": "string"
},
"visible": {
"type": "boolean"
},
"readOnly": {
"type": "boolean"
}
},
"required": [
"path",
"languageId",
"content"
],
"additionalProperties": false
}
},
"steps": {
"minItems": 1,
"maxItems": 15,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"objective": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"instructions": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"criteria": {
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"requirement": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Describe this validation gate in learner-visible language. Final coding-exercise numbered requirements are derived from these values in criterion order."
},
"validatorId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"id",
"requirement",
"validatorId"
],
"additionalProperties": false
}
},
"hints": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation."
}
}
},
"required": [
"id",
"title",
"objective"
],
"additionalProperties": false
},
"description": "Use only the Learning Plan steps required by the teaching content, up to 15. Prefer clarity over count, avoid filler or unnatural compression, and group closely related concepts when needed."
},
"initialScene": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"cleanupPolicy": {
"type": "string",
"const": "replace"
},
"allowManualNavigation": {
"type": "boolean",
"description": "Set true for progressive explanations so the learner advances locally with Previous, Next, and Finish instead of asking ChatGPT for each micro-step."
},
"beats": {
"minItems": 1,
"maxItems": 15,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"lessonStepId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$",
"description": "Reference the Learning Plan section taught by this micro-step. Reuse the same ID across consecutive beats in one section."
},
"type": {
"type": "string",
"enum": [
"explanation",
"interaction",
"validation",
"feedback"
],
"description": "Use explanation for one small concept, interaction while the learner works, validation while checking declared criteria, and feedback for success or correction."
},
"prepare": {
"type": "object",
"properties": {
"surfaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"filePath": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"viewportId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"scroll": {
"type": "string",
"enum": [
"none",
"if-needed"
]
}
},
"additionalProperties": false
},
"target": {
"type": "object",
"properties": {
"resolverId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"resolverId",
"input"
],
"additionalProperties": false
},
"assistant": {
"type": "object",
"properties": {
"stateId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"placementId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"visible": {
"type": "boolean"
}
},
"required": [
"stateId"
],
"additionalProperties": false
},
"effects": {
"maxItems": 8,
"type": "array",
"items": {
"type": "object",
"properties": {
"effectId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"effectId"
],
"additionalProperties": false
}
},
"guide": {
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation."
},
"body": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "Keep this explanation focused on the active micro-step; do not combine multiple concepts into a wall of text. Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation."
},
"supportingItems": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation."
},
"description": "Use for supporting details on explanation beats. Omit this field on the final coding-exercise beat because Lessonique derives its numbered requirements from the mapped criteria."
}
},
"required": [
"body"
],
"additionalProperties": false
},
"caption": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation."
},
"wait": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "interaction"
},
"eventTypeId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"target": {
"type": "object",
"properties": {
"resolverId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"resolverId",
"input"
],
"additionalProperties": false
},
"timeoutMs": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 300000
}
},
"required": [
"kind",
"eventTypeId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "validation"
},
"criterionId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"timeoutMs": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 300000
}
},
"required": [
"kind",
"criterionId"
],
"additionalProperties": false
}
],
"description": "Required for interaction and validation beats. It blocks forward navigation until the registered local condition resolves."
}
},
"required": [
"id",
"type"
],
"additionalProperties": false
},
"description": "Use only the beats required by the teaching content, up to 15. Prefer clarity over count, avoid filler or unnatural compression, and group closely related concepts when needed."
}
},
"required": [
"id",
"beats"
],
"additionalProperties": false,
"description": "For explain or mixed lessons, prefer a complete multi-beat scene with local navigation and no more than 15 beats. Use only the beats needed for clarity, avoid filler or unnatural compression, and group closely related concepts when necessary. Code explanations should use one semantic target per beat for the exact token, single line, or contiguous multi-line range being discussed and include registered visual effects for that target. Treat endColumn as the exclusive endpoint after the final target character. Do not create artificial learner waits merely to keep explanations visible. Every coding exercise, including an intermediate exercise, must use a mapped lesson step with structural validation criteria and an editor-change interaction wait so Lessonique exposes validation in that same beat. On a final coding exercise, use at most 5 criteria and omit the final beat's guide supportingItems because Lessonique derives the numbered list from each criterion's requirement in matching order."
}
},
"required": [
"lessonId",
"title",
"objective",
"lessonMode",
"environment",
"files",
"steps"
],
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
}
}
}reset_classroomAction
Clear a declared classroom lifecycle scope idempotently.
View tool JSON
{
"name": "reset_classroom",
"kind": "act",
"impl": "imperative",
"description": "Clear a declared classroom lifecycle scope idempotently.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"scope": {
"type": "string",
"enum": [
"guidance",
"runtime",
"workspace",
"lesson",
"all"
]
},
"preserve": {
"type": "object",
"properties": {
"theme": {
"type": "boolean"
},
"layout": {
"type": "boolean"
},
"activity": {
"type": "boolean"
},
"snapshots": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"required": [
"scope"
],
"additionalProperties": false
}
}inspect_classroomAction
Inspect a bounded, filtered snapshot of the active classroom.
View tool JSON
{
"name": "inspect_classroom",
"kind": "act",
"impl": "imperative",
"description": "Inspect a bounded, filtered snapshot of the active classroom.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"include": {
"minItems": 1,
"maxItems": 14,
"type": "array",
"items": {
"type": "string",
"enum": [
"capabilities",
"lesson",
"environment",
"workspace",
"file_contents",
"diagnostics",
"anchors",
"validation",
"runtime",
"scene",
"assistant",
"interaction_targets",
"activity"
]
}
},
"files": {
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"anchorQuery": {
"type": "object",
"properties": {
"resolverId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"resolverId",
"input"
],
"additionalProperties": false
},
"maxActivity": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
}
}
}configure_learning_environmentAction
Reconfigure registered profiles, providers, files, surfaces, and scalar options.
View tool JSON
{
"name": "configure_learning_environment",
"kind": "act",
"impl": "imperative",
"description": "Reconfigure registered profiles, providers, files, surfaces, and scalar options.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"profileId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"runtimeProviderId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"languageIds": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
}
},
"visibleFiles": {
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"activeFile": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"activeSurfaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"surfaces": {
"maxItems": 30,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"visible": {
"type": "boolean"
},
"order": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"placementId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"modeId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"size": {
"type": "number",
"exclusiveMinimum": 0
},
"options": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"optionId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"value": {
"type": [
"string",
"number",
"boolean"
]
}
},
"required": [
"optionId",
"value"
],
"additionalProperties": false
}
}
},
"required": [
"id"
],
"additionalProperties": false
}
},
"viewport": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"transition": {
"type": "string",
"enum": [
"instant",
"animated"
]
},
"clearConsole": {
"type": "boolean"
},
"actionAfter": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
}
},
"additionalProperties": false
}
}apply_workspace_changesAction
Apply an atomic batch of validated workspace file operations.
View tool JSON
{
"name": "apply_workspace_changes",
"kind": "act",
"impl": "imperative",
"description": "Apply an atomic batch of validated workspace file operations.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"operations": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "create_file"
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"languageId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"content": {
"type": "string"
}
},
"required": [
"type",
"path",
"content"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "replace_file"
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"content": {
"type": "string"
}
},
"required": [
"type",
"path",
"content"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "patch_file"
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"edits": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "object",
"properties": {
"line": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"column": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"required": [
"line",
"column"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"line": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"column": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"required": [
"line",
"column"
],
"additionalProperties": false
},
"text": {
"type": "string"
}
},
"required": [
"start",
"end",
"text"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"path",
"edits"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "move_file"
},
"from": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"to": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"required": [
"type",
"from",
"to"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "remove_file"
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"required": [
"type",
"path"
],
"additionalProperties": false
}
]
}
},
"openAfter": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"actionAfter": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
}
},
"required": [
"operations"
],
"additionalProperties": false
}
}execute_environment_actionAction
Execute a capability-declared runtime, profile, or surface action.
View tool JSON
{
"name": "execute_environment_action",
"kind": "act",
"impl": "imperative",
"description": "Execute a capability-declared runtime, profile, or surface action.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"actionId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
},
"waitForCompletion": {
"type": "boolean"
}
},
"required": [
"actionId"
],
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
}
}
}play_teaching_sceneAction
Start a visual teaching scene using semantic targets and registered guidance capabilities. Use only the beats required for clarity, with at most 15; avoid filler or unnatural compression and group closely related concepts when needed. Author one small concept per explanation beat, set lessonStepId to the Learning Plan section taught by each micro-step, and target the narrowest useful token or expression. Treat endColumn as the exclusive endpoint after the final target character. Set allowManualNavigation for learner-controlled Previous, Next, and Finish. Interaction beats are for learner work, must include a registered wait, and automatically remove invasive guidance. A coding exercise must map to criteria and use an editor-change wait so it exposes Validate Exercise and gates its own Next or Finish action; validation and feedback beats check and respond without exposing arbitrary code execution. Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation.
View tool JSON
{
"name": "play_teaching_scene",
"kind": "act",
"impl": "imperative",
"description": "Start a visual teaching scene using semantic targets and registered guidance capabilities. Use only the beats required for clarity, with at most 15; avoid filler or unnatural compression and group closely related concepts when needed. Author one small concept per explanation beat, set lessonStepId to the Learning Plan section taught by each micro-step, and target the narrowest useful token or expression. Treat endColumn as the exclusive endpoint after the final target character. Set allowManualNavigation for learner-controlled Previous, Next, and Finish. Interaction beats are for learner work, must include a registered wait, and automatically remove invasive guidance. A coding exercise must map to criteria and use an editor-change wait so it exposes Validate Exercise and gates its own Next or Finish action; validation and feedback beats check and respond without exposing arbitrary code execution. Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"cleanupPolicy": {
"type": "string",
"const": "replace"
},
"allowManualNavigation": {
"type": "boolean",
"description": "Set true for progressive explanations so the learner advances locally with Previous, Next, and Finish instead of asking ChatGPT for each micro-step."
},
"beats": {
"minItems": 1,
"maxItems": 15,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"lessonStepId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$",
"description": "Reference the Learning Plan section taught by this micro-step. Reuse the same ID across consecutive beats in one section."
},
"type": {
"type": "string",
"enum": [
"explanation",
"interaction",
"validation",
"feedback"
],
"description": "Use explanation for one small concept, interaction while the learner works, validation while checking declared criteria, and feedback for success or correction."
},
"prepare": {
"type": "object",
"properties": {
"surfaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"filePath": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"viewportId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"scroll": {
"type": "string",
"enum": [
"none",
"if-needed"
]
}
},
"additionalProperties": false
},
"target": {
"type": "object",
"properties": {
"resolverId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"resolverId",
"input"
],
"additionalProperties": false
},
"assistant": {
"type": "object",
"properties": {
"stateId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"placementId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"visible": {
"type": "boolean"
}
},
"required": [
"stateId"
],
"additionalProperties": false
},
"effects": {
"maxItems": 8,
"type": "array",
"items": {
"type": "object",
"properties": {
"effectId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"effectId"
],
"additionalProperties": false
}
},
"guide": {
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation."
},
"body": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "Keep this explanation focused on the active micro-step; do not combine multiple concepts into a wall of text. Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation."
},
"supportingItems": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation."
},
"description": "Use for supporting details on explanation beats. Omit this field on the final coding-exercise beat because Lessonique derives its numbered requirements from the mapped criteria."
}
},
"required": [
"body"
],
"additionalProperties": false
},
"caption": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation."
},
"wait": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "interaction"
},
"eventTypeId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"target": {
"type": "object",
"properties": {
"resolverId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"resolverId",
"input"
],
"additionalProperties": false
},
"timeoutMs": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 300000
}
},
"required": [
"kind",
"eventTypeId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "validation"
},
"criterionId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"timeoutMs": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 300000
}
},
"required": [
"kind",
"criterionId"
],
"additionalProperties": false
}
],
"description": "Required for interaction and validation beats. It blocks forward navigation until the registered local condition resolves."
}
},
"required": [
"id",
"type"
],
"additionalProperties": false
},
"description": "Use only the beats required by the teaching content, up to 15. Prefer clarity over count, avoid filler or unnatural compression, and group closely related concepts when needed."
}
},
"required": [
"id",
"beats"
],
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
}
}
}control_teaching_sceneAction
Pause, resume, navigate, restart, or cancel the active teaching scene. Learners normally use Lessonique's local Previous, Next, and Finish controls; use this tool for agent-directed recovery, remote control, restart, or cancellation, never to bypass a blocked learner interaction.
View tool JSON
{
"name": "control_teaching_scene",
"kind": "act",
"impl": "imperative",
"description": "Pause, resume, navigate, restart, or cancel the active teaching scene. Learners normally use Lessonique's local Previous, Next, and Finish controls; use this tool for agent-directed recovery, remote control, restart, or cancellation, never to bypass a blocked learner interaction.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"pause",
"resume",
"next",
"previous",
"restart",
"cancel"
]
},
"sceneId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
}
},
"required": [
"action"
],
"additionalProperties": false
}
}evaluate_current_stepAction
Evaluate the active lesson step with its declared criteria. Use this for practice or the exercise portion of mixed lessons after learner interaction; do not invent criteria or evaluate a read-only explanation merely to advance it.
View tool JSON
{
"name": "evaluate_current_step",
"kind": "act",
"impl": "imperative",
"description": "Evaluate the active lesson step with its declared criteria. Use this for practice or the exercise portion of mixed lessons after learner interaction; do not invent criteria or evaluate a read-only explanation merely to advance it.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"stepId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"advanceOnPass": {
"type": "boolean"
},
"showFeedback": {
"type": "boolean"
}
},
"additionalProperties": false
}
}update_lesson_planAction
Adapt lesson steps, active progress, hints, or the agent message without changing the workspace.
View tool JSON
{
"name": "update_lesson_plan",
"kind": "act",
"impl": "imperative",
"description": "Adapt lesson steps, active progress, hints, or the agent message without changing the workspace.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"operations": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "replace_steps"
},
"steps": {
"minItems": 1,
"maxItems": 15,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"objective": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"instructions": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"criteria": {
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"requirement": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Describe this validation gate in learner-visible language. Final coding-exercise numbered requirements are derived from these values in criterion order."
},
"validatorId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"id",
"requirement",
"validatorId"
],
"additionalProperties": false
}
},
"hints": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation."
}
}
},
"required": [
"id",
"title",
"objective"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"steps"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "insert_step"
},
"step": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"objective": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"instructions": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"criteria": {
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"requirement": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Describe this validation gate in learner-visible language. Final coding-exercise numbered requirements are derived from these values in criterion order."
},
"validatorId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"id",
"requirement",
"validatorId"
],
"additionalProperties": false
}
},
"hints": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation."
}
}
},
"required": [
"id",
"title",
"objective"
],
"additionalProperties": false
},
"afterStepId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
}
},
"required": [
"type",
"step"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "update_step"
},
"stepId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"patch": {
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"objective": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"instructions": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"criteria": {
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"requirement": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Describe this validation gate in learner-visible language. Final coding-exercise numbered requirements are derived from these values in criterion order."
},
"validatorId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
},
"required": [
"id",
"requirement",
"validatorId"
],
"additionalProperties": false
}
},
"hints": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "Wrap every code-related term in single backticks, including keywords, identifiers, functions, values, data types, HTML tags, CSS tokens, and short expressions (for example, `const`, `<section>`, `getUser()`, `string`, or `42`). Only inline code spans are supported; do not use HTML or other Markdown for presentation."
}
}
},
"additionalProperties": false
}
},
"required": [
"type",
"stepId",
"patch"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "remove_step"
},
"stepId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
}
},
"required": [
"type",
"stepId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "set_active_step"
},
"stepId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
}
},
"required": [
"type",
"stepId"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "set_agent_message"
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
]
}
}
},
"required": [
"operations"
],
"additionalProperties": false,
"definitions": {
"__schema0": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/__schema0"
}
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/definitions/__schema0"
}
}
]
}
}
}
}show_reference_panelAction
Create or replace a structured, non-modal reference panel.
View tool JSON
{
"name": "show_reference_panel",
"kind": "act",
"impl": "imperative",
"description": "Create or replace a structured, non-modal reference panel.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"referenceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"content": {
"type": "string",
"minLength": 1,
"maxLength": 5000
},
"snippets": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"languageId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"code": {
"type": "string"
}
},
"required": [
"languageId",
"code"
],
"additionalProperties": false
}
},
"surfaceId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$"
},
"focus": {
"type": "boolean"
}
},
"required": [
"referenceId",
"title",
"content"
],
"additionalProperties": false
}
}