@vibe-forge/core 2.0.3 → 3.0.0-alpha.1

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.3",
3
+ "version": "3.0.0-alpha.1",
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/types": "^2.0.2",
57
- "@vibe-forge/utils": "^2.0.3"
56
+ "@vibe-forge/utils": "3.0.0-alpha.1",
57
+ "@vibe-forge/types": "3.0.0-alpha.1"
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({
@@ -179,11 +225,30 @@ export const skillHomeBridgeConfigSchema = z.object({
179
225
  .describe('Ordered home skill roots. Supports absolute paths or paths starting with ~')
180
226
  })
181
227
 
182
- export const skillsConfigSchema = z.object({
228
+ export const configuredSkillInstallConfigSchema = z.union([
229
+ z.string().min(1),
230
+ z.object({
231
+ name: z.string().min(1).describe('Remote skill name'),
232
+ registry: z.string().optional().describe('Package registry used to install the managed skills CLI'),
233
+ source: z.string().optional().describe('Remote skills CLI source path'),
234
+ version: z.string().optional().describe('Remote skill version passed to the skills CLI'),
235
+ rename: z.string().optional().describe('Local skill name to expose after install')
236
+ })
237
+ ])
238
+
239
+ export const legacySkillsConfigSchema = z.object({
240
+ install: z.array(configuredSkillInstallConfigSchema).optional()
241
+ .describe('Project skills that should be ensured before session startup'),
183
242
  registry: z.union([z.string(), skillRegistryConfigSchema]).optional().describe('Remote skill registry settings'),
184
243
  homeBridge: skillHomeBridgeConfigSchema.optional().describe('Home skill auto-bridge settings')
185
244
  })
186
245
 
246
+ export const skillsConfigSchema = z.union([
247
+ z.array(configuredSkillInstallConfigSchema)
248
+ .describe('Project skills that should be ensured before session startup'),
249
+ legacySkillsConfigSchema
250
+ ])
251
+
187
252
  const pluginInstanceConfigSchema: z.ZodType<unknown> = z.lazy(() =>
188
253
  z.object({
189
254
  id: z.string().min(1).describe('Plugin package name or short id'),
package/src/tools.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export type TaskLogsOrder = 'asc' | 'desc'
2
- export type TaskMessageMode = 'direct' | 'steer'
3
2
 
4
3
  export interface StopTaskToolInput {
5
4
  task_id?: string
@@ -11,6 +10,7 @@ export interface StartTasksToolInput {
11
10
  type?: 'default' | 'spec' | 'entity' | 'workspace'
12
11
  name?: string
13
12
  adapter?: string
13
+ model?: string
14
14
  permissionMode?: 'default' | 'acceptEdits' | 'plan' | 'dontAsk' | 'bypassPermissions'
15
15
  background?: boolean
16
16
  }>
@@ -25,7 +25,6 @@ export interface GetTaskInfoToolInput {
25
25
  export interface SendTaskMessageToolInput {
26
26
  taskId: string
27
27
  message: string
28
- mode?: TaskMessageMode
29
28
  }
30
29
 
31
30
  export interface ListTasksToolInput {