@enricai/barnacle 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +958 -0
- package/dist/api/errors.d.ts +88 -0
- package/dist/api/errors.d.ts.map +1 -0
- package/dist/api/errors.js +164 -0
- package/dist/api/errors.js.map +1 -0
- package/dist/api/helpers/envelope.d.ts +13 -0
- package/dist/api/helpers/envelope.d.ts.map +1 -0
- package/dist/api/helpers/envelope.js +20 -0
- package/dist/api/helpers/envelope.js.map +1 -0
- package/dist/api/helpers/reply.d.ts +9 -0
- package/dist/api/helpers/reply.d.ts.map +1 -0
- package/dist/api/helpers/reply.js +14 -0
- package/dist/api/helpers/reply.js.map +1 -0
- package/dist/api/plugins/auth.d.ts +27 -0
- package/dist/api/plugins/auth.d.ts.map +1 -0
- package/dist/api/plugins/auth.js +111 -0
- package/dist/api/plugins/auth.js.map +1 -0
- package/dist/api/plugins/error-handler.d.ts +12 -0
- package/dist/api/plugins/error-handler.d.ts.map +1 -0
- package/dist/api/plugins/error-handler.js +72 -0
- package/dist/api/plugins/error-handler.js.map +1 -0
- package/dist/api/plugins/request-context.d.ts +17 -0
- package/dist/api/plugins/request-context.d.ts.map +1 -0
- package/dist/api/plugins/request-context.js +61 -0
- package/dist/api/plugins/request-context.js.map +1 -0
- package/dist/api/routes/health.d.ts +55 -0
- package/dist/api/routes/health.d.ts.map +1 -0
- package/dist/api/routes/health.js +137 -0
- package/dist/api/routes/health.js.map +1 -0
- package/dist/api/routes/plugins-introspection.d.ts +17 -0
- package/dist/api/routes/plugins-introspection.d.ts.map +1 -0
- package/dist/api/routes/plugins-introspection.js +13 -0
- package/dist/api/routes/plugins-introspection.js.map +1 -0
- package/dist/api/schemas/common.d.ts +114 -0
- package/dist/api/schemas/common.d.ts.map +1 -0
- package/dist/api/schemas/common.js +109 -0
- package/dist/api/schemas/common.js.map +1 -0
- package/dist/api/schemas/telemetry.d.ts +66 -0
- package/dist/api/schemas/telemetry.d.ts.map +1 -0
- package/dist/api/schemas/telemetry.js +52 -0
- package/dist/api/schemas/telemetry.js.map +1 -0
- package/dist/cache/keyed-ttl-cache.d.ts +45 -0
- package/dist/cache/keyed-ttl-cache.d.ts.map +1 -0
- package/dist/cache/keyed-ttl-cache.js +69 -0
- package/dist/cache/keyed-ttl-cache.js.map +1 -0
- package/dist/cache/response-cache.d.ts +37 -0
- package/dist/cache/response-cache.d.ts.map +1 -0
- package/dist/cache/response-cache.js +114 -0
- package/dist/cache/response-cache.js.map +1 -0
- package/dist/config.d.ts +258 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +138 -0
- package/dist/config.js.map +1 -0
- package/dist/lib/applicant-payload.d.ts +28 -0
- package/dist/lib/applicant-payload.d.ts.map +1 -0
- package/dist/lib/applicant-payload.js +20 -0
- package/dist/lib/applicant-payload.js.map +1 -0
- package/dist/lib/application-address.d.ts +16 -0
- package/dist/lib/application-address.d.ts.map +1 -0
- package/dist/lib/application-address.js +20 -0
- package/dist/lib/application-address.js.map +1 -0
- package/dist/lib/application-answers.d.ts +151 -0
- package/dist/lib/application-answers.d.ts.map +1 -0
- package/dist/lib/application-answers.js +95 -0
- package/dist/lib/application-answers.js.map +1 -0
- package/dist/lib/application-identity.d.ts +18 -0
- package/dist/lib/application-identity.d.ts.map +1 -0
- package/dist/lib/application-identity.js +20 -0
- package/dist/lib/application-identity.js.map +1 -0
- package/dist/lib/application-resume.d.ts +21 -0
- package/dist/lib/application-resume.d.ts.map +1 -0
- package/dist/lib/application-resume.js +23 -0
- package/dist/lib/application-resume.js.map +1 -0
- package/dist/lib/bedrock.d.ts +22 -0
- package/dist/lib/bedrock.d.ts.map +1 -0
- package/dist/lib/bedrock.js +35 -0
- package/dist/lib/bedrock.js.map +1 -0
- package/dist/lib/case-insensitive-headers.d.ts +15 -0
- package/dist/lib/case-insensitive-headers.d.ts.map +1 -0
- package/dist/lib/case-insensitive-headers.js +29 -0
- package/dist/lib/case-insensitive-headers.js.map +1 -0
- package/dist/lib/chromium-client-hints.d.ts +11 -0
- package/dist/lib/chromium-client-hints.d.ts.map +1 -0
- package/dist/lib/chromium-client-hints.js +17 -0
- package/dist/lib/chromium-client-hints.js.map +1 -0
- package/dist/lib/cookie-value.d.ts +8 -0
- package/dist/lib/cookie-value.d.ts.map +1 -0
- package/dist/lib/cookie-value.js +14 -0
- package/dist/lib/cookie-value.js.map +1 -0
- package/dist/lib/datadog.d.ts +8 -0
- package/dist/lib/datadog.d.ts.map +1 -0
- package/dist/lib/datadog.js +27 -0
- package/dist/lib/datadog.js.map +1 -0
- package/dist/lib/dd-metrics.d.ts +28 -0
- package/dist/lib/dd-metrics.d.ts.map +1 -0
- package/dist/lib/dd-metrics.js +62 -0
- package/dist/lib/dd-metrics.js.map +1 -0
- package/dist/lib/dispatch-metrics.d.ts +19 -0
- package/dist/lib/dispatch-metrics.d.ts.map +1 -0
- package/dist/lib/dispatch-metrics.js +65 -0
- package/dist/lib/dispatch-metrics.js.map +1 -0
- package/dist/lib/env.d.ts +37 -0
- package/dist/lib/env.d.ts.map +1 -0
- package/dist/lib/env.js +70 -0
- package/dist/lib/env.js.map +1 -0
- package/dist/lib/errors.d.ts +15 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +20 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/http.d.ts +7 -0
- package/dist/lib/http.d.ts.map +1 -0
- package/dist/lib/http.js +14 -0
- package/dist/lib/http.js.map +1 -0
- package/dist/lib/job-tracking.d.ts +17 -0
- package/dist/lib/job-tracking.d.ts.map +1 -0
- package/dist/lib/job-tracking.js +19 -0
- package/dist/lib/job-tracking.js.map +1 -0
- package/dist/lib/llm/anthropic-client.d.ts +12 -0
- package/dist/lib/llm/anthropic-client.d.ts.map +1 -0
- package/dist/lib/llm/anthropic-client.js +23 -0
- package/dist/lib/llm/anthropic-client.js.map +1 -0
- package/dist/lib/llm/judge.d.ts +57 -0
- package/dist/lib/llm/judge.d.ts.map +1 -0
- package/dist/lib/llm/judge.js +123 -0
- package/dist/lib/llm/judge.js.map +1 -0
- package/dist/lib/llm/judges/error-messages.d.ts +38 -0
- package/dist/lib/llm/judges/error-messages.d.ts.map +1 -0
- package/dist/lib/llm/judges/error-messages.js +72 -0
- package/dist/lib/llm/judges/error-messages.js.map +1 -0
- package/dist/lib/llm/judges/invalid-fields.d.ts +43 -0
- package/dist/lib/llm/judges/invalid-fields.d.ts.map +1 -0
- package/dist/lib/llm/judges/invalid-fields.js +80 -0
- package/dist/lib/llm/judges/invalid-fields.js.map +1 -0
- package/dist/lib/llm/judges/modal-priority.d.ts +41 -0
- package/dist/lib/llm/judges/modal-priority.d.ts.map +1 -0
- package/dist/lib/llm/judges/modal-priority.js +74 -0
- package/dist/lib/llm/judges/modal-priority.js.map +1 -0
- package/dist/lib/llm/judges/select-option.d.ts +49 -0
- package/dist/lib/llm/judges/select-option.d.ts.map +1 -0
- package/dist/lib/llm/judges/select-option.js +90 -0
- package/dist/lib/llm/judges/select-option.js.map +1 -0
- package/dist/lib/llm/judges/verify-submit.d.ts +68 -0
- package/dist/lib/llm/judges/verify-submit.d.ts.map +1 -0
- package/dist/lib/llm/judges/verify-submit.js +89 -0
- package/dist/lib/llm/judges/verify-submit.js.map +1 -0
- package/dist/lib/llm/schemas.d.ts +220 -0
- package/dist/lib/llm/schemas.d.ts.map +1 -0
- package/dist/lib/llm/schemas.js +239 -0
- package/dist/lib/llm/schemas.js.map +1 -0
- package/dist/lib/logging.d.ts +39 -0
- package/dist/lib/logging.d.ts.map +1 -0
- package/dist/lib/logging.js +219 -0
- package/dist/lib/logging.js.map +1 -0
- package/dist/lib/multipart.d.ts +34 -0
- package/dist/lib/multipart.d.ts.map +1 -0
- package/dist/lib/multipart.js +55 -0
- package/dist/lib/multipart.js.map +1 -0
- package/dist/lib/option-matcher.d.ts +15 -0
- package/dist/lib/option-matcher.d.ts.map +1 -0
- package/dist/lib/option-matcher.js +69 -0
- package/dist/lib/option-matcher.js.map +1 -0
- package/dist/lib/phone.d.ts +11 -0
- package/dist/lib/phone.d.ts.map +1 -0
- package/dist/lib/phone.js +17 -0
- package/dist/lib/phone.js.map +1 -0
- package/dist/lib/random.d.ts +22 -0
- package/dist/lib/random.d.ts.map +1 -0
- package/dist/lib/random.js +33 -0
- package/dist/lib/random.js.map +1 -0
- package/dist/lib/statsd.d.ts +11 -0
- package/dist/lib/statsd.d.ts.map +1 -0
- package/dist/lib/statsd.js +68 -0
- package/dist/lib/statsd.js.map +1 -0
- package/dist/lib/telemetry/call-capture.d.ts +89 -0
- package/dist/lib/telemetry/call-capture.d.ts.map +1 -0
- package/dist/lib/telemetry/call-capture.js +190 -0
- package/dist/lib/telemetry/call-capture.js.map +1 -0
- package/dist/lib/telemetry/call-types.d.ts +65 -0
- package/dist/lib/telemetry/call-types.d.ts.map +1 -0
- package/dist/lib/telemetry/call-types.js +68 -0
- package/dist/lib/telemetry/call-types.js.map +1 -0
- package/dist/lib/telemetry/run-state.d.ts +15 -0
- package/dist/lib/telemetry/run-state.d.ts.map +1 -0
- package/dist/lib/telemetry/run-state.js +23 -0
- package/dist/lib/telemetry/run-state.js.map +1 -0
- package/dist/lib/telemetry/s3-sink.d.ts +48 -0
- package/dist/lib/telemetry/s3-sink.d.ts.map +1 -0
- package/dist/lib/telemetry/s3-sink.js +229 -0
- package/dist/lib/telemetry/s3-sink.js.map +1 -0
- package/dist/lib/telemetry/submission-capture.d.ts +45 -0
- package/dist/lib/telemetry/submission-capture.d.ts.map +1 -0
- package/dist/lib/telemetry/submission-capture.js +57 -0
- package/dist/lib/telemetry/submission-capture.js.map +1 -0
- package/dist/lib/telemetry/telemetry-paths.d.ts +59 -0
- package/dist/lib/telemetry/telemetry-paths.d.ts.map +1 -0
- package/dist/lib/telemetry/telemetry-paths.js +103 -0
- package/dist/lib/telemetry/telemetry-paths.js.map +1 -0
- package/dist/lib/tracking-click.d.ts +20 -0
- package/dist/lib/tracking-click.d.ts.map +1 -0
- package/dist/lib/tracking-click.js +75 -0
- package/dist/lib/tracking-click.js.map +1 -0
- package/dist/lib/url-capture.d.ts +8 -0
- package/dist/lib/url-capture.d.ts.map +1 -0
- package/dist/lib/url-capture.js +17 -0
- package/dist/lib/url-capture.js.map +1 -0
- package/dist/lib/us-states.d.ts +20 -0
- package/dist/lib/us-states.d.ts.map +1 -0
- package/dist/lib/us-states.js +86 -0
- package/dist/lib/us-states.js.map +1 -0
- package/dist/lib/zod-multipart.d.ts +18 -0
- package/dist/lib/zod-multipart.d.ts.map +1 -0
- package/dist/lib/zod-multipart.js +35 -0
- package/dist/lib/zod-multipart.js.map +1 -0
- package/dist/plugins/config-plugin.d.ts +77 -0
- package/dist/plugins/config-plugin.d.ts.map +1 -0
- package/dist/plugins/config-plugin.js +216 -0
- package/dist/plugins/config-plugin.js.map +1 -0
- package/dist/plugins/discover.d.ts +72 -0
- package/dist/plugins/discover.d.ts.map +1 -0
- package/dist/plugins/discover.js +265 -0
- package/dist/plugins/discover.js.map +1 -0
- package/dist/plugins/json-schema-to-zod.d.ts +47 -0
- package/dist/plugins/json-schema-to-zod.d.ts.map +1 -0
- package/dist/plugins/json-schema-to-zod.js +85 -0
- package/dist/plugins/json-schema-to-zod.js.map +1 -0
- package/dist/plugins/loader.d.ts +34 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +348 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/plugin-api-version.d.ts +8 -0
- package/dist/plugins/plugin-api-version.d.ts.map +1 -0
- package/dist/plugins/plugin-api-version.js +11 -0
- package/dist/plugins/plugin-api-version.js.map +1 -0
- package/dist/plugins/plugin-manifest-envelope.d.ts +16 -0
- package/dist/plugins/plugin-manifest-envelope.d.ts.map +1 -0
- package/dist/plugins/plugin-manifest-envelope.js +19 -0
- package/dist/plugins/plugin-manifest-envelope.js.map +1 -0
- package/dist/scraper/behavioral-signals.d.ts +16 -0
- package/dist/scraper/behavioral-signals.d.ts.map +1 -0
- package/dist/scraper/behavioral-signals.js +30 -0
- package/dist/scraper/behavioral-signals.js.map +1 -0
- package/dist/scraper/errors.d.ts +193 -0
- package/dist/scraper/errors.d.ts.map +1 -0
- package/dist/scraper/errors.js +226 -0
- package/dist/scraper/errors.js.map +1 -0
- package/dist/scraper/fixtures.d.ts +23 -0
- package/dist/scraper/fixtures.d.ts.map +1 -0
- package/dist/scraper/fixtures.js +48 -0
- package/dist/scraper/fixtures.js.map +1 -0
- package/dist/scraper/flow-runner.d.ts +1319 -0
- package/dist/scraper/flow-runner.d.ts.map +1 -0
- package/dist/scraper/flow-runner.js +5637 -0
- package/dist/scraper/flow-runner.js.map +1 -0
- package/dist/scraper/graphql-client.d.ts +30 -0
- package/dist/scraper/graphql-client.d.ts.map +1 -0
- package/dist/scraper/graphql-client.js +14 -0
- package/dist/scraper/graphql-client.js.map +1 -0
- package/dist/scraper/http-client.d.ts +75 -0
- package/dist/scraper/http-client.d.ts.map +1 -0
- package/dist/scraper/http-client.js +189 -0
- package/dist/scraper/http-client.js.map +1 -0
- package/dist/scraper/http-status-classifier.d.ts +12 -0
- package/dist/scraper/http-status-classifier.d.ts.map +1 -0
- package/dist/scraper/http-status-classifier.js +29 -0
- package/dist/scraper/http-status-classifier.js.map +1 -0
- package/dist/scraper/metrics.d.ts +50 -0
- package/dist/scraper/metrics.d.ts.map +1 -0
- package/dist/scraper/metrics.js +85 -0
- package/dist/scraper/metrics.js.map +1 -0
- package/dist/scraper/navigate.d.ts +20 -0
- package/dist/scraper/navigate.d.ts.map +1 -0
- package/dist/scraper/navigate.js +30 -0
- package/dist/scraper/navigate.js.map +1 -0
- package/dist/scraper/oracle-sentinels.d.ts +22 -0
- package/dist/scraper/oracle-sentinels.d.ts.map +1 -0
- package/dist/scraper/oracle-sentinels.js +40 -0
- package/dist/scraper/oracle-sentinels.js.map +1 -0
- package/dist/scraper/parse-json-response.d.ts +16 -0
- package/dist/scraper/parse-json-response.d.ts.map +1 -0
- package/dist/scraper/parse-json-response.js +37 -0
- package/dist/scraper/parse-json-response.js.map +1 -0
- package/dist/scraper/pool.d.ts +37 -0
- package/dist/scraper/pool.d.ts.map +1 -0
- package/dist/scraper/pool.js +105 -0
- package/dist/scraper/pool.js.map +1 -0
- package/dist/scraper/rate-limited-json-client.d.ts +35 -0
- package/dist/scraper/rate-limited-json-client.d.ts.map +1 -0
- package/dist/scraper/rate-limited-json-client.js +29 -0
- package/dist/scraper/rate-limited-json-client.js.map +1 -0
- package/dist/scraper/raw-fetch.d.ts +49 -0
- package/dist/scraper/raw-fetch.d.ts.map +1 -0
- package/dist/scraper/raw-fetch.js +40 -0
- package/dist/scraper/raw-fetch.js.map +1 -0
- package/dist/scraper/require-response-field.d.ts +23 -0
- package/dist/scraper/require-response-field.d.ts.map +1 -0
- package/dist/scraper/require-response-field.js +42 -0
- package/dist/scraper/require-response-field.js.map +1 -0
- package/dist/scraper/retry.d.ts +33 -0
- package/dist/scraper/retry.d.ts.map +1 -0
- package/dist/scraper/retry.js +122 -0
- package/dist/scraper/retry.js.map +1 -0
- package/dist/scraper/session-browserbase.d.ts +35 -0
- package/dist/scraper/session-browserbase.d.ts.map +1 -0
- package/dist/scraper/session-browserbase.js +198 -0
- package/dist/scraper/session-browserbase.js.map +1 -0
- package/dist/scraper/session-shared.d.ts +29 -0
- package/dist/scraper/session-shared.d.ts.map +1 -0
- package/dist/scraper/session-shared.js +35 -0
- package/dist/scraper/session-shared.js.map +1 -0
- package/dist/scraper/session-steel.d.ts +31 -0
- package/dist/scraper/session-steel.d.ts.map +1 -0
- package/dist/scraper/session-steel.js +140 -0
- package/dist/scraper/session-steel.js.map +1 -0
- package/dist/scraper/session-warmup.d.ts +31 -0
- package/dist/scraper/session-warmup.d.ts.map +1 -0
- package/dist/scraper/session-warmup.js +46 -0
- package/dist/scraper/session-warmup.js.map +1 -0
- package/dist/scraper/session.d.ts +21 -0
- package/dist/scraper/session.d.ts.map +1 -0
- package/dist/scraper/session.js +28 -0
- package/dist/scraper/session.js.map +1 -0
- package/dist/scraper/stagehand-guard.d.ts +128 -0
- package/dist/scraper/stagehand-guard.d.ts.map +1 -0
- package/dist/scraper/stagehand-guard.js +337 -0
- package/dist/scraper/stagehand-guard.js.map +1 -0
- package/dist/scraper/throttle.d.ts +21 -0
- package/dist/scraper/throttle.d.ts.map +1 -0
- package/dist/scraper/throttle.js +45 -0
- package/dist/scraper/throttle.js.map +1 -0
- package/dist/scripts/hca-inbox-poll.d.ts +19 -0
- package/dist/scripts/hca-inbox-poll.d.ts.map +1 -0
- package/dist/scripts/hca-inbox-poll.js +151 -0
- package/dist/scripts/hca-inbox-poll.js.map +1 -0
- package/dist/scripts/judge-llm-batch.d.ts +98 -0
- package/dist/scripts/judge-llm-batch.d.ts.map +1 -0
- package/dist/scripts/judge-llm-batch.js +350 -0
- package/dist/scripts/judge-llm-batch.js.map +1 -0
- package/dist/scripts/llm-heal.d.ts +165 -0
- package/dist/scripts/llm-heal.d.ts.map +1 -0
- package/dist/scripts/llm-heal.js +595 -0
- package/dist/scripts/llm-heal.js.map +1 -0
- package/dist/scripts/migrate-telemetry-dir-names.d.ts +57 -0
- package/dist/scripts/migrate-telemetry-dir-names.d.ts.map +1 -0
- package/dist/scripts/migrate-telemetry-dir-names.js +156 -0
- package/dist/scripts/migrate-telemetry-dir-names.js.map +1 -0
- package/dist/scripts/probe-setinputfiles.d.ts +28 -0
- package/dist/scripts/probe-setinputfiles.d.ts.map +1 -0
- package/dist/scripts/probe-setinputfiles.js +95 -0
- package/dist/scripts/probe-setinputfiles.js.map +1 -0
- package/dist/scripts/recon-browser.d.ts +304 -0
- package/dist/scripts/recon-browser.d.ts.map +1 -0
- package/dist/scripts/recon-browser.js +1833 -0
- package/dist/scripts/recon-browser.js.map +1 -0
- package/dist/scripts/recon-generate.d.ts +182 -0
- package/dist/scripts/recon-generate.d.ts.map +1 -0
- package/dist/scripts/recon-generate.js +2572 -0
- package/dist/scripts/recon-generate.js.map +1 -0
- package/dist/scripts/recon-heal.d.ts +176 -0
- package/dist/scripts/recon-heal.d.ts.map +1 -0
- package/dist/scripts/recon-heal.js +584 -0
- package/dist/scripts/recon-heal.js.map +1 -0
- package/dist/scripts/recon-http.d.ts +19 -0
- package/dist/scripts/recon-http.d.ts.map +1 -0
- package/dist/scripts/recon-http.js +377 -0
- package/dist/scripts/recon-http.js.map +1 -0
- package/dist/scripts/recon-replay-jobs.d.ts +21 -0
- package/dist/scripts/recon-replay-jobs.d.ts.map +1 -0
- package/dist/scripts/recon-replay-jobs.js +221 -0
- package/dist/scripts/recon-replay-jobs.js.map +1 -0
- package/dist/scripts/recon-shared.d.ts +52 -0
- package/dist/scripts/recon-shared.d.ts.map +1 -0
- package/dist/scripts/recon-shared.js +68 -0
- package/dist/scripts/recon-shared.js.map +1 -0
- package/dist/scripts/recon-summarize.d.ts +15 -0
- package/dist/scripts/recon-summarize.d.ts.map +1 -0
- package/dist/scripts/recon-summarize.js +233 -0
- package/dist/scripts/recon-summarize.js.map +1 -0
- package/dist/scripts/smoke-test.d.ts +22 -0
- package/dist/scripts/smoke-test.d.ts.map +1 -0
- package/dist/scripts/smoke-test.js +236 -0
- package/dist/scripts/smoke-test.js.map +1 -0
- package/dist/server.d.ts +10 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +189 -0
- package/dist/server.js.map +1 -0
- package/dist/site-plugin.d.ts +226 -0
- package/dist/site-plugin.d.ts.map +1 -0
- package/dist/site-plugin.js +13 -0
- package/dist/site-plugin.js.map +1 -0
- package/dist/testing/answers-fixture.d.ts +13 -0
- package/dist/testing/answers-fixture.d.ts.map +1 -0
- package/dist/testing/answers-fixture.js +37 -0
- package/dist/testing/answers-fixture.js.map +1 -0
- package/dist/testing/batch-email-confirmation.d.ts +58 -0
- package/dist/testing/batch-email-confirmation.d.ts.map +1 -0
- package/dist/testing/batch-email-confirmation.js +62 -0
- package/dist/testing/batch-email-confirmation.js.map +1 -0
- package/dist/testing/batch-report.d.ts +33 -0
- package/dist/testing/batch-report.d.ts.map +1 -0
- package/dist/testing/batch-report.js +30 -0
- package/dist/testing/batch-report.js.map +1 -0
- package/dist/testing/contract-parity-suite.d.ts +55 -0
- package/dist/testing/contract-parity-suite.d.ts.map +1 -0
- package/dist/testing/contract-parity-suite.js +39 -0
- package/dist/testing/contract-parity-suite.js.map +1 -0
- package/dist/testing/coverage-guard-suite.d.ts +46 -0
- package/dist/testing/coverage-guard-suite.d.ts.map +1 -0
- package/dist/testing/coverage-guard-suite.js +39 -0
- package/dist/testing/coverage-guard-suite.js.map +1 -0
- package/dist/testing/fixtures/resume.pdf +54 -0
- package/dist/testing/integration-runner.d.ts +62 -0
- package/dist/testing/integration-runner.d.ts.map +1 -0
- package/dist/testing/integration-runner.js +46 -0
- package/dist/testing/integration-runner.js.map +1 -0
- package/dist/testing/mock-fetch-response.d.ts +7 -0
- package/dist/testing/mock-fetch-response.d.ts.map +1 -0
- package/dist/testing/mock-fetch-response.js +16 -0
- package/dist/testing/mock-fetch-response.js.map +1 -0
- package/dist/testing/persona-fixture.d.ts +77 -0
- package/dist/testing/persona-fixture.d.ts.map +1 -0
- package/dist/testing/persona-fixture.js +83 -0
- package/dist/testing/persona-fixture.js.map +1 -0
- package/dist/testing/replay-integration-suite.d.ts +50 -0
- package/dist/testing/replay-integration-suite.d.ts.map +1 -0
- package/dist/testing/replay-integration-suite.js +45 -0
- package/dist/testing/replay-integration-suite.js.map +1 -0
- package/dist/testing/resume-fixture.d.ts +39 -0
- package/dist/testing/resume-fixture.d.ts.map +1 -0
- package/dist/testing/resume-fixture.js +38 -0
- package/dist/testing/resume-fixture.js.map +1 -0
- package/dist/testmail/client.d.ts +61 -0
- package/dist/testmail/client.d.ts.map +1 -0
- package/dist/testmail/client.js +190 -0
- package/dist/testmail/client.js.map +1 -0
- package/dist/testmail/errors.d.ts +18 -0
- package/dist/testmail/errors.d.ts.map +1 -0
- package/dist/testmail/errors.js +29 -0
- package/dist/testmail/errors.js.map +1 -0
- package/dist/types/dispatch-metrics.d.ts +46 -0
- package/dist/types/dispatch-metrics.d.ts.map +1 -0
- package/dist/types/dispatch-metrics.js +25 -0
- package/dist/types/dispatch-metrics.js.map +1 -0
- package/dist/types/logging.d.ts +11 -0
- package/dist/types/logging.d.ts.map +1 -0
- package/dist/types/logging.js +3 -0
- package/dist/types/logging.js.map +1 -0
- package/package.json +283 -0
package/dist/config.js
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.config = void 0;
|
|
4
|
+
exports.loadConfig = loadConfig;
|
|
5
|
+
const env_1 = require("./lib/env");
|
|
6
|
+
/**
|
|
7
|
+
* Parses a comma-separated env var into a non-empty string array with the
|
|
8
|
+
* empty entries filtered out. Returns an empty array if the var is unset.
|
|
9
|
+
*/
|
|
10
|
+
function parseList(value) {
|
|
11
|
+
return value
|
|
12
|
+
.split(",")
|
|
13
|
+
.map((item) => item.trim())
|
|
14
|
+
.filter((item) => item.length > 0);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Loads and validates the application config. Call this once at process
|
|
18
|
+
* startup; subsequent calls return the same frozen object.
|
|
19
|
+
*/
|
|
20
|
+
function loadConfig() {
|
|
21
|
+
return {
|
|
22
|
+
appName: (0, env_1.getEnv)("APP_NAME", "barnacle"),
|
|
23
|
+
nodeEnv: (0, env_1.getNodeEnv)(),
|
|
24
|
+
host: (0, env_1.getEnv)("HOST", "0.0.0.0"),
|
|
25
|
+
port: (0, env_1.getNumericEnv)("PORT", 3000),
|
|
26
|
+
logLevel: (0, env_1.getEnv)("LOG_LEVEL", "info"),
|
|
27
|
+
auth: {
|
|
28
|
+
hashedKeys: parseList((0, env_1.getEnv)("API_KEYS_HASHED", "")),
|
|
29
|
+
devBypass: (0, env_1.getBoolEnv)("DEV_BYPASS_AUTH", false),
|
|
30
|
+
},
|
|
31
|
+
trustProxy: (0, env_1.getBoolEnv)("TRUST_PROXY", true),
|
|
32
|
+
scraper: {
|
|
33
|
+
provider: (() => {
|
|
34
|
+
const raw = ((0, env_1.getEnv)("SCRAPER_PROVIDER", "browserbase") || "").toLowerCase();
|
|
35
|
+
if (raw !== "browserbase" && raw !== "steel") {
|
|
36
|
+
throw new Error(`SCRAPER_PROVIDER must be "browserbase" or "steel" (got ${JSON.stringify(raw)})`);
|
|
37
|
+
}
|
|
38
|
+
return raw;
|
|
39
|
+
})(),
|
|
40
|
+
browserbaseApiKey: process.env.BROWSERBASE_API_KEY,
|
|
41
|
+
browserbaseProjectId: process.env.BROWSERBASE_PROJECT_ID,
|
|
42
|
+
steelApiKey: process.env.STEEL_API_KEY,
|
|
43
|
+
anthropicApiKey: process.env.ANTHROPIC_API_KEY,
|
|
44
|
+
// Stagehand 2.x's modelToProviderMap is stale (knows only up to
|
|
45
|
+
// claude-3-7-sonnet). Using the provider-prefixed form
|
|
46
|
+
// `anthropic/<model-id>` routes through the AI-SDK fallback
|
|
47
|
+
// path which forwards the name verbatim to the Anthropic SDK,
|
|
48
|
+
// letting us use live model ids like claude-sonnet-4-6.
|
|
49
|
+
model: (0, env_1.getEnv)("STAGEHAND_MODEL", "anthropic/claude-sonnet-4-6"),
|
|
50
|
+
proxyType: (0, env_1.getEnv)("SCRAPER_PROXY_TYPE", "residential"),
|
|
51
|
+
solveCaptcha: (0, env_1.getBoolEnv)("SCRAPER_SOLVE_CAPTCHA", true),
|
|
52
|
+
poolSize: (0, env_1.getNumericEnv)("SESSION_POOL_SIZE", 3),
|
|
53
|
+
minActionDelayMs: (0, env_1.getNumericEnv)("SCRAPER_MIN_ACTION_DELAY_MS", 500),
|
|
54
|
+
maxActionDelayMs: (0, env_1.getNumericEnv)("SCRAPER_MAX_ACTION_DELAY_MS", 1500),
|
|
55
|
+
readinessQueueThreshold: (0, env_1.getNumericEnv)("READINESS_QUEUE_THRESHOLD", 20),
|
|
56
|
+
siteBaseUrls: (() => {
|
|
57
|
+
const map = {};
|
|
58
|
+
for (const [key, val] of Object.entries(process.env)) {
|
|
59
|
+
const match = /^BARNACLE_SITE_([A-Z0-9_]+)_BASE_URL$/.exec(key);
|
|
60
|
+
if (match && val) {
|
|
61
|
+
map[match[1]?.toLowerCase().replace(/_/g, "-") ?? ""] = val;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return map;
|
|
65
|
+
})(),
|
|
66
|
+
useBedrock: (0, env_1.getBoolEnv)("USE_BEDROCK", false),
|
|
67
|
+
anthropicTimeoutMs: (0, env_1.getNumericEnv)("STAGEHAND_API_TIMEOUT_MS", 120_000),
|
|
68
|
+
connectTimeoutMs: (0, env_1.getNumericEnv)("STAGEHAND_CONNECT_TIMEOUT_MS", 120_000),
|
|
69
|
+
steelSessionTimeoutMs: (0, env_1.getNumericEnv)("STEEL_SESSION_TIMEOUT_MS", 3_600_000),
|
|
70
|
+
},
|
|
71
|
+
bedrock: {
|
|
72
|
+
region: (0, env_1.getEnv)("AWS_REGION", "us-east-1"),
|
|
73
|
+
accessKeyId: process.env.AWS_ACCESS_KEY_ID || undefined,
|
|
74
|
+
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY || undefined,
|
|
75
|
+
sessionToken: process.env.AWS_SESSION_TOKEN || undefined,
|
|
76
|
+
model: (0, env_1.getEnv)("BEDROCK_MODEL", "us.anthropic.claude-sonnet-4-6[1m]"),
|
|
77
|
+
},
|
|
78
|
+
cache: {
|
|
79
|
+
ttlMs: (0, env_1.getNumericEnv)("CACHE_TTL_MS", 15 * 60 * 1000),
|
|
80
|
+
maxEntries: (0, env_1.getNumericEnv)("CACHE_MAX_ENTRIES", 1000),
|
|
81
|
+
},
|
|
82
|
+
rateLimit: {
|
|
83
|
+
max: (0, env_1.getNumericEnv)("RATE_LIMIT_MAX", 120),
|
|
84
|
+
windowMs: (0, env_1.getNumericEnv)("RATE_LIMIT_WINDOW_MS", 60_000),
|
|
85
|
+
},
|
|
86
|
+
docs: {
|
|
87
|
+
enabled: (0, env_1.getBoolEnv)("ENABLE_DOCS", false),
|
|
88
|
+
},
|
|
89
|
+
telemetry: {
|
|
90
|
+
enabled: (0, env_1.getBoolEnv)("TELEMETRY_ENABLED", true),
|
|
91
|
+
eventsDir: (0, env_1.getEnv)("TELEMETRY_EVENTS_DIR", ".barnacle/events"),
|
|
92
|
+
callsNdjsonPath: (0, env_1.getEnv)("CALLS_NDJSON_PATH", ".barnacle/calls.ndjson"),
|
|
93
|
+
submissionsNdjsonPath: (0, env_1.getEnv)("SUBMISSIONS_NDJSON_PATH", ".barnacle/submissions.ndjson"),
|
|
94
|
+
maxFileSizeBytes: (0, env_1.getNumericEnv)("TELEMETRY_MAX_FILE_SIZE_BYTES", 100 * 1024 * 1024),
|
|
95
|
+
maxRetentionMs: (0, env_1.getNumericEnv)("TELEMETRY_MAX_RETENTION_MS", 30 * 24 * 60 * 60 * 1000),
|
|
96
|
+
s3: {
|
|
97
|
+
bucket: process.env.TELEMETRY_S3_BUCKET || undefined,
|
|
98
|
+
prefix: (0, env_1.getEnv)("TELEMETRY_S3_PREFIX", "telemetry"),
|
|
99
|
+
flushIntervalMs: (0, env_1.getNumericEnv)("TELEMETRY_S3_FLUSH_INTERVAL_MS", 60_000),
|
|
100
|
+
maxBufferLines: (0, env_1.getNumericEnv)("TELEMETRY_S3_MAX_BUFFER_LINES", 500),
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
judging: {
|
|
104
|
+
model: (0, env_1.getEnv)("JUDGE_MODEL", "us.anthropic.claude-sonnet-4-6[1m]"),
|
|
105
|
+
temperature: (0, env_1.getFloatEnv)("JUDGE_TEMPERATURE", 0.2),
|
|
106
|
+
batchSize: (0, env_1.getNumericEnv)("JUDGE_BATCH_SIZE", 10),
|
|
107
|
+
timeoutMs: (0, env_1.getNumericEnv)("JUDGE_TIMEOUT_MS", 120_000),
|
|
108
|
+
},
|
|
109
|
+
testmail: {
|
|
110
|
+
apiKey: process.env.TESTMAIL_API_KEY,
|
|
111
|
+
namespace: process.env.TESTMAIL_NAMESPACE,
|
|
112
|
+
},
|
|
113
|
+
selfheal: {
|
|
114
|
+
maxIterations: (0, env_1.getNumericEnv)("SELFHEAL_MAX_ITERATIONS", 5),
|
|
115
|
+
nReplays: (0, env_1.getNumericEnv)("SELFHEAL_N_REPLAYS", 5),
|
|
116
|
+
successThreshold: (0, env_1.getFloatEnv)("SELFHEAL_SUCCESS_THRESHOLD", 0.9),
|
|
117
|
+
plateauWindow: (0, env_1.getNumericEnv)("SELFHEAL_PLATEAU_WINDOW", 3),
|
|
118
|
+
plateauDelta: (0, env_1.getFloatEnv)("SELFHEAL_PLATEAU_DELTA", 0.03),
|
|
119
|
+
timeoutMs: (0, env_1.getNumericEnv)("SELFHEAL_TIMEOUT_MS", 60_000),
|
|
120
|
+
},
|
|
121
|
+
datadog: {
|
|
122
|
+
traceEnabled: (0, env_1.getBoolEnv)("DD_TRACE_ENABLED", false),
|
|
123
|
+
agentHost: (0, env_1.getEnv)("DD_AGENT_HOST", "localhost"),
|
|
124
|
+
statsdPort: (0, env_1.getNumericEnv)("DD_DOGSTATSD_PORT", 8125),
|
|
125
|
+
service: (0, env_1.getEnv)("DD_SERVICE", "barnacle"),
|
|
126
|
+
env: (0, env_1.getEnv)("DD_ENV", (0, env_1.getNodeEnv)()),
|
|
127
|
+
version: (0, env_1.getEnv)("DD_VERSION", "0.1.0"),
|
|
128
|
+
},
|
|
129
|
+
plugins: {
|
|
130
|
+
specifiers: parseList((0, env_1.getEnv)("BARNACLE_PLUGINS", "")),
|
|
131
|
+
strict: (0, env_1.getBoolEnv)("BARNACLE_PLUGINS_STRICT", false),
|
|
132
|
+
baseDir: (0, env_1.getEnv)("BARNACLE_PLUGINS_DIR", process.cwd()),
|
|
133
|
+
configDir: process.env.BARNACLE_PLUGINS_CONFIG_DIR || undefined,
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
exports.config = loadConfig();
|
|
138
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Zod schema for the applicant identity, address, and resume fields
|
|
3
|
+
* that AppCast-powered ATS plugins require on every submission. Both AppCast
|
|
4
|
+
* and Encompass Health declare the same 13 fields; this module is the single
|
|
5
|
+
* source of truth so a field-type change propagates to every AppCast-shaped
|
|
6
|
+
* plugin from one place.
|
|
7
|
+
*
|
|
8
|
+
* Diverging fields (Email, BaseUrl, ClickUrl, JobId, Answers) stay in each
|
|
9
|
+
* plugin's own contract because their types or presence differ across plugins.
|
|
10
|
+
*/
|
|
11
|
+
import type { z } from "zod/v4";
|
|
12
|
+
export declare const ApplicantContactSchema: z.ZodObject<{
|
|
13
|
+
FirstName: z.ZodString;
|
|
14
|
+
LastName: z.ZodString;
|
|
15
|
+
Phone: z.ZodString;
|
|
16
|
+
AddressLine: z.ZodString;
|
|
17
|
+
City: z.ZodString;
|
|
18
|
+
State: z.ZodString;
|
|
19
|
+
PostalCode: z.ZodString;
|
|
20
|
+
Country: z.ZodString;
|
|
21
|
+
County: z.ZodString;
|
|
22
|
+
Resume: z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>;
|
|
23
|
+
ResumeContentType: z.ZodString;
|
|
24
|
+
ResumeFilename: z.ZodString;
|
|
25
|
+
ResumeBase64: z.ZodString;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
export type ApplicantContact = z.infer<typeof ApplicantContactSchema>;
|
|
28
|
+
//# sourceMappingURL=applicant-payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applicant-payload.d.ts","sourceRoot":"","sources":["../../src/lib/applicant-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAMhC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;iBAEJ,CAAC;AAEhC,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared Zod schema for the applicant identity, address, and resume fields
|
|
4
|
+
* that AppCast-powered ATS plugins require on every submission. Both AppCast
|
|
5
|
+
* and Encompass Health declare the same 13 fields; this module is the single
|
|
6
|
+
* source of truth so a field-type change propagates to every AppCast-shaped
|
|
7
|
+
* plugin from one place.
|
|
8
|
+
*
|
|
9
|
+
* Diverging fields (Email, BaseUrl, ClickUrl, JobId, Answers) stay in each
|
|
10
|
+
* plugin's own contract because their types or presence differ across plugins.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.ApplicantContactSchema = void 0;
|
|
14
|
+
const application_address_1 = require("../lib/application-address");
|
|
15
|
+
const application_identity_1 = require("../lib/application-identity");
|
|
16
|
+
const application_resume_1 = require("../lib/application-resume");
|
|
17
|
+
exports.ApplicantContactSchema = application_identity_1.ApplicantIdentitySchema.omit({ Email: true })
|
|
18
|
+
.merge(application_address_1.ApplicantAddressSchema)
|
|
19
|
+
.merge(application_resume_1.ApplicantResumeSchema);
|
|
20
|
+
//# sourceMappingURL=applicant-payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applicant-payload.js","sourceRoot":"","sources":["../../src/lib/applicant-payload.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAIH,mEAAmE;AACnE,qEAAqE;AACrE,iEAAiE;AAEpD,QAAA,sBAAsB,GAAG,8CAAuB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KAChF,KAAK,CAAC,4CAAsB,CAAC;KAC7B,KAAK,CAAC,0CAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Zod fragment for the six address fields that AppCast-powered plugins
|
|
3
|
+
* (AppCast, Encompass Health) require on every submission. Extracted so a
|
|
4
|
+
* field-type change propagates from one place to every consumer.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod/v4";
|
|
7
|
+
export declare const ApplicantAddressSchema: z.ZodObject<{
|
|
8
|
+
AddressLine: z.ZodString;
|
|
9
|
+
City: z.ZodString;
|
|
10
|
+
State: z.ZodString;
|
|
11
|
+
PostalCode: z.ZodString;
|
|
12
|
+
Country: z.ZodString;
|
|
13
|
+
County: z.ZodString;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export type ApplicantAddress = z.infer<typeof ApplicantAddressSchema>;
|
|
16
|
+
//# sourceMappingURL=application-address.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-address.d.ts","sourceRoot":"","sources":["../../src/lib/application-address.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,sBAAsB;;;;;;;iBASjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared Zod fragment for the six address fields that AppCast-powered plugins
|
|
4
|
+
* (AppCast, Encompass Health) require on every submission. Extracted so a
|
|
5
|
+
* field-type change propagates from one place to every consumer.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ApplicantAddressSchema = void 0;
|
|
9
|
+
const v4_1 = require("zod/v4");
|
|
10
|
+
exports.ApplicantAddressSchema = v4_1.z.object({
|
|
11
|
+
AddressLine: v4_1.z.string().min(1),
|
|
12
|
+
City: v4_1.z.string().min(1),
|
|
13
|
+
State: v4_1.z.string().min(1),
|
|
14
|
+
PostalCode: v4_1.z.string().min(1),
|
|
15
|
+
Country: v4_1.z.string().min(1),
|
|
16
|
+
/** Applicant's home county. Required by some tenants (Encompass Health and
|
|
17
|
+
* similar) before submit unlocks. */
|
|
18
|
+
County: v4_1.z.string().min(1),
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=application-address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-address.js","sourceRoot":"","sources":["../../src/lib/application-address.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,+BAA2B;AAEd,QAAA,sBAAsB,GAAG,MAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,UAAU,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B;yCACqC;IACrC,MAAM,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Zod schema for the integrated-questions yes/no + free-text answer
|
|
3
|
+
* block that AppCast-powered ATS plugins require on every submission. Both
|
|
4
|
+
* Appcast and Encompass Health declare the same 21 fields; this module is the
|
|
5
|
+
* single source of truth so a field-type change propagates everywhere.
|
|
6
|
+
*
|
|
7
|
+
* Callers wrap this with `multipartJsonObject()` when the parent payload is
|
|
8
|
+
* multipart — this module exports the raw object so each plugin chooses its
|
|
9
|
+
* own wrapper.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from "zod/v4";
|
|
12
|
+
export declare const ApplicationAnswersSchema: z.ZodObject<{
|
|
13
|
+
WorkAuthorization: z.ZodEnum<{
|
|
14
|
+
Yes: "Yes";
|
|
15
|
+
No: "No";
|
|
16
|
+
}>;
|
|
17
|
+
VisaSponsorship: z.ZodString;
|
|
18
|
+
NonCompete: z.ZodEnum<{
|
|
19
|
+
Yes: "Yes";
|
|
20
|
+
No: "No";
|
|
21
|
+
}>;
|
|
22
|
+
OIGGSAOFACExcluded: z.ZodEnum<{
|
|
23
|
+
Yes: "Yes";
|
|
24
|
+
No: "No";
|
|
25
|
+
}>;
|
|
26
|
+
FormerEmployee: z.ZodString;
|
|
27
|
+
CurrentNonEmployeeId: z.ZodString;
|
|
28
|
+
OtherOpportunities: z.ZodEnum<{
|
|
29
|
+
Yes: "Yes";
|
|
30
|
+
No: "No";
|
|
31
|
+
}>;
|
|
32
|
+
RelatedToEmployee: z.ZodEnum<{
|
|
33
|
+
Yes: "Yes";
|
|
34
|
+
No: "No";
|
|
35
|
+
}>;
|
|
36
|
+
PreviouslyEmployedAtEncompass: z.ZodEnum<{
|
|
37
|
+
Yes: "Yes";
|
|
38
|
+
No: "No";
|
|
39
|
+
}>;
|
|
40
|
+
EverSanctionedOrOnProbation: z.ZodEnum<{
|
|
41
|
+
Yes: "Yes";
|
|
42
|
+
No: "No";
|
|
43
|
+
}>;
|
|
44
|
+
EverTerminated: z.ZodEnum<{
|
|
45
|
+
Yes: "Yes";
|
|
46
|
+
No: "No";
|
|
47
|
+
}>;
|
|
48
|
+
EverExcludedFromFederalProgram: z.ZodEnum<{
|
|
49
|
+
Yes: "Yes";
|
|
50
|
+
No: "No";
|
|
51
|
+
}>;
|
|
52
|
+
LegallyEligibleToWorkUS: z.ZodEnum<{
|
|
53
|
+
Yes: "Yes";
|
|
54
|
+
No: "No";
|
|
55
|
+
}>;
|
|
56
|
+
CanPerformJobFunctions: z.ZodEnum<{
|
|
57
|
+
Yes: "Yes";
|
|
58
|
+
No: "No";
|
|
59
|
+
}>;
|
|
60
|
+
Gender: z.ZodString;
|
|
61
|
+
Degree: z.ZodString;
|
|
62
|
+
EducationLevel: z.ZodString;
|
|
63
|
+
SignatureFullName: z.ZodString;
|
|
64
|
+
MeetsMinimumAge: z.ZodDefault<z.ZodEnum<{
|
|
65
|
+
Yes: "Yes";
|
|
66
|
+
No: "No";
|
|
67
|
+
}>>;
|
|
68
|
+
AppliedToSanfordOrGoodSamaritanLast6Months: z.ZodDefault<z.ZodEnum<{
|
|
69
|
+
Yes: "Yes";
|
|
70
|
+
No: "No";
|
|
71
|
+
}>>;
|
|
72
|
+
HasOrWillObtainLicense: z.ZodDefault<z.ZodEnum<{
|
|
73
|
+
Yes: "Yes";
|
|
74
|
+
No: "No";
|
|
75
|
+
}>>;
|
|
76
|
+
}, z.core.$strip>;
|
|
77
|
+
export type ApplicationAnswers = z.infer<typeof ApplicationAnswersSchema>;
|
|
78
|
+
/**
|
|
79
|
+
* Lax variant of ApplicationAnswersSchema used exclusively by the `/run` route
|
|
80
|
+
* body validation. The four detector-checked free-text fields are optional so
|
|
81
|
+
* that detectMissingRequiredFields can actually run instead of being
|
|
82
|
+
* pre-empted by a 400 from Fastify body validation. All other fields keep
|
|
83
|
+
* their strict constraints.
|
|
84
|
+
*/
|
|
85
|
+
export declare const RunIntakeAnswersSchema: z.ZodObject<{
|
|
86
|
+
WorkAuthorization: z.ZodEnum<{
|
|
87
|
+
Yes: "Yes";
|
|
88
|
+
No: "No";
|
|
89
|
+
}>;
|
|
90
|
+
VisaSponsorship: z.ZodString;
|
|
91
|
+
NonCompete: z.ZodEnum<{
|
|
92
|
+
Yes: "Yes";
|
|
93
|
+
No: "No";
|
|
94
|
+
}>;
|
|
95
|
+
OIGGSAOFACExcluded: z.ZodEnum<{
|
|
96
|
+
Yes: "Yes";
|
|
97
|
+
No: "No";
|
|
98
|
+
}>;
|
|
99
|
+
FormerEmployee: z.ZodString;
|
|
100
|
+
CurrentNonEmployeeId: z.ZodString;
|
|
101
|
+
OtherOpportunities: z.ZodEnum<{
|
|
102
|
+
Yes: "Yes";
|
|
103
|
+
No: "No";
|
|
104
|
+
}>;
|
|
105
|
+
RelatedToEmployee: z.ZodEnum<{
|
|
106
|
+
Yes: "Yes";
|
|
107
|
+
No: "No";
|
|
108
|
+
}>;
|
|
109
|
+
PreviouslyEmployedAtEncompass: z.ZodEnum<{
|
|
110
|
+
Yes: "Yes";
|
|
111
|
+
No: "No";
|
|
112
|
+
}>;
|
|
113
|
+
EverSanctionedOrOnProbation: z.ZodEnum<{
|
|
114
|
+
Yes: "Yes";
|
|
115
|
+
No: "No";
|
|
116
|
+
}>;
|
|
117
|
+
EverTerminated: z.ZodEnum<{
|
|
118
|
+
Yes: "Yes";
|
|
119
|
+
No: "No";
|
|
120
|
+
}>;
|
|
121
|
+
EverExcludedFromFederalProgram: z.ZodEnum<{
|
|
122
|
+
Yes: "Yes";
|
|
123
|
+
No: "No";
|
|
124
|
+
}>;
|
|
125
|
+
LegallyEligibleToWorkUS: z.ZodEnum<{
|
|
126
|
+
Yes: "Yes";
|
|
127
|
+
No: "No";
|
|
128
|
+
}>;
|
|
129
|
+
CanPerformJobFunctions: z.ZodEnum<{
|
|
130
|
+
Yes: "Yes";
|
|
131
|
+
No: "No";
|
|
132
|
+
}>;
|
|
133
|
+
MeetsMinimumAge: z.ZodDefault<z.ZodEnum<{
|
|
134
|
+
Yes: "Yes";
|
|
135
|
+
No: "No";
|
|
136
|
+
}>>;
|
|
137
|
+
AppliedToSanfordOrGoodSamaritanLast6Months: z.ZodDefault<z.ZodEnum<{
|
|
138
|
+
Yes: "Yes";
|
|
139
|
+
No: "No";
|
|
140
|
+
}>>;
|
|
141
|
+
HasOrWillObtainLicense: z.ZodDefault<z.ZodEnum<{
|
|
142
|
+
Yes: "Yes";
|
|
143
|
+
No: "No";
|
|
144
|
+
}>>;
|
|
145
|
+
Gender: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
146
|
+
Degree: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
147
|
+
EducationLevel: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
148
|
+
SignatureFullName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
149
|
+
}, z.core.$strip>;
|
|
150
|
+
export type RunIntakeAnswers = z.infer<typeof RunIntakeAnswersSchema>;
|
|
151
|
+
//# sourceMappingURL=application-answers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-answers.d.ts","sourceRoot":"","sources":["../../src/lib/application-answers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkEnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared Zod schema for the integrated-questions yes/no + free-text answer
|
|
4
|
+
* block that AppCast-powered ATS plugins require on every submission. Both
|
|
5
|
+
* Appcast and Encompass Health declare the same 21 fields; this module is the
|
|
6
|
+
* single source of truth so a field-type change propagates everywhere.
|
|
7
|
+
*
|
|
8
|
+
* Callers wrap this with `multipartJsonObject()` when the parent payload is
|
|
9
|
+
* multipart — this module exports the raw object so each plugin chooses its
|
|
10
|
+
* own wrapper.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.RunIntakeAnswersSchema = exports.ApplicationAnswersSchema = void 0;
|
|
14
|
+
const v4_1 = require("zod/v4");
|
|
15
|
+
exports.ApplicationAnswersSchema = v4_1.z.object({
|
|
16
|
+
WorkAuthorization: v4_1.z.enum(["Yes", "No"]),
|
|
17
|
+
/** Free text; "NA" means no sponsorship required. */
|
|
18
|
+
VisaSponsorship: v4_1.z.string().min(1),
|
|
19
|
+
NonCompete: v4_1.z.enum(["Yes", "No"]),
|
|
20
|
+
OIGGSAOFACExcluded: v4_1.z.enum(["Yes", "No"]),
|
|
21
|
+
/** Free text; "Not Applicable" / "No" / a former-employee ID. */
|
|
22
|
+
FormerEmployee: v4_1.z.string().min(1),
|
|
23
|
+
/** Free text; "NA" means none. */
|
|
24
|
+
CurrentNonEmployeeId: v4_1.z.string().min(1),
|
|
25
|
+
OtherOpportunities: v4_1.z.enum(["Yes", "No"]),
|
|
26
|
+
/** Some tenants (Encompass Health and similar) require a "related to a current
|
|
27
|
+
* employee?" Yes/No radio before submit unlocks. Default "No" is candidate-
|
|
28
|
+
* favorable; pass "Yes" when the applicant has a referral relationship. */
|
|
29
|
+
RelatedToEmployee: v4_1.z.enum(["Yes", "No"]),
|
|
30
|
+
/** "Previously worked for Encompass Health" (or analogous tenant question).
|
|
31
|
+
* Independent from FormerEmployee which targets the generic AppCast-level
|
|
32
|
+
* former-employee question; this is the tenant-level duplicate that
|
|
33
|
+
* Encompass and similar healthcare ATSes ask separately. Default "No". */
|
|
34
|
+
PreviouslyEmployedAtEncompass: v4_1.z.enum(["Yes", "No"]),
|
|
35
|
+
/** "Have you ever received sanctions, been on probation, or had limitations
|
|
36
|
+
* placed on your license?" Encompass-style behavioral question.
|
|
37
|
+
* Default "No" is candidate-favorable. */
|
|
38
|
+
EverSanctionedOrOnProbation: v4_1.z.enum(["Yes", "No"]),
|
|
39
|
+
/** "Have you ever been terminated from or asked to resign from a position?"
|
|
40
|
+
* Encompass-style behavioral question. Default "No". */
|
|
41
|
+
EverTerminated: v4_1.z.enum(["Yes", "No"]),
|
|
42
|
+
/** "Have you ever been excluded or made ineligible to participate in any
|
|
43
|
+
* federal program?" (OIG/GSA/OFAC-adjacent). Independent from the
|
|
44
|
+
* generic OIGGSAOFACExcluded field above because some tenants ask both
|
|
45
|
+
* the catch-all and the federal-program-specific variant. Default "No". */
|
|
46
|
+
EverExcludedFromFederalProgram: v4_1.z.enum(["Yes", "No"]),
|
|
47
|
+
/** "Can you present proof of your legal eligibility to work in the United
|
|
48
|
+
* States?" Maps to the documented WorkAuthorization but some tenants ask
|
|
49
|
+
* the proof-of-eligibility framing separately. Default "Yes". */
|
|
50
|
+
LegallyEligibleToWorkUS: v4_1.z.enum(["Yes", "No"]),
|
|
51
|
+
/** "Can you perform all the required job functions and/or duties of the
|
|
52
|
+
* job for which you are applying?" Default "Yes" is candidate-favorable. */
|
|
53
|
+
CanPerformJobFunctions: v4_1.z.enum(["Yes", "No"]),
|
|
54
|
+
/** Demographic gender selection. Free text so callers can pass
|
|
55
|
+
* "Male"/"Female"/"Non-binary"/"Prefer not to say"/etc. The fixture
|
|
56
|
+
* defaults to "Prefer not to say" — least-disclosing. */
|
|
57
|
+
Gender: v4_1.z.string().min(1),
|
|
58
|
+
/** Highest degree obtained. Free text: "High School Diploma", "Associate",
|
|
59
|
+
* "Bachelor", "Master", "Doctoral", etc. */
|
|
60
|
+
Degree: v4_1.z.string().min(1),
|
|
61
|
+
/** Education level (often duplicates Degree with different wording).
|
|
62
|
+
* Free text. */
|
|
63
|
+
EducationLevel: v4_1.z.string().min(1),
|
|
64
|
+
/** Full name for E-Signature field. Production callers should pass the
|
|
65
|
+
* applicant's legal full name. */
|
|
66
|
+
SignatureFullName: v4_1.z.string().min(1),
|
|
67
|
+
/** Age-verification gate ("Are you at least 16/18 years old?"). Defaults
|
|
68
|
+
* to "Yes" so existing callers (Encompass Health, which never asks this)
|
|
69
|
+
* don't break. Threshold varies by tenant — Lifespace asks 16, ClearCompany
|
|
70
|
+
* asks 18 — so the field is threshold-agnostic. */
|
|
71
|
+
MeetsMinimumAge: v4_1.z.enum(["Yes", "No"]).default("Yes"),
|
|
72
|
+
/** "Have you applied to a Sanford Health or Good Samaritan Society
|
|
73
|
+
* position in the last 6 months?" Tenant-specific question for Sanford /
|
|
74
|
+
* Good Samaritan jobs routed through AppCast. Default "No". */
|
|
75
|
+
AppliedToSanfordOrGoodSamaritanLast6Months: v4_1.z.enum(["Yes", "No"]).default("No"),
|
|
76
|
+
/** "Do you have or do you plan to obtain the state license or credential?"
|
|
77
|
+
* Appcast job 57238731502 (question id 15271). Default "Yes" is
|
|
78
|
+
* candidate-favorable — assumes the applicant holds or will obtain the
|
|
79
|
+
* required credential. */
|
|
80
|
+
HasOrWillObtainLicense: v4_1.z.enum(["Yes", "No"]).default("Yes"),
|
|
81
|
+
});
|
|
82
|
+
/**
|
|
83
|
+
* Lax variant of ApplicationAnswersSchema used exclusively by the `/run` route
|
|
84
|
+
* body validation. The four detector-checked free-text fields are optional so
|
|
85
|
+
* that detectMissingRequiredFields can actually run instead of being
|
|
86
|
+
* pre-empted by a 400 from Fastify body validation. All other fields keep
|
|
87
|
+
* their strict constraints.
|
|
88
|
+
*/
|
|
89
|
+
exports.RunIntakeAnswersSchema = exports.ApplicationAnswersSchema.extend({
|
|
90
|
+
Gender: v4_1.z.string().optional().default(""),
|
|
91
|
+
Degree: v4_1.z.string().optional().default(""),
|
|
92
|
+
EducationLevel: v4_1.z.string().optional().default(""),
|
|
93
|
+
SignatureFullName: v4_1.z.string().optional().default(""),
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=application-answers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-answers.js","sourceRoot":"","sources":["../../src/lib/application-answers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Zod schema for the four core applicant identity fields (FirstName,
|
|
3
|
+
* LastName, Email, Phone) that are common across all ATS plugins.
|
|
4
|
+
*
|
|
5
|
+
* Email uses `z.email()` (zod/v4 top-level, identical to `z.string().email()`)
|
|
6
|
+
* so either plugin spelling validates correctly. This fragment intentionally
|
|
7
|
+
* excludes address, resume, and job-target fields — those either vary per
|
|
8
|
+
* plugin or are covered by {@link ApplicantContactSchema}.
|
|
9
|
+
*/
|
|
10
|
+
import { z } from "zod/v4";
|
|
11
|
+
export declare const ApplicantIdentitySchema: z.ZodObject<{
|
|
12
|
+
FirstName: z.ZodString;
|
|
13
|
+
LastName: z.ZodString;
|
|
14
|
+
Email: z.ZodEmail;
|
|
15
|
+
Phone: z.ZodString;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
export type ApplicantIdentity = z.infer<typeof ApplicantIdentitySchema>;
|
|
18
|
+
//# sourceMappingURL=application-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-identity.d.ts","sourceRoot":"","sources":["../../src/lib/application-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,uBAAuB;;;;;iBAKlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared Zod schema for the four core applicant identity fields (FirstName,
|
|
4
|
+
* LastName, Email, Phone) that are common across all ATS plugins.
|
|
5
|
+
*
|
|
6
|
+
* Email uses `z.email()` (zod/v4 top-level, identical to `z.string().email()`)
|
|
7
|
+
* so either plugin spelling validates correctly. This fragment intentionally
|
|
8
|
+
* excludes address, resume, and job-target fields — those either vary per
|
|
9
|
+
* plugin or are covered by {@link ApplicantContactSchema}.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ApplicantIdentitySchema = void 0;
|
|
13
|
+
const v4_1 = require("zod/v4");
|
|
14
|
+
exports.ApplicantIdentitySchema = v4_1.z.object({
|
|
15
|
+
FirstName: v4_1.z.string().min(1),
|
|
16
|
+
LastName: v4_1.z.string().min(1),
|
|
17
|
+
Email: v4_1.z.email(),
|
|
18
|
+
Phone: v4_1.z.string().min(1),
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=application-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-identity.js","sourceRoot":"","sources":["../../src/lib/application-identity.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,+BAA2B;AAEd,QAAA,uBAAuB,GAAG,MAAC,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAC,CAAC,KAAK,EAAE;IAChB,KAAK,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACzB,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Zod schema for the resume attachment block that AppCast-powered ATS
|
|
3
|
+
* plugins require on every submission. AppCast and Encompass Health both declare
|
|
4
|
+
* the same four fields; this fragment is extracted so the Buffer/instanceof
|
|
5
|
+
* constraint and the base64 twin are defined once and propagate to every
|
|
6
|
+
* AppCast-shaped plugin from one source of truth.
|
|
7
|
+
*
|
|
8
|
+
* `Resume` must be a real Node.js Buffer — multipart form builders call
|
|
9
|
+
* `fd.append("Resume", payload.Resume, ...)` which requires an actual Buffer
|
|
10
|
+
* instance, not a base64 string. `ResumeBase64` carries the same bytes
|
|
11
|
+
* pre-encoded for JSON payloads (e.g. the AppCast `interruption_check` body).
|
|
12
|
+
*/
|
|
13
|
+
import { z } from "zod/v4";
|
|
14
|
+
export declare const ApplicantResumeSchema: z.ZodObject<{
|
|
15
|
+
Resume: z.ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>;
|
|
16
|
+
ResumeContentType: z.ZodString;
|
|
17
|
+
ResumeFilename: z.ZodString;
|
|
18
|
+
ResumeBase64: z.ZodString;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export type ApplicantResume = z.infer<typeof ApplicantResumeSchema>;
|
|
21
|
+
//# sourceMappingURL=application-resume.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-resume.d.ts","sourceRoot":"","sources":["../../src/lib/application-resume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,qBAAqB;;;;;iBAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared Zod schema for the resume attachment block that AppCast-powered ATS
|
|
4
|
+
* plugins require on every submission. AppCast and Encompass Health both declare
|
|
5
|
+
* the same four fields; this fragment is extracted so the Buffer/instanceof
|
|
6
|
+
* constraint and the base64 twin are defined once and propagate to every
|
|
7
|
+
* AppCast-shaped plugin from one source of truth.
|
|
8
|
+
*
|
|
9
|
+
* `Resume` must be a real Node.js Buffer — multipart form builders call
|
|
10
|
+
* `fd.append("Resume", payload.Resume, ...)` which requires an actual Buffer
|
|
11
|
+
* instance, not a base64 string. `ResumeBase64` carries the same bytes
|
|
12
|
+
* pre-encoded for JSON payloads (e.g. the AppCast `interruption_check` body).
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ApplicantResumeSchema = void 0;
|
|
16
|
+
const v4_1 = require("zod/v4");
|
|
17
|
+
exports.ApplicantResumeSchema = v4_1.z.object({
|
|
18
|
+
Resume: v4_1.z.instanceof(Buffer),
|
|
19
|
+
ResumeContentType: v4_1.z.string(),
|
|
20
|
+
ResumeFilename: v4_1.z.string(),
|
|
21
|
+
ResumeBase64: v4_1.z.string(),
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=application-resume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-resume.js","sourceRoot":"","sources":["../../src/lib/application-resume.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,+BAA2B;AAEd,QAAA,qBAAqB,GAAG,MAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,MAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAC,CAAC,MAAM,EAAE;IAC7B,cAAc,EAAE,MAAC,CAAC,MAAM,EAAE;IAC1B,YAAY,EAAE,MAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { AISdkClient } from "@browserbasehq/stagehand";
|
|
2
|
+
import type { AppConfig } from "../config";
|
|
3
|
+
type StagehandModel = ConstructorParameters<typeof AISdkClient>[0]["model"];
|
|
4
|
+
/**
|
|
5
|
+
* Builds an AI SDK language model backed by AWS Bedrock for injection into
|
|
6
|
+
* Stagehand's `llmClient`. Centralises all @ai-sdk/amazon-bedrock imports here
|
|
7
|
+
* so no other module touches the AWS SDK.
|
|
8
|
+
*
|
|
9
|
+
* Bedrock v4 emits a `LanguageModelV3` (provider spec v3) but Stagehand's
|
|
10
|
+
* `AISdkClient` still types its `model` as `LanguageModelV2`. The two specs
|
|
11
|
+
* are runtime-compatible for Stagehand's use, so we cast at this single
|
|
12
|
+
* boundary rather than letting the version mismatch leak into call sites.
|
|
13
|
+
* Remove the cast once Stagehand accepts `LanguageModelV3`.
|
|
14
|
+
*
|
|
15
|
+
* When accessKeyId/secretAccessKey are set, uses explicit static credentials.
|
|
16
|
+
* When omitted, region-only config lets the SDK fall through to its default
|
|
17
|
+
* credential chain (env vars → ~/.aws/credentials → ECS task role → EC2
|
|
18
|
+
* instance profile) — correct for IAM-role deployments.
|
|
19
|
+
*/
|
|
20
|
+
export declare function createBedrockModel(bedrockConfig: AppConfig["bedrock"]): StagehandModel;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=bedrock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../src/lib/bedrock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,KAAK,cAAc,GAAG,qBAAqB,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE5E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,cAAc,CAgBtF"}
|