xcode-copilot-server 3.0.0 → 3.1.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/dist/cli-validators.d.ts +2 -0
- package/dist/cli-validators.js +8 -1
- package/dist/cli-validators.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/index.js +48 -2
- package/dist/index.js.map +1 -1
- package/dist/launchd/agent.d.ts +52 -0
- package/dist/launchd/agent.js +185 -0
- package/dist/launchd/agent.js.map +1 -0
- package/dist/launchd/index.d.ts +4 -0
- package/dist/launchd/index.js +3 -0
- package/dist/launchd/index.js.map +1 -0
- package/dist/launchd/socket.d.ts +5 -0
- package/dist/launchd/socket.js +31 -0
- package/dist/launchd/socket.js.map +1 -0
- package/dist/launchd-agent.d.ts +50 -0
- package/dist/launchd-agent.js +175 -0
- package/dist/launchd-agent.js.map +1 -0
- package/dist/launchd-socket.d.ts +5 -0
- package/dist/launchd-socket.js +33 -0
- package/dist/launchd-socket.js.map +1 -0
- package/dist/startup.d.ts +2 -0
- package/dist/startup.js +44 -5
- package/dist/startup.js.map +1 -1
- package/package.json +8 -5
- package/LICENSE +0 -21
- package/README.md +0 -269
- package/dist/config-schema.d.ts +0 -85
- package/dist/config-schema.js +0 -38
- package/dist/config-schema.js.map +0 -1
- package/dist/handlers/completions/session-config.d.ts +0 -12
- package/dist/handlers/completions/session-config.js +0 -63
- package/dist/handlers/completions/session-config.js.map +0 -1
- package/dist/handlers/completions/streaming.d.ts +0 -4
- package/dist/handlers/completions/streaming.js +0 -121
- package/dist/handlers/completions/streaming.js.map +0 -1
- package/dist/handlers/completions.d.ts +0 -4
- package/dist/handlers/completions.js +0 -120
- package/dist/handlers/completions.js.map +0 -1
- package/dist/handlers/errors.d.ts +0 -5
- package/dist/handlers/errors.js +0 -10
- package/dist/handlers/errors.js.map +0 -1
- package/dist/handlers/messages/count-tokens.d.ts +0 -3
- package/dist/handlers/messages/count-tokens.js +0 -72
- package/dist/handlers/messages/count-tokens.js.map +0 -1
- package/dist/handlers/messages/streaming.d.ts +0 -6
- package/dist/handlers/messages/streaming.js +0 -274
- package/dist/handlers/messages/streaming.js.map +0 -1
- package/dist/handlers/messages/tool-result-handler.d.ts +0 -4
- package/dist/handlers/messages/tool-result-handler.js +0 -19
- package/dist/handlers/messages/tool-result-handler.js.map +0 -1
- package/dist/handlers/messages.d.ts +0 -4
- package/dist/handlers/messages.js +0 -150
- package/dist/handlers/messages.js.map +0 -1
- package/dist/handlers/models.d.ts +0 -3
- package/dist/handlers/models.js +0 -28
- package/dist/handlers/models.js.map +0 -1
- package/dist/handlers/responses/streaming.d.ts +0 -6
- package/dist/handlers/responses/streaming.js +0 -265
- package/dist/handlers/responses/streaming.js.map +0 -1
- package/dist/handlers/responses/tool-result-handler.d.ts +0 -4
- package/dist/handlers/responses/tool-result-handler.js +0 -9
- package/dist/handlers/responses/tool-result-handler.js.map +0 -1
- package/dist/handlers/responses.d.ts +0 -4
- package/dist/handlers/responses.js +0 -164
- package/dist/handlers/responses.js.map +0 -1
- package/dist/handlers/session-config.d.ts +0 -15
- package/dist/handlers/session-config.js +0 -79
- package/dist/handlers/session-config.js.map +0 -1
- package/dist/handlers/streaming-utils.d.ts +0 -10
- package/dist/handlers/streaming-utils.js +0 -22
- package/dist/handlers/streaming-utils.js.map +0 -1
- package/dist/providers/anthropic.d.ts +0 -5
- package/dist/providers/anthropic.js +0 -28
- package/dist/providers/anthropic.js.map +0 -1
- package/dist/providers/codex.d.ts +0 -5
- package/dist/providers/codex.js +0 -24
- package/dist/providers/codex.js.map +0 -1
- package/dist/providers/openai.d.ts +0 -5
- package/dist/providers/openai.js +0 -25
- package/dist/providers/openai.js.map +0 -1
- package/dist/schemas/anthropic.d.ts +0 -140
- package/dist/schemas/anthropic.js +0 -58
- package/dist/schemas/anthropic.js.map +0 -1
- package/dist/schemas/openai.d.ts +0 -98
- package/dist/schemas/openai.js +0 -76
- package/dist/schemas/openai.js.map +0 -1
- package/dist/schemas/responses.d.ts +0 -122
- package/dist/schemas/responses.js +0 -54
- package/dist/schemas/responses.js.map +0 -1
- package/dist/schemas.d.ts +0 -49
- package/dist/schemas.js +0 -75
- package/dist/schemas.js.map +0 -1
- package/dist/settings-patcher/anthropic.d.ts +0 -5
- package/dist/settings-patcher/anthropic.js +0 -75
- package/dist/settings-patcher/anthropic.js.map +0 -1
- package/dist/types.d.ts +0 -83
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils/anthropic-prompt.d.ts +0 -2
- package/dist/utils/anthropic-prompt.js +0 -52
- package/dist/utils/anthropic-prompt.js.map +0 -1
- package/dist/utils/model-resolver.d.ts +0 -3
- package/dist/utils/model-resolver.js +0 -45
- package/dist/utils/model-resolver.js.map +0 -1
- package/dist/utils/prompt.d.ts +0 -3
- package/dist/utils/prompt.js +0 -50
- package/dist/utils/prompt.js.map +0 -1
- package/dist/utils/responses-prompt.d.ts +0 -4
- package/dist/utils/responses-prompt.js +0 -58
- package/dist/utils/responses-prompt.js.map +0 -1
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { filterExcludedFiles } from "./prompt.js";
|
|
2
|
-
function extractToolResultText(content) {
|
|
3
|
-
if (content == null)
|
|
4
|
-
return "";
|
|
5
|
-
if (typeof content === "string")
|
|
6
|
-
return content;
|
|
7
|
-
return content.map((b) => b.text).join("");
|
|
8
|
-
}
|
|
9
|
-
function formatBlocks(blocks, role, excludedFilePatterns, parts) {
|
|
10
|
-
for (const block of blocks) {
|
|
11
|
-
switch (block.type) {
|
|
12
|
-
case "text":
|
|
13
|
-
if (!block.text)
|
|
14
|
-
break;
|
|
15
|
-
if (role === "user") {
|
|
16
|
-
parts.push(`[User]: ${filterExcludedFiles(block.text, excludedFilePatterns)}`);
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
parts.push(`[Assistant]: ${block.text}`);
|
|
20
|
-
}
|
|
21
|
-
break;
|
|
22
|
-
case "tool_use":
|
|
23
|
-
parts.push(`[Assistant called tool ${block.name} with args: ${JSON.stringify(block.input)}]`);
|
|
24
|
-
break;
|
|
25
|
-
case "tool_result": {
|
|
26
|
-
const text = extractToolResultText(block.content);
|
|
27
|
-
parts.push(`[Tool result for ${block.tool_use_id}]: ${text}`);
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
// The Copilot SDK expects a single flat prompt string, so we convert the
|
|
34
|
-
// structured Anthropic messages into that format.
|
|
35
|
-
export function formatAnthropicPrompt(messages, excludedFilePatterns) {
|
|
36
|
-
const parts = [];
|
|
37
|
-
for (const msg of messages) {
|
|
38
|
-
if (typeof msg.content === "string") {
|
|
39
|
-
if (msg.role === "user") {
|
|
40
|
-
parts.push(`[User]: ${filterExcludedFiles(msg.content, excludedFilePatterns)}`);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
parts.push(`[Assistant]: ${msg.content}`);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
formatBlocks(msg.content, msg.role, excludedFilePatterns, parts);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return parts.join("\n\n");
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=anthropic-prompt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-prompt.js","sourceRoot":"","sources":["../../src/utils/anthropic-prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,SAAS,qBAAqB,CAC5B,OAA8D;IAE9D,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,YAAY,CACnB,MAAsB,EACtB,IAA0B,EAC1B,oBAA8B,EAC9B,KAAe;IAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,MAAM;gBACT,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,MAAM;gBACvB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,KAAK,CAAC,IAAI,CACR,WAAW,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CACnE,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM;YAER,KAAK,UAAU;gBACb,KAAK,CAAC,IAAI,CACR,0BAA0B,KAAK,CAAC,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAClF,CAAC;gBACF,MAAM;YAER,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAClD,KAAK,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,WAAW,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC9D,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,kDAAkD;AAClD,MAAM,UAAU,qBAAqB,CACnC,QAA4B,EAC5B,oBAA8B;IAE9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CACR,WAAW,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,EAAE,CACpE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
function normalize(id) {
|
|
2
|
-
return id.replace(/-\d{8}$/, "").replace(/\./g, "-");
|
|
3
|
-
}
|
|
4
|
-
// We need to group models by family for fallback matching, so we grab the
|
|
5
|
-
// prefix before the first digit (e.g. "claude-sonnet-4-5" becomes "claude-sonnet-").
|
|
6
|
-
// This works for Claude naming but would lump all GPT models into "gpt-"
|
|
7
|
-
// so it'll need reworking once we support non-Claude model families here
|
|
8
|
-
// e.g. if we add Codex support.
|
|
9
|
-
function extractFamily(id) {
|
|
10
|
-
const match = id.match(/^(.*?-)\d/);
|
|
11
|
-
return match?.[1] ?? id;
|
|
12
|
-
}
|
|
13
|
-
export function resolveModel(requestedModel, availableModels, logger) {
|
|
14
|
-
if (availableModels.some((m) => m.id === requestedModel)) {
|
|
15
|
-
return requestedModel;
|
|
16
|
-
}
|
|
17
|
-
const normalizedRequest = normalize(requestedModel);
|
|
18
|
-
const normalizedMatch = availableModels.find((m) => normalize(m.id) === normalizedRequest);
|
|
19
|
-
if (normalizedMatch) {
|
|
20
|
-
logger?.debug(`Model "${requestedModel}" resolved to "${normalizedMatch.id}" (normalized match)`);
|
|
21
|
-
return normalizedMatch.id;
|
|
22
|
-
}
|
|
23
|
-
// Requested version may not exist in Copilot yet (e.g. opus 4.6 falls back to opus 4.5),
|
|
24
|
-
// so fall back to the closest model in the same family.
|
|
25
|
-
const requestFamily = extractFamily(normalizedRequest);
|
|
26
|
-
const familyMatches = availableModels.filter((m) => extractFamily(normalize(m.id)) === requestFamily);
|
|
27
|
-
let best;
|
|
28
|
-
let bestLen = 0;
|
|
29
|
-
for (const m of familyMatches) {
|
|
30
|
-
const norm = normalize(m.id);
|
|
31
|
-
let len = 0;
|
|
32
|
-
const minLen = Math.min(normalizedRequest.length, norm.length);
|
|
33
|
-
while (len < minLen && normalizedRequest[len] === norm[len])
|
|
34
|
-
len++;
|
|
35
|
-
if (len > bestLen) {
|
|
36
|
-
bestLen = len;
|
|
37
|
-
best = m;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
if (!best)
|
|
41
|
-
return undefined;
|
|
42
|
-
logger?.warn(`Model "${requestedModel}" not available, falling back to "${best.id}" (closest in family)`);
|
|
43
|
-
return best.id;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=model-resolver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-resolver.js","sourceRoot":"","sources":["../../src/utils/model-resolver.ts"],"names":[],"mappings":"AAGA,SAAS,SAAS,CAAC,EAAU;IAC3B,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,0EAA0E;AAC1E,qFAAqF;AACrF,yEAAyE;AACzE,yEAAyE;AACzE,gCAAgC;AAChC,SAAS,aAAa,CAAC,EAAU;IAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,cAAsB,EACtB,eAA4B,EAC5B,MAAe;IAEf,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC;QACzD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,iBAAiB,CAC7C,CAAC;IACF,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,EAAE,KAAK,CACX,UAAU,cAAc,kBAAkB,eAAe,CAAC,EAAE,sBAAsB,CACnF,CAAC;QACF,OAAO,eAAe,CAAC,EAAE,CAAC;IAC5B,CAAC;IAED,yFAAyF;IACzF,wDAAwD;IACxD,MAAM,aAAa,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,CACxD,CAAC;IAEF,IAAI,IAA2B,CAAC;IAChC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,OAAO,GAAG,GAAG,MAAM,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC;YAAE,GAAG,EAAE,CAAC;QACnE,IAAI,GAAG,GAAG,OAAO,EAAE,CAAC;YAClB,OAAO,GAAG,GAAG,CAAC;YACd,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,MAAM,EAAE,IAAI,CACV,UAAU,cAAc,qCAAqC,IAAI,CAAC,EAAE,uBAAuB,CAC5F,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC"}
|
package/dist/utils/prompt.d.ts
DELETED
package/dist/utils/prompt.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { extractContentText } from "../schemas/openai.js";
|
|
2
|
-
function escapeRegex(s) {
|
|
3
|
-
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
4
|
-
}
|
|
5
|
-
// Xcode's search results can include full file contents for every match, so
|
|
6
|
-
// some files end up being thousands of lines and add nothing useful. We strip
|
|
7
|
-
// fenced code blocks whose header matches the excluded patterns (Xcode formats
|
|
8
|
-
// them as ```swift:/path/to/File.swift).
|
|
9
|
-
export function filterExcludedFiles(s, patterns) {
|
|
10
|
-
if (patterns.length === 0)
|
|
11
|
-
return s;
|
|
12
|
-
const joined = patterns.map(escapeRegex).join("|");
|
|
13
|
-
const re = new RegExp("```\\w*:[^\\n]*(?:" + joined + ")[^\\n]*\\n.*?\\n```\\n?", "gis");
|
|
14
|
-
return s.replace(re, "");
|
|
15
|
-
}
|
|
16
|
-
// System/developer messages are skipped because they're passed separately via
|
|
17
|
-
// SessionConfig.systemMessage.
|
|
18
|
-
export function formatPrompt(messages, excludedFilePatterns) {
|
|
19
|
-
const parts = [];
|
|
20
|
-
for (const msg of messages) {
|
|
21
|
-
const content = extractContentText(msg.content);
|
|
22
|
-
switch (msg.role) {
|
|
23
|
-
case "system":
|
|
24
|
-
case "developer":
|
|
25
|
-
continue;
|
|
26
|
-
case "user":
|
|
27
|
-
parts.push(`[User]: ${filterExcludedFiles(content, excludedFilePatterns)}`);
|
|
28
|
-
break;
|
|
29
|
-
case "assistant":
|
|
30
|
-
if (content) {
|
|
31
|
-
parts.push(`[Assistant]: ${content}`);
|
|
32
|
-
}
|
|
33
|
-
if (msg.tool_calls) {
|
|
34
|
-
for (const tc of msg.tool_calls) {
|
|
35
|
-
parts.push(`[Assistant called tool ${tc.function.name} with args: ${tc.function.arguments}]`);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
break;
|
|
39
|
-
case "tool":
|
|
40
|
-
parts.push(`[Tool result for ${msg.tool_call_id ?? "unknown"}]: ${content}`);
|
|
41
|
-
break;
|
|
42
|
-
case undefined:
|
|
43
|
-
break;
|
|
44
|
-
default:
|
|
45
|
-
throw msg.role;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return parts.join("\n\n");
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=prompt.js.map
|
package/dist/utils/prompt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA8B,MAAM,sBAAsB,CAAC;AAEtF,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,4EAA4E;AAC5E,8EAA8E;AAC9E,+EAA+E;AAC/E,yCAAyC;AACzC,MAAM,UAAU,mBAAmB,CAAC,CAAS,EAAE,QAAkB;IAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEpC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,IAAI,MAAM,CACnB,oBAAoB,GAAG,MAAM,GAAG,0BAA0B,EAC1D,KAAK,CACN,CAAC;IACF,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,+BAA+B;AAC/B,MAAM,UAAU,YAAY,CAC1B,QAAiC,EACjC,oBAA8B;IAE9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEhD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,QAAQ,CAAC;YACd,KAAK,WAAW;gBACd,SAAS;YAEX,KAAK,MAAM;gBACT,KAAK,CAAC,IAAI,CAAC,WAAW,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC;gBAC5E,MAAM;YAER,KAAK,WAAW;gBACd,IAAI,OAAO,EAAE,CAAC;oBACZ,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC;gBACxC,CAAC;gBACD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;wBAChC,KAAK,CAAC,IAAI,CACR,0BAA0B,EAAE,CAAC,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC,QAAQ,CAAC,SAAS,GAAG,CAClF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,MAAM;YAER,KAAK,MAAM;gBACT,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,YAAY,IAAI,SAAS,MAAM,OAAO,EAAE,CAAC,CAAC;gBAC7E,MAAM;YAER,KAAK,SAAS;gBACZ,MAAM;YAER;gBACE,MAAM,GAAG,CAAC,IAAoB,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { InputItem, FunctionCallOutputInput } from "../schemas/responses.js";
|
|
2
|
-
export declare function formatResponsesPrompt(input: string | InputItem[], excludedFilePatterns: string[]): string;
|
|
3
|
-
export declare function extractInstructions(input: string | InputItem[]): string | undefined;
|
|
4
|
-
export declare function extractFunctionCallOutputs(input: string | InputItem[]): FunctionCallOutputInput[];
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { filterExcludedFiles } from "./prompt.js";
|
|
2
|
-
function extractContent(content) {
|
|
3
|
-
if (typeof content === "string")
|
|
4
|
-
return content;
|
|
5
|
-
return content
|
|
6
|
-
.filter((c) => typeof c["text"] === "string")
|
|
7
|
-
.map((c) => c.text)
|
|
8
|
-
.join("");
|
|
9
|
-
}
|
|
10
|
-
export function formatResponsesPrompt(input, excludedFilePatterns) {
|
|
11
|
-
if (typeof input === "string") {
|
|
12
|
-
return `[User]: ${filterExcludedFiles(input, excludedFilePatterns)}`;
|
|
13
|
-
}
|
|
14
|
-
const parts = [];
|
|
15
|
-
for (const item of input) {
|
|
16
|
-
if ("role" in item) {
|
|
17
|
-
const content = extractContent(item.content);
|
|
18
|
-
switch (item.role) {
|
|
19
|
-
case "system":
|
|
20
|
-
case "developer":
|
|
21
|
-
continue;
|
|
22
|
-
case "user":
|
|
23
|
-
parts.push(`[User]: ${filterExcludedFiles(content, excludedFilePatterns)}`);
|
|
24
|
-
break;
|
|
25
|
-
case "assistant":
|
|
26
|
-
if (content)
|
|
27
|
-
parts.push(`[Assistant]: ${content}`);
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
else if (item.type === "function_call") {
|
|
32
|
-
parts.push(`[Assistant called tool ${item.name} with args: ${item.arguments}]`);
|
|
33
|
-
}
|
|
34
|
-
else if (item.type === "function_call_output") {
|
|
35
|
-
parts.push(`[Tool result for ${item.call_id}]: ${item.output}`);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return parts.join("\n\n");
|
|
39
|
-
}
|
|
40
|
-
export function extractInstructions(input) {
|
|
41
|
-
if (typeof input === "string")
|
|
42
|
-
return undefined;
|
|
43
|
-
const parts = [];
|
|
44
|
-
for (const item of input) {
|
|
45
|
-
if ("role" in item && (item.role === "system" || item.role === "developer")) {
|
|
46
|
-
const text = extractContent(item.content);
|
|
47
|
-
if (text)
|
|
48
|
-
parts.push(text);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return parts.length > 0 ? parts.join("\n\n") : undefined;
|
|
52
|
-
}
|
|
53
|
-
export function extractFunctionCallOutputs(input) {
|
|
54
|
-
if (typeof input === "string")
|
|
55
|
-
return [];
|
|
56
|
-
return input.filter((item) => "type" in item && item.type === "function_call_output");
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=responses-prompt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"responses-prompt.js","sourceRoot":"","sources":["../../src/utils/responses-prompt.ts"],"names":[],"mappings":"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"}
|