@evermore.work/adapter-utils 2026.509.0-canary.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 (93) hide show
  1. package/dist/billing.d.ts +2 -0
  2. package/dist/billing.d.ts.map +1 -0
  3. package/dist/billing.js +16 -0
  4. package/dist/billing.js.map +1 -0
  5. package/dist/billing.test.d.ts +2 -0
  6. package/dist/billing.test.d.ts.map +1 -0
  7. package/dist/billing.test.js +14 -0
  8. package/dist/billing.test.js.map +1 -0
  9. package/dist/command-managed-runtime.d.ts +45 -0
  10. package/dist/command-managed-runtime.d.ts.map +1 -0
  11. package/dist/command-managed-runtime.js +164 -0
  12. package/dist/command-managed-runtime.js.map +1 -0
  13. package/dist/command-managed-runtime.test.d.ts +2 -0
  14. package/dist/command-managed-runtime.test.d.ts.map +1 -0
  15. package/dist/command-managed-runtime.test.js +102 -0
  16. package/dist/command-managed-runtime.test.js.map +1 -0
  17. package/dist/command-redaction.d.ts +3 -0
  18. package/dist/command-redaction.d.ts.map +1 -0
  19. package/dist/command-redaction.js +17 -0
  20. package/dist/command-redaction.js.map +1 -0
  21. package/dist/execution-target-sandbox.test.d.ts +2 -0
  22. package/dist/execution-target-sandbox.test.d.ts.map +1 -0
  23. package/dist/execution-target-sandbox.test.js +392 -0
  24. package/dist/execution-target-sandbox.test.js.map +1 -0
  25. package/dist/execution-target.d.ts +150 -0
  26. package/dist/execution-target.d.ts.map +1 -0
  27. package/dist/execution-target.js +791 -0
  28. package/dist/execution-target.js.map +1 -0
  29. package/dist/execution-target.test.d.ts +2 -0
  30. package/dist/execution-target.test.d.ts.map +1 -0
  31. package/dist/execution-target.test.js +314 -0
  32. package/dist/execution-target.test.js.map +1 -0
  33. package/dist/index.d.ts +8 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +5 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/log-redaction.d.ts +9 -0
  38. package/dist/log-redaction.d.ts.map +1 -0
  39. package/dist/log-redaction.js +88 -0
  40. package/dist/log-redaction.js.map +1 -0
  41. package/dist/remote-execution-env.d.ts +2 -0
  42. package/dist/remote-execution-env.d.ts.map +1 -0
  43. package/dist/remote-execution-env.js +46 -0
  44. package/dist/remote-execution-env.js.map +1 -0
  45. package/dist/remote-managed-runtime.d.ts +31 -0
  46. package/dist/remote-managed-runtime.d.ts.map +1 -0
  47. package/dist/remote-managed-runtime.js +81 -0
  48. package/dist/remote-managed-runtime.js.map +1 -0
  49. package/dist/sandbox-callback-bridge.d.ts +132 -0
  50. package/dist/sandbox-callback-bridge.d.ts.map +1 -0
  51. package/dist/sandbox-callback-bridge.js +925 -0
  52. package/dist/sandbox-callback-bridge.js.map +1 -0
  53. package/dist/sandbox-callback-bridge.test.d.ts +2 -0
  54. package/dist/sandbox-callback-bridge.test.d.ts.map +1 -0
  55. package/dist/sandbox-callback-bridge.test.js +719 -0
  56. package/dist/sandbox-callback-bridge.test.js.map +1 -0
  57. package/dist/sandbox-managed-runtime.d.ts +54 -0
  58. package/dist/sandbox-managed-runtime.d.ts.map +1 -0
  59. package/dist/sandbox-managed-runtime.js +234 -0
  60. package/dist/sandbox-managed-runtime.js.map +1 -0
  61. package/dist/sandbox-managed-runtime.test.d.ts +2 -0
  62. package/dist/sandbox-managed-runtime.test.d.ts.map +1 -0
  63. package/dist/sandbox-managed-runtime.test.js +118 -0
  64. package/dist/sandbox-managed-runtime.test.js.map +1 -0
  65. package/dist/sandbox-shell.d.ts +2 -0
  66. package/dist/sandbox-shell.d.ts.map +1 -0
  67. package/dist/sandbox-shell.js +4 -0
  68. package/dist/sandbox-shell.js.map +1 -0
  69. package/dist/server-utils.d.ts +253 -0
  70. package/dist/server-utils.d.ts.map +1 -0
  71. package/dist/server-utils.js +1522 -0
  72. package/dist/server-utils.js.map +1 -0
  73. package/dist/server-utils.test.d.ts +2 -0
  74. package/dist/server-utils.test.d.ts.map +1 -0
  75. package/dist/server-utils.test.js +685 -0
  76. package/dist/server-utils.test.js.map +1 -0
  77. package/dist/session-compaction.d.ts +25 -0
  78. package/dist/session-compaction.d.ts.map +1 -0
  79. package/dist/session-compaction.js +154 -0
  80. package/dist/session-compaction.js.map +1 -0
  81. package/dist/ssh-fixture.test.d.ts +2 -0
  82. package/dist/ssh-fixture.test.d.ts.map +1 -0
  83. package/dist/ssh-fixture.test.js +214 -0
  84. package/dist/ssh-fixture.test.js.map +1 -0
  85. package/dist/ssh.d.ts +111 -0
  86. package/dist/ssh.d.ts.map +1 -0
  87. package/dist/ssh.js +1098 -0
  88. package/dist/ssh.js.map +1 -0
  89. package/dist/types.d.ts +465 -0
  90. package/dist/types.d.ts.map +1 -0
  91. package/dist/types.js +5 -0
  92. package/dist/types.js.map +1 -0
  93. package/package.json +41 -0
@@ -0,0 +1,81 @@
1
+ import path from "node:path";
2
+ import { prepareWorkspaceForSshExecution, restoreWorkspaceFromSshExecution, syncDirectoryToSsh, } from "./ssh.js";
3
+ function asObject(value) {
4
+ return value && typeof value === "object" && !Array.isArray(value)
5
+ ? value
6
+ : {};
7
+ }
8
+ function asString(value) {
9
+ return typeof value === "string" ? value : "";
10
+ }
11
+ function asNumber(value) {
12
+ return typeof value === "number" ? value : Number(value);
13
+ }
14
+ export function buildRemoteExecutionSessionIdentity(spec) {
15
+ if (!spec)
16
+ return null;
17
+ return {
18
+ transport: "ssh",
19
+ host: spec.host,
20
+ port: spec.port,
21
+ username: spec.username,
22
+ remoteCwd: spec.remoteCwd,
23
+ };
24
+ }
25
+ export function remoteExecutionSessionMatches(saved, current) {
26
+ const currentIdentity = buildRemoteExecutionSessionIdentity(current);
27
+ if (!currentIdentity)
28
+ return false;
29
+ const parsedSaved = asObject(saved);
30
+ return (asString(parsedSaved.transport) === currentIdentity.transport &&
31
+ asString(parsedSaved.host) === currentIdentity.host &&
32
+ asNumber(parsedSaved.port) === currentIdentity.port &&
33
+ asString(parsedSaved.username) === currentIdentity.username &&
34
+ asString(parsedSaved.remoteCwd) === currentIdentity.remoteCwd);
35
+ }
36
+ export async function prepareRemoteManagedRuntime(input) {
37
+ const workspaceRemoteDir = input.workspaceRemoteDir ?? input.spec.remoteCwd;
38
+ const runtimeRootDir = path.posix.join(workspaceRemoteDir, ".evermore-runtime", input.adapterKey);
39
+ await prepareWorkspaceForSshExecution({
40
+ spec: input.spec,
41
+ localDir: input.workspaceLocalDir,
42
+ remoteDir: workspaceRemoteDir,
43
+ });
44
+ const assetDirs = {};
45
+ try {
46
+ for (const asset of input.assets ?? []) {
47
+ const remoteDir = path.posix.join(runtimeRootDir, asset.key);
48
+ assetDirs[asset.key] = remoteDir;
49
+ await syncDirectoryToSsh({
50
+ spec: input.spec,
51
+ localDir: asset.localDir,
52
+ remoteDir,
53
+ followSymlinks: asset.followSymlinks,
54
+ exclude: asset.exclude,
55
+ });
56
+ }
57
+ }
58
+ catch (error) {
59
+ await restoreWorkspaceFromSshExecution({
60
+ spec: input.spec,
61
+ localDir: input.workspaceLocalDir,
62
+ remoteDir: workspaceRemoteDir,
63
+ });
64
+ throw error;
65
+ }
66
+ return {
67
+ spec: input.spec,
68
+ workspaceLocalDir: input.workspaceLocalDir,
69
+ workspaceRemoteDir,
70
+ runtimeRootDir,
71
+ assetDirs,
72
+ restoreWorkspace: async () => {
73
+ await restoreWorkspaceFromSshExecution({
74
+ spec: input.spec,
75
+ localDir: input.workspaceLocalDir,
76
+ remoteDir: workspaceRemoteDir,
77
+ });
78
+ },
79
+ };
80
+ }
81
+ //# sourceMappingURL=remote-managed-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-managed-runtime.js","sourceRoot":"","sources":["../src/remote-managed-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ import type { CommandManagedRuntimeRunner } from "./command-managed-runtime.js";
2
+ export declare const DEFAULT_SANDBOX_CALLBACK_BRIDGE_MAX_BODY_BYTES: number;
3
+ export interface SandboxCallbackBridgeRouteRule {
4
+ method: string;
5
+ path: RegExp;
6
+ }
7
+ export declare const DEFAULT_SANDBOX_CALLBACK_BRIDGE_ROUTE_ALLOWLIST: readonly SandboxCallbackBridgeRouteRule[];
8
+ export declare const DEFAULT_SANDBOX_CALLBACK_BRIDGE_HEADER_ALLOWLIST: readonly ["accept", "content-type", "if-match", "if-none-match"];
9
+ export interface SandboxCallbackBridgeRequest {
10
+ id: string;
11
+ method: string;
12
+ path: string;
13
+ query: string;
14
+ headers: Record<string, string>;
15
+ /**
16
+ * UTF-8 body contents. The bridge rejects non-JSON request bodies; binary
17
+ * payloads are intentionally out of scope for this queue protocol.
18
+ */
19
+ body: string;
20
+ createdAt: string;
21
+ }
22
+ export interface SandboxCallbackBridgeResponse {
23
+ id: string;
24
+ status: number;
25
+ headers: Record<string, string>;
26
+ body: string;
27
+ completedAt: string;
28
+ }
29
+ export interface SandboxCallbackBridgeAsset {
30
+ localDir: string;
31
+ entrypoint: string;
32
+ cleanup(): Promise<void>;
33
+ }
34
+ export interface SandboxCallbackBridgeDirectories {
35
+ rootDir: string;
36
+ requestsDir: string;
37
+ responsesDir: string;
38
+ logsDir: string;
39
+ readyFile: string;
40
+ pidFile: string;
41
+ logFile: string;
42
+ }
43
+ export interface SandboxCallbackBridgeQueueClient {
44
+ makeDir(remotePath: string): Promise<void>;
45
+ listJsonFiles(remotePath: string): Promise<string[]>;
46
+ readTextFile(remotePath: string): Promise<string>;
47
+ writeTextFile(remotePath: string, body: string): Promise<void>;
48
+ writeResponseFile?(responsePath: string, body: string, options?: {
49
+ requestPath?: string | null;
50
+ }): Promise<{
51
+ wrote: boolean;
52
+ }>;
53
+ rename(fromPath: string, toPath: string): Promise<void>;
54
+ remove(remotePath: string): Promise<void>;
55
+ }
56
+ export interface SandboxCallbackBridgeWorkerHandle {
57
+ stop(options?: {
58
+ drainTimeoutMs?: number;
59
+ }): Promise<void>;
60
+ }
61
+ export interface StartedSandboxCallbackBridgeServer {
62
+ baseUrl: string;
63
+ host: string;
64
+ port: number;
65
+ pid: number;
66
+ directories: SandboxCallbackBridgeDirectories;
67
+ stop(): Promise<void>;
68
+ }
69
+ export declare function createSandboxCallbackBridgeToken(bytes?: number): string;
70
+ export declare function authorizeSandboxCallbackBridgeRequestWithRoutes(request: Pick<SandboxCallbackBridgeRequest, "method" | "path">, routes?: readonly SandboxCallbackBridgeRouteRule[]): string | null;
71
+ export declare function sanitizeSandboxCallbackBridgeHeaders(headers: Record<string, string>, allowlist?: readonly string[]): Record<string, string>;
72
+ export declare function sandboxCallbackBridgeDirectories(rootDir: string): SandboxCallbackBridgeDirectories;
73
+ export declare function buildSandboxCallbackBridgeEnv(input: {
74
+ queueDir: string;
75
+ bridgeToken: string;
76
+ host?: string;
77
+ port?: number | null;
78
+ pollIntervalMs?: number | null;
79
+ responseTimeoutMs?: number | null;
80
+ maxQueueDepth?: number | null;
81
+ maxBodyBytes?: number | null;
82
+ }): Record<string, string>;
83
+ export declare function createSandboxCallbackBridgeAsset(): Promise<SandboxCallbackBridgeAsset>;
84
+ export declare function createFileSystemSandboxCallbackBridgeQueueClient(): SandboxCallbackBridgeQueueClient;
85
+ export declare function createCommandManagedSandboxCallbackBridgeQueueClient(input: {
86
+ runner: CommandManagedRuntimeRunner;
87
+ remoteCwd: string;
88
+ timeoutMs?: number | null;
89
+ shellCommand?: "bash" | "sh" | null;
90
+ }): SandboxCallbackBridgeQueueClient;
91
+ export declare function startSandboxCallbackBridgeWorker(input: {
92
+ client: SandboxCallbackBridgeQueueClient;
93
+ queueDir: string;
94
+ pollIntervalMs?: number | null;
95
+ authorizeRequest?: (request: SandboxCallbackBridgeRequest) => string | null | Promise<string | null>;
96
+ handleRequest: (request: SandboxCallbackBridgeRequest) => Promise<{
97
+ status: number;
98
+ headers?: Record<string, string>;
99
+ body?: string;
100
+ }>;
101
+ maxBodyBytes?: number | null;
102
+ }): Promise<SandboxCallbackBridgeWorkerHandle>;
103
+ export declare function syncSandboxCallbackBridgeEntrypoint(input: {
104
+ runner: CommandManagedRuntimeRunner;
105
+ remoteCwd: string;
106
+ assetRemoteDir: string;
107
+ bridgeAsset: SandboxCallbackBridgeAsset;
108
+ timeoutMs?: number | null;
109
+ shellCommand?: "bash" | "sh" | null;
110
+ }): Promise<{
111
+ remoteEntrypoint: string;
112
+ sha256: string;
113
+ uploaded: boolean;
114
+ }>;
115
+ export declare function startSandboxCallbackBridgeServer(input: {
116
+ runner: CommandManagedRuntimeRunner;
117
+ remoteCwd: string;
118
+ assetRemoteDir: string;
119
+ queueDir: string;
120
+ bridgeToken: string;
121
+ bridgeAsset?: SandboxCallbackBridgeAsset | null;
122
+ host?: string;
123
+ port?: number | null;
124
+ pollIntervalMs?: number | null;
125
+ responseTimeoutMs?: number | null;
126
+ timeoutMs?: number | null;
127
+ nodeCommand?: string;
128
+ shellCommand?: "bash" | "sh" | null;
129
+ maxQueueDepth?: number | null;
130
+ maxBodyBytes?: number | null;
131
+ }): Promise<StartedSandboxCallbackBridgeServer>;
132
+ //# sourceMappingURL=sandbox-callback-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-callback-bridge.d.ts","sourceRoot":"","sources":["../src/sandbox-callback-bridge.ts"],"names":[],"mappings":"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"}