init claude-code

This commit is contained in:
2026-04-01 17:32:37 +02:00
commit 73b208c009
1902 changed files with 513237 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
import type { Command } from '../../commands.js'
import { checkStatsigFeatureGate_CACHED_MAY_BE_STALE } from '../../services/analytics/growthbook.js'
// Hidden command that just plays the animation
// Called by the thinkback skill after generation is complete
const thinkbackPlay = {
type: 'local',
name: 'thinkback-play',
description: 'Play the thinkback animation',
isEnabled: () =>
checkStatsigFeatureGate_CACHED_MAY_BE_STALE('tengu_thinkback'),
isHidden: true,
supportsNonInteractive: false,
load: () => import('./thinkback-play.js'),
} satisfies Command
export default thinkbackPlay
+43
View File
@@ -0,0 +1,43 @@
import { join } from 'path'
import type { LocalCommandResult } from '../../commands.js'
import { loadInstalledPluginsV2 } from '../../utils/plugins/installedPluginsManager.js'
import { OFFICIAL_MARKETPLACE_NAME } from '../../utils/plugins/officialMarketplace.js'
import { playAnimation } from '../thinkback/thinkback.js'
const INTERNAL_MARKETPLACE_NAME = 'claude-code-marketplace'
const SKILL_NAME = 'thinkback'
function getPluginId(): string {
const marketplaceName =
process.env.USER_TYPE === 'ant'
? INTERNAL_MARKETPLACE_NAME
: OFFICIAL_MARKETPLACE_NAME
return `thinkback@${marketplaceName}`
}
export async function call(): Promise<LocalCommandResult> {
// Get skill directory from installed plugins config
const v2Data = loadInstalledPluginsV2()
const pluginId = getPluginId()
const installations = v2Data.plugins[pluginId]
if (!installations || installations.length === 0) {
return {
type: 'text' as const,
value:
'Thinkback plugin not installed. Run /think-back first to install it.',
}
}
const firstInstall = installations[0]
if (!firstInstall?.installPath) {
return {
type: 'text' as const,
value: 'Thinkback plugin installation path not found.',
}
}
const skillDir = join(firstInstall.installPath, 'skills', SKILL_NAME)
const result = await playAnimation(skillDir)
return { type: 'text' as const, value: result.message }
}