improvement(ashby): validate ashby integration and update skill files (#3381)

This commit is contained in:
Waleed
2026-02-28 11:16:40 -08:00
committed by GitHub
parent b42f80e8ab
commit 0195a4cd18
6 changed files with 37 additions and 20 deletions

View File

@@ -318,4 +318,4 @@ After creating all tools, you MUST validate every tool before finishing:
3. **Verify consistency** across tools:
- Shared types in `types.ts` match all tools that use them
- Tool IDs in the barrel export match the tool file definitions
- Error handling is consistent (logger imports, error checks)
- Error handling is consistent (error checks, meaningful messages)

View File

@@ -79,7 +79,6 @@ For **every** tool file, check:
- [ ] All nullable fields use `?? null`
- [ ] All optional arrays use `?? []`
- [ ] Error cases are handled: checks for missing/empty data and returns meaningful error
- [ ] `createLogger` is imported from `@sim/logger` and used for error logging
- [ ] Does NOT do raw JSON dumps — extracts meaningful, individual fields
### Outputs
@@ -216,8 +215,6 @@ If any tools support pagination:
## Step 7: Validate Error Handling
- [ ] Every tool imports `createLogger` from `@sim/logger`
- [ ] Every tool creates a logger: `const logger = createLogger('{ToolName}')`
- [ ] `transformResponse` checks for error conditions before accessing data
- [ ] Error responses include meaningful messages (not just generic "failed")
- [ ] HTTP error status codes are handled (check `response.ok` or status codes)
@@ -278,7 +275,7 @@ After fixing, confirm:
- [ ] Validated block outputs match what tools return, with typed JSON where possible
- [ ] Validated OAuth scopes alignment across auth.ts, oauth.ts, block, and modal (if OAuth)
- [ ] Validated pagination consistency across tools and block
- [ ] Validated error handling (logger, error checks, meaningful messages)
- [ ] Validated error handling (error checks, meaningful messages)
- [ ] Validated registry entries (tools and block, alphabetical, correct imports)
- [ ] Reported all issues grouped by severity
- [ ] Fixed all critical and warning issues

View File

@@ -444,11 +444,29 @@ Output only the ISO 8601 timestamp string, nothing else.`,
},
outputs: {
candidates: { type: 'json', description: 'List of candidates' },
jobs: { type: 'json', description: 'List of jobs' },
applications: { type: 'json', description: 'List of applications' },
notes: { type: 'json', description: 'List of notes' },
offers: { type: 'json', description: 'List of offers' },
candidates: {
type: 'json',
description:
'List of candidates (id, name, primaryEmailAddress, primaryPhoneNumber, createdAt, updatedAt)',
},
jobs: {
type: 'json',
description:
'List of jobs (id, title, status, employmentType, departmentId, locationId, createdAt, updatedAt)',
},
applications: {
type: 'json',
description:
'List of applications (id, status, candidate, job, currentInterviewStage, source, createdAt, updatedAt)',
},
notes: {
type: 'json',
description: 'List of notes (id, content, author, createdAt)',
},
offers: {
type: 'json',
description: 'List of offers (id, status, candidate, job, createdAt, updatedAt)',
},
id: { type: 'string', description: 'Resource UUID' },
name: { type: 'string', description: 'Resource name' },
title: { type: 'string', description: 'Job title' },

View File

@@ -198,8 +198,8 @@ export const registry: Record<string, BlockConfig> = {
apify: ApifyBlock,
apollo: ApolloBlock,
arxiv: ArxivBlock,
ashby: AshbyBlock,
asana: AsanaBlock,
ashby: AshbyBlock,
attio: AttioBlock,
browser_use: BrowserUseBlock,
calcom: CalComBlock,

View File

@@ -25,3 +25,5 @@ export const ashbyListNotesTool = listNotesTool
export const ashbyListOffersTool = listOffersTool
export const ashbySearchCandidatesTool = searchCandidatesTool
export const ashbyUpdateCandidateTool = updateCandidateTool
export * from './types'

View File

@@ -2248,6 +2248,15 @@ export const tools: Record<string, ToolConfig> = {
a2a_send_message: a2aSendMessageTool,
a2a_set_push_notification: a2aSetPushNotificationTool,
airweave_search: airweaveSearchTool,
arxiv_get_author_papers: arxivGetAuthorPapersTool,
arxiv_get_paper: arxivGetPaperTool,
arxiv_search: arxivSearchTool,
asana_add_comment: asanaAddCommentTool,
asana_create_task: asanaCreateTaskTool,
asana_get_projects: asanaGetProjectsTool,
asana_get_task: asanaGetTaskTool,
asana_search_tasks: asanaSearchTasksTool,
asana_update_task: asanaUpdateTaskTool,
ashby_create_application: ashbyCreateApplicationTool,
ashby_create_candidate: ashbyCreateCandidateTool,
ashby_create_note: ashbyCreateNoteTool,
@@ -2261,15 +2270,6 @@ export const tools: Record<string, ToolConfig> = {
ashby_list_offers: ashbyListOffersTool,
ashby_search_candidates: ashbySearchCandidatesTool,
ashby_update_candidate: ashbyUpdateCandidateTool,
arxiv_search: arxivSearchTool,
arxiv_get_paper: arxivGetPaperTool,
arxiv_get_author_papers: arxivGetAuthorPapersTool,
asana_get_task: asanaGetTaskTool,
asana_create_task: asanaCreateTaskTool,
asana_update_task: asanaUpdateTaskTool,
asana_get_projects: asanaGetProjectsTool,
asana_search_tasks: asanaSearchTasksTool,
asana_add_comment: asanaAddCommentTool,
browser_use_run_task: browserUseRunTaskTool,
openai_embeddings: openAIEmbeddingsTool,
http_request: httpRequestTool,