Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,11 @@ patch around it here.
- **Declare every host.** Every `https://` host in `main.splash` is in
`network.hosts` (with `net`), unless the app legitimately needs `images` or
`web`. Never `http://`.
- **No AI feature the device cannot serve.** A contained app cannot ask
OctoSense's assistant or a model yet: the `octos.*` capabilities pass the
gate, but every call answers `no service answers "octos" on this device`,
and `llm` is for system apps only. Never put a model key in an app. Read
- **Every AI feature is optional.** On an OctoSense device a store app can
call `model.complete`, and `octos.*` once the person allows its agent, but
`card-host` (and so `tools/octo run`) serves neither: every call there
answers `no service answers "…" on this device`. `llm` is for system apps
only. Never put a model key in an app. Read
[docs/AI-SERVICES.md](docs/AI-SERVICES.md) before adding one, and report
such a feature as not verified on a device.
- **Only needed capabilities.** Each capability maps to something a screen
Expand All @@ -63,7 +64,8 @@ patch around it here.
for you; after signing, any edit needs stamp and sign again (human).
- **Keep the bundle clean.** Only `manifest.json`, `listing.json`, the entry,
artwork and screenshots go in `bundle/` (plus `tools.json`, `AGENT.md` and
`skills/` for an app that declares its own agent, which no shell runs yet:
`skills/` for an app that declares its own agent; the shells give it a peer
and its tools, but do not install `AGENT.md` or skills yet:
[docs/AI-SERVICES.md](docs/AI-SERVICES.md#an-apps-own-agent)). Notes, keys, logs, review packets
and `.local-state/` stay out.
- **Run headless.** Start apps with `tools/octo run … --hidden` (Makepad's
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ organizers; none of that is decided here. What a contestant needs from here:
| **Machine** | macOS on Apple silicon is the verified platform. Windows and Linux are unverified. Rust stable (rustup), Python 3.9+ (macOS's own `/usr/bin/python3` works), git, a graphical session, about 3 GB free (the clones take about 1.9 GB, 1.3 GB of it this repository, where `--depth 1` is fine; the build about 1 GB), and network access for the first build. |
| **What an app can do** | Its own storage, HTTPS requests to hosts it declares, pictures and web pages, camera, location, and Mail through a host service: [CAPABILITIES](docs/CAPABILITIES.md). The language and every API: [SCRIPT-API](docs/SCRIPT-API.md). Complete examples: the [System Apps](https://github.com/OctoSense-org/OctoSense/tree/main/apps) (News, Photos, Maps, Camera, Mail) and the [template](templates/script-app/README.md). |
| **What it cannot do** | Hold a password, key or token; invent a capability or a host service (those are App Hub and shell changes); use `llm` or an `os.*` id (system apps only); be side-loaded onto a phone. `card-host` provides no host services, so a Mail-style app shows `no service answers` there. |
| **AI in the app** | Building needs none, with any coding agent or none. On the device, a store app cannot ask the assistant or a model yet: the `octos.*` capabilities pass the gate, but no OctoSense shell serves them to apps (`no service answers "octos"`). What works, what is planned, and a verified example that handles "unavailable": [docs/AI-SERVICES.md](docs/AI-SERVICES.md). |
| **AI in the app** | Building needs none, with any coding agent or none. On the device, a store app can make one-shot model calls (`model`) and, once the person allows its agent, talk to the assistant (`octos.*`); `card-host` serves neither (`no service answers "octos"`), so build the app to be complete without them. What works, what is planned, and a verified example that handles "unavailable": [docs/AI-SERVICES.md](docs/AI-SERVICES.md). |
| **Demo** | The app in `card-host` (`tools/octo run`, driven over the remote bridge) and real screenshots from `tools/octo shot`. To show it inside OctoSense, run the OctoSense desktop shell against a local catalog ([PUBLISHING §4](docs/PUBLISHING.md#4-rehearse-the-store-path-locally)). |
| **Submit to the App Hub** | [Publishing](#publishing): `tools/octo check` passes, `hub scan` answered, then a person signs and opens a `Submit <app id> <version>` issue on [OctoSense-App-Hub](https://github.com/OctoSense-org/OctoSense-App-Hub/issues). A contest entry is not automatically an App Hub submission; ask the organizers what they need. |
| **Test headless** | `tools/octo run … --hidden`: the window never appears, so an agent can test your app (and several apps at once, one `--port` each) without taking over your screen. [Headless testing](#headless-testing-many-apps-no-screen). |
Expand Down
2 changes: 1 addition & 1 deletion README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Agent)从一个想法(一段文字需求、一张生成的 UX 图)走到
| **机器** | 已验证的平台是 Apple silicon 上的 macOS;Windows 和 Linux 未验证。需要 Rust stable(rustup)、Python 3.9+(macOS 自带的 `/usr/bin/python3` 即可)、git、图形会话、约 3 GB 可用空间(克隆约 1.9 GB,其中本仓库 1.3 GB,可用 `--depth 1`;构建产物约 1 GB),首次构建需要联网。 |
| **应用能做什么** | 自己的存储、访问已声明主机的 HTTPS 请求、图片与网页、相机、定位,以及通过宿主服务使用 Mail:[CAPABILITIES](docs/CAPABILITIES.md)。语言与全部 API:[SCRIPT-API](docs/SCRIPT-API.md)。完整示例:[系统应用](https://github.com/OctoSense-org/OctoSense/tree/main/apps)(News、Photos、Maps、Camera、Mail)和[模板](templates/script-app/README.zh-CN.md)。 |
| **应用不能做什么** | 持有密码、密钥或 token;自创权限或宿主服务(那是 App Hub 和 Shell 的修改);使用 `llm` 或 `os.*` id(仅限系统应用);侧载到手机。`card-host` 不提供任何宿主服务,所以类似 Mail 的应用在其中会显示 `no service answers`。 |
| **应用中的 AI** | 开发应用不需要任何 AI 服务,可以用任何编程 Agent,也可以不用。在设备上,商店应用目前还不能调用助手或模型:`octos.*` 权限能通过准入检查,但没有任何 OctoSense Shell 向应用提供这些服务(`no service answers "octos"`)。现在能用什么、计划做什么,以及一个经过验证、能处理“不可用”状态的示例:[docs/AI-SERVICES.zh-CN.md](docs/AI-SERVICES.zh-CN.md)。 |
| **应用中的 AI** | 开发应用不需要任何 AI 服务,可以用任何编程 Agent,也可以不用。在设备上,商店应用可以进行一次性模型调用(`model`),并在用户允许其 Agent 后与助手对话(`octos.*`);`card-host` 两者都不提供(`no service answers "octos"`),所以要把应用做成不依赖它们也完整可用。现在能用什么、计划做什么,以及一个经过验证、能处理“不可用”状态的示例:[docs/AI-SERVICES.zh-CN.md](docs/AI-SERVICES.zh-CN.md)。 |
| **演示** | 在 `card-host` 中运行应用(`tools/octo run`,通过远程控制桥操作),并用 `tools/octo shot` 截取真实截图。要在 OctoSense 内展示,让 OctoSense 桌面端 Shell 读取本地目录([PUBLISHING §4](docs/PUBLISHING.md#4-rehearse-the-store-path-locally))。 |
| **提交到 App Hub** | [发布](#发布):`tools/octo check` 通过、回答 `hub scan` 的问题,然后由人签名,并在 [OctoSense-App-Hub](https://github.com/OctoSense-org/OctoSense-App-Hub/issues) 开一个 `Submit <app id> <version>` issue。参赛作品不等于自动提交到 App Hub;请向主办方确认他们需要什么。 |
| **无头测试** | `tools/octo run … --hidden`:窗口不会出现,Agent 可以在不占用你屏幕的情况下测试应用(也可同时测多个应用,每个用自己的 `--port`)。见[无头测试](#无头测试同时测多个应用不占屏幕)。 |
Expand Down
Loading
Loading