@shipfox/api-agent 12.2.0 → 14.0.0
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 +30 -0
- package/dist/config.d.ts +5 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +75 -7
- package/dist/config.js.map +1 -1
- package/dist/core/errors.d.ts +4 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +6 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/index.d.ts +2 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/model-provider-catalog.d.ts +5 -2
- package/dist/core/model-provider-catalog.d.ts.map +1 -1
- package/dist/core/model-provider-catalog.js +33 -1
- package/dist/core/model-provider-catalog.js.map +1 -1
- package/dist/core/resolve-agent-config.d.ts +4 -2
- package/dist/core/resolve-agent-config.d.ts.map +1 -1
- package/dist/core/resolve-agent-config.js +86 -31
- package/dist/core/resolve-agent-config.js.map +1 -1
- package/dist/core/resolve-runtime-credentials.d.ts +6 -2
- package/dist/core/resolve-runtime-credentials.d.ts.map +1 -1
- package/dist/core/resolve-runtime-credentials.js +60 -3
- package/dist/core/resolve-runtime-credentials.js.map +1 -1
- package/dist/core/validation-catalog.d.ts +2 -1
- package/dist/core/validation-catalog.d.ts.map +1 -1
- package/dist/core/validation-catalog.js +65 -17
- package/dist/core/validation-catalog.js.map +1 -1
- package/dist/core/workspace-agent-defaults-resolver.d.ts +2 -1
- package/dist/core/workspace-agent-defaults-resolver.d.ts.map +1 -1
- package/dist/core/workspace-agent-defaults-resolver.js +4 -2
- package/dist/core/workspace-agent-defaults-resolver.js.map +1 -1
- package/dist/core/workspace-provider-policy.d.ts +7 -0
- package/dist/core/workspace-provider-policy.d.ts.map +1 -0
- package/dist/core/workspace-provider-policy.js +10 -0
- package/dist/core/workspace-provider-policy.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -4
- package/dist/index.js.map +1 -1
- package/dist/presentation/e2eRoutes/create-model-provider.d.ts +2 -1
- package/dist/presentation/e2eRoutes/create-model-provider.d.ts.map +1 -1
- package/dist/presentation/e2eRoutes/create-model-provider.js +7 -1
- package/dist/presentation/e2eRoutes/create-model-provider.js.map +1 -1
- package/dist/presentation/e2eRoutes/index.d.ts +2 -1
- package/dist/presentation/e2eRoutes/index.d.ts.map +1 -1
- package/dist/presentation/e2eRoutes/index.js +4 -2
- package/dist/presentation/e2eRoutes/index.js.map +1 -1
- package/dist/presentation/inter-module.d.ts +3 -0
- package/dist/presentation/inter-module.d.ts.map +1 -1
- package/dist/presentation/inter-module.js +22 -6
- package/dist/presentation/inter-module.js.map +1 -1
- package/dist/presentation/routes/create-custom-model-provider.d.ts +2 -1
- package/dist/presentation/routes/create-custom-model-provider.d.ts.map +1 -1
- package/dist/presentation/routes/create-custom-model-provider.js +5 -2
- package/dist/presentation/routes/create-custom-model-provider.js.map +1 -1
- package/dist/presentation/routes/delete-model-provider-config.d.ts +2 -1
- package/dist/presentation/routes/delete-model-provider-config.d.ts.map +1 -1
- package/dist/presentation/routes/delete-model-provider-config.js +7 -2
- package/dist/presentation/routes/delete-model-provider-config.js.map +1 -1
- package/dist/presentation/routes/discover-custom-model-provider-models-by-slug.d.ts +2 -1
- package/dist/presentation/routes/discover-custom-model-provider-models-by-slug.d.ts.map +1 -1
- package/dist/presentation/routes/discover-custom-model-provider-models-by-slug.js +5 -2
- package/dist/presentation/routes/discover-custom-model-provider-models-by-slug.js.map +1 -1
- package/dist/presentation/routes/discover-custom-model-provider-models.d.ts +2 -0
- package/dist/presentation/routes/discover-custom-model-provider-models.d.ts.map +1 -1
- package/dist/presentation/routes/discover-custom-model-provider-models.js +29 -23
- package/dist/presentation/routes/discover-custom-model-provider-models.js.map +1 -1
- package/dist/presentation/routes/errors.d.ts.map +1 -1
- package/dist/presentation/routes/errors.js +10 -1
- package/dist/presentation/routes/errors.js.map +1 -1
- package/dist/presentation/routes/index.d.ts +5 -1
- package/dist/presentation/routes/index.d.ts.map +1 -1
- package/dist/presentation/routes/index.js +21 -14
- package/dist/presentation/routes/index.js.map +1 -1
- package/dist/presentation/routes/list-model-provider-catalog.d.ts +5 -0
- package/dist/presentation/routes/list-model-provider-catalog.d.ts.map +1 -1
- package/dist/presentation/routes/list-model-provider-catalog.js +21 -13
- package/dist/presentation/routes/list-model-provider-catalog.js.map +1 -1
- package/dist/presentation/routes/set-default-model-provider.d.ts +2 -0
- package/dist/presentation/routes/set-default-model-provider.d.ts.map +1 -1
- package/dist/presentation/routes/set-default-model-provider.js +44 -38
- package/dist/presentation/routes/set-default-model-provider.js.map +1 -1
- package/dist/presentation/routes/update-custom-model-provider.d.ts +2 -1
- package/dist/presentation/routes/update-custom-model-provider.d.ts.map +1 -1
- package/dist/presentation/routes/update-custom-model-provider.js +5 -2
- package/dist/presentation/routes/update-custom-model-provider.js.map +1 -1
- package/dist/presentation/routes/update-model-provider-default-model.d.ts +2 -0
- package/dist/presentation/routes/update-model-provider-default-model.d.ts.map +1 -1
- package/dist/presentation/routes/update-model-provider-default-model.js +35 -29
- package/dist/presentation/routes/update-model-provider-default-model.js.map +1 -1
- package/dist/presentation/routes/upsert-model-provider-config.d.ts +2 -1
- package/dist/presentation/routes/upsert-model-provider-config.d.ts.map +1 -1
- package/dist/presentation/routes/upsert-model-provider-config.js +5 -2
- package/dist/presentation/routes/upsert-model-provider-config.js.map +1 -1
- package/dist/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/config.test.ts +196 -4
- package/src/config.ts +100 -9
- package/src/core/errors.ts +7 -0
- package/src/core/index.ts +5 -0
- package/src/core/model-provider-catalog.test.ts +30 -0
- package/src/core/model-provider-catalog.ts +41 -1
- package/src/core/resolve-agent-config.test.ts +92 -0
- package/src/core/resolve-agent-config.ts +152 -43
- package/src/core/resolve-runtime-credentials.test.ts +289 -1
- package/src/core/resolve-runtime-credentials.ts +69 -3
- package/src/core/validation-catalog.test.ts +54 -0
- package/src/core/validation-catalog.ts +124 -19
- package/src/core/workspace-agent-defaults-resolver.ts +7 -2
- package/src/core/workspace-provider-policy.ts +19 -0
- package/src/index.ts +25 -4
- package/src/presentation/e2eRoutes/create-model-provider.ts +11 -1
- package/src/presentation/e2eRoutes/index.ts +9 -2
- package/src/presentation/inter-module.test.ts +51 -0
- package/src/presentation/inter-module.ts +38 -6
- package/src/presentation/routes/create-custom-model-provider.ts +10 -2
- package/src/presentation/routes/delete-model-provider-config.ts +12 -2
- package/src/presentation/routes/discover-custom-model-provider-models-by-slug.ts +7 -1
- package/src/presentation/routes/discover-custom-model-provider-models.ts +30 -18
- package/src/presentation/routes/errors.ts +11 -0
- package/src/presentation/routes/index.ts +32 -14
- package/src/presentation/routes/list-model-provider-catalog.ts +32 -11
- package/src/presentation/routes/model-provider-catalog.test.ts +49 -1
- package/src/presentation/routes/model-provider-config.test.ts +62 -1
- package/src/presentation/routes/set-default-model-provider.ts +42 -31
- package/src/presentation/routes/update-custom-model-provider.ts +10 -2
- package/src/presentation/routes/update-model-provider-default-model.ts +37 -26
- package/src/presentation/routes/upsert-model-provider-config.ts +10 -2
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-agent-defaults-resolver.d.ts","sourceRoot":"","sources":["../../src/core/workspace-agent-defaults-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workspace-agent-defaults-resolver.d.ts","sourceRoot":"","sources":["../../src/core/workspace-agent-defaults-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EAEpB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAA+B,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAGnG,wBAAsB,oCAAoC,CACxD,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,oBAAoB,GAAG,SAAS,EAClD,kBAAkB,CAAC,EAAE,wBAAwB,GAAG,SAAS,GACxD,OAAO,CAAC,qBAAqB,CAAC,CA+BhC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { config } from '#config.js';
|
|
2
2
|
import { getAgentWorkspaceDefaultsSnapshot } from '#db/index.js';
|
|
3
3
|
import { resolveAgentConfig } from './resolve-agent-config.js';
|
|
4
|
-
export async function createWorkspaceAgentDefaultsResolver(workspaceId) {
|
|
4
|
+
export async function createWorkspaceAgentDefaultsResolver(workspaceId, managedProvider, workspaceProviders) {
|
|
5
5
|
const snapshot = await getAgentWorkspaceDefaultsSnapshot(workspaceId);
|
|
6
6
|
const workspaceProviderConfigs = new Map();
|
|
7
7
|
for (const providerConfig of snapshot.providerConfigs){
|
|
@@ -18,7 +18,9 @@ export async function createWorkspaceAgentDefaultsResolver(workspaceId) {
|
|
|
18
18
|
workspaceProviderConfigs,
|
|
19
19
|
instanceDefaultProvider: config.AGENT_DEFAULT_PROVIDER,
|
|
20
20
|
instanceDefaultModel: config.AGENT_DEFAULT_PROVIDER_MODEL,
|
|
21
|
-
instanceDefaultThinking: config.AGENT_DEFAULT_PROVIDER_THINKING
|
|
21
|
+
instanceDefaultThinking: config.AGENT_DEFAULT_PROVIDER_THINKING,
|
|
22
|
+
managedProvider,
|
|
23
|
+
workspaceProviders
|
|
22
24
|
};
|
|
23
25
|
return (step)=>resolveAgentConfig(step, ctx);
|
|
24
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/workspace-agent-defaults-resolver.ts"],"sourcesContent":["import type {\n AgentThinking,\n ModelProviderRef,\n
|
|
1
|
+
{"version":3,"sources":["../../src/core/workspace-agent-defaults-resolver.ts"],"sourcesContent":["import type {\n AgentThinking,\n ManagedModelProvider,\n ModelProviderRef,\n WorkspaceProvidersPolicy,\n} from '@shipfox/api-agent-dto';\nimport {config} from '#config.js';\nimport {getAgentWorkspaceDefaultsSnapshot} from '#db/index.js';\nimport type {AgentConfigResolutionContext, AgentDefaultsResolver} from './resolve-agent-config.js';\nimport {resolveAgentConfig} from './resolve-agent-config.js';\n\nexport async function createWorkspaceAgentDefaultsResolver(\n workspaceId: string,\n managedProvider?: ManagedModelProvider | undefined,\n workspaceProviders?: WorkspaceProvidersPolicy | undefined,\n): Promise<AgentDefaultsResolver> {\n const snapshot = await getAgentWorkspaceDefaultsSnapshot(workspaceId);\n const workspaceProviderConfigs = new Map<\n ModelProviderRef,\n {\n kind: 'builtin' | 'custom';\n defaultModel: string | null;\n defaultThinking: AgentThinking;\n models: (typeof snapshot.providerConfigs)[number]['models'];\n }\n >();\n for (const providerConfig of snapshot.providerConfigs) {\n workspaceProviderConfigs.set(providerConfig.providerId, {\n kind: providerConfig.kind,\n defaultModel: providerConfig.defaultModel,\n defaultThinking: providerConfig.defaultThinking,\n models: providerConfig.models,\n });\n }\n const ctx: AgentConfigResolutionContext = {\n workspaceDefaultHarnessId: snapshot.defaultHarnessId ?? null,\n workspaceDefaultProviderId: snapshot.defaultProviderId ?? null,\n workspaceProviderConfigs,\n instanceDefaultProvider: config.AGENT_DEFAULT_PROVIDER,\n instanceDefaultModel: config.AGENT_DEFAULT_PROVIDER_MODEL,\n instanceDefaultThinking: config.AGENT_DEFAULT_PROVIDER_THINKING as AgentThinking | undefined,\n managedProvider,\n workspaceProviders,\n };\n\n return (step) => resolveAgentConfig(step, ctx);\n}\n"],"names":["config","getAgentWorkspaceDefaultsSnapshot","resolveAgentConfig","createWorkspaceAgentDefaultsResolver","workspaceId","managedProvider","workspaceProviders","snapshot","workspaceProviderConfigs","Map","providerConfig","providerConfigs","set","providerId","kind","defaultModel","defaultThinking","models","ctx","workspaceDefaultHarnessId","defaultHarnessId","workspaceDefaultProviderId","defaultProviderId","instanceDefaultProvider","AGENT_DEFAULT_PROVIDER","instanceDefaultModel","AGENT_DEFAULT_PROVIDER_MODEL","instanceDefaultThinking","AGENT_DEFAULT_PROVIDER_THINKING","step"],"mappings":"AAMA,SAAQA,MAAM,QAAO,aAAa;AAClC,SAAQC,iCAAiC,QAAO,eAAe;AAE/D,SAAQC,kBAAkB,QAAO,4BAA4B;AAE7D,OAAO,eAAeC,qCACpBC,WAAmB,EACnBC,eAAkD,EAClDC,kBAAyD;IAEzD,MAAMC,WAAW,MAAMN,kCAAkCG;IACzD,MAAMI,2BAA2B,IAAIC;IASrC,KAAK,MAAMC,kBAAkBH,SAASI,eAAe,CAAE;QACrDH,yBAAyBI,GAAG,CAACF,eAAeG,UAAU,EAAE;YACtDC,MAAMJ,eAAeI,IAAI;YACzBC,cAAcL,eAAeK,YAAY;YACzCC,iBAAiBN,eAAeM,eAAe;YAC/CC,QAAQP,eAAeO,MAAM;QAC/B;IACF;IACA,MAAMC,MAAoC;QACxCC,2BAA2BZ,SAASa,gBAAgB,IAAI;QACxDC,4BAA4Bd,SAASe,iBAAiB,IAAI;QAC1Dd;QACAe,yBAAyBvB,OAAOwB,sBAAsB;QACtDC,sBAAsBzB,OAAO0B,4BAA4B;QACzDC,yBAAyB3B,OAAO4B,+BAA+B;QAC/DvB;QACAC;IACF;IAEA,OAAO,CAACuB,OAAS3B,mBAAmB2B,MAAMX;AAC5C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { WorkspaceProvidersPolicy } from '@shipfox/api-agent-dto';
|
|
2
|
+
export interface WorkspaceProviderPolicyOptions {
|
|
3
|
+
readonly workspaceProviders: WorkspaceProvidersPolicy;
|
|
4
|
+
readonly managedProviderId?: string | undefined;
|
|
5
|
+
}
|
|
6
|
+
export declare function assertWorkspaceProviderConfigurationEnabled(options: WorkspaceProviderPolicyOptions): void;
|
|
7
|
+
//# sourceMappingURL=workspace-provider-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-provider-policy.d.ts","sourceRoot":"","sources":["../../src/core/workspace-provider-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,wBAAwB,CAAC;AAGrE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;IACtD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjD;AAED,wBAAgB,2CAA2C,CACzD,OAAO,EAAE,8BAA8B,GACtC,IAAI,CAQN"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { WorkspaceProvidersDisabledError } from './errors.js';
|
|
2
|
+
export function assertWorkspaceProviderConfigurationEnabled(options) {
|
|
3
|
+
if (options.workspaceProviders !== 'disabled') return;
|
|
4
|
+
if (options.managedProviderId === undefined) {
|
|
5
|
+
throw new Error('workspace provider configuration is disabled but no managed provider is registered');
|
|
6
|
+
}
|
|
7
|
+
throw new WorkspaceProvidersDisabledError(options.managedProviderId);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=workspace-provider-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/workspace-provider-policy.ts"],"sourcesContent":["import type {WorkspaceProvidersPolicy} from '@shipfox/api-agent-dto';\nimport {WorkspaceProvidersDisabledError} from './errors.js';\n\nexport interface WorkspaceProviderPolicyOptions {\n readonly workspaceProviders: WorkspaceProvidersPolicy;\n readonly managedProviderId?: string | undefined;\n}\n\nexport function assertWorkspaceProviderConfigurationEnabled(\n options: WorkspaceProviderPolicyOptions,\n): void {\n if (options.workspaceProviders !== 'disabled') return;\n if (options.managedProviderId === undefined) {\n throw new Error(\n 'workspace provider configuration is disabled but no managed provider is registered',\n );\n }\n throw new WorkspaceProvidersDisabledError(options.managedProviderId);\n}\n"],"names":["WorkspaceProvidersDisabledError","assertWorkspaceProviderConfigurationEnabled","options","workspaceProviders","managedProviderId","undefined","Error"],"mappings":"AACA,SAAQA,+BAA+B,QAAO,cAAc;AAO5D,OAAO,SAASC,4CACdC,OAAuC;IAEvC,IAAIA,QAAQC,kBAAkB,KAAK,YAAY;IAC/C,IAAID,QAAQE,iBAAiB,KAAKC,WAAW;QAC3C,MAAM,IAAIC,MACR;IAEJ;IACA,MAAM,IAAIN,gCAAgCE,QAAQE,iBAAiB;AACrE"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { ManagedModelProvider } from '@shipfox/api-agent-dto';
|
|
1
2
|
import type { ShipfoxModule } from '@shipfox/node-module';
|
|
2
3
|
import type { AgentSecretsClient } from '#core/secrets-client.js';
|
|
3
|
-
export { type AgentConfigResolutionContext, type AgentDefaultsResolver, type AgentWorkspaceSettings, buildModelProviderCatalog, type ContextualAgentConfig, catalogDefaultAgentResolver, createCustomModelProviderConfig, createWorkspaceAgentDefaultsResolver, deleteModelProviderConfig, getModelProviderCredentialKeys, getModelProviderEntry, InvalidAgentModelError, InvalidCredentialFieldsError, isReservedModelProviderId, listSupportedModelProviders, type ModelProviderConfig, ModelProviderConfigNotFoundError, ModelProviderValidationError, ModelProviderValidationUnavailableError, modelProviderCredentialKeysMatch, type ResolvedAgentConfig, type ResolveRuntimeCredentialsParams, resolveAgentConfig, resolveRuntimeCredentials, testAndSaveModelProviderConfig, UnsupportedModelProviderError, updateCustomModelProviderConfig, } from '#core/index.js';
|
|
4
|
+
export { type AgentConfigResolutionContext, type AgentDefaultsResolver, type AgentWorkspaceSettings, buildModelProviderCatalog, type ContextualAgentConfig, catalogDefaultAgentResolver, createCustomModelProviderConfig, createWorkspaceAgentDefaultsResolver, deleteModelProviderConfig, getModelProviderCredentialKeys, getModelProviderEntry, InvalidAgentModelError, InvalidCredentialFieldsError, isReservedModelProviderId, listSupportedModelProviders, type ModelProviderConfig, ModelProviderConfigNotFoundError, ModelProviderValidationError, ModelProviderValidationUnavailableError, modelProviderCredentialKeysMatch, type ResolvedAgentConfig, type ResolveRuntimeCredentialsParams, resolveAgentConfig, resolveRuntimeCredentials, testAndSaveModelProviderConfig, UnsupportedModelProviderError, updateCustomModelProviderConfig, WorkspaceProvidersDisabledError, } from '#core/index.js';
|
|
4
5
|
export { getAgentWorkspaceSettings, getModelProviderConfig, listModelProviderConfigs, setDefaultModelProvider, upsertModelProviderConfig, } from '#db/index.js';
|
|
5
6
|
export declare function createAgentModule(params: {
|
|
6
7
|
secrets: AgentSecretsClient;
|
|
8
|
+
managedProvider?: ManagedModelProvider | undefined;
|
|
7
9
|
}): ShipfoxModule;
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAMhE,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,+BAA+B,EAC/B,oCAAoC,EACpC,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EACrB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,gCAAgC,EAChC,4BAA4B,EAC5B,uCAAuC,EACvC,gCAAgC,EAChC,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACpC,kBAAkB,EAClB,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAEtB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,eAAe,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;CACpD,GAAG,aAAa,CAuBhB"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { assertAgentConfig, workspaceProvidersPolicy } from '#config.js';
|
|
1
2
|
import { db, migrationsPath } from '#db/index.js';
|
|
2
3
|
import { createAgentE2eRoutes } from '#presentation/e2eRoutes/index.js';
|
|
3
4
|
import { createAgentInterModulePresentation } from '#presentation/inter-module.js';
|
|
4
5
|
import { createAgentRoutes } from '#presentation/routes/index.js';
|
|
5
|
-
export { buildModelProviderCatalog, catalogDefaultAgentResolver, createCustomModelProviderConfig, createWorkspaceAgentDefaultsResolver, deleteModelProviderConfig, getModelProviderCredentialKeys, getModelProviderEntry, InvalidAgentModelError, InvalidCredentialFieldsError, isReservedModelProviderId, listSupportedModelProviders, ModelProviderConfigNotFoundError, ModelProviderValidationError, ModelProviderValidationUnavailableError, modelProviderCredentialKeysMatch, resolveAgentConfig, resolveRuntimeCredentials, testAndSaveModelProviderConfig, UnsupportedModelProviderError, updateCustomModelProviderConfig } from '#core/index.js';
|
|
6
|
+
export { buildModelProviderCatalog, catalogDefaultAgentResolver, createCustomModelProviderConfig, createWorkspaceAgentDefaultsResolver, deleteModelProviderConfig, getModelProviderCredentialKeys, getModelProviderEntry, InvalidAgentModelError, InvalidCredentialFieldsError, isReservedModelProviderId, listSupportedModelProviders, ModelProviderConfigNotFoundError, ModelProviderValidationError, ModelProviderValidationUnavailableError, modelProviderCredentialKeysMatch, resolveAgentConfig, resolveRuntimeCredentials, testAndSaveModelProviderConfig, UnsupportedModelProviderError, updateCustomModelProviderConfig, WorkspaceProvidersDisabledError } from '#core/index.js';
|
|
6
7
|
export { getAgentWorkspaceSettings, getModelProviderConfig, listModelProviderConfigs, setDefaultModelProvider, upsertModelProviderConfig } from '#db/index.js';
|
|
7
8
|
export function createAgentModule(params) {
|
|
9
|
+
assertAgentConfig(params.managedProvider);
|
|
8
10
|
return {
|
|
9
11
|
name: 'agent',
|
|
10
12
|
database: {
|
|
@@ -12,12 +14,21 @@ export function createAgentModule(params) {
|
|
|
12
14
|
migrationsPath,
|
|
13
15
|
databaseNamespace: 'agent'
|
|
14
16
|
},
|
|
15
|
-
routes: createAgentRoutes(params.secrets
|
|
17
|
+
routes: createAgentRoutes(params.secrets, {
|
|
18
|
+
managedProvider: params.managedProvider,
|
|
19
|
+
workspaceProviders: workspaceProvidersPolicy
|
|
20
|
+
}),
|
|
16
21
|
e2eRoutes: [
|
|
17
|
-
createAgentE2eRoutes(params.secrets
|
|
22
|
+
createAgentE2eRoutes(params.secrets, {
|
|
23
|
+
managedProviderId: params.managedProvider?.id,
|
|
24
|
+
workspaceProviders: workspaceProvidersPolicy
|
|
25
|
+
})
|
|
18
26
|
],
|
|
19
27
|
interModulePresentations: [
|
|
20
|
-
createAgentInterModulePresentation(
|
|
28
|
+
createAgentInterModulePresentation({
|
|
29
|
+
...params,
|
|
30
|
+
workspaceProviders: workspaceProvidersPolicy
|
|
31
|
+
})
|
|
21
32
|
]
|
|
22
33
|
};
|
|
23
34
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type {ShipfoxModule} from '@shipfox/node-module';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport {db, migrationsPath} from '#db/index.js';\nimport {createAgentE2eRoutes} from '#presentation/e2eRoutes/index.js';\nimport {createAgentInterModulePresentation} from '#presentation/inter-module.js';\nimport {createAgentRoutes} from '#presentation/routes/index.js';\n\nexport {\n type AgentConfigResolutionContext,\n type AgentDefaultsResolver,\n type AgentWorkspaceSettings,\n buildModelProviderCatalog,\n type ContextualAgentConfig,\n catalogDefaultAgentResolver,\n createCustomModelProviderConfig,\n createWorkspaceAgentDefaultsResolver,\n deleteModelProviderConfig,\n getModelProviderCredentialKeys,\n getModelProviderEntry,\n InvalidAgentModelError,\n InvalidCredentialFieldsError,\n isReservedModelProviderId,\n listSupportedModelProviders,\n type ModelProviderConfig,\n ModelProviderConfigNotFoundError,\n ModelProviderValidationError,\n ModelProviderValidationUnavailableError,\n modelProviderCredentialKeysMatch,\n type ResolvedAgentConfig,\n type ResolveRuntimeCredentialsParams,\n resolveAgentConfig,\n resolveRuntimeCredentials,\n testAndSaveModelProviderConfig,\n UnsupportedModelProviderError,\n updateCustomModelProviderConfig,\n} from '#core/index.js';\nexport {\n getAgentWorkspaceSettings,\n getModelProviderConfig,\n listModelProviderConfigs,\n setDefaultModelProvider,\n upsertModelProviderConfig,\n} from '#db/index.js';\n\nexport function createAgentModule(params: {secrets: AgentSecretsClient}): ShipfoxModule {\n return {\n name: 'agent',\n database: {db, migrationsPath, databaseNamespace: 'agent'},\n routes: createAgentRoutes(params.secrets),\n e2eRoutes: [createAgentE2eRoutes(params.secrets)],\n interModulePresentations: [createAgentInterModulePresentation(params)],\n };\n}\n"],"names":["db","migrationsPath","createAgentE2eRoutes","createAgentInterModulePresentation","createAgentRoutes","buildModelProviderCatalog","catalogDefaultAgentResolver","createCustomModelProviderConfig","createWorkspaceAgentDefaultsResolver","deleteModelProviderConfig","getModelProviderCredentialKeys","getModelProviderEntry","InvalidAgentModelError","InvalidCredentialFieldsError","isReservedModelProviderId","listSupportedModelProviders","ModelProviderConfigNotFoundError","ModelProviderValidationError","ModelProviderValidationUnavailableError","modelProviderCredentialKeysMatch","resolveAgentConfig","resolveRuntimeCredentials","testAndSaveModelProviderConfig","UnsupportedModelProviderError","updateCustomModelProviderConfig","getAgentWorkspaceSettings","getModelProviderConfig","listModelProviderConfigs","setDefaultModelProvider","upsertModelProviderConfig","createAgentModule","params","name","database","databaseNamespace","routes","secrets","e2eRoutes","interModulePresentations"],"mappings":"AAEA,SAAQA,EAAE,EAAEC,cAAc,QAAO,eAAe;AAChD,SAAQC,oBAAoB,QAAO,mCAAmC;AACtE,SAAQC,kCAAkC,QAAO,gCAAgC;AACjF,SAAQC,iBAAiB,QAAO,gCAAgC;AAEhE,SAIEC,yBAAyB,EAEzBC,2BAA2B,EAC3BC,+BAA+B,EAC/BC,oCAAoC,EACpCC,yBAAyB,EACzBC,8BAA8B,EAC9BC,qBAAqB,EACrBC,sBAAsB,EACtBC,4BAA4B,EAC5BC,yBAAyB,EACzBC,2BAA2B,EAE3BC,gCAAgC,EAChCC,4BAA4B,EAC5BC,uCAAuC,EACvCC,gCAAgC,EAGhCC,kBAAkB,EAClBC,yBAAyB,EACzBC,8BAA8B,EAC9BC,6BAA6B,EAC7BC,+BAA+B,QAC1B,iBAAiB;AACxB,SACEC,yBAAyB,EACzBC,sBAAsB,EACtBC,wBAAwB,EACxBC,uBAAuB,EACvBC,yBAAyB,QACpB,eAAe;AAEtB,OAAO,SAASC,kBAAkBC,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type {ManagedModelProvider} from '@shipfox/api-agent-dto';\nimport type {ShipfoxModule} from '@shipfox/node-module';\nimport {assertAgentConfig, workspaceProvidersPolicy} from '#config.js';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport {db, migrationsPath} from '#db/index.js';\nimport {createAgentE2eRoutes} from '#presentation/e2eRoutes/index.js';\nimport {createAgentInterModulePresentation} from '#presentation/inter-module.js';\nimport {createAgentRoutes} from '#presentation/routes/index.js';\n\nexport {\n type AgentConfigResolutionContext,\n type AgentDefaultsResolver,\n type AgentWorkspaceSettings,\n buildModelProviderCatalog,\n type ContextualAgentConfig,\n catalogDefaultAgentResolver,\n createCustomModelProviderConfig,\n createWorkspaceAgentDefaultsResolver,\n deleteModelProviderConfig,\n getModelProviderCredentialKeys,\n getModelProviderEntry,\n InvalidAgentModelError,\n InvalidCredentialFieldsError,\n isReservedModelProviderId,\n listSupportedModelProviders,\n type ModelProviderConfig,\n ModelProviderConfigNotFoundError,\n ModelProviderValidationError,\n ModelProviderValidationUnavailableError,\n modelProviderCredentialKeysMatch,\n type ResolvedAgentConfig,\n type ResolveRuntimeCredentialsParams,\n resolveAgentConfig,\n resolveRuntimeCredentials,\n testAndSaveModelProviderConfig,\n UnsupportedModelProviderError,\n updateCustomModelProviderConfig,\n WorkspaceProvidersDisabledError,\n} from '#core/index.js';\nexport {\n getAgentWorkspaceSettings,\n getModelProviderConfig,\n listModelProviderConfigs,\n setDefaultModelProvider,\n upsertModelProviderConfig,\n} from '#db/index.js';\n\nexport function createAgentModule(params: {\n secrets: AgentSecretsClient;\n managedProvider?: ManagedModelProvider | undefined;\n}): ShipfoxModule {\n assertAgentConfig(params.managedProvider);\n\n return {\n name: 'agent',\n database: {db, migrationsPath, databaseNamespace: 'agent'},\n routes: createAgentRoutes(params.secrets, {\n managedProvider: params.managedProvider,\n workspaceProviders: workspaceProvidersPolicy,\n }),\n e2eRoutes: [\n createAgentE2eRoutes(params.secrets, {\n managedProviderId: params.managedProvider?.id,\n workspaceProviders: workspaceProvidersPolicy,\n }),\n ],\n interModulePresentations: [\n createAgentInterModulePresentation({\n ...params,\n workspaceProviders: workspaceProvidersPolicy,\n }),\n ],\n };\n}\n"],"names":["assertAgentConfig","workspaceProvidersPolicy","db","migrationsPath","createAgentE2eRoutes","createAgentInterModulePresentation","createAgentRoutes","buildModelProviderCatalog","catalogDefaultAgentResolver","createCustomModelProviderConfig","createWorkspaceAgentDefaultsResolver","deleteModelProviderConfig","getModelProviderCredentialKeys","getModelProviderEntry","InvalidAgentModelError","InvalidCredentialFieldsError","isReservedModelProviderId","listSupportedModelProviders","ModelProviderConfigNotFoundError","ModelProviderValidationError","ModelProviderValidationUnavailableError","modelProviderCredentialKeysMatch","resolveAgentConfig","resolveRuntimeCredentials","testAndSaveModelProviderConfig","UnsupportedModelProviderError","updateCustomModelProviderConfig","WorkspaceProvidersDisabledError","getAgentWorkspaceSettings","getModelProviderConfig","listModelProviderConfigs","setDefaultModelProvider","upsertModelProviderConfig","createAgentModule","params","managedProvider","name","database","databaseNamespace","routes","secrets","workspaceProviders","e2eRoutes","managedProviderId","id","interModulePresentations"],"mappings":"AAEA,SAAQA,iBAAiB,EAAEC,wBAAwB,QAAO,aAAa;AAEvE,SAAQC,EAAE,EAAEC,cAAc,QAAO,eAAe;AAChD,SAAQC,oBAAoB,QAAO,mCAAmC;AACtE,SAAQC,kCAAkC,QAAO,gCAAgC;AACjF,SAAQC,iBAAiB,QAAO,gCAAgC;AAEhE,SAIEC,yBAAyB,EAEzBC,2BAA2B,EAC3BC,+BAA+B,EAC/BC,oCAAoC,EACpCC,yBAAyB,EACzBC,8BAA8B,EAC9BC,qBAAqB,EACrBC,sBAAsB,EACtBC,4BAA4B,EAC5BC,yBAAyB,EACzBC,2BAA2B,EAE3BC,gCAAgC,EAChCC,4BAA4B,EAC5BC,uCAAuC,EACvCC,gCAAgC,EAGhCC,kBAAkB,EAClBC,yBAAyB,EACzBC,8BAA8B,EAC9BC,6BAA6B,EAC7BC,+BAA+B,EAC/BC,+BAA+B,QAC1B,iBAAiB;AACxB,SACEC,yBAAyB,EACzBC,sBAAsB,EACtBC,wBAAwB,EACxBC,uBAAuB,EACvBC,yBAAyB,QACpB,eAAe;AAEtB,OAAO,SAASC,kBAAkBC,MAGjC;IACClC,kBAAkBkC,OAAOC,eAAe;IAExC,OAAO;QACLC,MAAM;QACNC,UAAU;YAACnC;YAAIC;YAAgBmC,mBAAmB;QAAO;QACzDC,QAAQjC,kBAAkB4B,OAAOM,OAAO,EAAE;YACxCL,iBAAiBD,OAAOC,eAAe;YACvCM,oBAAoBxC;QACtB;QACAyC,WAAW;YACTtC,qBAAqB8B,OAAOM,OAAO,EAAE;gBACnCG,mBAAmBT,OAAOC,eAAe,EAAES;gBAC3CH,oBAAoBxC;YACtB;SACD;QACD4C,0BAA0B;YACxBxC,mCAAmC;gBACjC,GAAG6B,MAAM;gBACTO,oBAAoBxC;YACtB;SACD;IACH;AACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type WorkspaceProviderPolicyOptions } from '#core/index.js';
|
|
1
2
|
import type { AgentSecretsClient } from '#core/secrets-client.js';
|
|
2
|
-
export declare function createE2eModelProviderRoute(secrets: AgentSecretsClient): import("@shipfox/node-fastify").RouteDefinition;
|
|
3
|
+
export declare function createE2eModelProviderRoute(secrets: AgentSecretsClient, workspaceProviderPolicy?: WorkspaceProviderPolicyOptions): import("@shipfox/node-fastify").RouteDefinition;
|
|
3
4
|
//# sourceMappingURL=create-model-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-model-provider.d.ts","sourceRoot":"","sources":["../../../src/presentation/e2eRoutes/create-model-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-model-provider.d.ts","sourceRoot":"","sources":["../../../src/presentation/e2eRoutes/create-model-provider.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAgBhE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kBAAkB,EAC3B,uBAAuB,GAAE,8BAAgE,mDA6C1F"}
|
|
@@ -3,8 +3,10 @@ import { ClientError, defineRoute } from '@shipfox/node-fastify';
|
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { agentSystemNamespace } from '#core/credential-fingerprints.js';
|
|
5
5
|
import { listHarnessProviderModels } from '#core/harness/registry.js';
|
|
6
|
+
import { assertWorkspaceProviderConfigurationEnabled } from '#core/index.js';
|
|
6
7
|
import { getModelProviderEntry } from '#core/model-provider-policy.js';
|
|
7
8
|
import { upsertModelProviderConfig } from '#db/index.js';
|
|
9
|
+
import { translateModelProviderRouteError } from '#presentation/routes/errors.js';
|
|
8
10
|
const createE2eModelProviderBodySchema = z.object({
|
|
9
11
|
workspace_id: z.string().uuid(),
|
|
10
12
|
provider_id: z.literal('anthropic'),
|
|
@@ -15,7 +17,9 @@ const createE2eModelProviderBodySchema = z.object({
|
|
|
15
17
|
const createE2eModelProviderResponseSchema = z.object({
|
|
16
18
|
provider_id: z.literal('anthropic')
|
|
17
19
|
});
|
|
18
|
-
export function createE2eModelProviderRoute(secrets
|
|
20
|
+
export function createE2eModelProviderRoute(secrets, workspaceProviderPolicy = {
|
|
21
|
+
workspaceProviders: 'enabled'
|
|
22
|
+
}) {
|
|
19
23
|
return defineRoute({
|
|
20
24
|
method: 'POST',
|
|
21
25
|
path: '/model-provider',
|
|
@@ -26,7 +30,9 @@ export function createE2eModelProviderRoute(secrets) {
|
|
|
26
30
|
201: createE2eModelProviderResponseSchema
|
|
27
31
|
}
|
|
28
32
|
},
|
|
33
|
+
errorHandler: translateModelProviderRouteError,
|
|
29
34
|
handler: async (request, reply)=>{
|
|
35
|
+
assertWorkspaceProviderConfigurationEnabled(workspaceProviderPolicy);
|
|
30
36
|
const entry = getModelProviderEntry(request.body.provider_id);
|
|
31
37
|
if (entry === undefined || entry.default_model === null) {
|
|
32
38
|
throw new ClientError('Unsupported E2E model provider', 'unsupported-model-provider', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/presentation/e2eRoutes/create-model-provider.ts"],"sourcesContent":["import {DEFAULT_AGENT_THINKING} from '@shipfox/api-agent-dto';\nimport {ClientError, defineRoute} from '@shipfox/node-fastify';\nimport {z} from 'zod';\nimport {agentSystemNamespace} from '#core/credential-fingerprints.js';\nimport {listHarnessProviderModels} from '#core/harness/registry.js';\nimport {getModelProviderEntry} from '#core/model-provider-policy.js';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport {upsertModelProviderConfig} from '#db/index.js';\n\nconst createE2eModelProviderBodySchema = z.object({\n workspace_id: z.string().uuid(),\n provider_id: z.literal('anthropic'),\n api_key: z.string().min(1),\n default_model: z.string().min(1).optional(),\n set_as_default: z.boolean().optional(),\n});\n\nconst createE2eModelProviderResponseSchema = z.object({\n provider_id: z.literal('anthropic'),\n});\n\nexport function createE2eModelProviderRoute(secrets: AgentSecretsClient) {\n return defineRoute({\n method: 'POST',\n path: '/model-provider',\n description: 'Create an Anthropic model provider config for E2E tests.',\n schema: {\n body: createE2eModelProviderBodySchema,\n response: {201: createE2eModelProviderResponseSchema},\n },\n handler: async (request, reply) => {\n const entry = getModelProviderEntry(request.body.provider_id);\n if (entry === undefined || entry.default_model === null) {\n throw new ClientError('Unsupported E2E model provider', 'unsupported-model-provider', {\n status: 400,\n });\n }\n const defaultModel = request.body.default_model ?? entry.default_model;\n const supportedModels = listHarnessProviderModels('claude', request.body.provider_id);\n if (!supportedModels.some((model) => model.id === defaultModel)) {\n throw new ClientError('Unsupported Anthropic default model', 'unsupported-model', {\n status: 400,\n details: {default_model: defaultModel},\n });\n }\n\n await secrets.setSecrets({\n workspaceId: request.body.workspace_id,\n namespace: agentSystemNamespace(request.body.provider_id),\n values: {API_KEY: request.body.api_key},\n });\n await upsertModelProviderConfig({\n workspaceId: request.body.workspace_id,\n providerId: request.body.provider_id,\n defaultModel,\n defaultThinking: DEFAULT_AGENT_THINKING,\n setAsDefault: request.body.set_as_default,\n });\n\n reply.code(201);\n return {provider_id: request.body.provider_id};\n },\n });\n}\n"],"names":["DEFAULT_AGENT_THINKING","ClientError","defineRoute","z","agentSystemNamespace","listHarnessProviderModels","getModelProviderEntry","upsertModelProviderConfig","createE2eModelProviderBodySchema","object","workspace_id","string","uuid","provider_id","literal","api_key","min","default_model","optional","set_as_default","boolean","createE2eModelProviderResponseSchema","createE2eModelProviderRoute","secrets","method","path","description","schema","body","response","handler","request","reply","entry","undefined","status","defaultModel","supportedModels","some","model","id","details","setSecrets","workspaceId","namespace","values","API_KEY","providerId","defaultThinking","setAsDefault","code"],"mappings":"AAAA,SAAQA,sBAAsB,QAAO,yBAAyB;AAC9D,SAAQC,WAAW,EAAEC,WAAW,QAAO,wBAAwB;AAC/D,SAAQC,CAAC,QAAO,MAAM;AACtB,SAAQC,oBAAoB,QAAO,mCAAmC;AACtE,SAAQC,yBAAyB,QAAO,4BAA4B;AACpE,SAAQC,qBAAqB,QAAO,iCAAiC;AAErE,SAAQC,yBAAyB,QAAO,eAAe;
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/e2eRoutes/create-model-provider.ts"],"sourcesContent":["import {DEFAULT_AGENT_THINKING} from '@shipfox/api-agent-dto';\nimport {ClientError, defineRoute} from '@shipfox/node-fastify';\nimport {z} from 'zod';\nimport {agentSystemNamespace} from '#core/credential-fingerprints.js';\nimport {listHarnessProviderModels} from '#core/harness/registry.js';\nimport {\n assertWorkspaceProviderConfigurationEnabled,\n type WorkspaceProviderPolicyOptions,\n} from '#core/index.js';\nimport {getModelProviderEntry} from '#core/model-provider-policy.js';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport {upsertModelProviderConfig} from '#db/index.js';\nimport {translateModelProviderRouteError} from '#presentation/routes/errors.js';\n\nconst createE2eModelProviderBodySchema = z.object({\n workspace_id: z.string().uuid(),\n provider_id: z.literal('anthropic'),\n api_key: z.string().min(1),\n default_model: z.string().min(1).optional(),\n set_as_default: z.boolean().optional(),\n});\n\nconst createE2eModelProviderResponseSchema = z.object({\n provider_id: z.literal('anthropic'),\n});\n\nexport function createE2eModelProviderRoute(\n secrets: AgentSecretsClient,\n workspaceProviderPolicy: WorkspaceProviderPolicyOptions = {workspaceProviders: 'enabled'},\n) {\n return defineRoute({\n method: 'POST',\n path: '/model-provider',\n description: 'Create an Anthropic model provider config for E2E tests.',\n schema: {\n body: createE2eModelProviderBodySchema,\n response: {201: createE2eModelProviderResponseSchema},\n },\n errorHandler: translateModelProviderRouteError,\n handler: async (request, reply) => {\n assertWorkspaceProviderConfigurationEnabled(workspaceProviderPolicy);\n const entry = getModelProviderEntry(request.body.provider_id);\n if (entry === undefined || entry.default_model === null) {\n throw new ClientError('Unsupported E2E model provider', 'unsupported-model-provider', {\n status: 400,\n });\n }\n const defaultModel = request.body.default_model ?? entry.default_model;\n const supportedModels = listHarnessProviderModels('claude', request.body.provider_id);\n if (!supportedModels.some((model) => model.id === defaultModel)) {\n throw new ClientError('Unsupported Anthropic default model', 'unsupported-model', {\n status: 400,\n details: {default_model: defaultModel},\n });\n }\n\n await secrets.setSecrets({\n workspaceId: request.body.workspace_id,\n namespace: agentSystemNamespace(request.body.provider_id),\n values: {API_KEY: request.body.api_key},\n });\n await upsertModelProviderConfig({\n workspaceId: request.body.workspace_id,\n providerId: request.body.provider_id,\n defaultModel,\n defaultThinking: DEFAULT_AGENT_THINKING,\n setAsDefault: request.body.set_as_default,\n });\n\n reply.code(201);\n return {provider_id: request.body.provider_id};\n },\n });\n}\n"],"names":["DEFAULT_AGENT_THINKING","ClientError","defineRoute","z","agentSystemNamespace","listHarnessProviderModels","assertWorkspaceProviderConfigurationEnabled","getModelProviderEntry","upsertModelProviderConfig","translateModelProviderRouteError","createE2eModelProviderBodySchema","object","workspace_id","string","uuid","provider_id","literal","api_key","min","default_model","optional","set_as_default","boolean","createE2eModelProviderResponseSchema","createE2eModelProviderRoute","secrets","workspaceProviderPolicy","workspaceProviders","method","path","description","schema","body","response","errorHandler","handler","request","reply","entry","undefined","status","defaultModel","supportedModels","some","model","id","details","setSecrets","workspaceId","namespace","values","API_KEY","providerId","defaultThinking","setAsDefault","code"],"mappings":"AAAA,SAAQA,sBAAsB,QAAO,yBAAyB;AAC9D,SAAQC,WAAW,EAAEC,WAAW,QAAO,wBAAwB;AAC/D,SAAQC,CAAC,QAAO,MAAM;AACtB,SAAQC,oBAAoB,QAAO,mCAAmC;AACtE,SAAQC,yBAAyB,QAAO,4BAA4B;AACpE,SACEC,2CAA2C,QAEtC,iBAAiB;AACxB,SAAQC,qBAAqB,QAAO,iCAAiC;AAErE,SAAQC,yBAAyB,QAAO,eAAe;AACvD,SAAQC,gCAAgC,QAAO,iCAAiC;AAEhF,MAAMC,mCAAmCP,EAAEQ,MAAM,CAAC;IAChDC,cAAcT,EAAEU,MAAM,GAAGC,IAAI;IAC7BC,aAAaZ,EAAEa,OAAO,CAAC;IACvBC,SAASd,EAAEU,MAAM,GAAGK,GAAG,CAAC;IACxBC,eAAehB,EAAEU,MAAM,GAAGK,GAAG,CAAC,GAAGE,QAAQ;IACzCC,gBAAgBlB,EAAEmB,OAAO,GAAGF,QAAQ;AACtC;AAEA,MAAMG,uCAAuCpB,EAAEQ,MAAM,CAAC;IACpDI,aAAaZ,EAAEa,OAAO,CAAC;AACzB;AAEA,OAAO,SAASQ,4BACdC,OAA2B,EAC3BC,0BAA0D;IAACC,oBAAoB;AAAS,CAAC;IAEzF,OAAOzB,YAAY;QACjB0B,QAAQ;QACRC,MAAM;QACNC,aAAa;QACbC,QAAQ;YACNC,MAAMtB;YACNuB,UAAU;gBAAC,KAAKV;YAAoC;QACtD;QACAW,cAAczB;QACd0B,SAAS,OAAOC,SAASC;YACvB/B,4CAA4CoB;YAC5C,MAAMY,QAAQ/B,sBAAsB6B,QAAQJ,IAAI,CAACjB,WAAW;YAC5D,IAAIuB,UAAUC,aAAaD,MAAMnB,aAAa,KAAK,MAAM;gBACvD,MAAM,IAAIlB,YAAY,kCAAkC,8BAA8B;oBACpFuC,QAAQ;gBACV;YACF;YACA,MAAMC,eAAeL,QAAQJ,IAAI,CAACb,aAAa,IAAImB,MAAMnB,aAAa;YACtE,MAAMuB,kBAAkBrC,0BAA0B,UAAU+B,QAAQJ,IAAI,CAACjB,WAAW;YACpF,IAAI,CAAC2B,gBAAgBC,IAAI,CAAC,CAACC,QAAUA,MAAMC,EAAE,KAAKJ,eAAe;gBAC/D,MAAM,IAAIxC,YAAY,uCAAuC,qBAAqB;oBAChFuC,QAAQ;oBACRM,SAAS;wBAAC3B,eAAesB;oBAAY;gBACvC;YACF;YAEA,MAAMhB,QAAQsB,UAAU,CAAC;gBACvBC,aAAaZ,QAAQJ,IAAI,CAACpB,YAAY;gBACtCqC,WAAW7C,qBAAqBgC,QAAQJ,IAAI,CAACjB,WAAW;gBACxDmC,QAAQ;oBAACC,SAASf,QAAQJ,IAAI,CAACf,OAAO;gBAAA;YACxC;YACA,MAAMT,0BAA0B;gBAC9BwC,aAAaZ,QAAQJ,IAAI,CAACpB,YAAY;gBACtCwC,YAAYhB,QAAQJ,IAAI,CAACjB,WAAW;gBACpC0B;gBACAY,iBAAiBrD;gBACjBsD,cAAclB,QAAQJ,IAAI,CAACX,cAAc;YAC3C;YAEAgB,MAAMkB,IAAI,CAAC;YACX,OAAO;gBAACxC,aAAaqB,QAAQJ,IAAI,CAACjB,WAAW;YAAA;QAC/C;IACF;AACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { RouteGroup } from '@shipfox/node-fastify';
|
|
2
2
|
import type { AgentSecretsClient } from '#core/secrets-client.js';
|
|
3
|
-
|
|
3
|
+
import type { WorkspaceProviderPolicyOptions } from '#core/workspace-provider-policy.js';
|
|
4
|
+
export declare function createAgentE2eRoutes(secrets: AgentSecretsClient, workspaceProviderPolicy?: WorkspaceProviderPolicyOptions): RouteGroup;
|
|
4
5
|
export declare const agentE2eRoutes: RouteGroup;
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presentation/e2eRoutes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presentation/e2eRoutes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAC,8BAA8B,EAAC,MAAM,oCAAoC,CAAC;AAGvF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,kBAAkB,EAC3B,uBAAuB,GAAE,8BAAgE,GACxF,UAAU,CAKZ;AAED,eAAO,MAAM,cAAc,YAAmE,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { createE2eModelProviderRoute } from './create-model-provider.js';
|
|
2
|
-
export function createAgentE2eRoutes(secrets
|
|
2
|
+
export function createAgentE2eRoutes(secrets, workspaceProviderPolicy = {
|
|
3
|
+
workspaceProviders: 'enabled'
|
|
4
|
+
}) {
|
|
3
5
|
return {
|
|
4
6
|
prefix: '/agent',
|
|
5
7
|
routes: [
|
|
6
|
-
createE2eModelProviderRoute(secrets)
|
|
8
|
+
createE2eModelProviderRoute(secrets, workspaceProviderPolicy)
|
|
7
9
|
]
|
|
8
10
|
};
|
|
9
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/presentation/e2eRoutes/index.ts"],"sourcesContent":["import type {RouteGroup} from '@shipfox/node-fastify';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport {createE2eModelProviderRoute} from './create-model-provider.js';\n\nexport function createAgentE2eRoutes(secrets: AgentSecretsClient): RouteGroup {\n return {prefix: '/agent'
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/e2eRoutes/index.ts"],"sourcesContent":["import type {RouteGroup} from '@shipfox/node-fastify';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport type {WorkspaceProviderPolicyOptions} from '#core/workspace-provider-policy.js';\nimport {createE2eModelProviderRoute} from './create-model-provider.js';\n\nexport function createAgentE2eRoutes(\n secrets: AgentSecretsClient,\n workspaceProviderPolicy: WorkspaceProviderPolicyOptions = {workspaceProviders: 'enabled'},\n): RouteGroup {\n return {\n prefix: '/agent',\n routes: [createE2eModelProviderRoute(secrets, workspaceProviderPolicy)],\n };\n}\n\nexport const agentE2eRoutes = createAgentE2eRoutes(undefined as unknown as AgentSecretsClient);\n"],"names":["createE2eModelProviderRoute","createAgentE2eRoutes","secrets","workspaceProviderPolicy","workspaceProviders","prefix","routes","agentE2eRoutes","undefined"],"mappings":"AAGA,SAAQA,2BAA2B,QAAO,6BAA6B;AAEvE,OAAO,SAASC,qBACdC,OAA2B,EAC3BC,0BAA0D;IAACC,oBAAoB;AAAS,CAAC;IAEzF,OAAO;QACLC,QAAQ;QACRC,QAAQ;YAACN,4BAA4BE,SAASC;SAAyB;IACzE;AACF;AAEA,OAAO,MAAMI,iBAAiBN,qBAAqBO,WAA4C"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import type { ManagedModelProvider, WorkspaceProvidersPolicy } from '@shipfox/api-agent-dto';
|
|
1
2
|
import { agentInterModuleContract } from '@shipfox/api-agent-dto/inter-module';
|
|
2
3
|
import { type InterModulePresentation } from '@shipfox/inter-module';
|
|
3
4
|
import type { AgentSecretsClient } from '#core/secrets-client.js';
|
|
4
5
|
export declare function createAgentInterModulePresentation(params: {
|
|
5
6
|
secrets: AgentSecretsClient;
|
|
7
|
+
managedProvider?: ManagedModelProvider | undefined;
|
|
8
|
+
workspaceProviders?: WorkspaceProvidersPolicy | undefined;
|
|
6
9
|
}): InterModulePresentation<typeof agentInterModuleContract>;
|
|
7
10
|
//# sourceMappingURL=inter-module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inter-module.d.ts","sourceRoot":"","sources":["../../src/presentation/inter-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,qCAAqC,CAAC;AAE7E,OAAO,EAGL,KAAK,uBAAuB,EAE7B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"inter-module.d.ts","sourceRoot":"","sources":["../../src/presentation/inter-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAE,wBAAwB,EAAC,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAC,wBAAwB,EAAC,MAAM,qCAAqC,CAAC;AAE7E,OAAO,EAGL,KAAK,uBAAuB,EAE7B,MAAM,uBAAuB,CAAC;AAW/B,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAIhE,wBAAgB,kCAAkC,CAAC,MAAM,EAAE;IACzD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,eAAe,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACnD,kBAAkB,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;CAC3D,GAAG,uBAAuB,CAAC,OAAO,wBAAwB,CAAC,CAmC3D"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { agentInterModuleContract } from '@shipfox/api-agent-dto/inter-module';
|
|
2
2
|
import { secretsInterModuleContract } from '@shipfox/api-secrets-dto/inter-module';
|
|
3
3
|
import { createInterModuleKnownError, defineInterModulePresentation, isInterModuleKnownError } from '@shipfox/inter-module';
|
|
4
|
-
import { InvalidAgentModelError, ModelProviderConfigNotFoundError, UnsupportedHarnessProviderError, UnsupportedHarnessThinkingError, UnsupportedModelProviderError } from '#core/errors.js';
|
|
4
|
+
import { InvalidAgentModelError, ModelProviderConfigNotFoundError, UnsupportedHarnessProviderError, UnsupportedHarnessThinkingError, UnsupportedModelProviderError, WorkspaceProvidersDisabledError } from '#core/errors.js';
|
|
5
5
|
import { resolveAgentConfig } from '#core/resolve-agent-config.js';
|
|
6
6
|
import { resolveRuntimeCredentials } from '#core/resolve-runtime-credentials.js';
|
|
7
7
|
import { getAgentValidationCatalog } from '#core/validation-catalog.js';
|
|
8
8
|
import { createWorkspaceAgentDefaultsResolver } from '#core/workspace-agent-defaults-resolver.js';
|
|
9
9
|
export function createAgentInterModulePresentation(params) {
|
|
10
10
|
return defineInterModulePresentation(agentInterModuleContract, {
|
|
11
|
-
getValidationCatalog: ()=>getAgentValidationCatalog(),
|
|
11
|
+
getValidationCatalog: ()=>getAgentValidationCatalog(params.managedProvider, params.workspaceProviders),
|
|
12
12
|
resolveAgentConfig: async ({ workspaceId, config })=>{
|
|
13
13
|
try {
|
|
14
|
-
const resolve = workspaceId === null ? resolveAgentConfig
|
|
14
|
+
const resolve = workspaceId === null ? (step)=>resolveAgentConfig(step, {
|
|
15
|
+
managedProvider: params.managedProvider,
|
|
16
|
+
workspaceProviders: params.workspaceProviders
|
|
17
|
+
}) : await createWorkspaceAgentDefaultsResolver(workspaceId, params.managedProvider, params.workspaceProviders);
|
|
15
18
|
return await resolve(config);
|
|
16
19
|
} catch (error) {
|
|
17
20
|
throw toResolveAgentConfigKnownError(error);
|
|
@@ -20,7 +23,9 @@ export function createAgentInterModulePresentation(params) {
|
|
|
20
23
|
resolveRuntimeCredentials: async (input)=>{
|
|
21
24
|
try {
|
|
22
25
|
return await resolveRuntimeCredentials(input, {
|
|
23
|
-
|
|
26
|
+
managedProvider: params.managedProvider,
|
|
27
|
+
secrets: params.secrets,
|
|
28
|
+
workspaceProviders: params.workspaceProviders
|
|
24
29
|
});
|
|
25
30
|
} catch (error) {
|
|
26
31
|
throw toResolveRuntimeCredentialsKnownError(error);
|
|
@@ -29,12 +34,23 @@ export function createAgentInterModulePresentation(params) {
|
|
|
29
34
|
});
|
|
30
35
|
}
|
|
31
36
|
function toResolveAgentConfigKnownError(error) {
|
|
32
|
-
if (error instanceof InvalidAgentModelError || error instanceof UnsupportedHarnessProviderError || error instanceof UnsupportedHarnessThinkingError || error instanceof UnsupportedModelProviderError) {
|
|
33
|
-
return createInterModuleKnownError(agentInterModuleContract.methods.resolveAgentConfig, 'agent-config-invalid', {
|
|
37
|
+
if (error instanceof InvalidAgentModelError || error instanceof UnsupportedHarnessProviderError || error instanceof UnsupportedHarnessThinkingError || error instanceof UnsupportedModelProviderError || error instanceof WorkspaceProvidersDisabledError) {
|
|
38
|
+
return createInterModuleKnownError(agentInterModuleContract.methods.resolveAgentConfig, 'agent-config-invalid', {
|
|
39
|
+
...error instanceof WorkspaceProvidersDisabledError ? {
|
|
40
|
+
message: error.message,
|
|
41
|
+
managed_provider_id: error.managedProviderId
|
|
42
|
+
} : {}
|
|
43
|
+
});
|
|
34
44
|
}
|
|
35
45
|
return error;
|
|
36
46
|
}
|
|
37
47
|
function toResolveRuntimeCredentialsKnownError(error) {
|
|
48
|
+
if (error instanceof WorkspaceProvidersDisabledError) {
|
|
49
|
+
return createInterModuleKnownError(agentInterModuleContract.methods.resolveRuntimeCredentials, 'workspace-providers-disabled', {
|
|
50
|
+
message: error.message,
|
|
51
|
+
managed_provider_id: error.managedProviderId
|
|
52
|
+
});
|
|
53
|
+
}
|
|
38
54
|
if (error instanceof ModelProviderConfigNotFoundError) {
|
|
39
55
|
return createInterModuleKnownError(agentInterModuleContract.methods.resolveRuntimeCredentials, 'model-provider-not-configured', {});
|
|
40
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/presentation/inter-module.ts"],"sourcesContent":["import {agentInterModuleContract} from '@shipfox/api-agent-dto/inter-module';\nimport {secretsInterModuleContract} from '@shipfox/api-secrets-dto/inter-module';\nimport {\n createInterModuleKnownError,\n defineInterModulePresentation,\n type InterModulePresentation,\n isInterModuleKnownError,\n} from '@shipfox/inter-module';\nimport {\n InvalidAgentModelError,\n ModelProviderConfigNotFoundError,\n UnsupportedHarnessProviderError,\n UnsupportedHarnessThinkingError,\n UnsupportedModelProviderError,\n} from '#core/errors.js';\nimport {resolveAgentConfig} from '#core/resolve-agent-config.js';\nimport {resolveRuntimeCredentials} from '#core/resolve-runtime-credentials.js';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport {getAgentValidationCatalog} from '#core/validation-catalog.js';\nimport {createWorkspaceAgentDefaultsResolver} from '#core/workspace-agent-defaults-resolver.js';\n\nexport function createAgentInterModulePresentation(params: {\n secrets: AgentSecretsClient;\n}): InterModulePresentation<typeof agentInterModuleContract> {\n return defineInterModulePresentation(agentInterModuleContract, {\n getValidationCatalog: ()
|
|
1
|
+
{"version":3,"sources":["../../src/presentation/inter-module.ts"],"sourcesContent":["import type {ManagedModelProvider, WorkspaceProvidersPolicy} from '@shipfox/api-agent-dto';\nimport {agentInterModuleContract} from '@shipfox/api-agent-dto/inter-module';\nimport {secretsInterModuleContract} from '@shipfox/api-secrets-dto/inter-module';\nimport {\n createInterModuleKnownError,\n defineInterModulePresentation,\n type InterModulePresentation,\n isInterModuleKnownError,\n} from '@shipfox/inter-module';\nimport {\n InvalidAgentModelError,\n ModelProviderConfigNotFoundError,\n UnsupportedHarnessProviderError,\n UnsupportedHarnessThinkingError,\n UnsupportedModelProviderError,\n WorkspaceProvidersDisabledError,\n} from '#core/errors.js';\nimport {resolveAgentConfig} from '#core/resolve-agent-config.js';\nimport {resolveRuntimeCredentials} from '#core/resolve-runtime-credentials.js';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport {getAgentValidationCatalog} from '#core/validation-catalog.js';\nimport {createWorkspaceAgentDefaultsResolver} from '#core/workspace-agent-defaults-resolver.js';\n\nexport function createAgentInterModulePresentation(params: {\n secrets: AgentSecretsClient;\n managedProvider?: ManagedModelProvider | undefined;\n workspaceProviders?: WorkspaceProvidersPolicy | undefined;\n}): InterModulePresentation<typeof agentInterModuleContract> {\n return defineInterModulePresentation(agentInterModuleContract, {\n getValidationCatalog: () =>\n getAgentValidationCatalog(params.managedProvider, params.workspaceProviders),\n resolveAgentConfig: async ({workspaceId, config}) => {\n try {\n const resolve =\n workspaceId === null\n ? (step: Parameters<typeof resolveAgentConfig>[0]) =>\n resolveAgentConfig(step, {\n managedProvider: params.managedProvider,\n workspaceProviders: params.workspaceProviders,\n })\n : await createWorkspaceAgentDefaultsResolver(\n workspaceId,\n params.managedProvider,\n params.workspaceProviders,\n );\n return await resolve(config);\n } catch (error) {\n throw toResolveAgentConfigKnownError(error);\n }\n },\n resolveRuntimeCredentials: async (input) => {\n try {\n return await resolveRuntimeCredentials(input, {\n managedProvider: params.managedProvider,\n secrets: params.secrets,\n workspaceProviders: params.workspaceProviders,\n });\n } catch (error) {\n throw toResolveRuntimeCredentialsKnownError(error);\n }\n },\n });\n}\n\nfunction toResolveAgentConfigKnownError(error: unknown): unknown {\n if (\n error instanceof InvalidAgentModelError ||\n error instanceof UnsupportedHarnessProviderError ||\n error instanceof UnsupportedHarnessThinkingError ||\n error instanceof UnsupportedModelProviderError ||\n error instanceof WorkspaceProvidersDisabledError\n ) {\n return createInterModuleKnownError(\n agentInterModuleContract.methods.resolveAgentConfig,\n 'agent-config-invalid',\n {\n ...(error instanceof WorkspaceProvidersDisabledError\n ? {message: error.message, managed_provider_id: error.managedProviderId}\n : {}),\n },\n );\n }\n return error;\n}\n\nfunction toResolveRuntimeCredentialsKnownError(error: unknown): unknown {\n if (error instanceof WorkspaceProvidersDisabledError) {\n return createInterModuleKnownError(\n agentInterModuleContract.methods.resolveRuntimeCredentials,\n 'workspace-providers-disabled',\n {\n message: error.message,\n managed_provider_id: error.managedProviderId,\n },\n );\n }\n if (error instanceof ModelProviderConfigNotFoundError) {\n return createInterModuleKnownError(\n agentInterModuleContract.methods.resolveRuntimeCredentials,\n 'model-provider-not-configured',\n {},\n );\n }\n if (isInterModuleKnownError(secretsInterModuleContract.methods.getSecretsByNamespace, error)) {\n return createInterModuleKnownError(\n agentInterModuleContract.methods.resolveRuntimeCredentials,\n 'model-provider-credentials-invalid',\n {},\n );\n }\n return error;\n}\n"],"names":["agentInterModuleContract","secretsInterModuleContract","createInterModuleKnownError","defineInterModulePresentation","isInterModuleKnownError","InvalidAgentModelError","ModelProviderConfigNotFoundError","UnsupportedHarnessProviderError","UnsupportedHarnessThinkingError","UnsupportedModelProviderError","WorkspaceProvidersDisabledError","resolveAgentConfig","resolveRuntimeCredentials","getAgentValidationCatalog","createWorkspaceAgentDefaultsResolver","createAgentInterModulePresentation","params","getValidationCatalog","managedProvider","workspaceProviders","workspaceId","config","resolve","step","error","toResolveAgentConfigKnownError","input","secrets","toResolveRuntimeCredentialsKnownError","methods","message","managed_provider_id","managedProviderId","getSecretsByNamespace"],"mappings":"AACA,SAAQA,wBAAwB,QAAO,sCAAsC;AAC7E,SAAQC,0BAA0B,QAAO,wCAAwC;AACjF,SACEC,2BAA2B,EAC3BC,6BAA6B,EAE7BC,uBAAuB,QAClB,wBAAwB;AAC/B,SACEC,sBAAsB,EACtBC,gCAAgC,EAChCC,+BAA+B,EAC/BC,+BAA+B,EAC/BC,6BAA6B,EAC7BC,+BAA+B,QAC1B,kBAAkB;AACzB,SAAQC,kBAAkB,QAAO,gCAAgC;AACjE,SAAQC,yBAAyB,QAAO,uCAAuC;AAE/E,SAAQC,yBAAyB,QAAO,8BAA8B;AACtE,SAAQC,oCAAoC,QAAO,6CAA6C;AAEhG,OAAO,SAASC,mCAAmCC,MAIlD;IACC,OAAOb,8BAA8BH,0BAA0B;QAC7DiB,sBAAsB,IACpBJ,0BAA0BG,OAAOE,eAAe,EAAEF,OAAOG,kBAAkB;QAC7ER,oBAAoB,OAAO,EAACS,WAAW,EAAEC,MAAM,EAAC;YAC9C,IAAI;gBACF,MAAMC,UACJF,gBAAgB,OACZ,CAACG,OACCZ,mBAAmBY,MAAM;wBACvBL,iBAAiBF,OAAOE,eAAe;wBACvCC,oBAAoBH,OAAOG,kBAAkB;oBAC/C,KACF,MAAML,qCACJM,aACAJ,OAAOE,eAAe,EACtBF,OAAOG,kBAAkB;gBAEjC,OAAO,MAAMG,QAAQD;YACvB,EAAE,OAAOG,OAAO;gBACd,MAAMC,+BAA+BD;YACvC;QACF;QACAZ,2BAA2B,OAAOc;YAChC,IAAI;gBACF,OAAO,MAAMd,0BAA0Bc,OAAO;oBAC5CR,iBAAiBF,OAAOE,eAAe;oBACvCS,SAASX,OAAOW,OAAO;oBACvBR,oBAAoBH,OAAOG,kBAAkB;gBAC/C;YACF,EAAE,OAAOK,OAAO;gBACd,MAAMI,sCAAsCJ;YAC9C;QACF;IACF;AACF;AAEA,SAASC,+BAA+BD,KAAc;IACpD,IACEA,iBAAiBnB,0BACjBmB,iBAAiBjB,mCACjBiB,iBAAiBhB,mCACjBgB,iBAAiBf,iCACjBe,iBAAiBd,iCACjB;QACA,OAAOR,4BACLF,yBAAyB6B,OAAO,CAAClB,kBAAkB,EACnD,wBACA;YACE,GAAIa,iBAAiBd,kCACjB;gBAACoB,SAASN,MAAMM,OAAO;gBAAEC,qBAAqBP,MAAMQ,iBAAiB;YAAA,IACrE,CAAC,CAAC;QACR;IAEJ;IACA,OAAOR;AACT;AAEA,SAASI,sCAAsCJ,KAAc;IAC3D,IAAIA,iBAAiBd,iCAAiC;QACpD,OAAOR,4BACLF,yBAAyB6B,OAAO,CAACjB,yBAAyB,EAC1D,gCACA;YACEkB,SAASN,MAAMM,OAAO;YACtBC,qBAAqBP,MAAMQ,iBAAiB;QAC9C;IAEJ;IACA,IAAIR,iBAAiBlB,kCAAkC;QACrD,OAAOJ,4BACLF,yBAAyB6B,OAAO,CAACjB,yBAAyB,EAC1D,iCACA,CAAC;IAEL;IACA,IAAIR,wBAAwBH,2BAA2B4B,OAAO,CAACI,qBAAqB,EAAET,QAAQ;QAC5F,OAAOtB,4BACLF,yBAAyB6B,OAAO,CAACjB,yBAAyB,EAC1D,sCACA,CAAC;IAEL;IACA,OAAOY;AACT"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { AgentSecretsClient } from '#core/secrets-client.js';
|
|
2
|
-
|
|
2
|
+
import type { WorkspaceProviderPolicyOptions } from '#core/workspace-provider-policy.js';
|
|
3
|
+
export declare function createCustomModelProviderRoute(secrets: AgentSecretsClient, workspaceProviderPolicy?: WorkspaceProviderPolicyOptions): import("@shipfox/node-fastify").RouteDefinition;
|
|
3
4
|
//# sourceMappingURL=create-custom-model-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-custom-model-provider.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/create-custom-model-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-custom-model-provider.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/create-custom-model-provider.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAC,8BAA8B,EAAC,MAAM,oCAAoC,CAAC;AAIvF,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,kBAAkB,EAC3B,uBAAuB,GAAE,8BAAgE,mDAwC1F"}
|
|
@@ -2,10 +2,12 @@ import { createCustomModelProviderBodySchema, customModelProviderConfigDtoSchema
|
|
|
2
2
|
import { requireWorkspaceAccess } from '@shipfox/api-auth-context';
|
|
3
3
|
import { defineRoute } from '@shipfox/node-fastify';
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
import { createCustomModelProviderConfig } from '#core/index.js';
|
|
5
|
+
import { assertWorkspaceProviderConfigurationEnabled, createCustomModelProviderConfig } from '#core/index.js';
|
|
6
6
|
import { toCustomModelProviderConfigDto } from '#presentation/dto/index.js';
|
|
7
7
|
import { translateModelProviderRouteError } from './errors.js';
|
|
8
|
-
export function createCustomModelProviderRoute(secrets
|
|
8
|
+
export function createCustomModelProviderRoute(secrets, workspaceProviderPolicy = {
|
|
9
|
+
workspaceProviders: 'enabled'
|
|
10
|
+
}) {
|
|
9
11
|
return defineRoute({
|
|
10
12
|
method: 'POST',
|
|
11
13
|
path: '/custom-model-providers',
|
|
@@ -34,6 +36,7 @@ export function createCustomModelProviderRoute(secrets) {
|
|
|
34
36
|
request,
|
|
35
37
|
workspaceId
|
|
36
38
|
});
|
|
39
|
+
assertWorkspaceProviderConfigurationEnabled(workspaceProviderPolicy);
|
|
37
40
|
const config = await createCustomModelProviderConfig({
|
|
38
41
|
workspaceId,
|
|
39
42
|
body: request.body,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/presentation/routes/create-custom-model-provider.ts"],"sourcesContent":["import {\n createCustomModelProviderBodySchema,\n customModelProviderConfigDtoSchema,\n} from '@shipfox/api-agent-dto';\nimport {requireWorkspaceAccess} from '@shipfox/api-auth-context';\nimport {defineRoute} from '@shipfox/node-fastify';\nimport {z} from 'zod';\nimport {createCustomModelProviderConfig} from '#core/index.js';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport {toCustomModelProviderConfigDto} from '#presentation/dto/index.js';\nimport {translateModelProviderRouteError} from './errors.js';\n\nexport function createCustomModelProviderRoute(secrets: AgentSecretsClient) {\n return defineRoute({\n method: 'POST',\n path: '/custom-model-providers',\n description: 'Create a custom model provider configuration for a workspace',\n schema: {\n params: z.object({workspaceId: z.string().uuid()}),\n body: createCustomModelProviderBodySchema,\n response: {\n 200: customModelProviderConfigDtoSchema,\n },\n },\n errorHandler: translateModelProviderRouteError,\n handler: async (request, reply) => {\n const {workspaceId} = request.params;\n const abortController = new AbortController();\n let responseFinished = false;\n reply.raw.on('finish', () => {\n responseFinished = true;\n });\n reply.raw.on('close', () => {\n if (!responseFinished) abortController.abort();\n });\n\n requireWorkspaceAccess({request, workspaceId});\n\n const config = await createCustomModelProviderConfig(\n {\n workspaceId,\n body: request.body,\n signal: abortController.signal,\n },\n {secrets},\n );\n\n return toCustomModelProviderConfigDto(config);\n },\n });\n}\n"],"names":["createCustomModelProviderBodySchema","customModelProviderConfigDtoSchema","requireWorkspaceAccess","defineRoute","z","createCustomModelProviderConfig","toCustomModelProviderConfigDto","translateModelProviderRouteError","createCustomModelProviderRoute","secrets","method","path","description","schema","params","object","workspaceId","string","uuid","body","response","errorHandler","handler","request","reply","abortController","AbortController","responseFinished","raw","on","abort","config","signal"],"mappings":"AAAA,SACEA,mCAAmC,EACnCC,kCAAkC,QAC7B,yBAAyB;AAChC,SAAQC,sBAAsB,QAAO,4BAA4B;AACjE,SAAQC,WAAW,QAAO,wBAAwB;AAClD,SAAQC,CAAC,QAAO,MAAM;AACtB,
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/routes/create-custom-model-provider.ts"],"sourcesContent":["import {\n createCustomModelProviderBodySchema,\n customModelProviderConfigDtoSchema,\n} from '@shipfox/api-agent-dto';\nimport {requireWorkspaceAccess} from '@shipfox/api-auth-context';\nimport {defineRoute} from '@shipfox/node-fastify';\nimport {z} from 'zod';\nimport {\n assertWorkspaceProviderConfigurationEnabled,\n createCustomModelProviderConfig,\n} from '#core/index.js';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport type {WorkspaceProviderPolicyOptions} from '#core/workspace-provider-policy.js';\nimport {toCustomModelProviderConfigDto} from '#presentation/dto/index.js';\nimport {translateModelProviderRouteError} from './errors.js';\n\nexport function createCustomModelProviderRoute(\n secrets: AgentSecretsClient,\n workspaceProviderPolicy: WorkspaceProviderPolicyOptions = {workspaceProviders: 'enabled'},\n) {\n return defineRoute({\n method: 'POST',\n path: '/custom-model-providers',\n description: 'Create a custom model provider configuration for a workspace',\n schema: {\n params: z.object({workspaceId: z.string().uuid()}),\n body: createCustomModelProviderBodySchema,\n response: {\n 200: customModelProviderConfigDtoSchema,\n },\n },\n errorHandler: translateModelProviderRouteError,\n handler: async (request, reply) => {\n const {workspaceId} = request.params;\n const abortController = new AbortController();\n let responseFinished = false;\n reply.raw.on('finish', () => {\n responseFinished = true;\n });\n reply.raw.on('close', () => {\n if (!responseFinished) abortController.abort();\n });\n\n requireWorkspaceAccess({request, workspaceId});\n assertWorkspaceProviderConfigurationEnabled(workspaceProviderPolicy);\n\n const config = await createCustomModelProviderConfig(\n {\n workspaceId,\n body: request.body,\n signal: abortController.signal,\n },\n {secrets},\n );\n\n return toCustomModelProviderConfigDto(config);\n },\n });\n}\n"],"names":["createCustomModelProviderBodySchema","customModelProviderConfigDtoSchema","requireWorkspaceAccess","defineRoute","z","assertWorkspaceProviderConfigurationEnabled","createCustomModelProviderConfig","toCustomModelProviderConfigDto","translateModelProviderRouteError","createCustomModelProviderRoute","secrets","workspaceProviderPolicy","workspaceProviders","method","path","description","schema","params","object","workspaceId","string","uuid","body","response","errorHandler","handler","request","reply","abortController","AbortController","responseFinished","raw","on","abort","config","signal"],"mappings":"AAAA,SACEA,mCAAmC,EACnCC,kCAAkC,QAC7B,yBAAyB;AAChC,SAAQC,sBAAsB,QAAO,4BAA4B;AACjE,SAAQC,WAAW,QAAO,wBAAwB;AAClD,SAAQC,CAAC,QAAO,MAAM;AACtB,SACEC,2CAA2C,EAC3CC,+BAA+B,QAC1B,iBAAiB;AAGxB,SAAQC,8BAA8B,QAAO,6BAA6B;AAC1E,SAAQC,gCAAgC,QAAO,cAAc;AAE7D,OAAO,SAASC,+BACdC,OAA2B,EAC3BC,0BAA0D;IAACC,oBAAoB;AAAS,CAAC;IAEzF,OAAOT,YAAY;QACjBU,QAAQ;QACRC,MAAM;QACNC,aAAa;QACbC,QAAQ;YACNC,QAAQb,EAAEc,MAAM,CAAC;gBAACC,aAAaf,EAAEgB,MAAM,GAAGC,IAAI;YAAE;YAChDC,MAAMtB;YACNuB,UAAU;gBACR,KAAKtB;YACP;QACF;QACAuB,cAAchB;QACdiB,SAAS,OAAOC,SAASC;YACvB,MAAM,EAACR,WAAW,EAAC,GAAGO,QAAQT,MAAM;YACpC,MAAMW,kBAAkB,IAAIC;YAC5B,IAAIC,mBAAmB;YACvBH,MAAMI,GAAG,CAACC,EAAE,CAAC,UAAU;gBACrBF,mBAAmB;YACrB;YACAH,MAAMI,GAAG,CAACC,EAAE,CAAC,SAAS;gBACpB,IAAI,CAACF,kBAAkBF,gBAAgBK,KAAK;YAC9C;YAEA/B,uBAAuB;gBAACwB;gBAASP;YAAW;YAC5Cd,4CAA4CM;YAE5C,MAAMuB,SAAS,MAAM5B,gCACnB;gBACEa;gBACAG,MAAMI,QAAQJ,IAAI;gBAClBa,QAAQP,gBAAgBO,MAAM;YAChC,GACA;gBAACzB;YAAO;YAGV,OAAOH,+BAA+B2B;QACxC;IACF;AACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { AgentSecretsClient } from '#core/secrets-client.js';
|
|
2
|
-
|
|
2
|
+
import type { WorkspaceProviderPolicyOptions } from '#core/workspace-provider-policy.js';
|
|
3
|
+
export declare function createDeleteModelProviderConfigRoute(secrets: AgentSecretsClient, workspaceProviderPolicy?: WorkspaceProviderPolicyOptions): import("@shipfox/node-fastify").RouteDefinition;
|
|
3
4
|
//# sourceMappingURL=delete-model-provider-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-model-provider-config.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/delete-model-provider-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delete-model-provider-config.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/delete-model-provider-config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAC,8BAA8B,EAAC,MAAM,oCAAoC,CAAC;AAGvF,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,kBAAkB,EAC3B,uBAAuB,GAAE,8BAAgE,mDA6B1F"}
|
|
@@ -2,8 +2,11 @@ import { modelProviderRefSchema } from '@shipfox/api-agent-dto';
|
|
|
2
2
|
import { requireWorkspaceAccess } from '@shipfox/api-auth-context';
|
|
3
3
|
import { ClientError, defineRoute } from '@shipfox/node-fastify';
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
import { deleteModelProviderConfig } from '#core/index.js';
|
|
6
|
-
|
|
5
|
+
import { assertWorkspaceProviderConfigurationEnabled, deleteModelProviderConfig } from '#core/index.js';
|
|
6
|
+
import { translateModelProviderRouteError } from './errors.js';
|
|
7
|
+
export function createDeleteModelProviderConfigRoute(secrets, workspaceProviderPolicy = {
|
|
8
|
+
workspaceProviders: 'enabled'
|
|
9
|
+
}) {
|
|
7
10
|
return defineRoute({
|
|
8
11
|
method: 'DELETE',
|
|
9
12
|
path: '/model-providers/:providerId',
|
|
@@ -17,12 +20,14 @@ export function createDeleteModelProviderConfigRoute(secrets) {
|
|
|
17
20
|
204: z.void()
|
|
18
21
|
}
|
|
19
22
|
},
|
|
23
|
+
errorHandler: translateModelProviderRouteError,
|
|
20
24
|
handler: async (request, reply)=>{
|
|
21
25
|
const { workspaceId, providerId } = request.params;
|
|
22
26
|
requireWorkspaceAccess({
|
|
23
27
|
request,
|
|
24
28
|
workspaceId
|
|
25
29
|
});
|
|
30
|
+
assertWorkspaceProviderConfigurationEnabled(workspaceProviderPolicy);
|
|
26
31
|
const deleted = await deleteModelProviderConfig({
|
|
27
32
|
workspaceId,
|
|
28
33
|
providerId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/presentation/routes/delete-model-provider-config.ts"],"sourcesContent":["import {modelProviderRefSchema} from '@shipfox/api-agent-dto';\nimport {requireWorkspaceAccess} from '@shipfox/api-auth-context';\nimport {ClientError, defineRoute} from '@shipfox/node-fastify';\nimport {z} from 'zod';\nimport {deleteModelProviderConfig} from '#core/index.js';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\n\nexport function createDeleteModelProviderConfigRoute(secrets: AgentSecretsClient) {\n return defineRoute({\n method: 'DELETE',\n path: '/model-providers/:providerId',\n description: 'Delete a model provider configuration for a workspace',\n schema: {\n params: z.object({\n workspaceId: z.string().uuid(),\n providerId: modelProviderRefSchema,\n }),\n response: {\n 204: z.void(),\n },\n },\n handler: async (request, reply) => {\n const {workspaceId, providerId} = request.params;\n requireWorkspaceAccess({request, workspaceId});\n\n const deleted = await deleteModelProviderConfig({workspaceId, providerId}, {secrets});\n if (!deleted) {\n throw new ClientError('Model provider configuration not found', 'not-found', {status: 404});\n }\n\n reply.code(204);\n },\n });\n}\n"],"names":["modelProviderRefSchema","requireWorkspaceAccess","ClientError","defineRoute","z","deleteModelProviderConfig","createDeleteModelProviderConfigRoute","secrets","method","path","description","schema","params","object","workspaceId","string","uuid","providerId","response","void","handler","request","reply","deleted","status","code"],"mappings":"AAAA,SAAQA,sBAAsB,QAAO,yBAAyB;AAC9D,SAAQC,sBAAsB,QAAO,4BAA4B;AACjE,SAAQC,WAAW,EAAEC,WAAW,QAAO,wBAAwB;AAC/D,SAAQC,CAAC,QAAO,MAAM;AACtB,
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/routes/delete-model-provider-config.ts"],"sourcesContent":["import {modelProviderRefSchema} from '@shipfox/api-agent-dto';\nimport {requireWorkspaceAccess} from '@shipfox/api-auth-context';\nimport {ClientError, defineRoute} from '@shipfox/node-fastify';\nimport {z} from 'zod';\nimport {\n assertWorkspaceProviderConfigurationEnabled,\n deleteModelProviderConfig,\n} from '#core/index.js';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport type {WorkspaceProviderPolicyOptions} from '#core/workspace-provider-policy.js';\nimport {translateModelProviderRouteError} from './errors.js';\n\nexport function createDeleteModelProviderConfigRoute(\n secrets: AgentSecretsClient,\n workspaceProviderPolicy: WorkspaceProviderPolicyOptions = {workspaceProviders: 'enabled'},\n) {\n return defineRoute({\n method: 'DELETE',\n path: '/model-providers/:providerId',\n description: 'Delete a model provider configuration for a workspace',\n schema: {\n params: z.object({\n workspaceId: z.string().uuid(),\n providerId: modelProviderRefSchema,\n }),\n response: {\n 204: z.void(),\n },\n },\n errorHandler: translateModelProviderRouteError,\n handler: async (request, reply) => {\n const {workspaceId, providerId} = request.params;\n requireWorkspaceAccess({request, workspaceId});\n assertWorkspaceProviderConfigurationEnabled(workspaceProviderPolicy);\n\n const deleted = await deleteModelProviderConfig({workspaceId, providerId}, {secrets});\n if (!deleted) {\n throw new ClientError('Model provider configuration not found', 'not-found', {status: 404});\n }\n\n reply.code(204);\n },\n });\n}\n"],"names":["modelProviderRefSchema","requireWorkspaceAccess","ClientError","defineRoute","z","assertWorkspaceProviderConfigurationEnabled","deleteModelProviderConfig","translateModelProviderRouteError","createDeleteModelProviderConfigRoute","secrets","workspaceProviderPolicy","workspaceProviders","method","path","description","schema","params","object","workspaceId","string","uuid","providerId","response","void","errorHandler","handler","request","reply","deleted","status","code"],"mappings":"AAAA,SAAQA,sBAAsB,QAAO,yBAAyB;AAC9D,SAAQC,sBAAsB,QAAO,4BAA4B;AACjE,SAAQC,WAAW,EAAEC,WAAW,QAAO,wBAAwB;AAC/D,SAAQC,CAAC,QAAO,MAAM;AACtB,SACEC,2CAA2C,EAC3CC,yBAAyB,QACpB,iBAAiB;AAGxB,SAAQC,gCAAgC,QAAO,cAAc;AAE7D,OAAO,SAASC,qCACdC,OAA2B,EAC3BC,0BAA0D;IAACC,oBAAoB;AAAS,CAAC;IAEzF,OAAOR,YAAY;QACjBS,QAAQ;QACRC,MAAM;QACNC,aAAa;QACbC,QAAQ;YACNC,QAAQZ,EAAEa,MAAM,CAAC;gBACfC,aAAad,EAAEe,MAAM,GAAGC,IAAI;gBAC5BC,YAAYrB;YACd;YACAsB,UAAU;gBACR,KAAKlB,EAAEmB,IAAI;YACb;QACF;QACAC,cAAcjB;QACdkB,SAAS,OAAOC,SAASC;YACvB,MAAM,EAACT,WAAW,EAAEG,UAAU,EAAC,GAAGK,QAAQV,MAAM;YAChDf,uBAAuB;gBAACyB;gBAASR;YAAW;YAC5Cb,4CAA4CK;YAE5C,MAAMkB,UAAU,MAAMtB,0BAA0B;gBAACY;gBAAaG;YAAU,GAAG;gBAACZ;YAAO;YACnF,IAAI,CAACmB,SAAS;gBACZ,MAAM,IAAI1B,YAAY,0CAA0C,aAAa;oBAAC2B,QAAQ;gBAAG;YAC3F;YAEAF,MAAMG,IAAI,CAAC;QACb;IACF;AACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { AgentSecretsClient } from '#core/secrets-client.js';
|
|
2
|
-
|
|
2
|
+
import type { WorkspaceProviderPolicyOptions } from '#core/workspace-provider-policy.js';
|
|
3
|
+
export declare function createDiscoverCustomModelProviderModelsBySlugRoute(secrets: AgentSecretsClient, workspaceProviderPolicy?: WorkspaceProviderPolicyOptions): import("@shipfox/node-fastify").RouteDefinition;
|
|
3
4
|
//# sourceMappingURL=discover-custom-model-provider-models-by-slug.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover-custom-model-provider-models-by-slug.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/discover-custom-model-provider-models-by-slug.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discover-custom-model-provider-models-by-slug.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/discover-custom-model-provider-models-by-slug.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAC,8BAA8B,EAAC,MAAM,oCAAoC,CAAC;AAGvF,wBAAgB,kDAAkD,CAChE,OAAO,EAAE,kBAAkB,EAC3B,uBAAuB,GAAE,8BAAgE,mDAkC1F"}
|
|
@@ -2,9 +2,11 @@ import { discoverCustomModelProviderModelsBySlugBodySchema, discoverCustomModelP
|
|
|
2
2
|
import { requireWorkspaceAccess } from '@shipfox/api-auth-context';
|
|
3
3
|
import { defineRoute } from '@shipfox/node-fastify';
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
import { discoverCustomModelProviderModels, resolveCustomModelProviderDiscoveryParams } from '#core/index.js';
|
|
5
|
+
import { assertWorkspaceProviderConfigurationEnabled, discoverCustomModelProviderModels, resolveCustomModelProviderDiscoveryParams } from '#core/index.js';
|
|
6
6
|
import { translateModelProviderRouteError } from './errors.js';
|
|
7
|
-
export function createDiscoverCustomModelProviderModelsBySlugRoute(secrets
|
|
7
|
+
export function createDiscoverCustomModelProviderModelsBySlugRoute(secrets, workspaceProviderPolicy = {
|
|
8
|
+
workspaceProviders: 'enabled'
|
|
9
|
+
}) {
|
|
8
10
|
return defineRoute({
|
|
9
11
|
method: 'POST',
|
|
10
12
|
path: '/custom-model-providers/:slug/discover-models',
|
|
@@ -26,6 +28,7 @@ export function createDiscoverCustomModelProviderModelsBySlugRoute(secrets) {
|
|
|
26
28
|
request,
|
|
27
29
|
workspaceId
|
|
28
30
|
});
|
|
31
|
+
assertWorkspaceProviderConfigurationEnabled(workspaceProviderPolicy);
|
|
29
32
|
const discoveryParams = await resolveCustomModelProviderDiscoveryParams({
|
|
30
33
|
workspaceId,
|
|
31
34
|
providerId: slug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/presentation/routes/discover-custom-model-provider-models-by-slug.ts"],"sourcesContent":["import {\n discoverCustomModelProviderModelsBySlugBodySchema,\n discoverCustomModelProviderModelsResponseSchema,\n modelProviderRefSchema,\n} from '@shipfox/api-agent-dto';\nimport {requireWorkspaceAccess} from '@shipfox/api-auth-context';\nimport {defineRoute} from '@shipfox/node-fastify';\nimport {z} from 'zod';\nimport {\n discoverCustomModelProviderModels,\n resolveCustomModelProviderDiscoveryParams,\n} from '#core/index.js';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport {translateModelProviderRouteError} from './errors.js';\n\nexport function createDiscoverCustomModelProviderModelsBySlugRoute(secrets: AgentSecretsClient) {\n return defineRoute({\n method: 'POST',\n path: '/custom-model-providers/:slug/discover-models',\n description: 'Discover models for a stored custom model provider configuration',\n schema: {\n params: z.object({\n workspaceId: z.string().uuid(),\n slug: modelProviderRefSchema,\n }),\n body: discoverCustomModelProviderModelsBySlugBodySchema,\n response: {\n 200: discoverCustomModelProviderModelsResponseSchema,\n },\n },\n errorHandler: translateModelProviderRouteError,\n handler: async (request) => {\n const {workspaceId, slug} = request.params;\n requireWorkspaceAccess({request, workspaceId});\n\n const discoveryParams = await resolveCustomModelProviderDiscoveryParams(\n {\n workspaceId,\n providerId: slug,\n body: request.body ?? {},\n },\n {secrets},\n );\n\n return await discoverCustomModelProviderModels(discoveryParams);\n },\n });\n}\n"],"names":["discoverCustomModelProviderModelsBySlugBodySchema","discoverCustomModelProviderModelsResponseSchema","modelProviderRefSchema","requireWorkspaceAccess","defineRoute","z","discoverCustomModelProviderModels","resolveCustomModelProviderDiscoveryParams","translateModelProviderRouteError","createDiscoverCustomModelProviderModelsBySlugRoute","secrets","method","path","description","schema","params","object","workspaceId","string","uuid","slug","body","response","errorHandler","handler","request","discoveryParams","providerId"],"mappings":"AAAA,SACEA,iDAAiD,EACjDC,+CAA+C,EAC/CC,sBAAsB,QACjB,yBAAyB;AAChC,SAAQC,sBAAsB,QAAO,4BAA4B;AACjE,SAAQC,WAAW,QAAO,wBAAwB;AAClD,SAAQC,CAAC,QAAO,MAAM;AACtB,SACEC,iCAAiC,EACjCC,yCAAyC,QACpC,iBAAiB;
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/routes/discover-custom-model-provider-models-by-slug.ts"],"sourcesContent":["import {\n discoverCustomModelProviderModelsBySlugBodySchema,\n discoverCustomModelProviderModelsResponseSchema,\n modelProviderRefSchema,\n} from '@shipfox/api-agent-dto';\nimport {requireWorkspaceAccess} from '@shipfox/api-auth-context';\nimport {defineRoute} from '@shipfox/node-fastify';\nimport {z} from 'zod';\nimport {\n assertWorkspaceProviderConfigurationEnabled,\n discoverCustomModelProviderModels,\n resolveCustomModelProviderDiscoveryParams,\n} from '#core/index.js';\nimport type {AgentSecretsClient} from '#core/secrets-client.js';\nimport type {WorkspaceProviderPolicyOptions} from '#core/workspace-provider-policy.js';\nimport {translateModelProviderRouteError} from './errors.js';\n\nexport function createDiscoverCustomModelProviderModelsBySlugRoute(\n secrets: AgentSecretsClient,\n workspaceProviderPolicy: WorkspaceProviderPolicyOptions = {workspaceProviders: 'enabled'},\n) {\n return defineRoute({\n method: 'POST',\n path: '/custom-model-providers/:slug/discover-models',\n description: 'Discover models for a stored custom model provider configuration',\n schema: {\n params: z.object({\n workspaceId: z.string().uuid(),\n slug: modelProviderRefSchema,\n }),\n body: discoverCustomModelProviderModelsBySlugBodySchema,\n response: {\n 200: discoverCustomModelProviderModelsResponseSchema,\n },\n },\n errorHandler: translateModelProviderRouteError,\n handler: async (request) => {\n const {workspaceId, slug} = request.params;\n requireWorkspaceAccess({request, workspaceId});\n assertWorkspaceProviderConfigurationEnabled(workspaceProviderPolicy);\n\n const discoveryParams = await resolveCustomModelProviderDiscoveryParams(\n {\n workspaceId,\n providerId: slug,\n body: request.body ?? {},\n },\n {secrets},\n );\n\n return await discoverCustomModelProviderModels(discoveryParams);\n },\n });\n}\n"],"names":["discoverCustomModelProviderModelsBySlugBodySchema","discoverCustomModelProviderModelsResponseSchema","modelProviderRefSchema","requireWorkspaceAccess","defineRoute","z","assertWorkspaceProviderConfigurationEnabled","discoverCustomModelProviderModels","resolveCustomModelProviderDiscoveryParams","translateModelProviderRouteError","createDiscoverCustomModelProviderModelsBySlugRoute","secrets","workspaceProviderPolicy","workspaceProviders","method","path","description","schema","params","object","workspaceId","string","uuid","slug","body","response","errorHandler","handler","request","discoveryParams","providerId"],"mappings":"AAAA,SACEA,iDAAiD,EACjDC,+CAA+C,EAC/CC,sBAAsB,QACjB,yBAAyB;AAChC,SAAQC,sBAAsB,QAAO,4BAA4B;AACjE,SAAQC,WAAW,QAAO,wBAAwB;AAClD,SAAQC,CAAC,QAAO,MAAM;AACtB,SACEC,2CAA2C,EAC3CC,iCAAiC,EACjCC,yCAAyC,QACpC,iBAAiB;AAGxB,SAAQC,gCAAgC,QAAO,cAAc;AAE7D,OAAO,SAASC,mDACdC,OAA2B,EAC3BC,0BAA0D;IAACC,oBAAoB;AAAS,CAAC;IAEzF,OAAOT,YAAY;QACjBU,QAAQ;QACRC,MAAM;QACNC,aAAa;QACbC,QAAQ;YACNC,QAAQb,EAAEc,MAAM,CAAC;gBACfC,aAAaf,EAAEgB,MAAM,GAAGC,IAAI;gBAC5BC,MAAMrB;YACR;YACAsB,MAAMxB;YACNyB,UAAU;gBACR,KAAKxB;YACP;QACF;QACAyB,cAAcjB;QACdkB,SAAS,OAAOC;YACd,MAAM,EAACR,WAAW,EAAEG,IAAI,EAAC,GAAGK,QAAQV,MAAM;YAC1Cf,uBAAuB;gBAACyB;gBAASR;YAAW;YAC5Cd,4CAA4CM;YAE5C,MAAMiB,kBAAkB,MAAMrB,0CAC5B;gBACEY;gBACAU,YAAYP;gBACZC,MAAMI,QAAQJ,IAAI,IAAI,CAAC;YACzB,GACA;gBAACb;YAAO;YAGV,OAAO,MAAMJ,kCAAkCsB;QACjD;IACF;AACF"}
|