Skip to content

Apply TypeScript types to safe output MCP server using JavaScript comment types - #942

Closed
pelikhan with Copilot wants to merge 2 commits into
mainfrom
copilot/fix-4ab71f8a-09cf-4cfd-a59b-f94d474714f6
Closed

pelikhan with Copilot wants to merge 2 commits into
mainfrom
copilot/fix-4ab71f8a-09cf-4cfd-a59b-f94d474714f6

Conversation

Copilot AI commented Sep 19, 2025 •

Copy link
Copy Markdown
Contributor

This PR applies types from the TypeScript definition file (pkg/workflow/js/types/safe-outputs.d.ts) to the safe output MCP server (pkg/workflow/js/safe_outputs_mcp_server.cjs) using JSDoc comment types to improve type safety and developer experience.

Problem

The safe output MCP server was missing type annotations, making it difficult for developers to understand the expected data structures and function signatures. While TypeScript definitions existed for safe output types, they weren't being utilized in the CommonJS implementation.

Solution

Added comprehensive JSDoc type annotations throughout the MCP server implementation:

  • Function signatures: All major functions now have proper parameter and return value types
  • Data structures: Key variables like the TOOLS configuration object are properly typed
  • Type mapping documentation: Clear mapping between MCP tool names and their corresponding TypeScript interfaces:
    • create-issue → CreateIssueItem
    • create-discussion → CreateDiscussionItem
    • add-comment → AddCommentItem
    • And all other safe output types

Key Changes

  • Added JSDoc annotations to core functions: appendSafeOutput(), defaultHandler(), handleMessage()
  • Typed the ReadBuffer class and its methods for stdin message processing
  • Added types for JSON-RPC utility functions: writeMessage(), replyResult(), replyError()
  • Fixed TypeScript strict checking issues around environment variable handling
  • Added comprehensive documentation linking tool types to their safe output interfaces

Benefits

  • Better IDE support: Developers get proper autocomplete and type hints
  • Type safety: TypeScript can now validate usage of safe output functions
  • Self-documenting code: JSDoc comments provide clear documentation of expected types
  • No breaking changes: All existing functionality is preserved

Validation

  • ✅ TypeScript type checking passes (npm run typecheck)
  • ✅ All JavaScript tests pass (373 tests)
  • ✅ All Go unit tests pass
  • ✅ Project builds successfully

This change improves the development experience while maintaining full backward compatibility.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • api.contoso.com
    • Triggering command: /tmp/go-build662510319/b305/cli.test -test.testlogfile=/tmp/go-build662510319/b305/testlog.txt -test.paniconexit0 -test.v=true -test.timeout=3m0s (dns block)
    • Triggering command: /tmp/go-build4276602074/b305/cli.test -test.testlogfile=/tmp/go-build4276602074/b305/testlog.txt -test.paniconexit0 -test.v=true -test.timeout=3m0s (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

…ment types

- Add JSDoc type annotations for all major functions and variables
- Add type annotations for parameters, return values, and data structures
- Add comprehensive documentation comments with type information
- Map tool types to corresponding safe output interfaces from TypeScript definitions
- Ensure type checking passes while maintaining all existing functionality
- Add type annotations for JSON-RPC message handling and MCP tool validation

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Apply types from the safe output in the JavaScript types.ts to the safe output MCP server so that it type checks. Use JavaScript comment types. Apply TypeScript types to safe output MCP server using JavaScript comment types Sep 19, 2025
Copilot AI requested a review from pelikhan September 19, 2025 14:32
@pelikhan pelikhan closed this Sep 19, 2025
@pelikhan
pelikhan deleted the copilot/fix-4ab71f8a-09cf-4cfd-a59b-f94d474714f6 branch October 2, 2025 15:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants