@cloud-cli/on 1.69.0 → 1.69.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/on.js CHANGED
@@ -104,7 +104,7 @@ async function m() {
104
104
  let [{ QueueManager: r }, { SecretStore: i }, { WebhookServer: a }, { startWorkers: o }, { WorkflowRepository: s }, { WorkflowScheduler: c }, { OidcUserRepository: l }] = await Promise.all([
105
105
  import("./queue-DhXXzxm3.js"),
106
106
  import("./secrets-DhkqmawU.js"),
107
- import("./server-CiviRC42.js"),
107
+ import("./server-DbmUtXJg.js"),
108
108
  import("./worker-FXzBXCLz.js"),
109
109
  import("./workflows-DQQIVH7c.js"),
110
110
  import("./scheduler-2d1UPcxM.js"),
@@ -1,6 +1,6 @@
1
- import runTemplate from './run.html?raw';
1
+ import runTemplate from "./run.html?raw";
2
2
  export { runTemplate };
3
- import type { JobRecord, StepReport, WorkflowExecutionReport, WorkflowStep } from './types.js';
3
+ import type { JobRecord, StepReport, WorkflowExecutionReport, WorkflowStep } from "./types.js";
4
4
  export interface RunView {
5
5
  jobId: string;
6
6
  workerId?: string;
@@ -9,7 +9,7 @@ export interface RunView {
9
9
  workflowSourceYaml?: string;
10
10
  parentId: string;
11
11
  workflowName: string;
12
- status: WorkflowExecutionReport['status'];
12
+ status: WorkflowExecutionReport["status"];
13
13
  durationMs: number;
14
14
  startedAt: string;
15
15
  finishedAt?: string;
@@ -18,6 +18,6 @@ export interface RunView {
18
18
  artifacts: string[];
19
19
  canViewLogs: boolean;
20
20
  }
21
- export declare function buildRunView(job: JobRecord & Record<string, any>, logs: Record<string, string>, redact: (value: string) => string, steps?: WorkflowStep[], canViewLogs?: boolean, workflowSourceYaml?: string): RunView;
21
+ export declare function buildRunView(job: JobRecord & Record<string, any>, logs: Record<string, string>, redact: (value: string) => string, steps?: WorkflowStep[], canViewLogs?: boolean, workflowSourceYaml?: string, canonicalWorkflowName?: string): RunView;
22
22
  export declare function renderRunHtml(report: RunView): string;
23
23
  //# sourceMappingURL=run-view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-view.d.ts","sourceRoot":"","sources":["../src/run-view.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,OAAO,KAAK,EAAc,SAAS,EAAE,UAAU,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK3G,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACjC,KAAK,GAAE,YAAY,EAAO,EAC1B,WAAW,UAAO,EAClB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAuCT;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAErD"}
1
+ {"version":3,"file":"run-view.d.ts","sourceRoot":"","sources":["../src/run-view.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,OAAO,KAAK,EAAc,SAAS,EAAE,UAAU,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK3G,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACjC,KAAK,GAAE,YAAY,EAAO,EAC1B,WAAW,UAAO,EAClB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,qBAAqB,CAAC,EAAE,MAAM,GAC7B,OAAO,CAyCT;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAErD"}
@@ -157,22 +157,22 @@ var ie = class {
157
157
  purpose: "any maskable"
158
158
  }]
159
159
  }), oe = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <rect width=\"512\" height=\"512\" fill=\"#263d32\"/>\n <g fill=\"#c8e6a8\">\n <path d=\"M112 185 400 118v44l-288 67z\"/>\n <path d=\"M112 253 324 204v44l-212 49z\"/>\n <path d=\"M112 321 250 289v44l-138 32z\"/>\n </g>\n</svg>", se = "self.addEventListener('install', () => self.skipWaiting());\nself.addEventListener('activate', (event) => event.waitUntil(self.clients.claim()));\nself.addEventListener('push', (event) => {\n const data = event.data?.json() || {};\n event.waitUntil(self.registration.showNotification(data.title || 'Flow', {\n body: data.body || 'A workflow run changed.',\n icon: '/app-icon.svg',\n badge: '/app-icon.svg',\n data: { url: data.url || '/runs' },\n }));\n});\nself.addEventListener('notificationclick', (event) => {\n event.notification.close();\n const target = event.notification.data?.url || '/runs';\n event.waitUntil((async () => {\n const windows = await self.clients.matchAll({ type: 'window', includeUncontrolled: true });\n const existing = windows.find((client) => new URL(client.url).pathname === target);\n if (existing) return existing.focus();\n return self.clients.openWindow(target);\n })());\n});", ce = "<!doctype html>\n<html lang=\"en\" class=\"dark\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta name=\"theme-color\" content=\"#030712\" />\n <meta name=\"mobile-web-app-capable\" content=\"yes\" />\n <link rel=\"manifest\" href=\"/manifest.webmanifest\" />\n <link rel=\"icon\" href=\"/app-icon.svg\" type=\"image/svg+xml\" />\n <link rel=\"component\" href=\"https://sodium.static.apphor.de/lucide-icon.html\" />\n <link rel=\"component\" href=\"https://sodium.static.apphor.de/code-block.html\" />\n <link rel=\"component\" href=\"/app-header.html\" />\n <title>Workflow Run</title>\n <script type=\"importmap\">\n {\n \"imports\": {\n \"@app/\": \"/\",\n \"@li3/\": \"https://at-li3.static.apphor.de/\",\n \"ansi_up\": \"https://esm.sh/ansi_up@6.0.6\",\n \"marked\": \"https://cdn.jsdelivr.net/npm/marked@18.0.12/lib/marked.esm.js\"\n }\n }\n <\/script>\n <style>\n </style>\n </head>\n <body class=\"bg-gray-950 text-gray-100 min-h-screen p-4 md:p-6 font-sans\">\n <template app>\n <div class=\"max-w-7xl mx-auto space-y-4 py-6\">\n <app-header bind-title=\"report.workflowName\" bind-subtitle=\"'Run #' + report.jobId\" back=\"/runs\" back-label=\"Back to jobs\"></app-header>\n <div class=\"flex flex-wrap items-center justify-between gap-3 border-b border-gray-800 pb-4\">\n <p class=\"text-xs text-gray-400\">\n Started {{ report.startedAt }} · {{ timing }}\n <template if=\"report.workerId\"> · worker: {{ report.workerId }}</template>\n <template if=\"report.parentId\"> · from #{{ report.parentId }}</template>\n </p>\n <div class=\"flex items-center gap-2 shrink-0\">\n <span\n class=\"px-4 py-1.5 rounded-full text-sm font-semibold border\"\n bind-class=\"{\n 'bg-emerald-500/10.text-emerald-400.border-emerald-500/20': report.status === 'success',\n 'bg-rose-500/10.text-rose-400.border-rose-500/20': report.status === 'failed',\n 'bg-indigo-500/10.text-indigo-400.border-indigo-500/20': report.status === 'running',\n 'bg-amber-500/10.text-amber-400.border-amber-500/20': !['success', 'failed', 'running'].includes(report.status)\n }\"\n >\n {{ upper(report.status) }}\n </span>\n <template if=\"report.status === 'running'\">\n <button\n class=\"text-sm text-rose-300 px-4 py-1.5 border border-rose-500/50 hover:border-rose-400 rounded-full disabled:opacity-50\"\n on-click=\"cancelJob()\"\n bind-disabled.bool=\"cancelling\"\n >\n {{ cancelling ? 'Cancelling...' : 'Cancel' }}\n </button>\n </template>\n <template if=\"report.status !== 'running'\">\n <div class=\"relative flex items-center gap-1\">\n <button class=\"text-sm text-white px-4 py-1.5 border border-gray-600 hover:border-gray-400 rounded-full\" on-click=\"restartJob()\">Restart</button>\n <details class=\"relative\">\n <summary class=\"cursor-pointer list-none rounded-full border border-gray-600 p-2 text-gray-300 outline-none hover:bg-gray-800 focus-visible:ring-2 focus-visible:ring-indigo-400/60\" aria-label=\"More restart options\">\n <lucide-icon icon=\"chevron-down\" size=\"14\"></lucide-icon>\n </summary>\n <div class=\"absolute right-0 z-20 mt-2 w-56 rounded-xl border border-gray-700 bg-gray-900 p-2 shadow-2xl\">\n <button type=\"button\" on-click=\"openManualRestart($event)\" class=\"w-full rounded-lg px-3 py-2 text-left text-sm text-gray-200 hover:bg-gray-800\">Restart with inputs</button>\n </div>\n </details>\n </div>\n </template>\n </div>\n </div>\n <template if=\"manualRestartOpen\">\n <div class=\"fixed inset-0 z-50 flex items-center justify-center bg-gray-950/80 p-4\" role=\"presentation\">\n <div class=\"w-full max-w-lg rounded-2xl border border-gray-700 bg-gray-900 p-5 shadow-2xl\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"manual-restart-title\">\n <div class=\"flex items-start justify-between gap-3\"><div><h2 id=\"manual-restart-title\" class=\"text-lg font-semibold text-white\">Restart with inputs</h2><p class=\"mt-1 text-sm text-gray-400\">These values override the original trigger inputs for the new run.</p></div><button type=\"button\" on-click=\"closeManualRestart()\" aria-label=\"Close restart dialog\" class=\"rounded-lg p-2 text-gray-400 hover:bg-gray-800\"><lucide-icon icon=\"x\" size=\"17\"></lucide-icon></button></div>\n <details class=\"mt-5 overflow-hidden rounded-xl border border-gray-800 bg-gray-950/60\">\n <summary class=\"cursor-pointer px-3 py-2 text-sm font-medium text-gray-300 outline-none hover:bg-gray-800 focus-visible:ring-2 focus-visible:ring-indigo-400/60\">Original inputs</summary>\n <code-block language=\"json\" theme=\"atom-one-dark\" bind-source=\"originalInputsJson\" class=\"block max-h-64 overflow-auto border-t border-gray-800 p-3\"></code-block>\n </details>\n <div class=\"mt-4 space-y-3\">\n <p class=\"text-xs text-gray-500\">Additional inputs override matching original values without changing the original payload.</p>\n <template for=\"entry of manualInputs\">\n <div class=\"grid grid-cols-[1fr_1fr_auto] gap-2\"><input bind-value=\"entry.key\" on-input=\"setManualKey(entry, $event)\" placeholder=\"Key\" class=\"rounded-lg border border-gray-700 bg-gray-950 px-3 py-2 text-sm text-gray-200\" /><input bind-value=\"entry.value\" on-input=\"setManualValue(entry, $event)\" placeholder=\"Value\" class=\"rounded-lg border border-gray-700 bg-gray-950 px-3 py-2 text-sm text-gray-200\" /><button type=\"button\" on-click=\"removeManualInput(entry)\" aria-label=\"Remove input\" class=\"rounded-lg px-2 text-rose-300 hover:bg-rose-500/10\"><lucide-icon icon=\"x\" size=\"15\"></lucide-icon></button></div>\n </template>\n <button type=\"button\" on-click=\"addManualInput()\" class=\"text-sm text-indigo-300 hover:underline\">+ Add input</button>\n </div>\n <div class=\"mt-6 flex justify-end gap-2\"><button type=\"button\" on-click=\"closeManualRestart()\" class=\"rounded-lg border border-gray-700 px-3 py-2 text-sm text-gray-300 hover:bg-gray-800\">Cancel</button><button type=\"button\" on-click=\"restartWithInputs()\" bind-disabled=\"manualRestartLoading\" class=\"rounded-lg bg-indigo-500 px-3 py-2 text-sm font-semibold text-white hover:bg-indigo-400 disabled:opacity-50\">{{ manualRestartLoading ? 'Restarting...' : 'Restart' }}</button></div>\n </div>\n </div>\n </template>\n <template if=\"previousRuns.length\">\n <details class=\"rounded-xl border border-gray-800 bg-gray-900/70\">\n <summary class=\"cursor-pointer px-4 py-3 text-sm font-medium text-gray-300 outline-none hover:bg-gray-800 focus-visible:ring-2 focus-visible:ring-indigo-400/60\">\n Previous runs\n </summary>\n <ul class=\"divide-y divide-gray-800 border-t border-gray-800\">\n <template for=\"run of previousRuns\">\n <li>\n <a attr-href=\"'/runs/' + run.id\" class=\"flex items-center justify-between gap-3 px-4 py-3 text-sm outline-none hover:bg-gray-800 focus-visible:ring-2 focus-visible:ring-indigo-400/60\">\n <span><span class=\"font-mono text-indigo-300\">#{{ run.id }}</span><span class=\"ml-3 text-gray-400\">{{ run.startedAt }}</span></span>\n <span class=\"font-semibold uppercase text-xs text-gray-400\">{{ upper(run.status) }}</span>\n </a>\n </li>\n </template>\n </ul>\n </details>\n </template>\n\n <section class=\"rounded overflow-hidden border-b border-gray-800\">\n <h2 class=\"sr-only\">Execution Steps</h2>\n <template for=\"[step, index] of report.steps\">\n <details class=\"border border-b-0 border-gray-800 bg-gray-900/50 text-sm\">\n <summary\n class=\"flex flex-col md:flex-row md:items-center justify-between gap-2 p-3 bg-gray-800/40 border-b border-gray-800 cursor-pointer\"\n >\n <div class=\"flex items-center gap-3 min-w-0\">\n <lucide-icon\n class=\"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-gray-700/70\"\n bind-class=\"{\n 'text-emerald-400': step.status === 'success',\n 'text-rose-400': step.status === 'failed',\n 'text-indigo-400.animate-spin': step.status === 'running',\n 'text-gray-400': !['success', 'failed', 'running'].includes(step.status)\n }\"\n bind-icon=\"\n step.status === 'success'\n ? 'circle-check'\n : step.status === 'failed'\n ? 'circle-x'\n : step.status === 'running'\n ? 'loader-circle'\n : 'circle'\n \"\n size=\"15\"\n ></lucide-icon>\n <template if=\"step.exitCode !== undefined && step.exitCode !== 0\">\n <span class=\"font-mono text-gray-500\">({{ step.exitCode }})</span>\n </template>\n <h3 class=\"font-semibold text-gray-200 truncate min-w-0 flex-1\">{{ step.name }}</h3>\n <div class=\"font-mono text-gray-400 shrink-0\">{{ step.durationMs }}ms</div>\n <span\n class=\"sr-only px-2.5 py-0.5 rounded-full font-medium\"\n bind-class=\"{\n 'text-emerald-400.bg-emerald-500/10': step.status === 'success',\n 'text-rose-400.bg-rose-500/10': step.status === 'failed',\n 'text-indigo-400.bg-indigo-500/10': step.status === 'running',\n 'text-gray-400.bg-gray-500/10': !['success', 'failed', 'running'].includes(step.status)\n }\"\n >\n {{ upper(step.status) }}\n </span>\n </div>\n </summary>\n <template if=\"report.canViewLogs\">\n <div class=\"relative p-4 bg-gray-950 font-mono text-gray-300 leading-relaxed overflow-auto w-full\">\n <template if=\"step.status === 'failed'\">\n <button type=\"button\" on-click=\"askAi(step, $event)\" aria-label=\"Get AI help for failed step\" title=\"Get AI help\" class=\"absolute right-3 top-3 z-10 inline-flex h-7 w-7 items-center justify-center rounded-lg bg-gray-900 text-indigo-300 outline-none hover:bg-indigo-500/10 focus-visible:ring-2 focus-visible:ring-indigo-400/60\">\n <lucide-icon bind-icon=\"aiLoading && aiStepId === step.id ? 'loader-circle' : 'sparkles'\" bind-class=\"aiLoading && aiStepId === step.id ? 'animate-spin' : ''\" size=\"16\"></lucide-icon>\n </button>\n </template>\n <pre class=\"whitespace-pre-wrap\" bind-innerhtml=\"stepLog(step)\"></pre>\n </div>\n </template>\n <template if=\"!report.canViewLogs\">\n <div class=\"p-4 bg-gray-950 text-sm text-gray-500\">Logs are available to authenticated users.</div>\n </template>\n </details>\n </template>\n </section>\n\n <details class=\"bg-gray-900 border border-gray-800 rounded-xl overflow-hidden\">\n <summary class=\"cursor-pointer px-4 py-3 text-xs font-semibold uppercase tracking-wider text-gray-400 outline-none transition hover:bg-gray-800 focus-visible:ring-2 focus-visible:ring-indigo-400/60\">\n Trigger Inputs\n </summary>\n <code-block\n language=\"json\"\n theme=\"atom-one-dark\"\n bind-source=\"inputsJson\"\n class=\"block max-h-[38rem] overflow-auto border-t border-gray-800 bg-gray-950 p-4\"\n ></code-block>\n </details>\n <template if=\"report.workflowSourceYaml\">\n <details class=\"bg-gray-900 border border-gray-800 rounded-xl overflow-hidden\">\n <summary class=\"cursor-pointer px-4 py-3 text-xs font-semibold uppercase tracking-wider text-gray-400 outline-none transition hover:bg-gray-800 focus-visible:ring-2 focus-visible:ring-indigo-400/60\">\n Workflow source YAML · revision {{ report.workflowRevision }}\n </summary>\n <code-block\n language=\"yaml\"\n theme=\"atom-one-dark\"\n bind-source=\"report.workflowSourceYaml\"\n class=\"block max-h-[38rem] overflow-auto border-t border-gray-800 bg-gray-950 p-4\"\n ></code-block>\n </details>\n </template>\n <template if=\"report.canViewLogs && aiStepId\">\n <aside class=\"fixed bottom-4 left-4 right-4 z-40 mt-4 flex max-h-[70vh] flex-col rounded-2xl border border-indigo-500/30 bg-gray-900/95 p-4 shadow-2xl backdrop-blur lg:left-auto lg:w-[28rem]\" aria-labelledby=\"ai-help-title\">\n <div class=\"flex items-start justify-between gap-3 border-b border-gray-800 pb-3\">\n <div><h2 id=\"ai-help-title\" class=\"font-semibold text-white\">AI help</h2><p class=\"mt-1 text-xs text-gray-500\">Ask about a failed step.</p></div>\n <lucide-icon icon=\"sparkles\" size=\"18\" class=\"text-indigo-300\"></lucide-icon>\n </div>\n <div class=\"min-h-0 flex-1 space-y-3 overflow-y-auto py-3\" aria-live=\"polite\">\n <p class=\"flex items-center gap-2 text-sm text-indigo-300\" class-hidden=\"!aiLoading\">\n <lucide-icon icon=\"loader-circle\" size=\"16\" class=\"animate-spin\"></lucide-icon>\n Thinking through the failed step...\n </p>\n <p class=\"text-sm text-gray-500\" class-hidden=\"aiMessages.length > 0\">Select the help icon beside a failed step to start.</p>\n <template for=\"message of aiMessages\">\n <div class=\"rounded-lg p-3 text-sm\" bind-class=\"message.role === 'assistant' ? 'bg-indigo-500/10.text-gray-200' : 'bg-gray-800.text-gray-300'\">\n <p class=\"mb-1 text-[10px] font-semibold uppercase tracking-wider text-gray-500\">{{ message.role }}</p>\n <template if=\"message.html\"><div class=\"ai-markdown text-sm leading-relaxed\" bind-innerhtml=\"message.html\"></div></template>\n <template if=\"!message.html\"><pre class=\"whitespace-pre-wrap font-sans leading-relaxed\">{{ message.content }}</pre></template>\n </div>\n </template>\n <p class=\"text-sm text-rose-300\" class-hidden=\"!aiError\">{{ aiError }}</p>\n </div>\n <form class=\"border-t border-gray-800 pt-3\" on-submit.prevent=\"askFollowup()\">\n <label class=\"sr-only\" for=\"ai-question\">Ask a follow-up question</label>\n <div class=\"flex gap-2\">\n <input id=\"ai-question\" bind-value=\"aiQuestion\" placeholder=\"Ask a follow-up...\" bind-disabled=\"!aiStepId || aiLoading\" class=\"min-w-0 flex-1 rounded-lg border border-gray-700 bg-gray-950 px-3 py-2 text-sm text-gray-200 outline-none placeholder:text-gray-600 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/30 disabled:opacity-50\" />\n <button type=\"submit\" aria-label=\"Ask AI\" bind-disabled=\"!aiStepId || aiLoading\" class=\"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-indigo-500 text-white outline-none hover:bg-indigo-400 focus-visible:ring-2 focus-visible:ring-indigo-400/60 disabled:opacity-50\"><lucide-icon icon=\"arrow-up\" size=\"16\"></lucide-icon></button>\n </div>\n </form>\n </aside>\n </template>\n <template if=\"report.canViewLogs && report.artifacts.length\">\n <details class=\"bg-gray-900 border border-gray-800 rounded-xl overflow-hidden\">\n <summary class=\"cursor-pointer px-4 py-3 text-xs font-semibold uppercase tracking-wider text-gray-400 outline-none transition hover:bg-gray-800 focus-visible:ring-2 focus-visible:ring-indigo-400/60\">\n Artifacts\n </summary>\n <ul class=\"divide-y divide-gray-800 border-t border-gray-800\">\n <template for=\"artifact of report.artifacts\">\n <li class=\"px-4 py-3\">\n <a\n href=\"#\"\n on-click=\"downloadArtifact($event, artifact)\"\n class=\"font-mono text-sm text-indigo-300 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-indigo-400/60\"\n >{{ artifact }}</a>\n </li>\n </template>\n </ul>\n </details>\n </template>\n </div>\n\n <script setup src=\"/run.mjs\"><\/script>\n </template>\n\n <script type=\"module\">\n import '@li3/web';\n <\/script>\n <script src=\"https://cdn.tailwindcss.com\"><\/script>\n </body>\n</html>\n", le = /(?:^|[_-])auth(?:entication)?(?:$|[_-])|access[_-]?key|api[_-]?key|authorization|cookie|credential|passphrase|password|private[_-]?key|secret|session(?:id)?|signing[_-]?key|token/i;
160
- function ue(e, t, n, r = [], i = !0, a) {
161
- let o = JSON.parse(e.payload), s = e.report ? JSON.parse(e.report) : fe(e, o, r), c = e.status;
160
+ function ue(e, t, n, r = [], i = !0, a, o) {
161
+ let s = JSON.parse(e.payload), c = e.report ? JSON.parse(e.report) : fe(e, s, r), l = e.status;
162
162
  return {
163
163
  jobId: String(e.id),
164
164
  workerId: e.worker_id || void 0,
165
165
  workflowId: e.workflow_id,
166
166
  workflowRevision: Number(e.workflow_revision),
167
167
  workflowSourceYaml: i ? a : void 0,
168
- parentId: String(s.parentId || e.parentId || ""),
169
- workflowName: n(s.workflowName),
170
- status: c,
171
- durationMs: c === "running" ? Math.max(0, Date.now() - Date.parse(s.startedAt)) : s.durationMs,
172
- startedAt: s.startedAt,
173
- finishedAt: s.finishedAt,
174
- inputs: pe(s.inputs || {}, n),
175
- steps: (s.steps || []).map((e) => {
168
+ parentId: String(c.parentId || e.parentId || ""),
169
+ workflowName: n(o || c.workflowName || "Unknown workflow"),
170
+ status: l,
171
+ durationMs: l === "running" ? Math.max(0, Date.now() - Date.parse(c.startedAt)) : c.durationMs,
172
+ startedAt: c.startedAt,
173
+ finishedAt: c.finishedAt,
174
+ inputs: pe(c.inputs || {}, n),
175
+ steps: (c.steps || []).map((e) => {
176
176
  let r = Object.hasOwn(t, e.id) && typeof t[e.id] == "string" ? t[e.id] : "";
177
177
  return {
178
178
  id: e.id,
@@ -187,7 +187,7 @@ function ue(e, t, n, r = [], i = !0, a) {
187
187
  logContent: !i || e.status === "running" || e.status === "pending" ? "" : n(r || e.logContent || "")
188
188
  };
189
189
  }),
190
- artifacts: (s.artifacts || []).map(n),
190
+ artifacts: (c.artifacts || []).map(n),
191
191
  canViewLogs: i
192
192
  };
193
193
  }
@@ -13234,7 +13234,7 @@ var hg = mg(fg, pg, dg), gg = "/* global document, window, localStorage, navigat
13234
13234
  let e = n === "json" ? "application/json; charset=utf-8" : "text/html; charset=utf-8";
13235
13235
  return t.writeHead(404, { "Content-Type": e }), t.end(n === "json" ? JSON.stringify({ error: "Run not found" }) : "<h1>404 - Run Not Found</h1>");
13236
13236
  }
13237
- let a = r ? await this.queue.getJobLogs(e) : {}, o = await this.currentSecrets(), s = await this.workflows.getRevision(i.workflow_id, i.workflow_revision), c = r ? await this.workflows.getRevisionSnapshot(i.workflow_id, i.workflow_revision) : null, l = ue(i, a, (e) => this.redact(e, o), s?.steps, r, c?.sourceYaml);
13237
+ let a = r ? await this.queue.getJobLogs(e) : {}, o = await this.currentSecrets(), s = await this.workflows.getRevision(i.workflow_id, i.workflow_revision), c = r ? await this.workflows.getRevisionSnapshot(i.workflow_id, i.workflow_revision) : null, l = ue(i, a, (e) => this.redact(e, o), s?.steps, r, c?.sourceYaml, s?.name);
13238
13238
  if (n === "json") return t.writeHead(200, {
13239
13239
  "Cache-Control": "no-store",
13240
13240
  "Content-Type": "application/json; charset=utf-8"
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAc,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAoBxF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAC,CAAa;IAC1B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAgB;WAE1B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;gBAK1D,OAAO,EAAE,oBAAoB;IAoBzC,oBAAoB,CAAC,YAAY,EAAE,mBAAmB;YAIxC,aAAa;IAic3B;;OAEG;YACW,aAAa;YA0Bb,cAAc;YAcd,iBAAiB;YA2CjB,aAAa;YAsBb,iBAAiB;YA4BjB,WAAW;YAwBX,UAAU;YAyBV,cAAc;IAsD5B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;YAIF,QAAQ;IAatB,OAAO,CAAC,wBAAwB;YAQlB,eAAe;YAcf,kBAAkB;IA0BhC,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,OAAO;YAID,cAAc;YAsBd,cAAc;YA6Bd,eAAe;IAW7B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;YAKJ,YAAY;IAO1B,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,mBAAmB;YAQb,QAAQ;YAYR,wBAAwB;YAcxB,kBAAkB;YAOlB,iBAAiB;YAoBjB,kBAAkB;YAoBlB,oBAAoB;YASpB,qBAAqB;YAWrB,gBAAgB;YAMhB,gBAAgB;YAiBhB,kBAAkB;YASlB,gBAAgB;IAc9B;;OAEG;YACW,kBAAkB;YAWlB,iBAAiB;IA2B/B,OAAO,CAAC,mBAAmB;YASb,mBAAmB;YAoBnB,qBAAqB;IAcnC;;OAEG;YACW,eAAe;IAK7B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,mBAAmB;YAgBb,mBAAmB;IAwBjC;;OAEG;YACW,gBAAgB;YAsChB,gBAAgB;YAiBhB,sBAAsB;YAoBtB,YAAY;YAkEZ,oBAAoB;YA0CpB,eAAe;YAkBf,cAAc;IAS5B,OAAO,CAAC,MAAM;YAMA,UAAU;IAIlB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAU5C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAS5B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAc,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAoBxF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAC,CAAa;IAC1B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAgB;WAE1B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;gBAK1D,OAAO,EAAE,oBAAoB;IAoBzC,oBAAoB,CAAC,YAAY,EAAE,mBAAmB;YAIxC,aAAa;IAic3B;;OAEG;YACW,aAAa;YA0Bb,cAAc;YAcd,iBAAiB;YA2CjB,aAAa;YAsBb,iBAAiB;YA4BjB,WAAW;YAwBX,UAAU;YAyBV,cAAc;IAsD5B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;YAIF,QAAQ;IAatB,OAAO,CAAC,wBAAwB;YAQlB,eAAe;YAcf,kBAAkB;IA0BhC,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,OAAO;YAID,cAAc;YAsBd,cAAc;YA6Bd,eAAe;IAW7B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;YAKJ,YAAY;IAO1B,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,mBAAmB;YAQb,QAAQ;YAYR,wBAAwB;YAcxB,kBAAkB;YAOlB,iBAAiB;YAoBjB,kBAAkB;YAoBlB,oBAAoB;YASpB,qBAAqB;YAWrB,gBAAgB;YAMhB,gBAAgB;YAiBhB,kBAAkB;YASlB,gBAAgB;IAc9B;;OAEG;YACW,kBAAkB;YAWlB,iBAAiB;IA2B/B,OAAO,CAAC,mBAAmB;YASb,mBAAmB;YAoBnB,qBAAqB;IAcnC;;OAEG;YACW,eAAe;IAK7B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,mBAAmB;YAgBb,mBAAmB;IAwBjC;;OAEG;YACW,gBAAgB;YAuChB,gBAAgB;YAiBhB,sBAAsB;YAoBtB,YAAY;YAkEZ,oBAAoB;YA0CpB,eAAe;YAkBf,cAAc;IAS5B,OAAO,CAAC,MAAM;YAMA,UAAU;IAIlB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAU5C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAS5B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud-cli/on",
3
- "version": "1.69.0",
3
+ "version": "1.69.1",
4
4
  "description": "CLI entry point for the on plugin ecosystem.",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@12.3.4",