Fetch latest pipeline run (#16220)

* Fetch latest pipeline run

very basic debug, showing raw event data

* Update dialog-voice-assistant-pipeline-detail.ts

* last one, not first
This commit is contained in:
Bram Kragten 2023-04-18 01:13:05 +02:00 committed by GitHub
parent e32771fb14
commit 8edb48eedc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 49 additions and 0 deletions

View File

@ -219,6 +219,30 @@ export const runAssistPipeline = (
return unsubProm;
};
export const listAssistPipelineRuns = (
hass: HomeAssistant,
pipeline_id: string
) =>
hass.callWS<{
pipeline_runs: string[];
}>({
type: "assist_pipeline/pipeline_debug/list",
pipeline_id,
});
export const getAssistPipelineRun = (
hass: HomeAssistant,
pipeline_id: string,
pipeline_run_id: string
) =>
hass.callWS<{
events: PipelineRunEvent[];
}>({
type: "assist_pipeline/pipeline_debug/get",
pipeline_id,
pipeline_run_id,
});
export const fetchAssistPipelines = (hass: HomeAssistant) =>
hass.callWS<{
pipelines: AssistPipeline[];

View File

@ -9,7 +9,10 @@ import { SchemaUnion } from "../../../components/ha-form/types";
import {
AssistPipeline,
AssistPipelineMutableParams,
getAssistPipelineRun,
listAssistPipelineRuns,
} from "../../../data/assist_pipeline";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
import { haStyleDialog } from "../../../resources/styles";
import { HomeAssistant } from "../../../types";
import { VoiceAssistantPipelineDetailsDialogParams } from "./show-dialog-voice-assistant-pipeline-detail";
@ -91,6 +94,9 @@ export class DialogVoiceAssistantPipelineDetail extends LitElement {
@click=${this._setPreferred}
>Set as default</ha-button
>
<ha-button slot="secondaryAction" @click=${this._debugPipeline}
>Debug</ha-button
>
`
: nothing}
<ha-button
@ -194,6 +200,25 @@ export class DialogVoiceAssistantPipelineDetail extends LitElement {
this._preferred = true;
}
private async _debugPipeline() {
const runs = await listAssistPipelineRuns(
this.hass,
this._params!.pipeline!.id!
);
if (!runs.pipeline_runs.length) {
showAlertDialog(this, { text: "No runs found" });
return;
}
const events = await getAssistPipelineRun(
this.hass,
this._params!.pipeline!.id!,
runs.pipeline_runs[runs.pipeline_runs.length - 1]
);
showAlertDialog(this, {
text: html`<pre>${JSON.stringify(events.events, null, 2)}</pre>`,
});
}
private async _deletePipeline() {
this._submitting = true;
try {