careervivid 1.12.17 → 1.12.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/tools/portfolio.d.ts +7 -0
- package/dist/agent/tools/portfolio.d.ts.map +1 -0
- package/dist/agent/tools/portfolio.js +186 -0
- package/dist/api.d.ts +8 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +3 -0
- package/dist/commands/agent/toolRegistry.d.ts.map +1 -1
- package/dist/commands/agent/toolRegistry.js +15 -5
- package/package.json +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Tool } from "../Tool.js";
|
|
2
|
+
export declare const ListPortfoliosTool: Tool;
|
|
3
|
+
export declare const InitPortfolioTool: Tool;
|
|
4
|
+
export declare const UpdatePortfolioHeroTool: Tool;
|
|
5
|
+
export declare const UpdatePortfolioProjectsTool: Tool;
|
|
6
|
+
export declare const ALL_PORTFOLIO_TOOLS: Tool[];
|
|
7
|
+
//# sourceMappingURL=portfolio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/portfolio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAclC,eAAO,MAAM,kBAAkB,EAAE,IA4BhC,CAAC;AAMF,eAAO,MAAM,iBAAiB,EAAE,IAkC/B,CAAC;AAMF,eAAO,MAAM,uBAAuB,EAAE,IA+DrC,CAAC;AAMF,eAAO,MAAM,2BAA2B,EAAE,IAiEzC,CAAC;AAMF,eAAO,MAAM,mBAAmB,EAAE,IAAI,EAKrC,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { Type } from "@google/genai";
|
|
2
|
+
import { initPortfolio, portfolioList, updatePortfolioHero, updatePortfolioProjects, isApiError, } from "../../api.js";
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Tool: list_portfolios
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
export const ListPortfoliosTool = {
|
|
7
|
+
name: "list_portfolios",
|
|
8
|
+
description: `List all portfolios the user has on CareerVivid.
|
|
9
|
+
Use this first when the user asks to update, view, or manage their portfolio.
|
|
10
|
+
Returns portfolio IDs and live URLs so the agent can call update_portfolio_hero
|
|
11
|
+
or update_portfolio_projects with the correct portfolioId.`,
|
|
12
|
+
parameters: {
|
|
13
|
+
type: Type.OBJECT,
|
|
14
|
+
properties: {},
|
|
15
|
+
},
|
|
16
|
+
execute: async () => {
|
|
17
|
+
const result = await portfolioList();
|
|
18
|
+
if (isApiError(result)) {
|
|
19
|
+
return `❌ Could not fetch portfolios: ${result.message}`;
|
|
20
|
+
}
|
|
21
|
+
const list = result.portfolios ?? [];
|
|
22
|
+
if (list.length === 0) {
|
|
23
|
+
return `You have no portfolios yet. Use init_portfolio to create one.`;
|
|
24
|
+
}
|
|
25
|
+
const lines = list.map((p, i) => `${i + 1}. "${p.title}" [ID: ${p.id}]\n 🔗 ${p.url}\n Updated: ${p.updatedAt ? new Date(p.updatedAt).toLocaleDateString() : "Unknown"}`);
|
|
26
|
+
return `You have ${list.length} portfolio(s) on CareerVivid:\n\n${lines.join("\n\n")}`;
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Tool: init_portfolio
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
export const InitPortfolioTool = {
|
|
33
|
+
name: "init_portfolio",
|
|
34
|
+
description: `Create a new portfolio on CareerVivid.
|
|
35
|
+
Use this when the user asks to create a new portfolio or has none yet.
|
|
36
|
+
Returns the portfolioId and a live URL where the portfolio can be viewed.`,
|
|
37
|
+
parameters: {
|
|
38
|
+
type: Type.OBJECT,
|
|
39
|
+
properties: {
|
|
40
|
+
title: {
|
|
41
|
+
type: Type.STRING,
|
|
42
|
+
description: "Title for the portfolio, e.g. 'Jiawen Zhu — Full-Stack Engineer'",
|
|
43
|
+
},
|
|
44
|
+
templateId: {
|
|
45
|
+
type: Type.STRING,
|
|
46
|
+
description: "Optional template ID (e.g. 'software_engineer', 'minimal').",
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
required: ["title"],
|
|
50
|
+
},
|
|
51
|
+
execute: async (args) => {
|
|
52
|
+
const result = await initPortfolio(args.title, args.templateId);
|
|
53
|
+
if (isApiError(result)) {
|
|
54
|
+
return `❌ Failed to create portfolio: ${result.message}`;
|
|
55
|
+
}
|
|
56
|
+
return [
|
|
57
|
+
`✅ Portfolio created: "${args.title}"`,
|
|
58
|
+
`Portfolio ID: ${result.portfolioId}`,
|
|
59
|
+
`🔗 Live URL: ${result.url}`,
|
|
60
|
+
``,
|
|
61
|
+
`Next: call update_portfolio_hero or update_portfolio_projects with portfolioId="${result.portfolioId}".`,
|
|
62
|
+
].join("\n");
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
// Tool: update_portfolio_hero
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
export const UpdatePortfolioHeroTool = {
|
|
69
|
+
name: "update_portfolio_hero",
|
|
70
|
+
description: `Update the hero / header section of the user's live CareerVivid portfolio.
|
|
71
|
+
Call list_portfolios first to get the correct portfolioId.
|
|
72
|
+
Use this to set the headline, bio, avatar, social links, and CTA button.`,
|
|
73
|
+
parameters: {
|
|
74
|
+
type: Type.OBJECT,
|
|
75
|
+
properties: {
|
|
76
|
+
portfolioId: {
|
|
77
|
+
type: Type.STRING,
|
|
78
|
+
description: "ID of the portfolio to update. Get from list_portfolios.",
|
|
79
|
+
},
|
|
80
|
+
headline: { type: Type.STRING, description: "Main hero headline (job title / positioning)." },
|
|
81
|
+
subheadline: { type: Type.STRING, description: "Subtitle shown below the headline." },
|
|
82
|
+
bio: { type: Type.STRING, description: "Short bio / about text (2-4 sentences)." },
|
|
83
|
+
avatarUrl: { type: Type.STRING, description: "URL to the user's profile photo." },
|
|
84
|
+
ctaLabel: { type: Type.STRING, description: "Primary CTA button text." },
|
|
85
|
+
ctaUrl: { type: Type.STRING, description: "Primary CTA button URL." },
|
|
86
|
+
linkedin: { type: Type.STRING, description: "LinkedIn profile URL." },
|
|
87
|
+
github: { type: Type.STRING, description: "GitHub profile URL." },
|
|
88
|
+
website: { type: Type.STRING, description: "Personal website URL." },
|
|
89
|
+
},
|
|
90
|
+
required: ["portfolioId"],
|
|
91
|
+
},
|
|
92
|
+
execute: async (args) => {
|
|
93
|
+
const { portfolioId, ...rest } = args;
|
|
94
|
+
const hero = {};
|
|
95
|
+
if (rest.headline)
|
|
96
|
+
hero.headline = rest.headline;
|
|
97
|
+
if (rest.subheadline)
|
|
98
|
+
hero.subheadline = rest.subheadline;
|
|
99
|
+
if (rest.bio)
|
|
100
|
+
hero.bio = rest.bio;
|
|
101
|
+
if (rest.avatarUrl)
|
|
102
|
+
hero.avatarUrl = rest.avatarUrl;
|
|
103
|
+
if (rest.ctaLabel)
|
|
104
|
+
hero.ctaLabel = rest.ctaLabel;
|
|
105
|
+
if (rest.ctaUrl)
|
|
106
|
+
hero.ctaUrl = rest.ctaUrl;
|
|
107
|
+
const socialLinks = {};
|
|
108
|
+
if (rest.linkedin)
|
|
109
|
+
socialLinks.linkedin = rest.linkedin;
|
|
110
|
+
if (rest.github)
|
|
111
|
+
socialLinks.github = rest.github;
|
|
112
|
+
if (rest.website)
|
|
113
|
+
socialLinks.website = rest.website;
|
|
114
|
+
if (Object.keys(socialLinks).length > 0)
|
|
115
|
+
hero.socialLinks = socialLinks;
|
|
116
|
+
const result = await updatePortfolioHero(portfolioId, hero);
|
|
117
|
+
if (isApiError(result)) {
|
|
118
|
+
return `❌ Failed to update portfolio hero: ${result.message}`;
|
|
119
|
+
}
|
|
120
|
+
return [
|
|
121
|
+
`✅ Portfolio hero updated!`,
|
|
122
|
+
`Changed: ${Object.keys(hero).join(", ")}`,
|
|
123
|
+
`🔗 View live: https://careervivid.app/portfolio/${portfolioId}`,
|
|
124
|
+
].join("\n");
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
// ---------------------------------------------------------------------------
|
|
128
|
+
// Tool: update_portfolio_projects
|
|
129
|
+
// ---------------------------------------------------------------------------
|
|
130
|
+
export const UpdatePortfolioProjectsTool = {
|
|
131
|
+
name: "update_portfolio_projects",
|
|
132
|
+
description: `Update the projects / experience section of the user's live CareerVivid portfolio.
|
|
133
|
+
Call list_portfolios first to get the correct portfolioId.
|
|
134
|
+
Each project needs at minimum a title and description.`,
|
|
135
|
+
parameters: {
|
|
136
|
+
type: Type.OBJECT,
|
|
137
|
+
properties: {
|
|
138
|
+
portfolioId: {
|
|
139
|
+
type: Type.STRING,
|
|
140
|
+
description: "ID of the portfolio to update. Get from list_portfolios.",
|
|
141
|
+
},
|
|
142
|
+
projects: {
|
|
143
|
+
type: Type.ARRAY,
|
|
144
|
+
description: "Array of project/experience objects.",
|
|
145
|
+
items: {
|
|
146
|
+
type: Type.OBJECT,
|
|
147
|
+
properties: {
|
|
148
|
+
title: { type: Type.STRING },
|
|
149
|
+
description: { type: Type.STRING },
|
|
150
|
+
company: { type: Type.STRING },
|
|
151
|
+
url: { type: Type.STRING },
|
|
152
|
+
startDate: { type: Type.STRING },
|
|
153
|
+
endDate: { type: Type.STRING },
|
|
154
|
+
tags: { type: Type.ARRAY, items: { type: Type.STRING } },
|
|
155
|
+
},
|
|
156
|
+
required: ["title", "description"],
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
techStack: {
|
|
160
|
+
type: Type.ARRAY,
|
|
161
|
+
description: "Global skills/tech stack badges for the portfolio.",
|
|
162
|
+
items: { type: Type.STRING },
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
required: ["portfolioId", "projects"],
|
|
166
|
+
},
|
|
167
|
+
execute: async (args) => {
|
|
168
|
+
const result = await updatePortfolioProjects(args.portfolioId, args.projects, args.techStack);
|
|
169
|
+
if (isApiError(result)) {
|
|
170
|
+
return `❌ Failed to update portfolio projects: ${result.message}`;
|
|
171
|
+
}
|
|
172
|
+
return [
|
|
173
|
+
`✅ Portfolio updated with ${args.projects.length} project(s)!`,
|
|
174
|
+
`🔗 View live: https://careervivid.app/portfolio/${args.portfolioId}`,
|
|
175
|
+
].join("\n");
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
// ---------------------------------------------------------------------------
|
|
179
|
+
// All portfolio tools bundle
|
|
180
|
+
// ---------------------------------------------------------------------------
|
|
181
|
+
export const ALL_PORTFOLIO_TOOLS = [
|
|
182
|
+
ListPortfoliosTool,
|
|
183
|
+
InitPortfolioTool,
|
|
184
|
+
UpdatePortfolioHeroTool,
|
|
185
|
+
UpdatePortfolioProjectsTool,
|
|
186
|
+
];
|
package/dist/api.d.ts
CHANGED
|
@@ -60,6 +60,14 @@ export declare function initPortfolio(title?: string, templateId?: string): Prom
|
|
|
60
60
|
portfolioId: string;
|
|
61
61
|
url: string;
|
|
62
62
|
} | ApiError>;
|
|
63
|
+
export declare function portfolioList(): Promise<{
|
|
64
|
+
portfolios: {
|
|
65
|
+
id: string;
|
|
66
|
+
title: string;
|
|
67
|
+
url: string;
|
|
68
|
+
updatedAt: string | null;
|
|
69
|
+
}[];
|
|
70
|
+
} | ApiError>;
|
|
63
71
|
export declare function updatePortfolioProjects(portfolioId: string, projects: any[], techStack?: string[]): Promise<{
|
|
64
72
|
success: boolean;
|
|
65
73
|
message: string;
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/api.js
CHANGED
|
@@ -139,6 +139,9 @@ export async function pingAuth() {
|
|
|
139
139
|
export async function initPortfolio(title, templateId) {
|
|
140
140
|
return apiRequest("POST", "portfolio/init", { title, templateId });
|
|
141
141
|
}
|
|
142
|
+
export async function portfolioList() {
|
|
143
|
+
return apiRequest("GET", "portfolio/list");
|
|
144
|
+
}
|
|
142
145
|
export async function updatePortfolioProjects(portfolioId, projects, techStack) {
|
|
143
146
|
return apiRequest("PATCH", "portfolio/projects", { portfolioId, projects, techStack });
|
|
144
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolRegistry.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/toolRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"toolRegistry.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/toolRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAsO3C,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,EAAE,CAqChG"}
|
|
@@ -4,6 +4,7 @@ import { ALL_JOB_TOOLS } from "../../agent/tools/jobs.js";
|
|
|
4
4
|
import { ALL_BROWSER_TOOLS } from "../../agent/tools/browser.js";
|
|
5
5
|
import { ALL_LOCAL_TRACKER_TOOLS } from "../../agent/tools/local-tracker.js";
|
|
6
6
|
import { ALL_URL_VERIFIER_TOOLS } from "../../agent/tools/urlVerifier.js";
|
|
7
|
+
import { ALL_PORTFOLIO_TOOLS } from "../../agent/tools/portfolio.js";
|
|
7
8
|
import { publishSingleFile } from "../publish.js";
|
|
8
9
|
// ── Publish tools ─────────────────────────────────────────────────────────────
|
|
9
10
|
const PublishArticleTool = {
|
|
@@ -212,8 +213,9 @@ IMPORTANT: Always call get_resume first to load the current content, then call t
|
|
|
212
213
|
// ── All resume tools for cv agent --resume ────────────────────────────────────
|
|
213
214
|
const RESUME_TOOLS = ALL_JOB_TOOLS.filter((t) => ["get_resume", "list_resumes", "tailor_resume", "delete_resume"].includes(t.name));
|
|
214
215
|
export function getTools(options) {
|
|
215
|
-
const tools = [...ALL_CODING_TOOLS, PublishArticleTool, GenerateDiagramTool];
|
|
216
216
|
if (options.jobs) {
|
|
217
|
+
// Jobs mode: all job tools + browser + tracker + url verifier + publish
|
|
218
|
+
const tools = [PublishArticleTool, GenerateDiagramTool];
|
|
217
219
|
for (const t of ALL_JOB_TOOLS) {
|
|
218
220
|
if (!tools.find((x) => x.name === t.name))
|
|
219
221
|
tools.push(t);
|
|
@@ -230,17 +232,25 @@ export function getTools(options) {
|
|
|
230
232
|
if (!tools.find((x) => x.name === t.name))
|
|
231
233
|
tools.push(t);
|
|
232
234
|
}
|
|
235
|
+
return tools;
|
|
233
236
|
}
|
|
234
|
-
|
|
235
|
-
//
|
|
237
|
+
if (options.resume) {
|
|
238
|
+
// Resume mode: resume CRUD + portfolio API tools
|
|
239
|
+
// NOTE: NO coding/file-system tools — prevents agent editing local source files.
|
|
240
|
+
const tools = [PublishArticleTool, GenerateDiagramTool];
|
|
236
241
|
for (const t of RESUME_TOOLS) {
|
|
237
242
|
if (!tools.find((x) => x.name === t.name))
|
|
238
243
|
tools.push(t);
|
|
239
244
|
}
|
|
240
|
-
// Add the surgical field-update tool
|
|
241
245
|
if (!tools.find((x) => x.name === "set_resume_fields")) {
|
|
242
246
|
tools.push(SetResumeFieldsTool);
|
|
243
247
|
}
|
|
248
|
+
for (const t of ALL_PORTFOLIO_TOOLS) {
|
|
249
|
+
if (!tools.find((x) => x.name === t.name))
|
|
250
|
+
tools.push(t);
|
|
251
|
+
}
|
|
252
|
+
return tools;
|
|
244
253
|
}
|
|
245
|
-
|
|
254
|
+
// Default coding mode: file system + publish tools
|
|
255
|
+
return [...ALL_CODING_TOOLS, PublishArticleTool, GenerateDiagramTool];
|
|
246
256
|
}
|