@syncended/dsh-automations 0.4.0 → 0.5.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.
package/README.md CHANGED
@@ -59,8 +59,8 @@ dsh plugin --profile web remove @syncended/dsh-automations
59
59
  | Time zone | Search by city or region in the picker, or enter `UTC` / an IANA name such as `Europe/Berlin`. Current UTC offsets are shown; DST is handled by `cron-parser`. |
60
60
  | Project | Existing absolute directory. Its canonical filesystem identity becomes the Session cwd and `workspace-write` root. |
61
61
  | Prompt | The user message sent to a fresh Harness Agent. |
62
- | Provider / model | Leave both blank to resolve the current Harness default at dispatch time. Set both to pin a route. |
63
- | Reasoning effort | Optional adapter-owned value. |
62
+ | Provider / model | Choose a configured provider in the searchable picker or enter an unlisted adapter route, then choose or enter its model. Leave both blank to resolve the current Harness default at dispatch time. |
63
+ | Reasoning effort | Choose `Default` or an exact-model effort advertised by the adapter. If capability lookup is unavailable, common IDs are shown as advisory fallbacks; custom IDs remain editable and are validated when the run starts. |
64
64
  | Agent preset | Leave blank for the current Harness default, or select a specific composition. |
65
65
  | Permission preset | Bundles DSH sandbox and approval policies. Default: `workspace-write`. |
66
66
  | Timeout | Wall-clock run limit. Cancellation is cooperative through the Agent loop. |
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,KAAK,EAAiB,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAIrE,UAAU,UAAU;IAClB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CAChD;AA6FD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,GACjB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAsGvE"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,KAAK,EAAiB,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAIrE,UAAU,UAAU;IAClB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CAChD;AAqGD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,GACjB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CA4GvE"}
package/dist/http.js CHANGED
@@ -81,6 +81,13 @@ function segment(value, label) {
81
81
  throw new AutomationInputError(`${label} path segment is invalid`, 'INVALID_PATH', 400, { cause });
82
82
  }
83
83
  }
84
+ function requiredQueryString(url, name) {
85
+ const value = url.searchParams.get(name)?.trim();
86
+ if (value === undefined || value === '' || value.length > 512) {
87
+ throw new AutomationInputError(`${name} must be a non-empty string of at most 512 characters`);
88
+ }
89
+ return value;
90
+ }
84
91
  function parseLimit(url) {
85
92
  const raw = url.searchParams.get('limit');
86
93
  if (raw === null)
@@ -113,6 +120,13 @@ export function createAutomationHttpHandler(service, prefix, logger) {
113
120
  return methodNotAllowed(response, ['GET']);
114
121
  return sendJson(response, 200, await service.metadata());
115
122
  }
123
+ if (parts.length === 2 && parts[0] === 'meta' && parts[1] === 'model') {
124
+ if (method !== 'GET')
125
+ return methodNotAllowed(response, ['GET']);
126
+ const provider = requiredQueryString(url, 'provider');
127
+ const model = requiredQueryString(url, 'model');
128
+ return sendJson(response, 200, await service.modelMetadata(provider, model));
129
+ }
116
130
  if (parts.length === 1 && parts[0] === 'jobs') {
117
131
  if (method !== 'POST')
118
132
  return methodNotAllowed(response, ['POST']);
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAG/G,MAAM,cAAc,GAAG,SAAS,CAAA;AAMhC,SAAS,QAAQ,CAAC,QAAwB,EAAE,MAAc,EAAE,KAAc;IACxE,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAA;IACzC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE;QACzB,cAAc,EAAE,iCAAiC;QACjD,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QACzC,eAAe,EAAE,UAAU;QAC3B,wBAAwB,EAAE,SAAS;KACpC,CAAC,CAAA;IACF,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC;AAED,SAAS,SAAS,CAAC,GAAkB;IACnC,MAAM,OAAO,GAA4B,EAAE,GAAG,GAAG,EAAE,CAAA;IACnD,OAAO,OAAO,CAAC,QAAQ,CAAA;IACvB,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAwB,EAAE,OAAiB;IACnE,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/C,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,KAAK,EAAE;YACL,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,sBAAsB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACpD;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAwB;IAC7C,IAAI,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,KAAK,GAAG,EAAE,CAAC;QACvD,MAAM,IAAI,oBAAoB,CAAC,oCAAoC,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAA;IAC7F,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;IACzD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,oBAAoB,CAAC,oCAAoC,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAA;IACrG,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACnD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QAC3D,MAAM,IAAI,oBAAoB,CAAC,0CAA0C,EAAE,cAAc,EAAE,GAAG,CAAC,CAAA;IACjG,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,UAAU,CAAA;QACd,IAAI,CAAC;YACH,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAA;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,oBAAoB,CAAC,uBAAuB,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QACzF,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC1E,MAAM,IAAI,oBAAoB,CAAC,wCAAwC,EAAE,cAAc,EAAE,GAAG,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,OAAwB;IAC9C,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClE,IAAI,IAAI,MAAM,CAAC,MAAM,CAAA;QACrB,IAAI,IAAI,GAAG,cAAc;YAAE,MAAM,IAAI,oBAAoB,CAAC,2BAA2B,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAA;QAC7G,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAClC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,oBAAoB,CAAC,gCAAgC,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAClG,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,KAAa;IAC3C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACzC,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACpF,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,oBAAoB,CAAC,GAAG,KAAK,0BAA0B,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IACpG,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAQ,EAAE,IAAY;IACjD,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAA;IAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC9D,MAAM,IAAI,oBAAoB,CAAC,GAAG,IAAI,uDAAuD,CAAC,CAAA;IAChG,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,UAAU,CAAC,GAAQ;IAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,GAAG,CAAA;IAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACzB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;QAC/D,MAAM,IAAI,oBAAoB,CAAC,6CAA6C,CAAC,CAAA;IAC/E,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAA6B,EAC7B,MAAc,EACd,MAAkB;IAElB,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;YAC5E,MAAM,KAAK,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAA;YAEtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,MAAM,KAAK,KAAK;oBAAE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;gBAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;gBAClD,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;oBAC7B,GAAG,QAAQ;oBACX,iGAAiG;oBACjG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;iBACnC,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC9C,IAAI,MAAM,KAAK,KAAK;oBAAE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;gBAChE,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC1D,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;gBACtE,IAAI,MAAM,KAAK,KAAK;oBAAE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;gBAChE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;gBACrD,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;gBAC/C,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;YAC9E,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC9C,IAAI,MAAM,KAAK,MAAM;oBAAE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;gBAClE,aAAa,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;gBACtD,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;gBACpC,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBACzD,MAAM,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,CAAA;gBACvD,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;oBAC/B,IAAI,EAAE,IAAI,CAAC,IAAa;oBACxB,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;iBAClD,CAAC,CAAA;gBACF,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;YACrC,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC7C,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,QAAQ,CAAC,CAAA;gBACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBAC3C,aAAa,CAAC,OAAO,CAAC,CAAA;oBACtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;oBACtD,cAAc,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAA;oBACjD,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;oBACnE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE;wBACnC,IAAI,EAAE,IAAI,CAAC,IAAa;wBACxB,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;qBAC9D,CAAC,CAAA;oBACF,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;gBACrC,CAAC;gBACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC9C,aAAa,CAAC,OAAO,CAAC,CAAA;oBACtB,6FAA6F;oBAC7F,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;oBACtD,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;oBACxB,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBACxB,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAA;oBACxD,QAAQ,CAAC,GAAG,EAAE,CAAA;oBACd,OAAM;gBACR,CAAC;gBACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC7C,IAAI,MAAM,KAAK,MAAM;wBAAE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;oBAClE,aAAa,CAAC,OAAO,CAAC,CAAA;oBACtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;oBACtD,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;oBACxB,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACtE,CAAC;gBACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACjD,IAAI,MAAM,KAAK,MAAM;wBAAE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;oBAClE,aAAa,CAAC,OAAO,CAAC,CAAA;oBACtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;oBACtD,cAAc,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAA;oBACpD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;wBAAE,MAAM,IAAI,oBAAoB,CAAC,2BAA2B,CAAC,CAAA;oBAClG,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;oBACnE,OAAO,QAAQ,CACb,QAAQ,EACR,GAAG,EACH,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAC5D,CAAA;gBACH,CAAC;gBACD,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iCAAiC,EAAE,EAAE,CAAC,CAAA;YAC9G,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACvE,IAAI,MAAM,KAAK,MAAM;oBAAE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;gBAClE,aAAa,CAAC,OAAO,CAAC,CAAA;gBACtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;gBACtD,cAAc,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAChC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACjE,MAAM,IAAI,oBAAoB,CAAC,yBAAyB,CAAC,CAAA;gBAC3D,CAAC;gBACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,QAAQ,CAAC,CAAA;gBAC1C,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACrF,CAAC;YACD,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iCAAiC,EAAE,EAAE,CAAC,CAAA;QAC9G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;YACzE,MAAM,IAAI,GAAG,KAAK,YAAY,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAA;YAClF,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,IAAI,MAAM,IAAI,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,OAAO,CAAC,CAAA;YAC/E,MAAM,aAAa,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAA;YAC5E,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,CAAC,CAAA;;gBAC7F,QAAQ,CAAC,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;QAC5E,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Context, Service } from '@deepseek-ai/cordis';
2
2
  import z from '@deepseek-ai/schemastery';
3
- import { type AutomationExecutor, type AutomationJob, type AutomationMeta, type AutomationRun, type AutomationServiceApi, type AutomationServiceConfig, type AutomationSnapshot, type CreateAutomationJobRequest, type UpdateAutomationJobRequest } from './types.js';
3
+ import { type AutomationExecutor, type AutomationJob, type AutomationMeta, type AutomationModelMeta, type AutomationRun, type AutomationServiceApi, type AutomationServiceConfig, type AutomationSnapshot, type CreateAutomationJobRequest, type UpdateAutomationJobRequest } from './types.js';
4
4
  export * from './cron.js';
5
5
  export * from './project-policy.js';
6
6
  export * from './scheduler.js';
@@ -62,6 +62,7 @@ export declare class AutomationService extends Service implements AutomationServ
62
62
  cancel(runId: string, reason?: string): Promise<AutomationRun>;
63
63
  registerExecutor(executor: AutomationExecutor): () => void;
64
64
  metadata(): Promise<AutomationMeta>;
65
+ modelMetadata(provider: string, model: string): Promise<AutomationModelMeta>;
65
66
  private prepareSpec;
66
67
  }
67
68
  export default AutomationService;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAcxC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAElB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAChC,MAAM,YAAY,CAAA;AAMnB,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAE/B,eAAO,MAAM,IAAI,gBAAgB,CAAA;AAejC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;GAQjB,CAAA;AAEF,6DAA6D;AAC7D,qBAAa,iBAAkB,SAAQ,OAAQ,YAAW,oBAAoB;IAC5E,MAAM,CAAC,MAAM;;;;;;;;;;;;;;;;QAAS;IACtB,MAAM,CAAC,MAAM,WAQZ;IAED,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,aAAa,CAA2B;gBAEpC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,uBAAuB;IAclD,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;IA+B3E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAItC,MAAM,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;IAKjE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;IAKnF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1F,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI3C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI9D,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAIpD,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;YAiC3B,WAAW;CAkD1B;AAED,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAcxC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAElB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAChC,MAAM,YAAY,CAAA;AAMnB,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAE/B,eAAO,MAAM,IAAI,gBAAgB,CAAA;AAejC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;GAQjB,CAAA;AAEF,6DAA6D;AAC7D,qBAAa,iBAAkB,SAAQ,OAAQ,YAAW,oBAAoB;IAC5E,MAAM,CAAC,MAAM;;;;;;;;;;;;;;;;QAAS;IACtB,MAAM,CAAC,MAAM,WAQZ;IAED,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,aAAa,CAA2B;gBAEpC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,uBAAuB;IAclD,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;IA+B3E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAItC,MAAM,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;IAKjE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;IAKnF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1F,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI3C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI9D,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAIpD,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAsCnC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAuBpE,WAAW;CAkD1B;AAED,eAAe,iBAAiB,CAAA"}
package/dist/index.js CHANGED
@@ -127,13 +127,18 @@ export class AutomationService extends Service {
127
127
  const selection = this.ctx.agentDefaultModel.currentSelection();
128
128
  const providers = await Promise.all(this.ctx.llm.listProviders().map(async (provider) => {
129
129
  try {
130
- const models = await this.ctx.llm.listModels(provider.id);
131
- return { id: provider.id, models: models.map((model) => model.id) };
130
+ const listedModels = await this.ctx.llm.listModels(provider.id);
131
+ const models = listedModels.map((model) => ({
132
+ id: model.id,
133
+ name: model.name,
134
+ ...(model.description === undefined ? {} : { description: model.description }),
135
+ }));
136
+ return { id: provider.id, name: provider.name, models };
132
137
  }
133
138
  catch (error) {
134
139
  this.ctx.logger.warn('automations: could not list models for provider %s', provider.id);
135
140
  this.ctx.logger.warn(error instanceof Error ? error.stack ?? error.message : String(error));
136
- return { id: provider.id, models: [] };
141
+ return { id: provider.id, name: provider.name, models: [] };
137
142
  }
138
143
  }));
139
144
  const agentPresets = (await this.ctx.agentPresets.list()).map((preset) => ({
@@ -154,6 +159,28 @@ export class AutomationService extends Service {
154
159
  agentPresets,
155
160
  };
156
161
  }
162
+ async modelMetadata(provider, model) {
163
+ const resolved = await this.ctx.llm.resolveModelInfo(provider, model);
164
+ const reasoning = resolved.reasoning === undefined
165
+ ? undefined
166
+ : {
167
+ efforts: resolved.reasoning.efforts.map((effort) => ({
168
+ id: String(effort.id),
169
+ name: effort.name,
170
+ ...(effort.description === undefined ? {} : { description: effort.description }),
171
+ })),
172
+ ...(resolved.reasoning.defaultEffort === undefined
173
+ ? {}
174
+ : { defaultEffort: String(resolved.reasoning.defaultEffort) }),
175
+ };
176
+ return {
177
+ provider: resolved.provider,
178
+ id: resolved.id,
179
+ name: resolved.name,
180
+ ...(resolved.description === undefined ? {} : { description: resolved.description }),
181
+ ...(reasoning === undefined ? {} : { reasoning }),
182
+ };
183
+ }
157
184
  async prepareSpec(input) {
158
185
  let spec;
159
186
  try {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -129,6 +129,20 @@ export interface AutomationServiceConfig {
129
129
  maxOutputChars?: number;
130
130
  allowedProjectRoots?: string[];
131
131
  }
132
+ export interface AutomationModelMeta {
133
+ provider: string;
134
+ id: string;
135
+ name: string;
136
+ description?: string;
137
+ reasoning?: {
138
+ efforts: Array<{
139
+ id: string;
140
+ name: string;
141
+ description?: string;
142
+ }>;
143
+ defaultEffort?: string;
144
+ };
145
+ }
132
146
  export interface AutomationMeta {
133
147
  defaultModel: {
134
148
  provider: string;
@@ -137,7 +151,12 @@ export interface AutomationMeta {
137
151
  };
138
152
  providers: Array<{
139
153
  id: string;
140
- models: string[];
154
+ name: string;
155
+ models: Array<{
156
+ id: string;
157
+ name: string;
158
+ description?: string;
159
+ }>;
141
160
  }>;
142
161
  permissionPresets: string[];
143
162
  agentPresets: Array<{
@@ -155,6 +174,7 @@ export interface AutomationServiceApi {
155
174
  trigger(id: string): Promise<AutomationRun>;
156
175
  cancel(runId: string, reason?: string): Promise<AutomationRun>;
157
176
  metadata(): Promise<AutomationMeta>;
177
+ modelMetadata(provider: string, model: string): Promise<AutomationModelMeta>;
158
178
  registerExecutor(executor: AutomationExecutor): () => void;
159
179
  }
160
180
  declare module '@deepseek-ai/cordis' {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/lib/client.js CHANGED
@@ -28,8 +28,8 @@ window.__ModuleLoader__.load({
28
28
  IconPlayOutline16,
29
29
  IconPlusOutline16,
30
30
  IconRefreshOutline16,
31
- IconSearchOutline16,
32
31
  IconSettingsOutline16,
32
+ IconThinkOutline14,
33
33
  IconTrashOutline16,
34
34
  IconWarningOutline16,
35
35
  } = require("@deepseek-ai/dsh-client-ui-primitives");
@@ -123,7 +123,15 @@ window.__ModuleLoader__.load({
123
123
  };
124
124
  });
125
125
 
126
- const REASONING_EFFORTS = ["low", "medium", "high"];
126
+ const MODEL_METADATA_CACHE = new Map();
127
+ const COMMON_EFFORT_FALLBACKS = [
128
+ { id: "off", name: "Off", description: "Disable extended reasoning when the adapter supports it." },
129
+ { id: "minimal", name: "Minimal", description: "Use the lightest available reasoning level." },
130
+ { id: "low", name: "Low", description: "Use a lower-cost reasoning level." },
131
+ { id: "medium", name: "Medium", description: "Use a balanced reasoning level." },
132
+ { id: "high", name: "High", description: "Use a deeper reasoning level." },
133
+ { id: "max", name: "Max", description: "Use the strongest available reasoning level." },
134
+ ];
127
135
  const OVERLAP_OPTIONS = [
128
136
  { value: "skip", label: "skip", hint: "Skip the run if a previous run is still active." },
129
137
  { value: "queue", label: "queue", hint: "Defer the run until the previous run finishes." },
@@ -278,6 +286,34 @@ window.__ModuleLoader__.load({
278
286
  .map((entry) => entry.zone);
279
287
  }
280
288
 
289
+ function comboboxSearchResults(options, query, limit = 30) {
290
+ const rawQuery = String(query || "").trim().toLowerCase();
291
+ if (rawQuery === "") return options.slice(0, limit);
292
+ const normalizedQuery = timezoneSearchKey(rawQuery);
293
+ if (normalizedQuery === "") return [];
294
+ const terms = normalizedQuery.split(" ").filter(Boolean);
295
+ return options
296
+ .map((option, order) => {
297
+ const identifier = String(option.value ?? option.id).toLowerCase();
298
+ const label = timezoneSearchKey(option.label || "");
299
+ const search = timezoneSearchKey(
300
+ [option.label, option.detail, option.value, ...(option.aliases || [])].filter(Boolean).join(" "),
301
+ );
302
+ if (!terms.every((term) => search.includes(term))) return null;
303
+ let score = option.custom ? 6 : 5;
304
+ if (!option.custom && identifier === rawQuery) score = 0;
305
+ else if (!option.custom && label === normalizedQuery) score = 1;
306
+ else if (!option.custom && label.startsWith(normalizedQuery)) score = 2;
307
+ else if (!option.custom && identifier.split(/[\/:._-]+/).some((segment) => segment.startsWith(rawQuery))) score = 3;
308
+ else if (!option.custom && search.startsWith(normalizedQuery)) score = 4;
309
+ return { option, order, score };
310
+ })
311
+ .filter(Boolean)
312
+ .sort((left, right) => left.score - right.score || left.order - right.order)
313
+ .slice(0, limit)
314
+ .map((entry) => entry.option);
315
+ }
316
+
281
317
  function timezoneNavigationIndex(key, current, resultCount, reopening) {
282
318
  if (resultCount === 0) return -1;
283
319
  if (reopening) return key === "ArrowDown" ? 0 : resultCount - 1;
@@ -361,6 +397,7 @@ window.__ModuleLoader__.load({
361
397
  try {
362
398
  response = await fetch(API_PREFIX + path, Object.assign({}, options, { headers }));
363
399
  } catch (error) {
400
+ if (error && error.name === "AbortError") throw error;
364
401
  throw new Error("Network error: " + errMessage(error));
365
402
  }
366
403
  const text = await response.text();
@@ -604,7 +641,7 @@ window.__ModuleLoader__.load({
604
641
  );
605
642
  }
606
643
 
607
- function useTimeZonePopoverLayout(open, anchorRef, panelRef) {
644
+ function useComboboxPopoverLayout(open, anchorRef, panelRef) {
608
645
  const [layout, setLayout] = useState(null);
609
646
  useEffect(() => {
610
647
  if (!open) {
@@ -658,7 +695,29 @@ window.__ModuleLoader__.load({
658
695
  return layout;
659
696
  }
660
697
 
661
- function TimeZonePicker({ id, value, onChange }) {
698
+ function EditableCombobox(props) {
699
+ const {
700
+ id,
701
+ value,
702
+ onChange,
703
+ optionsForQuery,
704
+ selectedId,
705
+ commitExactValue,
706
+ placeholder,
707
+ Icon,
708
+ listboxLabel,
709
+ initialTitle,
710
+ searchTitle,
711
+ emptyText,
712
+ hintText,
713
+ resultNoun,
714
+ invalidMessage,
715
+ invalid = false,
716
+ disabled = false,
717
+ resumeSearch: resumeSearchProp,
718
+ panelNotice = null,
719
+ onOpen,
720
+ } = props;
662
721
  const [open, setOpen] = useState(false);
663
722
  const [searching, setSearching] = useState(false);
664
723
  const [activeIndex, setActiveIndex] = useState(-1);
@@ -666,14 +725,14 @@ window.__ModuleLoader__.load({
666
725
  const anchorRef = useRef(null);
667
726
  const inputRef = useRef(null);
668
727
  const panelRef = useRef(null);
669
- const offsetCacheRef = useRef(new Map());
670
728
  const listboxId = id + "-options";
671
729
  const query = searching ? value : "";
672
- const results = timezoneSearchResults(query, value);
730
+ const results = optionsForQuery(query);
673
731
  const active = activeIndex >= 0 && activeIndex < results.length ? activeIndex : -1;
674
- const selected = canonicalTimezone(value);
675
- const resumeSearch = value.trim() !== "" && selected === null;
676
- const popoverLayout = useTimeZonePopoverLayout(open, anchorRef, panelRef);
732
+ const resumeSearch = resumeSearchProp === undefined
733
+ ? value.trim() !== "" && selectedId === null
734
+ : resumeSearchProp;
735
+ const popoverLayout = useComboboxPopoverLayout(open, anchorRef, panelRef);
677
736
  const close = () => {
678
737
  setOpen(false);
679
738
  setSearching(false);
@@ -681,12 +740,13 @@ window.__ModuleLoader__.load({
681
740
  setAnnouncement("");
682
741
  };
683
742
  const show = () => {
684
- offsetCacheRef.current.clear();
685
743
  setAnnouncement("");
686
744
  setOpen(true);
745
+ onOpen?.();
687
746
  };
688
- const choose = (zone) => {
689
- onChange(timezonePreferredValue(zone));
747
+ const choose = (option) => {
748
+ if (option.disabled) return;
749
+ if (option.value !== value) onChange(option.value);
690
750
  close();
691
751
  requestAnimationFrame(() => inputRef.current?.focus());
692
752
  };
@@ -708,8 +768,8 @@ window.__ModuleLoader__.load({
708
768
  const timer = window.setTimeout(() => {
709
769
  setAnnouncement(
710
770
  results.length === 0
711
- ? "No matching time zones."
712
- : results.length + (results.length === 1 ? " time zone suggestion available." : " time zone suggestions available."),
771
+ ? "No matching " + resultNoun + "s."
772
+ : results.length + " " + resultNoun + (results.length === 1 ? " suggestion available." : " suggestions available."),
713
773
  );
714
774
  }, 250);
715
775
  return () => window.clearTimeout(timer);
@@ -724,7 +784,7 @@ window.__ModuleLoader__.load({
724
784
  if (event.key === "ArrowDown" || event.key === "ArrowUp") {
725
785
  event.preventDefault();
726
786
  const navigationResults = !open && resumeSearch
727
- ? timezoneSearchResults(value, value)
787
+ ? optionsForQuery(value)
728
788
  : results;
729
789
  if (!open) {
730
790
  setSearching(resumeSearch);
@@ -745,9 +805,9 @@ window.__ModuleLoader__.load({
745
805
  choose(results[active]);
746
806
  return;
747
807
  }
748
- const canonical = canonicalTimezone(value);
749
- if (canonical) choose(canonical);
750
- else setAnnouncement("Enter a valid IANA time zone, such as Europe/Berlin.");
808
+ const exact = commitExactValue(value);
809
+ if (exact !== null) choose({ id: exact, value: exact });
810
+ else setAnnouncement(invalidMessage);
751
811
  return;
752
812
  }
753
813
  if (event.key === "Escape" && open) {
@@ -765,7 +825,7 @@ window.__ModuleLoader__.load({
765
825
  "div",
766
826
  {
767
827
  ref: panelRef,
768
- className: "dsh-auto-timezone-popover",
828
+ className: "dsh-auto-combobox-popover",
769
829
  style: popoverLayout
770
830
  ? {
771
831
  left: popoverLayout.left,
@@ -775,62 +835,74 @@ window.__ModuleLoader__.load({
775
835
  }
776
836
  : { left: 12, top: 12, width: 320, visibility: "hidden" },
777
837
  "data-side": popoverLayout?.side,
778
- "data-dsh-auto-timezone-popover": "true",
838
+ "data-dsh-auto-combobox-popover": "true",
779
839
  },
780
840
  h(
781
841
  "div",
782
- { className: "dsh-auto-timezone-popover-title" },
783
- searching && query.trim() !== "" ? "Matching time zones" : "Suggested time zones",
842
+ { className: "dsh-auto-combobox-popover-title" },
843
+ searching && query.trim() !== "" ? searchTitle : initialTitle,
784
844
  ),
845
+ panelNotice
846
+ ? h("div", { className: "dsh-auto-combobox-notice", role: "status" }, panelNotice)
847
+ : null,
785
848
  h(
786
849
  "div",
787
850
  {
788
851
  id: listboxId,
789
- className: "dsh-auto-timezone-list",
852
+ className: "dsh-auto-combobox-list",
790
853
  role: "listbox",
791
- "aria-label": "Time zones",
854
+ "aria-label": listboxLabel,
792
855
  },
793
856
  results.length > 0
794
- ? results.map((zone, index) => {
795
- const copy = timezoneOptionPresentation(zone, offsetCacheRef.current);
857
+ ? results.map((option, index) => {
796
858
  const optionId = listboxId + "-option-" + index;
859
+ const OptionIcon = option.Icon || Icon;
860
+ const isSelected = selectedId === option.id;
797
861
  return h(
798
862
  "div",
799
863
  {
800
- key: zone,
864
+ key: option.id,
801
865
  id: optionId,
802
- className: "dsh-auto-timezone-option",
866
+ className: "dsh-auto-combobox-option",
803
867
  role: "option",
804
- "aria-selected": selected === zone,
868
+ "aria-selected": isSelected,
869
+ "aria-disabled": option.disabled ? "true" : undefined,
805
870
  "data-active": active === index ? "true" : undefined,
806
- onPointerMove: () => setActiveIndex(index),
871
+ "data-disabled": option.disabled ? "true" : undefined,
872
+ onPointerMove: () => {
873
+ if (!option.disabled) setActiveIndex(index);
874
+ },
807
875
  onPointerDown: (event) => event.preventDefault(),
808
- onClick: () => choose(zone),
876
+ onClick: () => choose(option),
809
877
  },
810
- h("span", { className: "dsh-auto-timezone-option-icon", "aria-hidden": "true" }, h(IconGlobeOutline14)),
878
+ OptionIcon
879
+ ? h("span", { className: "dsh-auto-combobox-option-icon", "aria-hidden": "true" }, h(OptionIcon))
880
+ : null,
811
881
  h(
812
882
  "span",
813
883
  { className: "dsh-auto-picker-item-copy" },
814
- h("span", { className: "dsh-auto-picker-item-label" }, copy.label),
815
- h("span", { className: "dsh-auto-picker-item-detail" }, copy.detail),
884
+ h("span", { className: "dsh-auto-picker-item-label" }, option.label),
885
+ option.detail
886
+ ? h("span", { className: "dsh-auto-picker-item-detail" }, option.detail)
887
+ : null,
816
888
  ),
817
- selected === zone
818
- ? h("span", { className: "dsh-auto-timezone-option-check", "aria-hidden": "true" }, h(IconCheckOutline16))
889
+ isSelected
890
+ ? h("span", { className: "dsh-auto-combobox-option-check", "aria-hidden": "true" }, h(IconCheckOutline16))
819
891
  : null,
820
892
  );
821
893
  })
822
894
  : h(
823
895
  "div",
824
896
  {
825
- className: "dsh-auto-timezone-empty",
897
+ className: "dsh-auto-combobox-empty",
826
898
  role: "option",
827
899
  "aria-disabled": "true",
828
900
  "aria-selected": false,
829
901
  },
830
- "No matching time zones. You can still enter a recognized IANA time zone, such as Europe/Berlin.",
902
+ emptyText,
831
903
  ),
832
904
  ),
833
- h("p", { className: "dsh-auto-timezone-popover-hint" }, "Type a city, region, or IANA time zone."),
905
+ hintText ? h("p", { className: "dsh-auto-combobox-popover-hint" }, hintText) : null,
834
906
  )
835
907
  : null;
836
908
 
@@ -841,9 +913,10 @@ window.__ModuleLoader__.load({
841
913
  "span",
842
914
  {
843
915
  ref: anchorRef,
844
- className: "dsh-auto-timezone-control",
916
+ className: "dsh-auto-combobox-control" + (Icon ? "" : " dsh-auto-combobox-control-no-icon"),
845
917
  "data-open": open ? "true" : undefined,
846
918
  onPointerDown: (event) => {
919
+ if (disabled) return;
847
920
  if (event.target === inputRef.current) return;
848
921
  event.preventDefault();
849
922
  if (open) close();
@@ -857,15 +930,18 @@ window.__ModuleLoader__.load({
857
930
  }
858
931
  },
859
932
  },
860
- h("span", { className: "dsh-auto-timezone-control-icon", "aria-hidden": "true" }, h(IconGlobeOutline14)),
933
+ Icon
934
+ ? h("span", { className: "dsh-auto-combobox-control-icon", "aria-hidden": "true" }, h(Icon))
935
+ : null,
861
936
  h("input", {
862
937
  ref: inputRef,
863
938
  id,
864
- className: "dsh-auto-timezone-input",
939
+ className: "dsh-auto-combobox-input",
865
940
  type: "text",
866
941
  role: "combobox",
867
942
  value,
868
- placeholder: "Search city or time zone",
943
+ placeholder,
944
+ disabled,
869
945
  autoComplete: "off",
870
946
  spellCheck: false,
871
947
  "aria-autocomplete": "list",
@@ -873,7 +949,7 @@ window.__ModuleLoader__.load({
873
949
  "aria-expanded": open,
874
950
  "aria-controls": open ? listboxId : undefined,
875
951
  "aria-activedescendant": open && active >= 0 ? listboxId + "-option-" + active : undefined,
876
- "aria-invalid": !open && value.trim() !== "" && selected === null ? "true" : undefined,
952
+ "aria-invalid": !open && invalid ? "true" : undefined,
877
953
  onFocus: (event) => {
878
954
  setSearching(resumeSearch);
879
955
  setActiveIndex(-1);
@@ -886,6 +962,11 @@ window.__ModuleLoader__.load({
886
962
  setActiveIndex(-1);
887
963
  show();
888
964
  },
965
+ onBlur: (event) => {
966
+ const next = event.relatedTarget;
967
+ if (next instanceof Node && (anchorRef.current?.contains(next) || panelRef.current?.contains(next))) return;
968
+ close();
969
+ },
889
970
  onChange: (event) => {
890
971
  setSearching(true);
891
972
  setActiveIndex(0);
@@ -897,7 +978,7 @@ window.__ModuleLoader__.load({
897
978
  h(
898
979
  "span",
899
980
  {
900
- className: "dsh-auto-timezone-chevron" + (open ? " dsh-auto-timezone-chevron-open" : ""),
981
+ className: "dsh-auto-combobox-chevron" + (open ? " dsh-auto-combobox-chevron-open" : ""),
901
982
  "aria-hidden": "true",
902
983
  },
903
984
  h(IconChevronDownOutline14),
@@ -908,6 +989,255 @@ window.__ModuleLoader__.load({
908
989
  );
909
990
  }
910
991
 
992
+ function TimeZonePicker({ id, value, onChange }) {
993
+ const offsetCacheRef = useRef(new Map());
994
+ const selected = canonicalTimezone(value);
995
+ const optionsForQuery = (query) => timezoneSearchResults(query, value).map((zone) => {
996
+ const copy = timezoneOptionPresentation(zone, offsetCacheRef.current);
997
+ return {
998
+ id: zone,
999
+ value: timezonePreferredValue(zone),
1000
+ label: copy.label,
1001
+ detail: copy.detail,
1002
+ };
1003
+ });
1004
+ return h(EditableCombobox, {
1005
+ id,
1006
+ value,
1007
+ onChange,
1008
+ optionsForQuery,
1009
+ selectedId: selected,
1010
+ commitExactValue: (raw) => {
1011
+ const canonical = canonicalTimezone(raw);
1012
+ return canonical ? timezonePreferredValue(canonical) : null;
1013
+ },
1014
+ placeholder: "Search city or time zone",
1015
+ Icon: IconGlobeOutline14,
1016
+ listboxLabel: "Time zones",
1017
+ initialTitle: "Suggested time zones",
1018
+ searchTitle: "Matching time zones",
1019
+ emptyText: "No matching time zones. You can still enter a recognized IANA time zone, such as Europe/Berlin.",
1020
+ hintText: "Type a city, region, or IANA time zone.",
1021
+ resultNoun: "time zone",
1022
+ invalidMessage: "Enter a valid IANA time zone, such as Europe/Berlin.",
1023
+ invalid: value.trim() !== "" && selected === null,
1024
+ resumeSearch: value.trim() !== "" && selected === null,
1025
+ onOpen: () => offsetCacheRef.current.clear(),
1026
+ });
1027
+ }
1028
+
1029
+ function providerFallbackName(id) {
1030
+ return humanizePresetId(id)
1031
+ .replace(/^Openai\b/, "OpenAI")
1032
+ .replace(/^Deepseek\b/, "DeepSeek");
1033
+ }
1034
+
1035
+ function normalizedProviders(providers) {
1036
+ return (Array.isArray(providers) ? providers : [])
1037
+ .filter((provider) => provider && typeof provider.id === "string" && provider.id !== "")
1038
+ .map((provider) => ({
1039
+ id: provider.id,
1040
+ name: typeof provider.name === "string" && provider.name !== "" ? provider.name : providerFallbackName(provider.id),
1041
+ models: (Array.isArray(provider.models) ? provider.models : [])
1042
+ .map((model) => typeof model === "string"
1043
+ ? { id: model, name: model }
1044
+ : model && typeof model.id === "string"
1045
+ ? {
1046
+ id: model.id,
1047
+ name: typeof model.name === "string" && model.name !== "" ? model.name : model.id,
1048
+ ...(typeof model.description === "string" ? { description: model.description } : {}),
1049
+ }
1050
+ : null)
1051
+ .filter(Boolean),
1052
+ }));
1053
+ }
1054
+
1055
+ function ProviderPicker({ id, value, providers, defaultModel, onChange }) {
1056
+ const catalog = normalizedProviders(providers);
1057
+ const known = value === "" || catalog.some((provider) => provider.id === value);
1058
+ const options = [
1059
+ {
1060
+ id: "",
1061
+ value: "",
1062
+ label: "Harness default",
1063
+ detail: defaultModel && defaultModel.provider && defaultModel.model
1064
+ ? "Use " + defaultModel.provider + " / " + defaultModel.model + "."
1065
+ : "Resolve the current Harness provider at run time.",
1066
+ Icon: IconSettingsOutline16,
1067
+ },
1068
+ ...catalog.map((provider) => ({
1069
+ id: provider.id,
1070
+ value: provider.id,
1071
+ label: provider.name,
1072
+ detail: (provider.name === provider.id ? "Provider route" : provider.id)
1073
+ + " · " + provider.models.length + (provider.models.length === 1 ? " model" : " models"),
1074
+ aliases: [provider.id],
1075
+ Icon: IconSettingsOutline16,
1076
+ })),
1077
+ ...(value.trim() !== "" && !known
1078
+ ? [{
1079
+ id: "custom-provider:" + value,
1080
+ value,
1081
+ label: value,
1082
+ detail: "Custom provider route · Press Enter to keep this value.",
1083
+ custom: true,
1084
+ Icon: IconSettingsOutline16,
1085
+ }]
1086
+ : []),
1087
+ ];
1088
+ return h(EditableCombobox, {
1089
+ id,
1090
+ value,
1091
+ onChange,
1092
+ optionsForQuery: (query) => comboboxSearchResults(options, query),
1093
+ selectedId: value === "" ? "" : known ? value : "custom-provider:" + value,
1094
+ commitExactValue: (raw) => raw.trim(),
1095
+ placeholder: "Harness default",
1096
+ Icon: IconSettingsOutline16,
1097
+ listboxLabel: "Providers",
1098
+ initialTitle: "Available providers",
1099
+ searchTitle: "Matching providers",
1100
+ emptyText: "No matching providers. Press Enter to keep this custom provider route.",
1101
+ hintText: "Choose a configured provider or enter an adapter-supported route.",
1102
+ resultNoun: "provider",
1103
+ invalidMessage: "Enter a provider route.",
1104
+ resumeSearch: value.trim() !== "" && !known,
1105
+ });
1106
+ }
1107
+
1108
+ function useExactModelMetadata(provider, model) {
1109
+ const cacheKey = provider && model ? provider + "\u0000" + model : "";
1110
+ const [state, setState] = useState(() => {
1111
+ const cached = cacheKey ? MODEL_METADATA_CACHE.get(cacheKey) : null;
1112
+ return cached
1113
+ ? { key: cacheKey, status: "ready", data: cached, error: null }
1114
+ : { key: cacheKey, status: cacheKey ? "loading" : "idle", data: null, error: null };
1115
+ });
1116
+ useEffect(() => {
1117
+ if (!cacheKey) {
1118
+ setState({ key: "", status: "idle", data: null, error: null });
1119
+ return undefined;
1120
+ }
1121
+ const cached = MODEL_METADATA_CACHE.get(cacheKey);
1122
+ if (cached) {
1123
+ setState({ key: cacheKey, status: "ready", data: cached, error: null });
1124
+ return undefined;
1125
+ }
1126
+ const controller = new AbortController();
1127
+ let active = true;
1128
+ setState({ key: cacheKey, status: "loading", data: null, error: null });
1129
+ const timer = window.setTimeout(() => {
1130
+ apiFetch(
1131
+ "/meta/model?provider=" + encodeURIComponent(provider) + "&model=" + encodeURIComponent(model),
1132
+ { signal: controller.signal },
1133
+ ).then((data) => {
1134
+ MODEL_METADATA_CACHE.set(cacheKey, data);
1135
+ if (active) setState({ key: cacheKey, status: "ready", data, error: null });
1136
+ }).catch((error) => {
1137
+ if (!active || (error && error.name === "AbortError")) return;
1138
+ setState({ key: cacheKey, status: "error", data: null, error: errMessage(error) });
1139
+ });
1140
+ }, 180);
1141
+ return () => {
1142
+ active = false;
1143
+ window.clearTimeout(timer);
1144
+ controller.abort();
1145
+ };
1146
+ }, [cacheKey, provider, model]);
1147
+ if (state.key === cacheKey) return state;
1148
+ const cached = cacheKey ? MODEL_METADATA_CACHE.get(cacheKey) : null;
1149
+ return cached
1150
+ ? { key: cacheKey, status: "ready", data: cached, error: null }
1151
+ : { key: cacheKey, status: cacheKey ? "loading" : "idle", data: null, error: null };
1152
+ }
1153
+
1154
+ function reasoningEffortsForState(modelState) {
1155
+ const advertised = modelState.status === "ready" && modelState.data?.reasoning
1156
+ && Array.isArray(modelState.data.reasoning.efforts)
1157
+ ? modelState.data.reasoning.efforts
1158
+ : null;
1159
+ if (advertised) return advertised;
1160
+ return modelState.status === "error" ? COMMON_EFFORT_FALLBACKS : [];
1161
+ }
1162
+
1163
+ function ReasoningEffortPicker({ id, value, provider, model, defaultModel, onChange }) {
1164
+ const inherited = provider.trim() === "" && model.trim() === "";
1165
+ const exactProvider = inherited ? String(defaultModel?.provider || "") : provider.trim();
1166
+ const exactModel = inherited ? String(defaultModel?.model || "") : model.trim();
1167
+ const modelState = useExactModelMetadata(exactProvider, exactModel);
1168
+ const reasoning = modelState.status === "ready" && modelState.data
1169
+ ? modelState.data.reasoning
1170
+ : undefined;
1171
+ const efforts = reasoningEffortsForState(modelState);
1172
+ const known = value === "" || efforts.some((effort) => effort.id === value);
1173
+ const advertisedDefault = inherited
1174
+ ? defaultModel?.reasoningEffort
1175
+ : reasoning?.defaultEffort;
1176
+ const defaultEffort = efforts.find((effort) => effort.id === advertisedDefault);
1177
+ const defaultDetail = advertisedDefault
1178
+ ? "Use " + (defaultEffort?.name || advertisedDefault) + (inherited ? " from the current Harness selection." : " as this model's default.")
1179
+ : inherited
1180
+ ? "Use the current Harness reasoning setting at run time."
1181
+ : "Let the selected model or provider choose.";
1182
+ const options = [
1183
+ {
1184
+ id: "",
1185
+ value: "",
1186
+ label: "Default",
1187
+ detail: defaultDetail,
1188
+ Icon: IconThinkOutline14,
1189
+ },
1190
+ ...efforts.map((effort) => ({
1191
+ id: effort.id,
1192
+ value: effort.id,
1193
+ label: effort.name || effort.id,
1194
+ detail: effort.description || (effort.name === effort.id ? "Adapter-owned effort level." : effort.id),
1195
+ aliases: [effort.id],
1196
+ Icon: IconThinkOutline14,
1197
+ })),
1198
+ ...(value.trim() !== "" && !known
1199
+ ? [{
1200
+ id: "custom-effort:" + value,
1201
+ value,
1202
+ label: value,
1203
+ detail: "Custom effort ID · Availability is checked when the automation runs.",
1204
+ custom: true,
1205
+ Icon: IconThinkOutline14,
1206
+ }]
1207
+ : []),
1208
+ ];
1209
+ let panelNotice = null;
1210
+ if (!exactProvider || !exactModel) {
1211
+ panelNotice = "Choose a model to load its effort levels.";
1212
+ } else if (modelState.status === "loading") {
1213
+ panelNotice = "Loading effort levels for " + exactProvider + " / " + exactModel + "…";
1214
+ } else if (modelState.status === "error") {
1215
+ panelNotice = "Exact-model metadata is unavailable. Common effort IDs are advisory; custom IDs remain available.";
1216
+ } else if (modelState.status === "ready" && !reasoning) {
1217
+ panelNotice = "This model does not advertise selectable effort levels. Custom IDs remain available.";
1218
+ }
1219
+ return h(EditableCombobox, {
1220
+ id,
1221
+ value,
1222
+ onChange,
1223
+ optionsForQuery: (query) => comboboxSearchResults(options, query),
1224
+ selectedId: value === "" ? "" : known ? value : "custom-effort:" + value,
1225
+ commitExactValue: (raw) => raw.trim(),
1226
+ placeholder: "Default",
1227
+ Icon: IconThinkOutline14,
1228
+ listboxLabel: "Reasoning effort levels",
1229
+ initialTitle: "Reasoning effort",
1230
+ searchTitle: "Matching effort levels",
1231
+ emptyText: "No matching effort levels. Press Enter to keep this custom effort ID.",
1232
+ hintText: "Options come from the exact model; custom adapter-owned IDs remain accepted.",
1233
+ resultNoun: "effort level",
1234
+ invalidMessage: "Enter an effort ID or choose Default.",
1235
+ resumeSearch: value.trim() !== "" && !known,
1236
+ panelNotice,
1237
+ disabled: provider.trim() !== "" && model.trim() === "" && value.trim() === "",
1238
+ });
1239
+ }
1240
+
911
1241
  function AgentPresetPicker({ id, value, presets, onChange }) {
912
1242
  const [open, setOpen] = useState(false);
913
1243
  const ownerId = useId();
@@ -1070,7 +1400,7 @@ window.__ModuleLoader__.load({
1070
1400
 
1071
1401
  function JobForm(props) {
1072
1402
  const { meta, draft, editing, saving, error, onChange, onIdTouched, onSubmit, onCancel } = props;
1073
- const providers = meta && Array.isArray(meta.providers) ? meta.providers : [];
1403
+ const providers = normalizedProviders(meta && Array.isArray(meta.providers) ? meta.providers : []);
1074
1404
  const providerModels = providers.find((provider) => provider.id === draft.provider);
1075
1405
  const models = providerModels ? providerModels.models : [];
1076
1406
  const permissionPresets =
@@ -1198,21 +1528,13 @@ window.__ModuleLoader__.load({
1198
1528
  h(
1199
1529
  Field,
1200
1530
  { label: "Provider", htmlFor: fieldId("provider"), hint: "Blank uses the current Harness default. You may type an unlisted provider route." },
1201
- h("input", {
1531
+ h(ProviderPicker, {
1202
1532
  id: fieldId("provider"),
1203
- className: "dsh-auto-input",
1204
- type: "text",
1205
- list: fieldId("provider-list"),
1206
1533
  value: draft.provider,
1207
- spellCheck: false,
1208
- placeholder: "Harness default",
1209
- onChange: (event) => onChange("provider", event.target.value),
1534
+ providers,
1535
+ defaultModel: meta?.defaultModel,
1536
+ onChange: (value) => onChange("provider", value),
1210
1537
  }),
1211
- h(
1212
- "datalist",
1213
- { id: fieldId("provider-list") },
1214
- providers.map((provider) => h("option", { key: provider.id, value: provider.id })),
1215
- ),
1216
1538
  ),
1217
1539
  h(
1218
1540
  Field,
@@ -1238,27 +1560,24 @@ window.__ModuleLoader__.load({
1238
1560
  h(
1239
1561
  "datalist",
1240
1562
  { id: fieldId("model-list") },
1241
- models.map((model) => h("option", { key: model, value: model })),
1563
+ models.map((model) => h("option", {
1564
+ key: model.id,
1565
+ value: model.id,
1566
+ label: model.name === model.id ? undefined : model.name,
1567
+ })),
1242
1568
  ),
1243
1569
  ),
1244
1570
  h(
1245
1571
  Field,
1246
- { label: "Reasoning effort", htmlFor: fieldId("effort"), hint: "Blank uses the provider default." },
1247
- h("input", {
1572
+ { label: "Reasoning effort", htmlFor: fieldId("effort"), hint: "Default follows the selected model. Custom adapter-owned IDs remain supported." },
1573
+ h(ReasoningEffortPicker, {
1248
1574
  id: fieldId("effort"),
1249
- className: "dsh-auto-input",
1250
- type: "text",
1251
- list: fieldId("effort-list"),
1252
1575
  value: draft.reasoningEffort,
1253
- spellCheck: false,
1254
- placeholder: "e.g. medium",
1255
- onChange: (event) => onChange("reasoningEffort", event.target.value),
1576
+ provider: draft.provider,
1577
+ model: draft.model,
1578
+ defaultModel: meta?.defaultModel,
1579
+ onChange: (value) => onChange("reasoningEffort", value),
1256
1580
  }),
1257
- h(
1258
- "datalist",
1259
- { id: fieldId("effort-list") },
1260
- REASONING_EFFORTS.map((effort) => h("option", { key: effort, value: effort })),
1261
- ),
1262
1581
  ),
1263
1582
  h(
1264
1583
  Field,
@@ -1806,7 +2125,9 @@ window.__ModuleLoader__.load({
1806
2125
  next = Object.assign({}, next, { id: slugifyJobId(value) });
1807
2126
  }
1808
2127
  if (key === "provider") {
1809
- next = Object.assign({}, next, { model: "" });
2128
+ next = Object.assign({}, next, { model: "", reasoningEffort: "" });
2129
+ } else if (key === "model") {
2130
+ next = Object.assign({}, next, { reasoningEffort: "" });
1810
2131
  }
1811
2132
  return next;
1812
2133
  });
@@ -2115,7 +2436,7 @@ window.__ModuleLoader__.load({
2115
2436
  const onKeyDown = (event) => {
2116
2437
  if (event.key !== "Escape" || event.defaultPrevented || event.__dshAutomationsNested) return;
2117
2438
  if (event.target?.closest?.('[role="dialog"],[role="menu"]')) return;
2118
- if (document.querySelector('.dsh-auto-picker-trigger[aria-expanded="true"],.dsh-auto-timezone-input[aria-expanded="true"]')) return;
2439
+ if (document.querySelector('.dsh-auto-picker-trigger[aria-expanded="true"],.dsh-auto-combobox-input[aria-expanded="true"]')) return;
2119
2440
  event.preventDefault();
2120
2441
  disclosure.close();
2121
2442
  };
@@ -2204,28 +2525,33 @@ window.__ModuleLoader__.load({
2204
2525
  ".dsh-auto-picker-item-copy{min-width:0;display:flex;flex-direction:column;white-space:normal;}",
2205
2526
  ".dsh-auto-picker-item-label{color:inherit;font-size:14px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}",
2206
2527
  ".dsh-auto-picker-item-detail{color:var(--dsh-auto-muted,var(--dsw-alias-label-tertiary,#81858c));font-size:12px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}",
2207
- ".dsh-auto-timezone-control{width:100%;height:34px;padding:0 8px;display:flex;align-items:center;gap:7px;border:1px solid var(--dsh-auto-border);border-radius:8px;background:var(--dsh-auto-input-bg);color:var(--dsh-auto-text);cursor:text;}",
2208
- ".dsh-auto-timezone-control:hover{background:var(--dsw-alias-interactive-bg-hover,var(--dsh-auto-input-bg));}",
2209
- ".dsh-auto-timezone-control:focus-within,.dsh-auto-timezone-control[data-open=\"true\"]{border-color:var(--dsh-auto-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--dsh-auto-accent) 18%,transparent);}",
2210
- ".dsh-auto-timezone-control:has(.dsh-auto-timezone-input[aria-invalid=\"true\"]){border-color:var(--dsh-auto-danger);}",
2211
- ".dsh-auto-timezone-control-icon,.dsh-auto-timezone-chevron{width:16px;height:16px;flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--dsh-auto-muted);pointer-events:none;}",
2212
- ".dsh-auto-timezone-input{appearance:none;min-width:0;height:100%;flex:1;padding:0;border:0;outline:0;background:transparent;color:inherit;font:inherit;font-size:13px;line-height:20px;}",
2213
- ".dsh-auto-timezone-input::placeholder{color:var(--dsh-auto-caption);}",
2214
- ".dsh-auto-timezone-chevron{transition:transform .12s ease;}",
2215
- ".dsh-auto-timezone-chevron-open{transform:rotate(180deg);}",
2216
- ".dsh-auto-timezone-popover{box-sizing:border-box;position:fixed;z-index:1100;max-height:min(360px,calc(100vh - 24px));padding:4px;display:flex;flex-direction:column;border:1px solid var(--dsw-alias-border-inverted,var(--dsw-alias-border-l2,rgba(15,17,21,.16)));border-radius:12px;background:var(--dsw-specific-menu,var(--dsw-alias-bg-layer-2,#fff));box-shadow:var(--dsw-shadow-lv3,0 12px 32px rgba(15,17,21,.16));color:var(--dsw-alias-label-primary,#0f1115);font-family:inherit;}",
2217
- ".dsh-auto-timezone-popover *,.dsh-auto-timezone-popover *::before,.dsh-auto-timezone-popover *::after{box-sizing:border-box;}",
2218
- ".dsh-auto-timezone-popover-title{flex:none;padding:7px 10px 5px;color:var(--dsw-alias-label-tertiary,#81858c);font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;letter-spacing:.04em;}",
2219
- ".dsh-auto-timezone-list{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);}",
2220
- ".dsh-auto-timezone-option{width:100%;min-height:48px;padding:6px 9px;display:flex;align-items:center;gap:8px;border-radius:9px;cursor:pointer;user-select:none;}",
2221
- ".dsh-auto-timezone-option:hover,.dsh-auto-timezone-option[data-active=\"true\"]{background:var(--dsw-alias-interactive-bg-hover,rgba(38,49,72,.06));}",
2222
- ".dsh-auto-timezone-option[aria-selected=\"true\"]{color:var(--dsw-alias-state-business-primary,#4176e6);}",
2223
- ".dsh-auto-timezone-option-icon,.dsh-auto-timezone-option-check{width:16px;height:16px;flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--dsw-alias-label-tertiary,#81858c);}",
2224
- ".dsh-auto-timezone-option>.dsh-auto-picker-item-copy{min-width:0;flex:1;}",
2225
- ".dsh-auto-timezone-option .dsh-auto-picker-item-detail{color:var(--dsw-alias-label-tertiary,#81858c);}",
2226
- ".dsh-auto-timezone-option-check{color:var(--dsw-alias-state-business-primary,#4176e6);}",
2227
- ".dsh-auto-timezone-empty{margin:0;padding:16px 12px;color:var(--dsw-alias-label-secondary,#4f5661);font-size:12px;line-height:18px;text-align:center;}",
2228
- ".dsh-auto-timezone-popover-hint{flex:none;margin:4px 0 0;padding:7px 10px 5px;border-top:1px solid var(--dsw-alias-border-l2,rgba(15,17,21,.12));color:var(--dsw-alias-label-tertiary,#81858c);font-size:11px;line-height:16px;}",
2528
+ ".dsh-auto-combobox-control{width:100%;height:34px;padding:0 8px;display:flex;align-items:center;gap:7px;border:1px solid var(--dsh-auto-border);border-radius:8px;background:var(--dsh-auto-input-bg);color:var(--dsh-auto-text);cursor:text;}",
2529
+ ".dsh-auto-combobox-control:hover{background:var(--dsw-alias-interactive-bg-hover,var(--dsh-auto-input-bg));}",
2530
+ ".dsh-auto-combobox-control:focus-within,.dsh-auto-combobox-control[data-open=\"true\"]{border-color:var(--dsh-auto-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--dsh-auto-accent) 18%,transparent);}",
2531
+ ".dsh-auto-combobox-control:has(.dsh-auto-combobox-input[aria-invalid=\"true\"]){border-color:var(--dsh-auto-danger);}",
2532
+ ".dsh-auto-combobox-control:has(.dsh-auto-combobox-input:disabled){background:var(--dsh-auto-surface-active);color:var(--dsh-auto-muted);cursor:default;}",
2533
+ ".dsh-auto-combobox-control-icon,.dsh-auto-combobox-chevron{width:16px;height:16px;flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--dsh-auto-muted);pointer-events:none;}",
2534
+ ".dsh-auto-combobox-input{appearance:none;min-width:0;height:100%;flex:1;padding:0;border:0;outline:0;background:transparent;color:inherit;font:inherit;font-size:13px;line-height:20px;}",
2535
+ ".dsh-auto-combobox-input::placeholder{color:var(--dsh-auto-caption);}",
2536
+ ".dsh-auto-combobox-input:disabled{cursor:default;}",
2537
+ ".dsh-auto-combobox-chevron{transition:transform .12s ease;}",
2538
+ ".dsh-auto-combobox-chevron-open{transform:rotate(180deg);}",
2539
+ ".dsh-auto-combobox-popover{box-sizing:border-box;position:fixed;z-index:1100;max-height:min(360px,calc(100vh - 24px));padding:4px;display:flex;flex-direction:column;border:1px solid var(--dsw-alias-border-inverted,var(--dsw-alias-border-l2,rgba(15,17,21,.16)));border-radius:12px;background:var(--dsw-specific-menu,var(--dsw-alias-bg-layer-2,#fff));box-shadow:var(--dsw-shadow-lv3,0 12px 32px rgba(15,17,21,.16));color:var(--dsw-alias-label-primary,#0f1115);font-family:inherit;}",
2540
+ ".dsh-auto-combobox-popover *,.dsh-auto-combobox-popover *::before,.dsh-auto-combobox-popover *::after{box-sizing:border-box;}",
2541
+ ".dsh-auto-combobox-popover-title{flex:none;padding:7px 10px 5px;color:var(--dsw-alias-label-tertiary,#81858c);font-size:11px;font-weight:600;line-height:16px;text-transform:uppercase;letter-spacing:.04em;}",
2542
+ ".dsh-auto-combobox-notice{flex:none;margin:2px 4px 4px;padding:7px 9px;border-radius:8px;background:var(--dsw-alias-bg-module-platform,var(--dsw-alias-interactive-bg-hover,rgba(38,49,72,.06)));color:var(--dsw-alias-label-secondary,#4f5661);font-size:12px;line-height:18px;}",
2543
+ ".dsh-auto-combobox-list{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);}",
2544
+ ".dsh-auto-combobox-option{width:100%;min-height:48px;padding:6px 9px;display:flex;align-items:center;gap:8px;border-radius:9px;cursor:pointer;user-select:none;}",
2545
+ ".dsh-auto-combobox-option:hover,.dsh-auto-combobox-option[data-active=\"true\"]{background:var(--dsw-alias-interactive-bg-hover,rgba(38,49,72,.06));}",
2546
+ ".dsh-auto-combobox-option[data-disabled=\"true\"]{cursor:default;color:var(--dsw-alias-label-dimmed,var(--dsh-auto-caption));}",
2547
+ ".dsh-auto-combobox-option[data-disabled=\"true\"]:hover{background:transparent;}",
2548
+ ".dsh-auto-combobox-option[aria-selected=\"true\"]{color:var(--dsw-alias-state-business-primary,#4176e6);}",
2549
+ ".dsh-auto-combobox-option-icon,.dsh-auto-combobox-option-check{width:16px;height:16px;flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--dsw-alias-label-tertiary,#81858c);}",
2550
+ ".dsh-auto-combobox-option>.dsh-auto-picker-item-copy{min-width:0;flex:1;}",
2551
+ ".dsh-auto-combobox-option .dsh-auto-picker-item-detail{color:var(--dsw-alias-label-tertiary,#81858c);}",
2552
+ ".dsh-auto-combobox-option-check{color:var(--dsw-alias-state-business-primary,#4176e6);}",
2553
+ ".dsh-auto-combobox-empty{margin:0;padding:16px 12px;color:var(--dsw-alias-label-secondary,#4f5661);font-size:12px;line-height:18px;text-align:center;}",
2554
+ ".dsh-auto-combobox-popover-hint{flex:none;margin:4px 0 0;padding:7px 10px 5px;border-top:1px solid var(--dsw-alias-border-l2,rgba(15,17,21,.12));color:var(--dsw-alias-label-tertiary,#81858c);font-size:11px;line-height:16px;}",
2229
2555
  ".dsh-auto-permission-glyph{flex:none;}",
2230
2556
  ".dsh-auto-permission-glyph-read{color:var(--dsh-auto-muted);}",
2231
2557
  ".dsh-auto-permission-glyph-write{color:var(--dsh-auto-accent);}",
@@ -2368,10 +2694,17 @@ window.__ModuleLoader__.load({
2368
2694
  exports.agentPresetDisplayLabel = agentPresetDisplayLabel;
2369
2695
  exports.permissionPresetPresentation = permissionPresetPresentation;
2370
2696
  exports.PermissionPresetPicker = PermissionPresetPicker;
2697
+ exports.EditableCombobox = EditableCombobox;
2698
+ exports.ProviderPicker = ProviderPicker;
2699
+ exports.ReasoningEffortPicker = ReasoningEffortPicker;
2371
2700
  exports.TimeZonePicker = TimeZonePicker;
2372
2701
  exports.__testing = Object.freeze({
2373
2702
  nextFormInstancePrefix,
2374
2703
  canonicalTimezone,
2704
+ comboboxSearchResults,
2705
+ normalizedProviders,
2706
+ providerFallbackName,
2707
+ reasoningEffortsForState,
2375
2708
  timezoneOffsetLabel,
2376
2709
  timezoneNavigationIndex,
2377
2710
  timezoneOptionPresentation,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syncended/dsh-automations",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "Durable cron automations for DeepSeek Harness",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",