@wilshi/dsh-agentos-context 0.0.0-stage → 0.3.3
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/LICENSE +21 -0
- package/LICENSE.opencontext +17 -0
- package/README.i18n.yaml +67 -0
- package/README.md +145 -2
- package/README.zh.md +144 -0
- package/THIRD_PARTY_NOTICES.md +13 -0
- package/cordis.patch.yml +5 -0
- package/docs/CONTRACT.md +51 -0
- package/docs/IMPLEMENTATION-STATUS.md +56 -0
- package/lib/client.js +42586 -0
- package/lib/index.js +9319 -0
- package/package.json +99 -4
- package/prototype/PROTOTYPE.md +125 -0
- package/prototype/index.html +248 -0
package/package.json
CHANGED
|
@@ -1,6 +1,101 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wilshi/dsh-agentos-context",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.3.3",
|
|
4
|
+
"description": "agentOS context — DSH-native, source-backed memory and ontology workspace (OpenContext compatible; community fork)",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/WilShi/dsh-agentos-context.git"
|
|
13
|
+
},
|
|
14
|
+
"main": "lib/index.js",
|
|
15
|
+
"types": "lib/types/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./lib/types/index.d.ts",
|
|
19
|
+
"default": "./lib/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./client": "./lib/client.js",
|
|
22
|
+
"./package.json": "./package.json"
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"lib/index.js",
|
|
26
|
+
"lib/client.js",
|
|
27
|
+
"cordis.patch.yml",
|
|
28
|
+
"README.md",
|
|
29
|
+
"LICENSE",
|
|
30
|
+
"LICENSE.opencontext",
|
|
31
|
+
"THIRD_PARTY_NOTICES.md",
|
|
32
|
+
"prototype/index.html",
|
|
33
|
+
"prototype/PROTOTYPE.md",
|
|
34
|
+
"docs/CONTRACT.md",
|
|
35
|
+
"docs/IMPLEMENTATION-STATUS.md",
|
|
36
|
+
"lib/types/**/*.d.ts"
|
|
37
|
+
],
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=22.19.0"
|
|
40
|
+
},
|
|
41
|
+
"dsh": {
|
|
42
|
+
"bundle": {
|
|
43
|
+
"patch": "./cordis.patch.yml"
|
|
44
|
+
},
|
|
45
|
+
"client": {
|
|
46
|
+
"inject": [
|
|
47
|
+
"@deepseek-ai/dsh-api-remotes",
|
|
48
|
+
"@deepseek-ai/dsh-client-connection",
|
|
49
|
+
"@deepseek-ai/dsh-client-locale",
|
|
50
|
+
"@deepseek-ai/dsh-client-ui-conversation",
|
|
51
|
+
"@deepseek-ai/dsh-client-ui-settings",
|
|
52
|
+
"@deepseek-ai/dsh-client-ui-settings-plugins"
|
|
53
|
+
],
|
|
54
|
+
"platform": "web"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"scripts": {
|
|
58
|
+
"test": "node scripts/run-tests.mjs && vitest run --config vitest.config.ts --pool=threads --maxWorkers=1",
|
|
59
|
+
"build": "tsdown --config tsdown.config.ts",
|
|
60
|
+
"typecheck": "tsc -b tsconfig.json --pretty false",
|
|
61
|
+
"pack:release": "node -e \"require('node:fs').mkdirSync('artifacts',{recursive:true})\" && npm pack --cache .npm-cache --pack-destination artifacts",
|
|
62
|
+
"verify:public-benchmarks": "node --experimental-strip-types scripts/verify-public-benchmarks.mjs",
|
|
63
|
+
"verify:memory-scale": "node scripts/verify-memory-scale.mjs 10000",
|
|
64
|
+
"verify:release": "npm run test && npm run typecheck && npm run build && node scripts/verify-built-host.mjs && node scripts/verify-built-client.mjs && node scripts/verify-package.mjs && npm run pack:release && node scripts/verify-archive.mjs"
|
|
65
|
+
},
|
|
66
|
+
"peerDependencies": {
|
|
67
|
+
"@deepseek-ai/cordis": "^4.0.5",
|
|
68
|
+
"@deepseek-ai/dsh-tools": "^0.2.1-rc.5",
|
|
69
|
+
"@deepseek-ai/schemastery": "^3.18.5",
|
|
70
|
+
"officeparser": "^8.0.0",
|
|
71
|
+
"@melandlabs/opencontext": "^0.5.1"
|
|
72
|
+
},
|
|
73
|
+
"dependencies": {
|
|
74
|
+
"@melandlabs/env-config": "^0.4.0",
|
|
75
|
+
"better-sqlite3": "^12.0.0",
|
|
76
|
+
"sqlite-vec": "^0.1.7"
|
|
77
|
+
},
|
|
78
|
+
"devDependencies": {
|
|
79
|
+
"tsdown": "^0.22.2",
|
|
80
|
+
"lightningcss": "^1.33.0",
|
|
81
|
+
"three": "0.186.1",
|
|
82
|
+
"typescript": "^5.9.3",
|
|
83
|
+
"react": "^18.2.0",
|
|
84
|
+
"react-dom": "^18.2.0"
|
|
85
|
+
},
|
|
86
|
+
"directories": {
|
|
87
|
+
"doc": "docs",
|
|
88
|
+
"lib": "lib",
|
|
89
|
+
"test": "tests"
|
|
90
|
+
},
|
|
91
|
+
"keywords": [],
|
|
92
|
+
"author": "agentos-context contributors",
|
|
93
|
+
"peerDependenciesMeta": {
|
|
94
|
+
"officeparser": {
|
|
95
|
+
"optional": true
|
|
96
|
+
},
|
|
97
|
+
"@melandlabs/opencontext": {
|
|
98
|
+
"optional": true
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# agentOS context UI Prototype Contract
|
|
2
|
+
|
|
3
|
+
## 1. 版本、门禁与交付边界
|
|
4
|
+
- 版本:v1.1,2026-09-20;这一版根据用户反馈收敛到现有 DSH 风格。
|
|
5
|
+
- 目标 Profile:desktop(正式实现时确认)。浏览器只是原型载体,不代表安装到独立 Web Profile。
|
|
6
|
+
- 用户已确认:v1.1 双入口设计及开始隔离实现;显示名改为 agentOS context,兼容标识与旧数据保留。
|
|
7
|
+
- 用户尚未确认:安装到活动 Profile、重启当前 DSH、真实数据迁移或任何外部数据处理。
|
|
8
|
+
- 本文与 index.html 是设计契约,不是正式插件。刷新/重开页面会重置演示状态。
|
|
9
|
+
- 原型单文件自包含,零 CDN、零在线 API、零外部字体、无真实凭据和真实用户数据。
|
|
10
|
+
|
|
11
|
+
## 2. 现状与原生风格依据
|
|
12
|
+
- 已读安装元数据:dsh-opencontext 0.3.2-ht.1。
|
|
13
|
+
- 已读 Client:settings.plugin.item / key=dsh-opencontext;conversation.view / id=opencontext-memory / label=记忆。
|
|
14
|
+
- 已确认 Client 有列表、图谱、修订和废弃;不把这几项描述为从零新增。
|
|
15
|
+
- 当前已核验的 Client 没有向记忆视图传递 sessionId;“本轮引用”正式实现需要 Host trace。
|
|
16
|
+
- 现有 GUI 的浏览器标签页返回 401,本次没有绕过认证,没有现场验证生产页面。
|
|
17
|
+
- ../references/native-theme-tokens.json 来自本机发行包的主题 CSS;不保证等于用户当前启用的自定义主题。
|
|
18
|
+
- 原型沿用系统 sans 字体、灰阶主按钮、背景层次、细边框、12px 卡片圆角、14px 配置标题/12px 说明。
|
|
19
|
+
- 删除宣传式 hero、独立配色品牌、图谱装饰背景;图谱保持平面和有限强调。
|
|
20
|
+
- 正式实现必须复用宿主 Theme tokens、primitives 与现有导航,不直接搬入原型的壳或离线主题副本。
|
|
21
|
+
|
|
22
|
+
## 3. 两个入口与信息架构
|
|
23
|
+
### A. 会话上方“记忆”
|
|
24
|
+
- 右侧轻量抽屉;桌面保留对话,窄屏切为全宽面板。
|
|
25
|
+
- 已引用:第 1 轮的冻结演示快照,不保证模型真正采用其全部内容。
|
|
26
|
+
- 相关候选:已经保存、但尚未实际注入的候选;不是待保存提案。
|
|
27
|
+
- 卡片动作:查依据、为什么引用/推荐、下轮不用、固定下轮候选。
|
|
28
|
+
- 底部:本会话暂不调用、记住一条、管理全部记忆。
|
|
29
|
+
- 下轮候选不保证实际注入;正式装配必须重新校验权限、有效期和预算。
|
|
30
|
+
- 保留聊天草稿;跨工作台返回时保留抽屉及演示选择。
|
|
31
|
+
|
|
32
|
+
### B. 设置 → 插件 → agentOS context
|
|
33
|
+
- 原有配置卡:自动记忆、写入前提炼、提炼模型;新增关联理解/召回分离的目标配置。
|
|
34
|
+
- 修改先保留草稿,明确“保存设置”;跳转前提示放弃或继续。
|
|
35
|
+
- “打开记忆工作台”进入共享管理视图,不建立第二套记忆数据。
|
|
36
|
+
- 工作台只有四个一级 Tab:记忆、图谱、待确认、设置。
|
|
37
|
+
- 记忆:列表、对象档案、来源资料;搜索、范围/状态筛选、详情。
|
|
38
|
+
- 图谱:一/两层展开、解释路径、节点与边详情、关系文本列表、演示时间轴。
|
|
39
|
+
- 待确认:备份策略冲突、同类型需求别名候选;预览、填写理由、确认与撤销。
|
|
40
|
+
- 设置:基础与隐私;高级类型/关系校验和规则发布门禁示意。
|
|
41
|
+
|
|
42
|
+
## 4. 核心可点流程
|
|
43
|
+
1. 设置 → 工作台 → 记忆列表 → 查看证据 → 关系/版本。
|
|
44
|
+
2. 会话 → 记忆抽屉 → 下轮不用 → 工作台 → 返回会话;已引用快照不变。
|
|
45
|
+
3. 会话输入“记住:内容” → 预览内容和范围 → 保存;新记录在工作台同一数据源可见。
|
|
46
|
+
4. 记住一条 → 空内容提交 → 错误提示;取消不留半条记录。
|
|
47
|
+
5. 修订 → 填写理由 → 保存;冻结的第 1 轮引用内容保持原样。
|
|
48
|
+
6. 停止召回 → 影响说明 → 理由 → 确认;不物理删除原文或历史对话。
|
|
49
|
+
7. 图谱 → 两层 → 选中关系 → 展开对应依据;不是所有关系共用一个证据片段。
|
|
50
|
+
8. 输入“为什么需要二次确认” → 高亮固定演示路径;其他问题明确未接入模型。
|
|
51
|
+
9. 时间滑块 → 旧方案/评审/约束/当前;仅四个固定演示点,不是完整时态数据库。
|
|
52
|
+
10. 待确认 → 并列来源 → 采用正式纪要或区分环境 → 理由 → 保存;可撤销。
|
|
53
|
+
11. 别名候选 → 合并预览 → 理由 → 确认;需求与接口仍是不同实体。
|
|
54
|
+
12. 类型与关系 → 主语选择 Person → 校验失败;切换 Requirement → 校验通过。
|
|
55
|
+
13. 离线/无权限/不可追踪/来源不可访问 → 不伪造成功 → 恢复演示状态。
|
|
56
|
+
|
|
57
|
+
## 5. 状态矩阵
|
|
58
|
+
| 状态 | 原型入口 | 展示 | 恢复与限制 |
|
|
59
|
+
| --- | --- | --- | --- |
|
|
60
|
+
| ready | 默认 | 真实可点的演示内容 | 本地模拟写入 |
|
|
61
|
+
| loading | 顶部演示状态 | 骨架与加载说明 | 模拟完成加载 |
|
|
62
|
+
| empty | 顶部演示状态 | 首次使用说明 | 载入示例资料;不是删除现有数据 |
|
|
63
|
+
| dirty | 修改设置 | 明确未保存与保存/取消 | 导航需确认 |
|
|
64
|
+
| saving | 记忆/审核提交 | 按钮显示保存中且禁用 | 模拟约 280ms 本地提交 |
|
|
65
|
+
| success | 保存/排除/审核完成 | 可见结果与提示 | 适用操作提供撤销 |
|
|
66
|
+
| error | 顶部读取失败 | 原因、未保存说明、重试 | 重试恢复 |
|
|
67
|
+
| disabled | 顶部插件停用 | 不可用原因 | 模拟启用,非真实配置 |
|
|
68
|
+
| offline | 顶部离线只读 | 缓存提示 | 写操作禁用 |
|
|
69
|
+
| denied | 顶部无权限 | 隐藏主内容与证据 | 不把无权限解释为无数据 |
|
|
70
|
+
| stale | 顶部并发冲突 | 提交拒绝、草稿仍在弹窗 | 不做最后写入覆盖;取消后可回正常态 |
|
|
71
|
+
| traceUnavailable | 顶部引用不可追踪 | 明确没有真实引用记录 | 不使用相关列表冒充引用 |
|
|
72
|
+
| sourceUnavailable | 顶部来源不可访问 | 不展示不可访问原文 | 不生成替代原文 |
|
|
73
|
+
| truncated | 顶部图谱截断 | 显示局部结果限制 | 缩小范围并重试 |
|
|
74
|
+
|
|
75
|
+
## 6. 三条状态轴的展示
|
|
76
|
+
- 保存/记录状态:是否进入共享演示记忆、是否停止召回。
|
|
77
|
+
- 依据状态:来源已核对、存在冲突、推断待确认;来源核对不等于客观真或验收通过。
|
|
78
|
+
- 使用状态:第 1 轮已引用、相关候选、后续排除/固定;不更改历史快照。
|
|
79
|
+
- 原型为交互演示,部分记录状态用 display status 简化存储;正式三轴数据模型以完整方案为准。
|
|
80
|
+
- 新用户修订以用户修订来源标识,不把新文本冒充原始需求文档。
|
|
81
|
+
|
|
82
|
+
## 7. 无障碍与响应式
|
|
83
|
+
- 所有业务动作有文字或可访问名称;状态不仅靠颜色表达。
|
|
84
|
+
- 业务表单支持键盘,模态 dialog 提供原生焦点约束;Esc 关闭。
|
|
85
|
+
- 会话抽屉桌面为非模态,不锁住聊天;关闭焦点回“记忆”触发点。
|
|
86
|
+
- 依据面板独立焦点循环,图节点/边支持 Tab + Enter/Space。
|
|
87
|
+
- 窄屏保留操作入口,表格转卡片,图谱可局部横滚并提供关系列表,禁止整页横向溢出。
|
|
88
|
+
- 遵守 prefers-reduced-motion;不使用持续动画。
|
|
89
|
+
- 实际检查 375×812、768×1024、1440×900;720×450用于200%缩放的等效CSS视口检查。
|
|
90
|
+
- 深/浅色按已读取的默认 token 模拟;真正的 DSH 系统主题、用户字号偏好与宿主原生组件同屏验收仍需正式集成。
|
|
91
|
+
|
|
92
|
+
## 8. 数据、安全与限制
|
|
93
|
+
- 全部业务数据为虚构 Atlas/DEMO-042,不含真实员工、事项内容、生产路径或密钥。
|
|
94
|
+
- 数据仅存在当前页面内存;无 localStorage、cookie、数据库、模型调用、网络同步。
|
|
95
|
+
- 页面设置 Content-Security-Policy,connect-src 为 none;使用文本转义防止示例输入成为 HTML。
|
|
96
|
+
- 冲突、保存、停止召回、撤销、类型校验均为有状态模拟,不是后端事务证明。
|
|
97
|
+
- 任意本体编辑、OWL/RDF推理、全量双时态、ACL、模型提取、迁移、导入导出、永久删除均未实现。
|
|
98
|
+
- 身份合并、永久删除与规则发布的正式流程必须另审影响、权限和补偿;原型不承诺无条件可撤销。
|
|
99
|
+
- 同屏右抽屉依赖正式 overlay/trigger slot 合同。第一可运行检查点先使用已验证的原生 conversation.view“记忆”Tab,并保留常驻 composer;不能把原型效果当成现有 slot 已支持右抽屉。
|
|
100
|
+
|
|
101
|
+
## 9. 可重复验证
|
|
102
|
+
- 语法与组装:node tools/build-prototype.mjs(从交付根目录运行)。
|
|
103
|
+
- 浏览器用相同 index.html 内容在独立空白页装载;没有启动替代 DSH 服务器。
|
|
104
|
+
- tools/browser-interaction-tests.js 是页面上下文的回归测试函数;结果见 ../validation/interaction-results.json。
|
|
105
|
+
- 截图、响应式与局限见 ../验证报告.md;只把真正执行的检查列为通过。
|
|
106
|
+
|
|
107
|
+
## State matrix
|
|
108
|
+
参见“5. 状态矩阵”;该表是原型的完整可演示状态合同。
|
|
109
|
+
|
|
110
|
+
## Accessibility and responsive behavior
|
|
111
|
+
参见“7. 无障碍与响应式”;键盘、焦点、缩放、窄屏和 reduced-motion 均属于正式验收项。
|
|
112
|
+
|
|
113
|
+
## Acceptance criteria
|
|
114
|
+
参见“10. 评审清单”;其中未勾选项仍是后续门禁,不因打包自动通过。
|
|
115
|
+
|
|
116
|
+
## 10. 评审清单
|
|
117
|
+
- [x] 保留两个既有入口和四个管理 Tab。
|
|
118
|
+
- [x] 日常语汇优先,本体术语在高级设置中渐进展示。
|
|
119
|
+
- [x] 使用同一份演示数据与明确使用状态。
|
|
120
|
+
- [x] 原型中的关键动作可点击、可取消、有结果或明确失败。
|
|
121
|
+
- [ ] 第一可运行实现尚未覆盖冲突/别名审核队列与审核撤销;当前“待确认”只处理有来源的 pending relation。
|
|
122
|
+
- [x] 提供独立效果图、交互总览和本体完整目标方案。
|
|
123
|
+
- [x] 明确离线原型与正式插件能力的边界。
|
|
124
|
+
- [x] 用户已确认本版原型并授权隔离工作区实现;正式实施合同核验与计划已启动。
|
|
125
|
+
- [ ] 正式包验证通过后,再单独取得安装与数据迁移授权。
|