{"id":49432400,"url":"https://github.com/openclaw/kitchen-sink","last_synced_at":"2026-05-03T18:01:46.457Z","repository":{"id":354216882,"uuid":"1222063842","full_name":"openclaw/kitchen-sink","owner":"openclaw","description":"Credential-free kitchen-sink OpenClaw plugin fixture covering the public plugin API surface.","archived":false,"fork":false,"pushed_at":"2026-04-30T21:04:54.000Z","size":1268,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-01T16:26:34.747Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openclaw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":["moltbot"]}},"created_at":"2026-04-27T02:24:31.000Z","updated_at":"2026-04-30T21:04:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/openclaw/kitchen-sink","commit_stats":null,"previous_names":["patrick-erichsen/openclaw-kitchen-sink-plugin","openclaw/kitchen-sink"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/openclaw/kitchen-sink","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openclaw%2Fkitchen-sink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openclaw%2Fkitchen-sink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openclaw%2Fkitchen-sink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openclaw%2Fkitchen-sink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openclaw","download_url":"https://codeload.github.com/openclaw/kitchen-sink/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openclaw%2Fkitchen-sink/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32542201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T12:25:33.646Z","status":"ssl_error","status_checked_at":"2026-05-02T12:24:51.733Z","response_time":132,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-29T14:00:36.009Z","updated_at":"2026-05-02T17:01:05.972Z","avatar_url":"https://github.com/openclaw.png","language":"JavaScript","funding_links":["https://github.com/sponsors/moltbot"],"categories":["Skills \u0026 Plugins"],"sub_categories":["Notable Skills \u0026 Plugins"],"readme":"# 🧽 OpenClaw Kitchen Sink Plugin\n\nCredential-free OpenClaw plugin fixture that intentionally touches the public\nplugin API surface and works as a kitchen sink boilerplate for plugin authors.\n\nThis repo is both:\n\n- a readable example for plugin authors\n- a dummy compatibility fixture for [Crabpot](https://github.com/openclaw/crabpot) and [plugin-inspector](https://github.com/openclaw/plugin-inspector)\n- a live plugin `@openclaw/kitchen-sink` that can be installed via clawhub and npm for testing features\n\nThe generated runtime probes are credential-free. The hand-owned Kitchen Sink\nruntime also registers deterministic direct commands, tools, image generation,\nspeech, realtime transcription/voice, video, music, media understanding, web\nsearch, web fetch, memory, compaction, gateway/service/CLI, channel, hook,\ndetached-task, and text-provider catalog surfaces.\nIt should not call external services, read secrets, spawn processes, or require\nlive credentials.\n\n## Kitchen Runtime\n\nThe fixture can be used dry, without an LLM:\n\n```text\nkitchen image generate a kitchen sink\nkitchen image rate limit\nkitchen image timeout\nkitchen search kitchen sink provider routing\nkitchen fetch kitchen://fixture/redirect\nkitchen explain the fixture\n```\n\nIt also exposes provider and tool surfaces for live model routing:\n\n- `src/scenarios.js` is the shared deterministic fixture engine used by dry\n  commands, tools, providers, hooks, channel delivery, and tests.\n- `kitchen_sink_image_job` returns a deterministic image job, waits 10 seconds\n  in real runtime execution, then returns the bundled `kitchen_sink_office.png`\n  image payload with PNG dimensions, byte size, SHA-256 hash, seed, model, and\n  finish metadata.\n- `kitchen-sink-image` is a registered image generation provider with aliases\n  `kitchen`, `kitchen-sink`, and `openclaw-kitchen-sink`; prompts containing\n  `rate limit`, `timeout`, or `fail` exercise deterministic provider error\n  paths.\n- `kitchen-sink-media` describes images with deterministic fixture text.\n- `kitchen-sink-speech`, `kitchen-sink-realtime-transcription`,\n  `kitchen-sink-realtime-voice`, `kitchen-sink-video`, and\n  `kitchen-sink-music` expose credential-free media provider fixtures with\n  deterministic WAV, transcript, bridge, storyboard, and track payloads.\n- `kitchen-sink-search` and `kitchen-sink-fetch` provide credential-free web\n  tool fixtures with realistic status codes, request ids, result metadata,\n  redirects, headers, cache metadata, links, and markdown content.\n- `kitchen-sink-memory-embedding`, `kitchen-sink-memory-corpus`, and\n  `kitchen-sink-compaction` provide deterministic memory vectors, corpus\n  results, reads, and transcript summaries.\n- `kitchen-sink-channel` is a credential-free channel fixture that can resolve\n  local ready/disabled/misconfigured accounts, route outbound sessions, and\n  deliver deterministic text/media records.\n- `kitchen.status`, `/kitchen-sink/status`, `kitchen-sink-service`, and the\n  lazy CLI descriptor exercise gateway method, HTTP route, service, and CLI\n  registration surfaces.\n- `kitchen-sink-llm` exposes a deterministic text-provider catalog row,\n  provider-owned stream function, and prompt guidance so live LLM providers can\n  discover the Kitchen Sink routes; responses describe which real plugin\n  surface would handle image, search, fetch, and failure prompts.\n- generated hooks classify Kitchen Sink prompts, tool calls, and provider\n  selections into shared scenario ids such as `image.generate`, `web.search`,\n  and `text.reply`.\n- the detached-task runtime records queued/running/completed/cancelled task\n  transitions in memory so async OpenClaw task surfaces can be smoke-tested.\n\n## API Surface Sync\n\nThe generated fixture is derived from the installed `openclaw` package. It\nextracts the public plugin surface from:\n\n- registrar methods\n- hook names\n- manifest contract fields\n- exported plugin SDK subpaths\n\nIt then writes explicit static evidence for those surfaces: hook registrations,\nregistrar calls with no-op callback payloads, SDK import coverage, and manifest\ncontract coverage.\n\n```sh\nnpm install\nnpm run sync:surface\nnpm test\nnpm run pack:check\n```\n\nThe `Update OpenClaw SDK Surface` workflow automatically checks\n`openclaw@latest` and `@openclaw/plugin-inspector@latest` every 10 minutes. When\neither package changes, it regenerates the pinned dependency, lockfile,\nmanifest, hooks, registrars, and SDK import fixture files, runs the static and\nruntime plugin-inspector checks, then creates and squash-merges its own\nautomation PR after those checks pass.\n\nDependabot still watches npm dependencies, but ignores `openclaw` and\n`@openclaw/plugin-inspector` because those updates should flow through the\ngenerated updater instead of package-only bump PRs.\n\n## Publishing\n\nTagged GitHub releases publish the validated package to npm through trusted\npublishing. The release tag must match `package.json`, for example `v0.0.1` for\nversion `0.0.1`.\n\nUse the `Draft Release` workflow to create the tag and generated GitHub release\nnotes. Publishing that draft release runs the npm publish workflow. `0.0.x`\nverification releases publish under the `verification` npm dist-tag so they do\nnot replace the stable `latest` tag.\n\nPull requests run a ClawHub package-publish dry run through the canonical\n`openclaw/clawhub` reusable workflow on `main`, so the fixture tests the current\nClawHub publishing path instead of a vendored copy. Releases publish to ClawHub\nthrough the same canonical workflow after validation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenclaw%2Fkitchen-sink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenclaw%2Fkitchen-sink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenclaw%2Fkitchen-sink/lists"}