@skaile/forge-settings 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +20 -0
  3. package/dist/module.json +1 -1
  4. package/dist/runtime/components/ForgeProvidersPanel.d.vue.ts +13 -0
  5. package/dist/runtime/components/ForgeProvidersPanel.vue +461 -78
  6. package/dist/runtime/components/ForgeProvidersPanel.vue.d.ts +13 -0
  7. package/dist/runtime/server/harness-settings.d.ts +50 -12
  8. package/dist/runtime/server/harness-settings.js +93 -9
  9. package/dist/runtime/server/index.d.ts +2 -0
  10. package/dist/runtime/server/index.js +2 -0
  11. package/dist/runtime/server/provider-service.d.ts +26 -2
  12. package/dist/runtime/server/provider-service.js +16 -1
  13. package/dist/runtime/server/provider-write.d.ts +25 -9
  14. package/dist/runtime/server/provider-write.js +72 -4
  15. package/dist/runtime/shared/data-zone.d.ts +66 -0
  16. package/dist/runtime/shared/data-zone.js +79 -0
  17. package/dist/runtime/shared/harness-providers.d.ts +41 -2
  18. package/dist/runtime/shared/harness-providers.js +31 -8
  19. package/dist/runtime/shared/harnesses.d.ts +7 -0
  20. package/dist/runtime/shared/harnesses.js +18 -0
  21. package/dist/runtime/shared/provider-accounts.d.ts +215 -0
  22. package/dist/runtime/shared/provider-accounts.js +255 -0
  23. package/dist/runtime/shared/provider-registry.d.ts +38 -0
  24. package/dist/runtime/shared/provider-registry.js +16 -0
  25. package/dist/runtime/shared/settings-types.d.ts +7 -0
  26. package/dist/runtime/vue/index.d.ts +2 -0
  27. package/dist/runtime/vue/index.js +2 -0
  28. package/dist/runtime/vue/providers-panel-model.d.ts +98 -5
  29. package/dist/runtime/vue/providers-panel-model.js +13 -1
  30. package/dist/runtime/vue/useProvidersPanel.d.ts +66 -5
  31. package/dist/runtime/vue/useProvidersPanel.js +417 -29
  32. package/package.json +2 -2
  33. package/src/runtime/components/ForgeProvidersPanel.vue +477 -78
  34. package/src/runtime/server/harness-settings.ts +165 -21
  35. package/src/runtime/server/index.ts +2 -0
  36. package/src/runtime/server/provider-service.ts +53 -1
  37. package/src/runtime/server/provider-write.ts +129 -15
  38. package/src/runtime/shared/data-zone.ts +172 -0
  39. package/src/runtime/shared/harness-providers.ts +77 -6
  40. package/src/runtime/shared/harnesses.ts +25 -0
  41. package/src/runtime/shared/provider-accounts.ts +526 -0
  42. package/src/runtime/shared/provider-registry.ts +58 -0
  43. package/src/runtime/shared/settings-types.ts +7 -0
  44. package/src/runtime/vue/index.ts +2 -0
  45. package/src/runtime/vue/providers-panel-model.ts +123 -5
  46. package/src/runtime/vue/useProvidersPanel.ts +586 -37
@@ -15,11 +15,21 @@
15
15
  */
16
16
  import { type ComputedRef, type Ref, type WritableComputedRef } from "vue";
17
17
  import { type EnvSettingsDocument } from "../shared/env-vars.js";
18
+ import { type ProviderSignInId, type ProviderSignInOption } from "../shared/provider-accounts.js";
18
19
  import { type AIProviderSurface } from "../shared/provider-registry.js";
19
20
  import { type ProvidersPanelTestResult } from "./providers-client.js";
20
- import { type ProvidersPanelEmit, type ProvidersPanelEntry, type ProvidersPanelForm, type ProvidersPanelPreset, type ProvidersPanelProps, type ProvidersPanelRow } from "./providers-panel-model.js";
21
- export type { ProvidersPanelCredentialOption, ProvidersPanelEmit, ProvidersPanelEntry, ProvidersPanelForm, ProvidersPanelLayer, ProvidersPanelPreset, ProvidersPanelProps, ProvidersPanelRow, ProvidersPanelRowState, } from "./providers-panel-model.js";
22
- export { CREDENTIAL_ENTER_KEY, CREDENTIAL_OTHER_REF, CUSTOM_PRESET } from "./providers-panel-model.js";
21
+ import { type ProvidersPanelAzureForm, type ProvidersPanelDialogStep, type ProvidersPanelEmit, type ProvidersPanelEntry, type ProvidersPanelForm, type ProvidersPanelModelsForm, type ProvidersPanelModelsMode, type ProvidersPanelPreset, type ProvidersPanelProps, type ProvidersPanelRow } from "./providers-panel-model.js";
22
+ export type { ProvidersPanelAzureForm, ProvidersPanelCredentialOption, ProvidersPanelDialogStep, ProvidersPanelEmit, ProvidersPanelEntry, ProvidersPanelForm, ProvidersPanelLayer, ProvidersPanelModelsForm, ProvidersPanelModelsMode, ProvidersPanelPreset, ProvidersPanelProps, ProvidersPanelRow, ProvidersPanelRowState, } from "./providers-panel-model.js";
23
+ export { AZURE_ACCOUNT, CREDENTIAL_ENTER_KEY, CREDENTIAL_OTHER_REF, CUSTOM_PRESET, providerModelChoices, providerModelsChip, } from "./providers-panel-model.js";
24
+ /** One parameter field of the add/edit dialog. */
25
+ export interface ProvidersPanelParamField {
26
+ key: string;
27
+ label: string;
28
+ /** The preset requires it. */
29
+ required: boolean;
30
+ /** Editable; expert-only parameters are read-only outside expert mode. */
31
+ editable: boolean;
32
+ }
23
33
  /** What both `ForgeProvidersPanel` variants bind to. */
24
34
  export interface ProvidersPanelState {
25
35
  /** The scope's entries, disabled ones included, in registry order. */
@@ -51,13 +61,45 @@ export interface ProvidersPanelState {
51
61
  baseUrlPlaceholder: ComputedRef<string>;
52
62
  /** "Set value now" is offered: the scope has an `.env` route. */
53
63
  canSetValue: ComputedRef<boolean>;
54
- /** The dialog shows the env name and secret fields: adding, not editing. */
64
+ /** The dialog shows the env name and secret fields: the chosen sign-in takes a key. */
55
65
  showCredentialFields: ComputedRef<boolean>;
56
66
  idError: ComputedRef<string | null>;
67
+ /** Open the add dialog: on the library, or on `presetId`'s account step. */
57
68
  openAdd: (presetId?: string) => void;
58
69
  openEdit: (row: ProvidersPanelEntry) => void;
59
70
  selectPreset: (value: string) => void;
71
+ /** Create (Add) or save (Edit). Adding with an explicit client then tests what it created. */
60
72
  saveProvider: () => Promise<void>;
73
+ dialogStep: Ref<ProvidersPanelDialogStep>;
74
+ /** The library's presets, catalog order; the Azure OpenAI and Foundry presets sit behind the Azure card. */
75
+ libraryPresets: ComputedRef<ProvidersPanelPreset[]>;
76
+ /** Pick a library card: a preset id, {@link CUSTOM_PRESET} or {@link AZURE_ACCOUNT}. */
77
+ chooseLibrary: (value: string) => void;
78
+ /** From the account step of an add back to the library. */
79
+ backToLibrary: () => void;
80
+ /** The account step is the Microsoft Azure card. */
81
+ isAzureAccount: ComputedRef<boolean>;
82
+ /** "How do you sign in?": the kinds the chosen preset accepts (the reference form only in expert mode). */
83
+ signInOptions: ComputedRef<ProviderSignInOption[]>;
84
+ signInOption: ComputedRef<ProviderSignInOption | undefined>;
85
+ selectSignIn: (id: ProviderSignInId) => void;
86
+ /** The sign-in step is shown; editing an entry whose credential none of the options expresses keeps it as is. */
87
+ showSignIn: ComputedRef<boolean>;
88
+ /** The reference field is shown: the chosen sign-in is a typed reference. */
89
+ showReferenceField: ComputedRef<boolean>;
90
+ /** The variable a blank key name falls back to: the preset's (the Azure card: Azure OpenAI's). */
91
+ defaultEnvName: ComputedRef<string | undefined>;
92
+ /** Parameter fields of the chosen preset (required ones, plus any the edited entry holds). */
93
+ paramFields: ComputedRef<ProvidersPanelParamField[]>;
94
+ azureForm: ProvidersPanelAzureForm;
95
+ addDeploymentRow: () => void;
96
+ removeDeploymentRow: (index: number) => void;
97
+ /** Ids the last add created; the done step lists them with their test results. */
98
+ createdIds: Ref<string[]>;
99
+ /** Close the dialog from the done step. */
100
+ finishDialog: () => void;
101
+ /** "Renew" on a row: re-open its sign-in (the edit dialog, else the row's key or reference editor). */
102
+ openSignIn: (row: ProvidersPanelRow) => void;
61
103
  deleteTarget: Ref<ProvidersPanelEntry | null>;
62
104
  /** The confirmation dialog's `v-model`; closing it cancels. */
63
105
  deleteOpen: WritableComputedRef<boolean>;
@@ -77,6 +119,8 @@ export interface ProvidersPanelState {
77
119
  setEnabled: (row: ProvidersPanelRow, enabled: boolean) => Promise<void>;
78
120
  /** Delete the workspace patch of an inherited entry. */
79
121
  resetPatch: (row: ProvidersPanelRow) => Promise<void>;
122
+ /** "EU processing is on for this account": writes the entry's `eu_processing`. */
123
+ setEuProcessing: (row: ProvidersPanelRow, on: boolean) => Promise<void>;
80
124
  /** Row id with a write in flight. */
81
125
  rowBusy: Ref<string | null>;
82
126
  rowError: Ref<{
@@ -89,7 +133,7 @@ export interface ProvidersPanelState {
89
133
  testBusy: Ref<string | null>;
90
134
  /** The last test result per row id. */
91
135
  testResults: Record<string, ProvidersPanelTestResult>;
92
- testProvider: (row: ProvidersPanelEntry) => Promise<void>;
136
+ testProvider: (row: Pick<ProvidersPanelEntry, "id">) => Promise<void>;
93
137
  /** "Enter a key…" is offered: the scope has an editable `.env` route. */
94
138
  canEnterKey: ComputedRef<boolean>;
95
139
  /** Row id whose key editor is open. */
@@ -111,6 +155,23 @@ export interface ProvidersPanelState {
111
155
  openRefEditor: (row: ProvidersPanelRow) => void;
112
156
  cancelRefEditor: () => void;
113
157
  saveRefEditor: () => Promise<void>;
158
+ /** Row id whose model filter is open. */
159
+ modelsEditing: Ref<string | null>;
160
+ modelsForm: ProvidersPanelModelsForm;
161
+ /** The models offered: the entry's `model_map` ids, else what `client.models` lists. */
162
+ modelsKnown: Ref<string[]>;
163
+ modelsLoading: Ref<boolean>;
164
+ /** Why the entry's models could not be listed (the checklist then holds only allowed ids). */
165
+ modelsListMessage: Ref<string | null>;
166
+ /** The checklist after the search. */
167
+ modelChoices: ComputedRef<string[]>;
168
+ modelsError: Ref<string | null>;
169
+ openModelsEditor: (row: ProvidersPanelRow) => Promise<void>;
170
+ setModelsMode: (mode: ProvidersPanelModelsMode) => void;
171
+ toggleModel: (id: string, on: boolean) => void;
172
+ cancelModelsEditor: () => void;
173
+ /** Write `allowed_models`: `null` for All models, else the ticked ids in checklist order. */
174
+ saveModelsEditor: () => Promise<void>;
114
175
  envDocument: Ref<EnvSettingsDocument | null>;
115
176
  /** The environment document says the caller may write its layer. */
116
177
  envEditable: ComputedRef<boolean>;