Skip to content

Commit ea5198f

Browse files
Merge pull request #34 from PhenoML/fern-bot/2026-01-21T22-55Z
feat: make provider parameter required for agent operations
2 parents 634615b + 32c83be commit ea5198f

File tree

8 files changed

+53
-22
lines changed

8 files changed

+53
-22
lines changed

changelog.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
## 3.0.0 - 2026-01-21
2+
* feat: make provider parameter required for agent operations
3+
* This change makes the provider parameter required for agent create and update operations,
4+
* ensuring that all agents must specify a FHIR provider. In shared/experiment environments,
5+
* the default sandbox provider will be used if a different provider is not explicitly specified.
6+
* Key changes:
7+
* Change provider parameter from optional to required in AgentCreateRequest
8+
* Update provider documentation to clarify requirement and default behavior
9+
* Update all test cases to include required provider parameter
10+
* Update client documentation and examples with provider parameter
11+
* 🌿 Generated with Fern
12+
113
## 2.0.0 - 2026-01-21
214
* feat: remove is_active field from agent prompts API
315
* Remove the is_active field from agent prompt models and API endpoints to simplify

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "phenoml",
3-
"version": "2.0.0",
3+
"version": "3.0.0",
44
"private": false,
55
"repository": "github:PhenoML/phenoml-ts-sdk",
66
"type": "commonjs",

reference.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ Creates a new PhenoAgent with specified configuration
2929
```typescript
3030
await client.agent.create({
3131
name: "name",
32-
prompts: ["prompt_123", "prompt_456"]
32+
prompts: ["prompt_123", "prompt_456"],
33+
provider: "provider"
3334
});
3435

3536
```
@@ -223,7 +224,8 @@ Updates an existing agent's configuration
223224
```typescript
224225
await client.agent.update("id", {
225226
name: "name",
226-
prompts: ["prompt_123", "prompt_456"]
227+
prompts: ["prompt_123", "prompt_456"],
228+
provider: "provider"
227229
});
228230

229231
```

src/Client.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ export class phenomlClient {
4040
{
4141
"X-Fern-Language": "JavaScript",
4242
"X-Fern-SDK-Name": "phenoml",
43-
"X-Fern-SDK-Version": "2.0.0",
44-
"User-Agent": "phenoml/2.0.0",
43+
"X-Fern-SDK-Version": "3.0.0",
44+
"User-Agent": "phenoml/3.0.0",
4545
"X-Fern-Runtime": core.RUNTIME.type,
4646
"X-Fern-Runtime-Version": core.RUNTIME.version,
4747
},

src/api/resources/agent/client/Client.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ export class Agent {
4040
* @example
4141
* await client.agent.create({
4242
* name: "name",
43-
* prompts: ["prompt_123", "prompt_456"]
43+
* prompts: ["prompt_123", "prompt_456"],
44+
* provider: "provider"
4445
* })
4546
*/
4647
public create(
@@ -305,7 +306,8 @@ export class Agent {
305306
* @example
306307
* await client.agent.update("id", {
307308
* name: "name",
308-
* prompts: ["prompt_123", "prompt_456"]
309+
* prompts: ["prompt_123", "prompt_456"],
310+
* provider: "provider"
309311
* })
310312
*/
311313
public update(

src/api/resources/agent/types/AgentCreateRequest.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,17 @@ export interface AgentCreateRequest {
1111
tools?: string[];
1212
/** Tags for categorizing the agent */
1313
tags?: string[];
14-
/** FHIR provider ID(s) - must be valid UUIDs from existing FHIR providers */
15-
provider?: AgentCreateRequest.Provider;
14+
/**
15+
* FHIR provider ID(s) for this agent. Required.
16+
* In shared/experiment environments, the default sandbox provider is used if a different provider is not explicitly specified.
17+
*/
18+
provider: AgentCreateRequest.Provider;
1619
}
1720

1821
export namespace AgentCreateRequest {
1922
/**
20-
* FHIR provider ID(s) - must be valid UUIDs from existing FHIR providers
23+
* FHIR provider ID(s) for this agent. Required.
24+
* In shared/experiment environments, the default sandbox provider is used if a different provider is not explicitly specified.
2125
*/
2226
export type Provider =
2327
/**

src/version.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export const SDK_VERSION = "2.0.0";
1+
export const SDK_VERSION = "3.0.0";

tests/wire/agent/main.test.ts

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ describe("Agent", () => {
88
test("create (1)", async () => {
99
const server = mockServerPool.createServer();
1010
const client = new phenomlClient({ token: "test", environment: server.baseUrl });
11-
const rawRequestBody = { name: "name", prompts: ["prompt_123", "prompt_456"] };
11+
const rawRequestBody = { name: "name", prompts: ["prompt_123", "prompt_456"], provider: "provider" };
1212
const rawResponseBody = {
1313
success: true,
1414
message: "Agent created successfully",
@@ -34,6 +34,7 @@ describe("Agent", () => {
3434
const response = await client.agent.create({
3535
name: "name",
3636
prompts: ["prompt_123", "prompt_456"],
37+
provider: "provider",
3738
});
3839
expect(response).toEqual({
3940
success: true,
@@ -53,7 +54,7 @@ describe("Agent", () => {
5354
test("create (2)", async () => {
5455
const server = mockServerPool.createServer();
5556
const client = new phenomlClient({ token: "test", environment: server.baseUrl });
56-
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"] };
57+
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"], provider: "provider" };
5758
const rawResponseBody = { key: "value" };
5859
server
5960
.mockEndpoint()
@@ -68,14 +69,15 @@ describe("Agent", () => {
6869
return await client.agent.create({
6970
name: "name",
7071
prompts: ["prompts", "prompts"],
72+
provider: "provider",
7173
});
7274
}).rejects.toThrow(phenoml.agent.BadRequestError);
7375
});
7476

7577
test("create (3)", async () => {
7678
const server = mockServerPool.createServer();
7779
const client = new phenomlClient({ token: "test", environment: server.baseUrl });
78-
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"] };
80+
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"], provider: "provider" };
7981
const rawResponseBody = { key: "value" };
8082
server
8183
.mockEndpoint()
@@ -90,14 +92,15 @@ describe("Agent", () => {
9092
return await client.agent.create({
9193
name: "name",
9294
prompts: ["prompts", "prompts"],
95+
provider: "provider",
9396
});
9497
}).rejects.toThrow(phenoml.agent.UnauthorizedError);
9598
});
9699

97100
test("create (4)", async () => {
98101
const server = mockServerPool.createServer();
99102
const client = new phenomlClient({ token: "test", environment: server.baseUrl });
100-
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"] };
103+
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"], provider: "provider" };
101104
const rawResponseBody = { key: "value" };
102105
server
103106
.mockEndpoint()
@@ -112,14 +115,15 @@ describe("Agent", () => {
112115
return await client.agent.create({
113116
name: "name",
114117
prompts: ["prompts", "prompts"],
118+
provider: "provider",
115119
});
116120
}).rejects.toThrow(phenoml.agent.ForbiddenError);
117121
});
118122

119123
test("create (5)", async () => {
120124
const server = mockServerPool.createServer();
121125
const client = new phenomlClient({ token: "test", environment: server.baseUrl });
122-
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"] };
126+
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"], provider: "provider" };
123127
const rawResponseBody = { key: "value" };
124128
server
125129
.mockEndpoint()
@@ -134,6 +138,7 @@ describe("Agent", () => {
134138
return await client.agent.create({
135139
name: "name",
136140
prompts: ["prompts", "prompts"],
141+
provider: "provider",
137142
});
138143
}).rejects.toThrow(phenoml.agent.InternalServerError);
139144
});
@@ -301,7 +306,7 @@ describe("Agent", () => {
301306
test("update (1)", async () => {
302307
const server = mockServerPool.createServer();
303308
const client = new phenomlClient({ token: "test", environment: server.baseUrl });
304-
const rawRequestBody = { name: "name", prompts: ["prompt_123", "prompt_456"] };
309+
const rawRequestBody = { name: "name", prompts: ["prompt_123", "prompt_456"], provider: "provider" };
305310
const rawResponseBody = {
306311
success: true,
307312
message: "Agent created successfully",
@@ -327,6 +332,7 @@ describe("Agent", () => {
327332
const response = await client.agent.update("id", {
328333
name: "name",
329334
prompts: ["prompt_123", "prompt_456"],
335+
provider: "provider",
330336
});
331337
expect(response).toEqual({
332338
success: true,
@@ -346,7 +352,7 @@ describe("Agent", () => {
346352
test("update (2)", async () => {
347353
const server = mockServerPool.createServer();
348354
const client = new phenomlClient({ token: "test", environment: server.baseUrl });
349-
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"] };
355+
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"], provider: "provider" };
350356
const rawResponseBody = { key: "value" };
351357
server
352358
.mockEndpoint()
@@ -361,14 +367,15 @@ describe("Agent", () => {
361367
return await client.agent.update("id", {
362368
name: "name",
363369
prompts: ["prompts", "prompts"],
370+
provider: "provider",
364371
});
365372
}).rejects.toThrow(phenoml.agent.BadRequestError);
366373
});
367374

368375
test("update (3)", async () => {
369376
const server = mockServerPool.createServer();
370377
const client = new phenomlClient({ token: "test", environment: server.baseUrl });
371-
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"] };
378+
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"], provider: "provider" };
372379
const rawResponseBody = { key: "value" };
373380
server
374381
.mockEndpoint()
@@ -383,14 +390,15 @@ describe("Agent", () => {
383390
return await client.agent.update("id", {
384391
name: "name",
385392
prompts: ["prompts", "prompts"],
393+
provider: "provider",
386394
});
387395
}).rejects.toThrow(phenoml.agent.UnauthorizedError);
388396
});
389397

390398
test("update (4)", async () => {
391399
const server = mockServerPool.createServer();
392400
const client = new phenomlClient({ token: "test", environment: server.baseUrl });
393-
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"] };
401+
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"], provider: "provider" };
394402
const rawResponseBody = { key: "value" };
395403
server
396404
.mockEndpoint()
@@ -405,14 +413,15 @@ describe("Agent", () => {
405413
return await client.agent.update("id", {
406414
name: "name",
407415
prompts: ["prompts", "prompts"],
416+
provider: "provider",
408417
});
409418
}).rejects.toThrow(phenoml.agent.ForbiddenError);
410419
});
411420

412421
test("update (5)", async () => {
413422
const server = mockServerPool.createServer();
414423
const client = new phenomlClient({ token: "test", environment: server.baseUrl });
415-
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"] };
424+
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"], provider: "provider" };
416425
const rawResponseBody = { key: "value" };
417426
server
418427
.mockEndpoint()
@@ -427,14 +436,15 @@ describe("Agent", () => {
427436
return await client.agent.update("id", {
428437
name: "name",
429438
prompts: ["prompts", "prompts"],
439+
provider: "provider",
430440
});
431441
}).rejects.toThrow(phenoml.agent.NotFoundError);
432442
});
433443

434444
test("update (6)", async () => {
435445
const server = mockServerPool.createServer();
436446
const client = new phenomlClient({ token: "test", environment: server.baseUrl });
437-
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"] };
447+
const rawRequestBody = { name: "name", prompts: ["prompts", "prompts"], provider: "provider" };
438448
const rawResponseBody = { key: "value" };
439449
server
440450
.mockEndpoint()
@@ -449,6 +459,7 @@ describe("Agent", () => {
449459
return await client.agent.update("id", {
450460
name: "name",
451461
prompts: ["prompts", "prompts"],
462+
provider: "provider",
452463
});
453464
}).rejects.toThrow(phenoml.agent.InternalServerError);
454465
});

0 commit comments

Comments
 (0)