File tree Expand file tree Collapse file tree 3 files changed +39
-6
lines changed Expand file tree Collapse file tree 3 files changed +39
-6
lines changed Original file line number Diff line number Diff line change @@ -152,10 +152,8 @@ const provider = createACPProvider({
152152 persistSession: true ,
153153});
154154
155- const model = provider .languageModel ();
156-
157155// Initialize and get available options
158- const session = await model .initSession ();
156+ const session = await provider .initSession ();
159157
160158// Check available modes (e.g., "ask", "code", "architect")
161159console .log (session .modes ?.availableModes );
@@ -164,10 +162,13 @@ console.log(session.modes?.availableModes);
164162console .log (session .models ?.availableModels );
165163
166164// Select a mode before prompting
167- await model .setMode (" code" );
165+ await provider .setMode (" code" );
168166
169167// Now use the model
170- const result = await generateText ({ model , prompt: " ..." });
168+ const result = await generateText ({
169+ model: provider .languageModel (),
170+ prompt: " ..." ,
171+ });
171172```
172173
173174## FAQ
Original file line number Diff line number Diff line change 11{
22 "name" : " @mcpc/acp-ai-provider" ,
3- "version" : " 0.1.23 " ,
3+ "version" : " 0.1.24 " ,
44 "repository" : {
55 "type" : " git" ,
66 "url" : " git+https://github.com/mcpc-tech/mcpc.git"
Original file line number Diff line number Diff line change 55import { ACPLanguageModel } from "./language-model.ts" ;
66import type { ACPProviderSettings } from "./types.ts" ;
77import type { tool } from "ai" ;
8+ import type { NewSessionResponse } from "@agentclientprotocol/sdk" ;
89
910/**
1011 * ACP Provider - implements AI SDK provider pattern
@@ -54,6 +55,37 @@ export class ACPProvider {
5455 return this . model ?. getSessionId ( ) ?? null ;
5556 }
5657
58+ /**
59+ * Initializes the session and returns session info (models, modes, meta).
60+ * Call this before prompting to discover available options.
61+ */
62+ initSession ( ) : Promise < NewSessionResponse > {
63+ if ( ! this . model ) {
64+ this . languageModel ( ) ;
65+ }
66+ return this . model ! . initSession ( ) ;
67+ }
68+
69+ /**
70+ * Sets the session mode (e.g., "ask", "plan").
71+ */
72+ setMode ( modeId : string ) : Promise < void > {
73+ if ( ! this . model ) {
74+ throw new Error ( "No model initialized. Call languageModel() first." ) ;
75+ }
76+ return this . model . setMode ( modeId ) ;
77+ }
78+
79+ /**
80+ * Sets the session model.
81+ */
82+ setModel ( modelId : string ) : Promise < void > {
83+ if ( ! this . model ) {
84+ throw new Error ( "No model initialized. Call languageModel() first." ) ;
85+ }
86+ return this . model . setModel ( modelId ) ;
87+ }
88+
5789 /**
5890 * Forces cleanup of the connection and session.
5991 * Call this when you're done with the provider instance, especially when using `persistSession`.
You can’t perform that action at this time.
0 commit comments