openmates 0.27.0-alpha.7 → 0.27.0-alpha.9
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/{chunk-CLOVZ7RX.js → chunk-GTS7R6VM.js} +296 -30
- package/dist/{cli-5j9Lsz2s.d.ts → cli-DPB5Qnz5.d.ts} +33 -8
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.d.ts +11 -7
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -16791,6 +16791,7 @@ var OpenMatesClient = class _OpenMatesClient {
|
|
|
16791
16791
|
);
|
|
16792
16792
|
}
|
|
16793
16793
|
async resolveWorkflowId(query, options = {}) {
|
|
16794
|
+
if (CANONICAL_UUID_PATTERN.test(query)) return query;
|
|
16794
16795
|
const workflows = await this.listWorkflows(options);
|
|
16795
16796
|
const exactId = workflows.find((workflow) => workflow.id === query);
|
|
16796
16797
|
if (exactId) return exactId.id;
|
|
@@ -16889,6 +16890,39 @@ var OpenMatesClient = class _OpenMatesClient {
|
|
|
16889
16890
|
}
|
|
16890
16891
|
return this.decryptWorkflowSlug(response.data.workflow, { personal: true });
|
|
16891
16892
|
}
|
|
16893
|
+
async saveWorkflowAsReusable(workflowId, options) {
|
|
16894
|
+
this.requireSession();
|
|
16895
|
+
if (!options.idempotencyKey.trim()) throw new Error("Workflow save-as-reusable requires a stable idempotencyKey");
|
|
16896
|
+
const response = await this.http.post(
|
|
16897
|
+
`/v1/workflows/${encodeURIComponent(workflowId)}/save-as-reusable`,
|
|
16898
|
+
{},
|
|
16899
|
+
{ ...this.getCliRequestHeaders(), "Idempotency-Key": options.idempotencyKey }
|
|
16900
|
+
);
|
|
16901
|
+
if (!response.ok || !response.data.workflow) throw new Error(`Workflow save-as-reusable failed with HTTP ${response.status}`);
|
|
16902
|
+
return this.decryptWorkflowSlug(response.data.workflow, { personal: true });
|
|
16903
|
+
}
|
|
16904
|
+
async workflowRunRouting(params) {
|
|
16905
|
+
const routing = {};
|
|
16906
|
+
if (params.sourceChatId !== void 0) routing.source_chat_id = await this.resolveRequiredChatId(params.sourceChatId, { personal: true });
|
|
16907
|
+
if (params.messageDestinationOverrides !== void 0) {
|
|
16908
|
+
routing.message_destination_overrides = Object.fromEntries(await Promise.all(
|
|
16909
|
+
Object.entries(params.messageDestinationOverrides).map(async ([nodeId, chatId]) => [nodeId, await this.resolveRequiredChatId(chatId, { personal: true })])
|
|
16910
|
+
));
|
|
16911
|
+
}
|
|
16912
|
+
if (params.returnOutputs !== void 0) routing.return_outputs = params.returnOutputs;
|
|
16913
|
+
return routing;
|
|
16914
|
+
}
|
|
16915
|
+
async runWorkflowOnce(params) {
|
|
16916
|
+
this.requireSession();
|
|
16917
|
+
if (!params.idempotencyKey.trim()) throw new Error("Workflow run-once requires a stable idempotencyKey");
|
|
16918
|
+
const response = await this.http.post(
|
|
16919
|
+
"/v1/workflows/run-once",
|
|
16920
|
+
{ title: params.title, graph: params.graph, input: params.input ?? {}, ...await this.workflowRunRouting(params) },
|
|
16921
|
+
{ ...this.getCliRequestHeaders(), "Idempotency-Key": params.idempotencyKey }
|
|
16922
|
+
);
|
|
16923
|
+
if (!response.ok || !response.data.workflow || !response.data.run) throw new Error(`Workflow run-once failed with HTTP ${response.status}`);
|
|
16924
|
+
return { workflow: await this.decryptWorkflowSlug(response.data.workflow, { personal: true }), run: response.data.run };
|
|
16925
|
+
}
|
|
16892
16926
|
async enableWorkflow(workflowId) {
|
|
16893
16927
|
return this.setWorkflowEnabled(workflowId, true);
|
|
16894
16928
|
}
|
|
@@ -16902,7 +16936,7 @@ var OpenMatesClient = class _OpenMatesClient {
|
|
|
16902
16936
|
}
|
|
16903
16937
|
const response = await this.http.post(
|
|
16904
16938
|
`/v1/workflows/${encodeURIComponent(workflowId)}/run`,
|
|
16905
|
-
{ mode: params.mode ?? "manual", input: params.input ?? {} },
|
|
16939
|
+
{ mode: params.mode ?? "manual", input: params.input ?? {}, ...await this.workflowRunRouting(params) },
|
|
16906
16940
|
{ ...this.getCliRequestHeaders(), "Idempotency-Key": params.idempotencyKey }
|
|
16907
16941
|
);
|
|
16908
16942
|
if (!response.ok || !response.data.run) {
|
|
@@ -30624,12 +30658,47 @@ var OpenMatesWorkflows = class {
|
|
|
30624
30658
|
if (!response.workflow) throw new OpenMatesApiError(500, { detail: "Workflow response missing workflow" });
|
|
30625
30659
|
return this.decryptWorkflowSlug(response.workflow);
|
|
30626
30660
|
}
|
|
30661
|
+
async saveAsReusable(workflowId, options) {
|
|
30662
|
+
if (!options.idempotencyKey.trim()) throw new OpenMatesConfigError("Workflow save-as-reusable requires a stable idempotencyKey");
|
|
30663
|
+
const resolvedWorkflowId = await this.resolveId(workflowId);
|
|
30664
|
+
const response = await this.client.request(
|
|
30665
|
+
`/v1/workflows/${encodeURIComponent(resolvedWorkflowId)}/save-as-reusable`,
|
|
30666
|
+
{},
|
|
30667
|
+
void 0,
|
|
30668
|
+
{ "Idempotency-Key": options.idempotencyKey }
|
|
30669
|
+
);
|
|
30670
|
+
if (!response.workflow) throw new OpenMatesApiError(500, { detail: "Workflow response missing workflow" });
|
|
30671
|
+
return this.decryptWorkflowSlug(response.workflow);
|
|
30672
|
+
}
|
|
30673
|
+
async runRouting(params) {
|
|
30674
|
+
const routing = {};
|
|
30675
|
+
if (params.sourceChatId !== void 0) routing.source_chat_id = await resolveSdkChatId(this.client, params.sourceChatId);
|
|
30676
|
+
if (params.messageDestinationOverrides !== void 0) {
|
|
30677
|
+
routing.message_destination_overrides = Object.fromEntries(await Promise.all(
|
|
30678
|
+
Object.entries(params.messageDestinationOverrides).map(async ([nodeId, chatId]) => [nodeId, await resolveSdkChatId(this.client, chatId)])
|
|
30679
|
+
));
|
|
30680
|
+
}
|
|
30681
|
+
if (params.returnOutputs !== void 0) routing.return_outputs = params.returnOutputs;
|
|
30682
|
+
return routing;
|
|
30683
|
+
}
|
|
30684
|
+
async runOnce(params) {
|
|
30685
|
+
if (!params.idempotencyKey.trim()) throw new OpenMatesConfigError("Workflow run-once requires a stable idempotencyKey");
|
|
30686
|
+
const response = await this.client.request(
|
|
30687
|
+
"/v1/workflows/run-once",
|
|
30688
|
+
{ title: params.title, graph: params.graph, input: params.input ?? {}, ...await this.runRouting(params) },
|
|
30689
|
+
void 0,
|
|
30690
|
+
{ "Idempotency-Key": params.idempotencyKey }
|
|
30691
|
+
);
|
|
30692
|
+
if (!response.workflow || !response.run) throw new OpenMatesApiError(500, { detail: "Workflow run-once response missing workflow or run" });
|
|
30693
|
+
return { workflow: await this.decryptWorkflowSlug(response.workflow), run: response.run };
|
|
30694
|
+
}
|
|
30627
30695
|
async run(workflowId, params) {
|
|
30628
30696
|
if (!params.idempotencyKey.trim()) throw new OpenMatesConfigError("Workflow run requires a stable idempotencyKey");
|
|
30629
30697
|
const resolvedWorkflowId = await this.resolveId(workflowId);
|
|
30630
30698
|
const response = await this.client.request(`/v1/workflows/${encodeURIComponent(resolvedWorkflowId)}/run`, {
|
|
30631
30699
|
mode: params.mode ?? "manual",
|
|
30632
|
-
input: params.input ?? {}
|
|
30700
|
+
input: params.input ?? {},
|
|
30701
|
+
...await this.runRouting(params)
|
|
30633
30702
|
}, void 0, { "Idempotency-Key": params.idempotencyKey });
|
|
30634
30703
|
if (!response.run) throw new OpenMatesApiError(500, { detail: "Workflow response missing run" });
|
|
30635
30704
|
return response.run;
|
|
@@ -31338,7 +31407,7 @@ function assertPortable(value) {
|
|
|
31338
31407
|
}
|
|
31339
31408
|
function remapGraph(graph, ids) {
|
|
31340
31409
|
const escaped = Array.from(ids.keys()).sort((a, b) => b.length - a.length).map((id) => id.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
|
|
31341
|
-
const references = escaped.length ? new RegExp(`(\\$nodes\\.|\\{\\{\\s*steps\\.)(${escaped.join("|")})(?=[.}\\s]|$)`, "g") : null;
|
|
31410
|
+
const references = escaped.length ? new RegExp(`(\\$nodes\\.|\\{\\{\\s*steps\\.|\\$items\\.|\\{\\{\\s*items\\.)(${escaped.join("|")})(?=[.}\\s]|$)`, "g") : null;
|
|
31342
31411
|
function visit(value) {
|
|
31343
31412
|
if (typeof value === "string") return references ? value.replace(references, (_match, prefix, id) => prefix + ids.get(id)) : value;
|
|
31344
31413
|
if (Array.isArray(value)) return value.map((item) => visit(item));
|
|
@@ -60772,6 +60841,15 @@ Only output the final Markdown table. Do NOT include explanations, notes, or any
|
|
|
60772
60841
|
manual_intro: {
|
|
60773
60842
|
text: "Use this skill directly by entering your request below."
|
|
60774
60843
|
},
|
|
60844
|
+
requirements: {
|
|
60845
|
+
text: "Requirements"
|
|
60846
|
+
},
|
|
60847
|
+
optional: {
|
|
60848
|
+
text: "(optional)"
|
|
60849
|
+
},
|
|
60850
|
+
requirements_placeholder: {
|
|
60851
|
+
text: "Describe what the results should match."
|
|
60852
|
+
},
|
|
60775
60853
|
via: {
|
|
60776
60854
|
text: "via"
|
|
60777
60855
|
},
|
|
@@ -60973,6 +61051,21 @@ Only output the final Markdown table. Do NOT include explanations, notes, or any
|
|
|
60973
61051
|
request_error: {
|
|
60974
61052
|
text: "The request could not finish. You can try again."
|
|
60975
61053
|
},
|
|
61054
|
+
saving: {
|
|
61055
|
+
text: "Saving results\u2026"
|
|
61056
|
+
},
|
|
61057
|
+
saved: {
|
|
61058
|
+
text: "Results saved"
|
|
61059
|
+
},
|
|
61060
|
+
save_failed: {
|
|
61061
|
+
text: "Results are available. Saving failed."
|
|
61062
|
+
},
|
|
61063
|
+
retry_save: {
|
|
61064
|
+
text: "Retry saving"
|
|
61065
|
+
},
|
|
61066
|
+
saving_results: {
|
|
61067
|
+
text: "Results awaiting save"
|
|
61068
|
+
},
|
|
60976
61069
|
viewer_read_only: {
|
|
60977
61070
|
text: "Your team role allows viewing results. Ask a team member to run this skill."
|
|
60978
61071
|
},
|
|
@@ -81773,6 +81866,108 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
|
|
|
81773
81866
|
if_unsure: {
|
|
81774
81867
|
text: "If unsure"
|
|
81775
81868
|
},
|
|
81869
|
+
check_result: {
|
|
81870
|
+
text: "Result"
|
|
81871
|
+
},
|
|
81872
|
+
check_result_boolean: {
|
|
81873
|
+
text: "True or False"
|
|
81874
|
+
},
|
|
81875
|
+
check_result_options: {
|
|
81876
|
+
text: "Multiple choice"
|
|
81877
|
+
},
|
|
81878
|
+
check_selection_mode: {
|
|
81879
|
+
text: "Select"
|
|
81880
|
+
},
|
|
81881
|
+
check_select_one: {
|
|
81882
|
+
text: "Exactly one"
|
|
81883
|
+
},
|
|
81884
|
+
check_select_multiple: {
|
|
81885
|
+
text: "All that apply"
|
|
81886
|
+
},
|
|
81887
|
+
check_option_name: {
|
|
81888
|
+
text: "Option name"
|
|
81889
|
+
},
|
|
81890
|
+
check_option_description: {
|
|
81891
|
+
text: "Select when (optional)"
|
|
81892
|
+
},
|
|
81893
|
+
add_option: {
|
|
81894
|
+
text: "Add option"
|
|
81895
|
+
},
|
|
81896
|
+
remove_option: {
|
|
81897
|
+
text: "Remove option"
|
|
81898
|
+
},
|
|
81899
|
+
if_no_match: {
|
|
81900
|
+
text: "If none match"
|
|
81901
|
+
},
|
|
81902
|
+
selected: {
|
|
81903
|
+
text: "Selected"
|
|
81904
|
+
},
|
|
81905
|
+
no_match: {
|
|
81906
|
+
text: "No match"
|
|
81907
|
+
},
|
|
81908
|
+
ai_check_options_guidance: {
|
|
81909
|
+
text: "Choose from the named options using earlier results. A variable alone is enough; an instruction is optional. Unsure is used when evidence is missing."
|
|
81910
|
+
},
|
|
81911
|
+
branch_mapping_required: {
|
|
81912
|
+
text: "This branch contains steps. Move or remove those steps before changing its result or deleting it."
|
|
81913
|
+
},
|
|
81914
|
+
for_each: {
|
|
81915
|
+
text: "For each"
|
|
81916
|
+
},
|
|
81917
|
+
for_each_items: {
|
|
81918
|
+
text: "List to process"
|
|
81919
|
+
},
|
|
81920
|
+
for_each_max_items: {
|
|
81921
|
+
text: "Maximum items"
|
|
81922
|
+
},
|
|
81923
|
+
for_each_advanced_limits: {
|
|
81924
|
+
text: "Advanced limits"
|
|
81925
|
+
},
|
|
81926
|
+
for_each_duration: {
|
|
81927
|
+
text: "Total time limit (seconds)"
|
|
81928
|
+
},
|
|
81929
|
+
for_each_credits: {
|
|
81930
|
+
text: "Credit limit"
|
|
81931
|
+
},
|
|
81932
|
+
for_each_timeout: {
|
|
81933
|
+
text: "Time limit per item (seconds)"
|
|
81934
|
+
},
|
|
81935
|
+
for_each_limits: {
|
|
81936
|
+
text: "Processes items one at a time. Defaults: 100 items, 300 seconds, 100 credits and 60 seconds per item."
|
|
81937
|
+
},
|
|
81938
|
+
for_each_array_required: {
|
|
81939
|
+
text: "Choose an earlier list and a maximum of 1 to 100 items."
|
|
81940
|
+
},
|
|
81941
|
+
for_each_body: {
|
|
81942
|
+
text: "For each item"
|
|
81943
|
+
},
|
|
81944
|
+
this_item: {
|
|
81945
|
+
text: "This item"
|
|
81946
|
+
},
|
|
81947
|
+
start_input: {
|
|
81948
|
+
text: "Start input"
|
|
81949
|
+
},
|
|
81950
|
+
item_number: {
|
|
81951
|
+
text: "Item"
|
|
81952
|
+
},
|
|
81953
|
+
chat_actions: {
|
|
81954
|
+
text: "Workflow actions"
|
|
81955
|
+
},
|
|
81956
|
+
chat_open_workflow: {
|
|
81957
|
+
text: "Open workflow"
|
|
81958
|
+
},
|
|
81959
|
+
chat_save_reusable: {
|
|
81960
|
+
text: "Save as reusable"
|
|
81961
|
+
},
|
|
81962
|
+
chat_open_saved_copy: {
|
|
81963
|
+
text: "Open saved copy"
|
|
81964
|
+
},
|
|
81965
|
+
chat_snapshot_note: {
|
|
81966
|
+
text: "Showing the workflow saved with this chat. Open the Workflows workspace to edit it."
|
|
81967
|
+
},
|
|
81968
|
+
chat_copy_failed: {
|
|
81969
|
+
text: "Could not save this workflow."
|
|
81970
|
+
},
|
|
81776
81971
|
if: {
|
|
81777
81972
|
text: "If"
|
|
81778
81973
|
},
|
|
@@ -85938,6 +86133,16 @@ async function createTuiChatProject(state, client2, chatIds) {
|
|
|
85938
86133
|
// src/tuiLayout.ts
|
|
85939
86134
|
var WORKSPACES = ["chats", "apps", "projects", "workflows", "tasks"];
|
|
85940
86135
|
var DEFAULT_CHAT_BACKGROUND = "#4867cd";
|
|
86136
|
+
var CONTENT_MAX_COLUMNS = 100;
|
|
86137
|
+
function workspaceGeometry(state, rawWidth) {
|
|
86138
|
+
const width = Math.max(1, Math.floor(rawWidth));
|
|
86139
|
+
const gutter = Math.min(2, Math.floor((width - 1) / 2));
|
|
86140
|
+
const sidebarWidth = state.sidebarOpen && width >= 90 && !state.form && !state.paletteOpen ? 27 : 0;
|
|
86141
|
+
const paneWidth = Math.max(1, width - gutter * 2 - sidebarWidth);
|
|
86142
|
+
const contentWidth = Math.min(CONTENT_MAX_COLUMNS, paneWidth);
|
|
86143
|
+
const inset = Math.floor((paneWidth - contentWidth) / 2);
|
|
86144
|
+
return { width, gutter, sidebarWidth, paneWidth, contentWidth, inset };
|
|
86145
|
+
}
|
|
85941
86146
|
function chatBackground(category) {
|
|
85942
86147
|
return category && CATEGORY_GRADIENTS[category]?.start || DEFAULT_CHAT_BACKGROUND;
|
|
85943
86148
|
}
|
|
@@ -86001,29 +86206,24 @@ function overlayLines(state, width, height) {
|
|
|
86001
86206
|
return rows2;
|
|
86002
86207
|
}
|
|
86003
86208
|
function renderWorkspaceFrame(state, rawWidth, rawHeight, body, options = {}) {
|
|
86004
|
-
const
|
|
86209
|
+
const { gutter, sidebarWidth, paneWidth, contentWidth, inset } = workspaceGeometry(state, rawWidth);
|
|
86210
|
+
const height = Math.max(1, Math.floor(rawHeight));
|
|
86005
86211
|
const mode = options.colorMode ?? "none";
|
|
86006
86212
|
const ascii = options.ascii ?? false;
|
|
86007
|
-
const inner = Math.max(1, width - 4);
|
|
86008
86213
|
const line = ascii ? "-" : "\u2500", vertical = ascii ? "|" : "\u2502";
|
|
86009
|
-
const
|
|
86010
|
-
const top = border(ascii ? "+" : "\u256D", ascii ? "+" : "\u256E");
|
|
86011
|
-
const bottom = border(ascii ? "+" : "\u2570", ascii ? "+" : "\u256F");
|
|
86012
|
-
const divider = border(ascii ? "+" : "\u251C", ascii ? "+" : "\u2524");
|
|
86013
|
-
const box = (text4, style) => `${vertical} ${style ?? padCells(text4, inner)} ${vertical}`;
|
|
86214
|
+
const place = (rendered, side2 = " ".repeat(sidebarWidth)) => " ".repeat(gutter) + side2 + " ".repeat(inset) + rendered + " ".repeat(paneWidth - inset - contentWidth + gutter);
|
|
86014
86215
|
const labels = WORKSPACES.map((w, i) => state.workspace === w ? `[${titleCase(w)}]` : state.focus === "navigation" && i === state.navigationIndex ? `>${titleCase(w)}<` : titleCase(w)).join(" ");
|
|
86015
86216
|
const title = state.activeChat?.title && state.workspace === "chats" ? ` \xB7 ${state.activeChat.title}` : "";
|
|
86016
|
-
const nav =
|
|
86017
|
-
const
|
|
86217
|
+
const nav = contentWidth >= 90 ? `OpenMates ${labels}${title}` : `OpenMates [${titleCase(state.workspace)}] ${state.sidebarOpen ? "Sidebar open" : "Ctrl+B sidebar"}${title}`;
|
|
86218
|
+
const inputWidth = Math.max(1, contentWidth - 6);
|
|
86219
|
+
const inputLines = state.input.split("\n").flatMap((text4) => wrapCells(text4, inputWidth));
|
|
86018
86220
|
const showComposer = state.workspace !== "apps" || state.focus === "composer" || Boolean(state.input);
|
|
86019
86221
|
const composerRows = showComposer ? Math.min(3, Math.max(1, inputLines.length)) : 0;
|
|
86020
|
-
const bodyHeight = Math.max(1, height -
|
|
86222
|
+
const bodyHeight = Math.max(1, height - 2 - (showComposer ? composerRows + 3 : 1));
|
|
86021
86223
|
const overlay = state.form || state.paletteOpen;
|
|
86022
86224
|
const sidebar = state.sidebarOpen && !overlay;
|
|
86023
|
-
const sidebarWidth = sidebar && width >= 90 ? 27 : 0;
|
|
86024
|
-
const contentWidth = Math.max(1, inner - sidebarWidth);
|
|
86025
86225
|
const sidebarOverlay = sidebar && !sidebarWidth;
|
|
86026
|
-
let content = overlay ? overlayLines(state,
|
|
86226
|
+
let content = overlay ? overlayLines(state, contentWidth, bodyHeight) : sidebarOverlay ? sidebarLines(state) : body;
|
|
86027
86227
|
const stickyCount = !overlay && !sidebarOverlay ? Math.min(options.stickyRows ?? 0, Math.max(0, bodyHeight - 8)) : 0;
|
|
86028
86228
|
const fixed = content.slice(0, stickyCount);
|
|
86029
86229
|
content = content.slice(stickyCount);
|
|
@@ -86065,8 +86265,8 @@ function renderWorkspaceFrame(state, rawWidth, rawHeight, body, options = {}) {
|
|
|
86065
86265
|
const raw = terminalText(lineText(value)).replace(/\n/g, " ");
|
|
86066
86266
|
let rendered = padCells(raw, contentWidth);
|
|
86067
86267
|
if (style && !overlay && !sidebarOverlay) {
|
|
86068
|
-
const
|
|
86069
|
-
const span = Math.max(1, contentWidth - 2 *
|
|
86268
|
+
const inset2 = Math.max(0, Math.min(Math.floor(contentWidth / 2) - 1, style.inset ?? 0));
|
|
86269
|
+
const span = Math.max(1, contentWidth - 2 * inset2);
|
|
86070
86270
|
if (style.spans) {
|
|
86071
86271
|
let remaining = span;
|
|
86072
86272
|
rendered = "";
|
|
@@ -86076,19 +86276,34 @@ function renderWorkspaceFrame(state, rawWidth, rawHeight, body, options = {}) {
|
|
|
86076
86276
|
remaining -= size;
|
|
86077
86277
|
if (!remaining) break;
|
|
86078
86278
|
}
|
|
86079
|
-
rendered = " ".repeat(
|
|
86080
|
-
} else rendered = " ".repeat(
|
|
86279
|
+
rendered = " ".repeat(inset2) + rendered + " ".repeat(remaining + inset2);
|
|
86280
|
+
} else rendered = " ".repeat(inset2) + (style.background ? backgroundLine(raw, span, style.background, mode, style.bold) : foreground(padCells(raw, span), style.color ?? "#e6e6e6", mode, style.bold)) + " ".repeat(inset2);
|
|
86081
86281
|
} else if (!overlay && !sidebarOverlay && index < heroRows) rendered = backgroundLine(raw, contentWidth, background, mode);
|
|
86082
86282
|
else if (raw.startsWith("> ") || raw.includes("\u203A")) rendered = foreground(rendered, "#ff553b", mode, true);
|
|
86083
86283
|
else if (/^(You|Sophia|Tasks|Projects|Workflows|Recent chats|Suggestions|Actions)$/.test(raw)) rendered = foreground(rendered, "#5a85eb", mode, true);
|
|
86084
|
-
|
|
86085
|
-
rows2.push(
|
|
86284
|
+
const sidebarRow = sidebarWidth ? foreground(padCells(side[i] ?? "", sidebarWidth - 2), "#cfcfcf", mode) + `${vertical} ` : void 0;
|
|
86285
|
+
rows2.push(place(rendered, sidebarRow));
|
|
86086
86286
|
}
|
|
86087
86287
|
const placeholder = state.screen === "example" ? "Continue from this example, or ask your own question..." : state.workspace === "chats" ? state.screen === "chat" ? "Ask a follow-up, use @file, or type /help" : "Ask anything..." : state.workspace === "projects" ? "Name a new project \xB7 /search to browse" : state.workspace === "workflows" ? "Describe new workflow \xB7 /search to browse" : state.workspace === "tasks" ? "Add or update tasks \xB7 /search to browse" : "Search apps or type / for actions";
|
|
86088
|
-
const composer = showComposer ? inputLines.slice(-composerRows).map((text4, i) => box(`${i ? " " : "> "}${text4 || (!state.input ? placeholder : "")}`)) : [];
|
|
86089
86288
|
const hint = state.status && state.screen !== "status" ? `${state.status} \xB7 ${workspaceHint(state)}` : workspaceHint(state);
|
|
86090
|
-
const
|
|
86091
|
-
|
|
86289
|
+
const hintColor = state.focus === "composer" ? "#a0a0a0" : "#ff553b";
|
|
86290
|
+
const composer = [];
|
|
86291
|
+
if (showComposer) {
|
|
86292
|
+
const inputRows = inputLines.slice(-composerRows).map((text4, i) => `${i ? " " : "> "}${text4 || (!state.input ? placeholder : "")}`);
|
|
86293
|
+
if (contentWidth < 6) composer.push(...inputRows.map((text4) => place(padCells(text4, contentWidth))), place(foreground(padCells(hint, contentWidth), hintColor, mode)), place(" ".repeat(contentWidth)), place(" ".repeat(contentWidth)));
|
|
86294
|
+
else {
|
|
86295
|
+
const edge = (left, right) => place(foreground(left + line.repeat(contentWidth - 2) + right, "#6b6b6b", mode));
|
|
86296
|
+
const inputRow = (text4, color) => place(foreground(vertical, "#6b6b6b", mode) + " " + foreground(padCells(text4, contentWidth - 4), color ?? "#e6e6e6", mode) + " " + foreground(vertical, "#6b6b6b", mode));
|
|
86297
|
+
composer.push(edge(ascii ? "+" : "\u256D", ascii ? "+" : "\u256E"), ...inputRows.map((text4) => inputRow(text4)), inputRow(hint, hintColor), edge(ascii ? "+" : "\u2570", ascii ? "+" : "\u256F"));
|
|
86298
|
+
}
|
|
86299
|
+
}
|
|
86300
|
+
const frame = [
|
|
86301
|
+
place(foreground(padCells(nav, contentWidth), "#cfcfcf", mode, true)),
|
|
86302
|
+
place(" ".repeat(contentWidth)),
|
|
86303
|
+
...rows2,
|
|
86304
|
+
...showComposer ? composer : [place(foreground(padCells(hint, contentWidth), hintColor, mode))]
|
|
86305
|
+
];
|
|
86306
|
+
return frame.slice(0, height).join("\n");
|
|
86092
86307
|
}
|
|
86093
86308
|
function titleCase(value) {
|
|
86094
86309
|
return value.charAt(0).toUpperCase() + value.slice(1);
|
|
@@ -87284,8 +87499,7 @@ function rankExamples(examples, interests) {
|
|
|
87284
87499
|
}).sort((a, b) => b.score - a.score || a.index - b.index).map((entry) => entry.example);
|
|
87285
87500
|
}
|
|
87286
87501
|
function renderTuiFrame(state, width, height, options = {}) {
|
|
87287
|
-
const
|
|
87288
|
-
const bodyWidth = Math.max(1, width - 4 - sidebarWidth);
|
|
87502
|
+
const bodyWidth = workspaceGeometry(state, width).contentWidth;
|
|
87289
87503
|
const stickyRows = state.screen === "project" && state.activeProject ? renderProjectIdentity(state.activeProject, { width: bodyWidth }).length + renderProjectTabs(state.projectTab, bodyWidth).length : state.screen === "app" && state.activeApp ? renderTuiAppIdentity(state.activeApp, bodyWidth).length + renderTuiAppTabs(state.appTab, bodyWidth).length : state.screen === "app-skill" && state.activeAppSkill ? renderTuiAppsSkillIdentity(state.activeAppSkill, bodyWidth).length + renderTuiAppsSkillTabs(state.appSkillTab, bodyWidth).length : state.screen === "workflow" && state.activeWorkflow ? renderWorkflowIdentity(state.activeWorkflow, { width: bodyWidth, run: state.workflowTab === "runs" ? state.workflowRuns[state.selectedWorkflowRunIndex] : void 0 }).length + (bodyWidth < 36 ? 7 : 4) : 0;
|
|
87290
87504
|
return renderWorkspaceFrame(state, width, height, renderBody(state, bodyWidth, height), { ...options, stickyRows, headerRows: state.screen === "chat" || state.screen === "example" ? renderChatHeader(state, bodyWidth).length : void 0 });
|
|
87291
87505
|
}
|
|
@@ -88516,7 +88730,7 @@ async function handleWorkspaceKey(context, chunk, key) {
|
|
|
88516
88730
|
}
|
|
88517
88731
|
}
|
|
88518
88732
|
if (state.focus === "content" && (state.screen === "task" || state.screen === "tasks")) {
|
|
88519
|
-
if (state.screen === "tasks" && (key.name === "left" || key.name === "right") &&
|
|
88733
|
+
if (state.screen === "tasks" && (key.name === "left" || key.name === "right") && workspaceGeometry(state, context.terminal.width).contentWidth < 110) {
|
|
88520
88734
|
const selected = selectedTask(state), current = TASK_STATUSES.indexOf(state.taskStatusFilter || selected?.status || "todo");
|
|
88521
88735
|
state.taskStatusFilter = TASK_STATUSES[(current + (key.name === "left" ? -1 : 1) + TASK_STATUSES.length) % TASK_STATUSES.length];
|
|
88522
88736
|
state.selectedIndex = 0;
|
|
@@ -96757,6 +96971,7 @@ async function tryResolveWorkflow(client2, target, flags) {
|
|
|
96757
96971
|
return singleExactNameMatch(workflows, target, (workflow) => workflow.title);
|
|
96758
96972
|
}
|
|
96759
96973
|
async function requiredResolvedWorkflowId(client2, target, flags, _action) {
|
|
96974
|
+
if (/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(target)) return target;
|
|
96760
96975
|
const workflow = await tryResolveWorkflow(client2, target, flags);
|
|
96761
96976
|
if (!workflow) throw new Error(`Workflow '${target}' not found.`);
|
|
96762
96977
|
return workflow.id;
|
|
@@ -101332,6 +101547,52 @@ async function handleWorkflows(client2, subcommand, rest, flags, redactor) {
|
|
|
101332
101547
|
}
|
|
101333
101548
|
return;
|
|
101334
101549
|
}
|
|
101550
|
+
if (subcommand === "save-as-reusable") {
|
|
101551
|
+
const workflowId = rest[0] ? await requiredResolvedWorkflowId(client2, rest[0], flags, "save-as-reusable") : void 0;
|
|
101552
|
+
if (!workflowId) throw new Error("Missing workflow ID. Example: openmates workflows save-as-reusable <id>");
|
|
101553
|
+
const idempotencyKey = typeof flags["idempotency-key"] === "string" ? flags["idempotency-key"] : "";
|
|
101554
|
+
if (!idempotencyKey) throw new Error("Missing --idempotency-key for workflow save-as-reusable.");
|
|
101555
|
+
const workflow = await client2.saveWorkflowAsReusable(workflowId, { idempotencyKey });
|
|
101556
|
+
if (flags.json === true) printJson2(workflow);
|
|
101557
|
+
else printWorkflowDetail(workflow);
|
|
101558
|
+
return;
|
|
101559
|
+
}
|
|
101560
|
+
const runRouting = () => ({
|
|
101561
|
+
...typeof flags["source-chat"] === "string" ? { sourceChatId: flags["source-chat"] } : {},
|
|
101562
|
+
...typeof flags["message-destination-overrides"] === "string" ? { messageDestinationOverrides: parseJsonFlag(flags["message-destination-overrides"], "--message-destination-overrides") } : {},
|
|
101563
|
+
...typeof flags["return-outputs"] === "string" ? { returnOutputs: parseJsonFlag(flags["return-outputs"], "--return-outputs") } : {}
|
|
101564
|
+
});
|
|
101565
|
+
if (subcommand === "run-once") {
|
|
101566
|
+
const titleFlag = typeof flags.title === "string" ? flags.title.trim() : "";
|
|
101567
|
+
const graphFlag = typeof flags.graph === "string" ? flags.graph : "";
|
|
101568
|
+
const fileFlag = typeof flags.file === "string" ? flags.file : "";
|
|
101569
|
+
if (Boolean(graphFlag) === Boolean(fileFlag)) throw new Error("Specify exactly one of --graph JSON or --file definition.workflow.yml for run-once.");
|
|
101570
|
+
let graph;
|
|
101571
|
+
let title = titleFlag;
|
|
101572
|
+
if (fileFlag) {
|
|
101573
|
+
assertWorkflowFilePath(fileFlag);
|
|
101574
|
+
if (statSync11(fileFlag).size > WORKFLOW_FILE_MAX_BYTES) throw new Error("Workflow file exceeds the size limit.");
|
|
101575
|
+
const yaml = parseYamlDocument(readFileSync24(fileFlag, "utf8"), { uniqueKeys: true, strict: true });
|
|
101576
|
+
if (yaml.errors.length > 0) throw new Error(`Invalid workflow YAML: ${yaml.errors[0].message}`);
|
|
101577
|
+
const document = validateWorkflowFile(yaml.toJS({ maxAliasCount: 20 }));
|
|
101578
|
+
graph = document.workflow.graph;
|
|
101579
|
+
title ||= document.workflow.title;
|
|
101580
|
+
} else graph = parseJsonFlag(graphFlag, "--graph");
|
|
101581
|
+
if (!title) throw new Error("Missing --title for workflow run-once.");
|
|
101582
|
+
const idempotencyKey = typeof flags["idempotency-key"] === "string" ? flags["idempotency-key"] : "";
|
|
101583
|
+
if (!idempotencyKey) throw new Error("Missing --idempotency-key for workflow run-once.");
|
|
101584
|
+
const sourceChatId = flags["source-chat"];
|
|
101585
|
+
if (typeof sourceChatId !== "string" || !sourceChatId) throw new Error("Missing --source-chat for workflow run-once.");
|
|
101586
|
+
const input = typeof flags.input === "string" ? parseJsonFlag(flags.input, "--input") : {};
|
|
101587
|
+
const result = await client2.runWorkflowOnce({ title, graph, idempotencyKey, input, ...runRouting(), sourceChatId });
|
|
101588
|
+
if (flags.wait === true) result.run = await waitForWorkflowRun(client2, result.workflow.id, result.run);
|
|
101589
|
+
if (flags.json === true) printJson2(result);
|
|
101590
|
+
else {
|
|
101591
|
+
printWorkflowDetail(result.workflow);
|
|
101592
|
+
printWorkflowRun(result.run);
|
|
101593
|
+
}
|
|
101594
|
+
return;
|
|
101595
|
+
}
|
|
101335
101596
|
if (subcommand === "run") {
|
|
101336
101597
|
const workflowId = rest[0] ? await requiredResolvedWorkflowId(client2, rest[0], flags, "run") : void 0;
|
|
101337
101598
|
if (!workflowId) throw new Error("Missing workflow ID. Example: openmates workflows run <id>");
|
|
@@ -101339,7 +101600,7 @@ async function handleWorkflows(client2, subcommand, rest, flags, redactor) {
|
|
|
101339
101600
|
if (!idempotencyKey) throw new Error("Missing --idempotency-key. Reuse this stable key when retrying the same workflow run.");
|
|
101340
101601
|
const mode = flags.mode === "test" ? "test" : "manual";
|
|
101341
101602
|
const input = typeof flags.input === "string" ? parseJsonFlag(flags.input, "--input") : {};
|
|
101342
|
-
let run = await client2.runWorkflow(workflowId, { idempotencyKey, mode, input });
|
|
101603
|
+
let run = await client2.runWorkflow(workflowId, { idempotencyKey, mode, input, ...runRouting() });
|
|
101343
101604
|
if (flags.wait === true) {
|
|
101344
101605
|
run = await waitForWorkflowRun(client2, workflowId, run);
|
|
101345
101606
|
}
|
|
@@ -107701,7 +107962,9 @@ function printWorkflowsHelp() {
|
|
|
107701
107962
|
openmates workflows show <workflow-id> [--json]
|
|
107702
107963
|
openmates workflows enable <workflow-id> [--json]
|
|
107703
107964
|
openmates workflows disable <workflow-id> [--json]
|
|
107704
|
-
openmates workflows run <workflow-id> --idempotency-key <stable-key> [--mode manual|test] [--input '<json>'] [--wait] [--json]
|
|
107965
|
+
openmates workflows run <workflow-id> --idempotency-key <stable-key> [--mode manual|test] [--input '<json>'] [--source-chat <id>] [--message-destination-overrides '<json>'] [--return-outputs '<json>'] [--wait] [--json]
|
|
107966
|
+
openmates workflows run-once (--title <title> --graph '<json>' | --file definition.workflow.yml) --source-chat <id> --idempotency-key <stable-key> [--input '<json>'] [--message-destination-overrides '<json>'] [--return-outputs '<json>'] [--wait] [--json]
|
|
107967
|
+
openmates workflows save-as-reusable <workflow-id> --idempotency-key <stable-key> [--json]
|
|
107705
107968
|
openmates workflows runs <workflow-id> [--json]
|
|
107706
107969
|
openmates workflows run-show <workflow-id> <run-id> [--json]
|
|
107707
107970
|
openmates workflows run-cancel <workflow-id> <run-id> [--json]
|
|
@@ -107716,6 +107979,9 @@ Workflows run on the OpenMates server, not in this terminal process. The CLI
|
|
|
107716
107979
|
uses your paired session and shows the same workflow/run records as web, SDKs,
|
|
107717
107980
|
and Apple clients.
|
|
107718
107981
|
Export writes a saved workflow's portable authoring graph to .workflow.yml.
|
|
107982
|
+
Run-once keeps its definition with the source chat. Save-as-reusable creates a new disabled workflow.
|
|
107983
|
+
--message-destination-overrides maps Send step IDs to owned chat IDs.
|
|
107984
|
+
--return-outputs maps result names to {"ref":"$nodes.<step>.output.<field>","type":"string"}.
|
|
107719
107985
|
Run history and account bindings are excluded. Import creates a disabled workflow;
|
|
107720
107986
|
review and complete its bindings before enabling it.
|
|
107721
107987
|
Import creates a Personal Workflow. In an active Team context, pass --personal
|
|
@@ -952,7 +952,7 @@ interface LearningModeContext {
|
|
|
952
952
|
ageGroup?: LearningModeAgeGroup | null;
|
|
953
953
|
source?: "anonymous_session";
|
|
954
954
|
}
|
|
955
|
-
type WorkflowNodeType = "schedule_trigger" | "manual_trigger" | "webhook_trigger" | "app_skill_action" | "decision" | "check" | "send_chat_message" | "start_new_chat" | "event_trigger" | "wait" | "repeat" | "create_chat_report" | "send_notification" | "send_email_notification" | "ask_user" | "custom_code" | "end";
|
|
955
|
+
type WorkflowNodeType = "schedule_trigger" | "manual_trigger" | "webhook_trigger" | "app_skill_action" | "decision" | "check" | "send_chat_message" | "start_new_chat" | "event_trigger" | "wait" | "repeat" | "for_each" | "create_chat_report" | "send_notification" | "send_email_notification" | "ask_user" | "custom_code" | "end";
|
|
956
956
|
interface WorkflowNode {
|
|
957
957
|
id: string;
|
|
958
958
|
type: WorkflowNodeType;
|
|
@@ -977,7 +977,28 @@ interface WorkflowGraph {
|
|
|
977
977
|
}
|
|
978
978
|
type WorkflowRunContentRetention = "last_5" | "none";
|
|
979
979
|
type WorkflowRunContentStorage = "durable" | "ephemeral" | "deleted";
|
|
980
|
-
type WorkflowLifecycle = "persisted" | "temporary";
|
|
980
|
+
type WorkflowLifecycle = "persisted" | "temporary" | "chat_embed";
|
|
981
|
+
interface WorkflowRunRouting {
|
|
982
|
+
sourceChatId?: string;
|
|
983
|
+
messageDestinationOverrides?: Record<string, string>;
|
|
984
|
+
returnOutputs?: Record<string, WorkflowReturnedOutputReference>;
|
|
985
|
+
}
|
|
986
|
+
interface WorkflowReturnedOutputReference {
|
|
987
|
+
ref: string;
|
|
988
|
+
type: "string" | "number" | "integer" | "boolean" | "object" | "array";
|
|
989
|
+
}
|
|
990
|
+
interface WorkflowRunOptions extends WorkflowRunRouting {
|
|
991
|
+
idempotencyKey: string;
|
|
992
|
+
mode?: "manual" | "test";
|
|
993
|
+
input?: Record<string, unknown>;
|
|
994
|
+
}
|
|
995
|
+
interface WorkflowRunOnceOptions extends WorkflowRunRouting {
|
|
996
|
+
title: string;
|
|
997
|
+
graph: WorkflowGraph;
|
|
998
|
+
idempotencyKey: string;
|
|
999
|
+
sourceChatId: string;
|
|
1000
|
+
input?: Record<string, unknown>;
|
|
1001
|
+
}
|
|
981
1002
|
interface WorkflowAuthoringWarning {
|
|
982
1003
|
code: string;
|
|
983
1004
|
node_id: string;
|
|
@@ -2711,13 +2732,17 @@ declare class OpenMatesClient {
|
|
|
2711
2732
|
deleted: boolean;
|
|
2712
2733
|
}>;
|
|
2713
2734
|
keepWorkflow(workflowId: string): Promise<WorkflowDetail>;
|
|
2735
|
+
saveWorkflowAsReusable(workflowId: string, options: {
|
|
2736
|
+
idempotencyKey: string;
|
|
2737
|
+
}): Promise<WorkflowDetail>;
|
|
2738
|
+
private workflowRunRouting;
|
|
2739
|
+
runWorkflowOnce(params: WorkflowRunOnceOptions): Promise<{
|
|
2740
|
+
workflow: WorkflowDetail;
|
|
2741
|
+
run: WorkflowRunDetail;
|
|
2742
|
+
}>;
|
|
2714
2743
|
enableWorkflow(workflowId: string): Promise<WorkflowDetail>;
|
|
2715
2744
|
disableWorkflow(workflowId: string): Promise<WorkflowDetail>;
|
|
2716
|
-
runWorkflow(workflowId: string, params:
|
|
2717
|
-
idempotencyKey: string;
|
|
2718
|
-
mode?: "manual" | "test";
|
|
2719
|
-
input?: Record<string, unknown>;
|
|
2720
|
-
}): Promise<WorkflowRunDetail>;
|
|
2745
|
+
runWorkflow(workflowId: string, params: WorkflowRunOptions): Promise<WorkflowRunDetail>;
|
|
2721
2746
|
listWorkflowRuns(workflowId: string): Promise<WorkflowRunDetail[]>;
|
|
2722
2747
|
getWorkflowRun(workflowId: string, runId: string): Promise<WorkflowRunDetail>;
|
|
2723
2748
|
cancelWorkflowRun(workflowId: string, runId: string): Promise<WorkflowRunCancellationResult>;
|
|
@@ -3388,4 +3413,4 @@ declare function serializeToYaml(data: Record<string, unknown>, indent?: number)
|
|
|
3388
3413
|
/** Map language identifier to file extension for code embed downloads. */
|
|
3389
3414
|
declare function getExtForLang(language: string): string;
|
|
3390
3415
|
|
|
3391
|
-
export { type
|
|
3416
|
+
export { type BankTransferOrderDetails as $, type WorkflowGraph as A, type WorkflowRunContentRetention as B, type WorkflowRunOnceOptions as C, type DecryptedUserTask as D, type ExternalChatContext as E, type WorkflowRunDetail as F, type WorkflowRunOptions as G, type WorkflowNode as H, type WorkflowRunCancellationResult as I, type WorkflowTemplateProjectionUpsertParams as J, type WorkflowTemplateProjectionResult as K, type PublicWorkflowTemplateProjection as L, type WorkflowTemplateProjectionRevocationResult as M, type WorkflowTemplateBindingCompletionParams as N, type WorkflowTemplateBindingCompletionResult as O, type ProjectItemRecord as P, type WorkflowTemplateShortUrlParams as Q, type WorkflowTemplateShortUrlResult as R, type ShortUrlRevokeResult as S, type TaskCreateOptions as T, type UserPlanStatus as U, type WorkflowTemplateImportPayload as V, type WorkflowSummary as W, type ImportedWorkflowTemplate as X, type AuthMethodsStatus as Y, type AuthoritativeChatReconciliation as Z, type BackupCodesResult as _, type UserPlanRecord as a, type BankTransferStatus as a0, type CachedChat as a1, type CachedNewChatSuggestion as a2, type ChatListPage as a3, type CliSignupResult as a4, type DecryptedDraft as a5, type DecryptedEmbed as a6, type DecryptedMemoryEntry as a7, type DecryptedMessage as a8, type DecryptedNewChatSuggestion as a9, buildImagesAiDetectionSummary as aA, classifyImagesAiDetection as aB, deriveAppUrl as aC, formatImagesAiDetectionLabel as aD, getExtForLang as aE, normalizeInterestTagIds as aF, reconcileAuthoritativeChats as aG, serializeToYaml as aH, assertTrustedAccountCommandAllowed as aI, assertTrustedAccountGuardEnvironment as aJ, buildProjectDefaultFocus as aK, buildTravelConnectionsRequest as aL, extractExplicitProjectMentions as aM, printWhoAmI as aN, readRootProjectInstructions as aO, renderProjectReadApprovalRequest as aP, renderProjectWriteApprovalRequest as aQ, renderRemoteCommandEvent as aR, requireExactConfirmation as aS, resolveProjectContext as aT, shouldRequireTrustedAccountGuard as aU, waitForWorkflowRun as aV, type DocsFile as aa, type DocsFolder as ab, type DocsSearchResult as ac, type DocsTree as ad, type EncryptedDraft as ae, type GiftCardBankTransferStatus as af, INTEREST_TAG_IDS as ag, type ImagesAiDetectionClassification as ah, type ImagesAiDetectionSummary as ai, type InterestTagId as aj, MATE_NAMES as ak, MEMORY_TYPE_REGISTRY as al, type MemoryFieldDef as am, type MemoryTypeDef as an, OpenMatesClient as ao, type OpenMatesClientOptions as ap, type OpenMatesSession as aq, type SyncCache as ar, type TopicPreferencesPayload as as, type TotpSetupStartResult as at, type WorkflowEdge as au, type WorkflowNodeRun as av, type WorkflowNodeType as aw, type WorkflowReturnedOutputReference as ax, type WorkflowRunContentStorage as ay, type WorkflowRunRouting as az, type UserPlanVerificationStatus as b, type UserPlanLearningType as c, type UserPlanLearningTargetKind as d, type UserPlanLearningStatus as e, type UserPlanLearningLevel as f, type UserPlanLearningRecord as g, type UserPlanCriterionRecord as h, type UserPlanVerificationRecord as i, type UserPlanCreateInput as j, type UserPlanUpdateInput as k, type TaskUpdateOptions as l, type UserPlanLearningCreateTasksInput as m, type UserPlanLearningCreateTasksResult as n, type UserTaskStatus as o, type TaskPriorityLevel as p, type DecryptedTaskActivityEntry as q, type TaskActivityCreateOptions as r, type UserTaskReorderInput as s, type WorkflowCapability as t, type WorkflowDetail as u, type WorkflowAuthoringWarning as v, type WorkflowInputStartParams as w, type WorkflowInputSessionResult as x, type WorkflowInputSessionDetail as y, type WorkflowInputEvent as z };
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export {
|
|
2
|
+
export { ah as ImagesAiDetectionClassification, ai as ImagesAiDetectionSummary, aI as assertTrustedAccountCommandAllowed, aJ as assertTrustedAccountGuardEnvironment, aA as buildImagesAiDetectionSummary, aK as buildProjectDefaultFocus, aL as buildTravelConnectionsRequest, aB as classifyImagesAiDetection, aM as extractExplicitProjectMentions, aD as formatImagesAiDetectionLabel, aE as getExtForLang, aN as printWhoAmI, aO as readRootProjectInstructions, aP as renderProjectReadApprovalRequest, aQ as renderProjectWriteApprovalRequest, aR as renderRemoteCommandEvent, aS as requireExactConfirmation, aT as resolveProjectContext, aH as serializeToYaml, aU as shouldRequireTrustedAccountGuard, aV as waitForWorkflowRun } from './cli-DPB5Qnz5.js';
|
package/dist/cli.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { U as UserPlanStatus, a as UserPlanRecord, b as UserPlanVerificationStatus, c as UserPlanLearningType, d as UserPlanLearningTargetKind, e as UserPlanLearningStatus, f as UserPlanLearningLevel, g as UserPlanLearningRecord, h as UserPlanCriterionRecord, i as UserPlanVerificationRecord, j as UserPlanCreateInput, k as UserPlanUpdateInput, P as ProjectItemRecord, T as TaskCreateOptions, l as TaskUpdateOptions, m as UserPlanLearningCreateTasksInput, n as UserPlanLearningCreateTasksResult, o as UserTaskStatus, E as ExternalChatContext, p as TaskPriorityLevel, D as DecryptedUserTask, q as DecryptedTaskActivityEntry, r as TaskActivityCreateOptions, s as UserTaskReorderInput, W as WorkflowSummary, t as WorkflowCapability, u as WorkflowDetail, v as WorkflowAuthoringWarning, w as WorkflowInputStartParams, x as WorkflowInputSessionResult, y as WorkflowInputSessionDetail, z as WorkflowInputEvent, A as WorkflowGraph, B as WorkflowRunContentRetention, C as
|
|
2
|
-
export {
|
|
1
|
+
import { U as UserPlanStatus, a as UserPlanRecord, b as UserPlanVerificationStatus, c as UserPlanLearningType, d as UserPlanLearningTargetKind, e as UserPlanLearningStatus, f as UserPlanLearningLevel, g as UserPlanLearningRecord, h as UserPlanCriterionRecord, i as UserPlanVerificationRecord, j as UserPlanCreateInput, k as UserPlanUpdateInput, P as ProjectItemRecord, T as TaskCreateOptions, l as TaskUpdateOptions, m as UserPlanLearningCreateTasksInput, n as UserPlanLearningCreateTasksResult, o as UserTaskStatus, E as ExternalChatContext, p as TaskPriorityLevel, D as DecryptedUserTask, q as DecryptedTaskActivityEntry, r as TaskActivityCreateOptions, s as UserTaskReorderInput, W as WorkflowSummary, t as WorkflowCapability, u as WorkflowDetail, v as WorkflowAuthoringWarning, w as WorkflowInputStartParams, x as WorkflowInputSessionResult, y as WorkflowInputSessionDetail, z as WorkflowInputEvent, A as WorkflowGraph, B as WorkflowRunContentRetention, C as WorkflowRunOnceOptions, F as WorkflowRunDetail, G as WorkflowRunOptions, H as WorkflowNode, I as WorkflowRunCancellationResult, J as WorkflowTemplateProjectionUpsertParams, K as WorkflowTemplateProjectionResult, L as PublicWorkflowTemplateProjection, M as WorkflowTemplateProjectionRevocationResult, N as WorkflowTemplateBindingCompletionParams, O as WorkflowTemplateBindingCompletionResult, Q as WorkflowTemplateShortUrlParams, R as WorkflowTemplateShortUrlResult, S as ShortUrlRevokeResult, V as WorkflowTemplateImportPayload, X as ImportedWorkflowTemplate } from './cli-DPB5Qnz5.js';
|
|
2
|
+
export { Y as AuthMethodsStatus, Z as AuthoritativeChatReconciliation, _ as BackupCodesResult, $ as BankTransferOrderDetails, a0 as BankTransferStatus, a1 as CachedChat, a2 as CachedNewChatSuggestion, a3 as ChatListPage, a4 as CliSignupResult, a5 as DecryptedDraft, a6 as DecryptedEmbed, a7 as DecryptedMemoryEntry, a8 as DecryptedMessage, a9 as DecryptedNewChatSuggestion, aa as DocsFile, ab as DocsFolder, ac as DocsSearchResult, ad as DocsTree, ae as EncryptedDraft, af as GiftCardBankTransferStatus, ag as INTEREST_TAG_IDS, ah as ImagesAiDetectionClassification, ai as ImagesAiDetectionSummary, aj as InterestTagId, ak as MATE_NAMES, al as MEMORY_TYPE_REGISTRY, am as MemoryFieldDef, an as MemoryTypeDef, ao as OpenMatesClient, ap as OpenMatesClientOptions, aq as OpenMatesSession, ar as SyncCache, as as TopicPreferencesPayload, at as TotpSetupStartResult, au as WorkflowEdge, av as WorkflowNodeRun, aw as WorkflowNodeType, ax as WorkflowReturnedOutputReference, ay as WorkflowRunContentStorage, az as WorkflowRunRouting, aA as buildImagesAiDetectionSummary, aB as classifyImagesAiDetection, aC as deriveAppUrl, aD as formatImagesAiDetectionLabel, aE as getExtForLang, aF as normalizeInterestTagIds, aG as reconcileAuthoritativeChats, aH as serializeToYaml } from './cli-DPB5Qnz5.js';
|
|
3
3
|
|
|
4
4
|
interface ProjectedAssistantSpeechSegment {
|
|
5
5
|
sequence: number;
|
|
@@ -6375,11 +6375,15 @@ declare class OpenMatesWorkflows {
|
|
|
6375
6375
|
deleted: boolean;
|
|
6376
6376
|
}>;
|
|
6377
6377
|
keep(workflowId: string): Promise<WorkflowDetail>;
|
|
6378
|
-
|
|
6378
|
+
saveAsReusable(workflowId: string, options: {
|
|
6379
6379
|
idempotencyKey: string;
|
|
6380
|
-
|
|
6381
|
-
|
|
6382
|
-
|
|
6380
|
+
}): Promise<WorkflowDetail>;
|
|
6381
|
+
private runRouting;
|
|
6382
|
+
runOnce(params: WorkflowRunOnceOptions): Promise<{
|
|
6383
|
+
workflow: WorkflowDetail;
|
|
6384
|
+
run: WorkflowRunDetail;
|
|
6385
|
+
}>;
|
|
6386
|
+
run(workflowId: string, params: WorkflowRunOptions): Promise<WorkflowRunDetail>;
|
|
6383
6387
|
runs(workflowId: string): Promise<WorkflowRunDetail[]>;
|
|
6384
6388
|
runDetail(workflowId: string, runId: string): Promise<WorkflowRunDetail>;
|
|
6385
6389
|
deleteRun(workflowId: string, runId: string): Promise<{
|
|
@@ -6548,4 +6552,4 @@ type AssistantFeedbackDecision = {
|
|
|
6548
6552
|
};
|
|
6549
6553
|
declare function buildAssistantFeedbackDecision(rating: number): AssistantFeedbackDecision;
|
|
6550
6554
|
|
|
6551
|
-
export { APP_SKILL_METADATA, ASSISTANT_FEEDBACK_REPORT_TITLE, ASSISTANT_FEEDBACK_THANKS, type ApiKeyCreateOptions, type ApiKeyCreateResult, type ApiKeyRecord, type AssistantFeedbackDecision, type ChatCreateOptions, type ChatListOptions, type ChatResponse, DecryptedUserTask, type DesignIconExportFormat, type DesignIconExportOptions, type DesignIconExportResult, type DraftRecord, type EncryptedChatMetadata, type EncryptedDraftRecord, type FocusModeSelection, type IdeaBucketAddInput, type IdeaBucketProcessOptions, type IdeaBucketResult, type IdeaBucketSettings, type IdeaBucketSettingsInput, OpenMates, OpenMatesApiError, OpenMatesConfigError, type OpenMatesOptions, OpenMatesUnavailableError, type PlanPlainCreateOptions, type PlanPlainUpdateOptions, type PlanRecord, type ProjectPlainCreateOptions, type ProjectPlainUpdateOptions, type ProjectRecordPlain, SUPPORT_URL, type TaskListFilters, type TaskPlainCreateOptions, type TaskPlainUpdateOptions, type TaskRecord, WorkflowCapability, WorkflowDetail, WorkflowGraph, WorkflowNode, WorkflowRunContentRetention, WorkflowRunDetail, WorkflowSummary, buildAssistantFeedbackDecision, buildCreatePlanCriterionInput, buildCreatePlanLearningInput, buildCreatePlanVerificationInput, buildCreateUserPlanInput, buildPlanVerificationEvidenceInput, buildUpdatePlanLearningInput, buildUpdatePlanVerificationInput, buildUpdateUserPlanInput, decryptPlanLearning, decryptPlanLearnings, decryptUserPlan, decryptUserPlans, defaultCloneBranchForVersion, findPlan, findPlanLearning, projectAssistantSpeech, renderPlanDetail, renderPlanLearningDetail, renderPlanLearningList, renderPlanList, renderSupportInfo, selectAssistantMessagesForSpeech, summarizeAssistantSpeech };
|
|
6555
|
+
export { APP_SKILL_METADATA, ASSISTANT_FEEDBACK_REPORT_TITLE, ASSISTANT_FEEDBACK_THANKS, type ApiKeyCreateOptions, type ApiKeyCreateResult, type ApiKeyRecord, type AssistantFeedbackDecision, type ChatCreateOptions, type ChatListOptions, type ChatResponse, DecryptedUserTask, type DesignIconExportFormat, type DesignIconExportOptions, type DesignIconExportResult, type DraftRecord, type EncryptedChatMetadata, type EncryptedDraftRecord, type FocusModeSelection, type IdeaBucketAddInput, type IdeaBucketProcessOptions, type IdeaBucketResult, type IdeaBucketSettings, type IdeaBucketSettingsInput, OpenMates, OpenMatesApiError, OpenMatesConfigError, type OpenMatesOptions, OpenMatesUnavailableError, type PlanPlainCreateOptions, type PlanPlainUpdateOptions, type PlanRecord, type ProjectPlainCreateOptions, type ProjectPlainUpdateOptions, type ProjectRecordPlain, SUPPORT_URL, type TaskListFilters, type TaskPlainCreateOptions, type TaskPlainUpdateOptions, type TaskRecord, WorkflowCapability, WorkflowDetail, WorkflowGraph, WorkflowNode, WorkflowRunContentRetention, WorkflowRunDetail, WorkflowRunOnceOptions, WorkflowRunOptions, WorkflowSummary, buildAssistantFeedbackDecision, buildCreatePlanCriterionInput, buildCreatePlanLearningInput, buildCreatePlanVerificationInput, buildCreateUserPlanInput, buildPlanVerificationEvidenceInput, buildUpdatePlanLearningInput, buildUpdatePlanVerificationInput, buildUpdateUserPlanInput, decryptPlanLearning, decryptPlanLearnings, decryptUserPlan, decryptUserPlans, defaultCloneBranchForVersion, findPlan, findPlanLearning, projectAssistantSpeech, renderPlanDetail, renderPlanLearningDetail, renderPlanLearningList, renderPlanList, renderSupportInfo, selectAssistantMessagesForSpeech, summarizeAssistantSpeech };
|
package/dist/index.js
CHANGED