From c2434bc67e5f4e17b6969ffe52c636219296fc11 Mon Sep 17 00:00:00 2001 From: Mikkel Georgsen Date: Tue, 31 Mar 2026 13:57:50 +0200 Subject: [PATCH] =?UTF-8?q?[nexus]=20fix(06):=20resolve=20verifier=20gaps?= =?UTF-8?q?=20=E2=80=94=20portability=20fallback,=20export=20readme,=20CLI?= =?UTF-8?q?=20company=20descriptions,=20server=20error=20msg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cli/src/commands/client/company.ts | 20 ++++++++++---------- server/src/index.ts | 2 +- server/src/services/company-export-readme.ts | 8 ++++---- server/src/services/company-portability.ts | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cli/src/commands/client/company.ts b/cli/src/commands/client/company.ts index 51534e34..9f74785d 100644 --- a/cli/src/commands/client/company.ts +++ b/cli/src/commands/client/company.ts @@ -83,7 +83,7 @@ const IMPORT_INCLUDE_OPTIONS: Array<{ { value: "projects", label: "Projects", hint: "projects and workspace metadata" }, { value: "issues", label: "Tasks", hint: "tasks and recurring routines" }, { value: "agents", label: "Agents", hint: "agent records and org structure" }, - { value: "skills", label: "Skills", hint: "company skill packages and references" }, + { value: "skills", label: "Skills", hint: `${VOCAB.company.toLowerCase()} skill packages and references` }, // [nexus] ]; const IMPORT_PREVIEW_SAMPLE_LIMIT = 6; @@ -1046,7 +1046,7 @@ export function registerCompanyCommands(program: Command): void { addCommonClientOptions( company .command("list") - .description("List companies") + .description(`List ${VOCAB.companies.toLowerCase()}`) // [nexus] .action(async (opts: CompanyCommandOptions) => { try { const ctx = resolveCommandContext(opts); @@ -1081,8 +1081,8 @@ export function registerCompanyCommands(program: Command): void { addCommonClientOptions( company .command("get") - .description("Get one company") - .argument("", "Company ID") + .description(`Get one ${VOCAB.company.toLowerCase()}`) // [nexus] + .argument("", `${VOCAB.company} ID`) // [nexus] .action(async (companyId: string, opts: CompanyCommandOptions) => { try { const ctx = resolveCommandContext(opts); @@ -1097,8 +1097,8 @@ export function registerCompanyCommands(program: Command): void { addCommonClientOptions( company .command("export") - .description("Export a company into a portable markdown package") - .argument("", "Company ID") + .description(`Export a ${VOCAB.company.toLowerCase()} into a portable markdown package`) // [nexus] + .argument("", `${VOCAB.company} ID`) // [nexus] .requiredOption("--out ", "Output directory") .option("--include ", "Comma-separated include set: company,agents,projects,issues,tasks,skills", "company,agents") .option("--skills ", "Comma-separated skill slugs/keys to export") @@ -1373,8 +1373,8 @@ export function registerCompanyCommands(program: Command): void { addCommonClientOptions( company .command("delete") - .description("Delete a company by ID or shortname/prefix (destructive)") - .argument("", "Company ID or issue prefix (for example PAP)") + .description(`Delete a ${VOCAB.company.toLowerCase()} by ID or shortname/prefix (destructive)`) // [nexus] + .argument("", `${VOCAB.company} ID or issue prefix (for example PAP)`) // [nexus] .option( "--by ", "Selector mode: auto | id | prefix", @@ -1383,7 +1383,7 @@ export function registerCompanyCommands(program: Command): void { .option("--yes", "Required safety flag to confirm destructive action", false) .option( "--confirm ", - "Required safety value: target company ID or shortname/prefix", + `Required safety value: target ${VOCAB.company.toLowerCase()} ID or shortname/prefix`, // [nexus] ) .action(async (selector: string, opts: CompanyDeleteOptions) => { try { @@ -1425,7 +1425,7 @@ export function registerCompanyCommands(program: Command): void { } catch (error) { if (error instanceof ApiRequestError && error.status === 403 && error.message.includes("Board access required")) { throw new Error( - "Board access is required to resolve companies across the instance. Use a company ID/prefix for your current company, or run with board authentication.", + `${VOCAB.board} access is required to resolve ${VOCAB.companies.toLowerCase()} across the instance. Use a ${VOCAB.company.toLowerCase()} ID/prefix for your current ${VOCAB.company.toLowerCase()}, or run with ${VOCAB.board.toLowerCase()} authentication.`, // [nexus] ); } throw error; diff --git a/server/src/index.ts b/server/src/index.ts index e59d414d..869961d1 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -757,7 +757,7 @@ function isMainModule(metaUrl: string): boolean { if (isMainModule(import.meta.url)) { void startServer().catch((err) => { - logger.error({ err }, "Paperclip server failed to start"); + logger.error({ err }, "Nexus server failed to start"); // [nexus] process.exit(1); }); } diff --git a/server/src/services/company-export-readme.ts b/server/src/services/company-export-readme.ts index 52df8500..3afdfba0 100644 --- a/server/src/services/company-export-readme.ts +++ b/server/src/services/company-export-readme.ts @@ -96,7 +96,7 @@ export function generateReadme( // What's Inside table lines.push("## What's Inside"); lines.push(""); - lines.push("> This is an [Agent Company](https://agentcompanies.io) package from [Paperclip](https://paperclip.ing)"); + lines.push("> This is an Agent Workspace package from Nexus"); // [nexus] lines.push(""); const counts: Array<[string, number]> = []; @@ -157,15 +157,15 @@ export function generateReadme( lines.push("## Getting Started"); lines.push(""); lines.push("```bash"); - lines.push("pnpm paperclipai company import this-github-url-or-folder"); + lines.push("pnpm paperclipai company import this-github-url-or-folder"); // [nexus] CLI command unchanged (code-zone) lines.push("```"); lines.push(""); - lines.push("See [Paperclip](https://paperclip.ing) for more information."); + lines.push("See the Nexus documentation for more information."); // [nexus] lines.push(""); // Footer lines.push("---"); - lines.push(`Exported from [Paperclip](https://paperclip.ing) on ${new Date().toISOString().split("T")[0]}`); + lines.push(`Exported from Nexus on ${new Date().toISOString().split("T")[0]}`); // [nexus] lines.push(""); return lines.join("\n"); diff --git a/server/src/services/company-portability.ts b/server/src/services/company-portability.ts index 433c55a3..97121d20 100644 --- a/server/src/services/company-portability.ts +++ b/server/src/services/company-portability.ts @@ -3726,7 +3726,7 @@ export function companyPortabilityService(db: Db, storage?: StorageService) { asString(input.target.newCompanyName) ?? sourceManifest.company?.name ?? sourceManifest.source?.companyName ?? - "Imported Company"; + "Imported Workspace"; // [nexus] const created = await companies.create({ name: companyName, description: include.company ? (sourceManifest.company?.description ?? null) : null,