@shipfox/client-agent 5.0.0 → 6.0.1
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +45 -0
- package/dist/components/available-provider-card.d.ts +2 -2
- package/dist/components/available-provider-card.d.ts.map +1 -1
- package/dist/components/available-provider-card.js.map +1 -1
- package/dist/components/available-providers-grid.d.ts +2 -2
- package/dist/components/available-providers-grid.d.ts.map +1 -1
- package/dist/components/available-providers-grid.js +1 -1
- package/dist/components/available-providers-grid.js.map +1 -1
- package/dist/components/change-default-model-form.d.ts +3 -4
- package/dist/components/change-default-model-form.d.ts.map +1 -1
- package/dist/components/change-default-model-form.js +2 -4
- package/dist/components/change-default-model-form.js.map +1 -1
- package/dist/components/custom-model-provider-api-options.d.ts +3 -3
- package/dist/components/custom-model-provider-api-options.d.ts.map +1 -1
- package/dist/components/custom-model-provider-api-options.js.map +1 -1
- package/dist/components/custom-model-provider-form.d.ts +2 -2
- package/dist/components/custom-model-provider-form.d.ts.map +1 -1
- package/dist/components/custom-model-provider-form.js +12 -10
- package/dist/components/custom-model-provider-form.js.map +1 -1
- package/dist/components/custom-model-provider-form.stories.d.ts.map +1 -1
- package/dist/components/custom-model-provider-form.stories.js +11 -11
- package/dist/components/custom-model-provider-form.stories.js.map +1 -1
- package/dist/components/custom-model-provider-payload.d.ts +9 -9
- package/dist/components/custom-model-provider-payload.d.ts.map +1 -1
- package/dist/components/custom-model-provider-payload.js +42 -26
- package/dist/components/custom-model-provider-payload.js.map +1 -1
- package/dist/components/custom-model-provider-slug.d.ts +1 -1
- package/dist/components/custom-model-provider-slug.d.ts.map +1 -1
- package/dist/components/custom-model-provider-slug.js +3 -3
- package/dist/components/custom-model-provider-slug.js.map +1 -1
- package/dist/components/default-model-field.d.ts +2 -2
- package/dist/components/default-model-field.d.ts.map +1 -1
- package/dist/components/default-model-field.js +1 -1
- package/dist/components/default-model-field.js.map +1 -1
- package/dist/components/harness-availability.d.ts +4 -7
- package/dist/components/harness-availability.d.ts.map +1 -1
- package/dist/components/harness-availability.js +2 -11
- package/dist/components/harness-availability.js.map +1 -1
- package/dist/components/harnesses-section.d.ts.map +1 -1
- package/dist/components/harnesses-section.js +4 -6
- package/dist/components/harnesses-section.js.map +1 -1
- package/dist/components/model-provider-usage-modal.d.ts +2 -2
- package/dist/components/model-provider-usage-modal.d.ts.map +1 -1
- package/dist/components/model-provider-usage-modal.js +4 -4
- package/dist/components/model-provider-usage-modal.js.map +1 -1
- package/dist/components/model-provider-usage-modal.stories.d.ts.map +1 -1
- package/dist/components/model-provider-usage-modal.stories.js +14 -16
- package/dist/components/model-provider-usage-modal.stories.js.map +1 -1
- package/dist/components/model-provider-usage-target.d.ts +5 -5
- package/dist/components/model-provider-usage-target.d.ts.map +1 -1
- package/dist/components/model-provider-usage-target.js +10 -8
- package/dist/components/model-provider-usage-target.js.map +1 -1
- package/dist/components/model-providers-section.d.ts.map +1 -1
- package/dist/components/model-providers-section.js +112 -94
- package/dist/components/model-providers-section.js.map +1 -1
- package/dist/components/model-providers-section.stories.js +8 -4
- package/dist/components/model-providers-section.stories.js.map +1 -1
- package/dist/components/test-and-save-form.d.ts +3 -3
- package/dist/components/test-and-save-form.d.ts.map +1 -1
- package/dist/components/test-and-save-form.js +7 -7
- package/dist/components/test-and-save-form.js.map +1 -1
- package/dist/core/harness-policy.d.ts +11 -0
- package/dist/core/harness-policy.d.ts.map +1 -0
- package/dist/core/harness-policy.js +71 -0
- package/dist/core/harness-policy.js.map +1 -0
- package/dist/core/model-provider-management-reducer.d.ts +51 -0
- package/dist/core/model-provider-management-reducer.d.ts.map +1 -0
- package/dist/core/model-provider-management-reducer.js +43 -0
- package/dist/core/model-provider-management-reducer.js.map +1 -0
- package/dist/core/models.d.ts +120 -0
- package/dist/core/models.d.ts.map +1 -0
- package/dist/core/models.js +3 -0
- package/dist/core/models.js.map +1 -0
- package/dist/core/onboarding-reducer.d.ts +36 -0
- package/dist/core/onboarding-reducer.d.ts.map +1 -0
- package/dist/core/onboarding-reducer.js +54 -0
- package/dist/core/onboarding-reducer.js.map +1 -0
- package/dist/core/provider-policy.d.ts +9 -0
- package/dist/core/provider-policy.d.ts.map +1 -0
- package/dist/core/provider-policy.js +37 -0
- package/dist/core/provider-policy.js.map +1 -0
- package/dist/feature.d.ts +7 -0
- package/dist/feature.d.ts.map +1 -1
- package/dist/feature.js +10 -9
- package/dist/feature.js.map +1 -1
- package/dist/hooks/api/model-provider-command-mapper.d.ts +11 -0
- package/dist/hooks/api/model-provider-command-mapper.d.ts.map +1 -0
- package/dist/hooks/api/model-provider-command-mapper.js +144 -0
- package/dist/hooks/api/model-provider-command-mapper.js.map +1 -0
- package/dist/hooks/api/model-provider-mapper.d.ts +11 -0
- package/dist/hooks/api/model-provider-mapper.d.ts.map +1 -0
- package/dist/hooks/api/model-provider-mapper.js +94 -0
- package/dist/hooks/api/model-provider-mapper.js.map +1 -0
- package/dist/hooks/api/model-providers.d.ts +60 -295
- package/dist/hooks/api/model-providers.d.ts.map +1 -1
- package/dist/hooks/api/model-providers.js +51 -37
- package/dist/hooks/api/model-providers.js.map +1 -1
- package/dist/pages/model-provider-onboarding-page.d.ts.map +1 -1
- package/dist/pages/model-provider-onboarding-page.js +57 -45
- package/dist/pages/model-provider-onboarding-page.js.map +1 -1
- package/dist/routes/inputs.d.ts +4 -0
- package/dist/routes/inputs.d.ts.map +1 -0
- package/dist/routes/inputs.js +12 -0
- package/dist/routes/inputs.js.map +1 -0
- package/dist/routes/model-provider.d.ts.map +1 -1
- package/dist/routes/model-provider.js +4 -5
- package/dist/routes/model-provider.js.map +1 -1
- package/dist/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +9 -10
- package/src/components/available-provider-card.tsx +2 -2
- package/src/components/available-providers-grid.tsx +3 -3
- package/src/components/change-default-model-form.tsx +5 -6
- package/src/components/custom-model-provider-api-options.ts +3 -3
- package/src/components/custom-model-provider-form.stories.tsx +13 -13
- package/src/components/custom-model-provider-form.tsx +19 -12
- package/src/components/custom-model-provider-payload.test.ts +22 -22
- package/src/components/custom-model-provider-payload.ts +69 -54
- package/src/components/custom-model-provider-slug.test.ts +1 -1
- package/src/components/custom-model-provider-slug.ts +6 -3
- package/src/components/default-model-field.tsx +5 -5
- package/src/components/harness-availability.test.ts +13 -10
- package/src/components/harness-availability.ts +4 -28
- package/src/components/harnesses-section.tsx +7 -11
- package/src/components/model-provider-usage-modal.stories.tsx +18 -23
- package/src/components/model-provider-usage-modal.test.tsx +35 -7
- package/src/components/model-provider-usage-modal.tsx +12 -16
- package/src/components/model-provider-usage-target.ts +15 -18
- package/src/components/model-providers-section.stories.tsx +4 -1
- package/src/components/model-providers-section.tsx +112 -125
- package/src/components/test-and-save-form.tsx +13 -17
- package/src/core/harness-policy.test.ts +15 -0
- package/src/core/harness-policy.ts +83 -0
- package/src/core/model-provider-management-reducer.test.ts +59 -0
- package/src/core/model-provider-management-reducer.ts +72 -0
- package/src/core/models.ts +143 -0
- package/src/core/onboarding-reducer.test.ts +44 -0
- package/src/core/onboarding-reducer.ts +64 -0
- package/src/core/provider-policy.ts +53 -0
- package/src/feature.ts +12 -10
- package/src/hooks/api/model-provider-command-mapper.ts +122 -0
- package/src/hooks/api/model-provider-mapper.test.ts +27 -0
- package/src/hooks/api/model-provider-mapper.ts +120 -0
- package/src/hooks/api/model-providers.test.ts +15 -15
- package/src/hooks/api/model-providers.ts +146 -81
- package/src/pages/model-provider-onboarding-page.tsx +62 -56
- package/src/routes/inputs.test.ts +11 -0
- package/src/routes/inputs.ts +9 -0
- package/src/routes/model-provider.tsx +4 -3
- package/test/fixtures/model-providers.ts +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/vercel.json +5 -0
- package/dist/components/provider-search.d.ts +0 -4
- package/dist/components/provider-search.d.ts.map +0 -1
- package/dist/components/provider-search.js +0 -13
- package/dist/components/provider-search.js.map +0 -1
- package/dist/components/supported-model-provider-catalog-entry.d.ts +0 -8
- package/dist/components/supported-model-provider-catalog-entry.d.ts.map +0 -1
- package/dist/components/supported-model-provider-catalog-entry.js +0 -9
- package/dist/components/supported-model-provider-catalog-entry.js.map +0 -1
- package/src/components/provider-search.test.ts +0 -45
- package/src/components/provider-search.ts +0 -18
- package/src/components/supported-model-provider-catalog-entry.ts +0 -19
package/vercel.json
CHANGED
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
"buildCommand": "turbo build && pnpm run storybook:build",
|
|
4
4
|
"devCommand": "pnpm run storybook",
|
|
5
5
|
"installCommand": "pnpm install",
|
|
6
|
+
"git": {
|
|
7
|
+
"deploymentEnabled": {
|
|
8
|
+
"changeset-release/main": false
|
|
9
|
+
}
|
|
10
|
+
},
|
|
6
11
|
"framework": null,
|
|
7
12
|
"outputDirectory": "./storybook-static"
|
|
8
13
|
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { ModelProviderCatalogEntryDto } from '@shipfox/api-agent-dto';
|
|
2
|
-
export declare function providerMatchesSearch(entry: ModelProviderCatalogEntryDto, query: string): boolean;
|
|
3
|
-
export declare function customProviderCardMatchesSearch(query: string): boolean;
|
|
4
|
-
//# sourceMappingURL=provider-search.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-search.d.ts","sourceRoot":"","sources":["../../src/components/provider-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,4BAA4B,EAAC,MAAM,wBAAwB,CAAC;AAEzE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAQjG;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKtE"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export function providerMatchesSearch(entry, query) {
|
|
2
|
-
const needle = query.trim().toLowerCase();
|
|
3
|
-
if (needle === '') return true;
|
|
4
|
-
const haystack = `${entry.label} ${entry.id} ${entry.models.map((model)=>`${model.id} ${model.label}`).join(' ')}`.toLowerCase();
|
|
5
|
-
return haystack.includes(needle);
|
|
6
|
-
}
|
|
7
|
-
export function customProviderCardMatchesSearch(query) {
|
|
8
|
-
const needle = query.trim().toLowerCase();
|
|
9
|
-
if (needle === '') return true;
|
|
10
|
-
return 'custom provider openai anthropic google endpoint https public'.includes(needle);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
//# sourceMappingURL=provider-search.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/provider-search.ts"],"sourcesContent":["import type {ModelProviderCatalogEntryDto} from '@shipfox/api-agent-dto';\n\nexport function providerMatchesSearch(entry: ModelProviderCatalogEntryDto, query: string): boolean {\n const needle = query.trim().toLowerCase();\n if (needle === '') return true;\n\n const haystack = `${entry.label} ${entry.id} ${entry.models\n .map((model) => `${model.id} ${model.label}`)\n .join(' ')}`.toLowerCase();\n return haystack.includes(needle);\n}\n\nexport function customProviderCardMatchesSearch(query: string): boolean {\n const needle = query.trim().toLowerCase();\n if (needle === '') return true;\n\n return 'custom provider openai anthropic google endpoint https public'.includes(needle);\n}\n"],"names":["providerMatchesSearch","entry","query","needle","trim","toLowerCase","haystack","label","id","models","map","model","join","includes","customProviderCardMatchesSearch"],"mappings":"AAEA,OAAO,SAASA,sBAAsBC,KAAmC,EAAEC,KAAa;IACtF,MAAMC,SAASD,MAAME,IAAI,GAAGC,WAAW;IACvC,IAAIF,WAAW,IAAI,OAAO;IAE1B,MAAMG,WAAW,GAAGL,MAAMM,KAAK,CAAC,CAAC,EAAEN,MAAMO,EAAE,CAAC,CAAC,EAAEP,MAAMQ,MAAM,CACxDC,GAAG,CAAC,CAACC,QAAU,GAAGA,MAAMH,EAAE,CAAC,CAAC,EAAEG,MAAMJ,KAAK,EAAE,EAC3CK,IAAI,CAAC,MAAM,CAACP,WAAW;IAC1B,OAAOC,SAASO,QAAQ,CAACV;AAC3B;AAEA,OAAO,SAASW,gCAAgCZ,KAAa;IAC3D,MAAMC,SAASD,MAAME,IAAI,GAAGC,WAAW;IACvC,IAAIF,WAAW,IAAI,OAAO;IAE1B,OAAO,gEAAgEU,QAAQ,CAACV;AAClF"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ModelProviderCatalogEntryDto, SupportedModelProviderId } from '@shipfox/api-agent-dto';
|
|
2
|
-
export type SupportedModelProviderCatalogEntry = ModelProviderCatalogEntryDto & {
|
|
3
|
-
id: SupportedModelProviderId;
|
|
4
|
-
support_status: 'supported';
|
|
5
|
-
};
|
|
6
|
-
export declare function isSupportedCatalogEntry(entry: ModelProviderCatalogEntryDto | undefined): entry is SupportedModelProviderCatalogEntry;
|
|
7
|
-
export declare function toSupportedCatalogEntry(entry: ModelProviderCatalogEntryDto | undefined): SupportedModelProviderCatalogEntry | undefined;
|
|
8
|
-
//# sourceMappingURL=supported-model-provider-catalog-entry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"supported-model-provider-catalog-entry.d.ts","sourceRoot":"","sources":["../../src/components/supported-model-provider-catalog-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,4BAA4B,EAAE,wBAAwB,EAAC,MAAM,wBAAwB,CAAC;AAEnG,MAAM,MAAM,kCAAkC,GAAG,4BAA4B,GAAG;IAC9E,EAAE,EAAE,wBAAwB,CAAC;IAC7B,cAAc,EAAE,WAAW,CAAC;CAC7B,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAAG,SAAS,GAC9C,KAAK,IAAI,kCAAkC,CAE7C;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAAG,SAAS,GAC9C,kCAAkC,GAAG,SAAS,CAGhD"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export function isSupportedCatalogEntry(entry) {
|
|
2
|
-
return entry?.support_status === 'supported';
|
|
3
|
-
}
|
|
4
|
-
export function toSupportedCatalogEntry(entry) {
|
|
5
|
-
if (!isSupportedCatalogEntry(entry)) return undefined;
|
|
6
|
-
return entry;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=supported-model-provider-catalog-entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/supported-model-provider-catalog-entry.ts"],"sourcesContent":["import type {ModelProviderCatalogEntryDto, SupportedModelProviderId} from '@shipfox/api-agent-dto';\n\nexport type SupportedModelProviderCatalogEntry = ModelProviderCatalogEntryDto & {\n id: SupportedModelProviderId;\n support_status: 'supported';\n};\n\nexport function isSupportedCatalogEntry(\n entry: ModelProviderCatalogEntryDto | undefined,\n): entry is SupportedModelProviderCatalogEntry {\n return entry?.support_status === 'supported';\n}\n\nexport function toSupportedCatalogEntry(\n entry: ModelProviderCatalogEntryDto | undefined,\n): SupportedModelProviderCatalogEntry | undefined {\n if (!isSupportedCatalogEntry(entry)) return undefined;\n return entry;\n}\n"],"names":["isSupportedCatalogEntry","entry","support_status","toSupportedCatalogEntry","undefined"],"mappings":"AAOA,OAAO,SAASA,wBACdC,KAA+C;IAE/C,OAAOA,OAAOC,mBAAmB;AACnC;AAEA,OAAO,SAASC,wBACdF,KAA+C;IAE/C,IAAI,CAACD,wBAAwBC,QAAQ,OAAOG;IAC5C,OAAOH;AACT"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import {modelProviderEntry} from '#test/fixtures/model-providers.js';
|
|
2
|
-
import {providerMatchesSearch} from './provider-search.js';
|
|
3
|
-
|
|
4
|
-
describe('providerMatchesSearch', () => {
|
|
5
|
-
test('matches empty and whitespace queries', () => {
|
|
6
|
-
const entry = modelProviderEntry();
|
|
7
|
-
|
|
8
|
-
expect(providerMatchesSearch(entry, '')).toBe(true);
|
|
9
|
-
expect(providerMatchesSearch(entry, ' ')).toBe(true);
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
test('matches provider labels case-insensitively', () => {
|
|
13
|
-
const entry = modelProviderEntry({label: 'Anthropic'});
|
|
14
|
-
|
|
15
|
-
const result = providerMatchesSearch(entry, 'anthro');
|
|
16
|
-
|
|
17
|
-
expect(result).toBe(true);
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
test('matches provider id substrings', () => {
|
|
21
|
-
const entry = modelProviderEntry({id: 'azure-openai-responses', label: 'Azure OpenAI'});
|
|
22
|
-
|
|
23
|
-
const result = providerMatchesSearch(entry, 'responses');
|
|
24
|
-
|
|
25
|
-
expect(result).toBe(true);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
test('matches model ids and labels', () => {
|
|
29
|
-
const entry = modelProviderEntry({
|
|
30
|
-
models: [{id: 'claude-opus-4-8', label: 'Claude Opus 4.8'}],
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
const result = providerMatchesSearch(entry, 'claude');
|
|
34
|
-
|
|
35
|
-
expect(result).toBe(true);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
test('returns false when no searchable field matches', () => {
|
|
39
|
-
const entry = modelProviderEntry();
|
|
40
|
-
|
|
41
|
-
const result = providerMatchesSearch(entry, 'gemini');
|
|
42
|
-
|
|
43
|
-
expect(result).toBe(false);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type {ModelProviderCatalogEntryDto} from '@shipfox/api-agent-dto';
|
|
2
|
-
|
|
3
|
-
export function providerMatchesSearch(entry: ModelProviderCatalogEntryDto, query: string): boolean {
|
|
4
|
-
const needle = query.trim().toLowerCase();
|
|
5
|
-
if (needle === '') return true;
|
|
6
|
-
|
|
7
|
-
const haystack = `${entry.label} ${entry.id} ${entry.models
|
|
8
|
-
.map((model) => `${model.id} ${model.label}`)
|
|
9
|
-
.join(' ')}`.toLowerCase();
|
|
10
|
-
return haystack.includes(needle);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export function customProviderCardMatchesSearch(query: string): boolean {
|
|
14
|
-
const needle = query.trim().toLowerCase();
|
|
15
|
-
if (needle === '') return true;
|
|
16
|
-
|
|
17
|
-
return 'custom provider openai anthropic google endpoint https public'.includes(needle);
|
|
18
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type {ModelProviderCatalogEntryDto, SupportedModelProviderId} from '@shipfox/api-agent-dto';
|
|
2
|
-
|
|
3
|
-
export type SupportedModelProviderCatalogEntry = ModelProviderCatalogEntryDto & {
|
|
4
|
-
id: SupportedModelProviderId;
|
|
5
|
-
support_status: 'supported';
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export function isSupportedCatalogEntry(
|
|
9
|
-
entry: ModelProviderCatalogEntryDto | undefined,
|
|
10
|
-
): entry is SupportedModelProviderCatalogEntry {
|
|
11
|
-
return entry?.support_status === 'supported';
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export function toSupportedCatalogEntry(
|
|
15
|
-
entry: ModelProviderCatalogEntryDto | undefined,
|
|
16
|
-
): SupportedModelProviderCatalogEntry | undefined {
|
|
17
|
-
if (!isSupportedCatalogEntry(entry)) return undefined;
|
|
18
|
-
return entry;
|
|
19
|
-
}
|