Initial commit: Elydora Open Source — self-hosted audit platform for AI agents

Full self-hosted port of the Elydora tamper-evident audit protocol:
- Hono API server with PostgreSQL, Redis, MinIO adapters
- Ed25519 signed operations, chain hashing, Merkle epoch rollups
- PBKDF2 password hashing, HMAC-SHA256 JWT, 5-role RBAC
- Next.js management console
- Node.js, Python, and Go SDKs
- Docker Compose for local deployment
- Helm chart for Kubernetes
- Comprehensive security hardening and audit fixes applied

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
ZacharyZhang-NYandClaude Opus 4.6 committed 2026-03-02 13:41:42 -05:00
1 parent 15547a8c35
commit e390e68594
207 files changed
+32790 -63

No files matched your search

+390
View File
@@ -0,0 +1,390 @@
{
"common": {
"dashboard": "仪表盘",
"agents": "代理",
"operations": "操作",
"epochs": "纪元",
"auditTrail": "审计追踪",
"exports": "导出",
"jwks": "JWKS",
"settings": "设置",
"cancel": "取消",
"delete": "删除",
"download": "下载",
"continue": "继续",
"signOut": "退出登录",
"copy": "复制",
"copied": "已复制",
"clickToCopy": "点击复制",
"viewAll": "查看全部",
"home": "首页",
"docs": "文档",
"console": "控制台",
"loading": "加载中...",
"unknownError": "未知错误。",
"allData": "全部数据",
"copyToClipboard": "复制到剪贴板",
"copyJwks": "复制 JWKS",
"links": "链接"
},
"sidebar": {
"overview": "概览",
"management": "管理",
"compliance": "合规",
"system": "系统"
},
"dashboard": {
"title": "仪表盘",
"subtitle": "Elydora 责任追溯控制台概览",
"totalAgents": "代理总数",
"registeredAgents": "已注册代理",
"totalOperations": "操作总数",
"allRecordedOps": "所有已记录操作",
"activeEpochs": "活跃纪元",
"merkleRollups": "Merkle 树汇总纪元",
"pendingExports": "待处理导出",
"queuedOrRunning": "排队中或运行中",
"quickActions": "快捷操作",
"registerAgent": "注册代理",
"viewOperations": "查看操作",
"createExport": "创建导出",
"recentOperations": "最近操作",
"noOperations": "尚无操作记录。",
"agentSummary": "代理概要",
"noAgentsRegistered": "尚未注册代理。注册一个代理以开始记录操作。",
"latestActivity": "最近活动",
"failedToLoad": "加载仪表盘数据失败。请确保 API 可访问。",
"colOperationId": "操作 ID",
"colAgent": "代理",
"colType": "类型",
"colIssued": "签发时间",
"colSeq": "序号"
},
"agents": {
"title": "代理",
"subtitle": "管理已注册的 AI 代理",
"registerAgent": "注册代理",
"searchPlaceholder": "按 ID 搜索代理...",
"colAgent": "代理",
"colStatus": "状态",
"colOperations": "操作数",
"colLatestActivity": "最近活动",
"emptyMessage": "未找到代理。注册一个代理以开始使用。",
"failedToLoad": "加载代理列表失败。",
"deleteAgent": "删除代理",
"deleteConfirmPre": "确定要删除代理 ",
"deleteConfirmPost": " 吗?这将永久移除该代理及其所有密钥。此操作无法撤销。",
"deleting": "删除中...",
"failedToDelete": "删除代理失败。"
},
"agentDetail": {
"title": "代理详情",
"agentId": "代理 ID",
"status": "状态",
"organization": "组织",
"displayName": "显示名称",
"responsibleEntity": "责任实体",
"created": "创建时间",
"keys": "密钥",
"noKeys": "该代理没有已注册的密钥。",
"colKeyId": "密钥 ID",
"colAlgorithm": "算法",
"colStatus": "状态",
"colCreated": "创建时间",
"revoke": "吊销",
"operations": "操作",
"freezeAgent": "冻结代理",
"unfreezeAgent": "解冻代理",
"reason": "原因",
"freezePlaceholder": "请提供冻结此代理的原因...",
"unfreezePlaceholder": "请提供解冻此代理的原因...",
"freezing": "冻结中...",
"confirmFreeze": "确认冻结",
"unfreezing": "解冻中...",
"confirmUnfreeze": "确认解冻",
"failedToFreeze": "冻结代理失败。",
"failedToUnfreeze": "解冻代理失败。",
"reasonRequired": "原因为必填项。",
"revokeKey": "吊销密钥",
"revokePlaceholder": "请提供吊销此密钥的原因...",
"revoking": "吊销中...",
"confirmRevoke": "确认吊销",
"failedToRevoke": "吊销密钥失败。",
"freezeDescPre": "冻结代理 ",
"freezeDescPost": " 将阻止其提交新操作。此操作会记录在审计追踪中。",
"unfreezeDescPre": "解冻代理 ",
"unfreezeDescPost": " 将允许其恢复提交操作。此操作会记录在审计追踪中。",
"revokeKeyDescPre": "吊销密钥 ",
"revokeKeyDescPost": " 将阻止其用于签署操作。此操作无法撤销。",
"failedToLoad": "加载代理信息失败。",
"mayNotExist": "该代理可能不存在。",
"noOperations": "该代理尚无操作记录。"
},
"operationDetail": {
"title": "操作详情",
"failedToLoad": "加载操作信息失败。",
"mayNotExist": "该操作可能不存在。"
},
"operationCard": {
"operationRecord": "操作记录",
"formatted": "格式化",
"rawJson": "原始 JSON",
"operationId": "操作 ID",
"agentId": "代理 ID",
"orgId": "组织 ID",
"type": "类型",
"issuedAt": "签发时间",
"createdAt": "创建时间",
"ttlMs": "TTL (ms)",
"nonce": "Nonce",
"seqNo": "序号",
"signingKey": "签名密钥",
"payloadHash": "载荷哈希",
"prevChainHash": "上一链哈希",
"chainHash": "链哈希",
"r2PayloadKey": "R2 载荷键",
"payload": "载荷",
"receipt": "回执 (EAR)",
"receiptId": "回执 ID",
"r2ReceiptKey": "R2 回执键"
},
"operations": {
"title": "操作",
"subtitle": "浏览和检查已记录的操作",
"searchPlaceholder": "按 ID、代理或类型搜索...",
"colOperationId": "操作 ID",
"colAgent": "代理",
"colType": "类型",
"colIssuedAt": "签发时间",
"colSeq": "序号",
"agentIdFilter": "代理 ID",
"filterByAgent": "按代理筛选",
"typeFilter": "类型",
"filterByType": "按类型筛选",
"emptyMessage": "没有符合筛选条件的操作。",
"failedToLoad": "加载操作列表失败。"
},
"epochs": {
"title": "纪元",
"subtitle": "定期 Merkle 树汇总锚定操作",
"colEpochId": "纪元 ID",
"colTimeRange": "时间范围",
"colLeaves": "叶子数",
"colRootHash": "根哈希",
"colCreated": "创建时间",
"emptyMessage": "尚未创建纪元。纪元会随着操作的记录定期生成。",
"failedToLoad": "加载纪元列表失败。"
},
"epochDetail": {
"title": "纪元详情",
"viewOperations": "查看操作",
"epochMetadata": "纪元元数据",
"epochId": "纪元 ID",
"organization": "组织",
"startTime": "开始时间",
"endTime": "结束时间",
"duration": "持续时间",
"durationMinutes": "{{count}} 分钟",
"createdAt": "创建时间",
"merkleTree": "Merkle 树",
"rootHash": "根哈希",
"leafCount": "叶子数量",
"operationsUnit": "个操作",
"tsaAnchor": "TSA 锚点",
"tsaToken": "TSA 令牌",
"tsaUrl": "TSA URL",
"anchoredAt": "锚定时间",
"noTsaAnchor": "此纪元暂无 TSA 锚点信息。",
"storage": "存储",
"r2EpochKey": "R2 纪元键",
"failedToLoad": "加载纪元信息失败。",
"mayNotExist": "该纪元可能不存在。"
},
"audit": {
"title": "审计追踪",
"subtitle": "查询和检查完整的操作审计日志",
"exportData": "导出数据",
"queryBuilder": "查询构建器",
"clearFilters": "清除筛选",
"agentId": "代理 ID",
"filterByAgent": "按代理筛选",
"operationType": "操作类型",
"filterByType": "按类型筛选",
"startTime": "开始时间",
"endTime": "结束时间",
"showing": "显示 {{shown}} / {{total}} 条结果",
"moreResults": "还有更多结果",
"colOperationId": "操作 ID",
"colAgent": "代理",
"colType": "类型",
"colIssuedAt": "签发时间",
"colSeq": "序号",
"colChainHash": "链哈希",
"emptyMessage": "没有匹配的审计记录。请调整筛选条件或清除筛选以查看所有记录。",
"failedToLoad": "加载审计数据失败。"
},
"exports": {
"title": "导出",
"subtitle": "创建和下载合规数据导出",
"createExport": "创建导出",
"colExportId": "导出 ID",
"colStatus": "状态",
"colFilters": "筛选条件",
"colCreated": "创建时间",
"colCompleted": "完成时间",
"emptyMessage": "尚未创建导出。创建导出以下载合规数据。",
"failedToLoad": "加载导出列表失败。",
"startTime": "开始时间",
"endTime": "结束时间",
"agentIdOptional": "代理 ID(可选)",
"filterByAgent": "按特定代理筛选",
"operationTypeOptional": "操作类型(可选)",
"filterByOperationType": "按操作类型筛选",
"format": "格式",
"creating": "创建中...",
"startEndRequired": "开始时间和结束时间为必填项。",
"failedToCreate": "创建导出失败。"
},
"jwks": {
"title": "JWKS",
"subtitle": "用于令牌验证的 JSON Web 密钥集",
"publicKeys": "公钥",
"colKeyId": "密钥 ID",
"colKeyType": "密钥类型",
"colAlgorithm": "算法",
"colCurve": "曲线",
"colUse": "用途",
"colPublicKey": "公钥",
"emptyMessage": "没有可用的 JWKS 密钥。服务器可能尚未发布公钥。",
"failedToLoad": "加载 JWKS 失败。",
"endpoint": "JWKS 端点:"
},
"settings": {
"title": "设置",
"subtitle": "账户和组织详情",
"user": "用户",
"displayName": "显示名称",
"email": "邮箱",
"subject": "主体",
"role": "角色",
"organization": "组织",
"organizationId": "组织 ID"
},
"login": {
"signIn": "登录",
"email": "邮箱",
"emailPlaceholder": "you@company.com",
"password": "密码",
"signingIn": "登录中...",
"submitSignIn": "登录",
"noAccount": "还没有账户?",
"createOne": "创建一个",
"loginFailed": "登录失败"
},
"register": {
"createAccount": "创建账户",
"orgName": "组织名称",
"orgPlaceholder": "示例公司",
"displayName": "显示名称",
"displayNamePlaceholder": "张三",
"email": "邮箱",
"emailPlaceholder": "you@company.com",
"password": "密码",
"passwordPlaceholder": "至少 8 个字符",
"creatingAccount": "创建账户中...",
"submitCreateAccount": "创建账户",
"hasAccount": "已有账户?",
"signIn": "登录",
"registrationFailed": "注册失败"
},
"agentRegistration": {
"displayName": "显示名称",
"displayNamePlaceholder": "我的 AI 代理",
"displayNameRequired": "显示名称为必填项。",
"responsibleEntity": "责任实体(可选)",
"responsibleEntityPlaceholder": "负责人或团队",
"submitting": "注册中...",
"submit": "注册代理",
"failedToRegister": "注册代理失败。",
"agentRegistered": "代理注册成功",
"privateKeySaveNow": "私钥 — 请立即保存",
"privateKeyWarning": "此私钥不会再次显示。请将其存储为环境变量或保存在密钥管理器中。",
"apiToken": "API 令牌",
"apiTokenDesc": "将其用作 ELYDORA_TOKEN 环境变量。这是您的 API 认证令牌。",
"tokenExpiration": "令牌有效期",
"customDays": "天数",
"days": "天",
"enterValidDays": "请输入有效的天数(最少 1 天)。",
"issuing": "签发中...",
"issueApiToken": "签发 API 令牌",
"failedToIssueToken": "签发令牌失败。",
"credAgentId": "代理 ID",
"credKeyId": "密钥 ID",
"credOrgId": "组织 ID",
"credAlgorithm": "算法",
"chooseIntegration": "选择集成方式",
"chooseIntegrationDesc": "此代理将如何连接到 Elydora?",
"supported": "支持的(一键安装)",
"sdkIntegration": "SDK 集成",
"install": "安装",
"backToList": "返回",
"sdkTutorial": "SDK 教程",
"aiReadyPrompt": "AI 就绪提示",
"aiReadyPromptDesc": "复制此提示并粘贴到您的 AI 代理中以自动设置 Elydora。",
"copyPrompt": "复制提示",
"done": "完成",
"step": "第 {{current}} 步,共 {{total}} 步"
},
"chain": {
"title": "链可视化",
"previous": "上一个",
"current": "当前 ({{id}})",
"next": "下一个",
"pending": "待处理...",
"chainBlock": "链块",
"currentOperation": "当前操作"
},
"verification": {
"title": "验证",
"verify": "验证",
"reVerify": "重新验证",
"verifying": "验证中...",
"verifiedSuccess": "操作验证成功",
"verificationFailed": "验证失败",
"signature": "签名",
"signatureDesc": "Ed25519 签名对给定公钥有效",
"chainCheck": "链",
"chainCheckDesc": "上一链哈希与预期值匹配",
"receiptCheck": "回执",
"receiptCheckDesc": "服务器回执 (EAR) 有效且与操作匹配",
"merkle": "Merkle",
"merkleDesc": "操作包含在纪元 Merkle 树中",
"pending": "待验证",
"passed": "通过",
"failed": "失败",
"errors": "错误"
},
"tokenExpiration": {
"24hours": "24 小时",
"7days": "7 天",
"1month": "1 个月",
"1year": "1 年",
"custom": "自定义",
"neverExpire": "永不过期"
},
"integrations": {
"claudecode": "Anthropic CLI 代理",
"cursor": "AI 驱动的代码编辑器",
"gemini": "Google AI CLI 代理",
"kirocli": "AWS AI CLI 代理",
"kiroide": "AWS 规格驱动的 AI IDE",
"opencode": "开源 TUI 代理",
"copilot": "GitHub Copilot CLI 代理",
"letta": "Letta AI CLI 代理",
"codex": "OpenAI CLI 代理",
"kimi": "Moonshot AI 助手",
"enterprise": "您的内部代理",
"gui": "桌面或 Web 代理",
"other": "任何自定义集成"
}
}