shadok-ai 0.3.87 → 0.3.89

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.
@@ -5,8 +5,8 @@ description: Schedule recurring prompts (monitoring, reporting, watching) for th
5
5
 
6
6
  # shadok-scheduler
7
7
 
8
- Turn a natural-language request like *"surveille le budget Google Ads chaque matin
9
- et alerte-moi si un plafond est dépassé"* into a token-efficient scheduled job on
8
+ Turn a natural-language request like *"watch the Google Ads budget every morning
9
+ and alert me when a cap is exceeded"* into a token-efficient scheduled job on
10
10
  **this channel**.
11
11
 
12
12
  Only works inside a shadok-ai channel — it needs `SHADOK_SESSION_ID` and
@@ -84,14 +84,14 @@ An interval (`every:30m`) is a duration, so it has no timezone.
84
84
  node scripts/schedule.mjs add \
85
85
  --schedule daily:09:00 \
86
86
  --check "python3 $HOME/.claude/skills/google-ads/scripts/check_budget.py" \
87
- --prompt "Le monitoring a détecté une anomalie budget Google Ads. Rédige une alerte claire et actionnable pour l'équipe."
87
+ --prompt "The monitoring detected a Google Ads budget anomaly. Write a clear, actionable alert for the team."
88
88
  ```
89
89
 
90
90
  ### Example — plain recurring report (runs every time)
91
91
 
92
92
  ```
93
93
  node scripts/schedule.mjs add --schedule daily:18:00 \
94
- --prompt "Fais le point de la journée sur le compte et poste un court résumé."
94
+ --prompt "Review the day on the account and post a short summary."
95
95
  ```
96
96
 
97
97
  After creating a schedule, confirm to the user in plain language: what it watches,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shadok-ai",
3
- "version": "0.3.87",
3
+ "version": "0.3.89",
4
4
  "main": "dist/session.js",
5
5
  "scripts": {
6
6
  "test": "node --import tsx --test test/*.ts .claude/skills/shadok-ai-agents/test/*.test.mjs context/*/test/*.test.mjs",
@@ -1,22 +1,22 @@
1
- // Qui a envoyé un prompt venu d'un AUTRE client ? Décision pure, donc testable
2
- // sans navigateurmême découpage que live-text.js, notify.js et
3
- // profile-card.js : chargé tel quel par la page (ESM) et importé par les tests.
1
+ // Who sent a prompt that came from ANOTHER client? A pure decision, hence
2
+ // testable without a browser the same split as live-text.js, notify.js and
3
+ // profile-card.js: loaded as is by the page (ESM) and imported by the tests.
4
4
  //
5
- // L'étiquette d'auteur était figée sur « pilot (elsewhere) », ce qui ne dit ni
6
- // qui a parlé ni d'où. Le pont Telegram connaît le nom de l'expéditeur ; les
7
- // crons connaissent leur origine. Autant le dire.
5
+ // The author label was frozen on "pilot (elsewhere)", which says neither who
6
+ // spoke nor from where. The Telegram bridge knows the sender's name; the crons
7
+ // know their origin. We may as well say so.
8
8
 
9
9
  /**
10
- * @param {{from?: string, origin?: string, auto?: boolean}} msg un `prompt-echo`
11
- * @returns {string} l'étiquette à afficher au-dessus de la bulle
10
+ * @param {{from?: string, origin?: string, auto?: boolean}} msg a `prompt-echo`
11
+ * @returns {string} the label to display above the bubble
12
12
  */
13
13
  export function echoAuthor(msg) {
14
- // La reprise du pace guard ne vient de personne : elle vient du serveur.
14
+ // The pace guard's resume comes from nobody: it comes from the server.
15
15
  if (msg?.auto) return "auto-retry";
16
16
  const from = (msg?.from ?? "").trim();
17
17
  const origin = (msg?.origin ?? "").trim();
18
- // « web » n'apprend rien : un autre onglet du même cockpit. On ne le montre
19
- // que faute de nom, et encore, via la formule générique.
18
+ // "web" teaches nothing: another tab of the same cockpit. We only show it for
19
+ // want of a name, and even then through the generic wording.
20
20
  const place = origin && origin !== "web" ? origin : "";
21
21
  if (from) return place ? `${from} · ${place}` : from;
22
22
  return place || "pilot (elsewhere)";