prompt_objects 0.6.0 → 0.7.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 +126 -0
- data/README.md +93 -22
- data/exe/poop +5 -0
- data/exe/prompt_objects +1 -1108
- data/exe/prompt_objects_mcp +5 -3
- data/lib/prompt_objects/capability.rb +33 -0
- data/lib/prompt_objects/cli/diagnostics_command.rb +69 -0
- data/lib/prompt_objects/cli/env_command.rb +435 -0
- data/lib/prompt_objects/cli/events_command.rb +145 -0
- data/lib/prompt_objects/cli/explore_command.rb +155 -0
- data/lib/prompt_objects/cli/helpers.rb +91 -0
- data/lib/prompt_objects/cli/message_command.rb +216 -0
- data/lib/prompt_objects/cli/repl_command.rb +366 -0
- data/lib/prompt_objects/cli/serve_command.rb +162 -0
- data/lib/prompt_objects/cli.rb +64 -422
- data/lib/prompt_objects/connectors/base.rb +16 -29
- data/lib/prompt_objects/connectors/mcp.rb +82 -98
- data/lib/prompt_objects/domain/records.rb +45 -0
- data/lib/prompt_objects/environment/exporter.rb +5 -4
- data/lib/prompt_objects/environment/git.rb +21 -1
- data/lib/prompt_objects/environment/importer.rb +5 -4
- data/lib/prompt_objects/environment/manager.rb +44 -6
- data/lib/prompt_objects/environment/manifest.rb +26 -4
- data/lib/prompt_objects/environment.rb +1337 -20
- data/lib/prompt_objects/execution/blocking_executor.rb +88 -0
- data/lib/prompt_objects/execution/context.rb +137 -0
- data/lib/prompt_objects/execution/contracts.rb +59 -0
- data/lib/prompt_objects/execution/permit_pool.rb +49 -0
- data/lib/prompt_objects/execution/policy.rb +47 -0
- data/lib/prompt_objects/execution/resource_lock_manager.rb +63 -0
- data/lib/prompt_objects/execution/runner.rb +498 -0
- data/lib/prompt_objects/execution/scheduler.rb +325 -0
- data/lib/prompt_objects/llm/factory.rb +4 -4
- data/lib/prompt_objects/llm/gemini_adapter.rb +25 -8
- data/lib/prompt_objects/llm/openai_adapter.rb +9 -1
- data/lib/prompt_objects/llm/pricing.rb +9 -2
- data/lib/prompt_objects/llm/response.rb +9 -4
- data/lib/prompt_objects/loader.rb +28 -1
- data/lib/prompt_objects/mcp/server.rb +6 -3
- data/lib/prompt_objects/mcp/tools/get_conversation.rb +15 -11
- data/lib/prompt_objects/mcp/tools/get_pending_requests.rb +2 -2
- data/lib/prompt_objects/mcp/tools/respond_to_request.rb +3 -3
- data/lib/prompt_objects/mcp/tools/send_message.rb +42 -32
- data/lib/prompt_objects/operations/diagnostics.rb +115 -0
- data/lib/prompt_objects/operations/retention.rb +75 -0
- data/lib/prompt_objects/operations/run_trace_builder.rb +152 -0
- data/lib/prompt_objects/primitives/http_get.rb +2 -0
- data/lib/prompt_objects/primitives/list_files.rb +2 -0
- data/lib/prompt_objects/primitives/read_file.rb +2 -0
- data/lib/prompt_objects/primitives/think.rb +36 -0
- data/lib/prompt_objects/primitives/write_file.rb +9 -0
- data/lib/prompt_objects/prompt_object.rb +171 -519
- data/lib/prompt_objects/repositories/artifact_repository.rb +109 -0
- data/lib/prompt_objects/repositories/base_repository.rb +37 -0
- data/lib/prompt_objects/repositories/definition_repository.rb +36 -0
- data/lib/prompt_objects/repositories/env_data_repository.rb +103 -0
- data/lib/prompt_objects/repositories/event_repository.rb +105 -0
- data/lib/prompt_objects/repositories/message_repository.rb +73 -0
- data/lib/prompt_objects/repositories/run_repository.rb +254 -0
- data/lib/prompt_objects/repositories/thread_repository.rb +87 -0
- data/lib/prompt_objects/repositories/tool_execution_repository.rb +88 -0
- data/lib/prompt_objects/repositories/workspace_session_repository.rb +61 -0
- data/lib/prompt_objects/server/api/routes.rb +549 -53
- data/lib/prompt_objects/server/app.rb +133 -14
- data/lib/prompt_objects/server/file_watcher.rb +9 -0
- data/lib/prompt_objects/server/public/assets/index-BjKlODDD.js +90 -0
- data/lib/prompt_objects/server/public/assets/index-w3fpIb5c.css +1 -0
- data/lib/prompt_objects/server/public/index.html +2 -2
- data/lib/prompt_objects/server/websocket_handler.rb +202 -227
- data/lib/prompt_objects/server.rb +170 -1
- data/lib/prompt_objects/service.rb +129 -0
- data/lib/prompt_objects/session/store.rb +600 -13
- data/lib/prompt_objects/universal/add_capability.rb +1 -1
- data/lib/prompt_objects/universal/create_capability.rb +4 -2
- data/lib/prompt_objects/universal/delete_env_data.rb +23 -15
- data/lib/prompt_objects/universal/delete_primitive.rb +1 -1
- data/lib/prompt_objects/universal/dispatch_po.rb +54 -0
- data/lib/prompt_objects/universal/get_env_data.rb +8 -14
- data/lib/prompt_objects/universal/get_run_status.rb +30 -0
- data/lib/prompt_objects/universal/join_runs.rb +35 -0
- data/lib/prompt_objects/universal/list_env_data.rb +10 -14
- data/lib/prompt_objects/universal/modify_primitive.rb +1 -1
- data/lib/prompt_objects/universal/render_artifact.rb +91 -0
- data/lib/prompt_objects/universal/request_primitive.rb +1 -1
- data/lib/prompt_objects/universal/{store_env_data.rb → set_env_data.rb} +34 -20
- data/lib/prompt_objects/version.rb +5 -0
- data/lib/prompt_objects.rb +33 -8
- data/objects/coordinator.md +8 -4
- data/templates/arc-agi-1/objects/data_manager.md +2 -2
- data/templates/arc-agi-1/objects/observer.md +2 -2
- data/templates/arc-agi-1/objects/solver.md +6 -5
- data/templates/arc-agi-1/objects/verifier.md +2 -2
- data/templates/arc-agi-3/manifest.yml +19 -0
- data/templates/arc-agi-3/objects/analyst.md +79 -0
- data/templates/arc-agi-3/objects/player.md +76 -0
- data/templates/arc-agi-3/objects/strategist.md +97 -0
- data/templates/arc-agi-3/primitives/action_log.rb +133 -0
- data/templates/arc-agi-3/primitives/arc3_api.rb +223 -0
- data/templates/arc-agi-3/primitives/arc3_scorecard.rb +131 -0
- data/templates/arc-agi-3/primitives/frame_diff.rb +143 -0
- data/templates/arc-agi-3/primitives/frame_info.rb +96 -0
- data/templates/arc-agi-3/primitives/render_frame.rb +140 -0
- data/templates/basic/objects/basic.md +11 -3
- data/templates/chiptune/extras/sonic_pi_boot.rb +220 -0
- data/templates/chiptune/manifest.yml +20 -0
- data/templates/chiptune/objects/conductor.md +184 -0
- data/templates/chiptune/objects/sonic_pi.md +65 -0
- data/templates/chiptune/objects/voice_bass.md +44 -0
- data/templates/chiptune/objects/voice_lead.md +44 -0
- data/templates/chiptune/objects/voice_pad.md +43 -0
- data/templates/chiptune/objects/voice_perc.md +45 -0
- data/templates/chiptune/primitives/play_note.rb +59 -0
- data/templates/chiptune/primitives/play_sequence.rb +55 -0
- data/templates/chiptune/primitives/query_sonic_pi.rb +141 -0
- data/templates/chiptune/primitives/set_synth.rb +57 -0
- data/templates/chiptune/primitives/set_tempo.rb +45 -0
- data/templates/chiptune/primitives/stop_voice.rb +46 -0
- data/templates/chiptune/primitives/support/osc_bridge.rb +33 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/LICENSE +19 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/address_pattern.rb +58 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/broadcast_client.rb +24 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/bundle.rb +46 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/client.rb +13 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/core_ext/time.rb +6 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/em_server.rb +63 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/message.rb +46 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/network_packet.rb +42 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_argument.rb +26 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_packet.rb +140 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_types.rb +53 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/server.rb +91 -0
- data/templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby.rb +18 -0
- data/templates/developer/objects/code_reviewer.md +1 -1
- data/templates/developer/objects/coordinator.md +16 -3
- data/templates/developer/objects/debugger.md +3 -3
- data/templates/empty/objects/assistant.md +10 -5
- data/templates/minimal/objects/assistant.md +10 -5
- data/templates/music/extras/sonic_pi_boot.rb +220 -0
- data/templates/music/manifest.yml +16 -0
- data/templates/music/objects/conductor.md +154 -0
- data/templates/music/objects/sonic_pi.md +65 -0
- data/templates/music/primitives/play_note.rb +55 -0
- data/templates/music/primitives/play_sequence.rb +51 -0
- data/templates/music/primitives/query_sonic_pi.rb +139 -0
- data/templates/music/primitives/set_synth.rb +53 -0
- data/templates/music/primitives/set_tempo.rb +43 -0
- data/templates/music/primitives/stop_voice.rb +44 -0
- data/templates/music/primitives/support/osc_bridge.rb +33 -0
- data/templates/music/vendor/osc-ruby-1.1.5/LICENSE +19 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/address_pattern.rb +58 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/broadcast_client.rb +24 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/bundle.rb +46 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/client.rb +13 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/core_ext/time.rb +6 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/em_server.rb +63 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/message.rb +46 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/network_packet.rb +42 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_argument.rb +26 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_packet.rb +140 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_types.rb +53 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/server.rb +91 -0
- data/templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby.rb +18 -0
- data/templates/music-beginner/README.md +100 -0
- data/templates/music-beginner/extras/README.md +27 -0
- data/templates/music-beginner/extras/sonic_pi_boot.rb +297 -0
- data/templates/music-beginner/manifest.yml +25 -0
- data/templates/music-beginner/objects/conductor.md +222 -0
- data/templates/music-beginner/objects/engine_setup.md +54 -0
- data/templates/music-beginner/objects/voice_bass.md +43 -0
- data/templates/music-beginner/objects/voice_keys.md +48 -0
- data/templates/music-beginner/objects/voice_pad.md +46 -0
- data/templates/music-beginner/objects/voice_percussion.md +45 -0
- data/templates/music-beginner/objects/voice_texture.md +37 -0
- data/templates/music-beginner/primitives/play_pattern.rb +118 -0
- data/templates/music-beginner/primitives/query_music_engine.rb +94 -0
- data/templates/music-beginner/primitives/set_instrument.rb +47 -0
- data/templates/music-beginner/primitives/set_tempo.rb +43 -0
- data/templates/music-beginner/primitives/set_voice_level.rb +46 -0
- data/templates/music-beginner/primitives/stop_voice.rb +37 -0
- data/templates/music-beginner/primitives/support/osc_bridge.rb +25 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/LICENSE +19 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/address_pattern.rb +58 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/broadcast_client.rb +24 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/bundle.rb +46 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/client.rb +13 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/core_ext/time.rb +6 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/em_server.rb +63 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/message.rb +46 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/network_packet.rb +42 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_argument.rb +26 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_packet.rb +140 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_types.rb +53 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/server.rb +91 -0
- data/templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby.rb +18 -0
- data/templates/music-pro/extras/AUDITION.md +100 -0
- data/templates/music-pro/extras/sonic_pi_boot.rb +546 -0
- data/templates/music-pro/manifest.yml +19 -0
- data/templates/music-pro/objects/conductor.md +126 -0
- data/templates/music-pro/objects/sonic_pi.md +35 -0
- data/templates/music-pro/objects/voice_harmony.md +48 -0
- data/templates/music-pro/objects/voice_rhythm.md +43 -0
- data/templates/music-pro/objects/voice_texture.md +42 -0
- data/templates/music-pro/primitives/define_patch.rb +46 -0
- data/templates/music-pro/primitives/query_music_engine.rb +69 -0
- data/templates/music-pro/primitives/set_live_pattern.rb +70 -0
- data/templates/music-pro/primitives/set_tempo.rb +31 -0
- data/templates/music-pro/primitives/stop_voice.rb +31 -0
- data/templates/music-pro/primitives/support/music_protocol.rb +136 -0
- data/templates/music-pro/primitives/support/osc_bridge.rb +33 -0
- data/templates/music-pro/primitives/trigger_event.rb +44 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/LICENSE +19 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/address_pattern.rb +58 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/broadcast_client.rb +24 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/bundle.rb +46 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/client.rb +13 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/core_ext/time.rb +6 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/em_server.rb +63 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/message.rb +46 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/network_packet.rb +42 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_argument.rb +26 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_packet.rb +140 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_types.rb +53 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/server.rb +91 -0
- data/templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby.rb +18 -0
- data/templates/writer/objects/coordinator.md +14 -3
- data/templates/writer/objects/editor.md +1 -1
- data/templates/writer/objects/researcher.md +2 -2
- data/tools/thread-explorer.html +1 -1
- metadata +172 -65
- data/CLAUDE.md +0 -177
- data/Gemfile +0 -10
- data/Rakefile +0 -27
- data/frontend/.gitignore +0 -3
- data/frontend/index.html +0 -17
- data/frontend/package-lock.json +0 -4540
- data/frontend/package.json +0 -36
- data/frontend/postcss.config.js +0 -6
- data/frontend/src/App.tsx +0 -104
- data/frontend/src/canvas/CanvasView.tsx +0 -113
- data/frontend/src/canvas/ForceLayout.ts +0 -115
- data/frontend/src/canvas/SceneManager.ts +0 -587
- data/frontend/src/canvas/canvasStore.ts +0 -47
- data/frontend/src/canvas/constants.ts +0 -95
- data/frontend/src/canvas/controls/CameraControls.ts +0 -98
- data/frontend/src/canvas/edges/MessageArc.ts +0 -149
- data/frontend/src/canvas/inspector/InspectorPanel.tsx +0 -31
- data/frontend/src/canvas/inspector/POInspector.tsx +0 -262
- data/frontend/src/canvas/inspector/ToolCallInspector.tsx +0 -67
- data/frontend/src/canvas/nodes/PONode.ts +0 -249
- data/frontend/src/canvas/nodes/ToolCallNode.ts +0 -116
- data/frontend/src/canvas/types.ts +0 -24
- data/frontend/src/components/ContextMenu.tsx +0 -68
- data/frontend/src/components/EnvDataPane.tsx +0 -69
- data/frontend/src/components/Inspector.tsx +0 -263
- data/frontend/src/components/MarkdownMessage.tsx +0 -155
- data/frontend/src/components/MethodList.tsx +0 -90
- data/frontend/src/components/ModelSelector.tsx +0 -115
- data/frontend/src/components/NotificationPanel.tsx +0 -130
- data/frontend/src/components/ObjectList.tsx +0 -78
- data/frontend/src/components/PaneSlot.tsx +0 -30
- data/frontend/src/components/SourcePane.tsx +0 -202
- data/frontend/src/components/SystemBar.tsx +0 -74
- data/frontend/src/components/Transcript.tsx +0 -76
- data/frontend/src/components/UsagePanel.tsx +0 -105
- data/frontend/src/components/Workspace.tsx +0 -260
- data/frontend/src/components/index.ts +0 -12
- data/frontend/src/hooks/useResize.ts +0 -55
- data/frontend/src/hooks/useWebSocket.ts +0 -559
- data/frontend/src/index.css +0 -102
- data/frontend/src/main.tsx +0 -10
- data/frontend/src/store/index.ts +0 -311
- data/frontend/src/types/index.ts +0 -176
- data/frontend/tailwind.config.js +0 -44
- data/frontend/tsconfig.json +0 -30
- data/frontend/vite.config.ts +0 -29
- data/lib/prompt_objects/server/public/assets/index-DEPawnfZ.js +0 -4345
- data/lib/prompt_objects/server/public/assets/index-oMrRce1m.css +0 -1
- data/lib/prompt_objects/universal/add_primitive.rb +0 -118
- data/lib/prompt_objects/universal/ask_human.rb +0 -109
- data/lib/prompt_objects/universal/create_primitive.rb +0 -174
- data/lib/prompt_objects/universal/list_primitives.rb +0 -145
- data/lib/prompt_objects/universal/think.rb +0 -41
- data/lib/prompt_objects/universal/update_env_data.rb +0 -88
- data/prompt_objects.gemspec +0 -50
- data/templates/basic/.gitignore +0 -2
- data/templates/developer/.gitignore +0 -5
- data/templates/empty/.gitignore +0 -5
- data/templates/empty/objects/.gitkeep +0 -0
- data/templates/minimal/.gitignore +0 -5
- data/templates/writer/.gitignore +0 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1127bb4c18c49c460ceb34d5ee7f86b81b5e00a3210faf100f4eef1fe6ccf19e
|
|
4
|
+
data.tar.gz: 0445d88c6bc2f9f125dad833f744b4c0ac828b7db0d9d7615b923fadaa6d84b1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3756b5d465e82dd5faff921733131dbe03f14e023ab99812f5a75ffdfc201d6151a5dfa2aae32194b4d60261ebdec1d25ffb573011f8ecb2a6254d2783fb4b6d
|
|
7
|
+
data.tar.gz: 9f4b12151c992af3bfa326cb86fa1a3f3cb8d083777e81daa6946924c3561b021a547536f23832ef00f7202352c6368ef69fb1e667247d96867f61ee839fd3bd
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,132 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to PromptObjects are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.7.0] - 2026-07-11
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **Durable concurrent run runtime** — Prompt Objects are reusable definitions;
|
|
12
|
+
mutable execution now belongs to persisted workspace sessions, PO-owned
|
|
13
|
+
threads, runs, messages, tool executions, artifacts, and ordered events.
|
|
14
|
+
Multiple threads and independent POs can execute concurrently with immutable
|
|
15
|
+
definition snapshots, strict per-thread ordering, cancellation, deadlines,
|
|
16
|
+
bounded queues, provider/tool permits, resource locking, recovery, retention,
|
|
17
|
+
diagnostics, and reconnect-safe snapshots.
|
|
18
|
+
- **Parallel composition and delegation** — safe tool batches execute in
|
|
19
|
+
parallel, while `dispatch_po`, `get_run_status`, and `join_runs` support
|
|
20
|
+
non-blocking multi-PO fan-out with attached/detached lifetimes and follow-up
|
|
21
|
+
work. Independent operations overlap; conflicting resource keys serialize.
|
|
22
|
+
- **First-class runtime surfaces** — Image Floor, Semantic Loom, Artifact
|
|
23
|
+
Cockpit, live run activity, multi-thread navigation, autonomous countdowns,
|
|
24
|
+
and the semantic Run Debugger expose the same durable runtime from different
|
|
25
|
+
working angles.
|
|
26
|
+
- **Beginner and pro Sonic Pi templates** — `music-beginner` provides a curated,
|
|
27
|
+
talk-safe ensemble with connected phrases and coordinated movements;
|
|
28
|
+
`music-pro` exposes a live-pattern language, raw patches, transformations,
|
|
29
|
+
duration-aware gating, and open-ended musician identities. Both verify live
|
|
30
|
+
engine state instead of trusting prose claims.
|
|
31
|
+
- **Current-generation model support** — OpenAI GPT-5.6 Luna/Terra/Sol and
|
|
32
|
+
GPT-5.4 Mini/Nano plus Gemini 3.5 Flash and 3.1 Flash Lite are available in
|
|
33
|
+
the model selector. Environment manifests can persist their provider/model;
|
|
34
|
+
`music-beginner` defaults to Gemini 3.5 Flash.
|
|
35
|
+
- **Operational release gates** — content-free diagnostics, bounded event
|
|
36
|
+
retention, migration backups, recovery documentation, deterministic
|
|
37
|
+
concurrency tests, and an end-to-end release rehearsal cover long-running
|
|
38
|
+
environments and live music demos.
|
|
39
|
+
- **The Floor** — a new default home view: a pannable, zoomable canvas where every PO is a draggable *station* showing its live, interactive BURP artifact (or a quiet identity card until it renders one). Active PO→PO delegations draw as animated edges between stations, autonomous POs show a tick indicator, new POs animate onto the floor, and station positions persist per environment. Clicking a station opens a right-hand conversation drawer (shared renderer with the Browser's Workspace: thoughts, delegations, tool calls inline) with a composer. The Smalltalk System Browser remains one click away as the "Browser" view, and the connection indicator now reports reconnect attempts truthfully.
|
|
40
|
+
|
|
41
|
+
- **BURP — Bidirectional UI Rendering Protocol** — Artifacts are now interactive interfaces, not just output. Every artifact (in-app iframe and pop-out window) gets a `PromptObjects.send(message)` function; wiring it to buttons/forms/controls sends a natural-language message back to the PO that rendered the artifact, via `POST /api/artifacts/:key/message` → `inject_message` with provenance `artifact:<title>`. The PO responds by re-rendering the artifact, closing the loop — POs can build the UI the human uses to talk to them. `render_artifact`'s guidance teaches POs the pattern (including that a re-render resets the artifact's local JS state). Messages are validated (shape, length, iframe identity) before injection.
|
|
42
|
+
- **`poop` CLI alias** — the gem now installs a `poop` executable (**P**rompt-**O**bject **O**riented **P**rogramming) alongside `prompt_objects`. Identical behavior, twice the dignity.
|
|
43
|
+
- **POs are taught to build interfaces** — every PO's system prompt now includes an "interactive artifacts" section (artifacts are bidirectional, wire controls to `PromptObjects.send`, re-render on `artifact:<title>` messages, prefer an interface over walls of text for stateful work), and lists `artifact:<title>` / `timer:<name>` among message sources. The bundled templates lean in: both music conductors now render an interactive **Mixing Desk** (tempo nudges, voice mutes, mood switches wired back to the conductor), the developer and writer coordinators keep a **Workbench** / **Drafting Desk**, and the basic/minimal/empty assistants offer to build a panel when work has ongoing state.
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
|
|
47
|
+
- **All entry points use runs** — WebSocket, REST, CLI, MCP, connectors,
|
|
48
|
+
services, timers, and artifact actions now share one durable enqueue and
|
|
49
|
+
execution path. The former mutable Prompt Object receive loop has been
|
|
50
|
+
removed.
|
|
51
|
+
- **Thinking is opt-in** — visible thinking is no longer inherited by every
|
|
52
|
+
Prompt Object; `think` is a standard-library primitive that environments add
|
|
53
|
+
deliberately.
|
|
54
|
+
- **Autonomous scheduling is live-editable** — timers wait for a human
|
|
55
|
+
initialization turn when configured, expose truthful countdown state, use a
|
|
56
|
+
dedicated coalesced thread, and adopt frontmatter message/interval changes
|
|
57
|
+
without a restart.
|
|
58
|
+
- **CLI restructured** — `exe/prompt_objects` was 1,100 lines of inline command logic; it's now a thin shim over `PromptObjects::CLI.run`, with each command (`env`, `serve`, `repl`, `message`, `events`, `explore`) in its own class under `lib/prompt_objects/cli/`. Help/usage text uses the invoked program name, so `poop` introduces itself as `poop`. Added `PromptObjects::VERSION` as the single source of truth (gemspec and REPL header read it). Removed the unused `CLI.parse` and `CLI.list_templates`. No behavior changes to any command.
|
|
59
|
+
- **Environment exports are now `.dump` files** — **D**eclarative **U**nified **M**emory **P**ackages. `env export` writes `<name>.dump` by default; `env import` still accepts legacy `.poenv` bundles (the format is unchanged — a git bundle by any other name).
|
|
60
|
+
|
|
61
|
+
### Fixed
|
|
62
|
+
|
|
63
|
+
- **Provider tool-call compatibility** — Gemini thought signatures survive
|
|
64
|
+
persisted multi-step tool calls, scalar tool results are normalized, and
|
|
65
|
+
GPT-5.6 function calls use the Chat Completions compatibility parameters they
|
|
66
|
+
require.
|
|
67
|
+
- **Thread and surface stability** — a first message selects its newly created
|
|
68
|
+
thread; thinking, transcripts, and artifacts no longer disappear between
|
|
69
|
+
autonomous turns; Cockpit fills the screen; and featured Image Floor cards
|
|
70
|
+
no longer overlap later rows.
|
|
71
|
+
- **Connected music playback** — beginner patterns separate onset step from
|
|
72
|
+
synth gate, while pro patterns derive envelopes from duration. Conductors
|
|
73
|
+
preserve rhythmic/connective anchors and evolve coordinated movements rather
|
|
74
|
+
than producing isolated notes or unrelated rewrites.
|
|
75
|
+
- **Artifact pop-out and BURP buttons 404ing** — Falcon delivers `PATH_INFO` as ASCII-8BIT, and SQLite binds binary strings as BLOBs that never match TEXT columns, so every keyed lookup from a URL path (artifact pop-outs, BURP button posts, session activate/rename) silently missed. Paths are normalized to UTF-8 at the API entry point. Verified live end-to-end: a real PO rendered a counter panel, a posted button click came back as `artifact:<title>`, and the PO re-rendered the panel with the new count.
|
|
76
|
+
- **Messages to a busy PO now queue instead of being lost or interleaving** — POs are single-actor; a message arriving mid-turn (human, artifact click, webhook) lands in a bounded per-PO inbox and is delivered as soon as the current turn finishes, broadcasting `message_queued` so the UI can show it. The composer is no longer locked while a PO is thinking — Enter queues your message.
|
|
77
|
+
- **POs now actually close the BURP loop** — `from_source` provenance is UI metadata the LLM never saw, so POs answered artifact clicks with prose and never updated the panel. Artifact messages are now framed with their interface origin and a re-render nudge, so the PO updates the artifact the human is actually looking at.
|
|
78
|
+
|
|
79
|
+
### Removed
|
|
80
|
+
|
|
81
|
+
- **Three.js spatial canvas** — the `/canvas` view (~2,000 LOC plus the `three` and `d3-force` dependencies) is retired. The Floor does its job natively: live PO stations, status, and animated delegation edges on a pannable DOM surface — with the artifacts interactive instead of decorative.
|
|
82
|
+
- **Inherited `ask_human` and visible-thinking tools** — `ask_human` is no
|
|
83
|
+
longer a universal capability, and thinking must be granted explicitly.
|
|
84
|
+
|
|
85
|
+
### Runtime, environment, and artifact foundations
|
|
86
|
+
|
|
87
|
+
#### Added
|
|
88
|
+
|
|
89
|
+
- **Environment-level workspaces** — Workspace sessions own shared environment
|
|
90
|
+
data and artifacts, while each Prompt Object owns multiple durable human,
|
|
91
|
+
autonomous, and delegation threads. A universal run entry point handles every
|
|
92
|
+
message source, and `POST /api/messages` lets webhooks, cron, and bots enqueue
|
|
93
|
+
work with idempotency keys and explicit workspace/thread targeting.
|
|
94
|
+
- **Autonomous Prompt Objects** — Declare `autonomous: { interval:, message:,
|
|
95
|
+
start_on_boot:, wait_for_human: }` in frontmatter. Timer turns use one durable,
|
|
96
|
+
summary-retained autonomous thread per PO and coalesce while work is pending,
|
|
97
|
+
so a slow model cannot create an unbounded backlog.
|
|
98
|
+
- **Services framework** — A `Service` base class (`start`/`stop`/`tick`/`interval`) loaded from an environment's `services/` directory. Tick loops are async-native (cooperate with Falcon's event loop). Services read/write the shared env_data store scoped to the active session.
|
|
99
|
+
- **Artifact system** — A `render_artifact` universal capability (`replace`/`version` modes) plus an `ArtifactPane` that renders PO-generated HTML/JSX in a sandboxed iframe (React 18 + ReactDOM + Babel + Tailwind via CDN). Resizable, dock toggle (bottom/right), fullscreen, pop-out to a window that live-polls `/artifacts/:key`, and persistence across session reloads.
|
|
100
|
+
- **Music templates + Sonic Pi** — Two templates (`chiptune`, genre-specific; `music`, genre-agnostic) where a conductor PO orchestrates voice POs that play through Sonic Pi over OSC. A warm audio engine (master clock so voices lock in time, FX bus, "sound pack" presets), a shared composition contract (key/scale/tempo/progression/roles), and `query_sonic_pi` / `set_tempo` primitives.
|
|
101
|
+
- **Raw frontmatter editing in the UI** — The Inspector's SourcePane has a Prompt / Raw .md toggle; Raw mode edits the whole file (frontmatter + body) and hot-reloads, so autonomous/`delegates_to`/`tools` can be tuned from the UI.
|
|
102
|
+
- **Session management** — manage environment-level sessions (the shared-context "jams" that scope env_data): `GET/POST /api/sessions` and `POST /api/sessions/:id/{activate,rename,delete}`, plus a SessionSelector in the SystemBar to switch/create/rename/delete.
|
|
103
|
+
- **Connector framework** — load connectors from an environment's `connectors/` directory (like services); they start/stop with the server and route inbound external events to POs via `Connectors::Base#inject` (Discord/Slack/webhook bridges; clients are user-supplied).
|
|
104
|
+
- **Frontend test harness** — vitest + Testing Library scaffold (`npm test`) and a Ruby end-to-end smoke test for the chiptune template.
|
|
105
|
+
- **Optional visible reasoning** — environments may grant the standard-library
|
|
106
|
+
`think` primitive when visible working notes are useful; it is not inherited
|
|
107
|
+
by every Prompt Object.
|
|
108
|
+
- **New frontend views** — Session Timeline (chronological activity feed), Environment Dashboard (overview when no PO is selected), autonomous-PO indicators in the ObjectList, and a PO selector in the message input.
|
|
109
|
+
- **Environment dependencies & vendored gems** — Manifests declare `dependencies.gems`; templates can vendor gems under `vendor/<gem>/lib/` (auto-added to `$LOAD_PATH`).
|
|
110
|
+
- **`POST /api/prompt_objects`** — Create a Prompt-Object via the REST API.
|
|
111
|
+
- **Simplified frontmatter** — `delegates_to:` + `tools:` (kept distinct for the author, merged internally).
|
|
112
|
+
|
|
113
|
+
#### Changed
|
|
114
|
+
|
|
115
|
+
- **env_data scoped to the environment session** — `set_env_data`/`get_env_data`/`list_env_data`/`delete_env_data` (and artifacts) now resolve scope through a single helper that prefers the environment-level session, so every PO and autonomous tick shares one durable store. `set_env_data` replaces the former `store_env_data` + `update_env_data`.
|
|
116
|
+
- **Unified WebSocket path** — `handle_send_message` routes through `inject_message` instead of calling `po.receive()` directly.
|
|
117
|
+
- **Tool-call narration is preserved** — The assistant's prose alongside a tool call is no longer dropped, so turns that narrate-and-act stay visible.
|
|
118
|
+
- **MethodList split** — the Inspector shows a PO's "Delegates To" (other POs) and "Tools" (primitives) as separate sections.
|
|
119
|
+
- **Inline delegation visibility** — PO-to-PO calls render as "→ <po>" with the delegate's reply inline (Workspace + Timeline), and external sources (timer/service/api/webhook) show with a ← indicator.
|
|
120
|
+
- **Artifact pane** — download an artifact as standalone HTML, and browse versions (`mode: "version"`) grouped under one tab.
|
|
121
|
+
|
|
122
|
+
#### Removed (breaking)
|
|
123
|
+
|
|
124
|
+
- **`create_primitive`, `add_primitive`, `list_primitives` universals** — removed as redundant. Use `create_capability(type: "primitive", …)`, `add_capability(target:, capability:)`, and `list_capabilities(type: "primitives")` instead. Prompt objects in environments created from older templates that reference the removed names by prose will have those calls rejected by the capability guard with a hint; update the prompt text (all bundled templates were updated). The remaining primitive lifecycle universals (`delete_primitive`, `modify_primitive`, `verify_primitive`, `request_primitive`) are unchanged.
|
|
125
|
+
|
|
126
|
+
#### Fixed
|
|
127
|
+
|
|
128
|
+
- **Sonic Pi audio quality** — Tempo changes now reach the voice loops (`use_bpm` was thread-local and called in the wrong thread); a master clock keeps voices from drifting; per-note attack removes clicks; lower amps plus a master compressor stop clipping.
|
|
129
|
+
- **No mid-conversation reload on in-app saves** — `create_capability`/`add_capability`/`modify_prompt` and the source editor no longer trigger a FileWatcher reload that swapped the live PO instance mid-turn.
|
|
130
|
+
|
|
5
131
|
## [0.6.0] - 2026-02-17
|
|
6
132
|
|
|
7
133
|
### Added
|
data/README.md
CHANGED
|
@@ -30,6 +30,9 @@ A Ruby framework where:
|
|
|
30
30
|
- **Capabilities** are shared between primitives (Ruby) and Prompt Objects (markdown) -- everything is a capability
|
|
31
31
|
- **Environments** isolate collections of objects with their own memory, git history, and configuration
|
|
32
32
|
- **PO-to-PO delegation** lets objects call each other through isolated threads with full provenance tracking
|
|
33
|
+
- **Autonomous Prompt Objects** can act on their own interval (`autonomous:` frontmatter), thinking and delegating without a human in the loop
|
|
34
|
+
- **Services** run background work alongside the server, and **environment-level sessions** give every object a shared, durable key-value memory (env_data)
|
|
35
|
+
- **Artifacts** let a PO render live HTML/JSX dashboards in the UI; external systems can drive POs over a REST endpoint (`POST /api/messages`)
|
|
33
36
|
|
|
34
37
|
### Prompt Object structure
|
|
35
38
|
|
|
@@ -49,18 +52,60 @@ You are a careful, thoughtful file reader...
|
|
|
49
52
|
|
|
50
53
|
### Web UI
|
|
51
54
|
|
|
52
|
-
The web interface
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
- **
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
55
|
+
The web interface treats the environment as a running image rather than a chat
|
|
56
|
+
application. Its views share the same durable workspaces, threads, runs,
|
|
57
|
+
artifacts, and environment data:
|
|
58
|
+
|
|
59
|
+
- **Floor** -- the default view: freely arranged, resizable PO stations with
|
|
60
|
+
live artifacts, timer state, and delegation edges.
|
|
61
|
+
- **Browser** -- a Smalltalk-style object browser for source, capabilities,
|
|
62
|
+
environment data, multiple threads, chat, live activity, and timelines.
|
|
63
|
+
- **Image Floor** -- a responsive wall of every PO's latest visual interface.
|
|
64
|
+
- **Semantic Loom** -- a factual map of delegation, tools, shared state, and
|
|
65
|
+
outputs around a selected PO.
|
|
66
|
+
- **Artifact Cockpit** -- one live artifact at useful size with its revision,
|
|
67
|
+
owner, provenance, and action traffic.
|
|
68
|
+
- **Run Debugger** -- a durable execution timeline with model context,
|
|
69
|
+
definition snapshots, tool executions, child runs, and state effects.
|
|
70
|
+
|
|
71
|
+
The Transcript remains available across views, and reconnects hydrate
|
|
72
|
+
authoritative snapshots before replaying newer events.
|
|
73
|
+
|
|
74
|
+
### Interactive artifacts (BURP)
|
|
75
|
+
|
|
76
|
+
POs can render HTML/JSX artifacts into a dockable pane (React 18, Tailwind, and Babel are available in a sandboxed iframe). Artifacts are **bidirectional** — the **B**idirectional **U**I **R**endering **P**rotocol injects a `PromptObjects.send(message)` function into every artifact, which delivers a natural-language message back to the PO that rendered it (provenance shows as `artifact:<title>` in the message log). A PO can build a dashboard with buttons and forms, the human clicks instead of typing, and the PO re-renders the artifact in response: generative UI as a second modality of conversation. Works in the in-app pane and popped-out artifact windows.
|
|
77
|
+
|
|
78
|
+
### Durable concurrent runtime
|
|
79
|
+
|
|
80
|
+
Each Prompt Object is a reusable definition; mutable execution belongs to
|
|
81
|
+
durable runs inside PO-owned threads. A single PO can have multiple threads, and
|
|
82
|
+
independent threads, delegations, and safe tool calls can execute concurrently.
|
|
83
|
+
Resource keys serialize conflicting side effects, while bounded worker/provider
|
|
84
|
+
permits, deadlines, cancellation, autonomous coalescing, and event retention
|
|
85
|
+
keep long-running environments controlled. REST, WebSocket, CLI, MCP, services,
|
|
86
|
+
connectors, timers, and artifact actions all enter through the same run path.
|
|
87
|
+
|
|
88
|
+
### Generative music (Sonic Pi)
|
|
89
|
+
|
|
90
|
+
Music environments connect an ensemble of Prompt Objects to
|
|
91
|
+
[Sonic Pi](https://sonic-pi.net/) over OSC. The conductor establishes a shared
|
|
92
|
+
musical contract and coordinates musicians that author and rewrite their own
|
|
93
|
+
synchronized parts.
|
|
94
|
+
|
|
95
|
+
- `music-beginner` is a constrained, talk-safe backing ensemble with curated
|
|
96
|
+
instruments, connected phrases, coordinated movements, and Gemini 3.5 Flash
|
|
97
|
+
as its persisted default model.
|
|
98
|
+
- `music-pro` exposes chords, samples, subdivisions, alternation, transforms,
|
|
99
|
+
raw Sonic Pi parameters, runtime-defined patches, and duration-aware gating
|
|
100
|
+
while preserving an audible connective layer.
|
|
101
|
+
- `music` remains the open-ended dynamic-band template, and `chiptune` remains
|
|
102
|
+
available for its original genre-specific workflow.
|
|
103
|
+
|
|
104
|
+
### Demos
|
|
105
|
+
|
|
106
|
+
| <a href="https://www.loom.com/share/32c17ccd07bf4b6e99f1ff06aab5bee0"><img src="docs/images/intro_walkthrough.png" alt="Intro walkthrough" width="600"></a> | <a href="https://www.loom.com/share/3a04fa73efd8407eae2b122740082268"><img src="docs/images/arc_agi_1_template.png" alt="ARC-AGI-1 template" width="600"></a> |
|
|
107
|
+
|:---:|:---:|
|
|
108
|
+
| **Intro walkthrough**: creating an environment, interacting with POs, and exploring the web UI | **ARC-AGI-1 template**: using the ARC-AGI-1 solver environment with multi-PO delegation |
|
|
64
109
|
|
|
65
110
|
### MCP Server mode
|
|
66
111
|
|
|
@@ -83,15 +128,32 @@ Add to your `claude_desktop_config.json`:
|
|
|
83
128
|
}
|
|
84
129
|
```
|
|
85
130
|
|
|
86
|
-
Exposes tools for sending messages, listing POs, inspecting state, getting conversations, and responding to pending
|
|
131
|
+
Exposes tools for sending messages, listing POs, inspecting state, getting conversations, and responding to pending capability-approval requests.
|
|
132
|
+
Message responses include durable workspace, thread, and run IDs. Pass a
|
|
133
|
+
`client_request_id` when retries are possible; `thread_id` continues a specific
|
|
134
|
+
conversation (`session_id` remains a compatibility alias).
|
|
135
|
+
|
|
136
|
+
External services can enqueue the same runtime through REST:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
curl -X POST http://127.0.0.1:3000/api/messages \
|
|
140
|
+
-H 'Content-Type: application/json' \
|
|
141
|
+
-d '{"target_po":"assistant","content":"Process this event","from_source":"service:webhook","client_request_id":"event-42"}'
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
The response contains `workspace_session_id`, `thread_id`, `run_id`, `status`,
|
|
145
|
+
and the Prompt Object response. Workspace and thread IDs may be omitted to use
|
|
146
|
+
source-appropriate defaults.
|
|
87
147
|
|
|
88
148
|
### Multi-provider LLM support
|
|
89
149
|
|
|
90
|
-
|
|
150
|
+
Choose a provider/model in the UI; the selection is stored in the environment
|
|
151
|
+
manifest and survives restarts. API keys come from the corresponding environment
|
|
152
|
+
variables. Adapters include:
|
|
91
153
|
|
|
92
|
-
- **OpenAI** -- GPT-5.
|
|
154
|
+
- **OpenAI** -- GPT-5.6 Luna, Terra, and Sol; GPT-5.4 Mini/Nano; GPT-5.2; GPT-4.1
|
|
93
155
|
- **Anthropic** -- Claude Haiku 4.5, Claude Sonnet 4.5, Claude Opus 4
|
|
94
|
-
- **Gemini** -- Gemini 3 Flash, Gemini
|
|
156
|
+
- **Gemini** -- Gemini 3.5 Flash, Gemini 3.1 Flash Lite, Gemini 3 Flash, Gemini 2.5 Pro/Flash
|
|
95
157
|
- **Ollama** -- any locally installed model, discovered automatically
|
|
96
158
|
- **OpenRouter** -- access any model through a single API key
|
|
97
159
|
|
|
@@ -104,10 +166,6 @@ prompt_objects explore my-env
|
|
|
104
166
|
prompt_objects explore my-env --session abc123
|
|
105
167
|
```
|
|
106
168
|
|
|
107
|
-
### Note on the TUI
|
|
108
|
-
|
|
109
|
-
A terminal UI (built with Charm libraries) exists in the codebase but is deprioritized. The web UI is the primary interface for day-to-day use.
|
|
110
|
-
|
|
111
169
|
How
|
|
112
170
|
===
|
|
113
171
|
|
|
@@ -127,6 +185,8 @@ prompt_objects env create my-project --template basic
|
|
|
127
185
|
prompt_objects serve my-project --open
|
|
128
186
|
```
|
|
129
187
|
|
|
188
|
+
The gem also installs `poop` (**P**rompt-**O**bject **O**riented **P**rogramming) as an alias for the `prompt_objects` command. Every example below works with either.
|
|
189
|
+
|
|
130
190
|
### Commands
|
|
131
191
|
|
|
132
192
|
```
|
|
@@ -134,6 +194,7 @@ prompt_objects serve <env> Start web server (default)
|
|
|
134
194
|
prompt_objects serve <env> --open Start and open browser
|
|
135
195
|
prompt_objects serve <env> --mcp Start as MCP server
|
|
136
196
|
prompt_objects serve <env> --port 4000 Custom port (default: 3000)
|
|
197
|
+
prompt_objects --version Print the installed version
|
|
137
198
|
|
|
138
199
|
prompt_objects repl [name] [objects_dir] Interactive REPL with a prompt object
|
|
139
200
|
prompt_objects repl --sandbox REPL in sandbox mode (isolates changes)
|
|
@@ -145,6 +206,7 @@ prompt_objects message <env> <po> "text" --events Include event log
|
|
|
145
206
|
prompt_objects events <env> Show recent message bus events
|
|
146
207
|
prompt_objects events <env> --session ID Events for a specific session
|
|
147
208
|
prompt_objects events <env> --json JSON output
|
|
209
|
+
prompt_objects diagnostics <env> --json Content-free runtime health
|
|
148
210
|
|
|
149
211
|
prompt_objects explore [env] Open Thread Explorer in browser
|
|
150
212
|
prompt_objects explore <env> --session ID Visualize a specific thread
|
|
@@ -158,14 +220,18 @@ prompt_objects env create <name> Create new environment
|
|
|
158
220
|
prompt_objects env create <name> -t <tmpl> Create from template
|
|
159
221
|
prompt_objects env info <name> Show environment details
|
|
160
222
|
prompt_objects env clone <src> <dst> Clone an environment
|
|
161
|
-
prompt_objects env export <name> Export as .
|
|
162
|
-
prompt_objects env import <file.
|
|
223
|
+
prompt_objects env export <name> Export as .dump bundle
|
|
224
|
+
prompt_objects env import <file.dump> Import from bundle (.poenv still works)
|
|
163
225
|
prompt_objects env archive <name> Soft-delete (archive)
|
|
164
226
|
prompt_objects env restore <name> Restore archived environment
|
|
165
227
|
prompt_objects env delete <name> --permanent Permanently delete archived env
|
|
166
228
|
prompt_objects env default <name> Set the default environment
|
|
167
229
|
```
|
|
168
230
|
|
|
231
|
+
Exports are **D**eclarative **U**nified **M**emory **P**ackages — a `.dump` file is a git bundle of the environment's complete state and history.
|
|
232
|
+
|
|
233
|
+
Operational guidance: [runtime diagnostics and recovery](https://github.com/works-on-your-machine/prompt_objects/blob/main/docs/operations/runtime-recovery.md) and the [release rehearsal checklist](https://github.com/works-on-your-machine/prompt_objects/blob/main/docs/operations/release-rehearsal.md).
|
|
234
|
+
|
|
169
235
|
### Templates
|
|
170
236
|
|
|
171
237
|
Create an environment from a template with `prompt_objects env create <name> --template <template>`:
|
|
@@ -178,6 +244,11 @@ Create an environment from a template with `prompt_objects env create <name> --t
|
|
|
178
244
|
| `writer` | Editor, researcher for content creation |
|
|
179
245
|
| `empty` | Start from scratch with just a bootstrap assistant |
|
|
180
246
|
| `arc-agi-1` | ARC-AGI-1 challenge solver with grid primitives |
|
|
247
|
+
| `arc-agi-3` | ARC-AGI-3 agent with player, analyst, and strategist POs |
|
|
248
|
+
| `chiptune` | Collaborative chiptune band — conductor + voice POs driving Sonic Pi |
|
|
249
|
+
| `music` | Genre-agnostic band — the conductor builds voices for any style on the fly |
|
|
250
|
+
| `music-beginner` | Talk-safe generative backing ensemble with curated Sonic Pi instruments |
|
|
251
|
+
| `music-pro` | Expressive live-pattern ensemble with independent voice POs and raw Sonic Pi patches |
|
|
181
252
|
|
|
182
253
|
Extras
|
|
183
254
|
======
|