@vibe-forge/core 2.0.1 → 2.0.3-alpha.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe-forge/core",
3
- "version": "2.0.1",
3
+ "version": "2.0.3-alpha.0",
4
4
  "imports": {
5
5
  "#~/*.js": {
6
6
  "__vibe-forge__": {
@@ -53,7 +53,7 @@
53
53
  },
54
54
  "dependencies": {
55
55
  "zod": "^3.24.1",
56
- "@vibe-forge/utils": "^2.0.1",
57
- "@vibe-forge/types": "^2.0.0"
56
+ "@vibe-forge/utils": "^2.0.3-alpha.0",
57
+ "@vibe-forge/types": "^2.0.2-alpha.0"
58
58
  }
59
59
  }
@@ -146,10 +146,56 @@ export const shortcutsConfigSchema = z.object({
146
146
  switchPermissionMode: z.string().optional().describe('Shortcut for switching permission mode')
147
147
  })
148
148
 
149
+ export const conversationStarterModeSchema = z.enum([
150
+ 'default',
151
+ 'workspace',
152
+ 'entity',
153
+ 'agent',
154
+ 'spec'
155
+ ])
156
+
157
+ export const conversationStarterWorktreeConfigSchema = z.object({
158
+ create: z.boolean().optional().describe('Override whether the session uses a managed worktree'),
159
+ environment: z.string().optional().describe('Managed worktree environment override'),
160
+ branch: z.object({
161
+ name: z.string().min(1).describe('Branch name'),
162
+ kind: z.enum(['local', 'remote']).optional().describe('Branch kind'),
163
+ mode: z.enum(['checkout', 'create']).optional().describe('Branch operation mode')
164
+ }).optional().describe('Branch selection override')
165
+ })
166
+
167
+ export const conversationStarterConfigSchema = z.object({
168
+ id: z.string().optional().describe('Stable starter identifier'),
169
+ title: z.string().min(1).describe('Starter title'),
170
+ description: z.string().optional().describe('Starter description'),
171
+ icon: z.string().optional().describe('Material Symbols icon name'),
172
+ mode: conversationStarterModeSchema.optional().describe('Target mode, `agent` is an alias for `entity`'),
173
+ target: z.string().optional().describe('Target resource name or workspace id'),
174
+ targetLabel: z.string().optional().describe('Optional target label shown in the UI'),
175
+ targetDescription: z.string().optional().describe('Optional target description shown in the UI'),
176
+ model: z.string().optional().describe('Model id or service-prefixed model value'),
177
+ adapter: z.string().optional().describe('Adapter override'),
178
+ account: z.string().optional().describe('Account override'),
179
+ effort: z.union([z.literal('default'), effortLevelSchema]).optional().describe('Effort override'),
180
+ permissionMode: z.enum(['default', 'acceptEdits', 'plan', 'dontAsk', 'bypassPermissions']).optional()
181
+ .describe('Permission mode override'),
182
+ worktree: conversationStarterWorktreeConfigSchema.optional().describe('Managed worktree overrides'),
183
+ prompt: z.string().optional().describe('Prefilled prompt'),
184
+ files: z.array(z.string()).optional().describe('Referenced file paths'),
185
+ rules: z.array(z.string()).optional().describe('Referenced rule paths or rule identifiers'),
186
+ skills: z.array(z.string()).optional().describe('Referenced skill paths or skill identifiers')
187
+ })
188
+
149
189
  export const conversationConfigSchema = z.object({
150
190
  style: z.enum(['friendly', 'programmatic']).optional().describe('Conversation style'),
151
191
  customInstructions: z.string().optional().describe('Extra system instructions'),
152
- injectDefaultSystemPrompt: z.boolean().optional().describe('Inject the default system prompt')
192
+ injectDefaultSystemPrompt: z.boolean().optional().describe('Inject the default system prompt'),
193
+ createSessionWorktree: z.boolean().optional().describe('Create a managed worktree for new sessions by default'),
194
+ worktreeEnvironment: z.string().optional().describe('Default managed worktree environment'),
195
+ startupPresets: z.array(conversationStarterConfigSchema).optional()
196
+ .describe('Quick-start presets shown on the new session page'),
197
+ builtinActions: z.array(conversationStarterConfigSchema).optional()
198
+ .describe('Built-in development actions shown on the new session page')
153
199
  })
154
200
 
155
201
  export const webAuthAccountConfigSchema = z.object({
@@ -166,17 +212,35 @@ export const webAuthConfigSchema = z.object({
166
212
  rememberDeviceTtlDays: z.number().positive().optional().describe('Remember-device token lifetime in days')
167
213
  })
168
214
 
169
- export const skillRegistryConfigSchema = z.object({
170
- enabled: z.boolean().optional().describe('Enable remote skill registry resolution'),
171
- url: z.string().optional().describe('Base URL for remote skill registry search and download'),
172
- searchUrl: z.string().optional().describe('Remote skill registry search endpoint'),
173
- downloadUrl: z.string().optional().describe('Remote skill registry download endpoint')
215
+ export const skillHomeBridgeConfigSchema = z.object({
216
+ enabled: z.boolean().optional().describe('Bridge supported home skill roots into workspace asset discovery'),
217
+ roots: z.union([z.string(), z.array(z.string())]).optional()
218
+ .describe('Ordered home skill roots. Supports absolute paths or paths starting with ~')
174
219
  })
175
220
 
176
- export const skillsConfigSchema = z.object({
177
- registry: z.union([z.string(), skillRegistryConfigSchema]).optional().describe('Remote skill registry settings')
221
+ export const configuredSkillInstallConfigSchema = z.union([
222
+ z.string().min(1),
223
+ z.object({
224
+ name: z.string().min(1).describe('Remote skill name'),
225
+ registry: z.string().optional().describe('Package registry used to install the managed skills CLI'),
226
+ source: z.string().optional().describe('Remote skills CLI source path'),
227
+ version: z.string().optional().describe('Remote skill version passed to the skills CLI'),
228
+ rename: z.string().optional().describe('Local skill name to expose after install')
229
+ })
230
+ ])
231
+
232
+ export const legacySkillsConfigSchema = z.object({
233
+ install: z.array(configuredSkillInstallConfigSchema).optional()
234
+ .describe('Project skills that should be ensured before session startup'),
235
+ homeBridge: skillHomeBridgeConfigSchema.optional().describe('Home skill auto-bridge settings')
178
236
  })
179
237
 
238
+ export const skillsConfigSchema = z.union([
239
+ z.array(configuredSkillInstallConfigSchema)
240
+ .describe('Project skills that should be ensured before session startup'),
241
+ legacySkillsConfigSchema
242
+ ])
243
+
180
244
  const pluginInstanceConfigSchema: z.ZodType<unknown> = z.lazy(() =>
181
245
  z.object({
182
246
  id: z.string().min(1).describe('Plugin package name or short id'),