@opensoftware/contracts 2.2.0 → 2.4.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 +8 -5
- package/dist/formats.js +4 -0
- package/dist/formats.js.map +1 -1
- package/dist/generated/types.d.ts +489 -8
- package/dist/index.d.ts +9 -0
- package/dist/index.js.map +1 -1
- package/events/asyncapi.yaml +63 -0
- package/events/doctor-ping/doctor-ping.schema.json +62 -0
- package/events/run-blocked/run-blocked.schema.json +138 -0
- package/events/run-completed/run-completed.schema.json +10 -0
- package/events/run-started/run-started.schema.json +6 -0
- package/events/work-retry-requested/work-retry-requested.schema.json +106 -0
- package/factory-definition/factory-definition.schema.json +5 -1
- package/factory-lock/factory-lock.schema.json +111 -0
- package/openapi/openapi.json +844 -12
- package/package.json +3 -3
- package/typespec/events.tsp +58 -0
- package/typespec/factory-definition.tsp +7 -1
- package/typespec/factory-lock.tsp +56 -0
- package/typespec/foreman-api.tsp +32 -3
- package/typespec/foreman.tsp +99 -3
- package/typespec/gatekeeper-api.tsp +14 -0
- package/typespec/gatekeeper.tsp +15 -0
- package/typespec/intake-api.tsp +9 -2
- package/typespec/intake.tsp +4 -0
- package/typespec/main.tsp +1 -0
package/README.md
CHANGED
|
@@ -44,18 +44,21 @@ Each format has one schema, generated from `typespec/`, and fixtures that CONTRA
|
|
|
44
44
|
| score | `score/score.schema.json` | `Score` | Subset of Langfuse's create-score request; factory fields in `metadata`. |
|
|
45
45
|
| gate record | `gate-record/gate-record.schema.json` | `GateRecord` | gatekeeper's signed approval record (ADR 0047). |
|
|
46
46
|
| sandbox spec | `sandbox-spec/sandbox-spec.schema.json` | `SandboxSpec` | The input of a sandbox adapter's `create` (ADR 0054). Closed objects: an unknown field is an error. |
|
|
47
|
-
|
|
|
47
|
+
| factory lock | `factory-lock/factory-lock.schema.json` | `FactoryLock` | `factory.lock` next to `factory.yaml`: the registry MCP servers and the adapters that `factory plan` pinned (ADR 0020, ADR 0125). factory-spec writes it, the foreman reads the adapter pins. |
|
|
48
|
+
| events | `events/<event>/<event>.schema.json`, `events/asyncapi.yaml` | `WorkReceived`, `WorkRetryRequested`, `RunStarted`, `RunCompleted`, `RunBlocked`, `DoctorPing` … `IssueLabeled` | CloudEvents 1.0, structured JSON. |
|
|
48
49
|
|
|
49
50
|
## HTTP APIs
|
|
50
51
|
|
|
51
52
|
`openapi/openapi.json` also holds the paths of the module APIs, from the operations in `typespec/` (ADR 0048). The
|
|
52
|
-
first is gatekeeper's: `POST /v1/gates` and `
|
|
53
|
+
first is gatekeeper's: `POST /v1/gates`, `GET /v1/gates/{gateId}` and `POST /v1/gates/{gateId}/decisions` (ADR 0118) with the models `GateRequest`, `GateView`, `GateDecisionRequest` and
|
|
53
54
|
`ApiProblem` (RFC 9457). The second is intake's (ADR 0063): `POST /v1/work-items` and
|
|
54
55
|
`GET /v1/work-items/{workItemId}` with the models `WorkSubmission`, `WorkItemView` and `WorkRequest`, and
|
|
55
56
|
`GET /v1/inbox` with `WorkItemList`. The third is the
|
|
56
|
-
foreman's (ADR 0067): `POST /v1/runs`, `GET /v1/runs/{runId}
|
|
57
|
-
`RunView`, `StageView`, `CheckView` (ADR 0069)
|
|
58
|
-
|
|
57
|
+
foreman's (ADR 0067): `POST /v1/runs`, `GET /v1/runs` with `RunList`, `GET /v1/runs/{runId}`, `POST /v1/runs/{runId}/signals` and
|
|
58
|
+
`POST /v1/runs/{runId}/retry` (ADR 0105), and `GET /v1/doctor/pings/{id}` with `DoctorPingSeen` (ADR 0120), with the models `RunView` (its `adapters`, ADR 0110), `StageView` (its `waitingSince`, ADR 0106, and its `note`, ADR 0109), `CheckView` (ADR 0069), `RunSignal` (its `by`, ADR 0118), `RunAction`
|
|
59
|
+
and `RunRetry`. All three answer `GET /v1/health` with the models
|
|
60
|
+
`Health` and `HealthCheck` (`HealthApi`, ADR 0086). Both lists take `limit` and `cursor` and answer the cursor of the next
|
|
61
|
+
page in `next` (ADR 0115). `pnpm build` compiles the operations with the TypeSpec OpenAPI 3 emitter and copies their
|
|
59
62
|
paths next to the named models; an operation that uses a type that is no model fails the build. The package exports
|
|
60
63
|
the type `paths`, which types a client such as openapi-fetch.
|
|
61
64
|
|
package/dist/formats.js
CHANGED
|
@@ -8,9 +8,13 @@ export const FORMATS = [
|
|
|
8
8
|
format("score", "Score"),
|
|
9
9
|
format("gate-record", "GateRecord"),
|
|
10
10
|
format("sandbox-spec", "SandboxSpec"),
|
|
11
|
+
format("factory-lock", "FactoryLock"),
|
|
11
12
|
format("events/work-received", "WorkReceived"),
|
|
13
|
+
format("events/work-retry-requested", "WorkRetryRequested"),
|
|
12
14
|
format("events/run-started", "RunStarted"),
|
|
13
15
|
format("events/run-completed", "RunCompleted"),
|
|
16
|
+
format("events/run-blocked", "RunBlocked"),
|
|
17
|
+
format("events/doctor-ping", "DoctorPing"),
|
|
14
18
|
format("events/gate-requested", "GateRequested"),
|
|
15
19
|
format("events/gate-decided", "GateDecided"),
|
|
16
20
|
format("events/score-recorded", "ScoreRecorded"),
|
package/dist/formats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAW3G,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,KAAa,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAEjH,MAAM,CAAC,MAAM,OAAO,GAAsB;IACxC,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;IACjD,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;IAC/B,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC;IACjC,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAC7C,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC;IACnC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC;IACrC,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;IAC9C,MAAM,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAC1C,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;IAC9C,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC;IAChD,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;IAC5C,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC;IAChD,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC;IACtC,MAAM,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAC1C,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC;IACtC,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;CAC/C,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC9D,CAAC"}
|
|
1
|
+
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAW3G,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,KAAa,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAEjH,MAAM,CAAC,MAAM,OAAO,GAAsB;IACxC,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;IACjD,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;IAC/B,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC;IACjC,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAC7C,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC;IACnC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC;IACrC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC;IACrC,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;IAC9C,MAAM,CAAC,6BAA6B,EAAE,oBAAoB,CAAC;IAC3D,MAAM,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAC1C,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;IAC9C,MAAM,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAC1C,MAAM,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAC1C,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC;IAChD,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;IAC5C,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC;IAChD,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC;IACtC,MAAM,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAC1C,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC;IACtC,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;CAC/C,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC9D,CAAC"}
|