@openengio/cli 0.33.0 → 0.36.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 +40 -1
- package/bin/public/openeng.js +943 -143
- package/package.json +1 -1
- package/skill/conventions/SKILL.md +20 -1
- package/skill/openeng/SKILL.md +43 -1
package/package.json
CHANGED
|
@@ -186,8 +186,12 @@ An enum's `members` is a list of strings or finite numbers. A published member c
|
|
|
186
186
|
|
|
187
187
|
### number
|
|
188
188
|
|
|
189
|
+
A number or integer may declare a unit under schema language version `4`. The value is still
|
|
190
|
+
a number, displayed with that unit. Publication refuses unknown symbols (`unknown-unit`), and
|
|
191
|
+
a later version may add a unit but cannot change or remove it (`changed-unit`).
|
|
192
|
+
|
|
189
193
|
```json
|
|
190
|
-
{"kind": "number"}
|
|
194
|
+
{"kind": "number", "unit": "kg"}
|
|
191
195
|
```
|
|
192
196
|
|
|
193
197
|
### integer
|
|
@@ -251,6 +255,21 @@ one property's bytes.
|
|
|
251
255
|
}
|
|
252
256
|
```
|
|
253
257
|
|
|
258
|
+
### bound
|
|
259
|
+
|
|
260
|
+
A quantitative constraint on a top-level object property, or an entry in a top-level array of
|
|
261
|
+
bounds, under schema language version `4`. A value such as
|
|
262
|
+
`{"over":"each","quantity":"mass","comparison":"<=","value":100,"unit":"kg"}` compares
|
|
263
|
+
each linked object's mass against 100 kg. `sum`, `min`, `max` and `count` aggregate the linked
|
|
264
|
+
values. A limit may instead be `{ "property": "allocation" }`, read from this object's own
|
|
265
|
+
numeric property. `within` requires a non-negative `tolerance`; other comparisons take none.
|
|
266
|
+
Compatible units are converted for comparison; incompatible units answer `unit-mismatch`.
|
|
267
|
+
Bounds answer independently of review: clearing a suspect link does not make an `out` bound `in`.
|
|
268
|
+
|
|
269
|
+
```json
|
|
270
|
+
{"kind": "bound"}
|
|
271
|
+
```
|
|
272
|
+
|
|
254
273
|
## 9. Examples
|
|
255
274
|
|
|
256
275
|
These are small type documents to adapt and validate in a change set before accepting it.
|
package/skill/openeng/SKILL.md
CHANGED
|
@@ -54,6 +54,44 @@ attachment properties, and `openeng attachment get <object> <property> [--out <p
|
|
|
54
54
|
project and ref flags to download it. The `get` command uses the descriptor's file name when `--out`
|
|
55
55
|
is omitted. The accepted classes and file-size limit are in `openeng skill conventions`.
|
|
56
56
|
|
|
57
|
+
## Link review and impact
|
|
58
|
+
|
|
59
|
+
Read `openeng links status <object> --project <id> --ref <ref>` before reviewing a tracked
|
|
60
|
+
link. Review states are `cleared` (reviewed against the current upstream), `suspect` (significant
|
|
61
|
+
upstream content changed), `unreviewed` (never cleared), `not-visible` (the upstream cannot be
|
|
62
|
+
read) and `too-many-links` (the chain exceeds its bound). Bounds have their own states: `in`,
|
|
63
|
+
`out`, `none`, `no-value`, `unit-mismatch` and `not-visible`; clearing does not change them.
|
|
64
|
+
Aggregates also show coverage and hidden or missing counts. Numeric output shows its unit.
|
|
65
|
+
|
|
66
|
+
After reviewing the upstream, run `openeng links clear <link> --version <upstreamVersion>
|
|
67
|
+
--project <id> --ref <ref>`. Take the opaque version from the status answer. For an atomic batch,
|
|
68
|
+
list up to 100 link ids and repeat `--version` once per link in the same order. On
|
|
69
|
+
`upstream-changed`, read status and review before sending its new version; do not replace the
|
|
70
|
+
precondition blindly. `upstream-not-readable` requires upstream read access. There is no
|
|
71
|
+
organisation clearing setting: the edge's write rule decides who may clear. User, run-apply,
|
|
72
|
+
client and service tokens are admitted; run-explore and run-types are refused at admission.
|
|
73
|
+
The object agent has no clearing tool; clear through this CLI or the SDK. Recover an unknown
|
|
74
|
+
outcome by correlation before retrying.
|
|
75
|
+
|
|
76
|
+
Use `openeng branches impact <ref> --base <base> --project <id>` to review changes against
|
|
77
|
+
the merge base: review, bounds and aggregate changes, downstream reach to depth three and
|
|
78
|
+
hidden counts. Added and removed links are marked. `head-moved` requires reading again;
|
|
79
|
+
`over-bound` refuses the entire read. Add `--json` for each complete answer.
|
|
80
|
+
|
|
81
|
+
## Hosted apps
|
|
82
|
+
|
|
83
|
+
A hosted app is a React bundle that runs inside a project, in a sandbox, with the viewer's authority.
|
|
84
|
+
Export a component that takes `{ client }` and start it by calling the runtime's
|
|
85
|
+
`globalThis.__oe2HostedApp.mount(App)` as the bundle's last statement (the `@openengio/hosted-app`
|
|
86
|
+
package that wraps this call is not published yet). Publish the built bundle with
|
|
87
|
+
`openeng hosted-app publish <bundle> --project <id> --key <app key>`; it creates the app when the
|
|
88
|
+
project has none under that key, and prints the version and its SHA-256. If the app holds the
|
|
89
|
+
one-wall permission, the output also carries a warning: read it to the person and do not hide it.
|
|
90
|
+
`openeng hosted-app list --project <id>` lists the apps, `openeng hosted-app versions <app key>
|
|
91
|
+
--project <id>` lists an app's versions, and `openeng hosted-app revoke <app key | app id | version id>
|
|
92
|
+
--project <id>` revokes a version (an id starting `hav_`) or the whole app by its key or `app_` id. Revoke only when the
|
|
93
|
+
person asks. Hosted apps run only in Google Chrome.
|
|
94
|
+
|
|
57
95
|
## Rules that hold for every command
|
|
58
96
|
|
|
59
97
|
- Add `--json` when you read the answer yourself. It prints one JSON value on standard output.
|
|
@@ -160,7 +198,10 @@ to understand each part, then design the model with the person before you draft
|
|
|
160
198
|
`openeng types list`.
|
|
161
199
|
|
|
162
200
|
Property kinds are `null`, `boolean`, `string`, `number`, `integer`, `person`, `enum`, `array`,
|
|
163
|
-
`object`, `datetime` and `
|
|
201
|
+
`object`, `datetime`, `attachment` and `bound`. Under language version `4`, numeric properties may
|
|
202
|
+
declare a `unit`, such as `kg`; publication refuses an unknown symbol (`unknown-unit`) or a later
|
|
203
|
+
change or removal (`changed-unit`). A `bound` is a top-level object property, or a top-level array
|
|
204
|
+
of bounds, under version `4`. See `openeng skill conventions` for its shape. Use `datetime` for an instant. A value is an RFC 3339 date-time
|
|
164
205
|
with an explicit offset and zero to three fraction digits, such as `2026-10-19T22:30:00+01:00` or
|
|
165
206
|
`2026-10-19T21:30:00Z`; a value with no offset, an impossible date or time, or four or more fraction
|
|
166
207
|
digits is refused. The platform stores it as `YYYY-MM-DDTHH:MM:SS.sssZ`, the same instant in UTC.
|
|
@@ -365,6 +406,7 @@ using the type key from the object read. Explore also reads its selected object
|
|
|
365
406
|
2. Query the objects you need with `openeng objects-sdk queryObjects --json`. Keep each object's
|
|
366
407
|
project with its identifier; one set may contain objects of several projects in your organisation.
|
|
367
408
|
To combine two selections on the same ref, send `{ "kind": "set", "op": "difference", "left": { "kind": "objects", "typeKey": "..." }, "right": { "kind": "objects", "typeKey": "..." }, "limit": 100, "continuation": null }`. `op` may be `union`, `intersection` or `difference`. Each operand may have its own `projects`, `filters` and `steps`; operands cannot be nested set operations.
|
|
409
|
+
To select several object types in one paged query, use `typeKey: null` with a top-level `{ "kind": "type", "op": "in", "values": ["part", "system"] }` filter. The list holds 1 to 100 published type keys; combine it with a text filter to search those types. Follow the returned continuation without changing the selection.
|
|
368
410
|
`aggregateObjects` also accepts `operation: "average"` with one numeric `property`; the result includes its mean and the count averaged, and omits the mean when that count is zero.
|
|
369
411
|
3. Call `openeng objects-sdk createObjectSet` with a name and the selected addresses, following its
|
|
370
412
|
help. Keep the returned set identifier and revision. Retrying with the same idempotency key
|