ask-computer-mcp 0.1.2 → 0.1.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5bde90b880a3a6ed92825a7a3812d87bc8ec50c08d4628b2642a9b18bb4adf8
4
- data.tar.gz: 4f2f00a2611077b485bca46789b8fc76b65a8b58c2179aac0a4a5ca247b7b977
3
+ metadata.gz: 7b34dea4d2b819d5459d623cd7481d47542f078c05ba2e2ef69135d200e33150
4
+ data.tar.gz: ba2686b4d2f6820aacc2d6bf15321dcba731065f22128ac139bc58ea17fced10
5
5
  SHA512:
6
- metadata.gz: ecea4cebafc69d0e2c846ab72fa1ef24178bba022669cafc5b2d4e3bbbb7403ada532005ac892b50f5f70c17031bbb8267dfbcf5542e0de076feda47f4b1ae38
7
- data.tar.gz: da7094dce154ebcce9ec8f6da33b33754b0d0ae1ff792e2a4d4d9951038f6c1eeae309193aa3ef6db29fb08f762fb090545a8f9445bea773d89c516a5c3bb6c2
6
+ metadata.gz: 6787791068d6a0cb66914a20faf313cd959ce18849a5adc9a1f34211416c000318be1d37ab0494ae4f86ff9190d5a43731cefb32b1ec4261146648e3b65a577e
7
+ data.tar.gz: 93a5095e95e8f811a3da78df734acc0cb2acac6a49f58586713f9239ace5472747c43d14010e905f7785856347d7798a4ad615593fbc7cde81ffd2c95fb8e0c4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+
4
+ ## [Unreleased]
5
+
6
+ ## [0.1.4] - 2026-09-25
7
+
3
8
  ## [0.1.0] - 2026-08-20
4
9
 
5
10
  ### Added
@@ -3,7 +3,7 @@
3
3
  module Ask
4
4
  module Computer
5
5
  module MCP
6
- VERSION = "0.1.2"
6
+ VERSION = "0.1.4"
7
7
  end
8
8
  end
9
9
  end
@@ -4,6 +4,15 @@ require "ask-computer"
4
4
  require "ask/mcp"
5
5
  require_relative "mcp/version"
6
6
 
7
+ # Load ask-decisions when available — adds the Decide tool and AgentAdapter.
8
+ begin
9
+ require "ask-decisions"
10
+ require "ask/decisions/mcp_helper"
11
+ require "ask/decisions/agent_adapter"
12
+ rescue LoadError
13
+ # ask-decisions not installed — decision layer unavailable
14
+ end
15
+
7
16
  module Ask
8
17
  module Computer
9
18
  module MCP
@@ -21,8 +30,34 @@ module Ask
21
30
  ALL_TOOLS = COMPUTER_TOOLS.freeze
22
31
 
23
32
  class << self
33
+ # Build the tool list. Includes the Decide tool when ask-decisions
34
+ # is available and a decision provider is configured.
24
35
  def tools
25
- @tools ||= ALL_TOOLS.map(&:new)
36
+ @tools ||= build_tools
37
+ end
38
+
39
+ # Create an AgentAdapter for ask-agent sessions. Returns nil when
40
+ # ask-decisions is not installed.
41
+ #
42
+ # adapter = Ask::Computer::MCP.agent_adapter(
43
+ # decision_provider: :typesafe,
44
+ # gate_tools: %w[click type key],
45
+ # gate_thresholds: { "click" => 0.8 }
46
+ # )
47
+ # adapter.before_tool_hooks # => [gate_hook]
48
+ # adapter.after_tool_hooks # => [output_judge_hook]
49
+ def agent_adapter(config = {})
50
+ return nil unless defined?(Ask::Decisions::AgentAdapter)
51
+
52
+ provider_name = config.fetch(:decision_provider,
53
+ Ask::Decisions.configuration.default_provider)
54
+ Ask::Decisions::AgentAdapter.new(provider_name, config)
55
+ end
56
+
57
+ # Check whether the Decide tool is available (ask-decisions loaded,
58
+ # Ask::Tools::Decide defined, and a provider is configured).
59
+ def decisions_available?
60
+ defined?(Ask::Tools::Decide) && decision_provider_configured?
26
61
  end
27
62
 
28
63
  def start
@@ -42,6 +77,25 @@ module Ask
42
77
 
43
78
  private
44
79
 
80
+ def build_tools
81
+ list = ALL_TOOLS.map(&:new)
82
+ append_decide_tool(list) if decisions_available?
83
+ list
84
+ end
85
+
86
+ def append_decide_tool(list)
87
+ return unless defined?(Ask::Decisions::MCPHelper)
88
+
89
+ list << Ask::Decisions::MCPHelper.tool
90
+ end
91
+
92
+ def decision_provider_configured?
93
+ Ask::Decisions.configuration.default_provider
94
+ true
95
+ rescue Ask::UnknownProvider, NameError
96
+ false
97
+ end
98
+
45
99
  def ensure_driver
46
100
  return if Ask::Computer.installed?
47
101
  warn "[ask-computer-mcp] Cua Driver not found — running installer (stable channel)..."
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ask-computer-mcp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kaka Ruto
@@ -29,14 +29,28 @@ dependencies:
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.5.0
32
+ version: 0.6.1
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 0.5.0
39
+ version: 0.6.1
40
+ - !ruby/object:Gem::Dependency
41
+ name: ask-decisions
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.2.8
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.2.8
40
54
  - !ruby/object:Gem::Dependency
41
55
  name: minitest
42
56
  requirement: !ruby/object:Gem::Requirement
@@ -79,6 +93,34 @@ dependencies:
79
93
  - - "~>"
80
94
  - !ruby/object:Gem::Version
81
95
  version: '3.1'
96
+ - !ruby/object:Gem::Dependency
97
+ name: webmock
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.18'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '3.18'
110
+ - !ruby/object:Gem::Dependency
111
+ name: vcr
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '6.0'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '6.0'
82
124
  description: |
83
125
  Exposes the ask-computer tools (HistoryStatus, HistoryQuery, Screenshot,
84
126
  Click, Type, Key, InstallerStatus, InstallerSetup) as MCP tools. Coding