@ai-sdk/harness-codex 1.0.103 → 1.0.104
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/CHANGELOG.md +12 -0
- package/dist/bridge/index.mjs +7 -4
- package/dist/bridge/index.mjs.map +1 -1
- package/dist/index.js +14 -21
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/bridge/index.ts +12 -4
- package/src/codex-bridge-protocol.ts +1 -0
- package/src/codex-harness.ts +14 -27
package/src/codex-harness.ts
CHANGED
|
@@ -37,8 +37,7 @@ import {
|
|
|
37
37
|
warnCredentialBrokeringUnavailable,
|
|
38
38
|
waitForBridgeReady,
|
|
39
39
|
withBridgeToken,
|
|
40
|
-
writeSkills
|
|
41
|
-
type WriteSkillsResult,
|
|
40
|
+
writeSkills,
|
|
42
41
|
} from '@ai-sdk/harness/utils';
|
|
43
42
|
import {
|
|
44
43
|
type Experimental_SandboxProcess,
|
|
@@ -386,6 +385,7 @@ export function createCodex(
|
|
|
386
385
|
webSearch: settings.webSearch,
|
|
387
386
|
codexConfig: settings.codexConfig,
|
|
388
387
|
mcpServers: settings.mcpServers,
|
|
388
|
+
headers: startOpts.headers,
|
|
389
389
|
resumeThreadId: resumeThreadIdString,
|
|
390
390
|
isResume: true,
|
|
391
391
|
seedResumeThreadOnFirstPrompt: false,
|
|
@@ -548,6 +548,7 @@ export function createCodex(
|
|
|
548
548
|
webSearch: settings.webSearch,
|
|
549
549
|
codexConfig: settings.codexConfig,
|
|
550
550
|
mcpServers: settings.mcpServers,
|
|
551
|
+
headers: startOpts.headers,
|
|
551
552
|
resumeThreadId: resumeThreadIdString,
|
|
552
553
|
isResume: respawnStrategy !== undefined,
|
|
553
554
|
seedResumeThreadOnFirstPrompt: respawnStrategy !== undefined,
|
|
@@ -631,29 +632,6 @@ async function resolveBridgeEndpoint({
|
|
|
631
632
|
});
|
|
632
633
|
}
|
|
633
634
|
|
|
634
|
-
async function writeCodexSkills({
|
|
635
|
-
sandbox,
|
|
636
|
-
sandboxHomeDir,
|
|
637
|
-
skills,
|
|
638
|
-
abortSignal,
|
|
639
|
-
}: {
|
|
640
|
-
sandbox: SandboxSession;
|
|
641
|
-
sandboxHomeDir: string;
|
|
642
|
-
skills: ReadonlyArray<HarnessV1Skill>;
|
|
643
|
-
abortSignal?: AbortSignal;
|
|
644
|
-
}): Promise<WriteSkillsResult> {
|
|
645
|
-
const rootDir = path.posix.join(sandboxHomeDir, '.agents', 'skills');
|
|
646
|
-
return writeHarnessSkills({
|
|
647
|
-
sandbox,
|
|
648
|
-
rootDir,
|
|
649
|
-
skills,
|
|
650
|
-
abortSignal,
|
|
651
|
-
invalidSkillNameMessage: ({ name }) => `Invalid Codex skill name: ${name}`,
|
|
652
|
-
invalidSkillFilePathMessage: ({ skillName, filePath }) =>
|
|
653
|
-
`Invalid Codex skill file path for ${skillName}: ${filePath}`,
|
|
654
|
-
});
|
|
655
|
-
}
|
|
656
|
-
|
|
657
635
|
function openWebSocket({
|
|
658
636
|
url,
|
|
659
637
|
headers,
|
|
@@ -685,6 +663,7 @@ function createSession({
|
|
|
685
663
|
webSearch,
|
|
686
664
|
codexConfig,
|
|
687
665
|
mcpServers,
|
|
666
|
+
headers,
|
|
688
667
|
resumeThreadId,
|
|
689
668
|
isResume,
|
|
690
669
|
seedResumeThreadOnFirstPrompt,
|
|
@@ -709,6 +688,7 @@ function createSession({
|
|
|
709
688
|
webSearch: boolean | undefined;
|
|
710
689
|
codexConfig: Record<string, unknown> | undefined;
|
|
711
690
|
mcpServers: Record<string, unknown> | undefined;
|
|
691
|
+
headers: Readonly<Record<string, string>> | undefined;
|
|
712
692
|
resumeThreadId: string | undefined;
|
|
713
693
|
isResume: boolean;
|
|
714
694
|
seedResumeThreadOnFirstPrompt: boolean;
|
|
@@ -768,11 +748,16 @@ function createSession({
|
|
|
768
748
|
}>;
|
|
769
749
|
abortSignal?: AbortSignal;
|
|
770
750
|
}): Promise<{ restartThread: boolean }> => {
|
|
771
|
-
const skillsResult = await
|
|
751
|
+
const skillsResult = await writeSkills({
|
|
772
752
|
sandbox,
|
|
773
|
-
sandboxHomeDir,
|
|
753
|
+
homePath: sandboxHomeDir,
|
|
754
|
+
skillsDir: '.agents/skills',
|
|
774
755
|
skills,
|
|
775
756
|
abortSignal,
|
|
757
|
+
invalidSkillNameMessage: ({ name }) =>
|
|
758
|
+
`Invalid Codex skill name: ${name}`,
|
|
759
|
+
invalidSkillFilePathMessage: ({ skillName, filePath }) =>
|
|
760
|
+
`Invalid Codex skill file path for ${skillName}: ${filePath}`,
|
|
776
761
|
});
|
|
777
762
|
const nextFingerprint = fingerprintCodexTurnConfiguration({
|
|
778
763
|
instructions,
|
|
@@ -1011,6 +996,7 @@ function createSession({
|
|
|
1011
996
|
webSearch,
|
|
1012
997
|
...(codexConfig == null ? {} : { codexConfig }),
|
|
1013
998
|
...(mcpServers == null ? {} : { mcpServers }),
|
|
999
|
+
...(headers == null ? {} : { headers }),
|
|
1014
1000
|
...(permissionMode ? { permissionMode } : {}),
|
|
1015
1001
|
...(pendingResumeThreadId
|
|
1016
1002
|
? { resumeThreadId: pendingResumeThreadId }
|
|
@@ -1088,6 +1074,7 @@ function createSession({
|
|
|
1088
1074
|
webSearch,
|
|
1089
1075
|
...(codexConfig == null ? {} : { codexConfig }),
|
|
1090
1076
|
...(mcpServers == null ? {} : { mcpServers }),
|
|
1077
|
+
...(headers == null ? {} : { headers }),
|
|
1091
1078
|
...(permissionMode ? { permissionMode } : {}),
|
|
1092
1079
|
...(threadId ? { resumeThreadId: threadId } : {}),
|
|
1093
1080
|
...(restartThread ? { restartThread: true } : {}),
|