prompt_objects 0.1.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 +7 -0
- data/CLAUDE.md +108 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +231 -0
- data/IMPLEMENTATION_PLAN.md +1073 -0
- data/LICENSE +21 -0
- data/README.md +73 -0
- data/Rakefile +27 -0
- data/design-doc-v2.md +1232 -0
- data/exe/prompt_objects +572 -0
- data/exe/prompt_objects_mcp +34 -0
- data/frontend/.gitignore +3 -0
- data/frontend/index.html +13 -0
- data/frontend/package-lock.json +4417 -0
- data/frontend/package.json +32 -0
- data/frontend/postcss.config.js +6 -0
- data/frontend/src/App.tsx +95 -0
- data/frontend/src/components/CapabilitiesPanel.tsx +44 -0
- data/frontend/src/components/ChatPanel.tsx +251 -0
- data/frontend/src/components/Dashboard.tsx +83 -0
- data/frontend/src/components/Header.tsx +141 -0
- data/frontend/src/components/MarkdownMessage.tsx +153 -0
- data/frontend/src/components/MessageBus.tsx +55 -0
- data/frontend/src/components/ModelSelector.tsx +112 -0
- data/frontend/src/components/NotificationPanel.tsx +134 -0
- data/frontend/src/components/POCard.tsx +56 -0
- data/frontend/src/components/PODetail.tsx +117 -0
- data/frontend/src/components/PromptPanel.tsx +51 -0
- data/frontend/src/components/SessionsPanel.tsx +174 -0
- data/frontend/src/components/ThreadsSidebar.tsx +119 -0
- data/frontend/src/components/index.ts +11 -0
- data/frontend/src/hooks/useWebSocket.ts +363 -0
- data/frontend/src/index.css +37 -0
- data/frontend/src/main.tsx +10 -0
- data/frontend/src/store/index.ts +246 -0
- data/frontend/src/types/index.ts +146 -0
- data/frontend/tailwind.config.js +25 -0
- data/frontend/tsconfig.json +30 -0
- data/frontend/vite.config.ts +29 -0
- data/lib/prompt_objects/capability.rb +46 -0
- data/lib/prompt_objects/cli.rb +431 -0
- data/lib/prompt_objects/connectors/base.rb +73 -0
- data/lib/prompt_objects/connectors/mcp.rb +524 -0
- data/lib/prompt_objects/environment/exporter.rb +83 -0
- data/lib/prompt_objects/environment/git.rb +118 -0
- data/lib/prompt_objects/environment/importer.rb +159 -0
- data/lib/prompt_objects/environment/manager.rb +401 -0
- data/lib/prompt_objects/environment/manifest.rb +218 -0
- data/lib/prompt_objects/environment.rb +283 -0
- data/lib/prompt_objects/human_queue.rb +144 -0
- data/lib/prompt_objects/llm/anthropic_adapter.rb +137 -0
- data/lib/prompt_objects/llm/factory.rb +84 -0
- data/lib/prompt_objects/llm/gemini_adapter.rb +209 -0
- data/lib/prompt_objects/llm/openai_adapter.rb +104 -0
- data/lib/prompt_objects/llm/response.rb +61 -0
- data/lib/prompt_objects/loader.rb +32 -0
- data/lib/prompt_objects/mcp/server.rb +167 -0
- data/lib/prompt_objects/mcp/tools/get_conversation.rb +60 -0
- data/lib/prompt_objects/mcp/tools/get_pending_requests.rb +54 -0
- data/lib/prompt_objects/mcp/tools/inspect_po.rb +73 -0
- data/lib/prompt_objects/mcp/tools/list_prompt_objects.rb +37 -0
- data/lib/prompt_objects/mcp/tools/respond_to_request.rb +68 -0
- data/lib/prompt_objects/mcp/tools/send_message.rb +71 -0
- data/lib/prompt_objects/message_bus.rb +97 -0
- data/lib/prompt_objects/primitive.rb +13 -0
- data/lib/prompt_objects/primitives/http_get.rb +72 -0
- data/lib/prompt_objects/primitives/list_files.rb +95 -0
- data/lib/prompt_objects/primitives/read_file.rb +81 -0
- data/lib/prompt_objects/primitives/write_file.rb +73 -0
- data/lib/prompt_objects/prompt_object.rb +415 -0
- data/lib/prompt_objects/registry.rb +88 -0
- data/lib/prompt_objects/server/api/routes.rb +297 -0
- data/lib/prompt_objects/server/app.rb +174 -0
- data/lib/prompt_objects/server/file_watcher.rb +113 -0
- data/lib/prompt_objects/server/public/assets/index-2acS2FYZ.js +77 -0
- data/lib/prompt_objects/server/public/assets/index-DXU5uRXQ.css +1 -0
- data/lib/prompt_objects/server/public/index.html +14 -0
- data/lib/prompt_objects/server/websocket_handler.rb +619 -0
- data/lib/prompt_objects/server.rb +166 -0
- data/lib/prompt_objects/session/store.rb +826 -0
- data/lib/prompt_objects/universal/add_capability.rb +74 -0
- data/lib/prompt_objects/universal/add_primitive.rb +113 -0
- data/lib/prompt_objects/universal/ask_human.rb +109 -0
- data/lib/prompt_objects/universal/create_capability.rb +219 -0
- data/lib/prompt_objects/universal/create_primitive.rb +170 -0
- data/lib/prompt_objects/universal/list_capabilities.rb +55 -0
- data/lib/prompt_objects/universal/list_primitives.rb +145 -0
- data/lib/prompt_objects/universal/modify_primitive.rb +180 -0
- data/lib/prompt_objects/universal/request_primitive.rb +287 -0
- data/lib/prompt_objects/universal/think.rb +41 -0
- data/lib/prompt_objects/universal/verify_primitive.rb +173 -0
- data/lib/prompt_objects.rb +62 -0
- data/objects/coordinator.md +48 -0
- data/objects/greeter.md +30 -0
- data/objects/reader.md +33 -0
- data/prompt_objects.gemspec +50 -0
- data/templates/basic/.gitignore +2 -0
- data/templates/basic/manifest.yml +7 -0
- data/templates/basic/objects/basic.md +32 -0
- data/templates/developer/.gitignore +5 -0
- data/templates/developer/manifest.yml +17 -0
- data/templates/developer/objects/code_reviewer.md +33 -0
- data/templates/developer/objects/coordinator.md +39 -0
- data/templates/developer/objects/debugger.md +35 -0
- data/templates/empty/.gitignore +5 -0
- data/templates/empty/manifest.yml +14 -0
- data/templates/empty/objects/.gitkeep +0 -0
- data/templates/empty/objects/assistant.md +41 -0
- data/templates/minimal/.gitignore +5 -0
- data/templates/minimal/manifest.yml +7 -0
- data/templates/minimal/objects/assistant.md +41 -0
- data/templates/writer/.gitignore +5 -0
- data/templates/writer/manifest.yml +17 -0
- data/templates/writer/objects/coordinator.md +33 -0
- data/templates/writer/objects/editor.md +33 -0
- data/templates/writer/objects/researcher.md +34 -0
- metadata +343 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: assistant
|
|
3
|
+
description: A helpful assistant that can read files and create specialists
|
|
4
|
+
capabilities:
|
|
5
|
+
- list_files
|
|
6
|
+
- read_file
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Assistant
|
|
10
|
+
|
|
11
|
+
## Identity
|
|
12
|
+
|
|
13
|
+
You are a helpful assistant. You're friendly, concise, and focused on being genuinely useful. You can read files and create new specialists when needed.
|
|
14
|
+
|
|
15
|
+
## Behavior
|
|
16
|
+
|
|
17
|
+
When someone asks for help:
|
|
18
|
+
- Understand what they need
|
|
19
|
+
- Provide clear, actionable answers
|
|
20
|
+
- Ask clarifying questions when needed using ask_human
|
|
21
|
+
|
|
22
|
+
When someone needs to work with files:
|
|
23
|
+
- Use list_files to see what's available
|
|
24
|
+
- Use read_file to examine file contents
|
|
25
|
+
|
|
26
|
+
When you don't know something:
|
|
27
|
+
- Use think to reason through the problem
|
|
28
|
+
- Be honest about your limitations
|
|
29
|
+
|
|
30
|
+
When a task needs a specialist you don't have:
|
|
31
|
+
- Use ask_human to confirm creating a new specialist
|
|
32
|
+
- Use create_capability to build a new prompt object for the task
|
|
33
|
+
- The new specialist will then be available for future use
|
|
34
|
+
|
|
35
|
+
When you're unsure what approach to take:
|
|
36
|
+
- Use think to reason through options
|
|
37
|
+
- Use ask_human to clarify with the user
|
|
38
|
+
|
|
39
|
+
## Notes
|
|
40
|
+
|
|
41
|
+
You're a starting point. As you learn what your user needs, you can create specialists to help with specific domains. Always ask before creating new capabilities.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: writer
|
|
2
|
+
description: A writing-focused environment with editing and research specialists
|
|
3
|
+
icon: "✍️"
|
|
4
|
+
color: "#8B5CF6"
|
|
5
|
+
|
|
6
|
+
# Objects included in this template
|
|
7
|
+
objects:
|
|
8
|
+
- coordinator
|
|
9
|
+
- editor
|
|
10
|
+
- researcher
|
|
11
|
+
|
|
12
|
+
# Suggested stdlib objects to add
|
|
13
|
+
suggestions:
|
|
14
|
+
- reader
|
|
15
|
+
|
|
16
|
+
# Default PO to open
|
|
17
|
+
default_po: coordinator
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: coordinator
|
|
3
|
+
description: Coordinates between writing specialists for content creation
|
|
4
|
+
capabilities:
|
|
5
|
+
- editor
|
|
6
|
+
- researcher
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Coordinator
|
|
10
|
+
|
|
11
|
+
## Identity
|
|
12
|
+
|
|
13
|
+
You are a writing coordinator. You help people create better content by connecting them with the right specialist.
|
|
14
|
+
|
|
15
|
+
## Behavior
|
|
16
|
+
|
|
17
|
+
When someone needs help with writing:
|
|
18
|
+
- Understand what they're trying to create
|
|
19
|
+
- Delegate to the right specialist
|
|
20
|
+
|
|
21
|
+
For editing, feedback, and polish:
|
|
22
|
+
- Delegate to editor
|
|
23
|
+
|
|
24
|
+
For fact-checking and research:
|
|
25
|
+
- Delegate to researcher
|
|
26
|
+
|
|
27
|
+
When you need a new kind of specialist:
|
|
28
|
+
- Use ask_human to confirm
|
|
29
|
+
- Use create_capability to build it
|
|
30
|
+
|
|
31
|
+
## Notes
|
|
32
|
+
|
|
33
|
+
Your role is to understand the goal and coordinate. Let specialists do the detailed work.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: editor
|
|
3
|
+
description: Provides writing feedback and helps polish prose
|
|
4
|
+
capabilities: []
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Editor
|
|
8
|
+
|
|
9
|
+
## Identity
|
|
10
|
+
|
|
11
|
+
You are a skilled editor. You improve writing while preserving the author's voice.
|
|
12
|
+
|
|
13
|
+
## Behavior
|
|
14
|
+
|
|
15
|
+
When editing:
|
|
16
|
+
- Read for understanding first
|
|
17
|
+
- Focus on clarity and flow
|
|
18
|
+
- Preserve the author's style and intent
|
|
19
|
+
- Suggest, don't dictate
|
|
20
|
+
|
|
21
|
+
When giving feedback:
|
|
22
|
+
- Be specific about what works and what doesn't
|
|
23
|
+
- Explain why something isn't working
|
|
24
|
+
- Offer concrete alternatives
|
|
25
|
+
|
|
26
|
+
When asked to rewrite:
|
|
27
|
+
- Make the minimum changes needed
|
|
28
|
+
- Keep the original voice
|
|
29
|
+
- Explain what you changed and why
|
|
30
|
+
|
|
31
|
+
## Notes
|
|
32
|
+
|
|
33
|
+
Good editing is invisible. The goal is to make the author's work shine, not to impose your preferences.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: researcher
|
|
3
|
+
description: Researches topics and verifies facts for writing projects
|
|
4
|
+
capabilities:
|
|
5
|
+
- http_get
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Researcher
|
|
9
|
+
|
|
10
|
+
## Identity
|
|
11
|
+
|
|
12
|
+
You are a thorough researcher. You find information, verify facts, and synthesize findings clearly.
|
|
13
|
+
|
|
14
|
+
## Behavior
|
|
15
|
+
|
|
16
|
+
When researching a topic:
|
|
17
|
+
- Start with what you know
|
|
18
|
+
- Identify what needs verification
|
|
19
|
+
- Use http_get to find authoritative sources
|
|
20
|
+
- Synthesize findings into clear summaries
|
|
21
|
+
|
|
22
|
+
When fact-checking:
|
|
23
|
+
- Be explicit about what you can and cannot verify
|
|
24
|
+
- Note confidence levels
|
|
25
|
+
- Cite sources when possible
|
|
26
|
+
|
|
27
|
+
When you can't find something:
|
|
28
|
+
- Say so clearly
|
|
29
|
+
- Suggest alternative approaches
|
|
30
|
+
- Use ask_human if the user might have sources
|
|
31
|
+
|
|
32
|
+
## Notes
|
|
33
|
+
|
|
34
|
+
Accuracy matters. It's better to say "I couldn't verify this" than to guess.
|
metadata
ADDED
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: prompt_objects
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Scott Werner
|
|
8
|
+
bindir: exe
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: ruby-openai
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '7.0'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '7.0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: anthropic
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '1.0'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '1.0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: front_matter_parser
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '1.0'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '1.0'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: sqlite3
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '2.0'
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '2.0'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: falcon
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '0.50'
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0.50'
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: async-websocket
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - "~>"
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0.28'
|
|
89
|
+
type: :runtime
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - "~>"
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '0.28'
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: rack
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - "~>"
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '3.0'
|
|
103
|
+
type: :runtime
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - "~>"
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '3.0'
|
|
110
|
+
- !ruby/object:Gem::Dependency
|
|
111
|
+
name: listen
|
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - "~>"
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: '3.9'
|
|
117
|
+
type: :runtime
|
|
118
|
+
prerelease: false
|
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - "~>"
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: '3.9'
|
|
124
|
+
- !ruby/object:Gem::Dependency
|
|
125
|
+
name: mcp
|
|
126
|
+
requirement: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - "~>"
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: '0.4'
|
|
131
|
+
type: :runtime
|
|
132
|
+
prerelease: false
|
|
133
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
134
|
+
requirements:
|
|
135
|
+
- - "~>"
|
|
136
|
+
- !ruby/object:Gem::Version
|
|
137
|
+
version: '0.4'
|
|
138
|
+
- !ruby/object:Gem::Dependency
|
|
139
|
+
name: rake
|
|
140
|
+
requirement: !ruby/object:Gem::Requirement
|
|
141
|
+
requirements:
|
|
142
|
+
- - "~>"
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
version: '13.0'
|
|
145
|
+
type: :development
|
|
146
|
+
prerelease: false
|
|
147
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - "~>"
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '13.0'
|
|
152
|
+
- !ruby/object:Gem::Dependency
|
|
153
|
+
name: minitest
|
|
154
|
+
requirement: !ruby/object:Gem::Requirement
|
|
155
|
+
requirements:
|
|
156
|
+
- - "~>"
|
|
157
|
+
- !ruby/object:Gem::Version
|
|
158
|
+
version: '5.0'
|
|
159
|
+
type: :development
|
|
160
|
+
prerelease: false
|
|
161
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
162
|
+
requirements:
|
|
163
|
+
- - "~>"
|
|
164
|
+
- !ruby/object:Gem::Version
|
|
165
|
+
version: '5.0'
|
|
166
|
+
- !ruby/object:Gem::Dependency
|
|
167
|
+
name: rubocop
|
|
168
|
+
requirement: !ruby/object:Gem::Requirement
|
|
169
|
+
requirements:
|
|
170
|
+
- - "~>"
|
|
171
|
+
- !ruby/object:Gem::Version
|
|
172
|
+
version: '1.50'
|
|
173
|
+
type: :development
|
|
174
|
+
prerelease: false
|
|
175
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
176
|
+
requirements:
|
|
177
|
+
- - "~>"
|
|
178
|
+
- !ruby/object:Gem::Version
|
|
179
|
+
version: '1.50'
|
|
180
|
+
- !ruby/object:Gem::Dependency
|
|
181
|
+
name: debug
|
|
182
|
+
requirement: !ruby/object:Gem::Requirement
|
|
183
|
+
requirements:
|
|
184
|
+
- - "~>"
|
|
185
|
+
- !ruby/object:Gem::Version
|
|
186
|
+
version: '1.0'
|
|
187
|
+
type: :development
|
|
188
|
+
prerelease: false
|
|
189
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
190
|
+
requirements:
|
|
191
|
+
- - "~>"
|
|
192
|
+
- !ruby/object:Gem::Version
|
|
193
|
+
version: '1.0'
|
|
194
|
+
description: A framework where markdown files with LLM-backed behavior act as first-class
|
|
195
|
+
autonomous entities. Features inter-object communication and environment management.
|
|
196
|
+
email:
|
|
197
|
+
- scott@sublayer.com
|
|
198
|
+
executables:
|
|
199
|
+
- prompt_objects
|
|
200
|
+
- prompt_objects_mcp
|
|
201
|
+
extensions: []
|
|
202
|
+
extra_rdoc_files: []
|
|
203
|
+
files:
|
|
204
|
+
- CLAUDE.md
|
|
205
|
+
- Gemfile
|
|
206
|
+
- Gemfile.lock
|
|
207
|
+
- IMPLEMENTATION_PLAN.md
|
|
208
|
+
- LICENSE
|
|
209
|
+
- README.md
|
|
210
|
+
- Rakefile
|
|
211
|
+
- design-doc-v2.md
|
|
212
|
+
- exe/prompt_objects
|
|
213
|
+
- exe/prompt_objects_mcp
|
|
214
|
+
- frontend/.gitignore
|
|
215
|
+
- frontend/index.html
|
|
216
|
+
- frontend/package-lock.json
|
|
217
|
+
- frontend/package.json
|
|
218
|
+
- frontend/postcss.config.js
|
|
219
|
+
- frontend/src/App.tsx
|
|
220
|
+
- frontend/src/components/CapabilitiesPanel.tsx
|
|
221
|
+
- frontend/src/components/ChatPanel.tsx
|
|
222
|
+
- frontend/src/components/Dashboard.tsx
|
|
223
|
+
- frontend/src/components/Header.tsx
|
|
224
|
+
- frontend/src/components/MarkdownMessage.tsx
|
|
225
|
+
- frontend/src/components/MessageBus.tsx
|
|
226
|
+
- frontend/src/components/ModelSelector.tsx
|
|
227
|
+
- frontend/src/components/NotificationPanel.tsx
|
|
228
|
+
- frontend/src/components/POCard.tsx
|
|
229
|
+
- frontend/src/components/PODetail.tsx
|
|
230
|
+
- frontend/src/components/PromptPanel.tsx
|
|
231
|
+
- frontend/src/components/SessionsPanel.tsx
|
|
232
|
+
- frontend/src/components/ThreadsSidebar.tsx
|
|
233
|
+
- frontend/src/components/index.ts
|
|
234
|
+
- frontend/src/hooks/useWebSocket.ts
|
|
235
|
+
- frontend/src/index.css
|
|
236
|
+
- frontend/src/main.tsx
|
|
237
|
+
- frontend/src/store/index.ts
|
|
238
|
+
- frontend/src/types/index.ts
|
|
239
|
+
- frontend/tailwind.config.js
|
|
240
|
+
- frontend/tsconfig.json
|
|
241
|
+
- frontend/vite.config.ts
|
|
242
|
+
- lib/prompt_objects.rb
|
|
243
|
+
- lib/prompt_objects/capability.rb
|
|
244
|
+
- lib/prompt_objects/cli.rb
|
|
245
|
+
- lib/prompt_objects/connectors/base.rb
|
|
246
|
+
- lib/prompt_objects/connectors/mcp.rb
|
|
247
|
+
- lib/prompt_objects/environment.rb
|
|
248
|
+
- lib/prompt_objects/environment/exporter.rb
|
|
249
|
+
- lib/prompt_objects/environment/git.rb
|
|
250
|
+
- lib/prompt_objects/environment/importer.rb
|
|
251
|
+
- lib/prompt_objects/environment/manager.rb
|
|
252
|
+
- lib/prompt_objects/environment/manifest.rb
|
|
253
|
+
- lib/prompt_objects/human_queue.rb
|
|
254
|
+
- lib/prompt_objects/llm/anthropic_adapter.rb
|
|
255
|
+
- lib/prompt_objects/llm/factory.rb
|
|
256
|
+
- lib/prompt_objects/llm/gemini_adapter.rb
|
|
257
|
+
- lib/prompt_objects/llm/openai_adapter.rb
|
|
258
|
+
- lib/prompt_objects/llm/response.rb
|
|
259
|
+
- lib/prompt_objects/loader.rb
|
|
260
|
+
- lib/prompt_objects/mcp/server.rb
|
|
261
|
+
- lib/prompt_objects/mcp/tools/get_conversation.rb
|
|
262
|
+
- lib/prompt_objects/mcp/tools/get_pending_requests.rb
|
|
263
|
+
- lib/prompt_objects/mcp/tools/inspect_po.rb
|
|
264
|
+
- lib/prompt_objects/mcp/tools/list_prompt_objects.rb
|
|
265
|
+
- lib/prompt_objects/mcp/tools/respond_to_request.rb
|
|
266
|
+
- lib/prompt_objects/mcp/tools/send_message.rb
|
|
267
|
+
- lib/prompt_objects/message_bus.rb
|
|
268
|
+
- lib/prompt_objects/primitive.rb
|
|
269
|
+
- lib/prompt_objects/primitives/http_get.rb
|
|
270
|
+
- lib/prompt_objects/primitives/list_files.rb
|
|
271
|
+
- lib/prompt_objects/primitives/read_file.rb
|
|
272
|
+
- lib/prompt_objects/primitives/write_file.rb
|
|
273
|
+
- lib/prompt_objects/prompt_object.rb
|
|
274
|
+
- lib/prompt_objects/registry.rb
|
|
275
|
+
- lib/prompt_objects/server.rb
|
|
276
|
+
- lib/prompt_objects/server/api/routes.rb
|
|
277
|
+
- lib/prompt_objects/server/app.rb
|
|
278
|
+
- lib/prompt_objects/server/file_watcher.rb
|
|
279
|
+
- lib/prompt_objects/server/public/assets/index-2acS2FYZ.js
|
|
280
|
+
- lib/prompt_objects/server/public/assets/index-DXU5uRXQ.css
|
|
281
|
+
- lib/prompt_objects/server/public/index.html
|
|
282
|
+
- lib/prompt_objects/server/websocket_handler.rb
|
|
283
|
+
- lib/prompt_objects/session/store.rb
|
|
284
|
+
- lib/prompt_objects/universal/add_capability.rb
|
|
285
|
+
- lib/prompt_objects/universal/add_primitive.rb
|
|
286
|
+
- lib/prompt_objects/universal/ask_human.rb
|
|
287
|
+
- lib/prompt_objects/universal/create_capability.rb
|
|
288
|
+
- lib/prompt_objects/universal/create_primitive.rb
|
|
289
|
+
- lib/prompt_objects/universal/list_capabilities.rb
|
|
290
|
+
- lib/prompt_objects/universal/list_primitives.rb
|
|
291
|
+
- lib/prompt_objects/universal/modify_primitive.rb
|
|
292
|
+
- lib/prompt_objects/universal/request_primitive.rb
|
|
293
|
+
- lib/prompt_objects/universal/think.rb
|
|
294
|
+
- lib/prompt_objects/universal/verify_primitive.rb
|
|
295
|
+
- objects/coordinator.md
|
|
296
|
+
- objects/greeter.md
|
|
297
|
+
- objects/reader.md
|
|
298
|
+
- prompt_objects.gemspec
|
|
299
|
+
- templates/basic/.gitignore
|
|
300
|
+
- templates/basic/manifest.yml
|
|
301
|
+
- templates/basic/objects/basic.md
|
|
302
|
+
- templates/developer/.gitignore
|
|
303
|
+
- templates/developer/manifest.yml
|
|
304
|
+
- templates/developer/objects/code_reviewer.md
|
|
305
|
+
- templates/developer/objects/coordinator.md
|
|
306
|
+
- templates/developer/objects/debugger.md
|
|
307
|
+
- templates/empty/.gitignore
|
|
308
|
+
- templates/empty/manifest.yml
|
|
309
|
+
- templates/empty/objects/.gitkeep
|
|
310
|
+
- templates/empty/objects/assistant.md
|
|
311
|
+
- templates/minimal/.gitignore
|
|
312
|
+
- templates/minimal/manifest.yml
|
|
313
|
+
- templates/minimal/objects/assistant.md
|
|
314
|
+
- templates/writer/.gitignore
|
|
315
|
+
- templates/writer/manifest.yml
|
|
316
|
+
- templates/writer/objects/coordinator.md
|
|
317
|
+
- templates/writer/objects/editor.md
|
|
318
|
+
- templates/writer/objects/researcher.md
|
|
319
|
+
homepage: https://github.com/works-on-your-machine/prompt_objects
|
|
320
|
+
licenses:
|
|
321
|
+
- MIT
|
|
322
|
+
metadata:
|
|
323
|
+
homepage_uri: https://github.com/works-on-your-machine/prompt_objects
|
|
324
|
+
source_code_uri: https://github.com/works-on-your-machine/prompt_objects
|
|
325
|
+
changelog_uri: https://github.com/works-on-your-machine/prompt_objects/blob/main/CHANGELOG.md
|
|
326
|
+
rdoc_options: []
|
|
327
|
+
require_paths:
|
|
328
|
+
- lib
|
|
329
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
330
|
+
requirements:
|
|
331
|
+
- - ">="
|
|
332
|
+
- !ruby/object:Gem::Version
|
|
333
|
+
version: 3.2.0
|
|
334
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
335
|
+
requirements:
|
|
336
|
+
- - ">="
|
|
337
|
+
- !ruby/object:Gem::Version
|
|
338
|
+
version: '0'
|
|
339
|
+
requirements: []
|
|
340
|
+
rubygems_version: 3.7.2
|
|
341
|
+
specification_version: 4
|
|
342
|
+
summary: LLM-backed entities as first-class autonomous objects
|
|
343
|
+
test_files: []
|