@indx-workspace/embedded 0.0.0-bootstrap → 0.3.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/CHANGELOG.md +72 -0
- package/LICENSE +202 -0
- package/README.md +309 -0
- package/dist/bin.js +73 -0
- package/dist/launch.js +28617 -0
- package/dist/migrations/0000_init.sql +119 -0
- package/dist/migrations/0001_w2_resources.sql +177 -0
- package/dist/migrations/0002_w3_runtime_profiles.sql +34 -0
- package/dist/migrations/0003_steep_galactus.sql +91 -0
- package/dist/migrations/0004_overconfident_lake.sql +16 -0
- package/dist/migrations/0005_durable_sessions_run_tokens.sql +46 -0
- package/dist/migrations/0006_familiar_karnak.sql +2 -0
- package/dist/migrations/0007_fast_hannibal_king.sql +1 -0
- package/dist/migrations/0008_damp_nemesis.sql +31 -0
- package/dist/migrations/0009_special_thena.sql +2 -0
- package/dist/migrations/0010_little_power_pack.sql +66 -0
- package/dist/migrations/0011_goofy_storm.sql +14 -0
- package/dist/migrations/0012_legal_shatterstar.sql +14 -0
- package/dist/migrations/0013_secret_namora.sql +9 -0
- package/dist/migrations/0014_premium_vengeance.sql +16 -0
- package/dist/migrations/0015_amazing_screwball.sql +1 -0
- package/dist/migrations/0016_next_satana.sql +29 -0
- package/dist/migrations/0017_wild_the_executioner.sql +1 -0
- package/dist/migrations/0018_heavy_stone_men.sql +2 -0
- package/dist/migrations/0019_repair_legacy_run_accounting.sql +20 -0
- package/dist/migrations/0020_sparkling_nova.sql +340 -0
- package/dist/migrations/0021_slippery_sister_grimm.sql +1 -0
- package/dist/migrations/0022_warm_paibok.sql +26 -0
- package/dist/migrations/0023_colorful_shotgun.sql +2 -0
- package/dist/migrations/0024_curly_molten_man.sql +9 -0
- package/dist/migrations/0025_name_the_engine_in_stored_rows.sql +50 -0
- package/dist/migrations/0026_create_the_engine_scoped_session_state_store.sql +47 -0
- package/dist/migrations/0027_backfill_claude_session_state.sql +66 -0
- package/dist/migrations/0028_widen_the_engine_checks_to_openai_agents.sql +14 -0
- package/dist/migrations/0029_widen_the_engine_checks_to_pi.sql +14 -0
- package/dist/migrations/0030_create_the_cli_sessions_table.sql +23 -0
- package/dist/migrations/0031_widen_the_engine_checks_to_mastra.sql +17 -0
- package/dist/migrations/0032_mark_the_setup_agent.sql +7 -0
- package/dist/migrations/0033_create_the_agent_version_store.sql +41 -0
- package/dist/migrations/0034_mark_the_workspace_default_runtime_profile.sql +15 -0
- package/dist/migrations/0035_record_who_a_local_runtime_key_acts_for.sql +19 -0
- package/dist/migrations/0036_add_connector_kinds_and_the_run_tool_snapshot.sql +34 -0
- package/dist/migrations/0037_create_the_surface_session_keys.sql +20 -0
- package/dist/migrations/0038_record_feedback_on_a_run.sql +14 -0
- package/dist/migrations/0039_record_an_evaluation_of_a_version.sql +18 -0
- package/dist/migrations/0040_record_the_materialised_version.sql +23 -0
- package/dist/migrations/0041_pin_a_session_to_its_agent_version.sql +4 -0
- package/dist/migrations/0042_store_the_prompt_of_a_run.sql +1 -0
- package/dist/migrations/0043_record_every_pointer_move.sql +30 -0
- package/dist/migrations/meta/0000_snapshot.json +964 -0
- package/dist/migrations/meta/0001_snapshot.json +2278 -0
- package/dist/migrations/meta/0002_snapshot.json +2550 -0
- package/dist/migrations/meta/0003_snapshot.json +3295 -0
- package/dist/migrations/meta/0004_snapshot.json +3452 -0
- package/dist/migrations/meta/0005_snapshot.json +3921 -0
- package/dist/migrations/meta/0006_snapshot.json +3949 -0
- package/dist/migrations/meta/0007_snapshot.json +3956 -0
- package/dist/migrations/meta/0008_snapshot.json +4177 -0
- package/dist/migrations/meta/0009_snapshot.json +4177 -0
- package/dist/migrations/meta/0010_snapshot.json +3988 -0
- package/dist/migrations/meta/0011_snapshot.json +4491 -0
- package/dist/migrations/meta/0012_snapshot.json +4629 -0
- package/dist/migrations/meta/0013_snapshot.json +4646 -0
- package/dist/migrations/meta/0014_snapshot.json +4313 -0
- package/dist/migrations/meta/0015_snapshot.json +4775 -0
- package/dist/migrations/meta/0016_snapshot.json +4976 -0
- package/dist/migrations/meta/0017_snapshot.json +4982 -0
- package/dist/migrations/meta/0018_snapshot.json +4982 -0
- package/dist/migrations/meta/0019_snapshot.json +4990 -0
- package/dist/migrations/meta/0020_snapshot.json +5469 -0
- package/dist/migrations/meta/0021_snapshot.json +5475 -0
- package/dist/migrations/meta/0022_snapshot.json +5711 -0
- package/dist/migrations/meta/0023_snapshot.json +5722 -0
- package/dist/migrations/meta/0024_snapshot.json +5748 -0
- package/dist/migrations/meta/0025_snapshot.json +5748 -0
- package/dist/migrations/meta/0026_snapshot.json +6151 -0
- package/dist/migrations/meta/0027_snapshot.json +6151 -0
- package/dist/migrations/meta/0028_snapshot.json +6151 -0
- package/dist/migrations/meta/0029_snapshot.json +6151 -0
- package/dist/migrations/meta/0030_snapshot.json +6328 -0
- package/dist/migrations/meta/0031_snapshot.json +6328 -0
- package/dist/migrations/meta/0032_snapshot.json +6334 -0
- package/dist/migrations/meta/0033_snapshot.json +6615 -0
- package/dist/migrations/meta/0034_snapshot.json +6633 -0
- package/dist/migrations/meta/0035_snapshot.json +6662 -0
- package/dist/migrations/meta/0036_snapshot.json +6706 -0
- package/dist/migrations/meta/0037_snapshot.json +6816 -0
- package/dist/migrations/meta/0038_snapshot.json +6927 -0
- package/dist/migrations/meta/0039_snapshot.json +7073 -0
- package/dist/migrations/meta/0040_snapshot.json +7096 -0
- package/dist/migrations/meta/0041_snapshot.json +7119 -0
- package/dist/migrations/meta/0042_snapshot.json +7125 -0
- package/dist/migrations/meta/0043_snapshot.json +7292 -0
- package/dist/migrations/meta/_journal.json +314 -0
- package/dist/web/.next-embedded/BUILD_ID +1 -0
- package/dist/web/.next-embedded/app-path-routes-manifest.json +108 -0
- package/dist/web/.next-embedded/build-manifest.json +20 -0
- package/dist/web/.next-embedded/diagnostics/build-diagnostics.json +6 -0
- package/dist/web/.next-embedded/diagnostics/framework.json +1 -0
- package/dist/web/.next-embedded/export-marker.json +6 -0
- package/dist/web/.next-embedded/images-manifest.json +68 -0
- package/dist/web/.next-embedded/package.json +1 -0
- package/dist/web/.next-embedded/prerender-manifest.json +97 -0
- package/dist/web/.next-embedded/react-loadable-manifest.json +1 -0
- package/dist/web/.next-embedded/required-server-files.js +355 -0
- package/dist/web/.next-embedded/required-server-files.json +355 -0
- package/dist/web/.next-embedded/routes-manifest.json +786 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/api-keys/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/api-keys/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/models/new/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/models/new/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/models/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/models/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/runtimes/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/runtimes/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/settings/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/settings/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/shares/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/shares/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/users/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/admin/users/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/agents/[id]/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/agents/[id]/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/agents/new/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/agents/new/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/agents/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/agents/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/connectors/new/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/connectors/new/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/connectors/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/connectors/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/files/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/files/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/projects/[id]/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/projects/[id]/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/projects/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/projects/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/runs/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/runs/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/skills/[name]/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/skills/[name]/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/skills/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/skills/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/workspaces/page.js +1 -0
- package/dist/web/.next-embedded/server/app/(shell)/workspaces/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/_global-error/page.js +31 -0
- package/dist/web/.next-embedded/server/app/_global-error/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/_global-error.html +1 -0
- package/dist/web/.next-embedded/server/app/_global-error.meta +27 -0
- package/dist/web/.next-embedded/server/app/_global-error.rsc +14 -0
- package/dist/web/.next-embedded/server/app/_global-error.segments/_full.segment.rsc +14 -0
- package/dist/web/.next-embedded/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +20 -0
- package/dist/web/.next-embedded/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/dist/web/.next-embedded/server/app/_not-found/page.js +1 -0
- package/dist/web/.next-embedded/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/_not-found.html +1 -0
- package/dist/web/.next-embedded/server/app/_not-found.meta +27 -0
- package/dist/web/.next-embedded/server/app/_not-found.rsc +15 -0
- package/dist/web/.next-embedded/server/app/_not-found.segments/_full.segment.rsc +15 -0
- package/dist/web/.next-embedded/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +21 -0
- package/dist/web/.next-embedded/server/app/_not-found.segments/_tree.segment.rsc +2 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/evaluations/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/evaluations/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/feedback/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/feedback/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/grants/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/grants/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/pointers/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/pointers/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/policy/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/policy/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/promote/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/promote/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/resources/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/resources/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/rollback/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/rollback/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/runs/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/runs/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/versions/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/[id]/versions/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/agents/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/api-keys/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/api-keys/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/api-keys/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/api-keys/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/audit-events/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/audit-events/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/callback/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/callback/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/cli-device/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/cli-device/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/cli-token/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/cli-token/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/cli-verify/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/cli-verify/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/cli-workspace/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/cli-workspace/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/login/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/login/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/auth/workspace/route.js +13 -0
- package/dist/web/.next-embedded/server/app/api/auth/workspace/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/connectors/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/connectors/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/connectors/[id]/test-connection/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/connectors/[id]/test-connection/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/connectors/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/connectors/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/engines/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/engines/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/files/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/files/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/files/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/files/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/invitations/[id]/accept/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/invitations/[id]/accept/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/invitations/[id]/resend/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/invitations/[id]/resend/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/invitations/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/invitations/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/invitations/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/invitations/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/me/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/me/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/memberships/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/memberships/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/memberships/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/memberships/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/metrics/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/metrics/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/model-connections/[id]/credential/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/model-connections/[id]/credential/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/model-connections/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/model-connections/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/model-connections/[id]/test/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/model-connections/[id]/test/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/model-connections/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/model-connections/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/models/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/models/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/projects/[id]/archive/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/projects/[id]/archive/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/projects/[id]/restore/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/projects/[id]/restore/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/projects/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/projects/[id]/sessions/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/projects/[id]/sessions/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/projects/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/projects/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runs/[id]/events/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runs/[id]/events/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runs/[id]/feedback/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runs/[id]/feedback/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runs/[id]/interrupt/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runs/[id]/interrupt/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runs/[id]/revoke-tokens/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runs/[id]/revoke-tokens/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runs/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runs/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runs/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runs/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runtime-connections/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runtime-connections/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runtime-profiles/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runtime-profiles/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runtime-profiles/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runtime-profiles/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runtimes/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/runtimes/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/secrets/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/secrets/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/secrets/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/secrets/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/state-blobs/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/state-blobs/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/state-entries/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/state-entries/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/state-streams/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/state-streams/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/subkeys/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/subkeys/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/transcript/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/transcript/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sessions/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/setup/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/setup/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/setup/runtime-detect/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/setup/runtime-detect/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/shares/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/shares/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/shares/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/shares/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sharing-policies/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/sharing-policies/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/skills/[name]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/skills/[name]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/skills/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/skills/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/tokens/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/tokens/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/users/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/users/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/workspaces/[id]/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/workspaces/[id]/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/api/workspaces/route.js +1 -0
- package/dist/web/.next-embedded/server/app/api/workspaces/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/p/[token]/messages/route.js +1 -0
- package/dist/web/.next-embedded/server/app/p/[token]/messages/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/p/[token]/page.js +1 -0
- package/dist/web/.next-embedded/server/app/p/[token]/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/p/s/[name]/page.js +1 -0
- package/dist/web/.next-embedded/server/app/p/s/[name]/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/p/s/[name]/sessions/route.js +1 -0
- package/dist/web/.next-embedded/server/app/p/s/[name]/sessions/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/p/s/[name]/try/page.js +1 -0
- package/dist/web/.next-embedded/server/app/p/s/[name]/try/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/p/s/[name]/widget.js/route.js +156 -0
- package/dist/web/.next-embedded/server/app/p/s/[name]/widget.js/route_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/setup/page.js +1 -0
- package/dist/web/.next-embedded/server/app/setup/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app/setup.html +1 -0
- package/dist/web/.next-embedded/server/app/setup.meta +26 -0
- package/dist/web/.next-embedded/server/app/setup.rsc +16 -0
- package/dist/web/.next-embedded/server/app/setup.segments/_full.segment.rsc +16 -0
- package/dist/web/.next-embedded/server/app/setup.segments/_tree.segment.rsc +2 -0
- package/dist/web/.next-embedded/server/app/setup.segments/setup/__PAGE__.segment.rsc +22 -0
- package/dist/web/.next-embedded/server/app/signin/page.js +2 -0
- package/dist/web/.next-embedded/server/app/signin/page_client-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/app-paths-manifest.json +108 -0
- package/dist/web/.next-embedded/server/chunks/1117.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1173.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1190.js +1 -0
- package/dist/web/.next-embedded/server/chunks/121.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1231.js +8 -0
- package/dist/web/.next-embedded/server/chunks/1252.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1328.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1503.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1519.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1610.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1614.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1794.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1804.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1924.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1947.js +1 -0
- package/dist/web/.next-embedded/server/chunks/1998.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2026.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2030.js +39 -0
- package/dist/web/.next-embedded/server/chunks/2049.js +12 -0
- package/dist/web/.next-embedded/server/chunks/2192.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2208.js +3 -0
- package/dist/web/.next-embedded/server/chunks/2239.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2250.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2294.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2300.js +1 -0
- package/dist/web/.next-embedded/server/chunks/235.js +1 -0
- package/dist/web/.next-embedded/server/chunks/240.js +2 -0
- package/dist/web/.next-embedded/server/chunks/2400.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2438.js +2 -0
- package/dist/web/.next-embedded/server/chunks/2448.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2502.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2580.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2587.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2610.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2670.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2780.js +165 -0
- package/dist/web/.next-embedded/server/chunks/2792.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2857.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2884.js +1 -0
- package/dist/web/.next-embedded/server/chunks/2895.js +19 -0
- package/dist/web/.next-embedded/server/chunks/2961.js +1 -0
- package/dist/web/.next-embedded/server/chunks/3171.js +1 -0
- package/dist/web/.next-embedded/server/chunks/3222.js +2 -0
- package/dist/web/.next-embedded/server/chunks/3351.js +1 -0
- package/dist/web/.next-embedded/server/chunks/3381.js +1 -0
- package/dist/web/.next-embedded/server/chunks/3520.js +8 -0
- package/dist/web/.next-embedded/server/chunks/364.js +1 -0
- package/dist/web/.next-embedded/server/chunks/411.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4119.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4128.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4191.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4200.js +1 -0
- package/dist/web/.next-embedded/server/chunks/434.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4368.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4463.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4467.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4543.js +8 -0
- package/dist/web/.next-embedded/server/chunks/468.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4741.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4755.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4758.js +21 -0
- package/dist/web/.next-embedded/server/chunks/4870.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4877.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4888.js +1 -0
- package/dist/web/.next-embedded/server/chunks/491.js +1 -0
- package/dist/web/.next-embedded/server/chunks/4911.js +1 -0
- package/dist/web/.next-embedded/server/chunks/5036.js +27 -0
- package/dist/web/.next-embedded/server/chunks/5052.js +134 -0
- package/dist/web/.next-embedded/server/chunks/5057.js +55 -0
- package/dist/web/.next-embedded/server/chunks/5126.js +8 -0
- package/dist/web/.next-embedded/server/chunks/5133.js +1 -0
- package/dist/web/.next-embedded/server/chunks/5173.js +1 -0
- package/dist/web/.next-embedded/server/chunks/5225.js +2 -0
- package/dist/web/.next-embedded/server/chunks/5277.js +324 -0
- package/dist/web/.next-embedded/server/chunks/5398.js +1 -0
- package/dist/web/.next-embedded/server/chunks/5568.js +1 -0
- package/dist/web/.next-embedded/server/chunks/5576.js +1 -0
- package/dist/web/.next-embedded/server/chunks/5634.js +19 -0
- package/dist/web/.next-embedded/server/chunks/5645.js +1 -0
- package/dist/web/.next-embedded/server/chunks/5684.js +5 -0
- package/dist/web/.next-embedded/server/chunks/5699.js +1 -0
- package/dist/web/.next-embedded/server/chunks/57.js +2 -0
- package/dist/web/.next-embedded/server/chunks/5734.js +1 -0
- package/dist/web/.next-embedded/server/chunks/5787.js +1 -0
- package/dist/web/.next-embedded/server/chunks/5796.js +1 -0
- package/dist/web/.next-embedded/server/chunks/5933.js +1 -0
- package/dist/web/.next-embedded/server/chunks/5945.js +1 -0
- package/dist/web/.next-embedded/server/chunks/5961.js +1 -0
- package/dist/web/.next-embedded/server/chunks/6445.js +55 -0
- package/dist/web/.next-embedded/server/chunks/6511.js +18 -0
- package/dist/web/.next-embedded/server/chunks/6518.js +1 -0
- package/dist/web/.next-embedded/server/chunks/6572.js +1 -0
- package/dist/web/.next-embedded/server/chunks/6672.js +2 -0
- package/dist/web/.next-embedded/server/chunks/6773.js +1 -0
- package/dist/web/.next-embedded/server/chunks/6821.js +1 -0
- package/dist/web/.next-embedded/server/chunks/6926.js +1 -0
- package/dist/web/.next-embedded/server/chunks/7090.js +25 -0
- package/dist/web/.next-embedded/server/chunks/7206.js +1 -0
- package/dist/web/.next-embedded/server/chunks/7269.js +1 -0
- package/dist/web/.next-embedded/server/chunks/7380.js +1 -0
- package/dist/web/.next-embedded/server/chunks/7395.js +1 -0
- package/dist/web/.next-embedded/server/chunks/7466.js +1 -0
- package/dist/web/.next-embedded/server/chunks/7571.js +1 -0
- package/dist/web/.next-embedded/server/chunks/769.js +1 -0
- package/dist/web/.next-embedded/server/chunks/784.js +1 -0
- package/dist/web/.next-embedded/server/chunks/7861.js +1 -0
- package/dist/web/.next-embedded/server/chunks/7944.js +1 -0
- package/dist/web/.next-embedded/server/chunks/8020.js +1 -0
- package/dist/web/.next-embedded/server/chunks/8061.js +2 -0
- package/dist/web/.next-embedded/server/chunks/822.js +1 -0
- package/dist/web/.next-embedded/server/chunks/8302.js +1 -0
- package/dist/web/.next-embedded/server/chunks/8336.js +1 -0
- package/dist/web/.next-embedded/server/chunks/8376.js +1 -0
- package/dist/web/.next-embedded/server/chunks/841.js +2 -0
- package/dist/web/.next-embedded/server/chunks/8430.js +1 -0
- package/dist/web/.next-embedded/server/chunks/8563.js +2 -0
- package/dist/web/.next-embedded/server/chunks/8576.js +193 -0
- package/dist/web/.next-embedded/server/chunks/8656.js +1 -0
- package/dist/web/.next-embedded/server/chunks/8726.js +1 -0
- package/dist/web/.next-embedded/server/chunks/8935.js +1 -0
- package/dist/web/.next-embedded/server/chunks/9260.js +1 -0
- package/dist/web/.next-embedded/server/chunks/9314.js +1 -0
- package/dist/web/.next-embedded/server/chunks/9332.js +1 -0
- package/dist/web/.next-embedded/server/chunks/9380.js +13 -0
- package/dist/web/.next-embedded/server/chunks/951.js +2 -0
- package/dist/web/.next-embedded/server/chunks/9537.js +1 -0
- package/dist/web/.next-embedded/server/chunks/9840.js +1 -0
- package/dist/web/.next-embedded/server/chunks/9913.js +1 -0
- package/dist/web/.next-embedded/server/functions-config-manifest.json +97 -0
- package/dist/web/.next-embedded/server/instrumentation.js +1 -0
- package/dist/web/.next-embedded/server/interception-route-rewrite-manifest.js +1 -0
- package/dist/web/.next-embedded/server/middleware-build-manifest.js +1 -0
- package/dist/web/.next-embedded/server/middleware-manifest.json +6 -0
- package/dist/web/.next-embedded/server/middleware-react-loadable-manifest.js +1 -0
- package/dist/web/.next-embedded/server/middleware.js +217 -0
- package/dist/web/.next-embedded/server/next-font-manifest.js +1 -0
- package/dist/web/.next-embedded/server/next-font-manifest.json +1 -0
- package/dist/web/.next-embedded/server/pages/404.html +1 -0
- package/dist/web/.next-embedded/server/pages/500.html +1 -0
- package/dist/web/.next-embedded/server/pages-manifest.json +4 -0
- package/dist/web/.next-embedded/server/prefetch-hints.json +44 -0
- package/dist/web/.next-embedded/server/server-reference-manifest.js +1 -0
- package/dist/web/.next-embedded/server/server-reference-manifest.json +1 -0
- package/dist/web/.next-embedded/server/webpack-runtime.js +1 -0
- package/dist/web/.next-embedded/static/DkxmcmiDAUutpm9e7G9xn/_buildManifest.js +1 -0
- package/dist/web/.next-embedded/static/DkxmcmiDAUutpm9e7G9xn/_ssgManifest.js +1 -0
- package/dist/web/.next-embedded/static/chunks/1000-501917027865ec48.js +52 -0
- package/dist/web/.next-embedded/static/chunks/1435-55acf1390b3a2da1.js +1 -0
- package/dist/web/.next-embedded/static/chunks/2349-3254a65053329135.js +1 -0
- package/dist/web/.next-embedded/static/chunks/2378-4ca744bf47c3dabb.js +1 -0
- package/dist/web/.next-embedded/static/chunks/2685-42c2a4f17fb6adb1.js +18 -0
- package/dist/web/.next-embedded/static/chunks/5633-9a07d4830813ece7.js +1 -0
- package/dist/web/.next-embedded/static/chunks/6365-04af34ae5b1497e3.js +1 -0
- package/dist/web/.next-embedded/static/chunks/6482-ecc9c62a178ba724.js +1 -0
- package/dist/web/.next-embedded/static/chunks/7413-3a721e7c495f89fb.js +55 -0
- package/dist/web/.next-embedded/static/chunks/9595-fea797909cd07d91.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/api-keys/page-5fe6d7717b0565f1.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/models/new/page-875800e6afa2dac3.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/models/page-7c39ee3c51034f12.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/runtimes/page-d51caeefc8b5ed98.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/settings/page-7f1874c14b33856a.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/shares/page-c194edfd7701dc77.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/users/page-463489ca2ebf664f.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/agents/[id]/page-febe3b0582c996ae.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/agents/new/page-a5ba72c5bc40b6e1.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/agents/page-89d6af2961318db8.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/connectors/new/page-b7ab59a7697ce004.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/connectors/page-be6a19d14cc78f0f.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/files/page-63febed6b4433238.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/layout-4667e8f589776bbe.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/page-2cd836e518729ee6.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/projects/[id]/page-e6bc2217623b8939.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/projects/page-3db56f853165c53c.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/runs/page-fe28919e456c3966.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/skills/[name]/page-69390975e9417783.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/skills/page-1e756149864de860.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/(shell)/workspaces/page-47afb61daed3bbb2.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/_global-error/page-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/_not-found/page-1e20f0faf42b5dab.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/evaluations/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/feedback/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/grants/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/pointers/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/policy/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/promote/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/resources/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/rollback/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/runs/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/versions/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/agents/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/api-keys/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/api-keys/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/audit-events/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/auth/callback/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/auth/cli-device/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/auth/cli-token/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/auth/cli-verify/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/auth/cli-workspace/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/auth/login/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/auth/workspace/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/connectors/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/connectors/[id]/test-connection/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/connectors/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/engines/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/files/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/files/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/invitations/[id]/accept/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/invitations/[id]/resend/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/invitations/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/invitations/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/me/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/memberships/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/memberships/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/metrics/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/model-connections/[id]/credential/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/model-connections/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/model-connections/[id]/test/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/model-connections/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/models/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/projects/[id]/archive/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/projects/[id]/restore/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/projects/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/projects/[id]/sessions/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/projects/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/runs/[id]/events/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/runs/[id]/feedback/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/runs/[id]/interrupt/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/runs/[id]/revoke-tokens/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/runs/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/runs/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/runtime-connections/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/runtime-profiles/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/runtime-profiles/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/runtimes/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/secrets/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/secrets/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/sessions/[engineSessionId]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/sessions/[engineSessionId]/state-blobs/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/sessions/[engineSessionId]/state-entries/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/sessions/[engineSessionId]/state-streams/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/sessions/[engineSessionId]/subkeys/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/sessions/[engineSessionId]/transcript/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/sessions/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/setup/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/setup/runtime-detect/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/shares/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/shares/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/sharing-policies/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/skills/[name]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/skills/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/tokens/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/users/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/workspaces/[id]/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/api/workspaces/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/layout-2f33ac5af1408328.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/p/[token]/layout-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/p/[token]/messages/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/p/[token]/page-6cd5f2bd228d80dc.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/p/s/[name]/page-3bbe19f3f8fa0cd8.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/p/s/[name]/sessions/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/p/s/[name]/try/layout-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/p/s/[name]/try/page-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/p/s/[name]/widget.js/route-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/setup/page-1ffa2012b2226832.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/signin/layout-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/app/signin/page-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/b7e071c5-1178abcc3dcc97b7.js +1 -0
- package/dist/web/.next-embedded/static/chunks/framework-bd8f371b90cbf524.js +1 -0
- package/dist/web/.next-embedded/static/chunks/main-5f1d9db627247614.js +5 -0
- package/dist/web/.next-embedded/static/chunks/main-app-736eb94d950bf794.js +1 -0
- package/dist/web/.next-embedded/static/chunks/next/dist/client/components/builtin/app-error-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/next/dist/client/components/builtin/forbidden-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/next/dist/client/components/builtin/global-error-bcd4657bc775688d.js +1 -0
- package/dist/web/.next-embedded/static/chunks/next/dist/client/components/builtin/not-found-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/next/dist/client/components/builtin/unauthorized-259206b8559c1c4b.js +1 -0
- package/dist/web/.next-embedded/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/dist/web/.next-embedded/static/chunks/webpack-e654bfe3f030a510.js +1 -0
- package/dist/web/.next-embedded/static/css/85d72f669bcd1172.css +1 -0
- package/dist/web/next.config.mjs +1 -0
- package/package.json +51 -3
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Changelog — `@indx-workspace/embedded`
|
|
2
|
+
|
|
3
|
+
One heading per release, newest first. Released in lock-step with `@indx-workspace/contracts`, with
|
|
4
|
+
the same version (ADR-0082 D3).
|
|
5
|
+
|
|
6
|
+
## 0.3.0 — unreleased
|
|
7
|
+
|
|
8
|
+
The first release of this package on npm; there was no 0.2.1 of it.
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- The local runtime as one package (ADR-0109): `dist/launch.js` (the bundled web, gateway and
|
|
13
|
+
runner), `dist/bin.js` (the `./launch` export and the `agent-workspace-embedded` bin),
|
|
14
|
+
`dist/web/` (the production webpack build of the web app) and `dist/migrations/`.
|
|
15
|
+
- `./package.json` is exported, so `aw dev` can check the runtime's version.
|
|
16
|
+
- The project file's policy ceiling reaches the local runtime (#534, ADR-0109 slice-2 amendment):
|
|
17
|
+
`start.environment.policy` is written to `AW_DEPLOYMENT_POLICY` as canonical JSON (keys sorted,
|
|
18
|
+
no whitespace). A hand-set `AW_DEPLOYMENT_POLICY` that is not a valid JSON policy ceiling, a blank
|
|
19
|
+
one included, is refused as `invalid_value`, and one that differs from the project file's policy
|
|
20
|
+
as `conflicting_value`; both name the variable, never its value. With no `policy` in the project
|
|
21
|
+
file a valid hand-set ceiling still applies, and the runtime prints
|
|
22
|
+
`warning: AW_DEPLOYMENT_POLICY is set in the environment or .env and agent-workspace.yaml has no policy; that ceiling applies`.
|
|
23
|
+
The comparison is of canonical JSON, so key order and number spelling do not count but array
|
|
24
|
+
order does. Declared gap: nothing in the server reads `AW_DEPLOYMENT_POLICY` yet; the ceiling is
|
|
25
|
+
enforced once S2-04b lands (plan C13).
|
|
26
|
+
- The local runtime refuses to start when its environment, after `.env` is loaded, holds a name
|
|
27
|
+
from `start.environment.withheld` in any case (#534, SD17): the message names the secret and says
|
|
28
|
+
to remove it from `.env` and start `aw dev` with it in its environment instead.
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- `aw dev` starts under WSL2 mirrored networking (#556). The embedded PostgreSQL's default port
|
|
33
|
+
moves from 54329, inside Windows' dynamic range 49152-65535 that Linux cannot bind in mirrored
|
|
34
|
+
mode, to 25432, outside every default ephemeral range. `AW_DATABASE_PORT` (environment or the
|
|
35
|
+
project's `.env`, a whole number from 1024 to 65535) overrides it; `DATABASE_URL` still uses your
|
|
36
|
+
own PostgreSQL instead; a value equal to the web, gateway or runner port is refused before
|
|
37
|
+
anything starts, naming the clash. A port that cannot be bound although nothing listens on it now
|
|
38
|
+
fails with `port <n> cannot be bound on 127.0.0.1, but no process is listening on it: ...`, an
|
|
39
|
+
inconclusive listener check with `... and whether a process holds it could not be determined: ...`,
|
|
40
|
+
and a real collision with `port <n> is already in use: ...` followed by what holds it and what to
|
|
41
|
+
do, where all three used to read as "already in use" or as the generic start failure.
|
|
42
|
+
- The startup `Runtime:` line names the driver that actually runs, and the no-tenant-isolation
|
|
43
|
+
warning is printed whenever that driver is `local`, even when the host would prefer Docker (#476).
|
|
44
|
+
- An agent pushed with no runtime profile can run (#504): the start creates or adopts a runtime
|
|
45
|
+
profile named `local` and makes it the workspace default unless one is already chosen, and under
|
|
46
|
+
posture `local` the in-process `local` driver no longer needs a Test Runtime first.
|
|
47
|
+
- An agent whose version names the `default` connection but no model, as a new project's scaffold
|
|
48
|
+
writes it, can run (#506): the launcher sets `AW_DEPLOYMENT_DEFAULT_MODELS` to a per-provider
|
|
49
|
+
deployment default (`claude-sonnet-4-5` for Anthropic, `gpt-5.1` for OpenAI) unless `.env` or the
|
|
50
|
+
environment sets it, so the run is no longer refused with `422 model_connection_unresolved`.
|
|
51
|
+
- Ctrl+C on `aw dev` stops the runtime in order (#510): the embedded PostgreSQL postmaster is
|
|
52
|
+
spawned by the runtime in its own process group (ADR-0112), so the terminal's SIGINT reaches only
|
|
53
|
+
the launcher, which revokes the credential, closes the server and its database pools and then
|
|
54
|
+
stops PostgreSQL. A closed terminal or console (SIGHUP) and Ctrl+Break (SIGBREAK) run the same
|
|
55
|
+
ordered stop. The
|
|
56
|
+
server's database pools (and the migration and bootstrap lock clients) report a failed
|
|
57
|
+
connection as one `[db] … (<code>)` line instead of an uncaught `57P01` error. A launcher
|
|
58
|
+
killed with SIGKILL now leaves the postmaster running, and the next start reports the embedded
|
|
59
|
+
PostgreSQL's port in use until it is stopped.
|
|
60
|
+
- `aw dev` explains the ports it cannot use (#560). `environments.local.port` 4000 and 8080, the
|
|
61
|
+
local runtime's own gateway and runner ports, are refused by `aw check` and `aw dev` with the
|
|
62
|
+
file position. The launcher also refuses a port equal to the gateway or runner port `.env` sets
|
|
63
|
+
(naming `GATEWAY_PORT` or `RUNNER_PORT`, read as each service reads it, so a blank `RUNNER_PORT`
|
|
64
|
+
is 8080) and the embedded PostgreSQL's port unless `DATABASE_URL` is set.
|
|
65
|
+
A port the process may not listen on, such as 80 as a normal user, is reported as
|
|
66
|
+
`permission denied to listen on port 80; ports below 1024 need elevated privileges, choose a port from 1024 to 65535`
|
|
67
|
+
instead of `the local runtime failed to start (Error)`. A second `aw dev` in a project whose
|
|
68
|
+
runtime is still running is reported as
|
|
69
|
+
`port <n> is already in use, and this project's local runtime may already be running (.agent-workspace/runtime.pid records process <pid>); if aw dev is running in this project, stop that aw dev before running it again`,
|
|
70
|
+
from the pid the launcher keeps in `.agent-workspace/runtime.pid` while it runs. A pid cannot
|
|
71
|
+
prove its process is an aw runtime, so the message never says to stop that pid, and a start whose
|
|
72
|
+
services all bind over a live record (a stale pid reused by another process) re-records itself.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
|
|
2
|
+
Apache License
|
|
3
|
+
Version 2.0, January 2004
|
|
4
|
+
http://www.apache.org/licenses/
|
|
5
|
+
|
|
6
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
7
|
+
|
|
8
|
+
1. Definitions.
|
|
9
|
+
|
|
10
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
11
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
12
|
+
|
|
13
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
14
|
+
the copyright owner that is granting the License.
|
|
15
|
+
|
|
16
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
17
|
+
other entities that control, are controlled by, or are under common
|
|
18
|
+
control with that entity. For the purposes of this definition,
|
|
19
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
20
|
+
direction or management of such entity, whether by contract or
|
|
21
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
22
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
23
|
+
|
|
24
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
25
|
+
exercising permissions granted by this License.
|
|
26
|
+
|
|
27
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
28
|
+
including but not limited to software source code, documentation
|
|
29
|
+
source, and configuration files.
|
|
30
|
+
|
|
31
|
+
"Object" form shall mean any form resulting from mechanical
|
|
32
|
+
transformation or translation of a Source form, including but
|
|
33
|
+
not limited to compiled object code, generated documentation,
|
|
34
|
+
and conversions to other media types.
|
|
35
|
+
|
|
36
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
37
|
+
Object form, made available under the License, as indicated by a
|
|
38
|
+
copyright notice that is included in or attached to the work
|
|
39
|
+
(an example is provided in the Appendix below).
|
|
40
|
+
|
|
41
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
42
|
+
form, that is based on (or derived from) the Work and for which the
|
|
43
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
44
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
45
|
+
of this License, Derivative Works shall not include works that remain
|
|
46
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
47
|
+
the Work and Derivative Works thereof.
|
|
48
|
+
|
|
49
|
+
"Contribution" shall mean any work of authorship, including
|
|
50
|
+
the original version of the Work and any modifications or additions
|
|
51
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
52
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
53
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
54
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
55
|
+
means any form of electronic, verbal, or written communication sent
|
|
56
|
+
to the Licensor or its representatives, including but not limited to
|
|
57
|
+
communication on electronic mailing lists, source code control systems,
|
|
58
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
59
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
60
|
+
excluding communication that is conspicuously marked or otherwise
|
|
61
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
62
|
+
|
|
63
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
64
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
65
|
+
subsequently incorporated within the Work.
|
|
66
|
+
|
|
67
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
68
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
69
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
70
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
71
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
72
|
+
Work and such Derivative Works in Source or Object form.
|
|
73
|
+
|
|
74
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
75
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
76
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
77
|
+
(except as stated in this section) patent license to make, have made,
|
|
78
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
79
|
+
where such license applies only to those patent claims licensable
|
|
80
|
+
by such Contributor that are necessarily infringed by their
|
|
81
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
82
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
83
|
+
institute patent litigation against any entity (including a
|
|
84
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
85
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
86
|
+
or contributory patent infringement, then any patent licenses
|
|
87
|
+
granted to You under this License for that Work shall terminate
|
|
88
|
+
as of the date such litigation is filed.
|
|
89
|
+
|
|
90
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
91
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
92
|
+
modifications, and in Source or Object form, provided that You
|
|
93
|
+
meet the following conditions:
|
|
94
|
+
|
|
95
|
+
(a) You must give any other recipients of the Work or
|
|
96
|
+
Derivative Works a copy of this License; and
|
|
97
|
+
|
|
98
|
+
(b) You must cause any modified files to carry prominent notices
|
|
99
|
+
stating that You changed the files; and
|
|
100
|
+
|
|
101
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
102
|
+
that You distribute, all copyright, patent, trademark, and
|
|
103
|
+
attribution notices from the Source form of the Work,
|
|
104
|
+
excluding those notices that do not pertain to any part of
|
|
105
|
+
the Derivative Works; and
|
|
106
|
+
|
|
107
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
108
|
+
distribution, then any Derivative Works that You distribute must
|
|
109
|
+
include a readable copy of the attribution notices contained
|
|
110
|
+
within such NOTICE file, excluding those notices that do not
|
|
111
|
+
pertain to any part of the Derivative Works, in at least one
|
|
112
|
+
of the following places: within a NOTICE text file distributed
|
|
113
|
+
as part of the Derivative Works; within the Source form or
|
|
114
|
+
documentation, if provided along with the Derivative Works; or,
|
|
115
|
+
within a display generated by the Derivative Works, if and
|
|
116
|
+
wherever such third-party notices normally appear. The contents
|
|
117
|
+
of the NOTICE file are for informational purposes only and
|
|
118
|
+
do not modify the License. You may add Your own attribution
|
|
119
|
+
notices within Derivative Works that You distribute, alongside
|
|
120
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
121
|
+
that such additional attribution notices cannot be construed
|
|
122
|
+
as modifying the License.
|
|
123
|
+
|
|
124
|
+
You may add Your own copyright statement to Your modifications and
|
|
125
|
+
may provide additional or different license terms and conditions
|
|
126
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
127
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
128
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
129
|
+
the conditions stated in this License.
|
|
130
|
+
|
|
131
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
132
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
133
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
134
|
+
this License, without any additional terms or conditions.
|
|
135
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
136
|
+
the terms of any separate license agreement you may have executed
|
|
137
|
+
with Licensor regarding such Contributions.
|
|
138
|
+
|
|
139
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
140
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
141
|
+
except as required for reasonable and customary use in describing the
|
|
142
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
143
|
+
|
|
144
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
145
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
146
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
147
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
148
|
+
implied, including, without limitation, any warranties or conditions
|
|
149
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
150
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
151
|
+
appropriateness of using or redistributing the Work and assume any
|
|
152
|
+
risks associated with Your exercise of permissions under this License.
|
|
153
|
+
|
|
154
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
155
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
156
|
+
unless required by applicable law (such as deliberate and grossly
|
|
157
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
158
|
+
liable to You for damages, including any direct, indirect, special,
|
|
159
|
+
incidental, or consequential damages of any character arising as a
|
|
160
|
+
result of this License or out of the use or inability to use the
|
|
161
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
162
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
163
|
+
other commercial damages or losses), even if such Contributor
|
|
164
|
+
has been advised of the possibility of such damages.
|
|
165
|
+
|
|
166
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
167
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
168
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
169
|
+
or other liability obligations and/or rights consistent with this
|
|
170
|
+
License. However, in accepting such obligations, You may act only
|
|
171
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
172
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
173
|
+
defend, and hold each Contributor harmless for any liability
|
|
174
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
175
|
+
of your accepting any such warranty or additional liability.
|
|
176
|
+
|
|
177
|
+
END OF TERMS AND CONDITIONS
|
|
178
|
+
|
|
179
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
180
|
+
|
|
181
|
+
To apply the Apache License to your work, attach the following
|
|
182
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
183
|
+
replaced with your own identifying information. (Don't include
|
|
184
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
185
|
+
comment syntax for the file format. We also recommend that a
|
|
186
|
+
file or class name and description of purpose be included on the
|
|
187
|
+
same "printed page" as the copyright notice for easier
|
|
188
|
+
identification within third-party archives.
|
|
189
|
+
|
|
190
|
+
Copyright 2026 Agent Workspace contributors
|
|
191
|
+
|
|
192
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
193
|
+
you may not use this file except in compliance with the License.
|
|
194
|
+
You may obtain a copy of the License at
|
|
195
|
+
|
|
196
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
197
|
+
|
|
198
|
+
Unless required by applicable law or agreed to in writing, software
|
|
199
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
200
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
201
|
+
See the License for the specific language governing permissions and
|
|
202
|
+
limitations under the License.
|
package/README.md
ADDED
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
# `@indx-workspace/embedded` — the Agent Workspace local runtime
|
|
2
|
+
|
|
3
|
+
The control plane (web), the model gateway and the runner in **one Node process**, over an
|
|
4
|
+
embedded PostgreSQL 17 and local files. A generated project runs it as `aw dev`, which resolves
|
|
5
|
+
this package's `./launch` export from the project's dependencies and forks it; it never imports
|
|
6
|
+
it ([ADR-0109](../../docs/adr/0109-the-local-runtime-publishes-as-one-bundled-package-that-aw-dev-runs-from-the-project.md)).
|
|
7
|
+
`aw dev` itself is a later unit of the developer journey (S1-13).
|
|
8
|
+
|
|
9
|
+
The package exports no importable API. Its `exports` are exactly:
|
|
10
|
+
|
|
11
|
+
| Export | Target | Who reads it |
|
|
12
|
+
| ---------------- | ---------------- | ------------------------------------------------------- |
|
|
13
|
+
| `./launch` | `./dist/bin.js` | `aw dev`, which resolves the path and forks it |
|
|
14
|
+
| `./package.json` | `./package.json` | `aw dev`, which checks the runtime's version equals its |
|
|
15
|
+
|
|
16
|
+
The server images stay the production path. The local runtime has no tenant isolation: the
|
|
17
|
+
`local` runtime driver runs commands as you.
|
|
18
|
+
|
|
19
|
+
## Installing
|
|
20
|
+
|
|
21
|
+
A generated project depends on this package, at the same version as `@indx-workspace/aw`. Its
|
|
22
|
+
`embedded-postgres` dependency installs the PostgreSQL binaries for your platform from one of the
|
|
23
|
+
eight `@embedded-postgres/*` packages, whose install script restores the binaries' symlinks.
|
|
24
|
+
|
|
25
|
+
- **npm** runs dependencies' install scripts by default, so `npm install` needs nothing more.
|
|
26
|
+
- **pnpm** runs none it has not been told to allow: a pnpm project must allow the eight
|
|
27
|
+
`@embedded-postgres/*` builds (`allowBuilds` in `pnpm-workspace.yaml`).
|
|
28
|
+
- **After `npm install --ignore-scripts`**, run `npm rebuild @embedded-postgres/<platform>` (for
|
|
29
|
+
example `@embedded-postgres/linux-x64`). It restores the PostgreSQL symlinks and runs no other
|
|
30
|
+
package's script.
|
|
31
|
+
|
|
32
|
+
The release smoke (`pnpm release:pack --smoke`) installs the packed tarballs this way and boots the
|
|
33
|
+
runtime from them: `ready`, `credential`, `GET /api/me` answering 200, and exit 0 on SIGINT. The
|
|
34
|
+
first npm publish is the Owner's step (see "Declared gap"), so until then the package is proven
|
|
35
|
+
from tarballs only.
|
|
36
|
+
|
|
37
|
+
## Two ways to run it
|
|
38
|
+
|
|
39
|
+
**Contributor path, from a repository clone.** `pnpm start:embedded` compiles `src/` with `tsc`
|
|
40
|
+
into `dist/contributor` (the `build-contributor` target) and runs `dist/contributor/index.js`. The
|
|
41
|
+
web server is Next development mode from `apps/web`, as before; the command prints
|
|
42
|
+
`Agent Workspace is ready at …` once every server answers.
|
|
43
|
+
|
|
44
|
+
**Published path.** `pnpm --filter @indx-workspace/embedded build` (also part of `pnpm build`)
|
|
45
|
+
runs `node src/packaging/main.ts` (Node strips the types) and writes:
|
|
46
|
+
|
|
47
|
+
- `dist/launch.js`: an esbuild bundle of `src/launch.ts` (ESM, no splitting, no source map).
|
|
48
|
+
Every workspace member it reaches (the server packages, the four engine adapters, the CLI, the
|
|
49
|
+
contracts and the SDK) is inlined; every third-party package stays an external `import`.
|
|
50
|
+
- `dist/bin.js`: a few lines from `src/bin.ts`. When it is `argv[1]` it imports `./launch.js` and
|
|
51
|
+
runs the runtime; importing it does nothing. It takes no arguments and refuses any it is given
|
|
52
|
+
(exit 1) rather than ignore them; configuration comes from the environment and from `.env` in the
|
|
53
|
+
working directory, which is optional. A failed start exits with a non-zero code: the bin calls
|
|
54
|
+
`process.exit` itself, because `embedded-postgres` installs an exit hook that would otherwise
|
|
55
|
+
end the process with 0. `argv[1]` is resolved as Node resolves the main module, so
|
|
56
|
+
`node dist/bin` and `node dist/launch` are recognised as well.
|
|
57
|
+
- `dist/web/`: `next build --webpack` of `apps/web` into the distDir `.next-embedded`, without the
|
|
58
|
+
build cache, the route types, the traces, the `*.nft.json` files and source maps, plus a
|
|
59
|
+
generated `next.config.mjs` naming that distDir. The launcher serves it with
|
|
60
|
+
`startWeb(env, { dir: dist/web, dev: false })`.
|
|
61
|
+
- `dist/migrations/`: a copy of the repository's `migrations/`, journal included. The launcher sets
|
|
62
|
+
`MIGRATIONS_DIR` to it unless it is already set.
|
|
63
|
+
- `publish/`: the staging directory the package is packed from (git-ignored). See below.
|
|
64
|
+
|
|
65
|
+
**Never run `dist/launch.js` directly.** Inlined modules compare their own `import.meta.url` with
|
|
66
|
+
`argv[1]` to decide whether they are the main module, and inside the bundle that URL is the
|
|
67
|
+
bundle's. Run directly, it refuses with `run dist/bin.js, not the bundle` and exits 1. `launch.ts`
|
|
68
|
+
reaches the servers only through a dynamic `import()`, so that refusal runs before any inlined
|
|
69
|
+
module's top level. It does not run before the third-party externals, which ESM links first (see
|
|
70
|
+
"Why the externals are pinned here too"): the refusal assumes they are installed, as they are in
|
|
71
|
+
the repository and in an installed package, and a missing one fails with Node's resolution error
|
|
72
|
+
instead.
|
|
73
|
+
|
|
74
|
+
The web build leaves `apps/web` as it found it: Next rewrites `apps/web/tsconfig.json` and
|
|
75
|
+
`next-env.d.ts` for a custom distDir, so both are saved byte for byte and restored, and
|
|
76
|
+
`apps/web/.next-embedded` is removed, in a `finally`. The build then fails if
|
|
77
|
+
`git status --porcelain apps/web` differs from what it was before the build. A contributor's own
|
|
78
|
+
uncommitted edits under `apps/web` are therefore allowed; a trace the build left is not. The Nx
|
|
79
|
+
`build` target runs after `web:typecheck` and `web:lint`, so CI's parallel fast checks never read
|
|
80
|
+
the half-written build.
|
|
81
|
+
|
|
82
|
+
## The published launcher (`aw dev`)
|
|
83
|
+
|
|
84
|
+
`dist/bin.js` behaves in one of two ways. Started without an IPC channel (`node dist/bin.js`), it
|
|
85
|
+
keeps the environment-only start described above. Forked with an IPC channel, as `aw dev` forks
|
|
86
|
+
it, it is the launcher of S1-11 (issue #449) and speaks the protocol of
|
|
87
|
+
`@indx-workspace/contracts/local-runtime`:
|
|
88
|
+
|
|
89
|
+
1. `aw` → runtime: `start {projectDir, environment: {port, runtimeDriver?, bootstrapAdmin}}`.
|
|
90
|
+
The launcher waits up to 60 seconds for it. A message that schema refuses (an unknown key, a
|
|
91
|
+
wrong type, or a runtime-to-`aw` message such as `ready`) is answered with `failed`.
|
|
92
|
+
2. runtime → `aw`: `ready {url, contractsVersion}`, once the web server, the gateway and the
|
|
93
|
+
runner answer and the server serves this package's contracts version. `url` is always a
|
|
94
|
+
loopback URL.
|
|
95
|
+
3. runtime → `aw`: `credential {token, expiresAt, workspaceId, workspaceSlug}`, where `token` is
|
|
96
|
+
a workspace API key (`ak_live_…`) for the local workspace (`WORKSPACE_SLUG`, or `default`),
|
|
97
|
+
minted in process by the server's own `issueLocalApiKey` at a role no higher than the
|
|
98
|
+
bootstrap admin's, expiring after 12 hours (ADR-0109's S1-21 amendment, issue #500). `aw` can
|
|
99
|
+
then reach every control-plane route it calls without a device grant, and keeps the key in its
|
|
100
|
+
own owner-only `~/.config/agent-workspace/local-credentials.json`. The key cannot write
|
|
101
|
+
`/api/api-keys`, `/api/users` or `/api/memberships`, so nothing it mints outlives the run;
|
|
102
|
+
`aw workspaces` and `aw invitations` refuse API keys, so use the browser sign-in for them. The
|
|
103
|
+
key travels only over the IPC channel and is revoked on stop, before the database stops; a key
|
|
104
|
+
a crashed run left behind is revoked on the next start. Before minting it, the launcher makes
|
|
105
|
+
a runtime profile named `local`, on the `local` driver, the workspace default, creating or
|
|
106
|
+
adopting it, unless the workspace already has a default (ADR-0109's S1-22 amendment, issue
|
|
107
|
+
#504), so an agent pushed with no runtime profile runs on it. A profile named `local` on
|
|
108
|
+
another driver is left alone with one warning on stderr.
|
|
109
|
+
4. Any failure, before or after `ready`, sends `failed {message}` instead, releases what was
|
|
110
|
+
started and exits 1. The message is terminal-safe (no control character, at most 4096
|
|
111
|
+
characters) and never carries a secret. A port already in use is reported as
|
|
112
|
+
`port <n> is already in use`. For the embedded PostgreSQL's port, 25432 by default, the message
|
|
113
|
+
goes on to say that another process holds it (for example another project's `aw dev`, or a
|
|
114
|
+
PostgreSQL a killed run left behind) and what to do (stop it, or set `AW_DATABASE_PORT` in
|
|
115
|
+
`.env` to another free port below 49152). A PostgreSQL port that cannot be bound although
|
|
116
|
+
nothing listens on it is reported as
|
|
117
|
+
`port <n> cannot be bound on 127.0.0.1, but no process is listening on it: ...`, and one whose
|
|
118
|
+
listener check is inconclusive as
|
|
119
|
+
`port <n> cannot be bound on 127.0.0.1, and whether a process holds it could not be determined: ...`,
|
|
120
|
+
both naming `AW_DATABASE_PORT` and `DATABASE_URL` (see "The embedded PostgreSQL's port" below). A start
|
|
121
|
+
that has not sent `credential` five minutes after `start` arrived is reported as
|
|
122
|
+
`the local runtime did not become ready in time`.
|
|
123
|
+
A port the process may not listen on is reported as `permission denied to listen on port <n>`,
|
|
124
|
+
with a hint to choose a port from 1024 to 65535 when it is below 1024 (issue #560). The
|
|
125
|
+
runtime's own gateway (4000) and runner (8080) ports are refused as `environments.local.port`
|
|
126
|
+
by `aw check` and `aw dev`; the project file is shared, so that check follows the fixed ports
|
|
127
|
+
whatever `.env` says. The launcher refuses again the ports this machine's runtime will bind: the
|
|
128
|
+
`GATEWAY_PORT` and `RUNNER_PORT` that `.env` sets (the message names the variable), and the
|
|
129
|
+
embedded PostgreSQL's port unless `DATABASE_URL` is set. The launcher records its pid in
|
|
130
|
+
`.agent-workspace/runtime.pid` while it runs; a second start in the same project that collides
|
|
131
|
+
on a port while that process is alive is reported as
|
|
132
|
+
`port <n> is already in use, and this project's local runtime may already be running (.agent-workspace/runtime.pid records process <pid>); if aw dev is running in this project, stop that aw dev before running it again`.
|
|
133
|
+
The file only words that diagnosis: it never refuses a start, and a pid cannot prove its process
|
|
134
|
+
is an aw runtime, so a start whose services all bind over a live record re-records itself.
|
|
135
|
+
|
|
136
|
+
`projectDir` must be an existing absolute directory. The launcher changes into it and keeps all
|
|
137
|
+
its state under `<projectDir>/.agent-workspace/`: the embedded PostgreSQL in `postgres/`, the
|
|
138
|
+
file, skill and transcript storage, and the secrets.
|
|
139
|
+
|
|
140
|
+
**The environment it sets (contract C1).** From `start`: `PORT`, `BOOTSTRAP_ADMIN` and, when given,
|
|
141
|
+
`RUNTIME_DRIVER`. For the local posture: `AW_DEPLOYMENT_POSTURE=local`, `HOST=127.0.0.1` and
|
|
142
|
+
`AW_LOCAL_SURFACE_SESSIONS=1`. `MIGRATIONS_DIR` defaults to `dist/migrations`. A value already set
|
|
143
|
+
in the process environment or in `.env` that differs from the one required is refused, never
|
|
144
|
+
silently overridden: the launcher sends `failed` naming the variable (never its value), so
|
|
145
|
+
`HOST=0.0.0.0` fails with `local posture needs a loopback HOST`, and another loopback host such
|
|
146
|
+
as `HOST=localhost` with `the local runtime binds 127.0.0.1`. A `WORKSPACE_SLUG` that is set
|
|
147
|
+
must be a workspace slug, and an unreadable `.env` is refused naming its path. The one forced value is
|
|
148
|
+
`NODE_ENV=production`: it states how the bundle and `dist/web` were built, not a setting. The
|
|
149
|
+
server's deployment-posture check then runs on the result. `GATEWAY_PRICING_JSON`, which the
|
|
150
|
+
gateway needs to start, defaults to the fail-closed sentinel `.env.example` ships (it matches no
|
|
151
|
+
real provider model, so metered runs fail closed); set reviewed rates in `.env` to replace it.
|
|
152
|
+
`AW_DEPLOYMENT_DEFAULT_MODELS` defaults to `{"anthropic":"claude-sonnet-4-5","openai":"gpt-5.1"}`,
|
|
153
|
+
so an agent whose version names the `default` connection but no model runs on that provider's id
|
|
154
|
+
(contract C7, the last layer of the run model ladder, ADR-0103 amendment); a value set in `.env` or
|
|
155
|
+
the environment wins, and an empty one turns it off.
|
|
156
|
+
|
|
157
|
+
**The runtime directory and its secrets.** Before it writes anything else into `.agent-workspace/`,
|
|
158
|
+
the launcher writes `.agent-workspace/.gitignore` containing `*`, so a project without a root
|
|
159
|
+
`.gitignore` never stages the database, the storage or the secrets. An existing `.gitignore` there
|
|
160
|
+
must keep a line that is exactly `*` and contain no negation (`!…`) line, which could un-ignore
|
|
161
|
+
the secrets file, or the launcher refuses to start; so it does when `.agent-workspace` is not a
|
|
162
|
+
directory. On the first start it
|
|
163
|
+
generates `SESSION_SECRET`, `MASTER_ENCRYPTION_KEY`, `GATEWAY_TOKEN_SECRET` and
|
|
164
|
+
`BOOTSTRAP_ADMIN_PASSWORD` into `.agent-workspace/local-secrets.json`, created with mode `0600`.
|
|
165
|
+
Later starts reuse the file unchanged (and tighten a looser mode back to `0600` on POSIX), so
|
|
166
|
+
sessions, encrypted secrets and gateway tokens survive a restart. A file that cannot be parsed or
|
|
167
|
+
fails validation is refused with an error that names its path and never its contents. The
|
|
168
|
+
precedence is the process environment, then `.env` in the project directory, then
|
|
169
|
+
`local-secrets.json`: a value from either of the first two wins over the file. A blank value,
|
|
170
|
+
such as the `SESSION_SECRET=` line `.env.example` ships, counts as unset.
|
|
171
|
+
|
|
172
|
+
**The key.** It travels only over the IPC channel: the launcher never writes it to stdout,
|
|
173
|
+
stderr, a log or a file. On SIGINT, SIGTERM, SIGHUP (a closed terminal or console window), SIGBREAK
|
|
174
|
+
(Windows' Ctrl+Break) or the IPC channel disconnecting, the launcher revokes
|
|
175
|
+
it first, while the database is still up, then closes its database root and the servers, and
|
|
176
|
+
exits 0. The same triggers during the start (and a signal while it still waits for `start`)
|
|
177
|
+
abandon the step in progress at once, release what was acquired and exit 0 without sending
|
|
178
|
+
`failed`. A crash or a `SIGKILL` cannot revoke it, so such a key stays valid until it expires,
|
|
179
|
+
twelve hours after it was issued (the CLI token lifetime), or until the next start, which revokes
|
|
180
|
+
every unrevoked key whose name starts with the reserved `aw dev local runtime` prefix before
|
|
181
|
+
minting its own.
|
|
182
|
+
|
|
183
|
+
**Ctrl+C in a terminal.** The terminal sends SIGINT to every process in its foreground process
|
|
184
|
+
group. The runtime starts the embedded PostgreSQL postmaster itself, `detached` (ADR-0112): on POSIX
|
|
185
|
+
in its own session and process group, on Windows in its own process group with no console. So a
|
|
186
|
+
Ctrl+C reaches only the launcher, which revokes the key, closes the server and its database pools,
|
|
187
|
+
and only then stops PostgreSQL (SIGINT, a fast shutdown; SIGKILL to the postmaster's group if it has
|
|
188
|
+
not exited within 30 seconds; `taskkill /t` on Windows). A database connection that still fails
|
|
189
|
+
during that stop is reported as one `[db] a database connection failed (<code>)` line, never an
|
|
190
|
+
uncaught error. A closed terminal (SIGHUP) or Ctrl+Break (SIGBREAK) runs the same ordered stop. An
|
|
191
|
+
exit through `process.exit`, an uncaught exception or an empty event loop sends the postmaster
|
|
192
|
+
SIGINT from an `exit` hook. A launcher killed with `SIGKILL`, or ended by another signal's default
|
|
193
|
+
action (such as SIGQUIT, `Ctrl+\`), runs no code at all, so it leaves the postmaster running: the
|
|
194
|
+
next start then fails with `port 25432 is already in use` (or the `AW_DATABASE_PORT` port) until
|
|
195
|
+
that postmaster is stopped (`kill <pid>`, the pid being the first line of
|
|
196
|
+
`.agent-workspace/postgres/postmaster.pid`). On a first start, `initdb` still runs in the
|
|
197
|
+
launcher's group, so a Ctrl+C during the first initialisation aborts it, and the start is
|
|
198
|
+
abandoned as any other interrupted start is.
|
|
199
|
+
|
|
200
|
+
**The sign-in line.** On the first start, when the password was generated into
|
|
201
|
+
`local-secrets.json`, the launcher prints the admin email and that password once on stdout. Later
|
|
202
|
+
starts print only where the password is: the path of `local-secrets.json`, or that it is set in
|
|
203
|
+
`.env`.
|
|
204
|
+
|
|
205
|
+
`src/local-launcher.integration.test.ts` forks the built `dist/bin.js` in a temporary project
|
|
206
|
+
directory on free ports and checks the sequence end to end: `ready` then `credential`,
|
|
207
|
+
`GET /api/me` and `GET /api/model-connections` with the key answering 200, the `.gitignore` and
|
|
208
|
+
the secrets file (its mode outside Windows), exit 0 on SIGINT, a restart that reuses the secrets
|
|
209
|
+
byte for byte and answers 401 to the first, revoked key, and no key in either run's stdout or
|
|
210
|
+
stderr. A second describe forks the launcher `detached`, so that it leads its own process group as
|
|
211
|
+
a terminal job does, and sends SIGINT to that whole group (on Windows it closes the IPC channel):
|
|
212
|
+
the postmaster is in a group of its own, the launcher exits 0 with no revoke warning, no
|
|
213
|
+
`terminating connection` error and no stack trace, the postmaster and port 25432 are gone, and a
|
|
214
|
+
restart answers 401 to the first key, whose row was revoked before the first runtime exited. Its
|
|
215
|
+
last test
|
|
216
|
+
holds port 25432 and checks that a start then answers `failed` with the full in-use message and
|
|
217
|
+
exits 1. The embedded PostgreSQL listens on that fixed port, so the earlier tests fail, naming it,
|
|
218
|
+
while another embedded runtime runs on the same host.
|
|
219
|
+
|
|
220
|
+
**The embedded PostgreSQL's port.** It is 25432, fixed and deterministic, below every default
|
|
221
|
+
ephemeral range (Linux 32768-60999, Windows and macOS 49152-65535). The earlier 54329 sat in
|
|
222
|
+
Windows' dynamic range, which Linux cannot bind under WSL2 mirrored networking (issue #556).
|
|
223
|
+
`AW_DATABASE_PORT`, from the environment or the project's `.env`, overrides it; it must be a whole
|
|
224
|
+
number from 1024 to 65535, and any other value fails the start before anything is started, naming
|
|
225
|
+
the variable and the range. A port equal to the web (`PORT`), gateway (`GATEWAY_PORT`) or runner
|
|
226
|
+
(`RUNNER_PORT`) port also fails before anything starts, with
|
|
227
|
+
`port <n> is both the embedded PostgreSQL's port and <VARIABLE>: ...`. When `DATABASE_URL` is set,
|
|
228
|
+
no embedded PostgreSQL starts at all and the runtime uses that database. If the port cannot be
|
|
229
|
+
bound, the start checks whether anything listens on it: if something does, it fails with
|
|
230
|
+
`port <n> is already in use: ...`; if nothing does, the operating system reserves the port (a
|
|
231
|
+
Hyper-V or WSL excluded range, for example) and it fails with
|
|
232
|
+
`port <n> cannot be bound on 127.0.0.1, but no process is listening on it: ...`; if the check is
|
|
233
|
+
inconclusive (it times out), it fails with
|
|
234
|
+
`port <n> cannot be bound on 127.0.0.1, and whether a process holds it could not be determined: ...`.
|
|
235
|
+
The last two tell you to set `AW_DATABASE_PORT` in `.env` to a free port below 49152, or
|
|
236
|
+
`DATABASE_URL` to your own PostgreSQL. The start never moves to another port by itself: a second start on the same data
|
|
237
|
+
directory must fail naming the port rather than start a second postmaster (ADR-0109, issue #556
|
|
238
|
+
amendment).
|
|
239
|
+
|
|
240
|
+
**The contributor path is unchanged.** `pnpm start:embedded` still generates fresh secrets on
|
|
241
|
+
every run and writes no `local-secrets.json`.
|
|
242
|
+
|
|
243
|
+
## The staging directory and the zero-leak gate
|
|
244
|
+
|
|
245
|
+
This workspace manifest names the server members as `workspace:*` dependencies, so Nx builds them
|
|
246
|
+
first and esbuild can inline them, and it stays `"private": true`. It is never packed. The build
|
|
247
|
+
writes `publish/package.json` instead (the release packs `publish/`), from a whitelist of this manifest's fields (`name`,
|
|
248
|
+
`version`, `description`, `license`, `homepage`, `repository`, `bugs`, `engines`, `type`,
|
|
249
|
+
`exports`, `bin`), public `publishConfig`, and a `dependencies` map holding exactly:
|
|
250
|
+
|
|
251
|
+
- every third-party package `dist/launch.js` imports (the externals in the esbuild metafile);
|
|
252
|
+
- every package a webpack external module of the server chunks loads (`next`, `pg`);
|
|
253
|
+
- the required (non-optional) peers of those, recursively (`react` and `react-dom` for `next`).
|
|
254
|
+
|
|
255
|
+
The metadata fields beyond ADR-0109's list (`description`, `homepage`, `bugs`, `engines`), the
|
|
256
|
+
public `publishConfig` and the required peers are deliberate: npm shows the first four, a scoped
|
|
257
|
+
package publishes as restricted without the access setting, and `next` does not load without its
|
|
258
|
+
peers installed beside it. The published `description` therefore describes the package alone.
|
|
259
|
+
|
|
260
|
+
Each is at the exact version the lockfile installed, read with `module.findPackageJSON` from its
|
|
261
|
+
importer. `dist/bin.js`, `dist/launch.js`, `dist/web/`, `dist/migrations/`, this README, `LICENSE`
|
|
262
|
+
and `CHANGELOG.md` are copied beside it. The build fails, with a typed `EmbeddedBuildError`, when
|
|
263
|
+
two importers resolve one external to two versions, when an external has no installed manifest,
|
|
264
|
+
when a pin below differs from the installed version, or when a literal `require`/`import` in the
|
|
265
|
+
server chunks is neither a webpack external nor one of the reviewed `NON_EXTERNAL_LOADS` (an
|
|
266
|
+
optional `encoding` require of the bundled `node-fetch`, and two package names that occur only in
|
|
267
|
+
the text of an AWS SDK error message).
|
|
268
|
+
|
|
269
|
+
The packed tarball must not contain the private workspace scope anywhere, `dist/web/` and the
|
|
270
|
+
packed manifest included. Inlined members that are reached through a dynamic `import()` (the
|
|
271
|
+
runner's engine adapters) keep their whole namespace in the bundle, so no inlined module may hold
|
|
272
|
+
its own package name as a string: the source does not carry one, and the bundle step rewrites
|
|
273
|
+
nothing. The build fails (`foreign_scope_in_bundle`) if `dist/launch.js` or `dist/bin.js` names the
|
|
274
|
+
private scope. `src/bundle.test.ts` packs `publish/` with `pnpm pack` and runs the
|
|
275
|
+
release checks of `scripts/release/pack-packages.mjs` on it (`checkTarballEntries`,
|
|
276
|
+
`checkPackedManifest`, `checkDistContents`), then logs the packed and unpacked sizes. A size budget
|
|
277
|
+
is set from those measurements, not invented (ADR-0016).
|
|
278
|
+
|
|
279
|
+
## Why the externals are pinned here too
|
|
280
|
+
|
|
281
|
+
ESM links every static `import` of a module graph before any of it runs, and the bundle hoists the
|
|
282
|
+
externals of its lazily initialised modules to the top of `dist/launch.js`. So the bundle, run from
|
|
283
|
+
this directory in the repository, needs every external to resolve from `packages/embedded`. This
|
|
284
|
+
manifest therefore pins each staged dependency at the same exact version, and the build fails when
|
|
285
|
+
the two lists differ in either direction.
|
|
286
|
+
|
|
287
|
+
## The knip exception
|
|
288
|
+
|
|
289
|
+
`knip.json` lists, under this workspace's `ignoreDependencies`, the dependencies no file under
|
|
290
|
+
`src/` imports by name: the bundle externals that only inlined members import, and the inlined
|
|
291
|
+
workspace members that are reached only through other members. They are real run-time
|
|
292
|
+
dependencies of the bundle, which knip cannot see. `src/knip-exception.test.ts` holds the list to
|
|
293
|
+
that rule, so it cannot over-ignore: every name in it must be a staged dependency or an inlined
|
|
294
|
+
workspace member.
|
|
295
|
+
|
|
296
|
+
## Declared gap
|
|
297
|
+
|
|
298
|
+
ADR-0082 D5: the first version of a new package is published by hand by the Owner (a
|
|
299
|
+
`0.0.0-bootstrap` placeholder, as for the other five) before a trusted publisher can be
|
|
300
|
+
configured. Until then `npm create @indx-workspace` cannot install this package from the public
|
|
301
|
+
registry, and the publish workflow refuses a `packages-v*` release before publishing any package,
|
|
302
|
+
so no partial lock-step set reaches npm; re-running its publish job after the Owner's step finishes
|
|
303
|
+
the release ([docs/release](../../docs/release/README.md#npm-packages)). CI proves the path from
|
|
304
|
+
tarballs only.
|
|
305
|
+
|
|
306
|
+
Follow-up for the bundle build (S1-10): the Next build inlines `import.meta.url` values and page
|
|
307
|
+
source paths as absolute paths of the build machine into about 200 `dist/web/` files. Nothing reads
|
|
308
|
+
them at run time (the launcher sets `MIGRATIONS_DIR`, and `open` falls back to the system opener),
|
|
309
|
+
but the published tarball names the CI runner's paths and is not reproducible across build hosts.
|