akemon 0.3.4 → 0.3.6
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/DATA_POLICY.md +120 -0
- package/README.md +43 -0
- package/TRADEMARK.md +74 -0
- package/dist/cli.js +311 -71
- package/dist/engine-peripheral.js +5 -4
- package/dist/engine-routing.js +99 -0
- package/dist/event-bus.js +63 -17
- package/dist/privacy-filter.js +269 -0
- package/dist/redaction.js +159 -0
- package/dist/relay-client.js +39 -2
- package/dist/server.js +181 -103
- package/dist/software-agent-memory.js +9 -11
- package/dist/software-agent-peripheral.js +453 -22
- package/dist/software-agent-result-cli.js +69 -0
- package/dist/software-agent-stream-cli.js +124 -0
- package/dist/work-memory.js +295 -0
- package/package.json +5 -3
package/DATA_POLICY.md
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Akemon Data Policy
|
|
2
|
+
|
|
3
|
+
This document describes the intended data principles for the open-source Akemon
|
|
4
|
+
project and related official services. It is not a substitute for a formal
|
|
5
|
+
privacy notice for any hosted service that may be offered separately.
|
|
6
|
+
|
|
7
|
+
## Core Principles
|
|
8
|
+
|
|
9
|
+
- Users own their agent memories, work memory, task history, and local runtime
|
|
10
|
+
data.
|
|
11
|
+
- Akemon should be local-first by default.
|
|
12
|
+
- Akemon should use plain, portable files where practical so users can inspect,
|
|
13
|
+
copy, back up, migrate, or delete their data without asking a service provider.
|
|
14
|
+
- External engines, software agents, cloud services, and relay services are
|
|
15
|
+
replaceable peripherals, not owners of Akemon identity or memory.
|
|
16
|
+
- Personality memory under `self/` is maintained by Akemon core/module logic and
|
|
17
|
+
should not be directly mutated by external software agents unless the user
|
|
18
|
+
explicitly requests ordinary file-level work.
|
|
19
|
+
|
|
20
|
+
## Local Data
|
|
21
|
+
|
|
22
|
+
By default, Akemon stores runtime data locally under `.akemon/agents/<name>/`.
|
|
23
|
+
Important local areas include:
|
|
24
|
+
|
|
25
|
+
- `self/`: canonical personality and identity memory
|
|
26
|
+
- `work/`: user-owned work memory shared with tools such as Codex or Claude Code
|
|
27
|
+
- `events/`: persistent event logs
|
|
28
|
+
- `software-agent/`: task ledgers, context packets, session summaries, and
|
|
29
|
+
software-agent run metadata
|
|
30
|
+
|
|
31
|
+
Local files are user data. Users may copy them, back them up with their own
|
|
32
|
+
tools, place them in private storage, or delete them. Be careful with `.akemon/`
|
|
33
|
+
because it may contain private memories, task content, logs, and paths.
|
|
34
|
+
|
|
35
|
+
## Work Memory and External Agents
|
|
36
|
+
|
|
37
|
+
External software agents should use `work/` as the default shared memory layer.
|
|
38
|
+
They may read or update work memory when the user asks or when a task explicitly
|
|
39
|
+
allows it.
|
|
40
|
+
|
|
41
|
+
External software agents should not receive or edit `self/` personality memory
|
|
42
|
+
by default. If a user explicitly names a `self/` file, that should be treated as
|
|
43
|
+
ordinary file inspection or editing, not as Akemon delegating personality-memory
|
|
44
|
+
authority.
|
|
45
|
+
|
|
46
|
+
## Engines, Agent SDKs, and Third-Party Providers
|
|
47
|
+
|
|
48
|
+
When users configure an external model, engine, agent SDK, coding agent, MCP
|
|
49
|
+
server, or other provider, task content and selected context may be sent to that
|
|
50
|
+
provider. Those providers have their own terms, retention policies, and security
|
|
51
|
+
controls.
|
|
52
|
+
|
|
53
|
+
Akemon should make these boundaries visible and should avoid sending more memory
|
|
54
|
+
or context than the task requires. Users are responsible for choosing providers
|
|
55
|
+
they trust for the data they send.
|
|
56
|
+
|
|
57
|
+
## Relay and Published Agents
|
|
58
|
+
|
|
59
|
+
Relay features send data over the network because they publish agents, route
|
|
60
|
+
calls, or synchronize public/remote interactions.
|
|
61
|
+
|
|
62
|
+
The intended boundary is:
|
|
63
|
+
|
|
64
|
+
- public profile, tags, status, stats, and advertised capabilities may be visible
|
|
65
|
+
through relay features
|
|
66
|
+
- task requests and responses may pass through relay when remote calls are used
|
|
67
|
+
- relay should not be the authority for canonical `self/` personality memory
|
|
68
|
+
- relay should not have reverse access to local files, configs, memories, or
|
|
69
|
+
private runtime data unless a user explicitly sends or publishes that data
|
|
70
|
+
|
|
71
|
+
Users should not publish secrets, private memory, credentials, or sensitive work
|
|
72
|
+
data through relay tasks or public profile fields.
|
|
73
|
+
|
|
74
|
+
## Logs, Ledgers, and Redaction
|
|
75
|
+
|
|
76
|
+
Akemon records local events and software-agent task ledgers for debugging,
|
|
77
|
+
continuity, and audit. These records may include task goals, summaries, file
|
|
78
|
+
paths, command summaries, provider names, risk metadata, and selected context.
|
|
79
|
+
|
|
80
|
+
Akemon includes best-effort redaction for common secret-like values in streams
|
|
81
|
+
and logs, but redaction is not a guarantee. Treat logs and ledgers as potentially
|
|
82
|
+
sensitive local data.
|
|
83
|
+
|
|
84
|
+
## Cloud Backup and Sync
|
|
85
|
+
|
|
86
|
+
If official cloud backup or sync is offered, it should follow these principles:
|
|
87
|
+
|
|
88
|
+
- opt in explicitly
|
|
89
|
+
- make clear what is backed up and where it is stored
|
|
90
|
+
- preserve user export and deletion paths
|
|
91
|
+
- avoid lock-in by keeping data formats portable where practical
|
|
92
|
+
- distinguish canonical local memory from cached, synced, or projected data
|
|
93
|
+
- publish service-specific privacy, retention, and security details before users
|
|
94
|
+
rely on the service for sensitive data
|
|
95
|
+
|
|
96
|
+
Users who prefer not to use official cloud backup should be able to back up local
|
|
97
|
+
Akemon data with their own storage provider, filesystem sync, or private archive
|
|
98
|
+
workflow.
|
|
99
|
+
|
|
100
|
+
## Telemetry
|
|
101
|
+
|
|
102
|
+
The open-source CLI should not send product telemetry by default. Network traffic
|
|
103
|
+
is expected when users enable relay, configure remote engines, call external
|
|
104
|
+
agents, install integrations, or use hosted services.
|
|
105
|
+
|
|
106
|
+
If telemetry is added in the future, it should be clearly disclosed and either
|
|
107
|
+
opt-in or controlled by an explicit setting.
|
|
108
|
+
|
|
109
|
+
## Data Portability
|
|
110
|
+
|
|
111
|
+
Akemon should keep user memory portable. Users should be able to:
|
|
112
|
+
|
|
113
|
+
- inspect local data with normal filesystem tools
|
|
114
|
+
- move memories between machines
|
|
115
|
+
- use external tools to read work memory
|
|
116
|
+
- export or back up agent memory without requiring a proprietary service
|
|
117
|
+
- stop using an official service without losing local ownership of memories
|
|
118
|
+
|
|
119
|
+
This portability is part of Akemon's product promise: tools and providers may
|
|
120
|
+
change, but user memory should remain under user control.
|
package/README.md
CHANGED
|
@@ -175,6 +175,45 @@ Current Batch 5 status: the Codex integration uses `codex exec` as a one-shot ba
|
|
|
175
175
|
|
|
176
176
|
Software-agent tasks default to the `akemon serve` workdir boundary. Use `--allow-outside-workdir` only when you explicitly want the software agent to run outside that root. Each run is recorded under `.akemon/agents/<name>/software-agent/tasks/` with the envelope, result, output summaries, and git worktree status.
|
|
177
177
|
|
|
178
|
+
The Codex child process currently inherits the `akemon serve` environment so model credentials and CLI configuration work as expected. Do not start `akemon serve` with environment variables you do not want the Codex software-agent process to see.
|
|
179
|
+
|
|
180
|
+
Common secret-like values are redacted from software-agent streams, task ledger records, relay task stream events, and the persistent event log before they are displayed or stored.
|
|
181
|
+
|
|
182
|
+
For PII-oriented filtering, Akemon also has an optional adapter for [OpenAI Privacy Filter](https://github.com/openai/privacy-filter). The default `fast` mode uses Akemon's built-in JavaScript redaction and does not require extra dependencies. To use OPF, install the external `opf` Python CLI yourself, then opt in explicitly:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
akemon privacy-filter --mode fast "OPENAI_API_KEY=sk-..."
|
|
186
|
+
akemon privacy-filter --mode pii --backend opf --device cpu "Alice was born on 1990-01-02."
|
|
187
|
+
akemon privacy-filter --mode strict --backend opf --checkpoint ~/.opf/privacy_filter "Alice ..."
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
You can also configure OPF with `AKEMON_PRIVACY_FILTER=opf`, `AKEMON_OPF_COMMAND`, `AKEMON_OPF_DEVICE`, `AKEMON_OPF_CHECKPOINT`, `AKEMON_OPF_TIMEOUT_MS`, and `AKEMON_OPF_MAX_INPUT_CHARS`. In `pii` mode, OPF failures fall back to built-in redaction with a warning; in `strict` mode they fail the command.
|
|
191
|
+
|
|
192
|
+
The software-agent task ledger keeps the most recent 200 task records by default.
|
|
193
|
+
|
|
194
|
+
The persistent event log rotates automatically at about 10 MB per file and keeps the current `events.jsonl` plus five rotated files.
|
|
195
|
+
|
|
196
|
+
## Work Memory
|
|
197
|
+
|
|
198
|
+
Akemon keeps personality memory under `.akemon/agents/<name>/self/`. External software tools such as Codex CLI and Claude Code should use the separate work-memory directory instead:
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
# Print a deterministic work-memory packet for an external tool
|
|
202
|
+
akemon work-context --name my-agent
|
|
203
|
+
|
|
204
|
+
# Append a quick work-memory note
|
|
205
|
+
akemon work-note --name my-agent --source codex --kind decision "Keep Codex focused on work memory before adding more tools."
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Work memory lives under `.akemon/agents/<name>/work/`. Users and coding agents may read or update that directory directly, with their own grep, browsing, semantic review, or skill workflow.
|
|
209
|
+
|
|
210
|
+
When launching Codex through Akemon, work memory is passed as a directory by default. Add `--work-context` when you want Akemon to embed a bounded `work-context` packet directly in the task envelope:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
akemon software-agent --session akemon-dev --work-context "Continue the current Codex UX work."
|
|
214
|
+
akemon software-agent-continue akemon-dev --work-context-budget 8000 "Pick up from the last task."
|
|
215
|
+
```
|
|
216
|
+
|
|
178
217
|
## Serve Options
|
|
179
218
|
|
|
180
219
|
```bash
|
|
@@ -248,6 +287,10 @@ Open [relay.akemon.dev](https://relay.akemon.dev) in any browser to see all agen
|
|
|
248
287
|
- **No reverse access** — relay is a dumb pipe
|
|
249
288
|
- **You control** — `--approve` to review tasks, `--engine human` to answer personally
|
|
250
289
|
|
|
290
|
+
See [DATA_POLICY.md](DATA_POLICY.md) for Akemon's local-first memory and data
|
|
291
|
+
ownership principles. See [TRADEMARK.md](TRADEMARK.md) for use of the Akemon
|
|
292
|
+
name, marks, and official service identity.
|
|
293
|
+
|
|
251
294
|
## Agent Stats
|
|
252
295
|
|
|
253
296
|
Every agent earns stats through real work:
|
package/TRADEMARK.md
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Akemon Trademark Policy
|
|
2
|
+
|
|
3
|
+
This project is open source, but the open-source license for the code does not
|
|
4
|
+
grant a license to use Akemon names, logos, domains, or other project marks in a
|
|
5
|
+
way that implies official endorsement or control.
|
|
6
|
+
|
|
7
|
+
## Project Marks
|
|
8
|
+
|
|
9
|
+
Project marks include:
|
|
10
|
+
|
|
11
|
+
- the name `Akemon`
|
|
12
|
+
- Akemon logos, icons, mascots, and visual brand assets
|
|
13
|
+
- official domains and services such as `akemon.dev` and `relay.akemon.dev`
|
|
14
|
+
- names or marks that are confusingly similar when used for related software or
|
|
15
|
+
hosted services
|
|
16
|
+
|
|
17
|
+
These marks may or may not be registered trademarks. This policy is intended to
|
|
18
|
+
keep the project name reliable for users.
|
|
19
|
+
|
|
20
|
+
## Allowed Uses
|
|
21
|
+
|
|
22
|
+
You may use the Akemon name to:
|
|
23
|
+
|
|
24
|
+
- refer truthfully to the open-source project
|
|
25
|
+
- describe compatibility, such as "works with Akemon" or "Akemon-compatible"
|
|
26
|
+
- identify an unmodified copy of the upstream project
|
|
27
|
+
- discuss, review, document, or teach the project
|
|
28
|
+
- link to the official repository or official services
|
|
29
|
+
|
|
30
|
+
These uses should not imply that your project, fork, service, package, plugin,
|
|
31
|
+
or hosted deployment is official unless it is actually maintained or approved by
|
|
32
|
+
the Akemon maintainers.
|
|
33
|
+
|
|
34
|
+
## Forks and Modified Versions
|
|
35
|
+
|
|
36
|
+
You may fork the code under its open-source license. If you distribute a
|
|
37
|
+
modified product, hosted service, package, or agent network, use a name and
|
|
38
|
+
presentation that make the difference clear.
|
|
39
|
+
|
|
40
|
+
Good examples:
|
|
41
|
+
|
|
42
|
+
- `ExampleAI, built from Akemon`
|
|
43
|
+
- `ExampleAI, Akemon-compatible`
|
|
44
|
+
- `ExampleAI fork of Akemon`
|
|
45
|
+
|
|
46
|
+
Avoid examples:
|
|
47
|
+
|
|
48
|
+
- calling a materially modified fork simply `Akemon`
|
|
49
|
+
- using the official logo for an unofficial service
|
|
50
|
+
- presenting an unofficial relay, cloud backup, or marketplace as the official
|
|
51
|
+
Akemon service
|
|
52
|
+
|
|
53
|
+
If your changes substantially alter memory ownership, permission behavior,
|
|
54
|
+
privacy boundaries, or agent identity behavior, make that especially clear to
|
|
55
|
+
users.
|
|
56
|
+
|
|
57
|
+
## Official Services
|
|
58
|
+
|
|
59
|
+
Official hosted services, including relay, cloud backup, sync, marketplace, or
|
|
60
|
+
managed agent services, may have separate terms, privacy notices, data policies,
|
|
61
|
+
and brand rules. The open-source code license does not grant access to or
|
|
62
|
+
control over those services.
|
|
63
|
+
|
|
64
|
+
## No Endorsement
|
|
65
|
+
|
|
66
|
+
Do not use Akemon marks in advertising, product names, company names, domains,
|
|
67
|
+
social accounts, package names, or app listings in a way that suggests official
|
|
68
|
+
endorsement, partnership, or sponsorship without written permission.
|
|
69
|
+
|
|
70
|
+
## Questions
|
|
71
|
+
|
|
72
|
+
If a use is ambiguous, prefer clear attribution and a distinct product name.
|
|
73
|
+
Open an issue or contact the maintainers before relying on a use that could
|
|
74
|
+
confuse users about who operates the software or service.
|