jeopi-cli 16.6.12 → 16.6.14
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/CHANGELOG.md +20 -0
- package/README.md +2 -2
- package/dist/cli.js +2629 -2624
- package/dist/types/cli/messenger-cli.d.ts +4 -1
- package/dist/types/cli/update-cli.d.ts +9 -0
- package/dist/types/messenger/activity.d.ts +7 -0
- package/dist/types/messenger/gateway.d.ts +12 -1
- package/dist/types/messenger/session-pool.d.ts +38 -0
- package/dist/types/messenger/session-worker.d.ts +49 -0
- package/dist/types/messenger/types.d.ts +8 -1
- package/package.json +12 -12
- package/src/cli/messenger-cli.ts +22 -24
- package/src/cli/update-cli.ts +13 -3
- package/src/cli.ts +13 -0
- package/src/extensibility/plugins/legacy-pi-bundled-keys.ts +2 -0
- package/src/extensibility/plugins/legacy-pi-bundled-registry.ts +8 -0
- package/src/internal-urls/docs-index.generated.txt +1 -1
- package/src/messenger/activity.ts +24 -0
- package/src/messenger/discord.ts +58 -0
- package/src/messenger/gateway.ts +297 -73
- package/src/messenger/live-session.ts +16 -2
- package/src/messenger/session-pool.ts +332 -0
- package/src/messenger/session-worker.ts +79 -0
- package/src/messenger/session.ts +8 -5
- package/src/messenger/types.ts +13 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [16.6.14] - 2026-10-30
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `jeopi messenger run` gives every conversation (a Discord request thread or DM, a Telegram chat or topic, a Slack thread) its own jeopi session process, so separate conversations are answered concurrently; idle processes exit after 10 minutes and resume from their persisted session; see [session processes](../../docs/messenger.md#session-processes).
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- Messenger session processes start without the configured platform token environment variables (not OS isolation: enabled tools can still read files the OS user can). A session that fails to start now answers with an error and is retried on the next message instead of stopping the gateway.
|
|
14
|
+
|
|
15
|
+
## [16.6.13] - 2026-10-30
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Discord requests in the messenger gateway and `/discord live` show one in-place status line with the current step (the tool call's declared intent or tool name), edited at most every 2 seconds and deleted when the request finishes; see [Discord progress](../../docs/messenger/discord.md#overview).
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- Explain how to recover when an empty dependency name in Bun's global manifest prevents updates.
|
|
24
|
+
|
|
5
25
|
## [16.6.12] - 2026-10-29
|
|
6
26
|
|
|
7
27
|
### Added
|
package/README.md
CHANGED
|
@@ -73,7 +73,7 @@ jeopi messenger run --config /absolute/private/path/messenger.json
|
|
|
73
73
|
2. In the Bot settings, enable the privileged **Message Content Intent** (obtain approval if Discord requires it for your app). The adapter requests `GUILD_MESSAGES`, `DIRECT_MESSAGES`, and `MESSAGE_CONTENT`; it does not request member or presence intents.
|
|
74
74
|
3. Install/invite the bot with the `bot` scope and **View Channels**, **Send Messages**, and **Read Message History**. For server-channel requests, also grant **Create Public Threads**, **Send Messages in Threads**, **Add Reactions**, and **Attach Files** in the intended channels; existing threads must be accessible to the bot. Attach Files is needed for exact copies when Discord would strip boundary whitespace. Administrator permission is not required.
|
|
75
75
|
4. Enable Developer Mode in Discord's Advanced settings, then use **Copy User ID** for each authorized human and **Copy Channel ID** for each allowed channel/DM. Use exact numeric IDs as strings. Allowing a parent channel permits authorized requests in its threads; a thread ID can also be allowed directly. Users must be able to DM the bot under their Discord privacy settings.
|
|
76
|
-
5. Mention the bot for a server-channel request: it creates a thread for that request. A request in an existing thread stays there; DMs remain direct. The original sender can continue without mentioning the bot in a bot-created thread while its in-memory mapping survives; restart or eviction loses that association. Explicitly mention the bot in other thread requests. Progress
|
|
76
|
+
5. Mention the bot for a server-channel request: it creates a thread for that request. A request in an existing thread stays there; DMs remain direct. The original sender can continue without mentioning the bot in a bot-created thread while its in-memory mapping survives; restart or eviction loses that association. Explicitly mention the bot in other thread requests. Progress is best-effort: ⏳ while processing, then ✅ or ❌ reactions, plus one in-place status line (for example `⏳ Step 3 · Running the test suite`) that shows the current tool intent and is deleted when the request finishes; see [Discord progress](../../docs/messenger/discord.md#overview).
|
|
77
77
|
|
|
78
78
|
For Discord file exchange, explicitly configure `platforms.discord.artifactDir` as a pre-existing private staging directory and enable the needed host tools; see the [file workflow and limits](../../docs/messenger/discord.md#discord-file-workflow). The gateway reuses the configured model/provider authentication; attachments and tool results may be sent to that provider. Created server threads are public to people who can view the channel, not just allowlisted users.
|
|
79
79
|
|
|
@@ -113,7 +113,7 @@ Relay sends the final assistant text from eligible successful, directly submitte
|
|
|
113
113
|
- Keep configuration, workspace, and session storage under a dedicated private directory/account. Session directories/files are restricted to modes `0700`/`0600`; transcripts persist on disk and are not encrypted by this feature. Authorized prompts and enabled-tool results can reach your configured model provider and replies go back to the originating chat. Never use a sensitive personal workspace for remote prompts.
|
|
114
114
|
- For the headless gateway, `toolNames` defaults to `[]`, so remote sessions have no tools. They do not load workspace context files, skills, rules, prompt templates, custom tools, extension discovery, MCP, or LSP. Slash-looking input, including `/new`, is ordinary user text; there is no remote session-management command surface.
|
|
115
115
|
- **Dangerous gateway opt-in:** the entire supported local-tool list is `"toolNames": ["read", "grep", "glob", "bash", "edit", "write"]`. Enable only the subset you deliberately authorize, never by default. Selected tools are allowed without per-call interactive approval: even read/search tools can disclose local data, and shell/write tools grant local execution/modification authority. `cwd` is not a filesystem jail. This is **not a sandbox**; isolate the OS account/container and its credentials before granting remote users tools.
|
|
116
|
-
- Incoming text is limited to 32,000 UTF-16 units.
|
|
116
|
+
- Incoming text is limited to 32,000 UTF-16 units. Each conversation (a Discord thread or DM, a Telegram chat or topic, a Slack thread, per sender) gets its own jeopi session process: up to 4 conversations are answered at once, turns of one conversation stay in order, at most 8 session processes stay resident, and a process idle for 10 minutes exits (the next message resumes its persisted session). Session processes start without the configured platform token environment variables; this is not OS isolation, so enabled tools can still read anything the OS user can, including a token file. At most 100 messages wait; excess messages are dropped. Deduplication and transport cursors are in memory, not a durable delivery queue. Reconnects retry transient failures, but fatal authentication/configuration errors stop the gateway; restart after correcting them. A session that fails to start answers with an error and is retried on the next message. Do not assume exactly-once processing or recovery of every message after an outage.
|
|
117
117
|
- Replies are split into provider-sized text chunks (Discord 2,000, Telegram 4,096, Slack 4,000 UTF-16 units). Discord sends chunks sequentially and retries the current chunk on rate limits; Slack spaces chunks. Discord may add invisible U+200B characters around unavoidable whitespace boundaries to prevent Discord from stripping that whitespace. When it does, it also sends the original response as `response.txt` for exact UTF-8 copying; this requires attachment permission and is subject to Discord upload limits. There is no general outbound rate-limit scheduler or durable retry/outbox. Failed sends are not automatically replayed and a multi-chunk reply can be partial. Check provider limits and connectivity before manually retrying a request that may already have run tools.
|
|
118
118
|
|
|
119
119
|
These are native jeopi transports, informed by Aside's bundled `~/.aside/u/0/skills/builtin/channel/SKILL.md` context/reply model and [Hermes Agent gateway architecture at `040b6df2c40b0f4f88f51e4c2062eafc4d7463c5`](https://github.com/NousResearch/hermes-agent/tree/040b6df2c40b0f4f88f51e4c2062eafc4d7463c5), **not full ports**. Aside's moderation/history/reaction tools and Hermes media support are not included. Incoming attachments, image/audio/video processing, and general media uploads are not supported; Discord's exact-text attachment is the exception described above.
|