zames_pro 2.37.0 → 2.38.0

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/README.md CHANGED
@@ -139,22 +139,35 @@ Codex CLI:
139
139
 
140
140
  - /diff [--staged] — show the working-tree git diff (--staged for the index).
141
141
  - /cost (alias /usage) — session stats: tasks, tool calls, duration, and the
142
- context size in tokens (DeepSeek's `accumulated_token_usage`).
142
+ context size in tokens (DeepSeek's `accumulated_token_usage`).
143
143
  - /export [file] — write the session transcript to a Markdown file
144
- (zames-export-<stamp>.md by default).
144
+ (zames-export-<stamp>.md by default).
145
145
  - /doctor — diagnose node, git, config, browser, clipboard and MCP.
146
146
  - /permissions — show the confirmation settings (Write/Edit/Bash + the
147
- alwaysConfirm regex list).
147
+ alwaysConfirm regex list).
148
148
  - /add-dir <path> — validate an extra directory (the sandbox is fixed at
149
- startup; relaunch with --dir to write there).
149
+ startup; relaunch with --dir to write there).
150
150
  - /resume <n> (after /chats) and /resume-id <id> — open a chat and PRINT its
151
- dialogue into the terminal, so the restored context is visible. Only the
152
- last 20 messages are shown (`RESTORED_HISTORY_LIMIT`).
151
+ dialogue into the terminal, so the restored context is visible. Only the
152
+ last 20 messages are shown (`RESTORED_HISTORY_LIMIT`).
153
153
  - /review [focus] [--staged] — ask the agent to review uncommitted changes
154
- and report findings (no code changes).
154
+ and report findings (no code changes).
155
155
  - /compact — ask DeepSeek to compress the current chat into a handover
156
- summary, then open a NEW chat, resend the system prompt and post the summary
157
- as the carried-over context. Use it when the context gets long.
156
+ summary, then open a NEW chat, resend the system prompt and post the summary
157
+ as the carried-over context. Use it when the context gets long.
158
+ - /goal [text|clear] — set a long-lived session goal. It is prepended to every
159
+ task message, so the model keeps the big picture across many turns. Stored in
160
+ `<project>/.zames-goal` (git-ignored) and restored on the next launch.
161
+ - /loop <interval> <task> — repeat a task periodically (e.g. `/loop 10m run the
162
+ tests`). /cron "<min> <hour> <dom> <month> <dow>" <task> — run on a schedule.
163
+ /jobs [rm <id>|clear] lists and stops them. A fired job is put into the same
164
+ message queue you type into, so it runs when the agent is free (never mid-
165
+ generation) and still respects the send throttle.
166
+ - /thinking [on|off] and /web [on|off] — toggle Deep thinking / Smart search.
167
+ These (and /queue, /jobs, /goal, `/config <sub>`) can be used WHILE the agent
168
+ is working — they do not touch the in-flight generation.
169
+ - /queue [clear] — list or clear the messages waiting to be sent after the
170
+ current task.
158
171
 
159
172
  The token context is also shown live: the status line above the input has the
160
173
  spinner/text on the left and the context on the right (e.g. `125k · 13%`,
@@ -162,7 +175,6 @@ percent of a 1M context). It is COLORED by fill level: green below 50%,
162
175
  yellow 50-80%, red above 80%. It comes from DeepSeek's
163
176
  `accumulated_token_usage` and is hidden until the first answer delivers it.
164
177
 
165
-
166
178
  ## Project context, skills and memory
167
179
 
168
180
  Like Codex / Claude Code, zames reads project instructions and reusable
package/dist/browser.js CHANGED
@@ -499,6 +499,30 @@ export class DeepSeekBrowser {
499
499
  catch { }
500
500
  }
501
501
  }
502
+ // A lightweight IN-PAGE marker so the operator, looking at the browser
503
+ // window, can tell that the agent is generating (the terminal spinner is not
504
+ // visible there). We prefix the tab title with a "⏳"; the ORIGINAL title is
505
+ // saved ONCE on the window and restored when generation ends, so DeepSeek's
506
+ // own chat title is never lost. Best-effort: a page error must never break
507
+ // the send loop.
508
+ async _setBusyTitle(busy) {
509
+ try {
510
+ await this.page.evaluate((on) => {
511
+ const w = window;
512
+ if (on) {
513
+ if (typeof w.__zamesTitle !== 'string') {
514
+ w.__zamesTitle = document.title.replace(/^⏳\s*/, '');
515
+ }
516
+ document.title = '⏳ ' + w.__zamesTitle;
517
+ }
518
+ else if (typeof w.__zamesTitle === 'string') {
519
+ document.title = w.__zamesTitle;
520
+ w.__zamesTitle = undefined;
521
+ }
522
+ }, busy);
523
+ }
524
+ catch { }
525
+ }
502
526
  async launch() {
503
527
  // NOTE: we deliberately do NOT kill stray chrome processes here. Per the
504
528
  // project rules, an agent must never kill a browser it did not start —
@@ -1745,6 +1769,9 @@ export class DeepSeekBrowser {
1745
1769
  }
1746
1770
  finally {
1747
1771
  this._askInFlight = Math.max(0, this._askInFlight - 1);
1772
+ // Clear the in-page "generating" marker (tab title) however the ask
1773
+ // ended (answer, error, abort), so it never sticks after a run.
1774
+ void this._setBusyTitle(false);
1748
1775
  }
1749
1776
  }
1750
1777
  // Cancel an in-flight ask() whose caller (the agent-loop watchdog) already
@@ -2053,6 +2080,7 @@ export class DeepSeekBrowser {
2053
2080
  catch { }
2054
2081
  }
2055
2082
  this._emitSendState('generating');
2083
+ void this._setBusyTitle(true);
2056
2084
  this._netCapture = '';
2057
2085
  this._netCaptureAt = 0;
2058
2086
  this._netNoAnswer = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zames_pro",
3
- "version": "2.37.0",
3
+ "version": "2.38.0",
4
4
  "description": "Terminal coding agent over chat.deepseek.com via Playwright",
5
5
  "type": "module",
6
6
  "bin": {