@shipfox/api-agent 12.0.0 → 13.1.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 +29 -0
- package/dist/config.d.ts +6 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +72 -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 +59 -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/db/db.d.ts +10 -10
- package/dist/db/schema/agent-workspace-settings.d.ts +1 -1
- package/dist/db/schema/model-provider-configs.d.ts +4 -4
- 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/metrics/instance.d.ts +4 -4
- 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 +6 -6
- package/src/config.test.ts +165 -4
- package/src/config.ts +94 -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 +169 -1
- package/src/core/resolve-runtime-credentials.ts +68 -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/db/db.d.ts
CHANGED
|
@@ -60,7 +60,7 @@ export declare const schema: {
|
|
|
60
60
|
tableName: "model_provider_configs";
|
|
61
61
|
dataType: "string";
|
|
62
62
|
columnType: "PgEnumColumn";
|
|
63
|
-
data: "
|
|
63
|
+
data: "builtin" | "custom";
|
|
64
64
|
driverParam: string;
|
|
65
65
|
notNull: true;
|
|
66
66
|
hasDefault: true;
|
|
@@ -94,7 +94,7 @@ export declare const schema: {
|
|
|
94
94
|
tableName: "model_provider_configs";
|
|
95
95
|
dataType: "string";
|
|
96
96
|
columnType: "PgText";
|
|
97
|
-
data: "
|
|
97
|
+
data: "anthropic-messages" | "google-generative-ai" | "openai-completions" | "openai-responses";
|
|
98
98
|
driverParam: string;
|
|
99
99
|
notNull: false;
|
|
100
100
|
hasDefault: false;
|
|
@@ -106,7 +106,7 @@ export declare const schema: {
|
|
|
106
106
|
identity: undefined;
|
|
107
107
|
generated: undefined;
|
|
108
108
|
}, {}, {
|
|
109
|
-
$type: "
|
|
109
|
+
$type: "anthropic-messages" | "google-generative-ai" | "openai-completions" | "openai-responses";
|
|
110
110
|
}>;
|
|
111
111
|
baseUrl: import("drizzle-orm/pg-core").PgColumn<{
|
|
112
112
|
name: "base_url";
|
|
@@ -288,7 +288,7 @@ export declare const schema: {
|
|
|
288
288
|
generated: undefined;
|
|
289
289
|
}, {}, {}>;
|
|
290
290
|
};
|
|
291
|
-
dialect:
|
|
291
|
+
dialect: 'pg';
|
|
292
292
|
}>;
|
|
293
293
|
agentWorkspaceSettings: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
294
294
|
name: "workspace_settings";
|
|
@@ -380,7 +380,7 @@ export declare const schema: {
|
|
|
380
380
|
generated: undefined;
|
|
381
381
|
}, {}, {}>;
|
|
382
382
|
};
|
|
383
|
-
dialect:
|
|
383
|
+
dialect: 'pg';
|
|
384
384
|
}>;
|
|
385
385
|
};
|
|
386
386
|
export declare function db(): NodePgDatabase<{
|
|
@@ -444,7 +444,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
444
444
|
tableName: "model_provider_configs";
|
|
445
445
|
dataType: "string";
|
|
446
446
|
columnType: "PgEnumColumn";
|
|
447
|
-
data: "
|
|
447
|
+
data: "builtin" | "custom";
|
|
448
448
|
driverParam: string;
|
|
449
449
|
notNull: true;
|
|
450
450
|
hasDefault: true;
|
|
@@ -478,7 +478,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
478
478
|
tableName: "model_provider_configs";
|
|
479
479
|
dataType: "string";
|
|
480
480
|
columnType: "PgText";
|
|
481
|
-
data: "
|
|
481
|
+
data: "anthropic-messages" | "google-generative-ai" | "openai-completions" | "openai-responses";
|
|
482
482
|
driverParam: string;
|
|
483
483
|
notNull: false;
|
|
484
484
|
hasDefault: false;
|
|
@@ -490,7 +490,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
490
490
|
identity: undefined;
|
|
491
491
|
generated: undefined;
|
|
492
492
|
}, {}, {
|
|
493
|
-
$type: "
|
|
493
|
+
$type: "anthropic-messages" | "google-generative-ai" | "openai-completions" | "openai-responses";
|
|
494
494
|
}>;
|
|
495
495
|
baseUrl: import("drizzle-orm/pg-core").PgColumn<{
|
|
496
496
|
name: "base_url";
|
|
@@ -672,7 +672,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
672
672
|
generated: undefined;
|
|
673
673
|
}, {}, {}>;
|
|
674
674
|
};
|
|
675
|
-
dialect:
|
|
675
|
+
dialect: 'pg';
|
|
676
676
|
}>;
|
|
677
677
|
agentWorkspaceSettings: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
678
678
|
name: "workspace_settings";
|
|
@@ -764,7 +764,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
764
764
|
generated: undefined;
|
|
765
765
|
}, {}, {}>;
|
|
766
766
|
};
|
|
767
|
-
dialect:
|
|
767
|
+
dialect: 'pg';
|
|
768
768
|
}>;
|
|
769
769
|
}>;
|
|
770
770
|
export declare function closeDb(): void;
|
|
@@ -89,7 +89,7 @@ export declare const agentWorkspaceSettings: import("drizzle-orm/pg-core").PgTab
|
|
|
89
89
|
generated: undefined;
|
|
90
90
|
}, {}, {}>;
|
|
91
91
|
};
|
|
92
|
-
dialect:
|
|
92
|
+
dialect: 'pg';
|
|
93
93
|
}>;
|
|
94
94
|
export type AgentWorkspaceSettingsDb = typeof agentWorkspaceSettings.$inferSelect;
|
|
95
95
|
export type AgentWorkspaceSettingsCreateDb = typeof agentWorkspaceSettings.$inferInsert;
|
|
@@ -60,7 +60,7 @@ export declare const modelProviderConfigs: import("drizzle-orm/pg-core").PgTable
|
|
|
60
60
|
tableName: "model_provider_configs";
|
|
61
61
|
dataType: "string";
|
|
62
62
|
columnType: "PgEnumColumn";
|
|
63
|
-
data: "
|
|
63
|
+
data: "builtin" | "custom";
|
|
64
64
|
driverParam: string;
|
|
65
65
|
notNull: true;
|
|
66
66
|
hasDefault: true;
|
|
@@ -94,7 +94,7 @@ export declare const modelProviderConfigs: import("drizzle-orm/pg-core").PgTable
|
|
|
94
94
|
tableName: "model_provider_configs";
|
|
95
95
|
dataType: "string";
|
|
96
96
|
columnType: "PgText";
|
|
97
|
-
data: "
|
|
97
|
+
data: "anthropic-messages" | "google-generative-ai" | "openai-completions" | "openai-responses";
|
|
98
98
|
driverParam: string;
|
|
99
99
|
notNull: false;
|
|
100
100
|
hasDefault: false;
|
|
@@ -106,7 +106,7 @@ export declare const modelProviderConfigs: import("drizzle-orm/pg-core").PgTable
|
|
|
106
106
|
identity: undefined;
|
|
107
107
|
generated: undefined;
|
|
108
108
|
}, {}, {
|
|
109
|
-
$type: "
|
|
109
|
+
$type: "anthropic-messages" | "google-generative-ai" | "openai-completions" | "openai-responses";
|
|
110
110
|
}>;
|
|
111
111
|
baseUrl: import("drizzle-orm/pg-core").PgColumn<{
|
|
112
112
|
name: "base_url";
|
|
@@ -288,7 +288,7 @@ export declare const modelProviderConfigs: import("drizzle-orm/pg-core").PgTable
|
|
|
288
288
|
generated: undefined;
|
|
289
289
|
}, {}, {}>;
|
|
290
290
|
};
|
|
291
|
-
dialect:
|
|
291
|
+
dialect: 'pg';
|
|
292
292
|
}>;
|
|
293
293
|
export type ModelProviderConfigDb = typeof modelProviderConfigs.$inferSelect;
|
|
294
294
|
export type ModelProviderConfigCreateDb = typeof modelProviderConfigs.$inferInsert;
|
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,10 +1,10 @@
|
|
|
1
1
|
import type { SupportedModelProviderId } from '@shipfox/api-agent-dto';
|
|
2
2
|
export declare const modelProviderValidationCount: import("@shipfox/node-opentelemetry").Counter<{
|
|
3
|
-
model_provider: SupportedModelProviderId |
|
|
4
|
-
outcome:
|
|
3
|
+
model_provider: SupportedModelProviderId | 'custom';
|
|
4
|
+
outcome: 'succeeded' | 'failed';
|
|
5
5
|
}>;
|
|
6
6
|
export declare const agentRuntimeConfigResolvedCount: import("@shipfox/node-opentelemetry").Counter<{
|
|
7
|
-
source:
|
|
8
|
-
outcome:
|
|
7
|
+
source: 'workspace' | 'instance';
|
|
8
|
+
outcome: 'resolved' | 'unavailable' | 'decryption_failed';
|
|
9
9
|
}>;
|
|
10
10
|
//# sourceMappingURL=instance.d.ts.map
|
|
@@ -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,
|