diff --git a/docs/app/app.config.ts b/docs/app/app.config.ts index 62a336265..f42ff7217 100644 --- a/docs/app/app.config.ts +++ b/docs/app/app.config.ts @@ -74,6 +74,7 @@ export default defineAppConfig({ title: 'Introduction', items: [ '/guide', + '/guide/getting-started', '/guide/tutorial-server-data-inspector', ], }, diff --git a/docs/app/components/AssistantChat.vue b/docs/app/components/AssistantChat.vue new file mode 100644 index 000000000..6685b0ffa --- /dev/null +++ b/docs/app/components/AssistantChat.vue @@ -0,0 +1,279 @@ + + + + diff --git a/docs/app/components/global/GettingStartedWizard.vue b/docs/app/components/global/GettingStartedWizard.vue new file mode 100644 index 000000000..a13cb6888 --- /dev/null +++ b/docs/app/components/global/GettingStartedWizard.vue @@ -0,0 +1,443 @@ + + + diff --git a/docs/app/composables/useAssistantPrompt.ts b/docs/app/composables/useAssistantPrompt.ts new file mode 100644 index 000000000..9ddfca94c --- /dev/null +++ b/docs/app/composables/useAssistantPrompt.ts @@ -0,0 +1,11 @@ +/** + * A prompt queued for the Ask AI assistant to send. + * + * The assistant's chat state lives inside `AssistantChat.vue`, so other + * surfaces (e.g. the Getting Started wizard) can't call its `sendMessage` + * directly. They instead set this shared value and open the panel; the + * shadowed `AssistantChat.vue` watches it, sends the prompt, and clears it. + */ +export function useAssistantPrompt() { + return useState('assistant-pending-prompt', () => null) +} diff --git a/docs/content/1.guide/0.getting-started.md b/docs/content/1.guide/0.getting-started.md new file mode 100644 index 000000000..573c6d070 --- /dev/null +++ b/docs/content/1.guide/0.getting-started.md @@ -0,0 +1,11 @@ +--- +title: 'Getting Started' +description: 'Answer a few questions about the devtool you want to build and get a reading list tailored to it.' +--- + +Devframe provides a lot of features to build DevTools with various needs. It could be overwhelming to start with. Here we have the wizard to help you get started. Answer a few questions about the devtool you want to build and get a reading list tailored to it. + +::getting-started-wizard +:: + +None of this is a required reading order. [`defineDevframe()`](/guide/devframe-definition) and [the tutorial](/guide/tutorial-server-data-inspector) are worth reading regardless of your answers above — everything else is additive. diff --git a/docs/content/1.guide/index.md b/docs/content/1.guide/index.md index 280653194..afd391239 100644 --- a/docs/content/1.guide/index.md +++ b/docs/content/1.guide/index.md @@ -19,6 +19,8 @@ Devframe moves that boundary. A capability is defined once against a stable inte With a coding agent to scaffold the boilerplate, Devframe is also a fast foundation for standing up a bespoke, specific-need, or even one-off devtool. +New here? [Answer a few questions about your devtool](/guide/getting-started) and get a reading list tailored to it. + ## One definition, one standard handler Every devframe starts with [`defineDevframe()`](/guide/devframe-definition), pairing a tool's identity with its capabilities.