samagotchi 0.148.0 → 0.150.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 +62 -1
- data/README.md +4 -2
- data/docs/architecture.md +3 -3
- data/docs/bundles.md +38 -1
- data/docs/cli.md +76 -24
- data/docs/configuration.md +8 -6
- data/docs/guardrails.md +2 -1
- data/docs/hooks.md +2 -1
- data/docs/internals/background-tasks.md +1 -1
- data/docs/internals/bridge.md +8 -0
- data/docs/internals/bundles.md +42 -14
- data/docs/internals/objectives.md +269 -0
- data/docs/internals/web-frontend.md +4 -1
- data/docs/internals/web-push.md +2 -2
- data/docs/internals/working-set.md +5 -2
- data/docs/memory.md +47 -9
- data/docs/plugins.md +10 -2
- data/docs/releasing.md +1 -1
- data/docs/sessions.md +45 -2
- data/docs/system-one.md +17 -1
- data/docs/testing.md +5 -0
- data/lib/samagotchi/atomic_file.rb +3 -0
- data/lib/samagotchi/bootstrap_command.rb +5 -2
- data/lib/samagotchi/bridge/card_store.rb +52 -7
- data/lib/samagotchi/bridge.rb +1 -1
- data/lib/samagotchi/bundle_command.rb +91 -68
- data/lib/samagotchi/bundler_env.rb +24 -0
- data/lib/samagotchi/bundles/coordinator/manifest.yml +6 -4
- data/lib/samagotchi/bundles/coordinator/plugin.rb +3 -2
- data/lib/samagotchi/bundles/coordinator/skill_coordinator.md +9 -0
- data/lib/samagotchi/bundles/decision-card/manifest.yml +13 -0
- data/lib/samagotchi/bundles/decision-card/plugin.rb +280 -0
- data/lib/samagotchi/bundles/dev/manifest.yml +3 -2
- data/lib/samagotchi/bundles/github-pr/manifest.yml +3 -3
- data/lib/samagotchi/bundles/github-pr/plugin.rb +2 -1
- data/lib/samagotchi/bundles/known-names/hooks/known_names.rb +3 -1
- data/lib/samagotchi/bundles/known-names/manifest.yml +3 -2
- data/lib/samagotchi/bundles/source-links/hooks/source_links.rb +2 -2
- data/lib/samagotchi/bundles/source-links/manifest.yml +3 -3
- data/lib/samagotchi/bundles/system/manifest.yml +3 -3
- data/lib/samagotchi/bundles/system/memory_guide.md +5 -5
- data/lib/samagotchi/bundles/system/self_map.md +1 -1
- data/lib/samagotchi/chi_home.rb +4 -2
- data/lib/samagotchi/chi_shim.rb +2 -1
- data/lib/samagotchi/child_env.rb +10 -3
- data/lib/samagotchi/config.rb +7 -1
- data/lib/samagotchi/context_note.rb +17 -5
- data/lib/samagotchi/engine.rb +113 -6
- data/lib/samagotchi/engine_peers.rb +11 -0
- data/lib/samagotchi/git_env.rb +43 -0
- data/lib/samagotchi/guardrails/context.rb +2 -0
- data/lib/samagotchi/guardrails/pair_boundary.rb +3 -2
- data/lib/samagotchi/guardrails/targets.rb +4 -1
- data/lib/samagotchi/llm/chat_loop.rb +1 -1
- data/lib/samagotchi/memory_bundle/asset_installer.rb +16 -2
- data/lib/samagotchi/memory_bundle/file_standing.rb +167 -0
- data/lib/samagotchi/memory_bundle/installed_bundle.rb +62 -1
- data/lib/samagotchi/memory_bundle/installer.rb +161 -52
- data/lib/samagotchi/memory_bundle/listing.rb +4 -3
- data/lib/samagotchi/memory_bundle/merger.rb +209 -8
- data/lib/samagotchi/memory_bundle/placeholder.rb +2 -1
- data/lib/samagotchi/memory_bundle/profile.rb +7 -3
- data/lib/samagotchi/memory_bundle/provenance.rb +178 -20
- data/lib/samagotchi/memory_bundle/remerge.rb +167 -0
- data/lib/samagotchi/memory_bundle/shipped_history.rb +79 -0
- data/lib/samagotchi/memory_bundle/shipped_update.rb +89 -24
- data/lib/samagotchi/memory_bundle/source.rb +3 -3
- data/lib/samagotchi/memory_bundle/status.rb +21 -3
- data/lib/samagotchi/memory_bundle/system_bundle.rb +98 -33
- data/lib/samagotchi/memory_bundle/text_merge.rb +399 -0
- data/lib/samagotchi/memory_bundle/trash.rb +58 -2
- data/lib/samagotchi/memory_bundle/uninstaller.rb +26 -6
- data/lib/samagotchi/note_command.rb +1 -1
- data/lib/samagotchi/note_delivery.rb +6 -2
- data/lib/samagotchi/objectives.rb +395 -0
- data/lib/samagotchi/objectives_audit.rb +115 -0
- data/lib/samagotchi/objectives_check.rb +365 -0
- data/lib/samagotchi/objectives_command.rb +192 -0
- data/lib/samagotchi/plugin/api.rb +2 -1
- data/lib/samagotchi/plugin/context.rb +21 -1
- data/lib/samagotchi/project_env.rb +3 -2
- data/lib/samagotchi/self_report.rb +2 -0
- data/lib/samagotchi/session_commands.rb +15 -0
- data/lib/samagotchi/session_continue.rb +3 -0
- data/lib/samagotchi/session_inbox.rb +14 -6
- data/lib/samagotchi/session_manager.rb +1 -1
- data/lib/samagotchi/steer.rb +24 -4
- data/lib/samagotchi/testing/boundary.rb +2 -0
- data/lib/samagotchi/testing/host.rb +1 -0
- data/lib/samagotchi/testing/minitest.rb +3 -0
- data/lib/samagotchi/testing/rspec.rb +3 -0
- data/lib/samagotchi/testing/sandbox.rb +3 -1
- data/lib/samagotchi/tool_activity.rb +17 -0
- data/lib/samagotchi/tool_declarations.rb +34 -0
- data/lib/samagotchi/tools/builtin_calls.rb +2 -1
- data/lib/samagotchi/tools/builtins.rb +4 -1
- data/lib/samagotchi/tools/delegate.rb +2 -1
- data/lib/samagotchi/tools/objectives_tool.rb +75 -0
- data/lib/samagotchi/tools/peers.rb +3 -0
- data/lib/samagotchi/tools/task_runtime.rb +13 -10
- data/lib/samagotchi/turn_flow.rb +3 -1
- data/lib/samagotchi/update_command.rb +76 -28
- data/lib/samagotchi/update_hint.rb +4 -1
- data/lib/samagotchi/version.rb +1 -1
- data/lib/samagotchi/web/auto_update.rb +8 -8
- data/lib/samagotchi/web/auto_update_record.rb +6 -4
- data/lib/samagotchi/web/message_display.rb +9 -0
- data/lib/samagotchi/web/participant_view.rb +2 -2
- data/lib/samagotchi/web/public/app.js +15 -3
- data/lib/samagotchi/web/public/block_open.js +13 -0
- data/lib/samagotchi/web/public/bubbles.js +4 -2
- data/lib/samagotchi/web/public/cards_place.js +30 -9
- data/lib/samagotchi/web/public/commands.js +4 -1
- data/lib/samagotchi/web/public/details_motion.js +2 -1
- data/lib/samagotchi/web/public/index.html +20 -14
- data/lib/samagotchi/web/public/objectives.css +80 -0
- data/lib/samagotchi/web/public/objectives_entry.js +22 -0
- data/lib/samagotchi/web/public/objectives_model.js +100 -0
- data/lib/samagotchi/web/public/objectives_moves.js +145 -0
- data/lib/samagotchi/web/public/objectives_strip.js +242 -0
- data/lib/samagotchi/web/public/objectives_wiring.js +62 -0
- data/lib/samagotchi/web/public/stage_model.js +5 -6
- data/lib/samagotchi/web/public/stage_view.js +8 -7
- data/lib/samagotchi/web/public/stream_handlers.js +6 -1
- data/lib/samagotchi/web/public/turn_block.js +34 -19
- data/lib/samagotchi/web/public/turn_html.js +4 -1
- data/lib/samagotchi/web/public/turn_model.js +1 -1
- data/lib/samagotchi/web/public/update_sheet.js +8 -3
- data/lib/samagotchi/web/public/working_set_view.js +10 -7
- data/lib/samagotchi/web/push/notifier.rb +7 -9
- data/lib/samagotchi/web/session_hub.rb +2 -1
- data/lib/samagotchi/web/session_show.rb +12 -1
- data/lib/samagotchi/web/update_ops.rb +2 -1
- data/lib/samagotchi/worker.rb +3 -0
- data/lib/samagotchi/worker_inbound.rb +16 -8
- metadata +22 -1
|
@@ -95,17 +95,18 @@ function footTag(label) {
|
|
|
95
95
|
return html` <button type="button" class="ws-step p" data-ws="jump" data-at=${atAttr(first.at)} title=${title}>${text}</button>`;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
// The footprint
|
|
99
|
-
//
|
|
100
|
-
//
|
|
101
|
-
//
|
|
98
|
+
// The footprint of a finished turn's +items+ (turn +ordinal+), nothing for a
|
|
99
|
+
// turn that touched nothing: "touched web/public/ · 9 files · ◆ 3 memories
|
|
100
|
+
// s1–5 · +1 url · edited 2". It sits in the turn block's summary line, so a
|
|
101
|
+
// span (phrasing content). A click opens the expanded view at that turn; a
|
|
102
|
+
// step tag jumps to its call.
|
|
102
103
|
export function footprintTemplate(items, ordinal) {
|
|
103
104
|
const fp = footprint(items, BUDGETS.footprint);
|
|
104
105
|
if (!fp) return nothing;
|
|
105
106
|
const sep = html` <span class="sep">·</span> `;
|
|
106
107
|
const parts = fp.labels.map((l, i) => html`${i ? sep : nothing}<span class=${`l ${l.kind}${l.state && l.state !== "live" ? ` ${l.state}` : ""}`} title=${labelTitle(l)}>${l.glyph ? html`<span class="k">${l.glyph}</span> ` : nothing}${labelText({ ...l, glyph: "" })}</span>${footTag(l)}`);
|
|
107
108
|
const text = footprintText(items, BUDGETS.footprint);
|
|
108
|
-
return html`<
|
|
109
|
+
return html`<span class="ws-foot" role="button" tabindex="0" aria-haspopup="dialog" aria-expanded="false" data-ws-turn=${ordinal} data-ws-sig=${footSig(items)} aria-label=${`Working set of this turn: ${text.replace(/^touched /, "")}. Open the list.`}><span class="w">touched</span> ${parts}${fp.tail ? html`${sep}<span class="w">${fp.tail}</span>` : nothing}${fp.edited ? html`${sep}<span class="e">edited ${fp.edited}</span>` : nothing}${fp.stale ? html`${sep}<span class="s">${fp.stale} stale</span>` : nothing}${fp.forgotten ? html`${sep}<span class="f">${fp.forgotten} forgotten</span>` : nothing}${fp.dropped ? html`${sep}<span class="f">${fp.dropped} dropped</span>` : nothing}</span>`;
|
|
109
110
|
}
|
|
110
111
|
|
|
111
112
|
// What a footprint shows that can change after it is drawn: its items'
|
|
@@ -418,10 +419,12 @@ export function createWorkingSet({ historyEl, stageRoot = () => null, state, ses
|
|
|
418
419
|
}
|
|
419
420
|
});
|
|
420
421
|
|
|
421
|
-
// A footprint: its step tag jumps, the rest opens that turn's view.
|
|
422
|
+
// A footprint: its step tag jumps, the rest opens that turn's view. Inside
|
|
423
|
+
// a <summary>, the click is cancelled so it doesn't toggle the block.
|
|
422
424
|
function footClick(e) {
|
|
423
425
|
const foot = e.target.closest?.(".ws-foot");
|
|
424
426
|
if (!foot) return;
|
|
427
|
+
if (foot.closest("summary")) e.preventDefault();
|
|
425
428
|
const tag = e.target.closest(".ws-step[data-at]");
|
|
426
429
|
if (tag) {
|
|
427
430
|
const at = parseAt(tag.dataset.at);
|
|
@@ -563,7 +566,7 @@ export function createWorkingSet({ historyEl, stageRoot = () => null, state, ses
|
|
|
563
566
|
// The rail's first-sight times, for the popover's fresh rows.
|
|
564
567
|
setSeen(fn) { seenAt = fn; },
|
|
565
568
|
// The running turn hands off: its set joins the turns; its footprint
|
|
566
|
-
//
|
|
569
|
+
// (null: it touched nothing) goes into its block's summary.
|
|
567
570
|
handOff(turn, prompt = "") {
|
|
568
571
|
const ordinal = turns.length;
|
|
569
572
|
const items = itemsOfTurn(turn, ordinal);
|
|
@@ -5,6 +5,7 @@ require "uri"
|
|
|
5
5
|
require "time"
|
|
6
6
|
require_relative "attention"
|
|
7
7
|
require_relative "../../log"
|
|
8
|
+
require_relative "../../memory_bundle/file_standing"
|
|
8
9
|
|
|
9
10
|
module Samagotchi
|
|
10
11
|
module Web
|
|
@@ -52,10 +53,10 @@ module Samagotchi
|
|
|
52
53
|
AUTO_NOTICES = {
|
|
53
54
|
"installed" => lambda do |version, notes|
|
|
54
55
|
["installed", "chi #{version} is installed",
|
|
55
|
-
"chi web and its sessions switch over when you restart them.#{
|
|
56
|
+
"chi web and its sessions switch over when you restart them.#{file_words(notes)}"]
|
|
56
57
|
end,
|
|
57
58
|
"updated" => lambda do |version, notes|
|
|
58
|
-
["updated", "chi updated to #{version}", "#{restarted_words(notes[:restarted], notes[:left])}#{
|
|
59
|
+
["updated", "chi updated to #{version}", "#{restarted_words(notes[:restarted], notes[:left])}#{file_words(notes)}"]
|
|
59
60
|
end,
|
|
60
61
|
"restart_failed" => lambda do |version, notes|
|
|
61
62
|
["restart_failed", "chi #{version} is installed; chi web didn't restart",
|
|
@@ -79,13 +80,10 @@ module Samagotchi
|
|
|
79
80
|
"#{words}."
|
|
80
81
|
end
|
|
81
82
|
|
|
82
|
-
# "
|
|
83
|
-
def self.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
else
|
|
87
|
-
""
|
|
88
|
-
end
|
|
83
|
+
# " Merged the update into 1 file you edited. 2 files stay behind." ("" for none).
|
|
84
|
+
def self.file_words(notes)
|
|
85
|
+
words = MemoryBundle::FileStanding.counts_sentence(merged: notes[:merged].to_i, behind: notes[:kept].to_i)
|
|
86
|
+
words.empty? ? "" : " #{words}"
|
|
89
87
|
end
|
|
90
88
|
|
|
91
89
|
# A show carries +open+ only while its JSON stays this small: one
|
|
@@ -216,7 +216,8 @@ module Samagotchi
|
|
|
216
216
|
# `chi_update` frames are the page's), and not kept for a snapshot.
|
|
217
217
|
# @param kind [String] installed, updated or failed
|
|
218
218
|
# @param version [String] the release it is about
|
|
219
|
-
# @param notes [Hash] detail:, kept: (
|
|
219
|
+
# @param notes [Hash] detail:, kept:, merged: (counts of edited files that
|
|
220
|
+
# stayed behind and that took the update), restarted:, left:
|
|
220
221
|
def publish_notice(kind:, version:, **notes)
|
|
221
222
|
@monitor.synchronize { emit("chi_notice", { kind: kind, version: version, **notes }) }
|
|
222
223
|
nil
|
|
@@ -6,6 +6,7 @@ require "uri"
|
|
|
6
6
|
require_relative "../analytics_file"
|
|
7
7
|
require_relative "../answer_refs"
|
|
8
8
|
require_relative "../answer_tail"
|
|
9
|
+
require_relative "../objectives"
|
|
9
10
|
require_relative "../output_formatter"
|
|
10
11
|
require_relative "../question_asked"
|
|
11
12
|
require_relative "../guardrails/approvals"
|
|
@@ -91,10 +92,20 @@ module Samagotchi
|
|
|
91
92
|
# The stream cursor `<seq>-<epoch>`: a later worker resets it
|
|
92
93
|
# instead of taking the seq as its own. Only the snapshot has it.
|
|
93
94
|
last_event_id: turn_snapshot && turn_snapshot["event_id"],
|
|
94
|
-
timing: timing
|
|
95
|
+
timing: timing,
|
|
96
|
+
**objectives_field(id, raw_messages)
|
|
95
97
|
})
|
|
96
98
|
end
|
|
97
99
|
|
|
100
|
+
# The session's list (the page's strip), and no key with no list: a
|
|
101
|
+
# session without one reads as it always did. A snapshot's entries have
|
|
102
|
+
# string keys (paired_runs reads symbols).
|
|
103
|
+
def objectives_field(id, messages)
|
|
104
|
+
symbols = Array(messages).map { |message| message.is_a?(Hash) ? message.transform_keys(&:to_sym) : message }
|
|
105
|
+
view = Samagotchi::Objectives.view(id, symbols, state_dir: default_state_dir)
|
|
106
|
+
view ? { objectives: view } : {}
|
|
107
|
+
end
|
|
108
|
+
|
|
98
109
|
# A list in the worker's turn +snapshot+ (queued prompts, commands,
|
|
99
110
|
# init tasks); [] without a worker.
|
|
100
111
|
def snapshot_list(snapshot, key) = Array(snapshot&.[](key))
|
|
@@ -175,7 +175,8 @@ module Samagotchi
|
|
|
175
175
|
def perform_install(version, auto)
|
|
176
176
|
argv = update_argv(version)
|
|
177
177
|
said = nil
|
|
178
|
-
|
|
178
|
+
env = auto ? ChildEnv.unbundled.merge(ChildEnv::UNATTENDED_UPDATE => "1") : ChildEnv.unbundled
|
|
179
|
+
output, success = @runner.call(argv, env: env,
|
|
179
180
|
progress: lambda { |line|
|
|
180
181
|
said = line unless line.strip.empty?
|
|
181
182
|
@hub.publish_update(state: "running", rows: [], progress: line,
|
data/lib/samagotchi/worker.rb
CHANGED
|
@@ -1203,6 +1203,9 @@ module Samagotchi
|
|
|
1203
1203
|
save_or_log(:command) { save_session } unless Array(result.changed).empty?
|
|
1204
1204
|
announce_command(command, status: result.status.to_s, output: result.output, changed: Array(result.changed),
|
|
1205
1205
|
anytime: true, confirm: result.confirm)
|
|
1206
|
+
# It may have left a note (/objectives): an idle loop takes it now, not
|
|
1207
|
+
# at the fallback tick. Harmless otherwise: one more pass.
|
|
1208
|
+
@waker.wake
|
|
1206
1209
|
rescue StandardError => e
|
|
1207
1210
|
Log.warn(:worker, "anytime_command_failed", line: command.line, error: e.class.name, msg: e.message)
|
|
1208
1211
|
end
|
|
@@ -9,6 +9,7 @@ require_relative "client_id"
|
|
|
9
9
|
require_relative "config"
|
|
10
10
|
require_relative "context_note"
|
|
11
11
|
require_relative "log"
|
|
12
|
+
require_relative "objectives"
|
|
12
13
|
require_relative "session"
|
|
13
14
|
require_relative "session_inbox"
|
|
14
15
|
require_relative "steer"
|
|
@@ -113,19 +114,26 @@ module Samagotchi
|
|
|
113
114
|
# note the saved conversation already holds. A failed save keeps the
|
|
114
115
|
# files too: the next pass claims them again, finds them in the
|
|
115
116
|
# conversation and saves again. Not activity: a note alone neither
|
|
116
|
-
# starts a turn nor keeps an idle worker up.
|
|
117
|
+
# starts a turn nor keeps an idle worker up. Of the objectives notes in
|
|
118
|
+
# a batch only the newest goes in: each is a whole list, so the older
|
|
119
|
+
# ones (edits made during a turn) would only be sent for nothing.
|
|
117
120
|
def absorb_notes
|
|
118
121
|
files = SessionInbox.find_new_note_files(@session_dir)
|
|
119
122
|
return if files.empty? || @stopped.call
|
|
120
123
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
# Under the objectives' lock: an edit reads the conversation and then the
|
|
125
|
+
# pending file, so it must see this whole step or none of it.
|
|
126
|
+
Objectives.with_lock(@session_dir) do
|
|
127
|
+
claimed = files.filter_map { |file| SessionInbox.claim_note_file(file) }
|
|
128
|
+
notes = claimed.filter_map { |file| SessionInbox.read_note(file) }
|
|
129
|
+
newest_list = notes.reverse.find { |note| note[:objectives] }
|
|
130
|
+
notes.each do |note|
|
|
131
|
+
@engine.add_context_note(@session, note) if !note[:objectives] || note.equal?(newest_list)
|
|
132
|
+
end
|
|
133
|
+
next unless save(:notes)
|
|
134
|
+
|
|
135
|
+
claimed.each { |file| FileUtils.rm_f(file) }
|
|
125
136
|
end
|
|
126
|
-
return unless save(:notes)
|
|
127
|
-
|
|
128
|
-
claimed.each { |file| FileUtils.rm_f(file) }
|
|
129
137
|
end
|
|
130
138
|
|
|
131
139
|
# The attached context's notes (ContextAbsorber), between turns. Not
|
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.150.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dmitry Dedov
|
|
@@ -163,6 +163,7 @@ files:
|
|
|
163
163
|
- docs/internals/llm-context-bench.md
|
|
164
164
|
- docs/internals/llm-context-forget.md
|
|
165
165
|
- docs/internals/llm-context-live.md
|
|
166
|
+
- docs/internals/objectives.md
|
|
166
167
|
- docs/internals/participants.md
|
|
167
168
|
- docs/internals/prompt-caching.md
|
|
168
169
|
- docs/internals/remote-sessions.md
|
|
@@ -225,6 +226,7 @@ files:
|
|
|
225
226
|
- lib/samagotchi/bundle_command/try/trace.rb
|
|
226
227
|
- lib/samagotchi/bundle_needs.rb
|
|
227
228
|
- lib/samagotchi/bundle_settings_check.rb
|
|
229
|
+
- lib/samagotchi/bundler_env.rb
|
|
228
230
|
- lib/samagotchi/bundles/agents-md/manifest.yml
|
|
229
231
|
- lib/samagotchi/bundles/agents-md/plugin.rb
|
|
230
232
|
- lib/samagotchi/bundles/btw/manifest.yml
|
|
@@ -248,6 +250,8 @@ files:
|
|
|
248
250
|
- lib/samagotchi/bundles/core/manifest.yml
|
|
249
251
|
- lib/samagotchi/bundles/cost-cap/manifest.yml
|
|
250
252
|
- lib/samagotchi/bundles/cost-cap/plugin.rb
|
|
253
|
+
- lib/samagotchi/bundles/decision-card/manifest.yml
|
|
254
|
+
- lib/samagotchi/bundles/decision-card/plugin.rb
|
|
251
255
|
- lib/samagotchi/bundles/dev/manifest.yml
|
|
252
256
|
- lib/samagotchi/bundles/github-pr/manifest.yml
|
|
253
257
|
- lib/samagotchi/bundles/github-pr/plugin.rb
|
|
@@ -356,6 +360,7 @@ files:
|
|
|
356
360
|
- lib/samagotchi/file_ref.rb
|
|
357
361
|
- lib/samagotchi/gem_update.rb
|
|
358
362
|
- lib/samagotchi/generation_phase.rb
|
|
363
|
+
- lib/samagotchi/git_env.rb
|
|
359
364
|
- lib/samagotchi/git_head.rb
|
|
360
365
|
- lib/samagotchi/guardrail_wiring.rb
|
|
361
366
|
- lib/samagotchi/guardrails.rb
|
|
@@ -464,6 +469,7 @@ files:
|
|
|
464
469
|
- lib/samagotchi/memory_bundle/builder.rb
|
|
465
470
|
- lib/samagotchi/memory_bundle/bundle_hook.rb
|
|
466
471
|
- lib/samagotchi/memory_bundle/entry_size.rb
|
|
472
|
+
- lib/samagotchi/memory_bundle/file_standing.rb
|
|
467
473
|
- lib/samagotchi/memory_bundle/index_size.rb
|
|
468
474
|
- lib/samagotchi/memory_bundle/index_sync.rb
|
|
469
475
|
- lib/samagotchi/memory_bundle/index_updater.rb
|
|
@@ -478,11 +484,14 @@ files:
|
|
|
478
484
|
- lib/samagotchi/memory_bundle/plugin_ref.rb
|
|
479
485
|
- lib/samagotchi/memory_bundle/profile.rb
|
|
480
486
|
- lib/samagotchi/memory_bundle/provenance.rb
|
|
487
|
+
- lib/samagotchi/memory_bundle/remerge.rb
|
|
481
488
|
- lib/samagotchi/memory_bundle/shas.rb
|
|
489
|
+
- lib/samagotchi/memory_bundle/shipped_history.rb
|
|
482
490
|
- lib/samagotchi/memory_bundle/shipped_update.rb
|
|
483
491
|
- lib/samagotchi/memory_bundle/source.rb
|
|
484
492
|
- lib/samagotchi/memory_bundle/status.rb
|
|
485
493
|
- lib/samagotchi/memory_bundle/system_bundle.rb
|
|
494
|
+
- lib/samagotchi/memory_bundle/text_merge.rb
|
|
486
495
|
- lib/samagotchi/memory_bundle/trash.rb
|
|
487
496
|
- lib/samagotchi/memory_bundle/uninstaller.rb
|
|
488
497
|
- lib/samagotchi/memory_command.rb
|
|
@@ -505,6 +514,10 @@ files:
|
|
|
505
514
|
- lib/samagotchi/muted_memories.rb
|
|
506
515
|
- lib/samagotchi/note_command.rb
|
|
507
516
|
- lib/samagotchi/note_delivery.rb
|
|
517
|
+
- lib/samagotchi/objectives.rb
|
|
518
|
+
- lib/samagotchi/objectives_audit.rb
|
|
519
|
+
- lib/samagotchi/objectives_check.rb
|
|
520
|
+
- lib/samagotchi/objectives_command.rb
|
|
508
521
|
- lib/samagotchi/output_formatter.rb
|
|
509
522
|
- lib/samagotchi/owner_lock.rb
|
|
510
523
|
- lib/samagotchi/owner_prompt.rb
|
|
@@ -743,6 +756,7 @@ files:
|
|
|
743
756
|
- lib/samagotchi/tools/list_reminders.rb
|
|
744
757
|
- lib/samagotchi/tools/list_sessions.rb
|
|
745
758
|
- lib/samagotchi/tools/memory.rb
|
|
759
|
+
- lib/samagotchi/tools/objectives_tool.rb
|
|
746
760
|
- lib/samagotchi/tools/output_guardrails.rb
|
|
747
761
|
- lib/samagotchi/tools/peers.rb
|
|
748
762
|
- lib/samagotchi/tools/read.rb
|
|
@@ -814,6 +828,7 @@ files:
|
|
|
814
828
|
- lib/samagotchi/web/public/app.js
|
|
815
829
|
- lib/samagotchi/web/public/apple-touch-icon.png
|
|
816
830
|
- lib/samagotchi/web/public/auth_lost.js
|
|
831
|
+
- lib/samagotchi/web/public/block_open.js
|
|
817
832
|
- lib/samagotchi/web/public/bubbles.js
|
|
818
833
|
- lib/samagotchi/web/public/card.js
|
|
819
834
|
- lib/samagotchi/web/public/cards_place.js
|
|
@@ -872,6 +887,12 @@ files:
|
|
|
872
887
|
- lib/samagotchi/web/public/notice_links.js
|
|
873
888
|
- lib/samagotchi/web/public/notifications.js
|
|
874
889
|
- lib/samagotchi/web/public/notify.js
|
|
890
|
+
- lib/samagotchi/web/public/objectives.css
|
|
891
|
+
- lib/samagotchi/web/public/objectives_entry.js
|
|
892
|
+
- lib/samagotchi/web/public/objectives_model.js
|
|
893
|
+
- lib/samagotchi/web/public/objectives_moves.js
|
|
894
|
+
- lib/samagotchi/web/public/objectives_strip.js
|
|
895
|
+
- lib/samagotchi/web/public/objectives_wiring.js
|
|
875
896
|
- lib/samagotchi/web/public/participant.html
|
|
876
897
|
- lib/samagotchi/web/public/participant.js
|
|
877
898
|
- lib/samagotchi/web/public/participant_annotate.js
|