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
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: prompt_objects
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Scott Werner
|
|
@@ -196,73 +196,46 @@ description: A framework where markdown files with LLM-backed behavior act as fi
|
|
|
196
196
|
email:
|
|
197
197
|
- scott@sublayer.com
|
|
198
198
|
executables:
|
|
199
|
+
- poop
|
|
199
200
|
- prompt_objects
|
|
200
201
|
- prompt_objects_mcp
|
|
201
202
|
extensions: []
|
|
202
203
|
extra_rdoc_files: []
|
|
203
204
|
files:
|
|
204
205
|
- CHANGELOG.md
|
|
205
|
-
- CLAUDE.md
|
|
206
|
-
- Gemfile
|
|
207
206
|
- LICENSE
|
|
208
207
|
- README.md
|
|
209
|
-
-
|
|
208
|
+
- exe/poop
|
|
210
209
|
- exe/prompt_objects
|
|
211
210
|
- exe/prompt_objects_mcp
|
|
212
|
-
- frontend/.gitignore
|
|
213
|
-
- frontend/index.html
|
|
214
|
-
- frontend/package-lock.json
|
|
215
|
-
- frontend/package.json
|
|
216
|
-
- frontend/postcss.config.js
|
|
217
|
-
- frontend/src/App.tsx
|
|
218
|
-
- frontend/src/canvas/CanvasView.tsx
|
|
219
|
-
- frontend/src/canvas/ForceLayout.ts
|
|
220
|
-
- frontend/src/canvas/SceneManager.ts
|
|
221
|
-
- frontend/src/canvas/canvasStore.ts
|
|
222
|
-
- frontend/src/canvas/constants.ts
|
|
223
|
-
- frontend/src/canvas/controls/CameraControls.ts
|
|
224
|
-
- frontend/src/canvas/edges/MessageArc.ts
|
|
225
|
-
- frontend/src/canvas/inspector/InspectorPanel.tsx
|
|
226
|
-
- frontend/src/canvas/inspector/POInspector.tsx
|
|
227
|
-
- frontend/src/canvas/inspector/ToolCallInspector.tsx
|
|
228
|
-
- frontend/src/canvas/nodes/PONode.ts
|
|
229
|
-
- frontend/src/canvas/nodes/ToolCallNode.ts
|
|
230
|
-
- frontend/src/canvas/types.ts
|
|
231
|
-
- frontend/src/components/ContextMenu.tsx
|
|
232
|
-
- frontend/src/components/EnvDataPane.tsx
|
|
233
|
-
- frontend/src/components/Inspector.tsx
|
|
234
|
-
- frontend/src/components/MarkdownMessage.tsx
|
|
235
|
-
- frontend/src/components/MethodList.tsx
|
|
236
|
-
- frontend/src/components/ModelSelector.tsx
|
|
237
|
-
- frontend/src/components/NotificationPanel.tsx
|
|
238
|
-
- frontend/src/components/ObjectList.tsx
|
|
239
|
-
- frontend/src/components/PaneSlot.tsx
|
|
240
|
-
- frontend/src/components/SourcePane.tsx
|
|
241
|
-
- frontend/src/components/SystemBar.tsx
|
|
242
|
-
- frontend/src/components/Transcript.tsx
|
|
243
|
-
- frontend/src/components/UsagePanel.tsx
|
|
244
|
-
- frontend/src/components/Workspace.tsx
|
|
245
|
-
- frontend/src/components/index.ts
|
|
246
|
-
- frontend/src/hooks/useResize.ts
|
|
247
|
-
- frontend/src/hooks/useWebSocket.ts
|
|
248
|
-
- frontend/src/index.css
|
|
249
|
-
- frontend/src/main.tsx
|
|
250
|
-
- frontend/src/store/index.ts
|
|
251
|
-
- frontend/src/types/index.ts
|
|
252
|
-
- frontend/tailwind.config.js
|
|
253
|
-
- frontend/tsconfig.json
|
|
254
|
-
- frontend/vite.config.ts
|
|
255
211
|
- lib/prompt_objects.rb
|
|
256
212
|
- lib/prompt_objects/capability.rb
|
|
257
213
|
- lib/prompt_objects/cli.rb
|
|
214
|
+
- lib/prompt_objects/cli/diagnostics_command.rb
|
|
215
|
+
- lib/prompt_objects/cli/env_command.rb
|
|
216
|
+
- lib/prompt_objects/cli/events_command.rb
|
|
217
|
+
- lib/prompt_objects/cli/explore_command.rb
|
|
218
|
+
- lib/prompt_objects/cli/helpers.rb
|
|
219
|
+
- lib/prompt_objects/cli/message_command.rb
|
|
220
|
+
- lib/prompt_objects/cli/repl_command.rb
|
|
221
|
+
- lib/prompt_objects/cli/serve_command.rb
|
|
258
222
|
- lib/prompt_objects/connectors/base.rb
|
|
259
223
|
- lib/prompt_objects/connectors/mcp.rb
|
|
224
|
+
- lib/prompt_objects/domain/records.rb
|
|
260
225
|
- lib/prompt_objects/environment.rb
|
|
261
226
|
- lib/prompt_objects/environment/exporter.rb
|
|
262
227
|
- lib/prompt_objects/environment/git.rb
|
|
263
228
|
- lib/prompt_objects/environment/importer.rb
|
|
264
229
|
- lib/prompt_objects/environment/manager.rb
|
|
265
230
|
- lib/prompt_objects/environment/manifest.rb
|
|
231
|
+
- lib/prompt_objects/execution/blocking_executor.rb
|
|
232
|
+
- lib/prompt_objects/execution/context.rb
|
|
233
|
+
- lib/prompt_objects/execution/contracts.rb
|
|
234
|
+
- lib/prompt_objects/execution/permit_pool.rb
|
|
235
|
+
- lib/prompt_objects/execution/policy.rb
|
|
236
|
+
- lib/prompt_objects/execution/resource_lock_manager.rb
|
|
237
|
+
- lib/prompt_objects/execution/runner.rb
|
|
238
|
+
- lib/prompt_objects/execution/scheduler.rb
|
|
266
239
|
- lib/prompt_objects/human_queue.rb
|
|
267
240
|
- lib/prompt_objects/llm/anthropic_adapter.rb
|
|
268
241
|
- lib/prompt_objects/llm/factory.rb
|
|
@@ -279,45 +252,58 @@ files:
|
|
|
279
252
|
- lib/prompt_objects/mcp/tools/respond_to_request.rb
|
|
280
253
|
- lib/prompt_objects/mcp/tools/send_message.rb
|
|
281
254
|
- lib/prompt_objects/message_bus.rb
|
|
255
|
+
- lib/prompt_objects/operations/diagnostics.rb
|
|
256
|
+
- lib/prompt_objects/operations/retention.rb
|
|
257
|
+
- lib/prompt_objects/operations/run_trace_builder.rb
|
|
282
258
|
- lib/prompt_objects/primitive.rb
|
|
283
259
|
- lib/prompt_objects/primitives/http_get.rb
|
|
284
260
|
- lib/prompt_objects/primitives/list_files.rb
|
|
285
261
|
- lib/prompt_objects/primitives/read_file.rb
|
|
262
|
+
- lib/prompt_objects/primitives/think.rb
|
|
286
263
|
- lib/prompt_objects/primitives/write_file.rb
|
|
287
264
|
- lib/prompt_objects/prompt_object.rb
|
|
288
265
|
- lib/prompt_objects/registry.rb
|
|
266
|
+
- lib/prompt_objects/repositories/artifact_repository.rb
|
|
267
|
+
- lib/prompt_objects/repositories/base_repository.rb
|
|
268
|
+
- lib/prompt_objects/repositories/definition_repository.rb
|
|
269
|
+
- lib/prompt_objects/repositories/env_data_repository.rb
|
|
270
|
+
- lib/prompt_objects/repositories/event_repository.rb
|
|
271
|
+
- lib/prompt_objects/repositories/message_repository.rb
|
|
272
|
+
- lib/prompt_objects/repositories/run_repository.rb
|
|
273
|
+
- lib/prompt_objects/repositories/thread_repository.rb
|
|
274
|
+
- lib/prompt_objects/repositories/tool_execution_repository.rb
|
|
275
|
+
- lib/prompt_objects/repositories/workspace_session_repository.rb
|
|
289
276
|
- lib/prompt_objects/server.rb
|
|
290
277
|
- lib/prompt_objects/server/api/routes.rb
|
|
291
278
|
- lib/prompt_objects/server/app.rb
|
|
292
279
|
- lib/prompt_objects/server/file_watcher.rb
|
|
293
|
-
- lib/prompt_objects/server/public/assets/index-
|
|
294
|
-
- lib/prompt_objects/server/public/assets/index-
|
|
280
|
+
- lib/prompt_objects/server/public/assets/index-BjKlODDD.js
|
|
281
|
+
- lib/prompt_objects/server/public/assets/index-w3fpIb5c.css
|
|
295
282
|
- lib/prompt_objects/server/public/index.html
|
|
296
283
|
- lib/prompt_objects/server/websocket_handler.rb
|
|
284
|
+
- lib/prompt_objects/service.rb
|
|
297
285
|
- lib/prompt_objects/session/store.rb
|
|
298
286
|
- lib/prompt_objects/universal/add_capability.rb
|
|
299
|
-
- lib/prompt_objects/universal/add_primitive.rb
|
|
300
|
-
- lib/prompt_objects/universal/ask_human.rb
|
|
301
287
|
- lib/prompt_objects/universal/create_capability.rb
|
|
302
|
-
- lib/prompt_objects/universal/create_primitive.rb
|
|
303
288
|
- lib/prompt_objects/universal/delete_env_data.rb
|
|
304
289
|
- lib/prompt_objects/universal/delete_primitive.rb
|
|
290
|
+
- lib/prompt_objects/universal/dispatch_po.rb
|
|
305
291
|
- lib/prompt_objects/universal/get_env_data.rb
|
|
292
|
+
- lib/prompt_objects/universal/get_run_status.rb
|
|
293
|
+
- lib/prompt_objects/universal/join_runs.rb
|
|
306
294
|
- lib/prompt_objects/universal/list_capabilities.rb
|
|
307
295
|
- lib/prompt_objects/universal/list_env_data.rb
|
|
308
|
-
- lib/prompt_objects/universal/list_primitives.rb
|
|
309
296
|
- lib/prompt_objects/universal/modify_primitive.rb
|
|
310
297
|
- lib/prompt_objects/universal/modify_prompt.rb
|
|
311
298
|
- lib/prompt_objects/universal/remove_capability.rb
|
|
299
|
+
- lib/prompt_objects/universal/render_artifact.rb
|
|
312
300
|
- lib/prompt_objects/universal/request_primitive.rb
|
|
313
|
-
- lib/prompt_objects/universal/
|
|
314
|
-
- lib/prompt_objects/universal/think.rb
|
|
315
|
-
- lib/prompt_objects/universal/update_env_data.rb
|
|
301
|
+
- lib/prompt_objects/universal/set_env_data.rb
|
|
316
302
|
- lib/prompt_objects/universal/verify_primitive.rb
|
|
303
|
+
- lib/prompt_objects/version.rb
|
|
317
304
|
- objects/coordinator.md
|
|
318
305
|
- objects/greeter.md
|
|
319
306
|
- objects/reader.md
|
|
320
|
-
- prompt_objects.gemspec
|
|
321
307
|
- templates/arc-agi-1/manifest.yml
|
|
322
308
|
- templates/arc-agi-1/objects/data_manager.md
|
|
323
309
|
- templates/arc-agi-1/objects/observer.md
|
|
@@ -331,22 +317,142 @@ files:
|
|
|
331
317
|
- templates/arc-agi-1/primitives/load_arc_task.rb
|
|
332
318
|
- templates/arc-agi-1/primitives/render_grid.rb
|
|
333
319
|
- templates/arc-agi-1/primitives/test_solution.rb
|
|
334
|
-
- templates/
|
|
320
|
+
- templates/arc-agi-3/manifest.yml
|
|
321
|
+
- templates/arc-agi-3/objects/analyst.md
|
|
322
|
+
- templates/arc-agi-3/objects/player.md
|
|
323
|
+
- templates/arc-agi-3/objects/strategist.md
|
|
324
|
+
- templates/arc-agi-3/primitives/action_log.rb
|
|
325
|
+
- templates/arc-agi-3/primitives/arc3_api.rb
|
|
326
|
+
- templates/arc-agi-3/primitives/arc3_scorecard.rb
|
|
327
|
+
- templates/arc-agi-3/primitives/frame_diff.rb
|
|
328
|
+
- templates/arc-agi-3/primitives/frame_info.rb
|
|
329
|
+
- templates/arc-agi-3/primitives/render_frame.rb
|
|
335
330
|
- templates/basic/manifest.yml
|
|
336
331
|
- templates/basic/objects/basic.md
|
|
337
|
-
- templates/
|
|
332
|
+
- templates/chiptune/extras/sonic_pi_boot.rb
|
|
333
|
+
- templates/chiptune/manifest.yml
|
|
334
|
+
- templates/chiptune/objects/conductor.md
|
|
335
|
+
- templates/chiptune/objects/sonic_pi.md
|
|
336
|
+
- templates/chiptune/objects/voice_bass.md
|
|
337
|
+
- templates/chiptune/objects/voice_lead.md
|
|
338
|
+
- templates/chiptune/objects/voice_pad.md
|
|
339
|
+
- templates/chiptune/objects/voice_perc.md
|
|
340
|
+
- templates/chiptune/primitives/play_note.rb
|
|
341
|
+
- templates/chiptune/primitives/play_sequence.rb
|
|
342
|
+
- templates/chiptune/primitives/query_sonic_pi.rb
|
|
343
|
+
- templates/chiptune/primitives/set_synth.rb
|
|
344
|
+
- templates/chiptune/primitives/set_tempo.rb
|
|
345
|
+
- templates/chiptune/primitives/stop_voice.rb
|
|
346
|
+
- templates/chiptune/primitives/support/osc_bridge.rb
|
|
347
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/LICENSE
|
|
348
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby.rb
|
|
349
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/address_pattern.rb
|
|
350
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/broadcast_client.rb
|
|
351
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/bundle.rb
|
|
352
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/client.rb
|
|
353
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/core_ext/time.rb
|
|
354
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/em_server.rb
|
|
355
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/message.rb
|
|
356
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/network_packet.rb
|
|
357
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_argument.rb
|
|
358
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_packet.rb
|
|
359
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_types.rb
|
|
360
|
+
- templates/chiptune/vendor/osc-ruby-1.1.5/lib/osc-ruby/server.rb
|
|
338
361
|
- templates/developer/manifest.yml
|
|
339
362
|
- templates/developer/objects/code_reviewer.md
|
|
340
363
|
- templates/developer/objects/coordinator.md
|
|
341
364
|
- templates/developer/objects/debugger.md
|
|
342
|
-
- templates/empty/.gitignore
|
|
343
365
|
- templates/empty/manifest.yml
|
|
344
|
-
- templates/empty/objects/.gitkeep
|
|
345
366
|
- templates/empty/objects/assistant.md
|
|
346
|
-
- templates/minimal/.gitignore
|
|
347
367
|
- templates/minimal/manifest.yml
|
|
348
368
|
- templates/minimal/objects/assistant.md
|
|
349
|
-
- templates/
|
|
369
|
+
- templates/music-beginner/README.md
|
|
370
|
+
- templates/music-beginner/extras/README.md
|
|
371
|
+
- templates/music-beginner/extras/sonic_pi_boot.rb
|
|
372
|
+
- templates/music-beginner/manifest.yml
|
|
373
|
+
- templates/music-beginner/objects/conductor.md
|
|
374
|
+
- templates/music-beginner/objects/engine_setup.md
|
|
375
|
+
- templates/music-beginner/objects/voice_bass.md
|
|
376
|
+
- templates/music-beginner/objects/voice_keys.md
|
|
377
|
+
- templates/music-beginner/objects/voice_pad.md
|
|
378
|
+
- templates/music-beginner/objects/voice_percussion.md
|
|
379
|
+
- templates/music-beginner/objects/voice_texture.md
|
|
380
|
+
- templates/music-beginner/primitives/play_pattern.rb
|
|
381
|
+
- templates/music-beginner/primitives/query_music_engine.rb
|
|
382
|
+
- templates/music-beginner/primitives/set_instrument.rb
|
|
383
|
+
- templates/music-beginner/primitives/set_tempo.rb
|
|
384
|
+
- templates/music-beginner/primitives/set_voice_level.rb
|
|
385
|
+
- templates/music-beginner/primitives/stop_voice.rb
|
|
386
|
+
- templates/music-beginner/primitives/support/osc_bridge.rb
|
|
387
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/LICENSE
|
|
388
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby.rb
|
|
389
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/address_pattern.rb
|
|
390
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/broadcast_client.rb
|
|
391
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/bundle.rb
|
|
392
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/client.rb
|
|
393
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/core_ext/time.rb
|
|
394
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/em_server.rb
|
|
395
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/message.rb
|
|
396
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/network_packet.rb
|
|
397
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_argument.rb
|
|
398
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_packet.rb
|
|
399
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_types.rb
|
|
400
|
+
- templates/music-beginner/vendor/osc-ruby-1.1.5/lib/osc-ruby/server.rb
|
|
401
|
+
- templates/music-pro/extras/AUDITION.md
|
|
402
|
+
- templates/music-pro/extras/sonic_pi_boot.rb
|
|
403
|
+
- templates/music-pro/manifest.yml
|
|
404
|
+
- templates/music-pro/objects/conductor.md
|
|
405
|
+
- templates/music-pro/objects/sonic_pi.md
|
|
406
|
+
- templates/music-pro/objects/voice_harmony.md
|
|
407
|
+
- templates/music-pro/objects/voice_rhythm.md
|
|
408
|
+
- templates/music-pro/objects/voice_texture.md
|
|
409
|
+
- templates/music-pro/primitives/define_patch.rb
|
|
410
|
+
- templates/music-pro/primitives/query_music_engine.rb
|
|
411
|
+
- templates/music-pro/primitives/set_live_pattern.rb
|
|
412
|
+
- templates/music-pro/primitives/set_tempo.rb
|
|
413
|
+
- templates/music-pro/primitives/stop_voice.rb
|
|
414
|
+
- templates/music-pro/primitives/support/music_protocol.rb
|
|
415
|
+
- templates/music-pro/primitives/support/osc_bridge.rb
|
|
416
|
+
- templates/music-pro/primitives/trigger_event.rb
|
|
417
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/LICENSE
|
|
418
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby.rb
|
|
419
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/address_pattern.rb
|
|
420
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/broadcast_client.rb
|
|
421
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/bundle.rb
|
|
422
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/client.rb
|
|
423
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/core_ext/time.rb
|
|
424
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/em_server.rb
|
|
425
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/message.rb
|
|
426
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/network_packet.rb
|
|
427
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_argument.rb
|
|
428
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_packet.rb
|
|
429
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_types.rb
|
|
430
|
+
- templates/music-pro/vendor/osc-ruby-1.1.5/lib/osc-ruby/server.rb
|
|
431
|
+
- templates/music/extras/sonic_pi_boot.rb
|
|
432
|
+
- templates/music/manifest.yml
|
|
433
|
+
- templates/music/objects/conductor.md
|
|
434
|
+
- templates/music/objects/sonic_pi.md
|
|
435
|
+
- templates/music/primitives/play_note.rb
|
|
436
|
+
- templates/music/primitives/play_sequence.rb
|
|
437
|
+
- templates/music/primitives/query_sonic_pi.rb
|
|
438
|
+
- templates/music/primitives/set_synth.rb
|
|
439
|
+
- templates/music/primitives/set_tempo.rb
|
|
440
|
+
- templates/music/primitives/stop_voice.rb
|
|
441
|
+
- templates/music/primitives/support/osc_bridge.rb
|
|
442
|
+
- templates/music/vendor/osc-ruby-1.1.5/LICENSE
|
|
443
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby.rb
|
|
444
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/address_pattern.rb
|
|
445
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/broadcast_client.rb
|
|
446
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/bundle.rb
|
|
447
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/client.rb
|
|
448
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/core_ext/time.rb
|
|
449
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/em_server.rb
|
|
450
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/message.rb
|
|
451
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/network_packet.rb
|
|
452
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_argument.rb
|
|
453
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_packet.rb
|
|
454
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/osc_types.rb
|
|
455
|
+
- templates/music/vendor/osc-ruby-1.1.5/lib/osc-ruby/server.rb
|
|
350
456
|
- templates/writer/manifest.yml
|
|
351
457
|
- templates/writer/objects/coordinator.md
|
|
352
458
|
- templates/writer/objects/editor.md
|
|
@@ -357,8 +463,9 @@ licenses:
|
|
|
357
463
|
- MIT
|
|
358
464
|
metadata:
|
|
359
465
|
homepage_uri: https://github.com/works-on-your-machine/prompt_objects
|
|
360
|
-
source_code_uri: https://github.com/works-on-your-machine/prompt_objects
|
|
466
|
+
source_code_uri: https://github.com/works-on-your-machine/prompt_objects/tree/v0.7.0
|
|
361
467
|
changelog_uri: https://github.com/works-on-your-machine/prompt_objects/blob/main/CHANGELOG.md
|
|
468
|
+
rubygems_mfa_required: 'true'
|
|
362
469
|
rdoc_options: []
|
|
363
470
|
require_paths:
|
|
364
471
|
- lib
|
|
@@ -373,7 +480,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
373
480
|
- !ruby/object:Gem::Version
|
|
374
481
|
version: '0'
|
|
375
482
|
requirements: []
|
|
376
|
-
rubygems_version: 4.0.
|
|
483
|
+
rubygems_version: 4.0.7
|
|
377
484
|
specification_version: 4
|
|
378
485
|
summary: LLM-backed entities as first-class autonomous objects
|
|
379
486
|
test_files: []
|
data/CLAUDE.md
DELETED
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
# CLAUDE.md
|
|
2
|
-
|
|
3
|
-
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
-
|
|
5
|
-
## Project Overview
|
|
6
|
-
|
|
7
|
-
**PromptObjects** is a Ruby framework where markdown files with LLM-backed behavior act as first-class autonomous entities. The core insight: **everything is a capability**—primitives (Ruby code) and Prompt-Objects (markdown files) share the same interface, differing only in interpretation complexity.
|
|
8
|
-
|
|
9
|
-
**Current Status**: v0.5.0 — The core framework is fully implemented and functional. The original 6-phase implementation plan is complete. Active development is focused on visualization, developer experience, and exploring new primitives. See `CHANGELOG.md` for release history and `docs/archive/` for original design context.
|
|
10
|
-
|
|
11
|
-
## Architecture
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
RUNTIME (Environment)
|
|
15
|
-
├── CAPABILITY REGISTRY
|
|
16
|
-
│ ├── PRIMITIVES (Ruby) - deterministic interpretation
|
|
17
|
-
│ ├── PROMPT-OBJECTS (Markdown) - semantic interpretation via LLM
|
|
18
|
-
│ └── UNIVERSAL CAPABILITIES - available to all POs automatically
|
|
19
|
-
├── MESSAGE BUS - routes messages, logs to SQLite for replay
|
|
20
|
-
├── SESSION STORE (SQLite) - persistent conversation threads, delegation tracking
|
|
21
|
-
├── HUMAN QUEUE - non-blocking ask_human requests
|
|
22
|
-
├── WEB SERVER (Falcon + async-websocket) - serves React frontend
|
|
23
|
-
└── MCP SERVER - exposes POs as tools via Model Context Protocol
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### Unified Capability Interface
|
|
27
|
-
Both primitives and Prompt-Objects implement:
|
|
28
|
-
```ruby
|
|
29
|
-
class Capability
|
|
30
|
-
def name # string identifier
|
|
31
|
-
def description # what this capability does
|
|
32
|
-
def receive(message, context:) # handle message, return response
|
|
33
|
-
end
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Prompt-Object Structure
|
|
37
|
-
Markdown files with two parts:
|
|
38
|
-
- **Frontmatter (YAML)**: Configuration (name, description, capabilities)
|
|
39
|
-
- **Body (Markdown)**: Identity and behavior (becomes LLM system prompt)
|
|
40
|
-
|
|
41
|
-
Example:
|
|
42
|
-
```markdown
|
|
43
|
-
---
|
|
44
|
-
name: reader
|
|
45
|
-
description: Helps people understand files
|
|
46
|
-
capabilities:
|
|
47
|
-
- read_file
|
|
48
|
-
- list_files
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
# Reader
|
|
52
|
-
## Identity
|
|
53
|
-
You are a careful, thoughtful file reader...
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### Universal Capabilities
|
|
57
|
-
Available to all Prompt-Objects automatically (no frontmatter declaration needed):
|
|
58
|
-
- `ask_human` - pause for human input/confirmation
|
|
59
|
-
- `think` - internal reasoning (not shown to human)
|
|
60
|
-
- `create_capability` / `add_capability` / `remove_capability` - self-modification
|
|
61
|
-
- `list_capabilities` / `list_primitives` - introspection
|
|
62
|
-
- `create_primitive` / `add_primitive` / `delete_primitive` / `verify_primitive` / `modify_primitive` / `request_primitive` - primitive management
|
|
63
|
-
- `modify_prompt` - rewrite own system prompt at runtime
|
|
64
|
-
- `store_env_data` / `get_env_data` / `list_env_data` / `update_env_data` / `delete_env_data` - thread-scoped shared key-value store for delegation chains
|
|
65
|
-
|
|
66
|
-
### PO-to-PO Delegation
|
|
67
|
-
When a PO calls another PO, the system creates an isolated delegation thread in the target PO. The caller's context is tracked so messages show correct provenance. Delegation start/complete events are broadcast via WebSocket for real-time UI updates.
|
|
68
|
-
|
|
69
|
-
## Technology Stack
|
|
70
|
-
|
|
71
|
-
- **Ruby** (>= 3.2, tested through Ruby 4) - core implementation
|
|
72
|
-
- **LLM APIs** - OpenAI, Anthropic, Gemini, Ollama, OpenRouter (adapter pattern via `LLM::Factory`)
|
|
73
|
-
- **Falcon** - async HTTP server for REST API and static file serving
|
|
74
|
-
- **async-websocket** - real-time WebSocket communication
|
|
75
|
-
- **React + TypeScript** - web frontend (Smalltalk System Browser-inspired multi-pane UI)
|
|
76
|
-
- **Three.js** - spatial canvas visualization (force-directed PO graph)
|
|
77
|
-
- **SQLite** - session persistence and event log storage
|
|
78
|
-
- **MCP** - Model Context Protocol server mode
|
|
79
|
-
|
|
80
|
-
## File Structure
|
|
81
|
-
|
|
82
|
-
```
|
|
83
|
-
prompt_objects/
|
|
84
|
-
├── exe/prompt_objects # CLI entrypoint
|
|
85
|
-
├── lib/
|
|
86
|
-
│ ├── prompt_objects.rb # Main entry, requires all modules
|
|
87
|
-
│ └── prompt_objects/
|
|
88
|
-
│ ├── environment.rb # Runtime container (registry, bus, LLM, sessions)
|
|
89
|
-
│ ├── capability.rb # Base capability interface
|
|
90
|
-
│ ├── prompt_object.rb # PO implementation (LLM conversation loop)
|
|
91
|
-
│ ├── primitive.rb # Primitive tool wrapper
|
|
92
|
-
│ ├── loader.rb # Parses frontmatter + body from .md files
|
|
93
|
-
│ ├── registry.rb # Capability registration and lookup
|
|
94
|
-
│ ├── message_bus.rb # Message routing, logging, SQLite persistence
|
|
95
|
-
│ ├── human_queue.rb # Non-blocking human interaction queue
|
|
96
|
-
│ ├── cli.rb # CLI command definitions
|
|
97
|
-
│ ├── server.rb # Web server setup
|
|
98
|
-
│ ├── server/
|
|
99
|
-
│ │ ├── app.rb # Sinatra application
|
|
100
|
-
│ │ ├── api/routes.rb # REST API endpoints
|
|
101
|
-
│ │ ├── websocket_handler.rb # WebSocket event handling
|
|
102
|
-
│ │ └── file_watcher.rb # Live .md file change detection
|
|
103
|
-
│ ├── llm/
|
|
104
|
-
│ │ ├── factory.rb # Provider/model selection
|
|
105
|
-
│ │ ├── response.rb # Unified response object
|
|
106
|
-
│ │ ├── pricing.rb # Token cost calculation
|
|
107
|
-
│ │ ├── openai_adapter.rb # OpenAI + Ollama + OpenRouter
|
|
108
|
-
│ │ ├── anthropic_adapter.rb
|
|
109
|
-
│ │ └── gemini_adapter.rb
|
|
110
|
-
│ ├── primitives/ # Built-in: read_file, list_files, write_file, http_get
|
|
111
|
-
│ ├── universal/ # 14 universal capabilities (see list above)
|
|
112
|
-
│ ├── connectors/ # Interface adapters (base, mcp)
|
|
113
|
-
│ ├── mcp/ # MCP server and tool definitions
|
|
114
|
-
│ ├── session/
|
|
115
|
-
│ │ └── store.rb # SQLite session/thread persistence
|
|
116
|
-
│ └── environment/
|
|
117
|
-
│ ├── manager.rb # Create/list/clone environments
|
|
118
|
-
│ ├── manifest.rb # Environment metadata (manifest.yml)
|
|
119
|
-
│ ├── git.rb # Auto-commit integration
|
|
120
|
-
│ ├── exporter.rb # Environment export
|
|
121
|
-
│ └── importer.rb # Environment import
|
|
122
|
-
├── frontend/ # React + TypeScript web UI
|
|
123
|
-
│ └── src/
|
|
124
|
-
│ ├── App.tsx
|
|
125
|
-
│ ├── components/ # SystemBar, ObjectList, Inspector, Workspace, Transcript
|
|
126
|
-
│ ├── canvas/ # Three.js spatial visualization
|
|
127
|
-
│ ├── hooks/ # WebSocket, state management hooks
|
|
128
|
-
│ ├── store/ # Frontend state
|
|
129
|
-
│ └── types/ # TypeScript type definitions
|
|
130
|
-
├── objects/ # Default POs: greeter, reader, coordinator
|
|
131
|
-
├── templates/ # Environment templates (basic, developer, writer, arc-agi-1, etc.)
|
|
132
|
-
├── tools/ # Development tooling
|
|
133
|
-
└── test/ # Unit and integration tests
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## Key Concepts
|
|
137
|
-
|
|
138
|
-
- **Semantic Binding**: Natural language → capability call (visible in message log)
|
|
139
|
-
- **PO↔PO Communication**: Prompt-Objects call each other as capabilities through isolated delegation threads
|
|
140
|
-
- **Self-Modification**: POs can create new POs and primitives at runtime (with human approval)
|
|
141
|
-
- **Human-in-the-Loop**: POs use `ask_human` to pause and queue notifications; human responds asynchronously via the web UI
|
|
142
|
-
- **Environments**: Isolated collections of POs with their own sessions, git history, and configuration. Created from templates via CLI.
|
|
143
|
-
- **Thread Export**: Conversation threads (including delegation chains) exportable as Markdown or JSON
|
|
144
|
-
|
|
145
|
-
## Development
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
# Install dependencies
|
|
149
|
-
bundle install
|
|
150
|
-
cd frontend && npm install && cd ..
|
|
151
|
-
|
|
152
|
-
# Run tests
|
|
153
|
-
bundle exec rake test
|
|
154
|
-
|
|
155
|
-
# Serve an environment with web UI
|
|
156
|
-
prompt_objects serve <env-name> --open
|
|
157
|
-
|
|
158
|
-
# Environment management
|
|
159
|
-
prompt_objects env create <name> --template basic
|
|
160
|
-
prompt_objects env list
|
|
161
|
-
prompt_objects env info <name>
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
## Releases
|
|
165
|
-
|
|
166
|
-
Always tag releases. Pushing a version tag triggers the Discord notification workflow (`.github/workflows/discord-release.yml`), which extracts the matching section from `CHANGELOG.md` and posts it.
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
# 1. Update version in prompt_objects.gemspec
|
|
170
|
-
# 2. Add changelog entry under ## [X.Y.Z] - YYYY-MM-DD
|
|
171
|
-
# 3. Commit: "Release vX.Y.Z — short description"
|
|
172
|
-
# 4. Tag and push:
|
|
173
|
-
git tag vX.Y.Z
|
|
174
|
-
git push && git push origin vX.Y.Z
|
|
175
|
-
# 5. Publish gem:
|
|
176
|
-
gem build prompt_objects.gemspec && gem push prompt_objects-X.Y.Z.gem
|
|
177
|
-
```
|
data/Gemfile
DELETED
data/Rakefile
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "rake/testtask"
|
|
4
|
-
|
|
5
|
-
Rake::TestTask.new(:test) do |t|
|
|
6
|
-
t.libs << "test"
|
|
7
|
-
t.libs << "lib"
|
|
8
|
-
t.test_files = FileList["test/**/*_test.rb"]
|
|
9
|
-
t.warning = false
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
Rake::TestTask.new("test:unit") do |t|
|
|
13
|
-
t.libs << "test"
|
|
14
|
-
t.libs << "lib"
|
|
15
|
-
t.test_files = FileList["test/unit/**/*_test.rb"]
|
|
16
|
-
t.warning = false
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
Rake::TestTask.new("test:integration") do |t|
|
|
20
|
-
t.libs << "test"
|
|
21
|
-
t.libs << "lib"
|
|
22
|
-
t.test_files = FileList["test/integration/**/*_test.rb"]
|
|
23
|
-
t.warning = false
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
desc "Run tests (default)"
|
|
27
|
-
task default: :test
|
data/frontend/.gitignore
DELETED
data/frontend/index.html
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin />
|
|
8
|
-
<link href="https://cdn.jsdelivr.net/fontsource/fonts/geist@latest/latin-400-normal.woff2" as="font" type="font/woff2" crossorigin />
|
|
9
|
-
<link href="https://cdn.jsdelivr.net/npm/geist@1/dist/fonts/geist-sans/style.css" rel="stylesheet" />
|
|
10
|
-
<link href="https://cdn.jsdelivr.net/npm/geist@1/dist/fonts/geist-mono/style.css" rel="stylesheet" />
|
|
11
|
-
<title>PromptObjects</title>
|
|
12
|
-
</head>
|
|
13
|
-
<body class="bg-po-bg text-po-text-primary font-ui">
|
|
14
|
-
<div id="root"></div>
|
|
15
|
-
<script type="module" src="/src/main.tsx"></script>
|
|
16
|
-
</body>
|
|
17
|
-
</html>
|