@ai-sdk/harness 1.0.156 → 1.0.157

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 CHANGED
@@ -1,5 +1,18 @@
1
1
  # @ai-sdk/harness
2
2
 
3
+ ## 1.0.157
4
+
5
+ ### Patch Changes
6
+
7
+ - ca2a9f7: feat(harness): add `extractHarnessPromptContent()` helper and use it for image prompt support
8
+ - Updated dependencies [0c2a9de]
9
+ - Updated dependencies [200c47f]
10
+ - Updated dependencies [3785b2e]
11
+ - Updated dependencies [ab8eb61]
12
+ - ai@7.0.146
13
+ - @ai-sdk/provider@4.0.31
14
+ - @ai-sdk/provider-utils@5.0.64
15
+
3
16
  ## 1.0.156
4
17
 
5
18
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- import { Experimental_SandboxProcess, Experimental_SandboxSession, FlexibleSchema, ToolResultOutput } from "@ai-sdk/provider-utils";
1
+ import { Experimental_SandboxProcess, Experimental_SandboxSession, FlexibleSchema, ToolResultOutput, UserModelMessage } from "@ai-sdk/provider-utils";
2
2
  import { z } from "zod/v4";
3
3
  import "@ai-sdk/provider";
4
4
  import { WebSocket } from "ws";
@@ -534,6 +534,17 @@ type HarnessV1RequestTransformation = {
534
534
  };
535
535
  };
536
536
  //#endregion
537
+ //#region src/v1/harness-v1-prompt.d.ts
538
+ /**
539
+ * Prompt shape passed to `HarnessV1Session.doPromptTurn`.
540
+ *
541
+ * A harness session represents an ongoing third-party agent runtime that
542
+ * owns its own conversation history. Each prompt turn carries only the
543
+ * fresh user input for that turn, either as a plain string or as a single
544
+ * `UserModelMessage`.
545
+ */
546
+ type HarnessV1Prompt = string | UserModelMessage;
547
+ //#endregion
537
548
  //#region src/v1/harness-v1-skill.d.ts
538
549
  /**
539
550
  * A self-contained instruction bundle the underlying runtime can load into
@@ -792,6 +803,29 @@ export declare function normalizeHarnessToolModelOutput({ output }: {
792
803
  output: ToolResultOutput;
793
804
  }): ToolResultOutput;
794
805
  //#endregion
806
+ //#region src/utils/extract-harness-prompt-content.d.ts
807
+ declare const harnessPromptContentPartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
808
+ type: z.ZodLiteral<"text">;
809
+ text: z.ZodString;
810
+ }, z.core.$strip>, z.ZodObject<{
811
+ type: z.ZodLiteral<"image">;
812
+ data: z.ZodString;
813
+ mediaType: z.ZodString;
814
+ }, z.core.$strip>]>;
815
+ export declare const harnessPromptContentSchema: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
816
+ type: z.ZodLiteral<"text">;
817
+ text: z.ZodString;
818
+ }, z.core.$strip>, z.ZodObject<{
819
+ type: z.ZodLiteral<"image">;
820
+ data: z.ZodString;
821
+ mediaType: z.ZodString;
822
+ }, z.core.$strip>]>>]>;
823
+ type HarnessPromptContentPart = z.infer<typeof harnessPromptContentPartSchema>;
824
+ type HarnessPromptContent = z.infer<typeof harnessPromptContentSchema>;
825
+ export declare function extractHarnessPromptContent({ prompt }: {
826
+ prompt: HarnessV1Prompt;
827
+ }): HarnessPromptContent;
828
+ //#endregion
795
829
  //#region src/utils/convert-harness-tool-model-output.d.ts
796
830
  type HarnessToolModelOutputContent = {
797
831
  type: 'text';
@@ -808,5 +842,5 @@ export declare function convertHarnessToolModelOutput({ output }: {
808
842
  isError: boolean;
809
843
  };
810
844
  //#endregion
811
- export type { BridgeReadyErrorContext, BridgeReadySource, DiskLogRecoveryMode, Experimental_BridgeUserMessageRequest, Experimental_BridgeUserMessageResponse, Experimental_BridgeUserMessageSubmitter, HarnessToolModelOutputContent, OAuthCredential, RefreshOAuthAccessTokenResult, SandboxChannelConnectOptions, SandboxChannelDebugEvent, SandboxChannelOptions, SandboxChannelReconnectOptions, SkillFilePathMode, WaitForBridgeReadyOptions, WaitForBridgeReadyResult, WriteInstructionsOptions, WriteInstructionsResult, WriteSkillsOptions, WriteSkillsResult };
845
+ export type { BridgeReadyErrorContext, BridgeReadySource, DiskLogRecoveryMode, Experimental_BridgeUserMessageRequest, Experimental_BridgeUserMessageResponse, Experimental_BridgeUserMessageSubmitter, HarnessPromptContent, HarnessPromptContentPart, HarnessToolModelOutputContent, OAuthCredential, RefreshOAuthAccessTokenResult, SandboxChannelConnectOptions, SandboxChannelDebugEvent, SandboxChannelOptions, SandboxChannelReconnectOptions, SkillFilePathMode, WaitForBridgeReadyOptions, WaitForBridgeReadyResult, WriteInstructionsOptions, WriteInstructionsResult, WriteSkillsOptions, WriteSkillsResult };
812
846
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["SandboxSession","SandboxSession","SandboxSession"],"sources":["../../src/utils/sandbox-channel.ts","../../src/utils/bridge-user-message-submitter.ts","../../src/utils/classify-disk-log.ts","../../src/utils/ai-gateway-auth.ts","../../src/v1/harness-authentication.ts","../../src/utils/authentication-environment.ts","../../src/utils/native-subscription/jwt.ts","../../src/utils/native-subscription/linux-secret-service.ts","../../src/utils/native-subscription/macos-keychain.ts","../../src/utils/native-subscription/should-resolve-native.ts","../../src/utils/native-subscription/windows-credential-manager.ts","../../src/utils/oauth-access-token.ts","../../src/utils/os.ts","../../src/v1/harness-v1-network-sandbox-session.ts","../../src/v1/harness-v1-skill.ts","../../src/v1/harness-v1-call-warning.ts","../../src/v1/harness-v1-credential-forwarding.ts","../../src/utils/credential-forwarding.ts","../../src/utils/sandbox-credential-brokering.ts","../../src/utils/sandbox-home-dir.ts","../../src/utils/shell-quote.ts","../../src/utils/write-instructions.ts","../../src/utils/write-skills.ts","../../src/utils/bridge-ready.ts","../../src/utils/bridge-token.ts","../../src/utils/bridge-asset.ts","../../src/utils/bridge-diagnostics.ts","../../src/utils/resolve-sandbox-default-working-directory.ts","../../src/utils/get-restricted-sandbox-session.ts","../../src/utils/sleep.ts","../../src/utils/normalize-harness-tool-model-output.ts","../../src/utils/convert-harness-tool-model-output.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["SandboxSession","SandboxSession","SandboxSession"],"sources":["../../src/utils/sandbox-channel.ts","../../src/utils/bridge-user-message-submitter.ts","../../src/utils/classify-disk-log.ts","../../src/utils/ai-gateway-auth.ts","../../src/v1/harness-authentication.ts","../../src/utils/authentication-environment.ts","../../src/utils/native-subscription/jwt.ts","../../src/utils/native-subscription/linux-secret-service.ts","../../src/utils/native-subscription/macos-keychain.ts","../../src/utils/native-subscription/should-resolve-native.ts","../../src/utils/native-subscription/windows-credential-manager.ts","../../src/utils/oauth-access-token.ts","../../src/utils/os.ts","../../src/v1/harness-v1-network-sandbox-session.ts","../../src/v1/harness-v1-prompt.ts","../../src/v1/harness-v1-skill.ts","../../src/v1/harness-v1-call-warning.ts","../../src/v1/harness-v1-credential-forwarding.ts","../../src/utils/credential-forwarding.ts","../../src/utils/sandbox-credential-brokering.ts","../../src/utils/sandbox-home-dir.ts","../../src/utils/shell-quote.ts","../../src/utils/write-instructions.ts","../../src/utils/write-skills.ts","../../src/utils/bridge-ready.ts","../../src/utils/bridge-token.ts","../../src/utils/bridge-asset.ts","../../src/utils/bridge-diagnostics.ts","../../src/utils/resolve-sandbox-default-working-directory.ts","../../src/utils/get-restricted-sandbox-session.ts","../../src/utils/sleep.ts","../../src/utils/normalize-harness-tool-model-output.ts","../../src/utils/extract-harness-prompt-content.ts","../../src/utils/convert-harness-tool-model-output.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { convertInlineFileDataToUint8Array, convertUint8ArrayToBase64, detectMediaType, getTopLevelMediaType, isFullMediaType, isRecord, safeParseJSON, safeValidateTypes } from "@ai-sdk/provider-utils";
1
+ import { convertInlineFileDataToUint8Array, convertUint8ArrayToBase64, detectMediaType, getTopLevelMediaType, isFullMediaType, isProviderReference, isRecord, safeParseJSON, safeValidateTypes } from "@ai-sdk/provider-utils";
2
2
  import { execFile } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
4
  import { createHash, randomBytes } from "node:crypto";
@@ -2108,6 +2108,88 @@ function normalizeHarnessToolModelOutput({ output }) {
2108
2108
  }
2109
2109
  }
2110
2110
  //#endregion
2111
+ //#region src/utils/extract-harness-prompt-content.ts
2112
+ const harnessPromptContentPartSchema = z.discriminatedUnion("type", [z.object({
2113
+ type: z.literal("text"),
2114
+ text: z.string()
2115
+ }), z.object({
2116
+ type: z.literal("image"),
2117
+ data: z.string(),
2118
+ mediaType: z.string()
2119
+ })]);
2120
+ const harnessPromptContentSchema = z.union([z.string(), z.array(harnessPromptContentPartSchema)]);
2121
+ function extractHarnessPromptContent({ prompt }) {
2122
+ if (typeof prompt === "string") return prompt;
2123
+ const { content } = prompt;
2124
+ if (typeof content === "string") return content;
2125
+ if (content.every((part) => part.type === "text")) return content.map((part) => part.text).join("\n\n");
2126
+ return content.flatMap((part) => {
2127
+ switch (part.type) {
2128
+ case "text": return [{
2129
+ type: "text",
2130
+ text: part.text
2131
+ }];
2132
+ case "image": return [convertUserImage({
2133
+ data: part.image,
2134
+ mediaType: part.mediaType ?? "image"
2135
+ })];
2136
+ case "file":
2137
+ if (getTopLevelMediaType(part.mediaType) !== "image") throw unsupportedUserContent({ description: `files of media type '${part.mediaType}'` });
2138
+ return [convertUserImage(part)];
2139
+ default: throw unsupportedUserContent({ description: "content parts other than text, image, or file parts" });
2140
+ }
2141
+ });
2142
+ }
2143
+ function convertUserImage({ data, mediaType }) {
2144
+ const image = getInlineImage({ data });
2145
+ const resolvedMediaType = isFullMediaType(mediaType) ? mediaType : image.mediaType ?? detectMediaType({
2146
+ data: image.data,
2147
+ topLevelType: "image"
2148
+ });
2149
+ if (resolvedMediaType == null) throw unsupportedUserContent({ description: "images whose media type cannot be detected" });
2150
+ return {
2151
+ type: "image",
2152
+ data: image.data,
2153
+ mediaType: resolvedMediaType
2154
+ };
2155
+ }
2156
+ function getInlineImage({ data }) {
2157
+ if (data instanceof URL) return getDataUrlImage({ url: data });
2158
+ if (typeof data === "string") {
2159
+ let url;
2160
+ try {
2161
+ url = new URL(data);
2162
+ } catch {
2163
+ return { data };
2164
+ }
2165
+ return getDataUrlImage({ url });
2166
+ }
2167
+ if (data instanceof Uint8Array || data instanceof ArrayBuffer) return { data: convertUint8ArrayToBase64(convertInlineFileDataToUint8Array({
2168
+ type: "data",
2169
+ data
2170
+ })) };
2171
+ if (isProviderReference(data)) throw unsupportedUserContent({ description: "provider references" });
2172
+ switch (data.type) {
2173
+ case "data": return typeof data.data === "string" ? { data: data.data } : getInlineImage({ data: data.data });
2174
+ case "url": return getDataUrlImage({ url: data.url });
2175
+ case "reference": throw unsupportedUserContent({ description: "provider references" });
2176
+ case "text": throw unsupportedUserContent({ description: "text data for images" });
2177
+ }
2178
+ }
2179
+ function getDataUrlImage({ url }) {
2180
+ if (url.protocol !== "data:") throw unsupportedUserContent({ description: "remote image URLs" });
2181
+ const [header, data] = url.href.split(",", 2);
2182
+ if (!header?.endsWith(";base64") || data == null) throw unsupportedUserContent({ description: "data URLs that are not base64 encoded" });
2183
+ const mediaType = header.slice(5).split(";")[0];
2184
+ return {
2185
+ data,
2186
+ ...mediaType ? { mediaType } : {}
2187
+ };
2188
+ }
2189
+ function unsupportedUserContent({ description }) {
2190
+ return new HarnessCapabilityUnsupportedError({ message: `The harness layer does not support ${description} in user messages. Pass text parts and inline images as bytes, base64 strings, or data URLs.` });
2191
+ }
2192
+ //#endregion
2111
2193
  //#region src/bridge/harness-bridge-capability-unsupported-error.ts
2112
2194
  const name = "AI_HarnessBridgeCapabilityUnsupportedError";
2113
2195
  /**
@@ -2177,6 +2259,6 @@ function convertHarnessToolModelOutput({ output }) {
2177
2259
  }
2178
2260
  }
2179
2261
  //#endregion
2180
- export { SandboxChannel, applyCredentialForwarding, classifyDiskLog, convertHarnessToolModelOutput, createBridgeErrorHandler, createBridgeStartupError, createBridgeToken, createCredentialRequestTransformation, createReadBridgeAsset, drainBridgeProcessStream, experimental_createBridgeUserMessageSubmitter, formatBridgeError, forwardBridgeProcessStream, generateSandboxCredentialPlaceholder, getAiGatewayAuthFromEnv, getJwtExpiresAt, getRestrictedSandboxSession, isAccessTokenExpiringSoon, isHarnessAuthenticationEnvironment, isLinux, isMacOS, isSandboxCredentialPlaceholder, isWindows, logBridgeError, markBridgeStarting, maskSandboxCredentials, normalizeHarnessToolModelOutput, parseJwtPayload, readLinuxSecretServicePassword, readMacOSKeychainPassword, readWindowsCredentialManagerPassword, refreshOAuthAccessToken, resolveSandboxCredentialEnvironment, resolveSandboxDefaultWorkingDirectory, resolveSandboxHomeDir, shellQuote, shouldResolveNativeSubscription, sleep, waitForBridgeReady, warnCredentialBrokeringUnavailable, withBridgeToken, writeInstructions, writeSkills };
2262
+ export { SandboxChannel, applyCredentialForwarding, classifyDiskLog, convertHarnessToolModelOutput, createBridgeErrorHandler, createBridgeStartupError, createBridgeToken, createCredentialRequestTransformation, createReadBridgeAsset, drainBridgeProcessStream, experimental_createBridgeUserMessageSubmitter, extractHarnessPromptContent, formatBridgeError, forwardBridgeProcessStream, generateSandboxCredentialPlaceholder, getAiGatewayAuthFromEnv, getJwtExpiresAt, getRestrictedSandboxSession, harnessPromptContentSchema, isAccessTokenExpiringSoon, isHarnessAuthenticationEnvironment, isLinux, isMacOS, isSandboxCredentialPlaceholder, isWindows, logBridgeError, markBridgeStarting, maskSandboxCredentials, normalizeHarnessToolModelOutput, parseJwtPayload, readLinuxSecretServicePassword, readMacOSKeychainPassword, readWindowsCredentialManagerPassword, refreshOAuthAccessToken, resolveSandboxCredentialEnvironment, resolveSandboxDefaultWorkingDirectory, resolveSandboxHomeDir, shellQuote, shouldResolveNativeSubscription, sleep, waitForBridgeReady, warnCredentialBrokeringUnavailable, withBridgeToken, writeInstructions, writeSkills };
2181
2263
 
2182
2264
  //# sourceMappingURL=index.js.map