feat: on-prem agents and connected systems#60
Conversation
Add Agents and ConnectedSystems endpoints aligned with imt-web-api (POST /agent/register for create). Expose on-prem-agent_* and connected-system_* MCP tools plus connected-system_list-apps enum. Bump version to 1.5.0. Co-authored-by: Cursor <cursoragent@cursor.com>
Add agents/connected-systems integration suites with env-driven create flows, getAppConfig preflight validation, and corrected sap-agent fields (ashost, sysnr, client). Extend unit tests for MakeError paths, MCP tool execute smoke tests, and README/.env.example setup docs. Co-authored-by: Cursor <cursoragent@cursor.com>
Use realistic sap-agent input examples in connected-system create/update tools. Remove makehq-sdk-*.tgz from .gitignore (local pack files are not tracked). Co-authored-by: Cursor <cursoragent@cursor.com>
Run build:version so published artifacts and JSR metadata match package.json. Co-authored-by: Cursor <cursoragent@cursor.com>
After syncing version.ts to 1.5.0, stop hardcoding development in the internals override test. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Pull request overview
Adds Phase 1 support for on-prem bridge agents and on-prem “connected systems” to @makehq/sdk, aligning SDK endpoints + MCP tool surface with the internal imt-web-api routes and expanding the test/docs scaffolding needed to validate these flows.
Changes:
- Introduces new SDK endpoints for on-prem
agentsandconnectedSystems, plusEnums.connectedSystemApps()for app discovery. - Adds MCP tools for on-prem agent and connected-system operations, and wires them into the aggregated
MakeToolsexport. - Adds unit + integration tests (env-driven create flows), fixtures/mocks, and updates docs/env examples; bumps SDK version to
1.5.0.
Reviewed changes
Copilot reviewed 38 out of 39 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| test/utils.spec.ts | Adds coverage for buildUrl handling of null/undefined array entries. |
| test/on-prem-tools.spec.ts | Adds MCP tool execution tests for on-prem agent + connected-system tools. |
| test/on-prem-connected-system.utils.ts | Adds integration-test helpers for parsing/validating connected-system inputs vs app config. |
| test/on-prem-connected-system.utils.spec.ts | Adds unit tests for the connected-system integration helpers. |
| test/mocks/enums/connected-system-apps.json | Adds mock payload for connected-system apps enum. |
| test/mocks/connected-systems/list.json | Adds connected-systems list fixture. |
| test/mocks/connected-systems/get.json | Adds connected-system get fixture. |
| test/mocks/connected-systems/create.json | Adds connected-system create fixture. |
| test/mocks/connected-systems/update.json | Adds connected-system update fixture. |
| test/mocks/connected-systems/delete.json | Adds connected-system delete fixture. |
| test/mocks/agents/list.json | Adds agents list fixture. |
| test/mocks/agents/get.json | Adds agent get fixture. |
| test/mocks/agents/create.json | Adds agent create/register fixture (includes clientSecret). |
| test/mocks/agents/update.json | Adds agent update fixture. |
| test/mocks/agents/delete.json | Adds agent delete fixture. |
| test/mocks/agents/app-config.json | Adds agent app-config fixture for connected-system inputs. |
| test/mcp.spec.ts | Extends MCP tool exposure tests for new categories/tools. |
| test/make.spec.ts | Updates expected user-agent to include built SDK version. |
| test/enums.spec.ts | Adds unit coverage for Enums.connectedSystemApps(). |
| test/enums.integration.test.ts | Adds integration coverage for connected-system app listing. |
| test/connected-systems.spec.ts | Adds unit tests for connected-systems endpoint methods. |
| test/connected-systems.integration.test.ts | Adds env-driven integration tests for connected-systems read + create/update/delete flows. |
| test/agents.spec.ts | Adds unit tests for agents endpoint methods (including /agent/register + getAppConfig). |
| test/agents.integration.test.ts | Adds integration tests for agent register/list/get/update/delete + MCP tool execution. |
| src/version.ts | Sets SDK VERSION constant to 1.5.0. |
| src/tools.ts | Registers new on-prem agent + connected-system tool sets in MakeTools. |
| src/make.ts | Adds make.agents and make.connectedSystems endpoint instances. |
| src/index.ts | Exports new endpoint-related types (agents, connected-systems, connected-system apps). |
| src/endpoints/on-prem-agents.tools.ts | Adds MCP tool definitions for on-prem agent operations. |
| src/endpoints/enums.ts | Adds ConnectedSystemApp type and connectedSystemApps() method. |
| src/endpoints/enums.tools.ts | Adds connected-system_list-apps MCP tool backed by enums endpoint. |
| src/endpoints/connected-systems.ts | Adds ConnectedSystems endpoint class and request/response types. |
| src/endpoints/connected-systems.tools.ts | Adds MCP tool definitions for connected-system CRUD operations. |
| src/endpoints/agents.ts | Adds Agents endpoint class and types (including getAppConfig). |
| README.md | Documents env vars and how integration create suites are enabled for connected systems. |
| package.json | Bumps package version to 1.5.0. |
| package-lock.json | Updates lockfile version metadata to 1.5.0. |
| jsr.json | Updates JSR package version and publish include/exclude formatting. |
| .env.example | Adds example env vars for connected-system create integration suites. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Keep buildUrl coverage aligned with the public QueryValue type by testing undefined array entries without casting null into the API shape. Co-authored-by: Cursor <cursoragent@cursor.com>
Patrik Simek (patriksimek)
left a comment
There was a problem hiding this comment.
There are naming inconsistencies across the PR - Agent vs OnPremAgent and ConnectedSystem vs OnPremConectedSystem. This should be united. Ideally all with OnPrem prefix.
| @@ -1 +1 @@ | |||
| export const VERSION = 'development'; // To be replaced while publishing | |||
| export const VERSION = '1.5.0'; No newline at end of file | |||
There was a problem hiding this comment.
This must not change in the code - this is changed automatically by the release pipeline.
| /** | ||
| * Represents a Make on-prem bridge agent (not Make AI `/v1/agents`). | ||
| */ | ||
| export type Agent = { |
There was a problem hiding this comment.
Can we please name this OnPremAgent? All other classes and exports should be renamed as well. Feels like a leftover given the tools are already exported with prefix.
| * Access to on-prem bridge agent endpoints | ||
| * On-prem agents run on customer infrastructure and connect to Make via the agency service | ||
| */ | ||
| public readonly agents: Agents; |
There was a problem hiding this comment.
This should be onPremAgent.
| expect(options?.headers).toStrictEqual({ | ||
| authorization: `Token ${MAKE_API_KEY}`, | ||
| 'user-agent': 'MakeTypeScriptSDK/development', | ||
| 'user-agent': `MakeTypeScriptSDK/${VERSION}`, |
There was a problem hiding this comment.
Why are we changing this?
| @@ -1,10 +1,17 @@ | |||
| { | |||
| "name": "@make/sdk", | |||
| "version": "0.0.0", | |||
There was a problem hiding this comment.
Do not change this.
https://make.atlassian.net/browse/IEN-15537
Summary
Phase 1 of on-prem agent / connected-system support in
@makehq/sdk(v1.5.0), aligned withimt-web-apiroutes (not public OpenAPI).Agentsendpoint: list, get, register viaPOST /agent/register, update, delete,getAppConfigConnectedSystemsendpoint: list, get, create, update, delete on/connected-systemsEnums.connectedSystemApps()for app discovery (http,sap-agent, etc.)on-prem-agent_*(6),connected-system_*(5),connected-system_list-apps.env.example, README setup docssap-agentinputs documented asashost,sysnr,client(matches Make UI / agency)Test plan
npm test(unit specs including agents, connected-systems, on-prem tools, preflight utils)npm run test:integration -- --testPathPattern="agents.integration|connected-systems.integration"(requires.envwithMAKE_API_KEY,MAKE_ZONE,MAKE_ORGANIZATION, optionalMAKE_CONNECTED_SYSTEM_*_INPUTS)make-mcp-server-host(separate PR)Made with Cursor