octwin-cli 0.1.13 → 0.1.15
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 +58 -0
- package/README.md +29 -0
- package/dist/index.js +779 -104
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,64 @@ Format: [Keep a Changelog](https://keepachangelog.com/) — newest first, bucket
|
|
|
5
5
|
**Added · Changed · Deprecated · Removed · Fixed · Security**. The platform-wide view lives in the
|
|
6
6
|
repo root [`CHANGELOG.md`](../../CHANGELOG.md); this file is the CLI-only cut that ships with the package.
|
|
7
7
|
|
|
8
|
+
## [0.1.15] - 2026-07-25
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **`octwin agents [packId::agentId] [--prompt]` — see what your agent actually runs as.** The platform
|
|
12
|
+
gained *governed* agent settings: an operator platform default can override the `default_model`
|
|
13
|
+
(and history window / working-memory toggle) your manifest declares, and that override is invisible
|
|
14
|
+
from the pack source. The command prints each governed setting's **effective** value, **which layer
|
|
15
|
+
won** (project override → platform default → pack manifest), and warns explicitly when your pack's
|
|
16
|
+
declared value is *not* in force. `--prompt` prints the exact system prompt the LLM sees for this
|
|
17
|
+
project (pack instructions + platform protocol + any project overlay).
|
|
18
|
+
- **`octwin orders [reference_id]` — the commerce a conversation produced.** The list (number,
|
|
19
|
+
status/payment, total, contact) or one order with its line items, the
|
|
20
|
+
subtotal/tax/shipping/discount/total breakdown, `payment_ref`, and the allowed transitions. On a
|
|
21
|
+
`pending`/`none` payment it explains *why that's expected*: the forward payment lifecycle is
|
|
22
|
+
**webhook-owned** (not patchable), and the default gateway-less `manual` driver makes
|
|
23
|
+
`payment_request` take its `empty` port — so the flow should confirm pay-on-delivery, not error.
|
|
24
|
+
- **`octwin analytics [entity]` — stage conversion for any pipelined entity.** The funnel engine that
|
|
25
|
+
powered journeys is now generic, so any entity declared with a `pipeline:` charts conversion +
|
|
26
|
+
drop-off (`--overview` / `--milestones` / `--trends` / `--cost`, and `--stage <id>` for the records
|
|
27
|
+
currently at a stage). An empty result names **both** causes the platform folds into one response —
|
|
28
|
+
no `pipeline:`, or no `view` grant on `record.<entity>`.
|
|
29
|
+
- **`octwin catalog [--readiness]`** — commerce products with price, availability and stock
|
|
30
|
+
(`untracked` when the SKU isn't inventory-tracked), plus the WhatsApp catalog binding.
|
|
31
|
+
`--readiness` runs the Meta Graph checklist with each failing item's suggested fix.
|
|
32
|
+
- **`octwin scheduling [--slots <resourceRecordId>]`** — the engine state (bookable resource types,
|
|
33
|
+
upcoming slots, booked seats) or the computed slots for one resource. This is how you verify the
|
|
34
|
+
availability rules a `deploy --seed` created, which 0.1.14 could create but not read back.
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
- **Auth failures now name the scope the command needs.** Every 401/403 appends the required scope
|
|
38
|
+
(and the plan feature, where the route is entitlement-gated) from one client-side mirror of the
|
|
39
|
+
platform's scope registry — replacing the per-command hardcoded strings, several of which named no
|
|
40
|
+
scope at all. It also spells out that `pack:deploy` / `media:generate` are direct-grant only, so a
|
|
41
|
+
`tenant:admin` preset token does **not** confer them (the most common "but my token is admin" dead end).
|
|
42
|
+
|
|
43
|
+
## [0.1.14] - 2026-07-23
|
|
44
|
+
|
|
45
|
+
### Fixed
|
|
46
|
+
- **A failed demo seed no longer reports a clean `✓`.** `deploy` softens non-fatal
|
|
47
|
+
install steps (e.g. a demo-seed row) to warning frames, but the summary still printed
|
|
48
|
+
`✓ Deployed` and exited 0 — so a deploy that seeded ZERO records read as success (the
|
|
49
|
+
false-✓ trap). `deploy` now collects those step errors, prints `⚠ Deployed with N
|
|
50
|
+
warning(s) — data may be incomplete` with each message, and exits non-zero so CI /
|
|
51
|
+
a `deploy && chat` chain catches it.
|
|
52
|
+
|
|
53
|
+
### Added
|
|
54
|
+
- **`login` echoes what the token reaches.** After saving, `octwin login` calls
|
|
55
|
+
`/api/self/t/whoami` and prints the workspace, project pin, and scopes — so a fresh
|
|
56
|
+
token self-identifies without a second `octwin whoami` (best-effort; a network failure
|
|
57
|
+
never fails the save).
|
|
58
|
+
- **`validate --remote` surfaces warnings + the data-store trap.** The remote validate now
|
|
59
|
+
renders advisory `⚠` warnings (which don't block deploy) and, for a pack declaring
|
|
60
|
+
`required_adapters: [data-store]`, reports the missing-data-store error the deploy would
|
|
61
|
+
have 409'd on — plus a warning that an `xrm.yaml` pack usually shouldn't declare that
|
|
62
|
+
adapter at all. It also now catches (offline) a list-form `entities:` block and a
|
|
63
|
+
`localized: true` field seeded with a bare string — traps that previously surfaced only
|
|
64
|
+
mid-seed at deploy.
|
|
65
|
+
|
|
8
66
|
## [0.1.13] - 2026-07-22
|
|
9
67
|
|
|
10
68
|
### Added
|
package/README.md
CHANGED
|
@@ -70,6 +70,11 @@ octwin status # "✓ live and current" once it's warm
|
|
|
70
70
|
| `octwin logs` | List recent conversations (handle, status, last activity; `--as` filters), or show one conversation's full event timeline — including what each turn rendered. `--json` for raw payloads. |
|
|
71
71
|
| `octwin records` | Inspect the pack's XRM data (needs a `records:read` token). No args = list entities. |
|
|
72
72
|
| `octwin cases` | Inspect casework (support tickets): the inbox, one case + its timeline and decisions, or `--queues` for queue keys + open counts. |
|
|
73
|
+
| `octwin agents` | The agent roster with each agent's **effective** model / history window and **which layer set it** (project override → platform default → pack manifest) — an operator platform default can override what your manifest declares. `--prompt` prints the exact system prompt the LLM sees. Needs `agents:read`. |
|
|
74
|
+
| `octwin orders` | The orders a conversation produced. No args = the list; with a `reference_id` = line items, the subtotal/tax/shipping/discount/total breakdown, `payment_ref`, and the allowed transitions. Needs `orders:read` + the `orders` plan feature. |
|
|
75
|
+
| `octwin analytics` | Stage-by-stage conversion for **any** entity declared with a `pipeline:` (`--overview` / `--milestones` / `--trends` / `--cost`; `--stage <id>` lists the records currently at a stage). Needs `records:read`. |
|
|
76
|
+
| `octwin catalog` | Commerce products with price / availability / stock, plus the WhatsApp catalog binding. `--readiness` runs the Meta Graph checklist. Needs `catalog:read` + the `catalog` plan feature. |
|
|
77
|
+
| `octwin scheduling` | The scheduling engine's state, or `--slots <resourceRecordId>` for the slots one bookable resource actually computes — how you verify the availability rules `deploy --seed` created. Needs `scheduling:read`. |
|
|
73
78
|
| `octwin platform-kb pull` | Pull the platform's capability reference (built-ins, primitives, render intents, flow-DSL — as markdown + JSON) into `.octwin/platform-kb/`, for the **`octwin-pack`** Claude Code authoring plugin to consult. |
|
|
74
79
|
| `octwin test` | Alias for `octwin validate --remote` — the platform's full manifest + flow-DSL check. |
|
|
75
80
|
| `octwin help` | Show usage. Every subcommand also answers `--help`. |
|
|
@@ -90,6 +95,30 @@ octwin logs --as tester1 # find the conversation, then:
|
|
|
90
95
|
octwin logs <conversationId> # the full timeline (taps, renders, tool events)
|
|
91
96
|
```
|
|
92
97
|
|
|
98
|
+
### Reading back the state your pack created
|
|
99
|
+
|
|
100
|
+
`chat`/`logs` show what the bot *said*; these show what it *did*. A 401/403 on any of them names the
|
|
101
|
+
token scope (and plan feature) that command needs, so you can mint a wider token instead of guessing.
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
octwin agents # effective model per agent + which layer set it
|
|
105
|
+
octwin agents my-pack::assistant --prompt # the exact system prompt the LLM sees
|
|
106
|
+
octwin orders # then: octwin orders <reference_id>
|
|
107
|
+
octwin analytics # then: octwin analytics <entity> [--stage <id>]
|
|
108
|
+
octwin catalog # products + stock + the WhatsApp binding
|
|
109
|
+
octwin scheduling --slots <resourceRecordId> # the slots your availability rules compute
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Three things worth knowing when you read the output:
|
|
113
|
+
|
|
114
|
+
- **A `pending` payment is usually correct.** The forward payment lifecycle is **webhook-owned**, and a
|
|
115
|
+
workspace with no gateway runs the credential-free `manual` driver — so `payment_request` takes its
|
|
116
|
+
`empty` port and your flow should confirm pay-on-delivery. `octwin orders <ref>` says this inline.
|
|
117
|
+
- **Your declared model may not be the one running.** An operator platform default overrides the pack
|
|
118
|
+
manifest; `octwin agents` is where that becomes visible.
|
|
119
|
+
- **An empty funnel has two causes** — the entity has no `pipeline:`, or your token's role has no `view`
|
|
120
|
+
grant on `record.<entity>`. The command prints both rather than a bare "no data".
|
|
121
|
+
|
|
93
122
|
## Configuration
|
|
94
123
|
|
|
95
124
|
The deploy target has four settings. Three live in a committed **`pack.json`** at the root of your
|