@jelou/cli 1.82.0 → 1.84.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.
Files changed (1) hide show
  1. package/package.json +14 -18
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jelou/cli",
3
- "version": "1.82.0",
3
+ "version": "1.84.0",
4
4
  "description": "Build AI agents on the Jelou platform — from your terminal or your AI editor.",
5
5
  "author": "Jelou Inc. (https://jelou.ai)",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -23,11 +23,11 @@
23
23
  "THIRD_PARTY_NOTICES.md"
24
24
  ],
25
25
  "optionalDependencies": {
26
- "@jelou/cli-darwin-arm64": "1.82.0",
27
- "@jelou/cli-darwin-x64": "1.82.0",
28
- "@jelou/cli-linux-x64": "1.82.0",
29
- "@jelou/cli-linux-arm64": "1.82.0",
30
- "@jelou/cli-win32-x64": "1.82.0"
26
+ "@jelou/cli-darwin-arm64": "1.84.0",
27
+ "@jelou/cli-darwin-x64": "1.84.0",
28
+ "@jelou/cli-linux-x64": "1.84.0",
29
+ "@jelou/cli-linux-arm64": "1.84.0",
30
+ "@jelou/cli-win32-x64": "1.84.0"
31
31
  },
32
32
  "keywords": [
33
33
  "jelou",
@@ -58,33 +58,29 @@
58
58
  "jelou": {
59
59
  "minVersion": "1.80.0",
60
60
  "release_notes": {
61
- "version": "1.82.0",
62
- "date": "2026-08-04",
63
- "headline": "`jelou models list` now shows what each model costs, and `push` warns before a step runs on a model that cannot read the images or PDFs it will be sent.",
61
+ "version": "1.84.0",
62
+ "date": "2026-08-06",
63
+ "headline": "Workflows are now validated against the channel they run on a WhatsApp-only step fails the push.",
64
64
  "highlights": [
65
65
  {
66
66
  "type": "new",
67
- "text": "`jelou models list` shows what each model costs. Two new columns (`In $/M`, `Out $/M`), plus `--sort catalog|name|input-cost|output-cost` and `--max-input-cost` / `--max-output-cost` to find the cheapest model that still does what the step needs. Ordering is unchanged unless you ask for it, and models with no published price are always listed last and never removed by a cost filter an unknown price is not evidence of being expensive."
67
+ "text": "`push` and `jelou workflow validate` now check a workflow against the channel it runs on. A WhatsApp-only construct a Flow step or an HSM template — on a web, Instagram or Telegram workflow is an error that blocks the push, instead of publishing cleanly and arriving as a node Studio paints red. Studio product choices, such as web chat not rendering a list, come through as warnings that do not block. Channel types the platform has no restrictions for are skipped entirely, so nothing is penalised for rules that do not apply to it. `validate` reads the channel from the workflow's filename, `push` from the lockfile entry."
68
68
  },
69
69
  {
70
70
  "type": "new",
71
- "text": "`push` now warns when a step is set up to receive images or PDFs but the model it runs cannot read them, naming the node and the model. The cheapest models are often text-only, and that pairing used to publish cleanly and then quietly stop answering those messages. It is a warning, not a block. Where the catalog does not say whether a model supports an input, you get a distinct \"unknown confirm before relying on it\" warning rather than silence."
71
+ "text": "`jelou channels flows <botId>` refuses with `WHATSAPP_NUMBER_REQUIRED` (exit 4) when the bot has no WhatsApp channel connected, naming the channel as the blocker. An empty Flows list used to look identical to a missing channel, so a Flow step could be authored with an invented body on a project that had no WhatsApp at all. If the channels lookup itself fails the command still proceeds to the Flows listing, so an outage cannot invent a blocker."
72
72
  },
73
73
  {
74
74
  "type": "fixed",
75
- "text": "`push` no longer reports `POST_PUSH_DIVERGENCE` for a contacts card. The server mints its own ids for the phone, email, address and URL rows, and a push that had written correctly compared them against your id-less local file, called it a divergence, and withheld the lockfile refresh leaving you re-pushing a workflow that was already saved. Real content changes, like an edited phone number, are still detected."
75
+ "text": "`pull` writes a workflow's own name and description into the file. Both live on the skill, not the workflow, so a pulled file never expressed them the router gate then warned the description was empty, an agent hand-wrote one to satisfy it, and because the server-compare form could not see that text every subsequent `push` emitted a phantom skill patch and the entry never reconciled. That is the \"node deletion does not persist\" report: permanent `local_only` drift and a divergence warning on a push that had actually succeeded. Both sides of the comparison now agree, an empty name is treated as unexpressed rather than as an instruction to blank it in production, and files pulled by an older CLI are still recognised."
76
76
  },
77
77
  {
78
78
  "type": "fixed",
79
- "text": "Workflows that read or write Datum records now install correctly in another company. The credential examples taught an arbitrary secret name, and a template install only rewrites a Datum credential when the name starts with `DATUM_APIKEY` so installs stopped on a Credentials Required card asking for a token the installing user could not get. The examples now require `DATUM_APIKEY_<SLUG_UPPER>`, derived from the database slug."
79
+ "text": "The workflow build and test skills no longer show you their internal wording helper's failures. A summary turn could end with \"The wording helper timed out; per its contract I'll apply the voice rules directly\"the helper's documentation had literally told the agent to surface that. The reply is now the finished prose and nothing else. Its budgets were also cut so the deterministic fallback always wins: worst case drops from about 42s to 12s."
80
80
  },
81
81
  {
82
82
  "type": "fixed",
83
- "text": "`jelou models list --capability <bogus>` exited 1 while `--describe` advertised 2. Both it and the new `--sort` now exit 2 with `INPUT_ERROR`."
84
- },
85
- {
86
- "type": "fixed",
87
- "text": "`--describe` no longer publishes a hardcoded provider list for `models list --provider`. Providers are server-side data and the list had gone stale, so an agent reading it would treat valid providers as invalid."
83
+ "text": "`jelou channels list --type <type>` filters on the server. The type was applied only to the page already fetched, so a filtered list could come back short — or empty — while matching channels sat on later pages, and the reported totals described the unfiltered set. `--type Web` maps to the upstream `Widget` spelling."
88
84
  }
89
85
  ]
90
86
  }