@oddkin/ai 1.0.0-beta.0 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +2 -2
  2. package/agent/GUIDE.md +3 -11
  3. package/agent/kit.json +10 -10
  4. package/agent/llms.txt +1 -1
  5. package/agent/references/components/odd-action-approval.md +1 -5
  6. package/agent/references/components/odd-activity.md +1 -5
  7. package/agent/references/components/odd-ai-label.md +1 -5
  8. package/agent/references/components/odd-artifact.md +1 -5
  9. package/agent/references/components/odd-change-review.md +1 -5
  10. package/agent/references/components/odd-checkpoint.md +1 -5
  11. package/agent/references/components/odd-citation.md +1 -5
  12. package/agent/references/components/odd-context-picker.md +1 -5
  13. package/agent/references/components/odd-conversation.md +1 -5
  14. package/agent/references/components/odd-inline-assist.md +1 -5
  15. package/agent/references/components/odd-message-branch.md +1 -5
  16. package/agent/references/components/odd-message.md +1 -5
  17. package/agent/references/components/odd-model-select.md +1 -5
  18. package/agent/references/components/odd-prompt-input.md +1 -5
  19. package/agent/references/components/odd-question.md +1 -5
  20. package/agent/references/components/odd-response-feedback.md +1 -5
  21. package/agent/references/components/odd-response.md +1 -5
  22. package/agent/references/components/odd-sources.md +1 -5
  23. package/agent/references/components/odd-suggestions.md +1 -5
  24. package/agent/references/components/odd-task-plan.md +1 -5
  25. package/agent/references/components/odd-tool-call.md +1 -5
  26. package/agent/references/components/odd-transcript.md +1 -5
  27. package/agent/references/components/odd-usage-meter.md +1 -5
  28. package/agent/references/components/odd-voice-input.md +1 -5
  29. package/dist/artifact/artifact.styles.d.ts.map +1 -1
  30. package/dist/artifact/artifact.styles.js +5 -0
  31. package/dist/artifact/artifact.styles.js.map +1 -1
  32. package/dist/context-picker/context-picker.styles.d.ts.map +1 -1
  33. package/dist/context-picker/context-picker.styles.js +5 -0
  34. package/dist/context-picker/context-picker.styles.js.map +1 -1
  35. package/dist/controllers/conversation.d.ts.map +1 -1
  36. package/dist/controllers/conversation.js +9 -1
  37. package/dist/controllers/conversation.js.map +1 -1
  38. package/dist/inline-assist/inline-assist.styles.d.ts.map +1 -1
  39. package/dist/inline-assist/inline-assist.styles.js +2 -0
  40. package/dist/inline-assist/inline-assist.styles.js.map +1 -1
  41. package/dist/prod/artifact/artifact.styles.js +5 -0
  42. package/dist/prod/context-picker/context-picker.styles.js +5 -0
  43. package/dist/prod/controllers/conversation.js +5 -2
  44. package/dist/prod/inline-assist/inline-assist.styles.js +2 -0
  45. package/dist/prod/prompt-input/prompt-input.template.js +1 -1
  46. package/dist/prompt-input/prompt-input.template.d.ts.map +1 -1
  47. package/dist/prompt-input/prompt-input.template.js +3 -1
  48. package/dist/prompt-input/prompt-input.template.js.map +1 -1
  49. package/oddkin.metadata.json +923 -1344
  50. package/package.json +7 -5
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "schema": "https://oddkin.dev/schemas/oddkin-metadata/v1.json",
3
- "oddkinVersion": "1.0.0-beta.0",
3
+ "oddkinVersion": "1.0.0-beta.1",
4
4
  "library": {
5
5
  "name": "@oddkin/ai",
6
- "version": "1.0.0-beta.0",
6
+ "version": "1.0.0-beta.1",
7
7
  "prefix": "odd-",
8
8
  "packages": [
9
9
  {
10
10
  "name": "@oddkin/ai",
11
- "version": "1.0.0-beta.0",
11
+ "version": "1.0.0-beta.1",
12
12
  "customElements": "./custom-elements.json"
13
13
  }
14
14
  ]
@@ -491,57 +491,6 @@
491
491
  "contract:core/update-complete",
492
492
  "contract:core/scope",
493
493
  "contract:core/composition"
494
- ],
495
- "verification": [
496
- {
497
- "suite": "oddkin.cem-contract@1.0.0",
498
- "provenance": "verified",
499
- "source": {
500
- "test": "packages/ai/test/contract.browser.test.ts",
501
- "run": "run-efd429d8",
502
- "date": "2026-10-28T07:56:46.199Z"
503
- },
504
- "conditions": {
505
- "browsers": [
506
- {
507
- "name": "chromium",
508
- "version": "156.0.8078.4"
509
- },
510
- {
511
- "name": "firefox",
512
- "version": "157.0"
513
- },
514
- {
515
- "name": "webkit",
516
- "version": "27.2"
517
- }
518
- ],
519
- "package": "@oddkin/ai@1.0.0-beta.0",
520
- "inputs": {
521
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
522
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
523
- }
524
- },
525
- "facts": [
526
- "component:odd-action-approval/events",
527
- "event:odd-action-approval#odd-announce/defined",
528
- "event:odd-action-approval#odd-approval-decide/defined",
529
- "event:odd-action-approval#odd-approval-decide/not-programmatic",
530
- "event:odd-action-approval#odd-approval-edit/defined",
531
- "event:odd-action-approval#odd-approval-edit/not-programmatic",
532
- "part:odd-action-approval#actions/rendered",
533
- "part:odd-action-approval#base/rendered",
534
- "part:odd-action-approval#changes/rendered",
535
- "property:odd-action-approval#announce/accessor",
536
- "property:odd-action-approval#announce/attribute",
537
- "property:odd-action-approval#announce/default",
538
- "property:odd-action-approval#announce/pre-upgrade",
539
- "property:odd-action-approval#announce/reflects",
540
- "property:odd-action-approval#approval/accessor",
541
- "property:odd-action-approval#capabilities/accessor",
542
- "property:odd-action-approval#strings/accessor"
543
- ]
544
- }
545
494
  ]
546
495
  },
547
496
  "component:odd-activity": {
@@ -947,53 +896,6 @@
947
896
  "contract:core/update-complete",
948
897
  "contract:core/scope",
949
898
  "contract:core/composition"
950
- ],
951
- "verification": [
952
- {
953
- "suite": "oddkin.cem-contract@1.0.0",
954
- "provenance": "verified",
955
- "source": {
956
- "test": "packages/ai/test/contract.browser.test.ts",
957
- "run": "run-efd429d8",
958
- "date": "2026-10-28T07:56:46.199Z"
959
- },
960
- "conditions": {
961
- "browsers": [
962
- {
963
- "name": "chromium",
964
- "version": "156.0.8078.4"
965
- },
966
- {
967
- "name": "firefox",
968
- "version": "157.0"
969
- },
970
- {
971
- "name": "webkit",
972
- "version": "27.2"
973
- }
974
- ],
975
- "package": "@oddkin/ai@1.0.0-beta.0",
976
- "inputs": {
977
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
978
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
979
- }
980
- },
981
- "facts": [
982
- "component:odd-activity/events",
983
- "event:odd-activity#odd-attempt-resume/defined",
984
- "event:odd-activity#odd-attempt-resume/not-programmatic",
985
- "event:odd-activity#odd-attempt-retry/defined",
986
- "event:odd-activity#odd-attempt-retry/not-programmatic",
987
- "event:odd-activity#odd-prompt-stop/defined",
988
- "event:odd-activity#odd-prompt-stop/not-programmatic",
989
- "part:odd-activity#actions/rendered",
990
- "part:odd-activity#base/rendered",
991
- "property:odd-activity#attempt/accessor",
992
- "property:odd-activity#capabilities/accessor",
993
- "property:odd-activity#strings/accessor",
994
- "property:odd-activity#tools/accessor"
995
- ]
996
- }
997
899
  ]
998
900
  },
999
901
  "component:odd-ai-label": {
@@ -1393,46 +1295,6 @@
1393
1295
  "contract:core/update-complete",
1394
1296
  "contract:core/scope",
1395
1297
  "contract:core/composition"
1396
- ],
1397
- "verification": [
1398
- {
1399
- "suite": "oddkin.cem-contract@1.0.0",
1400
- "provenance": "verified",
1401
- "source": {
1402
- "test": "packages/ai/test/contract.browser.test.ts",
1403
- "run": "run-efd429d8",
1404
- "date": "2026-10-28T07:56:46.199Z"
1405
- },
1406
- "conditions": {
1407
- "browsers": [
1408
- {
1409
- "name": "chromium",
1410
- "version": "156.0.8078.4"
1411
- },
1412
- {
1413
- "name": "firefox",
1414
- "version": "157.0"
1415
- },
1416
- {
1417
- "name": "webkit",
1418
- "version": "27.2"
1419
- }
1420
- ],
1421
- "package": "@oddkin/ai@1.0.0-beta.0",
1422
- "inputs": {
1423
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
1424
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
1425
- }
1426
- },
1427
- "facts": [
1428
- "component:odd-ai-label/events",
1429
- "part:odd-ai-label#base/rendered",
1430
- "part:odd-ai-label#details/rendered",
1431
- "part:odd-ai-label#label/rendered",
1432
- "property:odd-ai-label#provenance/accessor",
1433
- "property:odd-ai-label#strings/accessor"
1434
- ]
1435
- }
1436
1298
  ]
1437
1299
  },
1438
1300
  "component:odd-artifact": {
@@ -1885,64 +1747,6 @@
1885
1747
  "contract:core/update-complete",
1886
1748
  "contract:core/scope",
1887
1749
  "contract:core/composition"
1888
- ],
1889
- "verification": [
1890
- {
1891
- "suite": "oddkin.cem-contract@1.0.0",
1892
- "provenance": "verified",
1893
- "source": {
1894
- "test": "packages/ai/test/contract.browser.test.ts",
1895
- "run": "run-efd429d8",
1896
- "date": "2026-10-28T07:56:46.199Z"
1897
- },
1898
- "conditions": {
1899
- "browsers": [
1900
- {
1901
- "name": "chromium",
1902
- "version": "156.0.8078.4"
1903
- },
1904
- {
1905
- "name": "firefox",
1906
- "version": "157.0"
1907
- },
1908
- {
1909
- "name": "webkit",
1910
- "version": "27.2"
1911
- }
1912
- ],
1913
- "package": "@oddkin/ai@1.0.0-beta.0",
1914
- "inputs": {
1915
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
1916
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
1917
- }
1918
- },
1919
- "facts": [
1920
- "component:odd-artifact/events",
1921
- "event:odd-artifact#odd-announce/defined",
1922
- "event:odd-artifact#odd-artifact-export/defined",
1923
- "event:odd-artifact#odd-artifact-export/not-programmatic",
1924
- "event:odd-artifact#odd-artifact-revision-change/defined",
1925
- "event:odd-artifact#odd-artifact-revision-change/not-programmatic",
1926
- "part:odd-artifact#header/rendered",
1927
- "part:odd-artifact#preview/rendered",
1928
- "part:odd-artifact#source/rendered",
1929
- "property:odd-artifact#artifact/accessor",
1930
- "property:odd-artifact#exports/accessor",
1931
- "property:odd-artifact#markdown/accessor",
1932
- "property:odd-artifact#renderers/accessor",
1933
- "property:odd-artifact#revisionId/accessor",
1934
- "property:odd-artifact#revisionId/attribute",
1935
- "property:odd-artifact#revisionId/default",
1936
- "property:odd-artifact#revisionId/pre-upgrade",
1937
- "property:odd-artifact#revisionId/reflects",
1938
- "property:odd-artifact#strings/accessor",
1939
- "property:odd-artifact#view/accessor",
1940
- "property:odd-artifact#view/attribute",
1941
- "property:odd-artifact#view/default",
1942
- "property:odd-artifact#view/pre-upgrade",
1943
- "property:odd-artifact#view/reflects"
1944
- ]
1945
- }
1946
1750
  ]
1947
1751
  },
1948
1752
  "component:odd-change-review": {
@@ -2417,68 +2221,6 @@
2417
2221
  "contract:core/update-complete",
2418
2222
  "contract:core/scope",
2419
2223
  "contract:core/composition"
2420
- ],
2421
- "verification": [
2422
- {
2423
- "suite": "oddkin.cem-contract@1.0.0",
2424
- "provenance": "verified",
2425
- "source": {
2426
- "test": "packages/ai/test/contract.browser.test.ts",
2427
- "run": "run-efd429d8",
2428
- "date": "2026-10-28T07:56:46.199Z"
2429
- },
2430
- "conditions": {
2431
- "browsers": [
2432
- {
2433
- "name": "chromium",
2434
- "version": "156.0.8078.4"
2435
- },
2436
- {
2437
- "name": "firefox",
2438
- "version": "157.0"
2439
- },
2440
- {
2441
- "name": "webkit",
2442
- "version": "27.2"
2443
- }
2444
- ],
2445
- "package": "@oddkin/ai@1.0.0-beta.0",
2446
- "inputs": {
2447
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
2448
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
2449
- }
2450
- },
2451
- "facts": [
2452
- "component:odd-change-review/events",
2453
- "event:odd-change-review#odd-announce/defined",
2454
- "event:odd-change-review#odd-change-accept/defined",
2455
- "event:odd-change-review#odd-change-accept/not-programmatic",
2456
- "event:odd-change-review#odd-change-reject/defined",
2457
- "event:odd-change-review#odd-change-reject/not-programmatic",
2458
- "event:odd-change-review#odd-change-undo/defined",
2459
- "event:odd-change-review#odd-change-undo/not-programmatic",
2460
- "part:odd-change-review#diff/rendered",
2461
- "part:odd-change-review#list/rendered",
2462
- "part:odd-change-review#proposal/rendered",
2463
- "property:odd-change-review#announce/accessor",
2464
- "property:odd-change-review#announce/attribute",
2465
- "property:odd-change-review#announce/default",
2466
- "property:odd-change-review#announce/pre-upgrade",
2467
- "property:odd-change-review#announce/reflects",
2468
- "property:odd-change-review#granularity/accessor",
2469
- "property:odd-change-review#granularity/attribute",
2470
- "property:odd-change-review#granularity/default",
2471
- "property:odd-change-review#granularity/pre-upgrade",
2472
- "property:odd-change-review#granularity/reflects",
2473
- "property:odd-change-review#proposals/accessor",
2474
- "property:odd-change-review#strings/accessor",
2475
- "property:odd-change-review#view/accessor",
2476
- "property:odd-change-review#view/attribute",
2477
- "property:odd-change-review#view/default",
2478
- "property:odd-change-review#view/pre-upgrade",
2479
- "property:odd-change-review#view/reflects"
2480
- ]
2481
- }
2482
2224
  ]
2483
2225
  },
2484
2226
  "component:odd-checkpoint": {
@@ -2954,55 +2696,6 @@
2954
2696
  "contract:core/update-complete",
2955
2697
  "contract:core/scope",
2956
2698
  "contract:core/composition"
2957
- ],
2958
- "verification": [
2959
- {
2960
- "suite": "oddkin.cem-contract@1.0.0",
2961
- "provenance": "verified",
2962
- "source": {
2963
- "test": "packages/ai/test/contract.browser.test.ts",
2964
- "run": "run-efd429d8",
2965
- "date": "2026-10-28T07:56:46.199Z"
2966
- },
2967
- "conditions": {
2968
- "browsers": [
2969
- {
2970
- "name": "chromium",
2971
- "version": "156.0.8078.4"
2972
- },
2973
- {
2974
- "name": "firefox",
2975
- "version": "157.0"
2976
- },
2977
- {
2978
- "name": "webkit",
2979
- "version": "27.2"
2980
- }
2981
- ],
2982
- "package": "@oddkin/ai@1.0.0-beta.0",
2983
- "inputs": {
2984
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
2985
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
2986
- }
2987
- },
2988
- "facts": [
2989
- "component:odd-checkpoint/events",
2990
- "event:odd-checkpoint#odd-announce/defined",
2991
- "event:odd-checkpoint#odd-checkpoint-restore/defined",
2992
- "event:odd-checkpoint#odd-checkpoint-restore/not-programmatic",
2993
- "part:odd-checkpoint#actions/rendered",
2994
- "part:odd-checkpoint#base/rendered",
2995
- "part:odd-checkpoint#restores/rendered",
2996
- "property:odd-checkpoint#announce/accessor",
2997
- "property:odd-checkpoint#announce/attribute",
2998
- "property:odd-checkpoint#announce/default",
2999
- "property:odd-checkpoint#announce/pre-upgrade",
3000
- "property:odd-checkpoint#announce/reflects",
3001
- "property:odd-checkpoint#capabilities/accessor",
3002
- "property:odd-checkpoint#checkpoint/accessor",
3003
- "property:odd-checkpoint#strings/accessor"
3004
- ]
3005
- }
3006
2699
  ]
3007
2700
  },
3008
2701
  "component:odd-citation": {
@@ -3486,59 +3179,6 @@
3486
3179
  "contract:core/update-complete",
3487
3180
  "contract:core/scope",
3488
3181
  "contract:core/composition"
3489
- ],
3490
- "verification": [
3491
- {
3492
- "suite": "oddkin.cem-contract@1.0.0",
3493
- "provenance": "verified",
3494
- "source": {
3495
- "test": "packages/ai/test/contract.browser.test.ts",
3496
- "run": "run-efd429d8",
3497
- "date": "2026-10-28T07:56:46.199Z"
3498
- },
3499
- "conditions": {
3500
- "browsers": [
3501
- {
3502
- "name": "chromium",
3503
- "version": "156.0.8078.4"
3504
- },
3505
- {
3506
- "name": "firefox",
3507
- "version": "157.0"
3508
- },
3509
- {
3510
- "name": "webkit",
3511
- "version": "27.2"
3512
- }
3513
- ],
3514
- "package": "@oddkin/ai@1.0.0-beta.0",
3515
- "inputs": {
3516
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
3517
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
3518
- }
3519
- },
3520
- "facts": [
3521
- "component:odd-citation/events",
3522
- "event:odd-citation#odd-citation-open/defined",
3523
- "event:odd-citation#odd-citation-open/not-programmatic",
3524
- "event:odd-citation#odd-source-reveal/defined",
3525
- "event:odd-citation#odd-source-reveal/not-programmatic",
3526
- "part:odd-citation#preview/rendered",
3527
- "part:odd-citation#trigger/rendered",
3528
- "property:odd-citation#index/accessor",
3529
- "property:odd-citation#index/attribute",
3530
- "property:odd-citation#index/default",
3531
- "property:odd-citation#index/pre-upgrade",
3532
- "property:odd-citation#index/reflects",
3533
- "property:odd-citation#source/accessor",
3534
- "property:odd-citation#sourceId/accessor",
3535
- "property:odd-citation#sourceId/attribute",
3536
- "property:odd-citation#sourceId/default",
3537
- "property:odd-citation#sourceId/pre-upgrade",
3538
- "property:odd-citation#sourceId/reflects",
3539
- "property:odd-citation#strings/accessor"
3540
- ]
3541
- }
3542
3182
  ]
3543
3183
  },
3544
3184
  "component:odd-context-picker": {
@@ -3974,66 +3614,6 @@
3974
3614
  "contract:core/update-complete",
3975
3615
  "contract:core/scope",
3976
3616
  "contract:core/composition"
3977
- ],
3978
- "verification": [
3979
- {
3980
- "suite": "oddkin.cem-contract@1.0.0",
3981
- "provenance": "verified",
3982
- "source": {
3983
- "test": "packages/ai/test/contract.browser.test.ts",
3984
- "run": "run-efd429d8",
3985
- "date": "2026-10-28T07:56:46.199Z"
3986
- },
3987
- "conditions": {
3988
- "browsers": [
3989
- {
3990
- "name": "chromium",
3991
- "version": "156.0.8078.4"
3992
- },
3993
- {
3994
- "name": "firefox",
3995
- "version": "157.0"
3996
- },
3997
- {
3998
- "name": "webkit",
3999
- "version": "27.2"
4000
- }
4001
- ],
4002
- "package": "@oddkin/ai@1.0.0-beta.0",
4003
- "inputs": {
4004
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
4005
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
4006
- }
4007
- },
4008
- "facts": [
4009
- "component:odd-context-picker/events",
4010
- "event:odd-context-picker#odd-context-add/defined",
4011
- "event:odd-context-picker#odd-context-add/not-programmatic",
4012
- "event:odd-context-picker#odd-context-remove/defined",
4013
- "event:odd-context-picker#odd-context-remove/not-programmatic",
4014
- "part:odd-context-picker#add/rendered",
4015
- "part:odd-context-picker#base/rendered",
4016
- "part:odd-context-picker#item/rendered",
4017
- "part:odd-context-picker#list/rendered",
4018
- "property:odd-context-picker#accept/accessor",
4019
- "property:odd-context-picker#accept/attribute",
4020
- "property:odd-context-picker#accept/default",
4021
- "property:odd-context-picker#accept/pre-upgrade",
4022
- "property:odd-context-picker#accept/reflects",
4023
- "property:odd-context-picker#allowUrls/accessor",
4024
- "property:odd-context-picker#allowUrls/attribute",
4025
- "property:odd-context-picker#allowUrls/default",
4026
- "property:odd-context-picker#allowUrls/pre-upgrade",
4027
- "property:odd-context-picker#allowUrls/reflects",
4028
- "property:odd-context-picker#disabled/accessor",
4029
- "property:odd-context-picker#disabled/attribute",
4030
- "property:odd-context-picker#disabled/default",
4031
- "property:odd-context-picker#disabled/pre-upgrade",
4032
- "property:odd-context-picker#disabled/reflects",
4033
- "property:odd-context-picker#items/accessor",
4034
- "property:odd-context-picker#strings/accessor"
4035
- ]
4036
- }
4037
3617
  ]
4038
3618
  },
4039
3619
  "component:odd-conversation": {
@@ -4545,69 +4125,6 @@
4545
4125
  "contract:core/update-complete",
4546
4126
  "contract:core/scope",
4547
4127
  "contract:core/composition"
4548
- ],
4549
- "verification": [
4550
- {
4551
- "suite": "oddkin.cem-contract@1.0.0",
4552
- "provenance": "verified",
4553
- "source": {
4554
- "test": "packages/ai/test/contract.browser.test.ts",
4555
- "run": "run-efd429d8",
4556
- "date": "2026-10-28T07:56:46.199Z"
4557
- },
4558
- "conditions": {
4559
- "browsers": [
4560
- {
4561
- "name": "chromium",
4562
- "version": "156.0.8078.4"
4563
- },
4564
- {
4565
- "name": "firefox",
4566
- "version": "157.0"
4567
- },
4568
- {
4569
- "name": "webkit",
4570
- "version": "27.2"
4571
- }
4572
- ],
4573
- "package": "@oddkin/ai@1.0.0-beta.0",
4574
- "inputs": {
4575
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
4576
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
4577
- }
4578
- },
4579
- "facts": [
4580
- "component:odd-conversation/events",
4581
- "event:odd-conversation#odd-history-request/defined",
4582
- "event:odd-conversation#odd-history-request/not-programmatic",
4583
- "part:odd-conversation#activity/rendered",
4584
- "part:odd-conversation#base/rendered",
4585
- "part:odd-conversation#feed/rendered",
4586
- "part:odd-conversation#jump/rendered",
4587
- "part:odd-conversation#scroller/rendered",
4588
- "property:odd-conversation#announce/accessor",
4589
- "property:odd-conversation#announce/attribute",
4590
- "property:odd-conversation#announce/default",
4591
- "property:odd-conversation#announce/pre-upgrade",
4592
- "property:odd-conversation#announce/reflects",
4593
- "property:odd-conversation#artifactRenderers/accessor",
4594
- "property:odd-conversation#feedbackReasons/accessor",
4595
- "property:odd-conversation#label/accessor",
4596
- "property:odd-conversation#label/attribute",
4597
- "property:odd-conversation#label/default",
4598
- "property:odd-conversation#label/pre-upgrade",
4599
- "property:odd-conversation#label/reflects",
4600
- "property:odd-conversation#markdown/accessor",
4601
- "property:odd-conversation#renderTool/accessor",
4602
- "property:odd-conversation#renderers/accessor",
4603
- "property:odd-conversation#state/accessor",
4604
- "property:odd-conversation#store/accessor",
4605
- "property:odd-conversation#strings/accessor",
4606
- "slot:odd-conversation#composer/rendered",
4607
- "slot:odd-conversation#empty/rendered",
4608
- "slot:odd-conversation#status/rendered"
4609
- ]
4610
- }
4611
4128
  ]
4612
4129
  },
4613
4130
  "component:odd-inline-assist": {
@@ -5074,69 +4591,6 @@
5074
4591
  "contract:core/update-complete",
5075
4592
  "contract:core/scope",
5076
4593
  "contract:core/composition"
5077
- ],
5078
- "verification": [
5079
- {
5080
- "suite": "oddkin.cem-contract@1.0.0",
5081
- "provenance": "verified",
5082
- "source": {
5083
- "test": "packages/ai/test/contract.browser.test.ts",
5084
- "run": "run-efd429d8",
5085
- "date": "2026-10-28T07:56:46.199Z"
5086
- },
5087
- "conditions": {
5088
- "browsers": [
5089
- {
5090
- "name": "chromium",
5091
- "version": "156.0.8078.4"
5092
- },
5093
- {
5094
- "name": "firefox",
5095
- "version": "157.0"
5096
- },
5097
- {
5098
- "name": "webkit",
5099
- "version": "27.2"
5100
- }
5101
- ],
5102
- "package": "@oddkin/ai@1.0.0-beta.0",
5103
- "inputs": {
5104
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
5105
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
5106
- }
5107
- },
5108
- "facts": [
5109
- "component:odd-inline-assist/events",
5110
- "event:odd-inline-assist#odd-assist-request/defined",
5111
- "event:odd-inline-assist#odd-assist-request/not-programmatic",
5112
- "part:odd-inline-assist#base/rendered",
5113
- "part:odd-inline-assist#result/rendered",
5114
- "part:odd-inline-assist#toolbar/rendered",
5115
- "property:odd-inline-assist#actions/accessor",
5116
- "property:odd-inline-assist#documentRevision/accessor",
5117
- "property:odd-inline-assist#documentRevision/attribute",
5118
- "property:odd-inline-assist#documentRevision/default",
5119
- "property:odd-inline-assist#documentRevision/pre-upgrade",
5120
- "property:odd-inline-assist#documentRevision/reflects",
5121
- "property:odd-inline-assist#error/accessor",
5122
- "property:odd-inline-assist#languages/accessor",
5123
- "property:odd-inline-assist#markdown/accessor",
5124
- "property:odd-inline-assist#pendingAction/accessor",
5125
- "property:odd-inline-assist#pendingAction/attribute",
5126
- "property:odd-inline-assist#pendingAction/default",
5127
- "property:odd-inline-assist#pendingAction/pre-upgrade",
5128
- "property:odd-inline-assist#pendingAction/reflects",
5129
- "property:odd-inline-assist#result/accessor",
5130
- "property:odd-inline-assist#result/default",
5131
- "property:odd-inline-assist#selection/accessor",
5132
- "property:odd-inline-assist#status/accessor",
5133
- "property:odd-inline-assist#status/attribute",
5134
- "property:odd-inline-assist#status/default",
5135
- "property:odd-inline-assist#status/pre-upgrade",
5136
- "property:odd-inline-assist#status/reflects",
5137
- "property:odd-inline-assist#strings/accessor"
5138
- ]
5139
- }
5140
4594
  ]
5141
4595
  },
5142
4596
  "component:odd-message": {
@@ -5627,63 +5081,6 @@
5627
5081
  "contract:core/update-complete",
5628
5082
  "contract:core/scope",
5629
5083
  "contract:core/composition"
5630
- ],
5631
- "verification": [
5632
- {
5633
- "suite": "oddkin.cem-contract@1.0.0",
5634
- "provenance": "verified",
5635
- "source": {
5636
- "test": "packages/ai/test/contract.browser.test.ts",
5637
- "run": "run-efd429d8",
5638
- "date": "2026-10-28T07:56:46.199Z"
5639
- },
5640
- "conditions": {
5641
- "browsers": [
5642
- {
5643
- "name": "chromium",
5644
- "version": "156.0.8078.4"
5645
- },
5646
- {
5647
- "name": "firefox",
5648
- "version": "157.0"
5649
- },
5650
- {
5651
- "name": "webkit",
5652
- "version": "27.2"
5653
- }
5654
- ],
5655
- "package": "@oddkin/ai@1.0.0-beta.0",
5656
- "inputs": {
5657
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
5658
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
5659
- }
5660
- },
5661
- "facts": [
5662
- "component:odd-message/events",
5663
- "event:odd-message#odd-announce/defined",
5664
- "event:odd-message#odd-message-edit/defined",
5665
- "event:odd-message#odd-message-edit/not-programmatic",
5666
- "event:odd-message#odd-message-regenerate/defined",
5667
- "event:odd-message#odd-message-regenerate/not-programmatic",
5668
- "part:odd-message#content/rendered",
5669
- "part:odd-message#footer/rendered",
5670
- "part:odd-message#header/rendered",
5671
- "property:odd-message#approvals/accessor",
5672
- "property:odd-message#artifactRenderers/accessor",
5673
- "property:odd-message#artifacts/accessor",
5674
- "property:odd-message#attempt/accessor",
5675
- "property:odd-message#branch/accessor",
5676
- "property:odd-message#capabilities/accessor",
5677
- "property:odd-message#feedback/accessor",
5678
- "property:odd-message#feedbackReasons/accessor",
5679
- "property:odd-message#markdown/accessor",
5680
- "property:odd-message#message/accessor",
5681
- "property:odd-message#renderTool/accessor",
5682
- "property:odd-message#renderers/accessor",
5683
- "property:odd-message#strings/accessor",
5684
- "property:odd-message#tools/accessor"
5685
- ]
5686
- }
5687
5084
  ]
5688
5085
  },
5689
5086
  "component:odd-message-branch": {
@@ -6046,52 +5443,6 @@
6046
5443
  "contract:core/update-complete",
6047
5444
  "contract:core/scope",
6048
5445
  "contract:core/composition"
6049
- ],
6050
- "verification": [
6051
- {
6052
- "suite": "oddkin.cem-contract@1.0.0",
6053
- "provenance": "verified",
6054
- "source": {
6055
- "test": "packages/ai/test/contract.browser.test.ts",
6056
- "run": "run-efd429d8",
6057
- "date": "2026-10-28T07:56:46.199Z"
6058
- },
6059
- "conditions": {
6060
- "browsers": [
6061
- {
6062
- "name": "chromium",
6063
- "version": "156.0.8078.4"
6064
- },
6065
- {
6066
- "name": "firefox",
6067
- "version": "157.0"
6068
- },
6069
- {
6070
- "name": "webkit",
6071
- "version": "27.2"
6072
- }
6073
- ],
6074
- "package": "@oddkin/ai@1.0.0-beta.0",
6075
- "inputs": {
6076
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
6077
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
6078
- }
6079
- },
6080
- "facts": [
6081
- "component:odd-message-branch/events",
6082
- "event:odd-message-branch#odd-branch-switch/defined",
6083
- "event:odd-message-branch#odd-branch-switch/not-programmatic",
6084
- "part:odd-message-branch#base/rendered",
6085
- "property:odd-message-branch#branch/accessor",
6086
- "property:odd-message-branch#capabilities/accessor",
6087
- "property:odd-message-branch#messageId/accessor",
6088
- "property:odd-message-branch#messageId/attribute",
6089
- "property:odd-message-branch#messageId/default",
6090
- "property:odd-message-branch#messageId/pre-upgrade",
6091
- "property:odd-message-branch#messageId/reflects",
6092
- "property:odd-message-branch#strings/accessor"
6093
- ]
6094
- }
6095
5446
  ]
6096
5447
  },
6097
5448
  "component:odd-model-select": {
@@ -6694,63 +6045,6 @@
6694
6045
  "contract:core/update-complete",
6695
6046
  "contract:core/scope",
6696
6047
  "contract:core/composition"
6697
- ],
6698
- "verification": [
6699
- {
6700
- "suite": "oddkin.cem-contract@1.0.0",
6701
- "provenance": "verified",
6702
- "source": {
6703
- "test": "packages/ai/test/contract.browser.test.ts",
6704
- "run": "run-efd429d8",
6705
- "date": "2026-10-28T07:56:46.199Z"
6706
- },
6707
- "conditions": {
6708
- "browsers": [
6709
- {
6710
- "name": "chromium",
6711
- "version": "156.0.8078.4"
6712
- },
6713
- {
6714
- "name": "firefox",
6715
- "version": "157.0"
6716
- },
6717
- {
6718
- "name": "webkit",
6719
- "version": "27.2"
6720
- }
6721
- ],
6722
- "package": "@oddkin/ai@1.0.0-beta.0",
6723
- "inputs": {
6724
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
6725
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
6726
- }
6727
- },
6728
- "facts": [
6729
- "component:odd-model-select/events",
6730
- "event:odd-model-select#odd-model-change/defined",
6731
- "event:odd-model-select#odd-model-change/not-programmatic",
6732
- "part:odd-model-select#details/rendered",
6733
- "part:odd-model-select#label/rendered",
6734
- "part:odd-model-select#select/rendered",
6735
- "property:odd-model-select#disabled/accessor",
6736
- "property:odd-model-select#disabled/attribute",
6737
- "property:odd-model-select#disabled/default",
6738
- "property:odd-model-select#disabled/pre-upgrade",
6739
- "property:odd-model-select#disabled/reflects",
6740
- "property:odd-model-select#label/accessor",
6741
- "property:odd-model-select#label/attribute",
6742
- "property:odd-model-select#label/default",
6743
- "property:odd-model-select#label/pre-upgrade",
6744
- "property:odd-model-select#label/reflects",
6745
- "property:odd-model-select#models/accessor",
6746
- "property:odd-model-select#strings/accessor",
6747
- "property:odd-model-select#value/accessor",
6748
- "property:odd-model-select#value/attribute",
6749
- "property:odd-model-select#value/default",
6750
- "property:odd-model-select#value/pre-upgrade",
6751
- "property:odd-model-select#value/reflects"
6752
- ]
6753
- }
6754
6048
  ]
6755
6049
  },
6756
6050
  "component:odd-prompt-input": {
@@ -7280,107 +6574,6 @@
7280
6574
  "contract:core/update-complete",
7281
6575
  "contract:core/scope",
7282
6576
  "contract:core/composition"
7283
- ],
7284
- "verification": [
7285
- {
7286
- "suite": "oddkin.cem-contract@1.0.0",
7287
- "provenance": "verified",
7288
- "source": {
7289
- "test": "packages/ai/test/contract.browser.test.ts",
7290
- "run": "run-efd429d8",
7291
- "date": "2026-10-28T07:56:46.199Z"
7292
- },
7293
- "conditions": {
7294
- "browsers": [
7295
- {
7296
- "name": "chromium",
7297
- "version": "156.0.8078.4"
7298
- },
7299
- {
7300
- "name": "firefox",
7301
- "version": "157.0"
7302
- },
7303
- {
7304
- "name": "webkit",
7305
- "version": "27.2"
7306
- }
7307
- ],
7308
- "package": "@oddkin/ai@1.0.0-beta.0",
7309
- "inputs": {
7310
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
7311
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
7312
- }
7313
- },
7314
- "facts": [
7315
- "component:odd-prompt-input/events",
7316
- "event:odd-prompt-input#odd-announce/defined",
7317
- "event:odd-prompt-input#odd-attachment-add/defined",
7318
- "event:odd-prompt-input#odd-attachment-add/not-programmatic",
7319
- "event:odd-prompt-input#odd-attachment-remove/defined",
7320
- "event:odd-prompt-input#odd-attachment-remove/not-programmatic",
7321
- "event:odd-prompt-input#odd-prompt-stop/defined",
7322
- "event:odd-prompt-input#odd-prompt-stop/not-programmatic",
7323
- "event:odd-prompt-input#odd-prompt-submit/defined",
7324
- "event:odd-prompt-input#odd-prompt-submit/not-programmatic",
7325
- "part:odd-prompt-input#attachments/rendered",
7326
- "part:odd-prompt-input#form/rendered",
7327
- "part:odd-prompt-input#input/rendered",
7328
- "part:odd-prompt-input#status/rendered",
7329
- "part:odd-prompt-input#toolbar/rendered",
7330
- "property:odd-prompt-input#accept/accessor",
7331
- "property:odd-prompt-input#accept/attribute",
7332
- "property:odd-prompt-input#accept/default",
7333
- "property:odd-prompt-input#accept/pre-upgrade",
7334
- "property:odd-prompt-input#accept/reflects",
7335
- "property:odd-prompt-input#attemptId/accessor",
7336
- "property:odd-prompt-input#attemptId/attribute",
7337
- "property:odd-prompt-input#attemptId/default",
7338
- "property:odd-prompt-input#attemptId/pre-upgrade",
7339
- "property:odd-prompt-input#attemptId/reflects",
7340
- "property:odd-prompt-input#capabilities/accessor",
7341
- "property:odd-prompt-input#controller/accessor",
7342
- "property:odd-prompt-input#disabled/accessor",
7343
- "property:odd-prompt-input#disabled/attribute",
7344
- "property:odd-prompt-input#disabled/default",
7345
- "property:odd-prompt-input#disabled/pre-upgrade",
7346
- "property:odd-prompt-input#disabled/reflects",
7347
- "property:odd-prompt-input#enterBehavior/accessor",
7348
- "property:odd-prompt-input#enterBehavior/attribute",
7349
- "property:odd-prompt-input#enterBehavior/default",
7350
- "property:odd-prompt-input#enterBehavior/pre-upgrade",
7351
- "property:odd-prompt-input#enterBehavior/reflects",
7352
- "property:odd-prompt-input#label/accessor",
7353
- "property:odd-prompt-input#label/attribute",
7354
- "property:odd-prompt-input#label/default",
7355
- "property:odd-prompt-input#label/pre-upgrade",
7356
- "property:odd-prompt-input#label/reflects",
7357
- "property:odd-prompt-input#loading/accessor",
7358
- "property:odd-prompt-input#loading/attribute",
7359
- "property:odd-prompt-input#loading/default",
7360
- "property:odd-prompt-input#loading/pre-upgrade",
7361
- "property:odd-prompt-input#loading/reflects",
7362
- "property:odd-prompt-input#maxFileSize/accessor",
7363
- "property:odd-prompt-input#maxFileSize/attribute",
7364
- "property:odd-prompt-input#maxFileSize/default",
7365
- "property:odd-prompt-input#maxFileSize/pre-upgrade",
7366
- "property:odd-prompt-input#maxFileSize/reflects",
7367
- "property:odd-prompt-input#maxFiles/accessor",
7368
- "property:odd-prompt-input#maxFiles/attribute",
7369
- "property:odd-prompt-input#maxFiles/default",
7370
- "property:odd-prompt-input#maxFiles/pre-upgrade",
7371
- "property:odd-prompt-input#maxFiles/reflects",
7372
- "property:odd-prompt-input#placeholder/accessor",
7373
- "property:odd-prompt-input#placeholder/attribute",
7374
- "property:odd-prompt-input#placeholder/default",
7375
- "property:odd-prompt-input#placeholder/pre-upgrade",
7376
- "property:odd-prompt-input#placeholder/reflects",
7377
- "property:odd-prompt-input#strings/accessor",
7378
- "property:odd-prompt-input#value/accessor",
7379
- "slot:odd-prompt-input#header/rendered",
7380
- "slot:odd-prompt-input#toolbar-end/rendered",
7381
- "slot:odd-prompt-input#toolbar-start/rendered"
7382
- ]
7383
- }
7384
6577
  ]
7385
6578
  },
7386
6579
  "component:odd-question": {
@@ -7797,55 +6990,6 @@
7797
6990
  "contract:core/update-complete",
7798
6991
  "contract:core/scope",
7799
6992
  "contract:core/composition"
7800
- ],
7801
- "verification": [
7802
- {
7803
- "suite": "oddkin.cem-contract@1.0.0",
7804
- "provenance": "verified",
7805
- "source": {
7806
- "test": "packages/ai/test/contract.browser.test.ts",
7807
- "run": "run-efd429d8",
7808
- "date": "2026-10-28T07:56:46.199Z"
7809
- },
7810
- "conditions": {
7811
- "browsers": [
7812
- {
7813
- "name": "chromium",
7814
- "version": "156.0.8078.4"
7815
- },
7816
- {
7817
- "name": "firefox",
7818
- "version": "157.0"
7819
- },
7820
- {
7821
- "name": "webkit",
7822
- "version": "27.2"
7823
- }
7824
- ],
7825
- "package": "@oddkin/ai@1.0.0-beta.0",
7826
- "inputs": {
7827
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
7828
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
7829
- }
7830
- },
7831
- "facts": [
7832
- "component:odd-question/events",
7833
- "event:odd-question#odd-announce/defined",
7834
- "event:odd-question#odd-question-answer/defined",
7835
- "event:odd-question#odd-question-answer/not-programmatic",
7836
- "event:odd-question#odd-question-skip/defined",
7837
- "event:odd-question#odd-question-skip/not-programmatic",
7838
- "part:odd-question#actions/rendered",
7839
- "part:odd-question#form/rendered",
7840
- "property:odd-question#announce/accessor",
7841
- "property:odd-question#announce/attribute",
7842
- "property:odd-question#announce/default",
7843
- "property:odd-question#announce/pre-upgrade",
7844
- "property:odd-question#announce/reflects",
7845
- "property:odd-question#question/accessor",
7846
- "property:odd-question#strings/accessor"
7847
- ]
7848
- }
7849
6993
  ]
7850
6994
  },
7851
6995
  "component:odd-response": {
@@ -8306,61 +7450,6 @@
8306
7450
  "contract:core/update-complete",
8307
7451
  "contract:core/scope",
8308
7452
  "contract:core/composition"
8309
- ],
8310
- "verification": [
8311
- {
8312
- "suite": "oddkin.cem-contract@1.0.0",
8313
- "provenance": "verified",
8314
- "source": {
8315
- "test": "packages/ai/test/contract.browser.test.ts",
8316
- "run": "run-efd429d8",
8317
- "date": "2026-10-28T07:56:46.199Z"
8318
- },
8319
- "conditions": {
8320
- "browsers": [
8321
- {
8322
- "name": "chromium",
8323
- "version": "156.0.8078.4"
8324
- },
8325
- {
8326
- "name": "firefox",
8327
- "version": "157.0"
8328
- },
8329
- {
8330
- "name": "webkit",
8331
- "version": "27.2"
8332
- }
8333
- ],
8334
- "package": "@oddkin/ai@1.0.0-beta.0",
8335
- "inputs": {
8336
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
8337
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
8338
- }
8339
- },
8340
- "facts": [
8341
- "component:odd-response/events",
8342
- "event:odd-response#odd-announce/defined",
8343
- "part:odd-response#actions/rendered",
8344
- "part:odd-response#content/rendered",
8345
- "part:odd-response#status/rendered",
8346
- "property:odd-response#copyable/accessor",
8347
- "property:odd-response#copyable/attribute",
8348
- "property:odd-response#copyable/default",
8349
- "property:odd-response#copyable/pre-upgrade",
8350
- "property:odd-response#copyable/reflects",
8351
- "property:odd-response#error/accessor",
8352
- "property:odd-response#markdown/accessor",
8353
- "property:odd-response#sources/accessor",
8354
- "property:odd-response#status/accessor",
8355
- "property:odd-response#status/attribute",
8356
- "property:odd-response#status/default",
8357
- "property:odd-response#status/pre-upgrade",
8358
- "property:odd-response#status/reflects",
8359
- "property:odd-response#strings/accessor",
8360
- "property:odd-response#text/accessor",
8361
- "property:odd-response#text/default"
8362
- ]
8363
- }
8364
7453
  ]
8365
7454
  },
8366
7455
  "component:odd-response-feedback": {
@@ -8754,64 +7843,6 @@
8754
7843
  "contract:core/update-complete",
8755
7844
  "contract:core/scope",
8756
7845
  "contract:core/composition"
8757
- ],
8758
- "verification": [
8759
- {
8760
- "suite": "oddkin.cem-contract@1.0.0",
8761
- "provenance": "verified",
8762
- "source": {
8763
- "test": "packages/ai/test/contract.browser.test.ts",
8764
- "run": "run-efd429d8",
8765
- "date": "2026-10-28T07:56:46.199Z"
8766
- },
8767
- "conditions": {
8768
- "browsers": [
8769
- {
8770
- "name": "chromium",
8771
- "version": "156.0.8078.4"
8772
- },
8773
- {
8774
- "name": "firefox",
8775
- "version": "157.0"
8776
- },
8777
- {
8778
- "name": "webkit",
8779
- "version": "27.2"
8780
- }
8781
- ],
8782
- "package": "@oddkin/ai@1.0.0-beta.0",
8783
- "inputs": {
8784
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
8785
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
8786
- }
8787
- },
8788
- "facts": [
8789
- "component:odd-response-feedback/events",
8790
- "event:odd-response-feedback#odd-announce/defined",
8791
- "event:odd-response-feedback#odd-feedback-submit/defined",
8792
- "event:odd-response-feedback#odd-feedback-submit/not-programmatic",
8793
- "part:odd-response-feedback#base/rendered",
8794
- "part:odd-response-feedback#form/rendered",
8795
- "property:odd-response-feedback#announce/accessor",
8796
- "property:odd-response-feedback#announce/attribute",
8797
- "property:odd-response-feedback#announce/default",
8798
- "property:odd-response-feedback#announce/pre-upgrade",
8799
- "property:odd-response-feedback#announce/reflects",
8800
- "property:odd-response-feedback#disabled/accessor",
8801
- "property:odd-response-feedback#disabled/attribute",
8802
- "property:odd-response-feedback#disabled/default",
8803
- "property:odd-response-feedback#disabled/pre-upgrade",
8804
- "property:odd-response-feedback#disabled/reflects",
8805
- "property:odd-response-feedback#feedback/accessor",
8806
- "property:odd-response-feedback#messageId/accessor",
8807
- "property:odd-response-feedback#messageId/attribute",
8808
- "property:odd-response-feedback#messageId/default",
8809
- "property:odd-response-feedback#messageId/pre-upgrade",
8810
- "property:odd-response-feedback#messageId/reflects",
8811
- "property:odd-response-feedback#reasons/accessor",
8812
- "property:odd-response-feedback#strings/accessor"
8813
- ]
8814
- }
8815
7846
  ]
8816
7847
  },
8817
7848
  "component:odd-sources": {
@@ -9202,51 +8233,6 @@
9202
8233
  "contract:core/update-complete",
9203
8234
  "contract:core/scope",
9204
8235
  "contract:core/composition"
9205
- ],
9206
- "verification": [
9207
- {
9208
- "suite": "oddkin.cem-contract@1.0.0",
9209
- "provenance": "verified",
9210
- "source": {
9211
- "test": "packages/ai/test/contract.browser.test.ts",
9212
- "run": "run-efd429d8",
9213
- "date": "2026-10-28T07:56:46.199Z"
9214
- },
9215
- "conditions": {
9216
- "browsers": [
9217
- {
9218
- "name": "chromium",
9219
- "version": "156.0.8078.4"
9220
- },
9221
- {
9222
- "name": "firefox",
9223
- "version": "157.0"
9224
- },
9225
- {
9226
- "name": "webkit",
9227
- "version": "27.2"
9228
- }
9229
- ],
9230
- "package": "@oddkin/ai@1.0.0-beta.0",
9231
- "inputs": {
9232
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
9233
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
9234
- }
9235
- },
9236
- "facts": [
9237
- "component:odd-sources/events",
9238
- "part:odd-sources#base/rendered",
9239
- "part:odd-sources#item/rendered",
9240
- "part:odd-sources#list/rendered",
9241
- "property:odd-sources#label/accessor",
9242
- "property:odd-sources#label/attribute",
9243
- "property:odd-sources#label/default",
9244
- "property:odd-sources#label/pre-upgrade",
9245
- "property:odd-sources#label/reflects",
9246
- "property:odd-sources#sources/accessor",
9247
- "property:odd-sources#strings/accessor"
9248
- ]
9249
- }
9250
8236
  ]
9251
8237
  },
9252
8238
  "component:odd-suggestions": {
@@ -9732,60 +8718,6 @@
9732
8718
  "contract:core/update-complete",
9733
8719
  "contract:core/scope",
9734
8720
  "contract:core/composition"
9735
- ],
9736
- "verification": [
9737
- {
9738
- "suite": "oddkin.cem-contract@1.0.0",
9739
- "provenance": "verified",
9740
- "source": {
9741
- "test": "packages/ai/test/contract.browser.test.ts",
9742
- "run": "run-efd429d8",
9743
- "date": "2026-10-28T07:56:46.199Z"
9744
- },
9745
- "conditions": {
9746
- "browsers": [
9747
- {
9748
- "name": "chromium",
9749
- "version": "156.0.8078.4"
9750
- },
9751
- {
9752
- "name": "firefox",
9753
- "version": "157.0"
9754
- },
9755
- {
9756
- "name": "webkit",
9757
- "version": "27.2"
9758
- }
9759
- ],
9760
- "package": "@oddkin/ai@1.0.0-beta.0",
9761
- "inputs": {
9762
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
9763
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
9764
- }
9765
- },
9766
- "facts": [
9767
- "component:odd-suggestions/events",
9768
- "event:odd-suggestions#odd-suggestion-select/defined",
9769
- "event:odd-suggestions#odd-suggestion-select/not-programmatic",
9770
- "event:odd-suggestions#odd-suggestion-submit/defined",
9771
- "event:odd-suggestions#odd-suggestion-submit/not-programmatic",
9772
- "part:odd-suggestions#list/rendered",
9773
- "part:odd-suggestions#send/rendered",
9774
- "part:odd-suggestions#suggestion/rendered",
9775
- "property:odd-suggestions#disabled/accessor",
9776
- "property:odd-suggestions#disabled/attribute",
9777
- "property:odd-suggestions#disabled/default",
9778
- "property:odd-suggestions#disabled/pre-upgrade",
9779
- "property:odd-suggestions#disabled/reflects",
9780
- "property:odd-suggestions#insertOnly/accessor",
9781
- "property:odd-suggestions#insertOnly/attribute",
9782
- "property:odd-suggestions#insertOnly/default",
9783
- "property:odd-suggestions#insertOnly/pre-upgrade",
9784
- "property:odd-suggestions#insertOnly/reflects",
9785
- "property:odd-suggestions#strings/accessor",
9786
- "property:odd-suggestions#suggestions/accessor"
9787
- ]
9788
- }
9789
8721
  ]
9790
8722
  },
9791
8723
  "component:odd-task-plan": {
@@ -10156,48 +9088,6 @@
10156
9088
  "contract:core/update-complete",
10157
9089
  "contract:core/scope",
10158
9090
  "contract:core/composition"
10159
- ],
10160
- "verification": [
10161
- {
10162
- "suite": "oddkin.cem-contract@1.0.0",
10163
- "provenance": "verified",
10164
- "source": {
10165
- "test": "packages/ai/test/contract.browser.test.ts",
10166
- "run": "run-efd429d8",
10167
- "date": "2026-10-28T07:56:46.199Z"
10168
- },
10169
- "conditions": {
10170
- "browsers": [
10171
- {
10172
- "name": "chromium",
10173
- "version": "156.0.8078.4"
10174
- },
10175
- {
10176
- "name": "firefox",
10177
- "version": "157.0"
10178
- },
10179
- {
10180
- "name": "webkit",
10181
- "version": "27.2"
10182
- }
10183
- ],
10184
- "package": "@oddkin/ai@1.0.0-beta.0",
10185
- "inputs": {
10186
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
10187
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
10188
- }
10189
- },
10190
- "facts": [
10191
- "component:odd-task-plan/events",
10192
- "event:odd-task-plan#odd-plan-input-request/defined",
10193
- "event:odd-task-plan#odd-plan-input-request/not-programmatic",
10194
- "part:odd-task-plan#base/rendered",
10195
- "part:odd-task-plan#progress/rendered",
10196
- "part:odd-task-plan#steps/rendered",
10197
- "property:odd-task-plan#plan/accessor",
10198
- "property:odd-task-plan#strings/accessor"
10199
- ]
10200
- }
10201
9091
  ]
10202
9092
  },
10203
9093
  "component:odd-tool-call": {
@@ -10680,52 +9570,6 @@
10680
9570
  "contract:core/update-complete",
10681
9571
  "contract:core/scope",
10682
9572
  "contract:core/composition"
10683
- ],
10684
- "verification": [
10685
- {
10686
- "suite": "oddkin.cem-contract@1.0.0",
10687
- "provenance": "verified",
10688
- "source": {
10689
- "test": "packages/ai/test/contract.browser.test.ts",
10690
- "run": "run-efd429d8",
10691
- "date": "2026-10-28T07:56:46.199Z"
10692
- },
10693
- "conditions": {
10694
- "browsers": [
10695
- {
10696
- "name": "chromium",
10697
- "version": "156.0.8078.4"
10698
- },
10699
- {
10700
- "name": "firefox",
10701
- "version": "157.0"
10702
- },
10703
- {
10704
- "name": "webkit",
10705
- "version": "27.2"
10706
- }
10707
- ],
10708
- "package": "@oddkin/ai@1.0.0-beta.0",
10709
- "inputs": {
10710
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
10711
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
10712
- }
10713
- },
10714
- "facts": [
10715
- "component:odd-tool-call/events",
10716
- "event:odd-tool-call#odd-tool-retry/defined",
10717
- "event:odd-tool-call#odd-tool-retry/not-programmatic",
10718
- "part:odd-tool-call#arguments/rendered",
10719
- "part:odd-tool-call#base/rendered",
10720
- "part:odd-tool-call#result/rendered",
10721
- "part:odd-tool-call#summary/rendered",
10722
- "property:odd-tool-call#approval/accessor",
10723
- "property:odd-tool-call#capabilities/accessor",
10724
- "property:odd-tool-call#renderOutput/accessor",
10725
- "property:odd-tool-call#strings/accessor",
10726
- "property:odd-tool-call#tool/accessor"
10727
- ]
10728
- }
10729
9573
  ]
10730
9574
  },
10731
9575
  "component:odd-transcript": {
@@ -11106,54 +9950,6 @@
11106
9950
  "contract:core/update-complete",
11107
9951
  "contract:core/scope",
11108
9952
  "contract:core/composition"
11109
- ],
11110
- "verification": [
11111
- {
11112
- "suite": "oddkin.cem-contract@1.0.0",
11113
- "provenance": "verified",
11114
- "source": {
11115
- "test": "packages/ai/test/contract.browser.test.ts",
11116
- "run": "run-efd429d8",
11117
- "date": "2026-10-28T07:56:46.199Z"
11118
- },
11119
- "conditions": {
11120
- "browsers": [
11121
- {
11122
- "name": "chromium",
11123
- "version": "156.0.8078.4"
11124
- },
11125
- {
11126
- "name": "firefox",
11127
- "version": "157.0"
11128
- },
11129
- {
11130
- "name": "webkit",
11131
- "version": "27.2"
11132
- }
11133
- ],
11134
- "package": "@oddkin/ai@1.0.0-beta.0",
11135
- "inputs": {
11136
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
11137
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
11138
- }
11139
- },
11140
- "facts": [
11141
- "component:odd-transcript/events",
11142
- "event:odd-transcript#odd-transcript-change/defined",
11143
- "event:odd-transcript#odd-transcript-change/not-programmatic",
11144
- "part:odd-transcript#interim/rendered",
11145
- "part:odd-transcript#list/rendered",
11146
- "property:odd-transcript#editable/accessor",
11147
- "property:odd-transcript#editable/attribute",
11148
- "property:odd-transcript#editable/default",
11149
- "property:odd-transcript#editable/pre-upgrade",
11150
- "property:odd-transcript#editable/reflects",
11151
- "property:odd-transcript#interim/accessor",
11152
- "property:odd-transcript#interim/default",
11153
- "property:odd-transcript#segments/accessor",
11154
- "property:odd-transcript#strings/accessor"
11155
- ]
11156
- }
11157
9953
  ]
11158
9954
  },
11159
9955
  "component:odd-usage-meter": {
@@ -11506,50 +10302,6 @@
11506
10302
  "contract:core/update-complete",
11507
10303
  "contract:core/scope",
11508
10304
  "contract:core/composition"
11509
- ],
11510
- "verification": [
11511
- {
11512
- "suite": "oddkin.cem-contract@1.0.0",
11513
- "provenance": "verified",
11514
- "source": {
11515
- "test": "packages/ai/test/contract.browser.test.ts",
11516
- "run": "run-efd429d8",
11517
- "date": "2026-10-28T07:56:46.199Z"
11518
- },
11519
- "conditions": {
11520
- "browsers": [
11521
- {
11522
- "name": "chromium",
11523
- "version": "156.0.8078.4"
11524
- },
11525
- {
11526
- "name": "firefox",
11527
- "version": "157.0"
11528
- },
11529
- {
11530
- "name": "webkit",
11531
- "version": "27.2"
11532
- }
11533
- ],
11534
- "package": "@oddkin/ai@1.0.0-beta.0",
11535
- "inputs": {
11536
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
11537
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
11538
- }
11539
- },
11540
- "facts": [
11541
- "component:odd-usage-meter/events",
11542
- "part:odd-usage-meter#list/rendered",
11543
- "part:odd-usage-meter#meter/rendered",
11544
- "property:odd-usage-meter#label/accessor",
11545
- "property:odd-usage-meter#label/attribute",
11546
- "property:odd-usage-meter#label/default",
11547
- "property:odd-usage-meter#label/pre-upgrade",
11548
- "property:odd-usage-meter#label/reflects",
11549
- "property:odd-usage-meter#strings/accessor",
11550
- "property:odd-usage-meter#usage/accessor"
11551
- ]
11552
- }
11553
10305
  ]
11554
10306
  },
11555
10307
  "component:odd-voice-input": {
@@ -11947,55 +10699,6 @@
11947
10699
  "contract:core/update-complete",
11948
10700
  "contract:core/scope",
11949
10701
  "contract:core/composition"
11950
- ],
11951
- "verification": [
11952
- {
11953
- "suite": "oddkin.cem-contract@1.0.0",
11954
- "provenance": "verified",
11955
- "source": {
11956
- "test": "packages/ai/test/contract.browser.test.ts",
11957
- "run": "run-efd429d8",
11958
- "date": "2026-10-28T07:56:46.199Z"
11959
- },
11960
- "conditions": {
11961
- "browsers": [
11962
- {
11963
- "name": "chromium",
11964
- "version": "156.0.8078.4"
11965
- },
11966
- {
11967
- "name": "firefox",
11968
- "version": "157.0"
11969
- },
11970
- {
11971
- "name": "webkit",
11972
- "version": "27.2"
11973
- }
11974
- ],
11975
- "package": "@oddkin/ai@1.0.0-beta.0",
11976
- "inputs": {
11977
- "manifest": "sha256-b4ddbdd55a86a7c50246b27b8990c998543cf535745cb0ad524aa380e950dc4f",
11978
- "sources": "sha256-c5bdd2e42917ab542036b7483b4062e52923da6c90d9fa34698ec56ed52e5390"
11979
- }
11980
- },
11981
- "facts": [
11982
- "component:odd-voice-input/events",
11983
- "event:odd-voice-input#odd-announce/defined",
11984
- "event:odd-voice-input#odd-voice-transcript/defined",
11985
- "event:odd-voice-input#odd-voice-transcript/not-programmatic",
11986
- "part:odd-voice-input#base/rendered",
11987
- "part:odd-voice-input#controls/rendered",
11988
- "part:odd-voice-input#status/rendered",
11989
- "property:odd-voice-input#adapter/accessor",
11990
- "property:odd-voice-input#controller/accessor",
11991
- "property:odd-voice-input#disabled/accessor",
11992
- "property:odd-voice-input#disabled/attribute",
11993
- "property:odd-voice-input#disabled/default",
11994
- "property:odd-voice-input#disabled/pre-upgrade",
11995
- "property:odd-voice-input#disabled/reflects",
11996
- "property:odd-voice-input#strings/accessor"
11997
- ]
11998
- }
11999
10702
  ]
12000
10703
  }
12001
10704
  },
@@ -12756,7 +11459,7 @@
12756
11459
  "space.sm",
12757
11460
  "target.min"
12758
11461
  ],
12759
- "css": "\n @layer odd.layout.base {\n .base {\n display: flex;\n flex-direction: column;\n gap: var(--odd-space-xs);\n min-inline-size: 0;\n }\n .header {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--odd-space-xs);\n flex-wrap: wrap;\n min-inline-size: 0;\n }\n}\n\n .base {\n padding: token(space.sm);\n border: token(border.width.default) solid token(color.border.default);\n border-radius: token(radius.lg);\n background: token(color.surface.default);\n }\n .title {\n flex: 1 1 12rem;\n margin: 0;\n font-weight: token(font.weight.semibold);\n }\n p {\n margin: 0;\n }\n select {\n min-block-size: token(target.min);\n border: token(border.width.default) solid token(color.border.default);\n border-radius: token(control.radius);\n background: token(color.surface.default);\n color: inherit;\n font: inherit;\n font-size: token(font.size.sm);\n }\n .preview {\n min-inline-size: 0;\n overflow-x: auto;\n }\n .preview > :first-child {\n margin-block-start: 0;\n }\n .preview pre,\n .source {\n margin: 0;\n padding: token(space.sm);\n overflow: auto;\n border-radius: token(radius.sm);\n background: token(color.surface.sunken);\n font-family: token(font.family.mono);\n font-size: token(font.size.sm);\n }\n .source,\n .preview .text {\n max-block-size: 32rem;\n white-space: pre-wrap;\n }\n .preview a {\n color: token(color.link);\n }\n .preview .tok-keyword {\n color: token(color.link);\n }\n .preview .tok-string {\n color: token(color.success.foreground);\n }\n .preview .tok-comment {\n color: token(color.text.secondary);\n }\n"
11462
+ "css": "\n @layer odd.layout.base {\n .base {\n display: flex;\n flex-direction: column;\n gap: var(--odd-space-xs);\n min-inline-size: 0;\n }\n .header {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--odd-space-xs);\n flex-wrap: wrap;\n min-inline-size: 0;\n }\n}\n\n .base {\n padding: token(space.sm);\n border: token(border.width.default) solid token(color.border.default);\n border-radius: token(radius.lg);\n background: token(color.surface.default);\n }\n .title {\n flex: 1 1 12rem;\n margin: 0;\n font-weight: token(font.weight.semibold);\n }\n p {\n margin: 0;\n }\n .revision {\n min-inline-size: 0;\n }\n select {\n /* Never wider than the header: a wide font in a narrow container clips the label instead. */\n max-inline-size: 100%;\n min-block-size: token(target.min);\n border: token(border.width.default) solid token(color.border.default);\n border-radius: token(control.radius);\n background: token(color.surface.default);\n color: inherit;\n font: inherit;\n font-size: token(font.size.sm);\n }\n .preview {\n min-inline-size: 0;\n overflow-x: auto;\n }\n .preview > :first-child {\n margin-block-start: 0;\n }\n .preview pre,\n .source {\n margin: 0;\n padding: token(space.sm);\n overflow: auto;\n border-radius: token(radius.sm);\n background: token(color.surface.sunken);\n font-family: token(font.family.mono);\n font-size: token(font.size.sm);\n }\n .source,\n .preview .text {\n max-block-size: 32rem;\n white-space: pre-wrap;\n }\n .preview a {\n color: token(color.link);\n }\n .preview .tok-keyword {\n color: token(color.link);\n }\n .preview .tok-string {\n color: token(color.success.foreground);\n }\n .preview .tok-comment {\n color: token(color.text.secondary);\n }\n"
12760
11463
  },
12761
11464
  "dist/change-review/change-review.styles.js#changeReviewStyles": {
12762
11465
  "module": "dist/change-review/change-review.styles.js",
@@ -12835,7 +11538,7 @@
12835
11538
  "space.xs",
12836
11539
  "target.min"
12837
11540
  ],
12838
- "css": "\n @layer odd.layout.base {\n .base {\n display: flex;\n flex-direction: column;\n gap: var(--odd-space-xs);\n min-inline-size: 0;\n }\n .list {\n display: flex;\n flex-direction: column;\n gap: var(--odd-space-2xs);\n min-inline-size: 0;\n }\n .row {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--odd-space-xs);\n flex-wrap: wrap;\n min-inline-size: 0;\n }\n .url {\n display: flex;\n flex-direction: row;\n align-items: stretch;\n gap: var(--odd-space-2xs);\n flex-wrap: wrap;\n min-inline-size: 0;\n }\n}\n\n p {\n margin: 0;\n }\n .list {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .item {\n padding: token(space.2xs) token(space.xs);\n border: token(border.width.default) solid token(color.border.default);\n border-radius: token(radius.sm);\n background: token(color.surface.default);\n }\n .label {\n flex: 1 1 8rem;\n min-inline-size: 0;\n }\n .kind {\n font-size: token(font.size.xs);\n text-transform: uppercase;\n }\n .excerpt {\n max-block-size: 10rem;\n margin: token(space.2xs) 0 0;\n overflow: auto;\n font-family: token(font.family.mono);\n font-size: token(font.size.xs);\n white-space: pre-wrap;\n }\n input[type='url'] {\n min-block-size: token(target.min);\n padding-inline: token(space.xs);\n border: token(border.width.default) solid token(color.border.default);\n border-radius: token(control.radius);\n background: token(color.surface.default);\n color: inherit;\n font: inherit;\n }\n"
11541
+ "css": "\n @layer odd.layout.base {\n .base {\n display: flex;\n flex-direction: column;\n gap: var(--odd-space-xs);\n min-inline-size: 0;\n }\n .list {\n display: flex;\n flex-direction: column;\n gap: var(--odd-space-2xs);\n min-inline-size: 0;\n }\n .row {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--odd-space-xs);\n flex-wrap: wrap;\n min-inline-size: 0;\n }\n .url {\n display: flex;\n flex-direction: row;\n align-items: stretch;\n gap: var(--odd-space-2xs);\n flex-wrap: wrap;\n min-inline-size: 0;\n }\n}\n\n p {\n margin: 0;\n }\n .list {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .item {\n padding: token(space.2xs) token(space.xs);\n border: token(border.width.default) solid token(color.border.default);\n border-radius: token(radius.sm);\n background: token(color.surface.default);\n }\n .label {\n flex: 1 1 8rem;\n min-inline-size: 0;\n }\n .kind {\n font-size: token(font.size.xs);\n text-transform: uppercase;\n }\n .excerpt {\n max-block-size: 10rem;\n margin: token(space.2xs) 0 0;\n overflow: auto;\n font-family: token(font.family.mono);\n font-size: token(font.size.xs);\n white-space: pre-wrap;\n }\n .url > label {\n min-inline-size: 0;\n }\n input[type='url'] {\n /* Its own width, but never wider than the form (narrow containers, wide fonts). */\n max-inline-size: 100%;\n min-block-size: token(target.min);\n padding-inline: token(space.xs);\n border: token(border.width.default) solid token(color.border.default);\n border-radius: token(control.radius);\n background: token(color.surface.default);\n color: inherit;\n font: inherit;\n }\n"
12839
11542
  },
12840
11543
  "dist/conversation/conversation.styles.js#conversationStyles": {
12841
11544
  "module": "dist/conversation/conversation.styles.js",
@@ -12877,7 +11580,7 @@
12877
11580
  "space.sm",
12878
11581
  "target.min"
12879
11582
  ],
12880
- "css": "\n @layer odd.layout.base {\n .base {\n display: flex;\n flex-direction: column;\n gap: var(--odd-space-xs);\n min-inline-size: 0;\n }\n .toolbar {\n display: flex;\n flex-direction: row;\n align-items: stretch;\n gap: var(--odd-space-2xs);\n flex-wrap: wrap;\n min-inline-size: 0;\n }\n .language {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--odd-space-xs);\n flex-wrap: wrap;\n min-inline-size: 0;\n }\n}\n\n .toolbar {\n padding: token(space.2xs);\n border: token(border.width.default) solid token(color.border.default);\n border-radius: token(radius.md);\n background: token(color.surface.raised);\n }\n .toolbar [aria-disabled='true'] {\n color: token(color.text.disabled);\n cursor: not-allowed;\n }\n select {\n min-block-size: token(target.min);\n border: token(border.width.default) solid token(color.border.default);\n border-radius: token(control.radius);\n background: token(color.surface.default);\n color: inherit;\n font: inherit;\n }\n p {\n margin: 0;\n }\n .message {\n font-size: token(font.size.sm);\n color: token(color.text.secondary);\n }\n .message:is([data-status='failed'], [data-status='blocked']) {\n color: token(color.danger.foreground);\n }\n .result {\n padding: token(space.sm);\n border-radius: token(radius.md);\n background: token(color.surface.sunken);\n }\n .content > :first-child {\n margin-block-start: 0;\n }\n .content > :last-child {\n margin-block-end: 0;\n }\n"
11583
+ "css": "\n @layer odd.layout.base {\n .base {\n display: flex;\n flex-direction: column;\n gap: var(--odd-space-xs);\n min-inline-size: 0;\n }\n .toolbar {\n display: flex;\n flex-direction: row;\n align-items: stretch;\n gap: var(--odd-space-2xs);\n flex-wrap: wrap;\n min-inline-size: 0;\n }\n .language {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--odd-space-xs);\n flex-wrap: wrap;\n min-inline-size: 0;\n }\n}\n\n .toolbar {\n padding: token(space.2xs);\n border: token(border.width.default) solid token(color.border.default);\n border-radius: token(radius.md);\n background: token(color.surface.raised);\n }\n .toolbar [aria-disabled='true'] {\n color: token(color.text.disabled);\n cursor: not-allowed;\n }\n select {\n /* Never wider than the language row (narrow containers, wide fonts). */\n max-inline-size: 100%;\n min-block-size: token(target.min);\n border: token(border.width.default) solid token(color.border.default);\n border-radius: token(control.radius);\n background: token(color.surface.default);\n color: inherit;\n font: inherit;\n }\n p {\n margin: 0;\n }\n .message {\n font-size: token(font.size.sm);\n color: token(color.text.secondary);\n }\n .message:is([data-status='failed'], [data-status='blocked']) {\n color: token(color.danger.foreground);\n }\n .result {\n padding: token(space.sm);\n border-radius: token(radius.md);\n background: token(color.surface.sunken);\n }\n .content > :first-child {\n margin-block-start: 0;\n }\n .content > :last-child {\n margin-block-end: 0;\n }\n"
12881
11584
  },
12882
11585
  "dist/internal/base.styles.js#aiElementStyles": {
12883
11586
  "module": "dist/internal/base.styles.js",
@@ -13193,34 +11896,128 @@
13193
11896
  "file": "CONTRACTS.md",
13194
11897
  "title": "Composed definitions",
13195
11898
  "anchor": "composition",
13196
- "sha256": "0ddd48be7b20f2001500dcf60259ff3d0a40900ff763cede1a4bca5c0ed66a05"
11899
+ "sha256": "0b74f1b74b318fc42b6a3f7681206af6eda083c9701b8a4f19fc4ad19b7228ed"
13197
11900
  }
13198
11901
  },
13199
11902
  "examples": {
13200
11903
  "example:odd-action-approval/default": {
13201
11904
  "component": "component:odd-action-approval",
13202
11905
  "name": "default",
13203
- "file": "src/action-approval/action-approval.examples.ts"
11906
+ "file": "src/action-approval/action-approval.examples.ts",
11907
+ "definition": {
11908
+ "label": "Approval requested",
11909
+ "props": {
11910
+ "approval": {
11911
+ "approvalId": "ap1",
11912
+ "revision": 1,
11913
+ "title": "Send email",
11914
+ "summary": "Sends the release notes to the team.",
11915
+ "target": "team@example.com",
11916
+ "changes": [
11917
+ {
11918
+ "label": "Subject",
11919
+ "before": "Draft",
11920
+ "after": "Release 2.0"
11921
+ }
11922
+ ],
11923
+ "risk": "medium",
11924
+ "status": "requested"
11925
+ },
11926
+ "capabilities": {
11927
+ "respondToApproval": {
11928
+ "available": true
11929
+ }
11930
+ }
11931
+ },
11932
+ "recommended": true,
11933
+ "guidance": "Approving never means the action succeeded; that is reported separately."
11934
+ }
13204
11935
  },
13205
11936
  "example:odd-activity/default": {
13206
11937
  "component": "component:odd-activity",
13207
11938
  "name": "default",
13208
- "file": "src/activity/activity.examples.ts"
11939
+ "file": "src/activity/activity.examples.ts",
11940
+ "definition": {
11941
+ "label": "Streaming, can stop",
11942
+ "props": {
11943
+ "attempt": {
11944
+ "attemptId": "at1",
11945
+ "runId": "run1",
11946
+ "conversationId": "c1",
11947
+ "messageId": "m2",
11948
+ "promptId": "m1",
11949
+ "relation": "new",
11950
+ "connection": "open",
11951
+ "stop": "none",
11952
+ "status": "streaming"
11953
+ },
11954
+ "capabilities": {
11955
+ "stop": {
11956
+ "available": true
11957
+ }
11958
+ }
11959
+ },
11960
+ "recommended": true,
11961
+ "guidance": "Status is text, so it is announced and readable without colour."
11962
+ }
13209
11963
  },
13210
11964
  "example:odd-activity/interrupted": {
13211
11965
  "component": "component:odd-activity",
13212
11966
  "name": "interrupted",
13213
- "file": "src/activity/activity.examples.ts"
11967
+ "file": "src/activity/activity.examples.ts",
11968
+ "definition": {
11969
+ "label": "Connection lost",
11970
+ "props": {
11971
+ "attempt": {
11972
+ "attemptId": "at1",
11973
+ "runId": "run1",
11974
+ "conversationId": "c1",
11975
+ "messageId": "m2",
11976
+ "promptId": "m1",
11977
+ "relation": "new",
11978
+ "connection": "disconnected",
11979
+ "stop": "none",
11980
+ "status": "streaming"
11981
+ },
11982
+ "capabilities": {
11983
+ "reconnect": {
11984
+ "available": true
11985
+ }
11986
+ }
11987
+ }
11988
+ }
13214
11989
  },
13215
11990
  "example:odd-ai-label/default": {
13216
11991
  "component": "component:odd-ai-label",
13217
11992
  "name": "default",
13218
- "file": "src/ai-label/ai-label.examples.ts"
11993
+ "file": "src/ai-label/ai-label.examples.ts",
11994
+ "definition": {
11995
+ "label": "Generated",
11996
+ "props": {
11997
+ "provenance": {
11998
+ "kind": "generated",
11999
+ "model": "Example model",
12000
+ "provider": "Example provider",
12001
+ "generatedAt": "2026-10-19T09:30:00Z"
12002
+ }
12003
+ },
12004
+ "recommended": true,
12005
+ "guidance": "Shows origin information exactly as the host supplied it; it is never verified."
12006
+ }
13219
12007
  },
13220
12008
  "example:odd-ai-label/edited": {
13221
12009
  "component": "component:odd-ai-label",
13222
12010
  "name": "edited",
13223
- "file": "src/ai-label/ai-label.examples.ts"
12011
+ "file": "src/ai-label/ai-label.examples.ts",
12012
+ "definition": {
12013
+ "label": "Edited by a person",
12014
+ "props": {
12015
+ "provenance": {
12016
+ "kind": "edited",
12017
+ "notes": "Reviewed and edited by the author."
12018
+ }
12019
+ }
12020
+ }
13224
12021
  },
13225
12022
  "example:odd-artifact/codeView": {
13226
12023
  "component": "component:odd-artifact",
@@ -13229,22 +12026,126 @@
13229
12026
  "incorrect": {
13230
12027
  "diagnostic": "usage.attribute.value",
13231
12028
  "correct": "example:odd-artifact/source"
12029
+ },
12030
+ "definition": {
12031
+ "label": "Unsupported view",
12032
+ "props": {
12033
+ "artifact": {
12034
+ "artifactId": "a1",
12035
+ "title": "Release notes",
12036
+ "kind": "markdown",
12037
+ "currentRevisionId": "r2",
12038
+ "revisions": [
12039
+ {
12040
+ "revisionId": "r1",
12041
+ "number": 1,
12042
+ "content": "# Release notes\n\nDraft."
12043
+ },
12044
+ {
12045
+ "revisionId": "r2",
12046
+ "number": 2,
12047
+ "summary": "Added highlights",
12048
+ "content": "# Release notes\n\n- Faster builds"
12049
+ }
12050
+ ]
12051
+ }
12052
+ },
12053
+ "attributes": {
12054
+ "view": "code"
12055
+ },
12056
+ "incorrect": {
12057
+ "explanation": "`view` accepts preview or source. Other values are reported and the preview is shown; use `source` for the raw content.",
12058
+ "diagnostic": "usage.attribute.value",
12059
+ "correct": "source"
12060
+ }
13232
12061
  }
13233
12062
  },
13234
12063
  "example:odd-artifact/default": {
13235
12064
  "component": "component:odd-artifact",
13236
12065
  "name": "default",
13237
- "file": "src/artifact/artifact.examples.ts"
12066
+ "file": "src/artifact/artifact.examples.ts",
12067
+ "definition": {
12068
+ "label": "Preview",
12069
+ "props": {
12070
+ "artifact": {
12071
+ "artifactId": "a1",
12072
+ "title": "Release notes",
12073
+ "kind": "markdown",
12074
+ "currentRevisionId": "r2",
12075
+ "revisions": [
12076
+ {
12077
+ "revisionId": "r1",
12078
+ "number": 1,
12079
+ "content": "# Release notes\n\nDraft."
12080
+ },
12081
+ {
12082
+ "revisionId": "r2",
12083
+ "number": 2,
12084
+ "summary": "Added highlights",
12085
+ "content": "# Release notes\n\n- Faster builds"
12086
+ }
12087
+ ]
12088
+ }
12089
+ },
12090
+ "recommended": true,
12091
+ "guidance": "The artifact keeps its identity across revisions; choose a revision to compare."
12092
+ }
13238
12093
  },
13239
12094
  "example:odd-artifact/source": {
13240
12095
  "component": "component:odd-artifact",
13241
12096
  "name": "source",
13242
- "file": "src/artifact/artifact.examples.ts"
12097
+ "file": "src/artifact/artifact.examples.ts",
12098
+ "definition": {
12099
+ "label": "Source",
12100
+ "props": {
12101
+ "artifact": {
12102
+ "artifactId": "a1",
12103
+ "title": "Release notes",
12104
+ "kind": "markdown",
12105
+ "currentRevisionId": "r2",
12106
+ "revisions": [
12107
+ {
12108
+ "revisionId": "r1",
12109
+ "number": 1,
12110
+ "content": "# Release notes\n\nDraft."
12111
+ },
12112
+ {
12113
+ "revisionId": "r2",
12114
+ "number": 2,
12115
+ "summary": "Added highlights",
12116
+ "content": "# Release notes\n\n- Faster builds"
12117
+ }
12118
+ ]
12119
+ },
12120
+ "view": "source"
12121
+ }
12122
+ }
13243
12123
  },
13244
12124
  "example:odd-change-review/default": {
13245
12125
  "component": "component:odd-change-review",
13246
12126
  "name": "default",
13247
- "file": "src/change-review/change-review.examples.ts"
12127
+ "file": "src/change-review/change-review.examples.ts",
12128
+ "definition": {
12129
+ "label": "Proposed edit",
12130
+ "props": {
12131
+ "proposals": [
12132
+ {
12133
+ "proposalId": "p1",
12134
+ "baseRevision": "v1",
12135
+ "range": {
12136
+ "start": 0,
12137
+ "end": 23
12138
+ },
12139
+ "original": "The build is very slow.",
12140
+ "replacement": "Builds take 40% less time.",
12141
+ "label": "Make it specific",
12142
+ "status": "proposed"
12143
+ }
12144
+ ]
12145
+ },
12146
+ "recommended": true,
12147
+ "guidance": "A proposal applies only to the revision it was made for; later edits mark it stale."
12148
+ }
13248
12149
  },
13249
12150
  "example:odd-checkpoint/default": {
13250
12151
  "component": "component:odd-checkpoint",
@@ -13259,62 +12160,374 @@
13259
12160
  "example:odd-citation/default": {
13260
12161
  "component": "component:odd-citation",
13261
12162
  "name": "default",
13262
- "file": "src/citation/citation.examples.ts"
12163
+ "file": "src/citation/citation.examples.ts",
12164
+ "definition": {
12165
+ "label": "Resolved citation",
12166
+ "props": {
12167
+ "sourceId": "wcag",
12168
+ "index": 1,
12169
+ "source": {
12170
+ "type": "source",
12171
+ "id": "s1",
12172
+ "sourceId": "wcag",
12173
+ "title": "Web Content Accessibility Guidelines 2.2",
12174
+ "url": "https://www.w3.org/TR/WCAG22/",
12175
+ "excerpt": "Content can be presented without loss of information at 320 CSS pixels."
12176
+ }
12177
+ },
12178
+ "recommended": true
12179
+ }
13263
12180
  },
13264
12181
  "example:odd-citation/unresolved": {
13265
12182
  "component": "component:odd-citation",
13266
12183
  "name": "unresolved",
13267
- "file": "src/citation/citation.examples.ts"
12184
+ "file": "src/citation/citation.examples.ts",
12185
+ "definition": {
12186
+ "label": "Unresolved citation",
12187
+ "props": {
12188
+ "sourceId": "missing",
12189
+ "index": 2
12190
+ },
12191
+ "guidance": "A citation without a source says so instead of inventing one."
12192
+ }
13268
12193
  },
13269
12194
  "example:odd-context-picker/default": {
13270
12195
  "component": "component:odd-context-picker",
13271
12196
  "name": "default",
13272
- "file": "src/context-picker/context-picker.examples.ts"
12197
+ "file": "src/context-picker/context-picker.examples.ts",
12198
+ "definition": {
12199
+ "label": "Context items",
12200
+ "props": {
12201
+ "items": [
12202
+ {
12203
+ "id": "f1",
12204
+ "kind": "file",
12205
+ "label": "q3-report.pdf",
12206
+ "status": "ready",
12207
+ "size": 482000
12208
+ },
12209
+ {
12210
+ "id": "u1",
12211
+ "kind": "url",
12212
+ "label": "Release notes",
12213
+ "status": "processing",
12214
+ "url": "https://example.com/notes"
12215
+ },
12216
+ {
12217
+ "id": "f2",
12218
+ "kind": "file",
12219
+ "label": "scan.tiff",
12220
+ "status": "failed",
12221
+ "error": {
12222
+ "code": "unsupported",
12223
+ "message": "This file type cannot be read."
12224
+ }
12225
+ }
12226
+ ],
12227
+ "allowUrls": true
12228
+ },
12229
+ "recommended": true
12230
+ }
13273
12231
  },
13274
12232
  "example:odd-conversation/default": {
13275
12233
  "component": "component:odd-conversation",
13276
12234
  "name": "default",
13277
- "file": "src/conversation/conversation.examples.ts"
12235
+ "file": "src/conversation/conversation.examples.ts",
12236
+ "definition": {
12237
+ "label": "Conversation",
12238
+ "props": {
12239
+ "label": "Assistant",
12240
+ "state": {
12241
+ "conversationId": "c1",
12242
+ "revision": 1,
12243
+ "messages": [
12244
+ {
12245
+ "id": "m1",
12246
+ "role": "user",
12247
+ "parts": [
12248
+ {
12249
+ "type": "text",
12250
+ "id": "t1",
12251
+ "text": "Summarize the release notes."
12252
+ }
12253
+ ]
12254
+ },
12255
+ {
12256
+ "id": "m2",
12257
+ "role": "assistant",
12258
+ "parentId": "m1",
12259
+ "parts": [
12260
+ {
12261
+ "type": "text",
12262
+ "id": "t2",
12263
+ "text": "Builds are faster and the side navigation gained project kinds."
12264
+ }
12265
+ ]
12266
+ }
12267
+ ],
12268
+ "tools": {},
12269
+ "approvals": {},
12270
+ "artifacts": {},
12271
+ "attempts": {},
12272
+ "branches": {},
12273
+ "capabilities": {
12274
+ "send": {
12275
+ "available": true
12276
+ }
12277
+ },
12278
+ "history": "complete",
12279
+ "hasMoreHistory": false,
12280
+ "feedback": {}
12281
+ }
12282
+ },
12283
+ "slots": {
12284
+ "composer": "Composer goes here",
12285
+ "status": "Connected"
12286
+ },
12287
+ "recommended": true,
12288
+ "guidance": "Give it a store (or a state snapshot); it never fetches or sends by itself."
12289
+ }
13278
12290
  },
13279
12291
  "example:odd-conversation/empty": {
13280
12292
  "component": "component:odd-conversation",
13281
12293
  "name": "empty",
13282
- "file": "src/conversation/conversation.examples.ts"
12294
+ "file": "src/conversation/conversation.examples.ts",
12295
+ "definition": {
12296
+ "label": "Empty",
12297
+ "props": {
12298
+ "label": "Assistant",
12299
+ "state": {
12300
+ "conversationId": "c2",
12301
+ "revision": 1,
12302
+ "messages": [],
12303
+ "tools": {},
12304
+ "approvals": {},
12305
+ "artifacts": {},
12306
+ "attempts": {},
12307
+ "branches": {},
12308
+ "capabilities": {},
12309
+ "history": "complete",
12310
+ "hasMoreHistory": false,
12311
+ "feedback": {}
12312
+ }
12313
+ },
12314
+ "slots": {
12315
+ "empty": "Ask a question to start."
12316
+ }
12317
+ }
13283
12318
  },
13284
12319
  "example:odd-inline-assist/default": {
13285
12320
  "component": "component:odd-inline-assist",
13286
12321
  "name": "default",
13287
- "file": "src/inline-assist/inline-assist.examples.ts"
12322
+ "file": "src/inline-assist/inline-assist.examples.ts",
12323
+ "definition": {
12324
+ "label": "Actions for a selection",
12325
+ "props": {
12326
+ "selection": {
12327
+ "start": 4,
12328
+ "end": 9,
12329
+ "revision": "v1",
12330
+ "text": "build"
12331
+ },
12332
+ "documentRevision": "v1",
12333
+ "actions": [
12334
+ {
12335
+ "id": "rewrite",
12336
+ "label": "Rewrite"
12337
+ },
12338
+ {
12339
+ "id": "explain",
12340
+ "label": "Explain"
12341
+ },
12342
+ {
12343
+ "id": "summarize",
12344
+ "label": "Summarize"
12345
+ }
12346
+ ]
12347
+ },
12348
+ "recommended": true,
12349
+ "guidance": "Requests carry the selection and its revision, so results can be checked against it."
12350
+ }
13288
12351
  },
13289
12352
  "example:odd-inline-assist/result": {
13290
12353
  "component": "component:odd-inline-assist",
13291
12354
  "name": "result",
13292
- "file": "src/inline-assist/inline-assist.examples.ts"
12355
+ "file": "src/inline-assist/inline-assist.examples.ts",
12356
+ "definition": {
12357
+ "label": "Explanation ready",
12358
+ "props": {
12359
+ "selection": {
12360
+ "start": 4,
12361
+ "end": 9,
12362
+ "revision": "v1",
12363
+ "text": "build"
12364
+ },
12365
+ "documentRevision": "v1",
12366
+ "actions": [
12367
+ {
12368
+ "id": "rewrite",
12369
+ "label": "Rewrite"
12370
+ },
12371
+ {
12372
+ "id": "explain",
12373
+ "label": "Explain"
12374
+ },
12375
+ {
12376
+ "id": "summarize",
12377
+ "label": "Summarize"
12378
+ }
12379
+ ],
12380
+ "status": "complete",
12381
+ "result": "A **build** turns sources into the files that ship."
12382
+ }
12383
+ }
13293
12384
  },
13294
12385
  "example:odd-message-branch/default": {
13295
12386
  "component": "component:odd-message-branch",
13296
12387
  "name": "default",
13297
- "file": "src/message-branch/message-branch.examples.ts"
12388
+ "file": "src/message-branch/message-branch.examples.ts",
12389
+ "definition": {
12390
+ "label": "Second of three answers",
12391
+ "props": {
12392
+ "messageId": "m2",
12393
+ "branch": {
12394
+ "index": 2,
12395
+ "count": 3,
12396
+ "previousId": "m2a",
12397
+ "nextId": "m2c"
12398
+ },
12399
+ "capabilities": {
12400
+ "switchBranch": {
12401
+ "available": true
12402
+ }
12403
+ }
12404
+ },
12405
+ "recommended": true
12406
+ }
13298
12407
  },
13299
12408
  "example:odd-message/default": {
13300
12409
  "component": "component:odd-message",
13301
12410
  "name": "default",
13302
- "file": "src/message/message.examples.ts"
12411
+ "file": "src/message/message.examples.ts",
12412
+ "definition": {
12413
+ "label": "Assistant message with a source",
12414
+ "props": {
12415
+ "message": {
12416
+ "id": "m2",
12417
+ "role": "assistant",
12418
+ "parentId": "m1",
12419
+ "parts": [
12420
+ {
12421
+ "type": "text",
12422
+ "id": "t1",
12423
+ "text": "Use a container query on the card [^spec]."
12424
+ },
12425
+ {
12426
+ "type": "source",
12427
+ "id": "s1",
12428
+ "sourceId": "spec",
12429
+ "title": "CSS Containment Module Level 3",
12430
+ "url": "https://www.w3.org/TR/css-contain-3/"
12431
+ }
12432
+ ],
12433
+ "provenance": {
12434
+ "kind": "generated",
12435
+ "model": "Example model"
12436
+ }
12437
+ },
12438
+ "capabilities": {
12439
+ "feedback": {
12440
+ "available": true
12441
+ },
12442
+ "regenerate": {
12443
+ "available": true
12444
+ }
12445
+ }
12446
+ },
12447
+ "recommended": true,
12448
+ "guidance": "Parts render in order; unknown parts and missing records render explicit fallbacks."
12449
+ }
13303
12450
  },
13304
12451
  "example:odd-message/user": {
13305
12452
  "component": "component:odd-message",
13306
12453
  "name": "user",
13307
- "file": "src/message/message.examples.ts"
12454
+ "file": "src/message/message.examples.ts",
12455
+ "definition": {
12456
+ "label": "User message",
12457
+ "props": {
12458
+ "message": {
12459
+ "id": "m1",
12460
+ "role": "user",
12461
+ "parts": [
12462
+ {
12463
+ "type": "text",
12464
+ "id": "t0",
12465
+ "text": "How do I make the card responsive?"
12466
+ }
12467
+ ]
12468
+ }
12469
+ }
12470
+ }
13308
12471
  },
13309
12472
  "example:odd-model-select/default": {
13310
12473
  "component": "component:odd-model-select",
13311
12474
  "name": "default",
13312
- "file": "src/model-select/model-select.examples.ts"
12475
+ "file": "src/model-select/model-select.examples.ts",
12476
+ "definition": {
12477
+ "label": "Model choice",
12478
+ "props": {
12479
+ "models": [
12480
+ {
12481
+ "id": "fast",
12482
+ "label": "Fast",
12483
+ "description": "Quick answers for short tasks.",
12484
+ "available": true
12485
+ },
12486
+ {
12487
+ "id": "deep",
12488
+ "label": "Thorough",
12489
+ "description": "Slower, for long documents.",
12490
+ "available": true
12491
+ },
12492
+ {
12493
+ "id": "vision",
12494
+ "label": "Vision",
12495
+ "available": false,
12496
+ "reason": "Not enabled for this workspace."
12497
+ }
12498
+ ],
12499
+ "value": "fast"
12500
+ },
12501
+ "recommended": true,
12502
+ "guidance": "A user change is cancelable; setting `value` from code is silent."
12503
+ }
13313
12504
  },
13314
12505
  "example:odd-prompt-input/default": {
13315
12506
  "component": "component:odd-prompt-input",
13316
12507
  "name": "default",
13317
- "file": "src/prompt-input/prompt-input.examples.ts"
12508
+ "file": "src/prompt-input/prompt-input.examples.ts",
12509
+ "definition": {
12510
+ "label": "Composer",
12511
+ "props": {
12512
+ "label": "Message",
12513
+ "placeholder": "Ask anything",
12514
+ "capabilities": {
12515
+ "send": {
12516
+ "available": true
12517
+ },
12518
+ "attachments": {
12519
+ "available": true
12520
+ }
12521
+ }
12522
+ },
12523
+ "slots": {
12524
+ "header": "Replying in #design",
12525
+ "toolbar-start": "Attach",
12526
+ "toolbar-end": "Model"
12527
+ },
12528
+ "recommended": true,
12529
+ "guidance": "Enter sends by default; Shift+Enter adds a line. Sending is unavailable until the host allows it."
12530
+ }
13318
12531
  },
13319
12532
  "example:odd-prompt-input/disabledFalse": {
13320
12533
  "component": "component:odd-prompt-input",
@@ -13323,12 +12536,42 @@
13323
12536
  "incorrect": {
13324
12537
  "diagnostic": "usage.boolean.false",
13325
12538
  "correct": "example:odd-prompt-input/default"
12539
+ },
12540
+ "definition": {
12541
+ "label": "Enabled with disabled=\"false\"",
12542
+ "props": {
12543
+ "label": "Message"
12544
+ },
12545
+ "attributes": {
12546
+ "disabled": "false"
12547
+ },
12548
+ "incorrect": {
12549
+ "explanation": "Boolean attributes are on when present, whatever their value: this composer is disabled. Remove the attribute (or set `.disabled = false`) to enable it.",
12550
+ "diagnostic": "usage.boolean.false",
12551
+ "correct": "default"
12552
+ }
13326
12553
  }
13327
12554
  },
13328
12555
  "example:odd-prompt-input/loading": {
13329
12556
  "component": "component:odd-prompt-input",
13330
12557
  "name": "loading",
13331
- "file": "src/prompt-input/prompt-input.examples.ts"
12558
+ "file": "src/prompt-input/prompt-input.examples.ts",
12559
+ "definition": {
12560
+ "label": "Answer in progress",
12561
+ "props": {
12562
+ "label": "Message",
12563
+ "loading": true,
12564
+ "attemptId": "at1",
12565
+ "capabilities": {
12566
+ "send": {
12567
+ "available": true
12568
+ },
12569
+ "stop": {
12570
+ "available": true
12571
+ }
12572
+ }
12573
+ }
12574
+ }
13332
12575
  },
13333
12576
  "example:odd-prompt-input/toolbarSlot": {
13334
12577
  "component": "component:odd-prompt-input",
@@ -13337,47 +12580,204 @@
13337
12580
  "incorrect": {
13338
12581
  "diagnostic": "usage.slot.unknown",
13339
12582
  "correct": "example:odd-prompt-input/default"
12583
+ },
12584
+ "definition": {
12585
+ "label": "Content in a \"toolbar\" slot",
12586
+ "props": {
12587
+ "label": "Message"
12588
+ },
12589
+ "slots": {
12590
+ "toolbar": "Attach"
12591
+ },
12592
+ "incorrect": {
12593
+ "explanation": "There is no `toolbar` slot, so the content is not shown. Use `toolbar-start` or `toolbar-end` for controls beside the send button, or `above` for context over the field.",
12594
+ "diagnostic": "usage.slot.unknown",
12595
+ "correct": "default"
12596
+ }
13340
12597
  }
13341
12598
  },
13342
12599
  "example:odd-question/default": {
13343
12600
  "component": "component:odd-question",
13344
12601
  "name": "default",
13345
- "file": "src/question/question.examples.ts"
12602
+ "file": "src/question/question.examples.ts",
12603
+ "definition": {
12604
+ "label": "Choice",
12605
+ "props": {
12606
+ "question": {
12607
+ "questionId": "q1",
12608
+ "revision": 1,
12609
+ "prompt": "Which audience is this summary for?",
12610
+ "kind": "choice",
12611
+ "options": [
12612
+ {
12613
+ "id": "exec",
12614
+ "label": "Executives"
12615
+ },
12616
+ {
12617
+ "id": "eng",
12618
+ "label": "Engineers",
12619
+ "description": "Keeps technical detail."
12620
+ }
12621
+ ],
12622
+ "allowCustom": true,
12623
+ "status": "requested"
12624
+ }
12625
+ },
12626
+ "recommended": true
12627
+ }
13346
12628
  },
13347
12629
  "example:odd-question/form": {
13348
12630
  "component": "component:odd-question",
13349
12631
  "name": "form",
13350
- "file": "src/question/question.examples.ts"
12632
+ "file": "src/question/question.examples.ts",
12633
+ "definition": {
12634
+ "label": "Form",
12635
+ "props": {
12636
+ "question": {
12637
+ "questionId": "q2",
12638
+ "revision": 1,
12639
+ "prompt": "Details for the meeting",
12640
+ "kind": "form",
12641
+ "fields": [
12642
+ {
12643
+ "id": "title",
12644
+ "label": "Title",
12645
+ "type": "text",
12646
+ "required": true
12647
+ },
12648
+ {
12649
+ "id": "length",
12650
+ "label": "Minutes",
12651
+ "type": "number"
12652
+ }
12653
+ ],
12654
+ "status": "requested"
12655
+ }
12656
+ }
12657
+ }
13351
12658
  },
13352
12659
  "example:odd-response-feedback/default": {
13353
12660
  "component": "component:odd-response-feedback",
13354
12661
  "name": "default",
13355
- "file": "src/response-feedback/response-feedback.examples.ts"
12662
+ "file": "src/response-feedback/response-feedback.examples.ts",
12663
+ "definition": {
12664
+ "label": "Rate a response",
12665
+ "props": {
12666
+ "messageId": "m2",
12667
+ "reasons": [
12668
+ "Inaccurate",
12669
+ "Not helpful",
12670
+ "Unsafe"
12671
+ ]
12672
+ },
12673
+ "recommended": true
12674
+ }
13356
12675
  },
13357
12676
  "example:odd-response-feedback/negative": {
13358
12677
  "component": "component:odd-response-feedback",
13359
12678
  "name": "negative",
13360
- "file": "src/response-feedback/response-feedback.examples.ts"
12679
+ "file": "src/response-feedback/response-feedback.examples.ts",
12680
+ "definition": {
12681
+ "label": "Negative rating with reasons",
12682
+ "props": {
12683
+ "messageId": "m2",
12684
+ "reasons": [
12685
+ "Inaccurate",
12686
+ "Not helpful",
12687
+ "Unsafe"
12688
+ ],
12689
+ "feedback": {
12690
+ "messageId": "m2",
12691
+ "rating": "negative",
12692
+ "status": "idle"
12693
+ }
12694
+ }
12695
+ }
13361
12696
  },
13362
12697
  "example:odd-response/default": {
13363
12698
  "component": "component:odd-response",
13364
12699
  "name": "default",
13365
- "file": "src/response/response.examples.ts"
12700
+ "file": "src/response/response.examples.ts",
12701
+ "definition": {
12702
+ "label": "Complete response",
12703
+ "props": {
12704
+ "text": "Container queries respond to the **component**, not the viewport [^css].\n\n```css\n@container (min-inline-size: 40rem) {\n .content { display: grid; }\n}\n```",
12705
+ "status": "complete",
12706
+ "copyable": true,
12707
+ "sources": [
12708
+ {
12709
+ "type": "source",
12710
+ "id": "s1",
12711
+ "sourceId": "css",
12712
+ "title": "CSS Containment Module Level 3",
12713
+ "url": "https://www.w3.org/TR/css-contain-3/"
12714
+ }
12715
+ ]
12716
+ },
12717
+ "recommended": true,
12718
+ "guidance": "Markdown renders inertly; copying uses the canonical source text."
12719
+ }
13366
12720
  },
13367
12721
  "example:odd-response/failed": {
13368
12722
  "component": "component:odd-response",
13369
12723
  "name": "failed",
13370
- "file": "src/response/response.examples.ts"
12724
+ "file": "src/response/response.examples.ts",
12725
+ "definition": {
12726
+ "label": "Failed with partial output",
12727
+ "props": {
12728
+ "text": "Container queries respond to the",
12729
+ "status": "failed",
12730
+ "error": {
12731
+ "code": "timeout",
12732
+ "message": "The answer took too long.",
12733
+ "retryable": true
12734
+ }
12735
+ },
12736
+ "guidance": "Partial output stays visible next to the failure."
12737
+ }
13371
12738
  },
13372
12739
  "example:odd-response/streaming": {
13373
12740
  "component": "component:odd-response",
13374
12741
  "name": "streaming",
13375
- "file": "src/response/response.examples.ts"
12742
+ "file": "src/response/response.examples.ts",
12743
+ "definition": {
12744
+ "label": "Streaming",
12745
+ "props": {
12746
+ "text": "Container queries respond to the",
12747
+ "status": "streaming"
12748
+ }
12749
+ }
13376
12750
  },
13377
12751
  "example:odd-sources/default": {
13378
12752
  "component": "component:odd-sources",
13379
12753
  "name": "default",
13380
- "file": "src/sources/sources.examples.ts"
12754
+ "file": "src/sources/sources.examples.ts",
12755
+ "definition": {
12756
+ "label": "Cited sources",
12757
+ "props": {
12758
+ "sources": [
12759
+ {
12760
+ "type": "source",
12761
+ "id": "s1",
12762
+ "sourceId": "wcag",
12763
+ "title": "Web Content Accessibility Guidelines 2.2",
12764
+ "url": "https://www.w3.org/TR/WCAG22/",
12765
+ "publisher": "W3C",
12766
+ "kind": "web"
12767
+ },
12768
+ {
12769
+ "type": "source",
12770
+ "id": "s2",
12771
+ "sourceId": "notes",
12772
+ "title": "Design review notes",
12773
+ "excerpt": "Focus must stay visible in forced-colors mode.",
12774
+ "kind": "document"
12775
+ }
12776
+ ]
12777
+ },
12778
+ "recommended": true,
12779
+ "guidance": "Links are checked by the URL policy; titles and excerpts render as text."
12780
+ }
13381
12781
  },
13382
12782
  "example:odd-sources/sourcesAttribute": {
13383
12783
  "component": "component:odd-sources",
@@ -13386,42 +12786,221 @@
13386
12786
  "incorrect": {
13387
12787
  "diagnostic": "usage.attribute.propertyOnly",
13388
12788
  "correct": "example:odd-sources/default"
12789
+ },
12790
+ "definition": {
12791
+ "label": "Sources as a JSON attribute",
12792
+ "attributes": {
12793
+ "sources": "[{\"type\":\"source\",\"id\":\"s1\",\"sourceId\":\"wcag\",\"title\":\"Web Content Accessibility Guidelines 2.2\",\"url\":\"https://www.w3.org/TR/WCAG22/\",\"publisher\":\"W3C\",\"kind\":\"web\"},{\"type\":\"source\",\"id\":\"s2\",\"sourceId\":\"notes\",\"title\":\"Design review notes\",\"excerpt\":\"Focus must stay visible in forced-colors mode.\",\"kind\":\"document\"}]"
12794
+ },
12795
+ "incorrect": {
12796
+ "explanation": "`sources` is a property-only array: an attribute of the same name is ignored and nothing is listed. Set `.sources` from script, or use your framework's property binding.",
12797
+ "diagnostic": "usage.attribute.propertyOnly",
12798
+ "correct": "default"
12799
+ }
13389
12800
  }
13390
12801
  },
13391
12802
  "example:odd-suggestions/default": {
13392
12803
  "component": "component:odd-suggestions",
13393
12804
  "name": "default",
13394
- "file": "src/suggestions/suggestions.examples.ts"
12805
+ "file": "src/suggestions/suggestions.examples.ts",
12806
+ "definition": {
12807
+ "label": "Suggested prompts",
12808
+ "props": {
12809
+ "suggestions": [
12810
+ {
12811
+ "id": "summarize",
12812
+ "label": "Summarize",
12813
+ "prompt": "Summarize this page in three bullets."
12814
+ },
12815
+ {
12816
+ "id": "risks",
12817
+ "label": "List risks",
12818
+ "prompt": "What are the main risks in this plan?"
12819
+ }
12820
+ ]
12821
+ },
12822
+ "recommended": true,
12823
+ "guidance": "Choosing a suggestion inserts it; the send button submits it. They are separate intents."
12824
+ }
13395
12825
  },
13396
12826
  "example:odd-task-plan/default": {
13397
12827
  "component": "component:odd-task-plan",
13398
12828
  "name": "default",
13399
- "file": "src/task-plan/task-plan.examples.ts"
12829
+ "file": "src/task-plan/task-plan.examples.ts",
12830
+ "definition": {
12831
+ "label": "Plan in progress",
12832
+ "props": {
12833
+ "plan": {
12834
+ "planId": "p1",
12835
+ "title": "Prepare the release",
12836
+ "steps": [
12837
+ {
12838
+ "id": "a",
12839
+ "title": "Collect changes",
12840
+ "status": "done"
12841
+ },
12842
+ {
12843
+ "id": "b",
12844
+ "title": "Run checks",
12845
+ "status": "active",
12846
+ "tasks": [
12847
+ {
12848
+ "id": "b1",
12849
+ "title": "Unit tests",
12850
+ "status": "done"
12851
+ },
12852
+ {
12853
+ "id": "b2",
12854
+ "title": "Browser tests",
12855
+ "status": "active"
12856
+ }
12857
+ ]
12858
+ },
12859
+ {
12860
+ "id": "c",
12861
+ "title": "Choose a version",
12862
+ "status": "needs-input",
12863
+ "inputRequest": "Major or minor?"
12864
+ },
12865
+ {
12866
+ "id": "d",
12867
+ "title": "Publish",
12868
+ "status": "blocked",
12869
+ "blocker": "Waiting for the version."
12870
+ }
12871
+ ]
12872
+ }
12873
+ },
12874
+ "recommended": true
12875
+ }
13400
12876
  },
13401
12877
  "example:odd-tool-call/default": {
13402
12878
  "component": "component:odd-tool-call",
13403
12879
  "name": "default",
13404
- "file": "src/tool-call/tool-call.examples.ts"
12880
+ "file": "src/tool-call/tool-call.examples.ts",
12881
+ "definition": {
12882
+ "label": "Finished with a result",
12883
+ "props": {
12884
+ "tool": {
12885
+ "toolCallId": "t1",
12886
+ "toolName": "search",
12887
+ "title": "Web search",
12888
+ "purpose": "Find current browser support data.",
12889
+ "status": "output-available",
12890
+ "input": {
12891
+ "q": "container queries support"
12892
+ },
12893
+ "output": {
12894
+ "results": 3
12895
+ }
12896
+ }
12897
+ },
12898
+ "recommended": true
12899
+ }
13405
12900
  },
13406
12901
  "example:odd-tool-call/failed": {
13407
12902
  "component": "component:odd-tool-call",
13408
12903
  "name": "failed",
13409
- "file": "src/tool-call/tool-call.examples.ts"
12904
+ "file": "src/tool-call/tool-call.examples.ts",
12905
+ "definition": {
12906
+ "label": "Failed, retryable",
12907
+ "props": {
12908
+ "tool": {
12909
+ "toolCallId": "t3",
12910
+ "toolName": "search",
12911
+ "status": "output-error",
12912
+ "error": {
12913
+ "code": "timeout",
12914
+ "message": "The search timed out."
12915
+ },
12916
+ "retryable": true
12917
+ },
12918
+ "capabilities": {
12919
+ "retry": {
12920
+ "available": true
12921
+ }
12922
+ }
12923
+ }
12924
+ }
13410
12925
  },
13411
12926
  "example:odd-tool-call/ready": {
13412
12927
  "component": "component:odd-tool-call",
13413
12928
  "name": "ready",
13414
- "file": "src/tool-call/tool-call.examples.ts"
12929
+ "file": "src/tool-call/tool-call.examples.ts",
12930
+ "definition": {
12931
+ "label": "Arguments ready, not run",
12932
+ "props": {
12933
+ "tool": {
12934
+ "toolCallId": "t2",
12935
+ "toolName": "search",
12936
+ "title": "Web search",
12937
+ "status": "input-available",
12938
+ "input": {
12939
+ "q": "weather"
12940
+ }
12941
+ }
12942
+ },
12943
+ "guidance": "Finished arguments are not a result: the call has not run yet."
12944
+ }
13415
12945
  },
13416
12946
  "example:odd-transcript/default": {
13417
12947
  "component": "component:odd-transcript",
13418
12948
  "name": "default",
13419
- "file": "src/transcript/transcript.examples.ts"
12949
+ "file": "src/transcript/transcript.examples.ts",
12950
+ "definition": {
12951
+ "label": "Live transcript",
12952
+ "props": {
12953
+ "segments": [
12954
+ {
12955
+ "id": "a",
12956
+ "text": "Schedule a review for Thursday.",
12957
+ "final": true
12958
+ },
12959
+ {
12960
+ "id": "b",
12961
+ "text": "Invite the design team.",
12962
+ "final": true
12963
+ }
12964
+ ],
12965
+ "interim": "and add the"
12966
+ },
12967
+ "recommended": true,
12968
+ "guidance": "Interim text may still change and is shown apart from final segments."
12969
+ }
13420
12970
  },
13421
12971
  "example:odd-usage-meter/default": {
13422
12972
  "component": "component:odd-usage-meter",
13423
12973
  "name": "default",
13424
- "file": "src/usage-meter/usage-meter.examples.ts"
12974
+ "file": "src/usage-meter/usage-meter.examples.ts",
12975
+ "definition": {
12976
+ "label": "Usage with a limit",
12977
+ "props": {
12978
+ "usage": [
12979
+ {
12980
+ "kind": "context",
12981
+ "label": "Context window",
12982
+ "used": 48000,
12983
+ "limit": 128000,
12984
+ "unit": "tokens",
12985
+ "precision": "measured"
12986
+ },
12987
+ {
12988
+ "kind": "output-tokens",
12989
+ "label": "Output",
12990
+ "used": 1200,
12991
+ "unit": "tokens",
12992
+ "precision": "estimated"
12993
+ },
12994
+ {
12995
+ "kind": "cost",
12996
+ "label": "Cost",
12997
+ "precision": "unknown"
12998
+ }
12999
+ ]
13000
+ },
13001
+ "recommended": true,
13002
+ "guidance": "Measured, estimated, and unknown values are shown as the host supplied them."
13003
+ }
13425
13004
  },
13426
13005
  "example:odd-voice-input/default": {
13427
13006
  "component": "component:odd-voice-input",
@@ -13450,7 +13029,7 @@
13450
13029
  },
13451
13030
  "components/odd-artifact": {
13452
13031
  "updated": {
13453
- "value": "2026-10-27",
13032
+ "value": "2026-10-28",
13454
13033
  "provenance": "extracted"
13455
13034
  }
13456
13035
  },
@@ -13474,7 +13053,7 @@
13474
13053
  },
13475
13054
  "components/odd-context-picker": {
13476
13055
  "updated": {
13477
- "value": "2026-10-27",
13056
+ "value": "2026-10-28",
13478
13057
  "provenance": "extracted"
13479
13058
  }
13480
13059
  },
@@ -13486,7 +13065,7 @@
13486
13065
  },
13487
13066
  "components/odd-inline-assist": {
13488
13067
  "updated": {
13489
- "value": "2026-10-27",
13068
+ "value": "2026-10-28",
13490
13069
  "provenance": "extracted"
13491
13070
  }
13492
13071
  },
@@ -13510,7 +13089,7 @@
13510
13089
  },
13511
13090
  "components/odd-prompt-input": {
13512
13091
  "updated": {
13513
- "value": "2026-10-27",
13092
+ "value": "2026-10-30",
13514
13093
  "provenance": "extracted"
13515
13094
  }
13516
13095
  },