harness-mcp-v2 3.2.25 → 3.2.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.
Files changed (96) hide show
  1. package/README.md +72 -15
  2. package/build/client/harness-client.d.ts.map +1 -1
  3. package/build/client/harness-client.js +49 -17
  4. package/build/client/harness-client.js.map +1 -1
  5. package/build/client/sse.d.ts +9 -0
  6. package/build/client/sse.d.ts.map +1 -0
  7. package/build/client/sse.js +103 -0
  8. package/build/client/sse.js.map +1 -0
  9. package/build/client/types.d.ts +10 -2
  10. package/build/client/types.d.ts.map +1 -1
  11. package/build/data/schemas/v0/pipeline.d.ts.map +1 -1
  12. package/build/data/schemas/v0/pipeline.js +146 -223
  13. package/build/data/schemas/v0/pipeline.js.map +1 -1
  14. package/build/data/schemas/v0/template.d.ts.map +1 -1
  15. package/build/data/schemas/v0/template.js +146 -223
  16. package/build/data/schemas/v0/template.js.map +1 -1
  17. package/build/data/schemas/v1/pipeline.d.ts.map +1 -1
  18. package/build/data/schemas/v1/pipeline.js +71 -0
  19. package/build/data/schemas/v1/pipeline.js.map +1 -1
  20. package/build/data/schemas/v1/template.d.ts.map +1 -1
  21. package/build/data/schemas/v1/template.js +71 -0
  22. package/build/data/schemas/v1/template.js.map +1 -1
  23. package/build/prompts/business-value-review.d.ts.map +1 -1
  24. package/build/prompts/business-value-review.js +7 -5
  25. package/build/prompts/business-value-review.js.map +1 -1
  26. package/build/prompts/optimize-costs.js +1 -1
  27. package/build/prompts/rightsizing.js +2 -2
  28. package/build/registry/extractors.d.ts +20 -0
  29. package/build/registry/extractors.d.ts.map +1 -1
  30. package/build/registry/extractors.js +121 -0
  31. package/build/registry/extractors.js.map +1 -1
  32. package/build/registry/index.d.ts.map +1 -1
  33. package/build/registry/index.js +4 -1
  34. package/build/registry/index.js.map +1 -1
  35. package/build/registry/scope-utils.d.ts +5 -4
  36. package/build/registry/scope-utils.d.ts.map +1 -1
  37. package/build/registry/scope-utils.js +8 -4
  38. package/build/registry/scope-utils.js.map +1 -1
  39. package/build/registry/toolsets/access-control.d.ts.map +1 -1
  40. package/build/registry/toolsets/access-control.js +1 -0
  41. package/build/registry/toolsets/access-control.js.map +1 -1
  42. package/build/registry/toolsets/agents.d.ts.map +1 -1
  43. package/build/registry/toolsets/agents.js +20 -2
  44. package/build/registry/toolsets/agents.js.map +1 -1
  45. package/build/registry/toolsets/autonomous_work.d.ts.map +1 -1
  46. package/build/registry/toolsets/autonomous_work.js +39 -19
  47. package/build/registry/toolsets/autonomous_work.js.map +1 -1
  48. package/build/registry/toolsets/ccm.d.ts.map +1 -1
  49. package/build/registry/toolsets/ccm.js +112 -91
  50. package/build/registry/toolsets/ccm.js.map +1 -1
  51. package/build/registry/toolsets/chaos-descriptions.d.ts +3 -3
  52. package/build/registry/toolsets/chaos-descriptions.d.ts.map +1 -1
  53. package/build/registry/toolsets/chaos-descriptions.js +5 -3
  54. package/build/registry/toolsets/chaos-descriptions.js.map +1 -1
  55. package/build/registry/toolsets/chaos.d.ts.map +1 -1
  56. package/build/registry/toolsets/chaos.js +34 -0
  57. package/build/registry/toolsets/chaos.js.map +1 -1
  58. package/build/registry/toolsets/feature-flags.d.ts.map +1 -1
  59. package/build/registry/toolsets/feature-flags.js +483 -24
  60. package/build/registry/toolsets/feature-flags.js.map +1 -1
  61. package/build/registry/toolsets/file-store.d.ts.map +1 -1
  62. package/build/registry/toolsets/file-store.js +6 -49
  63. package/build/registry/toolsets/file-store.js.map +1 -1
  64. package/build/registry/toolsets/registries.d.ts.map +1 -1
  65. package/build/registry/toolsets/registries.js +79 -14
  66. package/build/registry/toolsets/registries.js.map +1 -1
  67. package/build/registry/toolsets/repositories.d.ts.map +1 -1
  68. package/build/registry/toolsets/repositories.js +94 -6
  69. package/build/registry/toolsets/repositories.js.map +1 -1
  70. package/build/registry/toolsets/services.d.ts.map +1 -1
  71. package/build/registry/toolsets/services.js +27 -5
  72. package/build/registry/toolsets/services.js.map +1 -1
  73. package/build/registry/toolsets/vibe.d.ts +3 -0
  74. package/build/registry/toolsets/vibe.d.ts.map +1 -0
  75. package/build/registry/toolsets/vibe.js +166 -0
  76. package/build/registry/toolsets/vibe.js.map +1 -0
  77. package/build/registry/types.d.ts +6 -4
  78. package/build/registry/types.d.ts.map +1 -1
  79. package/build/utils/base64.d.ts +21 -0
  80. package/build/utils/base64.d.ts.map +1 -0
  81. package/build/utils/base64.js +77 -0
  82. package/build/utils/base64.js.map +1 -0
  83. package/build/utils/body-normalizer.d.ts +10 -12
  84. package/build/utils/body-normalizer.d.ts.map +1 -1
  85. package/build/utils/body-normalizer.js +9 -9
  86. package/build/utils/body-normalizer.js.map +1 -1
  87. package/build/utils/errors.d.ts +2 -2
  88. package/build/utils/errors.d.ts.map +1 -1
  89. package/build/utils/errors.js.map +1 -1
  90. package/build/utils/url-parser.d.ts.map +1 -1
  91. package/build/utils/url-parser.js +60 -4
  92. package/build/utils/url-parser.js.map +1 -1
  93. package/npm-shrinkwrap.json +6 -16
  94. package/package.json +10 -4
  95. package/scripts/adm-zip-security-lib.mjs +5 -5
  96. package/scripts/ensure-secure-adm-zip.mjs +7 -7
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![MCP Toplist](https://mcptoplist.com/badge/glama%2Fharness%2Fmcp-server.svg)](https://mcptoplist.com/server/glama%2Fharness%2Fmcp-server)
4
4
 
5
- An MCP (Model Context Protocol) server that gives AI agents full access to the Harness.io platform through 11 consolidated tools and 243 resource types.
5
+ An MCP (Model Context Protocol) server that gives AI agents full access to the Harness.io platform through 11 consolidated tools and 247 resource types.
6
6
 
7
7
  ## Why Use This MCP Server
8
8
 
@@ -10,8 +10,8 @@ Most MCP servers map one tool per API endpoint. For a platform as broad as Harne
10
10
 
11
11
  This server is built differently:
12
12
 
13
- - **11 tools, 243 resource types.** A registry-based dispatch system routes `harness_list`, `harness_get`, `harness_create`, etc. to any Harness resource — pipelines, services, environments, orgs, projects, feature flags, cost data, and more. The LLM picks from 11 tools instead of hundreds.
14
- - **Full platform coverage.** 40 default toolsets spanning CI/CD, GitOps, Feature Flags, Cloud Cost Management, Security Testing, Chaos Engineering, Database DevOps, Internal Developer Portal, Software Supply Chain, Infrastructure as Code Management, Release Management, Governance, Service Overrides, Knowledge Graph, and more. Opt-in Ansible coverage is available when you need inventory and playbook data.
13
+ - **11 tools, 247 resource types.** A registry-based dispatch system routes `harness_list`, `harness_get`, `harness_create`, etc. to any Harness resource — pipelines, services, environments, orgs, projects, feature flags, cost data, and more. The LLM picks from 11 tools instead of hundreds.
14
+ - **Full platform coverage.** 41 default toolsets spanning CI/CD, GitOps, Feature Flags, Cloud Cost Management, Security Testing, Chaos Engineering, Database DevOps, Internal Developer Portal, Software Supply Chain, Infrastructure as Code Management, Release Management, Governance, Service Overrides, Knowledge Graph, and more. Opt-in Ansible coverage is available when you need inventory and playbook data.
15
15
  - **Multi-project workflows out of the box.** Agents discover organizations and projects dynamically — no hardcoded env vars needed. Ask "show failed executions across all projects" and the agent can navigate the full account hierarchy.
16
16
  - **35 prompt templates.** Pre-built prompts for common workflows: build & deploy apps end-to-end, debug failed pipelines, review DORA metrics, triage vulnerabilities, optimize cloud costs, audit access control, plan feature flag rollouts, review pull requests, approve pending pipelines, and more.
17
17
  - **Works everywhere.** Stdio transport for local clients (Claude Desktop, Cursor, Devin Desktop), HTTP transport for remote/shared deployments, Docker and Kubernetes ready.
@@ -1261,7 +1261,7 @@ Harness pipelines can be stored in three ways:
1261
1261
 
1262
1262
  ## Resource Types
1263
1263
 
1264
- 243 resource types organized across 40 toolsets. Each resource type supports a subset of CRUD operations and optional execute actions.
1264
+ 247 resource types organized across 41 toolsets. Each resource type supports a subset of CRUD operations and optional execute actions.
1265
1265
 
1266
1266
  ### Platform
1267
1267
 
@@ -1576,6 +1576,58 @@ Typical workflow:
1576
1576
  6. `harness_get` on `release_input`, `release_execution_phase_input`, `release_execution_phase_output`, `release_execution_activity_output`, or `release_execution_activity_input` using `release_id` plus `params.phase_identifier` / `params.activity_identifier` / `activity_execution_id` as documented on each resource.
1577
1577
 
1578
1578
 
1579
+ ### Vibe
1580
+
1581
+ The default-enabled `vibe` toolset covers the [Vibe Orchestrator BFF contract](tests/fixtures/vibe-bff-openapi.yaml) under `${HARNESS_BASE_URL}/vibe/v1`. It uses the existing Harness connection and account header, without adding account/org/project query parameters or scope fields to request bodies. The team validated the Vibe flow using Harness API-key authentication (PAT/SAT), so no opt-in setting is required for default sessions. The curated OpenAPI documents bearer/session authentication; the server's OAuth mode forwards the current session's bearer token. Automated regressions verify both header paths; gateway authentication remains subject to the target environment's configuration.
1582
+
1583
+ | Resource Type | List | Get | Create | Update | Delete | Execute Actions |
1584
+ | ------------- | ---- | --- | ------ | ------ | ------ | --------------- |
1585
+ | `vibe_project` | | | x | | | `prepare`, `deploy` |
1586
+ | `vibe_app_lifecycle` | | x | | | | `events` |
1587
+
1588
+ The API supports two intake paths. Keep these API-native request shapes:
1589
+
1590
+ | Source available to the coding agent | API flow |
1591
+ | ----------------------------------- | -------- |
1592
+ | GitHub repository link/connector | `harness_create` with `resource_type="vibe_project"` and `body.mode` plus the mode-specific fields. The contract names `github_link` and `github_connector` but does not define their URL, branch, or connector field shapes; these fields are forwarded to the backend without inventing a mapping. |
1593
+ | ZIP file | Call `prepare` with the app name and file metadata, upload the bytes to the returned signed target, then call `deploy`. |
1594
+ | Local source directory | The coding agent archives the intended workspace source into a ZIP locally, then follows the ZIP flow. A local path or conversational context is not an API-supported source upload. |
1595
+
1596
+ When packaging a directory, include the source, manifests, lockfiles, configuration, and intended uncommitted edits needed to build it. Exclude credentials, `.git`, installed dependencies, and generated artifacts. Packaging and the signed upload happen where the files are accessible; a hosted MCP server cannot read the coding agent's local directory.
1597
+
1598
+ For an existing ZIP, prepare the upload:
1599
+
1600
+ ```json
1601
+ {
1602
+ "resource_type": "vibe_project",
1603
+ "action": "prepare",
1604
+ "body": {
1605
+ "name": "demo-app",
1606
+ "file": {
1607
+ "path": "app.zip",
1608
+ "size_bytes": 12345,
1609
+ "content_type": "application/zip"
1610
+ }
1611
+ }
1612
+ }
1613
+ ```
1614
+
1615
+ Pass this to `harness_execute`. The size must describe the actual ZIP; `size_bytes`, `content_type`, and `md5` are optional and nullable. Additional prepare fields are preserved for backend validation, as permitted by the OpenAPI. Preparation returns `projectId`, `sourceId`, and `upload`, including each file's `uploadUrl`, `method`, `headers`, and `expiresAt`. Upload the file bytes directly using that signed URL, method, and headers; preserve the URL exactly and do not add Harness credentials to the storage request. The prepare action does not read or upload local files.
1616
+
1617
+ After a successful upload, explicitly deploy:
1618
+
1619
+ ```json
1620
+ {
1621
+ "resource_type": "vibe_project",
1622
+ "action": "deploy",
1623
+ "resource_id": "<projectId returned by prepare>"
1624
+ }
1625
+ ```
1626
+
1627
+ For JSON imports, use the returned `id` instead. Deployment also accepts `body: {"project_id": "<Vibe app id>"}` or `params.app_id`; the API wire field is snake_case `project_id` even though prepare returns camelCase `projectId`. The generic tool's top-level `project_id` is a Harness scope identifier and is never used as the Vibe app id. Import and prepare create the app/source; neither starts deployment. Writes are not automatically retried, and deployment uses the existing high-risk confirmation policy.
1628
+
1629
+ Read progress with `harness_get(resource_type="vibe_app_lifecycle", resource_id="<Vibe app id>")`. It retains app URLs, execution stages, substeps, failures, log lines, and build-analyzer details. The `events` execute action accepts `resource_id` or `params.app_id` and consumes the SSE endpoint as a finite batch: up to 20 JSON events or five seconds after connection, with a 1 MiB response limit. These limits belong to the Vibe endpoint. The connection's `HARNESS_API_TIMEOUT_MS` also bounds connection and stream consumption together; expiration returns a timeout error. A completed batch returns `events` and `stop_reason` (`end`, `event_limit`, or `duration_limit`) and closes the stream. Neither initial connection failures nor broken streams are retried. Events are transient diffs with no documented replay cursor; use lifecycle get for an authoritative snapshot. Both lifecycle reads are available in read-only mode.
1630
+
1579
1631
  ### Feature Flags
1580
1632
 
1581
1633
 
@@ -1592,11 +1644,13 @@ Typical workflow:
1592
1644
  | `fme_identity` | | | x | x | | |
1593
1645
  | `fme_standard_segment` | x | x | | | | |
1594
1646
  | `fme_segment_keys` | x | | | x | | |
1595
- | `fme_segment` | x | x | x | | x | |
1596
- | `fme_segment_definition` | x | x | x | x | x | |
1647
+ | `fme_segment` | x | x | x | x | x | |
1648
+ | `fme_segment_definition` | x | x | x | x | x | `list_keys`, `add_keys`, `remove_keys` |
1649
+ | `fme_metric` | x | x | x | x | x | |
1650
+ | `fme_event_type` | x | x | | | | |
1597
1651
 
1598
1652
 
1599
- **FME (Split.io) resources** — `fme_`* resources support **dual-mode scoping**: legacy calls pass `workspace_id` and hit the Split.io API (`api.split.io`); newer calls pass `org_id`+`project_id` together and hit Harness-native endpoints (standard `HARNESS_API_KEY`/`HARNESS_BASE_URL`, same auth as every other `harness_*` resource) instead. Passing both `workspace_id` and `org_id`/`project_id` on the same call, or mixing `org_id` with `project_id` alone, is an error — pick one mode per call. Every operation below is available in legacy mode, unchanged. Harness-native mode coverage is currently narrower:
1653
+ **FME (Split.io) resources** — `fme_`* resources support **dual-mode scoping**: legacy calls pass `workspace_id` and hit the Split.io API (`api.split.io`); newer calls pass `org_id`+`project_id` together and hit Harness-native endpoints (standard `HARNESS_API_KEY`/`HARNESS_BASE_URL`, same auth as every other `harness_*` resource) instead. Passing both `workspace_id` and `org_id`/`project_id` on the same call, or mixing `org_id` with `project_id` alone, is an error — pick one mode per call. Every operation below is available in legacy mode, unchanged, unless the resource is marked Harness-native only. Harness-native mode coverage is currently narrower:
1600
1654
 
1601
1655
  - **`fme_workspace`** — no Harness-native equivalent; legacy-only (used to discover `workspace_id` values).
1602
1656
  - **`fme_environment`** — dual-mode `list` (`workspace_id` or `org_id`+`project_id`). `get`/`create`/`update`/`delete` are Harness-native only (`/fme/api/v4/environments`) — MCP never had a `workspace_id` contract for those ops. Native list uses optional `offset`/`limit` (max 100; `harness_list` `size` maps to `limit`); envelope `{data, limit, offset, totalCount}` is promoted to `items`/`total`. Native create/update use `isProduction` (`production` accepted as an alias). Native update is JSON Merge Patch; `name` and `isProduction` are not clearable. Name max 15 characters.
@@ -1608,10 +1662,12 @@ Typical workflow:
1608
1662
  - **`fme_rule_based_segment_definition`** — (Deprecated — see `fme_segment_definition`.) Harness-native mode is rejected on every operation/action (`list`/`update`/`enable`/`disable`/`change_request`) — use `fme_segment_definition` instead (no `enable`/`disable`/`change_request` equivalent there); this resource supports only the legacy `workspace_id`/`environment_id` contract.
1609
1663
  - **`fme_traffic_type`** — dual-mode `list`. Pass `org_id`+`project_id` (preferred) or the deprecated `workspace_id`. Native pagination uses `offset`/`limit` (max 100; `harness_list` `size` maps to `limit`); results are promoted to `items`/`total`. Each item has `id` and `name` (no `displayAttributeId`).
1610
1664
  - **`fme_identity`** — `create`/`update` are not yet implemented if `org_id`+`project_id` are passed together; otherwise proceeds as a normal legacy call.
1611
- - **`fme_standard_segment`** — (Deprecated see `fme_segment`.) Harness-native mode is rejected on every operation (`list`/`get`) — use `fme_segment` instead; this resource supports only the legacy `workspace_id` contract. There is no `create` operation for this resource in either mode.
1612
- - **`fme_segment_keys`** — `list`/`update` are not yet implemented if `org_id`+`project_id` are passed together; otherwise proceeds as a normal legacy call.
1613
- - **`fme_segment`** — `list`/`get`/`create`/`delete` are wired to the real `/fme/api/v4/segments` endpoint (consolidates `fme_standard_segment`/`fme_rule_based_segment`); `create` body: `name`, `trafficType`, `type` (required one of `standard`/`rule_based`/`large`), optional `description`/`tags`/`owners`.
1614
- - **`fme_segment_definition`** — Harness-native only (no legacy `workspace_id` support). `list`/`get`/`create`/`update`/`delete` are wired to `/fme/api/v4/segment-definitions`, per `Harness_Split/Main` PR #12644 (open, not yet merged as of this writing — paths may still change). `update` uses JSON Merge Patch on `description`, the only mutable field. There is no `enable`/`disable`/`change_request` action the backend has no such endpoints for this unified resource.
1665
+ - **`fme_standard_segment`** — deprecated. Legacy `workspace_id` still hits Split v2. Harness-native is rejected — use `fme_segment`.
1666
+ - **`fme_segment_keys`** — `list`/`update` remain legacy (`workspace_id` / `environment_id`+`segment_name`). Harness-native (`org_id`+`project_id`) is rejected use `fme_segment_definition` execute `list_keys`/`add_keys`/`remove_keys`.
1667
+ - **`fme_segment`** — Native only (`org_id`+`project_id`). CRUD. `list`/`get`/`update`/`delete` require `segment_type`: `STANDARD` | `LARGE` | `RULE_BASED`. Create body: `name`, `trafficType`, `segmentType`; optional `description`, `tags`, `owners`.
1668
+ - **`fme_segment_definition`** — Native only. CRUD plus execute `list_keys`/`add_keys`/`remove_keys`. Update is description only. Delete fails with `hasDependents` while keys remain.
1669
+ - **`fme_metric`** — Harness-native only (no legacy `workspace_id` support). `list`/`get`/`create`/`update`/`delete` are wired to `/fme/api/v4/metrics` (`list`'s `harness_list` `size` maps to `limit`). `create` requires `spread` even though the backend `CreateMetricRequest` keeps it optional (default `PER`) — an MCP-side-only stricter contract, since omitting it silently changes a `RATE` metric's semantics. `update` is JSON Merge Patch; `name`/`trafficType` are immutable and not accepted. `delete` is a permanent hard delete (no archive/restore) — classified `destructive`.
1670
+ - **`fme_event_type`** — Harness-native only (no legacy `workspace_id` support). Read-only: `list`/`get` are wired to `/fme/api/v4/event-types`; `id` is the event name. Only event types with events in the last 30 days are visible; `get` returns a 404 for an event type outside the requesting workspace's traffic-type scope, or idle longer than 30 days. List filters: `name` (substring), `traffic_type` (by ID or name), `offset`/`limit` (`harness_list` `size` maps to `limit`). Use this to discover real event type IDs before referencing one in `fme_metric`'s `baseEventTypes`/`filterEventType` or `event_type_ids` filter, instead of guessing an ID.
1615
1671
 
1616
1672
  In single-user/self-hosted mode, legacy-mode auth uses a Bearer token from `HARNESS_FME_API_KEY`, falling back to a non-placeholder `HARNESS_API_KEY`. `HARNESS_FME_API_KEY` may be a legacy Split admin key or an FME-entitled Harness PAT/SAT, but it is rejected in `multi-user` mode so shared deployments cannot override each session user's credential. Hosted OAuth/service-routing credentials for Harness platform APIs do not authenticate direct Split.io requests. `fme_feature_flag` supports full lifecycle management in legacy mode: create (requires `traffic_type_id`), list, get, update metadata, delete, and kill/restore/reallocate/archive/unarchive execute actions. Use `fme_traffic_type` to discover traffic type IDs, `fme_identity` to create/update identity attributes, and `fme_standard_segment` / `fme_segment_keys` to inspect standard segments and add member keys. `fme_rule_based_segment` provides CRUD for targeting segments, while `fme_rule_based_segment_definition` manages environment-specific segment rules with enable/disable and change request approval flows.
1617
1673
 
@@ -1887,7 +1943,7 @@ Security exemption execute workflow:
1887
1943
 
1888
1944
  ## Toolset Filtering
1889
1945
 
1890
- By default, 40 of 43 toolsets are enabled. Three toolsets are opt-in and excluded from the defaults:
1946
+ By default, 41 of 44 toolsets are enabled. Three toolsets are opt-in and excluded from the defaults:
1891
1947
 
1892
1948
  - **`ansible`** — Harness Ansible (inventories, playbooks, hosts, activity). Opt-in because it is project-scoped and adds concepts many users do not need.
1893
1949
  - **`autonomous_work`** — Development Harness (autonomous work). Opt-in; see toolset description for scope.
@@ -1950,7 +2006,7 @@ Available toolset names:
1950
2006
  | `dashboards` | dashboard, dashboard_data |
1951
2007
  | `idp` | idp_entity, scorecard, scorecard_check, scorecard_stats, scorecard_check_stats, idp_score, idp_workflow, idp_tech_doc |
1952
2008
  | `pull-requests` | pull_request, pr_reviewer, pr_comment, pr_check, pr_activity |
1953
- | `feature-flags` | fme_workspace, fme_environment, fme_feature_flag, fme_feature_flag_definition, fme_rollout_status, fme_rule_based_segment, fme_rule_based_segment_definition, fme_traffic_type, fme_identity, fme_standard_segment, fme_segment_keys, fme_segment, fme_segment_definition |
2009
+ | `feature-flags` | fme_workspace, fme_environment, fme_feature_flag, fme_feature_flag_definition, fme_rollout_status, fme_rule_based_segment, fme_rule_based_segment_definition, fme_traffic_type, fme_identity, fme_standard_segment, fme_segment_keys, fme_segment, fme_segment_definition, fme_metric, fme_event_type |
1954
2010
  | `gitops` | gitops_agent, gitops_application, gitops_cluster, gitops_repository, gitops_applicationset, gitops_repo_credential, gitops_app_event, gitops_pod_log, gitops_managed_resource, gitops_resource_action, gitops_dashboard, gitops_app_resource_tree |
1955
2011
  | `chaos` | chaos_experiment, chaos_experiment_run, chaos_experiment_variable, chaos_component_variable, chaos_input_set, chaos_experiment_template, chaos_probe, chaos_probe_in_run, chaos_probe_template, chaos_infrastructure, chaos_k8s_infrastructure, chaos_enabled_infrastructure, chaos_environment, chaos_hub, chaos_hub_fault, chaos_fault, chaos_fault_template, chaos_fault_experiment_run, chaos_action, chaos_action_template, chaos_loadtest, chaos_service, chaos_application_map, discovered_agent, discovered_namespace, discovered_service, discovered_network_map, chaos_guard_condition, chaos_guard_rule, chaos_recommendation, chaos_risk, chaos_dr_test, scanned_risk, chaos_risk_rule, chaos_risk_scan |
1956
2012
  | `ccm` | cost_perspective, cost_breakdown, cost_timeseries, cost_summary, cost_recommendation, cost_anomaly, cost_anomaly_summary, cost_category, cost_account_overview, cost_filter_value, cost_recommendation_stats, cost_recommendation_detail, cost_commitment |
@@ -1971,6 +2027,7 @@ Available toolset names:
1971
2027
  | `ansible` *(opt-in)* | ansible_inventory, ansible_playbook, ansible_host, ansible_host_activity, ansible_activity |
1972
2028
  | `registries-v3` *(opt-in)* | package_v3, version_v3, file_v3, registry_metadata_v3, package_metadata_v3, version_metadata_v3, file_metadata_v3, metadata_key_v3, metadata_value_v3, artifact_scan_v3, bulk_scan_evaluation_v3, firewall_exception_v3, firewall_exception_version_v3 |
1973
2029
  | `release-management` | release_process, release_activity, release, release_execution_phase, release_execution_task, release_execution_activity, release_input, release_execution_phase_input, release_execution_phase_output, release_execution_activity_input, release_execution_activity_output |
2030
+ | `vibe` | vibe_project, vibe_app_lifecycle |
1974
2031
 
1975
2032
 
1976
2033
  ## Architecture
@@ -1988,8 +2045,8 @@ Available toolset names:
1988
2045
  |
1989
2046
  +--------v---------+
1990
2047
  | Registry | <-- Declarative resource definitions
1991
- | 40 Toolsets | (data files, not code)
1992
- | 243 Resource Types|
2048
+ | 41 Toolsets | (data files, not code)
2049
+ | 247 Resource Types|
1993
2050
  +--------+---------+
1994
2051
  |
1995
2052
  +--------v---------+
@@ -1 +1 @@
1
- {"version":3,"file":"harness-client.d.ts","sourceRoot":"","sources":["../../src/client/harness-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAA6C,MAAM,cAAc,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAuJjD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,MAAM,GAAG,SAAS,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG,MAAM,MAAM,GAAG,SAAS,CAAC;AAE3D,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAClD,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,kBAAkB,CAAC,CAAkB;gBAEjC,MAAM,EAAE,MAAM;IAY1B;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIvD,gFAAgF;IAChF,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAI3D,6EAA6E;IAC7E,OAAO,CAAC,gBAAgB;IAIxB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,gBAAgB;IAoExB;;;;;;;;OAQG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IA2BnC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAwJrD;;;;OAIG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IA2F/D,OAAO,CAAC,QAAQ;CA8DjB"}
1
+ {"version":3,"file":"harness-client.d.ts","sourceRoot":"","sources":["../../src/client/harness-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAA6C,MAAM,cAAc,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAyKjD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,MAAM,GAAG,SAAS,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG,MAAM,MAAM,GAAG,SAAS,CAAC;AAE3D,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAClD,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,kBAAkB,CAAC,CAAkB;gBAEjC,MAAM,EAAE,MAAM;IAY1B;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIvD,gFAAgF;IAChF,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAI3D,6EAA6E;IAC7E,OAAO,CAAC,gBAAgB;IAIxB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,gBAAgB;IAoExB;;;;;;;;OAQG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IA2BnC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAmKrD;;;;OAIG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IA0F/D,OAAO,CAAC,QAAQ;CA8DjB"}
@@ -2,8 +2,9 @@ import { isPlaceholderCredential, resolveFmeApiKey } from "../config.js";
2
2
  import { HarnessApiError } from "../utils/errors.js";
3
3
  import { RateLimiter } from "../utils/rate-limiter.js";
4
4
  import { createLogger } from "../utils/logger.js";
5
- import { redactJsonString } from "../utils/redact.js";
6
- import { isFormDataBody } from "../utils/type-guards.js";
5
+ import { redactJsonString, redactSensitiveFields } from "../utils/redact.js";
6
+ import { isFormDataBody, isRecord } from "../utils/type-guards.js";
7
+ import { assertJsonEventStreamLimits, readJsonEventStream } from "./sse.js";
7
8
  const log = createLogger("harness-client");
8
9
  const RETRYABLE_STATUS_CODES = new Set([429, 500, 502, 503, 504]);
9
10
  /**
@@ -100,6 +101,28 @@ const ERROR_FIELD_ENRICHMENTS = [
100
101
  { pathPrefix: "/loadTest/", field: "description" },
101
102
  ];
102
103
  const MAX_ERROR_DETAIL_CHARS = 400;
104
+ /** Preserve standard Harness errors; adapt Vibe's nested BFF envelope only on Vibe paths. */
105
+ function parseApiError(body, path) {
106
+ let raw;
107
+ try {
108
+ raw = JSON.parse(body);
109
+ }
110
+ catch {
111
+ return {};
112
+ }
113
+ if (!isRecord(raw))
114
+ return {};
115
+ const nested = path.startsWith("/vibe/v1/") && isRecord(raw.error) ? raw.error : {};
116
+ const message = typeof raw.message === "string" ? raw.message : nested.message;
117
+ const code = raw.code ?? nested.code;
118
+ return {
119
+ ...raw,
120
+ message: typeof message === "string" ? message : undefined,
121
+ code: typeof code === "string" || typeof code === "number" ? code : undefined,
122
+ details: raw.details ?? (isRecord(nested.details) ? JSON.stringify(redactSensitiveFields(nested.details)) : nested.details),
123
+ correlationId: typeof raw.correlationId === "string" ? raw.correlationId : undefined,
124
+ };
125
+ }
103
126
  /** Extra NG fields (`details`, `detailedMessage`, `responseMessages`) not already in `message`. */
104
127
  function collectErrorDetail(parsed, message) {
105
128
  const seen = new Set([message.trim()]);
@@ -286,6 +309,8 @@ export class HarnessClient {
286
309
  }
287
310
  }
288
311
  async request(options) {
312
+ if (options.responseType === "sse")
313
+ assertJsonEventStreamLimits(options.sseLimits);
289
314
  await this.rateLimiter.acquire();
290
315
  const method = options.method ?? "GET";
291
316
  const url = this.buildUrl(options);
@@ -308,6 +333,7 @@ export class HarnessClient {
308
333
  log.debug(`Retry attempt ${attempt}/${this.maxRetries}`, { backoffMs: Math.round(backoff) });
309
334
  await new Promise((r) => setTimeout(r, backoff));
310
335
  }
336
+ let timer;
311
337
  try {
312
338
  // Check if already aborted before starting the request
313
339
  if (options.signal?.aborted) {
@@ -315,7 +341,7 @@ export class HarnessClient {
315
341
  }
316
342
  const timeoutController = new AbortController();
317
343
  const effectiveTimeout = options.timeoutMs ?? this.timeout;
318
- const timer = setTimeout(() => timeoutController.abort(), effectiveTimeout);
344
+ timer = setTimeout(() => timeoutController.abort(), effectiveTimeout);
319
345
  // Merge external signal (client disconnect) with timeout signal
320
346
  const signal = options.signal
321
347
  ? AbortSignal.any([options.signal, timeoutController.signal])
@@ -338,17 +364,12 @@ export class HarnessClient {
338
364
  body: fetchBody,
339
365
  signal,
340
366
  });
341
- clearTimeout(timer);
367
+ // JSON/binary behavior is unchanged; SSE keeps the HTTP deadline through consumption.
368
+ if (options.responseType !== "sse")
369
+ clearTimeout(timer);
342
370
  if (!response.ok) {
343
371
  const body = await response.text();
344
- let parsed = {};
345
- try {
346
- parsed = JSON.parse(body);
347
- }
348
- catch {
349
- // Non-JSON error (HTML proxy page, WAF block, etc.)
350
- // Provide actionable messages instead of leaking raw HTML to the LLM
351
- }
372
+ const parsed = parseApiError(body, options.path);
352
373
  const rawMessage = isGarbageMessage(parsed.message)
353
374
  ? humanizeHttpError(response.status, body)
354
375
  : parsed.message;
@@ -365,6 +386,18 @@ export class HarnessClient {
365
386
  }
366
387
  throw error;
367
388
  }
389
+ if (options.responseType === "sse") {
390
+ try {
391
+ return await readJsonEventStream(response, signal, options.sseLimits);
392
+ }
393
+ catch (cause) {
394
+ // Never reconnect a consumed stream, including when the overall HTTP deadline expires.
395
+ if (timeoutController.signal.aborted && !options.signal?.aborted) {
396
+ throw new HarnessApiError("Request timed out", 408, undefined, undefined, cause);
397
+ }
398
+ throw cause;
399
+ }
400
+ }
368
401
  // Binary response mode — return raw ArrayBuffer (used for ZIP downloads)
369
402
  if (options.responseType === "buffer") {
370
403
  const buffer = await response.arrayBuffer();
@@ -405,6 +438,9 @@ export class HarnessClient {
405
438
  }
406
439
  throw new HarnessApiError(`Request failed: ${err.message ?? String(err)}`, 502, undefined, undefined, err);
407
440
  }
441
+ finally {
442
+ clearTimeout(timer);
443
+ }
408
444
  }
409
445
  throw lastError ?? new HarnessApiError("Max retries exceeded", 500);
410
446
  }
@@ -454,11 +490,7 @@ export class HarnessClient {
454
490
  clearTimeout(timer);
455
491
  if (!response.ok) {
456
492
  const body = await response.text();
457
- let parsed = {};
458
- try {
459
- parsed = JSON.parse(body);
460
- }
461
- catch { /* non-JSON */ }
493
+ const parsed = parseApiError(body, options.path);
462
494
  const rawMessage = isGarbageMessage(parsed.message)
463
495
  ? humanizeHttpError(response.status, body)
464
496
  : parsed.message;
@@ -1 +1 @@
1
- {"version":3,"file":"harness-client.js","sourceRoot":"","sources":["../../src/client/harness-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness-client.js","sourceRoot":"","sources":["../../src/client/harness-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE5E,MAAM,GAAG,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAE3C,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAElE;;;;;GAKG;AACH,SAAS,eAAe,CAAC,IAAa;IACpC,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAa;IACzC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,cAAc,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,OAA+B,EAAE,UAAkB;IACzE,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,cAAc,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAA+B,EAAE,UAAkB;IAC7E,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,cAAc,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC,CAAC;YAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,uEAAuE;AACvE,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI;SACR,OAAO,CAAC,kCAAkC,EAAE,GAAG,CAAC;SAChD,OAAO,CAAC,gCAAgC,EAAE,GAAG,CAAC;SAC9C,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,yEAAyE;AACzE,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,mFAAmF;AACnF,SAAS,iBAAiB,CAAC,MAAc,EAAE,OAAe;IACxD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAEjC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,wHAAwH,CAAC;QAClI,KAAK,GAAG;YACN,OAAO,wKAAwK,CAAC;QAClL,KAAK,GAAG;YACN,OAAO,iHAAiH,CAAC;QAC3H,OAAO,CAAC,CAAC,CAAC;YACR,IAAI,IAAI;gBAAE,OAAO,QAAQ,MAAM,4HAA4H,CAAC;YAC5J,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACnC,OAAO,QAAQ,MAAM,KAAK,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,OAA2B;IACnD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,4CAA4C,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,uBAAuB,GAAiD;IAC5E,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE;IAC/C,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;CACnD,CAAC;AAEF,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC,6FAA6F;AAC7F,SAAS,aAAa,CAAC,IAAY,EAAE,IAAY;IAC/C,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/E,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;IACrC,OAAO;QACL,GAAG,GAAG;QACN,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC1D,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC7E,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3H,aAAa,EAAE,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;KACrF,CAAC;AACJ,CAAC;AAED,mGAAmG;AACnG,SAAS,kBAAkB,CAAC,MAA+B,EAAE,OAAe;IAC1E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,CAAC,KAAc,EAAQ,EAAE;QACnC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACpC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpB,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1F,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,GAAG,CAAE,KAAiC,CAAC,OAAO,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,MAAM,GAAG,sBAAsB;QAC3C,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,GAAG;QAC/C,CAAC,CAAC,MAAM,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAkB,EAClB,MAA+B,EAC/B,IAAY;IAEZ,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IAChE,KAAK,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,uBAAuB,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,CAAC;YACtE,OAAO,IAAI,MAAM,KAAK,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAUD,MAAM,OAAO,aAAa;IACP,OAAO,CAAS;IAChB,KAAK,CAAS;IACd,SAAS,CAAS;IAClB,OAAO,CAAS;IAChB,UAAU,CAAS;IACnB,WAAW,CAAc;IACzB,eAAe,CAAU;IACzB,SAAS,CAAqB;IAC9B,OAAO,CAA6B;IAC7C,iBAAiB,CAAqB;IACtC,mBAAmB,CAAuB;IAC1C,aAAa,CAAU;IACvB,kBAAkB,CAAmB;IAE7C,YAAY,MAAc;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,sBAAsB,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,yBAAyB,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,QAA2B;QAC9C,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACpC,CAAC;IAED,gFAAgF;IAChF,sBAAsB,CAAC,QAA6B;QAClD,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;IACtC,CAAC;IAED,6EAA6E;IACrE,gBAAgB;QACtB,OAAO,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC;IACtD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,YAAY,CAAC,OAAuB;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,MAAM,OAAO,GAA2B;YACtC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;YAClD,GAAG,OAAO,CAAC,OAAO;SACnB,CAAC;QACF,2FAA2F;QAC3F,gEAAgE;QAChE,IACE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EACzC,CAAC;YACD,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAC,OAA+B,EAAE,KAAc;QACtE,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC7B,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACzC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,eAAe,CACvB,kEAAkE;oBAClE,+DAA+D,EAC/D,GAAG,EACH,kBAAkB,CACnB,CAAC;YACJ,CAAC;YACD,IAAI,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC;gBAAE,OAAO;YAErD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,eAAe,CACvB,yDAAyD,EACzD,GAAG,EACH,qBAAqB,CACtB,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,kEAAkE;YAClE,+DAA+D;YAC/D,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC;iBAC1D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;iBAC5B,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;YAE7D,iFAAiF;YACjF,IAAI,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC;gBAAE,OAAO;YAErD,MAAM,SAAS,GAAG,YAAY,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC;gBACtE,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YAEnB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,KAAK,YAAY;oBAC/C,CAAC,CAAC,2EAA2E;wBAC3E,0DAA0D;oBAC5D,CAAC,CAAC,2CAA2C;wBAC3C,0FAA0F;wBAC1F,6EAA6E,CAAC;gBAClF,MAAM,IAAI,eAAe,CACvB,4DAA4D;oBAC5D,GAAG,WAAW,GAAG;oBACjB,yEAAyE,EACzE,GAAG,EACH,kBAAkB,CACnB,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,SAAS,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,iFAAiF;QACjF,IAAI,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC;YAAE,OAAO;QAErD,wEAAwE;QACxE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,gBAAgB;QACpB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QAClD,IAAI,IAAI,CAAC,kBAAkB;YAAE,OAAO,IAAI,CAAC,kBAAkB,CAAC;QAC5D,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAA+B;gBAC5D,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,0BAA0B;aACjC,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,eAAe,CACvB,oEAAoE;oBACpE,kEAAkE,EAClE,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACpC,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,OAAuB;QACtC,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK;YAAE,2BAA2B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3C,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,kEAAkE;YACpE,CAAC;iBAAM,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5C,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,IAAI,SAA4B,CAAC;QAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;gBACzF,GAAG,CAAC,KAAK,CAAC,iBAAiB,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC7F,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,KAAgD,CAAC;YACrD,IAAI,CAAC;gBACH,uDAAuD;gBACvD,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC5B,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,YAAY,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;gBAC7F,CAAC;gBAED,MAAM,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAC;gBAChD,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC;gBAC3D,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBACtE,gEAAgE;gBAChE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;oBAC3B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBAC7D,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAE7B,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzE,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,SAAS,GAAyB,QAAQ,IAAI,UAAU,CAAC;gBAE/D,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC9B,IAAI,QAAQ,EAAE,CAAC;oBACb,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC,CAAC;gBACxE,CAAC;qBAAM,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBACpC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE;wBACxB,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC;qBACtF,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAChC,MAAM;oBACN,OAAO;oBACP,IAAI,EAAE,SAAS;oBACf,MAAM;iBACP,CAAC,CAAC;gBAEH,sFAAsF;gBACtF,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAExD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAEjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;wBAC/C,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;wBAC1C,CAAC,CAAC,MAAM,CAAC,OAAQ,CAAC;oBACtB,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBACrE,GAAG,CAAC,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,QAAQ,EAAE;wBACzC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;qBAC1E,CAAC,CAAC;oBACH,MAAM,KAAK,GAAG,IAAI,eAAe,CAC/B,OAAO,EACP,QAAQ,CAAC,MAAM,EACf,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,aAAa,CACrB,CAAC;oBAEF,IACE,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC3C,OAAO,GAAG,IAAI,CAAC,UAAU;wBACzB,OAAO,CAAC,WAAW,KAAK,cAAc,EACtC,CAAC;wBACD,SAAS,GAAG,KAAK,CAAC;wBAClB,SAAS;oBACX,CAAC;oBAED,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;oBACnC,IAAI,CAAC;wBACH,OAAO,MAAM,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,SAAU,CAAM,CAAC;oBAC9E,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,uFAAuF;wBACvF,IAAI,iBAAiB,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;4BACjE,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;wBACnF,CAAC;wBACD,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;gBAED,yEAAyE;gBACzE,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;oBACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC5C,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;oBAC3D,OAAO,MAAW,CAAC;gBACrB,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,sEAAsE;gBACtE,wEAAwE;gBACxE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAO,CAAC;gBAC3D,CAAC;gBACD,IAAI,IAAa,CAAC;gBAClB,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;gBAAC,OAAO,QAAQ,EAAE,CAAC;oBAClB,MAAM,IAAI,eAAe,CACvB,0BAA0B,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EACzE,GAAG,EACH,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;gBACJ,CAAC;gBACD,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE;oBACzB,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;iBAC1E,CAAC,CAAC;gBACH,OAAO,IAAS,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,eAAe;oBAAE,MAAM,GAAG,CAAC;gBAC9C,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACtD,sEAAsE;oBACtE,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;wBAC5B,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;oBACjF,CAAC;oBACD,kDAAkD;oBAClD,SAAS,GAAG,IAAI,eAAe,CAAC,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;oBACrF,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,KAAK,cAAc;wBAAE,SAAS;oBAClF,MAAM,SAAS,CAAC;gBAClB,CAAC;gBACD,MAAM,IAAI,eAAe,CACvB,mBAAoB,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,EAC1D,GAAG,EACH,SAAS,EACT,SAAS,EACT,GAAG,CACJ,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,IAAI,IAAI,eAAe,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,OAAuB;QACzC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3C,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,wBAAwB;YAC1B,CAAC;iBAAM,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5C,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,IAAI,SAA4B,CAAC;QAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;gBACzF,GAAG,CAAC,KAAK,CAAC,wBAAwB,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACpG,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC5B,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,YAAY,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;gBAC7F,CAAC;gBAED,MAAM,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAC;gBAChD,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC;gBAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;gBAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;oBAC3B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBAC7D,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAE7B,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzE,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,SAAS,GAAyB,QAAQ,IAAI,UAAU,CAAC;gBAE/D,GAAG,CAAC,KAAK,CAAC,UAAU,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;gBAErC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;gBAEhF,YAAY,CAAC,KAAK,CAAC,CAAC;gBAEpB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAEjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;wBAC/C,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;wBAC1C,CAAC,CAAC,MAAM,CAAC,OAAQ,CAAC;oBACtB,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBACrE,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;oBAE/F,IACE,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC3C,OAAO,GAAG,IAAI,CAAC,UAAU;wBACzB,OAAO,CAAC,WAAW,KAAK,cAAc,EACtC,CAAC;wBACD,SAAS,GAAG,KAAK,CAAC;wBAClB,SAAS;oBACX,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,eAAe;oBAAE,MAAM,GAAG,CAAC;gBAC9C,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACtD,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;wBAC5B,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;oBACjF,CAAC;oBACD,SAAS,GAAG,IAAI,eAAe,CAAC,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;oBACrF,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,KAAK,cAAc;wBAAE,SAAS;oBAClF,MAAM,SAAS,CAAC;gBAClB,CAAC;gBACD,MAAM,IAAI,eAAe,CACvB,mBAAoB,GAAa,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,EAC1D,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAC/B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,SAAS,IAAI,IAAI,eAAe,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IACtE,CAAC;IAEO,QAAQ,CAAC,OAAuB;QACtC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACtE,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,QAAQ,IAAI,QAAQ,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;YACpE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAED,0EAA0E;QAC1E,6EAA6E;QAC7E,sFAAsF;QACtF,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAEnC,qEAAqE;YACrE,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;oBAAE,SAAS;gBAClD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;4BACtC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;wBACnC,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,UAAU,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzC,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,CAAC;QACnF,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import type { JsonEventStreamLimits } from "./types.js";
2
+ export declare function assertJsonEventStreamLimits(limits: JsonEventStreamLimits | undefined): asserts limits is JsonEventStreamLimits;
3
+ export interface JsonEventBatch {
4
+ events: unknown[];
5
+ stop_reason: "end" | "event_limit" | "duration_limit";
6
+ }
7
+ /** Read a finite batch of JSON data events; this is not a reconnecting EventSource. */
8
+ export declare function readJsonEventStream(response: Response, signal: AbortSignal | undefined, limits: JsonEventStreamLimits): Promise<JsonEventBatch>;
9
+ //# sourceMappingURL=sse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/client/sse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,qBAAqB,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,qBAAqB,CAK9H;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,WAAW,EAAE,KAAK,GAAG,aAAa,GAAG,gBAAgB,CAAC;CACvD;AAED,uFAAuF;AACvF,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA+EzB"}
@@ -0,0 +1,103 @@
1
+ import { HarnessApiError } from "../utils/errors.js";
2
+ export function assertJsonEventStreamLimits(limits) {
3
+ if (!limits || ![limits.maxEvents, limits.durationMs, limits.maxBytes].every(value => Number.isSafeInteger(value) && value > 0)
4
+ || limits.durationMs > 2_147_483_647) {
5
+ throw new Error("SSE requires explicit positive integer maxEvents, durationMs, and maxBytes limits; durationMs must fit a timer.");
6
+ }
7
+ }
8
+ /** Read a finite batch of JSON data events; this is not a reconnecting EventSource. */
9
+ export async function readJsonEventStream(response, signal, limits) {
10
+ assertJsonEventStreamLimits(limits);
11
+ if (response.headers.get("content-type")?.split(";")[0]?.trim().toLowerCase() !== "text/event-stream") {
12
+ void response.body?.cancel().catch(() => { });
13
+ throw new HarnessApiError("Expected a text/event-stream response", 502);
14
+ }
15
+ if (!response.body)
16
+ throw new HarnessApiError("Event stream has no response body", 502);
17
+ const reader = response.body.getReader();
18
+ const decoder = new TextDecoder();
19
+ const events = [];
20
+ let pending = "";
21
+ let dataLines = [];
22
+ let bytes = 0;
23
+ let stop = () => { };
24
+ const stopped = new Promise((resolve) => { stop = resolve; });
25
+ const timer = setTimeout(() => stop("duration_limit"), limits.durationMs);
26
+ const onAbort = () => stop("cancelled");
27
+ signal?.addEventListener("abort", onAbort, { once: true });
28
+ function processLine(line) {
29
+ if (line === "") {
30
+ if (dataLines.length > 0) {
31
+ const data = dataLines.join("\n");
32
+ dataLines = [];
33
+ if (data === "")
34
+ return;
35
+ try {
36
+ events.push(JSON.parse(data));
37
+ }
38
+ catch (cause) {
39
+ // Do not echo event contents: streams may contain logs or signed URLs.
40
+ throw new HarnessApiError("Event stream contains invalid JSON data", 502, undefined, undefined, cause);
41
+ }
42
+ }
43
+ return;
44
+ }
45
+ if (line.startsWith(":"))
46
+ return;
47
+ const colon = line.indexOf(":");
48
+ const field = colon < 0 ? line : line.slice(0, colon);
49
+ let value = colon < 0 ? "" : line.slice(colon + 1);
50
+ if (value.startsWith(" "))
51
+ value = value.slice(1);
52
+ if (field === "data")
53
+ dataLines.push(value);
54
+ }
55
+ try {
56
+ while (true) {
57
+ if (signal?.aborted)
58
+ throw new HarnessApiError("Request cancelled", 499);
59
+ const chunk = await Promise.race([reader.read(), stopped]);
60
+ if (chunk === "cancelled" || signal?.aborted)
61
+ throw new HarnessApiError("Request cancelled", 499);
62
+ if (chunk === "duration_limit")
63
+ return { events, stop_reason: chunk };
64
+ if (!chunk.done) {
65
+ bytes += chunk.value.byteLength;
66
+ if (bytes > limits.maxBytes)
67
+ throw new HarnessApiError(`Event stream exceeded the ${limits.maxBytes} byte batch size limit`, 502);
68
+ }
69
+ pending += decoder.decode(chunk.value, { stream: !chunk.done });
70
+ while (true) {
71
+ const end = pending.search(/[\r\n]/);
72
+ if (end < 0)
73
+ break;
74
+ // A CR at a chunk boundary may be the first half of CRLF.
75
+ if (!chunk.done && pending[end] === "\r" && end === pending.length - 1)
76
+ break;
77
+ const line = pending.slice(0, end);
78
+ const width = pending[end] === "\r" && pending[end + 1] === "\n" ? 2 : 1;
79
+ pending = pending.slice(end + width);
80
+ processLine(line);
81
+ if (events.length >= limits.maxEvents)
82
+ return { events, stop_reason: "event_limit" };
83
+ }
84
+ // SSE dispatch requires a blank line; an unterminated final event is discarded.
85
+ if (chunk.done)
86
+ return { events, stop_reason: "end" };
87
+ }
88
+ }
89
+ catch (cause) {
90
+ if (cause instanceof HarnessApiError)
91
+ throw cause;
92
+ // A broken stream must not become a retried HTTP timeout: diffs have no replay cursor.
93
+ throw new HarnessApiError(signal?.aborted ? "Request cancelled" : "Event stream read failed", signal?.aborted ? 499 : 502, undefined, undefined, cause);
94
+ }
95
+ finally {
96
+ clearTimeout(timer);
97
+ signal?.removeEventListener("abort", onAbort);
98
+ // Cancellation is best effort; slow source cleanup must not extend the batch deadline.
99
+ void reader.cancel().catch(() => { });
100
+ reader.releaseLock();
101
+ }
102
+ }
103
+ //# sourceMappingURL=sse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/client/sse.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,12 @@ export interface HarnessV1ListResponse<T> {
33
33
  totalItems?: number;
34
34
  totalPages?: number;
35
35
  }
36
+ /** Endpoint-owned limits for a finite batch of JSON SSE data events. */
37
+ export interface JsonEventStreamLimits {
38
+ maxEvents: number;
39
+ durationMs: number;
40
+ maxBytes: number;
41
+ }
36
42
  export interface RequestOptions {
37
43
  method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
38
44
  path: string;
@@ -48,8 +54,10 @@ export interface RequestOptions {
48
54
  signal?: AbortSignal;
49
55
  /** Override default timeout for this request (milliseconds). */
50
56
  timeoutMs?: number;
51
- /** Return raw ArrayBuffer instead of parsing JSON. Used for binary endpoints (ZIP downloads). */
52
- responseType?: "json" | "buffer";
57
+ /** JSON, binary download, or a bounded batch of JSON SSE data events. */
58
+ responseType?: "json" | "buffer" | "sse";
59
+ /** Required for responseType=sse. The caller owns the batch policy. */
60
+ sseLimits?: JsonEventStreamLimits;
53
61
  /** Product backend — when "fme", skips Harness-specific auth/headers/params. */
54
62
  product?: "harness" | "fme";
55
63
  /** When true, omit the automatic `accountIdentifier` query param.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+CAA+C;AAC/C,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,mCAAmC;AACnC,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,oGAAoG;IACpG,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAC1E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,gFAAgF;IAChF,OAAO,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC5B;0FACsF;IACtF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;iEAC6D;IAC7D,WAAW,CAAC,EAAE,MAAM,GAAG,0BAA0B,GAAG,cAAc,CAAC;IACnE,gFAAgF;IAChF,OAAO,CAAC,EAAE;QACR,yDAAyD;QACzD,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+CAA+C;AAC/C,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,mCAAmC;AACnC,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wEAAwE;AACxE,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,oGAAoG;IACpG,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAC1E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACzC,uEAAuE;IACvE,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,gFAAgF;IAChF,OAAO,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC5B;0FACsF;IACtF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;iEAC6D;IAC7D,WAAW,CAAC,EAAE,MAAM,GAAG,0BAA0B,GAAG,cAAc,CAAC;IACnE,gFAAgF;IAChF,OAAO,CAAC,EAAE;QACR,yDAAyD;QACzD,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/data/schemas/v0/pipeline.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAw0zH/B,CAAC;AACF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/data/schemas/v0/pipeline.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CA2vzH/B,CAAC;AACF,eAAe,MAAM,CAAC"}