summaryrefslogtreecommitdiffhomepage
path: root/packages/host-bin
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-21 14:58:38 +0900
committerAdam Malczewski <[email protected]>2026-06-21 14:58:38 +0900
commitdfb3a61afa545b67b85dbefe6b217affd14c16a7 (patch)
treefbe0d18323136cc19d971e18f0801428bcd2e4a7 /packages/host-bin
parentd56fe9cf64719bb330c17b2daee58c0bafa057c9 (diff)
downloaddispatch-dfb3a61afa545b67b85dbefe6b217affd14c16a7.tar.gz
dispatch-dfb3a61afa545b67b85dbefe6b217affd14c16a7.zip
feat(tool-youtube-transcript): YouTube transcription tool
New standard tool extension backed by a self-hosted transcriber service (http://100.102.55.49:41090, Tailscale, no API key). One tool youtube_transcript — fetches transcripts for YouTube videos. Returns completed (full text + timestamped segments), queued/processing (position + ETA + .youtube_subtitles_pending retry convention), or failed (error). Pure core: validateUrl + format* functions + truncateOutput. Injected edge: TranscriptClient (injectable fetchFn, AbortSignal.any for cancellation). concurrencySafe true, capabilities network. 30 tests. Verified: tsc EXIT 0, 1152 vitest, biome clean (327 files). Boot smoke clean.
Diffstat (limited to 'packages/host-bin')
-rw-r--r--packages/host-bin/package.json1
-rw-r--r--packages/host-bin/src/main.ts2
2 files changed, 3 insertions, 0 deletions
diff --git a/packages/host-bin/package.json b/packages/host-bin/package.json
index be530b5..ca328da 100644
--- a/packages/host-bin/package.json
+++ b/packages/host-bin/package.json
@@ -23,6 +23,7 @@
"@dispatch/tool-edit-file": "workspace:*",
"@dispatch/tool-write-file": "workspace:*",
"@dispatch/tool-web-search": "workspace:*",
+ "@dispatch/tool-youtube-transcript": "workspace:*",
"@dispatch/journal-sink": "workspace:*",
"@dispatch/lsp": "workspace:*",
"@dispatch/surface-loaded-extensions": "workspace:*",
diff --git a/packages/host-bin/src/main.ts b/packages/host-bin/src/main.ts
index 5a7fcae..1261df4 100644
--- a/packages/host-bin/src/main.ts
+++ b/packages/host-bin/src/main.ts
@@ -35,6 +35,7 @@ import { extension as toolReadFileExt } from "@dispatch/tool-read-file";
import { extension as toolShellExt } from "@dispatch/tool-shell";
import { extension as toolWebSearchExt } from "@dispatch/tool-web-search";
import { extension as toolWriteFileExt } from "@dispatch/tool-write-file";
+import { extension as toolYoutubeTranscriptExt } from "@dispatch/tool-youtube-transcript";
import { createTransportHttpExtension } from "@dispatch/transport-http";
import { createTransportWsExtension } from "@dispatch/transport-ws";
import type { ChildHandle } from "./collector-supervisor.js";
@@ -78,6 +79,7 @@ const CORE_EXTENSIONS: readonly Extension[] = [
toolShellExt,
toolWriteFileExt,
toolWebSearchExt,
+ toolYoutubeTranscriptExt,
throughputStoreExt,
todoExt,
messageQueueExt,