@zeyos/client 0.1.0 → 0.1.1

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 CHANGED
@@ -3,6 +3,25 @@
3
3
  Notable changes to `@zeyos/client` and `@zeyos/cli`. This project follows
4
4
  [Semantic Versioning](https://semver.org/).
5
5
 
6
+ ## 0.1.1
7
+
8
+ ### `@zeyos/client`
9
+ - `oauth2.buildAuthorizationUrl()` now includes the `scope` parameter when provided (previously dropped).
10
+ - Retry timing hardened: an empty/whitespace `Retry-After` header falls back to exponential backoff instead of retrying instantly, and an already-aborted signal reliably stops a zero-delay retry.
11
+ - `normalizeListResult()` preserves a numeric-string `count` (e.g. `"17"`), matching `normalizeCountResult()`.
12
+
13
+ ### `@zeyos/cli` (`zeyos`)
14
+ - Added `--version` / `-v`.
15
+ - Fixed the `--key=value` argument form, which was previously parsed as an unknown flag and silently ignored (e.g. `--filter='{...}'`).
16
+ - YAML output now quotes ambiguous scalar strings (`true`, `false`, `null`, `yes`/`no`, and numeric-looking strings) so downstream YAML parsers don't re-interpret them.
17
+ - `describe`, `resources`, and `skills` help text now documents the global `--json` / `--yaml` / `--help` options.
18
+ - `skills install` reworked into a multi-agent installer: targets `claude`, `codex`, `opencode`, `droid`, `pi`, and a generic `agents` layout; adds `--global`/`--local` scope, `--dir <path>` for an explicit directory, an interactive agent/scope picker (with a ZeyOS banner) when run bare, `-y`/`--yes` and `--no-logo` to skip prompts/banner, and a `--json`/`--yaml` install summary.
19
+ - `login` now prints the local callback URL before prompting for the application ID/secret, so it can be registered as the OAuth app's redirect URI.
20
+
21
+ ### Docs
22
+ - Rewrote the top-level `README.md` into a full guide with CLI, JavaScript client, login/OAuth, and coding-agent examples.
23
+ - Documentation accuracy fixes: accounts use `lastname` (no `name` field); updates accept the flat `{ ID, ...fields }` form (explicit `body` optional); clarified that the schema's `(required)` marker means `NOT NULL` (most such fields have defaults — `currency` on accounts is the real exception); fixed cross-links and a duplicate tutorial sidebar prefix.
24
+
6
25
  ## 0.1.0 — Initial release
7
26
 
8
27
  ### `@zeyos/client`
package/README.md CHANGED
@@ -202,7 +202,7 @@ zeyos <command> [options] [args…]
202
202
  | `delete <resource> <id>` | Delete a record (`rm`/`remove` aliases) | `zeyos delete ticket 42 --force` |
203
203
  | `resources` | List resource types the CLI exposes | `zeyos resources --json` |
204
204
  | `describe <resource>` | Show a resource's fields, types and enums | `zeyos describe ticket` |
205
- | `skills <list\|show\|install>` | Manage bundled coding-agent skills | `zeyos skills install --target claude` |
205
+ | `skills <list\|show\|install>` | Manage bundled coding-agent skills | `zeyos skills install --target claude --global` |
206
206
 
207
207
  **Global options** (work on every command): `--json`, `--yaml`, `--no-color`, `-h/--help`, `-v/--version`.
208
208
 
@@ -351,11 +351,28 @@ ZeyOS ships **agent skills** — curated instructions and query playbooks that t
351
351
 
352
352
  ```bash
353
353
  zeyos skills list # see what's available
354
- zeyos skills install --target claude # copies skills into .claude/skills/
355
- zeyos skills install zeyos-work-management # or install just one
354
+ zeyos skills install # interactive: pick an agent, then local vs. global
355
+ zeyos skills install --target claude --global # or skip the prompts with flags
356
+ zeyos skills install zeyos-work-management # install just one skill
356
357
  ```
357
358
 
358
- `--target claude` writes to `.claude/skills/`, `--target codex` writes to `.codex/skills/`; with no `--target`, it auto-detects an existing `.claude`/`.codex` directory (defaulting to Claude). Shared reference docs are installed alongside so the skills' cross-links resolve. Point your agent at the install directory.
359
+ Run bare, `install` shows the ZeyOS banner and asks **(a)** which coding agent to target and **(b)** whether to install for this project or globally. Flags skip the prompts:
360
+
361
+ - `--target <agent>` — `claude`, `codex`, `opencode`, `droid`, `pi`, or `agents` (auto-detected when omitted)
362
+ - `--global` / `--local` — install into the agent's home directory or just this project (default `--local`)
363
+ - `--dir <path>` — install into any directory you choose (overrides `--target`)
364
+ - `-y`/`--yes` — skip all prompts and use flags + defaults (also implied when piped non-interactively)
365
+
366
+ | Agent | local | global |
367
+ |-------|-------|--------|
368
+ | `claude` | `.claude/skills/` | `~/.claude/skills/` |
369
+ | `codex` | `.codex/skills/` | `~/.codex/skills/` |
370
+ | `opencode` | `.opencode/skills/` | `~/.config/opencode/skills/` |
371
+ | `droid` | `.factory/skills/` | `~/.factory/skills/` |
372
+ | `pi` | `.pi/skills/` | `~/.pi/agent/skills/` |
373
+ | `agents` | `.agents/skills/` | `~/.agents/skills/` |
374
+
375
+ Shared reference docs are installed alongside so the skills' cross-links resolve. Point your agent at the install directory.
359
376
 
360
377
  Bundled skills:
361
378
 
@@ -65,6 +65,21 @@ The returned `client` object exposes:
65
65
  - **`client.auth`** -- Token management (`getTokenSet`, `setTokenSet`, `clearTokenSet`)
66
66
  - **`client.metadata`** -- Read-only info about the generated client (`generatedAt` timestamp, `services` array)
67
67
 
68
+ Alongside the `createZeyosClient` factory, the package exports a few named helpers and error types you can import directly:
69
+
70
+ ```js
71
+ import {
72
+ createZeyosClient,
73
+ MemoryTokenStore, // in-memory token store (or implement get()/set() yourself)
74
+ ZeyosApiError, // thrown on non-2xx responses
75
+ ZeyosValidationError, // thrown by pre-flight validation (validate: true)
76
+ normalizeListResult, // normalise a list response to { data, count? }
77
+ normalizeCountResult, // normalise a count response to a number
78
+ normalizeTokenSet, // normalise a raw token object to a TokenSet
79
+ tokenResponseToTokenSet, // map an OAuth token response to a TokenSet
80
+ } from '@zeyos/client';
81
+ ```
82
+
68
83
  ## Platform Configuration
69
84
 
70
85
  The `platform` option tells the client where your ZeyOS instance lives. There are three ways to specify it:
@@ -118,11 +118,12 @@ zeyos describe accounts --json
118
118
 
119
119
  ## Install Agent Skills
120
120
 
121
- If you are driving the CLI from a coding agent (Claude, Codex, …), install the bundled ZeyOS skill packs into your project so the agent picks up the right query conventions:
121
+ If you are driving the CLI from a coding agent (Claude Code, Codex, opencode, Factory Droid, pi, …), install the bundled ZeyOS skill packs so the agent picks up the right query conventions:
122
122
 
123
123
  ```bash
124
124
  zeyos skills list # see the available skills
125
- zeyos skills install # copy them into .claude/skills (or .codex)
125
+ zeyos skills install # interactive: pick an agent, then local vs. global
126
+ zeyos skills install --target claude --global # or skip the prompts with flags
126
127
  ```
127
128
 
128
129
  See the [Commands Reference](./02-commands.md#skills) for details.
@@ -370,7 +370,7 @@ Foreign keys are shown as `→ <table>`, and enum fields list their valid values
370
370
 
371
371
  ## skills
372
372
 
373
- Discover and install the bundled ZeyOS agent skill packs into the local project, so a coding agent (Claude, Codex, …) operates against ZeyOS with the right conventions out of the box.
373
+ Discover and install the bundled ZeyOS agent skill packs into any coding agent, so the agent (Claude Code, Codex, opencode, Factory Droid, pi, …) operates against ZeyOS with the right conventions out of the box.
374
374
 
375
375
  ```
376
376
  # List the bundled skills
@@ -379,19 +379,43 @@ zeyos skills list
379
379
  # Print a skill's instructions
380
380
  zeyos skills show zeyos-work-management
381
381
 
382
- # Install all skills (or named ones) into the project
382
+ # Install interactive: pick a coding agent, then local vs. global
383
383
  zeyos skills install
384
- zeyos skills install zeyos-billing-insights --target claude
384
+
385
+ # Install non-interactively with flags
386
+ zeyos skills install --target claude --global # all projects
387
+ zeyos skills install --target opencode --local # this project only
388
+ zeyos skills install zeyos-billing-insights -y # one skill, defaults
389
+ zeyos skills install --dir ./vendor/skills # any directory
385
390
  ```
386
391
 
392
+ Run bare, `install` prints the ZeyOS banner and prompts for **(a)** which coding agent to target and **(b)** whether to install for this project or globally for every project. Pass `--target` and/or `--global`/`--local` to skip the matching prompt; pass `-y`/`--yes` (or pipe non-interactively) to skip all prompts and use flags plus sensible defaults.
393
+
387
394
  Options for `install`:
388
395
 
389
396
  | Option | Description |
390
397
  |--------|-------------|
391
- | `--target claude\|codex` | Where to install (default: auto-detect, fallback `.claude/skills`) |
398
+ | `--target <agent>` | Coding agent: `claude`, `codex`, `opencode`, `droid`, `pi`, `agents` (prompted when omitted; otherwise auto-detected) |
399
+ | `--global` | Install into the agent's home directory (all projects) |
400
+ | `--local` | Install into the current project (default) |
401
+ | `--dir <path>` | Install into an explicit directory (overrides `--target`) |
392
402
  | `--force` | Overwrite existing skill folders |
393
-
394
- Skills are copied into `<target>/skills/<name>/`, with the shared reference files installed alongside (`<target>/skills/shared/`) so the skills' `../shared/…` links resolve.
403
+ | `-y`, `--yes` | Skip prompts and use flags / sensible defaults |
404
+ | `--no-logo` | Don't print the ZeyOS banner |
405
+ | `--json` / `--yaml` | Print a machine-readable install summary (also silences the banner) |
406
+
407
+ Per-agent skill directories:
408
+
409
+ | Agent | `--local` | `--global` |
410
+ |-------|-----------|------------|
411
+ | `claude` | `.claude/skills/` | `~/.claude/skills/` |
412
+ | `codex` | `.codex/skills/` | `~/.codex/skills/` |
413
+ | `opencode` | `.opencode/skills/` | `~/.config/opencode/skills/` |
414
+ | `droid` | `.factory/skills/` | `~/.factory/skills/` |
415
+ | `pi` | `.pi/skills/` | `~/.pi/agent/skills/` |
416
+ | `agents` | `.agents/skills/` | `~/.agents/skills/` |
417
+
418
+ Skills are copied into `<dir>/<name>/`, with the shared reference files installed alongside (`<dir>/shared/`) so the skills' `../shared/…` links resolve.
395
419
 
396
420
  ---
397
421
 
@@ -29,7 +29,8 @@ Before doing real work, install the bundled skill packs so the agent picks up Ze
29
29
 
30
30
  ```bash
31
31
  zeyos skills list # see what's available
32
- zeyos skills install # install all into .claude/skills (or .codex)
32
+ zeyos skills install # interactive: pick an agent (claude, codex, opencode, droid, pi…), then local/global
33
+ zeyos skills install --target claude --global -y # or non-interactively with flags
33
34
  ```
34
35
 
35
36
  This is the recommended entry point for an agent: the skills encode how to resolve names to IDs, which resource to query first, and how to escalate from the CLI to `@zeyos/client`.
package/docs/intro.md CHANGED
@@ -88,7 +88,7 @@ Across the CLI, JavaScript client, and sample applications, the same operational
88
88
 
89
89
  - Prefer `filters` in JavaScript client code for compatibility across scalar and foreign-key fields.
90
90
  - Include `visibility: 0` unless you intentionally want archived or deleted records.
91
- - Use an explicit `body` object for updates that also pass a path parameter such as `ID`.
91
+ - For updates, pass changed fields alongside the `ID` directly (`{ ID, status }`) or wrap them in an explicit `body` object (`{ ID, body: { status } }`) — both work; the explicit `body` is only needed to disambiguate a payload field that collides with a reserved control key.
92
92
  - Treat `extdata` and `expand` as separate features:
93
93
  - `extdata` includes custom fields
94
94
  - `expand` inlines JSON or binary columns
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeyos/client",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Dependency-light JavaScript client for ZeyOS OpenAPI services",
5
5
  "type": "module",
6
6
  "license": "MIT",