Skip to content

Kody is live

Watch the launch video — what Kody is, and why it exists.

← Public packages

@kody/doomPublic

src/index.ts

51 lines · 1.6 KB · TypeScript
/**
 * Describe @kody/doom: Freedoom in the browser as an installable PWA with WebMCP tools.
 * Use when discovering the package, checking the hosted app URL, or choosing exports.
 *
 * @returns Package identity, engine/IWAD notes, exports, and WebMCP tool names
 *
 * @example
 * import describe from 'kody:@kody/doom'
 * const info = await describe()
 */
export default async function describe() {
	return {
		name: '@kody/doom',
		kodyId: 'doom',
		title: 'KODOOM',
		purpose:
			'Play Freedoom (BSD) on Chocolate Doom WASM in an installable PWA with browser WebMCP tools.',
		engine: {
			name: 'Chocolate Doom WASM',
			lineage: 'cloudflare/doom-wasm via justinh-rahb/webui-doom compiled artifacts',
			license: 'GPLv2',
			sourceOffer: [
				'https://github.com/chocolate-doom/chocolate-doom',
				'https://github.com/cloudflare/doom-wasm',
				'https://github.com/justinh-rahb/webui-doom',
			],
		},
		iwad: {
			default: 'freedoom1.wad (Freedoom Phase 1, BSD)',
			optional: 'doom1.wad (DOOM shareware, freely redistributable)',
			notShipped: ['Ultimate Doom', 'Doom 2 commercial WADs'],
		},
		exports: {
			'.': 'Package describe helper',
			'./app': 'Hosted PWA fetch handler',
			'./open': 'Resolve the hosted app URL',
		},
		webmcpTools: [
			'get_status',
			'start_game',
			'pause_or_resume',
			'toggle_fullscreen',
			'send_input',
			'select_episode_or_map',
			'get_controls',
			'open_help',
		],
		disclaimer:
			'Not affiliated with id Software or Bethesda. Classic DOOM trademark belongs to them. This package runs open content (Freedoom) on Chocolate Doom WASM.',
	}
}