inquirex 0.10.0 → 0.11.0

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: 9d5eb71832126e703f6044abfe2faf293c226c06462ee7309cd563a8028bef1c
4
- data.tar.gz: 7d03f04eaea017c37e47b4e608d354a6f352814302aea1e415db1ef990631aa2
3
+ metadata.gz: 9a4701c7b2bb8ccf5a9da4a5a25e93be1cc4544371f2d9c1f48c478e04a9af75
4
+ data.tar.gz: 3192f545c283e0cfedf7eadec341f02d7984c0551ee1454714b51eb7fb1db250
5
5
  SHA512:
6
- metadata.gz: 37c6fca320b03e520a9429b8643b5e8adb905985d70e2015a330ccfbaf9968b1b691e357ec2a8b73459d1cb0fa79aeaf1b4bb5be24a1a02bf14b4121a8a11a3e
7
- data.tar.gz: 6c939caeed4fbf78a24dfb0d86a6b45852e64e4af9971279c1b78d597fff127dd1244652182a4fd866f60deb720fe6c7cf714eb43c477506bf253b982513ffa7
6
+ metadata.gz: 66b1f3c05ad85be1bc8b70f05b669b540cc116b0f9a985393e7715614fa98a0974c631e7ca5cb709b29a2c000fd4f4eb535fea81c14959572e63be817069117d
7
+ data.tar.gz: 957265be4973894ff8d2a5b219a89c68196a880c63179e103c652fafd67cdb71fe1809a68db23e2b403ff72e1d4fc78810694c03bf58cb45aed02dcf13051443
data/CHANGELOG.md CHANGED
@@ -1,12 +1,34 @@
1
1
  # Changelog
2
2
 
3
+ ## [v0.10.0](https://github.com/inquirex/inquirex/tree/v0.10.0) (2026-08-21)
4
+
5
+ [Full Changelog](https://github.com/inquirex/inquirex/compare/v0.9.4...v0.10.0)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - Set the lockstep version to 0.10.0 [#10](https://github.com/inquirex/inquirex/pull/10) ([kigster](https://github.com/kigster))
10
+ - Correct the lockstep set to six and bump to 0.9.6 [#9](https://github.com/inquirex/inquirex/pull/9) ([kigster](https://github.com/kigster))
11
+ - Numeric steps can declare bounds: min, max and step_size [#8](https://github.com/inquirex/inquirex/pull/8) ([kigster](https://github.com/kigster))
12
+
13
+ ## [v0.9.4](https://github.com/inquirex/inquirex/tree/v0.9.4) (2026-08-06)
14
+
15
+ [Full Changelog](https://github.com/inquirex/inquirex/compare/v0.8.0...v0.9.4)
16
+
17
+ **Merged pull requests:**
18
+
19
+ - Validate DSL before eval, replace actions with send_email, fix extraction prefill [#6](https://github.com/inquirex/inquirex/pull/6) ([kigster](https://github.com/kigster))
20
+
21
+ ## [v0.8.0](https://github.com/inquirex/inquirex/tree/v0.8.0) (2026-08-01)
22
+
23
+ [Full Changelog](https://github.com/inquirex/inquirex/compare/v0.7.0...v0.8.0)
24
+
3
25
  ## [v0.7.0](https://github.com/inquirex/inquirex/tree/v0.7.0) (2026-07-31)
4
26
 
5
27
  [Full Changelog](https://github.com/inquirex/inquirex/compare/v0.6.1...v0.7.0)
6
28
 
7
29
  **Merged pull requests:**
8
30
 
9
- - Add required false and user-initiated Engine\#skip [\#4](https://github.com/inquirex/inquirex/pull/4) ([kigster](https://github.com/kigster))
31
+ - Add required false and user-initiated Engine#skip [#4](https://github.com/inquirex/inquirex/pull/4) ([kigster](https://github.com/kigster))
10
32
 
11
33
  ## [v0.6.1](https://github.com/inquirex/inquirex/tree/v0.6.1) (2026-07-20)
12
34
 
@@ -18,8 +40,8 @@
18
40
 
19
41
  **Merged pull requests:**
20
42
 
21
- - Support for actions such as email send [\#3](https://github.com/inquirex/inquirex/pull/3) ([kigster](https://github.com/kigster))
22
- - Add action DSL verb building emails into Answers\#outbox [\#2](https://github.com/inquirex/inquirex/pull/2) ([kigster](https://github.com/kigster))
43
+ - Support for actions such as email send [#3](https://github.com/inquirex/inquirex/pull/3) ([kigster](https://github.com/kigster))
44
+ - Add action DSL verb building emails into Answers#outbox [#2](https://github.com/inquirex/inquirex/pull/2) ([kigster](https://github.com/kigster))
23
45
 
24
46
  ## [v0.5.0](https://github.com/inquirex/inquirex/tree/v0.5.0) (2026-07-16)
25
47
 
@@ -43,12 +65,10 @@
43
65
 
44
66
  **Merged pull requests:**
45
67
 
46
- - Add accumulators for pricing and scoring [\#1](https://github.com/inquirex/inquirex/pull/1) ([kigster](https://github.com/kigster))
68
+ - Add accumulators for pricing and scoring [#1](https://github.com/inquirex/inquirex/pull/1) ([kigster](https://github.com/kigster))
47
69
 
48
70
  ## [v0.2.0](https://github.com/inquirex/inquirex/tree/v0.2.0) (2026-04-13)
49
71
 
50
72
  [Full Changelog](https://github.com/inquirex/inquirex/compare/a07eeaaa4d459139164e97c622d1d3038b28a5f5...v0.2.0)
51
73
 
52
-
53
-
54
74
  \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
data/README.md CHANGED
@@ -1,11 +1,10 @@
1
- [![Gem Version](https://badge.fury.io/rb/inquirex.svg)](https://badge.fury.io/rb/inquirex) [![Ruby](https://github.com/inquirex/inquirex/actions/workflows/main.yml/badge.svg)](https://github.com/inquirex/inquirex/actions/workflows/main.yml) ![Coverage](docs/badges/coverage_badge.svg)
1
+ [![CircleCI](https://dl.circleci.com/status-badge/img/gh/inquirex/inquirex/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/inquirex/inquirex/tree/main) [![Gem Version](https://badge.fury.io/rb/inquirex.svg)](https://badge.fury.io/rb/inquirex) [![Ruby](https://github.com/inquirex/inquirex/actions/workflows/main.yml/badge.svg)](https://github.com/inquirex/inquirex/actions/workflows/main.yml) ![Coverage](docs/badges/coverage_badge.svg)
2
2
 
3
3
  # Inquirex
4
4
 
5
5
  `inquirex` family of libraries (part Ruby, part JavaScript), is a declarative, rules-driven questionnaire engine for building conditional intake forms, qualification wizards, and branching surveys, which can be AI-enabled, and rendered on your site inside a "copilot" widget window or in a TUI (Terminal UI) all the same.
6
6
 
7
7
  > [!IMPORTANT]
8
- >
9
8
  > Today the ecosystem contains:
10
9
  >
11
10
  > - [`inquirex`](https://github.com/inquirex/inquirex): the base gem that defines the graph via DSL and provides most of the backend features
@@ -28,7 +27,6 @@ There are plenty of form building gems, hard-coded branching controllers, React
28
27
  It provides a rich DSL for creating dynamic user intake forms, with complexity ranging from a simple straight-line forms to multi-branch, conditional forms with dozens of potential branches, *UI widget hints* for various rendering platforms, with *accumulators* that allow computing sums or products based on user's answers (which allow you to compute — for user or for yourself — that the service you are requesting will cost between $X & $Y).
29
28
 
30
29
  > [!NOTE]
31
- >
32
30
  > For technically inclined, Inquirex turns user forms into a directed graph, where nodes are either questions or statements (or UI transitions), while edges are AST-based logical conditions that can be stacked and joined in arbitrarily complex ways, allowing you to move from one question to any other based on the previous answer. See the details below.
33
31
 
34
32
  ***Don't want to deal with figuring it out? Head to [Qualified.At](https://qualified.at) and walk through the demo onboarding form, that exists specifically to show you how quickly you can have the same conceptually on your site, tailored to YOUR users.***
@@ -67,7 +65,6 @@ So, if you ever wanted to ask users who arrive at your site a few simple questio
67
65
  ## Examples
68
66
 
69
67
  > [!NOTE]
70
- >
71
68
  > There are a couple of examples shown in this `README` file, and also in the [`./examples`](./examples) folder. You can read about running them in a [`README.md`](./examples/README.md) inside that folder.
72
69
 
73
70
  ## Installation
@@ -374,7 +371,6 @@ engine.totals # => { price: 700.0, complexity: 4 }
374
371
  Accumulators serialize predictably, keeping the contract with `inquirex-js` explicit.
375
372
 
376
373
  > [!NOTE]
377
- >
378
374
  > You can convert between Ruby DSL and JSON using the [`inquirex-tty`](https://github.com/inquirex/inquirex-tty) gem.
379
375
 
380
376
  ```json
@@ -554,7 +550,6 @@ On the wire, step JSON carries `"required": false` (omitted when true, like othe
554
550
  ```
555
551
 
556
552
  > [!NOTE]
557
- >
558
553
  > **`skip_if` is not the same thing.** A `skip_if` rule is *flow logic*: the definition elides the step from the path automatically, no default kicks in, and the step is **not** added to `engine.skipped` — it was never presented, so the user cannot have declined it. `Engine#skip` is a *user action* on a question that was presented. See [`docs/design/required-and-skip.md`](docs/design/required-and-skip.md) for the full design.
559
554
 
560
555
  ## Completion Metadata
@@ -32,7 +32,7 @@ module Inquirex
32
32
  # @param engine [String] rendering front-end name (e.g. "inquirex-tty")
33
33
  # @param engine_version [String] rendering front-end version
34
34
  # @param extra [Hash] any additional, optional members
35
- def initialize(engine:, engine_version:, **extra) # rubocop:disable Lint/UselessMethodDefinition
35
+ def initialize(engine:, engine_version:, **extra)
36
36
  super
37
37
  end
38
38
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Inquirex
4
- VERSION = "0.10.0"
4
+ VERSION = "0.11.0"
5
5
  end
metadata CHANGED
@@ -1,107 +1,103 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inquirex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
- - Konstantin Gredeskoul
7
+ - Konstantin Gredeskoul
8
8
  bindir: bin
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
- - !ruby/object:Gem::Dependency
13
- name: ostruct
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - "~>"
17
- - !ruby/object:Gem::Version
18
- version: '0.6'
19
- type: :runtime
20
- prerelease: false
21
- version_requirements: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - "~>"
24
- - !ruby/object:Gem::Version
25
- version: '0.6'
26
- description: Inquirex lets you define multi-step questionnaires as directed graphs
27
- with conditional branching, using a conversational DSL (ask, say, mention) and an
28
- AST-based rule system (contains, equals, greater_than, all, any). The engine walks
29
- the graph, collects structured answers, and serializes everything to JSON — making
30
- it the ideal backbone for cross-platform intake forms where the frontend is a chat
31
- widget, a terminal, or a mobile app. Framework-agnostic, no third-party dependencies,
32
- thread-safe immutable definitions.
12
+ - !ruby/object:Gem::Dependency
13
+ name: ostruct
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ -
17
+ - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: "0.6"
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ -
25
+ - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: "0.6"
28
+ description: "Inquirex lets you define multi-step questionnaires as directed graphs with conditional branching, using a conversational DSL (ask, say, mention) and an AST-based rule system (contains, equals, greater_than, all, any). The engine walks the graph, collects structured answers, and serializes everything to JSON — making it the ideal backbone for cross-platform intake forms where the frontend is a chat widget, a terminal, or a mobile app. Framework-agnostic, no third-party dependencies, thread-safe immutable definitions."
33
29
  email:
34
- - kigster@gmail.com
30
+ - kigster@gmail.com
35
31
  executables: []
36
32
  extensions: []
37
33
  extra_rdoc_files: []
38
34
  files:
39
- - CHANGELOG.md
40
- - LICENSE.txt
41
- - README.md
42
- - lib/inquirex.rb
43
- - lib/inquirex/accumulator.rb
44
- - lib/inquirex/answers.rb
45
- - lib/inquirex/completion_metadata.rb
46
- - lib/inquirex/definition.rb
47
- - lib/inquirex/dsl.rb
48
- - lib/inquirex/dsl/flow_builder.rb
49
- - lib/inquirex/dsl/rule_helpers.rb
50
- - lib/inquirex/dsl/send_email_builder.rb
51
- - lib/inquirex/dsl/step_builder.rb
52
- - lib/inquirex/engine.rb
53
- - lib/inquirex/engine/state_serializer.rb
54
- - lib/inquirex/errors.rb
55
- - lib/inquirex/evaluator.rb
56
- - lib/inquirex/graph/mermaid_exporter.rb
57
- - lib/inquirex/node.rb
58
- - lib/inquirex/rules/all.rb
59
- - lib/inquirex/rules/any.rb
60
- - lib/inquirex/rules/base.rb
61
- - lib/inquirex/rules/contains.rb
62
- - lib/inquirex/rules/equals.rb
63
- - lib/inquirex/rules/greater_than.rb
64
- - lib/inquirex/rules/less_than.rb
65
- - lib/inquirex/rules/not_empty.rb
66
- - lib/inquirex/safe_source.rb
67
- - lib/inquirex/safe_source/call_spec.rb
68
- - lib/inquirex/safe_source/validator.rb
69
- - lib/inquirex/safe_source/vocabulary.rb
70
- - lib/inquirex/send_email.rb
71
- - lib/inquirex/template.rb
72
- - lib/inquirex/transcript.rb
73
- - lib/inquirex/transition.rb
74
- - lib/inquirex/validation/adapter.rb
75
- - lib/inquirex/validation/null_adapter.rb
76
- - lib/inquirex/version.rb
77
- - lib/inquirex/widget_hint.rb
78
- - lib/inquirex/widget_registry.rb
79
- homepage: https://github.com/inquirex/inquirex
35
+ - CHANGELOG.md
36
+ - LICENSE.txt
37
+ - README.md
38
+ - lib/inquirex.rb
39
+ - lib/inquirex/accumulator.rb
40
+ - lib/inquirex/answers.rb
41
+ - lib/inquirex/completion_metadata.rb
42
+ - lib/inquirex/definition.rb
43
+ - lib/inquirex/dsl.rb
44
+ - lib/inquirex/dsl/flow_builder.rb
45
+ - lib/inquirex/dsl/rule_helpers.rb
46
+ - lib/inquirex/dsl/send_email_builder.rb
47
+ - lib/inquirex/dsl/step_builder.rb
48
+ - lib/inquirex/engine.rb
49
+ - lib/inquirex/engine/state_serializer.rb
50
+ - lib/inquirex/errors.rb
51
+ - lib/inquirex/evaluator.rb
52
+ - lib/inquirex/graph/mermaid_exporter.rb
53
+ - lib/inquirex/node.rb
54
+ - lib/inquirex/rules/all.rb
55
+ - lib/inquirex/rules/any.rb
56
+ - lib/inquirex/rules/base.rb
57
+ - lib/inquirex/rules/contains.rb
58
+ - lib/inquirex/rules/equals.rb
59
+ - lib/inquirex/rules/greater_than.rb
60
+ - lib/inquirex/rules/less_than.rb
61
+ - lib/inquirex/rules/not_empty.rb
62
+ - lib/inquirex/safe_source.rb
63
+ - lib/inquirex/safe_source/call_spec.rb
64
+ - lib/inquirex/safe_source/validator.rb
65
+ - lib/inquirex/safe_source/vocabulary.rb
66
+ - lib/inquirex/send_email.rb
67
+ - lib/inquirex/template.rb
68
+ - lib/inquirex/transcript.rb
69
+ - lib/inquirex/transition.rb
70
+ - lib/inquirex/validation/adapter.rb
71
+ - lib/inquirex/validation/null_adapter.rb
72
+ - lib/inquirex/version.rb
73
+ - lib/inquirex/widget_hint.rb
74
+ - lib/inquirex/widget_registry.rb
75
+ homepage: "https://github.com/inquirex/inquirex"
80
76
  licenses:
81
- - MIT
77
+ - MIT
82
78
  metadata:
83
- allowed_push_host: https://rubygems.org
84
- homepage_uri: https://qualified.at
85
- source_code_uri: https://github.com/inquirex/inquirex
86
- changelog_uri: https://github.com/inquirex/inquirex/blob/main/CHANGELOG.md
87
- rubygems_mfa_required: 'true'
79
+ allowed_push_host: "https://rubygems.org"
80
+ homepage_uri: "https://qualified.at"
81
+ source_code_uri: "https://github.com/inquirex/inquirex"
82
+ changelog_uri: "https://github.com/inquirex/inquirex/blob/main/CHANGELOG.md"
83
+ rubygems_mfa_required: "true"
88
84
  rdoc_options: []
89
85
  require_paths:
90
- - lib
86
+ - lib
91
87
  required_ruby_version: !ruby/object:Gem::Requirement
92
88
  requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: 4.0.0
89
+ -
90
+ - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 4.0.0
96
93
  required_rubygems_version: !ruby/object:Gem::Requirement
97
94
  requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- version: '0'
95
+ -
96
+ - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: "0"
101
99
  requirements: []
102
- rubygems_version: 4.0.16
100
+ rubygems_version: 4.1.0.beta2
103
101
  specification_version: 4
104
- summary: A declarative, rules-driven questionnaire engine for building conditionally-branching
105
- intake forms, qualification wizards, and surveys in pure Ruby, with additional plugins
106
- providing LLM/AI support. See inquirex-llm.
102
+ summary: "A declarative, rules-driven questionnaire engine for building conditionally-branching intake forms, qualification wizards, and surveys in pure Ruby, with additional plugins providing LLM/AI support. See inquirex-llm."
107
103
  test_files: []