@gencode/server 0.3.4 → 0.3.5

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @gencode/server
2
2
 
3
+ ## 0.3.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 2e8fb89: `aimax-server` now waits for an accepted one-shot run to finish when the process receives SIGTERM or SIGINT, instead of exiting immediately after closing the listener. Deployments that release the container right after receiving the final callback now get a grace window, configurable with `--shutdown-grace-ms` or `AIMAX_SERVER_SHUTDOWN_GRACE_MS`, for final callback diagnostics and run logs under `<dataDir>/.aimax/<sessionStore>/<sessionId>/logs/<messageId>/` to flush before process exit.
8
+
3
9
  ## 0.3.4
4
10
 
5
11
  ### Patch Changes
package/dist/bin.js CHANGED
@@ -1,11 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import{t as e}from"./server-BMS-TOVR.js";function t(e){let t={};for(let a=0;a<e.length;a+=1){let o=e[a];if(o===`--host`){t.host=e[++a];continue}if(o===`--port`){t.port=n(e[++a],`--port`);continue}if(o===`--request-timeout-ms`){t.requestTimeoutMs=r(e[++a],`--request-timeout-ms`);continue}throw(o===`--help`||o===`-h`)&&(i(),process.exit(0)),Error(`Unknown option: ${o}`)}return t}function n(e,t){let n=r(e,t);if(n>65535)throw Error(`Invalid ${t}: ${e}. Must be between 0 and 65535.`);return n}function r(e,t){if(e===void 0||e.trim()===``)throw Error(`Missing value for ${t}`);let n=Number(e);if(!Number.isInteger(n)||n<0)throw Error(`Invalid ${t}: ${e}. Must be a non-negative integer.`);return n}function i(){process.stdout.write(`AIMax one-shot prestart server
2
+ import{t as e}from"./server-BMS-TOVR.js";function t(e){let t=!1;return()=>{t||(t=!0,n(e))}}async function n(e){let t=e.exit??(e=>process.exit(e)),n=e.onLog??(()=>void 0),a=e.graceMs??3e4,o=e.server.getStatus();if(!r(o)){await e.server.stop().catch(e=>{n(`server shutdown stop failed`,{error:String(e),status:o})}),t(0);return}n(`server shutdown signal received; waiting for active run`,{status:o,graceMs:a}),await e.server.stop().catch(e=>{n(`server shutdown stop failed`,{error:String(e),status:o})});let s=await i(e.server.done,a);if(s.timedOut){n(`server shutdown grace period elapsed before run finished`,{status:o,graceMs:a}),t(1);return}n(`server shutdown completed after active run finished`,{status:o,exitCode:s.exitCode}),t(s.exitCode)}function r(e){return e===`running`||e===`draining`}async function i(e,t){let n,r=new Promise(e=>{n=setTimeout(()=>e({timedOut:!0}),t),n.unref?.()});try{return await Promise.race([e.then(e=>({timedOut:!1,exitCode:e.exitCode})),r])}finally{n&&clearTimeout(n)}}function a(e){let t={};for(let n=0;n<e.length;n+=1){let r=e[n];if(r===`--host`){t.host=e[++n];continue}if(r===`--port`){t.port=o(e[++n],`--port`);continue}if(r===`--request-timeout-ms`){t.requestTimeoutMs=s(e[++n],`--request-timeout-ms`);continue}if(r===`--shutdown-grace-ms`){t.shutdownGraceMs=s(e[++n],`--shutdown-grace-ms`);continue}throw(r===`--help`||r===`-h`)&&(c(),process.exit(0)),Error(`Unknown option: ${r}`)}return t}function o(e,t){let n=s(e,t);if(n>65535)throw Error(`Invalid ${t}: ${e}. Must be between 0 and 65535.`);return n}function s(e,t){if(e===void 0||e.trim()===``)throw Error(`Missing value for ${t}`);let n=Number(e);if(!Number.isInteger(n)||n<0)throw Error(`Invalid ${t}: ${e}. Must be a non-negative integer.`);return n}function c(){process.stdout.write(`AIMax one-shot prestart server
3
3
 
4
4
  Usage:
5
- aimax-server [--host 127.0.0.1] [--port 0] [--request-timeout-ms 60000]
5
+ aimax-server [--host 127.0.0.1] [--port 0] [--request-timeout-ms 60000] [--shutdown-grace-ms 30000]
6
6
 
7
7
  Environment:
8
8
  AIMAX_SERVER_HOST
9
9
  AIMAX_SERVER_PORT
10
10
  AIMAX_SERVER_REQUEST_TIMEOUT_MS
11
- `)}async function a(){let i=t(process.argv.slice(2)),a=e({host:i.host??process.env.AIMAX_SERVER_HOST,port:i.port??(process.env.AIMAX_SERVER_PORT?n(process.env.AIMAX_SERVER_PORT,`AIMAX_SERVER_PORT`):void 0),requestTimeoutMs:i.requestTimeoutMs??(process.env.AIMAX_SERVER_REQUEST_TIMEOUT_MS?r(process.env.AIMAX_SERVER_REQUEST_TIMEOUT_MS,`AIMAX_SERVER_REQUEST_TIMEOUT_MS`):void 0),onLog:(e,t)=>{process.stderr.write(`${JSON.stringify({level:`info`,message:e,...t})}\n`)}}),o=()=>{a.stop().finally(()=>{process.exit(0)})};process.once(`SIGTERM`,o),process.once(`SIGINT`,o),await a.start(),process.stdout.write(`${JSON.stringify({type:`aimax_server_ready`,url:a.getUrl(),status:a.getStatus()})}\n`);let s=await a.done;process.exit(s.exitCode)}a().catch(e=>{process.stderr.write(`${JSON.stringify({level:`error`,message:e.message})}\n`),process.exit(1)});export{};
11
+ AIMAX_SERVER_SHUTDOWN_GRACE_MS
12
+ `)}async function l(){let n=a(process.argv.slice(2)),r=e({host:n.host??process.env.AIMAX_SERVER_HOST,port:n.port??(process.env.AIMAX_SERVER_PORT?o(process.env.AIMAX_SERVER_PORT,`AIMAX_SERVER_PORT`):void 0),requestTimeoutMs:n.requestTimeoutMs??(process.env.AIMAX_SERVER_REQUEST_TIMEOUT_MS?s(process.env.AIMAX_SERVER_REQUEST_TIMEOUT_MS,`AIMAX_SERVER_REQUEST_TIMEOUT_MS`):void 0),onLog:(e,t)=>{process.stderr.write(`${JSON.stringify({level:`info`,message:e,...t})}\n`)}}),i=t({server:r,graceMs:n.shutdownGraceMs??(process.env.AIMAX_SERVER_SHUTDOWN_GRACE_MS?s(process.env.AIMAX_SERVER_SHUTDOWN_GRACE_MS,`AIMAX_SERVER_SHUTDOWN_GRACE_MS`):void 0),onLog:(e,t)=>{process.stderr.write(`${JSON.stringify({level:`info`,message:e,...t})}\n`)}});process.once(`SIGTERM`,i),process.once(`SIGINT`,i),await r.start(),process.stdout.write(`${JSON.stringify({type:`aimax_server_ready`,url:r.getUrl(),status:r.getStatus()})}\n`);let c=await r.done;process.exit(c.exitCode)}l().catch(e=>{process.stderr.write(`${JSON.stringify({level:`error`,message:e.message})}\n`),process.exit(1)});export{};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gencode/server",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "aimax-server": "./dist/bin.js"
@@ -19,8 +19,8 @@
19
19
  "access": "public"
20
20
  },
21
21
  "dependencies": {
22
- "@gencode/agents": "0.16.1",
23
- "@gencode/cli": "0.14.2"
22
+ "@gencode/cli": "0.14.2",
23
+ "@gencode/agents": "0.16.1"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/node": "^22.0.0",