@openwop/spec-artifacts 2.16.0 → 2.18.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/CORPUS-STAMP.json +11 -11
- package/api/seams-v2.yaml +1 -1
- package/api/v2/asyncapi.yaml +1 -1
- package/api/v2/openapi.yaml +1 -1
- package/package.json +1 -1
- package/spec/v1/core-standard-manifest.json +2 -2
- package/spec/v1/gaps.json +34 -0
- package/spec/v2/core/runs.md +15 -2
- package/spec/v2/declaration.json +16 -0
- package/spec/v2/release.json +2 -2
package/CORPUS-STAMP.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_comment": "Provenance of @openwop/spec-artifacts (RFC 0168 §D.2). files: SHA-256 per file; the conformance suite compares the installed peer against dist/spec-artifacts.lock.json at start.",
|
|
3
3
|
"package": "@openwop/spec-artifacts",
|
|
4
|
-
"version": "2.
|
|
5
|
-
"corpusTag": "v2.
|
|
4
|
+
"version": "2.18.0",
|
|
5
|
+
"corpusTag": "v2.18.0",
|
|
6
6
|
"files": {
|
|
7
7
|
"api/.redocly.lint-ignore.yaml": "bf5a8350b88a72fa43f59605ed8d903ed24b6cfccda5e45509c9f6ed9ee4e712",
|
|
8
8
|
"api/asyncapi.yaml": "d5ecb9ee6114582be3b1f662c84bfac9ae96dae7bacb853e461168f70a8e1c7d",
|
|
9
9
|
"api/grpc/openwop.proto": "c3e72bb17cba514ee98feb6434e6c9b6ea6795bfd086489ec69fd882dd1ad977",
|
|
10
10
|
"api/openapi.yaml": "39081c59fb696159806b0f2f9a42e7e9ff830d622fcf2ad4159b21357580a955",
|
|
11
11
|
"api/redocly.yaml": "b0604c89b2ca6d5076ec25725c539dad44a741a811fe524439ee6daef8baa09f",
|
|
12
|
-
"api/seams-v2.yaml": "
|
|
13
|
-
"api/v2/asyncapi.yaml": "
|
|
14
|
-
"api/v2/openapi.yaml": "
|
|
12
|
+
"api/seams-v2.yaml": "08f87bebac34e3084dc37fdb4b346fe7a1e06c3b414cf4352df7d8aea707ebe6",
|
|
13
|
+
"api/v2/asyncapi.yaml": "325cd3a067f5c731028e1bf58083732c395a7da26849c526fcea16b7ecc5b21a",
|
|
14
|
+
"api/v2/openapi.yaml": "f50c914acca3c9dc9578bee4199b3d21feafc7d2de7ebd9aedd2b861c3d70e09",
|
|
15
15
|
"api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
|
|
16
16
|
"schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
|
|
17
17
|
"schemas/a2a-task-state.schema.json": "c9365918f993f943b4b619d42551eb066a1ed33a08d895d51b395432a5b1f1bc",
|
|
@@ -201,13 +201,13 @@
|
|
|
201
201
|
"schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
|
|
202
202
|
"spec/v1/alias-detectors.json": "40069d5976eeb6ba1384a648e57e5cfd673db3fce36175115fb8293bee9664d4",
|
|
203
203
|
"spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
|
|
204
|
-
"spec/v1/core-standard-manifest.json": "
|
|
204
|
+
"spec/v1/core-standard-manifest.json": "8b43e4919b13e88b1b86fd7e088f0b06edc65c40268329ccdc836c43e4f60493",
|
|
205
205
|
"spec/v1/deprecations.json": "307083ce29c23fd406015951f99a30d78d6187ff061d38dc9732f62191b40f3f",
|
|
206
206
|
"spec/v1/deprecations.schema.json": "18c87e78bedc210431f795ae44c5b5d202f2f3317850d5cf86867d4f1fa1cdfb",
|
|
207
207
|
"spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
|
|
208
208
|
"spec/v1/event-codemap.schema.json": "d05933b2e88103aff51a2f774df97b9bda065e0fc88dbd9b114cc47a32189174",
|
|
209
209
|
"spec/v1/extensions.json": "79a60754aa16cbdbdb604f8e5c00038af535a1690a4d07bd5ff7c38f0256a7bc",
|
|
210
|
-
"spec/v1/gaps.json": "
|
|
210
|
+
"spec/v1/gaps.json": "ac54bdfcfdcbf96ddc5ae13c7e8e94a88f3c60c785be760d8a3d1fa902ef82ce",
|
|
211
211
|
"spec/v1/gaps.schema.json": "8fd83259f556553c9df0f53e7a82ca8c2a4771d471197f69b4e2ae0ceeacfd66",
|
|
212
212
|
"spec/v1/migrations.json": "8839497d6a4830b53fa7867014a8336f0d725ef2346352e54fb580b7947897af",
|
|
213
213
|
"spec/v1/migrations.schema.json": "886779aa6c22e646db097f5df210adb018a4dd14a7b815465a18c8a7056c8f72",
|
|
@@ -229,12 +229,12 @@
|
|
|
229
229
|
"spec/v2/core/packs.md": "cc06de2d49dd08410eececd5c279996ec839680553b332b4f33d6b31989b5757",
|
|
230
230
|
"spec/v2/core/persistence.md": "9e241f84259e38848f4a2ad1c21debb0dffd5f8aafbad26408aa6cc8969bf93b",
|
|
231
231
|
"spec/v2/core/replay.md": "10cc01bf9e4e921fcfac740f3174b2e95cda7ba9a1e13e85cf371c8c2d0fa46a",
|
|
232
|
-
"spec/v2/core/runs.md": "
|
|
232
|
+
"spec/v2/core/runs.md": "136319842bacbbb300178980e4b83444917d5b193cc5fdd92e39a4902ba8d3c0",
|
|
233
233
|
"spec/v2/core/security-defaults.md": "5c32c0bf4b47975c1428361b225a066cd3966cb37b023ca70bc30152fcbec33b",
|
|
234
234
|
"spec/v2/core/versioning.md": "27b88cde88f9060567ef7e46f4897b6be8892ade9f4a46c2ab16e314c515eabd",
|
|
235
235
|
"spec/v2/core/webhooks.md": "46c1311c1897236f9bf9db5025c8af31dd84cd19208da3e5e9ff69eec9436965",
|
|
236
236
|
"spec/v2/core/workflow-chain-packs.md": "df78b76dd79f2267fb6b72c08e0911e5f9d5bb1925c6efdd6deda62fe8a51dc8",
|
|
237
|
-
"spec/v2/declaration.json": "
|
|
237
|
+
"spec/v2/declaration.json": "49307ad6252cd2d21b78ddbbc910f55e8c1ee89a53d04686d28c32f53f6d778b",
|
|
238
238
|
"spec/v2/declaration.schema.json": "c86e3083fb9789c1958ecb4576cc6f71aa90e6f339521139238543ed08211dd4",
|
|
239
239
|
"spec/v2/errors.json": "aac91b12f954cc90574d310070ae3c651b131055d4389d2c6155242763765195",
|
|
240
240
|
"spec/v2/event-codemap.json": "37869a03cdfd8758b57e6f350641a6ebbd383231cebda51f5473ad85f94ab74c",
|
|
@@ -274,8 +274,8 @@
|
|
|
274
274
|
"spec/v2/path-manifest.json": "c123c9fd77dc1b3f9c2e9346ace80cdae007e6511138894956abda01e61ec1c6",
|
|
275
275
|
"spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
|
|
276
276
|
"spec/v2/profiles.json": "0636f19fceae625390003a347e70ef4797d84766b5c24ce8a02cea52aadebca4",
|
|
277
|
-
"spec/v2/release.json": "
|
|
277
|
+
"spec/v2/release.json": "3fdc368bea04141d0b459f5a2ffa26bcf40ca3bfc37fa0488afd13b881abdd9d",
|
|
278
278
|
"spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624"
|
|
279
279
|
},
|
|
280
|
-
"corpusCommit": "
|
|
280
|
+
"corpusCommit": "bdad62b0dbb80f9e3f908ebab747b5413fff448d"
|
|
281
281
|
}
|
package/api/seams-v2.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: OpenWOP conformance seams profile (openwop-conformance-seams-v2)
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.18.0
|
|
5
5
|
description: 'GENERATED by scripts/derive-v2-api.py. RFC 0168 §C: the seams are a versioned conformance profile with their
|
|
6
6
|
own document and path space (/conformance/seams/…), validated against the canonical v2 schemas with no tolerance path,
|
|
7
7
|
forbidden from the capability namespace (a host advertises the profile, never a testSeams flag). This document carries
|
package/api/v2/asyncapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
asyncapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: OpenWOP v2 event streams
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.18.0
|
|
5
5
|
description: GENERATED by scripts/derive-v2-api.py (RFC 0171 §E.1, RFC 0172 §C.2). One run-events channel whose address
|
|
6
6
|
is the OpenAPI path key; the server pathname is empty (bare origin). streamMode is a pattern over the closed set and its
|
|
7
7
|
comma-separated combinations (`values` never combines). hostEvents has a real address (RFC 0171 §E.1) — the documented
|
package/api/v2/openapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: OpenWOP v2 API
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.18.0
|
|
5
5
|
summary: REST surface for declaring, executing, suspending, resuming, and observing multi-step workflows.
|
|
6
6
|
description: GENERATED by scripts/derive-v2-api.py from api/openapi.yaml and the RFC 0167 children (v2 charter Phase 3,
|
|
7
7
|
P3-C). Bare origin, unversioned path keys, negotiation by `OpenWOP-Version` + `protocolVersions[]` (RFC 0172 §A). No seam
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openwop/spec-artifacts",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.18.0",
|
|
4
4
|
"description": "The OpenWOP machine-readable contract: api/ (OpenAPI, AsyncAPI, the seams profile), schemas/ (v1 and v2 JSON Schemas), the spec/v1 and spec/v2 registries (errors, event codemap, declaration, deprecations, migrations, gaps) and CORPUS-STAMP.json — published from the openwop/openwop corpus tag; the peer dependency @openwop/openwop-conformance digest-checks at start (RFC 0168 §D.2).",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"provenance": {
|
|
5
5
|
"suite": {
|
|
6
6
|
"package": "@openwop/openwop-conformance",
|
|
7
|
-
"version": "2.
|
|
7
|
+
"version": "2.18.0"
|
|
8
8
|
},
|
|
9
9
|
"note": "Derived from the corpus at generation time. Regenerate with --write; verify with --check."
|
|
10
10
|
},
|
|
@@ -419,5 +419,5 @@
|
|
|
419
419
|
"$id": "https://openwop.dev/spec/v1/workspace-file.schema.json"
|
|
420
420
|
}
|
|
421
421
|
],
|
|
422
|
-
"digest": "
|
|
422
|
+
"digest": "7053aa6c04545aca2ef249cc984336284824182422e528083f6d744eb40d1975"
|
|
423
423
|
}
|
package/spec/v1/gaps.json
CHANGED
|
@@ -10416,6 +10416,40 @@
|
|
|
10416
10416
|
}
|
|
10417
10417
|
]
|
|
10418
10418
|
},
|
|
10419
|
+
{
|
|
10420
|
+
"id": "openwop.gap.0189.8",
|
|
10421
|
+
"rfc": "0189",
|
|
10422
|
+
"local": "G8",
|
|
10423
|
+
"section": "§B(b)",
|
|
10424
|
+
"surface": "G5 closed a PRECEDING dot but not a FOLLOWING one, and this register's own G5 row plus the gate's docblock CLAIMED otherwise — naming `i18n` ← \"see i18n.md\" as closed when it is not. The trailing boundary class excludes `-`, `_` and `/` but must leave `.` open for the `key.facet` arm, so `see i18n.md` still names `i18n` and `` `channelPresence.supported` `` still names `channelPresence`.",
|
|
10425
|
+
"witness": "unclassified",
|
|
10426
|
+
"requirementId": null,
|
|
10427
|
+
"disposition": "carried",
|
|
10428
|
+
"target": "openwop.gap.0189.8",
|
|
10429
|
+
"sources": [
|
|
10430
|
+
{
|
|
10431
|
+
"file": "RFCS/registers/0189-normative-home.gaps.md",
|
|
10432
|
+
"token": "G8"
|
|
10433
|
+
}
|
|
10434
|
+
]
|
|
10435
|
+
},
|
|
10436
|
+
{
|
|
10437
|
+
"id": "openwop.gap.0189.9",
|
|
10438
|
+
"rfc": "0189",
|
|
10439
|
+
"local": "G9",
|
|
10440
|
+
"section": "§D",
|
|
10441
|
+
"surface": "The burn-down denominator (`open = v1Dependent + undeclared`) is STRICTER than the terminal predicate it schedules (`fatal = undeclared + uncarried + broken`) — at end-of-support a carried v1-dependent family is acceptable, but before it every such family still counts against the daily clock. A review recommended aligning them by changing the denominator to `undeclared`.",
|
|
10442
|
+
"witness": "unclassified",
|
|
10443
|
+
"requirementId": null,
|
|
10444
|
+
"disposition": "closed",
|
|
10445
|
+
"target": null,
|
|
10446
|
+
"sources": [
|
|
10447
|
+
{
|
|
10448
|
+
"file": "RFCS/registers/0189-normative-home.gaps.md",
|
|
10449
|
+
"token": "G9"
|
|
10450
|
+
}
|
|
10451
|
+
]
|
|
10452
|
+
},
|
|
10419
10453
|
{
|
|
10420
10454
|
"id": "openwop.gap.0190.1",
|
|
10421
10455
|
"rfc": "0190",
|
package/spec/v2/core/runs.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Runs
|
|
2
2
|
|
|
3
3
|
> **Status: Stable · RFC 0170 §A, §D.1; RFC 0171 §D; RFC 0176 §B.1.**
|
|
4
|
-
> **Normative home:** `runList`, `limits`.
|
|
4
|
+
> **Normative home:** `runList`, `limits`, `conversationPrimitive`, `dataResidency`.
|
|
5
5
|
|
|
6
6
|
## Why this exists
|
|
7
7
|
|
|
@@ -58,7 +58,7 @@ The `201` response is `{ runId, status, eventsUrl, statusUrl? }`, `status` one o
|
|
|
58
58
|
| Section | Keys | Rule |
|
|
59
59
|
| --- | --- | --- |
|
|
60
60
|
| `run` | `recursionLimit`, `runTimeoutMs`, `maxLoopIterations`, `escalationThreshold` | `recursionLimit` is clamped to `limits.maxNodeExecutions`. `runTimeoutMs` resolves to `min(runTimeoutMs, limits.maxRunDurationMs)`; an out-of-range value MUST return `400 validation_error` at create, and a breach MUST emit `cap.breached { kind: 'run-duration' }` and terminate the run `failed` with `run_timeout`. `maxLoopIterations` resolves against `limits.maxLoopIterations`; a breach MUST emit `cap.breached { kind: 'loop-iterations' }` and fail with `loop_limit_exceeded`. `escalationThreshold` is the `low-confidence` threshold (interrupt.md). |
|
|
61
|
-
| `ai` | `provider`, `model`, `temperature` (0..2), `maxTokens`, `credentialRef`, `promptOverrides`, `mockProvider`, `reasoningVerbosity` (`none` \| `summary` \| `full`), `maxRefusals` | `provider` MUST be in `aiProviders.
|
|
61
|
+
| `ai` | `provider`, `model`, `temperature` (0..2), `maxTokens`, `credentialRef`, `promptOverrides`, `mockProvider`, `reasoningVerbosity` (`none` \| `summary` \| `full`), `maxRefusals` | `provider` MUST be in `aiProviders.providers`, else `400 validation_error`. `credentialRef` MUST reference a provider in `aiProviders.byok`, else `403 credential_forbidden`; it never carries key material. `mockProvider` is test-keys-only: a host MUST refuse it on a production credential with `403`. `maxRefusals` is the refusal ceiling (events.md E5). |
|
|
62
62
|
| `distillation` | `tokenBudget` | Resolves to `min(tokenBudget, memory.distillation.maxTokenBudget)`; a run that cannot distill within it MUST fail atomically with `token_budget_exceeded`. |
|
|
63
63
|
| `budget` | `schemas/v2/budget-policy.schema.json` | The run's budget policy. |
|
|
64
64
|
| `extensions` | `<org>: {…}` | A vendor key lives under its registered org and nowhere else. |
|
|
@@ -113,3 +113,16 @@ A non-terminal run a v2 host inherits from v1 whose `version.pinned` change ids
|
|
|
113
113
|
## Annotations, artifacts, eval summary
|
|
114
114
|
|
|
115
115
|
`createAnnotation` accepts `schemas/v2/annotation-create.schema.json` and returns `201` with `schemas/v2/annotation.schema.json`; `listAnnotations` returns `{ annotations[] }`. An annotation is a live notification (`run.annotated`), never a run event: it MUST NOT enter the event log and MUST be excluded from fork, replay and diff. `getArtifact` returns the artifact as an implementation-defined JSON object. `getEvalSummary` returns `schemas/v2/eval-summary.schema.json` for a terminal eval run, `409` while it is running, `404` when the run is not an eval run; the summary MUST be content-free of task output, rubric prose and credentials.
|
|
116
|
+
|
|
117
|
+
## Conversation and residency capabilities
|
|
118
|
+
|
|
119
|
+
`conversationPrimitive` carries no payload: its presence is the claim (capabilities.md §2). A
|
|
120
|
+
workflow whose `nodes[].typeId` references `core.conversationGate` MUST be refused by a host that
|
|
121
|
+
does not advertise `conversationPrimitive`, at registration or at run creation, with `422
|
|
122
|
+
capability_required` naming the family in `details.requiredCapability`.
|
|
123
|
+
|
|
124
|
+
A host advertising `dataResidency` MUST honor-or-reject: accept a `residency` constraint naming a
|
|
125
|
+
region in `dataResidency.regions`, refuse one it does not advertise with `residency_unavailable`,
|
|
126
|
+
and MUST NOT silently accept-and-ignore. Advertising `regions` while accepting an unadvertised
|
|
127
|
+
region is a hollow advertisement. A host that does not advertise `dataResidency` MAY ignore or
|
|
128
|
+
reject a `residency` constraint but MUST NOT claim to honor it.
|
package/spec/v2/declaration.json
CHANGED
|
@@ -172,6 +172,7 @@
|
|
|
172
172
|
{
|
|
173
173
|
"key": "supportedEnvelopes",
|
|
174
174
|
"kind": "family",
|
|
175
|
+
"normativeText": ["spec/v1/ai-envelope.md"],
|
|
175
176
|
"anchor": "core",
|
|
176
177
|
"section": "core/capabilities.md#supportedEnvelopes",
|
|
177
178
|
"peerDependencyId": "supportedEnvelopes",
|
|
@@ -232,6 +233,7 @@
|
|
|
232
233
|
{
|
|
233
234
|
"key": "envelopeStrictness",
|
|
234
235
|
"kind": "family",
|
|
236
|
+
"normativeText": ["spec/v1/ai-envelope.md"],
|
|
235
237
|
"anchor": "core",
|
|
236
238
|
"section": "core/capabilities.md#envelopeStrictness",
|
|
237
239
|
"peerDependencyId": "envelopeStrictness",
|
|
@@ -379,6 +381,7 @@
|
|
|
379
381
|
{
|
|
380
382
|
"key": "selfHostedRunner",
|
|
381
383
|
"kind": "family",
|
|
384
|
+
"normativeText": ["spec/v1/capabilities.md"],
|
|
382
385
|
"anchor": "core",
|
|
383
386
|
"section": "core/capabilities.md#selfHostedRunner",
|
|
384
387
|
"peerDependencyId": "selfHostedRunner",
|
|
@@ -397,6 +400,7 @@
|
|
|
397
400
|
{
|
|
398
401
|
"key": "purposePropagation",
|
|
399
402
|
"kind": "family",
|
|
403
|
+
"normativeText": ["spec/v1/capabilities.md"],
|
|
400
404
|
"anchor": "core",
|
|
401
405
|
"section": "core/capabilities.md#purposePropagation",
|
|
402
406
|
"peerDependencyId": "purposePropagation",
|
|
@@ -415,6 +419,7 @@
|
|
|
415
419
|
{
|
|
416
420
|
"key": "dataResidency",
|
|
417
421
|
"kind": "family",
|
|
422
|
+
"normativeText": ["spec/v2/core/runs.md"],
|
|
418
423
|
"anchor": "core",
|
|
419
424
|
"section": "core/capabilities.md#dataResidency",
|
|
420
425
|
"peerDependencyId": "dataResidency",
|
|
@@ -433,6 +438,7 @@
|
|
|
433
438
|
{
|
|
434
439
|
"key": "anonymousActor",
|
|
435
440
|
"kind": "family",
|
|
441
|
+
"normativeText": ["spec/v1/capabilities.md"],
|
|
436
442
|
"anchor": "core",
|
|
437
443
|
"section": "core/capabilities.md#anonymousActor",
|
|
438
444
|
"peerDependencyId": "anonymousActor",
|
|
@@ -453,6 +459,7 @@
|
|
|
453
459
|
{
|
|
454
460
|
"key": "credentials",
|
|
455
461
|
"kind": "family",
|
|
462
|
+
"normativeText": ["spec/v1/host-capabilities.md"],
|
|
456
463
|
"anchor": "core",
|
|
457
464
|
"section": "core/capabilities.md#credentials",
|
|
458
465
|
"peerDependencyId": "credentials",
|
|
@@ -760,6 +767,7 @@
|
|
|
760
767
|
{
|
|
761
768
|
"key": "conversationPrimitive",
|
|
762
769
|
"kind": "family",
|
|
770
|
+
"normativeText": ["spec/v2/core/runs.md"],
|
|
763
771
|
"anchor": "core",
|
|
764
772
|
"section": "core/capabilities.md#conversationPrimitive",
|
|
765
773
|
"peerDependencyId": "conversationPrimitive",
|
|
@@ -776,6 +784,7 @@
|
|
|
776
784
|
{
|
|
777
785
|
"key": "subWorkflow",
|
|
778
786
|
"kind": "family",
|
|
787
|
+
"normativeText": ["spec/v1/node-packs.md"],
|
|
779
788
|
"anchor": "core",
|
|
780
789
|
"section": "core/capabilities.md#subWorkflow",
|
|
781
790
|
"peerDependencyId": "subWorkflow",
|
|
@@ -968,6 +977,7 @@
|
|
|
968
977
|
{
|
|
969
978
|
"key": "httpClient",
|
|
970
979
|
"kind": "family",
|
|
980
|
+
"normativeText": ["spec/v1/host-capabilities.md"],
|
|
971
981
|
"anchor": "core",
|
|
972
982
|
"section": "core/capabilities.md#httpClient",
|
|
973
983
|
"peerDependencyId": "httpClient",
|
|
@@ -1125,6 +1135,7 @@
|
|
|
1125
1135
|
{
|
|
1126
1136
|
"key": "triggerBridge",
|
|
1127
1137
|
"kind": "family",
|
|
1138
|
+
"normativeText": ["spec/v1/trigger-bridge.md"],
|
|
1128
1139
|
"anchor": "core",
|
|
1129
1140
|
"section": "core/capabilities.md#triggerBridge",
|
|
1130
1141
|
"peerDependencyId": "triggerBridge",
|
|
@@ -1175,6 +1186,7 @@
|
|
|
1175
1186
|
{
|
|
1176
1187
|
"key": "budget",
|
|
1177
1188
|
"kind": "family",
|
|
1189
|
+
"normativeText": ["spec/v1/budget-policy.md"],
|
|
1178
1190
|
"anchor": "core",
|
|
1179
1191
|
"section": "core/capabilities.md#budget",
|
|
1180
1192
|
"peerDependencyId": "budget",
|
|
@@ -1213,6 +1225,7 @@
|
|
|
1213
1225
|
{
|
|
1214
1226
|
"key": "workspace",
|
|
1215
1227
|
"kind": "family",
|
|
1228
|
+
"normativeText": ["spec/v1/agent-workspace.md"],
|
|
1216
1229
|
"anchor": "core",
|
|
1217
1230
|
"section": "core/capabilities.md#workspace",
|
|
1218
1231
|
"peerDependencyId": "workspace",
|
|
@@ -1573,6 +1586,7 @@
|
|
|
1573
1586
|
{
|
|
1574
1587
|
"key": "i18n",
|
|
1575
1588
|
"kind": "family",
|
|
1589
|
+
"normativeText": ["spec/v1/i18n.md"],
|
|
1576
1590
|
"anchor": "core",
|
|
1577
1591
|
"section": "core/capabilities.md#i18n",
|
|
1578
1592
|
"peerDependencyId": "i18n",
|
|
@@ -1592,6 +1606,7 @@
|
|
|
1592
1606
|
{
|
|
1593
1607
|
"key": "content",
|
|
1594
1608
|
"kind": "family",
|
|
1609
|
+
"normativeText": ["spec/v1/localized-content.md"],
|
|
1595
1610
|
"anchor": "core",
|
|
1596
1611
|
"section": "core/capabilities.md#content",
|
|
1597
1612
|
"peerDependencyId": "content",
|
|
@@ -1611,6 +1626,7 @@
|
|
|
1611
1626
|
{
|
|
1612
1627
|
"key": "portability",
|
|
1613
1628
|
"kind": "family",
|
|
1629
|
+
"normativeText": ["spec/v1/portability.md"],
|
|
1614
1630
|
"anchor": "core",
|
|
1615
1631
|
"section": "core/capabilities.md#portability",
|
|
1616
1632
|
"peerDependencyId": "portability",
|
package/spec/v2/release.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "RFC 0172 §D.1 — the one release identity the v2 artifacts derive from. `version` is the next corpus tag `v<version>` (the publish workflow's coordinated-release tag pattern `v*`; RFC 0172's `openwop/v2.<minor>.<patch>` spelling is amended to this at its flip). api/v2/*.yaml info.version, the suite's 2.x version and @openwop/spec-artifacts read it. Bumped by the release PR that cuts the tag, never by hand elsewhere.",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"corpusTag": "v2.
|
|
3
|
+
"version": "2.18.0",
|
|
4
|
+
"corpusTag": "v2.18.0",
|
|
5
5
|
"updated": "2026-09-18"
|
|
6
6
|
}
|