@snokam/mcp-api 2.16.0 → 2.17.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snokam/mcp-api",
3
- "version": "2.16.0",
3
+ "version": "2.17.0",
4
4
  "description": "MCP server exposing Snokam backend APIs as tools for Claude Code and other MCP clients",
5
5
  "type": "module",
6
6
  "bin": {
@@ -447,6 +447,112 @@
447
447
  ]
448
448
  }
449
449
  },
450
+ "/v1.0/tenders/funnel": {
451
+ "get": {
452
+ "tags": [
453
+ "Tenders"
454
+ ],
455
+ "summary": "Pipeline funnel analytics: stage counts, conversion rates, cycle times",
456
+ "operationId": "GetTenderFunnel",
457
+ "parameters": [
458
+ {
459
+ "name": "windowDays",
460
+ "in": "query",
461
+ "description": "Rolling window in days (default 30, max 365)",
462
+ "schema": {
463
+ "type": "integer",
464
+ "format": "int32"
465
+ }
466
+ }
467
+ ],
468
+ "responses": {
469
+ "200": {
470
+ "description": "Payload of FunnelResponse",
471
+ "content": {
472
+ "application/json": {
473
+ "schema": {
474
+ "$ref": "#/components/schemas/funnelResponse"
475
+ }
476
+ }
477
+ }
478
+ }
479
+ },
480
+ "security": [
481
+ {
482
+ "Implicit": [
483
+ "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
484
+ ]
485
+ }
486
+ ]
487
+ }
488
+ },
489
+ "/v1.0/tenders/stats": {
490
+ "get": {
491
+ "tags": [
492
+ "Tenders"
493
+ ],
494
+ "summary": "Aggregated tender KPIs for the admin dashboard (by status/stage/health + activity window)",
495
+ "operationId": "GetTenderStats",
496
+ "parameters": [
497
+ {
498
+ "name": "windowDays",
499
+ "in": "query",
500
+ "description": "Rolling window for activity-based metrics (defaults to 30, max 365)",
501
+ "schema": {
502
+ "type": "integer",
503
+ "format": "int32"
504
+ }
505
+ }
506
+ ],
507
+ "responses": {
508
+ "200": {
509
+ "description": "Payload of TenderStatsResponse",
510
+ "content": {
511
+ "application/json": {
512
+ "schema": {
513
+ "$ref": "#/components/schemas/tenderStatsResponse"
514
+ }
515
+ }
516
+ }
517
+ }
518
+ },
519
+ "security": [
520
+ {
521
+ "Implicit": [
522
+ "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
523
+ ]
524
+ }
525
+ ]
526
+ }
527
+ },
528
+ "/v1.0/consultants/stats": {
529
+ "get": {
530
+ "tags": [
531
+ "Consultants"
532
+ ],
533
+ "summary": "Aggregated consultant KPIs (total, availability split, avg fit score from latest matches)",
534
+ "operationId": "GetConsultantStats",
535
+ "responses": {
536
+ "200": {
537
+ "description": "Payload of ConsultantStatsResponse",
538
+ "content": {
539
+ "application/json": {
540
+ "schema": {
541
+ "$ref": "#/components/schemas/consultantStatsResponse"
542
+ }
543
+ }
544
+ }
545
+ }
546
+ },
547
+ "security": [
548
+ {
549
+ "Implicit": [
550
+ "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
551
+ ]
552
+ }
553
+ ]
554
+ }
555
+ },
450
556
  "/v1.0/crawl/sources": {
451
557
  "get": {
452
558
  "tags": [
@@ -1436,45 +1542,6 @@
1436
1542
  ]
1437
1543
  }
1438
1544
  },
1439
- "/v1.0/tenders/funnel": {
1440
- "get": {
1441
- "tags": [
1442
- "Tenders"
1443
- ],
1444
- "summary": "Pipeline funnel analytics: stage counts, conversion rates, cycle times",
1445
- "operationId": "GetTenderFunnel",
1446
- "parameters": [
1447
- {
1448
- "name": "windowDays",
1449
- "in": "query",
1450
- "description": "Rolling window in days (default 30, max 365)",
1451
- "schema": {
1452
- "type": "integer",
1453
- "format": "int32"
1454
- }
1455
- }
1456
- ],
1457
- "responses": {
1458
- "200": {
1459
- "description": "Payload of FunnelResponse",
1460
- "content": {
1461
- "application/json": {
1462
- "schema": {
1463
- "$ref": "#/components/schemas/funnelResponse"
1464
- }
1465
- }
1466
- }
1467
- }
1468
- },
1469
- "security": [
1470
- {
1471
- "Implicit": [
1472
- "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
1473
- ]
1474
- }
1475
- ]
1476
- }
1477
- },
1478
1545
  "/v1.0/realtime/negotiate": {
1479
1546
  "post": {
1480
1547
  "tags": [
@@ -1515,6 +1582,69 @@
1515
1582
  ]
1516
1583
  }
1517
1584
  },
1585
+ "/v1.0/stream": {
1586
+ "get": {
1587
+ "tags": [
1588
+ "Realtime"
1589
+ ],
1590
+ "summary": "Unified SSE stream: tender/job/crawl/consultant/audit events on one connection",
1591
+ "operationId": "StreamAll",
1592
+ "parameters": [
1593
+ {
1594
+ "name": "channels",
1595
+ "in": "query",
1596
+ "description": "Comma-separated namespaces to include (tender,job,crawl,consultant,audit). Default: all.",
1597
+ "schema": {
1598
+ "type": "string"
1599
+ }
1600
+ }
1601
+ ],
1602
+ "responses": {},
1603
+ "security": [
1604
+ {
1605
+ "Implicit": [
1606
+ "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
1607
+ ]
1608
+ }
1609
+ ]
1610
+ }
1611
+ },
1612
+ "/v1.0/tenders/stream-redirect": {
1613
+ "get": {
1614
+ "tags": [
1615
+ "Realtime"
1616
+ ],
1617
+ "summary": "Deprecated: redirects to /v1.0/stream?channels=tender,job",
1618
+ "operationId": "DeprecatedTenderStream",
1619
+ "responses": {},
1620
+ "deprecated": true,
1621
+ "security": [
1622
+ {
1623
+ "Implicit": [
1624
+ "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
1625
+ ]
1626
+ }
1627
+ ]
1628
+ }
1629
+ },
1630
+ "/v1.0/crawl/stream-redirect": {
1631
+ "get": {
1632
+ "tags": [
1633
+ "Realtime"
1634
+ ],
1635
+ "summary": "Deprecated: redirects to /v1.0/stream?channels=crawl,job",
1636
+ "operationId": "DeprecatedCrawlStream",
1637
+ "responses": {},
1638
+ "deprecated": true,
1639
+ "security": [
1640
+ {
1641
+ "Implicit": [
1642
+ "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
1643
+ ]
1644
+ }
1645
+ ]
1646
+ }
1647
+ },
1518
1648
  "/v1.0/salesforce/opportunities": {
1519
1649
  "get": {
1520
1650
  "tags": [
@@ -1723,136 +1853,6 @@
1723
1853
  ]
1724
1854
  }
1725
1855
  },
1726
- "/v1.0/tenders/stats": {
1727
- "get": {
1728
- "tags": [
1729
- "Tenders"
1730
- ],
1731
- "summary": "Aggregated tender KPIs for the admin dashboard (by status/stage/health + activity window)",
1732
- "operationId": "GetTenderStats",
1733
- "parameters": [
1734
- {
1735
- "name": "windowDays",
1736
- "in": "query",
1737
- "description": "Rolling window for activity-based metrics (defaults to 30, max 365)",
1738
- "schema": {
1739
- "type": "integer",
1740
- "format": "int32"
1741
- }
1742
- }
1743
- ],
1744
- "responses": {
1745
- "200": {
1746
- "description": "Payload of TenderStatsResponse",
1747
- "content": {
1748
- "application/json": {
1749
- "schema": {
1750
- "$ref": "#/components/schemas/tenderStatsResponse"
1751
- }
1752
- }
1753
- }
1754
- }
1755
- },
1756
- "security": [
1757
- {
1758
- "Implicit": [
1759
- "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
1760
- ]
1761
- }
1762
- ]
1763
- }
1764
- },
1765
- "/v1.0/consultants/stats": {
1766
- "get": {
1767
- "tags": [
1768
- "Consultants"
1769
- ],
1770
- "summary": "Aggregated consultant KPIs (total, availability split, avg fit score from latest matches)",
1771
- "operationId": "GetConsultantStats",
1772
- "responses": {
1773
- "200": {
1774
- "description": "Payload of ConsultantStatsResponse",
1775
- "content": {
1776
- "application/json": {
1777
- "schema": {
1778
- "$ref": "#/components/schemas/consultantStatsResponse"
1779
- }
1780
- }
1781
- }
1782
- }
1783
- },
1784
- "security": [
1785
- {
1786
- "Implicit": [
1787
- "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
1788
- ]
1789
- }
1790
- ]
1791
- }
1792
- },
1793
- "/v1.0/stream": {
1794
- "get": {
1795
- "tags": [
1796
- "Realtime"
1797
- ],
1798
- "summary": "Unified SSE stream: tender/job/crawl/consultant/audit events on one connection",
1799
- "operationId": "StreamAll",
1800
- "parameters": [
1801
- {
1802
- "name": "channels",
1803
- "in": "query",
1804
- "description": "Comma-separated namespaces to include (tender,job,crawl,consultant,audit). Default: all.",
1805
- "schema": {
1806
- "type": "string"
1807
- }
1808
- }
1809
- ],
1810
- "responses": {},
1811
- "security": [
1812
- {
1813
- "Implicit": [
1814
- "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
1815
- ]
1816
- }
1817
- ]
1818
- }
1819
- },
1820
- "/v1.0/tenders/stream-redirect": {
1821
- "get": {
1822
- "tags": [
1823
- "Realtime"
1824
- ],
1825
- "summary": "Deprecated: redirects to /v1.0/stream?channels=tender,job",
1826
- "operationId": "DeprecatedTenderStream",
1827
- "responses": {},
1828
- "deprecated": true,
1829
- "security": [
1830
- {
1831
- "Implicit": [
1832
- "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
1833
- ]
1834
- }
1835
- ]
1836
- }
1837
- },
1838
- "/v1.0/crawl/stream-redirect": {
1839
- "get": {
1840
- "tags": [
1841
- "Realtime"
1842
- ],
1843
- "summary": "Deprecated: redirects to /v1.0/stream?channels=crawl,job",
1844
- "operationId": "DeprecatedCrawlStream",
1845
- "responses": {},
1846
- "deprecated": true,
1847
- "security": [
1848
- {
1849
- "Implicit": [
1850
- "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
1851
- ]
1852
- }
1853
- ]
1854
- }
1855
- },
1856
1856
  "/v1.0/tenders": {
1857
1857
  "get": {
1858
1858
  "tags": [
@@ -2083,6 +2083,55 @@
2083
2083
  ]
2084
2084
  }
2085
2085
  },
2086
+ "/v1.0/tenders/{id}/jobs/{jobId}/snapshot": {
2087
+ "get": {
2088
+ "tags": [
2089
+ "Tenders"
2090
+ ],
2091
+ "summary": "Return the tender as it looked right after a given agent job ran (time-travel view).",
2092
+ "operationId": "GetTenderJobSnapshot",
2093
+ "parameters": [
2094
+ {
2095
+ "name": "id",
2096
+ "in": "path",
2097
+ "required": true,
2098
+ "schema": {
2099
+ "type": "string"
2100
+ }
2101
+ },
2102
+ {
2103
+ "name": "jobId",
2104
+ "in": "path",
2105
+ "required": true,
2106
+ "schema": {
2107
+ "type": "string"
2108
+ }
2109
+ }
2110
+ ],
2111
+ "responses": {
2112
+ "200": {
2113
+ "description": "Payload of Tender",
2114
+ "content": {
2115
+ "application/json": {
2116
+ "schema": {
2117
+ "$ref": "#/components/schemas/tender"
2118
+ }
2119
+ }
2120
+ }
2121
+ },
2122
+ "404": {
2123
+ "description": "No description"
2124
+ }
2125
+ },
2126
+ "security": [
2127
+ {
2128
+ "Implicit": [
2129
+ "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
2130
+ ]
2131
+ }
2132
+ ]
2133
+ }
2134
+ },
2086
2135
  "/v1.0/tenders/{id}/jobs": {
2087
2136
  "get": {
2088
2137
  "tags": [
@@ -2348,6 +2397,10 @@
2348
2397
  "$ref": "#/components/schemas/agentJobLogEntry"
2349
2398
  },
2350
2399
  "nullable": true
2400
+ },
2401
+ "afterSnapshot": {
2402
+ "type": "string",
2403
+ "nullable": true
2351
2404
  }
2352
2405
  }
2353
2406
  },
@@ -447,6 +447,112 @@
447
447
  ]
448
448
  }
449
449
  },
450
+ "/v1.0/tenders/funnel": {
451
+ "get": {
452
+ "tags": [
453
+ "Tenders"
454
+ ],
455
+ "summary": "Pipeline funnel analytics: stage counts, conversion rates, cycle times",
456
+ "operationId": "GetTenderFunnel",
457
+ "parameters": [
458
+ {
459
+ "name": "windowDays",
460
+ "in": "query",
461
+ "description": "Rolling window in days (default 30, max 365)",
462
+ "schema": {
463
+ "type": "integer",
464
+ "format": "int32"
465
+ }
466
+ }
467
+ ],
468
+ "responses": {
469
+ "200": {
470
+ "description": "Payload of FunnelResponse",
471
+ "content": {
472
+ "application/json": {
473
+ "schema": {
474
+ "$ref": "#/components/schemas/funnelResponse"
475
+ }
476
+ }
477
+ }
478
+ }
479
+ },
480
+ "security": [
481
+ {
482
+ "Implicit": [
483
+ "api://d7f15838-af74-4048-88b3-503089de0064/.default"
484
+ ]
485
+ }
486
+ ]
487
+ }
488
+ },
489
+ "/v1.0/tenders/stats": {
490
+ "get": {
491
+ "tags": [
492
+ "Tenders"
493
+ ],
494
+ "summary": "Aggregated tender KPIs for the admin dashboard (by status/stage/health + activity window)",
495
+ "operationId": "GetTenderStats",
496
+ "parameters": [
497
+ {
498
+ "name": "windowDays",
499
+ "in": "query",
500
+ "description": "Rolling window for activity-based metrics (defaults to 30, max 365)",
501
+ "schema": {
502
+ "type": "integer",
503
+ "format": "int32"
504
+ }
505
+ }
506
+ ],
507
+ "responses": {
508
+ "200": {
509
+ "description": "Payload of TenderStatsResponse",
510
+ "content": {
511
+ "application/json": {
512
+ "schema": {
513
+ "$ref": "#/components/schemas/tenderStatsResponse"
514
+ }
515
+ }
516
+ }
517
+ }
518
+ },
519
+ "security": [
520
+ {
521
+ "Implicit": [
522
+ "api://d7f15838-af74-4048-88b3-503089de0064/.default"
523
+ ]
524
+ }
525
+ ]
526
+ }
527
+ },
528
+ "/v1.0/consultants/stats": {
529
+ "get": {
530
+ "tags": [
531
+ "Consultants"
532
+ ],
533
+ "summary": "Aggregated consultant KPIs (total, availability split, avg fit score from latest matches)",
534
+ "operationId": "GetConsultantStats",
535
+ "responses": {
536
+ "200": {
537
+ "description": "Payload of ConsultantStatsResponse",
538
+ "content": {
539
+ "application/json": {
540
+ "schema": {
541
+ "$ref": "#/components/schemas/consultantStatsResponse"
542
+ }
543
+ }
544
+ }
545
+ }
546
+ },
547
+ "security": [
548
+ {
549
+ "Implicit": [
550
+ "api://d7f15838-af74-4048-88b3-503089de0064/.default"
551
+ ]
552
+ }
553
+ ]
554
+ }
555
+ },
450
556
  "/v1.0/crawl/sources": {
451
557
  "get": {
452
558
  "tags": [
@@ -1436,45 +1542,6 @@
1436
1542
  ]
1437
1543
  }
1438
1544
  },
1439
- "/v1.0/tenders/funnel": {
1440
- "get": {
1441
- "tags": [
1442
- "Tenders"
1443
- ],
1444
- "summary": "Pipeline funnel analytics: stage counts, conversion rates, cycle times",
1445
- "operationId": "GetTenderFunnel",
1446
- "parameters": [
1447
- {
1448
- "name": "windowDays",
1449
- "in": "query",
1450
- "description": "Rolling window in days (default 30, max 365)",
1451
- "schema": {
1452
- "type": "integer",
1453
- "format": "int32"
1454
- }
1455
- }
1456
- ],
1457
- "responses": {
1458
- "200": {
1459
- "description": "Payload of FunnelResponse",
1460
- "content": {
1461
- "application/json": {
1462
- "schema": {
1463
- "$ref": "#/components/schemas/funnelResponse"
1464
- }
1465
- }
1466
- }
1467
- }
1468
- },
1469
- "security": [
1470
- {
1471
- "Implicit": [
1472
- "api://d7f15838-af74-4048-88b3-503089de0064/.default"
1473
- ]
1474
- }
1475
- ]
1476
- }
1477
- },
1478
1545
  "/v1.0/realtime/negotiate": {
1479
1546
  "post": {
1480
1547
  "tags": [
@@ -1515,6 +1582,69 @@
1515
1582
  ]
1516
1583
  }
1517
1584
  },
1585
+ "/v1.0/stream": {
1586
+ "get": {
1587
+ "tags": [
1588
+ "Realtime"
1589
+ ],
1590
+ "summary": "Unified SSE stream: tender/job/crawl/consultant/audit events on one connection",
1591
+ "operationId": "StreamAll",
1592
+ "parameters": [
1593
+ {
1594
+ "name": "channels",
1595
+ "in": "query",
1596
+ "description": "Comma-separated namespaces to include (tender,job,crawl,consultant,audit). Default: all.",
1597
+ "schema": {
1598
+ "type": "string"
1599
+ }
1600
+ }
1601
+ ],
1602
+ "responses": {},
1603
+ "security": [
1604
+ {
1605
+ "Implicit": [
1606
+ "api://d7f15838-af74-4048-88b3-503089de0064/.default"
1607
+ ]
1608
+ }
1609
+ ]
1610
+ }
1611
+ },
1612
+ "/v1.0/tenders/stream-redirect": {
1613
+ "get": {
1614
+ "tags": [
1615
+ "Realtime"
1616
+ ],
1617
+ "summary": "Deprecated: redirects to /v1.0/stream?channels=tender,job",
1618
+ "operationId": "DeprecatedTenderStream",
1619
+ "responses": {},
1620
+ "deprecated": true,
1621
+ "security": [
1622
+ {
1623
+ "Implicit": [
1624
+ "api://d7f15838-af74-4048-88b3-503089de0064/.default"
1625
+ ]
1626
+ }
1627
+ ]
1628
+ }
1629
+ },
1630
+ "/v1.0/crawl/stream-redirect": {
1631
+ "get": {
1632
+ "tags": [
1633
+ "Realtime"
1634
+ ],
1635
+ "summary": "Deprecated: redirects to /v1.0/stream?channels=crawl,job",
1636
+ "operationId": "DeprecatedCrawlStream",
1637
+ "responses": {},
1638
+ "deprecated": true,
1639
+ "security": [
1640
+ {
1641
+ "Implicit": [
1642
+ "api://d7f15838-af74-4048-88b3-503089de0064/.default"
1643
+ ]
1644
+ }
1645
+ ]
1646
+ }
1647
+ },
1518
1648
  "/v1.0/salesforce/opportunities": {
1519
1649
  "get": {
1520
1650
  "tags": [
@@ -1723,136 +1853,6 @@
1723
1853
  ]
1724
1854
  }
1725
1855
  },
1726
- "/v1.0/tenders/stats": {
1727
- "get": {
1728
- "tags": [
1729
- "Tenders"
1730
- ],
1731
- "summary": "Aggregated tender KPIs for the admin dashboard (by status/stage/health + activity window)",
1732
- "operationId": "GetTenderStats",
1733
- "parameters": [
1734
- {
1735
- "name": "windowDays",
1736
- "in": "query",
1737
- "description": "Rolling window for activity-based metrics (defaults to 30, max 365)",
1738
- "schema": {
1739
- "type": "integer",
1740
- "format": "int32"
1741
- }
1742
- }
1743
- ],
1744
- "responses": {
1745
- "200": {
1746
- "description": "Payload of TenderStatsResponse",
1747
- "content": {
1748
- "application/json": {
1749
- "schema": {
1750
- "$ref": "#/components/schemas/tenderStatsResponse"
1751
- }
1752
- }
1753
- }
1754
- }
1755
- },
1756
- "security": [
1757
- {
1758
- "Implicit": [
1759
- "api://d7f15838-af74-4048-88b3-503089de0064/.default"
1760
- ]
1761
- }
1762
- ]
1763
- }
1764
- },
1765
- "/v1.0/consultants/stats": {
1766
- "get": {
1767
- "tags": [
1768
- "Consultants"
1769
- ],
1770
- "summary": "Aggregated consultant KPIs (total, availability split, avg fit score from latest matches)",
1771
- "operationId": "GetConsultantStats",
1772
- "responses": {
1773
- "200": {
1774
- "description": "Payload of ConsultantStatsResponse",
1775
- "content": {
1776
- "application/json": {
1777
- "schema": {
1778
- "$ref": "#/components/schemas/consultantStatsResponse"
1779
- }
1780
- }
1781
- }
1782
- }
1783
- },
1784
- "security": [
1785
- {
1786
- "Implicit": [
1787
- "api://d7f15838-af74-4048-88b3-503089de0064/.default"
1788
- ]
1789
- }
1790
- ]
1791
- }
1792
- },
1793
- "/v1.0/stream": {
1794
- "get": {
1795
- "tags": [
1796
- "Realtime"
1797
- ],
1798
- "summary": "Unified SSE stream: tender/job/crawl/consultant/audit events on one connection",
1799
- "operationId": "StreamAll",
1800
- "parameters": [
1801
- {
1802
- "name": "channels",
1803
- "in": "query",
1804
- "description": "Comma-separated namespaces to include (tender,job,crawl,consultant,audit). Default: all.",
1805
- "schema": {
1806
- "type": "string"
1807
- }
1808
- }
1809
- ],
1810
- "responses": {},
1811
- "security": [
1812
- {
1813
- "Implicit": [
1814
- "api://d7f15838-af74-4048-88b3-503089de0064/.default"
1815
- ]
1816
- }
1817
- ]
1818
- }
1819
- },
1820
- "/v1.0/tenders/stream-redirect": {
1821
- "get": {
1822
- "tags": [
1823
- "Realtime"
1824
- ],
1825
- "summary": "Deprecated: redirects to /v1.0/stream?channels=tender,job",
1826
- "operationId": "DeprecatedTenderStream",
1827
- "responses": {},
1828
- "deprecated": true,
1829
- "security": [
1830
- {
1831
- "Implicit": [
1832
- "api://d7f15838-af74-4048-88b3-503089de0064/.default"
1833
- ]
1834
- }
1835
- ]
1836
- }
1837
- },
1838
- "/v1.0/crawl/stream-redirect": {
1839
- "get": {
1840
- "tags": [
1841
- "Realtime"
1842
- ],
1843
- "summary": "Deprecated: redirects to /v1.0/stream?channels=crawl,job",
1844
- "operationId": "DeprecatedCrawlStream",
1845
- "responses": {},
1846
- "deprecated": true,
1847
- "security": [
1848
- {
1849
- "Implicit": [
1850
- "api://d7f15838-af74-4048-88b3-503089de0064/.default"
1851
- ]
1852
- }
1853
- ]
1854
- }
1855
- },
1856
1856
  "/v1.0/tenders": {
1857
1857
  "get": {
1858
1858
  "tags": [
@@ -2083,6 +2083,55 @@
2083
2083
  ]
2084
2084
  }
2085
2085
  },
2086
+ "/v1.0/tenders/{id}/jobs/{jobId}/snapshot": {
2087
+ "get": {
2088
+ "tags": [
2089
+ "Tenders"
2090
+ ],
2091
+ "summary": "Return the tender as it looked right after a given agent job ran (time-travel view).",
2092
+ "operationId": "GetTenderJobSnapshot",
2093
+ "parameters": [
2094
+ {
2095
+ "name": "id",
2096
+ "in": "path",
2097
+ "required": true,
2098
+ "schema": {
2099
+ "type": "string"
2100
+ }
2101
+ },
2102
+ {
2103
+ "name": "jobId",
2104
+ "in": "path",
2105
+ "required": true,
2106
+ "schema": {
2107
+ "type": "string"
2108
+ }
2109
+ }
2110
+ ],
2111
+ "responses": {
2112
+ "200": {
2113
+ "description": "Payload of Tender",
2114
+ "content": {
2115
+ "application/json": {
2116
+ "schema": {
2117
+ "$ref": "#/components/schemas/tender"
2118
+ }
2119
+ }
2120
+ }
2121
+ },
2122
+ "404": {
2123
+ "description": "No description"
2124
+ }
2125
+ },
2126
+ "security": [
2127
+ {
2128
+ "Implicit": [
2129
+ "api://d7f15838-af74-4048-88b3-503089de0064/.default"
2130
+ ]
2131
+ }
2132
+ ]
2133
+ }
2134
+ },
2086
2135
  "/v1.0/tenders/{id}/jobs": {
2087
2136
  "get": {
2088
2137
  "tags": [
@@ -2348,6 +2397,10 @@
2348
2397
  "$ref": "#/components/schemas/agentJobLogEntry"
2349
2398
  },
2350
2399
  "nullable": true
2400
+ },
2401
+ "afterSnapshot": {
2402
+ "type": "string",
2403
+ "nullable": true
2351
2404
  }
2352
2405
  }
2353
2406
  },