@compforge/harness-toolbox 0.5.4 → 0.5.6

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 (68) hide show
  1. package/README.md +43 -15
  2. package/dist/{chunk-z15gwjvg.js → chunk-2qgkk7n0.js} +1 -1
  3. package/dist/{chunk-5w85c7cs.js → chunk-361x998p.js} +2 -2
  4. package/dist/{chunk-rkt41za2.js → chunk-68zz17hs.js} +7 -1
  5. package/dist/{chunk-kxpecgy7.js → chunk-6dfcndra.js} +2 -2
  6. package/dist/{chunk-sb5qzv37.js → chunk-6rcyw5ek.js} +1 -1
  7. package/dist/{chunk-56fev9np.js → chunk-81agmerq.js} +2 -2
  8. package/dist/{chunk-0d8vs5q8.js → chunk-91xh8tsr.js} +1 -1
  9. package/dist/{chunk-43mcyrh4.js → chunk-9f9dsjnr.js} +1 -1
  10. package/dist/{chunk-ex429qjt.js → chunk-bkz0dyx5.js} +3 -3
  11. package/dist/{chunk-ae84rzq5.js → chunk-d2y5ewbb.js} +1 -1
  12. package/dist/{chunk-xeft7af0.js → chunk-dfpqr0r9.js} +74 -47
  13. package/dist/{chunk-hbhbragw.js → chunk-erbehkcz.js} +8 -8
  14. package/dist/{chunk-rq5fc007.js → chunk-evb5tj13.js} +11 -8
  15. package/dist/{chunk-3b877a0y.js → chunk-hj14hfvz.js} +3 -3
  16. package/dist/{chunk-dpcge1xt.js → chunk-jt8fn3wg.js} +1 -1
  17. package/dist/{chunk-7m95c7pn.js → chunk-mj6ckk1g.js} +1 -1
  18. package/dist/{chunk-92aacbwh.js → chunk-nhr4za0z.js} +2 -2
  19. package/dist/chunk-nr6ams69.js +50 -0
  20. package/dist/{chunk-18gcp0ck.js → chunk-ps7f1x05.js} +1 -1
  21. package/dist/{chunk-rncagjbc.js → chunk-rybhzd2y.js} +1 -1
  22. package/dist/{chunk-kap6ka3n.js → chunk-s7a3fqzc.js} +3 -3
  23. package/dist/{chunk-mvkxs8d0.js → chunk-v9rcxg0e.js} +1 -1
  24. package/dist/{chunk-xhfbark7.js → chunk-wnykdxz8.js} +2 -2
  25. package/dist/{chunk-ehmx0yhp.js → chunk-xv3nn2vd.js} +3 -3
  26. package/dist/{chunk-njs48b51.js → chunk-ywk81p8a.js} +3 -3
  27. package/dist/connection/acquire.js +2 -2
  28. package/dist/datasource.js +1 -1
  29. package/dist/errors.d.ts +8 -1
  30. package/dist/errors.js +3 -1
  31. package/dist/file/client.js +2 -2
  32. package/dist/file/index.js +4 -4
  33. package/dist/file/local.js +3 -3
  34. package/dist/file/pod.js +3 -3
  35. package/dist/http/client.js +10 -10
  36. package/dist/http/index.js +10 -10
  37. package/dist/kubernetes/client.js +9 -9
  38. package/dist/kubernetes/compute-quantity.js +2 -2
  39. package/dist/kubernetes/compute.js +2 -2
  40. package/dist/kubernetes/environment.js +9 -9
  41. package/dist/kubernetes/exec-transport.d.ts +3 -2
  42. package/dist/kubernetes/exec-transport.js +4 -2
  43. package/dist/kubernetes/executor.js +1 -1
  44. package/dist/kubernetes/pod-log-datasource.js +1 -1
  45. package/dist/kubernetes/port-forward.js +2 -2
  46. package/dist/kubernetes/resource-transport.js +3 -3
  47. package/dist/kubernetes/resources.js +2 -2
  48. package/dist/kubernetes/secret-datasource.js +2 -2
  49. package/dist/kubernetes/service-port-forward.js +3 -3
  50. package/dist/kubernetes/workload.js +2 -2
  51. package/dist/mysql/client.js +10 -10
  52. package/dist/mysql/index.js +11 -11
  53. package/dist/network/connectivity.d.ts +4 -8
  54. package/dist/network/connectivity.js +19 -5
  55. package/dist/network/endpoint.d.ts +9 -0
  56. package/dist/network/endpoint.js +8 -0
  57. package/dist/opensearch/client.js +10 -10
  58. package/dist/opensearch/index.js +10 -10
  59. package/dist/redis/client.js +10 -10
  60. package/dist/redis/index.js +10 -10
  61. package/dist/s3/client.js +10 -10
  62. package/dist/s3/datasource.js +11 -11
  63. package/dist/s3/index.js +11 -11
  64. package/dist/transport/index.js +9 -9
  65. package/dist/transport/lifecycle.js +3 -3
  66. package/dist/transport/pod-relay.js +6 -6
  67. package/dist/transport/service-port-forward.js +7 -7
  68. package/package.json +6 -2
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  ServicePortForwarder
3
- } from "./chunk-0d8vs5q8.js";
3
+ } from "./chunk-91xh8tsr.js";
4
4
  import {
5
5
  KubectlExecutor
6
- } from "./chunk-rq5fc007.js";
6
+ } from "./chunk-evb5tj13.js";
7
7
  import {
8
8
  Transport
9
- } from "./chunk-sb5qzv37.js";
9
+ } from "./chunk-6rcyw5ek.js";
10
10
 
11
11
  // src/transport/service-port-forward.ts
12
12
  import { raceSignal } from "race-signal";
@@ -3,13 +3,13 @@ import {
3
3
  } from "./chunk-5tbzf9wd.js";
4
4
  import {
5
5
  isConnectionNetworkError
6
- } from "./chunk-18gcp0ck.js";
6
+ } from "./chunk-ps7f1x05.js";
7
7
  import {
8
8
  Transport
9
- } from "./chunk-sb5qzv37.js";
9
+ } from "./chunk-6rcyw5ek.js";
10
10
  import {
11
11
  TimeoutError
12
- } from "./chunk-rkt41za2.js";
12
+ } from "./chunk-68zz17hs.js";
13
13
 
14
14
  // src/redis/client.ts
15
15
  import { raceSignal } from "race-signal";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  acquireConnection
3
- } from "../chunk-43mcyrh4.js";
4
- import"../chunk-rkt41za2.js";
3
+ } from "../chunk-9f9dsjnr.js";
4
+ import"../chunk-68zz17hs.js";
5
5
  export {
6
6
  acquireConnection
7
7
  };
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  KubernetesError,
8
8
  ToolboxError
9
- } from "./chunk-rkt41za2.js";
9
+ } from "./chunk-68zz17hs.js";
10
10
  export {
11
11
  clientKey,
12
12
  ToolboxError,
package/dist/errors.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /** Stable toolbox failure semantics; native causes are for debugging, not user reports. */
2
- export type ErrorKind = "connection_failed" | "connection_lost" | "tls_verification_failed" | "authentication_failed" | "permission_denied" | "resource_not_found" | "timeout" | "limit_exceeded" | "invalid_response" | "operation_failed" | "invalid_argument" | "unsupported_operation";
2
+ export type ErrorKind = "connection_failed" | "connection_lost" | "tls_verification_failed" | "authentication_failed" | "permission_denied" | "resource_not_found" | "timeout" | "limit_exceeded" | "invalid_response" | "operation_failed" | "invalid_argument" | "unsupported_operation" | "protocol";
3
3
  export declare class ToolboxError extends Error {
4
4
  readonly kind: ErrorKind;
5
5
  readonly code?: number | string;
@@ -9,6 +9,13 @@ export declare class ToolboxError extends Error {
9
9
  cause?: unknown;
10
10
  });
11
11
  }
12
+ /** Protocol errors retain a specific code; Unsupported denotes a capability gap, not target health. */
13
+ export declare class ProtocolError extends ToolboxError {
14
+ constructor(message: string, options: {
15
+ code: string;
16
+ cause?: unknown;
17
+ });
18
+ }
12
19
  export declare class KubernetesError extends ToolboxError {
13
20
  }
14
21
  export declare class FileError extends ToolboxError {
package/dist/errors.js CHANGED
@@ -1,16 +1,18 @@
1
1
  import {
2
2
  FileError,
3
3
  KubernetesError,
4
+ ProtocolError,
4
5
  TimeoutError,
5
6
  ToolboxError,
6
7
  kubernetesCommandError,
7
8
  kubernetesHttpError
8
- } from "./chunk-rkt41za2.js";
9
+ } from "./chunk-68zz17hs.js";
9
10
  export {
10
11
  kubernetesHttpError,
11
12
  kubernetesCommandError,
12
13
  ToolboxError,
13
14
  TimeoutError,
15
+ ProtocolError,
14
16
  KubernetesError,
15
17
  FileError
16
18
  };
@@ -2,9 +2,9 @@ import {
2
2
  BoundedFileClient,
3
3
  fileClientOptions,
4
4
  filePaths
5
- } from "../chunk-rncagjbc.js";
5
+ } from "../chunk-rybhzd2y.js";
6
6
  import"../chunk-v3hxvnrc.js";
7
- import"../chunk-rkt41za2.js";
7
+ import"../chunk-68zz17hs.js";
8
8
  export {
9
9
  filePaths,
10
10
  fileClientOptions,
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  PodFileClient,
3
3
  PodFileDataSource
4
- } from "../chunk-xhfbark7.js";
4
+ } from "../chunk-wnykdxz8.js";
5
5
  import {
6
6
  LocalFileClient,
7
7
  LocalFileDataSource
8
- } from "../chunk-92aacbwh.js";
9
- import"../chunk-rncagjbc.js";
8
+ } from "../chunk-nhr4za0z.js";
9
+ import"../chunk-rybhzd2y.js";
10
10
  import"../chunk-v3hxvnrc.js";
11
11
  import {
12
12
  FileError
13
- } from "../chunk-rkt41za2.js";
13
+ } from "../chunk-68zz17hs.js";
14
14
 
15
15
  // src/file/index.ts
16
16
  import { FileDataSource } from "@compforge/harness-common";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  LocalFileClient,
3
3
  LocalFileDataSource
4
- } from "../chunk-92aacbwh.js";
5
- import"../chunk-rncagjbc.js";
4
+ } from "../chunk-nhr4za0z.js";
5
+ import"../chunk-rybhzd2y.js";
6
6
  import"../chunk-v3hxvnrc.js";
7
- import"../chunk-rkt41za2.js";
7
+ import"../chunk-68zz17hs.js";
8
8
  export {
9
9
  LocalFileDataSource,
10
10
  LocalFileClient
package/dist/file/pod.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  PodFileClient,
3
3
  PodFileDataSource
4
- } from "../chunk-xhfbark7.js";
5
- import"../chunk-rncagjbc.js";
4
+ } from "../chunk-wnykdxz8.js";
5
+ import"../chunk-rybhzd2y.js";
6
6
  import"../chunk-v3hxvnrc.js";
7
- import"../chunk-rkt41za2.js";
7
+ import"../chunk-68zz17hs.js";
8
8
  export {
9
9
  PodFileDataSource,
10
10
  PodFileClient
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  HttpClient
3
- } from "../chunk-56fev9np.js";
4
- import"../chunk-18gcp0ck.js";
5
- import"../chunk-kap6ka3n.js";
3
+ } from "../chunk-81agmerq.js";
4
+ import"../chunk-ps7f1x05.js";
5
+ import"../chunk-s7a3fqzc.js";
6
6
  import"../chunk-v3hxvnrc.js";
7
7
  import"../chunk-c2b2jwm4.js";
8
8
  import"../chunk-ssj93brx.js";
9
- import"../chunk-ehmx0yhp.js";
10
- import"../chunk-0d8vs5q8.js";
9
+ import"../chunk-xv3nn2vd.js";
10
+ import"../chunk-91xh8tsr.js";
11
11
  import"../chunk-xgnz10sr.js";
12
12
  import"../chunk-6fnhzhdb.js";
13
- import"../chunk-mvkxs8d0.js";
14
- import"../chunk-rq5fc007.js";
13
+ import"../chunk-v9rcxg0e.js";
14
+ import"../chunk-evb5tj13.js";
15
15
  import"../chunk-9shz0bw1.js";
16
- import"../chunk-sb5qzv37.js";
17
- import"../chunk-43mcyrh4.js";
18
- import"../chunk-rkt41za2.js";
16
+ import"../chunk-6rcyw5ek.js";
17
+ import"../chunk-9f9dsjnr.js";
18
+ import"../chunk-68zz17hs.js";
19
19
  export {
20
20
  HttpClient
21
21
  };
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  HttpClient
3
- } from "../chunk-56fev9np.js";
4
- import"../chunk-18gcp0ck.js";
5
- import"../chunk-kap6ka3n.js";
3
+ } from "../chunk-81agmerq.js";
4
+ import"../chunk-ps7f1x05.js";
5
+ import"../chunk-s7a3fqzc.js";
6
6
  import"../chunk-v3hxvnrc.js";
7
7
  import"../chunk-c2b2jwm4.js";
8
8
  import"../chunk-ssj93brx.js";
9
- import"../chunk-ehmx0yhp.js";
10
- import"../chunk-0d8vs5q8.js";
9
+ import"../chunk-xv3nn2vd.js";
10
+ import"../chunk-91xh8tsr.js";
11
11
  import"../chunk-xgnz10sr.js";
12
12
  import"../chunk-6fnhzhdb.js";
13
- import"../chunk-mvkxs8d0.js";
14
- import"../chunk-rq5fc007.js";
13
+ import"../chunk-v9rcxg0e.js";
14
+ import"../chunk-evb5tj13.js";
15
15
  import"../chunk-9shz0bw1.js";
16
- import"../chunk-sb5qzv37.js";
17
- import"../chunk-43mcyrh4.js";
18
- import"../chunk-rkt41za2.js";
16
+ import"../chunk-6rcyw5ek.js";
17
+ import"../chunk-9f9dsjnr.js";
18
+ import"../chunk-68zz17hs.js";
19
19
  export {
20
20
  HttpClient
21
21
  };
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  KubernetesClient
3
- } from "../chunk-hbhbragw.js";
4
- import"../chunk-5w85c7cs.js";
5
- import"../chunk-dpcge1xt.js";
6
- import"../chunk-xeft7af0.js";
7
- import"../chunk-ae84rzq5.js";
3
+ } from "../chunk-erbehkcz.js";
4
+ import"../chunk-d2y5ewbb.js";
5
+ import"../chunk-361x998p.js";
6
+ import"../chunk-jt8fn3wg.js";
7
+ import"../chunk-dfpqr0r9.js";
8
8
  import"../chunk-a9htb6cr.js";
9
9
  import"../chunk-v3hxvnrc.js";
10
- import"../chunk-0d8vs5q8.js";
10
+ import"../chunk-91xh8tsr.js";
11
11
  import"../chunk-xgnz10sr.js";
12
12
  import"../chunk-6fnhzhdb.js";
13
- import"../chunk-mvkxs8d0.js";
14
- import"../chunk-rq5fc007.js";
13
+ import"../chunk-v9rcxg0e.js";
14
+ import"../chunk-evb5tj13.js";
15
15
  import"../chunk-9shz0bw1.js";
16
- import"../chunk-rkt41za2.js";
16
+ import"../chunk-68zz17hs.js";
17
17
  export {
18
18
  KubernetesClient
19
19
  };
@@ -8,8 +8,8 @@ import {
8
8
  sum,
9
9
  summarizePods,
10
10
  zero
11
- } from "../chunk-z15gwjvg.js";
12
- import"../chunk-rkt41za2.js";
11
+ } from "../chunk-2qgkk7n0.js";
12
+ import"../chunk-68zz17hs.js";
13
13
  export {
14
14
  zero,
15
15
  summarizePods,
@@ -6,10 +6,10 @@ import {
6
6
  requiredString,
7
7
  sum,
8
8
  summarizePods
9
- } from "../chunk-z15gwjvg.js";
9
+ } from "../chunk-2qgkk7n0.js";
10
10
  import {
11
11
  KubernetesError
12
- } from "../chunk-rkt41za2.js";
12
+ } from "../chunk-68zz17hs.js";
13
13
 
14
14
  // src/kubernetes/compute.ts
15
15
  function requestBudget(options) {
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  KubernetesClient
3
- } from "../chunk-hbhbragw.js";
4
- import"../chunk-5w85c7cs.js";
5
- import"../chunk-dpcge1xt.js";
6
- import"../chunk-xeft7af0.js";
7
- import"../chunk-ae84rzq5.js";
3
+ } from "../chunk-erbehkcz.js";
4
+ import"../chunk-d2y5ewbb.js";
5
+ import"../chunk-361x998p.js";
6
+ import"../chunk-jt8fn3wg.js";
7
+ import"../chunk-dfpqr0r9.js";
8
8
  import {
9
9
  clientKey
10
10
  } from "../chunk-a9htb6cr.js";
11
11
  import"../chunk-v3hxvnrc.js";
12
- import"../chunk-0d8vs5q8.js";
12
+ import"../chunk-91xh8tsr.js";
13
13
  import"../chunk-xgnz10sr.js";
14
14
  import"../chunk-6fnhzhdb.js";
15
- import"../chunk-mvkxs8d0.js";
16
- import"../chunk-rq5fc007.js";
15
+ import"../chunk-v9rcxg0e.js";
16
+ import"../chunk-evb5tj13.js";
17
17
  import"../chunk-9shz0bw1.js";
18
- import"../chunk-rkt41za2.js";
18
+ import"../chunk-68zz17hs.js";
19
19
 
20
20
  // src/kubernetes/environment.ts
21
21
  class KubernetesEnvironment {
@@ -1,4 +1,4 @@
1
- import type { ExecTarget, ExecResult, RunOptions } from "./executor";
1
+ import { type ExecTarget, type ExecResult, type RunOptions } from "./executor";
2
2
  import type { KubernetesConnectionOptions } from "./resource-transport";
3
3
  export interface KubernetesExecLimits {
4
4
  timeoutMs: number;
@@ -12,8 +12,9 @@ export interface KubernetesExecLimits {
12
12
  */
13
13
  export declare class KubernetesExecTransport {
14
14
  #private;
15
+ private readonly connection;
15
16
  private readonly signal;
16
17
  private readonly limits;
17
- constructor(options: KubernetesConnectionOptions, signal: AbortSignal, limits: KubernetesExecLimits);
18
+ constructor(connection: KubernetesConnectionOptions, signal: AbortSignal, limits: KubernetesExecLimits);
18
19
  exec(namespace: string, target: ExecTarget, command: string[], options?: RunOptions): Promise<ExecResult>;
19
20
  }
@@ -1,8 +1,10 @@
1
1
  import {
2
2
  KubernetesExecTransport
3
- } from "../chunk-xeft7af0.js";
3
+ } from "../chunk-dfpqr0r9.js";
4
4
  import"../chunk-v3hxvnrc.js";
5
- import"../chunk-rkt41za2.js";
5
+ import"../chunk-evb5tj13.js";
6
+ import"../chunk-9shz0bw1.js";
7
+ import"../chunk-68zz17hs.js";
6
8
  export {
7
9
  KubernetesExecTransport
8
10
  };
@@ -3,7 +3,7 @@ import {
3
3
  buildExecArgs,
4
4
  buildKubectlArgs,
5
5
  runArgv
6
- } from "../chunk-rq5fc007.js";
6
+ } from "../chunk-evb5tj13.js";
7
7
  import"../chunk-9shz0bw1.js";
8
8
  export {
9
9
  runArgv,
@@ -9,7 +9,7 @@ import {
9
9
  clientKey
10
10
  } from "../chunk-z5pm2emz.js";
11
11
  import"../chunk-v3hxvnrc.js";
12
- import"../chunk-rkt41za2.js";
12
+ import"../chunk-68zz17hs.js";
13
13
 
14
14
  // src/kubernetes/pod-log-datasource.ts
15
15
  class PodLogDataSource {
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  PortForwardScope,
3
3
  startPortForward
4
- } from "../chunk-mvkxs8d0.js";
5
- import"../chunk-rq5fc007.js";
4
+ } from "../chunk-v9rcxg0e.js";
5
+ import"../chunk-evb5tj13.js";
6
6
  import"../chunk-9shz0bw1.js";
7
7
  export {
8
8
  startPortForward,
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  KubernetesResourceTransport
3
- } from "../chunk-5w85c7cs.js";
4
- import"../chunk-dpcge1xt.js";
3
+ } from "../chunk-361x998p.js";
4
+ import"../chunk-jt8fn3wg.js";
5
5
  import"../chunk-a9htb6cr.js";
6
6
  import"../chunk-v3hxvnrc.js";
7
- import"../chunk-rkt41za2.js";
7
+ import"../chunk-68zz17hs.js";
8
8
  export {
9
9
  KubernetesResourceTransport
10
10
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  resourcePath
3
- } from "../chunk-dpcge1xt.js";
4
- import"../chunk-rkt41za2.js";
3
+ } from "../chunk-jt8fn3wg.js";
4
+ import"../chunk-68zz17hs.js";
5
5
  export {
6
6
  resourcePath
7
7
  };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  resourcePath
3
- } from "../chunk-dpcge1xt.js";
3
+ } from "../chunk-jt8fn3wg.js";
4
4
  import {
5
5
  KubernetesError
6
- } from "../chunk-rkt41za2.js";
6
+ } from "../chunk-68zz17hs.js";
7
7
 
8
8
  // src/kubernetes/secret-datasource.ts
9
9
  import { clientKey } from "@compforge/harness-common";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  ServicePortForwarder
3
- } from "../chunk-0d8vs5q8.js";
3
+ } from "../chunk-91xh8tsr.js";
4
4
  import"../chunk-xgnz10sr.js";
5
5
  import"../chunk-6fnhzhdb.js";
6
- import"../chunk-mvkxs8d0.js";
7
- import"../chunk-rq5fc007.js";
6
+ import"../chunk-v9rcxg0e.js";
7
+ import"../chunk-evb5tj13.js";
8
8
  import"../chunk-9shz0bw1.js";
9
9
  export {
10
10
  ServicePortForwarder
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  resolveWorkload
3
- } from "../chunk-ae84rzq5.js";
4
- import"../chunk-rkt41za2.js";
3
+ } from "../chunk-d2y5ewbb.js";
4
+ import"../chunk-68zz17hs.js";
5
5
  export {
6
6
  resolveWorkload
7
7
  };
@@ -2,24 +2,24 @@ import {
2
2
  MysqlClient,
3
3
  MysqlDatabase,
4
4
  openMysql
5
- } from "../chunk-ex429qjt.js";
5
+ } from "../chunk-bkz0dyx5.js";
6
6
  import"../chunk-m91t44jh.js";
7
7
  import"../chunk-db4an9td.js";
8
8
  import"../chunk-835fssgz.js";
9
- import"../chunk-18gcp0ck.js";
10
- import"../chunk-kap6ka3n.js";
9
+ import"../chunk-ps7f1x05.js";
10
+ import"../chunk-s7a3fqzc.js";
11
11
  import"../chunk-v3hxvnrc.js";
12
12
  import"../chunk-ssj93brx.js";
13
- import"../chunk-ehmx0yhp.js";
14
- import"../chunk-0d8vs5q8.js";
13
+ import"../chunk-xv3nn2vd.js";
14
+ import"../chunk-91xh8tsr.js";
15
15
  import"../chunk-xgnz10sr.js";
16
16
  import"../chunk-6fnhzhdb.js";
17
- import"../chunk-mvkxs8d0.js";
18
- import"../chunk-rq5fc007.js";
17
+ import"../chunk-v9rcxg0e.js";
18
+ import"../chunk-evb5tj13.js";
19
19
  import"../chunk-9shz0bw1.js";
20
- import"../chunk-sb5qzv37.js";
21
- import"../chunk-43mcyrh4.js";
22
- import"../chunk-rkt41za2.js";
20
+ import"../chunk-6rcyw5ek.js";
21
+ import"../chunk-9f9dsjnr.js";
22
+ import"../chunk-68zz17hs.js";
23
23
  export {
24
24
  openMysql,
25
25
  MysqlDatabase,
@@ -1,3 +1,4 @@
1
+ import"../chunk-pfar9cm3.js";
1
2
  import {
2
3
  withReadScope
3
4
  } from "../chunk-4sqvppz7.js";
@@ -5,7 +6,7 @@ import {
5
6
  MysqlClient,
6
7
  MysqlDatabase,
7
8
  openMysql
8
- } from "../chunk-ex429qjt.js";
9
+ } from "../chunk-bkz0dyx5.js";
9
10
  import"../chunk-m91t44jh.js";
10
11
  import"../chunk-db4an9td.js";
11
12
  import {
@@ -17,21 +18,20 @@ import {
17
18
  queryLimited
18
19
  } from "../chunk-1gyshqd9.js";
19
20
  import"../chunk-835fssgz.js";
20
- import"../chunk-pfar9cm3.js";
21
- import"../chunk-18gcp0ck.js";
22
- import"../chunk-kap6ka3n.js";
21
+ import"../chunk-ps7f1x05.js";
22
+ import"../chunk-s7a3fqzc.js";
23
23
  import"../chunk-v3hxvnrc.js";
24
24
  import"../chunk-ssj93brx.js";
25
- import"../chunk-ehmx0yhp.js";
26
- import"../chunk-0d8vs5q8.js";
25
+ import"../chunk-xv3nn2vd.js";
26
+ import"../chunk-91xh8tsr.js";
27
27
  import"../chunk-xgnz10sr.js";
28
28
  import"../chunk-6fnhzhdb.js";
29
- import"../chunk-mvkxs8d0.js";
30
- import"../chunk-rq5fc007.js";
29
+ import"../chunk-v9rcxg0e.js";
30
+ import"../chunk-evb5tj13.js";
31
31
  import"../chunk-9shz0bw1.js";
32
- import"../chunk-sb5qzv37.js";
33
- import"../chunk-43mcyrh4.js";
34
- import"../chunk-rkt41za2.js";
32
+ import"../chunk-6rcyw5ek.js";
33
+ import"../chunk-9f9dsjnr.js";
34
+ import"../chunk-68zz17hs.js";
35
35
  export {
36
36
  withReadScope,
37
37
  queryLimited,
@@ -1,9 +1,4 @@
1
- /** A probe runs in the caller-selected environment; it never falls back to the Doctor/CLI host. */
2
- export interface ConnectivityTarget {
3
- host: string;
4
- port: number;
5
- tls?: boolean;
6
- }
1
+ import type { Endpoint } from "@compforge/harness-common";
7
2
  export interface ConnectivityStage {
8
3
  stage: "dns" | "tcp" | "tls";
9
4
  status: "passed" | "failed";
@@ -13,7 +8,7 @@ export interface ConnectivityStage {
13
8
  error?: string;
14
9
  }
15
10
  export interface ConnectivityResult {
16
- target: ConnectivityTarget;
11
+ target: Endpoint;
17
12
  stages: ConnectivityStage[];
18
13
  status: "passed" | "failed";
19
14
  }
@@ -27,9 +22,10 @@ export interface ConnectivityExecutor {
27
22
  /**
28
23
  * @spec DNS, TCP and optional verified TLS are observed from the supplied executor's network context.
29
24
  * @rule A hostname (including service.namespace) and an IP use the same path; connectivity requires an explicit port.
25
+ * @spec secure uses verified direct TLS for https/wss/tls; other encrypted protocols throw ProtocolError(code=Unsupported) before I/O.
30
26
  * @rule Tool failure/timeout throws; it is not evidence that the target is unhealthy. No ICMP, credentials or HTTP policy is implied.
31
27
  */
32
- export declare function probeConnectivity(target: ConnectivityTarget, execute: ConnectivityExecutor, options: {
28
+ export declare function probeConnectivity(target: Endpoint, execute: ConnectivityExecutor, options: {
33
29
  timeoutMs: number;
34
30
  signal?: AbortSignal;
35
31
  }): Promise<ConnectivityResult>;
@@ -1,3 +1,10 @@
1
+ import {
2
+ validateEndpoint
3
+ } from "../chunk-nr6ams69.js";
4
+ import {
5
+ ProtocolError
6
+ } from "../chunk-68zz17hs.js";
7
+
1
8
  // src/network/connectivity.ts
2
9
  var SCRIPT = `import json,socket,ssl,sys,time
3
10
  q=json.load(sys.stdin)
@@ -44,19 +51,26 @@ finally:
44
51
  if sock is not None: sock.close()
45
52
  print(json.dumps(dict(stages=stages,status="failed" if any(s["status"]=="failed" for s in stages) else "passed")))`;
46
53
  async function probeConnectivity(target, execute, options) {
47
- if (!target.host.trim() || /[\s/\\?#@]/.test(target.host) || !Number.isInteger(target.port) || target.port < 1 || target.port > 65535) {
48
- throw new Error("Connectivity requires a hostname/IP and a port between 1 and 65535");
54
+ validateEndpoint(target);
55
+ const endpoint = {
56
+ host: target.host,
57
+ port: target.port,
58
+ ...target.scheme !== undefined ? { scheme: target.scheme } : {},
59
+ ...target.secure !== undefined ? { secure: target.secure } : {}
60
+ };
61
+ if (endpoint.secure && !["https", "wss", "tls"].includes(endpoint.scheme ?? "")) {
62
+ throw new ProtocolError(`Encrypted connectivity is not supported for scheme ${endpoint.scheme ?? "(unspecified)"}; supported schemes: https, wss, tls`, { code: "Unsupported" });
49
63
  }
50
64
  if (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0)
51
65
  throw new Error("Connectivity timeout must be positive");
52
66
  options.signal?.throwIfAborted();
53
- const raw = await execute(["python3", "-c", SCRIPT], { ...options, stdin: JSON.stringify({ ...target, timeoutMs: options.timeoutMs }) });
67
+ const raw = await execute(["python3", "-c", SCRIPT], { ...options, stdin: JSON.stringify({ host: endpoint.host, port: endpoint.port, tls: endpoint.secure, timeoutMs: options.timeoutMs }) });
54
68
  options.signal?.throwIfAborted();
55
69
  const value = JSON.parse(raw);
56
- const expected = ["dns", "tcp", ...target.tls ? ["tls"] : []];
70
+ const expected = ["dns", "tcp", ...endpoint.secure ? ["tls"] : []];
57
71
  if (!value || !Array.isArray(value.stages) || !value.stages.length || value.stages.length > expected.length || !["passed", "failed"].includes(value.status) || value.stages.some((stage, index) => !stage || stage.stage !== expected[index] || !["passed", "failed"].includes(stage.status) || !Number.isFinite(stage.elapsedMs) || stage.elapsedMs < 0 || index < value.stages.length - 1 && stage.status !== "passed") || (value.status === "passed" ? value.stages.length !== expected.length || value.stages.some((stage) => stage.status !== "passed") : value.stages.at(-1)?.status !== "failed"))
58
72
  throw new Error("Invalid connectivity probe result");
59
- return { target: { ...target }, stages: value.stages, status: value.status };
73
+ return { target: endpoint, stages: value.stages, status: value.status };
60
74
  }
61
75
  export {
62
76
  probeConnectivity
@@ -0,0 +1,9 @@
1
+ import type { Endpoint } from "@compforge/harness-common";
2
+ /** @spec Validation performs no DNS or I/O and never includes the supplied address in errors. */
3
+ export declare function validateEndpoint(endpoint: Endpoint): void;
4
+ /**
5
+ * @spec Extract only the network address from an absolute URL; discard credentials, path, query and fragment.
6
+ * @spec HTTP(S), WS(S) and FTP have default ports. TLS requires a port and secure=true; other schemes require a port and leave secure unspecified.
7
+ * @why A signed resource URL must not leak its signature into connectivity commands or evidence.
8
+ */
9
+ export declare function endpointFromUrl(value: string | URL): Endpoint;
@@ -0,0 +1,8 @@
1
+ import {
2
+ endpointFromUrl,
3
+ validateEndpoint
4
+ } from "../chunk-nr6ams69.js";
5
+ export {
6
+ validateEndpoint,
7
+ endpointFromUrl
8
+ };