@epoch-agent/infra 0.3.1 → 0.3.2

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.
@@ -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'
@@ -668,6 +669,7 @@ web:
668
669
  fact_detail: Detail
669
670
  fact_reason: Reason
670
671
  target_none: (none)
672
+ more_lines: ↓ {count} more lines below
671
673
  allow_once: Allow once
672
674
  allow_session: Always allow this session
673
675
  allow_session_hint: until you quit
@@ -1165,12 +1167,36 @@ web:
1165
1167
  skill_cancel: Cancel
1166
1168
  skill_removed: 'Deleted {name}. This is the directory that was just removed:'
1167
1169
  plugins: Plugins
1168
- plug_lede: 'A plugin is a bundle of extensions: slash commands, identities, skills, hooks, deny rules, MCP servers. Pick one from a marketplace already added on this machine this page can only pick from that list; it cannot take a path and cannot upload a file.'
1170
+ 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
1171
  plug_installed_head: Installed ({count})
1170
1172
  plug_installed_empty: No plugins installed.
1171
1173
  plug_market_head: In the marketplaces ({count})
1172
- plug_market_empty: 'The marketplaces added here list no plugins. Adding a marketplace happens on the command line: epoch plugin marketplace add <address>'
1174
+ plug_market_empty: The marketplaces added here list no plugins they were added, their catalogues are just empty.
1175
+ 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
1176
  plug_no_desc: (no description for this entry in the marketplace catalogue)
1177
+ plug_add: Add
1178
+ plug_add_title: Add a plugin
1179
+ plug_add_back: Back to the plugin list
1180
+ plug_add_tab_local: Local directory
1181
+ plug_add_tab_market: Marketplace
1182
+ 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.'
1183
+ plug_add_path_placeholder: /home/you/dev/my-toolkit
1184
+ plug_add_path_label: Absolute path of the plugin directory
1185
+ plug_add_look: See what it installs
1186
+ plug_add_browse: Browse…
1187
+ plug_add_browse_off: Collapse
1188
+ plug_add_pick_here: Pick this level
1189
+ 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.
1190
+ plug_market_placeholder: /srv/market or github:acme/market
1191
+ plug_market_label: Marketplace address
1192
+ plug_market_add: Add marketplace
1193
+ plug_market_add_failed: That marketplace could not be added
1194
+ plug_market_none: No marketplace added.
1195
+ plug_market_entries: '{count} entries'
1196
+ plug_market_remove: Remove
1197
+ plug_market_remove_ask: Remove it? Plugins installed from it stay; you just will not be able to pick new ones here.
1198
+ plug_market_remove_yes: Remove
1199
+ plug_market_remove_failed: Could not remove it
1174
1200
  plug_restart: Plugins changed during this run; those changes have not taken effect
1175
1201
  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
1202
  plug_state_active: In effect
@@ -2044,7 +2070,11 @@ plugin_control:
2044
2070
  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
2071
  market_failed: 'Host-preset marketplace {source} did not come up: {reason}. It was skipped, the rest are unaffected'
2046
2072
  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** — it cannot take an arbitrary path. To install something outside those catalogs, use epoch plugin install on the command line'
2073
+ 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'
2074
+ 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'
2075
+ market_source_empty: 'The marketplace source is empty. Give a local path or directory, or a github: / https:// address'
2076
+ 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'
2077
+ market_missing: Marketplace {name} was never added
2048
2078
  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
2079
  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
2080
  linked_no_update: '{name} is a local symlink ({source}) — edit the source directory and rebuild the runtime; there is nothing to update'
@@ -3260,6 +3290,7 @@ hook_load:
3260
3290
  bad_event: 'Not a valid hook event name; ignored. Available: {types}'
3261
3291
  not_array: Wanted an array (one hook per element); the whole event was ignored
3262
3292
  entry_skipped: '{message}; this hook was skipped'
3293
+ 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
3294
  rejected: A hook rejected the operation
3264
3295
  rejected_this: A hook rejected this operation
3265
3296
  timeout: The command hook timed out
@@ -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 个)—— 要那些的话在下面敲路径
@@ -668,6 +669,7 @@ web:
668
669
  fact_detail: 详情
669
670
  fact_reason: 原因
670
671
  target_none: (无)
672
+ more_lines: ↓ 还有 {count} 行没显示
671
673
  allow_once: 允许一次
672
674
  allow_session: 本会话内始终允许
673
675
  allow_session_hint: 退出即失效
@@ -1165,12 +1167,36 @@ web:
1165
1167
  skill_cancel: 取消
1166
1168
  skill_removed: 已经删掉 {name}。刚刚被删掉的是这个目录:
1167
1169
  plugins: 插件
1168
- plug_lede: 一个插件是一包扩展物:斜杠命令、身份、技能、hook、deny 规则、MCP server。从这台机器上已加的市场里挑一个装下来 —— 这一页只能从那张单子里挑,指不了路径也传不了文件。
1170
+ plug_lede: 一个插件是一包扩展物:斜杠命令、身份、技能、hook、deny 规则、MCP server,包里还能带任意语言的脚本。装它有两条路:从已加的市场里挑一条,或者指一个本机上的插件目录(那一档只是建一条软链)。传文件传不了。
1169
1171
  plug_installed_head: 装着的({count})
1170
1172
  plug_installed_empty: 一个插件都没装。
1171
1173
  plug_market_head: 市场里有什么({count})
1172
- plug_market_empty: 已加的市场里一个插件都没有。加一个市场要在命令行上:epoch plugin marketplace add <地址>
1174
+ plug_market_empty: 已加的市场里一个插件都没有 —— 市场是加上了,只是那份目录里没东西。
1175
+ plug_market_none_added: 还没加过任何插件市场。按上面那个「添加」,或者指一个本机上的插件目录直接装。
1173
1176
  plug_no_desc: (这一条在市场目录里没写说明)
1177
+ plug_add: 添加
1178
+ plug_add_title: 添加插件
1179
+ plug_add_back: 回到插件列表
1180
+ plug_add_tab_local: 本地目录
1181
+ plug_add_tab_market: 市场
1182
+ plug_add_hint_local: 这是跑着这个服务的那台机器上的路径,不是你这台电脑上的。要绝对路径(/ 开头),指向一个插件目录 —— 里面得有 epoch-plugin.json。装它只是建一条软链:改源码、重启一次就生效。
1183
+ plug_add_path_placeholder: /home/you/dev/my-toolkit
1184
+ plug_add_path_label: 插件目录的绝对路径
1185
+ plug_add_look: 看看会装什么
1186
+ plug_add_browse: 浏览…
1187
+ plug_add_browse_off: 收起
1188
+ plug_add_pick_here: 选这一层
1189
+ plug_market_lede: 市场是一份插件目录(一份 JSON)。加它不装任何东西 —— 加完之后回列表那一屏挑要装哪一条,那条路上的安装前预览一点没变。
1190
+ plug_market_placeholder: /srv/market 或 github:acme/market
1191
+ plug_market_label: 市场地址
1192
+ plug_market_add: 添加市场
1193
+ plug_market_add_failed: 这个市场加不进来
1194
+ plug_market_none: 一个市场都没加。
1195
+ plug_market_entries: '{count} 条'
1196
+ plug_market_remove: 移除
1197
+ plug_market_remove_ask: 移除它?从它装的插件照旧留着,只是以后在这儿挑不到新的了。
1198
+ plug_market_remove_yes: 移除
1199
+ plug_market_remove_failed: 移除不了
1174
1200
  plug_restart: 这一程动过插件,那些改动还没生效
1175
1201
  plug_restart_why: 扩展物是在启动时加载的,所以刚装 / 更新 / 卸载的那些要下一程才算数 —— 这一程的命令表、hook、身份表一个字都没变。要它们生效:重启跑着这个界面的那个服务(终端里 Ctrl+C,再跑一次 epoch web)。如果这个界面是嵌在别的程序里的,那次重建只有那个程序做得到 —— 这一页上没有、也不会有一个「立即生效」的按钮。
1176
1202
  plug_state_active: 已生效
@@ -2041,7 +2067,11 @@ plugin_control:
2041
2067
  market_remote_off: '宿主预置的市场 {source} 是远程地址(取目录要发一次 HTTP),而远程档默认关着,这一条已跳过;本地目录那些不受影响。要放开就在 buildRuntime 的 hostMarketplaces 上给 allowRemote: true'
2042
2068
  market_failed: 宿主预置的市场 {source} 没接上:{reason}。这一条已跳过,其余照常
2043
2069
  market_ready: 已预置市场 {name}({count} 个插件可选)
2044
- not_a_ref: '"{ref}" 不是一个市场引用(形状是 <市场>/<插件>,epoch plugin search 能看到有哪些)。这条路**只能从已加的市场清单里挑**,指不了任意路径 —— 要装清单外的东西请用命令行的 epoch plugin install'
2070
+ not_a_ref: '"{ref}" 不是一个市场引用(形状是 <市场>/<插件>,epoch plugin search 能看到有哪些)。这条路**只能从已加的市场清单里挑** —— 装本机上一个目录走「本地目录」那条,装清单外的远程东西请用命令行的 epoch plugin install'
2071
+ not_local_path: '"{path}" 不是一条本地绝对路径。这条路只收本机上一个插件目录(装它就是建一条软链),收不了 github: / npm: / 压缩包地址 —— 那些要么从市场装,要么用命令行的 epoch plugin install。相对路径也不收:它会按跑着这个服务的那个进程的工作目录展开,而那多半不是你以为的地方'
2072
+ market_source_empty: '市场地址是空的。填一条本地路径 / 目录,或者一个 github: / https:// 地址'
2073
+ market_add_remote_off: '{source} 是远程市场地址(取它的目录要发一次 HTTP),而远程档默认关着。本地路径那些不受影响;要放开远程就在 buildRuntime 的 hostMarketplaces 上给 allowRemote: true'
2074
+ market_missing: 没加过市场 {name}
2045
2075
  entry_remote_off: '{ref} 的来源是 {source},装它要 git clone / 下载解压,而远程档默认关着(本地目录那档只是建一条软链,风险不是同一个量级)。要放开就在 buildRuntime 的 hostMarketplaces 上给 allowRemote: true'
2046
2076
  update_remote_off: '{name} 装自 {source},更新它要重新 git clone / 下载,而远程档默认关着。要放开就在 buildRuntime 的 hostMarketplaces 上给 allowRemote: true'
2047
2077
  linked_no_update: '{name} 是本地软链({source}),源码目录改了重建一次就生效,没有可更新的东西'
@@ -3256,6 +3286,7 @@ hook_load:
3256
3286
  bad_event: 不是合法的 hook 事件名,已忽略。可用:{types}
3257
3287
  not_array: 期望数组(每个元素一条 hook),已忽略整个事件
3258
3288
  entry_skipped: '{message};该 hook 已跳过'
3289
+ no_plugin_root: 用到了 ${EPOCH_PLUGIN_ROOT},但这一份不是插件带来的配置,我们给不出插件根 —— 那个占位符原样留着,路径多半指不到地方
3259
3290
  rejected: Hook 拒绝了操作
3260
3291
  rejected_this: Hook 拒绝了此操作
3261
3292
  timeout: Command hook 超时
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epoch-agent/infra",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
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"