@praxisui/core 10.0.0-rc.25 → 10.0.0-rc.27
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 +45 -3
- package/ai/component-registry.json +2 -2
- package/fesm2022/praxisui-core.mjs +753 -65
- package/package.json +1 -1
- package/types/praxisui-core-schema.d.ts +11 -1
- package/types/praxisui-core.d.ts +132 -5
package/README.md
CHANGED
|
@@ -57,9 +57,10 @@ const preview = await firstValueFrom(bulkClient.readProposalResults(contract, pr
|
|
|
57
57
|
await session.confirm(idempotencyKeyForThisIntent);
|
|
58
58
|
// On an uncertain HTTP failure, retain this session and retry with the same key.
|
|
59
59
|
// The host schedules further authorized readbacks for an accepted nonterminal execution.
|
|
60
|
-
|
|
60
|
+
const reads = new AbortController(); // This view owns GET lifetime, not confirmation custody.
|
|
61
|
+
if (!session.isTerminal()) await session.refreshExecution(reads.signal);
|
|
61
62
|
if (session.isTerminal()) {
|
|
62
|
-
const results = await session.readResults();
|
|
63
|
+
const results = await session.readResults(200, undefined, reads.signal);
|
|
63
64
|
}
|
|
64
65
|
```
|
|
65
66
|
|
|
@@ -69,6 +70,24 @@ the descriptor. The caller controls when to read status again and presents each
|
|
|
69
70
|
authorized page of results. This example is a service integration sketch, not a
|
|
70
71
|
ready visual workflow or a deployment claim.
|
|
71
72
|
|
|
73
|
+
`refreshExecution(signal?)` and `readResults(size?, after?, signal?)` retain their
|
|
74
|
+
Promise API and optionally accept a standard `AbortSignal`. An already aborted
|
|
75
|
+
signal dispatches no GET; abort unsubscribes the actual HTTP request, releases the
|
|
76
|
+
read slot, and prevents a late Promise continuation from updating the session.
|
|
77
|
+
Abort listeners are removed on success, failure and cancellation. A cancelled GET
|
|
78
|
+
keeps the original proposal, confirmation key and accepted execution; it does not
|
|
79
|
+
mark that execution terminal or prove rollback. A new authorized read may observe
|
|
80
|
+
the same execution. Overlapping execution refreshes remain rejected, while an
|
|
81
|
+
aborted generation cannot release the slot of its successor.
|
|
82
|
+
|
|
83
|
+
The caller owns GET cancellation and its observation budget; the Core session does
|
|
84
|
+
not invent a global read timeout. Use a fresh read lifetime for a fresh consultation
|
|
85
|
+
and abort reads when the owning view closes. Do not race a Promise with a timer:
|
|
86
|
+
connect the signal to the read itself so the HTTP subscription is torn down.
|
|
87
|
+
`evaluate` and `confirm` do not accept this signal: a dispatched POST and its original
|
|
88
|
+
key stay in intent custody across view teardown. GET failure/cancellation must never
|
|
89
|
+
start a new evaluation or confirmation automatically.
|
|
90
|
+
|
|
72
91
|
The backend is the authority on proposal expiry. A client clock hint must not
|
|
73
92
|
block a same-key replay after an uncertain confirmation; the backend may return
|
|
74
93
|
409 or 410 and the host must explain that state without inventing a new intent.
|
|
@@ -87,6 +106,27 @@ surface does not advertise them. Query selection, ASYNC jobs and ATOMIC mode are
|
|
|
87
106
|
outside this Angular slice. This is not a claim that the reference host or full
|
|
88
107
|
backend B7 acceptance is complete.
|
|
89
108
|
|
|
109
|
+
## Published asynchronous execution tracking
|
|
110
|
+
|
|
111
|
+
`PraxisBulkClientService.waitForExecution` is separate from the BASIC client
|
|
112
|
+
above. Use its published execution operation only when that operation actually
|
|
113
|
+
supports the asynchronous profile; an enum member does not enable a backend
|
|
114
|
+
profile. The Observable emits one canonical terminal snapshot, preserving
|
|
115
|
+
`COMPLETED`, `COMPLETED_WITH_ERRORS`, `CANCELLED`, `STOPPED` and
|
|
116
|
+
`RECONCILIATION_REQUIRED`. `CANCEL_REQUESTED` remains pending.
|
|
117
|
+
|
|
118
|
+
Each subscription starts its own strict overall deadline. At most one GET is in
|
|
119
|
+
flight: interval ticks do not abort a useful slow read or queue overlapping reads.
|
|
120
|
+
Pending responses do not renew the deadline, which also bounds a GET that never
|
|
121
|
+
responds. Terminal completion, transport error, deadline and unsubscribe release
|
|
122
|
+
the active read and polling timers; a late response cannot revive an expired
|
|
123
|
+
subscription. Stopping a GET does not reverse server effects or cancel a POST.
|
|
124
|
+
|
|
125
|
+
A read failure means the outcome is unknown. Explicitly resume reads for the same
|
|
126
|
+
execution and preserve the original proposal and confirmation key; do not confirm
|
|
127
|
+
or evaluate again to restore progress. This transport does not provide custody
|
|
128
|
+
across closing/reopening a dialog, reload recovery or operational ASYNC acceptance.
|
|
129
|
+
|
|
90
130
|
## Governed color palettes
|
|
91
131
|
|
|
92
132
|
`materializeGovernedPaletteEntries(palette, purposes)` returns `MaterializedGovernedColorToken[]`, pairing each original `entry` with its resolved `color`. It preserves distinct token IDs even when CSS references/colors match, applies purpose filtering, and resolves fallback dependencies against the complete palette. Use this projection for identified swatches; do not zip color arrays to entries or infer identity from color equality. `materializeGovernedPaletteColors` remains the string-only projection of the same resolver.
|
|
@@ -831,7 +871,9 @@ Action-bearing components must use the semantic `--praxis-action-control-*` vari
|
|
|
831
871
|
|
|
832
872
|
### Catálogo no quick connect e isolamento do editor de página
|
|
833
873
|
|
|
834
|
-
`ResourceQuickConnectComponent` apresenta recursos publicados em `/schemas/catalog` usando o seletor `pdx-material-select` registrado em `ComponentMetadataRegistry`. O host deve registrar os descritores oficiais de DynamicFields. O controle é inicializado pelo protocolo `setInputMetadata` e ControlValueAccessor
|
|
874
|
+
`ResourceQuickConnectComponent` apresenta recursos publicados em `/schemas/catalog` usando o seletor `pdx-material-select` registrado em `ComponentMetadataRegistry`. O host deve registrar os descritores oficiais de DynamicFields. O controle é inicializado pelo protocolo `setInputMetadata` e `ControlValueAccessor`; Core não importa a biblioteca de campos. A conexão avançada por rota continua disponível (com `<datalist>` de sugestões do catálogo e abertura automática da seção avançada quando o seletor dinâmico não está disponível ou quando o recurso atual é uma rota customizada fora do catálogo).
|
|
875
|
+
|
|
876
|
+
O componente expõe `[resourcePath]`, `(resourcePathChange)`, `[endpointKey]`, `[apiUrlEntry]`, `ControlValueAccessor` (`ngModel` / `formControl`) e os hooks `reset()` / `acceptAppliedValue()` de `SettingsValueProvider`. A projeção e reconciliação de opções do catálogo são centralizadas em `ResourceDiscoveryService.getDiscoveredResources()`, `loadDiscoveredResources()`, `projectSchemaCatalogResources()` e `resolveCatalogResourceOptionValue()`, deduplicando chamadas concorrentes a `/schemas/catalog` por URL e reconciliando caminhos relativos com ou sem prefixo `/api`. `ResourceDiscoveryService` reutiliza a instância do injetor ancestral quando um componente standalone cria injetor filho sem override local de `API_URL`.
|
|
835
877
|
|
|
836
878
|
O editor de configurações da página recebe uma cópia da definição autoral. Dados carregados e entradas transitórias dos widgets não devem virar configuração ao alterar o layout.
|
|
837
879
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-10-
|
|
3
|
+
"generatedAt": "2026-10-15T22:42:56.841Z",
|
|
4
4
|
"packageName": "@praxisui/core",
|
|
5
|
-
"packageVersion": "10.0.0-rc.
|
|
5
|
+
"packageVersion": "10.0.0-rc.27",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 4,
|