merge: integrate remote project scaffold updates

This commit is contained in:
inman
2026-09-05 12:42:00 +08:00
60 changed files with 2909 additions and 141 deletions

View File

@@ -103,6 +103,8 @@ export const DATA_SERVICE_PREVIEW_RUNTIME_SURFACE = 'data-service-v1' as const;
export const GAME_RESOURCE_PLUGIN_ID = 'makelore.game-resource' as const;
export const GAME_RESOURCE_BUNDLED_RELEASE_ID = '00000000-0000-4000-8000-000000000105' as const;
export const PROJECT_SCAFFOLD_PLUGIN_ID = 'makelore.project-scaffold' as const;
export const PROJECT_SCAFFOLD_BUNDLED_RELEASE_ID = '00000000-0000-4000-8000-000000000303' as const;
export const CODE_OWNED_OPTIONAL_BUNDLED_RELEASES = Object.freeze({
[GAME_RESOURCE_PLUGIN_ID]: Object.freeze({
@@ -110,6 +112,11 @@ export const CODE_OWNED_OPTIONAL_BUNDLED_RELEASES = Object.freeze({
version: '1.0.0',
channel: 'stable' as const,
}),
[PROJECT_SCAFFOLD_PLUGIN_ID]: Object.freeze({
releaseId: PROJECT_SCAFFOLD_BUNDLED_RELEASE_ID,
version: '1.0.0',
channel: 'stable' as const,
}),
});
export function isCodeOwnedOptionalBundledPluginId(pluginId: string): boolean {

View File

@@ -1,13 +1,23 @@
export const PRODUCT_OVERVIEW_FILENAME = 'PRODUCT_OVERVIEW.md';
export const LEGACY_PROMOTION_PLAN_FILENAME = 'PROMOTION_PLAN.md';
export const PROJECT_TYPES = ['mini_game', 'mini_program', 'custom'] as const;
export const PROJECT_TYPES = ['interactive_ai_app', 'custom'] as const;
export type ProjectType = (typeof PROJECT_TYPES)[number];
const LEGACY_INTERACTIVE_PROJECT_TYPES = new Set(['mini_game', 'mini_program']);
export function isProjectType(value: unknown): value is ProjectType {
return typeof value === 'string' && PROJECT_TYPES.includes(value as ProjectType);
}
export function normalizeProjectType(value: unknown): ProjectType | undefined {
if (isProjectType(value)) return value;
if (typeof value === 'string' && LEGACY_INTERACTIVE_PROJECT_TYPES.has(value)) {
return 'interactive_ai_app';
}
return undefined;
}
export type ProjectAgentResponsibility = {
mission: string;
owns: string[];