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.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/CLAUDE.md +108 -0
  3. data/Gemfile +10 -0
  4. data/Gemfile.lock +231 -0
  5. data/IMPLEMENTATION_PLAN.md +1073 -0
  6. data/LICENSE +21 -0
  7. data/README.md +73 -0
  8. data/Rakefile +27 -0
  9. data/design-doc-v2.md +1232 -0
  10. data/exe/prompt_objects +572 -0
  11. data/exe/prompt_objects_mcp +34 -0
  12. data/frontend/.gitignore +3 -0
  13. data/frontend/index.html +13 -0
  14. data/frontend/package-lock.json +4417 -0
  15. data/frontend/package.json +32 -0
  16. data/frontend/postcss.config.js +6 -0
  17. data/frontend/src/App.tsx +95 -0
  18. data/frontend/src/components/CapabilitiesPanel.tsx +44 -0
  19. data/frontend/src/components/ChatPanel.tsx +251 -0
  20. data/frontend/src/components/Dashboard.tsx +83 -0
  21. data/frontend/src/components/Header.tsx +141 -0
  22. data/frontend/src/components/MarkdownMessage.tsx +153 -0
  23. data/frontend/src/components/MessageBus.tsx +55 -0
  24. data/frontend/src/components/ModelSelector.tsx +112 -0
  25. data/frontend/src/components/NotificationPanel.tsx +134 -0
  26. data/frontend/src/components/POCard.tsx +56 -0
  27. data/frontend/src/components/PODetail.tsx +117 -0
  28. data/frontend/src/components/PromptPanel.tsx +51 -0
  29. data/frontend/src/components/SessionsPanel.tsx +174 -0
  30. data/frontend/src/components/ThreadsSidebar.tsx +119 -0
  31. data/frontend/src/components/index.ts +11 -0
  32. data/frontend/src/hooks/useWebSocket.ts +363 -0
  33. data/frontend/src/index.css +37 -0
  34. data/frontend/src/main.tsx +10 -0
  35. data/frontend/src/store/index.ts +246 -0
  36. data/frontend/src/types/index.ts +146 -0
  37. data/frontend/tailwind.config.js +25 -0
  38. data/frontend/tsconfig.json +30 -0
  39. data/frontend/vite.config.ts +29 -0
  40. data/lib/prompt_objects/capability.rb +46 -0
  41. data/lib/prompt_objects/cli.rb +431 -0
  42. data/lib/prompt_objects/connectors/base.rb +73 -0
  43. data/lib/prompt_objects/connectors/mcp.rb +524 -0
  44. data/lib/prompt_objects/environment/exporter.rb +83 -0
  45. data/lib/prompt_objects/environment/git.rb +118 -0
  46. data/lib/prompt_objects/environment/importer.rb +159 -0
  47. data/lib/prompt_objects/environment/manager.rb +401 -0
  48. data/lib/prompt_objects/environment/manifest.rb +218 -0
  49. data/lib/prompt_objects/environment.rb +283 -0
  50. data/lib/prompt_objects/human_queue.rb +144 -0
  51. data/lib/prompt_objects/llm/anthropic_adapter.rb +137 -0
  52. data/lib/prompt_objects/llm/factory.rb +84 -0
  53. data/lib/prompt_objects/llm/gemini_adapter.rb +209 -0
  54. data/lib/prompt_objects/llm/openai_adapter.rb +104 -0
  55. data/lib/prompt_objects/llm/response.rb +61 -0
  56. data/lib/prompt_objects/loader.rb +32 -0
  57. data/lib/prompt_objects/mcp/server.rb +167 -0
  58. data/lib/prompt_objects/mcp/tools/get_conversation.rb +60 -0
  59. data/lib/prompt_objects/mcp/tools/get_pending_requests.rb +54 -0
  60. data/lib/prompt_objects/mcp/tools/inspect_po.rb +73 -0
  61. data/lib/prompt_objects/mcp/tools/list_prompt_objects.rb +37 -0
  62. data/lib/prompt_objects/mcp/tools/respond_to_request.rb +68 -0
  63. data/lib/prompt_objects/mcp/tools/send_message.rb +71 -0
  64. data/lib/prompt_objects/message_bus.rb +97 -0
  65. data/lib/prompt_objects/primitive.rb +13 -0
  66. data/lib/prompt_objects/primitives/http_get.rb +72 -0
  67. data/lib/prompt_objects/primitives/list_files.rb +95 -0
  68. data/lib/prompt_objects/primitives/read_file.rb +81 -0
  69. data/lib/prompt_objects/primitives/write_file.rb +73 -0
  70. data/lib/prompt_objects/prompt_object.rb +415 -0
  71. data/lib/prompt_objects/registry.rb +88 -0
  72. data/lib/prompt_objects/server/api/routes.rb +297 -0
  73. data/lib/prompt_objects/server/app.rb +174 -0
  74. data/lib/prompt_objects/server/file_watcher.rb +113 -0
  75. data/lib/prompt_objects/server/public/assets/index-2acS2FYZ.js +77 -0
  76. data/lib/prompt_objects/server/public/assets/index-DXU5uRXQ.css +1 -0
  77. data/lib/prompt_objects/server/public/index.html +14 -0
  78. data/lib/prompt_objects/server/websocket_handler.rb +619 -0
  79. data/lib/prompt_objects/server.rb +166 -0
  80. data/lib/prompt_objects/session/store.rb +826 -0
  81. data/lib/prompt_objects/universal/add_capability.rb +74 -0
  82. data/lib/prompt_objects/universal/add_primitive.rb +113 -0
  83. data/lib/prompt_objects/universal/ask_human.rb +109 -0
  84. data/lib/prompt_objects/universal/create_capability.rb +219 -0
  85. data/lib/prompt_objects/universal/create_primitive.rb +170 -0
  86. data/lib/prompt_objects/universal/list_capabilities.rb +55 -0
  87. data/lib/prompt_objects/universal/list_primitives.rb +145 -0
  88. data/lib/prompt_objects/universal/modify_primitive.rb +180 -0
  89. data/lib/prompt_objects/universal/request_primitive.rb +287 -0
  90. data/lib/prompt_objects/universal/think.rb +41 -0
  91. data/lib/prompt_objects/universal/verify_primitive.rb +173 -0
  92. data/lib/prompt_objects.rb +62 -0
  93. data/objects/coordinator.md +48 -0
  94. data/objects/greeter.md +30 -0
  95. data/objects/reader.md +33 -0
  96. data/prompt_objects.gemspec +50 -0
  97. data/templates/basic/.gitignore +2 -0
  98. data/templates/basic/manifest.yml +7 -0
  99. data/templates/basic/objects/basic.md +32 -0
  100. data/templates/developer/.gitignore +5 -0
  101. data/templates/developer/manifest.yml +17 -0
  102. data/templates/developer/objects/code_reviewer.md +33 -0
  103. data/templates/developer/objects/coordinator.md +39 -0
  104. data/templates/developer/objects/debugger.md +35 -0
  105. data/templates/empty/.gitignore +5 -0
  106. data/templates/empty/manifest.yml +14 -0
  107. data/templates/empty/objects/.gitkeep +0 -0
  108. data/templates/empty/objects/assistant.md +41 -0
  109. data/templates/minimal/.gitignore +5 -0
  110. data/templates/minimal/manifest.yml +7 -0
  111. data/templates/minimal/objects/assistant.md +41 -0
  112. data/templates/writer/.gitignore +5 -0
  113. data/templates/writer/manifest.yml +17 -0
  114. data/templates/writer/objects/coordinator.md +33 -0
  115. data/templates/writer/objects/editor.md +33 -0
  116. data/templates/writer/objects/researcher.md +34 -0
  117. metadata +343 -0
@@ -0,0 +1,5 @@
1
+ # Session database (contains private conversation history)
2
+ sessions.db
3
+ sessions.db-journal
4
+ sessions.db-wal
5
+ sessions.db-shm
@@ -0,0 +1,7 @@
1
+ name: minimal
2
+ description: Basic assistant with file reading capabilities
3
+ icon: "\U0001F3AF"
4
+ color: "#6B7280"
5
+
6
+ objects:
7
+ - assistant
@@ -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,5 @@
1
+ # Session database (contains private conversation history)
2
+ sessions.db
3
+ sessions.db-journal
4
+ sessions.db-wal
5
+ sessions.db-shm
@@ -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: []