@cadraos/sdk 0.3.16-dev.0 → 0.3.16-dev.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/chat/index.cjs +59 -18
- package/dist/chat/index.cjs.map +1 -1
- package/dist/chat/index.d.cts +27 -10
- package/dist/chat/index.d.ts +27 -10
- package/dist/chat/index.js +59 -18
- package/dist/chat/index.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +21 -8
- package/dist/index.d.ts +21 -8
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kanban/index.cjs +1 -1
- package/dist/kanban/index.cjs.map +1 -1
- package/dist/kanban/index.d.cts +21 -8
- package/dist/kanban/index.d.ts +21 -8
- package/dist/kanban/index.js +1 -1
- package/dist/kanban/index.js.map +1 -1
- package/dist/teams/index.cjs +1 -1
- package/dist/teams/index.cjs.map +1 -1
- package/dist/teams/index.d.cts +21 -8
- package/dist/teams/index.d.ts +21 -8
- package/dist/teams/index.js +1 -1
- package/dist/teams/index.js.map +1 -1
- package/package.json +1 -1
package/dist/chat/index.d.cts
CHANGED
|
@@ -831,16 +831,18 @@ interface ExecuteResponse {
|
|
|
831
831
|
status: ExecutionStatus;
|
|
832
832
|
}
|
|
833
833
|
/**
|
|
834
|
-
*
|
|
834
|
+
* Language code an agent message is stored and rendered in (e.g. `en`,
|
|
835
|
+
* `pt-br`). Each agent sets its own language list; see
|
|
836
|
+
* `AgentMessageList.languages`. Was `'en' | 'es' | 'id'` before p13.
|
|
835
837
|
*/
|
|
836
|
-
type AgentMessageLang =
|
|
838
|
+
type AgentMessageLang = string;
|
|
837
839
|
/**
|
|
838
840
|
* One saved agent message (e.g. `handoff.requested`), text per language.
|
|
839
841
|
*/
|
|
840
842
|
interface AgentMessage {
|
|
841
843
|
/** Lowercase dotted key, e.g. `chat.welcome` */
|
|
842
844
|
key: string;
|
|
843
|
-
/** Text per language
|
|
845
|
+
/** Text per language code */
|
|
844
846
|
text: Partial<Record<AgentMessageLang, string>>;
|
|
845
847
|
/** `{word}` placeholder names found in any language */
|
|
846
848
|
placeholders: string[];
|
|
@@ -855,12 +857,22 @@ interface AgentMessageList {
|
|
|
855
857
|
messages: AgentMessage[];
|
|
856
858
|
/** Every key the platform knows about, for pickers (saved or not) */
|
|
857
859
|
knownKeys: string[];
|
|
860
|
+
/**
|
|
861
|
+
* The agent's message languages, in display order. Missing from older
|
|
862
|
+
* servers; fall back to the languages seen in `messages[].text`.
|
|
863
|
+
*/
|
|
864
|
+
languages?: AgentMessageLang[];
|
|
865
|
+
/** The agent's default message language. Missing from older servers; treat as `en`. */
|
|
866
|
+
defaultLanguage?: AgentMessageLang;
|
|
858
867
|
}
|
|
859
868
|
/**
|
|
860
869
|
* Options for `client.agents.messages.render()`
|
|
861
870
|
*/
|
|
862
871
|
interface AgentMessageRenderOptions {
|
|
863
|
-
/**
|
|
872
|
+
/**
|
|
873
|
+
* Requested language. Server falls back: exact, then base (`pt-br` to `pt`),
|
|
874
|
+
* then the agent's default language, then `en`, then the first non-empty text.
|
|
875
|
+
*/
|
|
864
876
|
lang?: AgentMessageLang;
|
|
865
877
|
/** Values for `{word}` placeholders; unknown placeholders are left as-is */
|
|
866
878
|
vars?: Record<string, string | number>;
|
|
@@ -870,7 +882,7 @@ interface AgentMessageRenderOptions {
|
|
|
870
882
|
*/
|
|
871
883
|
interface AgentMessageRenderResult {
|
|
872
884
|
key: string;
|
|
873
|
-
/** The language actually rendered */
|
|
885
|
+
/** The language actually rendered (after fallback) */
|
|
874
886
|
lang: AgentMessageLang;
|
|
875
887
|
/** Filled text, or `null` when the agent has no message for this key */
|
|
876
888
|
text: string | null;
|
|
@@ -2821,8 +2833,9 @@ interface StreamImagesResult {
|
|
|
2821
2833
|
*
|
|
2822
2834
|
* Read-only access to an agent's saved messages (welcome, handoff, fallback
|
|
2823
2835
|
* copy, ...). Reached as `client.agents.messages`.
|
|
2824
|
-
* - list(): the agent's saved messages
|
|
2825
|
-
* - render(): one message filled with vars, in a language (falls back
|
|
2836
|
+
* - list(): the agent's saved messages, every known key, the agent's languages
|
|
2837
|
+
* - render(): one message filled with vars, in a language (server falls back:
|
|
2838
|
+
* exact, base, agent default, en, first non-empty; `lang` says which was used)
|
|
2826
2839
|
*/
|
|
2827
2840
|
|
|
2828
2841
|
declare class AgentMessagesAPI extends BaseResourceAPI {
|
|
@@ -2834,7 +2847,7 @@ declare class AgentMessagesAPI extends BaseResourceAPI {
|
|
|
2834
2847
|
*
|
|
2835
2848
|
* @example
|
|
2836
2849
|
* ```typescript
|
|
2837
|
-
* const { messages, knownKeys } = await client.agents.messages.list('agent-uuid');
|
|
2850
|
+
* const { messages, knownKeys, languages, defaultLanguage } = await client.agents.messages.list('agent-uuid');
|
|
2838
2851
|
* ```
|
|
2839
2852
|
*/
|
|
2840
2853
|
list(agentUuid: string): Promise<AgentMessageList>;
|
|
@@ -5282,6 +5295,8 @@ interface AgentMessagePickerLabels {
|
|
|
5282
5295
|
notSet: string;
|
|
5283
5296
|
useCustom: (key: string) => string;
|
|
5284
5297
|
invalidCustom: string;
|
|
5298
|
+
/** Accessible label of the preview-language select */
|
|
5299
|
+
language: string;
|
|
5285
5300
|
}
|
|
5286
5301
|
interface AgentMessagePickerProps {
|
|
5287
5302
|
client: AgentMessagePickerClient;
|
|
@@ -5291,12 +5306,14 @@ interface AgentMessagePickerProps {
|
|
|
5291
5306
|
onChange: (key: string) => void;
|
|
5292
5307
|
/** Let the user type a new dotted key */
|
|
5293
5308
|
allowCustom?: boolean;
|
|
5294
|
-
/**
|
|
5309
|
+
/** Starting preview language. Default: the agent's defaultLanguage, else en */
|
|
5295
5310
|
lang?: AgentMessageLang;
|
|
5311
|
+
/** Called when the user picks another preview language */
|
|
5312
|
+
onLangChange?: (lang: AgentMessageLang) => void;
|
|
5296
5313
|
labels?: Partial<AgentMessagePickerLabels>;
|
|
5297
5314
|
className?: string;
|
|
5298
5315
|
}
|
|
5299
|
-
declare function AgentMessagePicker({ client, agentUuid, value, onChange, allowCustom, lang, labels: labelOverrides, className, }: AgentMessagePickerProps): react_jsx_runtime.JSX.Element;
|
|
5316
|
+
declare function AgentMessagePicker({ client, agentUuid, value, onChange, allowCustom, lang, onLangChange, labels: labelOverrides, className, }: AgentMessagePickerProps): react_jsx_runtime.JSX.Element;
|
|
5300
5317
|
|
|
5301
5318
|
/**
|
|
5302
5319
|
* Agent message keys (p13) — lowercase dotted, e.g. `chat.welcome`.
|
package/dist/chat/index.d.ts
CHANGED
|
@@ -831,16 +831,18 @@ interface ExecuteResponse {
|
|
|
831
831
|
status: ExecutionStatus;
|
|
832
832
|
}
|
|
833
833
|
/**
|
|
834
|
-
*
|
|
834
|
+
* Language code an agent message is stored and rendered in (e.g. `en`,
|
|
835
|
+
* `pt-br`). Each agent sets its own language list; see
|
|
836
|
+
* `AgentMessageList.languages`. Was `'en' | 'es' | 'id'` before p13.
|
|
835
837
|
*/
|
|
836
|
-
type AgentMessageLang =
|
|
838
|
+
type AgentMessageLang = string;
|
|
837
839
|
/**
|
|
838
840
|
* One saved agent message (e.g. `handoff.requested`), text per language.
|
|
839
841
|
*/
|
|
840
842
|
interface AgentMessage {
|
|
841
843
|
/** Lowercase dotted key, e.g. `chat.welcome` */
|
|
842
844
|
key: string;
|
|
843
|
-
/** Text per language
|
|
845
|
+
/** Text per language code */
|
|
844
846
|
text: Partial<Record<AgentMessageLang, string>>;
|
|
845
847
|
/** `{word}` placeholder names found in any language */
|
|
846
848
|
placeholders: string[];
|
|
@@ -855,12 +857,22 @@ interface AgentMessageList {
|
|
|
855
857
|
messages: AgentMessage[];
|
|
856
858
|
/** Every key the platform knows about, for pickers (saved or not) */
|
|
857
859
|
knownKeys: string[];
|
|
860
|
+
/**
|
|
861
|
+
* The agent's message languages, in display order. Missing from older
|
|
862
|
+
* servers; fall back to the languages seen in `messages[].text`.
|
|
863
|
+
*/
|
|
864
|
+
languages?: AgentMessageLang[];
|
|
865
|
+
/** The agent's default message language. Missing from older servers; treat as `en`. */
|
|
866
|
+
defaultLanguage?: AgentMessageLang;
|
|
858
867
|
}
|
|
859
868
|
/**
|
|
860
869
|
* Options for `client.agents.messages.render()`
|
|
861
870
|
*/
|
|
862
871
|
interface AgentMessageRenderOptions {
|
|
863
|
-
/**
|
|
872
|
+
/**
|
|
873
|
+
* Requested language. Server falls back: exact, then base (`pt-br` to `pt`),
|
|
874
|
+
* then the agent's default language, then `en`, then the first non-empty text.
|
|
875
|
+
*/
|
|
864
876
|
lang?: AgentMessageLang;
|
|
865
877
|
/** Values for `{word}` placeholders; unknown placeholders are left as-is */
|
|
866
878
|
vars?: Record<string, string | number>;
|
|
@@ -870,7 +882,7 @@ interface AgentMessageRenderOptions {
|
|
|
870
882
|
*/
|
|
871
883
|
interface AgentMessageRenderResult {
|
|
872
884
|
key: string;
|
|
873
|
-
/** The language actually rendered */
|
|
885
|
+
/** The language actually rendered (after fallback) */
|
|
874
886
|
lang: AgentMessageLang;
|
|
875
887
|
/** Filled text, or `null` when the agent has no message for this key */
|
|
876
888
|
text: string | null;
|
|
@@ -2821,8 +2833,9 @@ interface StreamImagesResult {
|
|
|
2821
2833
|
*
|
|
2822
2834
|
* Read-only access to an agent's saved messages (welcome, handoff, fallback
|
|
2823
2835
|
* copy, ...). Reached as `client.agents.messages`.
|
|
2824
|
-
* - list(): the agent's saved messages
|
|
2825
|
-
* - render(): one message filled with vars, in a language (falls back
|
|
2836
|
+
* - list(): the agent's saved messages, every known key, the agent's languages
|
|
2837
|
+
* - render(): one message filled with vars, in a language (server falls back:
|
|
2838
|
+
* exact, base, agent default, en, first non-empty; `lang` says which was used)
|
|
2826
2839
|
*/
|
|
2827
2840
|
|
|
2828
2841
|
declare class AgentMessagesAPI extends BaseResourceAPI {
|
|
@@ -2834,7 +2847,7 @@ declare class AgentMessagesAPI extends BaseResourceAPI {
|
|
|
2834
2847
|
*
|
|
2835
2848
|
* @example
|
|
2836
2849
|
* ```typescript
|
|
2837
|
-
* const { messages, knownKeys } = await client.agents.messages.list('agent-uuid');
|
|
2850
|
+
* const { messages, knownKeys, languages, defaultLanguage } = await client.agents.messages.list('agent-uuid');
|
|
2838
2851
|
* ```
|
|
2839
2852
|
*/
|
|
2840
2853
|
list(agentUuid: string): Promise<AgentMessageList>;
|
|
@@ -5282,6 +5295,8 @@ interface AgentMessagePickerLabels {
|
|
|
5282
5295
|
notSet: string;
|
|
5283
5296
|
useCustom: (key: string) => string;
|
|
5284
5297
|
invalidCustom: string;
|
|
5298
|
+
/** Accessible label of the preview-language select */
|
|
5299
|
+
language: string;
|
|
5285
5300
|
}
|
|
5286
5301
|
interface AgentMessagePickerProps {
|
|
5287
5302
|
client: AgentMessagePickerClient;
|
|
@@ -5291,12 +5306,14 @@ interface AgentMessagePickerProps {
|
|
|
5291
5306
|
onChange: (key: string) => void;
|
|
5292
5307
|
/** Let the user type a new dotted key */
|
|
5293
5308
|
allowCustom?: boolean;
|
|
5294
|
-
/**
|
|
5309
|
+
/** Starting preview language. Default: the agent's defaultLanguage, else en */
|
|
5295
5310
|
lang?: AgentMessageLang;
|
|
5311
|
+
/** Called when the user picks another preview language */
|
|
5312
|
+
onLangChange?: (lang: AgentMessageLang) => void;
|
|
5296
5313
|
labels?: Partial<AgentMessagePickerLabels>;
|
|
5297
5314
|
className?: string;
|
|
5298
5315
|
}
|
|
5299
|
-
declare function AgentMessagePicker({ client, agentUuid, value, onChange, allowCustom, lang, labels: labelOverrides, className, }: AgentMessagePickerProps): react_jsx_runtime.JSX.Element;
|
|
5316
|
+
declare function AgentMessagePicker({ client, agentUuid, value, onChange, allowCustom, lang, onLangChange, labels: labelOverrides, className, }: AgentMessagePickerProps): react_jsx_runtime.JSX.Element;
|
|
5300
5317
|
|
|
5301
5318
|
/**
|
|
5302
5319
|
* Agent message keys (p13) — lowercase dotted, e.g. `chat.welcome`.
|
package/dist/chat/index.js
CHANGED
|
@@ -1841,7 +1841,7 @@ var AgentMessagesAPI = class extends BaseResourceAPI {
|
|
|
1841
1841
|
*
|
|
1842
1842
|
* @example
|
|
1843
1843
|
* ```typescript
|
|
1844
|
-
* const { messages, knownKeys } = await client.agents.messages.list('agent-uuid');
|
|
1844
|
+
* const { messages, knownKeys, languages, defaultLanguage } = await client.agents.messages.list('agent-uuid');
|
|
1845
1845
|
* ```
|
|
1846
1846
|
*/
|
|
1847
1847
|
async list(agentUuid) {
|
|
@@ -9666,10 +9666,24 @@ var DEFAULT_LABELS = {
|
|
|
9666
9666
|
empty: "No matching messages",
|
|
9667
9667
|
notSet: "not set",
|
|
9668
9668
|
useCustom: (key) => `Use "${key}"`,
|
|
9669
|
-
invalidCustom: "Keys are lowercase and dotted, like chat.welcome"
|
|
9669
|
+
invalidCustom: "Keys are lowercase and dotted, like chat.welcome",
|
|
9670
|
+
language: "Preview language"
|
|
9670
9671
|
};
|
|
9671
|
-
function previewOf(message, lang) {
|
|
9672
|
-
|
|
9672
|
+
function previewOf(message, lang, defaultLanguage = "en") {
|
|
9673
|
+
const base = lang.split("-")[0] ?? lang;
|
|
9674
|
+
for (const candidate of [lang, base, defaultLanguage, "en"]) {
|
|
9675
|
+
const text = message.text[candidate];
|
|
9676
|
+
if (text) return text;
|
|
9677
|
+
}
|
|
9678
|
+
return Object.values(message.text).find((t) => Boolean(t)) ?? null;
|
|
9679
|
+
}
|
|
9680
|
+
function languagesOf(list) {
|
|
9681
|
+
if (list.languages && list.languages.length > 0) return list.languages;
|
|
9682
|
+
const seen = /* @__PURE__ */ new Set([list.defaultLanguage ?? "en"]);
|
|
9683
|
+
for (const m of list.messages) {
|
|
9684
|
+
for (const [code, text] of Object.entries(m.text)) if (text) seen.add(code);
|
|
9685
|
+
}
|
|
9686
|
+
return [...seen];
|
|
9673
9687
|
}
|
|
9674
9688
|
function AgentMessagePicker({
|
|
9675
9689
|
client,
|
|
@@ -9677,7 +9691,8 @@ function AgentMessagePicker({
|
|
|
9677
9691
|
value,
|
|
9678
9692
|
onChange,
|
|
9679
9693
|
allowCustom = false,
|
|
9680
|
-
lang
|
|
9694
|
+
lang,
|
|
9695
|
+
onLangChange,
|
|
9681
9696
|
labels: labelOverrides,
|
|
9682
9697
|
className = ""
|
|
9683
9698
|
}) {
|
|
@@ -9685,6 +9700,13 @@ function AgentMessagePicker({
|
|
|
9685
9700
|
const [data, setData] = useState(null);
|
|
9686
9701
|
const [error, setError] = useState(false);
|
|
9687
9702
|
const [query, setQuery] = useState("");
|
|
9703
|
+
const [pickedLang, setPickedLang] = useState(null);
|
|
9704
|
+
useEffect(() => {
|
|
9705
|
+
setPickedLang(null);
|
|
9706
|
+
}, [lang, agentUuid]);
|
|
9707
|
+
const defaultLanguage = data?.defaultLanguage ?? "en";
|
|
9708
|
+
const languages = useMemo(() => data ? languagesOf(data) : [], [data]);
|
|
9709
|
+
const activeLang = pickedLang ?? lang ?? defaultLanguage;
|
|
9688
9710
|
useEffect(() => {
|
|
9689
9711
|
let cancelled = false;
|
|
9690
9712
|
setData(null);
|
|
@@ -9700,11 +9722,14 @@ function AgentMessagePicker({
|
|
|
9700
9722
|
}, [client, agentUuid]);
|
|
9701
9723
|
const items = useMemo(() => {
|
|
9702
9724
|
if (!data) return [];
|
|
9703
|
-
const saved = data.messages.map((m) => ({
|
|
9725
|
+
const saved = data.messages.map((m) => ({
|
|
9726
|
+
key: m.key,
|
|
9727
|
+
preview: previewOf(m, activeLang, defaultLanguage)
|
|
9728
|
+
}));
|
|
9704
9729
|
const savedKeys = new Set(saved.map((i) => i.key));
|
|
9705
9730
|
const unsaved = data.knownKeys.filter((k) => !savedKeys.has(k)).sort().map((key) => ({ key, preview: null }));
|
|
9706
9731
|
return [...saved, ...unsaved];
|
|
9707
|
-
}, [data,
|
|
9732
|
+
}, [data, activeLang, defaultLanguage]);
|
|
9708
9733
|
const needle = query.trim().toLowerCase();
|
|
9709
9734
|
const visible = needle ? items.filter(
|
|
9710
9735
|
(i) => i.key.includes(needle) || (i.preview?.toLowerCase().includes(needle) ?? false)
|
|
@@ -9712,18 +9737,34 @@ function AgentMessagePicker({
|
|
|
9712
9737
|
const custom = query.trim();
|
|
9713
9738
|
const showCustom = allowCustom && custom.length > 0 && !items.some((i) => i.key === custom);
|
|
9714
9739
|
const customValid = showCustom && isValidMessageKey(custom);
|
|
9740
|
+
const languageChoices = languages.includes(activeLang) ? languages : [...languages, activeLang];
|
|
9715
9741
|
return /* @__PURE__ */ jsxs("div", { className: `flex flex-col gap-2 text-sm ${className}`, children: [
|
|
9716
|
-
/* @__PURE__ */
|
|
9717
|
-
|
|
9718
|
-
|
|
9719
|
-
|
|
9720
|
-
|
|
9721
|
-
|
|
9722
|
-
|
|
9723
|
-
|
|
9724
|
-
|
|
9725
|
-
|
|
9726
|
-
|
|
9742
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
9743
|
+
/* @__PURE__ */ jsx(
|
|
9744
|
+
"input",
|
|
9745
|
+
{
|
|
9746
|
+
type: "search",
|
|
9747
|
+
value: query,
|
|
9748
|
+
onChange: (e) => setQuery(e.target.value),
|
|
9749
|
+
placeholder: labels.search,
|
|
9750
|
+
"aria-label": labels.search,
|
|
9751
|
+
className: "w-full min-w-0 flex-1 rounded-lg bg-gray-100 dark:bg-gray-800 px-3 py-2 text-gray-900 dark:text-gray-100 placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500"
|
|
9752
|
+
}
|
|
9753
|
+
),
|
|
9754
|
+
data && languages.length > 1 && /* @__PURE__ */ jsx(
|
|
9755
|
+
"select",
|
|
9756
|
+
{
|
|
9757
|
+
value: activeLang,
|
|
9758
|
+
onChange: (e) => {
|
|
9759
|
+
setPickedLang(e.target.value);
|
|
9760
|
+
onLangChange?.(e.target.value);
|
|
9761
|
+
},
|
|
9762
|
+
"aria-label": labels.language,
|
|
9763
|
+
className: "rounded-lg bg-gray-100 dark:bg-gray-800 px-2 py-2 font-mono text-xs text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500",
|
|
9764
|
+
children: languageChoices.map((code) => /* @__PURE__ */ jsx("option", { value: code, children: code }, code))
|
|
9765
|
+
}
|
|
9766
|
+
)
|
|
9767
|
+
] }),
|
|
9727
9768
|
error ? /* @__PURE__ */ jsx("p", { role: "alert", className: "px-1 text-red-500", children: labels.loadError }) : !data ? /* @__PURE__ */ jsxs("p", { className: "flex items-center gap-2 px-1 text-gray-500 dark:text-gray-400", children: [
|
|
9728
9769
|
/* @__PURE__ */ jsx(LoadingSpinner, { className: "h-4 w-4" }),
|
|
9729
9770
|
labels.loading
|