ask-decisions 0.2.6 → 0.2.8
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/ask/decisions/gate.rb +3 -1
- data/lib/ask/decisions/output_judge.rb +3 -1
- data/lib/ask/decisions/tool_arguments.rb +22 -0
- data/lib/ask/decisions/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3764918cbfc140a3f7c074e2323d55d8b672f48c5a147a18dbe7c5450b512ad4
|
|
4
|
+
data.tar.gz: 07eaaba1caab3e85e48cda30b04939c48da597c05306c05b450d6ae4d3976d1b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2be04570a7c00d85370fe68d448554009c15ecea709b6b29e12068d3abc33034406a488babb8671d3e8f29df0cc32eb31d2bea9096770ef11b27812771be1b2c
|
|
7
|
+
data.tar.gz: d8af9fd451c5c9d40e00d3f824f6c023aebd4eeed29ddcf9ece34e2f660fd41849055dd50fb83d3679a611ea322fb72b6c1195974d6e4de5c545348a36da06d6
|
data/CHANGELOG.md
CHANGED
data/lib/ask/decisions/gate.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "ask/decisions/tool_arguments"
|
|
4
|
+
|
|
3
5
|
module Ask
|
|
4
6
|
module Decisions
|
|
5
7
|
# Pre-tool-call gate: judges intent before a tool executes.
|
|
@@ -112,7 +114,7 @@ module Ask
|
|
|
112
114
|
def build_state(tool:, args:, working_dir: nil, user_message: nil)
|
|
113
115
|
{
|
|
114
116
|
tool: tool,
|
|
115
|
-
arguments: truncate_values(args, 400),
|
|
117
|
+
arguments: truncate_values(ToolArguments.normalize(args), 400),
|
|
116
118
|
working_directory: working_dir,
|
|
117
119
|
user_message: truncate_string(user_message, 1200)
|
|
118
120
|
}.compact
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "ask/decisions/tool_arguments"
|
|
4
|
+
|
|
3
5
|
module Ask
|
|
4
6
|
module Decisions
|
|
5
7
|
# Post-tool-call output judge: screens the result for leaks and classifies
|
|
@@ -91,7 +93,7 @@ module Ask
|
|
|
91
93
|
return OutputResult.empty unless @tools.include?(tool)
|
|
92
94
|
|
|
93
95
|
truncated = truncate(output, @output_limit)
|
|
94
|
-
state = { output: truncated, tool_arguments: truncate_values(args, 400) }
|
|
96
|
+
state = { output: truncated, tool_arguments: truncate_values(ToolArguments.normalize(args), 400) }
|
|
95
97
|
|
|
96
98
|
result = @provider.evaluate(state: state, decisions: @questions)
|
|
97
99
|
OutputResult.new(result, @leak_threshold, @failure_threshold, advice: @advice)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "json"
|
|
4
|
+
|
|
5
|
+
module Ask
|
|
6
|
+
module Decisions
|
|
7
|
+
# Tool-call arguments arrive as a Hash in some runtimes and as their JSON
|
|
8
|
+
# wire representation in others. Decision prompts need one stable shape.
|
|
9
|
+
module ToolArguments
|
|
10
|
+
def self.normalize(arguments)
|
|
11
|
+
return arguments if arguments.is_a?(Hash)
|
|
12
|
+
|
|
13
|
+
parsed = JSON.parse(arguments) if arguments.is_a?(String)
|
|
14
|
+
return parsed if parsed.is_a?(Hash)
|
|
15
|
+
|
|
16
|
+
{"_raw_arguments" => arguments}
|
|
17
|
+
rescue JSON::ParserError
|
|
18
|
+
{"_raw_arguments" => arguments}
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ask-decisions
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kaka Ruto
|
|
@@ -15,28 +15,28 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 0.12.
|
|
18
|
+
version: 0.12.1
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 0.12.
|
|
25
|
+
version: 0.12.1
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: ask-auth
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
30
|
- - ">="
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
32
|
+
version: 0.3.5
|
|
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:
|
|
39
|
+
version: 0.3.5
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: faraday
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -170,6 +170,7 @@ files:
|
|
|
170
170
|
- lib/ask/decisions/static.rb
|
|
171
171
|
- lib/ask/decisions/structured_state_loop.rb
|
|
172
172
|
- lib/ask/decisions/threshold_judge.rb
|
|
173
|
+
- lib/ask/decisions/tool_arguments.rb
|
|
173
174
|
- lib/ask/decisions/tool_repairer.rb
|
|
174
175
|
- lib/ask/decisions/triage.rb
|
|
175
176
|
- lib/ask/decisions/typesafe.rb
|