@uncensoredcode/openbridge 0.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.
Files changed (145) hide show
  1. package/README.md +117 -0
  2. package/bin/openbridge.js +10 -0
  3. package/package.json +85 -0
  4. package/packages/cli/dist/args.d.ts +30 -0
  5. package/packages/cli/dist/args.js +160 -0
  6. package/packages/cli/dist/cli.d.ts +2 -0
  7. package/packages/cli/dist/cli.js +9 -0
  8. package/packages/cli/dist/index.d.ts +26 -0
  9. package/packages/cli/dist/index.js +76 -0
  10. package/packages/runtime/dist/assistant-protocol.d.ts +34 -0
  11. package/packages/runtime/dist/assistant-protocol.js +121 -0
  12. package/packages/runtime/dist/execution/in-process.d.ts +14 -0
  13. package/packages/runtime/dist/execution/in-process.js +45 -0
  14. package/packages/runtime/dist/execution/types.d.ts +49 -0
  15. package/packages/runtime/dist/execution/types.js +20 -0
  16. package/packages/runtime/dist/index.d.ts +86 -0
  17. package/packages/runtime/dist/index.js +60 -0
  18. package/packages/runtime/dist/normalizers/index.d.ts +6 -0
  19. package/packages/runtime/dist/normalizers/index.js +12 -0
  20. package/packages/runtime/dist/normalizers/legacy-packet.d.ts +6 -0
  21. package/packages/runtime/dist/normalizers/legacy-packet.js +131 -0
  22. package/packages/runtime/dist/output-sanitizer.d.ts +23 -0
  23. package/packages/runtime/dist/output-sanitizer.js +78 -0
  24. package/packages/runtime/dist/packet-extractor.d.ts +17 -0
  25. package/packages/runtime/dist/packet-extractor.js +43 -0
  26. package/packages/runtime/dist/packet-normalizer.d.ts +21 -0
  27. package/packages/runtime/dist/packet-normalizer.js +47 -0
  28. package/packages/runtime/dist/prompt-compiler.d.ts +28 -0
  29. package/packages/runtime/dist/prompt-compiler.js +301 -0
  30. package/packages/runtime/dist/protocol.d.ts +44 -0
  31. package/packages/runtime/dist/protocol.js +165 -0
  32. package/packages/runtime/dist/provider-failure.d.ts +52 -0
  33. package/packages/runtime/dist/provider-failure.js +236 -0
  34. package/packages/runtime/dist/provider.d.ts +40 -0
  35. package/packages/runtime/dist/provider.js +1 -0
  36. package/packages/runtime/dist/runtime.d.ts +86 -0
  37. package/packages/runtime/dist/runtime.js +462 -0
  38. package/packages/runtime/dist/session-bound-provider.d.ts +52 -0
  39. package/packages/runtime/dist/session-bound-provider.js +366 -0
  40. package/packages/runtime/dist/tool-name-aliases.d.ts +5 -0
  41. package/packages/runtime/dist/tool-name-aliases.js +13 -0
  42. package/packages/runtime/dist/tools/bash.d.ts +9 -0
  43. package/packages/runtime/dist/tools/bash.js +157 -0
  44. package/packages/runtime/dist/tools/edit.d.ts +9 -0
  45. package/packages/runtime/dist/tools/edit.js +94 -0
  46. package/packages/runtime/dist/tools/index.d.ts +39 -0
  47. package/packages/runtime/dist/tools/index.js +27 -0
  48. package/packages/runtime/dist/tools/list-dir.d.ts +9 -0
  49. package/packages/runtime/dist/tools/list-dir.js +127 -0
  50. package/packages/runtime/dist/tools/read.d.ts +9 -0
  51. package/packages/runtime/dist/tools/read.js +56 -0
  52. package/packages/runtime/dist/tools/registry.d.ts +15 -0
  53. package/packages/runtime/dist/tools/registry.js +38 -0
  54. package/packages/runtime/dist/tools/runtime-path.d.ts +7 -0
  55. package/packages/runtime/dist/tools/runtime-path.js +22 -0
  56. package/packages/runtime/dist/tools/search-files.d.ts +9 -0
  57. package/packages/runtime/dist/tools/search-files.js +149 -0
  58. package/packages/runtime/dist/tools/text-file.d.ts +32 -0
  59. package/packages/runtime/dist/tools/text-file.js +101 -0
  60. package/packages/runtime/dist/tools/workspace-path.d.ts +17 -0
  61. package/packages/runtime/dist/tools/workspace-path.js +70 -0
  62. package/packages/runtime/dist/tools/write.d.ts +9 -0
  63. package/packages/runtime/dist/tools/write.js +59 -0
  64. package/packages/server/dist/bridge/bridge-model-catalog.d.ts +56 -0
  65. package/packages/server/dist/bridge/bridge-model-catalog.js +100 -0
  66. package/packages/server/dist/bridge/bridge-runtime-service.d.ts +61 -0
  67. package/packages/server/dist/bridge/bridge-runtime-service.js +1386 -0
  68. package/packages/server/dist/bridge/chat-completions/chat-completion-service.d.ts +127 -0
  69. package/packages/server/dist/bridge/chat-completions/chat-completion-service.js +1026 -0
  70. package/packages/server/dist/bridge/index.d.ts +335 -0
  71. package/packages/server/dist/bridge/index.js +45 -0
  72. package/packages/server/dist/bridge/live-provider-extraction-canary.d.ts +69 -0
  73. package/packages/server/dist/bridge/live-provider-extraction-canary.js +186 -0
  74. package/packages/server/dist/bridge/providers/generic-provider-transport.d.ts +53 -0
  75. package/packages/server/dist/bridge/providers/generic-provider-transport.js +973 -0
  76. package/packages/server/dist/bridge/providers/provider-session-resolver.d.ts +17 -0
  77. package/packages/server/dist/bridge/providers/provider-session-resolver.js +95 -0
  78. package/packages/server/dist/bridge/providers/provider-streams.d.ts +80 -0
  79. package/packages/server/dist/bridge/providers/provider-streams.js +844 -0
  80. package/packages/server/dist/bridge/providers/provider-transport-profile.d.ts +194 -0
  81. package/packages/server/dist/bridge/providers/provider-transport-profile.js +198 -0
  82. package/packages/server/dist/bridge/providers/web-provider-transport.d.ts +30 -0
  83. package/packages/server/dist/bridge/providers/web-provider-transport.js +151 -0
  84. package/packages/server/dist/bridge/state/file-bridge-state-store.d.ts +36 -0
  85. package/packages/server/dist/bridge/state/file-bridge-state-store.js +164 -0
  86. package/packages/server/dist/bridge/stores/local-session-package-store.d.ts +23 -0
  87. package/packages/server/dist/bridge/stores/local-session-package-store.js +548 -0
  88. package/packages/server/dist/bridge/stores/provider-store.d.ts +94 -0
  89. package/packages/server/dist/bridge/stores/provider-store.js +143 -0
  90. package/packages/server/dist/bridge/stores/session-backed-provider-store.d.ts +7 -0
  91. package/packages/server/dist/bridge/stores/session-backed-provider-store.js +26 -0
  92. package/packages/server/dist/bridge/stores/session-package-store.d.ts +286 -0
  93. package/packages/server/dist/bridge/stores/session-package-store.js +1527 -0
  94. package/packages/server/dist/bridge/stores/session-store.d.ts +120 -0
  95. package/packages/server/dist/bridge/stores/session-store.js +139 -0
  96. package/packages/server/dist/cli/index.d.ts +9 -0
  97. package/packages/server/dist/cli/index.js +6 -0
  98. package/packages/server/dist/cli/main.d.ts +2 -0
  99. package/packages/server/dist/cli/main.js +9 -0
  100. package/packages/server/dist/cli/run-bridge-server-cli.d.ts +54 -0
  101. package/packages/server/dist/cli/run-bridge-server-cli.js +371 -0
  102. package/packages/server/dist/client/bridge-api-client.d.ts +61 -0
  103. package/packages/server/dist/client/bridge-api-client.js +267 -0
  104. package/packages/server/dist/client/index.d.ts +11 -0
  105. package/packages/server/dist/client/index.js +11 -0
  106. package/packages/server/dist/config/bridge-server-config.d.ts +52 -0
  107. package/packages/server/dist/config/bridge-server-config.js +118 -0
  108. package/packages/server/dist/config/index.d.ts +20 -0
  109. package/packages/server/dist/config/index.js +8 -0
  110. package/packages/server/dist/http/bridge-api-route-context.d.ts +14 -0
  111. package/packages/server/dist/http/bridge-api-route-context.js +1 -0
  112. package/packages/server/dist/http/create-bridge-api-server.d.ts +72 -0
  113. package/packages/server/dist/http/create-bridge-api-server.js +225 -0
  114. package/packages/server/dist/http/index.d.ts +5 -0
  115. package/packages/server/dist/http/index.js +5 -0
  116. package/packages/server/dist/http/parse-request.d.ts +6 -0
  117. package/packages/server/dist/http/parse-request.js +27 -0
  118. package/packages/server/dist/http/register-bridge-api-routes.d.ts +7 -0
  119. package/packages/server/dist/http/register-bridge-api-routes.js +17 -0
  120. package/packages/server/dist/http/routes/admin-routes.d.ts +7 -0
  121. package/packages/server/dist/http/routes/admin-routes.js +135 -0
  122. package/packages/server/dist/http/routes/chat-completions-route.d.ts +7 -0
  123. package/packages/server/dist/http/routes/chat-completions-route.js +49 -0
  124. package/packages/server/dist/http/routes/health-routes.d.ts +6 -0
  125. package/packages/server/dist/http/routes/health-routes.js +7 -0
  126. package/packages/server/dist/http/routes/message-routes.d.ts +7 -0
  127. package/packages/server/dist/http/routes/message-routes.js +7 -0
  128. package/packages/server/dist/index.d.ts +85 -0
  129. package/packages/server/dist/index.js +28 -0
  130. package/packages/server/dist/security/bridge-auth.d.ts +9 -0
  131. package/packages/server/dist/security/bridge-auth.js +41 -0
  132. package/packages/server/dist/security/cors-policy.d.ts +5 -0
  133. package/packages/server/dist/security/cors-policy.js +34 -0
  134. package/packages/server/dist/security/index.d.ts +16 -0
  135. package/packages/server/dist/security/index.js +12 -0
  136. package/packages/server/dist/security/redact-sensitive-values.d.ts +19 -0
  137. package/packages/server/dist/security/redact-sensitive-values.js +67 -0
  138. package/packages/server/dist/shared/api-schema.d.ts +133 -0
  139. package/packages/server/dist/shared/api-schema.js +1 -0
  140. package/packages/server/dist/shared/bridge-api-error.d.ts +17 -0
  141. package/packages/server/dist/shared/bridge-api-error.js +19 -0
  142. package/packages/server/dist/shared/index.d.ts +7 -0
  143. package/packages/server/dist/shared/index.js +7 -0
  144. package/packages/server/dist/shared/output.d.ts +5 -0
  145. package/packages/server/dist/shared/output.js +14 -0
@@ -0,0 +1,17 @@
1
+ import type { BridgeProviderSession } from "../state/file-bridge-state-store.ts";
2
+ import type { FileBridgeStateStore } from "../state/file-bridge-state-store.ts";
3
+ import type { SessionPackageStore } from "../stores/session-package-store.ts";
4
+ type BridgeProviderSessionResolver = {
5
+ rootDir: string;
6
+ loadProviderSession(input: {
7
+ providerId: string;
8
+ }): Promise<BridgeProviderSession | null>;
9
+ };
10
+ declare function createBridgeProviderSessionResolver(input: {
11
+ sessionPackageStore?: SessionPackageStore;
12
+ stateStore: FileBridgeStateStore;
13
+ }): BridgeProviderSessionResolver;
14
+ export declare const providerSessionResolverModule: {
15
+ createBridgeProviderSessionResolver: typeof createBridgeProviderSessionResolver;
16
+ };
17
+ export type { BridgeProviderSessionResolver };
@@ -0,0 +1,95 @@
1
+ const DEFAULT_USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome Safari/537.36";
2
+ function createBridgeProviderSessionResolver(input) {
3
+ return {
4
+ rootDir: input.stateStore.rootDir,
5
+ async loadProviderSession({ providerId }) {
6
+ const uploaded = input.sessionPackageStore?.get(providerId);
7
+ const normalizedUploaded = uploaded
8
+ ? normalizeUploadedSessionPackage(providerId, uploaded)
9
+ : null;
10
+ if (normalizedUploaded) {
11
+ return normalizedUploaded;
12
+ }
13
+ const legacyProviderSession = await input.stateStore.loadProviderSession(providerId);
14
+ if (legacyProviderSession) {
15
+ return legacyProviderSession;
16
+ }
17
+ return null;
18
+ }
19
+ };
20
+ }
21
+ function normalizeUploadedSessionPackage(providerId, stored) {
22
+ const cookie = serializeCookies(stored.cookies);
23
+ const userAgent = readHeaderValue(stored.headers, "user-agent") || DEFAULT_USER_AGENT;
24
+ const authorization = readHeaderValue(stored.headers, "authorization");
25
+ const bearerToken = extractBearerToken(authorization);
26
+ const extraHeaders = extractExtraHeaders(stored.headers);
27
+ if (!cookie && !bearerToken && Object.keys(extraHeaders).length === 0) {
28
+ return null;
29
+ }
30
+ return {
31
+ providerId,
32
+ cookie,
33
+ userAgent,
34
+ bearerToken,
35
+ extraHeaders,
36
+ updatedAt: stored.capturedAt
37
+ };
38
+ }
39
+ function serializeCookies(cookies) {
40
+ const parts = [];
41
+ for (const cookie of cookies) {
42
+ if (typeof cookie !== "object" || cookie === null) {
43
+ continue;
44
+ }
45
+ const name = "name" in cookie && typeof cookie.name === "string" ? cookie.name.trim() : "";
46
+ const value = "value" in cookie && typeof cookie.value === "string" ? cookie.value : "";
47
+ if (!name) {
48
+ continue;
49
+ }
50
+ parts.push(`${name}=${value}`);
51
+ }
52
+ return parts.join("; ");
53
+ }
54
+ function readHeaderValue(headers, headerName) {
55
+ const target = headerName.toLowerCase();
56
+ for (const [key, value] of Object.entries(headers)) {
57
+ if (key.toLowerCase() !== target || typeof value !== "string") {
58
+ continue;
59
+ }
60
+ const trimmed = value.trim();
61
+ if (trimmed) {
62
+ return trimmed;
63
+ }
64
+ }
65
+ return "";
66
+ }
67
+ function extractBearerToken(value) {
68
+ if (!value || !/^Bearer\s+/i.test(value)) {
69
+ return "";
70
+ }
71
+ return value.replace(/^Bearer\s+/i, "").trim();
72
+ }
73
+ function extractExtraHeaders(headers) {
74
+ const result = {};
75
+ for (const [key, value] of Object.entries(headers)) {
76
+ if (typeof value !== "string") {
77
+ continue;
78
+ }
79
+ const normalizedKey = key.toLowerCase();
80
+ if (normalizedKey === "authorization" ||
81
+ normalizedKey === "user-agent" ||
82
+ normalizedKey === "cookie") {
83
+ continue;
84
+ }
85
+ const trimmed = value.trim();
86
+ if (!trimmed) {
87
+ continue;
88
+ }
89
+ result[key] = trimmed;
90
+ }
91
+ return result;
92
+ }
93
+ export const providerSessionResolverModule = {
94
+ createBridgeProviderSessionResolver
95
+ };
@@ -0,0 +1,80 @@
1
+ type CollectedProviderCompletion = {
2
+ content: string;
3
+ responseId: string;
4
+ conversationId: string;
5
+ eventCount: number;
6
+ fragmentCount: number;
7
+ };
8
+ type ProviderStreamFragment = {
9
+ content: string;
10
+ responseId: string;
11
+ conversationId: string;
12
+ eventCountDelta: number;
13
+ fragmentCountDelta: number;
14
+ };
15
+ type ProviderStreamEventParser = (parts: string[], rawLine: string, currentResponseId: string, currentConversationId: string) => {
16
+ responseId: string;
17
+ conversationId: string;
18
+ eventCountDelta: number;
19
+ fragmentCountDelta: number;
20
+ };
21
+ declare function collectSseCompletion(stream: ReadableStream<Uint8Array> | null, pushEvent: ProviderStreamEventParser, finalizeContent?: (content: string) => string): Promise<{
22
+ content: string;
23
+ responseId: string;
24
+ conversationId: string;
25
+ eventCount: number;
26
+ fragmentCount: number;
27
+ }>;
28
+ declare function streamSseFragments(stream: ReadableStream<Uint8Array> | null, pushEvent: ProviderStreamEventParser, onComplete?: (completion: CollectedProviderCompletion) => void): AsyncGenerator<ProviderStreamFragment, void, unknown>;
29
+ declare function streamVisibleProviderCompletion(stream: ReadableStream<Uint8Array> | null, pushEvent: ProviderStreamEventParser, onComplete?: (completion: CollectedProviderCompletion) => void): AsyncGenerator<string, void, unknown>;
30
+ declare function createSseJsonEventParser(input: {
31
+ contentPaths: string[];
32
+ responseIdPaths?: string[];
33
+ conversationIdPaths?: string[];
34
+ eventFilters?: Array<{
35
+ path: string;
36
+ equals: string | number | boolean;
37
+ }>;
38
+ }): (parts: string[], rawLine: string, currentResponseId: string, currentConversationId: string) => {
39
+ responseId: string;
40
+ conversationId: string;
41
+ eventCountDelta: number;
42
+ fragmentCountDelta: number;
43
+ };
44
+ declare function collectConnectJsonCompletion(stream: ReadableStream<Uint8Array> | null, input: {
45
+ contentPaths: string[];
46
+ responseIdPaths?: string[];
47
+ conversationIdPaths?: string[];
48
+ eventFilters?: Array<{
49
+ path: string;
50
+ equals: string | number | boolean;
51
+ }>;
52
+ }, finalizeContent?: (content: string) => string): Promise<{
53
+ content: string;
54
+ responseId: string;
55
+ conversationId: string;
56
+ eventCount: number;
57
+ fragmentCount: number;
58
+ }>;
59
+ declare function streamConnectJsonFragments(stream: ReadableStream<Uint8Array> | null, input: {
60
+ contentPaths: string[];
61
+ responseIdPaths?: string[];
62
+ conversationIdPaths?: string[];
63
+ eventFilters?: Array<{
64
+ path: string;
65
+ equals: string | number | boolean;
66
+ }>;
67
+ }, onComplete?: (completion: CollectedProviderCompletion) => void): AsyncGenerator<ProviderStreamFragment, void, unknown>;
68
+ declare function extractIncrementalPacketMessage(content: string): string;
69
+ declare function normalizeLeadingAssistantBlock(content: string): string;
70
+ export declare const providerStreamsModule: {
71
+ collectSseCompletion: typeof collectSseCompletion;
72
+ streamSseFragments: typeof streamSseFragments;
73
+ streamVisibleProviderCompletion: typeof streamVisibleProviderCompletion;
74
+ createSseJsonEventParser: typeof createSseJsonEventParser;
75
+ collectConnectJsonCompletion: typeof collectConnectJsonCompletion;
76
+ streamConnectJsonFragments: typeof streamConnectJsonFragments;
77
+ extractIncrementalPacketMessage: typeof extractIncrementalPacketMessage;
78
+ normalizeLeadingAssistantBlock: typeof normalizeLeadingAssistantBlock;
79
+ };
80
+ export type { CollectedProviderCompletion, ProviderStreamEventParser, ProviderStreamFragment };