jeopi-cli 16.2.26 → 16.2.28

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 (40) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +1 -1
  3. package/dist/cli.js +3076 -3082
  4. package/dist/types/advisor/runtime.d.ts +3 -0
  5. package/dist/types/commands/install.d.ts +1 -1
  6. package/dist/types/discovery/helpers.d.ts +1 -1
  7. package/dist/types/export/html/index.d.ts +2 -2
  8. package/dist/types/export/html/web-palette.d.ts +2 -2
  9. package/dist/types/session/session-history-format.d.ts +12 -0
  10. package/dist/types/tiny/text.d.ts +9 -2
  11. package/dist/types/tools/report-tool-issue.d.ts +1 -1
  12. package/package.json +13 -12
  13. package/scripts/generate-share-viewer.ts +5 -5
  14. package/scripts/jeopi +4 -4
  15. package/scripts/{omp.ts → jeopi-preload.ts} +4 -4
  16. package/src/advisor/__tests__/advisor.test.ts +43 -0
  17. package/src/advisor/runtime.ts +8 -2
  18. package/src/commands/install.ts +1 -1
  19. package/src/debug/report-bundle.ts +1 -1
  20. package/src/debug/system-info.ts +2 -2
  21. package/src/discovery/builtin.ts +4 -4
  22. package/src/discovery/helpers.ts +2 -2
  23. package/src/discovery/omp-plugins.ts +3 -3
  24. package/src/discovery/ssh.ts +1 -1
  25. package/src/export/html/index.ts +2 -2
  26. package/src/export/html/share-loader.js +5 -5
  27. package/src/export/html/template.css +2 -2
  28. package/src/export/html/template.js +5 -5
  29. package/src/export/html/tool-views.generated.js +2 -2
  30. package/src/export/html/web-palette.ts +2 -2
  31. package/src/export/share.ts +1 -1
  32. package/src/internal-urls/docs-index.generated.txt +1 -1
  33. package/src/memories/index.ts +23 -1
  34. package/src/modes/acp/acp-agent.ts +12 -6
  35. package/src/modes/controllers/selector-controller.ts +16 -2
  36. package/src/session/agent-session.ts +13 -15
  37. package/src/session/session-history-format.ts +18 -1
  38. package/src/tiny/text.ts +11 -8
  39. package/src/tools/image-gen.ts +2 -4
  40. package/src/tools/report-tool-issue.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [16.2.28] - 2026-07-08
6
+
7
+ ### Fixed
8
+
9
+ - The advisor's live transcript delta (`AdvisorRuntime#renderDelta` → `formatSessionHistoryMarkdown`) rendered the primary agent's thinking blocks with a literal `_thinking:_ ` label on every turn, including the very first one — a `reasoning_extraction` classifier-refusal trigger on Fable/Mythos advisor targets that the existing reactive degrade (strip thinking, re-prime, resend) could only recover from *after* eating one refusal. Added `demoteThinkingForModelId` to `formatSessionHistoryMarkdown`/`HistoryFormatOptions`, wired from the advisor's own live model id (`AdvisorAgent.state.model?.id`, now exposed on the interface): when set, thinking renders through `renderDemotedThinking` (the same classifier-safe markdown-italic disguise the wire layer already uses for cross-model/cross-turn thinking replay) instead of the labeled form, so a Fable/Mythos advisor never sends the trigger in the first place. The reactive one-shot latch in `#drain`'s catch block is unchanged and still covers other/unforeseen classifier signals. Human-facing consumers of `formatSessionHistoryMarkdown` (`history://` dumps, `/dump advisor`) are unaffected — they never pass `demoteThinkingForModelId` and keep the explicit label.
10
+
11
+ ## [16.2.27] - 2026-07-07
12
+
13
+ ### Fixed
14
+
15
+ - The background memory-consolidation pipeline (`memories/index.ts`) JSON-serialized full raw assistant message objects — including `thinking`/`redactedThinking` content blocks — verbatim into the stage-one extraction prompt sent to the model, independently of the already-fixed `hindsight`/`compaction` transcript paths. Added `dropThinkingContentForMemories` to strip those blocks before serialization, closing another `reasoning_extraction` classifier-refusal trigger.
16
+ - The auto-title replan-refresh path (`#buildReplanTitleContext` → `formatTitleConversationContext`) wrapped recent assistant `thinking` content in a literal `<thinking>...</thinking>` block and sent it as a plaintext user message to the title model — which falls back to the session's own current model (`getTitleModel`) whenever no `tiny`/`commit`/`smol` role is configured, so this could replay the primary Anthropic model's own prior reasoning back at itself. Dropped `thinking` from `TitleConversationTurn`/`formatTitleConversationContext` entirely (title turns now carry `text` only), closing another `reasoning_extraction` classifier-refusal trigger alongside the already-fixed advisor/compaction/memories/hindsight paths.
17
+ - ACP `session/load` replay (`#messageToReplayNotifications`) sent every `developer`-role message and every `custom`/`hookMessage` message — regardless of its `display` flag — to the client as a `user_message_chunk`, unlike the interactive TUI, which never renders `developer` messages and only renders `custom`/`hookMessage` when `display` is true. Internal-only jeopi directives injected as `developer`/hidden-`custom` messages (todo completion/error reminders, the resolve-preview reminder, mid-run todo nudges — all wrapped in `<system-reminder>`) leaked verbatim to ACP clients (e.g. Zed) on session resume, even though they never appear in the TUI. `#messageToReplayNotifications` now skips `developer` messages entirely and gates `custom`/`hookMessage` replay on `display`, matching TUI visibility exactly.
18
+ - The `/model` picker (`showModelSelector`'s `role === "default"` branch) always showed `Default model: <name>` after a selection, even when `AgentSession.setModel()` returned `{ switched: false }` — which it deliberately does, without throwing, whenever the session's current context token count already exceeds the candidate model's context window (persisting the role for future sessions but skipping the live switch, since sending on that model would just fail with a context-overflow error). This is exactly the situation a user hits right when they run into a token/usage limit and reach for `/model` to escape it, so the picker's unconditional success status made the switch look silently ignored. The picker now checks `switched` and, when the live model did not change, shows an error explaining the context-window mismatch and that `/compact` or a new session is needed to apply it now.
19
+ - The `/debug` system-info report hardcoded `App: omp <version>` instead of the `APP_NAME` constant it otherwise imports, and the native/extension-package discovery providers surfaced as `"OMP"` / `"OMP Extension Packages"` in `/status` and provider warnings — leftover pre-npm-independence branding that misidentified the app to users. Now `App: jeopi <version>` and `"jeopi"` / `"jeopi Extension Packages"`.
20
+ - The `<omp-tool-view>` web component (HTML session exports + the share viewer), its `globalThis.__OMP_TOOL_VIEW_DATA`/`__OMP_SESSION_DATA__` payload globals, and the `/share` secret-gist filename suffix (`.ompshare.txt`) all carried pre-npm-independence `omp` naming. Renamed to `<jeopi-tool-view>` / `__JEOPI_TOOL_VIEW_DATA` / `__JEOPI_SESSION_DATA__` / `.jeopishare.txt` across `share.ts`, `share-loader.js`, `template.js`/`template.css`, and `collab-web`'s `tool-render/` — regenerated `tool-views.generated.js` to match. `scripts/generate-share-viewer.ts` had a stale sanity-check assertion still matching the old `__OMP_SESSION_DATA__` global, which would have failed every invocation after the rename; fixed alongside it.
21
+ - Several docs and discovery-layer strings still described pre-npm-independence `omp` naming instead of the shipped `jeopi` behavior: `docs/extension-loading.md`/`docs/skills/authoring-extensions.md`/`docs/skills/authoring-marketplaces.md` told users to declare extension entry points under a `package.json` `omp.extensions` field (including in a copy-pasteable JSON example), but `discoverExtensionModulePaths` only ever checked `pkg.jeopi ?? pkg.pi` — following the docs literally silently failed to load the extension. `docs/marketplace.md`'s CLI-equivalents section, `docs/tools/debug.md`'s report-bundle filename reference, `DEVELOPMENT.md`, and `README.md` carried the same stale branding. `helpers.ts`'s `listClaudePluginRoots` parse-failure warning said "OMP plugin registry" instead of "jeopi plugin registry", and the `ssh-json` provider's `/status` description said "managed omp paths". Fixed all of the above to `jeopi`/`jeopi.extensions`, and renamed the `/debug` report bundle filename from `omp-report-<timestamp>.tar.gz` to `jeopi-report-<timestamp>.tar.gz` to match.
22
+
5
23
  ## [16.2.26] - 2026-07-05
6
24
 
7
25
  ### Added
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # jeopi
2
2
 
3
- Core implementation package for the `omp` coding agent in the `oh-my-pi` monorepo.
3
+ Core implementation package for the `jeopi` coding agent in the `jeopi` monorepo.
4
4
 
5
5
  For installation, setup, provider configuration, model roles, slash commands, and full CLI reference, see:
6
6
  - [Monorepo README (local)](../../README.md)