Tool tree
gradeNot graded
get_workspace_stateAnswer
Read the current learning goal, ordered path, completion state, and publication status before recommending or changing anything.
View tool JSON
{
"name": "get_workspace_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the current learning goal, ordered path, completion state, and publication status before recommending or changing anything.",
"inputSchema": {
"type": "object",
"properties": {}
}
}search_open_resourcesAnswer
Search the curated open-web learning catalog. Returns concise resource metadata and stable IDs for later comparison or selection.
View tool JSON
{
"name": "search_open_resources",
"kind": "answer",
"impl": "imperative",
"description": "Search the curated open-web learning catalog. Returns concise resource metadata and stable IDs for later comparison or selection.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Words to match in titles, providers, topics, formats, or descriptions."
},
"topic": {
"type": "string",
"enum": [
"all",
"accessibility",
"html",
"css",
"performance",
"security",
"design-systems",
"privacy"
],
"description": "Topic filter. Use all to search every topic."
},
"level": {
"type": "string",
"enum": [
"all",
"beginner",
"intermediate",
"advanced"
],
"description": "Learner level filter."
},
"format": {
"type": "string",
"enum": [
"all",
"article",
"article series",
"checklist",
"course",
"guide",
"reference",
"tutorial"
],
"description": "Resource format filter."
},
"maxMinutes": {
"type": "number",
"minimum": 5,
"maximum": 300,
"description": "Optional maximum duration per resource."
}
}
}
}compare_open_resourcesAction
Compare two to four catalog resources by time, level, format, provider, and license. Use IDs returned by search_open_resources.
View tool JSON
{
"name": "compare_open_resources",
"kind": "act",
"impl": "imperative",
"description": "Compare two to four catalog resources by time, level, format, provider, and license. Use IDs returned by search_open_resources.",
"inputSchema": {
"type": "object",
"properties": {
"resourceIds": {
"type": "array",
"minItems": 2,
"maxItems": 4,
"uniqueItems": true,
"items": {
"type": "string"
},
"description": "Two to four valid catalog resource IDs."
}
},
"required": [
"resourceIds"
]
}
}set_learning_goalAction
Set the human-defined topic, level, schedule, and preferences. This changes constraints but does not select or remove resources.
View tool JSON
{
"name": "set_learning_goal",
"kind": "act",
"impl": "imperative",
"description": "Set the human-defined topic, level, schedule, and preferences. This changes constraints but does not select or remove resources.",
"inputSchema": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"accessibility",
"html",
"css",
"performance",
"security",
"design-systems",
"privacy"
]
},
"level": {
"type": "string",
"enum": [
"beginner",
"intermediate",
"advanced"
]
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 30
},
"dailyMinutes": {
"type": "integer",
"minimum": 10,
"maximum": 180
},
"preferences": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"practical",
"short",
"accessible"
]
}
}
},
"required": [
"topic",
"level",
"days",
"dailyMinutes"
]
}
}build_learning_pathAction
Build an ordered draft from the catalog within a topic, level, and time budget. Replaces the current draft but never publishes it.
View tool JSON
{
"name": "build_learning_path",
"kind": "act",
"impl": "imperative",
"description": "Build an ordered draft from the catalog within a topic, level, and time budget. Replaces the current draft but never publishes it.",
"inputSchema": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"accessibility",
"html",
"css",
"performance",
"security",
"design-systems",
"privacy"
]
},
"level": {
"type": "string",
"enum": [
"beginner",
"intermediate",
"advanced"
]
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 30
},
"dailyMinutes": {
"type": "integer",
"minimum": 10,
"maximum": 180
},
"preferences": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"practical",
"short",
"accessible"
]
}
}
},
"required": [
"topic",
"level",
"days",
"dailyMinutes"
]
}
}add_to_learning_pathAction
Add one catalog resource to the end of the draft. Requires a valid resource ID and keeps the path editable and unpublished.
View tool JSON
{
"name": "add_to_learning_path",
"kind": "act",
"impl": "imperative",
"description": "Add one catalog resource to the end of the draft. Requires a valid resource ID and keeps the path editable and unpublished.",
"inputSchema": {
"type": "object",
"properties": {
"resourceId": {
"type": "string",
"description": "A valid ID from search_open_resources."
}
},
"required": [
"resourceId"
]
}
}remove_from_learning_pathAction
Remove one resource from the draft by ID. This updates visible state and returns the revised ordered path.
View tool JSON
{
"name": "remove_from_learning_path",
"kind": "act",
"impl": "imperative",
"description": "Remove one resource from the draft by ID. This updates visible state and returns the revised ordered path.",
"inputSchema": {
"type": "object",
"properties": {
"resourceId": {
"type": "string",
"description": "ID of a resource currently in the path."
}
},
"required": [
"resourceId"
]
}
}reorder_learning_pathAction
Move a selected resource to a new one-based position in the draft. Use get_workspace_state first to inspect current order.
View tool JSON
{
"name": "reorder_learning_path",
"kind": "act",
"impl": "imperative",
"description": "Move a selected resource to a new one-based position in the draft. Use get_workspace_state first to inspect current order.",
"inputSchema": {
"type": "object",
"properties": {
"resourceId": {
"type": "string"
},
"targetPosition": {
"type": "integer",
"minimum": 1,
"description": "One-based destination position."
}
},
"required": [
"resourceId",
"targetPosition"
]
}
}mark_resource_completeAction
Mark one selected resource complete or incomplete. This records visible progress without changing the learning path order.
View tool JSON
{
"name": "mark_resource_complete",
"kind": "act",
"impl": "imperative",
"description": "Mark one selected resource complete or incomplete. This records visible progress without changing the learning path order.",
"inputSchema": {
"type": "object",
"properties": {
"resourceId": {
"type": "string"
},
"completed": {
"type": "boolean"
}
},
"required": [
"resourceId",
"completed"
]
}
}prepare_publish_reviewAction
Open and optionally prefill the visible publication checkpoint, then stop for human review. Never submits or publishes the path.
View tool JSON
{
"name": "prepare_publish_review",
"kind": "act",
"impl": "imperative",
"description": "Open and optionally prefill the visible publication checkpoint, then stop for human review. Never submits or publishes the path.",
"inputSchema": {
"type": "object",
"properties": {
"pathTitle": {
"type": "string",
"description": "Optional proposed title for the learning path."
},
"learnerName": {
"type": "string",
"description": "Optional proposed learner or cohort name."
}
}
}
}export_learning_pathAction
Download the current path as a Markdown file after it has at least one resource. Does not publish or send data anywhere.
View tool JSON
{
"name": "export_learning_path",
"kind": "act",
"impl": "imperative",
"description": "Download the current path as a Markdown file after it has at least one resource. Does not publish or send data anywhere.",
"inputSchema": {
"type": "object",
"properties": {
"filename": {
"type": "string",
"description": "Optional filename without a path."
}
}
}
}publish_learning_pathAction
Prepare a learning path for publication. Fill the visible title and learner name, then wait for the human to review and click Publish.
View tool JSON
{
"name": "publish_learning_path",
"kind": "act",
"impl": "declarative",
"description": "Prepare a learning path for publication. Fill the visible title and learner name, then wait for the human to review and click Publish.",
"inputSchema": {
"type": "object",
"properties": {
"pathTitle": {
"type": "string"
},
"learnerName": {
"type": "string"
}
},
"required": [
"pathTitle",
"learnerName"
]
}
}