ds-harness-remote 0.4.19 → 0.4.21

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/dist/index.js CHANGED
@@ -15301,7 +15301,7 @@ var RemoteTypertGateway2 = class {
15301
15301
  throw remoteFailure(result.error);
15302
15302
  }
15303
15303
  async dispatch(endpoint, payload, signal) {
15304
- const request = { endpoint, payload };
15304
+ const request = { endpoint, payload: normalizeConfigArguments(endpoint, payload) };
15305
15305
  const encoded = new TextEncoder().encode(JSON.stringify(request));
15306
15306
  let response;
15307
15307
  if (encoded.byteLength > DIRECT_REMOTE_CALL_BYTES2) {
@@ -15427,6 +15427,37 @@ var RemoteTypertGateway2 = class {
15427
15427
  }
15428
15428
  }
15429
15429
  };
15430
+ function normalizeConfigArguments(endpoint, payload) {
15431
+ if (!isRecord4(payload) || !isRecord4(payload.args) || Array.isArray(payload.args)) return payload;
15432
+ const args = payload.args;
15433
+ const positional = (() => {
15434
+ switch (endpoint) {
15435
+ case "settings/describe":
15436
+ case "llm/listProviders":
15437
+ case "llm/listConfigurableProviders":
15438
+ return [];
15439
+ case "settings/update":
15440
+ return [args.ns, args.patch, args.expectedRevision];
15441
+ case "settings/replace":
15442
+ return [args.ns, args.section, args.expectedRevision];
15443
+ case "settings/mutate":
15444
+ return [args.ns, args.ops, args.expectedRevision];
15445
+ case "credentials/describe":
15446
+ return [args.refs];
15447
+ case "credentials/set":
15448
+ return [args.ref, args.value];
15449
+ case "credentials/unset":
15450
+ return [args.ref];
15451
+ case "llm/discoverModels": {
15452
+ const { settingsNs, ...request } = args;
15453
+ return [settingsNs, request];
15454
+ }
15455
+ default:
15456
+ return void 0;
15457
+ }
15458
+ })();
15459
+ return positional === void 0 ? payload : { ...payload, args: positional };
15460
+ }
15430
15461
  var AsyncValueQueue = class {
15431
15462
  values = [];
15432
15463
  bytes = 0;
@@ -18326,7 +18357,7 @@ function resolveConfig(input2 = {}, env = process.env) {
18326
18357
  role: parsed.role ?? "host",
18327
18358
  ...serverUrl === void 0 ? {} : { serverUrl },
18328
18359
  deviceName: parsed.deviceName ?? hostname(),
18329
- terminal: { enabled: parsed.terminal?.enabled ?? false },
18360
+ terminal: { enabled: parsed.terminal?.enabled ?? env.DSH_REMOTE_TERMINAL_ENABLED === "true" },
18330
18361
  loopback: { ports: [...new Set(parsed.loopback?.ports ?? [])] },
18331
18362
  forceRelay: parsed.forceRelay ?? false,
18332
18363
  logLevel: parsed.logLevel ?? "info",
@@ -18366,7 +18397,7 @@ function normalizeServerUrl(value) {
18366
18397
  }
18367
18398
 
18368
18399
  // src/version.ts
18369
- var PLUGIN_VERSION = "0.4.19";
18400
+ var PLUGIN_VERSION = "0.4.21";
18370
18401
 
18371
18402
  // src/server-api.ts
18372
18403
  var TERMINAL_CONTROL_CHARACTERS = /[\u0000-\u001f\u007f-\u009f]/u;
@@ -27251,6 +27282,7 @@ async function runCli(args = process.argv.slice(2), dependencies = {}) {
27251
27282
  const [command, ...rest] = args;
27252
27283
  try {
27253
27284
  if (command === "login") return await login(rest, runtime);
27285
+ if (command === "register") return await register(rest, runtime);
27254
27286
  if (command === "status") return await status(rest, runtime);
27255
27287
  if (command === "logout") return await logout(rest, runtime);
27256
27288
  if (command === "help" || command === "--help" || command === "-h" || command === void 0) {
@@ -27266,6 +27298,15 @@ ${helpText()}`);
27266
27298
  return error instanceof CliUsageError ? 2 : 1;
27267
27299
  }
27268
27300
  }
27301
+ async function register(args, runtime) {
27302
+ if (args.length !== 1 || args[0] === void 0 || args[0].trim() === "") {
27303
+ throw new CliUsageError("Usage: ds-harness-remote register <server-token>");
27304
+ }
27305
+ const context = await hostContext(runtime);
27306
+ await context.api.authorizeHostWithCode(context.identity, args[0]);
27307
+ write(runtime.stdout, "Remote Host registration complete. Restart dsh-tui to bring the Remote Host online.\n");
27308
+ return 0;
27309
+ }
27269
27310
  async function login(args, runtime) {
27270
27311
  if (args.length > 1) throw new CliUsageError("Usage: ds-harness-remote login [github|zhihu]");
27271
27312
  const provider = args[0] ?? "zhihu";
@@ -27473,6 +27514,7 @@ function helpText() {
27473
27514
  return [
27474
27515
  "Usage:",
27475
27516
  " ds-harness-remote login [github|zhihu]",
27517
+ " ds-harness-remote register <server-token>",
27476
27518
  " ds-harness-remote status",
27477
27519
  " ds-harness-remote logout",
27478
27520
  "",
@@ -27610,9 +27652,9 @@ function registerRemoteCommand(ctx, commands, pluginHost, definition) {
27610
27652
  function hasErrorCode2(error, code) {
27611
27653
  return typeof error === "object" && error !== null && "code" in error && error.code === code;
27612
27654
  }
27613
- function registerOptional(ctx, feature, register) {
27655
+ function registerOptional(ctx, feature, register2) {
27614
27656
  try {
27615
- return register() ?? (() => {
27657
+ return register2() ?? (() => {
27616
27658
  });
27617
27659
  } catch (error) {
27618
27660
  ctx.logger.warn(`dsh-TUI Remote ${feature} is unavailable`, { code: errorCode4(error) });