samagotchi 0.22.0 → 0.24.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 +72 -1
- data/bin/chi +9 -4
- data/docs/cli.md +6 -1
- data/docs/configuration.md +13 -4
- data/docs/hooks.md +20 -6
- data/docs/plugins.md +1 -1
- data/docs/releasing.md +1 -1
- data/docs/sub-agent.md +4 -3
- data/docs/testing.md +6 -0
- data/lib/samagotchi/answer_command.rb +4 -2
- data/lib/samagotchi/bootstrap/config_writer.rb +2 -1
- data/lib/samagotchi/bootstrap/probe.rb +1 -1
- data/lib/samagotchi/bootstrap_command.rb +2 -2
- data/lib/samagotchi/bridge/bounded_queue.rb +0 -2
- data/lib/samagotchi/bridge/card_store.rb +4 -3
- data/lib/samagotchi/bridge/sse_writer.rb +0 -6
- data/lib/samagotchi/bridge/turn_accumulator.rb +6 -3
- data/lib/samagotchi/bridge/turn_notice.rb +1 -0
- data/lib/samagotchi/bridge.rb +19 -9
- data/lib/samagotchi/bridge_client/event_stream.rb +2 -2
- data/lib/samagotchi/bridge_client.rb +1 -1
- data/lib/samagotchi/bundle_command.rb +39 -29
- data/lib/samagotchi/bundles/btw/manifest.yml +2 -2
- data/lib/samagotchi/bundles/btw/plugin.rb +2 -0
- data/lib/samagotchi/bundles/check-in/manifest.yml +2 -2
- data/lib/samagotchi/bundles/check-in/plugin.rb +4 -1
- data/lib/samagotchi/bundles/known-names/hooks/known_names.rb +6 -5
- data/lib/samagotchi/bundles/known-names/manifest.yml +2 -2
- data/lib/samagotchi/bundles/loop-guard/manifest.yml +2 -2
- data/lib/samagotchi/bundles/loop-guard/plugin.rb +2 -0
- data/lib/samagotchi/bundles/mcp/manifest.yml +2 -2
- data/lib/samagotchi/bundles/mcp/plugin.rb +2 -0
- data/lib/samagotchi/bundles/skills/manifest.yml +2 -2
- data/lib/samagotchi/bundles/skills/plugin.rb +5 -3
- data/lib/samagotchi/bundles/source-links/hooks/source_links.rb +7 -7
- data/lib/samagotchi/bundles/source-links/manifest.yml +2 -2
- data/lib/samagotchi/bundles/system/config_modification_protocol.md +1 -1
- data/lib/samagotchi/bundles/system/manifest.yml +2 -2
- data/lib/samagotchi/cancellation_controller.rb +1 -1
- data/lib/samagotchi/cli/command.rb +1 -1
- data/lib/samagotchi/client.rb +3 -5
- data/lib/samagotchi/commands/registry.rb +2 -2
- data/lib/samagotchi/config.rb +42 -14
- data/lib/samagotchi/context_note.rb +1 -1
- data/lib/samagotchi/context_status.rb +6 -6
- data/lib/samagotchi/continue_offer.rb +15 -8
- data/lib/samagotchi/debug_log.rb +1 -1
- data/lib/samagotchi/desktop/macos.rb +5 -4
- data/lib/samagotchi/empty_answer_retry.rb +1 -1
- data/lib/samagotchi/engine.rb +97 -18
- data/lib/samagotchi/gem_update.rb +2 -1
- data/lib/samagotchi/generation_phase.rb +83 -0
- data/lib/samagotchi/guardrail_wiring.rb +1 -1
- data/lib/samagotchi/guardrails/approval.rb +5 -5
- data/lib/samagotchi/guardrails/approvals.rb +2 -2
- data/lib/samagotchi/guardrails/gate.rb +2 -2
- data/lib/samagotchi/guardrails/read_only_shell.rb +5 -3
- data/lib/samagotchi/guardrails/shell_git_dirs.rb +1 -1
- data/lib/samagotchi/guardrails/shell_lex.rb +113 -5
- data/lib/samagotchi/guardrails/shell_paths.rb +3 -3
- data/lib/samagotchi/hooks/bundle_loader.rb +9 -6
- data/lib/samagotchi/hooks/loader.rb +18 -16
- data/lib/samagotchi/hooks/registry.rb +10 -2
- data/lib/samagotchi/host_registry.rb +1 -3
- data/lib/samagotchi/idle_recap.rb +22 -17
- data/lib/samagotchi/idle_reminders.rb +6 -3
- data/lib/samagotchi/image_store.rb +5 -2
- data/lib/samagotchi/kernel_loop.rb +50 -40
- data/lib/samagotchi/llm/chat_loop.rb +29 -16
- data/lib/samagotchi/llm/errors.rb +2 -2
- data/lib/samagotchi/llm/http.rb +12 -12
- data/lib/samagotchi/llm/openai_chat.rb +42 -28
- data/lib/samagotchi/llm/prompt_cache.rb +1 -1
- data/lib/samagotchi/log.rb +2 -2
- data/lib/samagotchi/log_subscriber.rb +5 -3
- data/lib/samagotchi/memory_bundle/builder.rb +9 -3
- data/lib/samagotchi/memory_bundle/index_updater.rb +13 -1
- data/lib/samagotchi/memory_bundle/installer.rb +67 -57
- data/lib/samagotchi/memory_bundle/listing.rb +5 -1
- data/lib/samagotchi/memory_bundle/manifest.rb +14 -4
- data/lib/samagotchi/memory_bundle/merger.rb +6 -4
- data/lib/samagotchi/memory_bundle/provenance.rb +16 -13
- data/lib/samagotchi/memory_bundle/source.rb +7 -3
- data/lib/samagotchi/memory_bundle/status.rb +3 -1
- data/lib/samagotchi/memory_bundle/system_bundle.rb +3 -2
- data/lib/samagotchi/memory_bundle/trash.rb +5 -2
- data/lib/samagotchi/memory_bundle/uninstaller.rb +9 -6
- data/lib/samagotchi/memory_bundle.rb +1 -0
- data/lib/samagotchi/model_overlay.rb +3 -5
- data/lib/samagotchi/model_profile.rb +12 -8
- data/lib/samagotchi/note_command.rb +2 -1
- data/lib/samagotchi/output_formatter.rb +18 -17
- data/lib/samagotchi/owner_lock.rb +2 -1
- data/lib/samagotchi/plugin/api.rb +8 -5
- data/lib/samagotchi/plugin/context.rb +1 -3
- data/lib/samagotchi/plugin/loader.rb +1 -1
- data/lib/samagotchi/plugin/service.rb +1 -1
- data/lib/samagotchi/plugin/sessions.rb +1 -0
- data/lib/samagotchi/plugin_tasks.rb +1 -1
- data/lib/samagotchi/prompt.rb +72 -13
- data/lib/samagotchi/prompt_literal_guard.rb +1 -1
- data/lib/samagotchi/question_desk.rb +7 -7
- data/lib/samagotchi/recap_setup.rb +1 -1
- data/lib/samagotchi/relay_desk.rb +1 -1
- data/lib/samagotchi/reminder_store.rb +2 -1
- data/lib/samagotchi/send_command.rb +4 -2
- data/lib/samagotchi/session.rb +2 -2
- data/lib/samagotchi/session_archive_command.rb +5 -1
- data/lib/samagotchi/session_commands.rb +1 -3
- data/lib/samagotchi/session_manager.rb +2 -4
- data/lib/samagotchi/session_metrics.rb +10 -10
- data/lib/samagotchi/session_observer.rb +3 -2
- data/lib/samagotchi/session_retention.rb +2 -2
- data/lib/samagotchi/sessions_command.rb +14 -5
- data/lib/samagotchi/steer.rb +103 -8
- data/lib/samagotchi/system_prompt.rb +19 -8
- data/lib/samagotchi/terminal_ui/attach_launcher.rb +5 -5
- data/lib/samagotchi/terminal_ui/attached_loop.rb +3 -3
- data/lib/samagotchi/terminal_ui/event_renderer.rb +4 -2
- data/lib/samagotchi/terminal_ui/formatting.rb +19 -10
- data/lib/samagotchi/terminal_ui/input_support.rb +2 -2
- data/lib/samagotchi/terminal_ui/line_reader.rb +3 -3
- data/lib/samagotchi/terminal_ui/one_shot_sink.rb +1 -0
- data/lib/samagotchi/terminal_ui/question_prompt.rb +23 -23
- data/lib/samagotchi/terminal_ui/question_slot.rb +10 -10
- data/lib/samagotchi/terminal_ui/reline_seam.rb +1 -1
- data/lib/samagotchi/terminal_ui/repl_input.rb +3 -2
- data/lib/samagotchi/terminal_ui.rb +14 -5
- data/lib/samagotchi/text_diff.rb +12 -12
- data/lib/samagotchi/thinking.rb +6 -2
- data/lib/samagotchi/thought_stream_splitter.rb +15 -6
- data/lib/samagotchi/tool_activity.rb +1 -0
- data/lib/samagotchi/tool_call_parser.rb +13 -14
- data/lib/samagotchi/tool_declarations.rb +36 -35
- data/lib/samagotchi/tool_runner.rb +7 -0
- data/lib/samagotchi/tool_view.rb +40 -0
- data/lib/samagotchi/tools/ask_user_question.rb +3 -4
- data/lib/samagotchi/tools/builtin_calls.rb +1 -1
- data/lib/samagotchi/tools/delegate.rb +1 -1
- data/lib/samagotchi/tools/delegate_relay.rb +1 -1
- data/lib/samagotchi/tools/delegate_wait.rb +0 -1
- data/lib/samagotchi/tools/edit.rb +14 -13
- data/lib/samagotchi/tools/execute.rb +3 -5
- data/lib/samagotchi/tools/list_reminders.rb +1 -1
- data/lib/samagotchi/tools/memory.rb +21 -22
- data/lib/samagotchi/tools/read.rb +7 -7
- data/lib/samagotchi/tools/task_create.rb +1 -1
- data/lib/samagotchi/tools/task_get.rb +1 -1
- data/lib/samagotchi/tools/task_list.rb +1 -1
- data/lib/samagotchi/tools/task_runtime.rb +8 -9
- data/lib/samagotchi/tools/task_stop.rb +1 -1
- data/lib/samagotchi/tools/task_wait.rb +3 -4
- data/lib/samagotchi/tools/web_fetch.rb +2 -4
- data/lib/samagotchi/tools/write.rb +1 -1
- data/lib/samagotchi/turn_flow.rb +8 -8
- data/lib/samagotchi/turn_note.rb +5 -1
- data/lib/samagotchi/version.rb +1 -1
- data/lib/samagotchi/vision_support.rb +2 -2
- data/lib/samagotchi/waiting_steer.rb +64 -0
- data/lib/samagotchi/web/app.rb +13 -6
- data/lib/samagotchi/web/markdown_renderer.rb +2 -1
- data/lib/samagotchi/web/message_parts.rb +5 -0
- data/lib/samagotchi/web/public/activity.js +5 -0
- data/lib/samagotchi/web/public/app.js +2 -1
- data/lib/samagotchi/web/public/command_view.js +28 -0
- data/lib/samagotchi/web/public/copy.js +7 -0
- data/lib/samagotchi/web/public/index.html +8 -0
- data/lib/samagotchi/web/public/stage_model.js +11 -4
- data/lib/samagotchi/web/public/stage_view.js +5 -2
- data/lib/samagotchi/web/public/turn_events.js +15 -1
- data/lib/samagotchi/web/public/turn_view.js +15 -6
- data/lib/samagotchi/web/qr.rb +7 -1
- data/lib/samagotchi/web/server.rb +6 -2
- data/lib/samagotchi/worker.rb +14 -3
- metadata +24 -20
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import { toolName } from "./activity.js";
|
|
13
13
|
import { leavesBlock } from "./card.js";
|
|
14
14
|
import { copySourceAttr } from "./copy.js";
|
|
15
|
+
import { commandBlockHtml, rowHover } from "./command_view.js";
|
|
15
16
|
import { activityDiffHtml } from "./diff_view.js";
|
|
16
17
|
import { escapeHtml, messageBodyHtml, noteHtml, normalize, steerRowHtml } from "./format.js";
|
|
17
18
|
import { thumbsHtml } from "./images.js";
|
|
@@ -45,11 +46,17 @@ function fillActivityRow(el, row, sessionId) {
|
|
|
45
46
|
if (toolEl) toolEl.textContent = toolName(row);
|
|
46
47
|
const paramsEl = el.querySelector(".activity-params");
|
|
47
48
|
if (paramsEl) {
|
|
48
|
-
// The title in place of the params; the full
|
|
49
|
+
// The title in place of the params; the full command (else the full
|
|
50
|
+
// params line) on hover.
|
|
49
51
|
paramsEl.textContent = row.title || row.params || "";
|
|
50
|
-
paramsEl.title = row
|
|
52
|
+
paramsEl.title = rowHover(row);
|
|
51
53
|
}
|
|
52
54
|
const outEl = el.querySelector(".activity-output");
|
|
55
|
+
// The call's full command, above its output (running too).
|
|
56
|
+
if (row.view?.command && !el.querySelector(".activity-command")) {
|
|
57
|
+
if (outEl) outEl.insertAdjacentHTML("beforebegin", commandBlockHtml(row.view));
|
|
58
|
+
else el.insertAdjacentHTML("beforeend", commandBlockHtml(row.view));
|
|
59
|
+
}
|
|
53
60
|
if (outEl) {
|
|
54
61
|
if (row.status === "running") {
|
|
55
62
|
outEl.style.display = "none";
|
|
@@ -667,14 +674,15 @@ function defaultPlaceAnswer(appendToHistory) {
|
|
|
667
674
|
};
|
|
668
675
|
}
|
|
669
676
|
|
|
670
|
-
// A reloaded tool row, the live row's markup (fillActivityRow): status, tool, params,
|
|
671
|
-
// 300 chars, the rest on hover), plus the call's
|
|
677
|
+
// A reloaded tool row, the live row's markup (fillActivityRow): status, tool, params, the full command (an
|
|
678
|
+
// execute/task_create's view), output (its "[tool]" tag dropped, 300 chars, the rest on hover), plus the call's
|
|
679
|
+
// duration from its record.
|
|
672
680
|
// Params, output and the call's images come from the saved messages'
|
|
673
681
|
// parts; without them the row has the record's name, status and duration
|
|
674
682
|
// only. +thumbs(images)+ draws the images, as the live row does.
|
|
675
683
|
function reloadRowHtml(r, thumbs) {
|
|
676
684
|
const shown = r.title || r.params;
|
|
677
|
-
const hover = r
|
|
685
|
+
const hover = rowHover(r) ? ` title="${escapeHtml(rowHover(r))}"` : "";
|
|
678
686
|
const params = shown ? `<span class="activity-params"${hover}>${escapeHtml(shown)}</span>` : "";
|
|
679
687
|
const duration = formatDuration(r.duration_ms);
|
|
680
688
|
const full = String(r.output || "").replace(/^\[[^\]]*\]\s*/, "");
|
|
@@ -682,7 +690,8 @@ function reloadRowHtml(r, thumbs) {
|
|
|
682
690
|
? `<div class="activity-output" title="${escapeHtml(full)}">${escapeHtml(full.length > 300 ? `${full.slice(0, 300)}…` : full)}</div>`
|
|
683
691
|
: "";
|
|
684
692
|
return `<div class="activity-row" data-key="${escapeHtml(r.key)}"><span class="activity-status ${activityStatusClass(r.status)}">${activityStatusLabel(r.status)}</span>` +
|
|
685
|
-
`<span class="activity-tool">${escapeHtml(toolName(r))}</span>${params}${duration ? `<span class="activity-duration">${escapeHtml(duration)}</span>` : ""}
|
|
693
|
+
`<span class="activity-tool">${escapeHtml(toolName(r))}</span>${params}${duration ? `<span class="activity-duration">${escapeHtml(duration)}</span>` : ""}` +
|
|
694
|
+
`${commandBlockHtml(r.view)}${output}` +
|
|
686
695
|
`${r.images?.length ? thumbs(r.images) : ""}${r.diff ? activityDiffHtml(r.diff) : ""}</div>`;
|
|
687
696
|
}
|
|
688
697
|
|
data/lib/samagotchi/web/qr.rb
CHANGED
|
@@ -21,7 +21,13 @@ module Samagotchi
|
|
|
21
21
|
rows = matrix(text, quiet: quiet)
|
|
22
22
|
rows << Array.new(rows.first.size, false) if rows.size.odd?
|
|
23
23
|
rows.each_slice(2).map do |top, bottom|
|
|
24
|
-
line = top.zip(bottom).map
|
|
24
|
+
line = top.zip(bottom).map do |t, b|
|
|
25
|
+
if t
|
|
26
|
+
b ? "█" : "▀"
|
|
27
|
+
else
|
|
28
|
+
(b ? "▄" : " ")
|
|
29
|
+
end
|
|
30
|
+
end.join
|
|
25
31
|
color ? "#{COLORS}#{line}#{RESET}" : line
|
|
26
32
|
end
|
|
27
33
|
end
|
|
@@ -94,8 +94,12 @@ module Samagotchi
|
|
|
94
94
|
puts lan_off_line(setting)
|
|
95
95
|
return 0
|
|
96
96
|
end
|
|
97
|
-
start(port: port, host: host, url: url, open_browser: open_browser, markdown: markdown, view: view,
|
|
98
|
-
|
|
97
|
+
if start(port: port, host: host, url: url, open_browser: open_browser, markdown: markdown, view: view,
|
|
98
|
+
annotate_presets: annotate_presets, lan: lan)
|
|
99
|
+
0
|
|
100
|
+
else
|
|
101
|
+
1
|
|
102
|
+
end
|
|
99
103
|
end
|
|
100
104
|
rescue Lan::Error => e
|
|
101
105
|
warn "Error: #{e.message}"
|
data/lib/samagotchi/worker.rb
CHANGED
|
@@ -7,6 +7,7 @@ require_relative "session"
|
|
|
7
7
|
require_relative "session_inbox"
|
|
8
8
|
require_relative "turn_note"
|
|
9
9
|
require_relative "context_note"
|
|
10
|
+
require_relative "steer"
|
|
10
11
|
require_relative "worker_idle_exit"
|
|
11
12
|
require_relative "session_manager"
|
|
12
13
|
require_relative "archive_store"
|
|
@@ -166,6 +167,7 @@ module Samagotchi
|
|
|
166
167
|
# A session stopped before this worker took the lock (e.g. a stop
|
|
167
168
|
# right after create) must not run its initial prompt.
|
|
168
169
|
return :stopped if stopped_on_disk?
|
|
170
|
+
|
|
169
171
|
# Plugins' slow setup (chi.init: an MCP server's first start), in
|
|
170
172
|
# the background, shown by the UIs; a turn waits only for the ones
|
|
171
173
|
# that bring tools.
|
|
@@ -483,15 +485,22 @@ module Samagotchi
|
|
|
483
485
|
# queued while it ran are refused, then the caller's block takes the
|
|
484
486
|
# result (or the error the Engine announced as :turn_failed), the
|
|
485
487
|
# answer goes to the output file and the session is saved.
|
|
488
|
+
# A failure before the Engine's turn began (this save, say) goes to the
|
|
489
|
+
# block too, with no :turn_failed: it is logged, the session idle again.
|
|
486
490
|
# @yieldparam result [Object, nil] Engine#run_turn's, nil on a failure
|
|
487
491
|
# @yieldparam error [StandardError, nil]
|
|
488
492
|
def run_engine_turn(prompt, **turn_args)
|
|
489
|
-
@session.status = Session::STATUS_RUNNING
|
|
490
|
-
@session.save(state_dir: @state_dir)
|
|
491
493
|
begin
|
|
494
|
+
@session.status = Session::STATUS_RUNNING
|
|
495
|
+
@session.save(state_dir: @state_dir)
|
|
492
496
|
result = @engine.run_turn(@session, prompt, pending_input: pending_input_drain, **turn_args)
|
|
493
497
|
rescue StandardError => e
|
|
494
498
|
error = e
|
|
499
|
+
# Still running: no turn of the Engine's ended (it never began).
|
|
500
|
+
if @session.status == Session::STATUS_RUNNING
|
|
501
|
+
@session.status = Session::STATUS_IDLE
|
|
502
|
+
Log.warn(:worker, "turn_not_begun", error: e.class.name, msg: e.message)
|
|
503
|
+
end
|
|
495
504
|
ensure
|
|
496
505
|
refuse_queued_commands
|
|
497
506
|
end
|
|
@@ -563,7 +572,9 @@ module Samagotchi
|
|
|
563
572
|
@engine.announce(type: :input_merged, count: merged.size, origins: merged.filter_map(&:last))
|
|
564
573
|
@merged_this_turn.concat(merged)
|
|
565
574
|
end
|
|
566
|
-
|
|
575
|
+
# Each line keeps its sender (Steer.source_for_client): a chi send or
|
|
576
|
+
# a delegating parent's line is saved and shown to the model as theirs.
|
|
577
|
+
merged.map { |prompt, origin| Steer::Line.new(text: prompt, source: Steer.source_for_client(origin&.dig(:client_id))) }
|
|
567
578
|
end
|
|
568
579
|
end
|
|
569
580
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: samagotchi
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.24.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dmitry Dedov
|
|
@@ -9,20 +9,6 @@ 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: reline
|
|
14
|
-
requirement: !ruby/object:Gem::Requirement
|
|
15
|
-
requirements:
|
|
16
|
-
- - "~>"
|
|
17
|
-
- !ruby/object:Gem::Version
|
|
18
|
-
version: 0.6.3
|
|
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.3
|
|
26
12
|
- !ruby/object:Gem::Dependency
|
|
27
13
|
name: json
|
|
28
14
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -80,19 +66,19 @@ dependencies:
|
|
|
80
66
|
- !ruby/object:Gem::Version
|
|
81
67
|
version: '0'
|
|
82
68
|
- !ruby/object:Gem::Dependency
|
|
83
|
-
name:
|
|
69
|
+
name: reline
|
|
84
70
|
requirement: !ruby/object:Gem::Requirement
|
|
85
71
|
requirements:
|
|
86
|
-
- - "
|
|
72
|
+
- - "~>"
|
|
87
73
|
- !ruby/object:Gem::Version
|
|
88
|
-
version:
|
|
74
|
+
version: 0.6.3
|
|
89
75
|
type: :runtime
|
|
90
76
|
prerelease: false
|
|
91
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
78
|
requirements:
|
|
93
|
-
- - "
|
|
79
|
+
- - "~>"
|
|
94
80
|
- !ruby/object:Gem::Version
|
|
95
|
-
version:
|
|
81
|
+
version: 0.6.3
|
|
96
82
|
- !ruby/object:Gem::Dependency
|
|
97
83
|
name: rqrcode_core
|
|
98
84
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -107,6 +93,20 @@ dependencies:
|
|
|
107
93
|
- - "~>"
|
|
108
94
|
- !ruby/object:Gem::Version
|
|
109
95
|
version: '2.0'
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: webrick
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
103
|
+
type: :runtime
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '0'
|
|
110
110
|
description: chi is an agent harness for local and OpenAI-compatible models (llama.cpp,
|
|
111
111
|
mlx, oMLX, hosted APIs). It runs sessions in a terminal REPL or in background workers
|
|
112
112
|
you can attach to from the terminal and a web UI, keeps memories in plain files
|
|
@@ -223,6 +223,7 @@ files:
|
|
|
223
223
|
- lib/samagotchi/engine.rb
|
|
224
224
|
- lib/samagotchi/events.rb
|
|
225
225
|
- lib/samagotchi/gem_update.rb
|
|
226
|
+
- lib/samagotchi/generation_phase.rb
|
|
226
227
|
- lib/samagotchi/guardrail_wiring.rb
|
|
227
228
|
- lib/samagotchi/guardrails.rb
|
|
228
229
|
- lib/samagotchi/guardrails/approval.rb
|
|
@@ -380,6 +381,7 @@ files:
|
|
|
380
381
|
- lib/samagotchi/tool_declarations.rb
|
|
381
382
|
- lib/samagotchi/tool_response.rb
|
|
382
383
|
- lib/samagotchi/tool_runner.rb
|
|
384
|
+
- lib/samagotchi/tool_view.rb
|
|
383
385
|
- lib/samagotchi/tools/args.rb
|
|
384
386
|
- lib/samagotchi/tools/ask_user_question.rb
|
|
385
387
|
- lib/samagotchi/tools/builtin_calls.rb
|
|
@@ -420,6 +422,7 @@ files:
|
|
|
420
422
|
- lib/samagotchi/version.rb
|
|
421
423
|
- lib/samagotchi/vision_context.rb
|
|
422
424
|
- lib/samagotchi/vision_support.rb
|
|
425
|
+
- lib/samagotchi/waiting_steer.rb
|
|
423
426
|
- lib/samagotchi/web/app.rb
|
|
424
427
|
- lib/samagotchi/web/info_probe.rb
|
|
425
428
|
- lib/samagotchi/web/lan.rb
|
|
@@ -434,6 +437,7 @@ files:
|
|
|
434
437
|
- lib/samagotchi/web/public/chunk_router.js
|
|
435
438
|
- lib/samagotchi/web/public/command_complete.js
|
|
436
439
|
- lib/samagotchi/web/public/command_list.js
|
|
440
|
+
- lib/samagotchi/web/public/command_view.js
|
|
437
441
|
- lib/samagotchi/web/public/composer_size.js
|
|
438
442
|
- lib/samagotchi/web/public/copy.js
|
|
439
443
|
- lib/samagotchi/web/public/ctx.js
|