kward 0.83.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +68 -15
- data/CONTRIBUTING.md +74 -0
- data/Gemfile.lock +8 -2
- data/README.md +21 -1
- data/Rakefile +46 -2
- data/SECURITY.md +31 -0
- data/doc/api.md +4 -0
- data/doc/composer.md +1 -1
- data/doc/configuration.md +68 -21
- data/doc/editor.md +28 -13
- data/doc/files.md +8 -4
- data/doc/getting-started.md +3 -0
- data/doc/pan.md +19 -15
- data/doc/platform-support.md +48 -0
- data/doc/security.md +3 -2
- data/doc/shell.md +62 -45
- data/doc/troubleshooting.md +12 -2
- data/doc/usage.md +5 -5
- data/kward.gemspec +5 -4
- data/lib/kward/agent.rb +6 -3
- data/lib/kward/ansi.rb +110 -10
- data/lib/kward/cli/auth_commands.rb +34 -13
- data/lib/kward/cli/commands.rb +83 -62
- data/lib/kward/cli/doctor.rb +39 -17
- data/lib/kward/cli/hook_commands.rb +22 -12
- data/lib/kward/cli/interactive_turn.rb +48 -7
- data/lib/kward/cli/project_skills_commands.rb +8 -4
- data/lib/kward/cli/prompt_interface.rb +27 -0
- data/lib/kward/cli/rendering.rb +15 -9
- data/lib/kward/cli/runtime_helpers.rb +118 -55
- data/lib/kward/cli/slash_commands.rb +12 -14
- data/lib/kward/cli/tabs.rb +83 -12
- data/lib/kward/cli/tool_summaries.rb +14 -0
- data/lib/kward/cli.rb +45 -7
- data/lib/kward/cli_transcript_formatter.rb +11 -4
- data/lib/kward/config_files.rb +82 -68
- data/lib/kward/detached_run.rb +44 -0
- data/lib/kward/interactive_pty_runner.rb +102 -28
- data/lib/kward/{ekwsh.rb → kwsh.rb} +35 -16
- data/lib/kward/kwshrc.rb +233 -0
- data/lib/kward/markdown_code_block.rb +136 -0
- data/lib/kward/model/client.rb +34 -22
- data/lib/kward/model/provider_catalog.rb +5 -0
- data/lib/kward/model/stream_parser.rb +20 -4
- data/lib/kward/pan/index.html.erb +3 -3
- data/lib/kward/pan/server.rb +23 -3
- data/lib/kward/persistent_shell_session.rb +119 -26
- data/lib/kward/project_files.rb +2 -2
- data/lib/kward/prompt_interface/composer_renderer.rb +44 -40
- data/lib/kward/prompt_interface/composer_state.rb +33 -24
- data/lib/kward/prompt_interface/editor/auto_indent.rb +24 -22
- data/lib/kward/prompt_interface/editor/controller.rb +30 -33
- data/lib/kward/prompt_interface/editor/endwise.rb +13 -4
- data/lib/kward/prompt_interface/editor/modes/vibe.rb +289 -44
- data/lib/kward/prompt_interface/editor/renderer.rb +108 -6
- data/lib/kward/prompt_interface/editor/runner.rb +362 -0
- data/lib/kward/prompt_interface/editor/runner_state.rb +78 -0
- data/lib/kward/prompt_interface/editor/state.rb +10 -10
- data/lib/kward/prompt_interface/editor/syntax_highlighter.rb +68 -6
- data/lib/kward/prompt_interface/editor/vibe_state.rb +3 -3
- data/lib/kward/prompt_interface/file_overlay.rb +71 -15
- data/lib/kward/prompt_interface/key_handler.rb +67 -0
- data/lib/kward/prompt_interface/overlay_renderer.rb +7 -5
- data/lib/kward/prompt_interface/project_browser.rb +415 -14
- data/lib/kward/prompt_interface/runtime_state.rb +50 -1
- data/lib/kward/prompt_interface/screen.rb +2 -2
- data/lib/kward/prompt_interface/selection_prompt.rb +3 -1
- data/lib/kward/prompt_interface/slash_overlay.rb +19 -4
- data/lib/kward/prompt_interface/transcript_renderer.rb +12 -7
- data/lib/kward/prompt_interface.rb +93 -18
- data/lib/kward/prompts/commands.rb +1 -1
- data/lib/kward/prompts.rb +1 -1
- data/lib/kward/pty_output_sink.rb +47 -0
- data/lib/kward/rpc/transcript_normalizer.rb +7 -3
- data/lib/kward/scratchpad_languages.rb +74 -0
- data/lib/kward/scratchpad_runner.rb +155 -29
- data/lib/kward/shell_prompt.rb +2 -0
- data/lib/kward/terminal_keys.rb +12 -0
- data/lib/kward/terminal_text.rb +121 -0
- data/lib/kward/text_matcher.rb +18 -0
- data/lib/kward/tools/open_editor.rb +41 -0
- data/lib/kward/tools/registry.rb +13 -4
- data/lib/kward/tools/tool_call.rb +2 -1
- data/lib/kward/version.rb +1 -1
- data/templates/default/fulldoc/html/css/kward.css +0 -125
- data/templates/default/fulldoc/html/images/kward_workflow.svg +52 -0
- data/templates/default/fulldoc/html/setup.rb +1 -1
- data/templates/default/kward_navigation.rb +1 -0
- data/templates/default/layout/html/footer.erb +10 -0
- data/templates/default/layout/html/headers.erb +23 -0
- data/templates/default/layout/html/layout.erb +6 -18
- data/templates/default/layout/html/setup.rb +41 -2
- metadata +36 -8
- data/templates/default/fulldoc/html/images/kward_screen_1.png +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="700" viewBox="0 0 1200 700" role="img" aria-labelledby="title description">
|
|
2
|
+
<title id="title">Kward coding workflow</title>
|
|
3
|
+
<desc id="description">A Kward terminal session reads and edits the CLI, runs focused tests, and reports a successful authentication error-handling change.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="background" x1="0" y1="0" x2="1" y2="1">
|
|
6
|
+
<stop offset="0" stop-color="#11170f"/>
|
|
7
|
+
<stop offset="1" stop-color="#070b07"/>
|
|
8
|
+
</linearGradient>
|
|
9
|
+
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
|
|
10
|
+
<feDropShadow dx="0" dy="18" stdDeviation="22" flood-color="#000" flood-opacity=".45"/>
|
|
11
|
+
</filter>
|
|
12
|
+
</defs>
|
|
13
|
+
<rect width="1200" height="700" fill="#070b07"/>
|
|
14
|
+
<rect x="28" y="28" width="1144" height="644" rx="20" fill="url(#background)" stroke="#465035" stroke-width="2" filter="url(#shadow)"/>
|
|
15
|
+
<path d="M28 82h1144" stroke="#293024" stroke-width="2"/>
|
|
16
|
+
<circle cx="62" cy="55" r="8" fill="#ff5f57"/>
|
|
17
|
+
<circle cx="88" cy="55" r="8" fill="#febc2e"/>
|
|
18
|
+
<circle cx="114" cy="55" r="8" fill="#28c840"/>
|
|
19
|
+
<text x="600" y="63" text-anchor="middle" fill="#777c68" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="18">kward · ~/code/kward</text>
|
|
20
|
+
|
|
21
|
+
<g font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace">
|
|
22
|
+
<circle cx="65" cy="119" r="7" fill="#9caf35"/>
|
|
23
|
+
<text x="84" y="126" fill="#efe8d0" font-size="20" font-weight="700">Kward v0.83.0 is online.</text>
|
|
24
|
+
<text x="64" y="159" fill="#777c68" font-size="16">Workspace</text>
|
|
25
|
+
<text x="180" y="159" fill="#d2df62" font-size="16">kaiwood/kward</text>
|
|
26
|
+
<text x="64" y="184" fill="#777c68" font-size="16">Branch</text>
|
|
27
|
+
<text x="180" y="184" fill="#d2df62" font-size="16">main</text>
|
|
28
|
+
<text x="64" y="219" fill="#efe8d0" font-size="18" font-weight="700">State your business.</text>
|
|
29
|
+
|
|
30
|
+
<text x="64" y="276" fill="#afa88f" font-size="16" font-weight="700">You></text>
|
|
31
|
+
<text x="126" y="276" fill="#efe8d0" font-size="18">Make one-shot authentication failures concise and add focused tests.</text>
|
|
32
|
+
|
|
33
|
+
<rect x="64" y="309" width="1072" height="164" rx="12" fill="#0d120d" stroke="#293024"/>
|
|
34
|
+
<text x="88" y="342" fill="#9caf35" font-size="15" font-weight="700">TOOL ACTIVITY</text>
|
|
35
|
+
<text x="88" y="378" fill="#d2df62" font-size="17">Read</text>
|
|
36
|
+
<text x="174" y="378" fill="#efe8d0" font-size="17">lib/kward/cli.rb</text>
|
|
37
|
+
<text x="88" y="414" fill="#d2df62" font-size="17">Edit</text>
|
|
38
|
+
<text x="174" y="414" fill="#efe8d0" font-size="17">lib/kward/cli.rb</text>
|
|
39
|
+
<text x="1016" y="414" text-anchor="end" fill="#9caf35" font-size="16">+34</text>
|
|
40
|
+
<text x="88" y="450" fill="#d2df62" font-size="17">Test</text>
|
|
41
|
+
<text x="174" y="450" fill="#efe8d0" font-size="17">3 runs · 26 assertions</text>
|
|
42
|
+
<text x="1110" y="450" text-anchor="end" fill="#9caf35" font-size="17" font-weight="700">0 failures</text>
|
|
43
|
+
|
|
44
|
+
<text x="64" y="526" fill="#9caf35" font-size="16" font-weight="700">Kward></text>
|
|
45
|
+
<text x="154" y="526" fill="#efe8d0" font-size="18">Authentication failures now return an actionable message without a traceback.</text>
|
|
46
|
+
<text x="154" y="559" fill="#afa88f" font-size="17">Debug backtraces remain available with KWARD_DEBUG=1.</text>
|
|
47
|
+
|
|
48
|
+
<path d="M52 608h1096" stroke="#293024"/>
|
|
49
|
+
<text x="64" y="642" fill="#afa88f" font-size="15">main*</text>
|
|
50
|
+
<text x="1128" y="642" text-anchor="end" fill="#777c68" font-size="15">18% · Codex gpt-5.6-sol · medium</text>
|
|
51
|
+
</g>
|
|
52
|
+
</svg>
|
|
@@ -9,7 +9,7 @@ def generate_assets
|
|
|
9
9
|
asset('css/kward.css', file('css/kward.css', true))
|
|
10
10
|
asset('js/kward.js', file('js/kward.js', true))
|
|
11
11
|
asset('images/kward_logo.png', file('images/kward_logo.png', true))
|
|
12
|
-
asset('images/
|
|
12
|
+
asset('images/kward_workflow.svg', file('images/kward_workflow.svg', true))
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def stylesheets_full_list
|
|
@@ -12,6 +12,7 @@ module KwardDocsNavigationData
|
|
|
12
12
|
["Authentication", "file.authentication.html"],
|
|
13
13
|
["Model providers", "file.providers.html"],
|
|
14
14
|
["Security and trust", "file.security.html"],
|
|
15
|
+
["Platform support", "file.platform-support.html"],
|
|
15
16
|
["Troubleshooting", "file.troubleshooting.html"]
|
|
16
17
|
]
|
|
17
18
|
],
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<div id="footer">
|
|
2
|
+
<% if home_page? %>
|
|
3
|
+
Kward is open source software released under the
|
|
4
|
+
<a href="https://github.com/kaiwood/kward/blob/main/LICENSE">MIT License</a>.
|
|
5
|
+
<% else %>
|
|
6
|
+
Generated with
|
|
7
|
+
<a href="https://yardoc.org" title="YARD documentation tool" target="_parent">YARD</a>
|
|
8
|
+
<%= YARD::VERSION %>.
|
|
9
|
+
<% end %>
|
|
10
|
+
</div>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<meta charset="<%= charset %>">
|
|
2
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
3
|
+
<title><%= h docs_page_title %></title>
|
|
4
|
+
<meta name="description" content="<%= h docs_page_description %>">
|
|
5
|
+
<meta name="theme-color" content="#070b07">
|
|
6
|
+
<link rel="canonical" href="<%= h docs_canonical_url %>">
|
|
7
|
+
<link rel="icon" type="image/png" href="<%= url_for('images/kward_logo.png') %>">
|
|
8
|
+
<meta property="og:type" content="website">
|
|
9
|
+
<meta property="og:site_name" content="Kward">
|
|
10
|
+
<meta property="og:title" content="<%= h docs_page_title %>">
|
|
11
|
+
<meta property="og:description" content="<%= h docs_page_description %>">
|
|
12
|
+
<meta property="og:url" content="<%= h docs_canonical_url %>">
|
|
13
|
+
<meta property="og:image" content="https://kaiwood.github.io/kward/images/kward_logo.png">
|
|
14
|
+
<meta name="twitter:card" content="summary">
|
|
15
|
+
<meta name="twitter:title" content="<%= h docs_page_title %>">
|
|
16
|
+
<meta name="twitter:description" content="<%= h docs_page_description %>">
|
|
17
|
+
<% stylesheets.each do |stylesheet| %>
|
|
18
|
+
<link rel="stylesheet" href="<%= mtime_url(stylesheet) %>" type="text/css">
|
|
19
|
+
<% end %>
|
|
20
|
+
<%= erb :script_setup %>
|
|
21
|
+
<% javascripts.each do |javascript| %>
|
|
22
|
+
<script type="text/javascript" charset="utf-8" src="<%= mtime_url(javascript) %>"></script>
|
|
23
|
+
<% end %>
|
|
@@ -80,23 +80,11 @@
|
|
|
80
80
|
<main id="main" class="kward-home">
|
|
81
81
|
<section class="kward-hero">
|
|
82
82
|
<div class="kward-hero-copy">
|
|
83
|
-
<p class="kward-eyebrow">⌘ Ruby
|
|
84
|
-
<h1>
|
|
85
|
-
|
|
86
|
-
<span class="kward-swosh-text kward-swosh-text-a" aria-hidden="true">Your terminal.</span>
|
|
87
|
-
<span class="kward-swosh-text kward-swosh-text-b" aria-hidden="true">Your RPC frontend.</span>
|
|
88
|
-
<span class="kward-swosh-text kward-swosh-text-e" aria-hidden="true">Your workflow.</span>
|
|
89
|
-
</span>
|
|
90
|
-
<br>
|
|
91
|
-
<span class="kward-swosh" aria-label="Your agent. Your LLM engine. Your harness.">
|
|
92
|
-
<span class="kward-swosh-text kward-swosh-text-c" aria-hidden="true">Your agent.</span>
|
|
93
|
-
<span class="kward-swosh-text kward-swosh-text-d" aria-hidden="true">Your LLM engine.</span>
|
|
94
|
-
<span class="kward-swosh-text kward-swosh-text-f" aria-hidden="true">Your harness.</span>
|
|
95
|
-
</span>
|
|
96
|
-
</h1>
|
|
97
|
-
<p class="kward-lede">Kward is a general-purpose coding agent written in Ruby: terminal-native, project-aware, pipeable, and designed around your workflow.</p>
|
|
83
|
+
<p class="kward-eyebrow">⌘ Ruby-native coding agent</p>
|
|
84
|
+
<h1>A coding agent that works <span>where you do.</span></h1>
|
|
85
|
+
<p class="kward-lede">Inspect code, edit files, run tests, and resume work from your terminal—with your choice of model provider.</p>
|
|
98
86
|
<div class="kward-actions">
|
|
99
|
-
<a class="kward-primary-button" href="<%= url_for('file.
|
|
87
|
+
<a class="kward-primary-button" href="<%= url_for('file.getting-started.html') %>">Get Started ›</a>
|
|
100
88
|
<a class="kward-secondary-button" href="https://github.com/kaiwood/kward" target="_blank" rel="noopener noreferrer">View on GitHub</a>
|
|
101
89
|
</div>
|
|
102
90
|
<p class="kward-supports">Supports <span>OpenAI</span>, <span>Anthropic</span>, <span>OpenRouter</span> & more.</p>
|
|
@@ -110,7 +98,7 @@
|
|
|
110
98
|
<article><strong>⌘</strong><h2>Project-aware agent loop</h2><p>Inspect, reason, patch, verify.</p></article>
|
|
111
99
|
<article><strong>▤</strong><h2>Unix filter mode</h2><p>Pipe diffs, logs, and code through Kward.</p></article>
|
|
112
100
|
<article><strong>▰</strong><h2>Branchable sessions</h2><p>Resume, rewind, fork, compact, export.</p></article>
|
|
113
|
-
<article><strong>⌗</strong><h2>
|
|
101
|
+
<article><strong>⌗</strong><h2>Built-in shell and editor</h2><p>Run commands and edit files safely in the workspace.</p></article>
|
|
114
102
|
<article><strong>◎</strong><h2>Live source intelligence</h2><p>Search the web and read public repos.</p></article>
|
|
115
103
|
<article><strong>✣</strong><h2>Ruby-native extensions</h2><p>Shape Kward with plugins, skills, and prompts.</p></article>
|
|
116
104
|
</section>
|
|
@@ -125,7 +113,7 @@
|
|
|
125
113
|
<a href="<%= url_for('file.getting-started.html') %>">View full installation docs →</a>
|
|
126
114
|
</div>
|
|
127
115
|
<div class="kward-screen-card">
|
|
128
|
-
<img src="<%= url_for('images/
|
|
116
|
+
<img src="<%= url_for('images/kward_workflow.svg') %>" alt="Kward completing a focused coding change and test run">
|
|
129
117
|
</div>
|
|
130
118
|
</section>
|
|
131
119
|
|
|
@@ -24,16 +24,23 @@ module KwardDocsNavigation
|
|
|
24
24
|
end
|
|
25
25
|
end
|
|
26
26
|
].freeze
|
|
27
|
+
DOCS_LINK_TITLES = (
|
|
28
|
+
[["Overview", GUIDE_OVERVIEW], ["Advanced", EXTENSION_OVERVIEW], ["API Docs", API_OVERVIEW]] +
|
|
29
|
+
(GUIDE_GROUPS + EXTENSION_GROUPS + API_GROUPS).flat_map { |_title, items| items }
|
|
30
|
+
).to_h { |label, link| [link, label] }.freeze
|
|
27
31
|
GUIDE_FILE_LINKS = {
|
|
28
32
|
"doc/getting-started.md" => "file.getting-started.html",
|
|
29
33
|
"doc/usage.md" => "file.usage.html",
|
|
30
34
|
"doc/configuration.md" => "file.configuration.html",
|
|
31
35
|
"doc/authentication.md" => "file.authentication.html",
|
|
32
36
|
"doc/providers.md" => "file.providers.html",
|
|
37
|
+
"doc/security.md" => "file.security.html",
|
|
38
|
+
"doc/platform-support.md" => "file.platform-support.html",
|
|
33
39
|
"doc/permissions.md" => "file.permissions.html",
|
|
34
40
|
"doc/sandboxing.md" => "file.sandboxing.html",
|
|
35
41
|
"doc/troubleshooting.md" => "file.troubleshooting.html",
|
|
36
42
|
"doc/session-management.md" => "file.session-management.html",
|
|
43
|
+
"doc/composer.md" => "file.composer.html",
|
|
37
44
|
"doc/tabs.md" => "file.tabs.html",
|
|
38
45
|
"doc/files.md" => "file.files.html",
|
|
39
46
|
"doc/editor.md" => "file.editor.html",
|
|
@@ -42,6 +49,9 @@ module KwardDocsNavigation
|
|
|
42
49
|
"doc/memory.md" => "file.memory.html",
|
|
43
50
|
"doc/personas.md" => "file.personas.html",
|
|
44
51
|
"doc/skills.md" => "file.skills.html",
|
|
52
|
+
"doc/prompt-templates.md" => "file.prompt-templates.html",
|
|
53
|
+
"doc/pan.md" => "file.pan.html",
|
|
54
|
+
"doc/mcp.md" => "file.mcp.html",
|
|
45
55
|
"doc/local-models.md" => "file.local-models.html",
|
|
46
56
|
"doc/extensibility.md" => "file.extensibility.html",
|
|
47
57
|
"doc/plugins.md" => "file.plugins.html",
|
|
@@ -79,7 +89,7 @@ module KwardDocsNavigation
|
|
|
79
89
|
title: title,
|
|
80
90
|
path: source,
|
|
81
91
|
url: url_for(link),
|
|
82
|
-
text: content.gsub(/[`*_#>\[\]()]/, " ").gsub(/\s+/, " ").strip
|
|
92
|
+
text: content.gsub(/<[^>]+>/, " ").gsub(/[`*_#>\[\]()]/, " ").gsub(/\s+/, " ").strip
|
|
83
93
|
}
|
|
84
94
|
end
|
|
85
95
|
end
|
|
@@ -111,6 +121,35 @@ module KwardDocsNavigation
|
|
|
111
121
|
options.index && readme_file?
|
|
112
122
|
end
|
|
113
123
|
|
|
124
|
+
def docs_page_title
|
|
125
|
+
return "Kward — Ruby Coding Agent for Your Terminal" if home_page?
|
|
126
|
+
|
|
127
|
+
page = DOCS_LINK_TITLES[docs_output_path] || @page_title.to_s.sub(/\AFile:\s*/, "")
|
|
128
|
+
"#{page} | Kward Docs"
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def docs_page_description
|
|
132
|
+
if home_page?
|
|
133
|
+
"Kward is an extensible Ruby coding agent for inspecting code, editing files, running tests, and resuming work from your terminal."
|
|
134
|
+
else
|
|
135
|
+
"Documentation for Kward, the extensible Ruby coding agent for your terminal."
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
def docs_canonical_url
|
|
140
|
+
return "https://kaiwood.github.io/kward/" if home_page?
|
|
141
|
+
|
|
142
|
+
"https://kaiwood.github.io/kward/#{docs_output_path}"
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def docs_output_path
|
|
146
|
+
if defined?(@file) && @file
|
|
147
|
+
GUIDE_FILE_LINKS[@file.filename.to_s] || API_FILE_LINKS[@file.filename.to_s] || current_docs_path
|
|
148
|
+
else
|
|
149
|
+
current_docs_path
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
|
|
114
153
|
def guide_page?
|
|
115
154
|
(readme_file? && !options.index) || guide_file? || GUIDE_LINKS.include?(current_docs_path)
|
|
116
155
|
end
|
|
@@ -133,7 +172,7 @@ module KwardDocsNavigation
|
|
|
133
172
|
GUIDE_FILE_LINKS.merge(API_FILE_LINKS).each do |source, target|
|
|
134
173
|
html = html.gsub(%(href="#{source}"), %(href="#{target}"))
|
|
135
174
|
end
|
|
136
|
-
html
|
|
175
|
+
html.gsub(%(src="templates/default/fulldoc/html/images/), %(src="images/))
|
|
137
176
|
end
|
|
138
177
|
end
|
|
139
178
|
|
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.
|
|
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
|
-
|
|
111
|
-
|
|
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,11 +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
236
|
- lib/kward/editor_prompt.rb
|
|
219
237
|
- lib/kward/editor_prompt_session.rb
|
|
220
|
-
- lib/kward/ekwsh.rb
|
|
221
238
|
- lib/kward/events.rb
|
|
222
239
|
- lib/kward/export_path.rb
|
|
223
240
|
- lib/kward/frontmatter.rb
|
|
@@ -235,8 +252,11 @@ files:
|
|
|
235
252
|
- lib/kward/http.rb
|
|
236
253
|
- lib/kward/image_attachments.rb
|
|
237
254
|
- lib/kward/interactive_pty_runner.rb
|
|
255
|
+
- lib/kward/kwsh.rb
|
|
256
|
+
- lib/kward/kwshrc.rb
|
|
238
257
|
- lib/kward/local_command_runner.rb
|
|
239
258
|
- lib/kward/local_pty_command_runner.rb
|
|
259
|
+
- lib/kward/markdown_code_block.rb
|
|
240
260
|
- lib/kward/markdown_transcript.rb
|
|
241
261
|
- lib/kward/mcp/client.rb
|
|
242
262
|
- lib/kward/mcp/server_config.rb
|
|
@@ -289,6 +309,8 @@ files:
|
|
|
289
309
|
- lib/kward/prompt_interface/editor/modes/vibe.rb
|
|
290
310
|
- lib/kward/prompt_interface/editor/modes/vibe_insert_readline.rb
|
|
291
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
|
|
292
314
|
- lib/kward/prompt_interface/editor/search.rb
|
|
293
315
|
- lib/kward/prompt_interface/editor/selections.rb
|
|
294
316
|
- lib/kward/prompt_interface/editor/state.rb
|
|
@@ -350,6 +372,7 @@ files:
|
|
|
350
372
|
- lib/kward/sandbox/policy.rb
|
|
351
373
|
- lib/kward/sandbox/runner_factory.rb
|
|
352
374
|
- lib/kward/sandbox/unavailable_runner.rb
|
|
375
|
+
- lib/kward/scratchpad_languages.rb
|
|
353
376
|
- lib/kward/scratchpad_runner.rb
|
|
354
377
|
- lib/kward/session_catalog.rb
|
|
355
378
|
- lib/kward/session_diff.rb
|
|
@@ -374,7 +397,9 @@ files:
|
|
|
374
397
|
- lib/kward/terminal_image_support.rb
|
|
375
398
|
- lib/kward/terminal_keys.rb
|
|
376
399
|
- lib/kward/terminal_sequences.rb
|
|
400
|
+
- lib/kward/terminal_text.rb
|
|
377
401
|
- lib/kward/text_boundary.rb
|
|
402
|
+
- lib/kward/text_matcher.rb
|
|
378
403
|
- lib/kward/tool_output_compactor.rb
|
|
379
404
|
- lib/kward/tools/ask_user_question.rb
|
|
380
405
|
- lib/kward/tools/base.rb
|
|
@@ -387,6 +412,7 @@ files:
|
|
|
387
412
|
- lib/kward/tools/git_commit.rb
|
|
388
413
|
- lib/kward/tools/list_directory.rb
|
|
389
414
|
- lib/kward/tools/mcp_tool.rb
|
|
415
|
+
- lib/kward/tools/open_editor.rb
|
|
390
416
|
- lib/kward/tools/prepare_shell_command.rb
|
|
391
417
|
- lib/kward/tools/read_file.rb
|
|
392
418
|
- lib/kward/tools/read_skill.rb
|
|
@@ -417,21 +443,23 @@ files:
|
|
|
417
443
|
- templates/default/fulldoc/html/css/kward.css
|
|
418
444
|
- templates/default/fulldoc/html/full_list.erb
|
|
419
445
|
- templates/default/fulldoc/html/images/kward_logo.png
|
|
420
|
-
- templates/default/fulldoc/html/images/
|
|
446
|
+
- templates/default/fulldoc/html/images/kward_workflow.svg
|
|
421
447
|
- templates/default/fulldoc/html/js/kward.js
|
|
422
448
|
- templates/default/fulldoc/html/setup.rb
|
|
423
449
|
- templates/default/kward_navigation.rb
|
|
424
450
|
- templates/default/layout/html/breadcrumb.erb
|
|
451
|
+
- templates/default/layout/html/footer.erb
|
|
452
|
+
- templates/default/layout/html/headers.erb
|
|
425
453
|
- templates/default/layout/html/layout.erb
|
|
426
454
|
- templates/default/layout/html/setup.rb
|
|
427
|
-
homepage: https://github.
|
|
455
|
+
homepage: https://kaiwood.github.io/kward/
|
|
428
456
|
licenses:
|
|
429
457
|
- MIT
|
|
430
458
|
metadata:
|
|
431
459
|
rubygems_mfa_required: 'true'
|
|
432
460
|
source_code_uri: https://github.com/kaiwood/kward
|
|
433
461
|
changelog_uri: https://github.com/kaiwood/kward/blob/main/CHANGELOG.md
|
|
434
|
-
documentation_uri: https://github.
|
|
462
|
+
documentation_uri: https://kaiwood.github.io/kward/
|
|
435
463
|
bug_tracker_uri: https://github.com/kaiwood/kward/issues
|
|
436
464
|
rdoc_options: []
|
|
437
465
|
require_paths:
|
|
@@ -449,5 +477,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
449
477
|
requirements: []
|
|
450
478
|
rubygems_version: 3.6.9
|
|
451
479
|
specification_version: 4
|
|
452
|
-
summary: An
|
|
480
|
+
summary: An extensible Ruby coding agent for your terminal.
|
|
453
481
|
test_files: []
|
|
Binary file
|