omp-fabric 1.22.0 → 1.22.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 +8 -0
- package/README.md +2 -2
- package/docs/judgment.md +7 -1
- package/package.json +1 -1
- package/skills/fabric-exec/SKILL.md +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.22.1
|
|
4
|
+
|
|
5
|
+
### Documentation
|
|
6
|
+
|
|
7
|
+
- Document `judgment.ask`, `judgment.stats`, and `judge.*` ergonomic helpers (`bool`, `choice`, `score`, `filter`, `classify`) in the `fabric-exec` model-facing skill.
|
|
8
|
+
- Document dual-bounded batch chunking (at most 25 items and 48 KiB) and `onFail: "keep-all"` fail-open data retention in `docs/judgment.md`.
|
|
9
|
+
- Update `README.md` capability overview and examples with batch semantic triage guidance.
|
|
10
|
+
|
|
3
11
|
## 1.22.0
|
|
4
12
|
|
|
5
13
|
### Added
|
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ Fabric gives OMP one programmable tool called `fabric_exec`, which composes core
|
|
|
34
34
|
| 🧰 | **Capability routing** | Call OMP core tools, MCP servers, captured extension tools, or Fabric providers through one runtime. |
|
|
35
35
|
| 🧑🤝🧑 | **Agent runtime** | One-shot workers, durable resident agents, persistent event-driven actors, councils, and bounded recursive queries. |
|
|
36
36
|
| 🕸️ | **Workflows + mesh** | Phased progress plus durable topics, shared tasks, and compare-and-swap state. |
|
|
37
|
-
| ⚖️ | **Typed judgment** | Calibrated choice, bool, and score answers about one state,
|
|
37
|
+
| ⚖️ | **Typed judgment** | Calibrated choice, bool, and score answers about one state, ergonomic guest helpers for batch semantic triage, and four optional gates. |
|
|
38
38
|
| 🛡️ | **Guardrails** | Approvals, isolation, timeouts, concurrency, recursion depth, and shared cost budgets. |
|
|
39
39
|
| 🎛️ | **Native TUI** | Live activity, an interactive dashboard, and settings without leaving OMP. |
|
|
40
40
|
|
|
@@ -58,7 +58,7 @@ return {
|
|
|
58
58
|
};
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
Independent calls run in parallel, and the returned object enters the model context. Known providers support concise direct calls such as `mcp.fal_ai.get_model_schema(...)`, `memory.recall(...)`, `state.get()`, `schema.status()`, `compact.status()`, and `judgment.ask(...)
|
|
61
|
+
Independent calls run in parallel, and the returned object enters the model context. Known providers support concise direct calls such as `mcp.fal_ai.get_model_schema(...)`, `memory.recall(...)`, `state.get()`, `schema.status()`, `compact.status()`, and `judgment.ask(...)`, alongside `judge.filter(...)` for batch evaluation. Refs found or computed at runtime use `tools.call({ ref, args })`.
|
|
62
62
|
|
|
63
63
|
## Install
|
|
64
64
|
|
package/docs/judgment.md
CHANGED
|
@@ -97,6 +97,12 @@ Guest programs and batch scripts access the lane through `globalThis.judge`.
|
|
|
97
97
|
- `judge.bool(state, instructions, options?)`: returns the probability of yes as a number, or the configured fallback when the backend fails.
|
|
98
98
|
- `judge.choice(state, options, instructions, config?)`: returns the chosen label string from an array or criteria map.
|
|
99
99
|
- `judge.score(state, criteria, instructions, config?)`: returns the score index from ordered levels.
|
|
100
|
-
- `judge.filter(items, instructions, options?)`: evaluates an array in bounded chunks
|
|
100
|
+
- `judge.filter(items, instructions, options?)`: evaluates an array in bounded chunks. When a request fails, it preserves all chunk items under `onFail: "keep-all"`.
|
|
101
101
|
- `judge.classify(items, categories, instructions, options?)`: assigns a category to each item across bounded chunks.
|
|
102
102
|
- `judge.ask(state, questions)`: direct access for custom question maps.
|
|
103
|
+
|
|
104
|
+
### Batch chunking and fail-open policy
|
|
105
|
+
|
|
106
|
+
Batch helpers group items with two limits: at most 25 items and at most 48 KiB JSON payload per request. Items larger than 40 KiB are bounded in the evaluation state payload with a truncation notice, while the original item instances remain intact in returned collections.
|
|
107
|
+
|
|
108
|
+
When a backend request fails or times out, `judge.filter` and `judge.classify` default to `onFail: "keep-all"`, returning all candidate items so failures do not discard data. Callers can also choose `onFail: "empty"` or `onFail: "throw"`.
|
package/package.json
CHANGED
|
@@ -84,6 +84,8 @@ All calls return promises. Fields ending in `?` are optional; `unknown` marks pr
|
|
|
84
84
|
| `compact.request(args?)` | `{requested:true,intent:{reason?,instructions?,preserve?,requestedBy,requestedAt}}` |
|
|
85
85
|
| `compact.status()` | `{pending?:CompactIntent,last?:{at,requestedBy,status,summary?,tokensBefore?,estimatedTokensAfter?,error?}}` |
|
|
86
86
|
| `compact.cancel()` | `{cancelled:true}` |
|
|
87
|
+
| `judgment.ask(args)` | `{ok:true,backend,answers:Record<string,Answer>}|{ok:false,reason,detail?}` |
|
|
88
|
+
| `judgment.stats()` | `{enabled,requests,batched,questions,merged,failures,refusals,timeouts,lastBackend?,lastError?}` |
|
|
87
89
|
|
|
88
90
|
`memory.recall` multi-term literal queries default to ranked `queryMatch: "any"` so wording differences do not hide evidence; use `"all"` to require every canonical term in one indexed entry, and `queryMode: "phrase"` when adjacency matters. Results are hard-bounded either way. Structural filters (`ref`, `provider`, `action`, `outcome`) use exact persisted trace fields. Use `tools.catalog()`/`tools.search()` only to choose a current action head—catalog descriptions are navigation metadata and never become session evidence.
|
|
89
91
|
|
|
@@ -93,6 +95,8 @@ Recall returns one bounded flat hit stream. Every hit has the same copy-ready `{
|
|
|
93
95
|
|
|
94
96
|
Stable-provider arguments normalize near-miss spellings the way `omp.*` does: known aliases and casing/singular variants repair to the canonical key, numeric strings coerce for numeric fields, and scope spellings such as `cwd` repair to `project`. Unknown keys are never silently ignored—they fail validation with the offending property path named (e.g. `/befroe: must NOT have additional properties`).
|
|
95
97
|
|
|
98
|
+
`judge.*` exposes ergonomic guest helpers over the judgment lane. `judge.bool(state, instructions, {fallback?})` returns probability of yes (`0..1`) or a fallback number. `judge.choice(state, options, instructions, {fallback?})` evaluates a choice label. `judge.score(state, criteria, instructions, {fallback?})` evaluates an ordered level index. `judge.filter(items, instructions, {threshold?,onFail?,maxItems?,maxBytes?})` and `judge.classify(items, categories, instructions, {onFail?,fallbackCategory?,maxItems?,maxBytes?})` evaluate collections with dual-bounded chunking (<=25 items, <=48 KiB) and fail-open preservation (`onFail: "keep-all"`). `judge.ask(state, questions)` provides direct access for custom question maps.
|
|
99
|
+
|
|
96
100
|
`SessionInfo` is `{id,file,cwd,mtime,entryCount,tier:"hot"|"cold",branches,lineageFingerprint}`. Memory failures are returned in `error: {code,message,...}`; ambiguous-session failures may return only `{error}`. Check `error` before relying on optional success fields.
|
|
97
101
|
|
|
98
102
|
### Dynamic provider return shapes
|