ocean-crew 0.0.0-stage → 0.4.1

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.
Files changed (92) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +156 -2
  3. package/THIRD_PARTY_NOTICES.md +159 -0
  4. package/client.js +31390 -0
  5. package/cordis.patch.yml +6 -0
  6. package/dist/host/chat/btw.js +436 -0
  7. package/dist/host/chat/channel.js +1241 -0
  8. package/dist/host/chat/chat-index.js +344 -0
  9. package/dist/host/chat/delivery.js +231 -0
  10. package/dist/host/chat/feed.js +165 -0
  11. package/dist/host/chat/handoffs.js +625 -0
  12. package/dist/host/chat/parts.js +2033 -0
  13. package/dist/host/chat/requests.js +155 -0
  14. package/dist/host/chat/resume.js +364 -0
  15. package/dist/host/chat/side.js +457 -0
  16. package/dist/host/chat/steer.js +346 -0
  17. package/dist/host/chat/turns.js +1457 -0
  18. package/dist/host/connectors/catalog.js +331 -0
  19. package/dist/host/connectors/gateway.js +339 -0
  20. package/dist/host/connectors/index.js +1235 -0
  21. package/dist/host/connectors/mail/index.js +912 -0
  22. package/dist/host/connectors/mail/presets.js +53 -0
  23. package/dist/host/connectors/mail/transport.js +519 -0
  24. package/dist/host/connectors/oauth.js +337 -0
  25. package/dist/host/core/constants.js +123 -0
  26. package/dist/host/core/diagnostics.js +310 -0
  27. package/dist/host/core/dsh-update.js +212 -0
  28. package/dist/host/core/events.js +16 -0
  29. package/dist/host/core/files.js +37 -0
  30. package/dist/host/core/folders.js +283 -0
  31. package/dist/host/core/home-lock.js +137 -0
  32. package/dist/host/core/links.js +52 -0
  33. package/dist/host/core/runtime.js +5 -0
  34. package/dist/host/core/store.js +662 -0
  35. package/dist/host/core/text.js +59 -0
  36. package/dist/host/core/thinking.js +60 -0
  37. package/dist/host/core/time-context.js +69 -0
  38. package/dist/host/core/update.js +466 -0
  39. package/dist/host/groups/calls.js +684 -0
  40. package/dist/host/groups/index.js +79 -0
  41. package/dist/host/groups/log.js +334 -0
  42. package/dist/host/groups/prompt.js +124 -0
  43. package/dist/host/groups/relay.js +489 -0
  44. package/dist/host/groups/round.js +992 -0
  45. package/dist/host/groups/tasks.js +217 -0
  46. package/dist/host/groups/tools.js +478 -0
  47. package/dist/host/groups/types.js +8 -0
  48. package/dist/host/im/format.js +228 -0
  49. package/dist/host/im/index.js +2461 -0
  50. package/dist/host/im/platforms/feishu.js +1134 -0
  51. package/dist/host/im/platforms/index.js +6 -0
  52. package/dist/host/im/platforms/media-type.js +70 -0
  53. package/dist/host/im/platforms/weixin.js +1117 -0
  54. package/dist/host/im/reaction.js +51 -0
  55. package/dist/host/im/supervisor.js +56 -0
  56. package/dist/host/team/agents.js +161 -0
  57. package/dist/host/team/models.js +427 -0
  58. package/dist/host/team/permissions.js +263 -0
  59. package/dist/host/team/privacy.js +108 -0
  60. package/dist/host/team/prompt.js +86 -0
  61. package/dist/host/team/providers.js +461 -0
  62. package/dist/host/team/roster.js +1011 -0
  63. package/dist/host/team/tools.js +1638 -0
  64. package/dist/host/work/approvals.js +290 -0
  65. package/dist/host/work/avatar-library.js +155 -0
  66. package/dist/host/work/avatar.js +132 -0
  67. package/dist/host/work/capabilities.js +862 -0
  68. package/dist/host/work/companion.js +306 -0
  69. package/dist/host/work/goal-skills.js +91 -0
  70. package/dist/host/work/goals.js +1337 -0
  71. package/dist/host/work/images.js +283 -0
  72. package/dist/host/work/learning.js +1021 -0
  73. package/dist/host/work/memory-pending.js +108 -0
  74. package/dist/host/work/memory.js +3237 -0
  75. package/dist/host/work/notify.js +146 -0
  76. package/dist/host/work/reset.js +43 -0
  77. package/dist/host/work/schedules.js +309 -0
  78. package/dist/host/work/secrets.js +702 -0
  79. package/dist/host/work/steward.js +166 -0
  80. package/dist/host/work/tts.js +192 -0
  81. package/dist/host/work/usage.js +84 -0
  82. package/dist/index.js +137 -0
  83. package/dist/shared/api.js +32 -0
  84. package/dist/shared/companion.js +110 -0
  85. package/dist/shared/config.js +3 -0
  86. package/dist/shared/coordination.js +6 -0
  87. package/dist/shared/group-replies.js +95 -0
  88. package/dist/shared/im-platforms.js +35 -0
  89. package/dist/shared/im.js +3 -0
  90. package/dist/shared/mentions.js +85 -0
  91. package/dist/shared/state.js +25 -0
  92. package/package.json +81 -5
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 9Ashwin and the Ocean Crew contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,157 @@
1
- # Temporary Holding Version
1
+ # Ocean Crew(海底小队)
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Ocean Crew 是 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)的插件:
4
+ 它把 **DSH Desktop** 变成一支由长期存活的海洋伙伴 Bot 组成的团队。每个 Bot 是一个独立的 DSH
5
+ Session,有自己的名字、角色、指令、模型、工作文件夹和形象;它们和你对话,也彼此对话、在群聊里协作。
6
+
7
+ 本仓库只维护一种形态:装进 **DSH Desktop** 里运行的 `ocean-crew` 插件。不提供 Web 部署、Docker
8
+ 镜像、移动端或自带的桌面应用。
9
+
10
+ > **个人项目。** 本仓库([9Ashwin/ocean-crew](https://github.com/9Ashwin/ocean-crew))是个人学习与
11
+ > 日常使用的 Bot 团队项目,不提供商业支持。插件在 DSH 里的包名是 `ocean-crew`。
12
+
13
+ ## 安装
14
+
15
+ 先安装 DSH Desktop,并在 **Settings → Models** 里至少配置一个模型——Ocean Crew 使用 DSH 提供的模型。
16
+
17
+ 在 DSH 的 **Plugins** → **Add plugin** 里填入包名:
18
+
19
+ ```text
20
+ ocean-crew
21
+ ```
22
+
23
+ 点 **Install**、**Enable now**。这是 npm 上的发布包,不需要本机装 Git,也不需要自己构建。
24
+
25
+ <details>
26
+ <summary>从 GitHub 安装(开发版、未发布到 npm 的提交)</summary>
27
+
28
+ 构建产物(`dist/`、`client.js`)不进 git,由安装时的 `prepare` 脚本现场构建。填:
29
+
30
+ ```text
31
+ github:9Ashwin/ocean-crew#main&path:/ocean-crew
32
+ ```
33
+
34
+ (需要本机装 Git。)pnpm 默认拦截依赖的构建脚本;遇到提示时允许 `ocean-crew` 的构建
35
+ (DSH 的 Plugins 页面会给出确认,或在 profile 的 `pnpm-workspace.yaml` 中加 `allowBuilds`,
36
+ 或在本机 profile 的 `pnpm-workspace.yaml` 里加 `dangerouslyAllowAllBuilds: true`)。
37
+
38
+ </details>
39
+
40
+ ### 从本机检出安装(开发用)
41
+
42
+ ```sh
43
+ git clone https://github.com/9Ashwin/ocean-crew.git
44
+ cd ocean-crew # 仓库根
45
+ npm install
46
+ npm run build # 生成 ocean-crew/dist/ 和 ocean-crew/client.js
47
+ cd ocean-crew # 插件目录
48
+ node dev/install-local.mjs --dry-run # 只看计划
49
+ node dev/install-local.mjs # 安装并让 DSH 重新加载
50
+ ```
51
+
52
+ 如果 DSH 提示改动下次启动生效,完全退出 DSH 再打开。团队第一次打开时会创建一个名为 **Chief**
53
+ 的 Main Bot。
54
+
55
+ 脚本会先备份已安装的副本,只复制发布文件,不改 profile 的依赖声明,也不碰团队数据和密钥。
56
+ `--no-reload` 跳过重新加载,`--profile <dir>` 指定别的 profile。client 侧改动重新加载后生效;
57
+ host 侧改动需要重启 DSH。
58
+
59
+ 插件按 DSH `0.2.2-rc.1` 的插件 API 编写。
60
+
61
+ ## 快速开始
62
+
63
+ 打开 Ocean Crew,和 Chief 说话。它会带你完成设置;Bot、群聊、能力、连接器和定时任务也都可以直接
64
+ 让 Bot 创建和修改。
65
+
66
+ ## 功能
67
+
68
+ - **团队。** 长期存活的 Bot:每个有自己的模型、指令、工作文件夹、记忆、权限预设和形象。Main Bot
69
+ (可以不止一个)管理团队;Bot 之间用 `message_bot` 互相交付工作。
70
+ - **群聊。** 多个 Bot 一起干活:管理员先答再点名,或成员按序发言;同一条消息里被 `@` 的成员并行
71
+ 工作;没有新内容的成员保持沉默(`[PASS]`)。群可以跑分阶段目标和证据核对,每个群有自己的记忆。
72
+ - **长聊天不丢上下文。** Bot 的聊天由分段(part)组成;越过检查线时,上下文管家决定就地压缩成检查点
73
+ 还是换新分段,你始终只看到一个聊天。更早的对话和压缩内容可在全文索引(`node:sqlite` FTS5)里搜索。
74
+ - **记忆。** 每个 Bot、每个群和整个团队各有一份 Markdown 记忆;每轮结束后由模型复核更新,也可以让
75
+ Bot 用 `remember` / `forget` / `recall` 直接管理。记忆面板里可以看条目、摘要、更改历史并撤销。
76
+ - **目标与日程。** 群目标按阶段拆分、逐任务验收(必有证据或豁免),Bot 驱动到完成;定时任务按
77
+ cron 或一次性触发,失败和错过可查。
78
+ - **能力与连接器。** 在设置里共享 MCP server、skill 和 pack;用 OAuth 或密钥连接 GitHub、邮箱和远程
79
+ MCP server,凭据留在 Secrets,以 `$DSH_SECRET_*` 提供给工具。
80
+ - **密钥。** Bot 在聊天里用卡片请求 API key 或 token,自己永远看不到值;保存后按 Bot 限定范围,在
81
+ 工具结果和出站请求里脱敏。
82
+ - **浏览器。** 插件不内置浏览器;Bot 需要操作页面时用本机已安装的 Playwright CLI + Chrome,
83
+ 通过自己的 shell 工具执行。
84
+ - **IM。** 把 Bot 接到飞书(私聊和群聊)或微信私聊:配对、卡片审批和回复都在 IM 里完成,不需要公网地址、不开端口。飞书的群聊可以绑定到内部群聊,群里的点名消息进入该群、群里的发言也回到那个群。
85
+ 每条连接是一个 IM 机器人账号、绑定一个 Bot,群聊可以按会话分别指向团队里的 Bot 或群;未配对发送者的第一条消息会变成一条待允许的请求。
86
+ 待发文本持久化在 `im/` 下,重启后继续投递;已发出但没拿到回执的会标为「结果不确定」,不会重复发送。
87
+ 回复只回到发起对话的那个聊天:同一个 Bot 同时接飞书和微信时,在飞书说的话不会跑到微信;
88
+ 在电脑窗口里聊的内容默认完全不发到 IM。
89
+ 飞书用富文本 post 渲染 Markdown(加粗、列表、链接、代码块正常显示),回答会挂在提问那条消息下;
90
+ post 被平台拒绝时退回纯文本,长回复分条发送并标注第几段,代码块跨条时自动补围栏。
91
+ 微信把短的口语化回复拆成多条气泡发送,更接近真人聊天,并在回复前显示「正在输入」。
92
+ - **网页搜索。** 由 DSH 的搜索 provider 提供,在 DSH 设置里配置。
93
+ - **侧聊与旁白。** `/side` 在右栏打开侧聊,从 Bot 当前聊天快照作答、不运行工具;旁白(btw)把补充
94
+ 说明以卡片形式贴在聊天里。
95
+ - **用量与更新。** 设置里的 Usage 显示团队、每个 Bot 与每个群聊的 token 用量(来自 DSH token-meter);插件和 DSH 有更新时在窗口里提示并可直接安装。
96
+ - **重新开始。** 设置 →「重新开始」可以重新初始化团队:清空 Bot、群聊、记忆、学习、日程与 IM 配对,保留密钥、团队工作区和 DSH 会话,重建 Chief 主 Bot;重置前会把数据备份到 `bot/backups/reset-<时间戳>/`。
97
+ - **外观。** 12 个海洋形象、13 种颜色(`assets/marine/`,默认蓝鲸 `marine-whale`),也可以上传照片;
98
+ 团队主题、强调色、消息布局和动画三档在设置里调。每个形象层与色板由 `ocean-crew/src/client/look/marine-assets.ts`
99
+ 统一渲染。仓库顶部配图见根 [README](../README.md)。
100
+
101
+ ## 配置
102
+
103
+ 选项写在 profile 的 `cordis.patch.yml` 里 `bot` 条目下,全部可选:
104
+
105
+ ```yaml
106
+ - id: bot
107
+ name: ocean-crew
108
+ config:
109
+ workspace: /path/to/workspace # Bot 的工作区;默认 <home>/workspace
110
+ home: /path/to/bot-data # 团队数据位置;默认 $DSH_HOME/bot
111
+ checkRatio: 0.8 # 上下文管家做判断的位置(可用窗口比例)
112
+ memory: true # false 关闭记忆工具、面板和学习轮
113
+ learning: true # false 关闭后台学习轮
114
+ updateCheck: true # 是否检查插件更新
115
+ github: false # 隐藏 GitHub 连接器
116
+ ```
117
+
118
+ 完整键表、默认值与影响见 [docs/contracts.md](../docs/contracts.md#插件配置)。
119
+
120
+ ## 数据与隐私
121
+
122
+ 数据都在你自己的电脑上:团队、密钥、记忆、日志和索引在 `$DSH_HOME/bot`(默认 `~/.dsh/bot`);
123
+ 聊天本身是 DSH 存储里的会话,不在插件目录里。`secrets.json` 权限 600;团队同一时刻只有一个持锁
124
+ host 可以写,其他 DSH 进程只读。卸载插件不会删除这些数据。安全边界见
125
+ [SECURITY_MODEL.md](../SECURITY_MODEL.md)。
126
+
127
+ ## 开发与检查
128
+
129
+ ```sh
130
+ cd ocean-crew
131
+ npm install
132
+ npm run build # dist/(host 构建产物)+ client.js(client 构建产物),都不进 git
133
+ npm test # 单元测试
134
+ node dev/check-bundle.mjs # 校验 client.js 与 dist/ 和源码一致、发布文件齐全
135
+ ```
136
+
137
+ 改完在仓库根跑完整门禁:
138
+
139
+ ```sh
140
+ npm run check
141
+ ```
142
+
143
+ `client.js` 由 `ocean-crew/scripts/build-client.mjs` 从 `ocean-crew/src/client/` 生成,禁止手改;
144
+ host 源码在 `ocean-crew/src/host/`。测试从本机 DSH 安装或 DSH 检出解析 `@deepseek-ai/*`,
145
+ 细节见 `ocean-crew/test/harness-resolve.mjs`。IM 改动需要在 DSH Desktop 里做一次真实飞书或微信
146
+ 往返验证。
147
+
148
+ - 工作规则:[AGENTS.md](../AGENTS.md)
149
+ - 架构与术语:[docs/architecture.md](../docs/architecture.md)
150
+ - 公开契约:[docs/contracts.md](../docs/contracts.md)
151
+ - 界面规范:[docs/design/ui-standard.md](../docs/design/ui-standard.md)
152
+ - 海洋形象资产:[assets/marine/README.md](../assets/marine/README.md)
153
+
154
+ ## 许可
155
+
156
+ [MIT License](../LICENSE),按「原样」提供,不附带任何担保。源自早期 JavaScript 版本的部分仍按 Apache-2.0 提供,第三方代码及其许可归属见
157
+ [THIRD_PARTY_NOTICES.md](../THIRD_PARTY_NOTICES.md)。
@@ -0,0 +1,159 @@
1
+ # Third-party notices
2
+
3
+ Ocean Crew — Copyright 2026 9Ashwin and the Ocean Crew contributors.
4
+
5
+ This project is a personal, non-commercial project for learning and everyday
6
+ use. The project's own material is released under the MIT License (see
7
+ LICENSE). Portions of the code derive from DS Bot
8
+ (https://github.com/Fei2411/DS-Bot), Copyright 2026 Fei2411 and the DS Bot
9
+ contributors, distributed under the Apache License, Version 2.0
10
+ (https://www.apache.org/licenses/LICENSE-2.0). The sources under ocean-crew/src/
11
+ are modified ports of
12
+ the JavaScript build this plugin shipped as before the rewrite (removed from
13
+ the repository in 2026): they were ported to TypeScript, renamed and
14
+ restructured that year. Those portions remain available
15
+ under the Apache License, Version 2.0; the MIT License covers the project's
16
+ original material. The notices below are kept for the third-party code they
17
+ cover.
18
+
19
+ ==============================================================================
20
+ Third-party code in this repository
21
+ ==============================================================================
22
+
23
+ Deep View (https://github.com/Fei2411/deep-view)
24
+ Apache License, Version 2.0, Copyright 2026 Fei2411 and the Deep View
25
+ contributors
26
+
27
+ - ocean-crew/src/client/widget-cell.ts imports deep-view/core and
28
+ deep-view/react; the client bundle inlines that code into client.js, so it
29
+ is distributed with the plugin. Deep View's own README says its view
30
+ components and core were ported from DS Bot under the same license.
31
+
32
+ Simple Icons (https://simpleicons.org)
33
+ CC0 1.0 Universal, the Simple Icons contributors
34
+
35
+ - ocean-crew/src/client/connector-marks.ts keeps the single-color brand path
36
+ of each connector service from Simple Icons 16.36.0 (the SI table), the
37
+ Gmail, iCloud and QQ paths for the mailbox rows, and the Telegram, WeChat
38
+ and Discord paths for the IM page.
39
+
40
+ Context7 (https://github.com/upstash/context7)
41
+ MIT License, Copyright (c) Upstash
42
+
43
+ - ocean-crew/src/client/connector-marks.ts keeps the Context7 connector mark
44
+ from public/context7-icon.svg, without the brand square.
45
+
46
+ dsh-im (https://github.com/xmanrui/dsh-im)
47
+ MIT License, Copyright (c) 2026 xmanrui
48
+
49
+ - ocean-crew/src/host/im/platforms/weixin.ts follows the iLink mapping of
50
+ src/channels/weixin/weixin-api.mjs and weixin-controller.mjs: the QR
51
+ login poll, getupdates with the get_updates_buf cursor, context_token
52
+ per user, typing tickets, and the AES image download. It also follows
53
+ the session start (msg/notifystart and client headers), reconnect
54
+ backoff, message deduplication and context-token binding of
55
+ src/channels/weixin/weixin-runtime.mjs and state-store.mjs.
56
+ - ocean-crew/src/host/im/supervisor.ts follows the retry ladder and failure
57
+ classification of dsh-im's connection supervisor
58
+ (plugin-src/host/channels/feishu/connection-supervisor.mjs).
59
+ - ocean-crew/src/host/im/reaction.ts follows the status-reaction lifecycle
60
+ of src/channels/shared/status-reaction.mjs: a processing reaction on the
61
+ message that asked for the work, removed and replaced by the success or
62
+ error reaction when the turn ends, with transitions serialized per message
63
+ and every provider failure absorbed.
64
+ - ocean-crew/src/host/im/platforms/feishu.ts maps the official
65
+ @larksuiteoapi/node-sdk events onto the Ocean Crew IM contract; the
66
+ adapter follows the chat/mention contract of dsh-im's Feishu bridge
67
+ (plugin-src/host/channels/feishu).
68
+ - ocean-crew/src/host/im/format.ts follows the Markdown chunking of
69
+ src/channels/shared/markdown-chunks.mjs and telegram-rich-message.mjs
70
+ there: code fences stay whole where they fit and are re-fenced when they
71
+ must be split.
72
+
73
+ The MIT License text: see "License texts" below.
74
+
75
+ Runtime dependencies (installed from npm, not bundled; each package ships its
76
+ own license):
77
+
78
+ - @larksuiteoapi/node-sdk 1.76.0 — MIT — the Feishu/Lark long connection
79
+ and OpenAPI calls in host/im/platforms/feishu.ts.
80
+ - imapflow 2.9.1 — MIT — the IMAP transport of the mail connector.
81
+ - mailparser 3.12.4 — MIT — the message parser of the mail connector.
82
+ - nodemailer 10.2.1 — MIT-0 — the SMTP transport of the mail connector.
83
+ - qrcode-generator 2.0.4 — MIT, Copyright (c) Kazuhiko Arase — QR codes
84
+ for the WeChat sign-in in the client bundle.
85
+
86
+ The plugin uses the @deepseek-ai/* packages of the DeepSeek Harness install it
87
+ runs in, and the React and interface modules the DSH Desktop window seeds;
88
+ they are not bundled. esbuild is a build tool only and is not distributed.
89
+
90
+ ==============================================================================
91
+ License texts
92
+ ==============================================================================
93
+
94
+ MIT License (covers this project's original material and the MIT-licensed
95
+ third-party code above):
96
+
97
+ Permission is hereby granted, free of charge, to any person obtaining a copy
98
+ of this software and associated documentation files (the "Software"), to deal
99
+ in the Software without restriction, including without limitation the rights
100
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
101
+ copies of the Software, and to permit persons to whom the Software is
102
+ furnished to do so, subject to the following conditions:
103
+
104
+ The above copyright notice and this permission notice shall be included in
105
+ all copies or substantial portions of the Software.
106
+
107
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
108
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
109
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
110
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
111
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
112
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
113
+ SOFTWARE.
114
+
115
+ Apache License 2.0 (covers the derived portions and Deep View):
116
+ https://www.apache.org/licenses/LICENSE-2.0
117
+
118
+ ==============================================================================
119
+ Original artwork
120
+ ==============================================================================
121
+
122
+ The marine character pack (ocean-crew/src/client/marine-assets.ts and
123
+ assets/marine/: twelve shapes, thirteen colors, the eye layouts and the SVG
124
+ renderer) and the project's own illustrations in docs/images/ are original
125
+ artwork by the Ocean Crew contributors. They are not taken from any third
126
+ party; the only third-party marks in the interface are the Simple Icons and
127
+ Context7 marks listed above.
128
+
129
+ ==============================================================================
130
+ Projects that gave us ideas (no code copied)
131
+ ==============================================================================
132
+
133
+ We thank these projects for the designs they published. This project's design
134
+ was informed by them through its DS Bot history; it does not contain their
135
+ code.
136
+
137
+ - AgentMemoryRepo (https://github.com/AgentMemoryRepo/agentmemoryrepo), MIT:
138
+ the Markdown format of Bot memory (one entry per line with [key: value]
139
+ metadata, a MEMORY.md index that links topic files).
140
+ - OpenAI Codex (https://github.com/openai/codex), Apache-2.0:
141
+ keeping the user's messages next to the summary in a checkpoint, and
142
+ message anchors for searching earlier chat.
143
+ - OpenMausBot (https://github.com/milind-soni/OpenMausBot), Apache-2.0:
144
+ group chat rounds and @mention relays between Bots.
145
+ - Hermes Agent (https://github.com/NousResearch/hermes-agent) and
146
+ Hermes Bot Mode (https://github.com/NousResearch/Hermes-Bot-Mode), MIT:
147
+ one Session per member per group chat, and the list of earlier user
148
+ messages that the plugin, not the model, writes into the handoff.
149
+ - OpenCode (https://github.com/sst/opencode), MIT;
150
+ goose (https://github.com/block/goose), Apache-2.0;
151
+ pi (https://github.com/badlogic/pi-mono), MIT;
152
+ Gemini CLI (https://github.com/google-gemini/gemini-cli), Apache-2.0:
153
+ when to condense a long conversation, and what a handoff note holds.
154
+ - obelisk (https://github.com/tommy0103/obelisk), AGPL-3.0:
155
+ searching a Bot's own chat with a SQLite FTS5 index ranked by BM25.
156
+ - DeepSeek Harness Voice Input plugin
157
+ (packages/experimental/client-ui-voice-input), MIT: the voice chat
158
+ records with the same steps (record, resample to 16 kHz mono, PCM16 WAV)
159
+ before it calls the plugin's speech service.