coalesce-transform-mcp 0.2.3 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -2
- package/dist/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +27 -3
- package/dist/client.js.map +1 -1
- package/dist/coalesce/api/environments.d.ts +0 -12
- package/dist/coalesce/api/environments.d.ts.map +1 -1
- package/dist/coalesce/api/environments.js +0 -4
- package/dist/coalesce/api/environments.js.map +1 -1
- package/dist/coalesce/api/jobs.d.ts +3 -5
- package/dist/coalesce/api/jobs.d.ts.map +1 -1
- package/dist/coalesce/api/jobs.js +3 -6
- package/dist/coalesce/api/jobs.js.map +1 -1
- package/dist/coalesce/api/nodes.d.ts +3 -3
- package/dist/coalesce/api/nodes.d.ts.map +1 -1
- package/dist/coalesce/api/nodes.js +6 -4
- package/dist/coalesce/api/nodes.js.map +1 -1
- package/dist/coalesce/api/runs.d.ts.map +1 -1
- package/dist/coalesce/api/runs.js +11 -1
- package/dist/coalesce/api/runs.js.map +1 -1
- package/dist/coalesce/api/scan.d.ts +14 -0
- package/dist/coalesce/api/scan.d.ts.map +1 -0
- package/dist/coalesce/api/scan.js +64 -0
- package/dist/coalesce/api/scan.js.map +1 -0
- package/dist/coalesce/api/subgraphs.d.ts +3 -2
- package/dist/coalesce/api/subgraphs.d.ts.map +1 -1
- package/dist/coalesce/api/subgraphs.js +3 -2
- package/dist/coalesce/api/subgraphs.js.map +1 -1
- package/dist/coalesce/run-schemas.d.ts.map +1 -1
- package/dist/coalesce/run-schemas.js +26 -16
- package/dist/coalesce/run-schemas.js.map +1 -1
- package/dist/coalesce/tool-response.d.ts +1 -13
- package/dist/coalesce/tool-response.d.ts.map +1 -1
- package/dist/coalesce/tool-response.js +20 -6
- package/dist/coalesce/tool-response.js.map +1 -1
- package/dist/coalesce/tool-schemas.d.ts +1 -2
- package/dist/coalesce/tool-schemas.d.ts.map +1 -1
- package/dist/coalesce/tool-schemas.js +368 -5
- package/dist/coalesce/tool-schemas.js.map +1 -1
- package/dist/coalesce/types.d.ts +8 -0
- package/dist/coalesce/types.d.ts.map +1 -1
- package/dist/coalesce/types.js +8 -3
- package/dist/coalesce/types.js.map +1 -1
- package/dist/constants.d.ts +18 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +21 -0
- package/dist/constants.js.map +1 -0
- package/dist/mcp/cache.d.ts +2 -1
- package/dist/mcp/cache.d.ts.map +1 -1
- package/dist/mcp/cache.js +122 -138
- package/dist/mcp/cache.js.map +1 -1
- package/dist/mcp/environments.d.ts +2 -1
- package/dist/mcp/environments.d.ts.map +1 -1
- package/dist/mcp/environments.js +56 -112
- package/dist/mcp/environments.js.map +1 -1
- package/dist/mcp/git-accounts.d.ts +2 -1
- package/dist/mcp/git-accounts.d.ts.map +1 -1
- package/dist/mcp/git-accounts.js +74 -96
- package/dist/mcp/git-accounts.js.map +1 -1
- package/dist/mcp/jobs.d.ts +2 -1
- package/dist/mcp/jobs.d.ts.map +1 -1
- package/dist/mcp/jobs.js +68 -122
- package/dist/mcp/jobs.js.map +1 -1
- package/dist/mcp/lineage.d.ts +5 -0
- package/dist/mcp/lineage.d.ts.map +1 -0
- package/dist/mcp/lineage.js +410 -0
- package/dist/mcp/lineage.js.map +1 -0
- package/dist/mcp/node-type-corpus.d.ts +2 -1
- package/dist/mcp/node-type-corpus.d.ts.map +1 -1
- package/dist/mcp/node-type-corpus.js +148 -151
- package/dist/mcp/node-type-corpus.js.map +1 -1
- package/dist/mcp/nodes.d.ts +2 -1
- package/dist/mcp/nodes.d.ts.map +1 -1
- package/dist/mcp/nodes.js +358 -464
- package/dist/mcp/nodes.js.map +1 -1
- package/dist/mcp/pipelines.d.ts +2 -1
- package/dist/mcp/pipelines.d.ts.map +1 -1
- package/dist/mcp/pipelines.js +514 -314
- package/dist/mcp/pipelines.js.map +1 -1
- package/dist/mcp/projects.d.ts +2 -1
- package/dist/mcp/projects.d.ts.map +1 -1
- package/dist/mcp/projects.js +66 -100
- package/dist/mcp/projects.js.map +1 -1
- package/dist/mcp/repo-node-types.d.ts +2 -1
- package/dist/mcp/repo-node-types.d.ts.map +1 -1
- package/dist/mcp/repo-node-types.js +92 -121
- package/dist/mcp/repo-node-types.js.map +1 -1
- package/dist/mcp/runs.d.ts +4 -1
- package/dist/mcp/runs.d.ts.map +1 -1
- package/dist/mcp/runs.js +94 -147
- package/dist/mcp/runs.js.map +1 -1
- package/dist/mcp/skills.d.ts +13 -0
- package/dist/mcp/skills.d.ts.map +1 -0
- package/dist/mcp/skills.js +85 -0
- package/dist/mcp/skills.js.map +1 -0
- package/dist/mcp/subgraphs.d.ts +2 -1
- package/dist/mcp/subgraphs.d.ts.map +1 -1
- package/dist/mcp/subgraphs.js +61 -98
- package/dist/mcp/subgraphs.js.map +1 -1
- package/dist/mcp/tool-helpers.d.ts +37 -0
- package/dist/mcp/tool-helpers.d.ts.map +1 -0
- package/dist/mcp/tool-helpers.js +82 -0
- package/dist/mcp/tool-helpers.js.map +1 -0
- package/dist/mcp/users.d.ts +2 -1
- package/dist/mcp/users.d.ts.map +1 -1
- package/dist/mcp/users.js +92 -145
- package/dist/mcp/users.js.map +1 -1
- package/dist/mcp/workshop.d.ts +2 -1
- package/dist/mcp/workshop.d.ts.map +1 -1
- package/dist/mcp/workshop.js +66 -101
- package/dist/mcp/workshop.js.map +1 -1
- package/dist/mcp/workspaces.d.ts +2 -1
- package/dist/mcp/workspaces.d.ts.map +1 -1
- package/dist/mcp/workspaces.js +19 -34
- package/dist/mcp/workspaces.js.map +1 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +85 -0
- package/dist/prompts/index.js.map +1 -1
- package/dist/resources/context/pipeline-workshop-guide.md +1 -1
- package/dist/resources/context/tool-usage.md +7 -0
- package/dist/resources/index.d.ts +13 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +105 -5
- package/dist/resources/index.js.map +1 -1
- package/dist/schemas/node-payloads.d.ts +2 -2
- package/dist/server.d.ts +2 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +173 -45
- package/dist/server.js.map +1 -1
- package/dist/services/cache/snapshots.d.ts.map +1 -1
- package/dist/services/cache/snapshots.js +9 -5
- package/dist/services/cache/snapshots.js.map +1 -1
- package/dist/services/config/schema-resolver.d.ts.map +1 -1
- package/dist/services/config/schema-resolver.js +3 -6
- package/dist/services/config/schema-resolver.js.map +1 -1
- package/dist/services/lineage/lineage-cache.d.ts +53 -0
- package/dist/services/lineage/lineage-cache.d.ts.map +1 -0
- package/dist/services/lineage/lineage-cache.js +335 -0
- package/dist/services/lineage/lineage-cache.js.map +1 -0
- package/dist/services/lineage/lineage-documentation.d.ts +29 -0
- package/dist/services/lineage/lineage-documentation.d.ts.map +1 -0
- package/dist/services/lineage/lineage-documentation.js +80 -0
- package/dist/services/lineage/lineage-documentation.js.map +1 -0
- package/dist/services/lineage/lineage-propagation.d.ts +47 -0
- package/dist/services/lineage/lineage-propagation.d.ts.map +1 -0
- package/dist/services/lineage/lineage-propagation.js +176 -0
- package/dist/services/lineage/lineage-propagation.js.map +1 -0
- package/dist/services/lineage/lineage-search.d.ts +33 -0
- package/dist/services/lineage/lineage-search.d.ts.map +1 -0
- package/dist/services/lineage/lineage-search.js +133 -0
- package/dist/services/lineage/lineage-search.js.map +1 -0
- package/dist/services/lineage/lineage-traversal.d.ts +34 -0
- package/dist/services/lineage/lineage-traversal.d.ts.map +1 -0
- package/dist/services/lineage/lineage-traversal.js +283 -0
- package/dist/services/lineage/lineage-traversal.js.map +1 -0
- package/dist/services/pipelines/clause-extraction.d.ts +3 -0
- package/dist/services/pipelines/clause-extraction.d.ts.map +1 -0
- package/dist/services/pipelines/clause-extraction.js +27 -0
- package/dist/services/pipelines/clause-extraction.js.map +1 -0
- package/dist/services/pipelines/column-helpers.d.ts +8 -0
- package/dist/services/pipelines/column-helpers.d.ts.map +1 -0
- package/dist/services/pipelines/column-helpers.js +125 -0
- package/dist/services/pipelines/column-helpers.js.map +1 -0
- package/dist/services/pipelines/cte-parsing.d.ts +29 -0
- package/dist/services/pipelines/cte-parsing.d.ts.map +1 -0
- package/dist/services/pipelines/cte-parsing.js +160 -0
- package/dist/services/pipelines/cte-parsing.js.map +1 -0
- package/dist/services/pipelines/cte-planning.d.ts +22 -0
- package/dist/services/pipelines/cte-planning.d.ts.map +1 -0
- package/dist/services/pipelines/cte-planning.js +206 -0
- package/dist/services/pipelines/cte-planning.js.map +1 -0
- package/dist/services/pipelines/execution.d.ts.map +1 -1
- package/dist/services/pipelines/execution.js +0 -1
- package/dist/services/pipelines/execution.js.map +1 -1
- package/dist/services/pipelines/intent-parsing.d.ts +24 -0
- package/dist/services/pipelines/intent-parsing.d.ts.map +1 -0
- package/dist/services/pipelines/intent-parsing.js +245 -0
- package/dist/services/pipelines/intent-parsing.js.map +1 -0
- package/dist/services/pipelines/intent-resolution.d.ts +24 -0
- package/dist/services/pipelines/intent-resolution.d.ts.map +1 -0
- package/dist/services/pipelines/intent-resolution.js +141 -0
- package/dist/services/pipelines/intent-resolution.js.map +1 -0
- package/dist/services/pipelines/intent.d.ts +4 -45
- package/dist/services/pipelines/intent.d.ts.map +1 -1
- package/dist/services/pipelines/intent.js +14 -408
- package/dist/services/pipelines/intent.js.map +1 -1
- package/dist/services/pipelines/node-type-candidates.d.ts +6 -0
- package/dist/services/pipelines/node-type-candidates.d.ts.map +1 -0
- package/dist/services/pipelines/node-type-candidates.js +165 -0
- package/dist/services/pipelines/node-type-candidates.js.map +1 -0
- package/dist/services/pipelines/node-type-intent.d.ts +1 -5
- package/dist/services/pipelines/node-type-intent.d.ts.map +1 -1
- package/dist/services/pipelines/node-type-intent.js +1 -5
- package/dist/services/pipelines/node-type-intent.js.map +1 -1
- package/dist/services/pipelines/node-type-scoring.d.ts +13 -0
- package/dist/services/pipelines/node-type-scoring.d.ts.map +1 -0
- package/dist/services/pipelines/node-type-scoring.js +322 -0
- package/dist/services/pipelines/node-type-scoring.js.map +1 -0
- package/dist/services/pipelines/node-type-selection.d.ts +22 -2
- package/dist/services/pipelines/node-type-selection.d.ts.map +1 -1
- package/dist/services/pipelines/node-type-selection.js +16 -538
- package/dist/services/pipelines/node-type-selection.js.map +1 -1
- package/dist/services/pipelines/plan-builder.d.ts +33 -0
- package/dist/services/pipelines/plan-builder.d.ts.map +1 -0
- package/dist/services/pipelines/plan-builder.js +224 -0
- package/dist/services/pipelines/plan-builder.js.map +1 -0
- package/dist/services/pipelines/planning-types.d.ts +543 -0
- package/dist/services/pipelines/planning-types.d.ts.map +1 -0
- package/dist/services/pipelines/planning-types.js +85 -0
- package/dist/services/pipelines/planning-types.js.map +1 -0
- package/dist/services/pipelines/planning.d.ts +8 -537
- package/dist/services/pipelines/planning.d.ts.map +1 -1
- package/dist/services/pipelines/planning.js +10 -1956
- package/dist/services/pipelines/planning.js.map +1 -1
- package/dist/services/pipelines/review.d.ts.map +1 -1
- package/dist/services/pipelines/review.js +3 -8
- package/dist/services/pipelines/review.js.map +1 -1
- package/dist/services/pipelines/select-parsing.d.ts +7 -0
- package/dist/services/pipelines/select-parsing.d.ts.map +1 -0
- package/dist/services/pipelines/select-parsing.js +185 -0
- package/dist/services/pipelines/select-parsing.js.map +1 -0
- package/dist/services/pipelines/source-parsing.d.ts +8 -0
- package/dist/services/pipelines/source-parsing.d.ts.map +1 -0
- package/dist/services/pipelines/source-parsing.js +151 -0
- package/dist/services/pipelines/source-parsing.js.map +1 -0
- package/dist/services/pipelines/sql-parsing.d.ts +8 -0
- package/dist/services/pipelines/sql-parsing.d.ts.map +1 -0
- package/dist/services/pipelines/sql-parsing.js +9 -0
- package/dist/services/pipelines/sql-parsing.js.map +1 -0
- package/dist/services/pipelines/sql-tokenizer.d.ts +42 -0
- package/dist/services/pipelines/sql-tokenizer.d.ts.map +1 -0
- package/dist/services/pipelines/sql-tokenizer.js +493 -0
- package/dist/services/pipelines/sql-tokenizer.js.map +1 -0
- package/dist/services/pipelines/sql-utils.d.ts +30 -0
- package/dist/services/pipelines/sql-utils.d.ts.map +1 -0
- package/dist/services/pipelines/sql-utils.js +62 -0
- package/dist/services/pipelines/sql-utils.js.map +1 -0
- package/dist/services/pipelines/workshop.d.ts.map +1 -1
- package/dist/services/pipelines/workshop.js +53 -25
- package/dist/services/pipelines/workshop.js.map +1 -1
- package/dist/services/pipelines/workspace-resolution.d.ts +18 -0
- package/dist/services/pipelines/workspace-resolution.d.ts.map +1 -0
- package/dist/services/pipelines/workspace-resolution.js +279 -0
- package/dist/services/pipelines/workspace-resolution.js.map +1 -0
- package/dist/services/runs/diagnostics.d.ts.map +1 -1
- package/dist/services/runs/diagnostics.js +3 -8
- package/dist/services/runs/diagnostics.js.map +1 -1
- package/dist/services/shared/elicitation.d.ts +14 -0
- package/dist/services/shared/elicitation.d.ts.map +1 -0
- package/dist/services/shared/elicitation.js +56 -0
- package/dist/services/shared/elicitation.js.map +1 -0
- package/dist/services/workspace/join-operations.d.ts +56 -0
- package/dist/services/workspace/join-operations.d.ts.map +1 -0
- package/dist/services/workspace/join-operations.js +303 -0
- package/dist/services/workspace/join-operations.js.map +1 -0
- package/dist/services/workspace/mutations.d.ts +3 -99
- package/dist/services/workspace/mutations.d.ts.map +1 -1
- package/dist/services/workspace/mutations.js +13 -1220
- package/dist/services/workspace/mutations.js.map +1 -1
- package/dist/services/workspace/node-creation.d.ts +48 -0
- package/dist/services/workspace/node-creation.d.ts.map +1 -0
- package/dist/services/workspace/node-creation.js +448 -0
- package/dist/services/workspace/node-creation.js.map +1 -0
- package/dist/services/workspace/node-update-helpers.d.ts +89 -0
- package/dist/services/workspace/node-update-helpers.d.ts.map +1 -0
- package/dist/services/workspace/node-update-helpers.js +492 -0
- package/dist/services/workspace/node-update-helpers.js.map +1 -0
- package/dist/tasks/index.d.ts +5 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +10 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/retry-and-wait-task.d.ts +4 -0
- package/dist/tasks/retry-and-wait-task.d.ts.map +1 -0
- package/dist/tasks/retry-and-wait-task.js +61 -0
- package/dist/tasks/retry-and-wait-task.js.map +1 -0
- package/dist/tasks/run-and-wait-task.d.ts +4 -0
- package/dist/tasks/run-and-wait-task.d.ts.map +1 -0
- package/dist/tasks/run-and-wait-task.js +61 -0
- package/dist/tasks/run-and-wait-task.js.map +1 -0
- package/dist/tasks/start-run-task.d.ts +4 -0
- package/dist/tasks/start-run-task.d.ts.map +1 -0
- package/dist/tasks/start-run-task.js +47 -0
- package/dist/tasks/start-run-task.js.map +1 -0
- package/dist/tasks/store.d.ts +2 -0
- package/dist/tasks/store.d.ts.map +1 -0
- package/dist/tasks/store.js +2 -0
- package/dist/tasks/store.js.map +1 -0
- package/dist/utils.d.ts +11 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +20 -1
- package/dist/utils.js.map +1 -1
- package/dist/workflows/get-environment-health.d.ts +49 -0
- package/dist/workflows/get-environment-health.d.ts.map +1 -0
- package/dist/workflows/get-environment-health.js +310 -0
- package/dist/workflows/get-environment-health.js.map +1 -0
- package/dist/workflows/get-environment-overview.d.ts +2 -1
- package/dist/workflows/get-environment-overview.d.ts.map +1 -1
- package/dist/workflows/get-environment-overview.js +13 -19
- package/dist/workflows/get-environment-overview.js.map +1 -1
- package/dist/workflows/get-run-details.d.ts +2 -2
- package/dist/workflows/get-run-details.d.ts.map +1 -1
- package/dist/workflows/get-run-details.js +14 -19
- package/dist/workflows/get-run-details.js.map +1 -1
- package/dist/workflows/poll-run.d.ts +14 -0
- package/dist/workflows/poll-run.d.ts.map +1 -0
- package/dist/workflows/poll-run.js +86 -0
- package/dist/workflows/poll-run.js.map +1 -0
- package/dist/workflows/progress.d.ts +1 -0
- package/dist/workflows/progress.d.ts.map +1 -1
- package/dist/workflows/progress.js +3 -0
- package/dist/workflows/progress.js.map +1 -1
- package/dist/workflows/retry-and-wait.d.ts +1 -1
- package/dist/workflows/retry-and-wait.d.ts.map +1 -1
- package/dist/workflows/retry-and-wait.js +18 -89
- package/dist/workflows/retry-and-wait.js.map +1 -1
- package/dist/workflows/run-and-wait.d.ts +1 -1
- package/dist/workflows/run-and-wait.d.ts.map +1 -1
- package/dist/workflows/run-and-wait.js +18 -89
- package/dist/workflows/run-and-wait.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -74,7 +74,10 @@ Only `COALESCE_ACCESS_TOKEN` is required. Everything else is optional.
|
|
|
74
74
|
| `COALESCE_ORG_ID` | Fallback org ID for cancel-run. | — |
|
|
75
75
|
| `COALESCE_REPO_PATH` | Local repo root for repo-backed tools and pipeline planning. | — |
|
|
76
76
|
| `COALESCE_MCP_AUTO_CACHE_MAX_BYTES` | JSON size threshold before auto-caching to disk. | `32768` |
|
|
77
|
+
| `COALESCE_MCP_LINEAGE_TTL_MS` | In-memory lineage cache TTL in milliseconds. | `1800000` |
|
|
77
78
|
| `COALESCE_MCP_MAX_REQUEST_BODY_BYTES` | Max outbound API request body size. | `524288` |
|
|
79
|
+
| `COALESCE_MCP_READ_ONLY` | When `true`, hides all write/mutation tools during registration. Only read, list, search, cache, analyze, review, diagnose, and plan tools are exposed. | `false` |
|
|
80
|
+
| `COALESCE_MCP_SKILLS_DIR` | Directory for customizable AI skill resources. When set, reads context resources from this directory and seeds defaults on first run. Users can augment or override any skill. | — |
|
|
78
81
|
<!-- ENV_METADATA_CORE_TABLE_END -->
|
|
79
82
|
|
|
80
83
|
### Snowflake (for run tools only)
|
|
@@ -129,6 +132,60 @@ export SNOWFLAKE_ROLE="your-role"
|
|
|
129
132
|
|
|
130
133
|
Only include the variables you need — the Quick Start config with just `COALESCE_ACCESS_TOKEN` is enough to get started.
|
|
131
134
|
|
|
135
|
+
## Skills Directory
|
|
136
|
+
|
|
137
|
+
The server ships 23 AI skill resources that guide how agents interact with Coalesce. By default these are bundled inside the package, but you can make them visible and editable by setting `COALESCE_MCP_SKILLS_DIR`.
|
|
138
|
+
|
|
139
|
+
### Setup
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
export COALESCE_MCP_SKILLS_DIR="/path/to/my-skills"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
On first run, the server seeds the directory with 46 files:
|
|
146
|
+
|
|
147
|
+
- `coalesce_skills.<name>.md` — the default skill content (editable)
|
|
148
|
+
- `user_skills.<name>.md` — your customization file (starts as an inactive stub with instructions)
|
|
149
|
+
|
|
150
|
+
### How customization works
|
|
151
|
+
|
|
152
|
+
Each resource resolves using this priority:
|
|
153
|
+
|
|
154
|
+
1. **Override** — `user_skills.<name>.md` starts with `<!-- OVERRIDE -->` → only the user file is served
|
|
155
|
+
2. **Augment** — `user_skills.<name>.md` has custom content (remove the `<!-- STUB -->` line first) → default + user content are concatenated
|
|
156
|
+
3. **Default** — `user_skills.<name>.md` is missing, empty, or still has the seeded stub → default skill content is served
|
|
157
|
+
4. **Disabled** — both files deleted → empty content is served (effectively disabled)
|
|
158
|
+
|
|
159
|
+
Seeding is idempotent — it never overwrites files you've already modified.
|
|
160
|
+
|
|
161
|
+
### Available Skills
|
|
162
|
+
|
|
163
|
+
| Skill | File | Description |
|
|
164
|
+
| ----- | ---- | ----------- |
|
|
165
|
+
| Coalesce Overview | `overview` | General Coalesce concepts, response guidelines, and operational constraints |
|
|
166
|
+
| SQL Platform Selection | `sql-platform-selection` | Determining the active SQL platform from project metadata |
|
|
167
|
+
| SQL Rules: Snowflake | `sql-snowflake` | Snowflake-specific SQL conventions for node SQL |
|
|
168
|
+
| SQL Rules: Databricks | `sql-databricks` | Databricks-specific SQL conventions for node SQL |
|
|
169
|
+
| SQL Rules: BigQuery | `sql-bigquery` | BigQuery-specific SQL conventions for node SQL |
|
|
170
|
+
| Data Engineering Principles | `data-engineering-principles` | Node type selection, layered architecture, methodology detection, and materialization strategies |
|
|
171
|
+
| Storage Locations and References | `storage-mappings` | Storage location concepts, `{{ ref() }}` syntax, and reference patterns |
|
|
172
|
+
| Tool Usage Patterns | `tool-usage` | Best practices for tool batching, parallelization, and SQL conversion |
|
|
173
|
+
| ID Discovery | `id-discovery` | Resolving project, workspace, environment, job, run, node, and org IDs |
|
|
174
|
+
| Node Creation Decision Tree | `node-creation-decision-tree` | Choosing between predecessor-based creation, updates, and full replacements |
|
|
175
|
+
| Node Payloads | `node-payloads` | Working with workspace node bodies, metadata, config, and array-replacement risks |
|
|
176
|
+
| Hydrated Metadata | `hydrated-metadata` | Coalesce hydrated metadata structures for advanced node payload editing |
|
|
177
|
+
| Run Operations | `run-operations` | Starting, retrying, polling, diagnosing, and canceling Coalesce runs |
|
|
178
|
+
| Node Type Corpus | `node-type-corpus` | Node type discovery, corpus search, and metadata patterns |
|
|
179
|
+
| Aggregation Patterns | `aggregation-patterns` | JOIN ON generation, GROUP BY detection, and join-to-aggregation conversion |
|
|
180
|
+
| Intelligent Node Configuration | `intelligent-node-configuration` | How intelligent config completion works, schema resolution, and automatic field detection |
|
|
181
|
+
| Pipeline Workflows | `pipeline-workflows` | Building pipelines end-to-end: node type selection, multi-node sequences, and execution |
|
|
182
|
+
| Node Operations | `node-operations` | Editing existing nodes: joins, columns, config fields, and SQL-to-graph conversion |
|
|
183
|
+
| Node Type Selection Guide | `node-type-selection-guide` | When to use each Coalesce node type (Stage/Work vs Dimension/Fact vs specialized) |
|
|
184
|
+
| Intent Pipeline Guide | `intent-pipeline-guide` | Using `build_pipeline_from_intent` to create pipelines from natural language |
|
|
185
|
+
| Run Diagnostics Guide | `run-diagnostics-guide` | Using `diagnose_run_failure` to analyze failed runs and determine fixes |
|
|
186
|
+
| Pipeline Review Guide | `pipeline-review-guide` | Using `review_pipeline` for pipeline analysis and optimization |
|
|
187
|
+
| Pipeline Workshop Guide | `pipeline-workshop-guide` | Using pipeline workshop tools for iterative, conversational pipeline building |
|
|
188
|
+
|
|
132
189
|
## Tool Reference
|
|
133
190
|
|
|
134
191
|
⚠️ = Destructive operation
|
|
@@ -142,7 +199,6 @@ Coalesce Platform Tools: manage workspaces, environments, projects, runs, and ot
|
|
|
142
199
|
- `list_environments` - List all available environments
|
|
143
200
|
- `get_environment` - Get details of a specific environment
|
|
144
201
|
- `create_environment` - Create a new environment within a project
|
|
145
|
-
- `update_environment` - Update an existing environment
|
|
146
202
|
- `delete_environment` - Delete an environment ⚠️
|
|
147
203
|
|
|
148
204
|
#### Workspaces
|
|
@@ -163,7 +219,6 @@ Coalesce Platform Tools: manage workspaces, environments, projects, runs, and ot
|
|
|
163
219
|
#### Jobs
|
|
164
220
|
|
|
165
221
|
- `list_environment_jobs` - List all jobs for an environment
|
|
166
|
-
- `list_workspace_jobs` - List all jobs for a workspace
|
|
167
222
|
- `create_workspace_job` - Create a job in a workspace with node include/exclude selectors
|
|
168
223
|
- `get_environment_job` - Get details of a specific job (via environment)
|
|
169
224
|
- `update_workspace_job` - Update a job's name and node selectors
|
|
@@ -179,6 +234,7 @@ Coalesce Platform Tools: manage workspaces, environments, projects, runs, and ot
|
|
|
179
234
|
|
|
180
235
|
#### Runs
|
|
181
236
|
|
|
237
|
+
- `diagnose_run_failure` - Diagnose a failed run with error classification, root-cause analysis, and actionable fix suggestions
|
|
182
238
|
- `list_runs` - List runs with optional filters
|
|
183
239
|
- `get_run` - Get details of a specific run
|
|
184
240
|
- `get_run_results` - Get results of a completed run
|
|
@@ -225,6 +281,7 @@ Custom logic built on top of the API: pipeline planning, config completion, join
|
|
|
225
281
|
- `replace_workspace_node_columns` - Replace `metadata.columns` wholesale and optionally apply additional changes for complex column rewrites
|
|
226
282
|
- `convert_join_to_aggregation` - Convert a join-style node into an aggregated fact-style node with generated JOIN/GROUP BY analysis
|
|
227
283
|
- `apply_join_condition` - Auto-generate and write a FROM/JOIN/ON clause for a multi-predecessor node
|
|
284
|
+
- `create_node_from_external_schema` - Create a workspace node whose columns match an existing warehouse table or external schema
|
|
228
285
|
- `complete_node_configuration` - Intelligently complete a node's configuration by analyzing context and applying best-practice rules
|
|
229
286
|
- `list_workspace_node_types` - List distinct node types observed in current workspace nodes
|
|
230
287
|
- `analyze_workspace_patterns` - Analyze workspace nodes to detect package adoption, pipeline layers, methodology, and generate recommendations
|
|
@@ -234,6 +291,17 @@ Custom logic built on top of the API: pipeline planning, config completion, join
|
|
|
234
291
|
- `plan_pipeline` - Plan a pipeline from SQL or a natural-language goal without mutating the workspace; ranks best-fit node types from the local repo
|
|
235
292
|
- `create_pipeline_from_plan` - Execute an approved pipeline plan using predecessor-based creation
|
|
236
293
|
- `create_pipeline_from_sql` - Plan and create a pipeline directly from SQL
|
|
294
|
+
- `build_pipeline_from_intent` - Build a pipeline from a natural language goal with automatic entity resolution and node type selection
|
|
295
|
+
- `review_pipeline` - Analyze an existing pipeline for redundant nodes, missing joins, layer violations, naming issues, and optimization opportunities
|
|
296
|
+
- `parse_sql_structure` - Parse a SQL statement into structural components (CTEs, source tables, projected columns) without touching the workspace
|
|
297
|
+
- `select_pipeline_node_type` - Rank and select the best Coalesce node type for a pipeline step using the deliberative selection loop against repo or workspace-observed types
|
|
298
|
+
|
|
299
|
+
#### Pipeline Workshop
|
|
300
|
+
|
|
301
|
+
- `pipeline_workshop_open` - Open an iterative pipeline builder session with workspace context pre-loaded
|
|
302
|
+
- `pipeline_workshop_instruct` - Send a natural language instruction to modify the current workshop plan
|
|
303
|
+
- `get_pipeline_workshop_status` - Get the current state of a workshop session
|
|
304
|
+
- `pipeline_workshop_close` - Close a workshop session and release resources
|
|
237
305
|
|
|
238
306
|
#### Repo-Backed Node Types and Templates
|
|
239
307
|
|
|
@@ -262,6 +330,20 @@ Custom logic built on top of the API: pipeline planning, config completion, join
|
|
|
262
330
|
- `retry_and_wait` - Retry a failed run and poll until completion; requires Snowflake Key Pair auth
|
|
263
331
|
- `get_run_details` - Get run metadata and results in one call
|
|
264
332
|
- `get_environment_overview` - Get environment details with full node list
|
|
333
|
+
- `get_environment_health` - Get a comprehensive health dashboard: node counts by type, run statuses, failed runs in last 24h, stale nodes, dependency health, and overall health score. This walks all paginated environment runs before scoring, so it can take longer on busy environments.
|
|
334
|
+
|
|
335
|
+
#### Skills
|
|
336
|
+
|
|
337
|
+
- `personalize_skills` - Export bundled skill files to a local directory for customization; creates editable `coalesce_skills.{name}.md` and `user_skills.{name}.md` pairs (idempotent — never overwrites existing files)
|
|
338
|
+
|
|
339
|
+
#### Lineage & Impact
|
|
340
|
+
|
|
341
|
+
- `get_upstream_nodes` - Walk the full upstream dependency graph for a node and return every ancestor with depth level (no depth limit)
|
|
342
|
+
- `get_downstream_nodes` - Walk the full downstream dependency graph for a node and return every dependent with depth level (no depth limit)
|
|
343
|
+
- `get_column_lineage` - Trace a column through the entire pipeline upstream and downstream via column-level references
|
|
344
|
+
- `analyze_impact` - Analyze downstream impact of changing a node or specific column — returns impacted counts, grouped by depth, and critical path
|
|
345
|
+
- `propagate_column_change` - Update all downstream columns after a column rename or data type change ⚠️
|
|
346
|
+
- `search_workspace_content` - Search across node SQL, column names, descriptions, and config values using the lineage cache as a searchable index
|
|
265
347
|
|
|
266
348
|
## Snowflake Exploration via Cortex Code
|
|
267
349
|
|
package/dist/client.d.ts
CHANGED
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAsBD,wBAAgB,cAAc,IAAI,YAAY,CAe7C;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IAGhC,MAAM,EAAE,MAAM;IACd,MAAM,CAAC,EAAE,OAAO;gBAFvB,OAAO,EAAE,MAAM,EACR,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,YAAA;CAK1B;AAkGD,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY;cAkJrC,MAAM,WACH,WAAW,YACV,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC;eAKX,MAAM,SACL,OAAO,WACL,WAAW,YACV,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC;cAKX,MAAM,SACL,OAAO,WACL,WAAW,YACV,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC;gBAKX,MAAM,SACL,OAAO,WACL,WAAW,YACV,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC;iBAKX,MAAM,WACH,WAAW,YACV,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC;EAItB;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
package/dist/client.js
CHANGED
|
@@ -13,6 +13,9 @@ const DEFAULT_BASE_URL = "https://app.coalescesoftware.io";
|
|
|
13
13
|
const MAX_RETRY_ATTEMPTS = 5;
|
|
14
14
|
const RETRY_BASE_DELAY_MS = 1_000;
|
|
15
15
|
const RETRY_MAX_DELAY_MS = 30_000;
|
|
16
|
+
// Only retry rate-limited GET requests. POST/PUT/PATCH/DELETE are not retried
|
|
17
|
+
// because they are not idempotent — retrying could cause duplicate runs, double
|
|
18
|
+
// deletes, or other unintended side effects.
|
|
16
19
|
const RETRYABLE_RATE_LIMIT_METHODS = new Set(["GET"]);
|
|
17
20
|
export function validateConfig() {
|
|
18
21
|
const accessToken = process.env.COALESCE_ACCESS_TOKEN?.trim();
|
|
@@ -56,6 +59,11 @@ function retryDelayMs(attempt, retryAfterMs) {
|
|
|
56
59
|
function sleep(ms) {
|
|
57
60
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
58
61
|
}
|
|
62
|
+
function createAbortError() {
|
|
63
|
+
const error = new Error("Request was cancelled");
|
|
64
|
+
error.name = "AbortError";
|
|
65
|
+
return error;
|
|
66
|
+
}
|
|
59
67
|
function shouldRetryRateLimit(method) {
|
|
60
68
|
return RETRYABLE_RATE_LIMIT_METHODS.has(method);
|
|
61
69
|
}
|
|
@@ -73,7 +81,7 @@ async function handleResponse(response) {
|
|
|
73
81
|
detail = await response.text();
|
|
74
82
|
}
|
|
75
83
|
catch {
|
|
76
|
-
detail =
|
|
84
|
+
detail = "[response body could not be read]";
|
|
77
85
|
}
|
|
78
86
|
}
|
|
79
87
|
switch (response.status) {
|
|
@@ -95,7 +103,7 @@ async function handleResponse(response) {
|
|
|
95
103
|
case 429: {
|
|
96
104
|
const retryAfterHeader = response.headers.get("Retry-After");
|
|
97
105
|
const retryAfterMs = parseRetryAfterMs(retryAfterHeader);
|
|
98
|
-
throw new CoalesceApiError("Coalesce API rate limit exceeded", 429, { ...(
|
|
106
|
+
throw new CoalesceApiError("Coalesce API rate limit exceeded", 429, { ...(detail && typeof detail === "object" ? detail : {}), ...(retryAfterMs !== undefined ? { retryAfterMs } : {}) });
|
|
99
107
|
}
|
|
100
108
|
default:
|
|
101
109
|
throw new CoalesceApiError(`Coalesce API unavailable (HTTP ${response.status})`, response.status, detail);
|
|
@@ -130,7 +138,10 @@ export function createClient(config) {
|
|
|
130
138
|
if (options?.timeoutMs === undefined) {
|
|
131
139
|
return defaultRequestTimeoutMs;
|
|
132
140
|
}
|
|
133
|
-
|
|
141
|
+
if (!Number.isFinite(options.timeoutMs)) {
|
|
142
|
+
return defaultRequestTimeoutMs;
|
|
143
|
+
}
|
|
144
|
+
return Math.max(1, Math.floor(options.timeoutMs));
|
|
134
145
|
}
|
|
135
146
|
async function requestOnce(method, path, params, body, options) {
|
|
136
147
|
const timeoutMs = effectiveTimeoutMs(options);
|
|
@@ -146,15 +157,24 @@ export function createClient(config) {
|
|
|
146
157
|
`Override with COALESCE_MCP_MAX_REQUEST_BODY_BYTES if this payload is intentional.`, 413, { bodyBytes, maxBytes, method, path });
|
|
147
158
|
}
|
|
148
159
|
}
|
|
160
|
+
if (options?.signal?.aborted) {
|
|
161
|
+
throw createAbortError();
|
|
162
|
+
}
|
|
149
163
|
const controller = new AbortController();
|
|
164
|
+
const requestSignal = options?.signal;
|
|
150
165
|
const timeoutHandle = setTimeout(() => controller.abort(), timeoutMs);
|
|
151
166
|
timeoutHandle.unref?.();
|
|
167
|
+
const forwardAbort = () => controller.abort();
|
|
168
|
+
if (requestSignal) {
|
|
169
|
+
requestSignal.addEventListener("abort", forwardAbort, { once: true });
|
|
170
|
+
}
|
|
152
171
|
try {
|
|
153
172
|
const response = await fetch(buildUrl(path, params), {
|
|
154
173
|
method,
|
|
155
174
|
headers: headers(method),
|
|
156
175
|
body: serializedBody,
|
|
157
176
|
signal: controller.signal,
|
|
177
|
+
credentials: "omit",
|
|
158
178
|
});
|
|
159
179
|
return await handleResponse(response);
|
|
160
180
|
}
|
|
@@ -162,12 +182,16 @@ export function createClient(config) {
|
|
|
162
182
|
if (error instanceof CoalesceApiError) {
|
|
163
183
|
throw error;
|
|
164
184
|
}
|
|
185
|
+
if (requestSignal?.aborted) {
|
|
186
|
+
throw createAbortError();
|
|
187
|
+
}
|
|
165
188
|
if (error instanceof Error && error.name === "AbortError") {
|
|
166
189
|
throw new CoalesceApiError(`Coalesce API request timed out after ${timeoutMs}ms`, 408, { method, path });
|
|
167
190
|
}
|
|
168
191
|
throw new CoalesceApiError("Unable to reach Coalesce API", 503, error instanceof Error ? { message: error.message } : error);
|
|
169
192
|
}
|
|
170
193
|
finally {
|
|
194
|
+
requestSignal?.removeEventListener("abort", forwardAbort);
|
|
171
195
|
clearTimeout(timeoutHandle);
|
|
172
196
|
}
|
|
173
197
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,18 +15,6 @@ export declare function createEnvironment(client: CoalesceClient, params: {
|
|
|
15
15
|
textColor?: string;
|
|
16
16
|
};
|
|
17
17
|
}): Promise<unknown>;
|
|
18
|
-
export declare function updateEnvironment(client: CoalesceClient, params: {
|
|
19
|
-
environmentID: string;
|
|
20
|
-
name?: string;
|
|
21
|
-
oauthEnabled?: boolean;
|
|
22
|
-
devEnv?: boolean;
|
|
23
|
-
connectionAccount?: string;
|
|
24
|
-
runTimeParameters?: Record<string, unknown>;
|
|
25
|
-
tagColors?: {
|
|
26
|
-
backgroundColor?: string;
|
|
27
|
-
textColor?: string;
|
|
28
|
-
};
|
|
29
|
-
}): Promise<unknown>;
|
|
30
18
|
export declare function deleteEnvironment(client: CoalesceClient, params: {
|
|
31
19
|
environmentID: string;
|
|
32
20
|
}): Promise<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../../src/coalesce/api/environments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnE,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D,GACA,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../../src/coalesce/api/environments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnE,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D,GACA,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC,OAAO,CAAC,CAKlB"}
|
|
@@ -9,10 +9,6 @@ export async function getEnvironment(client, params) {
|
|
|
9
9
|
export async function createEnvironment(client, params) {
|
|
10
10
|
return client.post("/api/v1/environments", params);
|
|
11
11
|
}
|
|
12
|
-
export async function updateEnvironment(client, params) {
|
|
13
|
-
const { environmentID, ...body } = params;
|
|
14
|
-
return client.patch(`/api/v1/environments/${validatePathSegment(environmentID, "environmentID")}`, body);
|
|
15
|
-
}
|
|
16
12
|
export async function deleteEnvironment(client, params) {
|
|
17
13
|
const { environmentID } = params;
|
|
18
14
|
return client.delete(`/api/v1/environments/${validatePathSegment(environmentID, "environmentID")}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.js","sourceRoot":"","sources":["../../../src/coalesce/api/environments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAsB,EACtB,MAAmB;IAEnB,OAAO,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAsB,EACtB,MAAiC;IAEjC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IACjC,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,mBAAmB,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,MAQC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"environments.js","sourceRoot":"","sources":["../../../src/coalesce/api/environments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAsB,EACtB,MAAmB;IAEnB,OAAO,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAsB,EACtB,MAAiC;IAEjC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IACjC,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,mBAAmB,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,MAQC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,MAAiC;IAEjC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IACjC,OAAO,MAAM,CAAC,MAAM,CAClB,wBAAwB,mBAAmB,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,CAC9E,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import type { CoalesceClient
|
|
2
|
-
export declare function listWorkspaceJobs(client: CoalesceClient, params: {
|
|
3
|
-
workspaceID: string;
|
|
4
|
-
} & QueryParams): Promise<unknown>;
|
|
1
|
+
import type { CoalesceClient } from "../../client.js";
|
|
5
2
|
export declare function listEnvironmentJobs(client: CoalesceClient, params: {
|
|
6
3
|
environmentID: string;
|
|
7
|
-
|
|
4
|
+
limit?: number | string;
|
|
5
|
+
}): Promise<unknown>;
|
|
8
6
|
export declare function createWorkspaceJob(client: CoalesceClient, params: {
|
|
9
7
|
workspaceID: string;
|
|
10
8
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../../src/coalesce/api/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../../src/coalesce/api/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAItD,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IACN,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB,GACA,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IACN,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB,GACA,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,OAAO,CAAC,CAKlB"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { validatePathSegment } from "../types.js";
|
|
2
|
-
|
|
3
|
-
const { workspaceID, ...query } = params;
|
|
4
|
-
return client.get(`/api/v1/workspaces/${validatePathSegment(workspaceID, "workspaceID")}/jobs`, query);
|
|
5
|
-
}
|
|
2
|
+
import { scanResourcesByID } from "./scan.js";
|
|
6
3
|
export async function listEnvironmentJobs(client, params) {
|
|
7
|
-
const
|
|
8
|
-
return client
|
|
4
|
+
const eid = validatePathSegment(params.environmentID, "environmentID");
|
|
5
|
+
return scanResourcesByID(client, `/api/v1/environments/${eid}/jobs`, params.limit ? Number(params.limit) : undefined);
|
|
9
6
|
}
|
|
10
7
|
export async function createWorkspaceJob(client, params) {
|
|
11
8
|
const { workspaceID, ...body } = params;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/coalesce/api/jobs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/coalesce/api/jobs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAsB,EACtB,MAA0D;IAE1D,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IACvE,OAAO,iBAAiB,CACtB,MAAM,EACN,wBAAwB,GAAG,OAAO,EAClC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAChD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAsB,EACtB,MAKC;IAED,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,CAChB,sBAAsB,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,EAC5E,IAAI,CACL,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,MAAgD;IAEhD,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACxC,OAAO,MAAM,CAAC,GAAG,CACf,wBAAwB,mBAAmB,CAAC,aAAa,EAAE,eAAe,CAAC,SAAS,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EACzH,EAAE,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAsB,EACtB,MAMC;IAED,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAC/C,OAAO,MAAM,CAAC,GAAG,CACf,sBAAsB,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,SAAS,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EACnH,IAAI,CACL,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAsB,EACtB,MAA8C;IAE9C,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACtC,OAAO,MAAM,CAAC,MAAM,CAClB,sBAAsB,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,SAAS,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CACpH,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { CoalesceClient, QueryParams } from "../../client.js";
|
|
1
|
+
import type { CoalesceClient, QueryParams, RequestOptions } from "../../client.js";
|
|
2
2
|
export declare function listEnvironmentNodes(client: CoalesceClient, params: QueryParams & {
|
|
3
3
|
environmentID: string;
|
|
4
|
-
}): Promise<unknown>;
|
|
4
|
+
}, options?: RequestOptions): Promise<unknown>;
|
|
5
5
|
export declare function listWorkspaceNodes(client: CoalesceClient, params: QueryParams & {
|
|
6
6
|
workspaceID: string;
|
|
7
|
-
}): Promise<unknown>;
|
|
7
|
+
}, options?: RequestOptions): Promise<unknown>;
|
|
8
8
|
export declare function getEnvironmentNode(client: CoalesceClient, params: {
|
|
9
9
|
environmentID: string;
|
|
10
10
|
nodeID: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/coalesce/api/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/coalesce/api/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGnF,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,WAAW,GAAG;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,EAC/C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC,CAIlB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,WAAW,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,EAC7C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC,CAIlB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9C,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IACN,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B,GACA,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IACN,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,GACA,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9C,OAAO,CAAC,OAAO,CAAC,CAKlB"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { validatePathSegment } from "../types.js";
|
|
2
|
-
export async function listEnvironmentNodes(client, params) {
|
|
2
|
+
export async function listEnvironmentNodes(client, params, options) {
|
|
3
3
|
const { environmentID, ...queryParams } = params;
|
|
4
|
-
|
|
4
|
+
const url = `/api/v1/environments/${validatePathSegment(environmentID, "environmentID")}/nodes`;
|
|
5
|
+
return options ? client.get(url, queryParams, options) : client.get(url, queryParams);
|
|
5
6
|
}
|
|
6
|
-
export async function listWorkspaceNodes(client, params) {
|
|
7
|
+
export async function listWorkspaceNodes(client, params, options) {
|
|
7
8
|
const { workspaceID, ...queryParams } = params;
|
|
8
|
-
|
|
9
|
+
const url = `/api/v1/workspaces/${validatePathSegment(workspaceID, "workspaceID")}/nodes`;
|
|
10
|
+
return options ? client.get(url, queryParams, options) : client.get(url, queryParams);
|
|
9
11
|
}
|
|
10
12
|
export async function getEnvironmentNode(client, params) {
|
|
11
13
|
const { environmentID, nodeID } = params;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/coalesce/api/nodes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAsB,EACtB,MAA+C
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/coalesce/api/nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../src/coalesce/api/runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../src/coalesce/api/runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQ7D,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,MAAM,CAC1B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACxB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACxB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC/D,OAAO,CAAC,OAAO,CAAC,CAclB"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { validatePathSegment, buildStartRunBody, buildRerunBody } from "../types.js";
|
|
2
|
+
// The Coalesce API uses two distinct run identifiers — this is intentional, not inconsistent naming:
|
|
3
|
+
// runID (string) — numeric ID passed as a path segment to REST endpoints (/api/v1/runs/{runID})
|
|
4
|
+
// runCounter (number) — numeric counter used as a query param by scheduler endpoints (/scheduler/runStatus)
|
|
5
|
+
// Both refer to the same run but are consumed by different parts of the Coalesce API.
|
|
2
6
|
export async function listRuns(client, params) {
|
|
3
7
|
return client.get("/api/v1/runs", params);
|
|
4
8
|
}
|
|
@@ -15,13 +19,19 @@ export async function startRun(client, params) {
|
|
|
15
19
|
return client.post("/scheduler/startRun", body);
|
|
16
20
|
}
|
|
17
21
|
export async function runStatus(client, params) {
|
|
18
|
-
|
|
22
|
+
const { runCounter } = params;
|
|
23
|
+
if (!Number.isFinite(runCounter) || !Number.isInteger(runCounter) || runCounter < 0) {
|
|
24
|
+
throw new Error(`runCounter must be a non-negative integer, got: ${runCounter}`);
|
|
25
|
+
}
|
|
26
|
+
return client.get("/scheduler/runStatus", { runCounter });
|
|
19
27
|
}
|
|
20
28
|
export async function retryRun(client, params) {
|
|
21
29
|
const body = buildRerunBody(params);
|
|
22
30
|
return client.post("/scheduler/rerun", body);
|
|
23
31
|
}
|
|
24
32
|
export async function cancelRun(client, params) {
|
|
33
|
+
validatePathSegment(params.runID, "runID");
|
|
34
|
+
validatePathSegment(params.environmentID, "environmentID");
|
|
25
35
|
const orgID = params.orgID?.trim() || process.env.COALESCE_ORG_ID?.trim();
|
|
26
36
|
if (!orgID) {
|
|
27
37
|
throw new Error("orgID is required for cancel-run. Provide it explicitly or set COALESCE_ORG_ID.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../src/coalesce/api/runs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAsB,EACtB,MAAmB;IAEnB,OAAO,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAsB,EACtB,MAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAsB,EACtB,MAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAsB,EACtB,MAAqB;IAErB,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAsB,EACtB,MAA8B;IAE9B,
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../src/coalesce/api/runs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErF,qGAAqG;AACrG,sGAAsG;AACtG,8GAA8G;AAC9G,sFAAsF;AAEtF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAsB,EACtB,MAAmB;IAEnB,OAAO,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAsB,EACtB,MAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAsB,EACtB,MAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAsB,EACtB,MAAqB;IAErB,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAsB,EACtB,MAA8B;IAE9B,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,KAAK,CAAC,mDAAmD,UAAU,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAsB,EACtB,MAAkB;IAElB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAsB,EACtB,MAAgE;IAEhE,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3C,mBAAmB,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;QACzC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK;QACL,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CoalesceClient } from "../../client.js";
|
|
2
|
+
/**
|
|
3
|
+
* Scans sequential numeric IDs to discover resources when the API lacks
|
|
4
|
+
* a collection GET endpoint. Fetches `GET {basePath}/1`, `GET {basePath}/2`, ...
|
|
5
|
+
* in parallel batches. Continues scanning if resources are found near the
|
|
6
|
+
* end of a batch (within the last SCAN_TAIL_THRESHOLD IDs). Stops when a
|
|
7
|
+
* full batch has no hits in the tail, or SCAN_MAX_ID is reached.
|
|
8
|
+
* An optional `limit` caps the number of returned resources, stopping the
|
|
9
|
+
* scan early once reached.
|
|
10
|
+
*/
|
|
11
|
+
export declare function scanResourcesByID(client: CoalesceClient, basePath: string, limit?: number): Promise<{
|
|
12
|
+
data: unknown[];
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=scan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/coalesce/api/scan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQtD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CA0D9B"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { CoalesceApiError } from "../../client.js";
|
|
2
|
+
const SCAN_BATCH_SIZE = 50;
|
|
3
|
+
const SCAN_CONCURRENCY = 20;
|
|
4
|
+
const SCAN_TAIL_THRESHOLD = 10;
|
|
5
|
+
const SCAN_MAX_ID = 10_000;
|
|
6
|
+
/**
|
|
7
|
+
* Scans sequential numeric IDs to discover resources when the API lacks
|
|
8
|
+
* a collection GET endpoint. Fetches `GET {basePath}/1`, `GET {basePath}/2`, ...
|
|
9
|
+
* in parallel batches. Continues scanning if resources are found near the
|
|
10
|
+
* end of a batch (within the last SCAN_TAIL_THRESHOLD IDs). Stops when a
|
|
11
|
+
* full batch has no hits in the tail, or SCAN_MAX_ID is reached.
|
|
12
|
+
* An optional `limit` caps the number of returned resources, stopping the
|
|
13
|
+
* scan early once reached.
|
|
14
|
+
*/
|
|
15
|
+
export async function scanResourcesByID(client, basePath, limit) {
|
|
16
|
+
if (!basePath || typeof basePath !== "string" || !/^\/[a-zA-Z0-9/._-]+$/.test(basePath)) {
|
|
17
|
+
throw new Error(`Invalid basePath for resource scan: "${basePath}". Must be an absolute API path with safe characters.`);
|
|
18
|
+
}
|
|
19
|
+
if (limit !== undefined && (!Number.isFinite(limit) || !Number.isInteger(limit) || limit < 1)) {
|
|
20
|
+
throw new Error(`Invalid scan limit: ${limit}. Must be a positive integer.`);
|
|
21
|
+
}
|
|
22
|
+
const found = [];
|
|
23
|
+
let batchStart = 1;
|
|
24
|
+
while (batchStart <= SCAN_MAX_ID) {
|
|
25
|
+
const batchEnd = Math.min(batchStart + SCAN_BATCH_SIZE - 1, SCAN_MAX_ID);
|
|
26
|
+
let highestFoundInBatch = 0;
|
|
27
|
+
for (let chunk = batchStart; chunk <= batchEnd; chunk += SCAN_CONCURRENCY) {
|
|
28
|
+
const chunkEnd = Math.min(chunk + SCAN_CONCURRENCY - 1, batchEnd);
|
|
29
|
+
const promises = [];
|
|
30
|
+
for (let id = chunk; id <= chunkEnd; id++) {
|
|
31
|
+
promises.push(client.get(`${basePath}/${id}`, {}).then((resource) => {
|
|
32
|
+
found.push(resource);
|
|
33
|
+
if (id > highestFoundInBatch)
|
|
34
|
+
highestFoundInBatch = id;
|
|
35
|
+
}).catch((err) => {
|
|
36
|
+
if (err instanceof CoalesceApiError && err.status === 404)
|
|
37
|
+
return;
|
|
38
|
+
throw err;
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
await Promise.all(promises);
|
|
42
|
+
if (limit && found.length >= limit) {
|
|
43
|
+
return { data: found.slice(0, limit) };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const tailStart = batchEnd - SCAN_TAIL_THRESHOLD + 1;
|
|
47
|
+
if (highestFoundInBatch < tailStart)
|
|
48
|
+
break;
|
|
49
|
+
batchStart = batchEnd + 1;
|
|
50
|
+
}
|
|
51
|
+
// Sort by ID for deterministic ordering (resources arrive in non-deterministic
|
|
52
|
+
// order due to concurrent fetches).
|
|
53
|
+
found.sort((a, b) => {
|
|
54
|
+
const aId = typeof a === "object" && a !== null && "id" in a ? Number(a.id) : 0;
|
|
55
|
+
const bId = typeof b === "object" && b !== null && "id" in b ? Number(b.id) : 0;
|
|
56
|
+
return aId - bId;
|
|
57
|
+
});
|
|
58
|
+
if (found.length === 0) {
|
|
59
|
+
process.stderr.write(`[scanResourcesByID] Scan of ${basePath} IDs 1-${Math.min(SCAN_BATCH_SIZE, SCAN_MAX_ID)} found no resources. ` +
|
|
60
|
+
`Verify the basePath and parent resource ID are correct.\n`);
|
|
61
|
+
}
|
|
62
|
+
return { data: found };
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/coalesce/api/scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { CoalesceClient
|
|
1
|
+
import type { CoalesceClient } from "../../client.js";
|
|
2
2
|
export declare function listWorkspaceSubgraphs(client: CoalesceClient, params: {
|
|
3
3
|
workspaceID: string;
|
|
4
|
-
|
|
4
|
+
limit?: number | string;
|
|
5
|
+
}): Promise<unknown>;
|
|
5
6
|
export declare function getWorkspaceSubgraph(client: CoalesceClient, params: {
|
|
6
7
|
workspaceID: string;
|
|
7
8
|
subgraphID: string;
|