@@ -453,6 +462,7 @@ export function HoloLakeHome({
{t('hololake.channel.heartbeatDescription')}
+ navigate('education-work-lake')} />
@@ -492,6 +502,7 @@ export function HoloLakeHome({
+
>}
{fifthDomainOpen && <>
diff --git a/product-source/hololake-platform/src/hooks/useAiAgentsStatus.test.ts b/product-source/hololake-platform/src/hooks/useAiAgentsStatus.test.ts
index 0407d12..c5a1aca 100644
--- a/product-source/hololake-platform/src/hooks/useAiAgentsStatus.test.ts
+++ b/product-source/hololake-platform/src/hooks/useAiAgentsStatus.test.ts
@@ -57,11 +57,6 @@ describe('useAiAgentsStatus', () => {
expect(result.current.claude_code).toEqual({ status: 'installed', version: '1.0.20' })
expect(result.current.codex).toEqual({ status: 'missing', version: null })
expect(result.current.copilot).toEqual({ status: 'installed', version: '1.0.58' })
- expect(result.current.opencode).toEqual({ status: 'installed', version: '0.3.1' })
- expect(result.current.pi).toEqual({ status: 'installed', version: '0.70.2' })
- expect(result.current.antigravity).toEqual({ status: 'installed', version: 'Antigravity CLI 1.0.0' })
- expect(result.current.kiro).toEqual({ status: 'installed', version: '0.4.0' })
- expect(result.current.hermes).toEqual({ status: 'installed', version: 'Hermes Agent 0.16.0' })
})
})
diff --git a/product-source/hololake-platform/src/hooks/useCommandRegistry.test.ts b/product-source/hololake-platform/src/hooks/useCommandRegistry.test.ts
index cfd1aac..d25959e 100644
--- a/product-source/hololake-platform/src/hooks/useCommandRegistry.test.ts
+++ b/product-source/hololake-platform/src/hooks/useCommandRegistry.test.ts
@@ -1085,9 +1085,9 @@ describe('reload-vault command', () => {
expect(cmd).toBeDefined()
expect(cmd!.label).toBe('Switch AI Agent to Codex')
expect(findCommand(result.current, 'switch-ai-agent-copilot')).toBeDefined()
- expect(findCommand(result.current, 'switch-ai-agent-opencode')).toBeDefined()
- expect(findCommand(result.current, 'switch-ai-agent-pi')).toBeDefined()
- expect(findCommand(result.current, 'switch-ai-agent-antigravity')).toBeDefined()
+ expect(findCommand(result.current, 'switch-ai-agent-opencode')).toBeUndefined()
+ expect(findCommand(result.current, 'switch-ai-agent-pi')).toBeUndefined()
+ expect(findCommand(result.current, 'switch-ai-agent-antigravity')).toBeUndefined()
cmd!.execute()
expect(onSetDefaultAiAgent).toHaveBeenCalledWith('codex')
diff --git a/product-source/hololake-platform/src/hooks/useStartupScreenState.test.ts b/product-source/hololake-platform/src/hooks/useStartupScreenState.test.ts
new file mode 100644
index 0000000..1f8c027
--- /dev/null
+++ b/product-source/hololake-platform/src/hooks/useStartupScreenState.test.ts
@@ -0,0 +1,27 @@
+import { renderHook } from '@testing-library/react'
+import { describe, expect, it } from 'vitest'
+import { useStartupScreenState } from './useStartupScreenState'
+
+describe('useStartupScreenState', () => {
+ it('does not let local vault onboarding replace the HoloLake world entry', () => {
+ const { result } = renderHook(() => useStartupScreenState({
+ aiAgentsPromptVisible: false,
+ isNoteWindow: false,
+ onboardingState: { status: 'welcome' },
+ runtimeMissingVaultPath: '/blocked/config/path',
+ selectedVaultPath: null,
+ settingsLoaded: true,
+ showMcpSetupDialog: false,
+ telemetryConsent: null,
+ vaultIsLoading: false,
+ vaultSwitcher: {
+ allVaults: [],
+ loaded: true,
+ vaultPath: '',
+ },
+ worldEntryVisible: true,
+ }))
+
+ expect(result.current.shouldShowStartupScreen).toBe(false)
+ })
+})
diff --git a/product-source/hololake-platform/src/hooks/useStartupScreenState.ts b/product-source/hololake-platform/src/hooks/useStartupScreenState.ts
index 2fe7b58..3558c5b 100644
--- a/product-source/hololake-platform/src/hooks/useStartupScreenState.ts
+++ b/product-source/hololake-platform/src/hooks/useStartupScreenState.ts
@@ -22,6 +22,7 @@ interface UseStartupScreenStateArgs {
telemetryConsent: boolean | null
vaultIsLoading: boolean
vaultSwitcher: StartupVaultSwitcherState
+ worldEntryVisible?: boolean
}
interface StartupScreenState {
@@ -122,6 +123,7 @@ export function useStartupScreenState({
telemetryConsent,
vaultIsLoading,
vaultSwitcher,
+ worldEntryVisible = false,
}: UseStartupScreenStateArgs): StartupScreenState {
const shouldResumeFreshStartOnboarding = useMemo(
() => shouldResumeFreshStart(onboardingState, selectedVaultPath, vaultSwitcher),
@@ -129,7 +131,7 @@ export function useStartupScreenState({
)
const isStartupLoading = !isNoteWindow && onboardingState.status === 'loading'
- const shouldShowStartupScreen = shouldShowStartupScreenForState({
+ const shouldShowStartupScreen = !worldEntryVisible && shouldShowStartupScreenForState({
aiAgentsPromptVisible,
isNoteWindow,
isStartupLoading,
diff --git a/product-source/hololake-platform/src/lib/aiAgents.test.ts b/product-source/hololake-platform/src/lib/aiAgents.test.ts
index dc44444..f7f2183 100644
--- a/product-source/hololake-platform/src/lib/aiAgents.test.ts
+++ b/product-source/hololake-platform/src/lib/aiAgents.test.ts
@@ -11,12 +11,12 @@ describe('aiAgents helpers', () => {
expect(normalizeStoredAiAgent('claude_code')).toBe('claude_code')
expect(normalizeStoredAiAgent('codex')).toBe('codex')
expect(normalizeStoredAiAgent('copilot')).toBe('copilot')
- expect(normalizeStoredAiAgent('opencode')).toBe('opencode')
- expect(normalizeStoredAiAgent('pi')).toBe('pi')
- expect(normalizeStoredAiAgent('antigravity')).toBe('antigravity')
- expect(normalizeStoredAiAgent('gemini')).toBe('antigravity')
- expect(normalizeStoredAiAgent('kiro')).toBe('kiro')
- expect(normalizeStoredAiAgent('hermes')).toBe('hermes')
+ expect(normalizeStoredAiAgent('opencode')).toBeNull()
+ expect(normalizeStoredAiAgent('pi')).toBeNull()
+ expect(normalizeStoredAiAgent('antigravity')).toBeNull()
+ expect(normalizeStoredAiAgent('gemini')).toBeNull()
+ expect(normalizeStoredAiAgent('kiro')).toBeNull()
+ expect(normalizeStoredAiAgent('hermes')).toBeNull()
expect(normalizeStoredAiAgent('cursor')).toBeNull()
})
@@ -40,29 +40,25 @@ describe('aiAgents helpers', () => {
expect(statuses.claude_code).toEqual({ status: 'installed', version: '1.0.20' })
expect(statuses.codex).toEqual({ status: 'missing', version: null })
expect(statuses.copilot).toEqual({ status: 'installed', version: '1.0.58' })
- expect(statuses.opencode).toEqual({ status: 'installed', version: '0.3.1' })
- expect(statuses.pi).toEqual({ status: 'installed', version: '0.70.2' })
- expect(statuses.antigravity).toEqual({ status: 'installed', version: 'Antigravity CLI 1.0.0' })
- expect(statuses.kiro).toEqual({ status: 'installed', version: '0.12.0' })
- expect(statuses.hermes).toEqual({ status: 'installed', version: 'Hermes Agent 0.16.0' })
+ expect(statuses.opencode).toBeUndefined()
+ expect(statuses.pi).toBeUndefined()
+ expect(statuses.antigravity).toBeUndefined()
+ expect(statuses.kiro).toBeUndefined()
+ expect(statuses.hermes).toBeUndefined()
})
- it('normalizes legacy Gemini status payloads to Antigravity', () => {
+ it('does not expose legacy Gemini status payloads', () => {
const statuses = normalizeAiAgentsStatus({
gemini: { installed: true, version: '0.5.1' },
})
- expect(statuses.antigravity).toEqual({ status: 'installed', version: '0.5.1' })
+ expect(statuses.antigravity).toBeUndefined()
})
it('cycles through the supported agents', () => {
expect(getNextAiAgentId('claude_code')).toBe('codex')
expect(getNextAiAgentId('codex')).toBe('copilot')
- expect(getNextAiAgentId('copilot')).toBe('opencode')
- expect(getNextAiAgentId('opencode')).toBe('pi')
- expect(getNextAiAgentId('pi')).toBe('antigravity')
- expect(getNextAiAgentId('antigravity')).toBe('kiro')
- expect(getNextAiAgentId('kiro')).toBe('hermes')
- expect(getNextAiAgentId('hermes')).toBe('claude_code')
+ expect(getNextAiAgentId('copilot')).toBe('claude_code')
+ expect(getNextAiAgentId('opencode')).toBe('claude_code')
})
})
diff --git a/product-source/hololake-platform/src/lib/aiAgents.ts b/product-source/hololake-platform/src/lib/aiAgents.ts
index 4f2ff70..273e40f 100644
--- a/product-source/hololake-platform/src/lib/aiAgents.ts
+++ b/product-source/hololake-platform/src/lib/aiAgents.ts
@@ -40,37 +40,40 @@ export const AI_AGENT_DEFINITIONS: readonly AiAgentDefinition[] = [
shortLabel: 'Copilot',
installUrl: 'https://docs.github.com/en/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli',
},
- {
+] as const
+
+const LEGACY_AI_AGENT_DEFINITIONS: Partial> = {
+ opencode: {
id: 'opencode',
label: 'OpenCode',
shortLabel: 'OpenCode',
installUrl: 'https://opencode.ai/docs/',
},
- {
+ pi: {
id: 'pi',
label: 'Pi',
shortLabel: 'Pi',
installUrl: 'https://pi.dev',
},
- {
+ antigravity: {
id: 'antigravity',
- label: 'Antigravity CLI',
+ label: 'Antigravity',
shortLabel: 'Antigravity',
installUrl: 'https://antigravity.google/docs/cli/install',
},
- {
+ kiro: {
id: 'kiro',
label: 'Kiro',
shortLabel: 'Kiro',
installUrl: 'https://kiro.dev/docs/cli',
},
- {
+ hermes: {
id: 'hermes',
label: 'Hermes Agent',
shortLabel: 'Hermes',
installUrl: 'https://hermes-agent.nousresearch.com/docs/getting-started/quickstart',
},
-] as const
+}
export function createAiAgentAvailability(status: AiAgentStatus = 'checking', version: string | null = null): AiAgentAvailability {
return { status, version }
@@ -94,7 +97,6 @@ export function createMissingAiAgentsStatus(): AiAgentsStatus {
}
export function normalizeStoredAiAgent(value: string | null | undefined): AiAgentId | null {
- if (value === 'gemini') return 'antigravity'
if (AI_AGENT_DEFINITIONS.some((definition) => definition.id === value)) return value as AiAgentId
return null
}
@@ -104,7 +106,9 @@ export function resolveDefaultAiAgent(value: string | null | undefined): AiAgent
}
export function getAiAgentDefinition(agent: AiAgentId): AiAgentDefinition {
- return AI_AGENT_DEFINITIONS.find((definition) => definition.id === agent) ?? AI_AGENT_DEFINITIONS[0]
+ return AI_AGENT_DEFINITIONS.find((definition) => definition.id === agent)
+ ?? LEGACY_AI_AGENT_DEFINITIONS[agent]
+ ?? AI_AGENT_DEFINITIONS[0]
}
function normalizeAvailability(agent: { installed?: boolean | null; version?: string | null } | null | undefined): AiAgentAvailability {
@@ -116,7 +120,7 @@ function normalizeAvailability(agent: { installed?: boolean | null; version?: st
}
function payloadForAgent(payload: AiAgentsStatusPayload | null | undefined, agent: AiAgentId) {
- return agent === 'antigravity' ? payload?.antigravity ?? payload?.gemini : payload?.[agent]
+ return payload?.[agent]
}
export function normalizeAiAgentsStatus(payload: AiAgentsStatusPayload | null | undefined): AiAgentsStatus {
diff --git a/product-source/hololake-platform/src/lib/aiTargets.test.ts b/product-source/hololake-platform/src/lib/aiTargets.test.ts
index 73453a1..8d804f7 100644
--- a/product-source/hololake-platform/src/lib/aiTargets.test.ts
+++ b/product-source/hololake-platform/src/lib/aiTargets.test.ts
@@ -59,7 +59,7 @@ describe('ai target provider contract', () => {
})
})
- it('accepts legacy agent ids saved in the default target field', () => {
+ it('falls back safely when the default target contains a hidden legacy agent', () => {
const target = resolveAiTarget({
default_ai_agent: 'claude_code',
default_ai_target: 'kiro',
@@ -67,12 +67,12 @@ describe('ai target provider contract', () => {
expect(target).toMatchObject({
kind: 'agent',
- agent: 'kiro',
- id: 'agent:kiro',
+ agent: 'claude_code',
+ id: 'agent:claude_code',
})
})
- it('uses the legacy default agent when a saved agent target is stale', () => {
+ it('falls back safely when the saved legacy default agent is no longer selectable', () => {
const target = resolveAiTarget({
default_ai_agent: 'kiro',
default_ai_target: 'agent:claude_code',
@@ -80,8 +80,8 @@ describe('ai target provider contract', () => {
expect(target).toMatchObject({
kind: 'agent',
- agent: 'kiro',
- id: 'agent:kiro',
+ agent: 'claude_code',
+ id: 'agent:claude_code',
})
})
diff --git a/product-source/hololake-platform/src/lib/educationWorkLake.test.ts b/product-source/hololake-platform/src/lib/educationWorkLake.test.ts
new file mode 100644
index 0000000..9166c30
--- /dev/null
+++ b/product-source/hololake-platform/src/lib/educationWorkLake.test.ts
@@ -0,0 +1,46 @@
+import { describe, expect, it } from 'vitest'
+import {
+ educationMetricsFromSheet,
+ isEducationWorkLakePath,
+ routeEducationInstruction,
+} from './educationWorkLake'
+
+describe('routeEducationInstruction', () => {
+ it.each([
+ ['整理一下这个表格里面的数据', 'sheet'],
+ ['对比一下并做一个对比图', 'chart'],
+ ['把结果做成仪表盘', 'dashboard'],
+ ['起草一份教研文档', 'document'],
+ ['找一下课程知识库', 'knowledge'],
+ ] as const)('routes %s to %s', (instruction, expectedSurface) => {
+ expect(routeEducationInstruction(instruction).surface).toBe(expectedSurface)
+ })
+
+ it('returns a stable safe fallback without claiming execution', () => {
+ expect(routeEducationInstruction('帮我看看')).toMatchObject({
+ surface: 'knowledge',
+ capabilityId: 'HL-MOD-KNOWLEDGE-001',
+ reason: 'safe-fallback',
+ })
+ })
+
+ it('prioritizes dashboards over their underlying chart keyword', () => {
+ expect(routeEducationInstruction('把对比图放进仪表盘')).toMatchObject({
+ surface: 'dashboard',
+ capabilityId: 'HL-MOD-DASHBOARD-001',
+ })
+ })
+
+ it('projects numeric spreadsheet rows into chart metrics', () => {
+ expect(educationMetricsFromSheet('---\n_display: sheet\n---\n班级,平均分\n一班,86\n二班,91\n备注,待补')).toEqual([
+ { label: '一班', value: 86 },
+ { label: '二班', value: 91 },
+ ])
+ })
+
+ it('recognizes the server-hosted education entry without matching similar words', () => {
+ expect(isEducationWorkLakePath('/jd/education/')).toBe(true)
+ expect(isEducationWorkLakePath('/jd/education/assets/app.js')).toBe(true)
+ expect(isEducationWorkLakePath('/jd/educational/')).toBe(false)
+ })
+})
diff --git a/product-source/hololake-platform/src/lib/educationWorkLake.ts b/product-source/hololake-platform/src/lib/educationWorkLake.ts
new file mode 100644
index 0000000..2782e2c
--- /dev/null
+++ b/product-source/hololake-platform/src/lib/educationWorkLake.ts
@@ -0,0 +1,92 @@
+export const EDUCATION_SURFACES = [
+ 'document',
+ 'sheet',
+ 'chart',
+ 'dashboard',
+ 'knowledge',
+] as const
+
+export type EducationSurface = typeof EDUCATION_SURFACES[number]
+
+export type EducationInstructionRoute = {
+ capabilityId: string
+ reason: 'keyword-match' | 'safe-fallback'
+ surface: EducationSurface
+}
+
+export type EducationMetric = {
+ label: string
+ value: number
+}
+
+const ROUTES: ReadonlyArray<{
+ capabilityId: string
+ keywords: readonly string[]
+ surface: EducationSurface
+}> = [
+ {
+ capabilityId: 'HL-MOD-DASHBOARD-001',
+ keywords: ['仪表盘', '看板', 'dashboard'],
+ surface: 'dashboard',
+ },
+ {
+ capabilityId: 'HL-MOD-CHART-001',
+ keywords: ['对比图', '图表', '柱状图', '折线图', 'chart'],
+ surface: 'chart',
+ },
+ {
+ capabilityId: 'HL-MOD-SHEET-001',
+ keywords: ['表格', '数据', '计算', '统计', 'sheet', 'spreadsheet'],
+ surface: 'sheet',
+ },
+ {
+ capabilityId: 'HL-MOD-DOC-001',
+ keywords: ['文档', '教案', '报告', '总结', '起草', 'document'],
+ surface: 'document',
+ },
+ {
+ capabilityId: 'HL-MOD-KNOWLEDGE-001',
+ keywords: ['知识库', '课程', '资料', '搜索', '找', 'knowledge'],
+ surface: 'knowledge',
+ },
+]
+
+export function routeEducationInstruction(instruction: string): EducationInstructionRoute {
+ const normalizedInstruction = instruction.trim().toLocaleLowerCase()
+ const route = ROUTES.find((candidate) =>
+ candidate.keywords.some((keyword) => normalizedInstruction.includes(keyword)))
+
+ if (route) {
+ return {
+ capabilityId: route.capabilityId,
+ reason: 'keyword-match',
+ surface: route.surface,
+ }
+ }
+
+ return {
+ capabilityId: 'HL-MOD-KNOWLEDGE-001',
+ reason: 'safe-fallback',
+ surface: 'knowledge',
+ }
+}
+
+export function educationMetricsFromSheet(content: string): EducationMetric[] {
+ const body = content.includes('---')
+ ? content.split('---').slice(2).join('---')
+ : content
+
+ return body
+ .trim()
+ .split(/\r?\n/)
+ .slice(1)
+ .map((row) => {
+ const [label = '', value = ''] = row.split(',')
+ return { label: label.trim(), value: Number(value.trim()) }
+ })
+ .filter((metric) => metric.label.length > 0 && Number.isFinite(metric.value))
+}
+
+export function isEducationWorkLakePath(pathname: string): boolean {
+ return pathname.split('/').filter(Boolean).includes('education')
+}
diff --git a/product-source/hololake-platform/src/lib/guanghuLivingSystem.ts b/product-source/hololake-platform/src/lib/guanghuLivingSystem.ts
index d08d590..78c8caf 100644
--- a/product-source/hololake-platform/src/lib/guanghuLivingSystem.ts
+++ b/product-source/hololake-platform/src/lib/guanghuLivingSystem.ts
@@ -9,6 +9,7 @@ export const GUANGHU_CHANNEL_ROUTES = [
'eternal-lake-heart',
'light-lake',
'heartbeat-core',
+ 'education-work-lake',
'love-core',
'servers',
] as const
diff --git a/product-source/hololake-platform/src/lib/locales/be-BY.json b/product-source/hololake-platform/src/lib/locales/be-BY.json
index 9d58eb7..2c1f673 100644
--- a/product-source/hololake-platform/src/lib/locales/be-BY.json
+++ b/product-source/hololake-platform/src/lib/locales/be-BY.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/be-Latn.json b/product-source/hololake-platform/src/lib/locales/be-Latn.json
index 710487f..279685e 100644
--- a/product-source/hololake-platform/src/lib/locales/be-Latn.json
+++ b/product-source/hololake-platform/src/lib/locales/be-Latn.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/de-DE.json b/product-source/hololake-platform/src/lib/locales/de-DE.json
index c8bc01c..b138937 100644
--- a/product-source/hololake-platform/src/lib/locales/de-DE.json
+++ b/product-source/hololake-platform/src/lib/locales/de-DE.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/en.json b/product-source/hololake-platform/src/lib/locales/en.json
index 5289e18..e81a05a 100644
--- a/product-source/hololake-platform/src/lib/locales/en.json
+++ b/product-source/hololake-platform/src/lib/locales/en.json
@@ -1000,6 +1000,20 @@
"locale.ukUA": "Ukrainian",
"locale.svSE": "Swedish",
"locale.skSK": "Slovak",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content",
"hololake.home.ariaLabel": "HoloLake Era world entry",
"hololake.home.eyebrow": "Guanghu Language World · Fifth Domain",
"hololake.home.lead": "Language-personality-driven operating system",
diff --git a/product-source/hololake-platform/src/lib/locales/es-419.json b/product-source/hololake-platform/src/lib/locales/es-419.json
index 4bd663f..f8a8759 100644
--- a/product-source/hololake-platform/src/lib/locales/es-419.json
+++ b/product-source/hololake-platform/src/lib/locales/es-419.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/es-ES.json b/product-source/hololake-platform/src/lib/locales/es-ES.json
index 37aee57..dd8827a 100644
--- a/product-source/hololake-platform/src/lib/locales/es-ES.json
+++ b/product-source/hololake-platform/src/lib/locales/es-ES.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/fr-FR.json b/product-source/hololake-platform/src/lib/locales/fr-FR.json
index c5eee5b..4d5ccdd 100644
--- a/product-source/hololake-platform/src/lib/locales/fr-FR.json
+++ b/product-source/hololake-platform/src/lib/locales/fr-FR.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/id-ID.json b/product-source/hololake-platform/src/lib/locales/id-ID.json
index 626bfa8..0d79117 100644
--- a/product-source/hololake-platform/src/lib/locales/id-ID.json
+++ b/product-source/hololake-platform/src/lib/locales/id-ID.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/it-IT.json b/product-source/hololake-platform/src/lib/locales/it-IT.json
index 03778eb..8270205 100644
--- a/product-source/hololake-platform/src/lib/locales/it-IT.json
+++ b/product-source/hololake-platform/src/lib/locales/it-IT.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/ja-JP.json b/product-source/hololake-platform/src/lib/locales/ja-JP.json
index 0051b43..3f6100b 100644
--- a/product-source/hololake-platform/src/lib/locales/ja-JP.json
+++ b/product-source/hololake-platform/src/lib/locales/ja-JP.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/ko-KR.json b/product-source/hololake-platform/src/lib/locales/ko-KR.json
index a37e875..e9767b5 100644
--- a/product-source/hololake-platform/src/lib/locales/ko-KR.json
+++ b/product-source/hololake-platform/src/lib/locales/ko-KR.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/pl-PL.json b/product-source/hololake-platform/src/lib/locales/pl-PL.json
index 5cf8e18..1fae53a 100644
--- a/product-source/hololake-platform/src/lib/locales/pl-PL.json
+++ b/product-source/hololake-platform/src/lib/locales/pl-PL.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/pt-BR.json b/product-source/hololake-platform/src/lib/locales/pt-BR.json
index 3d16c56..bf9234f 100644
--- a/product-source/hololake-platform/src/lib/locales/pt-BR.json
+++ b/product-source/hololake-platform/src/lib/locales/pt-BR.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/pt-PT.json b/product-source/hololake-platform/src/lib/locales/pt-PT.json
index 4159252..46c9504 100644
--- a/product-source/hololake-platform/src/lib/locales/pt-PT.json
+++ b/product-source/hololake-platform/src/lib/locales/pt-PT.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/ru-RU.json b/product-source/hololake-platform/src/lib/locales/ru-RU.json
index b54a4c9..2827e58 100644
--- a/product-source/hololake-platform/src/lib/locales/ru-RU.json
+++ b/product-source/hololake-platform/src/lib/locales/ru-RU.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/sk-SK.json b/product-source/hololake-platform/src/lib/locales/sk-SK.json
index eb106a9..32ae7a0 100644
--- a/product-source/hololake-platform/src/lib/locales/sk-SK.json
+++ b/product-source/hololake-platform/src/lib/locales/sk-SK.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/sv-SE.json b/product-source/hololake-platform/src/lib/locales/sv-SE.json
index d6393c9..ebd84fe 100644
--- a/product-source/hololake-platform/src/lib/locales/sv-SE.json
+++ b/product-source/hololake-platform/src/lib/locales/sv-SE.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/uk-UA.json b/product-source/hololake-platform/src/lib/locales/uk-UA.json
index 6d3cb16..ca9141d 100644
--- a/product-source/hololake-platform/src/lib/locales/uk-UA.json
+++ b/product-source/hololake-platform/src/lib/locales/uk-UA.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/vi.json b/product-source/hololake-platform/src/lib/locales/vi.json
index a8c7b5a..aac9bd0 100644
--- a/product-source/hololake-platform/src/lib/locales/vi.json
+++ b/product-source/hololake-platform/src/lib/locales/vi.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}
diff --git a/product-source/hololake-platform/src/lib/locales/zh-CN.json b/product-source/hololake-platform/src/lib/locales/zh-CN.json
index b398aea..f9735c5 100644
--- a/product-source/hololake-platform/src/lib/locales/zh-CN.json
+++ b/product-source/hololake-platform/src/lib/locales/zh-CN.json
@@ -1000,6 +1000,20 @@
"locale.ukUA": "乌克兰语",
"locale.svSE": "瑞典语",
"locale.skSK": "斯洛伐克语",
+ "education.title": "教育工作湖",
+ "education.description": "人格体通过语言指令调出并编辑文档、表格、对比图、仪表盘与知识,所有呈现在用户设备完成。",
+ "education.hostingState": "临时隔离承载",
+ "education.instructionLabel": "告诉人格体你要处理什么",
+ "education.instructionPlaceholder": "例如:整理这个表格,并生成一个对比仪表盘",
+ "education.runInstruction": "运行指令",
+ "education.openedInsideApp": "已在应用内打开",
+ "education.surfaceNavigation": "教育工作区界面",
+ "education.document": "文档",
+ "education.sheet": "表格",
+ "education.chart": "对比图",
+ "education.dashboard": "仪表盘",
+ "education.knowledge": "知识",
+ "education.documentLabel": "教研文档内容",
"hololake.home.ariaLabel": "HoloLake Era 世界入口",
"hololake.home.eyebrow": "光湖语言世界 · 第五域",
"hololake.home.lead": "语言人格驱动操作系统",
diff --git a/product-source/hololake-platform/src/lib/locales/zh-TW.json b/product-source/hololake-platform/src/lib/locales/zh-TW.json
index fb0195d..093e9be 100644
--- a/product-source/hololake-platform/src/lib/locales/zh-TW.json
+++ b/product-source/hololake-platform/src/lib/locales/zh-TW.json
@@ -1121,5 +1121,19 @@
"hololake.login.errorTitle": "The world entrance did not open",
"hololake.login.retry": "Try again",
"hololake.login.privacy": "HoloLake never receives or stores your mailbox address. The Fifth Domain controller resolves the bound Guanghu number.",
- "hololake.login.nodeReady": "Fifth Domain world entrance ready"
+ "hololake.login.nodeReady": "Fifth Domain world entrance ready",
+ "education.title": "Education Work Lake",
+ "education.description": "A client-rendered workspace where the persona can open and edit documents, spreadsheets, charts, dashboards, and knowledge through language instructions.",
+ "education.hostingState": "Temporary isolated hosting",
+ "education.instructionLabel": "Tell the persona what you want to work on",
+ "education.instructionPlaceholder": "For example: organize this spreadsheet and create a comparison dashboard",
+ "education.runInstruction": "Run instruction",
+ "education.openedInsideApp": "Opened inside the app",
+ "education.surfaceNavigation": "Education workspace surfaces",
+ "education.document": "Document",
+ "education.sheet": "Spreadsheet",
+ "education.chart": "Chart",
+ "education.dashboard": "Dashboard",
+ "education.knowledge": "Knowledge",
+ "education.documentLabel": "Education document content"
}