Add comprehensive profile enhancements: languages, certifications, profile info, and fix duplicate resource ID bug

Co-authored-by: ArthurDanjou <29738535+ArthurDanjou@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-11-14 21:52:15 +00:00
parent be7a6b7371
commit 01f8ec098e
8 changed files with 267 additions and 2 deletions

View File

@@ -0,0 +1,10 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
return await queryCollection(event, 'certifications')
.where('extension', '=', 'json')
.first()
}, {
name: 'certifications-list',
maxAge: 3600 // 1 hour
})

View File

@@ -0,0 +1,10 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
return await queryCollection(event, 'languages')
.where('extension', '=', 'json')
.first()
}, {
name: 'languages-list',
maxAge: 3600 // 1 hour
})

10
server/api/profile.get.ts Normal file
View File

@@ -0,0 +1,10 @@
import { queryCollection } from '@nuxt/content/server'
export default defineCachedEventHandler(async (event) => {
return await queryCollection(event, 'profile')
.where('extension', '=', 'json')
.first()
}, {
name: 'profile-info',
maxAge: 3600 // 1 hour
})

View File

@@ -162,7 +162,7 @@ function createServer() {
)
server.registerResource(
'artmcp-contact',
'artmcp-hobbies',
'resource://artmcp/hobbies',
{
title: 'ArtMCP Hobbies',
@@ -199,6 +199,63 @@ function createServer() {
}
)
server.registerResource(
'artmcp-languages',
'resource://artmcp/languages',
{
title: 'ArtMCP Languages',
description: 'Get Languages spoken by Arthur Danjou with proficiency levels'
},
async (uri) => {
const result = await $fetch('/api/languages')
return {
contents: [{
uri: uri.href,
mimeType: 'application/json',
text: JSON.stringify(result, null, 2)
}]
}
}
)
server.registerResource(
'artmcp-certifications',
'resource://artmcp/certifications',
{
title: 'ArtMCP Certifications',
description: 'Get Certifications and achievements of Arthur Danjou'
},
async (uri) => {
const result = await $fetch('/api/certifications')
return {
contents: [{
uri: uri.href,
mimeType: 'application/json',
text: JSON.stringify(result, null, 2)
}]
}
}
)
server.registerResource(
'artmcp-profile',
'resource://artmcp/profile',
{
title: 'ArtMCP Profile',
description: 'Get comprehensive profile information of Arthur Danjou including bio, location, availability, career goals, and work preferences'
},
async (uri) => {
const result = await $fetch('/api/profile')
return {
contents: [{
uri: uri.href,
mimeType: 'application/json',
text: JSON.stringify(result, null, 2)
}]
}
}
)
// Tools
server.registerTool(
'get_resume_link',
@@ -420,6 +477,63 @@ function createServer() {
}
)
server.registerPrompt(
'artmcp-languages',
{
title: 'Get Languages of Arthur Danjou',
description: 'Get Languages spoken by Arthur Danjou with proficiency levels'
},
async () => {
return {
messages: [{
role: 'user',
content: {
type: 'text',
text: `What languages does Arthur Danjou speak and at what proficiency level?`
}
}]
}
}
)
server.registerPrompt(
'artmcp-certifications',
{
title: 'Get Certifications of Arthur Danjou',
description: 'Get Certifications and achievements of Arthur Danjou'
},
async () => {
return {
messages: [{
role: 'user',
content: {
type: 'text',
text: `What certifications and professional achievements does Arthur Danjou have?`
}
}]
}
}
)
server.registerPrompt(
'artmcp-profile',
{
title: 'Get Profile Information of Arthur Danjou',
description: 'Get comprehensive profile information including bio, location, availability, and career goals'
},
async () => {
return {
messages: [{
role: 'user',
content: {
type: 'text',
text: `Provide me comprehensive profile information about Arthur Danjou including his bio, location, availability, career goals, and work preferences.`
}
}]
}
}
)
return server
}