mistri 0.5.0 → 0.6.1

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.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +480 -4
  3. data/CONTRIBUTING.md +52 -0
  4. data/README.md +289 -385
  5. data/SECURITY.md +40 -0
  6. data/UPGRADING.md +640 -0
  7. data/assets/logo-animated.svg +30 -0
  8. data/assets/logo-dark.svg +14 -0
  9. data/assets/logo-light.svg +14 -0
  10. data/assets/logo.svg +14 -0
  11. data/assets/social-preview.png +0 -0
  12. data/docs/README.md +87 -0
  13. data/docs/context-and-workspaces.md +378 -0
  14. data/docs/mcp.md +366 -0
  15. data/docs/reliability.md +450 -0
  16. data/docs/sessions.md +295 -0
  17. data/docs/sub-agents.md +401 -0
  18. data/docs/tool-contracts.md +324 -0
  19. data/examples/approval.rb +36 -0
  20. data/examples/browser.rb +27 -0
  21. data/examples/page_editor.rb +31 -0
  22. data/examples/quickstart.rb +21 -0
  23. data/lib/generators/mistri/install/install_generator.rb +7 -3
  24. data/lib/generators/mistri/install/templates/migration.rb.tt +2 -2
  25. data/lib/generators/mistri/mcp/templates/migration.rb.tt +1 -1
  26. data/lib/generators/mistri/mcp/templates/model.rb.tt +15 -8
  27. data/lib/mistri/agent.rb +575 -55
  28. data/lib/mistri/budget.rb +26 -1
  29. data/lib/mistri/child.rb +72 -16
  30. data/lib/mistri/compaction.rb +26 -10
  31. data/lib/mistri/compactor.rb +34 -11
  32. data/lib/mistri/console.rb +28 -7
  33. data/lib/mistri/content.rb +9 -3
  34. data/lib/mistri/dispatchers.rb +14 -12
  35. data/lib/mistri/errors.rb +83 -4
  36. data/lib/mistri/event.rb +24 -8
  37. data/lib/mistri/event_delivery.rb +60 -0
  38. data/lib/mistri/locks.rb +3 -3
  39. data/lib/mistri/mcp/client.rb +74 -19
  40. data/lib/mistri/mcp/egress.rb +216 -0
  41. data/lib/mistri/mcp/oauth.rb +476 -127
  42. data/lib/mistri/mcp/wires.rb +115 -23
  43. data/lib/mistri/mcp.rb +42 -8
  44. data/lib/mistri/message.rb +21 -11
  45. data/lib/mistri/models.rb +160 -22
  46. data/lib/mistri/providers/anthropic/assembler.rb +282 -44
  47. data/lib/mistri/providers/anthropic/serializer.rb +14 -9
  48. data/lib/mistri/providers/anthropic.rb +29 -6
  49. data/lib/mistri/providers/fake.rb +26 -10
  50. data/lib/mistri/providers/gemini/assembler.rb +148 -21
  51. data/lib/mistri/providers/gemini/serializer.rb +78 -9
  52. data/lib/mistri/providers/gemini.rb +31 -5
  53. data/lib/mistri/providers/openai/assembler.rb +337 -60
  54. data/lib/mistri/providers/openai/serializer.rb +13 -12
  55. data/lib/mistri/providers/openai.rb +29 -5
  56. data/lib/mistri/providers/schema_capabilities.rb +214 -0
  57. data/lib/mistri/result.rb +1 -1
  58. data/lib/mistri/schema.rb +893 -75
  59. data/lib/mistri/session.rb +560 -48
  60. data/lib/mistri/sinks/coalesced.rb +17 -10
  61. data/lib/mistri/spawner.rb +111 -61
  62. data/lib/mistri/sse.rb +57 -14
  63. data/lib/mistri/stores/active_record.rb +11 -4
  64. data/lib/mistri/stores/memory.rb +21 -2
  65. data/lib/mistri/sub_agent/execution.rb +81 -0
  66. data/lib/mistri/sub_agent/runtime.rb +297 -0
  67. data/lib/mistri/sub_agent.rb +124 -87
  68. data/lib/mistri/task_output.rb +24 -6
  69. data/lib/mistri/tool.rb +93 -13
  70. data/lib/mistri/tool_arguments.rb +377 -0
  71. data/lib/mistri/tool_call.rb +43 -9
  72. data/lib/mistri/tool_context.rb +4 -2
  73. data/lib/mistri/tool_executor.rb +117 -26
  74. data/lib/mistri/tool_result.rb +15 -10
  75. data/lib/mistri/tools/edit_file.rb +62 -8
  76. data/lib/mistri/tools.rb +41 -4
  77. data/lib/mistri/transport.rb +149 -44
  78. data/lib/mistri/usage.rb +65 -13
  79. data/lib/mistri/version.rb +1 -1
  80. data/lib/mistri/workspace/active_record.rb +190 -5
  81. data/lib/mistri/workspace/directory.rb +28 -8
  82. data/lib/mistri/workspace/memory.rb +34 -9
  83. data/lib/mistri/workspace/single.rb +62 -5
  84. data/lib/mistri/workspace.rb +39 -0
  85. data/lib/mistri.rb +6 -1
  86. data/mistri.gemspec +34 -0
  87. metadata +31 -3
data/mistri.gemspec ADDED
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/mistri/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "mistri"
7
+ spec.version = Mistri::VERSION
8
+ spec.authors = ["Muhammad Ahmed Cheema"]
9
+ spec.summary = "The agent harness for Ruby applications."
10
+ spec.description = "Mistri (مستری) is the fixer: an agent harness that lives inside your " \
11
+ "app. Durable sessions in your own store, streaming, tools, " \
12
+ "fire-and-forget human approval, steering, compaction, structured " \
13
+ "output, skills, and sub-agents, across Anthropic, OpenAI, and " \
14
+ "Gemini, with zero runtime dependencies."
15
+ spec.homepage = "https://mistri.sh"
16
+ spec.license = "MIT"
17
+ spec.required_ruby_version = ">= 3.2"
18
+
19
+ spec.metadata["source_code_uri"] = "https://github.com/mcheemaa/mistri"
20
+ spec.metadata["changelog_uri"] = "https://github.com/mcheemaa/mistri/blob/main/CHANGELOG.md"
21
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
22
+ spec.metadata["rubygems_mfa_required"] = "true"
23
+ spec.metadata["documentation_uri"] =
24
+ "https://github.com/mcheemaa/mistri/blob/v#{spec.version}/docs/README.md"
25
+ spec.metadata["bug_tracker_uri"] = "https://github.com/mcheemaa/mistri/issues"
26
+
27
+ # The .tt generator templates must ship, or rails g mistri:install breaks.
28
+ public_files = Dir["lib/**/*.{rb,tt}", "docs/**/*.md", "assets/**/*", "examples/*.rb"]
29
+ .select { |path| File.file?(path) }
30
+ root_files = %w[CHANGELOG.md CONTRIBUTING.md LICENSE NOTICE README.md SECURITY.md
31
+ UPGRADING.md mistri.gemspec]
32
+ spec.files = (public_files + root_files).sort
33
+ spec.require_paths = ["lib"]
34
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mistri
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Muhammad Ahmed Cheema
@@ -10,7 +10,7 @@ cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: 'Mistri (مستری) is the fixer: an agent harness that lives inside your
13
- app. Durable sessions in your own database, streaming, tools, fire-and-forget human
13
+ app. Durable sessions in your own store, streaming, tools, fire-and-forget human
14
14
  approval, steering, compaction, structured output, skills, and sub-agents, across
15
15
  Anthropic, OpenAI, and Gemini, with zero runtime dependencies.'
16
16
  executables: []
@@ -18,9 +18,28 @@ extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - CHANGELOG.md
21
+ - CONTRIBUTING.md
21
22
  - LICENSE
22
23
  - NOTICE
23
24
  - README.md
25
+ - SECURITY.md
26
+ - UPGRADING.md
27
+ - assets/logo-animated.svg
28
+ - assets/logo-dark.svg
29
+ - assets/logo-light.svg
30
+ - assets/logo.svg
31
+ - assets/social-preview.png
32
+ - docs/README.md
33
+ - docs/context-and-workspaces.md
34
+ - docs/mcp.md
35
+ - docs/reliability.md
36
+ - docs/sessions.md
37
+ - docs/sub-agents.md
38
+ - docs/tool-contracts.md
39
+ - examples/approval.rb
40
+ - examples/browser.rb
41
+ - examples/page_editor.rb
42
+ - examples/quickstart.rb
24
43
  - lib/generators/mistri/install/install_generator.rb
25
44
  - lib/generators/mistri/install/templates/migration.rb.tt
26
45
  - lib/generators/mistri/install/templates/model.rb.tt
@@ -41,10 +60,12 @@ files:
41
60
  - lib/mistri/edit.rb
42
61
  - lib/mistri/errors.rb
43
62
  - lib/mistri/event.rb
63
+ - lib/mistri/event_delivery.rb
44
64
  - lib/mistri/locks.rb
45
65
  - lib/mistri/locks/rails_cache.rb
46
66
  - lib/mistri/mcp.rb
47
67
  - lib/mistri/mcp/client.rb
68
+ - lib/mistri/mcp/egress.rb
48
69
  - lib/mistri/mcp/oauth.rb
49
70
  - lib/mistri/mcp/wires.rb
50
71
  - lib/mistri/memory.rb
@@ -61,6 +82,7 @@ files:
61
82
  - lib/mistri/providers/openai.rb
62
83
  - lib/mistri/providers/openai/assembler.rb
63
84
  - lib/mistri/providers/openai/serializer.rb
85
+ - lib/mistri/providers/schema_capabilities.rb
64
86
  - lib/mistri/reminder.rb
65
87
  - lib/mistri/result.rb
66
88
  - lib/mistri/retry_policy.rb
@@ -78,8 +100,11 @@ files:
78
100
  - lib/mistri/stores/jsonl.rb
79
101
  - lib/mistri/stores/memory.rb
80
102
  - lib/mistri/sub_agent.rb
103
+ - lib/mistri/sub_agent/execution.rb
104
+ - lib/mistri/sub_agent/runtime.rb
81
105
  - lib/mistri/task_output.rb
82
106
  - lib/mistri/tool.rb
107
+ - lib/mistri/tool_arguments.rb
83
108
  - lib/mistri/tool_call.rb
84
109
  - lib/mistri/tool_context.rb
85
110
  - lib/mistri/tool_executor.rb
@@ -95,18 +120,21 @@ files:
95
120
  - lib/mistri/transport.rb
96
121
  - lib/mistri/usage.rb
97
122
  - lib/mistri/version.rb
123
+ - lib/mistri/workspace.rb
98
124
  - lib/mistri/workspace/active_record.rb
99
125
  - lib/mistri/workspace/directory.rb
100
126
  - lib/mistri/workspace/memory.rb
101
127
  - lib/mistri/workspace/single.rb
128
+ - mistri.gemspec
102
129
  homepage: https://mistri.sh
103
130
  licenses:
104
131
  - MIT
105
132
  metadata:
106
133
  source_code_uri: https://github.com/mcheemaa/mistri
107
134
  changelog_uri: https://github.com/mcheemaa/mistri/blob/main/CHANGELOG.md
135
+ allowed_push_host: https://rubygems.org
108
136
  rubygems_mfa_required: 'true'
109
- documentation_uri: https://mistri.sh/docs/getting-started/
137
+ documentation_uri: https://github.com/mcheemaa/mistri/blob/v0.6.1/docs/README.md
110
138
  bug_tracker_uri: https://github.com/mcheemaa/mistri/issues
111
139
  rdoc_options: []
112
140
  require_paths: