@kamkom/awb-mcp 0.0.5 → 0.0.6

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/README.md CHANGED
@@ -58,6 +58,10 @@ The server exposes AWB tools over stdio, including:
58
58
  - `awb_plan_bootstrap` — compute a plan of file operations (create/update/skip) for bootstrapping an agentic-ready repo.
59
59
  - `awb_apply_bootstrap` — apply a previously returned plan to disk (atomic writes, idempotent behavior).
60
60
 
61
+ ### Copilot instructions and sampling
62
+
63
+ The plan can generate `.github/copilot-instructions.md` from a prompt file in the server templates (`copilot-instructions-prompt.md`). When the MCP client supports **sampling** (e.g. Cursor, VS Code with a sampling-capable host), the prompt file content is run on the **client’s LLM** and the generated output is used for that file; otherwise the prompt file content is used literally. No API keys are required on the server.
64
+
61
65
  ## Overwrite and managed blocks
62
66
 
63
67
  The server never overwrites your content unless a file is under AWB management or you explicitly allow overwrite.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8CxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiDxD"}
@@ -19,7 +19,9 @@ export function registerAwbTools(server) {
19
19
  .optional()
20
20
  .describe("Optional: mode, includeReadmeProposal, overwritePolicy, files allowlist, overwritePaths"),
21
21
  },
22
- }, async (args) => handlePlanBootstrap(args));
22
+ }, async (args, _extra) => handlePlanBootstrap(args, {
23
+ serverForSampling: server.server,
24
+ }));
23
25
  server.registerTool("awb_apply_bootstrap", {
24
26
  description: "Apply a previously returned bootstrap plan to disk (atomic writes, idempotent behavior). Requires the operations array from a prior plan_bootstrap call.",
25
27
  inputSchema: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAA0B,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAA2B,MAAM,qBAAqB,CAAC;AAEpF,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,+GAA+G;QACjH,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAC/D,OAAO,EAAE,CAAC;iBACP,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC7C,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;gBAC7C,eAAe,EAAE,CAAC;qBACf,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;qBAC3C,QAAQ,EAAE;gBACb,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;gBACrC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC/C,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,yFAAyF,CAAC;SACvG;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAyB,CAAC,CAC/D,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,0JAA0J;QAC5J,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAC/D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACrE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC3E,YAAY,EAAE,CAAC;iBACZ,MAAM,CAAC;gBACN,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;gBAC9B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACxC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;aACvC,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,sDAAsD,CAAC;SACpE;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAA0B,CAAC,CACjE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAA0B,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAA2B,MAAM,qBAAqB,CAAC;AAEpF,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,+GAA+G;QACjH,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAC/D,OAAO,EAAE,CAAC;iBACP,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC7C,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;gBAC7C,eAAe,EAAE,CAAC;qBACf,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;qBAC3C,QAAQ,EAAE;gBACb,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;gBACrC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aAC/C,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,yFAAyF,CAAC;SACvG;KACF,EACD,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CACrB,mBAAmB,CAAC,IAAyB,EAAE;QAC7C,iBAAiB,EAAE,MAAM,CAAC,MAAM;KACjC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,0JAA0J;QAC5J,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAC/D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACrE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC3E,YAAY,EAAE,CAAC;iBACZ,MAAM,CAAC;gBACN,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;gBAC9B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACxC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;aACvC,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,sDAAsD,CAAC;SACpE;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAA0B,CAAC,CACjE,CAAC;AACJ,CAAC"}
@@ -9,6 +9,20 @@ export type PlanBootstrapArgs = {
9
9
  rootPath: string;
10
10
  options?: unknown;
11
11
  };
12
+ /** Optional context for LLM sampling (client's model via MCP). When present, prompt file content can be run as a prompt. */
13
+ export type PlanBootstrapContext = {
14
+ serverForSampling: {
15
+ createMessage(params: unknown): Promise<{
16
+ content?: {
17
+ type?: string;
18
+ text?: string;
19
+ } | Array<{
20
+ type?: string;
21
+ text?: string;
22
+ }>;
23
+ }>;
24
+ };
25
+ };
12
26
  export type BootstrapAction = "CREATE" | "UPDATE_MANAGED" | "SKIP";
13
27
  export type PlanOperation = {
14
28
  path: string;
@@ -30,5 +44,5 @@ export type PlanBootstrapSuccess = {
30
44
  repoHints?: Record<string, unknown>;
31
45
  readmeProposal?: string | null;
32
46
  };
33
- export declare function handlePlanBootstrap(args: PlanBootstrapArgs): Promise<PlanBootstrapResult>;
47
+ export declare function handlePlanBootstrap(args: PlanBootstrapArgs, context?: PlanBootstrapContext): Promise<PlanBootstrapResult>;
34
48
  //# sourceMappingURL=planBootstrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"planBootstrap.d.ts","sourceRoot":"","sources":["../../src/tools/planBootstrap.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,CAAC;IACvD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAEnE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAiJF,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAiE9B"}
1
+ {"version":3,"file":"planBootstrap.d.ts","sourceRoot":"","sources":["../../src/tools/planBootstrap.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,CAAC;IACvD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,4HAA4H;AAC5H,MAAM,MAAM,oBAAoB,GAAG;IACjC,iBAAiB,EAAE;QACjB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;YACtC,OAAO,CAAC,EACJ;gBAAE,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,GAChC,KAAK,CAAC;gBAAE,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SAC7C,CAAC,CAAC;KACJ,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAEnE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAqJF,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CA0F9B"}
@@ -133,7 +133,8 @@ function buildOperation(relPath, fullPath, options, templateContent) {
133
133
  warnings: ["File exists and is not being overwritten."],
134
134
  };
135
135
  }
136
- export async function handlePlanBootstrap(args) {
136
+ const COPILOT_SAMPLING_SYSTEM_PROMPT = "Write a few jokes in polish";
137
+ export async function handlePlanBootstrap(args, context) {
137
138
  try {
138
139
  const error = validateRootPath(args?.rootPath);
139
140
  if (error) {
@@ -157,7 +158,32 @@ export async function handlePlanBootstrap(args) {
157
158
  let templateContent = getTemplateContent(relPath);
158
159
  if (relPath === COPILOT_INSTRUCTIONS_PATH) {
159
160
  const promptContent = getTemplateContent(COPILOT_PROMPT_FILE).trim();
160
- templateContent = templateContent.replace(COPILOT_INSTRUCTIONS_PLACEHOLDER, promptContent);
161
+ let value = promptContent;
162
+ if (promptContent && context?.serverForSampling) {
163
+ try {
164
+ const res = await context.serverForSampling.createMessage({
165
+ messages: [
166
+ {
167
+ role: "user",
168
+ content: { type: "text", text: promptContent },
169
+ },
170
+ ],
171
+ systemPrompt: COPILOT_SAMPLING_SYSTEM_PROMPT,
172
+ maxTokens: 2000,
173
+ });
174
+ const block = Array.isArray(res.content)
175
+ ? res.content[0]
176
+ : res.content;
177
+ const text = block?.type === "text"
178
+ ? (block.text ?? "")
179
+ : "";
180
+ value = (text ?? "").trim() || promptContent;
181
+ }
182
+ catch {
183
+ value = promptContent;
184
+ }
185
+ }
186
+ templateContent = templateContent.replace(COPILOT_INSTRUCTIONS_PLACEHOLDER, value);
161
187
  }
162
188
  operations.push(buildOperation(relPath, fullPath, options, templateContent));
163
189
  }
@@ -1 +1 @@
1
- {"version":3,"file":"planBootstrap.js","sourceRoot":"","sources":["../../src/tools/planBootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"planBootstrap.js","sourceRoot":"","sources":["../../src/tools/planBootstrap.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kamkom/awb-mcp",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "AWB MCP Server — bootstrap agentic-ready repos via MCP",
5
5
  "license": "ISC",
6
6
  "author": "",
@@ -25,7 +25,10 @@ export function registerAwbTools(server: McpServer): void {
25
25
  .describe("Optional: mode, includeReadmeProposal, overwritePolicy, files allowlist, overwritePaths"),
26
26
  },
27
27
  },
28
- async (args) => handlePlanBootstrap(args as PlanBootstrapArgs)
28
+ async (args, _extra) =>
29
+ handlePlanBootstrap(args as PlanBootstrapArgs, {
30
+ serverForSampling: server.server,
31
+ })
29
32
  );
30
33
 
31
34
  server.registerTool(
@@ -29,6 +29,17 @@ export type PlanBootstrapArgs = {
29
29
  options?: unknown;
30
30
  };
31
31
 
32
+ /** Optional context for LLM sampling (client's model via MCP). When present, prompt file content can be run as a prompt. */
33
+ export type PlanBootstrapContext = {
34
+ serverForSampling: {
35
+ createMessage(params: unknown): Promise<{
36
+ content?:
37
+ | { type?: string; text?: string }
38
+ | Array<{ type?: string; text?: string }>;
39
+ }>;
40
+ };
41
+ };
42
+
32
43
  export type BootstrapAction = "CREATE" | "UPDATE_MANAGED" | "SKIP";
33
44
 
34
45
  export type PlanOperation = {
@@ -83,7 +94,7 @@ function isUnderRoot(fullPath: string, resolvedRoot: string): boolean {
83
94
  */
84
95
  function normalizeUnderRoot(
85
96
  resolvedRoot: string,
86
- rawPath: string
97
+ rawPath: string,
87
98
  ): string | null {
88
99
  const resolved = path.resolve(resolvedRoot, rawPath);
89
100
  if (!isUnderRoot(resolved, resolvedRoot)) return null;
@@ -93,7 +104,7 @@ function normalizeUnderRoot(
93
104
 
94
105
  function getPathsToConsider(
95
106
  options: PlanBootstrapOptions,
96
- resolvedRoot: string
107
+ resolvedRoot: string,
97
108
  ): string[] {
98
109
  let candidates = [...BASELINE_PATHS];
99
110
  if (options.files && options.files.length > 0) {
@@ -114,7 +125,7 @@ function buildOperation(
114
125
  relPath: string,
115
126
  fullPath: string,
116
127
  options: PlanBootstrapOptions,
117
- templateContent: string
128
+ templateContent: string,
118
129
  ): PlanOperation {
119
130
  const exists = fs.existsSync(fullPath);
120
131
 
@@ -131,7 +142,9 @@ function buildOperation(
131
142
  const overwriteSet =
132
143
  options.overwritePaths && options.overwritePaths.length > 0
133
144
  ? new Set(
134
- options.overwritePaths.map((p) => path.normalize(p).replace(/\\/g, "/"))
145
+ options.overwritePaths.map((p) =>
146
+ path.normalize(p).replace(/\\/g, "/"),
147
+ ),
135
148
  )
136
149
  : null;
137
150
  const normalizedRelPath = path.normalize(relPath).replace(/\\/g, "/");
@@ -194,8 +207,11 @@ function buildOperation(
194
207
  };
195
208
  }
196
209
 
210
+ const COPILOT_SAMPLING_SYSTEM_PROMPT = "Write a few jokes in polish";
211
+
197
212
  export async function handlePlanBootstrap(
198
- args: PlanBootstrapArgs
213
+ args: PlanBootstrapArgs,
214
+ context?: PlanBootstrapContext,
199
215
  ): Promise<PlanBootstrapResult> {
200
216
  try {
201
217
  const error = validateRootPath(args?.rootPath);
@@ -223,13 +239,38 @@ export async function handlePlanBootstrap(
223
239
  let templateContent = getTemplateContent(relPath);
224
240
  if (relPath === COPILOT_INSTRUCTIONS_PATH) {
225
241
  const promptContent = getTemplateContent(COPILOT_PROMPT_FILE).trim();
242
+ let value = promptContent;
243
+ if (promptContent && context?.serverForSampling) {
244
+ try {
245
+ const res = await context.serverForSampling.createMessage({
246
+ messages: [
247
+ {
248
+ role: "user",
249
+ content: { type: "text", text: promptContent },
250
+ },
251
+ ],
252
+ systemPrompt: COPILOT_SAMPLING_SYSTEM_PROMPT,
253
+ maxTokens: 2000,
254
+ });
255
+ const block = Array.isArray(res.content)
256
+ ? res.content[0]
257
+ : res.content;
258
+ const text =
259
+ block?.type === "text"
260
+ ? ((block as { text?: string }).text ?? "")
261
+ : "";
262
+ value = (text ?? "").trim() || promptContent;
263
+ } catch {
264
+ value = promptContent;
265
+ }
266
+ }
226
267
  templateContent = templateContent.replace(
227
268
  COPILOT_INSTRUCTIONS_PLACEHOLDER,
228
- promptContent
269
+ value,
229
270
  );
230
271
  }
231
272
  operations.push(
232
- buildOperation(relPath, fullPath, options, templateContent)
273
+ buildOperation(relPath, fullPath, options, templateContent),
233
274
  );
234
275
  }
235
276