github-issue-tower-defence-management 1.85.0 → 1.86.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 CHANGED
@@ -1,3 +1,10 @@
1
+ # [1.86.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.85.0...v1.86.0) (2026-06-18)
2
+
3
+
4
+ ### Features
5
+
6
+ * **console:** add serveConsole CLI subcommand HTTP server skeleton ([#847](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/847)) ([e9442d9](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/e9442d9c1c0f4823c92786a706b30ae30b1d9400)), closes [#844](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/844)
7
+
1
8
  # [1.85.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.84.1...v1.85.0) (2026-06-15)
2
9
 
3
10
 
package/README.md CHANGED
@@ -20,6 +20,7 @@ Commands:
20
20
  startDaemon [options] Start daemon to prepare GitHub issues
21
21
  notifyFinishedIssuePreparation [options] Notify that issue preparation is finished
22
22
  checkIssueReviewReadiness [options] Check whether an issue is review-ready (read-only; does not change Status or post any comment)
23
+ serveConsole [options] Start the local TDPM Console HTTP server
23
24
  help [command] display help for command
24
25
 
25
26
  Options for schedule:
@@ -52,8 +53,15 @@ Options for checkIssueReviewReadiness:
52
53
  --configFilePath <path> Path to config file for tower defence management (required)
53
54
  --issueUrl <url> GitHub issue URL (required)
54
55
  --projectUrl <url> GitHub project URL
56
+
57
+ Options for serveConsole:
58
+ --configFilePath <path> Path to config file for tower defence management (required)
59
+ --port <number> Port for the console HTTP server (default: 9981)
60
+ --consoleDataOutputDir <path> Directory where console data files are written and served from
55
61
  ```
56
62
 
63
+ The `serveConsole` sub-command starts a local HTTP server that serves the TDPM Console. Every response is sent with `Cache-Control: no-store`. Any request path containing a segment that begins with a dot (for example `/.git` or `/.env`) is rejected with HTTP 404. The UI bootstrap assets (HTML and JS) are served without authentication; served `*.json` files and `/api/*` paths require an access token supplied either as the `k` query parameter (`?k=<token>`) or the `X-PV-Token` request header. The access token is read from the `consoleAccessToken` config value and never appears on the command line. This phase delivers only the server skeleton: the data files and the `/api/*` read and operation handlers are added in later phases, so an authenticated `/api/*` request currently passes the token gate and then returns 404. When the built UI bundle directory (`ui-dist`) is absent the server still starts and serves a minimal placeholder index for `/` and `/index.html`.
64
+
57
65
  The `checkIssueReviewReadiness` sub-command lets an agent self-check whether an issue is currently review-ready. It does NOT change the issue Status field and does NOT post any comment. It writes a single JSON line to stdout of the shape `{ "reviewReady": boolean, "rejections": [{ "type": string, "detail": string }] }` and exits 0 on a successful evaluation regardless of readiness; a non-zero exit indicates an operational error (auth failure, network error). The rejection types include: `ISSUE_NOT_FOUND`, `NO_REPORT_FROM_AGENT_BOT`, `REPORT_HAS_NEXT_STEP`, `PULL_REQUEST_NOT_FOUND`, `PULL_REQUEST_IS_DRAFT`, `PULL_REQUEST_CONFLICTED`, `ANY_CI_JOB_FAILED_OR_IN_PROGRESS`, `REQUIRED_CI_JOB_NEVER_STARTED`, `ANY_REVIEW_COMMENT_NOT_RESOLVED`, and `MULTIPLE_PULL_REQUESTS_FOUND`. The `--projectUrl` option is optional; when omitted the command still runs using only the issue URL.
58
66
 
59
67
  ## Example 📖
@@ -80,6 +88,10 @@ npx github-issue-tower-defence-management notifyFinishedIssuePreparation --confi
80
88
  npx github-issue-tower-defence-management checkIssueReviewReadiness --configFilePath ./preparator-config.yml --issueUrl https://github.com/HiromiShikata/test-repository/issues/1
81
89
  ```
82
90
 
91
+ ```
92
+ npx github-issue-tower-defence-management serveConsole --configFilePath ./preparator-config.yml --port 9981
93
+ ```
94
+
83
95
  ## Config
84
96
 
85
97
  ### Schedule Command Config
@@ -58,6 +58,8 @@ const NodeLocalCommandRunner_1 = require("../../repositories/NodeLocalCommandRun
58
58
  const GitHubIssueCommentRepository_1 = require("../../repositories/GitHubIssueCommentRepository");
59
59
  const FetchWebhookRepository_1 = require("../../repositories/FetchWebhookRepository");
60
60
  const RevertOrphanedPreparationUseCase_1 = require("../../../domain/usecases/RevertOrphanedPreparationUseCase");
61
+ const path = __importStar(require("path"));
62
+ const consoleServer_1 = require("../console/consoleServer");
61
63
  const buildGithubRepositoryParams = (localStorageRepository, token) => [
62
64
  localStorageRepository,
63
65
  token,
@@ -340,6 +342,41 @@ exports.program
340
342
  });
341
343
  process.stdout.write(`${JSON.stringify(result)}\n`);
342
344
  });
345
+ exports.program
346
+ .command('serveConsole')
347
+ .description('Start the local TDPM Console HTTP server')
348
+ .requiredOption('--configFilePath <path>', 'Path to config file for tower defence management')
349
+ .option('--port <number>', `Port for the console HTTP server (default: ${consoleServer_1.DEFAULT_CONSOLE_PORT})`)
350
+ .option('--consoleDataOutputDir <path>', 'Directory where console data files are written and served from')
351
+ .action(async (options) => {
352
+ const config = (0, projectConfig_2.loadConfigFile)(options.configFilePath);
353
+ const accessToken = config.consoleAccessToken;
354
+ if (!accessToken) {
355
+ console.error('consoleAccessToken is required. Provide it via the config file.');
356
+ process.exit(1);
357
+ }
358
+ let port = consoleServer_1.DEFAULT_CONSOLE_PORT;
359
+ if (options.port !== undefined) {
360
+ const parsedPort = Number(options.port);
361
+ if (!Number.isFinite(parsedPort) ||
362
+ !Number.isInteger(parsedPort) ||
363
+ parsedPort <= 0 ||
364
+ parsedPort > 65535) {
365
+ console.error('Invalid value for --port. It must be a positive integer between 1 and 65535.');
366
+ process.exit(1);
367
+ }
368
+ port = parsedPort;
369
+ }
370
+ const uiDistDir = path.join(__dirname, 'ui-dist');
371
+ const consoleDataOutputDir = options.consoleDataOutputDir ?? null;
372
+ await (0, consoleServer_1.startConsoleServer)({
373
+ accessToken,
374
+ uiDistDir,
375
+ consoleDataOutputDir,
376
+ port,
377
+ });
378
+ console.log(`TDPM Console server listening on port ${port}`);
379
+ });
343
380
  /* istanbul ignore next */
344
381
  if (process.argv && require.main === module) {
345
382
  exports.program.parse(process.argv);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":"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"}
@@ -122,6 +122,7 @@ const loadConfigFile = (configFilePath) => {
122
122
  awLogStaleThresholdMinutes: getNumberValue(parsed, 'awLogStaleThresholdMinutes'),
123
123
  labelsAsLlmAgentName: getStringArrayValue(parsed, 'labelsAsLlmAgentName'),
124
124
  changeTargetPathAliases: getStringRecordValue(parsed, 'changeTargetPathAliases'),
125
+ consoleAccessToken: getStringValue(parsed, 'consoleAccessToken'),
125
126
  };
126
127
  }
127
128
  catch (error) {
@@ -232,6 +233,7 @@ const mergeConfigs = (configFile, cliOverrides, readmeOverrides) => ({
232
233
  changeTargetPathAliases: readmeOverrides.changeTargetPathAliases ??
233
234
  cliOverrides.changeTargetPathAliases ??
234
235
  configFile.changeTargetPathAliases,
236
+ consoleAccessToken: cliOverrides.consoleAccessToken ?? configFile.consoleAccessToken,
235
237
  });
236
238
  exports.mergeConfigs = mergeConfigs;
237
239
  const isGraphqlProjectV2ReadmeResponse = (value) => {
@@ -1 +1 @@
1
- {"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/projectConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,uCAAyB;AAwBzB,MAAM,cAAc,GAAG,CACrB,GAA4B,EAC5B,GAAW,EACS,EAAE;IACtB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,GAA4B,EAC5B,GAAW,EACS,EAAE;IACtB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,GAA4B,EAC5B,GAAW,EACyB,EAAE;IACtC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,GAA4B,EAC5B,GAAW,EACW,EAAE;IACxB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC3E,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAD1D,QAAA,QAAQ,YACkD;AAEvE,MAAM,4BAA4B,GAAG;IACnC,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,6BAA6B;IAC7B,wBAAwB;IACxB,gCAAgC;IAChC,qBAAqB;IACrB,wBAAwB;IACxB,mCAAmC;IACnC,gCAAgC;IAChC,qBAAqB;IACrB,kCAAkC;IAClC,oBAAoB;IACpB,4BAA4B;IAC5B,yBAAyB;CACjB,CAAC;AAEJ,MAAM,cAAc,GAAG,CAAC,cAAsB,EAAc,EAAE;IACnE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,MAAM,GAAY,cAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAA,gBAAQ,EAAC,MAAM,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL,UAAU,EAAE,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC;YAChD,gBAAgB,EAAE,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC;YAC5D,mBAAmB,EAAE,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC;YAClE,oBAAoB,EAAE,cAAc,CAAC,MAAM,EAAE,sBAAsB,CAAC;YACpE,mBAAmB,EAAE,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC;YAClE,2BAA2B,EAAE,cAAc,CACzC,MAAM,EACN,6BAA6B,CAC9B;YACD,sBAAsB,EAAE,cAAc,CAAC,MAAM,EAAE,wBAAwB,CAAC;YACxE,8BAA8B,EAAE,cAAc,CAC5C,MAAM,EACN,gCAAgC,CACjC;YACD,mBAAmB,EAAE,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC;YAClE,sBAAsB,EAAE,cAAc,CAAC,MAAM,EAAE,wBAAwB,CAAC;YACxE,iCAAiC,EAAE,cAAc,CAC/C,MAAM,EACN,mCAAmC,CACpC;YACD,WAAW,EAAE,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC;YAClD,8BAA8B,EAAE,cAAc,CAC5C,MAAM,EACN,gCAAgC,CACjC;YACD,mBAAmB,EAAE,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,CAAC;YACvE,gCAAgC,EAAE,cAAc,CAC9C,MAAM,EACN,kCAAkC,CACnC;YACD,kBAAkB,EAAE,cAAc,CAAC,MAAM,EAAE,oBAAoB,CAAC;YAChE,0BAA0B,EAAE,cAAc,CACxC,MAAM,EACN,4BAA4B,CAC7B;YACD,oBAAoB,EAAE,mBAAmB,CAAC,MAAM,EAAE,sBAAsB,CAAC;YACzE,uBAAuB,EAAE,oBAAoB,CAC3C,MAAM,EACN,yBAAyB,CAC1B;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CACX,sCAAsC,cAAc,MAAM,OAAO,EAAE,CACpE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAxDW,QAAA,cAAc,kBAwDzB;AAEK,MAAM,wBAAwB,GAAG,CACtC,MAAc,EACd,UAAmB,EACP,EAAE;IACd,MAAM,YAAY,GAChB,8DAA8D,CAAC;IACjE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,cAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,IAAA,gBAAQ,EAAC,MAAM,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,4BAA4B,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CACV,gBAAgB,GAAG,qCAAqC,gBAAgB,EAAE,CAC3E,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO;YACL,gBAAgB,EAAE,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC;YAC5D,mBAAmB,EAAE,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC;YAClE,oBAAoB,EAAE,cAAc,CAAC,MAAM,EAAE,sBAAsB,CAAC;YACpE,mBAAmB,EAAE,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC;YAClE,2BAA2B,EAAE,cAAc,CACzC,MAAM,EACN,6BAA6B,CAC9B;YACD,sBAAsB,EAAE,cAAc,CAAC,MAAM,EAAE,wBAAwB,CAAC;YACxE,8BAA8B,EAAE,cAAc,CAC5C,MAAM,EACN,gCAAgC,CACjC;YACD,mBAAmB,EAAE,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC;YAClE,sBAAsB,EAAE,cAAc,CAAC,MAAM,EAAE,wBAAwB,CAAC;YACxE,iCAAiC,EAAE,cAAc,CAC/C,MAAM,EACN,mCAAmC,CACpC;YACD,8BAA8B,EAAE,cAAc,CAC5C,MAAM,EACN,gCAAgC,CACjC;YACD,mBAAmB,EAAE,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,CAAC;YACvE,gCAAgC,EAAE,cAAc,CAC9C,MAAM,EACN,kCAAkC,CACnC;YACD,kBAAkB,EAAE,cAAc,CAAC,MAAM,EAAE,oBAAoB,CAAC;YAChE,0BAA0B,EAAE,cAAc,CACxC,MAAM,EACN,4BAA4B,CAC7B;YACD,uBAAuB,EAAE,oBAAoB,CAC3C,MAAM,EACN,yBAAyB,CAC1B;SACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACxE,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAvEW,QAAA,wBAAwB,4BAuEnC;AAEK,MAAM,YAAY,GAAG,CAC1B,UAAsB,EACtB,YAAwB,EACxB,eAA2B,EACf,EAAE,CAAC,CAAC;IAChB,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU;IAC5D,gBAAgB,EACd,eAAe,CAAC,gBAAgB;QAChC,YAAY,CAAC,gBAAgB;QAC7B,UAAU,CAAC,gBAAgB;IAC7B,mBAAmB,EACjB,eAAe,CAAC,mBAAmB;QACnC,YAAY,CAAC,mBAAmB;QAChC,UAAU,CAAC,mBAAmB;IAChC,oBAAoB,EAClB,eAAe,CAAC,oBAAoB;QACpC,YAAY,CAAC,oBAAoB;QACjC,UAAU,CAAC,oBAAoB;IACjC,mBAAmB,EACjB,eAAe,CAAC,mBAAmB;QACnC,YAAY,CAAC,mBAAmB;QAChC,UAAU,CAAC,mBAAmB;IAChC,2BAA2B,EACzB,eAAe,CAAC,2BAA2B;QAC3C,YAAY,CAAC,2BAA2B;QACxC,UAAU,CAAC,2BAA2B;IACxC,sBAAsB,EACpB,eAAe,CAAC,sBAAsB;QACtC,YAAY,CAAC,sBAAsB;QACnC,UAAU,CAAC,sBAAsB;IACnC,8BAA8B,EAC5B,eAAe,CAAC,8BAA8B;QAC9C,YAAY,CAAC,8BAA8B;QAC3C,UAAU,CAAC,8BAA8B;IAC3C,mBAAmB,EACjB,eAAe,CAAC,mBAAmB;QACnC,YAAY,CAAC,mBAAmB;QAChC,UAAU,CAAC,mBAAmB;IAChC,sBAAsB,EACpB,eAAe,CAAC,sBAAsB;QACtC,YAAY,CAAC,sBAAsB;QACnC,UAAU,CAAC,sBAAsB;IACnC,iCAAiC,EAC/B,eAAe,CAAC,iCAAiC;QACjD,YAAY,CAAC,iCAAiC;QAC9C,UAAU,CAAC,iCAAiC;IAC9C,WAAW,EAAE,UAAU,CAAC,WAAW;IACnC,8BAA8B,EAC5B,eAAe,CAAC,8BAA8B;QAC9C,YAAY,CAAC,8BAA8B;QAC3C,UAAU,CAAC,8BAA8B;IAC3C,mBAAmB,EACjB,eAAe,CAAC,mBAAmB;QACnC,YAAY,CAAC,mBAAmB;QAChC,UAAU,CAAC,mBAAmB;IAChC,gCAAgC,EAC9B,eAAe,CAAC,gCAAgC;QAChD,YAAY,CAAC,gCAAgC;QAC7C,UAAU,CAAC,gCAAgC;IAC7C,kBAAkB,EAChB,eAAe,CAAC,kBAAkB;QAClC,YAAY,CAAC,kBAAkB;QAC/B,UAAU,CAAC,kBAAkB;IAC/B,0BAA0B,EACxB,eAAe,CAAC,0BAA0B;QAC1C,YAAY,CAAC,0BAA0B;QACvC,UAAU,CAAC,0BAA0B;IACvC,oBAAoB,EAClB,eAAe,CAAC,oBAAoB;QACpC,YAAY,CAAC,oBAAoB;QACjC,UAAU,CAAC,oBAAoB;IACjC,uBAAuB,EACrB,eAAe,CAAC,uBAAuB;QACvC,YAAY,CAAC,uBAAuB;QACpC,UAAU,CAAC,uBAAuB;CACrC,CAAC,CAAC;AA3EU,QAAA,YAAY,gBA2EtB;AASH,MAAM,gCAAgC,GAAG,CACvC,KAAc,EAC2B,EAAE;IAC3C,IAAI,CAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,KAAK,EACrC,UAAkB,EAClB,KAAa,EACW,EAAE;IAC1B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE5C,MAAM,KAAK,GAAG;;;;;;;;;;;;;KAab,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gCAAgC,EAAE;YAC7D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE;aAC5C,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,YAAY,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEpD,IAAI,CAAC,gCAAgC,CAAC,YAAY,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC;QACrE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;QAC9D,MAAM,MAAM,GACV,OAAO,SAAS,KAAK,QAAQ;YAC3B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,UAAU,KAAK,QAAQ;gBAC9B,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,IAAI,CAAC;QAEb,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AA7DW,QAAA,kBAAkB,sBA6D7B"}
1
+ {"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/projectConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.startConsoleServer = exports.createConsoleServer = exports.handleConsoleRequest = exports.extractProvidedToken = exports.isTokenValid = exports.requiresToken = exports.hasDotSegment = exports.CONSOLE_TOKEN_HEADER = exports.DEFAULT_CONSOLE_PORT = void 0;
37
+ const http = __importStar(require("http"));
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ exports.DEFAULT_CONSOLE_PORT = 9981;
41
+ exports.CONSOLE_TOKEN_HEADER = 'x-pv-token';
42
+ const PLACEHOLDER_INDEX_HTML = `<!DOCTYPE html>
43
+ <html lang="en">
44
+ <head>
45
+ <meta charset="utf-8" />
46
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
47
+ <title>TDPM Console</title>
48
+ </head>
49
+ <body>
50
+ <main>
51
+ <h1>TDPM Console</h1>
52
+ <p>The console UI bundle has not been built yet.</p>
53
+ </main>
54
+ </body>
55
+ </html>
56
+ `;
57
+ const MIME_TYPES = {
58
+ '.html': 'text/html; charset=utf-8',
59
+ '.js': 'text/javascript; charset=utf-8',
60
+ '.mjs': 'text/javascript; charset=utf-8',
61
+ '.css': 'text/css; charset=utf-8',
62
+ '.json': 'application/json; charset=utf-8',
63
+ '.svg': 'image/svg+xml',
64
+ '.png': 'image/png',
65
+ '.jpg': 'image/jpeg',
66
+ '.jpeg': 'image/jpeg',
67
+ '.gif': 'image/gif',
68
+ '.ico': 'image/x-icon',
69
+ '.map': 'application/json; charset=utf-8',
70
+ '.woff': 'font/woff',
71
+ '.woff2': 'font/woff2',
72
+ };
73
+ const hasDotSegment = (requestPath) => requestPath
74
+ .split('/')
75
+ .some((segment) => segment.length > 0 && segment.startsWith('.'));
76
+ exports.hasDotSegment = hasDotSegment;
77
+ const requiresToken = (requestPath) => requestPath.startsWith('/api/') ||
78
+ requestPath === '/api' ||
79
+ requestPath.endsWith('.json');
80
+ exports.requiresToken = requiresToken;
81
+ const isTokenValid = (expectedToken, providedToken) => providedToken !== null && providedToken === expectedToken;
82
+ exports.isTokenValid = isTokenValid;
83
+ const extractProvidedToken = (queryToken, headerToken) => {
84
+ if (typeof queryToken === 'string' && queryToken.length > 0) {
85
+ return queryToken;
86
+ }
87
+ if (typeof headerToken === 'string' && headerToken.length > 0) {
88
+ return headerToken;
89
+ }
90
+ return null;
91
+ };
92
+ exports.extractProvidedToken = extractProvidedToken;
93
+ const contentTypeForPath = (filePath) => {
94
+ const extension = path.extname(filePath).toLowerCase();
95
+ return MIME_TYPES[extension] ?? 'application/octet-stream';
96
+ };
97
+ const resolveStaticFilePath = (uiDistDir, requestPath) => {
98
+ const relativePath = requestPath === '/' ? '/index.html' : requestPath;
99
+ const normalized = path
100
+ .normalize(relativePath)
101
+ .replace(/^(\.\.(\/|\\|$))+/, '');
102
+ const candidate = path.join(uiDistDir, normalized);
103
+ const resolvedRoot = path.resolve(uiDistDir);
104
+ const resolvedCandidate = path.resolve(candidate);
105
+ if (resolvedCandidate !== resolvedRoot &&
106
+ !resolvedCandidate.startsWith(resolvedRoot + path.sep)) {
107
+ return null;
108
+ }
109
+ return resolvedCandidate;
110
+ };
111
+ const readStaticFile = (filePath) => {
112
+ try {
113
+ const stat = fs.statSync(filePath);
114
+ if (!stat.isFile()) {
115
+ return null;
116
+ }
117
+ return fs.readFileSync(filePath);
118
+ }
119
+ catch {
120
+ return null;
121
+ }
122
+ };
123
+ const sendNotFound = (response) => {
124
+ response.writeHead(404, {
125
+ 'Content-Type': 'text/plain; charset=utf-8',
126
+ 'Cache-Control': 'no-store',
127
+ });
128
+ response.end('Not Found');
129
+ };
130
+ const sendUnauthorized = (response) => {
131
+ response.writeHead(401, {
132
+ 'Content-Type': 'text/plain; charset=utf-8',
133
+ 'Cache-Control': 'no-store',
134
+ });
135
+ response.end('Unauthorized');
136
+ };
137
+ const serveBootstrapIndex = (response) => {
138
+ response.writeHead(200, {
139
+ 'Content-Type': 'text/html; charset=utf-8',
140
+ 'Cache-Control': 'no-store',
141
+ });
142
+ response.end(PLACEHOLDER_INDEX_HTML);
143
+ };
144
+ const handleConsoleRequest = (options, request, response) => {
145
+ const requestUrl = new URL(request.url ?? '/', 'http://localhost');
146
+ const requestPath = requestUrl.pathname;
147
+ if ((0, exports.hasDotSegment)(requestPath)) {
148
+ sendNotFound(response);
149
+ return;
150
+ }
151
+ if ((0, exports.requiresToken)(requestPath)) {
152
+ const providedToken = (0, exports.extractProvidedToken)(requestUrl.searchParams.get('k'), request.headers[exports.CONSOLE_TOKEN_HEADER]);
153
+ if (!(0, exports.isTokenValid)(options.accessToken, providedToken)) {
154
+ sendUnauthorized(response);
155
+ return;
156
+ }
157
+ sendNotFound(response);
158
+ return;
159
+ }
160
+ if (requestPath === '/' || requestPath === '/index.html') {
161
+ const indexFilePath = resolveStaticFilePath(options.uiDistDir, '/index.html');
162
+ const indexContent = indexFilePath === null ? null : readStaticFile(indexFilePath);
163
+ if (indexContent === null) {
164
+ serveBootstrapIndex(response);
165
+ return;
166
+ }
167
+ response.writeHead(200, {
168
+ 'Content-Type': 'text/html; charset=utf-8',
169
+ 'Cache-Control': 'no-store',
170
+ });
171
+ response.end(indexContent);
172
+ return;
173
+ }
174
+ const staticFilePath = resolveStaticFilePath(options.uiDistDir, requestPath);
175
+ if (staticFilePath === null) {
176
+ sendNotFound(response);
177
+ return;
178
+ }
179
+ const staticContent = readStaticFile(staticFilePath);
180
+ if (staticContent === null) {
181
+ sendNotFound(response);
182
+ return;
183
+ }
184
+ response.writeHead(200, {
185
+ 'Content-Type': contentTypeForPath(staticFilePath),
186
+ 'Cache-Control': 'no-store',
187
+ });
188
+ response.end(staticContent);
189
+ };
190
+ exports.handleConsoleRequest = handleConsoleRequest;
191
+ const createConsoleServer = (options) => http.createServer((request, response) => {
192
+ (0, exports.handleConsoleRequest)(options, request, response);
193
+ });
194
+ exports.createConsoleServer = createConsoleServer;
195
+ const startConsoleServer = (options) => new Promise((resolve, reject) => {
196
+ const server = (0, exports.createConsoleServer)(options);
197
+ server.once('error', reject);
198
+ server.listen(options.port, () => {
199
+ server.removeListener('error', reject);
200
+ resolve(server);
201
+ });
202
+ });
203
+ exports.startConsoleServer = startConsoleServer;
204
+ //# sourceMappingURL=consoleServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consoleServer.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/consoleServer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-issue-tower-defence-management",
3
- "version": "1.85.0",
3
+ "version": "1.86.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -60,6 +60,25 @@ jest.mock('../handlers/HandleScheduledEventUseCaseHandler', () => ({
60
60
  handle: jest.fn().mockResolvedValue(null),
61
61
  })),
62
62
  }));
63
+ import type { StartConsoleServerOptions } from '../console/consoleServer';
64
+
65
+ const mockStartConsoleServer = jest
66
+ .fn<Promise<unknown>, [StartConsoleServerOptions]>()
67
+ .mockResolvedValue({
68
+ close: jest.fn(),
69
+ address: jest.fn().mockReturnValue({ port: 9981 }),
70
+ });
71
+ jest.mock('../console/consoleServer', () => {
72
+ const actual: Record<string, unknown> = jest.requireActual(
73
+ '../console/consoleServer',
74
+ );
75
+ return {
76
+ ...actual,
77
+ startConsoleServer: (
78
+ options: StartConsoleServerOptions,
79
+ ): Promise<unknown> => mockStartConsoleServer(options),
80
+ };
81
+ });
63
82
 
64
83
  describe('CLI', () => {
65
84
  const originalEnv = process.env;
@@ -1644,4 +1663,111 @@ mysteryKey: 'value'
1644
1663
  processExitSpy.mockRestore();
1645
1664
  });
1646
1665
  });
1666
+
1667
+ describe('serveConsole', () => {
1668
+ it('should appear in the CLI help output', () => {
1669
+ const helpText = program.helpInformation();
1670
+ expect(helpText).toContain('serveConsole');
1671
+ });
1672
+
1673
+ it('should start the server on the default port 9981 when --port is omitted', async () => {
1674
+ writeConfig({ ...defaultConfig, consoleAccessToken: 'config-token' });
1675
+ const logSpy = jest.spyOn(console, 'log').mockImplementation();
1676
+
1677
+ await program.parseAsync([
1678
+ 'node',
1679
+ 'test',
1680
+ 'serveConsole',
1681
+ '--configFilePath',
1682
+ configFilePath,
1683
+ ]);
1684
+
1685
+ expect(mockStartConsoleServer).toHaveBeenCalledTimes(1);
1686
+ const callArg = mockStartConsoleServer.mock.calls[0][0];
1687
+ expect(callArg.port).toBe(9981);
1688
+ expect(callArg.accessToken).toBe('config-token');
1689
+ expect(callArg.consoleDataOutputDir).toBeNull();
1690
+ expect(typeof callArg.uiDistDir).toBe('string');
1691
+
1692
+ logSpy.mockRestore();
1693
+ });
1694
+
1695
+ it('should use the provided --port and --consoleDataOutputDir', async () => {
1696
+ writeConfig({ ...defaultConfig, consoleAccessToken: 'config-token' });
1697
+ const logSpy = jest.spyOn(console, 'log').mockImplementation();
1698
+
1699
+ await program.parseAsync([
1700
+ 'node',
1701
+ 'test',
1702
+ 'serveConsole',
1703
+ '--configFilePath',
1704
+ configFilePath,
1705
+ '--port',
1706
+ '12345',
1707
+ '--consoleDataOutputDir',
1708
+ '/tmp/console-data',
1709
+ ]);
1710
+
1711
+ const callArg = mockStartConsoleServer.mock.calls[0][0];
1712
+ expect(callArg.port).toBe(12345);
1713
+ expect(callArg.consoleDataOutputDir).toBe('/tmp/console-data');
1714
+
1715
+ logSpy.mockRestore();
1716
+ });
1717
+
1718
+ it('should exit with error when consoleAccessToken is missing from config', async () => {
1719
+ writeConfig(defaultConfig);
1720
+ const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation();
1721
+ const processExitSpy = jest
1722
+ .spyOn(process, 'exit')
1723
+ .mockImplementation(() => {
1724
+ throw new Error('process.exit called');
1725
+ });
1726
+
1727
+ await expect(
1728
+ program.parseAsync([
1729
+ 'node',
1730
+ 'test',
1731
+ 'serveConsole',
1732
+ '--configFilePath',
1733
+ configFilePath,
1734
+ ]),
1735
+ ).rejects.toThrow('process.exit called');
1736
+
1737
+ expect(consoleErrorSpy).toHaveBeenCalledWith(
1738
+ 'consoleAccessToken is required. Provide it via the config file.',
1739
+ );
1740
+ expect(processExitSpy).toHaveBeenCalledWith(1);
1741
+
1742
+ consoleErrorSpy.mockRestore();
1743
+ processExitSpy.mockRestore();
1744
+ });
1745
+
1746
+ it('should exit with error for an invalid --port value', async () => {
1747
+ writeConfig({ ...defaultConfig, consoleAccessToken: 'config-token' });
1748
+ const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation();
1749
+ const processExitSpy = jest
1750
+ .spyOn(process, 'exit')
1751
+ .mockImplementation(() => {
1752
+ throw new Error('process.exit called');
1753
+ });
1754
+
1755
+ await expect(
1756
+ program.parseAsync([
1757
+ 'node',
1758
+ 'test',
1759
+ 'serveConsole',
1760
+ '--configFilePath',
1761
+ configFilePath,
1762
+ '--port',
1763
+ 'not-a-number',
1764
+ ]),
1765
+ ).rejects.toThrow('process.exit called');
1766
+
1767
+ expect(processExitSpy).toHaveBeenCalledWith(1);
1768
+
1769
+ consoleErrorSpy.mockRestore();
1770
+ processExitSpy.mockRestore();
1771
+ });
1772
+ });
1647
1773
  });
@@ -31,6 +31,11 @@ import { NodeLocalCommandRunner } from '../../repositories/NodeLocalCommandRunne
31
31
  import { GitHubIssueCommentRepository } from '../../repositories/GitHubIssueCommentRepository';
32
32
  import { FetchWebhookRepository } from '../../repositories/FetchWebhookRepository';
33
33
  import { RevertOrphanedPreparationUseCase } from '../../../domain/usecases/RevertOrphanedPreparationUseCase';
34
+ import * as path from 'path';
35
+ import {
36
+ DEFAULT_CONSOLE_PORT,
37
+ startConsoleServer,
38
+ } from '../console/consoleServer';
34
39
 
35
40
  type StartDaemonOptions = {
36
41
  projectUrl?: string;
@@ -60,6 +65,12 @@ type CheckIssueReviewReadinessOptions = {
60
65
  configFilePath: string;
61
66
  };
62
67
 
68
+ type ServeConsoleOptions = {
69
+ configFilePath: string;
70
+ port?: string;
71
+ consoleDataOutputDir?: string;
72
+ };
73
+
63
74
  const buildGithubRepositoryParams = (
64
75
  localStorageRepository: LocalStorageRepository,
65
76
  token: string,
@@ -554,6 +565,61 @@ program
554
565
  process.stdout.write(`${JSON.stringify(result)}\n`);
555
566
  });
556
567
 
568
+ program
569
+ .command('serveConsole')
570
+ .description('Start the local TDPM Console HTTP server')
571
+ .requiredOption(
572
+ '--configFilePath <path>',
573
+ 'Path to config file for tower defence management',
574
+ )
575
+ .option(
576
+ '--port <number>',
577
+ `Port for the console HTTP server (default: ${DEFAULT_CONSOLE_PORT})`,
578
+ )
579
+ .option(
580
+ '--consoleDataOutputDir <path>',
581
+ 'Directory where console data files are written and served from',
582
+ )
583
+ .action(async (options: ServeConsoleOptions) => {
584
+ const config = loadConfigFile(options.configFilePath);
585
+
586
+ const accessToken = config.consoleAccessToken;
587
+ if (!accessToken) {
588
+ console.error(
589
+ 'consoleAccessToken is required. Provide it via the config file.',
590
+ );
591
+ process.exit(1);
592
+ }
593
+
594
+ let port = DEFAULT_CONSOLE_PORT;
595
+ if (options.port !== undefined) {
596
+ const parsedPort = Number(options.port);
597
+ if (
598
+ !Number.isFinite(parsedPort) ||
599
+ !Number.isInteger(parsedPort) ||
600
+ parsedPort <= 0 ||
601
+ parsedPort > 65535
602
+ ) {
603
+ console.error(
604
+ 'Invalid value for --port. It must be a positive integer between 1 and 65535.',
605
+ );
606
+ process.exit(1);
607
+ }
608
+ port = parsedPort;
609
+ }
610
+
611
+ const uiDistDir = path.join(__dirname, 'ui-dist');
612
+ const consoleDataOutputDir = options.consoleDataOutputDir ?? null;
613
+
614
+ await startConsoleServer({
615
+ accessToken,
616
+ uiDistDir,
617
+ consoleDataOutputDir,
618
+ port,
619
+ });
620
+ console.log(`TDPM Console server listening on port ${port}`);
621
+ });
622
+
557
623
  /* istanbul ignore next */
558
624
  if (process.argv && require.main === module) {
559
625
  program.parse(process.argv);
@@ -21,6 +21,7 @@ export type ConfigFile = {
21
21
  awLogStaleThresholdMinutes?: number;
22
22
  labelsAsLlmAgentName?: string[];
23
23
  changeTargetPathAliases?: Record<string, string>;
24
+ consoleAccessToken?: string;
24
25
  };
25
26
 
26
27
  const getStringValue = (
@@ -145,6 +146,7 @@ export const loadConfigFile = (configFilePath: string): ConfigFile => {
145
146
  parsed,
146
147
  'changeTargetPathAliases',
147
148
  ),
149
+ consoleAccessToken: getStringValue(parsed, 'consoleAccessToken'),
148
150
  };
149
151
  } catch (error) {
150
152
  const message = error instanceof Error ? error.message : String(error);
@@ -303,6 +305,8 @@ export const mergeConfigs = (
303
305
  readmeOverrides.changeTargetPathAliases ??
304
306
  cliOverrides.changeTargetPathAliases ??
305
307
  configFile.changeTargetPathAliases,
308
+ consoleAccessToken:
309
+ cliOverrides.consoleAccessToken ?? configFile.consoleAccessToken,
306
310
  });
307
311
 
308
312
  type GraphqlProjectV2ReadmeResponse = {
@@ -0,0 +1,297 @@
1
+ import * as http from 'http';
2
+ import * as fs from 'fs';
3
+ import * as os from 'os';
4
+ import * as path from 'path';
5
+ import {
6
+ DEFAULT_CONSOLE_PORT,
7
+ CONSOLE_TOKEN_HEADER,
8
+ hasDotSegment,
9
+ requiresToken,
10
+ isTokenValid,
11
+ extractProvidedToken,
12
+ startConsoleServer,
13
+ } from './consoleServer';
14
+
15
+ describe('consoleServer pure helpers', () => {
16
+ describe('DEFAULT_CONSOLE_PORT', () => {
17
+ it('is 9981', () => {
18
+ expect(DEFAULT_CONSOLE_PORT).toBe(9981);
19
+ });
20
+ });
21
+
22
+ describe('hasDotSegment', () => {
23
+ it('returns true for a top-level dot segment', () => {
24
+ expect(hasDotSegment('/.git')).toBe(true);
25
+ expect(hasDotSegment('/.env')).toBe(true);
26
+ });
27
+
28
+ it('returns true for a nested dot segment', () => {
29
+ expect(hasDotSegment('/foo/.bar')).toBe(true);
30
+ expect(hasDotSegment('/a/b/.hidden/c')).toBe(true);
31
+ });
32
+
33
+ it('returns false for paths without dot segments', () => {
34
+ expect(hasDotSegment('/')).toBe(false);
35
+ expect(hasDotSegment('/index.html')).toBe(false);
36
+ expect(hasDotSegment('/assets/app.js')).toBe(false);
37
+ expect(hasDotSegment('/api/itembody')).toBe(false);
38
+ });
39
+ });
40
+
41
+ describe('requiresToken', () => {
42
+ it('requires a token for .json paths', () => {
43
+ expect(requiresToken('/data/situation.json')).toBe(true);
44
+ });
45
+
46
+ it('requires a token for /api/* paths', () => {
47
+ expect(requiresToken('/api/review')).toBe(true);
48
+ expect(requiresToken('/api')).toBe(true);
49
+ });
50
+
51
+ it('does not require a token for bootstrap assets', () => {
52
+ expect(requiresToken('/')).toBe(false);
53
+ expect(requiresToken('/index.html')).toBe(false);
54
+ expect(requiresToken('/assets/app.js')).toBe(false);
55
+ });
56
+ });
57
+
58
+ describe('isTokenValid', () => {
59
+ it('accepts a matching token', () => {
60
+ expect(isTokenValid('expected', 'expected')).toBe(true);
61
+ });
62
+
63
+ it('rejects a missing or mismatched token', () => {
64
+ expect(isTokenValid('expected', null)).toBe(false);
65
+ expect(isTokenValid('expected', 'other')).toBe(false);
66
+ expect(isTokenValid('expected', '')).toBe(false);
67
+ });
68
+ });
69
+
70
+ describe('extractProvidedToken', () => {
71
+ it('prefers the query token', () => {
72
+ expect(extractProvidedToken('fromQuery', 'fromHeader')).toBe('fromQuery');
73
+ });
74
+
75
+ it('falls back to the header token', () => {
76
+ expect(extractProvidedToken(null, 'fromHeader')).toBe('fromHeader');
77
+ });
78
+
79
+ it('returns null when neither is present', () => {
80
+ expect(extractProvidedToken(null, undefined)).toBeNull();
81
+ expect(extractProvidedToken('', undefined)).toBeNull();
82
+ });
83
+ });
84
+ });
85
+
86
+ describe('consoleServer integration', () => {
87
+ const testToken = 'integration-test-token-value';
88
+
89
+ const requestServer = (
90
+ server: http.Server,
91
+ requestPath: string,
92
+ headers: http.OutgoingHttpHeaders = {},
93
+ ): Promise<{
94
+ statusCode: number;
95
+ body: string;
96
+ cacheControl: string | undefined;
97
+ contentType: string | undefined;
98
+ }> => {
99
+ const address = server.address();
100
+ if (address === null || typeof address === 'string') {
101
+ throw new Error('server is not listening on a TCP port');
102
+ }
103
+ const port = address.port;
104
+ return new Promise((resolve, reject) => {
105
+ const request = http.request(
106
+ { host: '127.0.0.1', port, path: requestPath, headers },
107
+ (response) => {
108
+ const chunks: Uint8Array[] = [];
109
+ response.on('data', (chunk: Uint8Array) => chunks.push(chunk));
110
+ response.on('end', () => {
111
+ resolve({
112
+ statusCode: response.statusCode ?? 0,
113
+ body: Buffer.concat(chunks).toString('utf-8'),
114
+ cacheControl: response.headers['cache-control'],
115
+ contentType: response.headers['content-type'],
116
+ });
117
+ });
118
+ },
119
+ );
120
+ request.on('error', reject);
121
+ request.end();
122
+ });
123
+ };
124
+
125
+ const closeServer = (server: http.Server): Promise<void> =>
126
+ new Promise((resolve, reject) => {
127
+ server.close((error) => {
128
+ if (error) {
129
+ reject(error);
130
+ return;
131
+ }
132
+ resolve();
133
+ });
134
+ });
135
+
136
+ it('starts on an ephemeral port and closes gracefully', async () => {
137
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'console-server-'));
138
+ const server = await startConsoleServer({
139
+ accessToken: testToken,
140
+ uiDistDir: path.join(tmpDir, 'ui-dist'),
141
+ consoleDataOutputDir: null,
142
+ port: 0,
143
+ });
144
+ const address = server.address();
145
+ expect(address).not.toBeNull();
146
+ expect(typeof address).not.toBe('string');
147
+ await closeServer(server);
148
+ fs.rmSync(tmpDir, { recursive: true, force: true });
149
+ });
150
+
151
+ it('serves the placeholder index without a token when ui-dist is absent', async () => {
152
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'console-server-'));
153
+ const server = await startConsoleServer({
154
+ accessToken: testToken,
155
+ uiDistDir: path.join(tmpDir, 'missing-ui-dist'),
156
+ consoleDataOutputDir: null,
157
+ port: 0,
158
+ });
159
+ try {
160
+ const root = await requestServer(server, '/');
161
+ expect(root.statusCode).toBe(200);
162
+ expect(root.body).toContain('TDPM Console');
163
+ expect(root.cacheControl).toBe('no-store');
164
+ expect(root.contentType).toContain('text/html');
165
+
166
+ const indexHtml = await requestServer(server, '/index.html');
167
+ expect(indexHtml.statusCode).toBe(200);
168
+ expect(indexHtml.cacheControl).toBe('no-store');
169
+ } finally {
170
+ await closeServer(server);
171
+ fs.rmSync(tmpDir, { recursive: true, force: true });
172
+ }
173
+ });
174
+
175
+ it('returns 404 for a missing non-index file when ui-dist is absent', async () => {
176
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'console-server-'));
177
+ const server = await startConsoleServer({
178
+ accessToken: testToken,
179
+ uiDistDir: path.join(tmpDir, 'missing-ui-dist'),
180
+ consoleDataOutputDir: null,
181
+ port: 0,
182
+ });
183
+ try {
184
+ const missing = await requestServer(server, '/assets/app.js');
185
+ expect(missing.statusCode).toBe(404);
186
+ expect(missing.cacheControl).toBe('no-store');
187
+ } finally {
188
+ await closeServer(server);
189
+ fs.rmSync(tmpDir, { recursive: true, force: true });
190
+ }
191
+ });
192
+
193
+ it('serves built bootstrap assets without a token', async () => {
194
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'console-server-'));
195
+ const uiDistDir = path.join(tmpDir, 'ui-dist');
196
+ fs.mkdirSync(path.join(uiDistDir, 'assets'), { recursive: true });
197
+ fs.writeFileSync(
198
+ path.join(uiDistDir, 'index.html'),
199
+ '<!DOCTYPE html><title>built</title>',
200
+ );
201
+ fs.writeFileSync(
202
+ path.join(uiDistDir, 'assets', 'app.js'),
203
+ 'console.log("app");',
204
+ );
205
+ const server = await startConsoleServer({
206
+ accessToken: testToken,
207
+ uiDistDir,
208
+ consoleDataOutputDir: null,
209
+ port: 0,
210
+ });
211
+ try {
212
+ const index = await requestServer(server, '/');
213
+ expect(index.statusCode).toBe(200);
214
+ expect(index.body).toContain('built');
215
+
216
+ const appJs = await requestServer(server, '/assets/app.js');
217
+ expect(appJs.statusCode).toBe(200);
218
+ expect(appJs.body).toContain('app');
219
+ expect(appJs.contentType).toContain('text/javascript');
220
+ expect(appJs.cacheControl).toBe('no-store');
221
+ } finally {
222
+ await closeServer(server);
223
+ fs.rmSync(tmpDir, { recursive: true, force: true });
224
+ }
225
+ });
226
+
227
+ it('rejects dot-prefixed paths with 404', async () => {
228
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'console-server-'));
229
+ const uiDistDir = path.join(tmpDir, 'ui-dist');
230
+ fs.mkdirSync(uiDistDir, { recursive: true });
231
+ fs.writeFileSync(path.join(uiDistDir, '.env'), 'SECRET=should-not-serve');
232
+ const server = await startConsoleServer({
233
+ accessToken: testToken,
234
+ uiDistDir,
235
+ consoleDataOutputDir: null,
236
+ port: 0,
237
+ });
238
+ try {
239
+ const dotEnv = await requestServer(server, '/.env');
240
+ expect(dotEnv.statusCode).toBe(404);
241
+ expect(dotEnv.body).not.toContain('SECRET');
242
+
243
+ const dotGit = await requestServer(server, '/.git/config');
244
+ expect(dotGit.statusCode).toBe(404);
245
+
246
+ const nestedDot = await requestServer(server, '/foo/.bar');
247
+ expect(nestedDot.statusCode).toBe(404);
248
+ } finally {
249
+ await closeServer(server);
250
+ fs.rmSync(tmpDir, { recursive: true, force: true });
251
+ }
252
+ });
253
+
254
+ it('rejects .json and /api/* without a token and passes the gate with a valid token', async () => {
255
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'console-server-'));
256
+ const server = await startConsoleServer({
257
+ accessToken: testToken,
258
+ uiDistDir: path.join(tmpDir, 'ui-dist'),
259
+ consoleDataOutputDir: null,
260
+ port: 0,
261
+ });
262
+ try {
263
+ const jsonNoToken = await requestServer(server, '/data/situation.json');
264
+ expect(jsonNoToken.statusCode).toBe(401);
265
+ expect(jsonNoToken.cacheControl).toBe('no-store');
266
+
267
+ const apiNoToken = await requestServer(server, '/api/review');
268
+ expect(apiNoToken.statusCode).toBe(401);
269
+
270
+ const jsonWithQueryToken = await requestServer(
271
+ server,
272
+ `/data/situation.json?k=${testToken}`,
273
+ );
274
+ expect(jsonWithQueryToken.statusCode).toBe(404);
275
+
276
+ const apiWithQueryToken = await requestServer(
277
+ server,
278
+ `/api/review?k=${testToken}`,
279
+ );
280
+ expect(apiWithQueryToken.statusCode).toBe(404);
281
+
282
+ const apiWithHeaderToken = await requestServer(server, '/api/review', {
283
+ [CONSOLE_TOKEN_HEADER]: testToken,
284
+ });
285
+ expect(apiWithHeaderToken.statusCode).toBe(404);
286
+
287
+ const apiWithWrongToken = await requestServer(
288
+ server,
289
+ '/api/review?k=wrong-token',
290
+ );
291
+ expect(apiWithWrongToken.statusCode).toBe(401);
292
+ } finally {
293
+ await closeServer(server);
294
+ fs.rmSync(tmpDir, { recursive: true, force: true });
295
+ }
296
+ });
297
+ });
@@ -0,0 +1,220 @@
1
+ import * as http from 'http';
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+
5
+ export const DEFAULT_CONSOLE_PORT = 9981;
6
+
7
+ export const CONSOLE_TOKEN_HEADER = 'x-pv-token';
8
+
9
+ const PLACEHOLDER_INDEX_HTML = `<!DOCTYPE html>
10
+ <html lang="en">
11
+ <head>
12
+ <meta charset="utf-8" />
13
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
14
+ <title>TDPM Console</title>
15
+ </head>
16
+ <body>
17
+ <main>
18
+ <h1>TDPM Console</h1>
19
+ <p>The console UI bundle has not been built yet.</p>
20
+ </main>
21
+ </body>
22
+ </html>
23
+ `;
24
+
25
+ const MIME_TYPES: Record<string, string> = {
26
+ '.html': 'text/html; charset=utf-8',
27
+ '.js': 'text/javascript; charset=utf-8',
28
+ '.mjs': 'text/javascript; charset=utf-8',
29
+ '.css': 'text/css; charset=utf-8',
30
+ '.json': 'application/json; charset=utf-8',
31
+ '.svg': 'image/svg+xml',
32
+ '.png': 'image/png',
33
+ '.jpg': 'image/jpeg',
34
+ '.jpeg': 'image/jpeg',
35
+ '.gif': 'image/gif',
36
+ '.ico': 'image/x-icon',
37
+ '.map': 'application/json; charset=utf-8',
38
+ '.woff': 'font/woff',
39
+ '.woff2': 'font/woff2',
40
+ };
41
+
42
+ export const hasDotSegment = (requestPath: string): boolean =>
43
+ requestPath
44
+ .split('/')
45
+ .some((segment) => segment.length > 0 && segment.startsWith('.'));
46
+
47
+ export const requiresToken = (requestPath: string): boolean =>
48
+ requestPath.startsWith('/api/') ||
49
+ requestPath === '/api' ||
50
+ requestPath.endsWith('.json');
51
+
52
+ export const isTokenValid = (
53
+ expectedToken: string,
54
+ providedToken: string | null,
55
+ ): boolean => providedToken !== null && providedToken === expectedToken;
56
+
57
+ export const extractProvidedToken = (
58
+ queryToken: string | string[] | null,
59
+ headerToken: string | string[] | undefined,
60
+ ): string | null => {
61
+ if (typeof queryToken === 'string' && queryToken.length > 0) {
62
+ return queryToken;
63
+ }
64
+ if (typeof headerToken === 'string' && headerToken.length > 0) {
65
+ return headerToken;
66
+ }
67
+ return null;
68
+ };
69
+
70
+ const contentTypeForPath = (filePath: string): string => {
71
+ const extension = path.extname(filePath).toLowerCase();
72
+ return MIME_TYPES[extension] ?? 'application/octet-stream';
73
+ };
74
+
75
+ const resolveStaticFilePath = (
76
+ uiDistDir: string,
77
+ requestPath: string,
78
+ ): string | null => {
79
+ const relativePath = requestPath === '/' ? '/index.html' : requestPath;
80
+ const normalized = path
81
+ .normalize(relativePath)
82
+ .replace(/^(\.\.(\/|\\|$))+/, '');
83
+ const candidate = path.join(uiDistDir, normalized);
84
+ const resolvedRoot = path.resolve(uiDistDir);
85
+ const resolvedCandidate = path.resolve(candidate);
86
+ if (
87
+ resolvedCandidate !== resolvedRoot &&
88
+ !resolvedCandidate.startsWith(resolvedRoot + path.sep)
89
+ ) {
90
+ return null;
91
+ }
92
+ return resolvedCandidate;
93
+ };
94
+
95
+ const readStaticFile = (filePath: string): Buffer | null => {
96
+ try {
97
+ const stat = fs.statSync(filePath);
98
+ if (!stat.isFile()) {
99
+ return null;
100
+ }
101
+ return fs.readFileSync(filePath);
102
+ } catch {
103
+ return null;
104
+ }
105
+ };
106
+
107
+ export type ConsoleServerOptions = {
108
+ accessToken: string;
109
+ uiDistDir: string;
110
+ consoleDataOutputDir: string | null;
111
+ };
112
+
113
+ const sendNotFound = (response: http.ServerResponse): void => {
114
+ response.writeHead(404, {
115
+ 'Content-Type': 'text/plain; charset=utf-8',
116
+ 'Cache-Control': 'no-store',
117
+ });
118
+ response.end('Not Found');
119
+ };
120
+
121
+ const sendUnauthorized = (response: http.ServerResponse): void => {
122
+ response.writeHead(401, {
123
+ 'Content-Type': 'text/plain; charset=utf-8',
124
+ 'Cache-Control': 'no-store',
125
+ });
126
+ response.end('Unauthorized');
127
+ };
128
+
129
+ const serveBootstrapIndex = (response: http.ServerResponse): void => {
130
+ response.writeHead(200, {
131
+ 'Content-Type': 'text/html; charset=utf-8',
132
+ 'Cache-Control': 'no-store',
133
+ });
134
+ response.end(PLACEHOLDER_INDEX_HTML);
135
+ };
136
+
137
+ export const handleConsoleRequest = (
138
+ options: ConsoleServerOptions,
139
+ request: http.IncomingMessage,
140
+ response: http.ServerResponse,
141
+ ): void => {
142
+ const requestUrl = new URL(request.url ?? '/', 'http://localhost');
143
+ const requestPath = requestUrl.pathname;
144
+
145
+ if (hasDotSegment(requestPath)) {
146
+ sendNotFound(response);
147
+ return;
148
+ }
149
+
150
+ if (requiresToken(requestPath)) {
151
+ const providedToken = extractProvidedToken(
152
+ requestUrl.searchParams.get('k'),
153
+ request.headers[CONSOLE_TOKEN_HEADER],
154
+ );
155
+ if (!isTokenValid(options.accessToken, providedToken)) {
156
+ sendUnauthorized(response);
157
+ return;
158
+ }
159
+ sendNotFound(response);
160
+ return;
161
+ }
162
+
163
+ if (requestPath === '/' || requestPath === '/index.html') {
164
+ const indexFilePath = resolveStaticFilePath(
165
+ options.uiDistDir,
166
+ '/index.html',
167
+ );
168
+ const indexContent =
169
+ indexFilePath === null ? null : readStaticFile(indexFilePath);
170
+ if (indexContent === null) {
171
+ serveBootstrapIndex(response);
172
+ return;
173
+ }
174
+ response.writeHead(200, {
175
+ 'Content-Type': 'text/html; charset=utf-8',
176
+ 'Cache-Control': 'no-store',
177
+ });
178
+ response.end(indexContent);
179
+ return;
180
+ }
181
+
182
+ const staticFilePath = resolveStaticFilePath(options.uiDistDir, requestPath);
183
+ if (staticFilePath === null) {
184
+ sendNotFound(response);
185
+ return;
186
+ }
187
+ const staticContent = readStaticFile(staticFilePath);
188
+ if (staticContent === null) {
189
+ sendNotFound(response);
190
+ return;
191
+ }
192
+ response.writeHead(200, {
193
+ 'Content-Type': contentTypeForPath(staticFilePath),
194
+ 'Cache-Control': 'no-store',
195
+ });
196
+ response.end(staticContent);
197
+ };
198
+
199
+ export const createConsoleServer = (
200
+ options: ConsoleServerOptions,
201
+ ): http.Server =>
202
+ http.createServer((request, response) => {
203
+ handleConsoleRequest(options, request, response);
204
+ });
205
+
206
+ export type StartConsoleServerOptions = ConsoleServerOptions & {
207
+ port: number;
208
+ };
209
+
210
+ export const startConsoleServer = (
211
+ options: StartConsoleServerOptions,
212
+ ): Promise<http.Server> =>
213
+ new Promise((resolve, reject) => {
214
+ const server = createConsoleServer(options);
215
+ server.once('error', reject);
216
+ server.listen(options.port, () => {
217
+ server.removeListener('error', reject);
218
+ resolve(server);
219
+ });
220
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAqEzB,eAAO,MAAM,OAAO,SAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAgFzB,eAAO,MAAM,OAAO,SAAgB,CAAC"}
@@ -18,6 +18,7 @@ export type ConfigFile = {
18
18
  awLogStaleThresholdMinutes?: number;
19
19
  labelsAsLlmAgentName?: string[];
20
20
  changeTargetPathAliases?: Record<string, string>;
21
+ consoleAccessToken?: string;
21
22
  };
22
23
  export declare const isRecord: (value: unknown) => value is Record<string, unknown>;
23
24
  export declare const loadConfigFile: (configFilePath: string) => ConfigFile;
@@ -1 +1 @@
1
- {"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/projectConfig.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD,CAAC;AAsDF,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CACH,CAAC;AAqBvE,eAAO,MAAM,cAAc,GAAI,gBAAgB,MAAM,KAAG,UAwDvD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,aAAa,MAAM,KAClB,UAoEF,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,YAAY,UAAU,EACtB,cAAc,UAAU,EACxB,iBAAiB,UAAU,KAC1B,UAuED,CAAC;AAkBH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CA0DvB,CAAC"}
1
+ {"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/projectConfig.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAsDF,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CACH,CAAC;AAqBvE,eAAO,MAAM,cAAc,GAAI,gBAAgB,MAAM,KAAG,UAyDvD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,aAAa,MAAM,KAClB,UAoEF,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,YAAY,UAAU,EACtB,cAAc,UAAU,EACxB,iBAAiB,UAAU,KAC1B,UAyED,CAAC;AAkBH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CA0DvB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import * as http from 'http';
2
+ export declare const DEFAULT_CONSOLE_PORT = 9981;
3
+ export declare const CONSOLE_TOKEN_HEADER = "x-pv-token";
4
+ export declare const hasDotSegment: (requestPath: string) => boolean;
5
+ export declare const requiresToken: (requestPath: string) => boolean;
6
+ export declare const isTokenValid: (expectedToken: string, providedToken: string | null) => boolean;
7
+ export declare const extractProvidedToken: (queryToken: string | string[] | null, headerToken: string | string[] | undefined) => string | null;
8
+ export type ConsoleServerOptions = {
9
+ accessToken: string;
10
+ uiDistDir: string;
11
+ consoleDataOutputDir: string | null;
12
+ };
13
+ export declare const handleConsoleRequest: (options: ConsoleServerOptions, request: http.IncomingMessage, response: http.ServerResponse) => void;
14
+ export declare const createConsoleServer: (options: ConsoleServerOptions) => http.Server;
15
+ export type StartConsoleServerOptions = ConsoleServerOptions & {
16
+ port: number;
17
+ };
18
+ export declare const startConsoleServer: (options: StartConsoleServerOptions) => Promise<http.Server>;
19
+ //# sourceMappingURL=consoleServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consoleServer.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/consoleServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAmCjD,eAAO,MAAM,aAAa,GAAI,aAAa,MAAM,KAAG,OAGiB,CAAC;AAEtE,eAAO,MAAM,aAAa,GAAI,aAAa,MAAM,KAAG,OAGrB,CAAC;AAEhC,eAAO,MAAM,YAAY,GACvB,eAAe,MAAM,EACrB,eAAe,MAAM,GAAG,IAAI,KAC3B,OAAoE,CAAC;AAExE,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EACpC,aAAa,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,KACzC,MAAM,GAAG,IAQX,CAAC;AAuCF,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC;AA0BF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,oBAAoB,EAC7B,SAAS,IAAI,CAAC,eAAe,EAC7B,UAAU,IAAI,CAAC,cAAc,KAC5B,IAwDF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,oBAAoB,KAC5B,IAAI,CAAC,MAGJ,CAAC;AAEL,MAAM,MAAM,yBAAyB,GAAG,oBAAoB,GAAG;IAC7D,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,yBAAyB,KACjC,OAAO,CAAC,IAAI,CAAC,MAAM,CAQlB,CAAC"}