From 0ffa9faa9933b0c2880846e0d6a5e64669eeac5b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 19:09:04 +0000 Subject: [PATCH 1/5] ci: pin GitHub Actions to commit SHAs Pin all GitHub Actions referenced in generated workflows (both first-party `actions/*` and third-party) to immutable commit SHAs. Updating pinned actions is now a deliberate codegen-side bump rather than implicit on every workflow run. --- .github/workflows/ci.yml | 14 +++++++------- .github/workflows/publish-npm.yml | 4 ++-- .github/workflows/release-doctor.yml | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50450706..1310ed3b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,10 +21,10 @@ jobs: runs-on: ${{ github.repository == 'stainless-sdks/finch-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Node - uses: actions/setup-node@v4 + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: '22' @@ -43,10 +43,10 @@ jobs: contents: read id-token: write steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Node - uses: actions/setup-node@v4 + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: '22' @@ -61,7 +61,7 @@ jobs: github.repository == 'stainless-sdks/finch-typescript' && !startsWith(github.ref, 'refs/heads/stl/') id: github-oidc - uses: actions/github-script@v8 + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: core.setOutput('github_token', await core.getIDToken()); @@ -91,10 +91,10 @@ jobs: runs-on: ${{ github.repository == 'stainless-sdks/finch-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: github.event_name == 'push' || github.event.pull_request.head.repo.fork steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Node - uses: actions/setup-node@v4 + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: '22' diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index 851d3f30..c698542e 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -21,10 +21,10 @@ jobs: id-token: write steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Node - uses: actions/setup-node@v3 + uses: actions/setup-node@3235b876344d2a9aa001b8d1453c930bba69e610 # v3.9.1 with: node-version: '20' diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml index e04caca4..db913f22 100644 --- a/.github/workflows/release-doctor.yml +++ b/.github/workflows/release-doctor.yml @@ -12,7 +12,7 @@ jobs: if: github.repository == 'Finch-API/finch-api-node' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next') steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check release environment run: | From c3c7ce088d83b5ec87c73576f4db788b5a5365a0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 21:09:41 +0000 Subject: [PATCH 2/5] feat(api): api update --- .stats.yml | 4 ++-- src/resources/hris/employments.ts | 14 +++++++------- src/resources/hris/individuals.ts | 10 +++++----- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0681ca46..1b8bb5a8 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 46 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch/finch-c8a0d5eca390ea3ab6e8b5b7d9b46d9a22e34d81aeab444c8ce1b5a94eba0028.yml -openapi_spec_hash: e261a3289242d3ad52542f1491a903ee +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch/finch-7c36f2c20630c8f8a466d082f84502c6f0f7c46b308b476eb6e9a4d859251a02.yml +openapi_spec_hash: a4ca94b3405fc83934c949068943e16c config_hash: 429708b67ee9e80003db82611677296c diff --git a/src/resources/hris/employments.ts b/src/resources/hris/employments.ts index 0cdda35f..ea330dd2 100644 --- a/src/resources/hris/employments.ts +++ b/src/resources/hris/employments.ts @@ -36,10 +36,10 @@ export class Employments extends APIResource { export type EmploymentDataResponsesPage = ResponsesPage; -export type EmploymentData = EmploymentData.EmploymentData | EmploymentData.BatchError; +export type EmploymentData = EmploymentData.EmploymentDataResponseBody | EmploymentData.BatchError; export namespace EmploymentData { - export interface EmploymentData { + export interface EmploymentDataResponseBody { /** * A stable Finch `id` (UUID v4) for an individual in the company. */ @@ -53,12 +53,12 @@ export namespace EmploymentData { /** * The department object. */ - department: EmploymentData.Department | null; + department: EmploymentDataResponseBody.Department | null; /** * The employment object. */ - employment: EmploymentData.Employment | null; + employment: EmploymentDataResponseBody.Employment | null; /** * The detailed employment status of the individual. @@ -103,7 +103,7 @@ export namespace EmploymentData { /** * The manager object representing the manager of the individual within the org. */ - manager: EmploymentData.Manager | null; + manager: EmploymentDataResponseBody.Manager | null; /** * The legal middle name of the individual. @@ -122,7 +122,7 @@ export namespace EmploymentData { * employer in the system. Custom fields are not currently supported for assisted * connections. */ - custom_fields?: Array | null; + custom_fields?: Array | null; /** * The employee's income as reported by the provider. This may not always be @@ -147,7 +147,7 @@ export namespace EmploymentData { work_id?: string | null; } - export namespace EmploymentData { + export namespace EmploymentDataResponseBody { /** * The department object. */ diff --git a/src/resources/hris/individuals.ts b/src/resources/hris/individuals.ts index cc2f4163..566d7bd5 100644 --- a/src/resources/hris/individuals.ts +++ b/src/resources/hris/individuals.ts @@ -34,10 +34,10 @@ export class Individuals extends APIResource { export type IndividualResponsesPage = ResponsesPage; -export type Individual = Individual.Individual | Individual.BatchError; +export type Individual = Individual.IndividualResponseBody | Individual.BatchError; export namespace Individual { - export interface Individual { + export interface IndividualResponseBody { /** * A stable Finch `id` (UUID v4) for an individual in the company. */ @@ -79,7 +79,7 @@ export namespace Individual { */ middle_name: string | null; - phone_numbers: Array | null; + phone_numbers: Array | null; /** * The preferred name of the individual. @@ -88,7 +88,7 @@ export namespace Individual { residence: HRISAPI.Location | null; - emails?: Array | null; + emails?: Array | null; /** * Social Security Number of the individual in **encrypted** format. This field is @@ -106,7 +106,7 @@ export namespace Individual { ssn?: string | null; } - export namespace Individual { + export namespace IndividualResponseBody { export interface PhoneNumber { data: string | null; From a91d7f68d670d794bf014350c0f2f632332e874f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 22:04:33 +0000 Subject: [PATCH 3/5] feat(api): manual updates removal of a transform that is no longer needed --- .stats.yml | 4 ++-- packages/mcp-server/src/local-docs-search.ts | 16 ++++++++-------- src/resources/sandbox/directory.ts | 2 +- src/resources/sandbox/employment.ts | 5 +++-- tests/api-resources/sandbox/directory.test.ts | 7 +------ tests/api-resources/sandbox/employment.test.ts | 9 ++------- 6 files changed, 17 insertions(+), 26 deletions(-) diff --git a/.stats.yml b/.stats.yml index 1b8bb5a8..415fc193 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 46 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch/finch-7c36f2c20630c8f8a466d082f84502c6f0f7c46b308b476eb6e9a4d859251a02.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch/finch-f17b0106d5004cf7339990dd9a9d60dc183ed38051a862db3855fb9d953fbbf8.yml openapi_spec_hash: a4ca94b3405fc83934c949068943e16c -config_hash: 429708b67ee9e80003db82611677296c +config_hash: ae896fec93ebd7c3bc1a6c4d6d9880ff diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts index e5c7dff1..20e4b7e3 100644 --- a/packages/mcp-server/src/local-docs-search.ts +++ b/packages/mcp-server/src/local-docs-search.ts @@ -1900,11 +1900,11 @@ const EMBEDDED_METHODS: MethodEntry[] = [ stainlessPath: '(resource) sandbox.directory > (method) create', qualified: 'client.sandbox.directory.create', params: [ - "body?: { class_code?: string; custom_fields?: { name?: string; value?: object; }[]; department?: { name?: string; }; dob?: string; emails?: { data?: string; type?: 'work' | 'personal'; }[]; employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }; employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; encrypted_ssn?: string; end_date?: string; ethnicity?: string; first_name?: string; flsa_status?: 'exempt' | 'non_exempt' | 'unknown'; gender?: 'female' | 'male' | 'other' | 'decline_to_specify'; income?: { amount: number; currency: string; effective_date: string; unit: string; }; income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]; is_active?: boolean; last_name?: string; latest_rehire_date?: string; location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; manager?: { id?: string; }; middle_name?: string; phone_numbers?: { data?: string; type?: 'work' | 'personal'; }[]; preferred_name?: string; residence?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; source_id?: string; ssn?: string; start_date?: string; title?: string; }[];", + "body?: { class_code?: string; custom_fields?: { name?: string; value?: string | object[] | object | number | boolean; }[]; department?: { name?: string; }; dob?: string; emails?: { data?: string; type?: 'work' | 'personal'; }[]; employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }; employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; encrypted_ssn?: string; end_date?: string; ethnicity?: string; first_name?: string; flsa_status?: 'exempt' | 'non_exempt' | 'unknown'; gender?: 'female' | 'male' | 'other' | 'decline_to_specify'; income?: { amount: number; currency: string; effective_date: string; unit: string; }; income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]; is_active?: boolean; last_name?: string; latest_rehire_date?: string; location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; manager?: { id?: string; }; middle_name?: string; phone_numbers?: { data?: string; type?: 'work' | 'personal'; }[]; preferred_name?: string; residence?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; source_id?: string; ssn?: string; start_date?: string; title?: string; }[];", ], response: 'object[]', markdown: - "## create\n\n`client.sandbox.directory.create(body?: { class_code?: string; custom_fields?: { name?: string; value?: object; }[]; department?: { name?: string; }; dob?: string; emails?: { data?: string; type?: 'work' | 'personal'; }[]; employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }; employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; encrypted_ssn?: string; end_date?: string; ethnicity?: string; first_name?: string; flsa_status?: 'exempt' | 'non_exempt' | 'unknown'; gender?: 'female' | 'male' | 'other' | 'decline_to_specify'; income?: object; income_history?: object[]; is_active?: boolean; last_name?: string; latest_rehire_date?: string; location?: object; manager?: { id?: string; }; middle_name?: string; phone_numbers?: { data?: string; type?: 'work' | 'personal'; }[]; preferred_name?: string; residence?: object; source_id?: string; ssn?: string; start_date?: string; title?: string; }[]): object[]`\n\n**post** `/sandbox/directory`\n\nAdd new individuals to a sandbox company\n\n### Parameters\n\n- `body?: { class_code?: string; custom_fields?: { name?: string; value?: object; }[]; department?: { name?: string; }; dob?: string; emails?: { data?: string; type?: 'work' | 'personal'; }[]; employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }; employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; encrypted_ssn?: string; end_date?: string; ethnicity?: string; first_name?: string; flsa_status?: 'exempt' | 'non_exempt' | 'unknown'; gender?: 'female' | 'male' | 'other' | 'decline_to_specify'; income?: { amount: number; currency: string; effective_date: string; unit: string; }; income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]; is_active?: boolean; last_name?: string; latest_rehire_date?: string; location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; manager?: { id?: string; }; middle_name?: string; phone_numbers?: { data?: string; type?: 'work' | 'personal'; }[]; preferred_name?: string; residence?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; source_id?: string; ssn?: string; start_date?: string; title?: string; }[]`\n Array of individuals to create. Takes all combined fields from `/individual` and `/employment` endpoints. All fields are optional.\n\n### Returns\n\n- `object[]`\n The individuals which were created\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\nconst directories = await client.sandbox.directory.create();\n\nconsole.log(directories);\n```", + "## create\n\n`client.sandbox.directory.create(body?: { class_code?: string; custom_fields?: { name?: string; value?: string | object[] | object | number | boolean; }[]; department?: { name?: string; }; dob?: string; emails?: { data?: string; type?: 'work' | 'personal'; }[]; employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }; employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; encrypted_ssn?: string; end_date?: string; ethnicity?: string; first_name?: string; flsa_status?: 'exempt' | 'non_exempt' | 'unknown'; gender?: 'female' | 'male' | 'other' | 'decline_to_specify'; income?: object; income_history?: object[]; is_active?: boolean; last_name?: string; latest_rehire_date?: string; location?: object; manager?: { id?: string; }; middle_name?: string; phone_numbers?: { data?: string; type?: 'work' | 'personal'; }[]; preferred_name?: string; residence?: object; source_id?: string; ssn?: string; start_date?: string; title?: string; }[]): object[]`\n\n**post** `/sandbox/directory`\n\nAdd new individuals to a sandbox company\n\n### Parameters\n\n- `body?: { class_code?: string; custom_fields?: { name?: string; value?: string | object[] | object | number | boolean; }[]; department?: { name?: string; }; dob?: string; emails?: { data?: string; type?: 'work' | 'personal'; }[]; employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }; employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; encrypted_ssn?: string; end_date?: string; ethnicity?: string; first_name?: string; flsa_status?: 'exempt' | 'non_exempt' | 'unknown'; gender?: 'female' | 'male' | 'other' | 'decline_to_specify'; income?: { amount: number; currency: string; effective_date: string; unit: string; }; income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]; is_active?: boolean; last_name?: string; latest_rehire_date?: string; location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; manager?: { id?: string; }; middle_name?: string; phone_numbers?: { data?: string; type?: 'work' | 'personal'; }[]; preferred_name?: string; residence?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; source_id?: string; ssn?: string; start_date?: string; title?: string; }[]`\n Array of individuals to create. Takes all combined fields from `/individual` and `/employment` endpoints. All fields are optional.\n\n### Returns\n\n- `object[]`\n The individuals which were created\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\nconst directories = await client.sandbox.directory.create();\n\nconsole.log(directories);\n```", perLanguage: { typescript: { method: 'client.sandbox.directory.create', @@ -2017,7 +2017,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [ params: [ 'individual_id: string;', 'class_code?: string;', - 'custom_fields?: { name?: string; value?: object; }[];', + 'custom_fields?: { name?: string; value?: string | object[] | object | number | boolean; }[];', 'department?: { name?: string; };', "employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; };", "employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated';", @@ -2037,19 +2037,19 @@ const EMBEDDED_METHODS: MethodEntry[] = [ 'title?: string;', ], response: - "{ id?: string; class_code?: string; custom_fields?: { name?: string; value?: object; }[]; department?: { name?: string; }; employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }; employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; end_date?: string; first_name?: string; flsa_status?: 'exempt' | 'non_exempt' | 'unknown'; income?: { amount: number; currency: string; effective_date: string; unit: string; }; income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]; is_active?: boolean; last_name?: string; latest_rehire_date?: string; location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; manager?: { id?: string; }; middle_name?: string; source_id?: string; start_date?: string; title?: string; }", + "{ id?: string; class_code?: string; custom_fields?: { name?: string; value?: string | object[] | object | number | boolean; }[]; department?: { name?: string; }; employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }; employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; end_date?: string; first_name?: string; flsa_status?: 'exempt' | 'non_exempt' | 'unknown'; income?: { amount: number; currency: string; effective_date: string; unit: string; }; income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]; is_active?: boolean; last_name?: string; latest_rehire_date?: string; location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; manager?: { id?: string; }; middle_name?: string; source_id?: string; start_date?: string; title?: string; }", markdown: - "## update\n\n`client.sandbox.employment.update(individual_id: string, class_code?: string, custom_fields?: { name?: string; value?: object; }[], department?: { name?: string; }, employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }, employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated', end_date?: string, first_name?: string, flsa_status?: 'exempt' | 'non_exempt' | 'unknown', income?: { amount: number; currency: string; effective_date: string; unit: string; }, income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[], is_active?: boolean, last_name?: string, latest_rehire_date?: string, location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }, manager?: { id?: string; }, middle_name?: string, source_id?: string, start_date?: string, title?: string): { id?: string; class_code?: string; custom_fields?: object[]; department?: object; employment?: object; employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; end_date?: string; first_name?: string; flsa_status?: 'exempt' | 'non_exempt' | 'unknown'; income?: income; income_history?: income[]; is_active?: boolean; last_name?: string; latest_rehire_date?: string; location?: location; manager?: object; middle_name?: string; source_id?: string; start_date?: string; title?: string; }`\n\n**put** `/sandbox/employment/{individual_id}`\n\nUpdate sandbox employment\n\n### Parameters\n\n- `individual_id: string`\n\n- `class_code?: string`\n Worker's compensation classification code for this employee\n\n- `custom_fields?: { name?: string; value?: object; }[]`\n Custom fields for the individual. These are fields which are defined by the employer in the system. Custom fields are not currently supported for assisted connections.\n\n- `department?: { name?: string; }`\n The department object.\n - `name?: string`\n The name of the department associated with the individual.\n\n- `employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }`\n The employment object.\n - `subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'`\n The secondary employment type of the individual. Options: `full_time`, `part_time`, `intern`, `temp`, `seasonal` and `individual_contractor`.\n - `type?: 'employee' | 'contractor'`\n The main employment type of the individual.\n\n- `employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'`\n The detailed employment status of the individual.\n\n- `end_date?: string`\n\n- `first_name?: string`\n The legal first name of the individual.\n\n- `flsa_status?: 'exempt' | 'non_exempt' | 'unknown'`\n The FLSA status of the individual. Available options: `exempt`, `non_exempt`, `unknown`.\n\n- `income?: { amount: number; currency: string; effective_date: string; unit: string; }`\n The employee's income as reported by the provider. This may not always be annualized income, but may be in units of bi-weekly, semi-monthly, daily, etc, depending on what information the provider returns.\n - `amount: number`\n The income amount in cents.\n - `currency: string`\n The currency code.\n - `effective_date: string`\n The date the income amount went into effect.\n - `unit: string`\n The income unit of payment. Options: `yearly`, `quarterly`, `monthly`, `semi_monthly`, `bi_weekly`, `weekly`, `daily`, `hourly`, and `fixed`.\n\n- `income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]`\n The array of income history.\n\n- `is_active?: boolean`\n `true` if the individual an an active employee or contractor at the company.\n\n- `last_name?: string`\n The legal last name of the individual.\n\n- `latest_rehire_date?: string`\n\n- `location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }`\n - `city: string`\n City, district, suburb, town, or village.\n - `country: string`\n The 2-letter ISO 3166 country code.\n - `line1: string`\n Street address or PO box.\n - `line2: string`\n Apartment, suite, unit, or building.\n - `postal_code: string`\n The postal code or zip code.\n - `state: string`\n The state code.\n - `name?: string`\n - `source_id?: string`\n\n- `manager?: { id?: string; }`\n The manager object representing the manager of the individual within the org.\n - `id?: string`\n A stable Finch `id` (UUID v4) for an individual in the company.\n\n- `middle_name?: string`\n The legal middle name of the individual.\n\n- `source_id?: string`\n The source system's unique employment identifier for this individual\n\n- `start_date?: string`\n\n- `title?: string`\n The current title of the individual.\n\n### Returns\n\n- `{ id?: string; class_code?: string; custom_fields?: { name?: string; value?: object; }[]; department?: { name?: string; }; employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }; employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; end_date?: string; first_name?: string; flsa_status?: 'exempt' | 'non_exempt' | 'unknown'; income?: { amount: number; currency: string; effective_date: string; unit: string; }; income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]; is_active?: boolean; last_name?: string; latest_rehire_date?: string; location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; manager?: { id?: string; }; middle_name?: string; source_id?: string; start_date?: string; title?: string; }`\n\n - `id?: string`\n - `class_code?: string`\n - `custom_fields?: { name?: string; value?: object; }[]`\n - `department?: { name?: string; }`\n - `employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }`\n - `employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'`\n - `end_date?: string`\n - `first_name?: string`\n - `flsa_status?: 'exempt' | 'non_exempt' | 'unknown'`\n - `income?: { amount: number; currency: string; effective_date: string; unit: string; }`\n - `income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]`\n - `is_active?: boolean`\n - `last_name?: string`\n - `latest_rehire_date?: string`\n - `location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }`\n - `manager?: { id?: string; }`\n - `middle_name?: string`\n - `source_id?: string`\n - `start_date?: string`\n - `title?: string`\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\nconst employment = await client.sandbox.employment.update('individual_id');\n\nconsole.log(employment);\n```", + "## update\n\n`client.sandbox.employment.update(individual_id: string, class_code?: string, custom_fields?: { name?: string; value?: string | object[] | object | number | boolean; }[], department?: { name?: string; }, employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }, employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated', end_date?: string, first_name?: string, flsa_status?: 'exempt' | 'non_exempt' | 'unknown', income?: { amount: number; currency: string; effective_date: string; unit: string; }, income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[], is_active?: boolean, last_name?: string, latest_rehire_date?: string, location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }, manager?: { id?: string; }, middle_name?: string, source_id?: string, start_date?: string, title?: string): { id?: string; class_code?: string; custom_fields?: object[]; department?: object; employment?: object; employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; end_date?: string; first_name?: string; flsa_status?: 'exempt' | 'non_exempt' | 'unknown'; income?: income; income_history?: income[]; is_active?: boolean; last_name?: string; latest_rehire_date?: string; location?: location; manager?: object; middle_name?: string; source_id?: string; start_date?: string; title?: string; }`\n\n**put** `/sandbox/employment/{individual_id}`\n\nUpdate sandbox employment\n\n### Parameters\n\n- `individual_id: string`\n\n- `class_code?: string`\n Worker's compensation classification code for this employee\n\n- `custom_fields?: { name?: string; value?: string | object[] | object | number | boolean; }[]`\n Custom fields for the individual. These are fields which are defined by the employer in the system. Custom fields are not currently supported for assisted connections.\n\n- `department?: { name?: string; }`\n The department object.\n - `name?: string`\n The name of the department associated with the individual.\n\n- `employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }`\n The employment object.\n - `subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'`\n The secondary employment type of the individual. Options: `full_time`, `part_time`, `intern`, `temp`, `seasonal` and `individual_contractor`.\n - `type?: 'employee' | 'contractor'`\n The main employment type of the individual.\n\n- `employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'`\n The detailed employment status of the individual.\n\n- `end_date?: string`\n\n- `first_name?: string`\n The legal first name of the individual.\n\n- `flsa_status?: 'exempt' | 'non_exempt' | 'unknown'`\n The FLSA status of the individual. Available options: `exempt`, `non_exempt`, `unknown`.\n\n- `income?: { amount: number; currency: string; effective_date: string; unit: string; }`\n The employee's income as reported by the provider. This may not always be annualized income, but may be in units of bi-weekly, semi-monthly, daily, etc, depending on what information the provider returns.\n - `amount: number`\n The income amount in cents.\n - `currency: string`\n The currency code.\n - `effective_date: string`\n The date the income amount went into effect.\n - `unit: string`\n The income unit of payment. Options: `yearly`, `quarterly`, `monthly`, `semi_monthly`, `bi_weekly`, `weekly`, `daily`, `hourly`, and `fixed`.\n\n- `income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]`\n The array of income history.\n\n- `is_active?: boolean`\n `true` if the individual an an active employee or contractor at the company.\n\n- `last_name?: string`\n The legal last name of the individual.\n\n- `latest_rehire_date?: string`\n\n- `location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }`\n - `city: string`\n City, district, suburb, town, or village.\n - `country: string`\n The 2-letter ISO 3166 country code.\n - `line1: string`\n Street address or PO box.\n - `line2: string`\n Apartment, suite, unit, or building.\n - `postal_code: string`\n The postal code or zip code.\n - `state: string`\n The state code.\n - `name?: string`\n - `source_id?: string`\n\n- `manager?: { id?: string; }`\n The manager object representing the manager of the individual within the org.\n - `id?: string`\n A stable Finch `id` (UUID v4) for an individual in the company.\n\n- `middle_name?: string`\n The legal middle name of the individual.\n\n- `source_id?: string`\n The source system's unique employment identifier for this individual\n\n- `start_date?: string`\n\n- `title?: string`\n The current title of the individual.\n\n### Returns\n\n- `{ id?: string; class_code?: string; custom_fields?: { name?: string; value?: string | object[] | object | number | boolean; }[]; department?: { name?: string; }; employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }; employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'; end_date?: string; first_name?: string; flsa_status?: 'exempt' | 'non_exempt' | 'unknown'; income?: { amount: number; currency: string; effective_date: string; unit: string; }; income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]; is_active?: boolean; last_name?: string; latest_rehire_date?: string; location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }; manager?: { id?: string; }; middle_name?: string; source_id?: string; start_date?: string; title?: string; }`\n\n - `id?: string`\n - `class_code?: string`\n - `custom_fields?: { name?: string; value?: string | object[] | object | number | boolean; }[]`\n - `department?: { name?: string; }`\n - `employment?: { subtype?: 'full_time' | 'intern' | 'part_time' | 'temp' | 'seasonal' | 'individual_contractor'; type?: 'employee' | 'contractor'; }`\n - `employment_status?: 'active' | 'deceased' | 'leave' | 'onboarding' | 'prehire' | 'retired' | 'terminated'`\n - `end_date?: string`\n - `first_name?: string`\n - `flsa_status?: 'exempt' | 'non_exempt' | 'unknown'`\n - `income?: { amount: number; currency: string; effective_date: string; unit: string; }`\n - `income_history?: { amount: number; currency: string; effective_date: string; unit: string; }[]`\n - `is_active?: boolean`\n - `last_name?: string`\n - `latest_rehire_date?: string`\n - `location?: { city: string; country: string; line1: string; line2: string; postal_code: string; state: string; name?: string; source_id?: string; }`\n - `manager?: { id?: string; }`\n - `middle_name?: string`\n - `source_id?: string`\n - `start_date?: string`\n - `title?: string`\n\n### Example\n\n```typescript\nimport Finch from '@tryfinch/finch-api';\n\nconst client = new Finch();\n\nconst employment = await client.sandbox.employment.update('individual_id');\n\nconsole.log(employment);\n```", perLanguage: { typescript: { method: 'client.sandbox.employment.update', example: - "import Finch from '@tryfinch/finch-api';\n\nconst client = new Finch({\n accessToken: 'My Access Token',\n});\n\nconst employment = await client.sandbox.employment.update('individual_id');\n\nconsole.log(employment.id);", + "import Finch from '@tryfinch/finch-api';\n\nconst client = new Finch({\n accessToken: 'My Access Token',\n});\n\nconst employment = await client.sandbox.employment.update('individual_id', {\n start_date: '3/4/2020',\n});\n\nconsole.log(employment.id);", }, python: { method: 'sandbox.employment.update', example: - 'from finch import Finch\n\nclient = Finch(\n access_token="My Access Token",\n)\nemployment = client.sandbox.employment.update(\n individual_id="individual_id",\n)\nprint(employment.id)', + 'from finch import Finch\n\nclient = Finch(\n access_token="My Access Token",\n)\nemployment = client.sandbox.employment.update(\n individual_id="individual_id",\n start_date="3/4/2020",\n)\nprint(employment.id)', }, java: { method: 'sandbox().employment().update', @@ -2064,7 +2064,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [ go: { method: 'client.Sandbox.Employment.Update', example: - 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/Finch-API/finch-api-go"\n\t"github.com/Finch-API/finch-api-go/option"\n)\n\nfunc main() {\n\tclient := finchgo.NewClient(\n\t\toption.WithAccessToken("My Access Token"),\n\t)\n\temployment, err := client.Sandbox.Employment.Update(\n\t\tcontext.TODO(),\n\t\t"individual_id",\n\t\tfinchgo.SandboxEmploymentUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", employment.ID)\n}\n', + 'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/Finch-API/finch-api-go"\n\t"github.com/Finch-API/finch-api-go/option"\n)\n\nfunc main() {\n\tclient := finchgo.NewClient(\n\t\toption.WithAccessToken("My Access Token"),\n\t)\n\temployment, err := client.Sandbox.Employment.Update(\n\t\tcontext.TODO(),\n\t\t"individual_id",\n\t\tfinchgo.SandboxEmploymentUpdateParams{\n\t\t\tStartDate: finchgo.F("3/4/2020"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", employment.ID)\n}\n', }, ruby: { method: 'sandbox.employment.update', diff --git a/src/resources/sandbox/directory.ts b/src/resources/sandbox/directory.ts index 22c3fcd3..e2a52417 100644 --- a/src/resources/sandbox/directory.ts +++ b/src/resources/sandbox/directory.ts @@ -190,7 +190,7 @@ export namespace DirectoryCreateParams { export interface CustomField { name?: string | null; - value?: unknown; + value?: string | null | Array | null | unknown | number | null | boolean | null; } /** diff --git a/src/resources/sandbox/employment.ts b/src/resources/sandbox/employment.ts index 99a196b5..b7d99c98 100644 --- a/src/resources/sandbox/employment.ts +++ b/src/resources/sandbox/employment.ts @@ -14,6 +14,7 @@ export class Employment extends APIResource { * ```ts * const employment = await client.sandbox.employment.update( * 'individual_id', + * { start_date: '3/4/2020' }, * ); * ``` */ @@ -137,7 +138,7 @@ export namespace EmploymentUpdateResponse { export interface CustomField { name?: string | null; - value?: unknown; + value?: string | null | Array | null | unknown | number | null | boolean | null; } /** @@ -279,7 +280,7 @@ export namespace EmploymentUpdateParams { export interface CustomField { name?: string | null; - value?: unknown; + value?: string | null | Array | null | unknown | number | null | boolean | null; } /** diff --git a/tests/api-resources/sandbox/directory.test.ts b/tests/api-resources/sandbox/directory.test.ts index b2fdecf2..d828c575 100644 --- a/tests/api-resources/sandbox/directory.test.ts +++ b/tests/api-resources/sandbox/directory.test.ts @@ -29,12 +29,7 @@ describe('resource directory', () => { body: [ { class_code: 'class_code', - custom_fields: [ - { - name: 'name', - value: {}, - }, - ], + custom_fields: [{ name: 'name', value: 'string' }], department: { name: 'name' }, dob: 'dob', emails: [{ data: 'data', type: 'work' }], diff --git a/tests/api-resources/sandbox/employment.test.ts b/tests/api-resources/sandbox/employment.test.ts index afe83df9..9523fee2 100644 --- a/tests/api-resources/sandbox/employment.test.ts +++ b/tests/api-resources/sandbox/employment.test.ts @@ -28,12 +28,7 @@ describe('resource employment', () => { 'individual_id', { class_code: 'class_code', - custom_fields: [ - { - name: 'name', - value: {}, - }, - ], + custom_fields: [{ name: 'name', value: 'string' }], department: { name: 'name' }, employment: { subtype: 'full_time', type: 'employee' }, employment_status: 'active', @@ -70,7 +65,7 @@ describe('resource employment', () => { manager: { id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }, middle_name: 'middle_name', source_id: 'source_id', - start_date: 'start_date', + start_date: '3/4/2020', title: 'title', }, { path: '/_stainless_unknown_path' }, From 4b8185b9bc71035c6415e6f9a7953f6a20c93048 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 22:53:29 +0000 Subject: [PATCH 4/5] feat(api): manual updates remove java and kotlin from skipped benefits method --- .stats.yml | 4 ++-- packages/mcp-server/src/local-docs-search.ts | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 415fc193..347af6b1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 46 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch/finch-f17b0106d5004cf7339990dd9a9d60dc183ed38051a862db3855fb9d953fbbf8.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch/finch-82224679b895da7c7a5aae44d11b69fbe37d0316cd8e10aa0c89bc5a68f424de.yml openapi_spec_hash: a4ca94b3405fc83934c949068943e16c -config_hash: ae896fec93ebd7c3bc1a6c4d6d9880ff +config_hash: fce67e71044aa4c3d0b8030052b3a20b diff --git a/packages/mcp-server/src/local-docs-search.ts b/packages/mcp-server/src/local-docs-search.ts index 20e4b7e3..e50644a6 100644 --- a/packages/mcp-server/src/local-docs-search.ts +++ b/packages/mcp-server/src/local-docs-search.ts @@ -1205,6 +1205,16 @@ const EMBEDDED_METHODS: MethodEntry[] = [ example: 'from finch import Finch\n\nclient = Finch(\n access_token="My Access Token",\n)\nenrolled_individual_benefit_response = client.hris.benefits.individuals.enroll_many(\n benefit_id="benefit_id",\n)\nprint(enrolled_individual_benefit_response.job_id)', }, + java: { + method: 'hris().benefits().individuals().enrollMany', + example: + 'package com.tryfinch.api.example;\n\nimport com.tryfinch.api.client.FinchClient;\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient;\nimport com.tryfinch.api.models.EnrolledIndividualBenefitResponse;\nimport com.tryfinch.api.models.HrisBenefitIndividualEnrollManyParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n FinchClient client = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build();\n\n EnrolledIndividualBenefitResponse enrolledIndividualBenefitResponse = client.hris().benefits().individuals().enrollMany("benefit_id");\n }\n}', + }, + kotlin: { + method: 'hris().benefits().individuals().enrollMany', + example: + 'package com.tryfinch.api.example\n\nimport com.tryfinch.api.client.FinchClient\nimport com.tryfinch.api.client.okhttp.FinchOkHttpClient\nimport com.tryfinch.api.models.EnrolledIndividualBenefitResponse\nimport com.tryfinch.api.models.HrisBenefitIndividualEnrollManyParams\n\nfun main() {\n val client: FinchClient = FinchOkHttpClient.builder()\n .fromEnv()\n .accessToken("My Access Token")\n .build()\n\n val enrolledIndividualBenefitResponse: EnrolledIndividualBenefitResponse = client.hris().benefits().individuals().enrollMany("benefit_id")\n}', + }, ruby: { method: 'hris.benefits.individuals.enroll_many', example: From f68ce3b17d49543da2a85e9b3706051b51afa75b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 22:53:55 +0000 Subject: [PATCH 5/5] release: 9.9.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 10 ++++++++++ package.json | 2 +- packages/mcp-server/manifest.json | 2 +- packages/mcp-server/package.json | 2 +- packages/mcp-server/src/server.ts | 2 +- src/version.ts | 2 +- 7 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f6422c1c..7d2f3497 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "9.8.0" + ".": "9.9.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index bf4038ce..72fe78b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 9.9.0 (2026-05-12) + +Full Changelog: [v9.8.0...v9.9.0](https://github.com/Finch-API/finch-api-node/compare/v9.8.0...v9.9.0) + +### Features + +* **api:** api update ([c3c7ce0](https://github.com/Finch-API/finch-api-node/commit/c3c7ce088d83b5ec87c73576f4db788b5a5365a0)) +* **api:** manual updates ([4b8185b](https://github.com/Finch-API/finch-api-node/commit/4b8185b9bc71035c6415e6f9a7953f6a20c93048)) +* **api:** manual updates ([a91d7f6](https://github.com/Finch-API/finch-api-node/commit/a91d7f68d670d794bf014350c0f2f632332e874f)) + ## 9.8.0 (2026-05-07) Full Changelog: [v9.7.0...v9.8.0](https://github.com/Finch-API/finch-api-node/compare/v9.7.0...v9.8.0) diff --git a/package.json b/package.json index c2e6cdc7..aba18379 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tryfinch/finch-api", - "version": "9.8.0", + "version": "9.9.0", "description": "The official TypeScript library for the Finch API", "author": "Finch ", "types": "dist/index.d.ts", diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json index b415e925..b2fc22c9 100644 --- a/packages/mcp-server/manifest.json +++ b/packages/mcp-server/manifest.json @@ -1,7 +1,7 @@ { "dxt_version": "0.2", "name": "@tryfinch/finch-api-mcp", - "version": "9.8.0", + "version": "9.9.0", "description": "The official MCP Server for the Finch API", "author": { "name": "Finch", diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json index 354c3e27..16216dfc 100644 --- a/packages/mcp-server/package.json +++ b/packages/mcp-server/package.json @@ -1,6 +1,6 @@ { "name": "@tryfinch/finch-api-mcp", - "version": "9.8.0", + "version": "9.9.0", "description": "The official MCP Server for the Finch API", "author": "Finch ", "types": "dist/index.d.ts", diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts index 301a5ced..385e5a73 100644 --- a/packages/mcp-server/src/server.ts +++ b/packages/mcp-server/src/server.ts @@ -29,7 +29,7 @@ export const newMcpServer = async ({ new McpServer( { name: 'tryfinch_finch_api_api', - version: '9.8.0', + version: '9.9.0', }, { instructions: await getInstructions({ stainlessApiKey, customInstructionsPath }), diff --git a/src/version.ts b/src/version.ts index 49b172b7..5baeb8b9 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '9.8.0'; // x-release-please-version +export const VERSION = '9.9.0'; // x-release-please-version