@app-vitals/agent-admin 0.7.1 → 0.9.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.
@@ -441,83 +441,4 @@ test.describe("GET /admin/chat/:agentId/threads/:threadId — CFB-3.2 mobile dra
441
441
  // A 1px rounding tolerance guards against sub-pixel layout.
442
442
  expect(composerBottom).toBeLessThanOrEqual(viewportHeight + 1);
443
443
  });
444
-
445
- // ─── Voice-first composer: phone mic size + auto-play toggle persistence ──
446
-
447
- test("at 375px the mic and auto-play buttons are >= 56px round thumb targets", async ({
448
- page,
449
- context,
450
- }) => {
451
- await page.setViewportSize({ width: 375, height: 812 });
452
- await loadChatThreadPage(page, context);
453
-
454
- const sizes = await page.evaluate(() =>
455
- ["mic-btn", "autoplay-btn"].map((id) => {
456
- const el = document.getElementById(id) as HTMLElement;
457
- const rect = el.getBoundingClientRect();
458
- return {
459
- id,
460
- width: rect.width,
461
- height: rect.height,
462
- radius: getComputedStyle(el).borderRadius,
463
- };
464
- }),
465
- );
466
- for (const { id, width, height, radius } of sizes) {
467
- expect(width, id).toBeGreaterThanOrEqual(56);
468
- expect(height, id).toBeGreaterThanOrEqual(56);
469
- expect(radius, id).toBe("50%");
470
- }
471
- });
472
-
473
- test("at 1280px the mic keeps the 44px desktop row height", async ({
474
- page,
475
- context,
476
- }) => {
477
- await page.setViewportSize({ width: 1280, height: 900 });
478
- await loadChatThreadPage(page, context);
479
- const height = await page.evaluate(
480
- () =>
481
- (document.getElementById("mic-btn") as HTMLElement).getBoundingClientRect()
482
- .height,
483
- );
484
- expect(height).toBe(44);
485
- });
486
-
487
- test("the auto-play toggle persists per thread across a reload", async ({
488
- page,
489
- context,
490
- }) => {
491
- await loadChatThreadPage(page, context);
492
- const toggle = page.locator("#autoplay-btn");
493
- await expect(toggle).toHaveAttribute("aria-pressed", "false");
494
-
495
- await toggle.click();
496
- await expect(toggle).toHaveAttribute("aria-pressed", "true");
497
- await expect(toggle).toHaveClass(/chat-autoplay-on/);
498
- const stored = await page.evaluate(
499
- (threadId) =>
500
- window.localStorage.getItem(`shipwright.chat.autoplay.${threadId}`),
501
- THREAD_ID,
502
- );
503
- expect(stored).toBe("1");
504
-
505
- await page.reload();
506
- await expect(page.locator("#autoplay-btn")).toHaveAttribute(
507
- "aria-pressed",
508
- "true",
509
- );
510
-
511
- await page.locator("#autoplay-btn").click();
512
- await expect(page.locator("#autoplay-btn")).toHaveAttribute(
513
- "aria-pressed",
514
- "false",
515
- );
516
- const cleared = await page.evaluate(
517
- (threadId) =>
518
- window.localStorage.getItem(`shipwright.chat.autoplay.${threadId}`),
519
- THREAD_ID,
520
- );
521
- expect(cleared).toBeNull();
522
- });
523
444
  });
package/openapi.json CHANGED
@@ -204,6 +204,9 @@
204
204
  "typeName": {
205
205
  "type": "string"
206
206
  },
207
+ "specialty": {
208
+ "type": "string"
209
+ },
207
210
  "podServiceAccountName": {
208
211
  "type": [
209
212
  "string",
@@ -309,6 +312,7 @@
309
312
  "patchAuthorAllowlist",
310
313
  "restrictSlackToMembers",
311
314
  "typeName",
315
+ "specialty",
312
316
  "podServiceAccountName",
313
317
  "accountId",
314
318
  "createdAt",
@@ -521,13 +525,18 @@
521
525
  "typeName": {
522
526
  "type": "string",
523
527
  "example": "coding"
528
+ },
529
+ "specialty": {
530
+ "type": "string",
531
+ "example": "coding"
524
532
  }
525
533
  },
526
534
  "required": [
527
535
  "id",
528
536
  "name",
529
537
  "selfHosted",
530
- "typeName"
538
+ "typeName",
539
+ "specialty"
531
540
  ]
532
541
  },
533
542
  "CreateAgentBody": {
@@ -2887,6 +2896,10 @@
2887
2896
  "type": "string",
2888
2897
  "example": "coding"
2889
2898
  },
2899
+ "specialty": {
2900
+ "type": "string",
2901
+ "example": "coding"
2902
+ },
2890
2903
  "phaseMethodology": {
2891
2904
  "type": "object",
2892
2905
  "additionalProperties": {
@@ -204,6 +204,9 @@
204
204
  "typeName": {
205
205
  "type": "string"
206
206
  },
207
+ "specialty": {
208
+ "type": "string"
209
+ },
207
210
  "podServiceAccountName": {
208
211
  "type": [
209
212
  "string",
@@ -309,6 +312,7 @@
309
312
  "patchAuthorAllowlist",
310
313
  "restrictSlackToMembers",
311
314
  "typeName",
315
+ "specialty",
312
316
  "podServiceAccountName",
313
317
  "accountId",
314
318
  "createdAt",
@@ -538,13 +542,18 @@
538
542
  "typeName": {
539
543
  "type": "string",
540
544
  "example": "coding"
545
+ },
546
+ "specialty": {
547
+ "type": "string",
548
+ "example": "coding"
541
549
  }
542
550
  },
543
551
  "required": [
544
552
  "id",
545
553
  "name",
546
554
  "selfHosted",
547
- "typeName"
555
+ "typeName",
556
+ "specialty"
548
557
  ]
549
558
  },
550
559
  "CreateAgentBody": {
@@ -3093,6 +3102,10 @@
3093
3102
  "type": "string",
3094
3103
  "example": "coding"
3095
3104
  },
3105
+ "specialty": {
3106
+ "type": "string",
3107
+ "example": "coding"
3108
+ },
3096
3109
  "phaseMethodology": {
3097
3110
  "type": "object",
3098
3111
  "additionalProperties": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@app-vitals/agent-admin",
3
- "version": "0.7.1",
3
+ "version": "0.9.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/app-vitals/agent.git",
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@anthropic-ai/sdk": "0.135.0",
46
- "@app-vitals/agent-lib": "0.7.1",
46
+ "@app-vitals/agent-lib": "0.9.0",
47
47
  "@hono/zod-openapi": "^1.0.0",
48
48
  "@prisma/adapter-pg": "^7.10.0",
49
49
  "@prisma/client": "^7.10.0",