kward 0.82.0 → 0.84.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.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +96 -15
  3. data/CONTRIBUTING.md +74 -0
  4. data/Gemfile.lock +8 -2
  5. data/README.md +21 -1
  6. data/Rakefile +46 -2
  7. data/SECURITY.md +31 -0
  8. data/doc/agent-tools.md +1 -0
  9. data/doc/api.md +4 -0
  10. data/doc/composer.md +2 -2
  11. data/doc/configuration.md +82 -20
  12. data/doc/editor.md +47 -22
  13. data/doc/files.md +12 -7
  14. data/doc/getting-started.md +3 -0
  15. data/doc/pan.md +19 -15
  16. data/doc/permissions.md +1 -0
  17. data/doc/platform-support.md +48 -0
  18. data/doc/releasing.md +12 -4
  19. data/doc/rpc.md +2 -2
  20. data/doc/sandboxing.md +5 -1
  21. data/doc/security.md +4 -3
  22. data/doc/shell.md +101 -60
  23. data/doc/tabs.md +3 -0
  24. data/doc/troubleshooting.md +12 -2
  25. data/doc/usage.md +7 -6
  26. data/kward.gemspec +5 -4
  27. data/lib/kward/agent.rb +7 -3
  28. data/lib/kward/ansi.rb +110 -10
  29. data/lib/kward/auth/anthropic_oauth.rb +7 -7
  30. data/lib/kward/cli/auth_commands.rb +34 -13
  31. data/lib/kward/cli/commands.rb +83 -62
  32. data/lib/kward/cli/doctor.rb +39 -17
  33. data/lib/kward/cli/hook_commands.rb +22 -12
  34. data/lib/kward/cli/interactive_turn.rb +144 -21
  35. data/lib/kward/cli/project_skills_commands.rb +8 -4
  36. data/lib/kward/cli/prompt_interface.rb +27 -0
  37. data/lib/kward/cli/rendering.rb +15 -9
  38. data/lib/kward/cli/runtime_helpers.rb +260 -55
  39. data/lib/kward/cli/slash_commands.rb +21 -12
  40. data/lib/kward/cli/tabs.rb +91 -13
  41. data/lib/kward/cli/tool_summaries.rb +14 -0
  42. data/lib/kward/cli.rb +55 -7
  43. data/lib/kward/cli_transcript_formatter.rb +11 -4
  44. data/lib/kward/compaction/token_estimator.rb +12 -6
  45. data/lib/kward/config_files.rb +94 -63
  46. data/lib/kward/detached_run.rb +44 -0
  47. data/lib/kward/editor_prompt.rb +46 -0
  48. data/lib/kward/editor_prompt_session.rb +28 -0
  49. data/lib/kward/interactive_pty_runner.rb +102 -28
  50. data/lib/kward/{ekwsh.rb → kwsh.rb} +103 -24
  51. data/lib/kward/kwshrc.rb +233 -0
  52. data/lib/kward/markdown_code_block.rb +136 -0
  53. data/lib/kward/model/client.rb +35 -39
  54. data/lib/kward/model/model_info.rb +3 -2
  55. data/lib/kward/model/payloads.rb +0 -2
  56. data/lib/kward/model/provider_catalog.rb +5 -0
  57. data/lib/kward/model/stream_parser.rb +20 -4
  58. data/lib/kward/pan/index.html.erb +3 -3
  59. data/lib/kward/pan/server.rb +23 -3
  60. data/lib/kward/persistent_shell_session.rb +843 -0
  61. data/lib/kward/project_files.rb +19 -6
  62. data/lib/kward/prompt_interface/composer_renderer.rb +45 -41
  63. data/lib/kward/prompt_interface/composer_state.rb +33 -24
  64. data/lib/kward/prompt_interface/editor/auto_indent.rb +27 -22
  65. data/lib/kward/prompt_interface/editor/controller.rb +99 -33
  66. data/lib/kward/prompt_interface/editor/endwise.rb +13 -4
  67. data/lib/kward/prompt_interface/editor/modes/modern.rb +4 -0
  68. data/lib/kward/prompt_interface/editor/modes/vibe.rb +298 -47
  69. data/lib/kward/prompt_interface/editor/renderer.rb +109 -6
  70. data/lib/kward/prompt_interface/editor/runner.rb +362 -0
  71. data/lib/kward/prompt_interface/editor/runner_state.rb +78 -0
  72. data/lib/kward/prompt_interface/editor/state.rb +21 -10
  73. data/lib/kward/prompt_interface/editor/syntax_highlighter.rb +68 -6
  74. data/lib/kward/prompt_interface/editor/vibe_state.rb +3 -3
  75. data/lib/kward/prompt_interface/editor/word_completion.rb +124 -0
  76. data/lib/kward/prompt_interface/file_overlay.rb +92 -22
  77. data/lib/kward/prompt_interface/key_handler.rb +75 -0
  78. data/lib/kward/prompt_interface/overlay_renderer.rb +7 -5
  79. data/lib/kward/prompt_interface/project_browser.rb +443 -17
  80. data/lib/kward/prompt_interface/runtime_state.rb +55 -2
  81. data/lib/kward/prompt_interface/screen.rb +2 -2
  82. data/lib/kward/prompt_interface/selection_prompt.rb +3 -1
  83. data/lib/kward/prompt_interface/slash_overlay.rb +19 -4
  84. data/lib/kward/prompt_interface/transcript_renderer.rb +12 -7
  85. data/lib/kward/prompt_interface.rb +169 -18
  86. data/lib/kward/prompts/commands.rb +2 -1
  87. data/lib/kward/prompts.rb +1 -1
  88. data/lib/kward/pty_output_sink.rb +47 -0
  89. data/lib/kward/rpc/auth_manager.rb +1 -1
  90. data/lib/kward/rpc/server.rb +2 -1
  91. data/lib/kward/rpc/transcript_normalizer.rb +7 -3
  92. data/lib/kward/scratchpad_languages.rb +74 -0
  93. data/lib/kward/scratchpad_runner.rb +155 -29
  94. data/lib/kward/shell_prompt.rb +52 -0
  95. data/lib/kward/shell_prompt_session.rb +58 -0
  96. data/lib/kward/terminal_keys.rb +13 -0
  97. data/lib/kward/terminal_text.rb +121 -0
  98. data/lib/kward/text_matcher.rb +18 -0
  99. data/lib/kward/tools/open_editor.rb +41 -0
  100. data/lib/kward/tools/prepare_shell_command.rb +28 -0
  101. data/lib/kward/tools/registry.rb +75 -8
  102. data/lib/kward/tools/replace_editor_buffer.rb +30 -0
  103. data/lib/kward/tools/run_shell_command.rb +24 -6
  104. data/lib/kward/tools/tool_call.rb +2 -1
  105. data/lib/kward/version.rb +1 -1
  106. data/templates/default/fulldoc/html/css/kward.css +0 -125
  107. data/templates/default/fulldoc/html/images/kward_workflow.svg +52 -0
  108. data/templates/default/fulldoc/html/setup.rb +1 -1
  109. data/templates/default/kward_navigation.rb +1 -0
  110. data/templates/default/layout/html/footer.erb +10 -0
  111. data/templates/default/layout/html/headers.erb +23 -0
  112. data/templates/default/layout/html/layout.erb +6 -18
  113. data/templates/default/layout/html/setup.rb +41 -2
  114. metadata +44 -8
  115. data/templates/default/fulldoc/html/images/kward_screen_1.png +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kward
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.82.0
4
+ version: 0.84.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kai Wood
@@ -107,8 +107,22 @@ dependencies:
107
107
  - - ">="
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
- description: Kward is a Ruby CLI coding agent with local workspace tools, configurable
111
- prompts, web search, sessions, and an experimental JSON-RPC backend.
110
+ - !ruby/object:Gem::Dependency
111
+ name: unicode-display_width
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ description: Kward is an extensible Ruby coding agent with workspace tools, resumable
125
+ sessions, multiple model providers, a local browser UI, and JSON-RPC integrations.
112
126
  email:
113
127
  - kai.wood@icloud.com
114
128
  executables:
@@ -118,11 +132,13 @@ extra_rdoc_files: []
118
132
  files:
119
133
  - ".yardopts"
120
134
  - CHANGELOG.md
135
+ - CONTRIBUTING.md
121
136
  - Gemfile
122
137
  - Gemfile.lock
123
138
  - LICENSE
124
139
  - README.md
125
140
  - Rakefile
141
+ - SECURITY.md
126
142
  - doc/agent-tools.md
127
143
  - doc/api.md
128
144
  - doc/authentication.md
@@ -143,6 +159,7 @@ files:
143
159
  - doc/pan.md
144
160
  - doc/permissions.md
145
161
  - doc/personas.md
162
+ - doc/platform-support.md
146
163
  - doc/plugins.md
147
164
  - doc/prompt-templates.md
148
165
  - doc/providers.md
@@ -213,9 +230,11 @@ files:
213
230
  - lib/kward/context_budget_meter.rb
214
231
  - lib/kward/conversation.rb
215
232
  - lib/kward/deep_copy.rb
233
+ - lib/kward/detached_run.rb
216
234
  - lib/kward/diff_view_mode.rb
217
235
  - lib/kward/editor_mode.rb
218
- - lib/kward/ekwsh.rb
236
+ - lib/kward/editor_prompt.rb
237
+ - lib/kward/editor_prompt_session.rb
219
238
  - lib/kward/events.rb
220
239
  - lib/kward/export_path.rb
221
240
  - lib/kward/frontmatter.rb
@@ -233,8 +252,11 @@ files:
233
252
  - lib/kward/http.rb
234
253
  - lib/kward/image_attachments.rb
235
254
  - lib/kward/interactive_pty_runner.rb
255
+ - lib/kward/kwsh.rb
256
+ - lib/kward/kwshrc.rb
236
257
  - lib/kward/local_command_runner.rb
237
258
  - lib/kward/local_pty_command_runner.rb
259
+ - lib/kward/markdown_code_block.rb
238
260
  - lib/kward/markdown_transcript.rb
239
261
  - lib/kward/mcp/client.rb
240
262
  - lib/kward/mcp/server_config.rb
@@ -262,6 +284,7 @@ files:
262
284
  - lib/kward/pan/server.rb
263
285
  - lib/kward/path_guard.rb
264
286
  - lib/kward/permissions/policy.rb
287
+ - lib/kward/persistent_shell_session.rb
265
288
  - lib/kward/plugin_chat_runtime.rb
266
289
  - lib/kward/plugin_registry.rb
267
290
  - lib/kward/private_file.rb
@@ -286,6 +309,8 @@ files:
286
309
  - lib/kward/prompt_interface/editor/modes/vibe.rb
287
310
  - lib/kward/prompt_interface/editor/modes/vibe_insert_readline.rb
288
311
  - lib/kward/prompt_interface/editor/renderer.rb
312
+ - lib/kward/prompt_interface/editor/runner.rb
313
+ - lib/kward/prompt_interface/editor/runner_state.rb
289
314
  - lib/kward/prompt_interface/editor/search.rb
290
315
  - lib/kward/prompt_interface/editor/selections.rb
291
316
  - lib/kward/prompt_interface/editor/state.rb
@@ -293,6 +318,7 @@ files:
293
318
  - lib/kward/prompt_interface/editor/syntax_highlighter.rb
294
319
  - lib/kward/prompt_interface/editor/undo_history.rb
295
320
  - lib/kward/prompt_interface/editor/vibe_state.rb
321
+ - lib/kward/prompt_interface/editor/word_completion.rb
296
322
  - lib/kward/prompt_interface/file_overlay.rb
297
323
  - lib/kward/prompt_interface/git_prompt.rb
298
324
  - lib/kward/prompt_interface/interactive/controller.rb
@@ -346,6 +372,7 @@ files:
346
372
  - lib/kward/sandbox/policy.rb
347
373
  - lib/kward/sandbox/runner_factory.rb
348
374
  - lib/kward/sandbox/unavailable_runner.rb
375
+ - lib/kward/scratchpad_languages.rb
349
376
  - lib/kward/scratchpad_runner.rb
350
377
  - lib/kward/session_catalog.rb
351
378
  - lib/kward/session_diff.rb
@@ -355,6 +382,8 @@ files:
355
382
  - lib/kward/session_tree_nodes.rb
356
383
  - lib/kward/session_tree_renderer.rb
357
384
  - lib/kward/session_tree_tool_display.rb
385
+ - lib/kward/shell_prompt.rb
386
+ - lib/kward/shell_prompt_session.rb
358
387
  - lib/kward/skills/capture.rb
359
388
  - lib/kward/skills/registry.rb
360
389
  - lib/kward/skills/trust_coordinator.rb
@@ -368,7 +397,9 @@ files:
368
397
  - lib/kward/terminal_image_support.rb
369
398
  - lib/kward/terminal_keys.rb
370
399
  - lib/kward/terminal_sequences.rb
400
+ - lib/kward/terminal_text.rb
371
401
  - lib/kward/text_boundary.rb
402
+ - lib/kward/text_matcher.rb
372
403
  - lib/kward/tool_output_compactor.rb
373
404
  - lib/kward/tools/ask_user_question.rb
374
405
  - lib/kward/tools/base.rb
@@ -381,9 +412,12 @@ files:
381
412
  - lib/kward/tools/git_commit.rb
382
413
  - lib/kward/tools/list_directory.rb
383
414
  - lib/kward/tools/mcp_tool.rb
415
+ - lib/kward/tools/open_editor.rb
416
+ - lib/kward/tools/prepare_shell_command.rb
384
417
  - lib/kward/tools/read_file.rb
385
418
  - lib/kward/tools/read_skill.rb
386
419
  - lib/kward/tools/registry.rb
420
+ - lib/kward/tools/replace_editor_buffer.rb
387
421
  - lib/kward/tools/retrieve_tool_output.rb
388
422
  - lib/kward/tools/run_shell_command.rb
389
423
  - lib/kward/tools/search/code.rb
@@ -409,21 +443,23 @@ files:
409
443
  - templates/default/fulldoc/html/css/kward.css
410
444
  - templates/default/fulldoc/html/full_list.erb
411
445
  - templates/default/fulldoc/html/images/kward_logo.png
412
- - templates/default/fulldoc/html/images/kward_screen_1.png
446
+ - templates/default/fulldoc/html/images/kward_workflow.svg
413
447
  - templates/default/fulldoc/html/js/kward.js
414
448
  - templates/default/fulldoc/html/setup.rb
415
449
  - templates/default/kward_navigation.rb
416
450
  - templates/default/layout/html/breadcrumb.erb
451
+ - templates/default/layout/html/footer.erb
452
+ - templates/default/layout/html/headers.erb
417
453
  - templates/default/layout/html/layout.erb
418
454
  - templates/default/layout/html/setup.rb
419
- homepage: https://github.com/kaiwood/kward
455
+ homepage: https://kaiwood.github.io/kward/
420
456
  licenses:
421
457
  - MIT
422
458
  metadata:
423
459
  rubygems_mfa_required: 'true'
424
460
  source_code_uri: https://github.com/kaiwood/kward
425
461
  changelog_uri: https://github.com/kaiwood/kward/blob/main/CHANGELOG.md
426
- documentation_uri: https://github.com/kaiwood/kward#readme
462
+ documentation_uri: https://kaiwood.github.io/kward/
427
463
  bug_tracker_uri: https://github.com/kaiwood/kward/issues
428
464
  rdoc_options: []
429
465
  require_paths:
@@ -441,5 +477,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
441
477
  requirements: []
442
478
  rubygems_version: 3.6.9
443
479
  specification_version: 4
444
- summary: An extendable Ruby CLI coding agent.
480
+ summary: An extensible Ruby coding agent for your terminal.
445
481
  test_files: []