@vellumai/assistant 0.10.7-dev.202607100313.fffdfea → 0.10.7-dev.202607100720.fba456e

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 (99) hide show
  1. package/openapi.yaml +846 -27
  2. package/package.json +1 -1
  3. package/src/__tests__/config-watcher-skill-reseed.test.ts +1 -0
  4. package/src/__tests__/config-watcher.test.ts +22 -4
  5. package/src/__tests__/credential-security-invariants.test.ts +1 -1
  6. package/src/__tests__/plugin-import-boundary-guard.test.ts +6 -9
  7. package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +0 -2
  8. package/src/cli/commands/__tests__/inference-models.test.ts +86 -0
  9. package/src/cli/commands/__tests__/inference-profiles.test.ts +254 -0
  10. package/src/cli/commands/__tests__/inference-providers.test.ts +171 -0
  11. package/src/cli/commands/__tests__/schedules.test.ts +133 -1
  12. package/src/cli/commands/__tests__/usage.test.ts +131 -0
  13. package/src/cli/commands/inference-callsites.ts +158 -0
  14. package/src/cli/commands/inference-models.ts +84 -0
  15. package/src/cli/commands/inference-profiles.ts +371 -0
  16. package/src/cli/commands/inference-providers-default.ts +89 -0
  17. package/src/cli/commands/inference-providers.ts +87 -16
  18. package/src/cli/commands/inference.ts +6 -0
  19. package/src/cli/commands/memory/nodes.ts +90 -50
  20. package/src/cli/commands/schedules.ts +17 -2
  21. package/src/cli/commands/usage.ts +59 -21
  22. package/src/cli/lib/__tests__/cli-output.test.ts +20 -0
  23. package/src/cli/lib/cli-output.ts +55 -0
  24. package/src/config/__tests__/loader-last-known-good.test.ts +229 -0
  25. package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +166 -0
  26. package/src/config/default-profile-catalog.ts +28 -0
  27. package/src/config/loader.ts +276 -46
  28. package/src/daemon/config-watcher.ts +65 -20
  29. package/src/daemon/message-types/sync.ts +1 -0
  30. package/src/oauth/byo-connection.test.ts +1 -1
  31. package/src/oauth/connection-resolver.test.ts +140 -0
  32. package/src/oauth/connection-resolver.ts +48 -12
  33. package/src/plugins/defaults/memory/anisotropy.ts +1 -1
  34. package/src/plugins/defaults/memory/config.ts +1 -1
  35. package/src/plugins/defaults/memory/context-search/agent-protocol.ts +1 -1
  36. package/src/plugins/defaults/memory/context-search/search.ts +1 -1
  37. package/src/plugins/defaults/memory/graph/bootstrap.ts +1 -1
  38. package/src/plugins/defaults/memory/graph/consolidation.ts +1 -1
  39. package/src/plugins/defaults/memory/graph/conversation-graph-memory.ts +11 -1
  40. package/src/plugins/defaults/memory/graph/extraction.ts +1 -1
  41. package/src/plugins/defaults/memory/graph/narrative.ts +1 -1
  42. package/src/plugins/defaults/memory/graph/pattern-scan.ts +1 -1
  43. package/src/plugins/defaults/memory/graph/tool-handlers.ts +1 -1
  44. package/src/plugins/defaults/memory/graph/tools.ts +1 -1
  45. package/src/plugins/defaults/memory/graph-topology/build-memory-graph.ts +43 -16
  46. package/src/plugins/defaults/memory/hooks/user-prompt-submit.ts +1 -1
  47. package/src/plugins/defaults/memory/host-utils.ts +80 -0
  48. package/src/plugins/defaults/memory/identity-context.ts +1 -1
  49. package/src/plugins/defaults/memory/injectors.ts +1 -1
  50. package/src/plugins/defaults/memory/jobs/embed-concept-page.ts +2 -2
  51. package/src/plugins/defaults/memory/jobs-worker.ts +2 -9
  52. package/src/plugins/defaults/memory/memory-retrospective-state.ts +1 -1
  53. package/src/plugins/defaults/memory/paths.ts +48 -0
  54. package/src/plugins/defaults/memory/pkb/autoinject.ts +1 -1
  55. package/src/plugins/defaults/memory/pkb/context.ts +2 -2
  56. package/src/plugins/defaults/memory/pkb/types.ts +1 -1
  57. package/src/plugins/defaults/memory/pkb-schedule.ts +2 -2
  58. package/src/plugins/defaults/memory/rerank-local.ts +2 -3
  59. package/src/plugins/defaults/memory/routes/memory-eval-routes.ts +1 -1
  60. package/src/plugins/defaults/memory/routes/memory-item-routes.test.ts +149 -1
  61. package/src/plugins/defaults/memory/routes/memory-item-routes.ts +144 -1
  62. package/src/plugins/defaults/memory/routes/memory-v2-routes.ts +1 -1
  63. package/src/plugins/defaults/memory/startup.ts +1 -1
  64. package/src/plugins/defaults/memory/v2/backfill-jobs.ts +1 -1
  65. package/src/plugins/defaults/memory/v2/consolidation-job.ts +2 -2
  66. package/src/plugins/defaults/memory/v2/injection.ts +1 -1
  67. package/src/plugins/defaults/memory/v2/memory-v2-startup.ts +1 -1
  68. package/src/plugins/defaults/memory/v2/prompts/consolidation.ts +1 -1
  69. package/src/plugins/defaults/memory/v2/qdrant.ts +1 -1
  70. package/src/plugins/defaults/memory/v2/reranker.ts +1 -1
  71. package/src/plugins/defaults/memory/v2/static-context.ts +1 -1
  72. package/src/plugins/defaults/memory/v2/sweep-job.ts +1 -1
  73. package/src/plugins/defaults/memory/v3/candidate-match.ts +1 -1
  74. package/src/plugins/defaults/memory/v3/maintain-job.ts +1 -1
  75. package/src/plugins/defaults/memory/v3/page-content.ts +1 -1
  76. package/src/plugins/defaults/memory/v3/pool-select.ts +1 -2
  77. package/src/plugins/defaults/memory/v3/selection-log-store.ts +1 -1
  78. package/src/plugins/defaults/memory/v3/shadow-plugin.ts +2 -5
  79. package/src/plugins/defaults/memory/worker.ts +1 -1
  80. package/src/plugins/defaults/workspace/injectors.ts +17 -15
  81. package/src/plugins/types.ts +9 -14
  82. package/src/providers/inference/connection-availability.ts +193 -0
  83. package/src/runtime/routes/__tests__/inference-callsites-routes.test.ts +54 -0
  84. package/src/runtime/routes/__tests__/inference-models-routes.test.ts +54 -0
  85. package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +405 -0
  86. package/src/runtime/routes/__tests__/inference-routes-registration.test.ts +42 -0
  87. package/src/runtime/routes/__tests__/theme-routes.test.ts +66 -0
  88. package/src/runtime/routes/conversation-query-routes.ts +5 -3
  89. package/src/runtime/routes/default-provider-routes.ts +5 -152
  90. package/src/runtime/routes/index.ts +8 -0
  91. package/src/runtime/routes/inference-callsites-routes.ts +211 -0
  92. package/src/runtime/routes/inference-models-routes.ts +104 -0
  93. package/src/runtime/routes/inference-profiles-routes.ts +717 -0
  94. package/src/runtime/routes/theme-routes.ts +36 -0
  95. package/src/runtime/sync/resource-sync-events.ts +4 -0
  96. package/src/theme/workspace-theme.test.ts +269 -0
  97. package/src/theme/workspace-theme.ts +304 -0
  98. package/src/watcher/__tests__/engine-auth-notify.test.ts +316 -0
  99. package/src/watcher/engine.ts +87 -2
package/openapi.yaml CHANGED
@@ -13795,6 +13795,96 @@ paths:
13795
13795
  - images
13796
13796
  - resolvedModel
13797
13797
  additionalProperties: false
13798
+ /v1/inference/active-profile:
13799
+ put:
13800
+ operationId: inference_activeprofile_put
13801
+ summary: Set the active (chat) inference profile
13802
+ description:
13803
+ Set llm.activeProfile after validating the name against the effective profile catalog (provider-aware
13804
+ default expansion included). Unknown or disabled profiles are rejected so the chat-model selection cannot be
13805
+ silently stripped on the next config load.
13806
+ tags:
13807
+ - inference
13808
+ requestBody:
13809
+ required: true
13810
+ content:
13811
+ application/json:
13812
+ schema:
13813
+ type: object
13814
+ properties:
13815
+ name:
13816
+ type: string
13817
+ minLength: 1
13818
+ required:
13819
+ - name
13820
+ responses:
13821
+ "200":
13822
+ description: Successful response
13823
+ content:
13824
+ application/json:
13825
+ schema:
13826
+ type: object
13827
+ properties:
13828
+ ok:
13829
+ type: boolean
13830
+ const: true
13831
+ activeProfile:
13832
+ type: string
13833
+ required:
13834
+ - ok
13835
+ - activeProfile
13836
+ additionalProperties: false
13837
+ "400":
13838
+ description: Unknown or disabled profile name
13839
+ /v1/inference/callsites:
13840
+ get:
13841
+ operationId: inference_callsites_get
13842
+ summary: List call-site resolutions
13843
+ description:
13844
+ "Return the effective resolution for every LLM call site: the winning profile, its source (override /
13845
+ active / call-site pin / shipped default), and the resolved provider/model plus notable tuning."
13846
+ tags:
13847
+ - inference
13848
+ responses:
13849
+ "200":
13850
+ description: Successful response
13851
+ content:
13852
+ application/json:
13853
+ schema:
13854
+ type: object
13855
+ properties:
13856
+ callSites:
13857
+ type: array
13858
+ items:
13859
+ $ref: "#/components/schemas/CallSiteResolutionSummary"
13860
+ required:
13861
+ - callSites
13862
+ additionalProperties: false
13863
+ /v1/inference/callsites/{site}:
13864
+ get:
13865
+ operationId: inference_callsites_by_site_get
13866
+ summary: Get a call-site resolution detail
13867
+ description:
13868
+ "Return the full resolution for one call site: the winner, the resolution chain (rungs considered and
13869
+ skipped), the shipped default fragment, the user's pin fragment, and a preflight-derived resolution error when
13870
+ dispatch would provably fail."
13871
+ tags:
13872
+ - inference
13873
+ parameters:
13874
+ - name: site
13875
+ in: path
13876
+ required: true
13877
+ schema:
13878
+ type: string
13879
+ responses:
13880
+ "200":
13881
+ description: Successful response
13882
+ content:
13883
+ application/json:
13884
+ schema:
13885
+ $ref: "#/components/schemas/CallSiteResolutionDetail"
13886
+ "400":
13887
+ description: Unknown call site
13798
13888
  /v1/inference/chatgpt-subscription/auth:
13799
13889
  post:
13800
13890
  operationId: inference_chatgptsubscription_auth_post
@@ -13856,6 +13946,239 @@ paths:
13856
13946
  required:
13857
13947
  - ok
13858
13948
  additionalProperties: false
13949
+ /v1/inference/models:
13950
+ get:
13951
+ operationId: inference_models_get
13952
+ summary: List inference catalog models
13953
+ description:
13954
+ Return every model in the code-owned provider catalog, each tagged with its provider. Optionally filter by
13955
+ provider with ?provider=<id>.
13956
+ tags:
13957
+ - inference
13958
+ parameters:
13959
+ - name: provider
13960
+ in: query
13961
+ required: false
13962
+ schema:
13963
+ type: string
13964
+ description:
13965
+ "Filter by provider id. One of: anthropic, openai, gemini, ollama, fireworks, together, openrouter,
13966
+ vercel-ai-gateway, openai-compatible, minimax, atlascloud"
13967
+ responses:
13968
+ "200":
13969
+ description: Successful response
13970
+ content:
13971
+ application/json:
13972
+ schema:
13973
+ type: object
13974
+ properties:
13975
+ models:
13976
+ type: array
13977
+ items:
13978
+ $ref: "#/components/schemas/CatalogModel"
13979
+ required:
13980
+ - models
13981
+ additionalProperties: false
13982
+ "400":
13983
+ description: Unknown provider filter
13984
+ /v1/inference/profiles:
13985
+ get:
13986
+ operationId: inference_profiles_get
13987
+ summary: List effective inference profiles
13988
+ description:
13989
+ "Return the effective profile catalog: code-defined managed defaults merged with user profiles, each
13990
+ annotated with source and (when it has a connection) availability."
13991
+ tags:
13992
+ - inference
13993
+ responses:
13994
+ "200":
13995
+ description: Successful response
13996
+ content:
13997
+ application/json:
13998
+ schema:
13999
+ type: object
14000
+ properties:
14001
+ profiles:
14002
+ type: array
14003
+ items:
14004
+ $ref: "#/components/schemas/InferenceProfileSummary"
14005
+ required:
14006
+ - profiles
14007
+ additionalProperties: false
14008
+ post:
14009
+ operationId: inference_profiles_post
14010
+ summary: Create an inference profile
14011
+ description:
14012
+ Create a validated custom profile. The provider must be a known LLM provider, the model must be in the
14013
+ catalog (unless allowUnlisted), and a referenced connection must exist. Managed default names cannot be created.
14014
+ tags:
14015
+ - inference
14016
+ requestBody:
14017
+ required: true
14018
+ content:
14019
+ application/json:
14020
+ schema:
14021
+ type: object
14022
+ properties:
14023
+ name:
14024
+ type: string
14025
+ minLength: 1
14026
+ provider:
14027
+ type: string
14028
+ minLength: 1
14029
+ model:
14030
+ type: string
14031
+ minLength: 1
14032
+ connection:
14033
+ type: string
14034
+ minLength: 1
14035
+ label:
14036
+ type: string
14037
+ minLength: 1
14038
+ effort:
14039
+ type: string
14040
+ maxTokens:
14041
+ type: integer
14042
+ exclusiveMinimum: 0
14043
+ maximum: 9007199254740991
14044
+ temperature:
14045
+ type: number
14046
+ thinking:
14047
+ type: boolean
14048
+ description:
14049
+ type: string
14050
+ allowUnlisted:
14051
+ type: boolean
14052
+ required:
14053
+ - name
14054
+ - provider
14055
+ - model
14056
+ responses:
14057
+ "201":
14058
+ description: Successful response
14059
+ content:
14060
+ application/json:
14061
+ schema:
14062
+ $ref: "#/components/schemas/InferenceProfileWriteResult"
14063
+ "400":
14064
+ description: Invalid provider, uncataloged model, or missing connection
14065
+ "409":
14066
+ description: A profile with this name already exists
14067
+ /v1/inference/profiles/{name}:
14068
+ delete:
14069
+ operationId: inference_profiles_by_name_delete
14070
+ summary: Delete an inference profile
14071
+ description: Delete a custom profile. Managed default profiles cannot be deleted (they are re-seeded on boot).
14072
+ tags:
14073
+ - inference
14074
+ parameters:
14075
+ - name: name
14076
+ in: path
14077
+ required: true
14078
+ schema:
14079
+ type: string
14080
+ responses:
14081
+ "200":
14082
+ description: Successful response
14083
+ content:
14084
+ application/json:
14085
+ schema:
14086
+ type: object
14087
+ properties:
14088
+ ok:
14089
+ type: boolean
14090
+ const: true
14091
+ name:
14092
+ type: string
14093
+ required:
14094
+ - ok
14095
+ - name
14096
+ additionalProperties: false
14097
+ "400":
14098
+ description: Attempt to delete a managed profile
14099
+ "404":
14100
+ description: Profile not found
14101
+ "409":
14102
+ description: Profile is still referenced by activeProfile, advisorProfile, a call site, or a mix arm
14103
+ get:
14104
+ operationId: inference_profiles_by_name_get
14105
+ summary: Get an effective inference profile
14106
+ description: Return a single effective profile by name, with availability.
14107
+ tags:
14108
+ - inference
14109
+ parameters:
14110
+ - name: name
14111
+ in: path
14112
+ required: true
14113
+ schema:
14114
+ type: string
14115
+ responses:
14116
+ "200":
14117
+ description: Successful response
14118
+ content:
14119
+ application/json:
14120
+ schema:
14121
+ $ref: "#/components/schemas/InferenceProfileDetail"
14122
+ "404":
14123
+ description: Profile not found
14124
+ patch:
14125
+ operationId: inference_profiles_by_name_patch
14126
+ summary: Update an inference profile
14127
+ description:
14128
+ Partial update of a custom profile with the same write-time validation as create. Managed default profiles
14129
+ are read-only.
14130
+ tags:
14131
+ - inference
14132
+ parameters:
14133
+ - name: name
14134
+ in: path
14135
+ required: true
14136
+ schema:
14137
+ type: string
14138
+ requestBody:
14139
+ required: true
14140
+ content:
14141
+ application/json:
14142
+ schema:
14143
+ type: object
14144
+ properties:
14145
+ provider:
14146
+ type: string
14147
+ minLength: 1
14148
+ model:
14149
+ type: string
14150
+ minLength: 1
14151
+ connection:
14152
+ type: string
14153
+ minLength: 1
14154
+ label:
14155
+ type: string
14156
+ minLength: 1
14157
+ effort:
14158
+ type: string
14159
+ maxTokens:
14160
+ type: integer
14161
+ exclusiveMinimum: 0
14162
+ maximum: 9007199254740991
14163
+ temperature:
14164
+ type: number
14165
+ thinking:
14166
+ type: boolean
14167
+ description:
14168
+ type: string
14169
+ allowUnlisted:
14170
+ type: boolean
14171
+ responses:
14172
+ "200":
14173
+ description: Successful response
14174
+ content:
14175
+ application/json:
14176
+ schema:
14177
+ $ref: "#/components/schemas/InferenceProfileWriteResult"
14178
+ "400":
14179
+ description: Invalid fields, or attempt to edit a managed profile
14180
+ "404":
14181
+ description: Profile not found
13859
14182
  /v1/inference/provider-connections:
13860
14183
  get:
13861
14184
  operationId: inference_providerconnections_get
@@ -16292,20 +16615,166 @@ paths:
16292
16615
  additionalProperties: {}
16293
16616
  description: Memory item with graph metadata
16294
16617
  required:
16295
- - item
16618
+ - item
16619
+ additionalProperties: false
16620
+ patch:
16621
+ operationId: memoryitems_by_id_patch
16622
+ summary: Update a memory item
16623
+ description: Partially update fields on an existing memory graph node.
16624
+ tags:
16625
+ - memory
16626
+ parameters:
16627
+ - name: id
16628
+ in: path
16629
+ required: true
16630
+ schema:
16631
+ type: string
16632
+ requestBody:
16633
+ required: true
16634
+ content:
16635
+ application/json:
16636
+ schema:
16637
+ type: object
16638
+ properties:
16639
+ subject:
16640
+ type: string
16641
+ statement:
16642
+ type: string
16643
+ kind:
16644
+ type: string
16645
+ status:
16646
+ type: string
16647
+ importance:
16648
+ type: number
16649
+ responses:
16650
+ "200":
16651
+ description: Successful response
16652
+ content:
16653
+ application/json:
16654
+ schema:
16655
+ type: object
16656
+ properties:
16657
+ item:
16658
+ type: object
16659
+ properties: {}
16660
+ additionalProperties: {}
16661
+ description: Updated memory item
16662
+ required:
16663
+ - item
16664
+ additionalProperties: false
16665
+ "409":
16666
+ description: Another memory item with this content already exists
16667
+ /v1/memory-nodes:
16668
+ get:
16669
+ operationId: memorynodes_get
16670
+ summary: List memory graph nodes
16671
+ description:
16672
+ Return active memory graph nodes ordered by significance. With `search`, all nodes are scanned so the
16673
+ content filter is exhaustive; without it the query is capped at `limit` rows.
16674
+ tags:
16675
+ - memory
16676
+ parameters:
16677
+ - name: search
16678
+ in: query
16679
+ required: false
16680
+ schema:
16681
+ type: string
16682
+ description: Filter nodes whose content contains the query
16683
+ - name: limit
16684
+ in: query
16685
+ required: false
16686
+ schema:
16687
+ type: integer
16688
+ description: Max results (default 50, max 200)
16689
+ responses:
16690
+ "200":
16691
+ description: Successful response
16692
+ content:
16693
+ application/json:
16694
+ schema:
16695
+ type: object
16696
+ properties:
16697
+ success:
16698
+ type: boolean
16699
+ message:
16700
+ type: string
16701
+ nodes:
16702
+ type: array
16703
+ items:
16704
+ type: object
16705
+ properties:
16706
+ id:
16707
+ type: string
16708
+ content:
16709
+ type: string
16710
+ type:
16711
+ type: string
16712
+ fidelity:
16713
+ type: string
16714
+ created:
16715
+ type: number
16716
+ required:
16717
+ - id
16718
+ - content
16719
+ - type
16720
+ - fidelity
16721
+ - created
16722
+ additionalProperties: false
16723
+ total:
16724
+ type: number
16725
+ required:
16726
+ - success
16727
+ - message
16728
+ - nodes
16729
+ - total
16730
+ additionalProperties: false
16731
+ /v1/memory-nodes/delete:
16732
+ post:
16733
+ operationId: memorynodes_delete_post
16734
+ summary: Delete a memory graph node by content match
16735
+ description:
16736
+ "Delete the single memory graph node matching `content`: a case-insensitive exact match takes priority;
16737
+ with no exact match, a substring match is tried. Fails as `{ success: false }` when zero or multiple nodes
16738
+ match."
16739
+ tags:
16740
+ - memory
16741
+ requestBody:
16742
+ required: true
16743
+ content:
16744
+ application/json:
16745
+ schema:
16746
+ type: object
16747
+ properties:
16748
+ content:
16749
+ type: string
16750
+ required:
16751
+ - content
16752
+ responses:
16753
+ "200":
16754
+ description: Successful response
16755
+ content:
16756
+ application/json:
16757
+ schema:
16758
+ type: object
16759
+ properties:
16760
+ success:
16761
+ type: boolean
16762
+ message:
16763
+ type: string
16764
+ required:
16765
+ - success
16766
+ - message
16296
16767
  additionalProperties: false
16297
- patch:
16298
- operationId: memoryitems_by_id_patch
16299
- summary: Update a memory item
16300
- description: Partially update fields on an existing memory graph node.
16768
+ /v1/memory-nodes/update:
16769
+ post:
16770
+ operationId: memorynodes_update_post
16771
+ summary: Update a memory graph node by content match
16772
+ description:
16773
+ "Replace the content of the single memory graph node matching `oldContent`: a case-insensitive exact match
16774
+ takes priority; with no exact match, a substring match is tried. Fails as `{ success: false }` when zero or
16775
+ multiple nodes match, or when another active node already has `newContent`."
16301
16776
  tags:
16302
16777
  - memory
16303
- parameters:
16304
- - name: id
16305
- in: path
16306
- required: true
16307
- schema:
16308
- type: string
16309
16778
  requestBody:
16310
16779
  required: true
16311
16780
  content:
@@ -16313,16 +16782,13 @@ paths:
16313
16782
  schema:
16314
16783
  type: object
16315
16784
  properties:
16316
- subject:
16317
- type: string
16318
- statement:
16319
- type: string
16320
- kind:
16785
+ oldContent:
16321
16786
  type: string
16322
- status:
16787
+ newContent:
16323
16788
  type: string
16324
- importance:
16325
- type: number
16789
+ required:
16790
+ - oldContent
16791
+ - newContent
16326
16792
  responses:
16327
16793
  "200":
16328
16794
  description: Successful response
@@ -16331,16 +16797,14 @@ paths:
16331
16797
  schema:
16332
16798
  type: object
16333
16799
  properties:
16334
- item:
16335
- type: object
16336
- properties: {}
16337
- additionalProperties: {}
16338
- description: Updated memory item
16800
+ success:
16801
+ type: boolean
16802
+ message:
16803
+ type: string
16339
16804
  required:
16340
- - item
16805
+ - success
16806
+ - message
16341
16807
  additionalProperties: false
16342
- "409":
16343
- description: Another memory item with this content already exists
16344
16808
  /v1/memory/eval/run:
16345
16809
  post:
16346
16810
  operationId: memory_eval_run_post
@@ -30982,6 +31446,93 @@ paths:
30982
31446
  - oldPath
30983
31447
  - newPath
30984
31448
  additionalProperties: false
31449
+ /v1/workspace/theme:
31450
+ get:
31451
+ operationId: workspace_theme_get
31452
+ summary: Get workspace theme
31453
+ description:
31454
+ "Return validated design-token overrides from the workspace ui/theme.json. Absent or rejected files yield
31455
+ theme: null with the rejection reasons in issues; clients fall back to built-in theme defaults."
31456
+ tags:
31457
+ - workspace
31458
+ responses:
31459
+ "200":
31460
+ description: Successful response
31461
+ content:
31462
+ application/json:
31463
+ schema:
31464
+ type: object
31465
+ properties:
31466
+ theme:
31467
+ anyOf:
31468
+ - type: object
31469
+ properties:
31470
+ version:
31471
+ type: number
31472
+ const: 1
31473
+ base:
31474
+ type: string
31475
+ enum:
31476
+ - light
31477
+ - dark
31478
+ - velvet
31479
+ - system
31480
+ tokens:
31481
+ type: object
31482
+ properties:
31483
+ accent:
31484
+ type: string
31485
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31486
+ background:
31487
+ type: string
31488
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31489
+ surface:
31490
+ type: string
31491
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31492
+ surfaceRaised:
31493
+ type: string
31494
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31495
+ border:
31496
+ type: string
31497
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31498
+ text:
31499
+ type: string
31500
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31501
+ textMuted:
31502
+ type: string
31503
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31504
+ assistantBubbleBackground:
31505
+ type: string
31506
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31507
+ assistantBubbleText:
31508
+ type: string
31509
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31510
+ userBubbleBackground:
31511
+ type: string
31512
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31513
+ userBubbleText:
31514
+ type: string
31515
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31516
+ additionalProperties: false
31517
+ required:
31518
+ - version
31519
+ additionalProperties: false
31520
+ - type: "null"
31521
+ source:
31522
+ type: string
31523
+ enum:
31524
+ - workspace
31525
+ - invalid
31526
+ - none
31527
+ issues:
31528
+ type: array
31529
+ items:
31530
+ type: string
31531
+ required:
31532
+ - theme
31533
+ - source
31534
+ - issues
31535
+ additionalProperties: false
30985
31536
  /v1/workspace/tree:
30986
31537
  get:
30987
31538
  operationId: workspace_tree_get
@@ -32445,6 +32996,274 @@ components:
32445
32996
  - resolvedConnectionName
32446
32997
  - availability
32447
32998
  additionalProperties: false
32999
+ CallSiteResolutionSummary:
33000
+ type: object
33001
+ properties:
33002
+ callSite:
33003
+ type: string
33004
+ profile:
33005
+ anyOf:
33006
+ - type: string
33007
+ - type: "null"
33008
+ label:
33009
+ anyOf:
33010
+ - type: string
33011
+ - type: "null"
33012
+ source:
33013
+ type: string
33014
+ enum:
33015
+ - override
33016
+ - active
33017
+ - call_site
33018
+ - default
33019
+ provider:
33020
+ type: string
33021
+ model:
33022
+ type: string
33023
+ effort:
33024
+ type: string
33025
+ maxTokens:
33026
+ type: number
33027
+ maxInputTokens:
33028
+ type: number
33029
+ required:
33030
+ - callSite
33031
+ - profile
33032
+ - label
33033
+ - source
33034
+ - provider
33035
+ - model
33036
+ - effort
33037
+ - maxTokens
33038
+ additionalProperties: false
33039
+ CallSiteResolutionDetail:
33040
+ type: object
33041
+ properties:
33042
+ callSite:
33043
+ type: string
33044
+ winner:
33045
+ type: object
33046
+ properties:
33047
+ profile:
33048
+ anyOf:
33049
+ - type: string
33050
+ - type: "null"
33051
+ label:
33052
+ anyOf:
33053
+ - type: string
33054
+ - type: "null"
33055
+ source:
33056
+ type: string
33057
+ enum:
33058
+ - override
33059
+ - active
33060
+ - call_site
33061
+ - default
33062
+ required:
33063
+ - profile
33064
+ - label
33065
+ - source
33066
+ additionalProperties: false
33067
+ resolved:
33068
+ type: object
33069
+ properties:
33070
+ provider:
33071
+ type: string
33072
+ model:
33073
+ type: string
33074
+ maxTokens:
33075
+ type: number
33076
+ effort:
33077
+ type: string
33078
+ temperature:
33079
+ anyOf:
33080
+ - type: number
33081
+ - type: "null"
33082
+ maxInputTokens:
33083
+ type: number
33084
+ required:
33085
+ - provider
33086
+ - model
33087
+ - maxTokens
33088
+ - effort
33089
+ - temperature
33090
+ additionalProperties: false
33091
+ resolutionChain:
33092
+ type: array
33093
+ items:
33094
+ type: object
33095
+ properties:
33096
+ requested:
33097
+ type: string
33098
+ reason:
33099
+ type: string
33100
+ enum:
33101
+ - missing
33102
+ - disabled
33103
+ - incomplete
33104
+ required:
33105
+ - requested
33106
+ - reason
33107
+ additionalProperties: false
33108
+ shippedDefault:
33109
+ type: object
33110
+ propertyNames:
33111
+ type: string
33112
+ additionalProperties: {}
33113
+ userPin:
33114
+ anyOf:
33115
+ - type: object
33116
+ propertyNames:
33117
+ type: string
33118
+ additionalProperties: {}
33119
+ - type: "null"
33120
+ resolutionError:
33121
+ type: object
33122
+ properties:
33123
+ reason:
33124
+ type: string
33125
+ message:
33126
+ type: string
33127
+ required:
33128
+ - reason
33129
+ - message
33130
+ additionalProperties: false
33131
+ required:
33132
+ - callSite
33133
+ - winner
33134
+ - resolved
33135
+ - resolutionChain
33136
+ - shippedDefault
33137
+ - userPin
33138
+ additionalProperties: false
33139
+ CatalogModel:
33140
+ type: object
33141
+ properties:
33142
+ provider:
33143
+ type: string
33144
+ id:
33145
+ type: string
33146
+ displayName:
33147
+ type: string
33148
+ contextWindowTokens:
33149
+ type: number
33150
+ maxOutputTokens:
33151
+ type: number
33152
+ supportsThinking:
33153
+ type: boolean
33154
+ supportsVision:
33155
+ type: boolean
33156
+ supportsToolUse:
33157
+ type: boolean
33158
+ featureFlag:
33159
+ type: string
33160
+ required:
33161
+ - provider
33162
+ - id
33163
+ - displayName
33164
+ additionalProperties: false
33165
+ InferenceProfileSummary:
33166
+ type: object
33167
+ properties:
33168
+ name:
33169
+ type: string
33170
+ label:
33171
+ anyOf:
33172
+ - type: string
33173
+ - type: "null"
33174
+ provider:
33175
+ anyOf:
33176
+ - type: string
33177
+ - type: "null"
33178
+ model:
33179
+ anyOf:
33180
+ - type: string
33181
+ - type: "null"
33182
+ status:
33183
+ type: string
33184
+ enum:
33185
+ - active
33186
+ - disabled
33187
+ source:
33188
+ type: string
33189
+ enum:
33190
+ - managed
33191
+ - user
33192
+ provider_connection:
33193
+ type: string
33194
+ availability:
33195
+ anyOf:
33196
+ - $ref: "#/components/schemas/ProfileConnectionAvailability"
33197
+ - type: "null"
33198
+ required:
33199
+ - name
33200
+ - label
33201
+ - provider
33202
+ - model
33203
+ - status
33204
+ - source
33205
+ - availability
33206
+ additionalProperties: false
33207
+ ProfileConnectionAvailability:
33208
+ type: object
33209
+ properties:
33210
+ status:
33211
+ type: string
33212
+ enum:
33213
+ - ok
33214
+ - missing_connection
33215
+ - missing_credential
33216
+ - provider_mismatch
33217
+ - unsupported_auth
33218
+ - vellum_unauthenticated
33219
+ - unknown
33220
+ message:
33221
+ type: string
33222
+ required:
33223
+ - status
33224
+ additionalProperties: false
33225
+ InferenceProfileWriteResult:
33226
+ type: object
33227
+ properties:
33228
+ ok:
33229
+ type: boolean
33230
+ const: true
33231
+ name:
33232
+ type: string
33233
+ entry:
33234
+ type: object
33235
+ propertyNames:
33236
+ type: string
33237
+ additionalProperties: {}
33238
+ warnings:
33239
+ type: array
33240
+ items:
33241
+ type: string
33242
+ required:
33243
+ - ok
33244
+ - name
33245
+ - entry
33246
+ - warnings
33247
+ additionalProperties: false
33248
+ InferenceProfileDetail:
33249
+ type: object
33250
+ properties:
33251
+ name:
33252
+ type: string
33253
+ entry:
33254
+ type: object
33255
+ propertyNames:
33256
+ type: string
33257
+ additionalProperties: {}
33258
+ availability:
33259
+ anyOf:
33260
+ - $ref: "#/components/schemas/ProfileConnectionAvailability"
33261
+ - type: "null"
33262
+ required:
33263
+ - name
33264
+ - entry
33265
+ - availability
33266
+ additionalProperties: false
32448
33267
  ProviderConnection:
32449
33268
  type: object
32450
33269
  properties: