@ai-sdk/harness-acp 0.0.0 → 1.0.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +13 -0
  3. package/README.md +70 -3
  4. package/dist/bridge/host-tool-mcp.mjs +302 -0
  5. package/dist/bridge/host-tool-mcp.mjs.map +1 -0
  6. package/dist/bridge/index.mjs +3278 -0
  7. package/dist/bridge/index.mjs.map +1 -0
  8. package/dist/bridge/package.json +12 -0
  9. package/dist/bridge/pnpm-lock.yaml +816 -0
  10. package/dist/index.d.ts +98 -0
  11. package/dist/index.js +2094 -0
  12. package/dist/index.js.map +1 -0
  13. package/package.json +64 -10
  14. package/src/acp-auth.ts +254 -0
  15. package/src/acp-bridge-protocol.ts +13 -0
  16. package/src/acp-harness.ts +160 -0
  17. package/src/index.ts +19 -0
  18. package/src/v1/acp-v1-bridge-protocol.ts +151 -0
  19. package/src/v1/acp-v1-harness.ts +1447 -0
  20. package/src/v1/acp-v1-lifecycle.ts +115 -0
  21. package/src/v1/acp-v1-prompt.ts +122 -0
  22. package/src/v1/acp-v1-settings.ts +98 -0
  23. package/src/v1/acp-v1-skills.ts +228 -0
  24. package/src/v1/acp-v1-turn-start-config.ts +93 -0
  25. package/src/v1/bridge/acp-diagnostics.ts +57 -0
  26. package/src/v1/bridge/acp-stream-capture.ts +152 -0
  27. package/src/v1/bridge/acp-v1-bridge-environment.ts +95 -0
  28. package/src/v1/bridge/create-emit-stream-event.ts +97 -0
  29. package/src/v1/bridge/host-tool-correlation.ts +640 -0
  30. package/src/v1/bridge/host-tool-mcp-server.ts +180 -0
  31. package/src/v1/bridge/host-tool-mcp.ts +185 -0
  32. package/src/v1/bridge/host-tool-relay-client.ts +53 -0
  33. package/src/v1/bridge/host-tool-relay.ts +510 -0
  34. package/src/v1/bridge/index.ts +729 -0
  35. package/src/v1/bridge/package.json +12 -0
  36. package/src/v1/bridge/permission-controller.ts +152 -0
  37. package/src/v1/bridge/permission-mode.ts +163 -0
  38. package/src/v1/bridge/pnpm-lock.yaml +816 -0
  39. package/src/v1/bridge/profile-values.ts +97 -0
  40. package/src/v1/bridge/protocol-configuration.ts +146 -0
  41. package/src/v1/bridge/recovered-session.ts +145 -0
  42. package/src/v1/bridge/refresh-host-tool-catalog.ts +33 -0
  43. package/src/v1/bridge/session-lifecycle.ts +83 -0
  44. package/src/v1/bridge/stream-translator.ts +901 -0
  45. package/src/v1/implementation.ts +282 -0
  46. package/src/v1/index.ts +16 -0
  47. package/src/version.ts +6 -0
  48. package/index.js +0 -1
@@ -0,0 +1,98 @@
1
+ import { HarnessV1PermissionMode, HarnessV1 } from '@ai-sdk/harness';
2
+ import { ToolSet } from '@ai-sdk/provider-utils';
3
+
4
+ type ACPSerializablePrimitive = string | number | boolean | null;
5
+ type ACPSerializableValue = ACPSerializablePrimitive | ReadonlyArray<ACPSerializableValue> | {
6
+ readonly [key: string]: ACPSerializableValue;
7
+ };
8
+ type ACPValueSource = {
9
+ readonly $source: 'gateway-api-key' | 'gateway-base-url' | 'gateway-authorization' | 'client-app' | 'client-app-name' | 'client-app-version';
10
+ readonly prefix?: string;
11
+ readonly suffix?: string;
12
+ readonly ensureSuffix?: string;
13
+ };
14
+ type ACPProfileValue = ACPSerializablePrimitive | ACPValueSource | ReadonlyArray<ACPProfileValue> | {
15
+ readonly [key: string]: ACPProfileValue;
16
+ };
17
+ type ACPNpmLaunchSettings = {
18
+ readonly type: 'npm';
19
+ readonly executable: string;
20
+ readonly args?: ReadonlyArray<string>;
21
+ readonly forwardEnv?: ReadonlyArray<string>;
22
+ /**
23
+ * Runtime environment values that are safe to persist in bootstrap and
24
+ * lifecycle compatibility identity.
25
+ */
26
+ readonly env?: Readonly<Record<string, string>>;
27
+ };
28
+ type ACPSimpleNpmImplementation = ACPNpmLaunchSettings & {
29
+ readonly mode: 'simple';
30
+ readonly packageName: string;
31
+ readonly version: string;
32
+ };
33
+ type ACPLockedNpmImplementation = ACPNpmLaunchSettings & {
34
+ readonly mode: 'locked';
35
+ readonly packageJson: string;
36
+ readonly pnpmLockYaml: string;
37
+ };
38
+ type ACPNpmImplementation = ACPSimpleNpmImplementation | ACPLockedNpmImplementation;
39
+ type ACPAuthentication = {
40
+ readonly methodId: string;
41
+ readonly meta?: Readonly<Record<string, ACPSerializableValue>>;
42
+ readonly clientCapabilities?: Readonly<Record<string, ACPSerializableValue>>;
43
+ };
44
+ type ACPProviderAuthenticationMode = 'auto' | 'direct' | 'ai-gateway';
45
+ type ACPProviderAuthentication = {
46
+ readonly gateway: {
47
+ readonly env: Readonly<Record<string, ACPProfileValue>>;
48
+ };
49
+ };
50
+ type ACPPermissionModeTarget = {
51
+ readonly type: 'session-mode';
52
+ readonly modeId: string;
53
+ } | {
54
+ readonly type: 'session-config-option';
55
+ readonly configId: string;
56
+ readonly value: string | boolean;
57
+ };
58
+ type ACPPermissionModeMapping = Readonly<Record<HarnessV1PermissionMode, ACPPermissionModeTarget | null>>;
59
+ type ACPV1Settings = {
60
+ readonly version?: 'v1';
61
+ readonly harnessId: string;
62
+ readonly auth?: ACPProviderAuthenticationMode;
63
+ readonly implementation: ACPNpmImplementation;
64
+ readonly authentication?: ACPAuthentication;
65
+ readonly providerAuthentication?: ACPProviderAuthentication;
66
+ readonly modelId?: string;
67
+ readonly permissionModeMapping?: ACPPermissionModeMapping;
68
+ readonly session?: {
69
+ readonly meta?: Readonly<Record<string, ACPSerializableValue>>;
70
+ };
71
+ };
72
+
73
+ type ACPAuthOptions = ACPProviderAuthenticationMode;
74
+ type ACPClientApp = {
75
+ readonly name: string;
76
+ readonly version: string;
77
+ };
78
+
79
+ type ACPHarnessSettings<TBuiltinTools extends ToolSet = {}> = {
80
+ readonly builtinTools?: TBuiltinTools;
81
+ readonly port?: number;
82
+ readonly startupTimeoutMs?: number;
83
+ readonly clientApp?: ACPClientApp;
84
+ readonly version?: ACPV1Settings['version'];
85
+ readonly harnessId: ACPV1Settings['harnessId'];
86
+ readonly auth?: ACPV1Settings['auth'];
87
+ readonly implementation: ACPV1Settings['implementation'];
88
+ readonly authentication?: ACPV1Settings['authentication'];
89
+ readonly providerAuthentication?: ACPV1Settings['providerAuthentication'];
90
+ readonly modelId?: ACPV1Settings['modelId'];
91
+ readonly permissionModeMapping?: ACPV1Settings['permissionModeMapping'];
92
+ readonly session?: ACPV1Settings['session'];
93
+ };
94
+ declare function createACP<TBuiltinTools extends ToolSet = {}>(settings: ACPHarnessSettings<TBuiltinTools>): HarnessV1<TBuiltinTools>;
95
+
96
+ declare const VERSION: string;
97
+
98
+ export { type ACPAuthOptions, type ACPAuthentication, type ACPClientApp, type ACPHarnessSettings, type ACPLockedNpmImplementation, type ACPNpmImplementation, type ACPPermissionModeMapping, type ACPPermissionModeTarget, type ACPProfileValue, type ACPProviderAuthentication, type ACPProviderAuthenticationMode, type ACPSerializablePrimitive, type ACPSerializableValue, type ACPSimpleNpmImplementation, type ACPV1Settings, type ACPValueSource, VERSION, createACP };