@tai42/studio-sdk 29.0.0 → 30.0.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/dist/components/combo-draft-editor.d.ts +31 -0
- package/dist/components/combo-draft-editor.d.ts.map +1 -0
- package/dist/components/combo-draft-editor.js +16 -0
- package/dist/components/combo-draft-editor.js.map +1 -0
- package/dist/components/committed-combo-list.d.ts +17 -0
- package/dist/components/committed-combo-list.d.ts.map +1 -0
- package/dist/components/{extension-combo-parts.js → committed-combo-list.js} +2 -22
- package/dist/components/committed-combo-list.js.map +1 -0
- package/dist/components/extension-combo-builder.d.ts +4 -4
- package/dist/components/extension-combo-builder.js +3 -2
- package/dist/components/extension-combo-builder.js.map +1 -1
- package/dist/components/holder-kinds.d.ts +6 -0
- package/dist/components/holder-kinds.d.ts.map +1 -1
- package/dist/components/holder-kinds.js +12 -0
- package/dist/components/holder-kinds.js.map +1 -1
- package/dist/components/holder-list.d.ts +4 -4
- package/dist/components/holder-list.d.ts.map +1 -1
- package/dist/components/holder-list.js +5 -3
- package/dist/components/holder-list.js.map +1 -1
- package/dist/components/selected-tool-badges.d.ts +13 -0
- package/dist/components/selected-tool-badges.d.ts.map +1 -0
- package/dist/components/selected-tool-badges.js +14 -0
- package/dist/components/selected-tool-badges.js.map +1 -0
- package/dist/components/tag-filter-field.d.ts +11 -0
- package/dist/components/tag-filter-field.d.ts.map +1 -0
- package/dist/components/tag-filter-field.js +15 -0
- package/dist/components/tag-filter-field.js.map +1 -0
- package/dist/components/tool-picker.d.ts +1 -1
- package/dist/components/tool-picker.d.ts.map +1 -1
- package/dist/components/tool-picker.js +4 -2
- package/dist/components/tool-picker.js.map +1 -1
- package/dist/components/tool-select.d.ts +25 -0
- package/dist/components/tool-select.d.ts.map +1 -0
- package/dist/components/{tool-picker-parts.js → tool-select.js} +1 -25
- package/dist/components/tool-select.js.map +1 -0
- package/dist/extension-combos.d.ts +6 -1
- package/dist/extension-combos.d.ts.map +1 -1
- package/dist/extension-combos.js +8 -0
- package/dist/extension-combos.js.map +1 -1
- package/dist/hooks/useApi.d.ts +2 -0
- package/dist/hooks/useApi.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/combo-draft-editor.tsx +96 -0
- package/src/components/{extension-combo-parts.tsx → committed-combo-list.tsx} +4 -105
- package/src/components/extension-combo-builder.tsx +10 -10
- package/src/components/holder-kinds.ts +15 -0
- package/src/components/holder-list.tsx +6 -5
- package/src/components/selected-tool-badges.tsx +41 -0
- package/src/components/tag-filter-field.tsx +37 -0
- package/src/components/tool-picker.tsx +4 -2
- package/src/components/{tool-picker-parts.tsx → tool-select.tsx} +2 -72
- package/src/extension-combos.ts +15 -1
- package/dist/components/extension-combo-parts.d.ts +0 -46
- package/dist/components/extension-combo-parts.d.ts.map +0 -1
- package/dist/components/extension-combo-parts.js.map +0 -1
- package/dist/components/tool-picker-parts.d.ts +0 -43
- package/dist/components/tool-picker-parts.d.ts.map +0 -1
- package/dist/components/tool-picker-parts.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-combos.js","sourceRoot":"","sources":["../src/extension-combos.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extension-combos.js","sourceRoot":"","sources":["../src/extension-combos.ts"],"names":[],"mappings":"AAUA,yEAAyE;AACzE,MAAM,UAAU,oBAAoB,CAAC,OAA+B;IAClE,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,iBAAiB,CAAC,KAAwC;IACxE,OAAO,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACzC,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,SAAS,CAAC,CAAoB,EAAE,CAAoB;IAClE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,YAAY,CAC1B,KAAwC,EACxC,cAAmC;IAEnC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9E,CAAC"}
|
package/dist/hooks/useApi.d.ts
CHANGED
|
@@ -4070,6 +4070,7 @@ export declare const ApiProvider: import("react").Provider<{
|
|
|
4070
4070
|
locator: Record<string, string | number>;
|
|
4071
4071
|
name: string;
|
|
4072
4072
|
summary: string;
|
|
4073
|
+
tag: string;
|
|
4073
4074
|
}[];
|
|
4074
4075
|
}>;
|
|
4075
4076
|
readonly detachStateTemplate: (name: string, template: string) => Promise<{
|
|
@@ -4922,6 +4923,7 @@ export declare const ApiProvider: import("react").Provider<{
|
|
|
4922
4923
|
locator: Record<string, string | number>;
|
|
4923
4924
|
name: string;
|
|
4924
4925
|
summary: string;
|
|
4926
|
+
tag: string;
|
|
4925
4927
|
}[];
|
|
4926
4928
|
}>;
|
|
4927
4929
|
readonly validatePreset: (body: import("@tai42/api-client").ValidatePresetBody) => Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useApi.d.ts","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKnD,eAAO,MAAM,WAAW;wCAWwc,CAAC,0BAA0B,CAAC;+BAAsG,CAAC;oCAAuE,CAAC;;;;;;sCAAsM,CAAC,4DAA+D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2EAAw6B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAA25B,CAAC;;;;;;;;4BAA+T,CAAC;;;;;;;;;;;;gBAA6U,CAAC;;+CAAoF,CAAC;0CAA+E,CAAC;qDAA0F,CAAC;;;;;;;;;;;;;;;;;;;;;;gHAAgyB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAAu+R,CAAC;;;;;;;;;;;;6CAAgX,CAAC,kDAAuD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAA6xB,CAAC,+CAAoD,CAAC;;;;;;;;;;;;;;;;kDAAigB,CAAC;;;;;;;;;kDAAoV,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;yDAA43B,CAAC;;;;;;;;;;;;;;;;;;;uGAAysB,CAAC;wBAA4B,CAAC;aAAuB,CAAC;;;;;;;mDAA4N,CAAC;wBAA4B,CAAC;aAAwB,CAAC;;;aAA+J,CAAC;mCAAoE,CAAC;;;;;;;;;;;;;;;;;;;;;;;uCAAkoB,CAAC;;;aAA6F,CAAC;cAAyB,CAAC;;;;wCAA+M,CAAC;;;;sDAA2I,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAA+xE,CAAC;;;;;;;;;;;;wDAAqZ,CAAC;;;;;;;uBAAsM,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;;;;yCAA+Z,CAAC;;;;;;;sCAAgM,CAAC;cAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAA05C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAA43B,CAAC;;;;;;;;;eAAgR,CAAC;;;;;;;;;;;;;oBAAmY,CAAC;gBAA0B,CAAC;;;;;;;;;;;;;uCAAyX,CAAC;;mBAAoE,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;;;;;;;;;;;;uBAA2lB,CAAC;;;;;;;;;;;;;;iCAAga,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAA0wB,CAAC;;;;;;;;;;;;;;+BAAkhB,CAAC;;;;mBAAkI,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;;;;;;;;mBAAsY,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;;;;;;;;mBAAkZ,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;;;;;;;;oDAA0W,CAAC;;;;;;;;;;2BAAoU,CAAC;sBAA4C,CAAC;0BAAgD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;mBAA6vB,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;;;;gCAAyO,CAAC;;;;;;;;;;;;;;oCAAkd,CAAC;;;;;;;;;;sCAA6X,CAAC;;;;;;;uCAA6R,CAAC;;;;;;;;;;;;;;;;;;;;;;;wCAAg1B,CAAC;;;;;;;;sCAAmV,CAAC;;;;;;;;;;;;;;;;;;;;8BAAssB,CAAC,gBAAgB,CAAC;;;uBAA+F,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAA6G,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;uBAAiM,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;uBAAyI,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAA8G,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;mCAAmQ,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;;;+BAAuN,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;+BAA2K,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;;mCAA4M,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;mCAA0I,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;mCAA6I,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;;;;;;2BAA+Q,CAAC;sBAA4C,CAAC;0BAAgD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;uCAAi2B,CAAC;;;;;;;;;gCAAoW,CAAC;;;;;;;;;;4CAAsT,CAAC;;;;;;;;;;kEAA4U,CAAC;0EAA8J,CAAC;uCAA2H,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CAAwsD,CAAC;;;;uBAAyI,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;uBAAqP,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;;uBAAqY,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;;;;;;;;uBAAiwB,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;uBAA8I,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;uBAA6R,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;uBAA2P,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;;uBAAuY,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;;;;;;;;uBAAiwB,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;uBAA8I,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;;;;;;uBAA8hB,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;uBAAqP,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;;uBAAqY,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;;;;;;;;uBAAiwB,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;uBAA8I,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;uBAA6R,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;uBAA2P,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;;uBAAuY,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;;;;;;;;uBAAiwB,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;uBAA8I,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;;;iGAAkd,CAAC,+DAAoE,CAAC;;;;;;;;;;;;;;;gHAA+pB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mHAAisT,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oFAA8yT,CAAC;;;;;;;;6CAA2W,CAAC;;;;;;;;;mCAAoU,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;;;+BAAuN,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;+BAA2K,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;;mCAA4M,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;mCAA0I,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;mCAA6I,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;;;;;;;;;;+HAAqc,CAAC;;;;;;;;+BAAmR,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;;2BAAmM,CAAC;sBAA4C,CAAC;0BAAgD,CAAC;;;;2BAA2J,CAAC;sBAA4C,CAAC;0BAAgD,CAAC;;;;;+BAAwL,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;+BAA8H,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;+BAAiI,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;;;;;;;;;;;;;;;mCAAmoB,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;;;+BAAuN,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;+BAA2K,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;;mCAA4M,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;mCAA0I,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;mCAA6I,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;;;;;;;;;;;;;;;;oDAAkpB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAA82T,CAAC;;;;;;sEAA+M,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAA2oD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAAm/L,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAA88B,CAAC;;;;;;;;;;;;;;;;;+CAA+mB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+EAA+mG,CAAC;;;;sFAA6K,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DAA65C,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAAwrG,CAAC;;;;mBAA8H,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAAy7B,CAAC;;;;;;0CAAkL,CAAC;;;;sDAA+I,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DAAm6E,CAAC;;;;;;8EAA8N,CAAC;;;;;;;;;;;;;;;kCAAic,CAAC;;;;;;;mBAAuO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAA8yD,CAAC;;;;mCAAgI,CAAC;;;;;;;;;;;;;;gCAA6d,CAAC;;;;;;oEAAuO,CAAC;;;;;;;;;kCAA0P,CAAC;;;;;;;;;;;;;;;;2DAAkiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAAyxF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAA43C,CAAC;;;;mBAA8H,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAAsvF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oEAAgmH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAAo4K,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAAw8F,CAAC;;;;;;qDAAyN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAAqsE,CAAC;;;;;sCAAmK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAA69B,CAAC;;;;;;0CAAuN,CAAC;;;qDAAsH,CAAC;;;;;;;;;;;;;;;;;;qDAAod,CAAC;;;;yDAAsJ,CAAC;;;;;;;;;;;;;kCAAoc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAA61B,CAAC;;;;;;;;;;;;;;;;;;;gCAA6kB,CAAC;;;;;;;;;;;;cAAga,CAAC;mBAAiD,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;4CAAoH,CAAC;;;;;;;;;;;;;;;;;;cAAkmB,CAAC;mBAAiD,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;;;;;;;;;;;;YAAijB,CAAC;;;;;;;;;;cAA6R,CAAC;mBAAiD,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;;;;iDAAqO,CAAC;;;;;YAAiL,CAAC;;;;;;;;;;;wDAA+U,CAAC;;;;;;;wEAAmR,CAAC;;;;;;;;;;YAA+Y,CAAC;;;;;;;;;;;;;;;;8EAA8jB,CAAC;;;;;;;;;;;;;;;YAAoe,CAAC;0DAAkE,CAAC;;;;;;;;;;;YAAkU,CAAC;;;;;;;;;;;;;0DAAib,CAAC;;;;;;;;;;;YAAiU,CAAC;;;;;;;;;;;qFAA4W,CAAC;;;;;;;;YAAuN,CAAC;0DAAkE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;wGAAgzB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wHAAy6E,CAAC,iCAAiC,CAAC;;;;;uHAAiO,CAAC;aAAiB,CAAC;aAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;yGAAi6B,CAAC,oDAAkD,CAAC;;;;;;;;;;;;;;;;;;kDAAupB,CAAC;;;;;;;;;;;wCAAoW,CAAC;;;uBAAgG,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;mBAAoT,CAAC;;;;uBAAwF,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAAoG,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAAwG,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;uBAAyS,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;cAA4R,CAAC;mBAAiD,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;aAA2E,CAAC;;;;oDAAuH,CAAC;;;uBAAgG,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;mBAAoT,CAAC;;;;uBAAwF,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAAoG,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAAwG,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;uBAAyS,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;cAA6N,CAAC;mBAAiD,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;aAA2E,CAAC;;;;0GAAyK,CAAC;;;uBAA4F,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;mBAAoT,CAAC;;;;uBAAwF,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAAoG,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAAwG,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;;;;uBAAyS,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;cAA6N,CAAC;mBAAiD,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;aAA2E,CAAC;;;;;;;;;;YAA6R,CAAC;;;;;;;;;;;;cAA+U,CAAC;0DAAoF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAA6qC,CAAC;;;;;;;mBAA4O,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;mBAA8H,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;mBAAiI,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;mBAA+H,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;;;;;;;;;;;;;mBAAyhB,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;mBAA8H,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;mBAAiI,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;mBAA+H,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;;;;;;6CAAwR,CAAC;;;;;;;;mBAA2R,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;mBAA8H,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;mBAAiI,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;mBAA+H,CAAC;cAAoC,CAAC;kBAAwC,CAAC;;;;;;;;;sDAAiS,CAAC;;;;;;;;;;;uBAAkY,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAA0I,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAAuH,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAA2I,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;mCAAmQ,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;;;+BAAuN,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;+BAA2K,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;;mCAA4M,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;mCAA0I,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;mCAA6I,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;;;;;;qEAA2R,CAAC;;;;;;;;;;;uBAAkY,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAA0I,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAAuH,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAA2I,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;mCAAmQ,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;;;+BAAuN,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;+BAA2K,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;;mCAA4M,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;mCAA0I,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;mCAA6I,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;;;;;;;;;;;;;;;;;uBAA8qB,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAA0I,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAAuH,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;uBAA2I,CAAC;kBAAwC,CAAC;sBAA4C,CAAC;;;;;;;mCAAmQ,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;;;+BAAuN,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;+BAA2K,CAAC;0BAAgD,CAAC;8BAAoD,CAAC;;;;;mCAA4M,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;mCAA0I,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;mCAA6I,CAAC;8BAAoD,CAAC;kCAAwD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6GAA4hE,CAAC;;;;;;;;;;;;;;;;;;+BAAgnB,CAAC;iDAAsF,CAAC;;;;;uCAAuM,CAAC;;;;;4EAAyP,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wFAAk+E,CAAC;;;+CAA2G,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDAAq5F,CAAC;;;;;;;kCAAmQ,CAAC;;;;;;;;;;;;;+HAA22B,CAAC;;;SAXn7nL,CAAC;AAE/C,wBAAgB,MAAM,IAAI,SAAS,CAMlC;AAED,YAAY,EAAE,SAAS,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"useApi.d.ts","sourceRoot":"","sources":["../../src/hooks/useApi.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tai42/studio-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "30.0.1",
|
|
4
4
|
"description": "The Studio plugin contract, shared UI components, and hooks that every feature builds on.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "tai42 <oss@tai42.ai>",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"@radix-ui/react-select": "^2.3.8",
|
|
97
97
|
"@radix-ui/react-tabs": "^1.1.22",
|
|
98
98
|
"@radix-ui/react-tooltip": "^1.3.0",
|
|
99
|
-
"@tai42/api-client": "
|
|
99
|
+
"@tai42/api-client": "30.0.1"
|
|
100
100
|
},
|
|
101
101
|
"scripts": {
|
|
102
102
|
"build": "tsc -b tsconfig.build.json && node scripts/copy-assets.mjs",
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ExtensionComboBuilder`'s editor for the combo under construction: the extension
|
|
3
|
+
* picker, a settings form per configurable drafted extension, and the commit actions.
|
|
4
|
+
*/
|
|
5
|
+
import type { Extension } from '@tai42/api-client';
|
|
6
|
+
import type { ReactNode } from 'react';
|
|
7
|
+
|
|
8
|
+
import type { JsonSchema } from '../schema-form/types';
|
|
9
|
+
import { type ExtensionConfigChange, ExtensionConfigEditor } from './extension-config-editor';
|
|
10
|
+
import { ExtensionPicker } from './extension-picker';
|
|
11
|
+
import { XCircleIcon } from './icons';
|
|
12
|
+
import { Button } from './primitives';
|
|
13
|
+
|
|
14
|
+
/** A drafted extension whose catalog entry declares a settings schema. */
|
|
15
|
+
export interface ConfigurableExtension {
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly schema: JsonSchema;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** The combo under construction: the extension picker, one settings form per drafted
|
|
21
|
+
* configurable extension, the duplicate note, and the Add/Update + Cancel actions. */
|
|
22
|
+
export function ComboDraftEditor({
|
|
23
|
+
available,
|
|
24
|
+
draft,
|
|
25
|
+
onDraftChange,
|
|
26
|
+
configurable,
|
|
27
|
+
draftConfigs,
|
|
28
|
+
onDraftConfigChange,
|
|
29
|
+
isDuplicate,
|
|
30
|
+
canAdd,
|
|
31
|
+
editing,
|
|
32
|
+
disabled,
|
|
33
|
+
idPrefix,
|
|
34
|
+
onCommit,
|
|
35
|
+
onReset,
|
|
36
|
+
}: {
|
|
37
|
+
readonly available: readonly Extension[];
|
|
38
|
+
readonly draft: string[];
|
|
39
|
+
readonly onDraftChange: (draft: string[]) => void;
|
|
40
|
+
readonly configurable: readonly ConfigurableExtension[];
|
|
41
|
+
readonly draftConfigs: Readonly<Record<string, Record<string, unknown> | undefined>>;
|
|
42
|
+
readonly onDraftConfigChange: (name: string, change: ExtensionConfigChange) => void;
|
|
43
|
+
readonly isDuplicate: boolean;
|
|
44
|
+
readonly canAdd: boolean;
|
|
45
|
+
readonly editing: number | null;
|
|
46
|
+
readonly disabled: boolean | undefined;
|
|
47
|
+
readonly idPrefix: string;
|
|
48
|
+
readonly onCommit: () => void;
|
|
49
|
+
readonly onReset: () => void;
|
|
50
|
+
}): ReactNode {
|
|
51
|
+
return (
|
|
52
|
+
<div className="tai-stack tai-stack-2">
|
|
53
|
+
<ExtensionPicker
|
|
54
|
+
available={available}
|
|
55
|
+
value={draft}
|
|
56
|
+
onChange={onDraftChange}
|
|
57
|
+
disabled={disabled}
|
|
58
|
+
idPrefix={`${idPrefix}-draft`}
|
|
59
|
+
/>
|
|
60
|
+
|
|
61
|
+
{configurable.map(({ name, schema }) => (
|
|
62
|
+
<ExtensionConfigEditor
|
|
63
|
+
// Re-seed the form when the draft target changes (a new draft vs a
|
|
64
|
+
// specific combo pulled in for edit).
|
|
65
|
+
key={`${editing === null ? 'new' : String(editing)}-${name}`}
|
|
66
|
+
name={name}
|
|
67
|
+
schema={schema}
|
|
68
|
+
value={draftConfigs[name]}
|
|
69
|
+
onChange={(change) => {
|
|
70
|
+
onDraftConfigChange(name, change);
|
|
71
|
+
}}
|
|
72
|
+
disabled={disabled}
|
|
73
|
+
idPrefix={`${idPrefix}-settings-${name}`}
|
|
74
|
+
/>
|
|
75
|
+
))}
|
|
76
|
+
|
|
77
|
+
{isDuplicate ? (
|
|
78
|
+
<p role="alert" className="tai-field-error">
|
|
79
|
+
<XCircleIcon />
|
|
80
|
+
This extension set is already added.
|
|
81
|
+
</p>
|
|
82
|
+
) : null}
|
|
83
|
+
|
|
84
|
+
<div className="tai-row">
|
|
85
|
+
<Button type="button" variant="primary" onClick={onCommit} disabled={!canAdd}>
|
|
86
|
+
{editing === null ? 'Add extension set' : 'Update extension set'}
|
|
87
|
+
</Button>
|
|
88
|
+
{editing !== null ? (
|
|
89
|
+
<Button type="button" onClick={onReset} disabled={disabled}>
|
|
90
|
+
Cancel edit
|
|
91
|
+
</Button>
|
|
92
|
+
) : null}
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
@@ -1,32 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* and the shared combo helpers. The builder owns the state and composes these.
|
|
2
|
+
* `ExtensionComboBuilder`'s list of committed combos: one row of name badges per
|
|
3
|
+
* combo, with per-combo Edit and Remove and an inline unknown-name note.
|
|
5
4
|
*/
|
|
6
|
-
import type {
|
|
5
|
+
import type { PresetExtensionElement } from '@tai42/api-client';
|
|
7
6
|
import { Fragment, type ReactNode } from 'react';
|
|
8
7
|
|
|
9
|
-
import { comboElementNames } from '../extension-combos';
|
|
10
|
-
import type { JsonSchema } from '../schema-form/types';
|
|
8
|
+
import { comboElementNames, unknownNames } from '../extension-combos';
|
|
11
9
|
import { Badge } from './badge';
|
|
12
|
-
import { type ExtensionConfigChange, ExtensionConfigEditor } from './extension-config-editor';
|
|
13
|
-
import { ExtensionPicker } from './extension-picker';
|
|
14
10
|
import { CloseIcon, XCircleIcon } from './icons';
|
|
15
11
|
import { Button } from './primitives';
|
|
16
12
|
|
|
17
|
-
/** Two combos are equal when their NAME sequences match (config is not part of identity). */
|
|
18
|
-
export function sameNames(a: readonly string[], b: readonly string[]): boolean {
|
|
19
|
-
return a.length === b.length && a.every((name, index) => name === b[index]);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/** The element names in a combo that are absent from the known catalog. */
|
|
23
|
-
export function unknownNames(
|
|
24
|
-
combo: readonly PresetExtensionElement[],
|
|
25
|
-
availableNames: ReadonlySet<string>,
|
|
26
|
-
): string[] {
|
|
27
|
-
return comboElementNames(combo).filter((name) => !availableNames.has(name));
|
|
28
|
-
}
|
|
29
|
-
|
|
30
13
|
/** One committed combo's row: its name badges and the Edit / Remove pair, with an
|
|
31
14
|
* inline unknown-name note. */
|
|
32
15
|
function CommittedComboRow({
|
|
@@ -140,87 +123,3 @@ export function CommittedComboList({
|
|
|
140
123
|
</ul>
|
|
141
124
|
);
|
|
142
125
|
}
|
|
143
|
-
|
|
144
|
-
/** A drafted extension whose catalog entry declares a settings schema. */
|
|
145
|
-
export interface ConfigurableExtension {
|
|
146
|
-
readonly name: string;
|
|
147
|
-
readonly schema: JsonSchema;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/** The combo under construction: the extension picker, one settings form per drafted
|
|
151
|
-
* configurable extension, the duplicate note, and the Add/Update + Cancel actions. */
|
|
152
|
-
export function ComboDraftEditor({
|
|
153
|
-
available,
|
|
154
|
-
draft,
|
|
155
|
-
onDraftChange,
|
|
156
|
-
configurable,
|
|
157
|
-
draftConfigs,
|
|
158
|
-
onDraftConfigChange,
|
|
159
|
-
isDuplicate,
|
|
160
|
-
canAdd,
|
|
161
|
-
editing,
|
|
162
|
-
disabled,
|
|
163
|
-
idPrefix,
|
|
164
|
-
onCommit,
|
|
165
|
-
onReset,
|
|
166
|
-
}: {
|
|
167
|
-
readonly available: readonly Extension[];
|
|
168
|
-
readonly draft: string[];
|
|
169
|
-
readonly onDraftChange: (draft: string[]) => void;
|
|
170
|
-
readonly configurable: readonly ConfigurableExtension[];
|
|
171
|
-
readonly draftConfigs: Readonly<Record<string, Record<string, unknown> | undefined>>;
|
|
172
|
-
readonly onDraftConfigChange: (name: string, change: ExtensionConfigChange) => void;
|
|
173
|
-
readonly isDuplicate: boolean;
|
|
174
|
-
readonly canAdd: boolean;
|
|
175
|
-
readonly editing: number | null;
|
|
176
|
-
readonly disabled: boolean | undefined;
|
|
177
|
-
readonly idPrefix: string;
|
|
178
|
-
readonly onCommit: () => void;
|
|
179
|
-
readonly onReset: () => void;
|
|
180
|
-
}): ReactNode {
|
|
181
|
-
return (
|
|
182
|
-
<div className="tai-stack tai-stack-2">
|
|
183
|
-
<ExtensionPicker
|
|
184
|
-
available={available}
|
|
185
|
-
value={draft}
|
|
186
|
-
onChange={onDraftChange}
|
|
187
|
-
disabled={disabled}
|
|
188
|
-
idPrefix={`${idPrefix}-draft`}
|
|
189
|
-
/>
|
|
190
|
-
|
|
191
|
-
{configurable.map(({ name, schema }) => (
|
|
192
|
-
<ExtensionConfigEditor
|
|
193
|
-
// Re-seed the form when the draft target changes (a new draft vs a
|
|
194
|
-
// specific combo pulled in for edit).
|
|
195
|
-
key={`${editing === null ? 'new' : String(editing)}-${name}`}
|
|
196
|
-
name={name}
|
|
197
|
-
schema={schema}
|
|
198
|
-
value={draftConfigs[name]}
|
|
199
|
-
onChange={(change) => {
|
|
200
|
-
onDraftConfigChange(name, change);
|
|
201
|
-
}}
|
|
202
|
-
disabled={disabled}
|
|
203
|
-
idPrefix={`${idPrefix}-settings-${name}`}
|
|
204
|
-
/>
|
|
205
|
-
))}
|
|
206
|
-
|
|
207
|
-
{isDuplicate ? (
|
|
208
|
-
<p role="alert" className="tai-field-error">
|
|
209
|
-
<XCircleIcon />
|
|
210
|
-
This extension set is already added.
|
|
211
|
-
</p>
|
|
212
|
-
) : null}
|
|
213
|
-
|
|
214
|
-
<div className="tai-row">
|
|
215
|
-
<Button type="button" variant="primary" onClick={onCommit} disabled={!canAdd}>
|
|
216
|
-
{editing === null ? 'Add extension set' : 'Update extension set'}
|
|
217
|
-
</Button>
|
|
218
|
-
{editing !== null ? (
|
|
219
|
-
<Button type="button" onClick={onReset} disabled={disabled}>
|
|
220
|
-
Cancel edit
|
|
221
|
-
</Button>
|
|
222
|
-
) : null}
|
|
223
|
-
</div>
|
|
224
|
-
</div>
|
|
225
|
-
);
|
|
226
|
-
}
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
* preset/tool extensions wire carries. It is PRESENTATIONAL: the caller fetches the
|
|
7
7
|
* extension catalog (`available`) and owns the `value`; this component fetches nothing.
|
|
8
8
|
*
|
|
9
|
-
* The surface has two
|
|
10
|
-
* - the current combos, each an ordered row of name `Badge`s
|
|
11
|
-
* (pull it back into the draft) and Remove;
|
|
12
|
-
* - a combo UNDER CONSTRUCTION, authored with the shared `ExtensionPicker` (grouped
|
|
9
|
+
* The surface has two sections:
|
|
10
|
+
* - the current combos (`CommittedComboList`), each an ordered row of name `Badge`s
|
|
11
|
+
* with a per-combo Edit (pull it back into the draft) and Remove;
|
|
12
|
+
* - a combo UNDER CONSTRUCTION (`ComboDraftEditor`), authored with the shared `ExtensionPicker` (grouped
|
|
13
13
|
* by kind, single-select for the non-stackable `backend` kind). An extension whose
|
|
14
14
|
* catalog entry declares a `config_schema` is authored as `{ name, config }` through
|
|
15
15
|
* its settings form; any other name stays a bare element, or the edited combo's own
|
|
@@ -38,15 +38,15 @@
|
|
|
38
38
|
import type { Extension, PresetExtensionElement } from '@tai42/api-client';
|
|
39
39
|
import { type ReactNode, useEffect, useState } from 'react';
|
|
40
40
|
|
|
41
|
-
import { comboElementNames, extensionElementName } from '../extension-combos';
|
|
42
|
-
import type { JsonSchema } from '../schema-form/types';
|
|
43
41
|
import {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
type ConfigurableExtension,
|
|
42
|
+
comboElementNames,
|
|
43
|
+
extensionElementName,
|
|
47
44
|
sameNames,
|
|
48
45
|
unknownNames,
|
|
49
|
-
} from '
|
|
46
|
+
} from '../extension-combos';
|
|
47
|
+
import type { JsonSchema } from '../schema-form/types';
|
|
48
|
+
import { ComboDraftEditor, type ConfigurableExtension } from './combo-draft-editor';
|
|
49
|
+
import { CommittedComboList } from './committed-combo-list';
|
|
50
50
|
import type { ExtensionConfigChange } from './extension-config-editor';
|
|
51
51
|
|
|
52
52
|
type Seeds = Readonly<Record<string, Record<string, unknown> | undefined>>;
|
|
@@ -50,6 +50,21 @@ const CORE_ROUTES: Readonly<Record<string, (holder: ReferenceHolder) => CoreHold
|
|
|
50
50
|
setting: () => ({ token: 'settings', search: {} }),
|
|
51
51
|
};
|
|
52
52
|
|
|
53
|
+
/**
|
|
54
|
+
* A count holder stands for the holders of one kind and tag the caller's role cannot
|
|
55
|
+
* read: its name is the tag and its locator carries only the count. It names no holder,
|
|
56
|
+
* so it has no page to link to.
|
|
57
|
+
*/
|
|
58
|
+
export function isCountHolder(holder: ReferenceHolder): boolean {
|
|
59
|
+
const keys = Object.keys(holder.locator);
|
|
60
|
+
return (
|
|
61
|
+
holder.name === holder.tag &&
|
|
62
|
+
keys.length === 1 &&
|
|
63
|
+
keys[0] === 'count' &&
|
|
64
|
+
typeof holder.locator.count === 'number'
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
53
68
|
/** Every kind the platform reports; a plugin cannot register a link for one. */
|
|
54
69
|
export const CORE_HOLDER_KINDS: ReadonlySet<string> = new Set(Object.keys(CORE_ROUTES));
|
|
55
70
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `HolderList` — the things that still use a name, each a link to where it lives.
|
|
3
3
|
* A core holder kind links to its Studio screen; a plugin kind links to the page its
|
|
4
|
-
* plugin registered for it; a kind nobody resolves
|
|
5
|
-
* hidden.
|
|
4
|
+
* plugin registered for it; a kind nobody resolves, and a count of holders the caller's
|
|
5
|
+
* role cannot read, show as text, so no holder is hidden.
|
|
6
6
|
*/
|
|
7
7
|
import type { ReferenceHolder } from '@tai42/api-client';
|
|
8
8
|
import { type MouseEvent, type ReactNode, useCallback } from 'react';
|
|
9
9
|
|
|
10
10
|
import { errorMessage } from '../errors';
|
|
11
11
|
import { useNavigation } from '../navigation/context';
|
|
12
|
-
import { coreHolderRoute } from './holder-kinds';
|
|
12
|
+
import { coreHolderRoute, isCountHolder } from './holder-kinds';
|
|
13
13
|
import { Spinner } from './primitives';
|
|
14
14
|
import { ScrollRegion } from './scroll-region';
|
|
15
15
|
|
|
@@ -20,14 +20,15 @@ export interface HolderHref {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* The resolver for holder links: `null` for a
|
|
24
|
-
* registered plugin resolves.
|
|
23
|
+
* The resolver for holder links: `null` for a count holder and for a kind neither the
|
|
24
|
+
* core table nor any registered plugin resolves.
|
|
25
25
|
*/
|
|
26
26
|
export function useHolderHref(): (holder: ReferenceHolder) => HolderHref | null {
|
|
27
27
|
const { navigate, resolvePath, navigatePlugin, resolvePluginPath, resolveHolderLink } =
|
|
28
28
|
useNavigation();
|
|
29
29
|
return useCallback(
|
|
30
30
|
(holder: ReferenceHolder): HolderHref | null => {
|
|
31
|
+
if (isCountHolder(holder)) return null;
|
|
31
32
|
const core = coreHolderRoute(holder);
|
|
32
33
|
if (core !== null) {
|
|
33
34
|
return {
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/** `ToolPicker`'s capability badges for the selected tool, and the note every badge
|
|
2
|
+
* surface carries. */
|
|
3
|
+
import type { ReactNode } from 'react';
|
|
4
|
+
|
|
5
|
+
import { Badge } from './badge';
|
|
6
|
+
import { Tooltip } from './tooltip';
|
|
7
|
+
|
|
8
|
+
/** The shared informational note every badge surface carries: declared, never enforced. */
|
|
9
|
+
export const BADGES_NOTE =
|
|
10
|
+
'Declared capability labels — informational only. They describe what the tool touches; the server never enforces them.';
|
|
11
|
+
|
|
12
|
+
/** The selected tool's DECLARED capability badges, read-only and informational.
|
|
13
|
+
* Renders nothing unless the selected tool carries badges. */
|
|
14
|
+
export function SelectedToolBadges({
|
|
15
|
+
value,
|
|
16
|
+
badgesByTool,
|
|
17
|
+
idPrefix,
|
|
18
|
+
}: {
|
|
19
|
+
readonly value: string | null;
|
|
20
|
+
readonly badgesByTool: Readonly<Record<string, readonly string[]>> | undefined;
|
|
21
|
+
readonly idPrefix: string;
|
|
22
|
+
}): ReactNode {
|
|
23
|
+
if (value === null || badgesByTool === undefined || (badgesByTool[value]?.length ?? 0) === 0) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return (
|
|
27
|
+
<Tooltip content={BADGES_NOTE}>
|
|
28
|
+
<span
|
|
29
|
+
className="tai-row"
|
|
30
|
+
data-testid={`${idPrefix}-badges`}
|
|
31
|
+
style={{ gap: 'var(--tai-space-1)' }}
|
|
32
|
+
>
|
|
33
|
+
{(badgesByTool[value] ?? []).map((badge) => (
|
|
34
|
+
<Badge key={badge} variant="neutral">
|
|
35
|
+
{badge}
|
|
36
|
+
</Badge>
|
|
37
|
+
))}
|
|
38
|
+
</span>
|
|
39
|
+
</Tooltip>
|
|
40
|
+
);
|
|
41
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** `ToolPicker`'s tag filter field and its "no filter" sentinel value. */
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
import { Field } from './field';
|
|
5
|
+
import { Select } from './select';
|
|
6
|
+
|
|
7
|
+
// Radix `Select.Item` forbids an empty-string value, so the "no filter" choice
|
|
8
|
+
// uses a sentinel rather than ''. A tool literally tagged this string would just
|
|
9
|
+
// never be filtered out — harmless for a UI convenience whose authority is the server.
|
|
10
|
+
export const ALL_TAGS = '__all_tags__';
|
|
11
|
+
|
|
12
|
+
/** The tag filter: an "All tags" sentinel plus one option per distinct tag. */
|
|
13
|
+
export function TagFilterField({
|
|
14
|
+
allTags,
|
|
15
|
+
tagFilter,
|
|
16
|
+
onTagFilterChange,
|
|
17
|
+
disabled,
|
|
18
|
+
}: {
|
|
19
|
+
readonly allTags: readonly string[];
|
|
20
|
+
readonly tagFilter: string;
|
|
21
|
+
readonly onTagFilterChange: (value: string) => void;
|
|
22
|
+
readonly disabled: boolean | undefined;
|
|
23
|
+
}): ReactNode {
|
|
24
|
+
return (
|
|
25
|
+
<Field label="Filter by tag">
|
|
26
|
+
<Select
|
|
27
|
+
options={[
|
|
28
|
+
{ value: ALL_TAGS, label: 'All tags' },
|
|
29
|
+
...allTags.map((tag) => ({ value: tag, label: tag })),
|
|
30
|
+
]}
|
|
31
|
+
value={tagFilter}
|
|
32
|
+
onValueChange={onTagFilterChange}
|
|
33
|
+
disabled={disabled}
|
|
34
|
+
/>
|
|
35
|
+
</Field>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
@@ -47,9 +47,11 @@ import { Badge } from './badge';
|
|
|
47
47
|
import { Field } from './field';
|
|
48
48
|
import { ErrorState } from './primitives';
|
|
49
49
|
import type { SelectOption } from './select';
|
|
50
|
-
import {
|
|
50
|
+
import { SelectedToolBadges } from './selected-tool-badges';
|
|
51
|
+
import { ALL_TAGS, TagFilterField } from './tag-filter-field';
|
|
52
|
+
import { ToolSelect } from './tool-select';
|
|
51
53
|
|
|
52
|
-
export { BADGES_NOTE } from './tool-
|
|
54
|
+
export { BADGES_NOTE } from './selected-tool-badges';
|
|
53
55
|
|
|
54
56
|
const MUTED_LINE = { margin: 0, color: 'var(--tai-color-text-muted)' } as const;
|
|
55
57
|
|
|
@@ -1,26 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* state and composes these; the option-label and grouping helpers live here too.
|
|
2
|
+
* `ToolPicker`'s tool `Select`: grouped by tag or flat, with the option-label and
|
|
3
|
+
* grouping helpers it renders from.
|
|
5
4
|
*/
|
|
6
5
|
import type { ReactNode } from 'react';
|
|
7
6
|
|
|
8
7
|
import { toolDisplayLabel } from '../hooks/useToolDisplayNames';
|
|
9
|
-
import { Badge } from './badge';
|
|
10
|
-
import { Field } from './field';
|
|
11
8
|
import { Select, type SelectGroup, type SelectOption } from './select';
|
|
12
|
-
import { Tooltip } from './tooltip';
|
|
13
|
-
|
|
14
|
-
/** The shared informational note every badge surface carries: declared, never enforced. */
|
|
15
|
-
export const BADGES_NOTE =
|
|
16
|
-
'Declared capability labels — informational only. They describe what the tool touches; the server never enforces them.';
|
|
17
9
|
|
|
18
10
|
const NO_DISPLAY_NAMES: Readonly<Record<string, string>> = {};
|
|
19
11
|
const UNTAGGED = 'Untagged';
|
|
20
|
-
// Radix `Select.Item` forbids an empty-string value, so the "no filter" choice
|
|
21
|
-
// uses a sentinel rather than ''. A tool literally tagged this string would just
|
|
22
|
-
// never be filtered out — harmless for a UI convenience whose authority is the server.
|
|
23
|
-
export const ALL_TAGS = '__all_tags__';
|
|
24
12
|
|
|
25
13
|
/** The group a tool sorts into: its alphabetically-first tag, else "Untagged". */
|
|
26
14
|
function groupFor(name: string, tagsByTool: Readonly<Record<string, readonly string[]>>): string {
|
|
@@ -135,61 +123,3 @@ export function ToolSelect({
|
|
|
135
123
|
/>
|
|
136
124
|
);
|
|
137
125
|
}
|
|
138
|
-
|
|
139
|
-
/** The tag filter: an "All tags" sentinel plus one option per distinct tag. */
|
|
140
|
-
export function TagFilterField({
|
|
141
|
-
allTags,
|
|
142
|
-
tagFilter,
|
|
143
|
-
onTagFilterChange,
|
|
144
|
-
disabled,
|
|
145
|
-
}: {
|
|
146
|
-
readonly allTags: readonly string[];
|
|
147
|
-
readonly tagFilter: string;
|
|
148
|
-
readonly onTagFilterChange: (value: string) => void;
|
|
149
|
-
readonly disabled: boolean | undefined;
|
|
150
|
-
}): ReactNode {
|
|
151
|
-
return (
|
|
152
|
-
<Field label="Filter by tag">
|
|
153
|
-
<Select
|
|
154
|
-
options={[
|
|
155
|
-
{ value: ALL_TAGS, label: 'All tags' },
|
|
156
|
-
...allTags.map((tag) => ({ value: tag, label: tag })),
|
|
157
|
-
]}
|
|
158
|
-
value={tagFilter}
|
|
159
|
-
onValueChange={onTagFilterChange}
|
|
160
|
-
disabled={disabled}
|
|
161
|
-
/>
|
|
162
|
-
</Field>
|
|
163
|
-
);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
/** The selected tool's DECLARED capability badges, read-only and informational.
|
|
167
|
-
* Renders nothing unless the selected tool carries badges. */
|
|
168
|
-
export function SelectedToolBadges({
|
|
169
|
-
value,
|
|
170
|
-
badgesByTool,
|
|
171
|
-
idPrefix,
|
|
172
|
-
}: {
|
|
173
|
-
readonly value: string | null;
|
|
174
|
-
readonly badgesByTool: Readonly<Record<string, readonly string[]>> | undefined;
|
|
175
|
-
readonly idPrefix: string;
|
|
176
|
-
}): ReactNode {
|
|
177
|
-
if (value === null || badgesByTool === undefined || (badgesByTool[value]?.length ?? 0) === 0) {
|
|
178
|
-
return null;
|
|
179
|
-
}
|
|
180
|
-
return (
|
|
181
|
-
<Tooltip content={BADGES_NOTE}>
|
|
182
|
-
<span
|
|
183
|
-
className="tai-row"
|
|
184
|
-
data-testid={`${idPrefix}-badges`}
|
|
185
|
-
style={{ gap: 'var(--tai-space-1)' }}
|
|
186
|
-
>
|
|
187
|
-
{(badgesByTool[value] ?? []).map((badge) => (
|
|
188
|
-
<Badge key={badge} variant="neutral">
|
|
189
|
-
{badge}
|
|
190
|
-
</Badge>
|
|
191
|
-
))}
|
|
192
|
-
</span>
|
|
193
|
-
</Tooltip>
|
|
194
|
-
);
|
|
195
|
-
}
|
package/src/extension-combos.ts
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* author `config` (`{ name, config }`) alongside bare-name elements. The editors
|
|
4
4
|
* hold the full config-bearing elements as their value, so config rides through an
|
|
5
5
|
* edit directly; these helpers project a combo to its bare extension names where a
|
|
6
|
-
* name-only view is needed (a picker's selection, a branch-tool name, a badge row)
|
|
6
|
+
* name-only view is needed (a picker's selection, a branch-tool name, a badge row)
|
|
7
|
+
* and compare or check combos by those names.
|
|
7
8
|
*/
|
|
8
9
|
import type { PresetExtensionElement } from '@tai42/api-client';
|
|
9
10
|
|
|
@@ -16,3 +17,16 @@ export function extensionElementName(element: PresetExtensionElement): string {
|
|
|
16
17
|
export function comboElementNames(combo: readonly PresetExtensionElement[]): string[] {
|
|
17
18
|
return combo.map(extensionElementName);
|
|
18
19
|
}
|
|
20
|
+
|
|
21
|
+
/** Two combos are equal when their NAME sequences match (config is not part of identity). */
|
|
22
|
+
export function sameNames(a: readonly string[], b: readonly string[]): boolean {
|
|
23
|
+
return a.length === b.length && a.every((name, index) => name === b[index]);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** The element names in a combo that are absent from the known catalog. */
|
|
27
|
+
export function unknownNames(
|
|
28
|
+
combo: readonly PresetExtensionElement[],
|
|
29
|
+
availableNames: ReadonlySet<string>,
|
|
30
|
+
): string[] {
|
|
31
|
+
return comboElementNames(combo).filter((name) => !availableNames.has(name));
|
|
32
|
+
}
|