@shipeasy/openapi 2.4.0 → 2.5.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/dist/{chunk-ZPKHTUVV.js → chunk-DBTSD3W5.js} +95 -24
- package/dist/chunk-DBTSD3W5.js.map +1 -0
- package/dist/{chunk-4QSU744W.js → chunk-RDMD5XQT.js} +11 -1
- package/dist/chunk-RDMD5XQT.js.map +1 -0
- package/dist/{client-WGNXT4xl.d.ts → client-ObcuFHaV.d.ts} +268 -21
- package/dist/client.d.ts +1 -1
- package/dist/client.js +3 -1
- package/dist/custom.d.ts +9 -4
- package/dist/custom.js +57 -9
- package/dist/custom.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/schemas.d.ts +305 -10
- package/dist/schemas.js +17 -1
- package/openapi.json +474 -72
- package/openapi.yaml +339 -45
- package/package.json +1 -1
- package/spec/components/schemas/configs.yaml +33 -3
- package/spec/components/schemas/gates.yaml +9 -0
- package/spec/components/schemas/metrics.yaml +16 -1
- package/spec/components/schemas/ops.yaml +163 -19
- package/spec/openapi.yaml +11 -0
- package/spec/paths/configs.yaml +28 -21
- package/spec/paths/ops.yaml +85 -2
- package/dist/chunk-4QSU744W.js.map +0 -1
- package/dist/chunk-ZPKHTUVV.js.map +0 -1
package/openapi.yaml
CHANGED
|
@@ -207,6 +207,15 @@ tags:
|
|
|
207
207
|
**Mentions.** `@teammate` in a body raises an in-app notification for that
|
|
208
208
|
person; `@shipeasy` asks Jarvis (the AI agent) to read the item and reply.
|
|
209
209
|
Comments authored by Jarvis carry `authorType: system`.
|
|
210
|
+
- name: Investigations
|
|
211
|
+
parent: Ops
|
|
212
|
+
description: |-
|
|
213
|
+
Investigation records on a queue item — the structured, read-only write-ups
|
|
214
|
+
an AI agent produces while working it (findings / a blocking question / QA
|
|
215
|
+
notes), plus the `working` run rows an ack or an AI hand-off opens. This is
|
|
216
|
+
the AI-write seam the cockpit's detail panel renders: `list` reads what a
|
|
217
|
+
previous run found, `create` appends a new record, and `update` fills in the
|
|
218
|
+
`working` run record you were handed (findings, PR, confidence) as you work.
|
|
210
219
|
- name: Projects
|
|
211
220
|
description: |-
|
|
212
221
|
Projects: the account-level container every other resource is scoped to.
|
|
@@ -1997,7 +2006,7 @@ paths:
|
|
|
1997
2006
|
|
|
1998
2007
|
- **Minimal create** — `name` + `schema`. Initial value defaults to `{}`.
|
|
1999
2008
|
- **Seeded create** — supply a flat `value` to publish the same object on every env.
|
|
2000
|
-
- **Per-env seed** — supply a `{ env: value }` map for
|
|
2009
|
+
- **Per-env seed** — supply a `{ env: value }` map under `value`, or pass the env keys `dev`/`staging`/`prod` directly (each overrides `value` for that env and is published at version 1).
|
|
2001
2010
|
tags:
|
|
2002
2011
|
- Configs
|
|
2003
2012
|
parameters:
|
|
@@ -2039,8 +2048,8 @@ paths:
|
|
|
2039
2048
|
- name: free
|
|
2040
2049
|
- name: pro
|
|
2041
2050
|
perEnvSeed:
|
|
2042
|
-
summary: Per-env seed
|
|
2043
|
-
description:
|
|
2051
|
+
summary: Per-env seed (env keys)
|
|
2052
|
+
description: Pass the env keys directly to seed different initial values per env. Each overrides `value` for that env and is published at version 1.
|
|
2044
2053
|
value:
|
|
2045
2054
|
name: pricing.tiers
|
|
2046
2055
|
schema:
|
|
@@ -2050,20 +2059,15 @@ paths:
|
|
|
2050
2059
|
type: array
|
|
2051
2060
|
required:
|
|
2052
2061
|
- tiers
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
- name: pro
|
|
2063
|
-
prod:
|
|
2064
|
-
tiers:
|
|
2065
|
-
- name: free
|
|
2066
|
-
- name: pro
|
|
2062
|
+
dev:
|
|
2063
|
+
tiers:
|
|
2064
|
+
- name: free
|
|
2065
|
+
- name: pro
|
|
2066
|
+
- name: enterprise
|
|
2067
|
+
prod:
|
|
2068
|
+
tiers:
|
|
2069
|
+
- name: free
|
|
2070
|
+
- name: pro
|
|
2067
2071
|
responses:
|
|
2068
2072
|
'201':
|
|
2069
2073
|
description: Create a dynamic config
|
|
@@ -2216,15 +2220,13 @@ paths:
|
|
|
2216
2220
|
operationId: updateConfig
|
|
2217
2221
|
summary: Update a dynamic config
|
|
2218
2222
|
description: |-
|
|
2219
|
-
Partial update. When `value` is supplied it is **republished on every env** (new version per env). When `schema` is supplied it replaces the current schema; every existing value is re-validated.
|
|
2220
|
-
|
|
2221
|
-
For env-scoped edits, use the draft/publish flow (`PUT /{id}/drafts` then `POST /{id}/publish`) instead.
|
|
2223
|
+
Partial update. When `value` is supplied it is **republished on every env** (new version per env). A per-env key (`dev`/`staging`/`prod`) publishes a new version to **only that env**, immediately, overriding `value` for it. When `schema` is supplied it replaces the current schema; every existing value is re-validated.
|
|
2222
2224
|
|
|
2223
2225
|
**Use cases**
|
|
2224
2226
|
|
|
2225
2227
|
- **Republish flat value** — `{ "value": {…} }` sets the same value on every env.
|
|
2228
|
+
- **Publish one env** — `{ "prod": {…} }` publishes a new version to prod only, instantly.
|
|
2226
2229
|
- **Schema migration** — `{ "schema": {…} }` replaces the schema; existing values are re-validated.
|
|
2227
|
-
- **Env-scoped edits** — use `PUT /{id}/drafts` + `POST /{id}/publish` instead of PATCH.
|
|
2228
2230
|
tags:
|
|
2229
2231
|
- Configs
|
|
2230
2232
|
parameters:
|
|
@@ -2250,6 +2252,15 @@ paths:
|
|
|
2250
2252
|
tiers:
|
|
2251
2253
|
- name: free
|
|
2252
2254
|
- name: pro
|
|
2255
|
+
prodOnly:
|
|
2256
|
+
summary: Per-env — publish prod only
|
|
2257
|
+
description: Publishes a new version to prod only, immediately. dev/staging untouched.
|
|
2258
|
+
value:
|
|
2259
|
+
prod:
|
|
2260
|
+
tiers:
|
|
2261
|
+
- name: free
|
|
2262
|
+
- name: pro
|
|
2263
|
+
- name: enterprise
|
|
2253
2264
|
schemaOnly:
|
|
2254
2265
|
summary: Schema-only update
|
|
2255
2266
|
description: Replaces the schema. Existing values must still validate or the update fails.
|
|
@@ -2410,6 +2421,7 @@ paths:
|
|
|
2410
2421
|
- VALIDATION
|
|
2411
2422
|
x-cli:
|
|
2412
2423
|
name: draft
|
|
2424
|
+
hidden: true
|
|
2413
2425
|
positional:
|
|
2414
2426
|
- id
|
|
2415
2427
|
delete:
|
|
@@ -2469,6 +2481,7 @@ paths:
|
|
|
2469
2481
|
- NOT_FOUND
|
|
2470
2482
|
x-cli:
|
|
2471
2483
|
name: discard-draft
|
|
2484
|
+
hidden: true
|
|
2472
2485
|
positional:
|
|
2473
2486
|
- id
|
|
2474
2487
|
/api/admin/configs/{id}/publish:
|
|
@@ -2540,6 +2553,7 @@ paths:
|
|
|
2540
2553
|
- VALIDATION
|
|
2541
2554
|
x-cli:
|
|
2542
2555
|
name: publish
|
|
2556
|
+
hidden: true
|
|
2543
2557
|
positional:
|
|
2544
2558
|
- id
|
|
2545
2559
|
/api/admin/configs/{id}/activity:
|
|
@@ -2604,6 +2618,7 @@ paths:
|
|
|
2604
2618
|
- NOT_FOUND
|
|
2605
2619
|
x-cli:
|
|
2606
2620
|
name: activity
|
|
2621
|
+
hidden: true
|
|
2607
2622
|
positional:
|
|
2608
2623
|
- id
|
|
2609
2624
|
/api/admin/configs/{id}/schema:
|
|
@@ -2739,6 +2754,7 @@ paths:
|
|
|
2739
2754
|
- NOT_FOUND
|
|
2740
2755
|
x-cli:
|
|
2741
2756
|
name: versions
|
|
2757
|
+
hidden: true
|
|
2742
2758
|
positional:
|
|
2743
2759
|
- id
|
|
2744
2760
|
/api/admin/killswitches:
|
|
@@ -5531,7 +5547,7 @@ paths:
|
|
|
5531
5547
|
**Use case:** Read what a previous agent run already found before starting
|
|
5532
5548
|
your own investigation of the item.
|
|
5533
5549
|
tags:
|
|
5534
|
-
-
|
|
5550
|
+
- Investigations
|
|
5535
5551
|
parameters:
|
|
5536
5552
|
- $ref: '#/components/parameters/ProjectId'
|
|
5537
5553
|
- name: handle
|
|
@@ -5562,6 +5578,10 @@ paths:
|
|
|
5562
5578
|
- UNAUTHORIZED
|
|
5563
5579
|
- FORBIDDEN
|
|
5564
5580
|
- NOT_FOUND
|
|
5581
|
+
x-cli:
|
|
5582
|
+
name: list
|
|
5583
|
+
positional:
|
|
5584
|
+
- handle
|
|
5565
5585
|
post:
|
|
5566
5586
|
operationId: createOpsInvestigation
|
|
5567
5587
|
summary: Record an investigation
|
|
@@ -5577,7 +5597,7 @@ paths:
|
|
|
5577
5597
|
markdown findings, sources inspected, confidence) so the team — and the
|
|
5578
5598
|
next agent run — sees what you learned.
|
|
5579
5599
|
tags:
|
|
5580
|
-
-
|
|
5600
|
+
- Investigations
|
|
5581
5601
|
parameters:
|
|
5582
5602
|
- $ref: '#/components/parameters/ProjectId'
|
|
5583
5603
|
- name: handle
|
|
@@ -5635,6 +5655,85 @@ paths:
|
|
|
5635
5655
|
- FORBIDDEN
|
|
5636
5656
|
- NOT_FOUND
|
|
5637
5657
|
- VALIDATION
|
|
5658
|
+
x-cli:
|
|
5659
|
+
name: create
|
|
5660
|
+
positional:
|
|
5661
|
+
- handle
|
|
5662
|
+
/api/admin/ops/{handle}/investigation/{investigationId}:
|
|
5663
|
+
patch:
|
|
5664
|
+
operationId: updateOpsInvestigation
|
|
5665
|
+
summary: Update an investigation record
|
|
5666
|
+
description: |-
|
|
5667
|
+
Update one existing investigation record in place — the write-back seam for
|
|
5668
|
+
the `working` run record you were handed when a run was launched. Fill in
|
|
5669
|
+
the `summary`/`findings`, attach the fixing PR, record your `confidence`
|
|
5670
|
+
and the `sources` you inspected, or flip its `kind` off `working` once the
|
|
5671
|
+
investigation is done. A partial patch: send only the fields you want to
|
|
5672
|
+
change. Safe for restricted ops keys (it never reads or deletes).
|
|
5673
|
+
|
|
5674
|
+
**Use case:** A run started with an empty `working` record; as you work,
|
|
5675
|
+
PATCH it with your findings so the cockpit's detail panel fills in live —
|
|
5676
|
+
no need to append a second record.
|
|
5677
|
+
tags:
|
|
5678
|
+
- Investigations
|
|
5679
|
+
parameters:
|
|
5680
|
+
- $ref: '#/components/parameters/ProjectId'
|
|
5681
|
+
- name: handle
|
|
5682
|
+
in: path
|
|
5683
|
+
required: true
|
|
5684
|
+
description: Per-project item number (e.g. `7`) or the full ops item id.
|
|
5685
|
+
schema:
|
|
5686
|
+
$ref: '#/components/schemas/ResourceId'
|
|
5687
|
+
- name: investigationId
|
|
5688
|
+
in: path
|
|
5689
|
+
required: true
|
|
5690
|
+
description: The investigation record id (from `POST`/`GET .../investigation` or the `runId` an ack/launch returned).
|
|
5691
|
+
schema:
|
|
5692
|
+
$ref: '#/components/schemas/ResourceId'
|
|
5693
|
+
requestBody:
|
|
5694
|
+
required: true
|
|
5695
|
+
content:
|
|
5696
|
+
application/json:
|
|
5697
|
+
schema:
|
|
5698
|
+
$ref: '#/components/schemas/UpdateOpsInvestigationRequest'
|
|
5699
|
+
examples:
|
|
5700
|
+
findings:
|
|
5701
|
+
summary: Fill in the run record's findings
|
|
5702
|
+
value:
|
|
5703
|
+
kind: investigated
|
|
5704
|
+
summary: Root cause is a stale KV read on the checkout flag.
|
|
5705
|
+
findings: The `checkout.cta` gate is rebuilt without a CDN purge, so…
|
|
5706
|
+
confidence: high
|
|
5707
|
+
prNumber: 4821
|
|
5708
|
+
prUrl: https://github.com/acme/web/pull/4821
|
|
5709
|
+
responses:
|
|
5710
|
+
'200':
|
|
5711
|
+
description: The updated investigation record
|
|
5712
|
+
content:
|
|
5713
|
+
application/json:
|
|
5714
|
+
schema:
|
|
5715
|
+
$ref: '#/components/schemas/OpsInvestigation'
|
|
5716
|
+
'400':
|
|
5717
|
+
$ref: '#/components/responses/BadRequest'
|
|
5718
|
+
'401':
|
|
5719
|
+
$ref: '#/components/responses/Unauthorized'
|
|
5720
|
+
'403':
|
|
5721
|
+
$ref: '#/components/responses/Forbidden'
|
|
5722
|
+
'404':
|
|
5723
|
+
$ref: '#/components/responses/NotFound'
|
|
5724
|
+
'422':
|
|
5725
|
+
$ref: '#/components/responses/UnprocessableEntity'
|
|
5726
|
+
x-error-codes:
|
|
5727
|
+
- BAD_REQUEST
|
|
5728
|
+
- UNAUTHORIZED
|
|
5729
|
+
- FORBIDDEN
|
|
5730
|
+
- NOT_FOUND
|
|
5731
|
+
- VALIDATION
|
|
5732
|
+
x-cli:
|
|
5733
|
+
name: update
|
|
5734
|
+
positional:
|
|
5735
|
+
- handle
|
|
5736
|
+
- investigationId
|
|
5638
5737
|
/api/admin/agent-profiles:
|
|
5639
5738
|
get:
|
|
5640
5739
|
operationId: listOpsAgents
|
|
@@ -9217,6 +9316,9 @@ components:
|
|
|
9217
9316
|
locked:
|
|
9218
9317
|
description: If `true`, dashboard hides edit controls (e.g. the trailing public-floor entry).
|
|
9219
9318
|
type: boolean
|
|
9319
|
+
whitelist:
|
|
9320
|
+
description: Cosmetic marker. When `true`, the dashboard renders this condition as the pinned, always-first "whitelist" allowlist block (a direct `email`/`user_id` `in […]` list) rather than a numbered targeting step. Purely presentational — ignored by evaluation, which treats the entry as an ordinary condition.
|
|
9321
|
+
type: boolean
|
|
9220
9322
|
required:
|
|
9221
9323
|
- id
|
|
9222
9324
|
- type
|
|
@@ -9618,6 +9720,9 @@ components:
|
|
|
9618
9720
|
locked:
|
|
9619
9721
|
description: If `true`, dashboard hides edit controls (e.g. the trailing public-floor entry).
|
|
9620
9722
|
type: boolean
|
|
9723
|
+
whitelist:
|
|
9724
|
+
description: Cosmetic marker. When `true`, the dashboard renders this condition as the pinned, always-first "whitelist" allowlist block (a direct `email`/`user_id` `in […]` list) rather than a numbered targeting step. Purely presentational — ignored by evaluation, which treats the entry as an ordinary condition.
|
|
9725
|
+
type: boolean
|
|
9621
9726
|
required:
|
|
9622
9727
|
- id
|
|
9623
9728
|
- type
|
|
@@ -9917,6 +10022,9 @@ components:
|
|
|
9917
10022
|
locked:
|
|
9918
10023
|
description: If `true`, dashboard hides edit controls (e.g. the trailing public-floor entry).
|
|
9919
10024
|
type: boolean
|
|
10025
|
+
whitelist:
|
|
10026
|
+
description: Cosmetic marker. When `true`, the dashboard renders this condition as the pinned, always-first "whitelist" allowlist block (a direct `email`/`user_id` `in […]` list) rather than a numbered targeting step. Purely presentational — ignored by evaluation, which treats the entry as an ordinary condition.
|
|
10027
|
+
type: boolean
|
|
9920
10028
|
required:
|
|
9921
10029
|
- id
|
|
9922
10030
|
- type
|
|
@@ -11405,12 +11513,26 @@ components:
|
|
|
11405
11513
|
additionalProperties: {}
|
|
11406
11514
|
description: JSON Schema (draft 2020-12) describing the shape of the config value. Top-level `type` must be `'object'`; every published value is validated against this schema.
|
|
11407
11515
|
value:
|
|
11516
|
+
type: object
|
|
11517
|
+
additionalProperties: {}
|
|
11408
11518
|
description: 'Initial config value. Either a single JSON object applied to every env, or a `{ env: value }` map seeding per-env values. Must match `schema`. Defaults to `{}` on every env when omitted.'
|
|
11519
|
+
dev:
|
|
11520
|
+
type: object
|
|
11521
|
+
additionalProperties: {}
|
|
11522
|
+
description: Seed the **dev** env's initial value (version 1), overriding `value` for dev. Published immediately. Must match `schema`.
|
|
11523
|
+
staging:
|
|
11524
|
+
type: object
|
|
11525
|
+
additionalProperties: {}
|
|
11526
|
+
description: Seed the **staging** env's initial value (version 1), overriding `value` for staging. Published immediately. Must match `schema`.
|
|
11527
|
+
prod:
|
|
11528
|
+
type: object
|
|
11529
|
+
additionalProperties: {}
|
|
11530
|
+
description: Seed the **prod** env's initial value (version 1), overriding `value` for prod. Published immediately. Must match `schema`.
|
|
11409
11531
|
required:
|
|
11410
11532
|
- name
|
|
11411
11533
|
- schema
|
|
11412
11534
|
additionalProperties: false
|
|
11413
|
-
description: Body for `POST /api/admin/configs`. `name` + `schema` required.
|
|
11535
|
+
description: Body for `POST /api/admin/configs`. `name` + `schema` required. Per-env `dev`/`staging`/`prod` values are published to that env at version 1 (overriding `value`).
|
|
11414
11536
|
CreateConfigResponse:
|
|
11415
11537
|
type: object
|
|
11416
11538
|
properties:
|
|
@@ -11540,11 +11662,25 @@ components:
|
|
|
11540
11662
|
type: object
|
|
11541
11663
|
additionalProperties: {}
|
|
11542
11664
|
value:
|
|
11543
|
-
|
|
11665
|
+
type: object
|
|
11666
|
+
additionalProperties: {}
|
|
11667
|
+
description: Flat value applied to **every** env. Publishes a new version per env. To publish one env only, pass that env's key (`dev`/`staging`/`prod`) instead.
|
|
11668
|
+
dev:
|
|
11669
|
+
type: object
|
|
11670
|
+
additionalProperties: {}
|
|
11671
|
+
description: Publish a new version to the **dev** env only, immediately (no draft). Overrides `value` for dev. Must match the effective schema.
|
|
11672
|
+
staging:
|
|
11673
|
+
type: object
|
|
11674
|
+
additionalProperties: {}
|
|
11675
|
+
description: Publish a new version to the **staging** env only, immediately (no draft). Overrides `value` for staging. Must match the effective schema.
|
|
11676
|
+
prod:
|
|
11677
|
+
type: object
|
|
11678
|
+
additionalProperties: {}
|
|
11679
|
+
description: Publish a new version to the **prod** env only, immediately (no draft). Overrides `value` for prod. Must match the effective schema.
|
|
11544
11680
|
folder:
|
|
11545
11681
|
$ref: '#/components/schemas/Folder'
|
|
11546
11682
|
additionalProperties: false
|
|
11547
|
-
description: Body for `PATCH /api/admin/configs/{id}`. Partial — only supplied fields change. `value` republishes on every env.
|
|
11683
|
+
description: Body for `PATCH /api/admin/configs/{id}`. Partial — only supplied fields change. `value` republishes on every env; per-env `dev`/`staging`/`prod` publish a new version to just that env.
|
|
11548
11684
|
UpdateConfigResponse:
|
|
11549
11685
|
type: object
|
|
11550
11686
|
properties:
|
|
@@ -11567,6 +11703,8 @@ components:
|
|
|
11567
11703
|
env:
|
|
11568
11704
|
$ref: '#/components/schemas/Env'
|
|
11569
11705
|
value:
|
|
11706
|
+
type: object
|
|
11707
|
+
additionalProperties: {}
|
|
11570
11708
|
description: Draft value to stage on `env`. Validated against the config's current schema.
|
|
11571
11709
|
required:
|
|
11572
11710
|
- env
|
|
@@ -13123,6 +13261,11 @@ components:
|
|
|
13123
13261
|
- lower_better
|
|
13124
13262
|
- neutral
|
|
13125
13263
|
description: Desired direction of movement. `higher_better` (default), `lower_better`, or `neutral` (guardrail).
|
|
13264
|
+
MetricDisplayUnit:
|
|
13265
|
+
description: Display unit (e.g. `ms`, `%`, `$`), or `null` when unitless.
|
|
13266
|
+
anyOf:
|
|
13267
|
+
- type: string
|
|
13268
|
+
- type: 'null'
|
|
13126
13269
|
CreateMetricWithQuery:
|
|
13127
13270
|
type: object
|
|
13128
13271
|
properties:
|
|
@@ -13140,6 +13283,8 @@ components:
|
|
|
13140
13283
|
$ref: '#/components/schemas/MetricDefaultMinEffectOfInterest'
|
|
13141
13284
|
direction:
|
|
13142
13285
|
$ref: '#/components/schemas/MetricDirection'
|
|
13286
|
+
unit:
|
|
13287
|
+
$ref: '#/components/schemas/MetricDisplayUnit'
|
|
13143
13288
|
required:
|
|
13144
13289
|
- name
|
|
13145
13290
|
- event_name
|
|
@@ -13163,6 +13308,8 @@ components:
|
|
|
13163
13308
|
$ref: '#/components/schemas/MetricDefaultMinEffectOfInterest'
|
|
13164
13309
|
direction:
|
|
13165
13310
|
$ref: '#/components/schemas/MetricDirection'
|
|
13311
|
+
unit:
|
|
13312
|
+
$ref: '#/components/schemas/MetricDisplayUnit'
|
|
13166
13313
|
required:
|
|
13167
13314
|
- name
|
|
13168
13315
|
- event_name
|
|
@@ -13300,6 +13447,8 @@ components:
|
|
|
13300
13447
|
$ref: '#/components/schemas/MetricDefaultMinEffectOfInterest'
|
|
13301
13448
|
direction:
|
|
13302
13449
|
$ref: '#/components/schemas/MetricDirection'
|
|
13450
|
+
unit:
|
|
13451
|
+
$ref: '#/components/schemas/MetricDisplayUnit'
|
|
13303
13452
|
required:
|
|
13304
13453
|
- query
|
|
13305
13454
|
additionalProperties: false
|
|
@@ -13319,6 +13468,8 @@ components:
|
|
|
13319
13468
|
$ref: '#/components/schemas/MetricDefaultMinEffectOfInterest'
|
|
13320
13469
|
direction:
|
|
13321
13470
|
$ref: '#/components/schemas/MetricDirection'
|
|
13471
|
+
unit:
|
|
13472
|
+
$ref: '#/components/schemas/MetricDisplayUnit'
|
|
13322
13473
|
required:
|
|
13323
13474
|
- query_ir
|
|
13324
13475
|
additionalProperties: false
|
|
@@ -13336,8 +13487,10 @@ components:
|
|
|
13336
13487
|
$ref: '#/components/schemas/MetricDefaultMinEffectOfInterest'
|
|
13337
13488
|
direction:
|
|
13338
13489
|
$ref: '#/components/schemas/MetricDirection'
|
|
13490
|
+
unit:
|
|
13491
|
+
$ref: '#/components/schemas/MetricDisplayUnit'
|
|
13339
13492
|
additionalProperties: false
|
|
13340
|
-
description: Update-metric variant that leaves the query untouched (metadata-only edit — folder, event, winsorisation, default minimum effect of interest, direction).
|
|
13493
|
+
description: Update-metric variant that leaves the query untouched (metadata-only edit — folder, event, winsorisation, default minimum effect of interest, direction, display unit).
|
|
13341
13494
|
UpdateMetricRequest:
|
|
13342
13495
|
oneOf:
|
|
13343
13496
|
- $ref: '#/components/schemas/UpdateMetricWithQuery'
|
|
@@ -14329,6 +14482,19 @@ components:
|
|
|
14329
14482
|
- agent
|
|
14330
14483
|
additionalProperties: false
|
|
14331
14484
|
description: 'The fully-resolved owner of a queue item — a person and/or an AI agent. The two halves are independent: an item may have a person, an agent, both, or neither (both `null`).'
|
|
14485
|
+
OpsRunAction:
|
|
14486
|
+
type: string
|
|
14487
|
+
enum:
|
|
14488
|
+
- link_pr
|
|
14489
|
+
- notify
|
|
14490
|
+
- status
|
|
14491
|
+
- superseded
|
|
14492
|
+
description: The final action that closed a run record — `link_pr`/`notify` are the agent's terminal ops actions, `status` a completion status flip (ready_for_qa/resolved), `superseded` a newer ack replacing an open run.
|
|
14493
|
+
OpsRunActionOrNull:
|
|
14494
|
+
anyOf:
|
|
14495
|
+
- $ref: '#/components/schemas/OpsRunAction'
|
|
14496
|
+
- type: 'null'
|
|
14497
|
+
description: Which final action closed the run, or `null` while it is open (or a non-run record).
|
|
14332
14498
|
OpsRun:
|
|
14333
14499
|
type: object
|
|
14334
14500
|
properties:
|
|
@@ -14355,6 +14521,11 @@ components:
|
|
|
14355
14521
|
- type: string
|
|
14356
14522
|
- type: 'null'
|
|
14357
14523
|
description: The agent-run session id recorded on the ack (dashboard deep-links to the run page), or `null`.
|
|
14524
|
+
sessionUrl:
|
|
14525
|
+
anyOf:
|
|
14526
|
+
- type: string
|
|
14527
|
+
- type: 'null'
|
|
14528
|
+
description: 'The run''s session-page deep link, or `null`. DERIVED (never stored): rebuilt from `sessionId` + the run''s trigger connector — Claude''s routine id (`?trigger=`), Copilot''s repo (`/tasks/`), Cursor/Jules from the id alone.'
|
|
14358
14529
|
startedAt:
|
|
14359
14530
|
type: string
|
|
14360
14531
|
description: ISO-8601 timestamp the run started (the ack time).
|
|
@@ -14364,15 +14535,7 @@ components:
|
|
|
14364
14535
|
- type: 'null'
|
|
14365
14536
|
description: ISO-8601 timestamp the run closed, or `null` while still open.
|
|
14366
14537
|
completedAction:
|
|
14367
|
-
|
|
14368
|
-
- type: string
|
|
14369
|
-
enum:
|
|
14370
|
-
- link_pr
|
|
14371
|
-
- notify
|
|
14372
|
-
- status
|
|
14373
|
-
- superseded
|
|
14374
|
-
- type: 'null'
|
|
14375
|
-
description: Which final action closed the run — `link_pr`/`notify` are the agent's terminal ops actions, `status` a completion status flip (ready_for_qa/resolved), `superseded` a newer ack replacing it. `null` while the run is open.
|
|
14538
|
+
$ref: '#/components/schemas/OpsRunActionOrNull'
|
|
14376
14539
|
prNumber:
|
|
14377
14540
|
anyOf:
|
|
14378
14541
|
- type: number
|
|
@@ -14389,6 +14552,7 @@ components:
|
|
|
14389
14552
|
- connectorId
|
|
14390
14553
|
- ackedBy
|
|
14391
14554
|
- sessionId
|
|
14555
|
+
- sessionUrl
|
|
14392
14556
|
- startedAt
|
|
14393
14557
|
- completedAt
|
|
14394
14558
|
- completedAction
|
|
@@ -14562,6 +14726,28 @@ components:
|
|
|
14562
14726
|
- $ref: '#/components/schemas/OpsItemPriority'
|
|
14563
14727
|
- type: 'null'
|
|
14564
14728
|
description: Initial triage priority, or `null`.
|
|
14729
|
+
status:
|
|
14730
|
+
anyOf:
|
|
14731
|
+
- $ref: '#/components/schemas/OpsItemStatus'
|
|
14732
|
+
description: Initial lifecycle status; defaults to `open` when omitted.
|
|
14733
|
+
assigneeId:
|
|
14734
|
+
anyOf:
|
|
14735
|
+
- type: string
|
|
14736
|
+
- type: 'null'
|
|
14737
|
+
description: The `users.id` of the person to assign as owner at creation, or `null`.
|
|
14738
|
+
subscribers:
|
|
14739
|
+
type: array
|
|
14740
|
+
items:
|
|
14741
|
+
type: string
|
|
14742
|
+
format: email
|
|
14743
|
+
default: []
|
|
14744
|
+
description: Emails of teammates to subscribe to this item's Slack pings at creation.
|
|
14745
|
+
tags:
|
|
14746
|
+
type: array
|
|
14747
|
+
items:
|
|
14748
|
+
type: string
|
|
14749
|
+
default: []
|
|
14750
|
+
description: Tag names to attach at creation (get-or-created by name, deduped case-insensitively).
|
|
14565
14751
|
reporterEmail:
|
|
14566
14752
|
anyOf:
|
|
14567
14753
|
- type: string
|
|
@@ -14631,6 +14817,28 @@ components:
|
|
|
14631
14817
|
- $ref: '#/components/schemas/OpsItemPriority'
|
|
14632
14818
|
- type: 'null'
|
|
14633
14819
|
description: Initial triage priority, or `null`.
|
|
14820
|
+
status:
|
|
14821
|
+
anyOf:
|
|
14822
|
+
- $ref: '#/components/schemas/OpsItemStatus'
|
|
14823
|
+
description: Initial lifecycle status; defaults to `open` when omitted.
|
|
14824
|
+
assigneeId:
|
|
14825
|
+
anyOf:
|
|
14826
|
+
- type: string
|
|
14827
|
+
- type: 'null'
|
|
14828
|
+
description: The `users.id` of the person to assign as owner at creation, or `null`.
|
|
14829
|
+
subscribers:
|
|
14830
|
+
type: array
|
|
14831
|
+
items:
|
|
14832
|
+
type: string
|
|
14833
|
+
format: email
|
|
14834
|
+
default: []
|
|
14835
|
+
description: Emails of teammates to subscribe to this item's Slack pings at creation.
|
|
14836
|
+
tags:
|
|
14837
|
+
type: array
|
|
14838
|
+
items:
|
|
14839
|
+
type: string
|
|
14840
|
+
default: []
|
|
14841
|
+
description: Tag names to attach at creation (get-or-created by name, deduped case-insensitively).
|
|
14634
14842
|
reporterEmail:
|
|
14635
14843
|
anyOf:
|
|
14636
14844
|
- type: string
|
|
@@ -15210,21 +15418,18 @@ components:
|
|
|
15210
15418
|
- type: string
|
|
15211
15419
|
- type: 'null'
|
|
15212
15420
|
description: The agent-run session id, or `null`.
|
|
15213
|
-
|
|
15421
|
+
sessionUrl:
|
|
15214
15422
|
anyOf:
|
|
15215
15423
|
- type: string
|
|
15216
15424
|
- type: 'null'
|
|
15217
|
-
description:
|
|
15218
|
-
|
|
15425
|
+
description: 'The run''s session-page deep link, or `null`. DERIVED (never stored): rebuilt from `sessionId` + the run''s trigger connector — Claude''s routine id (`?trigger=`), Copilot''s repo (`/tasks/`), Cursor/Jules from the id alone. Only `working` run records carry one.'
|
|
15426
|
+
ackedBy:
|
|
15219
15427
|
anyOf:
|
|
15220
15428
|
- type: string
|
|
15221
|
-
enum:
|
|
15222
|
-
- link_pr
|
|
15223
|
-
- notify
|
|
15224
|
-
- status
|
|
15225
|
-
- superseded
|
|
15226
15429
|
- type: 'null'
|
|
15227
|
-
description:
|
|
15430
|
+
description: Email of the human who acked (run records for a human ack), or `null`.
|
|
15431
|
+
completedAction:
|
|
15432
|
+
$ref: '#/components/schemas/OpsRunActionOrNull'
|
|
15228
15433
|
createdAt:
|
|
15229
15434
|
type: string
|
|
15230
15435
|
description: ISO-8601 creation timestamp.
|
|
@@ -15252,6 +15457,7 @@ components:
|
|
|
15252
15457
|
- startedAt
|
|
15253
15458
|
- completedAt
|
|
15254
15459
|
- sessionId
|
|
15460
|
+
- sessionUrl
|
|
15255
15461
|
- ackedBy
|
|
15256
15462
|
- completedAction
|
|
15257
15463
|
- createdAt
|
|
@@ -15368,6 +15574,94 @@ components:
|
|
|
15368
15574
|
- kind
|
|
15369
15575
|
additionalProperties: false
|
|
15370
15576
|
description: Body for `POST /api/admin/ops/{handle}/investigation`. `kind` is required; include at least one content field (`summary`/`findings`/`question`/`qaNotes`) — the panel renders whatever it gets.
|
|
15577
|
+
UpdateOpsInvestigationRequest:
|
|
15578
|
+
type: object
|
|
15579
|
+
properties:
|
|
15580
|
+
kind:
|
|
15581
|
+
type: string
|
|
15582
|
+
enum:
|
|
15583
|
+
- investigated
|
|
15584
|
+
- detected
|
|
15585
|
+
- question
|
|
15586
|
+
- ready_for_qa
|
|
15587
|
+
- working
|
|
15588
|
+
- note
|
|
15589
|
+
description: Reclassify the record's lifecycle stage (e.g. flip a `working` run into `investigated` once findings land).
|
|
15590
|
+
summary:
|
|
15591
|
+
type: string
|
|
15592
|
+
maxLength: 2000
|
|
15593
|
+
description: One-line summary of the record.
|
|
15594
|
+
findings:
|
|
15595
|
+
type: string
|
|
15596
|
+
maxLength: 50000
|
|
15597
|
+
description: The full findings write-up (markdown).
|
|
15598
|
+
question:
|
|
15599
|
+
type: string
|
|
15600
|
+
maxLength: 10000
|
|
15601
|
+
description: A blocking question for the team (markdown).
|
|
15602
|
+
qaNotes:
|
|
15603
|
+
type: string
|
|
15604
|
+
maxLength: 50000
|
|
15605
|
+
description: How to verify the fix — QA notes (markdown).
|
|
15606
|
+
model:
|
|
15607
|
+
type: string
|
|
15608
|
+
maxLength: 200
|
|
15609
|
+
description: The model the agent ran on.
|
|
15610
|
+
prNumber:
|
|
15611
|
+
type: integer
|
|
15612
|
+
description: A PR the record references.
|
|
15613
|
+
prUrl:
|
|
15614
|
+
type: string
|
|
15615
|
+
format: uri
|
|
15616
|
+
maxLength: 2000
|
|
15617
|
+
description: HTML URL of that PR.
|
|
15618
|
+
sources:
|
|
15619
|
+
type: array
|
|
15620
|
+
maxItems: 200
|
|
15621
|
+
items:
|
|
15622
|
+
type: object
|
|
15623
|
+
properties:
|
|
15624
|
+
path:
|
|
15625
|
+
type: string
|
|
15626
|
+
description: Repo-relative file path inspected.
|
|
15627
|
+
url:
|
|
15628
|
+
type: string
|
|
15629
|
+
description: External link consulted.
|
|
15630
|
+
label:
|
|
15631
|
+
type: string
|
|
15632
|
+
description: Human-readable label for the source.
|
|
15633
|
+
additionalProperties: false
|
|
15634
|
+
description: One file/link inspected while producing the record.
|
|
15635
|
+
description: The files/links inspected.
|
|
15636
|
+
confidence:
|
|
15637
|
+
type: string
|
|
15638
|
+
enum:
|
|
15639
|
+
- low
|
|
15640
|
+
- medium
|
|
15641
|
+
- high
|
|
15642
|
+
description: Self-reported confidence in the record.
|
|
15643
|
+
tokensUsed:
|
|
15644
|
+
type: integer
|
|
15645
|
+
description: Tokens the run consumed.
|
|
15646
|
+
durationMs:
|
|
15647
|
+
type: integer
|
|
15648
|
+
description: Run duration in milliseconds.
|
|
15649
|
+
visibility:
|
|
15650
|
+
type: string
|
|
15651
|
+
enum:
|
|
15652
|
+
- draft
|
|
15653
|
+
- published
|
|
15654
|
+
description: Record visibility. `draft` keeps it out of the panel; `published` surfaces it.
|
|
15655
|
+
completedAt:
|
|
15656
|
+
type: string
|
|
15657
|
+
description: ISO-8601 timestamp the work finished. Set it (or flip `kind` off `working`) to mark a run record done.
|
|
15658
|
+
sessionId:
|
|
15659
|
+
type: string
|
|
15660
|
+
maxLength: 300
|
|
15661
|
+
description: The agent-run session id, so the dashboard can deep-link to the run.
|
|
15662
|
+
additionalProperties: false
|
|
15663
|
+
minProperties: 1
|
|
15664
|
+
description: Body for `PATCH /api/admin/ops/{handle}/investigation/{investigationId}` — a partial update of one existing investigation record (typically the `working` run record you were handed). Send only the fields you want to change; at least one is required.
|
|
15371
15665
|
OpsAgentProfile:
|
|
15372
15666
|
type: object
|
|
15373
15667
|
properties:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shipeasy/openapi",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Shipeasy admin OpenAPI 3.2 spec (hand-authored, single source of truth) + the generated TypeScript client, Zod schemas, and types. Consumed by @shipeasy/cli and @shipeasy/mcp.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|