@epoch-agent/infra 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/locales/en.yaml +35 -3
- package/dist/locales/zh.yaml +35 -3
- package/package.json +3 -3
package/dist/locales/en.yaml
CHANGED
|
@@ -376,6 +376,7 @@ web:
|
|
|
376
376
|
anchors: Common places
|
|
377
377
|
anchors_detail: Home, the server process directory, and workspaces you have visited
|
|
378
378
|
up: Up one level
|
|
379
|
+
back_last: Back where you were
|
|
379
380
|
loading: Loading…
|
|
380
381
|
empty: No subdirectories here — pick this one, or type a path below
|
|
381
382
|
omitted: '{count} more not listed at this level (1000 max per level) — type a path below to reach them'
|
|
@@ -396,6 +397,7 @@ web:
|
|
|
396
397
|
new_trust_note: 'A new directory is treated exactly like an existing one: untrusted — its .epoch/settings.json and CLAUDE.md will not take effect. Run epoch trust add to grant trust.'
|
|
397
398
|
blank:
|
|
398
399
|
title: What would you like to do?
|
|
400
|
+
cards: Suggestions
|
|
399
401
|
sidebar:
|
|
400
402
|
search: Search sessions
|
|
401
403
|
automation: Automation
|
|
@@ -668,6 +670,7 @@ web:
|
|
|
668
670
|
fact_detail: Detail
|
|
669
671
|
fact_reason: Reason
|
|
670
672
|
target_none: (none)
|
|
673
|
+
more_lines: ↓ {count} more lines below
|
|
671
674
|
allow_once: Allow once
|
|
672
675
|
allow_session: Always allow this session
|
|
673
676
|
allow_session_hint: until you quit
|
|
@@ -1165,12 +1168,36 @@ web:
|
|
|
1165
1168
|
skill_cancel: Cancel
|
|
1166
1169
|
skill_removed: 'Deleted {name}. This is the directory that was just removed:'
|
|
1167
1170
|
plugins: Plugins
|
|
1168
|
-
plug_lede: 'A plugin is a bundle of extensions: slash commands, identities, skills, hooks, deny rules, MCP servers.
|
|
1171
|
+
plug_lede: 'A plugin is a bundle of extensions: slash commands, identities, skills, hooks, deny rules, MCP servers, plus scripts in any language. There are two ways in: pick one from a marketplace already added here, or point at a plugin directory on this machine (that tier only creates a symlink). Uploading a file is not one of them.'
|
|
1169
1172
|
plug_installed_head: Installed ({count})
|
|
1170
1173
|
plug_installed_empty: No plugins installed.
|
|
1171
1174
|
plug_market_head: In the marketplaces ({count})
|
|
1172
|
-
plug_market_empty:
|
|
1175
|
+
plug_market_empty: The marketplaces added here list no plugins — they were added, their catalogues are just empty.
|
|
1176
|
+
plug_market_none_added: No plugin marketplace has been added yet. Use Add above, or point at a plugin directory on this machine to install one directly.
|
|
1173
1177
|
plug_no_desc: (no description for this entry in the marketplace catalogue)
|
|
1178
|
+
plug_add: Add
|
|
1179
|
+
plug_add_title: Add a plugin
|
|
1180
|
+
plug_add_back: Back to the plugin list
|
|
1181
|
+
plug_add_tab_local: Local directory
|
|
1182
|
+
plug_add_tab_market: Marketplace
|
|
1183
|
+
plug_add_hint_local: 'This is a path on the machine running this service, not on your computer. It has to be absolute and point at a plugin directory — one holding an epoch-plugin.json. Installing it only creates a symlink: edit the source and restart once for the change to take effect.'
|
|
1184
|
+
plug_add_path_placeholder: /home/you/dev/my-toolkit
|
|
1185
|
+
plug_add_path_label: Absolute path of the plugin directory
|
|
1186
|
+
plug_add_look: See what it installs
|
|
1187
|
+
plug_add_browse: Browse…
|
|
1188
|
+
plug_add_browse_off: Collapse
|
|
1189
|
+
plug_add_pick_here: Pick this level
|
|
1190
|
+
plug_market_lede: A marketplace is a catalogue of plugins (one JSON file). Adding one installs nothing — once it is in, go back to the list and pick what to install there; the pre-install preview on that path is unchanged.
|
|
1191
|
+
plug_market_placeholder: /srv/market or github:acme/market
|
|
1192
|
+
plug_market_label: Marketplace address
|
|
1193
|
+
plug_market_add: Add marketplace
|
|
1194
|
+
plug_market_add_failed: That marketplace could not be added
|
|
1195
|
+
plug_market_none: No marketplace added.
|
|
1196
|
+
plug_market_entries: '{count} entries'
|
|
1197
|
+
plug_market_remove: Remove
|
|
1198
|
+
plug_market_remove_ask: Remove it? Plugins installed from it stay; you just will not be able to pick new ones here.
|
|
1199
|
+
plug_market_remove_yes: Remove
|
|
1200
|
+
plug_market_remove_failed: Could not remove it
|
|
1174
1201
|
plug_restart: Plugins changed during this run; those changes have not taken effect
|
|
1175
1202
|
plug_restart_why: 'Extensions are loaded at startup, so anything just installed / updated / uninstalled only counts from the next run — this run''s command table, hooks and identity table are unchanged. To make them take effect: restart the service running this interface (Ctrl+C in the terminal, then run epoch web again). If this interface is embedded in another program, only that program can do the rebuild — there is no "apply now" button on this page, and there will not be one.'
|
|
1176
1203
|
plug_state_active: In effect
|
|
@@ -2044,7 +2071,11 @@ plugin_control:
|
|
|
2044
2071
|
market_remote_off: 'Host-preset marketplace {source} is a remote address (fetching its catalog makes an HTTP request) and the remote tier is off by default, so it was skipped; local directories are unaffected. To allow it, pass allowRemote: true in hostMarketplaces to buildRuntime'
|
|
2045
2072
|
market_failed: 'Host-preset marketplace {source} did not come up: {reason}. It was skipped, the rest are unaffected'
|
|
2046
2073
|
market_ready: Marketplace {name} preset ({count} plugins available)
|
|
2047
|
-
not_a_ref: '"{ref}" is not a marketplace reference (the shape is <marketplace>/<plugin>; epoch plugin search lists what is there). This path **can only pick from the marketplaces already added** —
|
|
2074
|
+
not_a_ref: '"{ref}" is not a marketplace reference (the shape is <marketplace>/<plugin>; epoch plugin search lists what is there). This path **can only pick from the marketplaces already added** — to install a directory on this machine use the local directory route instead, and for remote things outside those catalogs use epoch plugin install on the command line'
|
|
2075
|
+
not_local_path: '"{path}" is not a local absolute path. This route only takes a plugin directory on this machine (installing it just creates a symlink); it does not take github: / npm: / archive URLs — those come from a marketplace, or from epoch plugin install on the command line. Relative paths are refused too: they would resolve against the working directory of the process running this server, which is rarely where you think it is'
|
|
2076
|
+
market_source_empty: 'The marketplace source is empty. Give a local path or directory, or a github: / https:// address'
|
|
2077
|
+
market_add_remote_off: '{source} is a remote marketplace address (fetching its catalog makes an HTTP request) and the remote tier is off by default. Local paths are unaffected; to allow remote, pass allowRemote: true in hostMarketplaces to buildRuntime'
|
|
2078
|
+
market_missing: Marketplace {name} was never added
|
|
2048
2079
|
entry_remote_off: 'The source of {ref} is {source}; installing it would git clone / download and unpack, and the remote tier is off by default (the local tier only creates a symlink — not the same order of risk). To allow it, pass allowRemote: true in hostMarketplaces to buildRuntime'
|
|
2049
2080
|
update_remote_off: '{name} was installed from {source}; updating it would git clone / download again, and the remote tier is off by default. To allow it, pass allowRemote: true in hostMarketplaces to buildRuntime'
|
|
2050
2081
|
linked_no_update: '{name} is a local symlink ({source}) — edit the source directory and rebuild the runtime; there is nothing to update'
|
|
@@ -3260,6 +3291,7 @@ hook_load:
|
|
|
3260
3291
|
bad_event: 'Not a valid hook event name; ignored. Available: {types}'
|
|
3261
3292
|
not_array: Wanted an array (one hook per element); the whole event was ignored
|
|
3262
3293
|
entry_skipped: '{message}; this hook was skipped'
|
|
3294
|
+
no_plugin_root: This uses ${EPOCH_PLUGIN_ROOT}, but the config did not come from a plugin, so we have no plugin root to give — the placeholder is left verbatim and the path most likely points nowhere
|
|
3263
3295
|
rejected: A hook rejected the operation
|
|
3264
3296
|
rejected_this: A hook rejected this operation
|
|
3265
3297
|
timeout: The command hook timed out
|
package/dist/locales/zh.yaml
CHANGED
|
@@ -376,6 +376,7 @@ web:
|
|
|
376
376
|
anchors: 常去的地方
|
|
377
377
|
anchors_detail: 主目录、服务进程的启动目录、以及来过的工作区
|
|
378
378
|
up: 往上一层
|
|
379
|
+
back_last: 回到刚才那一层
|
|
379
380
|
loading: 读取中…
|
|
380
381
|
empty: 这一层没有子目录 —— 可以直接挑它,或者在下面敲一条路径
|
|
381
382
|
omitted: 这一层还有 {count} 个没列出来(一层最多列 1000 个)—— 要那些的话在下面敲路径
|
|
@@ -396,6 +397,7 @@ web:
|
|
|
396
397
|
new_trust_note: 新建的目录和挑一个既有目录同档:都未信任 —— 它的 .epoch/settings.json 和 CLAUDE.md 不会生效。要授信跑 epoch trust add。
|
|
397
398
|
blank:
|
|
398
399
|
title: 今天想做点什么?
|
|
400
|
+
cards: 建议
|
|
399
401
|
sidebar:
|
|
400
402
|
search: 搜索会话
|
|
401
403
|
automation: 自动化
|
|
@@ -668,6 +670,7 @@ web:
|
|
|
668
670
|
fact_detail: 详情
|
|
669
671
|
fact_reason: 原因
|
|
670
672
|
target_none: (无)
|
|
673
|
+
more_lines: ↓ 还有 {count} 行没显示
|
|
671
674
|
allow_once: 允许一次
|
|
672
675
|
allow_session: 本会话内始终允许
|
|
673
676
|
allow_session_hint: 退出即失效
|
|
@@ -1165,12 +1168,36 @@ web:
|
|
|
1165
1168
|
skill_cancel: 取消
|
|
1166
1169
|
skill_removed: 已经删掉 {name}。刚刚被删掉的是这个目录:
|
|
1167
1170
|
plugins: 插件
|
|
1168
|
-
plug_lede: 一个插件是一包扩展物:斜杠命令、身份、技能、hook、deny 规则、MCP server
|
|
1171
|
+
plug_lede: 一个插件是一包扩展物:斜杠命令、身份、技能、hook、deny 规则、MCP server,包里还能带任意语言的脚本。装它有两条路:从已加的市场里挑一条,或者指一个本机上的插件目录(那一档只是建一条软链)。传文件传不了。
|
|
1169
1172
|
plug_installed_head: 装着的({count})
|
|
1170
1173
|
plug_installed_empty: 一个插件都没装。
|
|
1171
1174
|
plug_market_head: 市场里有什么({count})
|
|
1172
|
-
plug_market_empty:
|
|
1175
|
+
plug_market_empty: 已加的市场里一个插件都没有 —— 市场是加上了,只是那份目录里没东西。
|
|
1176
|
+
plug_market_none_added: 还没加过任何插件市场。按上面那个「添加」,或者指一个本机上的插件目录直接装。
|
|
1173
1177
|
plug_no_desc: (这一条在市场目录里没写说明)
|
|
1178
|
+
plug_add: 添加
|
|
1179
|
+
plug_add_title: 添加插件
|
|
1180
|
+
plug_add_back: 回到插件列表
|
|
1181
|
+
plug_add_tab_local: 本地目录
|
|
1182
|
+
plug_add_tab_market: 市场
|
|
1183
|
+
plug_add_hint_local: 这是跑着这个服务的那台机器上的路径,不是你这台电脑上的。要绝对路径(/ 开头),指向一个插件目录 —— 里面得有 epoch-plugin.json。装它只是建一条软链:改源码、重启一次就生效。
|
|
1184
|
+
plug_add_path_placeholder: /home/you/dev/my-toolkit
|
|
1185
|
+
plug_add_path_label: 插件目录的绝对路径
|
|
1186
|
+
plug_add_look: 看看会装什么
|
|
1187
|
+
plug_add_browse: 浏览…
|
|
1188
|
+
plug_add_browse_off: 收起
|
|
1189
|
+
plug_add_pick_here: 选这一层
|
|
1190
|
+
plug_market_lede: 市场是一份插件目录(一份 JSON)。加它不装任何东西 —— 加完之后回列表那一屏挑要装哪一条,那条路上的安装前预览一点没变。
|
|
1191
|
+
plug_market_placeholder: /srv/market 或 github:acme/market
|
|
1192
|
+
plug_market_label: 市场地址
|
|
1193
|
+
plug_market_add: 添加市场
|
|
1194
|
+
plug_market_add_failed: 这个市场加不进来
|
|
1195
|
+
plug_market_none: 一个市场都没加。
|
|
1196
|
+
plug_market_entries: '{count} 条'
|
|
1197
|
+
plug_market_remove: 移除
|
|
1198
|
+
plug_market_remove_ask: 移除它?从它装的插件照旧留着,只是以后在这儿挑不到新的了。
|
|
1199
|
+
plug_market_remove_yes: 移除
|
|
1200
|
+
plug_market_remove_failed: 移除不了
|
|
1174
1201
|
plug_restart: 这一程动过插件,那些改动还没生效
|
|
1175
1202
|
plug_restart_why: 扩展物是在启动时加载的,所以刚装 / 更新 / 卸载的那些要下一程才算数 —— 这一程的命令表、hook、身份表一个字都没变。要它们生效:重启跑着这个界面的那个服务(终端里 Ctrl+C,再跑一次 epoch web)。如果这个界面是嵌在别的程序里的,那次重建只有那个程序做得到 —— 这一页上没有、也不会有一个「立即生效」的按钮。
|
|
1176
1203
|
plug_state_active: 已生效
|
|
@@ -2041,7 +2068,11 @@ plugin_control:
|
|
|
2041
2068
|
market_remote_off: '宿主预置的市场 {source} 是远程地址(取目录要发一次 HTTP),而远程档默认关着,这一条已跳过;本地目录那些不受影响。要放开就在 buildRuntime 的 hostMarketplaces 上给 allowRemote: true'
|
|
2042
2069
|
market_failed: 宿主预置的市场 {source} 没接上:{reason}。这一条已跳过,其余照常
|
|
2043
2070
|
market_ready: 已预置市场 {name}({count} 个插件可选)
|
|
2044
|
-
not_a_ref: '"{ref}" 不是一个市场引用(形状是 <市场>/<插件>,epoch plugin search
|
|
2071
|
+
not_a_ref: '"{ref}" 不是一个市场引用(形状是 <市场>/<插件>,epoch plugin search 能看到有哪些)。这条路**只能从已加的市场清单里挑** —— 装本机上一个目录走「本地目录」那条,装清单外的远程东西请用命令行的 epoch plugin install'
|
|
2072
|
+
not_local_path: '"{path}" 不是一条本地绝对路径。这条路只收本机上一个插件目录(装它就是建一条软链),收不了 github: / npm: / 压缩包地址 —— 那些要么从市场装,要么用命令行的 epoch plugin install。相对路径也不收:它会按跑着这个服务的那个进程的工作目录展开,而那多半不是你以为的地方'
|
|
2073
|
+
market_source_empty: '市场地址是空的。填一条本地路径 / 目录,或者一个 github: / https:// 地址'
|
|
2074
|
+
market_add_remote_off: '{source} 是远程市场地址(取它的目录要发一次 HTTP),而远程档默认关着。本地路径那些不受影响;要放开远程就在 buildRuntime 的 hostMarketplaces 上给 allowRemote: true'
|
|
2075
|
+
market_missing: 没加过市场 {name}
|
|
2045
2076
|
entry_remote_off: '{ref} 的来源是 {source},装它要 git clone / 下载解压,而远程档默认关着(本地目录那档只是建一条软链,风险不是同一个量级)。要放开就在 buildRuntime 的 hostMarketplaces 上给 allowRemote: true'
|
|
2046
2077
|
update_remote_off: '{name} 装自 {source},更新它要重新 git clone / 下载,而远程档默认关着。要放开就在 buildRuntime 的 hostMarketplaces 上给 allowRemote: true'
|
|
2047
2078
|
linked_no_update: '{name} 是本地软链({source}),源码目录改了重建一次就生效,没有可更新的东西'
|
|
@@ -3256,6 +3287,7 @@ hook_load:
|
|
|
3256
3287
|
bad_event: 不是合法的 hook 事件名,已忽略。可用:{types}
|
|
3257
3288
|
not_array: 期望数组(每个元素一条 hook),已忽略整个事件
|
|
3258
3289
|
entry_skipped: '{message};该 hook 已跳过'
|
|
3290
|
+
no_plugin_root: 用到了 ${EPOCH_PLUGIN_ROOT},但这一份不是插件带来的配置,我们给不出插件根 —— 那个占位符原样留着,路径多半指不到地方
|
|
3259
3291
|
rejected: Hook 拒绝了操作
|
|
3260
3292
|
rejected_this: Hook 拒绝了此操作
|
|
3261
3293
|
timeout: Command hook 超时
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epoch-agent/infra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "epoch-agent 基础设施:路径真源、SQLite 连接与迁移、日志、平台兼容、命令安全表",
|
|
6
6
|
"repository": {
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"vitest": "^3.0.0"
|
|
36
36
|
},
|
|
37
37
|
"optionalDependencies": {
|
|
38
|
+
"@epoch-agent/vendor-ripgrep-darwin-arm64": "14.2.1",
|
|
38
39
|
"@epoch-agent/vendor-ripgrep-darwin-x64": "14.2.1",
|
|
39
|
-
"@epoch-agent/vendor-ripgrep-win32-x64": "14.2.1"
|
|
40
|
-
"@epoch-agent/vendor-ripgrep-darwin-arm64": "14.2.1"
|
|
40
|
+
"@epoch-agent/vendor-ripgrep-win32-x64": "14.2.1"
|
|
41
41
|
},
|
|
42
42
|
"engines": {
|
|
43
43
|
"node": ">=22.0.0"
|