@galaxy-foundry/gxwf-pi-harness 0.1.0 → 0.4.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.
package/Dockerfile CHANGED
@@ -3,17 +3,24 @@ FROM ${NODE_IMAGE}
3
3
 
4
4
  ARG PI_VERSION=0.84.4
5
5
  ARG FOUNDRY_CLI_VERSION=0.1.0
6
+ ARG PLANEMO_VERSION=0.75.47
6
7
 
7
8
  RUN apt-get update \
8
- && apt-get install -y --no-install-recommends bash ca-certificates git ripgrep \
9
+ && apt-get install -y --no-install-recommends bash ca-certificates git python3 python3-venv ripgrep \
9
10
  && rm -rf /var/lib/apt/lists/*
11
+ RUN python3 -m venv /opt/planemo \
12
+ && /opt/planemo/bin/pip install --no-cache-dir "planemo==${PLANEMO_VERSION}" \
13
+ && ln -s /opt/planemo/bin/planemo /usr/local/bin/planemo
10
14
  RUN npm install -g --ignore-scripts \
11
15
  "@earendil-works/pi-coding-agent@${PI_VERSION}" \
12
16
  "@galaxy-foundry/gxwf-foundry@${FOUNDRY_CLI_VERSION}"
13
17
 
14
18
  LABEL org.galaxyproject.foundry.pi-version="${PI_VERSION}" \
15
19
  org.galaxyproject.foundry.cli-version="${FOUNDRY_CLI_VERSION}" \
20
+ org.galaxyproject.foundry.planemo-version="${PLANEMO_VERSION}" \
16
21
  org.galaxyproject.foundry.pi-rpc-version="1"
17
22
 
23
+ ENV PATH="/opt/planemo/bin:${PATH}"
24
+
18
25
  WORKDIR /workspace
19
26
  ENTRYPOINT ["pi"]
package/README.md CHANGED
@@ -11,6 +11,8 @@ The extension derives the worker's expected artifacts exclusively from the selec
11
11
 
12
12
  Local mode is process and context isolation, not a security boundary. The trace CLI defaults each local run to a unique directory under the operating system's temporary directory, and both local and container workers load a dereferenced staged copy of the selected skill rather than its checkout path. An explicit `--run-dir` still overrides that diagnostic default.
13
13
 
14
+ OpenAI subscription-backed diagnostics can opt into the Foundry-specific `pi-test-auth` store. Login, refresh, and logout use Pi's public authentication API; Foundry does not interpret or copy tokens. For each local run, the fresh Pi configuration temporarily links to the store's `auth.json`, then removes that link before retaining the run directory. Run records contain only the label `pi-test-auth`, never the store path or credential values.
15
+
14
16
  Container mode runs the whole Pi RPC worker inside a disposable Docker container. It mounts the staged skill bundle and copied declared inputs read-only, mounts only the run's output directory read-write, and uses tmpfs for Pi configuration and temporary files. The checkout itself is never mounted.
15
17
 
16
18
  Build the default image from the repository root:
@@ -19,10 +21,12 @@ Build the default image from the repository root:
19
21
  npm run gxwf-pi-harness:container-build
20
22
  ```
21
23
 
22
- The image pins Pi 0.84.4 and the `@galaxy-foundry/gxwf-foundry` CLI 0.1.0 required by the pilot `summarize-nextflow` skill. It carries compatibility labels for both runtimes that are checked before every run. A caller may use `--sandbox-image <ref>` for another locally available image with the same labels. The runner resolves the ref to an immutable image ID before launch and records that ID, any repository digests, every mount, the network policy, and the names—not values—of forwarded credential variables.
24
+ The image pins Pi 0.84.4, the `@galaxy-foundry/gxwf-foundry` CLI 0.1.0, Python, and Planemo 0.75.47. This supports both the `summarize-nextflow` pilot and skills such as `convert-nfcore-module-to-galaxy-tool` that lint and test Galaxy artifacts. It carries compatibility labels for Pi, the Foundry CLI, Planemo, and the RPC contract; all four are checked before every run. A caller may use `--sandbox-image <ref>` for another locally available image with the same labels. The runner resolves the ref to an immutable image ID before launch and records that ID, any repository digests, every mount, the network policy, and the names—not values—of forwarded credential variables.
23
25
 
24
26
  Container provider access is explicit. Use `--sandbox-network bridge` and repeat `--credential-env <NAME>` for only the variables the provider needs. Use `--sandbox-network none` for credential-free probes. Run the Docker boundary test with `npm run gxwf-pi-harness:container-test`.
25
27
 
28
+ The OAuth store is intentionally rejected in container mode. A whole-process container would require putting the refresh credential inside that worker boundary; use an allowlisted API-key environment variable there until the planned host-agent/tool-sandbox split is available.
29
+
26
30
  ## Extension configuration
27
31
 
28
32
  - `FOUNDRY_SKILLS_DIR` — required path to the installed Foundry skills root.
@@ -1,7 +1,9 @@
1
1
  export declare const FOUNDRY_CLI_VERSION = "0.1.0";
2
+ export declare const PLANEMO_VERSION = "0.75.47";
2
3
  export declare const DEFAULT_CONTAINER_IMAGE: string;
3
4
  export declare const CONTAINER_PI_VERSION_LABEL = "org.galaxyproject.foundry.pi-version";
4
5
  export declare const CONTAINER_FOUNDRY_VERSION_LABEL = "org.galaxyproject.foundry.cli-version";
6
+ export declare const CONTAINER_PLANEMO_VERSION_LABEL = "org.galaxyproject.foundry.planemo-version";
5
7
  export declare const CONTAINER_RPC_VERSION_LABEL = "org.galaxyproject.foundry.pi-rpc-version";
6
8
  export declare const CONTAINER_RPC_VERSION = "1";
7
9
  export type ContainerNetworkPolicy = "bridge" | "none";
@@ -18,6 +20,7 @@ export interface ContainerImageResolution {
18
20
  repo_digests: string[];
19
21
  pi_version: string;
20
22
  foundry_cli_version: string;
23
+ planemo_version: string;
21
24
  }
22
25
  export interface ContainerLaunchConfig {
23
26
  docker_bin: string;
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,uBAAuB,QAAmF,CAAC;AACxH,eAAO,MAAM,0BAA0B,yCAAyC,CAAC;AACjF,eAAO,MAAM,+BAA+B,0CAA0C,CAAC;AACvF,eAAO,MAAM,2BAA2B,6CAA6C,CAAC;AACtF,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,iBAAiB,CAAC;CAC7E;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,sBAAsB,CAAC;IAChC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAgBD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,SAAW,GACnB,wBAAwB,CAwC1B;AAoBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA6B5F"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,eAAe,YAAY,CAAC;AACzC,eAAO,MAAM,uBAAuB,QAA8G,CAAC;AACnJ,eAAO,MAAM,0BAA0B,yCAAyC,CAAC;AACjF,eAAO,MAAM,+BAA+B,0CAA0C,CAAC;AACvF,eAAO,MAAM,+BAA+B,8CAA8C,CAAC;AAC3F,eAAO,MAAM,2BAA2B,6CAA6C,CAAC;AACtF,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,iBAAiB,CAAC;CAC7E;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,sBAAsB,CAAC;IAChC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAgBD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,SAAS,SAAW,GACnB,wBAAwB,CA4C1B;AAoBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA6B5F"}
package/dist/container.js CHANGED
@@ -1,9 +1,11 @@
1
1
  import { spawnSync } from "node:child_process";
2
2
  import { VERSION as PI_VERSION } from "@earendil-works/pi-coding-agent";
3
3
  export const FOUNDRY_CLI_VERSION = "0.1.0";
4
- export const DEFAULT_CONTAINER_IMAGE = `galaxy-foundry/gxwf-pi-harness:pi-${PI_VERSION}-foundry-${FOUNDRY_CLI_VERSION}`;
4
+ export const PLANEMO_VERSION = "0.75.47";
5
+ export const DEFAULT_CONTAINER_IMAGE = `galaxy-foundry/gxwf-pi-harness:pi-${PI_VERSION}-foundry-${FOUNDRY_CLI_VERSION}-planemo-${PLANEMO_VERSION}`;
5
6
  export const CONTAINER_PI_VERSION_LABEL = "org.galaxyproject.foundry.pi-version";
6
7
  export const CONTAINER_FOUNDRY_VERSION_LABEL = "org.galaxyproject.foundry.cli-version";
8
+ export const CONTAINER_PLANEMO_VERSION_LABEL = "org.galaxyproject.foundry.planemo-version";
7
9
  export const CONTAINER_RPC_VERSION_LABEL = "org.galaxyproject.foundry.pi-rpc-version";
8
10
  export const CONTAINER_RPC_VERSION = "1";
9
11
  function dockerFailure(command, stderr) {
@@ -34,12 +36,15 @@ export function inspectContainerImage(image, dockerBin = "docker") {
34
36
  const labels = record.Config?.Labels ?? {};
35
37
  const imagePiVersion = labels?.[CONTAINER_PI_VERSION_LABEL];
36
38
  const foundryCliVersion = labels?.[CONTAINER_FOUNDRY_VERSION_LABEL];
39
+ const planemoVersion = labels?.[CONTAINER_PLANEMO_VERSION_LABEL];
37
40
  const rpcVersion = labels?.[CONTAINER_RPC_VERSION_LABEL];
38
41
  if (imagePiVersion !== PI_VERSION ||
39
42
  foundryCliVersion !== FOUNDRY_CLI_VERSION ||
43
+ planemoVersion !== PLANEMO_VERSION ||
40
44
  rpcVersion !== CONTAINER_RPC_VERSION) {
41
45
  throw new Error(`Docker image ${image} is not a compatible Foundry Pi worker ` +
42
- `(expected Pi ${PI_VERSION}, Foundry CLI ${FOUNDRY_CLI_VERSION}, and RPC contract ${CONTAINER_RPC_VERSION})`);
46
+ `(expected Pi ${PI_VERSION}, Foundry CLI ${FOUNDRY_CLI_VERSION}, Planemo ${PLANEMO_VERSION}, ` +
47
+ `and RPC contract ${CONTAINER_RPC_VERSION})`);
43
48
  }
44
49
  return {
45
50
  requested: image,
@@ -49,6 +54,7 @@ export function inspectContainerImage(image, dockerBin = "docker") {
49
54
  : [],
50
55
  pi_version: imagePiVersion,
51
56
  foundry_cli_version: foundryCliVersion,
57
+ planemo_version: planemoVersion,
52
58
  };
53
59
  }
54
60
  function bindMountArgument(mount) {
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { expectedArtifactsFromSkill, runPiSkill, sha256Path, type ArtifactResult, type ExpectedArtifact, type PiRunnerDependencies, type PiSkillRunRecord, type PiThinkingLevel, type RunPiSkillOptions, type RunStatus, type SandboxMode, type StagedInput, } from "./runner.js";
2
- export { buildDockerRunArgs, CONTAINER_FOUNDRY_VERSION_LABEL, CONTAINER_PI_VERSION_LABEL, CONTAINER_RPC_VERSION, CONTAINER_RPC_VERSION_LABEL, DEFAULT_CONTAINER_IMAGE, FOUNDRY_CLI_VERSION, inspectContainerImage, type ContainerImageResolution, type ContainerLaunchConfig, type ContainerMount, type ContainerNetworkPolicy, } from "./container.js";
2
+ export { buildDockerRunArgs, CONTAINER_FOUNDRY_VERSION_LABEL, CONTAINER_PLANEMO_VERSION_LABEL, CONTAINER_PI_VERSION_LABEL, CONTAINER_RPC_VERSION, CONTAINER_RPC_VERSION_LABEL, DEFAULT_CONTAINER_IMAGE, FOUNDRY_CLI_VERSION, PLANEMO_VERSION, inspectContainerImage, type ContainerImageResolution, type ContainerLaunchConfig, type ContainerMount, type ContainerNetworkPolicy, } from "./container.js";
3
3
  export { resolveDeclaredInput, resolveInstalledSkill } from "./skill-resolution.js";
4
+ export { createPiTestAuthInteraction, defaultPiTestAuthDir, inspectPiTestAuth, PI_TEST_AUTH_PROVIDER, PiTestAuthManager, piTestAuthPath, type PiTestAuthInteractionOptions, type PiTestAuthLoginMethod, type PiTestAuthLoginOptions, type PiTestAuthStatus, } from "./pi-test-auth.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,+BAA+B,EAC/B,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { expectedArtifactsFromSkill, runPiSkill, sha256Path, } from "./runner.js";
2
- export { buildDockerRunArgs, CONTAINER_FOUNDRY_VERSION_LABEL, CONTAINER_PI_VERSION_LABEL, CONTAINER_RPC_VERSION, CONTAINER_RPC_VERSION_LABEL, DEFAULT_CONTAINER_IMAGE, FOUNDRY_CLI_VERSION, inspectContainerImage, } from "./container.js";
2
+ export { buildDockerRunArgs, CONTAINER_FOUNDRY_VERSION_LABEL, CONTAINER_PLANEMO_VERSION_LABEL, CONTAINER_PI_VERSION_LABEL, CONTAINER_RPC_VERSION, CONTAINER_RPC_VERSION_LABEL, DEFAULT_CONTAINER_IMAGE, FOUNDRY_CLI_VERSION, PLANEMO_VERSION, inspectContainerImage, } from "./container.js";
3
3
  export { resolveDeclaredInput, resolveInstalledSkill } from "./skill-resolution.js";
4
+ export { createPiTestAuthInteraction, defaultPiTestAuthDir, inspectPiTestAuth, PI_TEST_AUTH_PROVIDER, PiTestAuthManager, piTestAuthPath, } from "./pi-test-auth.js";
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,UAAU,EACV,UAAU,GAUX,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,GAKtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,UAAU,EACV,UAAU,GAUX,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,+BAA+B,EAC/B,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GAKtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,GAKf,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { type AuthInteraction, type AuthPrompt } from "@earendil-works/pi-ai";
2
+ export declare const PI_TEST_AUTH_PROVIDER = "openai-codex";
3
+ export type PiTestAuthLoginMethod = "browser" | "device_code";
4
+ export interface PiTestAuthStatus {
5
+ auth_dir: string;
6
+ provider: typeof PI_TEST_AUTH_PROVIDER;
7
+ configured: boolean;
8
+ type?: "oauth" | "api_key";
9
+ account_id?: string;
10
+ expires_at?: string;
11
+ problem?: string;
12
+ }
13
+ export interface PiTestAuthLoginOptions {
14
+ loginMethod: PiTestAuthLoginMethod;
15
+ openBrowser: boolean;
16
+ }
17
+ export interface PiTestAuthInteractionOptions extends PiTestAuthLoginOptions {
18
+ write?: (message: string) => void;
19
+ openExternal?: (url: string) => void;
20
+ ask?: (prompt: AuthPrompt) => Promise<string>;
21
+ }
22
+ interface PiTestAuthRuntime {
23
+ login(providerId: string, type: "oauth", interaction: AuthInteraction): Promise<unknown>;
24
+ logout(providerId: string): Promise<void>;
25
+ }
26
+ interface PiTestAuthManagerDependencies {
27
+ createRuntime?: (options: {
28
+ authPath: string;
29
+ refreshOnCreate: false;
30
+ }) => Promise<PiTestAuthRuntime>;
31
+ }
32
+ export declare function defaultPiTestAuthDir(env?: NodeJS.ProcessEnv, home?: string): string;
33
+ export declare function piTestAuthPath(authDir?: string): string;
34
+ export declare function inspectPiTestAuth(authDir?: string): PiTestAuthStatus;
35
+ export declare function createPiTestAuthInteraction(options: PiTestAuthInteractionOptions): AuthInteraction;
36
+ export declare class PiTestAuthManager {
37
+ readonly authDir: string;
38
+ private readonly createRuntime;
39
+ constructor(authDir?: string, dependencies?: PiTestAuthManagerDependencies);
40
+ status(): PiTestAuthStatus;
41
+ login(options: PiTestAuthLoginOptions): Promise<PiTestAuthStatus>;
42
+ logout(): Promise<void>;
43
+ }
44
+ export {};
45
+ //# sourceMappingURL=pi-test-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-test-auth.d.ts","sourceRoot":"","sources":["../src/pi-test-auth.ts"],"names":[],"mappings":"AAOA,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAG9F,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AAEpD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,aAAa,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,qBAAqB,CAAC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,qBAAqB,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,4BAA6B,SAAQ,sBAAsB;IAC1E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C;AAED,UAAU,iBAAiB;IACzB,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzF,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,UAAU,6BAA6B;IACrC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,KAAK,CAAC;KACxB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAClC;AAED,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,SAAY,GACf,MAAM,CAMR;AAED,wBAAgB,cAAc,CAAC,OAAO,SAAyB,GAAG,MAAM,CAEvE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAyB,GAAG,gBAAgB,CA6EpF;AA6BD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,eAAe,CAgCjB;AAED,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8D;gBAEhF,OAAO,SAAyB,EAAE,YAAY,GAAE,6BAAkC;IAK9F,MAAM,IAAI,gBAAgB;IAIpB,KAAK,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAUjE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ9B"}
@@ -0,0 +1,188 @@
1
+ import { spawn } from "node:child_process";
2
+ import { existsSync, mkdirSync, readFileSync } from "node:fs";
3
+ import { homedir } from "node:os";
4
+ import path from "node:path";
5
+ import process from "node:process";
6
+ import { createInterface } from "node:readline/promises";
7
+ import { ModelRuntime } from "@earendil-works/pi-coding-agent";
8
+ export const PI_TEST_AUTH_PROVIDER = "openai-codex";
9
+ export function defaultPiTestAuthDir(env = process.env, home = homedir()) {
10
+ const configRoot = env.XDG_CONFIG_HOME && path.isAbsolute(env.XDG_CONFIG_HOME)
11
+ ? env.XDG_CONFIG_HOME
12
+ : path.join(home, ".config");
13
+ return path.join(configRoot, "galaxy-foundry", "pi-test-auth");
14
+ }
15
+ export function piTestAuthPath(authDir = defaultPiTestAuthDir()) {
16
+ return path.join(path.resolve(authDir), "auth.json");
17
+ }
18
+ export function inspectPiTestAuth(authDir = defaultPiTestAuthDir()) {
19
+ const resolvedAuthDir = path.resolve(authDir);
20
+ const authPath = piTestAuthPath(resolvedAuthDir);
21
+ if (!existsSync(authPath)) {
22
+ return {
23
+ auth_dir: resolvedAuthDir,
24
+ provider: PI_TEST_AUTH_PROVIDER,
25
+ configured: false,
26
+ };
27
+ }
28
+ let data;
29
+ try {
30
+ data = JSON.parse(readFileSync(authPath, "utf8"));
31
+ }
32
+ catch {
33
+ return {
34
+ auth_dir: resolvedAuthDir,
35
+ provider: PI_TEST_AUTH_PROVIDER,
36
+ configured: false,
37
+ problem: "auth.json is unreadable or invalid JSON",
38
+ };
39
+ }
40
+ if (!data || typeof data !== "object" || Array.isArray(data)) {
41
+ return {
42
+ auth_dir: resolvedAuthDir,
43
+ provider: PI_TEST_AUTH_PROVIDER,
44
+ configured: false,
45
+ problem: "invalid auth store: expected a JSON object",
46
+ };
47
+ }
48
+ const credential = data[PI_TEST_AUTH_PROVIDER];
49
+ if (!credential) {
50
+ return {
51
+ auth_dir: resolvedAuthDir,
52
+ provider: PI_TEST_AUTH_PROVIDER,
53
+ configured: false,
54
+ };
55
+ }
56
+ if (typeof credential !== "object" || Array.isArray(credential)) {
57
+ return {
58
+ auth_dir: resolvedAuthDir,
59
+ provider: PI_TEST_AUTH_PROVIDER,
60
+ configured: false,
61
+ problem: `invalid credential for ${PI_TEST_AUTH_PROVIDER}`,
62
+ };
63
+ }
64
+ const fields = credential;
65
+ if (fields.type !== "oauth") {
66
+ return {
67
+ auth_dir: resolvedAuthDir,
68
+ provider: PI_TEST_AUTH_PROVIDER,
69
+ configured: false,
70
+ type: fields.type === "api_key" ? "api_key" : undefined,
71
+ problem: `expected an OAuth credential for ${PI_TEST_AUTH_PROVIDER}`,
72
+ };
73
+ }
74
+ if (typeof fields.access !== "string" ||
75
+ typeof fields.refresh !== "string" ||
76
+ typeof fields.expires !== "number" ||
77
+ !Number.isFinite(fields.expires)) {
78
+ return {
79
+ auth_dir: resolvedAuthDir,
80
+ provider: PI_TEST_AUTH_PROVIDER,
81
+ configured: false,
82
+ type: "oauth",
83
+ problem: `invalid OAuth credential for ${PI_TEST_AUTH_PROVIDER}`,
84
+ };
85
+ }
86
+ return {
87
+ auth_dir: resolvedAuthDir,
88
+ provider: PI_TEST_AUTH_PROVIDER,
89
+ configured: true,
90
+ type: "oauth",
91
+ account_id: typeof fields.accountId === "string" ? fields.accountId : undefined,
92
+ expires_at: fields.expires > 0 ? new Date(fields.expires).toISOString() : undefined,
93
+ };
94
+ }
95
+ function openBrowser(url) {
96
+ const command = process.platform === "darwin"
97
+ ? { bin: "open", args: [url] }
98
+ : process.platform === "win32"
99
+ ? { bin: "cmd", args: ["/c", "start", "", url] }
100
+ : { bin: "xdg-open", args: [url] };
101
+ const child = spawn(command.bin, command.args, {
102
+ detached: true,
103
+ stdio: "ignore",
104
+ });
105
+ child.on("error", () => undefined);
106
+ child.unref();
107
+ }
108
+ async function askInTerminal(prompt) {
109
+ if (!process.stdin.isTTY) {
110
+ throw new Error(`${prompt.message}: interactive input requires a terminal`);
111
+ }
112
+ const terminal = createInterface({ input: process.stdin, output: process.stderr });
113
+ try {
114
+ return await terminal.question(`${prompt.message} `, { signal: prompt.signal });
115
+ }
116
+ finally {
117
+ terminal.close();
118
+ }
119
+ }
120
+ export function createPiTestAuthInteraction(options) {
121
+ const write = options.write ?? ((message) => process.stderr.write(`${message}\n`));
122
+ const external = options.openExternal ?? openBrowser;
123
+ const ask = options.ask ?? askInTerminal;
124
+ return {
125
+ async prompt(prompt) {
126
+ if (prompt.type === "select") {
127
+ const id = options.loginMethod;
128
+ if (!prompt.options.some((option) => option.id === id)) {
129
+ throw new Error(`Pi OAuth flow does not offer login method '${id}'`);
130
+ }
131
+ return id;
132
+ }
133
+ return ask(prompt);
134
+ },
135
+ notify(event) {
136
+ if (event.type === "auth_url") {
137
+ write(`Open this URL to authenticate:\n${event.url}`);
138
+ if (event.instructions)
139
+ write(event.instructions);
140
+ if (options.openBrowser)
141
+ external(event.url);
142
+ }
143
+ else if (event.type === "device_code") {
144
+ write(`Open ${event.verificationUri} and enter code ${event.userCode}`);
145
+ if (options.openBrowser)
146
+ external(event.verificationUri);
147
+ }
148
+ else if (event.type === "info") {
149
+ write(event.message);
150
+ for (const link of event.links ?? [])
151
+ write(`${link.label ?? "More information"}: ${link.url}`);
152
+ }
153
+ else {
154
+ write(event.message);
155
+ }
156
+ },
157
+ };
158
+ }
159
+ export class PiTestAuthManager {
160
+ authDir;
161
+ createRuntime;
162
+ constructor(authDir = defaultPiTestAuthDir(), dependencies = {}) {
163
+ this.authDir = path.resolve(authDir);
164
+ this.createRuntime = dependencies.createRuntime ?? ((options) => ModelRuntime.create(options));
165
+ }
166
+ status() {
167
+ return inspectPiTestAuth(this.authDir);
168
+ }
169
+ async login(options) {
170
+ mkdirSync(this.authDir, { recursive: true, mode: 0o700 });
171
+ const runtime = await this.createRuntime({
172
+ authPath: piTestAuthPath(this.authDir),
173
+ refreshOnCreate: false,
174
+ });
175
+ await runtime.login(PI_TEST_AUTH_PROVIDER, "oauth", createPiTestAuthInteraction(options));
176
+ return this.status();
177
+ }
178
+ async logout() {
179
+ if (!existsSync(piTestAuthPath(this.authDir)))
180
+ return;
181
+ const runtime = await this.createRuntime({
182
+ authPath: piTestAuthPath(this.authDir),
183
+ refreshOnCreate: false,
184
+ });
185
+ await runtime.logout(PI_TEST_AUTH_PROVIDER);
186
+ }
187
+ }
188
+ //# sourceMappingURL=pi-test-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-test-auth.js","sourceRoot":"","sources":["../src/pi-test-auth.ts"],"names":[],"mappings":"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"}
package/dist/runner.d.ts CHANGED
@@ -6,6 +6,7 @@ export type PiThinkingLevel = "off" | "minimal" | "low" | "medium" | "high" | "x
6
6
  export interface ExpectedArtifact {
7
7
  id: string;
8
8
  path: string;
9
+ optional?: boolean;
9
10
  }
10
11
  export interface StagedInput {
11
12
  source: string;
@@ -59,6 +60,7 @@ export interface PiSkillRunRecord {
59
60
  security_boundary: false;
60
61
  network_policy: "host";
61
62
  credential_policy: "ambient-environment";
63
+ credential_auth_store: "pi-test-auth" | "none";
62
64
  workdir: string;
63
65
  agent_config_dir: string;
64
66
  } | {
@@ -104,6 +106,7 @@ export interface RunPiSkillOptions {
104
106
  sandboxImage?: string;
105
107
  sandboxNetwork?: ContainerNetworkPolicy;
106
108
  credentialEnv?: string[];
109
+ piTestAuthDir?: string;
107
110
  dockerBin?: string;
108
111
  signal?: AbortSignal;
109
112
  onEvent?: (event: JsonAgentSessionEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/dist/runner.js CHANGED
@@ -1,10 +1,11 @@
1
1
  import { spawnSync } from "node:child_process";
2
2
  import { createHash, randomUUID } from "node:crypto";
3
- import { chmodSync, cpSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, realpathSync, writeFileSync, } from "node:fs";
3
+ import { chmodSync, cpSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, realpathSync, symlinkSync, unlinkSync, writeFileSync, } from "node:fs";
4
4
  import path from "node:path";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { RpcClient, VERSION as PI_VERSION, } from "@earendil-works/pi-coding-agent";
7
7
  import { DEFAULT_CONTAINER_IMAGE, inspectContainerImage, } from "./container.js";
8
+ import { inspectPiTestAuth, PI_TEST_AUTH_PROVIDER, piTestAuthPath } from "./pi-test-auth.js";
8
9
  const DEFAULT_TOOLS = ["read", "write", "edit", "bash", "grep", "find", "ls"];
9
10
  const SUPPORTED_TOOLS = new Set([...DEFAULT_TOOLS, "powershell"]);
10
11
  const SKILL_NAME = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
@@ -112,6 +113,15 @@ function substituteArtifactPath(args, artifactPath) {
112
113
  ? args.map((arg) => arg.replaceAll("{artifact_path}", artifactPath))
113
114
  : [artifactPath];
114
115
  }
116
+ function validatorCommand(bin) {
117
+ if (bin !== "foundry")
118
+ return { executable: bin, prefixArgs: [] };
119
+ const packageEntry = fileURLToPath(import.meta.resolve("@galaxy-foundry/gxwf-foundry"));
120
+ return {
121
+ executable: process.execPath,
122
+ prefixArgs: [path.join(path.dirname(packageEntry), "bin", "foundry.js")],
123
+ };
124
+ }
115
125
  function validateArtifacts(expected, workspace, runDir, skillDir) {
116
126
  const verify = loadVerifyEntries(skillDir);
117
127
  const validationDir = path.join(runDir, "validation");
@@ -132,7 +142,13 @@ function validateArtifacts(expected, workspace, runDir, skillDir) {
132
142
  if (!entry)
133
143
  return result;
134
144
  mkdirSync(validationDir, { recursive: true });
135
- const executed = spawnSync(entry.validator_bin, substituteArtifactPath(entry.args, artifactPath), { cwd: workspace, encoding: "utf8", stdio: ["ignore", "pipe", "pipe"] });
145
+ const command = validatorCommand(entry.validator_bin);
146
+ const validatorArgs = substituteArtifactPath(entry.args, artifactPath);
147
+ const executed = spawnSync(command.executable, [...command.prefixArgs, ...validatorArgs], {
148
+ cwd: workspace,
149
+ encoding: "utf8",
150
+ stdio: ["ignore", "pipe", "pipe"],
151
+ });
136
152
  const stdoutPath = path.join(validationDir, `${artifact.id}.stdout`);
137
153
  const stderrPath = path.join(validationDir, `${artifact.id}.stderr`);
138
154
  writeFileSync(stdoutPath, executed.stdout ?? "");
@@ -179,6 +195,18 @@ function prepareRunDirectory(runDir, sandbox) {
179
195
  function writeRecord(runDir, record) {
180
196
  writeFileSync(path.join(runDir, "run.json"), `${JSON.stringify(record, null, 2)}\n`);
181
197
  }
198
+ function unlinkIfPresent(filePath) {
199
+ if (!filePath)
200
+ return;
201
+ try {
202
+ lstatSync(filePath);
203
+ unlinkSync(filePath);
204
+ }
205
+ catch (error) {
206
+ if (error.code !== "ENOENT")
207
+ throw error;
208
+ }
209
+ }
182
210
  const ENVIRONMENT_NAME = /^[A-Za-z_][A-Za-z0-9_]*$/;
183
211
  function resolveCredentialEnv(names) {
184
212
  const unique = [...new Set(names)];
@@ -239,7 +267,13 @@ export function expectedArtifactsFromSkill(skillDir) {
239
267
  const provenance = JSON.parse(readFileSync(provenancePath, "utf8"));
240
268
  const produces = provenance.artifacts?.produces ?? [];
241
269
  return produces.flatMap((artifact) => typeof artifact.id === "string" && typeof artifact.default_filename === "string"
242
- ? [{ id: artifact.id, path: artifact.default_filename }]
270
+ ? [
271
+ {
272
+ id: artifact.id,
273
+ path: artifact.default_filename,
274
+ optional: artifact.optional === true ? true : undefined,
275
+ },
276
+ ]
243
277
  : []);
244
278
  }
245
279
  export async function runPiSkill(options, dependencies = {}) {
@@ -262,6 +296,15 @@ export async function runPiSkill(options, dependencies = {}) {
262
296
  if (sandbox === "local" && (options.sandboxImage || options.credentialEnv?.length)) {
263
297
  throw new Error("container image and credential options require sandbox=container");
264
298
  }
299
+ if (options.piTestAuthDir && sandbox === "container") {
300
+ throw new Error("pi-test-auth requires the local sandbox until host-side tool isolation is available");
301
+ }
302
+ if (options.piTestAuthDir && options.provider !== PI_TEST_AUTH_PROVIDER) {
303
+ throw new Error(`pi-test-auth requires provider=${PI_TEST_AUTH_PROVIDER}`);
304
+ }
305
+ if (options.piTestAuthDir && !inspectPiTestAuth(options.piTestAuthDir).configured) {
306
+ throw new Error(`pi-test-auth is not configured; run foundry-build pi-test-auth login first`);
307
+ }
265
308
  if (!options.provider.trim() || !options.model.trim()) {
266
309
  throw new Error("provider and model are required");
267
310
  }
@@ -279,6 +322,7 @@ export async function runPiSkill(options, dependencies = {}) {
279
322
  const expectedArtifacts = options.expectedArtifacts ?? expectedArtifactsFromSkill(skillDir);
280
323
  loadVerifyEntries(skillDir);
281
324
  const { workspace, agentDir, inputsDir } = prepareRunDirectory(runDir, sandbox);
325
+ const authLinkPath = options.piTestAuthDir && agentDir ? path.join(agentDir, "auth.json") : undefined;
282
326
  const workerSkillDir = path.join(runDir, "skill");
283
327
  cpSync(skillDir, workerSkillDir, {
284
328
  recursive: true,
@@ -345,6 +389,9 @@ export async function runPiSkill(options, dependencies = {}) {
345
389
  security_boundary: false,
346
390
  network_policy: "host",
347
391
  credential_policy: "ambient-environment",
392
+ credential_auth_store: options.piTestAuthDir
393
+ ? "pi-test-auth"
394
+ : "none",
348
395
  workdir: relativeRecordPath(runDir, workspace),
349
396
  agent_config_dir: relativeRecordPath(runDir, agentDir),
350
397
  },
@@ -389,7 +436,19 @@ export async function runPiSkill(options, dependencies = {}) {
389
436
  ...(options.thinking ? ["--thinking", options.thinking] : []),
390
437
  ],
391
438
  };
392
- const client = (dependencies.createClient ?? ((value) => new RpcClient(value)))(clientOptions);
439
+ let client;
440
+ try {
441
+ // Pi is exactly pinned at 0.84.4, whose FileAuthStorageBackend updates auth.json in place.
442
+ // Refresh therefore follows this link into the shared store. Re-audit this assumption with
443
+ // any Pi version bump; unlinkIfPresent also removes a broken or unexpectedly replaced link.
444
+ if (authLinkPath)
445
+ symlinkSync(piTestAuthPath(options.piTestAuthDir), authLinkPath);
446
+ client = (dependencies.createClient ?? ((value) => new RpcClient(value)))(clientOptions);
447
+ }
448
+ catch (error) {
449
+ unlinkIfPresent(authLinkPath);
450
+ throw error;
451
+ }
393
452
  const events = [];
394
453
  let state;
395
454
  let stats;
@@ -432,7 +491,9 @@ export async function runPiSkill(options, dependencies = {}) {
432
491
  stats = await client.getSessionStats();
433
492
  finalOutput = (await client.getLastAssistantText()) ?? undefined;
434
493
  const artifacts = validateArtifacts(expectedArtifacts, workspace, runDir, skillDir);
435
- const artifactFailure = artifacts.some((artifact) => ["missing", "failed", "error"].includes(artifact.status));
494
+ const optionalIds = new Set(expectedArtifacts.filter((artifact) => artifact.optional).map((artifact) => artifact.id));
495
+ const artifactFailure = artifacts.some((artifact) => ["failed", "error"].includes(artifact.status) ||
496
+ (artifact.status === "missing" && !optionalIds.has(artifact.id)));
436
497
  const agentFailure = isAgentFailure(events);
437
498
  status = artifactFailure || agentFailure ? "failed" : "passed";
438
499
  if (status === "failed")
@@ -489,6 +550,7 @@ export async function runPiSkill(options, dependencies = {}) {
489
550
  unsubscribe();
490
551
  await client.stop().catch(() => undefined);
491
552
  writeFileSync(stderrPath, client.getStderr());
553
+ unlinkIfPresent(authLinkPath);
492
554
  }
493
555
  }
494
556
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,SAAS,EACT,MAAM,EACN,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EACL,SAAS,EACT,OAAO,IAAI,UAAU,GAKtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GAKtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;AAClE,MAAM,UAAU,GAAG,4BAA4B,CAAC;AAChD,MAAM,WAAW,GAAG,4BAA4B,CAAC;AAiKjD,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,QAAgB;IAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,OAAO,GAAG,IAAI;IAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC1E,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7B,CAAC;IACF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;;YAC5D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,IAAI,CAAC,MAAM,EAAE;QAAE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5F,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,oBAAoB,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,iCAAiC,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB,EAAE,YAAoB;IACnE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,4CAA4C,YAAY,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QACpF,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,UAAoB,EACpB,SAAiB,EACjB,YAAkC;IAElC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,SAAS,CAAC,SAAS,CAAC,CAAC;IACrB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,GAAG,CAAC,CAAC;QACjF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAClF,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1B,OAAO;YACL,MAAM;YACN,WAAW,EAAE,GAAG,YAAY,IAAI,IAAI,EAAE;YACtC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;SAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAmB,CAAC;IAChF,IAAI,QAAQ,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,2BAA2B,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAc,EAAE,YAAoB;IAClE,OAAO,IAAI,CAAC,MAAM;QAChB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,iBAAiB,CACxB,QAA4B,EAC5B,SAAiB,EACjB,MAAc,EACd,QAAgB;IAEhB,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3F,MAAM,YAAY,GAAG,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC/F,MAAM,MAAM,GAAmB;YAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC;SACjC,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAC;QAC1B,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,SAAS,CACxB,KAAK,CAAC,aAAa,EACnB,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,EAChD,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CACxE,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;QACrE,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACjD,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,MAAM,CAAC,SAAS,GAAG;YACjB,GAAG,EAAE,KAAK,CAAC,aAAa;YACxB,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC;YACpD,SAAS,EAAE,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YACvE,WAAW,EAAE,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC;YACnD,WAAW,EAAE,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC;YACnD,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO;SAC/B,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,MAA+B;IACrD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QACrF,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC;IACxF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,MAAc,EAAE,MAAqB;IAC5E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM;QAC7B,CAAC,CAAC,+CAA+C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7G,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,UAAU,KAAK,OAAO,MAAM,GAAG,SAAS,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAc,EACd,OAAoB;IAEpB,IAAI,UAAU,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;IACnF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACjD,SAAS,CAAC,SAAS,CAAC,CAAC;IACrB,MAAM,SAAS,GACb,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrF,IAAI,OAAO,KAAK,WAAW;QAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,MAAwB;IAC3D,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAEpD,SAAS,oBAAoB,CAAC,KAAe;IAC3C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CACtB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,SAAkB;IAElB,OAAO;QACL;YACE,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,OAAO;SACjB;QACD,GAAG,CAAC,SAAS;YACX,CAAC,CAAC;gBACE;oBACE,IAAI,EAAE,MAAe;oBACrB,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,QAAiB;iBAC3B;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP;YACE,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,YAAY;YACpB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,QAAQ;SAClB;QACD;YACE,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,cAAc;SACxB;QACD;YACE,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,iBAAiB;SAC3B;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAuB,CAAC;IAC1F,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,EAAE,QAAQ,IAAI,EAAE,CAAC;IACtD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnC,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,gBAAgB,KAAK,QAAQ;QAC9E,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QACxD,CAAC,CAAC,EAAE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAA0B,EAC1B,eAAqC,EAAE;IAEvC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC;IAChD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC;IAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACtD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,aAAa,GACjB,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,KAAK,GACT,OAAO,KAAK,WAAW;QACrB,CAAC,CAAC,CAAC,YAAY,CAAC,qBAAqB,IAAI,qBAAqB,CAAC,CAC3D,OAAO,CAAC,YAAY,IAAI,uBAAuB,EAC/C,SAAS,CACV;QACH,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC5F,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC5B,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE;QAC/B,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IACH,YAAY,CAAC,cAAc,CAAC,CAAC;IAC7B,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3F,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClG,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACnD,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC7B,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE9B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC/D,MAAM,MAAM,GACV,OAAO,KAAK,WAAW;QACrB,CAAC,CAAC,eAAe,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9E,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,aAAa,GAAG,cAAc,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;IAC1D,MAAM,UAAU,GAAG;QACjB,kBAAkB,EAAE,CAAU;QAC9B,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE;QACjC,MAAM,EAAE;YACN,IAAI,EAAE,IAAa;YACnB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,eAAe,EAAE,OAAO,CAAC,KAAK;YAC9B,kBAAkB,EAAE,OAAO,CAAC,QAAQ;SACrC;QACD,UAAU,EAAE;YACV,KAAK;YACL,UAAU,EAAE,QAAQ;YACpB,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC;YAClC,iBAAiB,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;YACtF,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC;YACjC,mBAAmB,EAAE,UAAU,KAAK,EAAE;YACtC,KAAK;YACL,UAAU,EAAE,SAAS;YACrB,0BAA0B,EAAE,IAAa;SAC1C;QACD,OAAO,EACL,OAAO,KAAK,WAAW;YACrB,CAAC,CAAC;gBACE,IAAI,EAAE,WAAoB;gBAC1B,iBAAiB,EAAE,IAAa;gBAChC,cAAc,EAAE,cAAc;gBAC9B,iBAAiB,EAAE,aAAa,CAAC,MAAM;oBACrC,CAAC,CAAE,yBAAmC;oBACtC,CAAC,CAAE,MAAgB;gBACrB,cAAc,EAAE,aAAa;gBAC7B,OAAO,EAAE,YAAqB;gBAC9B,gBAAgB,EAAE,WAAoB;gBACtC,KAAK,EAAE,KAAM;gBACb,MAAM,EAAE,MAAO;gBACf,cAAc,EAAE,aAAa;aAC9B;YACH,CAAC,CAAC;gBACE,IAAI,EAAE,OAAgB;gBACtB,iBAAiB,EAAE,KAAc;gBACjC,cAAc,EAAE,MAAe;gBAC/B,iBAAiB,EAAE,qBAA8B;gBACjD,OAAO,EAAE,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC;gBAC9C,gBAAgB,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAS,CAAC;aACxD;QACP,MAAM;QACN,UAAU,EAAE,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC;QACjD,WAAW,EAAE,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC;KACpD,CAAC;IAEF,MAAM,OAAO,GACX,OAAO,KAAK,WAAW;QACrB,CAAC,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACtF,MAAM,YAAY,GAChB,OAAO,KAAK,WAAW;QACrB,CAAC,CAAC;YACE,UAAU,EAAE,SAAS;YACrB,cAAc,EAAE,aAAa;YAC7B,QAAQ,EAAE,KAAM,CAAC,WAAW;YAC5B,OAAO,EAAE,cAAc;YACvB,cAAc,EAAE,aAAa;YAC7B,IAAI,EACF,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU;gBAC1E,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;gBAC3C,CAAC,CAAC,SAAS;YACf,MAAM,EAAE,MAAO;SAChB;QACH,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,aAAa,GAAqB;QACtC,OAAO;QACP,GAAG,EAAE,SAAS;QACd,GAAG,EACD,OAAO,KAAK,WAAW;YACrB,CAAC,CAAC,EAAE,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YACnE,CAAC,CAAC,EAAE,mBAAmB,EAAE,QAAS,EAAE;QACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE;YACJ,cAAc;YACd,oBAAoB;YACpB,iBAAiB;YACjB,uBAAuB;YACvB,aAAa;YACb,SAAS;YACT,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc;YACnD,SAAS;YACT,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D;KACF,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC/F,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,KAAkC,CAAC;IACvC,IAAI,KAA+B,CAAC;IACpC,IAAI,WAA+B,CAAC;IACpC,IAAI,MAAiB,CAAC;IACtB,IAAI,WAA6C,CAAC;IAClD,IAAI,KAAyB,CAAC;IAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,aAAa,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,SAAS,GAAG,CAAC,QAAQ,CAAC;QACtB,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC;IACF,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjE,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,KAAgD,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC/C,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,QAAQ,GAAG,IAAI,CAAC;gBAChB,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC3C,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,SAAS,IAAI,CAAC,CAAC,CAAC;YACzE,CAAC,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAClF,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC1E,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,KAAK,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;QACvC,WAAW,GAAG,CAAC,MAAM,MAAM,CAAC,oBAAoB,EAAE,CAAC,IAAI,SAAS,CAAC;QACjE,MAAM,SAAS,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpF,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClD,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CACzD,CAAC;QACF,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,GAAG,eAAe,IAAI,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/D,IAAI,MAAM,KAAK,QAAQ;YAAE,WAAW,GAAG,OAAO,CAAC;QAC/C,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAqB;YAC/B,GAAG,UAAU;YACb,MAAM;YACN,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE;YACnC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;YACnD,MAAM,EAAE;gBACN,GAAG,UAAU,CAAC,MAAM;gBACpB,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;aACvF;YACD,SAAS;YACT,KAAK,EAAE,KAAK;gBACV,CAAC,CAAC;oBACE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;oBAChC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;oBAClC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;oBACzC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;oBAC3C,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;oBAChC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,iBAAiB;oBAC9B,UAAU,EAAE,KAAK,CAAC,SAAS;iBAC5B;gBACH,CAAC,CAAC,SAAS;YACb,YAAY,EAAE,WAAW;SAC1B,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,KAAK,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/F,WAAW,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,MAAM,SAAS,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAqB;YAC/B,GAAG,UAAU;YACb,MAAM;YACN,YAAY,EAAE,WAAW;YACzB,KAAK;YACL,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE;YACnC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;YACnD,SAAS;SACV,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpD,WAAW,EAAE,CAAC;QACd,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3C,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galaxy-foundry/gxwf-pi-harness",
3
- "version": "0.1.0",
3
+ "version": "0.4.0",
4
4
  "description": "Pi-backed isolated worker runner and extension for testing Galaxy Workflow Foundry skills.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -38,7 +38,8 @@
38
38
  "license": "MIT",
39
39
  "dependencies": {
40
40
  "@earendil-works/pi-ai": "0.84.4",
41
- "@earendil-works/pi-coding-agent": "0.84.4"
41
+ "@earendil-works/pi-coding-agent": "0.84.4",
42
+ "@galaxy-foundry/gxwf-foundry": "0.1.2"
42
43
  },
43
44
  "devDependencies": {
44
45
  "@types/node": "^22.10.0",