@factory/droid-sdk 0.9.1 → 0.11.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/README.md +53 -0
- package/dist/api.d.mts +15058 -0
- package/dist/api.d.ts +15058 -0
- package/dist/api.js +253 -0
- package/dist/api.js.map +1 -0
- package/dist/api.mjs +253 -0
- package/dist/api.mjs.map +1 -0
- package/dist/chunk-7ZD7MMNA.mjs +2268 -0
- package/dist/chunk-7ZD7MMNA.mjs.map +1 -0
- package/dist/{chunk-YSKO6SPT.js → chunk-KAAWCHO4.js} +32033 -17088
- package/dist/chunk-KAAWCHO4.js.map +1 -0
- package/dist/chunk-NWFX4MPJ.mjs +41630 -0
- package/dist/chunk-NWFX4MPJ.mjs.map +1 -0
- package/dist/chunk-ZQ7TS73S.js +2268 -0
- package/dist/chunk-ZQ7TS73S.js.map +1 -0
- package/dist/{index-C06W9tbN.d.mts → index-Cf2WtJqJ.d.mts} +134169 -84330
- package/dist/{index-C06W9tbN.d.ts → index-Cf2WtJqJ.d.ts} +134169 -84330
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +91 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +99 -10
- package/dist/node.d.mts +223 -43
- package/dist/node.d.ts +223 -43
- package/dist/node.js +2033 -776
- package/dist/node.js.map +1 -1
- package/dist/node.mjs +1756 -499
- package/dist/node.mjs.map +1 -1
- package/examples/browser/daemon-lifecycle.ts +4 -6
- package/examples/node/custom-model-editing-disposable.sh +88 -0
- package/examples/node/custom-model-editing-disposable.ts +171 -0
- package/examples/node/custom-model-editing.ts +55 -0
- package/examples/node/hook-execution.ts +3 -2
- package/examples/node/rest-api.ts +55 -0
- package/examples/node/sdk-mcp-tool.ts +5 -3
- package/examples/node/start-workstream.ts +76 -0
- package/examples/node/tool-controls.ts +7 -5
- package/package.json +14 -3
- package/dist/chunk-TWSTJMV7.mjs +0 -26685
- package/dist/chunk-TWSTJMV7.mjs.map +0 -1
- package/dist/chunk-YSKO6SPT.js.map +0 -1
package/dist/node.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5;
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5;
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
@@ -445,7 +445,86 @@
|
|
|
445
445
|
|
|
446
446
|
|
|
447
447
|
|
|
448
|
-
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
var _chunkKAAWCHO4js = require('./chunk-KAAWCHO4.js');
|
|
527
|
+
require('./chunk-ZQ7TS73S.js');
|
|
449
528
|
|
|
450
529
|
// src/exec-core/client.ts
|
|
451
530
|
var _events = require('events'); var _events2 = _interopRequireDefault(_events);
|
|
@@ -454,7 +533,7 @@ var _zod = require('zod');
|
|
|
454
533
|
|
|
455
534
|
// src/exec-core/constants.ts
|
|
456
535
|
var DEFAULT_REQUEST_TIMEOUT2 = 3e4;
|
|
457
|
-
var SESSION_INIT_TIMEOUT2 =
|
|
536
|
+
var SESSION_INIT_TIMEOUT2 = 12e4;
|
|
458
537
|
var COMPACTION_TIMEOUT2 = 24e4;
|
|
459
538
|
var MCP_AUTH_TIMEOUT2 = 3e5;
|
|
460
539
|
var WINDOWS_JOB_OBJECT_ERROR_MARKER = "AssignProcessToJobObject";
|
|
@@ -517,6 +596,9 @@ var defaultExecCoreDeps = {
|
|
|
517
596
|
},
|
|
518
597
|
sanitizeSpawnEnv(env) {
|
|
519
598
|
return env;
|
|
599
|
+
},
|
|
600
|
+
buildRuntimeSettingsAuthorityEnv() {
|
|
601
|
+
return {};
|
|
520
602
|
}
|
|
521
603
|
}
|
|
522
604
|
};
|
|
@@ -526,6 +608,7 @@ var DroidClientEvent = /* @__PURE__ */ ((DroidClientEvent2) => {
|
|
|
526
608
|
DroidClientEvent2["SESSION_NOTIFICATION"] = "session_notification";
|
|
527
609
|
DroidClientEvent2["REQUEST_PERMISSION"] = "request_permission";
|
|
528
610
|
DroidClientEvent2["ASK_USER"] = "ask_user";
|
|
611
|
+
DroidClientEvent2["PICK_OPTIONS"] = "pick_options";
|
|
529
612
|
DroidClientEvent2["ERROR"] = "error";
|
|
530
613
|
return DroidClientEvent2;
|
|
531
614
|
})(DroidClientEvent || {});
|
|
@@ -541,90 +624,6 @@ var TransportDirection = /* @__PURE__ */ ((TransportDirection2) => {
|
|
|
541
624
|
return TransportDirection2;
|
|
542
625
|
})(TransportDirection || {});
|
|
543
626
|
|
|
544
|
-
// ../droid-sdk-core/src/observability.ts
|
|
545
|
-
function sanitizeAttributes(attributes) {
|
|
546
|
-
if (attributes === void 0) {
|
|
547
|
-
return void 0;
|
|
548
|
-
}
|
|
549
|
-
const sanitized = {};
|
|
550
|
-
for (const [key, value] of Object.entries(attributes)) {
|
|
551
|
-
if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
552
|
-
sanitized[key] = value;
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
return Object.keys(sanitized).length > 0 ? sanitized : void 0;
|
|
556
|
-
}
|
|
557
|
-
function serializeError(error) {
|
|
558
|
-
if (error instanceof Error) {
|
|
559
|
-
const code = "code" in error && typeof error.code === "string" ? error.code : void 0;
|
|
560
|
-
return {
|
|
561
|
-
name: error.name || void 0,
|
|
562
|
-
message: error.message,
|
|
563
|
-
...code !== void 0 && { code }
|
|
564
|
-
};
|
|
565
|
-
}
|
|
566
|
-
return { message: String(error) };
|
|
567
|
-
}
|
|
568
|
-
function handleSinkFailure(error, options) {
|
|
569
|
-
try {
|
|
570
|
-
_optionalChain([options, 'optionalAccess', _3 => _3.onError, 'optionalCall', _4 => _4(error)]);
|
|
571
|
-
} catch (e2) {
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
function emitDroidLog(observability, event, options) {
|
|
575
|
-
const sink = _optionalChain([observability, 'optionalAccess', _5 => _5.logger]);
|
|
576
|
-
if (!sink) {
|
|
577
|
-
return false;
|
|
578
|
-
}
|
|
579
|
-
try {
|
|
580
|
-
sink.log({
|
|
581
|
-
level: event.level,
|
|
582
|
-
name: event.name,
|
|
583
|
-
message: event.message,
|
|
584
|
-
attributes: sanitizeAttributes(event.attributes),
|
|
585
|
-
...event.error !== void 0 && {
|
|
586
|
-
error: serializeError(event.error)
|
|
587
|
-
}
|
|
588
|
-
});
|
|
589
|
-
return true;
|
|
590
|
-
} catch (error) {
|
|
591
|
-
handleSinkFailure(error, options);
|
|
592
|
-
return false;
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
function recordDroidMetric(observability, event, options) {
|
|
596
|
-
const sink = _optionalChain([observability, 'optionalAccess', _6 => _6.metrics]);
|
|
597
|
-
if (!sink) {
|
|
598
|
-
return false;
|
|
599
|
-
}
|
|
600
|
-
try {
|
|
601
|
-
sink.record({
|
|
602
|
-
name: event.name,
|
|
603
|
-
kind: event.kind,
|
|
604
|
-
value: event.value,
|
|
605
|
-
unit: event.unit,
|
|
606
|
-
attributes: sanitizeAttributes(event.attributes)
|
|
607
|
-
});
|
|
608
|
-
return true;
|
|
609
|
-
} catch (error) {
|
|
610
|
-
handleSinkFailure(error, options);
|
|
611
|
-
return false;
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
function injectDroidTraceContext(observability, carrier, options) {
|
|
615
|
-
const sink = _optionalChain([observability, 'optionalAccess', _7 => _7.tracing]);
|
|
616
|
-
if (!sink) {
|
|
617
|
-
return false;
|
|
618
|
-
}
|
|
619
|
-
try {
|
|
620
|
-
sink.inject(carrier);
|
|
621
|
-
return true;
|
|
622
|
-
} catch (error) {
|
|
623
|
-
handleSinkFailure(error, options);
|
|
624
|
-
return false;
|
|
625
|
-
}
|
|
626
|
-
}
|
|
627
|
-
|
|
628
627
|
// src/exec-core/deps.ts
|
|
629
628
|
function logWarn(logger, message, metadata) {
|
|
630
629
|
logger.warn(message, metadata);
|
|
@@ -660,7 +659,7 @@ function redactContentForCustomerSink(metadata) {
|
|
|
660
659
|
return _nullishCoalesce(redacted, () => ( metadata));
|
|
661
660
|
}
|
|
662
661
|
function createLogger(observability, fallback) {
|
|
663
|
-
const sink = _optionalChain([observability, 'optionalAccess',
|
|
662
|
+
const sink = _optionalChain([observability, 'optionalAccess', _3 => _3.logger]);
|
|
664
663
|
if (!sink) {
|
|
665
664
|
return fallback;
|
|
666
665
|
}
|
|
@@ -668,7 +667,7 @@ function createLogger(observability, fallback) {
|
|
|
668
667
|
const sinkFailureOptions = createSinkFailureOptions(fallback);
|
|
669
668
|
return {
|
|
670
669
|
info(message, metadata) {
|
|
671
|
-
emitDroidLog(
|
|
670
|
+
_chunkKAAWCHO4js.emitDroidLog.call(void 0,
|
|
672
671
|
sinkObservability,
|
|
673
672
|
{
|
|
674
673
|
level: "info",
|
|
@@ -680,7 +679,7 @@ function createLogger(observability, fallback) {
|
|
|
680
679
|
);
|
|
681
680
|
},
|
|
682
681
|
warn(message, metadata) {
|
|
683
|
-
emitDroidLog(
|
|
682
|
+
_chunkKAAWCHO4js.emitDroidLog.call(void 0,
|
|
684
683
|
sinkObservability,
|
|
685
684
|
{
|
|
686
685
|
level: "warn",
|
|
@@ -692,7 +691,7 @@ function createLogger(observability, fallback) {
|
|
|
692
691
|
);
|
|
693
692
|
},
|
|
694
693
|
exception(error, message, metadata) {
|
|
695
|
-
emitDroidLog(
|
|
694
|
+
_chunkKAAWCHO4js.emitDroidLog.call(void 0,
|
|
696
695
|
sinkObservability,
|
|
697
696
|
{
|
|
698
697
|
level: "error",
|
|
@@ -707,7 +706,7 @@ function createLogger(observability, fallback) {
|
|
|
707
706
|
};
|
|
708
707
|
}
|
|
709
708
|
function createMetrics(observability, fallback, failureLogger) {
|
|
710
|
-
const sink = _optionalChain([observability, 'optionalAccess',
|
|
709
|
+
const sink = _optionalChain([observability, 'optionalAccess', _4 => _4.metrics]);
|
|
711
710
|
if (!sink) {
|
|
712
711
|
return fallback;
|
|
713
712
|
}
|
|
@@ -715,7 +714,7 @@ function createMetrics(observability, fallback, failureLogger) {
|
|
|
715
714
|
const sinkFailureOptions = createSinkFailureOptions(failureLogger);
|
|
716
715
|
return {
|
|
717
716
|
addToCounter(metric, value, tags) {
|
|
718
|
-
recordDroidMetric(
|
|
717
|
+
_chunkKAAWCHO4js.recordDroidMetric.call(void 0,
|
|
719
718
|
sinkObservability,
|
|
720
719
|
{
|
|
721
720
|
name: metric,
|
|
@@ -728,7 +727,7 @@ function createMetrics(observability, fallback, failureLogger) {
|
|
|
728
727
|
);
|
|
729
728
|
},
|
|
730
729
|
recordDuration(metric, valueMs, tags) {
|
|
731
|
-
recordDroidMetric(
|
|
730
|
+
_chunkKAAWCHO4js.recordDroidMetric.call(void 0,
|
|
732
731
|
sinkObservability,
|
|
733
732
|
{
|
|
734
733
|
name: metric,
|
|
@@ -743,7 +742,7 @@ function createMetrics(observability, fallback, failureLogger) {
|
|
|
743
742
|
};
|
|
744
743
|
}
|
|
745
744
|
function createTracing(observability, fallback, failureLogger) {
|
|
746
|
-
const sink = _optionalChain([observability, 'optionalAccess',
|
|
745
|
+
const sink = _optionalChain([observability, 'optionalAccess', _5 => _5.tracing]);
|
|
747
746
|
if (!sink) {
|
|
748
747
|
return fallback;
|
|
749
748
|
}
|
|
@@ -755,7 +754,7 @@ function createTracing(observability, fallback, failureLogger) {
|
|
|
755
754
|
},
|
|
756
755
|
injectContext(meta) {
|
|
757
756
|
const carrier = {};
|
|
758
|
-
if (!injectDroidTraceContext(sinkObservability, carrier, sinkFailureOptions)) {
|
|
757
|
+
if (!_chunkKAAWCHO4js.injectDroidTraceContext.call(void 0, sinkObservability, carrier, sinkFailureOptions)) {
|
|
759
758
|
return;
|
|
760
759
|
}
|
|
761
760
|
if (carrier.traceparent !== void 0) {
|
|
@@ -779,15 +778,21 @@ function resolveExecCoreDeps(observability, fallback = defaultExecCoreDeps) {
|
|
|
779
778
|
}
|
|
780
779
|
|
|
781
780
|
// src/exec-core/client.ts
|
|
782
|
-
function
|
|
783
|
-
const
|
|
784
|
-
return
|
|
781
|
+
function isDroidConnectionEnded(error) {
|
|
782
|
+
const failure = error instanceof _chunkKAAWCHO4js.ProtocolError ? error.cause : error;
|
|
783
|
+
return failure instanceof _chunkKAAWCHO4js.DroidConnectionEndedError || failure instanceof _chunkKAAWCHO4js.ProcessExitError;
|
|
785
784
|
}
|
|
786
|
-
var JsonRpcEnvelopePeekSchema =
|
|
787
|
-
type: _zod.z.nativeEnum(
|
|
785
|
+
var JsonRpcEnvelopePeekSchema = _chunkKAAWCHO4js.JsonRpcEnvelopeSchema.partial().extend({
|
|
786
|
+
type: _zod.z.nativeEnum(_chunkKAAWCHO4js.JsonRpcMessageType).optional(),
|
|
788
787
|
method: _zod.z.string().optional(),
|
|
789
788
|
id: _zod.z.string().nullable().optional()
|
|
790
789
|
}).passthrough();
|
|
790
|
+
function getResponseId(response2) {
|
|
791
|
+
const parsed = JsonRpcEnvelopePeekSchema.safeParse(response2);
|
|
792
|
+
return parsed.success ? parsed.data.id : void 0;
|
|
793
|
+
}
|
|
794
|
+
var MCP_OAUTH_OPT_OUT_PROTOCOL_VERSION = "1.78.0";
|
|
795
|
+
var PERMISSION_WITHDRAWN = /* @__PURE__ */ Symbol("permission withdrawn");
|
|
791
796
|
function inspectJsonRpcEnvelope2(message) {
|
|
792
797
|
const result = JsonRpcEnvelopePeekSchema.safeParse(message);
|
|
793
798
|
if (!result.success) {
|
|
@@ -795,8 +800,8 @@ function inspectJsonRpcEnvelope2(message) {
|
|
|
795
800
|
}
|
|
796
801
|
const envelope = result.data;
|
|
797
802
|
return {
|
|
798
|
-
protocolVersionMismatch: envelope.factoryProtocolVersion !== void 0 && envelope.factoryProtocolVersion !==
|
|
799
|
-
localFactoryProtocolVersion:
|
|
803
|
+
protocolVersionMismatch: envelope.factoryProtocolVersion !== void 0 && envelope.factoryProtocolVersion !== _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION ? {
|
|
804
|
+
localFactoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
800
805
|
peerFactoryProtocolVersion: envelope.factoryProtocolVersion,
|
|
801
806
|
messageType: envelope.type,
|
|
802
807
|
method: envelope.method,
|
|
@@ -811,25 +816,42 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
811
816
|
__init() {this.pendingRequests = /* @__PURE__ */ new Map()}
|
|
812
817
|
__init2() {this.permissionHandlers = /* @__PURE__ */ new Map()}
|
|
813
818
|
__init3() {this.askUserHandlers = /* @__PURE__ */ new Map()}
|
|
814
|
-
__init4() {this.
|
|
815
|
-
__init5() {this.
|
|
816
|
-
__init6() {this.
|
|
819
|
+
__init4() {this.pickOptionsHandlers = /* @__PURE__ */ new Map()}
|
|
820
|
+
__init5() {this.pendingPermissionRequests = /* @__PURE__ */ new Map()}
|
|
821
|
+
__init6() {this.pendingAskUserRequests = /* @__PURE__ */ new Map()}
|
|
822
|
+
/**
|
|
823
|
+
* Queued (non-blocking) AskUser requests that arrived before an AskUser
|
|
824
|
+
* handler was set, as when a reloaded session asks its pending queued sets
|
|
825
|
+
* again during the load. Answering one without a handler would record it
|
|
826
|
+
* as dismissed, and the agent never waits on it, so it waits for the
|
|
827
|
+
* handler instead.
|
|
828
|
+
*/
|
|
829
|
+
__init7() {this.heldQueuedAskUserRequests = []}
|
|
830
|
+
__init8() {this.pendingPickOptionsRequests = /* @__PURE__ */ new Map()}
|
|
831
|
+
__init9() {this.currentSessionId = null}
|
|
817
832
|
|
|
833
|
+
__init10() {this.peerEnforcesQueueOwnership = false}
|
|
818
834
|
/**
|
|
819
835
|
* Sticky error from a transport failure. Once set, all subsequent
|
|
820
836
|
* `sendRequest()` calls throw this error immediately, preventing
|
|
821
837
|
* requests from hanging on a dead transport.
|
|
822
838
|
*/
|
|
823
|
-
|
|
824
|
-
|
|
839
|
+
__init11() {this.transportError = null}
|
|
840
|
+
__init12() {this.completedTurnObserved = false}
|
|
841
|
+
/**
|
|
842
|
+
* Set once the droid sends `droid.disconnect`. It reads no further
|
|
843
|
+
* requests from then on, so it no longer counts as connected even while its
|
|
844
|
+
* transport stays open.
|
|
845
|
+
*/
|
|
846
|
+
__init13() {this.disconnected = false}
|
|
825
847
|
|
|
826
848
|
|
|
827
849
|
|
|
828
850
|
|
|
829
851
|
constructor(options, deps = defaultExecCoreDeps) {
|
|
830
|
-
super();_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);_class.prototype.__init7.call(this);_class.prototype.__init8.call(this);;
|
|
831
|
-
this.transport = options.transport;
|
|
852
|
+
super();_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);_class.prototype.__init7.call(this);_class.prototype.__init8.call(this);_class.prototype.__init9.call(this);_class.prototype.__init10.call(this);_class.prototype.__init11.call(this);_class.prototype.__init12.call(this);_class.prototype.__init13.call(this);;
|
|
832
853
|
const resolved = resolveExecCoreDeps(options.observability, deps);
|
|
854
|
+
this.transport = options.transport;
|
|
833
855
|
this.logger = resolved.logger;
|
|
834
856
|
this.tracing = resolved.tracing;
|
|
835
857
|
this.requestTimeout = _nullishCoalesce(options.requestTimeout, () => ( DEFAULT_REQUEST_TIMEOUT2));
|
|
@@ -849,13 +871,18 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
849
871
|
});
|
|
850
872
|
this.transport.onError((error) => {
|
|
851
873
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
852
|
-
const
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
874
|
+
const sessionId = this.addressedSessionId;
|
|
875
|
+
const expectedExit = err instanceof _chunkKAAWCHO4js.ProcessExitError && (err.isRequestedStop || err.exitCode === 0 && this.completedTurnObserved);
|
|
876
|
+
if (expectedExit) {
|
|
877
|
+
this.logger.info("[DroidClient] Process exited as expected", {
|
|
878
|
+
sessionId,
|
|
879
|
+
exitCode: err.exitCode,
|
|
880
|
+
signal: err.signal
|
|
856
881
|
});
|
|
857
882
|
} else {
|
|
858
|
-
this.logger.exception(err, "Transport error"
|
|
883
|
+
this.logger.exception(err, "Transport error", {
|
|
884
|
+
sessionId
|
|
885
|
+
});
|
|
859
886
|
}
|
|
860
887
|
this.transportError = err;
|
|
861
888
|
this.rejectAllPending(err);
|
|
@@ -873,106 +900,154 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
873
900
|
get sessionId() {
|
|
874
901
|
return this.currentSessionId;
|
|
875
902
|
}
|
|
903
|
+
/**
|
|
904
|
+
* The session that an inbound prompt or transport fault belongs to. A
|
|
905
|
+
* session start or load in flight owns it, because the CLI replays a loaded
|
|
906
|
+
* session's pending prompts before it answers the load; otherwise the
|
|
907
|
+
* current session does. Undefined when that is ambiguous: a start with no
|
|
908
|
+
* session id yet, or several starts and loads in flight.
|
|
909
|
+
*
|
|
910
|
+
* @internal
|
|
911
|
+
*/
|
|
912
|
+
get addressedSessionId() {
|
|
913
|
+
const pendingSessionIds = /* @__PURE__ */ new Set();
|
|
914
|
+
for (const pendingRequest of this.pendingRequests.values()) {
|
|
915
|
+
if (pendingRequest.method === "droid.initialize_session" /* INITIALIZE_SESSION */ && pendingRequest.sessionId === void 0) {
|
|
916
|
+
return void 0;
|
|
917
|
+
}
|
|
918
|
+
if (pendingRequest.sessionId !== void 0) {
|
|
919
|
+
pendingSessionIds.add(pendingRequest.sessionId);
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
if (pendingSessionIds.size > 1) {
|
|
923
|
+
return void 0;
|
|
924
|
+
}
|
|
925
|
+
const [pendingSessionId] = pendingSessionIds;
|
|
926
|
+
return _nullishCoalesce(_nullishCoalesce(pendingSessionId, () => ( this.currentSessionId)), () => ( void 0));
|
|
927
|
+
}
|
|
876
928
|
get isConnected() {
|
|
877
|
-
return this.transport.isConnected;
|
|
929
|
+
return !this.disconnected && this.transport.isConnected;
|
|
930
|
+
}
|
|
931
|
+
/**
|
|
932
|
+
* Whether the worker runs in a child process. A daemon's shutdown cuts such
|
|
933
|
+
* a worker off from its owner before closing it, and from then on it reads
|
|
934
|
+
* no request; a worker hosted in this process still answers.
|
|
935
|
+
*/
|
|
936
|
+
get runsInChildProcess() {
|
|
937
|
+
return (_nullishCoalesce(_optionalChain([this, 'access', _6 => _6.transport, 'access', _7 => _7.getManagedProcess, 'optionalCall', _8 => _8()]), () => ( null))) !== null;
|
|
938
|
+
}
|
|
939
|
+
/**
|
|
940
|
+
* Whether the runner refuses a queue change from someone other than the
|
|
941
|
+
* prompt's author. Older runners ignore the author on such a change.
|
|
942
|
+
*/
|
|
943
|
+
get enforcesQueueOwnership() {
|
|
944
|
+
return this.peerEnforcesQueueOwnership;
|
|
878
945
|
}
|
|
879
946
|
requireMcpOAuthOptOutSupport() {
|
|
880
|
-
if (
|
|
947
|
+
if (_chunkKAAWCHO4js.isProtocolVersionAtLeast.call(void 0,
|
|
948
|
+
this.peerProtocolVersion,
|
|
949
|
+
MCP_OAUTH_OPT_OUT_PROTOCOL_VERSION
|
|
950
|
+
)) {
|
|
881
951
|
return;
|
|
882
952
|
}
|
|
883
|
-
throw new (0,
|
|
884
|
-
|
|
953
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)(
|
|
954
|
+
`MCP OAuth opt-out requires Droid protocol version ${MCP_OAUTH_OPT_OUT_PROTOCOL_VERSION} or newer. The connected Droid reported an older or unknown protocol version and cannot disable OAuth for MCP servers.`,
|
|
885
955
|
{
|
|
886
956
|
value: {
|
|
887
|
-
localFactoryProtocolVersion:
|
|
957
|
+
localFactoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
958
|
+
minimumFactoryProtocolVersion: MCP_OAUTH_OPT_OUT_PROTOCOL_VERSION,
|
|
888
959
|
peerFactoryProtocolVersion: this.peerProtocolVersion
|
|
889
960
|
}
|
|
890
961
|
}
|
|
891
962
|
);
|
|
892
963
|
}
|
|
893
964
|
validateMcpServersProtocolSupport(mcpServers) {
|
|
894
|
-
if (_optionalChain([mcpServers, 'optionalAccess',
|
|
965
|
+
if (_optionalChain([mcpServers, 'optionalAccess', _9 => _9.some, 'call', _10 => _10((server) => "oauth" in server && server.oauth === false)])) {
|
|
895
966
|
this.requireMcpOAuthOptOutSupport();
|
|
896
967
|
}
|
|
897
968
|
}
|
|
898
969
|
async initializeSession(params) {
|
|
899
970
|
const request = {
|
|
900
|
-
factoryApiVersion:
|
|
901
|
-
factoryProtocolVersion:
|
|
971
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
972
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
902
973
|
type: "request",
|
|
903
|
-
jsonrpc:
|
|
974
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
904
975
|
id: _uuid.v4.call(void 0, ),
|
|
905
976
|
method: "droid.initialize_session" /* INITIALIZE_SESSION */,
|
|
906
|
-
params
|
|
977
|
+
params: _chunkKAAWCHO4js.encodeLegacyStartupLoadOptions.call(void 0, params)
|
|
907
978
|
};
|
|
908
979
|
const rawResponse = await this.sendRequest(
|
|
909
980
|
request,
|
|
910
|
-
this.sessionInitTimeout
|
|
981
|
+
this.sessionInitTimeout,
|
|
982
|
+
params.sessionId
|
|
911
983
|
);
|
|
912
|
-
const
|
|
913
|
-
this.peerProtocolVersion =
|
|
914
|
-
if (
|
|
915
|
-
throw new (0,
|
|
984
|
+
const response2 = _chunkKAAWCHO4js.InitializeSessionResponseSchema.parse(rawResponse);
|
|
985
|
+
this.peerProtocolVersion = response2.factoryProtocolVersion;
|
|
986
|
+
if (response2.error) {
|
|
987
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)("Initialize session request failed", {
|
|
916
988
|
requestId: request.id,
|
|
917
|
-
code:
|
|
918
|
-
message:
|
|
919
|
-
data:
|
|
989
|
+
code: response2.error.code,
|
|
990
|
+
message: response2.error.message,
|
|
991
|
+
data: response2.error.data
|
|
920
992
|
});
|
|
921
993
|
}
|
|
922
994
|
this.validateMcpServersProtocolSupport(params.mcpServers);
|
|
923
|
-
const result =
|
|
995
|
+
const result = _chunkKAAWCHO4js.InitializeSessionResultSchema.parse(response2.result);
|
|
996
|
+
this.peerEnforcesQueueOwnership = result.enforcesQueueOwnership === true;
|
|
924
997
|
this.currentSessionId = result.sessionId;
|
|
925
|
-
return
|
|
998
|
+
return response2;
|
|
926
999
|
}
|
|
927
1000
|
async loadSession(params) {
|
|
928
1001
|
const request = {
|
|
929
|
-
factoryApiVersion:
|
|
930
|
-
factoryProtocolVersion:
|
|
1002
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1003
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
931
1004
|
type: "request",
|
|
932
|
-
jsonrpc:
|
|
1005
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
933
1006
|
id: _uuid.v4.call(void 0, ),
|
|
934
1007
|
method: "droid.load_session" /* LOAD_SESSION */,
|
|
935
1008
|
params
|
|
936
1009
|
};
|
|
937
1010
|
const rawResponse = await this.sendRequest(
|
|
938
1011
|
request,
|
|
939
|
-
this.sessionInitTimeout
|
|
1012
|
+
this.sessionInitTimeout,
|
|
1013
|
+
params.sessionId
|
|
940
1014
|
);
|
|
941
|
-
const
|
|
942
|
-
this.peerProtocolVersion =
|
|
943
|
-
if (
|
|
944
|
-
const isSessionNotFound =
|
|
1015
|
+
const response2 = _chunkKAAWCHO4js.LoadSessionResponseSchema.parse(rawResponse);
|
|
1016
|
+
this.peerProtocolVersion = response2.factoryProtocolVersion;
|
|
1017
|
+
if (response2.error) {
|
|
1018
|
+
const isSessionNotFound = response2.error.code === -32004 /* ENTITY_NOT_FOUND */;
|
|
945
1019
|
if (isSessionNotFound) {
|
|
946
|
-
throw new (0,
|
|
1020
|
+
throw new (0, _chunkKAAWCHO4js.SessionNotFoundError)(params.sessionId, {
|
|
947
1021
|
requestId: request.id,
|
|
948
|
-
code:
|
|
949
|
-
message:
|
|
950
|
-
data:
|
|
1022
|
+
code: response2.error.code,
|
|
1023
|
+
message: response2.error.message,
|
|
1024
|
+
data: response2.error.data
|
|
951
1025
|
});
|
|
952
1026
|
}
|
|
953
|
-
throw new (0,
|
|
1027
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)("Load session request failed", {
|
|
954
1028
|
requestId: request.id,
|
|
955
|
-
code:
|
|
956
|
-
message:
|
|
957
|
-
data:
|
|
1029
|
+
code: response2.error.code,
|
|
1030
|
+
message: response2.error.message,
|
|
1031
|
+
data: response2.error.data
|
|
958
1032
|
});
|
|
959
1033
|
}
|
|
960
1034
|
this.validateMcpServersProtocolSupport(params.mcpServers);
|
|
1035
|
+
this.peerEnforcesQueueOwnership = _optionalChain([response2, 'access', _11 => _11.result, 'optionalAccess', _12 => _12.enforcesQueueOwnership]) === true;
|
|
961
1036
|
this.currentSessionId = params.sessionId;
|
|
962
|
-
return
|
|
1037
|
+
return response2;
|
|
963
1038
|
}
|
|
964
1039
|
async addUserMessage(params, requestId) {
|
|
965
1040
|
if (!this.currentSessionId) {
|
|
966
|
-
throw new (0,
|
|
1041
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
967
1042
|
"No active session. Call initializeSession or loadSession first."
|
|
968
1043
|
);
|
|
969
1044
|
}
|
|
970
1045
|
this.completedTurnObserved = false;
|
|
971
1046
|
const request = {
|
|
972
|
-
factoryApiVersion:
|
|
973
|
-
factoryProtocolVersion:
|
|
1047
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1048
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
974
1049
|
type: "request",
|
|
975
|
-
jsonrpc:
|
|
1050
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
976
1051
|
id: _nullishCoalesce(requestId, () => ( _uuid.v4.call(void 0, ))),
|
|
977
1052
|
method: "droid.add_user_message" /* ADD_USER_MESSAGE */,
|
|
978
1053
|
params: {
|
|
@@ -981,16 +1056,16 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
981
1056
|
}
|
|
982
1057
|
};
|
|
983
1058
|
const rawResponse = await this.sendRequest(request);
|
|
984
|
-
const
|
|
985
|
-
if (
|
|
986
|
-
throw new (0,
|
|
1059
|
+
const response2 = _chunkKAAWCHO4js.AddUserMessageResponseSchema.parse(rawResponse);
|
|
1060
|
+
if (response2.error) {
|
|
1061
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)("Add user message request failed", {
|
|
987
1062
|
requestId: request.id,
|
|
988
|
-
code:
|
|
989
|
-
message:
|
|
990
|
-
data:
|
|
1063
|
+
code: response2.error.code,
|
|
1064
|
+
message: response2.error.message,
|
|
1065
|
+
data: response2.error.data
|
|
991
1066
|
});
|
|
992
1067
|
}
|
|
993
|
-
return
|
|
1068
|
+
return response2;
|
|
994
1069
|
}
|
|
995
1070
|
/**
|
|
996
1071
|
* Persists user-only messages without starting an agent turn.
|
|
@@ -1000,158 +1075,158 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1000
1075
|
*/
|
|
1001
1076
|
async appendMessages(params, requestId) {
|
|
1002
1077
|
if (!this.currentSessionId) {
|
|
1003
|
-
throw new (0,
|
|
1078
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1004
1079
|
"No active session. Call initializeSession or loadSession first."
|
|
1005
1080
|
);
|
|
1006
1081
|
}
|
|
1007
1082
|
const request = {
|
|
1008
|
-
factoryApiVersion:
|
|
1009
|
-
factoryProtocolVersion:
|
|
1083
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1084
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1010
1085
|
type: "request",
|
|
1011
|
-
jsonrpc:
|
|
1086
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1012
1087
|
id: _nullishCoalesce(requestId, () => ( _uuid.v4.call(void 0, ))),
|
|
1013
1088
|
method: "droid.append_messages" /* APPEND_MESSAGES */,
|
|
1014
1089
|
params
|
|
1015
1090
|
};
|
|
1016
1091
|
const rawResponse = await this.sendRequest(request);
|
|
1017
|
-
const
|
|
1018
|
-
if (
|
|
1019
|
-
throw new (0,
|
|
1092
|
+
const response2 = _chunkKAAWCHO4js.AppendMessagesResponseSchema.parse(rawResponse);
|
|
1093
|
+
if (response2.error) {
|
|
1094
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)("Append messages request failed", {
|
|
1020
1095
|
requestId: request.id,
|
|
1021
|
-
code:
|
|
1022
|
-
message:
|
|
1023
|
-
data:
|
|
1096
|
+
code: response2.error.code,
|
|
1097
|
+
message: response2.error.message,
|
|
1098
|
+
data: response2.error.data
|
|
1024
1099
|
});
|
|
1025
1100
|
}
|
|
1026
|
-
return
|
|
1101
|
+
return response2;
|
|
1027
1102
|
}
|
|
1028
1103
|
async resolveQueuedUserMessage(params) {
|
|
1029
1104
|
if (!this.currentSessionId) {
|
|
1030
|
-
throw new (0,
|
|
1105
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1031
1106
|
"No active session. Call initializeSession or loadSession first."
|
|
1032
1107
|
);
|
|
1033
1108
|
}
|
|
1034
1109
|
const request = {
|
|
1035
|
-
factoryApiVersion:
|
|
1036
|
-
factoryProtocolVersion:
|
|
1110
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1111
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1037
1112
|
type: "request",
|
|
1038
|
-
jsonrpc:
|
|
1113
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1039
1114
|
id: _uuid.v4.call(void 0, ),
|
|
1040
1115
|
method: "droid.resolve_queued_user_message" /* RESOLVE_QUEUED_USER_MESSAGE */,
|
|
1041
1116
|
params
|
|
1042
1117
|
};
|
|
1043
1118
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1044
|
-
const
|
|
1045
|
-
if (
|
|
1046
|
-
throw new (0,
|
|
1119
|
+
const response2 = _chunkKAAWCHO4js.ResolveQueuedUserMessageResponseSchema.parse(rawResponse);
|
|
1120
|
+
if (response2.error) {
|
|
1121
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)("Resolve queued user message request failed", {
|
|
1047
1122
|
requestId: request.id,
|
|
1048
|
-
code:
|
|
1049
|
-
message:
|
|
1050
|
-
data:
|
|
1123
|
+
code: response2.error.code,
|
|
1124
|
+
message: response2.error.message,
|
|
1125
|
+
data: response2.error.data
|
|
1051
1126
|
});
|
|
1052
1127
|
}
|
|
1053
|
-
return
|
|
1128
|
+
return response2;
|
|
1054
1129
|
}
|
|
1055
1130
|
async interruptSession(params = {}) {
|
|
1056
1131
|
if (!this.currentSessionId) {
|
|
1057
|
-
throw new (0,
|
|
1132
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1058
1133
|
"No active session. Call initializeSession or loadSession first."
|
|
1059
1134
|
);
|
|
1060
1135
|
}
|
|
1061
1136
|
const request = {
|
|
1062
|
-
factoryApiVersion:
|
|
1063
|
-
factoryProtocolVersion:
|
|
1137
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1138
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1064
1139
|
type: "request",
|
|
1065
|
-
jsonrpc:
|
|
1140
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1066
1141
|
id: _uuid.v4.call(void 0, ),
|
|
1067
1142
|
method: "droid.interrupt_session" /* INTERRUPT_SESSION */,
|
|
1068
1143
|
params
|
|
1069
1144
|
};
|
|
1070
1145
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1071
|
-
const
|
|
1072
|
-
if (
|
|
1073
|
-
throw new (0,
|
|
1146
|
+
const response2 = _chunkKAAWCHO4js.InterruptSessionResponseSchema.parse(rawResponse);
|
|
1147
|
+
if (response2.error) {
|
|
1148
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)("Interrupt session request failed", {
|
|
1074
1149
|
requestId: request.id,
|
|
1075
|
-
code:
|
|
1076
|
-
message:
|
|
1077
|
-
data:
|
|
1150
|
+
code: response2.error.code,
|
|
1151
|
+
message: response2.error.message,
|
|
1152
|
+
data: response2.error.data
|
|
1078
1153
|
});
|
|
1079
1154
|
}
|
|
1080
|
-
return
|
|
1155
|
+
return response2;
|
|
1081
1156
|
}
|
|
1082
1157
|
async closeSession(params = {}) {
|
|
1083
1158
|
if (!this.currentSessionId) {
|
|
1084
|
-
throw new (0,
|
|
1159
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1085
1160
|
"No active session. Call initializeSession or loadSession first."
|
|
1086
1161
|
);
|
|
1087
1162
|
}
|
|
1088
1163
|
const request = {
|
|
1089
|
-
factoryApiVersion:
|
|
1090
|
-
factoryProtocolVersion:
|
|
1164
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1165
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1091
1166
|
type: "request",
|
|
1092
|
-
jsonrpc:
|
|
1167
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1093
1168
|
id: _uuid.v4.call(void 0, ),
|
|
1094
1169
|
method: "droid.close_session" /* CLOSE_SESSION */,
|
|
1095
1170
|
params
|
|
1096
1171
|
};
|
|
1097
1172
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1098
|
-
const
|
|
1099
|
-
if (
|
|
1100
|
-
throw new (0,
|
|
1173
|
+
const response2 = _chunkKAAWCHO4js.CloseSessionResponseSchema.parse(rawResponse);
|
|
1174
|
+
if (response2.error) {
|
|
1175
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)("Close session request failed", {
|
|
1101
1176
|
requestId: request.id,
|
|
1102
|
-
code:
|
|
1103
|
-
message:
|
|
1104
|
-
data:
|
|
1177
|
+
code: response2.error.code,
|
|
1178
|
+
message: response2.error.message,
|
|
1179
|
+
data: response2.error.data
|
|
1105
1180
|
});
|
|
1106
1181
|
}
|
|
1107
|
-
return
|
|
1182
|
+
return response2;
|
|
1108
1183
|
}
|
|
1109
1184
|
async killWorkerSession(params) {
|
|
1110
1185
|
if (!this.currentSessionId) {
|
|
1111
|
-
throw new (0,
|
|
1186
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1112
1187
|
"No active session. Call initializeSession or loadSession first."
|
|
1113
1188
|
);
|
|
1114
1189
|
}
|
|
1115
1190
|
const request = {
|
|
1116
|
-
factoryApiVersion:
|
|
1117
|
-
factoryProtocolVersion:
|
|
1191
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1192
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1118
1193
|
type: "request",
|
|
1119
|
-
jsonrpc:
|
|
1194
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1120
1195
|
id: _uuid.v4.call(void 0, ),
|
|
1121
1196
|
method: "droid.kill_worker_session" /* KILL_WORKER_SESSION */,
|
|
1122
1197
|
params
|
|
1123
1198
|
};
|
|
1124
1199
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1125
|
-
const
|
|
1126
|
-
if (
|
|
1127
|
-
throw new (0,
|
|
1200
|
+
const response2 = _chunkKAAWCHO4js.KillWorkerSessionResponseSchema.parse(rawResponse);
|
|
1201
|
+
if (response2.error) {
|
|
1202
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)("Kill worker session request failed", {
|
|
1128
1203
|
requestId: request.id,
|
|
1129
|
-
code:
|
|
1130
|
-
message:
|
|
1131
|
-
data:
|
|
1204
|
+
code: response2.error.code,
|
|
1205
|
+
message: response2.error.message,
|
|
1206
|
+
data: response2.error.data
|
|
1132
1207
|
});
|
|
1133
1208
|
}
|
|
1134
|
-
return
|
|
1209
|
+
return response2;
|
|
1135
1210
|
}
|
|
1136
1211
|
async updateSessionSettings(params, requestId) {
|
|
1137
1212
|
if (!this.currentSessionId) {
|
|
1138
|
-
throw new (0,
|
|
1213
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1139
1214
|
"No active session. Call initializeSession or loadSession first."
|
|
1140
1215
|
);
|
|
1141
1216
|
}
|
|
1142
1217
|
const request = {
|
|
1143
|
-
factoryApiVersion:
|
|
1144
|
-
factoryProtocolVersion:
|
|
1218
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1219
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1145
1220
|
type: "request",
|
|
1146
|
-
jsonrpc:
|
|
1221
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1147
1222
|
id: _nullishCoalesce(requestId, () => ( _uuid.v4.call(void 0, ))),
|
|
1148
1223
|
method: "droid.update_session_settings" /* UPDATE_SESSION_SETTINGS */,
|
|
1149
|
-
params
|
|
1224
|
+
params: _chunkKAAWCHO4js.sessionTagsUpdateForPeer.call(void 0, params, this.peerProtocolVersion)
|
|
1150
1225
|
};
|
|
1151
1226
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1152
|
-
const responseParsed =
|
|
1227
|
+
const responseParsed = _chunkKAAWCHO4js.UpdateSessionSettingsResponseSchema.safeParse(rawResponse);
|
|
1153
1228
|
if (!responseParsed.success) {
|
|
1154
|
-
throw new (0,
|
|
1229
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)(
|
|
1155
1230
|
"Invalid update session settings response format",
|
|
1156
1231
|
{
|
|
1157
1232
|
requestId: request.id,
|
|
@@ -1161,55 +1236,55 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1161
1236
|
}
|
|
1162
1237
|
);
|
|
1163
1238
|
}
|
|
1164
|
-
const
|
|
1165
|
-
if (
|
|
1166
|
-
throw new (0,
|
|
1239
|
+
const response2 = responseParsed.data;
|
|
1240
|
+
if (response2.error) {
|
|
1241
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)("Update session settings request failed", {
|
|
1167
1242
|
requestId: request.id,
|
|
1168
|
-
code:
|
|
1169
|
-
message:
|
|
1170
|
-
data:
|
|
1243
|
+
code: response2.error.code,
|
|
1244
|
+
message: response2.error.message,
|
|
1245
|
+
data: response2.error.data
|
|
1171
1246
|
});
|
|
1172
1247
|
}
|
|
1173
|
-
return
|
|
1248
|
+
return response2;
|
|
1174
1249
|
}
|
|
1175
1250
|
async changeWorkingDirectory(params) {
|
|
1176
1251
|
if (!this.currentSessionId) {
|
|
1177
|
-
throw new (0,
|
|
1252
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1178
1253
|
"No active session. Call initializeSession or loadSession first."
|
|
1179
1254
|
);
|
|
1180
1255
|
}
|
|
1181
1256
|
const request = {
|
|
1182
|
-
factoryApiVersion:
|
|
1183
|
-
factoryProtocolVersion:
|
|
1257
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1258
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1184
1259
|
type: "request",
|
|
1185
|
-
jsonrpc:
|
|
1260
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1186
1261
|
id: _uuid.v4.call(void 0, ),
|
|
1187
1262
|
method: "droid.change_working_directory" /* CHANGE_WORKING_DIRECTORY */,
|
|
1188
1263
|
params
|
|
1189
1264
|
};
|
|
1190
1265
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1191
|
-
const
|
|
1192
|
-
if (
|
|
1193
|
-
throw new (0,
|
|
1266
|
+
const response2 = _chunkKAAWCHO4js.ChangeWorkingDirectoryResponseSchema.parse(rawResponse);
|
|
1267
|
+
if (response2.error) {
|
|
1268
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)("Change working directory request failed", {
|
|
1194
1269
|
requestId: request.id,
|
|
1195
|
-
code:
|
|
1196
|
-
message:
|
|
1197
|
-
data:
|
|
1270
|
+
code: response2.error.code,
|
|
1271
|
+
message: response2.error.message,
|
|
1272
|
+
data: response2.error.data
|
|
1198
1273
|
});
|
|
1199
1274
|
}
|
|
1200
|
-
return
|
|
1275
|
+
return response2;
|
|
1201
1276
|
}
|
|
1202
1277
|
async toggleMcpServer(params) {
|
|
1203
1278
|
if (!this.currentSessionId) {
|
|
1204
|
-
throw new (0,
|
|
1279
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1205
1280
|
"No active session. Call initializeSession or loadSession first."
|
|
1206
1281
|
);
|
|
1207
1282
|
}
|
|
1208
1283
|
const request = {
|
|
1209
|
-
factoryApiVersion:
|
|
1210
|
-
factoryProtocolVersion:
|
|
1284
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1285
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1211
1286
|
type: "request",
|
|
1212
|
-
jsonrpc:
|
|
1287
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1213
1288
|
id: _uuid.v4.call(void 0, ),
|
|
1214
1289
|
method: "droid.toggle_mcp_server" /* TOGGLE_MCP_SERVER */,
|
|
1215
1290
|
params: {
|
|
@@ -1219,20 +1294,20 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1219
1294
|
}
|
|
1220
1295
|
};
|
|
1221
1296
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1222
|
-
const
|
|
1223
|
-
return
|
|
1297
|
+
const response2 = _chunkKAAWCHO4js.ToggleMcpServerResponseSchema.parse(rawResponse);
|
|
1298
|
+
return response2;
|
|
1224
1299
|
}
|
|
1225
1300
|
async authenticateMcpServer(params) {
|
|
1226
1301
|
if (!this.currentSessionId) {
|
|
1227
|
-
throw new (0,
|
|
1302
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1228
1303
|
"No active session. Call initializeSession or loadSession first."
|
|
1229
1304
|
);
|
|
1230
1305
|
}
|
|
1231
1306
|
const request = {
|
|
1232
|
-
factoryApiVersion:
|
|
1233
|
-
factoryProtocolVersion:
|
|
1307
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1308
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1234
1309
|
type: "request",
|
|
1235
|
-
jsonrpc:
|
|
1310
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1236
1311
|
id: _uuid.v4.call(void 0, ),
|
|
1237
1312
|
method: "droid.authenticate_mcp_server" /* AUTHENTICATE_MCP_SERVER */,
|
|
1238
1313
|
params: {
|
|
@@ -1240,20 +1315,20 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1240
1315
|
}
|
|
1241
1316
|
};
|
|
1242
1317
|
const rawResponse = await this.sendRequest(request, MCP_AUTH_TIMEOUT2);
|
|
1243
|
-
const
|
|
1244
|
-
return
|
|
1318
|
+
const response2 = _chunkKAAWCHO4js.AuthenticateMcpServerResponseSchema.parse(rawResponse);
|
|
1319
|
+
return response2;
|
|
1245
1320
|
}
|
|
1246
1321
|
async cancelMcpAuth(params) {
|
|
1247
1322
|
if (!this.currentSessionId) {
|
|
1248
|
-
throw new (0,
|
|
1323
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1249
1324
|
"No active session. Call initializeSession or loadSession first."
|
|
1250
1325
|
);
|
|
1251
1326
|
}
|
|
1252
1327
|
const request = {
|
|
1253
|
-
factoryApiVersion:
|
|
1254
|
-
factoryProtocolVersion:
|
|
1328
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1329
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1255
1330
|
type: "request",
|
|
1256
|
-
jsonrpc:
|
|
1331
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1257
1332
|
id: _uuid.v4.call(void 0, ),
|
|
1258
1333
|
method: "droid.cancel_mcp_auth" /* CANCEL_MCP_AUTH */,
|
|
1259
1334
|
params: {
|
|
@@ -1261,20 +1336,20 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1261
1336
|
}
|
|
1262
1337
|
};
|
|
1263
1338
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1264
|
-
const
|
|
1265
|
-
return
|
|
1339
|
+
const response2 = _chunkKAAWCHO4js.CancelMcpAuthResponseSchema.parse(rawResponse);
|
|
1340
|
+
return response2;
|
|
1266
1341
|
}
|
|
1267
1342
|
async clearMcpAuth(params) {
|
|
1268
1343
|
if (!this.currentSessionId) {
|
|
1269
|
-
throw new (0,
|
|
1344
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1270
1345
|
"No active session. Call initializeSession or loadSession first."
|
|
1271
1346
|
);
|
|
1272
1347
|
}
|
|
1273
1348
|
const request = {
|
|
1274
|
-
factoryApiVersion:
|
|
1275
|
-
factoryProtocolVersion:
|
|
1349
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1350
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1276
1351
|
type: "request",
|
|
1277
|
-
jsonrpc:
|
|
1352
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1278
1353
|
id: _uuid.v4.call(void 0, ),
|
|
1279
1354
|
method: "droid.clear_mcp_auth" /* CLEAR_MCP_AUTH */,
|
|
1280
1355
|
params: {
|
|
@@ -1282,12 +1357,12 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1282
1357
|
}
|
|
1283
1358
|
};
|
|
1284
1359
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1285
|
-
const
|
|
1286
|
-
return
|
|
1360
|
+
const response2 = _chunkKAAWCHO4js.ClearMcpAuthResponseSchema.parse(rawResponse);
|
|
1361
|
+
return response2;
|
|
1287
1362
|
}
|
|
1288
1363
|
async addMcpServer(params) {
|
|
1289
1364
|
if (!this.currentSessionId) {
|
|
1290
|
-
throw new (0,
|
|
1365
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1291
1366
|
"No active session. Call initializeSession or loadSession first."
|
|
1292
1367
|
);
|
|
1293
1368
|
}
|
|
@@ -1295,302 +1370,360 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1295
1370
|
this.requireMcpOAuthOptOutSupport();
|
|
1296
1371
|
}
|
|
1297
1372
|
const request = {
|
|
1298
|
-
factoryApiVersion:
|
|
1299
|
-
factoryProtocolVersion:
|
|
1373
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1374
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1300
1375
|
type: "request",
|
|
1301
|
-
jsonrpc:
|
|
1376
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1302
1377
|
id: _uuid.v4.call(void 0, ),
|
|
1303
1378
|
method: "droid.add_mcp_server" /* ADD_MCP_SERVER */,
|
|
1304
1379
|
params
|
|
1305
1380
|
};
|
|
1306
1381
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1307
|
-
const
|
|
1308
|
-
return
|
|
1382
|
+
const response2 = _chunkKAAWCHO4js.AddMcpServerResponseSchema.parse(rawResponse);
|
|
1383
|
+
return response2;
|
|
1309
1384
|
}
|
|
1310
1385
|
async removeMcpServer(params) {
|
|
1311
1386
|
if (!this.currentSessionId) {
|
|
1312
|
-
throw new (0,
|
|
1387
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1313
1388
|
"No active session. Call initializeSession or loadSession first."
|
|
1314
1389
|
);
|
|
1315
1390
|
}
|
|
1316
1391
|
const request = {
|
|
1317
|
-
factoryApiVersion:
|
|
1318
|
-
factoryProtocolVersion:
|
|
1392
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1393
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1319
1394
|
type: "request",
|
|
1320
|
-
jsonrpc:
|
|
1395
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1321
1396
|
id: _uuid.v4.call(void 0, ),
|
|
1322
1397
|
method: "droid.remove_mcp_server" /* REMOVE_MCP_SERVER */,
|
|
1323
1398
|
params
|
|
1324
1399
|
};
|
|
1325
1400
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1326
|
-
const
|
|
1327
|
-
return
|
|
1401
|
+
const response2 = _chunkKAAWCHO4js.RemoveMcpServerResponseSchema.parse(rawResponse);
|
|
1402
|
+
return response2;
|
|
1328
1403
|
}
|
|
1329
1404
|
async listModels(params = {}) {
|
|
1330
1405
|
const request = {
|
|
1331
|
-
factoryApiVersion:
|
|
1332
|
-
factoryProtocolVersion:
|
|
1406
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1407
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1333
1408
|
type: "request",
|
|
1334
|
-
jsonrpc:
|
|
1409
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1335
1410
|
id: _uuid.v4.call(void 0, ),
|
|
1336
1411
|
method: "droid.list_models" /* LIST_MODELS */,
|
|
1337
1412
|
params
|
|
1338
1413
|
};
|
|
1339
1414
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1340
|
-
return
|
|
1415
|
+
return _chunkKAAWCHO4js.ListModelsResponseSchema.parse(rawResponse);
|
|
1341
1416
|
}
|
|
1342
1417
|
async listMcpRegistry() {
|
|
1343
1418
|
if (!this.currentSessionId) {
|
|
1344
|
-
throw new (0,
|
|
1419
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1345
1420
|
"No active session. Call initializeSession or loadSession first."
|
|
1346
1421
|
);
|
|
1347
1422
|
}
|
|
1348
1423
|
const request = {
|
|
1349
|
-
factoryApiVersion:
|
|
1350
|
-
factoryProtocolVersion:
|
|
1424
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1425
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1351
1426
|
type: "request",
|
|
1352
|
-
jsonrpc:
|
|
1427
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1353
1428
|
id: _uuid.v4.call(void 0, ),
|
|
1354
1429
|
method: "droid.list_mcp_registry" /* LIST_MCP_REGISTRY */,
|
|
1355
1430
|
params: {}
|
|
1356
1431
|
};
|
|
1357
1432
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1358
|
-
const
|
|
1359
|
-
return
|
|
1433
|
+
const response2 = _chunkKAAWCHO4js.ListMcpRegistryResponseSchema.parse(rawResponse);
|
|
1434
|
+
return response2;
|
|
1435
|
+
}
|
|
1436
|
+
async refreshConnectorToolCatalog(params = {}) {
|
|
1437
|
+
if (!this.currentSessionId) {
|
|
1438
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1439
|
+
"No active session. Call initializeSession or loadSession first."
|
|
1440
|
+
);
|
|
1441
|
+
}
|
|
1442
|
+
const request = {
|
|
1443
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1444
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1445
|
+
type: "request",
|
|
1446
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1447
|
+
id: _uuid.v4.call(void 0, ),
|
|
1448
|
+
method: "droid.refresh_connector_tool_catalog" /* REFRESH_CONNECTOR_TOOL_CATALOG */,
|
|
1449
|
+
params
|
|
1450
|
+
};
|
|
1451
|
+
const response2 = await this.sendRequest(request, this.requestTimeout);
|
|
1452
|
+
return _chunkKAAWCHO4js.RefreshConnectorToolCatalogResponseSchema.parse(response2);
|
|
1360
1453
|
}
|
|
1361
1454
|
async listMcpTools() {
|
|
1362
1455
|
if (!this.currentSessionId) {
|
|
1363
|
-
throw new (0,
|
|
1456
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1364
1457
|
"No active session. Call initializeSession or loadSession first."
|
|
1365
1458
|
);
|
|
1366
1459
|
}
|
|
1367
1460
|
const request = {
|
|
1368
|
-
factoryApiVersion:
|
|
1369
|
-
factoryProtocolVersion:
|
|
1461
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1462
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1370
1463
|
type: "request",
|
|
1371
|
-
jsonrpc:
|
|
1464
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1372
1465
|
id: _uuid.v4.call(void 0, ),
|
|
1373
1466
|
method: "droid.list_mcp_tools" /* LIST_MCP_TOOLS */,
|
|
1374
1467
|
params: {}
|
|
1375
1468
|
};
|
|
1376
1469
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1377
|
-
const
|
|
1378
|
-
return
|
|
1470
|
+
const response2 = _chunkKAAWCHO4js.ListMcpToolsResponseSchema.parse(rawResponse);
|
|
1471
|
+
return response2;
|
|
1379
1472
|
}
|
|
1380
1473
|
async listTools(params = {}) {
|
|
1474
|
+
const schemasRequested = params.includeSchemas === true;
|
|
1381
1475
|
const request = {
|
|
1382
|
-
factoryApiVersion:
|
|
1383
|
-
factoryProtocolVersion:
|
|
1476
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1477
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1384
1478
|
type: "request",
|
|
1385
|
-
jsonrpc:
|
|
1479
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1386
1480
|
id: _uuid.v4.call(void 0, ),
|
|
1387
1481
|
method: "droid.list_tools" /* LIST_TOOLS */,
|
|
1388
1482
|
params
|
|
1389
1483
|
};
|
|
1390
1484
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1391
|
-
const
|
|
1392
|
-
|
|
1485
|
+
const response2 = _chunkKAAWCHO4js.ListToolsResponseSchema.parse(rawResponse);
|
|
1486
|
+
if (!schemasRequested || !("result" in response2)) {
|
|
1487
|
+
return response2;
|
|
1488
|
+
}
|
|
1489
|
+
const strictResult = _chunkKAAWCHO4js.ListToolsResultWithSchemasSchema.safeParse(
|
|
1490
|
+
response2.result
|
|
1491
|
+
);
|
|
1492
|
+
if (strictResult.success) {
|
|
1493
|
+
return response2;
|
|
1494
|
+
}
|
|
1495
|
+
const result = _chunkKAAWCHO4js.ListToolsResultSchema.parse(response2.result);
|
|
1496
|
+
const missingSchemaIds = [];
|
|
1497
|
+
for (const tool2 of result.tools) {
|
|
1498
|
+
if (tool2.schemas === void 0) {
|
|
1499
|
+
missingSchemaIds.push(tool2.llmId);
|
|
1500
|
+
}
|
|
1501
|
+
}
|
|
1502
|
+
if (missingSchemaIds.length > 0) {
|
|
1503
|
+
throw new (0, _chunkKAAWCHO4js.ProtocolError)(
|
|
1504
|
+
`The installed Droid version did not return requested schemas for tool IDs: ${missingSchemaIds.join(", ")}. Update Droid and try again.`
|
|
1505
|
+
);
|
|
1506
|
+
}
|
|
1507
|
+
throw strictResult.error;
|
|
1393
1508
|
}
|
|
1394
1509
|
async listMcpServers() {
|
|
1395
1510
|
if (!this.currentSessionId) {
|
|
1396
|
-
throw new (0,
|
|
1511
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1397
1512
|
"No active session. Call initializeSession or loadSession first."
|
|
1398
1513
|
);
|
|
1399
1514
|
}
|
|
1400
1515
|
const request = {
|
|
1401
|
-
factoryApiVersion:
|
|
1402
|
-
factoryProtocolVersion:
|
|
1516
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1517
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1403
1518
|
type: "request",
|
|
1404
|
-
jsonrpc:
|
|
1519
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1405
1520
|
id: _uuid.v4.call(void 0, ),
|
|
1406
1521
|
method: "droid.list_mcp_servers" /* LIST_MCP_SERVERS */,
|
|
1407
1522
|
params: {}
|
|
1408
1523
|
};
|
|
1409
1524
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1410
|
-
const
|
|
1411
|
-
return
|
|
1525
|
+
const response2 = _chunkKAAWCHO4js.ListMcpServersResponseSchema.parse(rawResponse);
|
|
1526
|
+
return response2;
|
|
1412
1527
|
}
|
|
1413
1528
|
async toggleMcpTool(serverName, toolName, enabled) {
|
|
1414
1529
|
if (!this.currentSessionId) {
|
|
1415
|
-
throw new (0,
|
|
1530
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1416
1531
|
"No active session. Call initializeSession or loadSession first."
|
|
1417
1532
|
);
|
|
1418
1533
|
}
|
|
1419
1534
|
const request = {
|
|
1420
|
-
factoryApiVersion:
|
|
1421
|
-
factoryProtocolVersion:
|
|
1535
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1536
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1422
1537
|
type: "request",
|
|
1423
|
-
jsonrpc:
|
|
1538
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1424
1539
|
id: _uuid.v4.call(void 0, ),
|
|
1425
1540
|
method: "droid.toggle_mcp_tool" /* TOGGLE_MCP_TOOL */,
|
|
1426
1541
|
params: { serverName, toolName, enabled }
|
|
1427
1542
|
};
|
|
1428
1543
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1429
|
-
const
|
|
1430
|
-
return
|
|
1544
|
+
const response2 = _chunkKAAWCHO4js.ToggleMcpToolResponseSchema.parse(rawResponse);
|
|
1545
|
+
return response2;
|
|
1431
1546
|
}
|
|
1432
1547
|
async submitMcpAuthCode(params) {
|
|
1433
1548
|
if (!this.currentSessionId) {
|
|
1434
|
-
throw new (0,
|
|
1549
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1435
1550
|
"No active session. Call initializeSession or loadSession first."
|
|
1436
1551
|
);
|
|
1437
1552
|
}
|
|
1438
1553
|
const request = {
|
|
1439
|
-
factoryApiVersion:
|
|
1440
|
-
factoryProtocolVersion:
|
|
1554
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1555
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1441
1556
|
type: "request",
|
|
1442
|
-
jsonrpc:
|
|
1557
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1443
1558
|
id: _uuid.v4.call(void 0, ),
|
|
1444
1559
|
method: "droid.submit_mcp_auth_code" /* SUBMIT_MCP_AUTH_CODE */,
|
|
1445
1560
|
params
|
|
1446
1561
|
};
|
|
1447
1562
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1448
|
-
const
|
|
1449
|
-
return
|
|
1563
|
+
const response2 = _chunkKAAWCHO4js.SubmitMcpAuthCodeResponseSchema.parse(rawResponse);
|
|
1564
|
+
return response2;
|
|
1450
1565
|
}
|
|
1451
1566
|
async submitMcpAuthError(params) {
|
|
1452
1567
|
if (!this.currentSessionId) {
|
|
1453
|
-
throw new (0,
|
|
1568
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1454
1569
|
"No active session. Call initializeSession or loadSession first."
|
|
1455
1570
|
);
|
|
1456
1571
|
}
|
|
1457
1572
|
const request = {
|
|
1458
|
-
factoryApiVersion:
|
|
1459
|
-
factoryProtocolVersion:
|
|
1573
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1574
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1460
1575
|
type: "request",
|
|
1461
|
-
jsonrpc:
|
|
1576
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1462
1577
|
id: _uuid.v4.call(void 0, ),
|
|
1463
1578
|
method: "droid.submit_mcp_auth_error" /* SUBMIT_MCP_AUTH_ERROR */,
|
|
1464
1579
|
params
|
|
1465
1580
|
};
|
|
1466
1581
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1467
|
-
const
|
|
1468
|
-
return
|
|
1582
|
+
const response2 = _chunkKAAWCHO4js.SubmitMcpAuthErrorResponseSchema.parse(rawResponse);
|
|
1583
|
+
return response2;
|
|
1469
1584
|
}
|
|
1470
|
-
async listSkills() {
|
|
1585
|
+
async listSkills(params = {}) {
|
|
1471
1586
|
if (!this.currentSessionId) {
|
|
1472
|
-
throw new (0,
|
|
1587
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1473
1588
|
"No active session. Call initializeSession or loadSession first."
|
|
1474
1589
|
);
|
|
1475
1590
|
}
|
|
1476
1591
|
const request = {
|
|
1477
|
-
factoryApiVersion:
|
|
1478
|
-
factoryProtocolVersion:
|
|
1592
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1593
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1479
1594
|
type: "request",
|
|
1480
|
-
jsonrpc:
|
|
1595
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1481
1596
|
id: _uuid.v4.call(void 0, ),
|
|
1482
1597
|
method: "droid.list_skills" /* LIST_SKILLS */,
|
|
1483
|
-
params
|
|
1598
|
+
params
|
|
1484
1599
|
};
|
|
1485
1600
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1486
|
-
const
|
|
1487
|
-
return
|
|
1601
|
+
const response2 = _chunkKAAWCHO4js.ListSkillsResponseSchema.parse(rawResponse);
|
|
1602
|
+
return response2;
|
|
1488
1603
|
}
|
|
1489
1604
|
async setSkillDisabled(skillName, disabled, settingsLevel) {
|
|
1490
1605
|
if (!this.currentSessionId) {
|
|
1491
|
-
throw new (0,
|
|
1606
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1492
1607
|
"No active session. Call initializeSession or loadSession first."
|
|
1493
1608
|
);
|
|
1494
1609
|
}
|
|
1495
1610
|
const request = {
|
|
1496
|
-
factoryApiVersion:
|
|
1497
|
-
factoryProtocolVersion:
|
|
1611
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1612
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1498
1613
|
type: "request",
|
|
1499
|
-
jsonrpc:
|
|
1614
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1500
1615
|
id: _uuid.v4.call(void 0, ),
|
|
1501
1616
|
method: "droid.set_skill_disabled" /* SET_SKILL_DISABLED */,
|
|
1502
1617
|
params: { skillName, disabled, settingsLevel }
|
|
1503
1618
|
};
|
|
1504
1619
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1505
|
-
return
|
|
1620
|
+
return _chunkKAAWCHO4js.SetSkillDisabledResponseSchema.parse(rawResponse);
|
|
1506
1621
|
}
|
|
1507
1622
|
async listCommands() {
|
|
1508
1623
|
if (!this.currentSessionId) {
|
|
1509
|
-
throw new (0,
|
|
1624
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1510
1625
|
"No active session. Call initializeSession or loadSession first."
|
|
1511
1626
|
);
|
|
1512
1627
|
}
|
|
1513
1628
|
const request = {
|
|
1514
|
-
factoryApiVersion:
|
|
1515
|
-
factoryProtocolVersion:
|
|
1629
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1630
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1516
1631
|
type: "request",
|
|
1517
|
-
jsonrpc:
|
|
1632
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1518
1633
|
id: _uuid.v4.call(void 0, ),
|
|
1519
1634
|
method: "droid.list_commands" /* LIST_COMMANDS */,
|
|
1520
1635
|
params: {}
|
|
1521
1636
|
};
|
|
1522
1637
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1523
|
-
const
|
|
1524
|
-
return
|
|
1638
|
+
const response2 = _chunkKAAWCHO4js.ListCommandsResponseSchema.parse(rawResponse);
|
|
1639
|
+
return response2;
|
|
1525
1640
|
}
|
|
1526
1641
|
async getContextStats() {
|
|
1527
1642
|
if (!this.currentSessionId) {
|
|
1528
|
-
throw new (0,
|
|
1643
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1529
1644
|
"No active session. Call initializeSession or loadSession first."
|
|
1530
1645
|
);
|
|
1531
1646
|
}
|
|
1532
1647
|
const request = {
|
|
1533
|
-
factoryApiVersion:
|
|
1534
|
-
factoryProtocolVersion:
|
|
1648
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1649
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1535
1650
|
type: "request",
|
|
1536
|
-
jsonrpc:
|
|
1651
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1537
1652
|
id: _uuid.v4.call(void 0, ),
|
|
1538
1653
|
method: "droid.get_context_stats" /* GET_CONTEXT_STATS */,
|
|
1539
1654
|
params: {}
|
|
1540
1655
|
};
|
|
1541
1656
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1542
|
-
const
|
|
1543
|
-
return
|
|
1657
|
+
const response2 = _chunkKAAWCHO4js.GetContextStatsResponseSchema.parse(rawResponse);
|
|
1658
|
+
return response2;
|
|
1544
1659
|
}
|
|
1545
1660
|
async getContextBreakdown() {
|
|
1546
1661
|
if (!this.currentSessionId) {
|
|
1547
|
-
throw new (0,
|
|
1662
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1548
1663
|
"No active session. Call initializeSession or loadSession first."
|
|
1549
1664
|
);
|
|
1550
1665
|
}
|
|
1551
1666
|
const request = {
|
|
1552
|
-
factoryApiVersion:
|
|
1553
|
-
factoryProtocolVersion:
|
|
1667
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1668
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1554
1669
|
type: "request",
|
|
1555
|
-
jsonrpc:
|
|
1670
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1556
1671
|
id: _uuid.v4.call(void 0, ),
|
|
1557
1672
|
method: "droid.get_context_breakdown" /* GET_CONTEXT_BREAKDOWN */,
|
|
1558
1673
|
params: {}
|
|
1559
1674
|
};
|
|
1560
1675
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1561
|
-
const
|
|
1562
|
-
return
|
|
1676
|
+
const response2 = _chunkKAAWCHO4js.GetContextBreakdownResponseSchema.parse(rawResponse);
|
|
1677
|
+
return response2;
|
|
1678
|
+
}
|
|
1679
|
+
async killBackgroundProcess(processId) {
|
|
1680
|
+
if (!this.currentSessionId) {
|
|
1681
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1682
|
+
"No active session. Call initializeSession or loadSession first."
|
|
1683
|
+
);
|
|
1684
|
+
}
|
|
1685
|
+
const request = {
|
|
1686
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1687
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1688
|
+
type: "request",
|
|
1689
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1690
|
+
id: _uuid.v4.call(void 0, ),
|
|
1691
|
+
method: "droid.kill_background_process" /* KILL_BACKGROUND_PROCESS */,
|
|
1692
|
+
params: { processId }
|
|
1693
|
+
};
|
|
1694
|
+
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1695
|
+
return _chunkKAAWCHO4js.KillBackgroundProcessResponseSchema.parse(rawResponse);
|
|
1563
1696
|
}
|
|
1564
|
-
async submitBugReport(userComment, clientLogs, source) {
|
|
1697
|
+
async submitBugReport(userComment, clientLogs, source, tuiLogs) {
|
|
1565
1698
|
if (!this.currentSessionId) {
|
|
1566
|
-
throw new (0,
|
|
1699
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1567
1700
|
"No active session. Call initializeSession or loadSession first."
|
|
1568
1701
|
);
|
|
1569
1702
|
}
|
|
1570
1703
|
const request = {
|
|
1571
|
-
factoryApiVersion:
|
|
1572
|
-
factoryProtocolVersion:
|
|
1704
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1705
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1573
1706
|
type: "request",
|
|
1574
|
-
jsonrpc:
|
|
1707
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1575
1708
|
id: _uuid.v4.call(void 0, ),
|
|
1576
1709
|
method: "droid.submit_bug_report" /* SUBMIT_BUG_REPORT */,
|
|
1577
|
-
params: { userComment, clientLogs, source }
|
|
1710
|
+
params: { userComment, clientLogs, source, tuiLogs }
|
|
1578
1711
|
};
|
|
1579
1712
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1580
|
-
const
|
|
1581
|
-
return
|
|
1713
|
+
const response2 = _chunkKAAWCHO4js.SubmitBugReportResponseSchema.parse(rawResponse);
|
|
1714
|
+
return response2;
|
|
1582
1715
|
}
|
|
1583
1716
|
async getRewindInfo(params, timeout = this.requestTimeout) {
|
|
1584
1717
|
if (!this.currentSessionId) {
|
|
1585
|
-
throw new (0,
|
|
1718
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1586
1719
|
"No active session. Call initializeSession or loadSession first."
|
|
1587
1720
|
);
|
|
1588
1721
|
}
|
|
1589
1722
|
const request = {
|
|
1590
|
-
factoryApiVersion:
|
|
1591
|
-
factoryProtocolVersion:
|
|
1723
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1724
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1592
1725
|
type: "request",
|
|
1593
|
-
jsonrpc:
|
|
1726
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1594
1727
|
id: _uuid.v4.call(void 0, ),
|
|
1595
1728
|
method: "droid.get_rewind_info" /* GET_REWIND_INFO */,
|
|
1596
1729
|
params: {
|
|
@@ -1599,19 +1732,19 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1599
1732
|
}
|
|
1600
1733
|
};
|
|
1601
1734
|
const rawResponse = await this.sendRequest(request, timeout);
|
|
1602
|
-
return
|
|
1735
|
+
return _chunkKAAWCHO4js.GetRewindInfoResponseSchema.parse(rawResponse);
|
|
1603
1736
|
}
|
|
1604
1737
|
async executeRewind(params) {
|
|
1605
1738
|
if (!this.currentSessionId) {
|
|
1606
|
-
throw new (0,
|
|
1739
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1607
1740
|
"No active session. Call initializeSession or loadSession first."
|
|
1608
1741
|
);
|
|
1609
1742
|
}
|
|
1610
1743
|
const request = {
|
|
1611
|
-
factoryApiVersion:
|
|
1612
|
-
factoryProtocolVersion:
|
|
1744
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1745
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1613
1746
|
type: "request",
|
|
1614
|
-
jsonrpc:
|
|
1747
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1615
1748
|
id: _uuid.v4.call(void 0, ),
|
|
1616
1749
|
method: "droid.execute_rewind" /* EXECUTE_REWIND */,
|
|
1617
1750
|
params: {
|
|
@@ -1626,57 +1759,96 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1626
1759
|
request,
|
|
1627
1760
|
this.requestTimeout * 2
|
|
1628
1761
|
);
|
|
1629
|
-
return
|
|
1762
|
+
return _chunkKAAWCHO4js.ExecuteRewindResponseSchema.parse(rawResponse);
|
|
1630
1763
|
}
|
|
1631
1764
|
async compactSession(params) {
|
|
1632
1765
|
if (!this.currentSessionId) {
|
|
1633
|
-
throw new (0,
|
|
1766
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1634
1767
|
"No active session. Call initializeSession or loadSession first."
|
|
1635
1768
|
);
|
|
1636
1769
|
}
|
|
1637
1770
|
const request = {
|
|
1638
|
-
factoryApiVersion:
|
|
1639
|
-
factoryProtocolVersion:
|
|
1771
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1772
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1640
1773
|
type: "request",
|
|
1641
|
-
jsonrpc:
|
|
1774
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1642
1775
|
id: _uuid.v4.call(void 0, ),
|
|
1643
1776
|
method: "droid.compact_session" /* COMPACT_SESSION */,
|
|
1644
1777
|
params: {
|
|
1645
|
-
customInstructions: params.customInstructions
|
|
1778
|
+
customInstructions: params.customInstructions,
|
|
1779
|
+
mode: params.mode
|
|
1646
1780
|
}
|
|
1647
1781
|
};
|
|
1648
1782
|
const rawResponse = await this.sendRequest(request, COMPACTION_TIMEOUT2);
|
|
1649
|
-
return
|
|
1783
|
+
return _chunkKAAWCHO4js.CompactSessionResponseSchema.parse(rawResponse);
|
|
1784
|
+
}
|
|
1785
|
+
/** Summarizes the session the way `/handoff` does, without writing anything. */
|
|
1786
|
+
async getHandoffSummary() {
|
|
1787
|
+
if (!this.currentSessionId) {
|
|
1788
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1789
|
+
"No active session. Call initializeSession or loadSession first."
|
|
1790
|
+
);
|
|
1791
|
+
}
|
|
1792
|
+
const request = {
|
|
1793
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1794
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1795
|
+
type: "request",
|
|
1796
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1797
|
+
id: _uuid.v4.call(void 0, ),
|
|
1798
|
+
method: "droid.get_handoff_summary" /* GET_HANDOFF_SUMMARY */,
|
|
1799
|
+
params: {}
|
|
1800
|
+
};
|
|
1801
|
+
const rawResponse = await this.sendRequest(request, COMPACTION_TIMEOUT2);
|
|
1802
|
+
return _chunkKAAWCHO4js.GetHandoffSummaryResponseSchema.parse(rawResponse);
|
|
1803
|
+
}
|
|
1804
|
+
/** Writes the short summary people joining a shared copy read first. */
|
|
1805
|
+
async summarizeForMembers(params) {
|
|
1806
|
+
if (!this.currentSessionId) {
|
|
1807
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1808
|
+
"No active session. Call initializeSession or loadSession first."
|
|
1809
|
+
);
|
|
1810
|
+
}
|
|
1811
|
+
const request = {
|
|
1812
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1813
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1814
|
+
type: "request",
|
|
1815
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1816
|
+
id: _uuid.v4.call(void 0, ),
|
|
1817
|
+
method: "droid.summarize_for_members" /* SUMMARIZE_FOR_MEMBERS */,
|
|
1818
|
+
params: { handoffSummary: params.handoffSummary }
|
|
1819
|
+
};
|
|
1820
|
+
const rawResponse = await this.sendRequest(request, COMPACTION_TIMEOUT2);
|
|
1821
|
+
return _chunkKAAWCHO4js.SummarizeForMembersResponseSchema.parse(rawResponse);
|
|
1650
1822
|
}
|
|
1651
1823
|
async forkSession(params) {
|
|
1652
1824
|
if (!this.currentSessionId) {
|
|
1653
|
-
throw new (0,
|
|
1825
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1654
1826
|
"No active session. Call initializeSession or loadSession first."
|
|
1655
1827
|
);
|
|
1656
1828
|
}
|
|
1657
1829
|
const request = {
|
|
1658
|
-
factoryApiVersion:
|
|
1659
|
-
factoryProtocolVersion:
|
|
1830
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1831
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1660
1832
|
type: "request",
|
|
1661
|
-
jsonrpc:
|
|
1833
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1662
1834
|
id: _uuid.v4.call(void 0, ),
|
|
1663
1835
|
method: "droid.fork_session" /* FORK_SESSION */,
|
|
1664
1836
|
params: _nullishCoalesce(params, () => ( {}))
|
|
1665
1837
|
};
|
|
1666
1838
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1667
|
-
return
|
|
1839
|
+
return _chunkKAAWCHO4js.ForkSessionResponseSchema.parse(rawResponse);
|
|
1668
1840
|
}
|
|
1669
1841
|
async renameSession(params, requestId) {
|
|
1670
1842
|
if (!this.currentSessionId) {
|
|
1671
|
-
throw new (0,
|
|
1843
|
+
throw new (0, _chunkKAAWCHO4js.SessionError)(
|
|
1672
1844
|
"No active session. Call initializeSession or loadSession first."
|
|
1673
1845
|
);
|
|
1674
1846
|
}
|
|
1675
1847
|
const request = {
|
|
1676
|
-
factoryApiVersion:
|
|
1677
|
-
factoryProtocolVersion:
|
|
1848
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1849
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1678
1850
|
type: "request",
|
|
1679
|
-
jsonrpc:
|
|
1851
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1680
1852
|
id: _nullishCoalesce(requestId, () => ( _uuid.v4.call(void 0, ))),
|
|
1681
1853
|
method: "droid.rename_session" /* RENAME_SESSION */,
|
|
1682
1854
|
params: {
|
|
@@ -1684,18 +1856,18 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1684
1856
|
}
|
|
1685
1857
|
};
|
|
1686
1858
|
const rawResponse = await this.sendRequest(request, this.requestTimeout);
|
|
1687
|
-
return
|
|
1859
|
+
return _chunkKAAWCHO4js.RenameSessionResponseSchema.parse(rawResponse);
|
|
1688
1860
|
}
|
|
1689
1861
|
async warmupCache() {
|
|
1690
|
-
const
|
|
1691
|
-
factoryApiVersion:
|
|
1692
|
-
factoryProtocolVersion:
|
|
1862
|
+
const response2 = {
|
|
1863
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
1864
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
1693
1865
|
type: "response",
|
|
1694
|
-
jsonrpc:
|
|
1866
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
1695
1867
|
id: _uuid.v4.call(void 0, ),
|
|
1696
1868
|
result: {}
|
|
1697
1869
|
};
|
|
1698
|
-
return
|
|
1870
|
+
return _chunkKAAWCHO4js.WarmupCacheResponseSchema.parse(response2);
|
|
1699
1871
|
}
|
|
1700
1872
|
onNotification(callback, filter) {
|
|
1701
1873
|
const handler = (notification) => {
|
|
@@ -1704,7 +1876,7 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1704
1876
|
}
|
|
1705
1877
|
try {
|
|
1706
1878
|
callback(notification);
|
|
1707
|
-
} catch (
|
|
1879
|
+
} catch (e2) {
|
|
1708
1880
|
}
|
|
1709
1881
|
};
|
|
1710
1882
|
this.on("session_notification" /* SESSION_NOTIFICATION */, handler);
|
|
@@ -1714,7 +1886,7 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1714
1886
|
const handler = (error) => {
|
|
1715
1887
|
try {
|
|
1716
1888
|
callback(error);
|
|
1717
|
-
} catch (
|
|
1889
|
+
} catch (e3) {
|
|
1718
1890
|
}
|
|
1719
1891
|
};
|
|
1720
1892
|
this.on("error" /* ERROR */, handler);
|
|
@@ -1726,25 +1898,61 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1726
1898
|
setPermissionHandler(handler) {
|
|
1727
1899
|
this.permissionHandlers.set(
|
|
1728
1900
|
"default",
|
|
1729
|
-
async (event) => await handler(event)
|
|
1901
|
+
async (event, setResponseMetadata) => await handler(event, setResponseMetadata)
|
|
1730
1902
|
);
|
|
1731
1903
|
}
|
|
1732
1904
|
clearPermissionHandler() {
|
|
1733
1905
|
this.permissionHandlers.delete("default");
|
|
1734
1906
|
}
|
|
1735
1907
|
setAskUserHandler(handler) {
|
|
1736
|
-
this.askUserHandlers.set(
|
|
1908
|
+
this.askUserHandlers.set(
|
|
1909
|
+
"default",
|
|
1910
|
+
async (event, setResponseMetadata) => await handler(event, setResponseMetadata)
|
|
1911
|
+
);
|
|
1912
|
+
const held = this.heldQueuedAskUserRequests;
|
|
1913
|
+
this.heldQueuedAskUserRequests = [];
|
|
1914
|
+
for (const event of held) {
|
|
1915
|
+
void this.answerAskUserRequest(event).catch((error) => {
|
|
1916
|
+
this.reportHandlerFailure(
|
|
1917
|
+
error,
|
|
1918
|
+
"Failed to answer a held queued ask-user request"
|
|
1919
|
+
);
|
|
1920
|
+
});
|
|
1921
|
+
}
|
|
1737
1922
|
}
|
|
1738
1923
|
clearAskUserHandler() {
|
|
1739
1924
|
this.askUserHandlers.delete("default");
|
|
1740
1925
|
}
|
|
1741
|
-
|
|
1742
|
-
|
|
1926
|
+
setPickOptionsHandler(handler) {
|
|
1927
|
+
this.pickOptionsHandlers.set(
|
|
1928
|
+
"default",
|
|
1929
|
+
async (event, setResponseMetadata) => await handler(event, setResponseMetadata)
|
|
1930
|
+
);
|
|
1931
|
+
}
|
|
1932
|
+
clearPickOptionsHandler() {
|
|
1933
|
+
this.pickOptionsHandlers.delete("default");
|
|
1934
|
+
}
|
|
1935
|
+
async close(options) {
|
|
1936
|
+
const closeError = new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)(
|
|
1743
1937
|
"Droid client closed: pending requests cancelled"
|
|
1744
1938
|
);
|
|
1939
|
+
if (_optionalChain([options, 'optionalAccess', _14 => _14.closeTransportFirst])) {
|
|
1940
|
+
try {
|
|
1941
|
+
await this.transport.close();
|
|
1942
|
+
} finally {
|
|
1943
|
+
this.rejectAllPending(closeError);
|
|
1944
|
+
this.permissionHandlers.clear();
|
|
1945
|
+
this.askUserHandlers.clear();
|
|
1946
|
+
this.heldQueuedAskUserRequests = [];
|
|
1947
|
+
this.removeAllListeners();
|
|
1948
|
+
}
|
|
1949
|
+
return;
|
|
1950
|
+
}
|
|
1745
1951
|
this.rejectAllPending(closeError);
|
|
1746
1952
|
this.permissionHandlers.clear();
|
|
1747
1953
|
this.askUserHandlers.clear();
|
|
1954
|
+
this.heldQueuedAskUserRequests = [];
|
|
1955
|
+
this.pickOptionsHandlers.clear();
|
|
1748
1956
|
this.removeAllListeners();
|
|
1749
1957
|
await this.transport.close();
|
|
1750
1958
|
}
|
|
@@ -1765,6 +1973,10 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1765
1973
|
reject(error);
|
|
1766
1974
|
});
|
|
1767
1975
|
this.pendingAskUserRequests.clear();
|
|
1976
|
+
this.pendingPickOptionsRequests.forEach(({ reject }) => {
|
|
1977
|
+
reject(error);
|
|
1978
|
+
});
|
|
1979
|
+
this.pendingPickOptionsRequests.clear();
|
|
1768
1980
|
}
|
|
1769
1981
|
settleRequest(requestId) {
|
|
1770
1982
|
this.pendingRequests.delete(requestId);
|
|
@@ -1772,26 +1984,41 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1772
1984
|
}
|
|
1773
1985
|
notifyRequestSettled(requestId) {
|
|
1774
1986
|
try {
|
|
1775
|
-
_optionalChain([this, 'access',
|
|
1776
|
-
} catch (
|
|
1777
|
-
}
|
|
1987
|
+
_optionalChain([this, 'access', _15 => _15.onRequestSettled, 'optionalCall', _16 => _16(requestId)]);
|
|
1988
|
+
} catch (e4) {
|
|
1989
|
+
}
|
|
1990
|
+
}
|
|
1991
|
+
/** `_meta` for an answer this client gives itself: its caller and the current trace context. */
|
|
1992
|
+
responseMetadata() {
|
|
1993
|
+
const meta = {};
|
|
1994
|
+
const requestAttribution = _optionalChain([this, 'access', _17 => _17.getRequestAttribution, 'optionalCall', _18 => _18()]);
|
|
1995
|
+
if (requestAttribution) meta.requestAttribution = requestAttribution;
|
|
1996
|
+
this.tracing.injectContext(meta, this.tracing.getCurrentContext());
|
|
1997
|
+
return meta;
|
|
1998
|
+
}
|
|
1999
|
+
async sendResponse(response2, hostMeta) {
|
|
2000
|
+
const meta = _nullishCoalesce(hostMeta, () => ( this.responseMetadata()));
|
|
2001
|
+
await this.transport.send(
|
|
2002
|
+
Object.keys(meta).length > 0 ? { ...response2, _meta: meta } : response2
|
|
2003
|
+
);
|
|
1778
2004
|
}
|
|
1779
|
-
async sendRequest(request, timeout) {
|
|
2005
|
+
async sendRequest(request, timeout, sessionId) {
|
|
1780
2006
|
if (this.transportError) {
|
|
1781
2007
|
throw this.transportError;
|
|
1782
2008
|
}
|
|
1783
|
-
const requestAttribution = _optionalChain([this, 'access',
|
|
1784
|
-
const _meta = {
|
|
1785
|
-
|
|
1786
|
-
|
|
2009
|
+
const requestAttribution = _nullishCoalesce(_optionalChain([request, 'access', _19 => _19._meta, 'optionalAccess', _20 => _20.requestAttribution]), () => ( _optionalChain([this, 'access', _21 => _21.getRequestAttribution, 'optionalCall', _22 => _22()])));
|
|
2010
|
+
const _meta = { ...request._meta };
|
|
2011
|
+
delete _meta.requestAttribution;
|
|
2012
|
+
if (requestAttribution) _meta.requestAttribution = requestAttribution;
|
|
1787
2013
|
this.tracing.injectContext(_meta, this.tracing.getCurrentContext());
|
|
1788
|
-
const
|
|
2014
|
+
const { _meta: _originalMeta, ...requestWithoutMeta } = request;
|
|
2015
|
+
const requestWithMeta = Object.keys(_meta).length > 0 ? { ...request, _meta } : requestWithoutMeta;
|
|
1789
2016
|
const responsePromise = new Promise(
|
|
1790
2017
|
(resolve2, reject) => {
|
|
1791
2018
|
const timeoutId = timeout ? setTimeout(() => {
|
|
1792
2019
|
this.settleRequest(request.id);
|
|
1793
2020
|
reject(
|
|
1794
|
-
new (0,
|
|
2021
|
+
new (0, _chunkKAAWCHO4js.TimeoutError)("Send request timed out", {
|
|
1795
2022
|
requestId: request.id,
|
|
1796
2023
|
method: request.method,
|
|
1797
2024
|
timeout
|
|
@@ -1802,16 +2029,23 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1802
2029
|
method: request.method,
|
|
1803
2030
|
resolve: resolve2,
|
|
1804
2031
|
reject,
|
|
1805
|
-
timeoutId
|
|
2032
|
+
timeoutId,
|
|
2033
|
+
sessionId
|
|
1806
2034
|
});
|
|
1807
2035
|
}
|
|
1808
2036
|
);
|
|
2037
|
+
void responsePromise.catch(() => {
|
|
2038
|
+
});
|
|
2039
|
+
void this.writeRequest(requestWithMeta);
|
|
2040
|
+
return responsePromise;
|
|
2041
|
+
}
|
|
2042
|
+
async writeRequest(request) {
|
|
1809
2043
|
try {
|
|
1810
2044
|
this.logger.info("[DroidClient] [daemon -> droid] sending request", {
|
|
1811
2045
|
requestId: request.id,
|
|
1812
2046
|
method: request.method
|
|
1813
2047
|
});
|
|
1814
|
-
await this.transport.send(
|
|
2048
|
+
await this.transport.send(request);
|
|
1815
2049
|
} catch (error) {
|
|
1816
2050
|
const pending = this.pendingRequests.get(request.id);
|
|
1817
2051
|
if (pending) {
|
|
@@ -1820,152 +2054,156 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1820
2054
|
}
|
|
1821
2055
|
this.settleRequest(request.id);
|
|
1822
2056
|
pending.reject(
|
|
1823
|
-
new (0,
|
|
2057
|
+
new (0, _chunkKAAWCHO4js.ProtocolError)("[daemon -> droid] Failed to send request", {
|
|
1824
2058
|
requestId: request.id,
|
|
1825
2059
|
cause: error
|
|
1826
2060
|
})
|
|
1827
2061
|
);
|
|
1828
2062
|
}
|
|
1829
2063
|
}
|
|
1830
|
-
return responsePromise;
|
|
1831
2064
|
}
|
|
1832
2065
|
async handleMessage(message) {
|
|
1833
2066
|
try {
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
this.handleResponse(parsed);
|
|
1837
|
-
} else if ("method" in parsed) {
|
|
1838
|
-
await this.handleEvent(parsed);
|
|
2067
|
+
if (message.type === "response") {
|
|
2068
|
+
this.handleResponse(message);
|
|
1839
2069
|
} else {
|
|
1840
|
-
|
|
1841
|
-
message
|
|
1842
|
-
});
|
|
2070
|
+
await this.handleEvent(message);
|
|
1843
2071
|
}
|
|
1844
|
-
} catch (
|
|
1845
|
-
this.logger.warn("[DroidClient] Failed to handle message"
|
|
1846
|
-
messageByteLength: new TextEncoder().encode(message).byteLength
|
|
1847
|
-
});
|
|
2072
|
+
} catch (e5) {
|
|
2073
|
+
this.logger.warn("[DroidClient] Failed to handle message");
|
|
1848
2074
|
}
|
|
1849
2075
|
}
|
|
1850
|
-
handleResponse(
|
|
2076
|
+
handleResponse(response2) {
|
|
1851
2077
|
try {
|
|
1852
|
-
const responseId = getResponseId(
|
|
2078
|
+
const responseId = getResponseId(response2);
|
|
1853
2079
|
if (responseId !== null && responseId !== void 0) {
|
|
1854
2080
|
const pending = this.pendingRequests.get(responseId);
|
|
1855
2081
|
if (pending) {
|
|
1856
2082
|
let validatedResponse;
|
|
1857
2083
|
switch (pending.method) {
|
|
1858
2084
|
case "droid.initialize_session" /* INITIALIZE_SESSION */:
|
|
1859
|
-
validatedResponse =
|
|
2085
|
+
validatedResponse = _chunkKAAWCHO4js.InitializeSessionResponseSchema.parse(response2);
|
|
1860
2086
|
break;
|
|
1861
2087
|
case "droid.load_session" /* LOAD_SESSION */:
|
|
1862
|
-
validatedResponse =
|
|
2088
|
+
validatedResponse = _chunkKAAWCHO4js.LoadSessionResponseSchema.parse(response2);
|
|
1863
2089
|
break;
|
|
1864
2090
|
case "droid.add_user_message" /* ADD_USER_MESSAGE */:
|
|
1865
|
-
validatedResponse =
|
|
2091
|
+
validatedResponse = _chunkKAAWCHO4js.AddUserMessageResponseSchema.parse(response2);
|
|
1866
2092
|
break;
|
|
1867
2093
|
case "droid.append_messages" /* APPEND_MESSAGES */:
|
|
1868
|
-
validatedResponse =
|
|
2094
|
+
validatedResponse = _chunkKAAWCHO4js.AppendMessagesResponseSchema.parse(response2);
|
|
1869
2095
|
break;
|
|
1870
2096
|
case "droid.resolve_queued_user_message" /* RESOLVE_QUEUED_USER_MESSAGE */:
|
|
1871
|
-
validatedResponse =
|
|
2097
|
+
validatedResponse = _chunkKAAWCHO4js.ResolveQueuedUserMessageResponseSchema.parse(response2);
|
|
1872
2098
|
break;
|
|
1873
2099
|
case "droid.interrupt_session" /* INTERRUPT_SESSION */:
|
|
1874
|
-
validatedResponse =
|
|
2100
|
+
validatedResponse = _chunkKAAWCHO4js.InterruptSessionResponseSchema.parse(response2);
|
|
1875
2101
|
break;
|
|
1876
2102
|
case "droid.close_session" /* CLOSE_SESSION */:
|
|
1877
|
-
validatedResponse =
|
|
2103
|
+
validatedResponse = _chunkKAAWCHO4js.CloseSessionResponseSchema.parse(response2);
|
|
1878
2104
|
break;
|
|
1879
2105
|
case "droid.update_session_settings" /* UPDATE_SESSION_SETTINGS */:
|
|
1880
|
-
validatedResponse =
|
|
2106
|
+
validatedResponse = _chunkKAAWCHO4js.UpdateSessionSettingsResponseSchema.parse(response2);
|
|
1881
2107
|
break;
|
|
1882
2108
|
case "droid.change_working_directory" /* CHANGE_WORKING_DIRECTORY */:
|
|
1883
|
-
validatedResponse =
|
|
2109
|
+
validatedResponse = _chunkKAAWCHO4js.ChangeWorkingDirectoryResponseSchema.parse(response2);
|
|
1884
2110
|
break;
|
|
1885
2111
|
case "droid.toggle_mcp_server" /* TOGGLE_MCP_SERVER */:
|
|
1886
|
-
validatedResponse =
|
|
2112
|
+
validatedResponse = _chunkKAAWCHO4js.ToggleMcpServerResponseSchema.parse(response2);
|
|
1887
2113
|
break;
|
|
1888
2114
|
case "droid.authenticate_mcp_server" /* AUTHENTICATE_MCP_SERVER */:
|
|
1889
|
-
validatedResponse =
|
|
2115
|
+
validatedResponse = _chunkKAAWCHO4js.AuthenticateMcpServerResponseSchema.parse(response2);
|
|
1890
2116
|
break;
|
|
1891
2117
|
case "droid.cancel_mcp_auth" /* CANCEL_MCP_AUTH */:
|
|
1892
|
-
validatedResponse =
|
|
2118
|
+
validatedResponse = _chunkKAAWCHO4js.CancelMcpAuthResponseSchema.parse(response2);
|
|
1893
2119
|
break;
|
|
1894
2120
|
case "droid.clear_mcp_auth" /* CLEAR_MCP_AUTH */:
|
|
1895
|
-
validatedResponse =
|
|
2121
|
+
validatedResponse = _chunkKAAWCHO4js.ClearMcpAuthResponseSchema.parse(response2);
|
|
1896
2122
|
break;
|
|
1897
2123
|
case "droid.add_mcp_server" /* ADD_MCP_SERVER */:
|
|
1898
|
-
validatedResponse =
|
|
2124
|
+
validatedResponse = _chunkKAAWCHO4js.AddMcpServerResponseSchema.parse(response2);
|
|
1899
2125
|
break;
|
|
1900
2126
|
case "droid.remove_mcp_server" /* REMOVE_MCP_SERVER */:
|
|
1901
|
-
validatedResponse =
|
|
2127
|
+
validatedResponse = _chunkKAAWCHO4js.RemoveMcpServerResponseSchema.parse(response2);
|
|
1902
2128
|
break;
|
|
1903
2129
|
case "droid.list_models" /* LIST_MODELS */:
|
|
1904
|
-
validatedResponse =
|
|
2130
|
+
validatedResponse = _chunkKAAWCHO4js.ListModelsResponseSchema.parse(response2);
|
|
1905
2131
|
break;
|
|
1906
2132
|
case "droid.list_mcp_registry" /* LIST_MCP_REGISTRY */:
|
|
1907
|
-
validatedResponse =
|
|
2133
|
+
validatedResponse = _chunkKAAWCHO4js.ListMcpRegistryResponseSchema.parse(response2);
|
|
1908
2134
|
break;
|
|
1909
2135
|
case "droid.list_mcp_tools" /* LIST_MCP_TOOLS */:
|
|
1910
|
-
validatedResponse =
|
|
2136
|
+
validatedResponse = _chunkKAAWCHO4js.ListMcpToolsResponseSchema.parse(response2);
|
|
1911
2137
|
break;
|
|
1912
2138
|
case "droid.list_tools" /* LIST_TOOLS */:
|
|
1913
|
-
validatedResponse =
|
|
2139
|
+
validatedResponse = _chunkKAAWCHO4js.ListToolsResponseSchema.parse(response2);
|
|
2140
|
+
break;
|
|
2141
|
+
case "droid.refresh_connector_tool_catalog" /* REFRESH_CONNECTOR_TOOL_CATALOG */:
|
|
2142
|
+
validatedResponse = _chunkKAAWCHO4js.RefreshConnectorToolCatalogResponseSchema.parse(response2);
|
|
1914
2143
|
break;
|
|
1915
2144
|
case "droid.toggle_mcp_tool" /* TOGGLE_MCP_TOOL */:
|
|
1916
|
-
validatedResponse =
|
|
2145
|
+
validatedResponse = _chunkKAAWCHO4js.ToggleMcpToolResponseSchema.parse(response2);
|
|
1917
2146
|
break;
|
|
1918
2147
|
case "droid.submit_mcp_auth_code" /* SUBMIT_MCP_AUTH_CODE */:
|
|
1919
|
-
validatedResponse =
|
|
2148
|
+
validatedResponse = _chunkKAAWCHO4js.SubmitMcpAuthCodeResponseSchema.parse(response2);
|
|
1920
2149
|
break;
|
|
1921
2150
|
case "droid.submit_mcp_auth_error" /* SUBMIT_MCP_AUTH_ERROR */:
|
|
1922
|
-
validatedResponse =
|
|
2151
|
+
validatedResponse = _chunkKAAWCHO4js.SubmitMcpAuthErrorResponseSchema.parse(response2);
|
|
1923
2152
|
break;
|
|
1924
2153
|
case "droid.kill_worker_session" /* KILL_WORKER_SESSION */:
|
|
1925
|
-
validatedResponse =
|
|
2154
|
+
validatedResponse = _chunkKAAWCHO4js.KillWorkerSessionResponseSchema.parse(response2);
|
|
1926
2155
|
break;
|
|
1927
2156
|
case "droid.list_skills" /* LIST_SKILLS */:
|
|
1928
|
-
validatedResponse =
|
|
2157
|
+
validatedResponse = _chunkKAAWCHO4js.ListSkillsResponseSchema.parse(response2);
|
|
1929
2158
|
break;
|
|
1930
2159
|
case "droid.set_skill_disabled" /* SET_SKILL_DISABLED */:
|
|
1931
|
-
validatedResponse =
|
|
2160
|
+
validatedResponse = _chunkKAAWCHO4js.SetSkillDisabledResponseSchema.parse(response2);
|
|
1932
2161
|
break;
|
|
1933
2162
|
case "droid.list_commands" /* LIST_COMMANDS */:
|
|
1934
|
-
validatedResponse =
|
|
2163
|
+
validatedResponse = _chunkKAAWCHO4js.ListCommandsResponseSchema.parse(response2);
|
|
1935
2164
|
break;
|
|
1936
2165
|
case "droid.submit_bug_report" /* SUBMIT_BUG_REPORT */:
|
|
1937
|
-
validatedResponse =
|
|
2166
|
+
validatedResponse = _chunkKAAWCHO4js.SubmitBugReportResponseSchema.parse(response2);
|
|
1938
2167
|
break;
|
|
1939
2168
|
case "droid.list_mcp_servers" /* LIST_MCP_SERVERS */:
|
|
1940
|
-
validatedResponse =
|
|
2169
|
+
validatedResponse = _chunkKAAWCHO4js.ListMcpServersResponseSchema.parse(response2);
|
|
1941
2170
|
break;
|
|
1942
2171
|
case "droid.get_rewind_info" /* GET_REWIND_INFO */:
|
|
1943
|
-
validatedResponse =
|
|
2172
|
+
validatedResponse = _chunkKAAWCHO4js.GetRewindInfoResponseSchema.parse(response2);
|
|
1944
2173
|
break;
|
|
1945
2174
|
case "droid.execute_rewind" /* EXECUTE_REWIND */:
|
|
1946
|
-
validatedResponse =
|
|
2175
|
+
validatedResponse = _chunkKAAWCHO4js.ExecuteRewindResponseSchema.parse(response2);
|
|
1947
2176
|
break;
|
|
1948
2177
|
case "droid.compact_session" /* COMPACT_SESSION */:
|
|
1949
|
-
validatedResponse =
|
|
2178
|
+
validatedResponse = _chunkKAAWCHO4js.CompactSessionResponseSchema.parse(response2);
|
|
2179
|
+
break;
|
|
2180
|
+
case "droid.get_handoff_summary" /* GET_HANDOFF_SUMMARY */:
|
|
2181
|
+
validatedResponse = _chunkKAAWCHO4js.GetHandoffSummaryResponseSchema.parse(response2);
|
|
2182
|
+
break;
|
|
2183
|
+
case "droid.summarize_for_members" /* SUMMARIZE_FOR_MEMBERS */:
|
|
2184
|
+
validatedResponse = _chunkKAAWCHO4js.SummarizeForMembersResponseSchema.parse(response2);
|
|
1950
2185
|
break;
|
|
1951
2186
|
case "droid.fork_session" /* FORK_SESSION */:
|
|
1952
|
-
validatedResponse =
|
|
2187
|
+
validatedResponse = _chunkKAAWCHO4js.ForkSessionResponseSchema.parse(response2);
|
|
1953
2188
|
break;
|
|
1954
2189
|
case "droid.rename_session" /* RENAME_SESSION */:
|
|
1955
|
-
validatedResponse =
|
|
2190
|
+
validatedResponse = _chunkKAAWCHO4js.RenameSessionResponseSchema.parse(response2);
|
|
1956
2191
|
break;
|
|
1957
2192
|
case "droid.get_context_stats" /* GET_CONTEXT_STATS */:
|
|
1958
|
-
validatedResponse =
|
|
2193
|
+
validatedResponse = _chunkKAAWCHO4js.GetContextStatsResponseSchema.parse(response2);
|
|
1959
2194
|
break;
|
|
1960
2195
|
case "droid.get_context_breakdown" /* GET_CONTEXT_BREAKDOWN */:
|
|
1961
|
-
validatedResponse =
|
|
2196
|
+
validatedResponse = _chunkKAAWCHO4js.GetContextBreakdownResponseSchema.parse(response2);
|
|
1962
2197
|
break;
|
|
1963
2198
|
case "droid.warmup_cache" /* WARMUP_CACHE */:
|
|
1964
|
-
validatedResponse =
|
|
2199
|
+
validatedResponse = _chunkKAAWCHO4js.WarmupCacheResponseSchema.parse(response2);
|
|
2200
|
+
break;
|
|
2201
|
+
case "droid.kill_background_process" /* KILL_BACKGROUND_PROCESS */:
|
|
2202
|
+
validatedResponse = _chunkKAAWCHO4js.KillBackgroundProcessResponseSchema.parse(response2);
|
|
1965
2203
|
break;
|
|
1966
2204
|
default: {
|
|
1967
2205
|
const exhaustiveCheck = pending.method;
|
|
1968
|
-
throw new (0,
|
|
2206
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
1969
2207
|
"Unsupported method in response handler",
|
|
1970
2208
|
{
|
|
1971
2209
|
method: exhaustiveCheck
|
|
@@ -1979,7 +2217,7 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1979
2217
|
this.settleRequest(responseId);
|
|
1980
2218
|
pending.resolve(validatedResponse);
|
|
1981
2219
|
} else {
|
|
1982
|
-
const validatedResponse =
|
|
2220
|
+
const validatedResponse = _chunkKAAWCHO4js.JsonRpcBaseResponseSchema.parse(response2);
|
|
1983
2221
|
this.logger.info(
|
|
1984
2222
|
"[DroidClient] Received response for request not in pending map",
|
|
1985
2223
|
{
|
|
@@ -1989,7 +2227,7 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1989
2227
|
}
|
|
1990
2228
|
}
|
|
1991
2229
|
} catch (error) {
|
|
1992
|
-
const responseId = getResponseId(
|
|
2230
|
+
const responseId = getResponseId(response2);
|
|
1993
2231
|
const pending = responseId !== null && responseId !== void 0 ? this.pendingRequests.get(responseId) : void 0;
|
|
1994
2232
|
const zodIssues = error instanceof _zod.z.ZodError ? error.issues.map((issue) => ({
|
|
1995
2233
|
path: issue.path,
|
|
@@ -1997,7 +2235,7 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
1997
2235
|
message: issue.message
|
|
1998
2236
|
})) : void 0;
|
|
1999
2237
|
this.logger.exception(error, "Invalid response format", {
|
|
2000
|
-
method: _optionalChain([pending, 'optionalAccess',
|
|
2238
|
+
method: _optionalChain([pending, 'optionalAccess', _23 => _23.method]),
|
|
2001
2239
|
requestId: _nullishCoalesce(responseId, () => ( void 0)),
|
|
2002
2240
|
zodIssues
|
|
2003
2241
|
});
|
|
@@ -2023,10 +2261,10 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2023
2261
|
}
|
|
2024
2262
|
this.settleRequest(responseId);
|
|
2025
2263
|
const syntheticFailure = {
|
|
2026
|
-
jsonrpc:
|
|
2264
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
2027
2265
|
type: "response",
|
|
2028
|
-
factoryApiVersion:
|
|
2029
|
-
factoryProtocolVersion:
|
|
2266
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
2267
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
2030
2268
|
id: responseId,
|
|
2031
2269
|
error: {
|
|
2032
2270
|
code,
|
|
@@ -2039,19 +2277,25 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2039
2277
|
}
|
|
2040
2278
|
async handleEvent(event) {
|
|
2041
2279
|
try {
|
|
2042
|
-
const validatedEvent =
|
|
2280
|
+
const validatedEvent = _chunkKAAWCHO4js.CliRequestOrNotificationSchema.parse(event);
|
|
2043
2281
|
if (validatedEvent.method === "droid.session_notification" /* SESSION_NOTIFICATION */) {
|
|
2044
2282
|
const notification = validatedEvent.params.notification;
|
|
2045
2283
|
if (notification.type === "agent_turn_completed" /* AGENT_TURN_COMPLETED */) {
|
|
2046
2284
|
this.completedTurnObserved = true;
|
|
2047
|
-
} else if (notification.type === "droid_working_state_changed" /* DROID_WORKING_STATE_CHANGED */ && notification.newState
|
|
2285
|
+
} else if (notification.type === "droid_working_state_changed" /* DROID_WORKING_STATE_CHANGED */ && _chunkKAAWCHO4js.DROID_RUNNING_STATES.has(notification.newState)) {
|
|
2048
2286
|
this.completedTurnObserved = false;
|
|
2287
|
+
} else if (notification.type === "permission_resolved" /* PERMISSION_RESOLVED */) {
|
|
2288
|
+
_optionalChain([this, 'access', _24 => _24.pendingPermissionRequests, 'access', _25 => _25.get, 'call', _26 => _26(notification.requestId), 'optionalAccess', _27 => _27.withdraw, 'call', _28 => _28()]);
|
|
2049
2289
|
}
|
|
2050
2290
|
this.emit("session_notification" /* SESSION_NOTIFICATION */, validatedEvent);
|
|
2051
2291
|
} else if (validatedEvent.method === "droid.request_permission" /* REQUEST_PERMISSION */) {
|
|
2052
2292
|
await this.handlePermissionRequest(validatedEvent);
|
|
2053
2293
|
} else if (validatedEvent.method === "droid.ask_user" /* ASK_USER */) {
|
|
2054
2294
|
await this.handleAskUserRequest(validatedEvent);
|
|
2295
|
+
} else if (validatedEvent.method === "droid.pick_options" /* PICK_OPTIONS */) {
|
|
2296
|
+
await this.handlePickOptionsRequest(validatedEvent);
|
|
2297
|
+
} else if (validatedEvent.method === "droid.disconnect" /* DISCONNECT */) {
|
|
2298
|
+
this.disconnected = true;
|
|
2055
2299
|
}
|
|
2056
2300
|
} catch (error) {
|
|
2057
2301
|
this.logDroppedEventParseError(error, event);
|
|
@@ -2074,10 +2318,10 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2074
2318
|
const code = error instanceof _zod.z.ZodError ? -32600 /* INVALID_REQUEST */ : -32603 /* INTERNAL_ERROR */;
|
|
2075
2319
|
const message = code === -32600 /* INVALID_REQUEST */ ? "Invalid request format" : "Internal error while handling request";
|
|
2076
2320
|
const errorResponse = {
|
|
2077
|
-
jsonrpc:
|
|
2321
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
2078
2322
|
type: "response",
|
|
2079
|
-
factoryApiVersion:
|
|
2080
|
-
factoryProtocolVersion:
|
|
2323
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
2324
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
2081
2325
|
id,
|
|
2082
2326
|
error: {
|
|
2083
2327
|
code,
|
|
@@ -2086,7 +2330,7 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2086
2330
|
}
|
|
2087
2331
|
};
|
|
2088
2332
|
try {
|
|
2089
|
-
await this.
|
|
2333
|
+
await this.sendResponse(errorResponse, void 0);
|
|
2090
2334
|
} catch (sendError) {
|
|
2091
2335
|
this.logger.exception(
|
|
2092
2336
|
sendError,
|
|
@@ -2131,6 +2375,13 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2131
2375
|
});
|
|
2132
2376
|
}
|
|
2133
2377
|
}
|
|
2378
|
+
reportHandlerFailure(error, message) {
|
|
2379
|
+
if (error instanceof _chunkKAAWCHO4js.RequestCancelledError || isDroidConnectionEnded(error)) {
|
|
2380
|
+
this.logger.info(message, { cause: error });
|
|
2381
|
+
} else {
|
|
2382
|
+
this.logger.exception(error, message);
|
|
2383
|
+
}
|
|
2384
|
+
}
|
|
2134
2385
|
async handlePermissionRequest(event) {
|
|
2135
2386
|
if (this.pendingPermissionRequests.has(event.id)) {
|
|
2136
2387
|
this.logger.info(
|
|
@@ -2145,10 +2396,14 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2145
2396
|
requestId: event.id,
|
|
2146
2397
|
count: event.params.toolUses.length
|
|
2147
2398
|
});
|
|
2399
|
+
let hostMeta;
|
|
2400
|
+
const setResponseMetadata = (meta) => {
|
|
2401
|
+
hostMeta = meta;
|
|
2402
|
+
};
|
|
2148
2403
|
this.emit("request_permission" /* REQUEST_PERMISSION */, event);
|
|
2149
|
-
let
|
|
2150
|
-
|
|
2151
|
-
|
|
2404
|
+
let result = {
|
|
2405
|
+
selectedOption: "cancel" /* Cancel */
|
|
2406
|
+
};
|
|
2152
2407
|
const handler = this.permissionHandlers.get("default");
|
|
2153
2408
|
if (handler) {
|
|
2154
2409
|
try {
|
|
@@ -2158,48 +2413,57 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2158
2413
|
requestId: event.id
|
|
2159
2414
|
}
|
|
2160
2415
|
);
|
|
2161
|
-
const handlerPromise = new Promise(
|
|
2162
|
-
(
|
|
2163
|
-
|
|
2164
|
-
|
|
2416
|
+
const handlerPromise = new Promise((resolve2, reject) => {
|
|
2417
|
+
this.pendingPermissionRequests.set(event.id, {
|
|
2418
|
+
reject,
|
|
2419
|
+
withdraw: () => {
|
|
2165
2420
|
this.pendingPermissionRequests.delete(event.id);
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2421
|
+
resolve2(PERMISSION_WITHDRAWN);
|
|
2422
|
+
}
|
|
2423
|
+
});
|
|
2424
|
+
handler(event, setResponseMetadata).then(resolve2).catch(reject).finally(() => {
|
|
2425
|
+
this.pendingPermissionRequests.delete(event.id);
|
|
2426
|
+
});
|
|
2427
|
+
});
|
|
2169
2428
|
const handlerResult = await handlerPromise;
|
|
2429
|
+
if (handlerResult === PERMISSION_WITHDRAWN) {
|
|
2430
|
+
this.logger.info("[DroidClient] Permission request withdrawn", {
|
|
2431
|
+
requestId: event.id
|
|
2432
|
+
});
|
|
2433
|
+
return;
|
|
2434
|
+
}
|
|
2170
2435
|
if (typeof handlerResult === "string" && handlerResult === "proceed_edit" /* ProceedEdit */) {
|
|
2171
|
-
throw new (0,
|
|
2436
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
2172
2437
|
"Permission handler returned proceed_edit without editedSpecContent"
|
|
2173
2438
|
);
|
|
2174
2439
|
}
|
|
2175
|
-
const parsedHandlerResult =
|
|
2440
|
+
const parsedHandlerResult = _chunkKAAWCHO4js.RequestPermissionResultSchema.safeParse(
|
|
2176
2441
|
typeof handlerResult === "string" ? { selectedOption: handlerResult } : handlerResult
|
|
2177
2442
|
);
|
|
2178
2443
|
if (parsedHandlerResult.success) {
|
|
2179
|
-
|
|
2180
|
-
comment = parsedHandlerResult.data.comment;
|
|
2181
|
-
editedSpecContent = parsedHandlerResult.data.editedSpecContent;
|
|
2444
|
+
result = parsedHandlerResult.data;
|
|
2182
2445
|
} else {
|
|
2183
|
-
throw new (0,
|
|
2446
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
2184
2447
|
"Permission handler returned invalid result",
|
|
2185
2448
|
{
|
|
2186
2449
|
cause: parsedHandlerResult.error
|
|
2187
2450
|
}
|
|
2188
2451
|
);
|
|
2189
2452
|
}
|
|
2190
|
-
if (!
|
|
2191
|
-
|
|
2453
|
+
if (!_chunkKAAWCHO4js.isOfferedPermissionOutcome.call(void 0,
|
|
2454
|
+
event.params.options,
|
|
2455
|
+
result.selectedOption
|
|
2192
2456
|
)) {
|
|
2193
|
-
throw new (0,
|
|
2194
|
-
`Permission handler selected unavailable option: ${selectedOption}`
|
|
2457
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
2458
|
+
`Permission handler selected unavailable option: ${result.selectedOption}`
|
|
2195
2459
|
);
|
|
2196
2460
|
}
|
|
2197
2461
|
this.logger.info("[DroidClient] Permission handler resolved", {
|
|
2198
2462
|
requestId: event.id,
|
|
2199
|
-
result: selectedOption
|
|
2463
|
+
result: result.selectedOption
|
|
2200
2464
|
});
|
|
2201
2465
|
} catch (error) {
|
|
2202
|
-
this.
|
|
2466
|
+
this.reportHandlerFailure(
|
|
2203
2467
|
error,
|
|
2204
2468
|
"Failed to handle permission request (processing)"
|
|
2205
2469
|
);
|
|
@@ -2213,18 +2477,18 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2213
2477
|
this.pendingPermissionRequests.delete(event.id);
|
|
2214
2478
|
const cancelResponse = {
|
|
2215
2479
|
type: "response",
|
|
2216
|
-
jsonrpc:
|
|
2217
|
-
factoryApiVersion:
|
|
2218
|
-
factoryProtocolVersion:
|
|
2480
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
2481
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
2482
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
2219
2483
|
id: event.id,
|
|
2220
2484
|
result: {
|
|
2221
2485
|
selectedOption: "cancel" /* Cancel */
|
|
2222
2486
|
}
|
|
2223
2487
|
};
|
|
2224
2488
|
try {
|
|
2225
|
-
await this.
|
|
2489
|
+
await this.sendResponse(cancelResponse, hostMeta);
|
|
2226
2490
|
} catch (sendError) {
|
|
2227
|
-
this.
|
|
2491
|
+
this.reportHandlerFailure(
|
|
2228
2492
|
sendError,
|
|
2229
2493
|
"Failed to handle permission request (send cancellation)"
|
|
2230
2494
|
);
|
|
@@ -2239,23 +2503,19 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2239
2503
|
return;
|
|
2240
2504
|
}
|
|
2241
2505
|
}
|
|
2242
|
-
const
|
|
2506
|
+
const response2 = {
|
|
2243
2507
|
type: "response",
|
|
2244
|
-
jsonrpc:
|
|
2245
|
-
factoryApiVersion:
|
|
2246
|
-
factoryProtocolVersion:
|
|
2508
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
2509
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
2510
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
2247
2511
|
id: event.id,
|
|
2248
|
-
result
|
|
2249
|
-
selectedOption,
|
|
2250
|
-
...comment !== void 0 && { comment },
|
|
2251
|
-
...editedSpecContent !== void 0 && { editedSpecContent }
|
|
2252
|
-
}
|
|
2512
|
+
result
|
|
2253
2513
|
};
|
|
2254
2514
|
this.logger.info("[DroidClient] Sending permission response back to CLI", {
|
|
2255
2515
|
requestId: event.id,
|
|
2256
|
-
result: String(selectedOption)
|
|
2516
|
+
result: String(result.selectedOption)
|
|
2257
2517
|
});
|
|
2258
|
-
await this.
|
|
2518
|
+
await this.sendResponse(response2, hostMeta);
|
|
2259
2519
|
}
|
|
2260
2520
|
async handleAskUserRequest(event) {
|
|
2261
2521
|
this.logger.info("[DroidClient] Handling ask-user request", {
|
|
@@ -2264,10 +2524,25 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2264
2524
|
count: event.params.questions.length
|
|
2265
2525
|
});
|
|
2266
2526
|
this.emit("ask_user" /* ASK_USER */, event);
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2527
|
+
if (event.params.blocking === false && !this.askUserHandlers.has("default")) {
|
|
2528
|
+
this.heldQueuedAskUserRequests.push(event);
|
|
2529
|
+
this.logger.info(
|
|
2530
|
+
"[DroidClient] Holding queued ask-user request until a handler is set",
|
|
2531
|
+
{ requestId: event.id }
|
|
2532
|
+
);
|
|
2533
|
+
return;
|
|
2534
|
+
}
|
|
2535
|
+
await this.answerAskUserRequest(event);
|
|
2536
|
+
}
|
|
2537
|
+
async answerAskUserRequest(event) {
|
|
2538
|
+
let hostMeta;
|
|
2539
|
+
const setResponseMetadata = (meta) => {
|
|
2540
|
+
hostMeta = meta;
|
|
2541
|
+
};
|
|
2542
|
+
let result = { cancelled: true, answers: [] };
|
|
2543
|
+
const handler = this.askUserHandlers.get("default");
|
|
2544
|
+
if (handler) {
|
|
2545
|
+
try {
|
|
2271
2546
|
this.logger.info(
|
|
2272
2547
|
"[DroidClient] Waiting for ask-user handler to resolve",
|
|
2273
2548
|
{
|
|
@@ -2276,15 +2551,15 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2276
2551
|
);
|
|
2277
2552
|
const handlerPromise = new Promise((resolve2, reject) => {
|
|
2278
2553
|
this.pendingAskUserRequests.set(event.id, { reject });
|
|
2279
|
-
handler(event).then(resolve2).catch(reject).finally(() => {
|
|
2554
|
+
handler(event, setResponseMetadata).then(resolve2).catch(reject).finally(() => {
|
|
2280
2555
|
this.pendingAskUserRequests.delete(event.id);
|
|
2281
2556
|
});
|
|
2282
2557
|
});
|
|
2283
|
-
const parsedResult =
|
|
2558
|
+
const parsedResult = _chunkKAAWCHO4js.AskUserResultSchema.safeParse(
|
|
2284
2559
|
await handlerPromise
|
|
2285
2560
|
);
|
|
2286
2561
|
if (!parsedResult.success) {
|
|
2287
|
-
throw new (0,
|
|
2562
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
2288
2563
|
"AskUser handler returned invalid result",
|
|
2289
2564
|
{
|
|
2290
2565
|
cause: parsedResult.error
|
|
@@ -2298,7 +2573,7 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2298
2573
|
count: result.answers.length
|
|
2299
2574
|
});
|
|
2300
2575
|
} catch (error) {
|
|
2301
|
-
this.
|
|
2576
|
+
this.reportHandlerFailure(error, "Failed to handle ask-user request");
|
|
2302
2577
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
2303
2578
|
this.emit(
|
|
2304
2579
|
"session_notification" /* SESSION_NOTIFICATION */,
|
|
@@ -2307,10 +2582,20 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2307
2582
|
)
|
|
2308
2583
|
);
|
|
2309
2584
|
this.pendingAskUserRequests.delete(event.id);
|
|
2310
|
-
const cancelResponse = {
|
|
2311
|
-
jsonrpc:
|
|
2312
|
-
factoryApiVersion:
|
|
2313
|
-
factoryProtocolVersion:
|
|
2585
|
+
const cancelResponse = event.params.blocking === false ? {
|
|
2586
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
2587
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
2588
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
2589
|
+
type: "response",
|
|
2590
|
+
id: event.id,
|
|
2591
|
+
error: {
|
|
2592
|
+
code: -32603 /* INTERNAL_ERROR */,
|
|
2593
|
+
message: "The queued AskUser request could not be answered"
|
|
2594
|
+
}
|
|
2595
|
+
} : {
|
|
2596
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
2597
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
2598
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
2314
2599
|
type: "response",
|
|
2315
2600
|
id: event.id,
|
|
2316
2601
|
result: {
|
|
@@ -2319,9 +2604,9 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2319
2604
|
}
|
|
2320
2605
|
};
|
|
2321
2606
|
try {
|
|
2322
|
-
await this.
|
|
2607
|
+
await this.sendResponse(cancelResponse, hostMeta);
|
|
2323
2608
|
} catch (sendError) {
|
|
2324
|
-
this.
|
|
2609
|
+
this.reportHandlerFailure(
|
|
2325
2610
|
sendError,
|
|
2326
2611
|
"Failed to send ask-user cancellation"
|
|
2327
2612
|
);
|
|
@@ -2329,11 +2614,11 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2329
2614
|
return;
|
|
2330
2615
|
}
|
|
2331
2616
|
}
|
|
2332
|
-
const
|
|
2617
|
+
const response2 = {
|
|
2333
2618
|
type: "response",
|
|
2334
|
-
jsonrpc:
|
|
2335
|
-
factoryApiVersion:
|
|
2336
|
-
factoryProtocolVersion:
|
|
2619
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
2620
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
2621
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
2337
2622
|
id: event.id,
|
|
2338
2623
|
result
|
|
2339
2624
|
};
|
|
@@ -2341,21 +2626,127 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2341
2626
|
requestId: event.id,
|
|
2342
2627
|
cancelled: _nullishCoalesce(result.cancelled, () => ( false))
|
|
2343
2628
|
});
|
|
2344
|
-
await this.
|
|
2629
|
+
await this.sendResponse(response2, hostMeta);
|
|
2630
|
+
}
|
|
2631
|
+
/**
|
|
2632
|
+
* Same shape as the ask-user round trip: the handler (a UI) resolves with
|
|
2633
|
+
* the user's selection, and any failure or missing handler answers the CLI
|
|
2634
|
+
* with a cancellation so its tool call never hangs. A handler that rejects
|
|
2635
|
+
* with {@link PickOptionsUnavailableError} is relayed as that JSON-RPC
|
|
2636
|
+
* error instead, which the CLI does not read as the user's cancel.
|
|
2637
|
+
*/
|
|
2638
|
+
async handlePickOptionsRequest(event) {
|
|
2639
|
+
this.logger.info("[DroidClient] Handling pick-options request", {
|
|
2640
|
+
requestId: event.id,
|
|
2641
|
+
toolCallId: event.params.toolCallId,
|
|
2642
|
+
count: event.params.rows.length
|
|
2643
|
+
});
|
|
2644
|
+
let hostMeta;
|
|
2645
|
+
const setResponseMetadata = (meta) => {
|
|
2646
|
+
hostMeta = meta;
|
|
2647
|
+
};
|
|
2648
|
+
this.emit("pick_options" /* PICK_OPTIONS */, event);
|
|
2649
|
+
let result = { cancelled: true, selectedIds: [] };
|
|
2650
|
+
const handler = this.pickOptionsHandlers.get("default");
|
|
2651
|
+
if (handler) {
|
|
2652
|
+
try {
|
|
2653
|
+
const handlerPromise = new Promise(
|
|
2654
|
+
(resolve2, reject) => {
|
|
2655
|
+
this.pendingPickOptionsRequests.set(event.id, { reject });
|
|
2656
|
+
handler(event, setResponseMetadata).then(resolve2).catch(reject).finally(() => {
|
|
2657
|
+
this.pendingPickOptionsRequests.delete(event.id);
|
|
2658
|
+
});
|
|
2659
|
+
}
|
|
2660
|
+
);
|
|
2661
|
+
const parsedResult = _chunkKAAWCHO4js.PickOptionsResultSchema.safeParse(
|
|
2662
|
+
await handlerPromise
|
|
2663
|
+
);
|
|
2664
|
+
if (!parsedResult.success) {
|
|
2665
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
2666
|
+
"PickOptions handler returned invalid result",
|
|
2667
|
+
{ cause: parsedResult.error }
|
|
2668
|
+
);
|
|
2669
|
+
}
|
|
2670
|
+
result = parsedResult.data;
|
|
2671
|
+
} catch (error) {
|
|
2672
|
+
this.pendingPickOptionsRequests.delete(event.id);
|
|
2673
|
+
if (error instanceof _chunkKAAWCHO4js.PickOptionsUnavailableError) {
|
|
2674
|
+
this.logger.info("[DroidClient] Pick-options request unavailable", {
|
|
2675
|
+
requestId: event.id,
|
|
2676
|
+
code: error.rpcError.code
|
|
2677
|
+
});
|
|
2678
|
+
const failure = {
|
|
2679
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
2680
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
2681
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
2682
|
+
type: "response",
|
|
2683
|
+
id: event.id,
|
|
2684
|
+
error: error.rpcError
|
|
2685
|
+
};
|
|
2686
|
+
try {
|
|
2687
|
+
await this.sendResponse(failure, hostMeta);
|
|
2688
|
+
} catch (sendError) {
|
|
2689
|
+
this.reportHandlerFailure(
|
|
2690
|
+
sendError,
|
|
2691
|
+
"Failed to send pick-options failure"
|
|
2692
|
+
);
|
|
2693
|
+
}
|
|
2694
|
+
return;
|
|
2695
|
+
}
|
|
2696
|
+
this.reportHandlerFailure(
|
|
2697
|
+
error,
|
|
2698
|
+
"Failed to handle pick-options request"
|
|
2699
|
+
);
|
|
2700
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
2701
|
+
this.emit(
|
|
2702
|
+
"session_notification" /* SESSION_NOTIFICATION */,
|
|
2703
|
+
_DroidClient.createNotificationEvent(
|
|
2704
|
+
_DroidClient.createErrorNotification(err)
|
|
2705
|
+
)
|
|
2706
|
+
);
|
|
2707
|
+
const cancelResponse = {
|
|
2708
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
2709
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
2710
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
2711
|
+
type: "response",
|
|
2712
|
+
id: event.id,
|
|
2713
|
+
result: { cancelled: true, selectedIds: [] }
|
|
2714
|
+
};
|
|
2715
|
+
try {
|
|
2716
|
+
await this.sendResponse(cancelResponse, hostMeta);
|
|
2717
|
+
} catch (sendError) {
|
|
2718
|
+
this.reportHandlerFailure(
|
|
2719
|
+
sendError,
|
|
2720
|
+
"Failed to send pick-options cancellation"
|
|
2721
|
+
);
|
|
2722
|
+
}
|
|
2723
|
+
return;
|
|
2724
|
+
}
|
|
2725
|
+
}
|
|
2726
|
+
const response2 = {
|
|
2727
|
+
type: "response",
|
|
2728
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
2729
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
2730
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
2731
|
+
id: event.id,
|
|
2732
|
+
result
|
|
2733
|
+
};
|
|
2734
|
+
await this.sendResponse(response2, hostMeta);
|
|
2345
2735
|
}
|
|
2346
2736
|
static getErrorType(error) {
|
|
2347
2737
|
switch (error.constructor) {
|
|
2348
|
-
case
|
|
2738
|
+
case _chunkKAAWCHO4js.ConnectionError:
|
|
2739
|
+
case _chunkKAAWCHO4js.DroidConnectionEndedError:
|
|
2349
2740
|
return "ConnectionError" /* CONNECTION_ERROR */;
|
|
2350
|
-
case
|
|
2741
|
+
case _chunkKAAWCHO4js.ProtocolError:
|
|
2351
2742
|
return "ProtocolError" /* PROTOCOL_ERROR */;
|
|
2352
|
-
case
|
|
2743
|
+
case _chunkKAAWCHO4js.SessionError:
|
|
2353
2744
|
return "SessionError" /* SESSION_ERROR */;
|
|
2354
|
-
case
|
|
2745
|
+
case _chunkKAAWCHO4js.TimeoutError:
|
|
2355
2746
|
return "TimeoutError" /* TIMEOUT_ERROR */;
|
|
2356
|
-
case
|
|
2747
|
+
case _chunkKAAWCHO4js.ProcessExitError:
|
|
2357
2748
|
return "ProcessExitError" /* PROCESS_EXIT_ERROR */;
|
|
2358
|
-
case
|
|
2749
|
+
case _chunkKAAWCHO4js.DroidClientError:
|
|
2359
2750
|
return "DroidClientError" /* DROID_CLIENT_ERROR */;
|
|
2360
2751
|
default:
|
|
2361
2752
|
return "Error" /* ERROR */;
|
|
@@ -2367,7 +2758,7 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2367
2758
|
message: error.message,
|
|
2368
2759
|
errorType: _DroidClient.getErrorType(error),
|
|
2369
2760
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
2370
|
-
...error instanceof
|
|
2761
|
+
...error instanceof _chunkKAAWCHO4js.ProcessExitError && error.exitCode !== void 0 ? { exitCode: error.exitCode } : {},
|
|
2371
2762
|
error: {
|
|
2372
2763
|
name: error.name,
|
|
2373
2764
|
message: error.message
|
|
@@ -2393,20 +2784,62 @@ var DroidClient = (_class = class _DroidClient extends _events2.default {
|
|
|
2393
2784
|
*/
|
|
2394
2785
|
static createNotificationEvent(notification) {
|
|
2395
2786
|
return {
|
|
2396
|
-
jsonrpc:
|
|
2787
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
2397
2788
|
type: "notification",
|
|
2398
|
-
factoryApiVersion:
|
|
2399
|
-
factoryProtocolVersion:
|
|
2789
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
2790
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
2400
2791
|
method: "droid.session_notification" /* SESSION_NOTIFICATION */,
|
|
2401
2792
|
params: { notification }
|
|
2402
2793
|
};
|
|
2403
2794
|
}
|
|
2404
2795
|
}, _class);
|
|
2405
2796
|
|
|
2797
|
+
// src/exec-core/message-transport.ts
|
|
2798
|
+
var JsonRpcCodecTransport = class {
|
|
2799
|
+
|
|
2800
|
+
|
|
2801
|
+
constructor(transport, logger) {
|
|
2802
|
+
this.transport = transport;
|
|
2803
|
+
this.logger = logger;
|
|
2804
|
+
}
|
|
2805
|
+
send(message) {
|
|
2806
|
+
return this.transport.send(JSON.stringify(message));
|
|
2807
|
+
}
|
|
2808
|
+
onMessage(handler) {
|
|
2809
|
+
this.transport.onMessage((frame) => {
|
|
2810
|
+
const message = decodeDroidMessage(frame, this.logger);
|
|
2811
|
+
if (message) handler(message);
|
|
2812
|
+
});
|
|
2813
|
+
}
|
|
2814
|
+
onError(handler) {
|
|
2815
|
+
this.transport.onError(handler);
|
|
2816
|
+
}
|
|
2817
|
+
close() {
|
|
2818
|
+
return this.transport.close();
|
|
2819
|
+
}
|
|
2820
|
+
get isConnected() {
|
|
2821
|
+
return this.transport.isConnected;
|
|
2822
|
+
}
|
|
2823
|
+
};
|
|
2824
|
+
function withJsonRpcCodec(transport, deps = defaultExecCoreDeps) {
|
|
2825
|
+
const { logger } = resolveExecCoreDeps(void 0, deps);
|
|
2826
|
+
return new JsonRpcCodecTransport(transport, logger);
|
|
2827
|
+
}
|
|
2828
|
+
function decodeDroidMessage(frame, logger) {
|
|
2829
|
+
try {
|
|
2830
|
+
return _chunkKAAWCHO4js.JsonRpcMessageSchema.parse(JSON.parse(frame));
|
|
2831
|
+
} catch (error) {
|
|
2832
|
+
logWarn(logger, "[DroidClient] Failed to handle message", {
|
|
2833
|
+
errorName: error instanceof Error ? error.name : typeof error,
|
|
2834
|
+
messageByteLength: new TextEncoder().encode(frame).byteLength
|
|
2835
|
+
});
|
|
2836
|
+
return void 0;
|
|
2837
|
+
}
|
|
2838
|
+
}
|
|
2839
|
+
|
|
2406
2840
|
// src/exec-core/managed-process.ts
|
|
2407
2841
|
var _child_process = require('child_process');
|
|
2408
2842
|
var _fs = require('fs'); var fs3 = _interopRequireWildcard(_fs);
|
|
2409
|
-
var _readline = require('readline'); var readline = _interopRequireWildcard(_readline);
|
|
2410
2843
|
|
|
2411
2844
|
// src/exec-core/runtime-utils.ts
|
|
2412
2845
|
var _os = require('os'); var os = _interopRequireWildcard(_os);
|
|
@@ -2571,7 +3004,7 @@ function logTransportMessage(direction, message, childPid, deps = defaultExecCor
|
|
|
2571
3004
|
}
|
|
2572
3005
|
}
|
|
2573
3006
|
async function __resetTransportLoggerForTests(deps = defaultExecCoreDeps) {
|
|
2574
|
-
const stream = _nullishCoalesce(_optionalChain([state, 'optionalAccess',
|
|
3007
|
+
const stream = _nullishCoalesce(_optionalChain([state, 'optionalAccess', _29 => _29.stream]), () => ( null));
|
|
2575
3008
|
state = null;
|
|
2576
3009
|
enabledCache = null;
|
|
2577
3010
|
if (!stream) return;
|
|
@@ -2603,16 +3036,23 @@ function describeSpawnError(error, context) {
|
|
|
2603
3036
|
return `Failed to start Droid: ${error.message}`;
|
|
2604
3037
|
}
|
|
2605
3038
|
if (error.code === "ENOENT") {
|
|
2606
|
-
if (_optionalChain([context, 'optionalAccess',
|
|
3039
|
+
if (_optionalChain([context, 'optionalAccess', _30 => _30.cwd]) && !fs3.default.existsSync(context.cwd)) {
|
|
2607
3040
|
return `Failed to start Droid: working directory does not exist (${context.cwd})`;
|
|
2608
3041
|
}
|
|
2609
|
-
return `Failed to start Droid: executable not found${_optionalChain([context, 'optionalAccess',
|
|
3042
|
+
return `Failed to start Droid: executable not found${_optionalChain([context, 'optionalAccess', _31 => _31.execPath]) ? ` (${context.execPath})` : ""}`;
|
|
2610
3043
|
}
|
|
2611
3044
|
if (error.code === "EACCES") {
|
|
2612
|
-
return `Failed to start Droid: permission denied${_optionalChain([context, 'optionalAccess',
|
|
3045
|
+
return `Failed to start Droid: permission denied${_optionalChain([context, 'optionalAccess', _32 => _32.execPath]) ? ` (${context.execPath})` : ""}`;
|
|
2613
3046
|
}
|
|
2614
3047
|
return `Failed to start Droid: ${error.code}`;
|
|
2615
3048
|
}
|
|
3049
|
+
function createSpawnError(error, context) {
|
|
3050
|
+
return new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)(describeSpawnError(error, context), {
|
|
3051
|
+
error,
|
|
3052
|
+
cwd: _optionalChain([context, 'optionalAccess', _33 => _33.cwd]),
|
|
3053
|
+
execPath: _optionalChain([context, 'optionalAccess', _34 => _34.execPath])
|
|
3054
|
+
});
|
|
3055
|
+
}
|
|
2616
3056
|
function describeExitError(code, signal) {
|
|
2617
3057
|
if (signal) {
|
|
2618
3058
|
return `Droid process was killed (${signal})`;
|
|
@@ -2623,7 +3063,7 @@ function describeExitError(code, signal) {
|
|
|
2623
3063
|
return "Droid process exited unexpectedly";
|
|
2624
3064
|
}
|
|
2625
3065
|
var ManagedProcessImpl = (_class2 = class {
|
|
2626
|
-
constructor(childProcess, logPrefix, spawnContext, deps, transportLoggerDeps = deps) {;_class2.prototype.
|
|
3066
|
+
constructor(childProcess, logPrefix, spawnContext, deps, transportLoggerDeps = deps) {;_class2.prototype.__init14.call(this);_class2.prototype.__init15.call(this);_class2.prototype.__init16.call(this);_class2.prototype.__init17.call(this);_class2.prototype.__init18.call(this);_class2.prototype.__init19.call(this);_class2.prototype.__init20.call(this);_class2.prototype.__init21.call(this);_class2.prototype.__init22.call(this);
|
|
2627
3067
|
this.logPrefix = logPrefix;
|
|
2628
3068
|
this.spawnContext = spawnContext;
|
|
2629
3069
|
this.transportLoggerDeps = transportLoggerDeps;
|
|
@@ -2635,75 +3075,84 @@ var ManagedProcessImpl = (_class2 = class {
|
|
|
2635
3075
|
|
|
2636
3076
|
|
|
2637
3077
|
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
3078
|
+
__init14() {this.messageHandler = null}
|
|
3079
|
+
__init15() {this.errorHandler = null}
|
|
3080
|
+
__init16() {this.stdoutDecoder = new (0, _chunkKAAWCHO4js.LfLineDecoder)()}
|
|
3081
|
+
__init17() {this.stdoutDataHandler = (chunk) => {
|
|
3082
|
+
const text = typeof chunk === "string" ? chunk : chunk.toString("utf8");
|
|
3083
|
+
for (const line of this.stdoutDecoder.push(text)) {
|
|
3084
|
+
this.handleStdoutLine(line);
|
|
3085
|
+
}
|
|
3086
|
+
}}
|
|
3087
|
+
__init18() {this.isClosing = false}
|
|
2642
3088
|
/** Latch so exit teardown/classification runs exactly once per process. */
|
|
2643
|
-
|
|
2644
|
-
|
|
3089
|
+
__init19() {this.exitFinalized = false}
|
|
3090
|
+
__init20() {this.exitDrainTimer = null}
|
|
2645
3091
|
/**
|
|
2646
3092
|
* Sticky error from a process error or unexpected exit event. Once set,
|
|
2647
3093
|
* all subsequent `send()` calls throw this error immediately instead of
|
|
2648
3094
|
* hanging on a dead transport.
|
|
2649
3095
|
*/
|
|
2650
|
-
|
|
2651
|
-
|
|
3096
|
+
__init21() {this.processError = null}
|
|
3097
|
+
__init22() {this.queuedSendPromise = Promise.resolve()}
|
|
2652
3098
|
|
|
2653
3099
|
get childProcess() {
|
|
2654
3100
|
if (!this._childProcess) {
|
|
2655
|
-
throw new (0,
|
|
3101
|
+
throw new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)("Process not connected");
|
|
2656
3102
|
}
|
|
2657
3103
|
return this._childProcess;
|
|
2658
3104
|
}
|
|
3105
|
+
/** Wait for the runtime's spawn result without replacing the transport's error handler. */
|
|
3106
|
+
waitForSpawn() {
|
|
3107
|
+
const child = this.childProcess;
|
|
3108
|
+
return new Promise((resolve2, reject) => {
|
|
3109
|
+
const onSpawn = () => {
|
|
3110
|
+
child.off("error", onError);
|
|
3111
|
+
resolve2();
|
|
3112
|
+
};
|
|
3113
|
+
const onError = () => {
|
|
3114
|
+
child.off("spawn", onSpawn);
|
|
3115
|
+
reject(this.processError);
|
|
3116
|
+
};
|
|
3117
|
+
child.once("spawn", onSpawn);
|
|
3118
|
+
child.once("error", onError);
|
|
3119
|
+
});
|
|
3120
|
+
}
|
|
2659
3121
|
setupHandlers() {
|
|
2660
3122
|
if (!this.childProcess.stdout) {
|
|
2661
|
-
throw new (0,
|
|
3123
|
+
throw new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)("Failed to get process stdout");
|
|
2662
3124
|
}
|
|
2663
|
-
this.
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
const trimmedLine = line.trim();
|
|
2669
|
-
if (this.messageHandler && trimmedLine) {
|
|
2670
|
-
if (trimmedLine.startsWith("{") || trimmedLine.startsWith("[")) {
|
|
2671
|
-
logTransportMessage(
|
|
2672
|
-
"in" /* In */,
|
|
2673
|
-
trimmedLine,
|
|
2674
|
-
_optionalChain([this, 'access', _23 => _23._childProcess, 'optionalAccess', _24 => _24.pid]),
|
|
2675
|
-
this.transportLoggerDeps
|
|
2676
|
-
);
|
|
2677
|
-
this.messageHandler(trimmedLine);
|
|
2678
|
-
} else {
|
|
2679
|
-
const truncated = trimmedLine.length > MAX_NON_JSON_LOG_LENGTH ? trimmedLine.substring(0, MAX_NON_JSON_LOG_LENGTH) : trimmedLine;
|
|
2680
|
-
this.logger.warn("[droid process] non-JSON output", {
|
|
2681
|
-
state: this.logPrefix,
|
|
2682
|
-
output: truncated
|
|
2683
|
-
});
|
|
2684
|
-
}
|
|
3125
|
+
this.childProcess.stdout.setEncoding("utf8");
|
|
3126
|
+
this.childProcess.stdout.on("data", this.stdoutDataHandler);
|
|
3127
|
+
this.childProcess.on("error", (error) => {
|
|
3128
|
+
if (this.processError || this.isClosing || this.exitFinalized) {
|
|
3129
|
+
return;
|
|
2685
3130
|
}
|
|
3131
|
+
this.processError = createSpawnError(error, this.spawnContext);
|
|
3132
|
+
_optionalChain([this, 'access', _35 => _35.errorHandler, 'optionalCall', _36 => _36(this.processError)]);
|
|
2686
3133
|
});
|
|
2687
|
-
this.childProcess.on("error", (error) => {
|
|
2688
|
-
this.processError
|
|
2689
|
-
|
|
3134
|
+
_optionalChain([this, 'access', _37 => _37.childProcess, 'access', _38 => _38.stdin, 'optionalAccess', _39 => _39.on, 'call', _40 => _40("error", (error) => {
|
|
3135
|
+
if (this.processError || this.isClosing || this.exitFinalized) {
|
|
3136
|
+
return;
|
|
3137
|
+
}
|
|
3138
|
+
this.processError = new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)(
|
|
3139
|
+
"Process stdin failed",
|
|
2690
3140
|
{
|
|
2691
|
-
error
|
|
2692
|
-
cwd: _optionalChain([this, 'access', _25 => _25.spawnContext, 'optionalAccess', _26 => _26.cwd]),
|
|
2693
|
-
execPath: _optionalChain([this, 'access', _27 => _27.spawnContext, 'optionalAccess', _28 => _28.execPath])
|
|
3141
|
+
error
|
|
2694
3142
|
}
|
|
2695
3143
|
);
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
}
|
|
2699
|
-
});
|
|
3144
|
+
_optionalChain([this, 'access', _41 => _41.errorHandler, 'optionalCall', _42 => _42(this.processError)]);
|
|
3145
|
+
})]);
|
|
2700
3146
|
this.childProcess.on("exit", (code, signal) => {
|
|
2701
3147
|
this.exitDrainTimer = setTimeout(() => {
|
|
2702
3148
|
this.finalizeExit(code, signal);
|
|
2703
3149
|
}, EXIT_STDIO_DRAIN_TIMEOUT_MS);
|
|
2704
|
-
_optionalChain([this, 'access',
|
|
3150
|
+
_optionalChain([this, 'access', _43 => _43.exitDrainTimer, 'access', _44 => _44.unref, 'optionalCall', _45 => _45()]);
|
|
2705
3151
|
});
|
|
2706
3152
|
this.childProcess.on("close", (code, signal) => {
|
|
3153
|
+
for (const line of this.stdoutDecoder.finish()) {
|
|
3154
|
+
this.handleStdoutLine(line);
|
|
3155
|
+
}
|
|
2707
3156
|
this.finalizeExit(code, signal);
|
|
2708
3157
|
});
|
|
2709
3158
|
if (this.childProcess.stderr) {
|
|
@@ -2715,6 +3164,27 @@ var ManagedProcessImpl = (_class2 = class {
|
|
|
2715
3164
|
});
|
|
2716
3165
|
}
|
|
2717
3166
|
}
|
|
3167
|
+
handleStdoutLine(line) {
|
|
3168
|
+
const trimmedLine = line.trim();
|
|
3169
|
+
if (!this.messageHandler || !trimmedLine) {
|
|
3170
|
+
return;
|
|
3171
|
+
}
|
|
3172
|
+
if (trimmedLine.startsWith("{") || trimmedLine.startsWith("[")) {
|
|
3173
|
+
logTransportMessage(
|
|
3174
|
+
"in" /* In */,
|
|
3175
|
+
trimmedLine,
|
|
3176
|
+
_optionalChain([this, 'access', _46 => _46._childProcess, 'optionalAccess', _47 => _47.pid]),
|
|
3177
|
+
this.transportLoggerDeps
|
|
3178
|
+
);
|
|
3179
|
+
this.messageHandler(trimmedLine);
|
|
3180
|
+
return;
|
|
3181
|
+
}
|
|
3182
|
+
const truncated = trimmedLine.length > MAX_NON_JSON_LOG_LENGTH ? trimmedLine.substring(0, MAX_NON_JSON_LOG_LENGTH) : trimmedLine;
|
|
3183
|
+
this.logger.warn("[droid process] non-JSON output", {
|
|
3184
|
+
state: this.logPrefix,
|
|
3185
|
+
output: truncated
|
|
3186
|
+
});
|
|
3187
|
+
}
|
|
2718
3188
|
finalizeExit(code, signal) {
|
|
2719
3189
|
if (this.exitFinalized) {
|
|
2720
3190
|
return;
|
|
@@ -2724,13 +3194,11 @@ var ManagedProcessImpl = (_class2 = class {
|
|
|
2724
3194
|
clearTimeout(this.exitDrainTimer);
|
|
2725
3195
|
this.exitDrainTimer = null;
|
|
2726
3196
|
}
|
|
3197
|
+
_optionalChain([this, 'access', _48 => _48._childProcess, 'optionalAccess', _49 => _49.stdout, 'optionalAccess', _50 => _50.off, 'call', _51 => _51("data", this.stdoutDataHandler)]);
|
|
2727
3198
|
this._childProcess = null;
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
this.
|
|
2731
|
-
}
|
|
2732
|
-
if (!this.isClosing) {
|
|
2733
|
-
this.processError = new (0, _chunkYSKO6SPTjs.ProcessExitError)(
|
|
3199
|
+
this.stdoutDecoder.reset();
|
|
3200
|
+
if (!this.isClosing && !this.processError) {
|
|
3201
|
+
this.processError = new (0, _chunkKAAWCHO4js.ProcessExitError)(
|
|
2734
3202
|
describeExitError(code, signal),
|
|
2735
3203
|
{
|
|
2736
3204
|
exitCode: _nullishCoalesce(code, () => ( void 0)),
|
|
@@ -2747,28 +3215,32 @@ var ManagedProcessImpl = (_class2 = class {
|
|
|
2747
3215
|
throw this.processError;
|
|
2748
3216
|
}
|
|
2749
3217
|
if (!this._childProcess || !this._childProcess.stdin) {
|
|
2750
|
-
throw new (0,
|
|
3218
|
+
throw new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)("Process not connected");
|
|
2751
3219
|
}
|
|
2752
3220
|
const previousSends = this.queuedSendPromise;
|
|
2753
3221
|
this.queuedSendPromise = (async () => {
|
|
2754
3222
|
await previousSends.catch(() => {
|
|
2755
3223
|
});
|
|
2756
3224
|
if (!this._childProcess || !this._childProcess.stdin || this._childProcess.killed || this.isClosing) {
|
|
2757
|
-
throw new (0,
|
|
3225
|
+
throw new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)(
|
|
3226
|
+
"Process disconnected before write"
|
|
3227
|
+
);
|
|
2758
3228
|
}
|
|
2759
3229
|
await new Promise((resolve2, reject) => {
|
|
2760
3230
|
try {
|
|
2761
3231
|
if (!this._childProcess || !this._childProcess.stdin) {
|
|
2762
|
-
reject(new (0,
|
|
3232
|
+
reject(new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)("Process stdin unavailable"));
|
|
2763
3233
|
return;
|
|
2764
3234
|
}
|
|
2765
3235
|
const stdin = this._childProcess.stdin;
|
|
2766
3236
|
if ("writable" in stdin && !stdin.writable) {
|
|
2767
|
-
reject(
|
|
3237
|
+
reject(
|
|
3238
|
+
new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)("Process stdin is not writable")
|
|
3239
|
+
);
|
|
2768
3240
|
return;
|
|
2769
3241
|
}
|
|
2770
|
-
const childPid = _optionalChain([this, 'access',
|
|
2771
|
-
stdin.write(`${message}
|
|
3242
|
+
const childPid = _optionalChain([this, 'access', _52 => _52._childProcess, 'optionalAccess', _53 => _53.pid]);
|
|
3243
|
+
stdin.write(`${_chunkKAAWCHO4js.escapeJsonLineSeparators.call(void 0, message)}
|
|
2772
3244
|
`, (error) => {
|
|
2773
3245
|
if (error) {
|
|
2774
3246
|
logTransportMessage(
|
|
@@ -2780,15 +3252,21 @@ var ManagedProcessImpl = (_class2 = class {
|
|
|
2780
3252
|
const errorMessage = error.message || String(error);
|
|
2781
3253
|
if (errorMessage.includes("EPIPE") || errorMessage.includes("ECONNRESET")) {
|
|
2782
3254
|
reject(
|
|
2783
|
-
new (0,
|
|
2784
|
-
|
|
2785
|
-
|
|
3255
|
+
new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)(
|
|
3256
|
+
"Process stdin closed during write",
|
|
3257
|
+
{
|
|
3258
|
+
error
|
|
3259
|
+
}
|
|
3260
|
+
)
|
|
2786
3261
|
);
|
|
2787
3262
|
} else {
|
|
2788
3263
|
reject(
|
|
2789
|
-
new (0,
|
|
2790
|
-
|
|
2791
|
-
|
|
3264
|
+
new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)(
|
|
3265
|
+
"Failed to write to process stdin",
|
|
3266
|
+
{
|
|
3267
|
+
error
|
|
3268
|
+
}
|
|
3269
|
+
)
|
|
2792
3270
|
);
|
|
2793
3271
|
}
|
|
2794
3272
|
} else {
|
|
@@ -2810,7 +3288,7 @@ var ManagedProcessImpl = (_class2 = class {
|
|
|
2810
3288
|
}
|
|
2811
3289
|
);
|
|
2812
3290
|
reject(
|
|
2813
|
-
new (0,
|
|
3291
|
+
new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)("Error writing to process stdin", {
|
|
2814
3292
|
error: error instanceof Error ? error : new Error(String(error))
|
|
2815
3293
|
})
|
|
2816
3294
|
);
|
|
@@ -2858,11 +3336,9 @@ var ManagedProcessImpl = (_class2 = class {
|
|
|
2858
3336
|
}
|
|
2859
3337
|
});
|
|
2860
3338
|
}
|
|
3339
|
+
_optionalChain([processToClose, 'access', _54 => _54.stdout, 'optionalAccess', _55 => _55.off, 'call', _56 => _56("data", this.stdoutDataHandler)]);
|
|
2861
3340
|
}
|
|
2862
|
-
|
|
2863
|
-
this.readlineInterface.close();
|
|
2864
|
-
this.readlineInterface = null;
|
|
2865
|
-
}
|
|
3341
|
+
this.stdoutDecoder.reset();
|
|
2866
3342
|
this.exitFinalized = true;
|
|
2867
3343
|
if (this.exitDrainTimer) {
|
|
2868
3344
|
clearTimeout(this.exitDrainTimer);
|
|
@@ -2933,11 +3409,11 @@ function observeEarlySpawnFailure(childProcess, gracePeriodMs, sleep) {
|
|
|
2933
3409
|
const errorListener = (err) => {
|
|
2934
3410
|
observation.error = err;
|
|
2935
3411
|
};
|
|
2936
|
-
_optionalChain([childProcess, 'access',
|
|
3412
|
+
_optionalChain([childProcess, 'access', _57 => _57.stderr, 'optionalAccess', _58 => _58.on, 'call', _59 => _59("data", stderrListener)]);
|
|
2937
3413
|
childProcess.once("exit", exitListener);
|
|
2938
3414
|
childProcess.once("error", errorListener);
|
|
2939
3415
|
const cleanup = () => {
|
|
2940
|
-
_optionalChain([childProcess, 'access',
|
|
3416
|
+
_optionalChain([childProcess, 'access', _60 => _60.stderr, 'optionalAccess', _61 => _61.off, 'call', _62 => _62("data", stderrListener)]);
|
|
2941
3417
|
childProcess.off("exit", exitListener);
|
|
2942
3418
|
childProcess.off("error", errorListener);
|
|
2943
3419
|
};
|
|
@@ -2969,10 +3445,8 @@ async function spawnWithWindowsJobObjectRetry(spawnFactory, options = {}) {
|
|
|
2969
3445
|
const sleep = _nullishCoalesce(options.sleep, () => ( defaultSleep));
|
|
2970
3446
|
const logPrefix = _nullishCoalesce(options.logPrefix, () => ( "[spawnWithWindowsJobObjectRetry]"));
|
|
2971
3447
|
const logger = _nullishCoalesce(options.logger, () => ( noopLogger));
|
|
2972
|
-
let
|
|
2973
|
-
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
3448
|
+
for (let attempt = 0; ; attempt++) {
|
|
2974
3449
|
const child = spawnFactory();
|
|
2975
|
-
lastChild = child;
|
|
2976
3450
|
const observation = await observeEarlySpawnFailure(
|
|
2977
3451
|
child,
|
|
2978
3452
|
gracePeriodMs,
|
|
@@ -2982,8 +3456,28 @@ async function spawnWithWindowsJobObjectRetry(spawnFactory, options = {}) {
|
|
|
2982
3456
|
return child;
|
|
2983
3457
|
}
|
|
2984
3458
|
const isRetryableJobObjectFailure = observation.stderr.includes(WINDOWS_JOB_OBJECT_ERROR_MARKER) || observation.exited && observation.code !== 0 && !observation.error;
|
|
2985
|
-
|
|
2986
|
-
|
|
3459
|
+
try {
|
|
3460
|
+
await _optionalChain([options, 'access', _63 => _63.disposeEarlyExited, 'optionalCall', _64 => _64(child)]);
|
|
3461
|
+
} catch (disposeErr) {
|
|
3462
|
+
logWarn(logger, "spawnWithWindowsJobObjectRetry: dispose error", {
|
|
3463
|
+
cause: disposeErr instanceof Error ? disposeErr : new Error(String(disposeErr)),
|
|
3464
|
+
name: logPrefix
|
|
3465
|
+
});
|
|
3466
|
+
}
|
|
3467
|
+
if (attempt >= maxRetries || !isRetryableJobObjectFailure) {
|
|
3468
|
+
if (observation.error) {
|
|
3469
|
+
throw createSpawnError(observation.error, options);
|
|
3470
|
+
}
|
|
3471
|
+
throw new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)(
|
|
3472
|
+
"Droid process exited during startup",
|
|
3473
|
+
{
|
|
3474
|
+
cwd: options.cwd,
|
|
3475
|
+
execPath: options.execPath,
|
|
3476
|
+
exitCode: observation.code,
|
|
3477
|
+
signal: observation.signal,
|
|
3478
|
+
stderrTail: observation.stderr.slice(-256)
|
|
3479
|
+
}
|
|
3480
|
+
);
|
|
2987
3481
|
}
|
|
2988
3482
|
logger.warn("spawnWithWindowsJobObjectRetry: retrying on early failure", {
|
|
2989
3483
|
name: logPrefix,
|
|
@@ -2993,24 +3487,19 @@ async function spawnWithWindowsJobObjectRetry(spawnFactory, options = {}) {
|
|
|
2993
3487
|
signal: observation.signal,
|
|
2994
3488
|
stderrTail: observation.stderr.slice(-256)
|
|
2995
3489
|
});
|
|
2996
|
-
try {
|
|
2997
|
-
await _optionalChain([options, 'access', _40 => _40.disposeEarlyExited, 'optionalCall', _41 => _41(child)]);
|
|
2998
|
-
} catch (disposeErr) {
|
|
2999
|
-
logWarn(logger, "spawnWithWindowsJobObjectRetry: dispose error", {
|
|
3000
|
-
cause: disposeErr instanceof Error ? disposeErr : new Error(String(disposeErr)),
|
|
3001
|
-
name: logPrefix
|
|
3002
|
-
});
|
|
3003
|
-
}
|
|
3004
3490
|
await sleep(_nullishCoalesce(_nullishCoalesce(backoff[attempt], () => ( backoff[backoff.length - 1])), () => ( 400)));
|
|
3005
3491
|
}
|
|
3006
|
-
if (lastChild) return lastChild;
|
|
3007
|
-
throw new (0, _chunkYSKO6SPTjs.DroidClientError)(
|
|
3008
|
-
"spawnWithWindowsJobObjectRetry: exhausted retries without child",
|
|
3009
|
-
{}
|
|
3010
|
-
);
|
|
3011
3492
|
}
|
|
3012
3493
|
|
|
3013
3494
|
// src/exec-core/process-manager.ts
|
|
3495
|
+
var NATIVE_PROCESS_LIFECYCLE_MESSAGE = "[droid process] native lifecycle";
|
|
3496
|
+
var MAX_SPAWN_ERROR_CODE_LENGTH = 64;
|
|
3497
|
+
function getSpawnErrorCode(error) {
|
|
3498
|
+
if (typeof error !== "object" || error === null || !("code" in error) || typeof error.code !== "string" && typeof error.code !== "number") {
|
|
3499
|
+
return void 0;
|
|
3500
|
+
}
|
|
3501
|
+
return String(error.code).slice(0, MAX_SPAWN_ERROR_CODE_LENGTH);
|
|
3502
|
+
}
|
|
3014
3503
|
function buildArgs(config) {
|
|
3015
3504
|
const args = [];
|
|
3016
3505
|
if (config.mode === "acp" /* Acp */) {
|
|
@@ -3029,6 +3518,13 @@ function buildArgs(config) {
|
|
|
3029
3518
|
}
|
|
3030
3519
|
return args;
|
|
3031
3520
|
}
|
|
3521
|
+
function ensureIpcStdio(stdio) {
|
|
3522
|
+
if (Array.isArray(stdio)) {
|
|
3523
|
+
return stdio.includes("ipc") ? stdio : [...stdio, "ipc"];
|
|
3524
|
+
}
|
|
3525
|
+
const standardChannel = _nullishCoalesce(stdio, () => ( "pipe"));
|
|
3526
|
+
return [standardChannel, standardChannel, standardChannel, "ipc"];
|
|
3527
|
+
}
|
|
3032
3528
|
var DroidProcessManager = class {
|
|
3033
3529
|
|
|
3034
3530
|
|
|
@@ -3080,11 +3576,13 @@ var DroidProcessManager = class {
|
|
|
3080
3576
|
() => this.invokeNodeSpawn(planned),
|
|
3081
3577
|
{
|
|
3082
3578
|
...retryOptions,
|
|
3579
|
+
cwd: planned.expandedCwd,
|
|
3580
|
+
execPath: planned.execPath,
|
|
3083
3581
|
logPrefix: "[DroidProcessManager]",
|
|
3084
3582
|
logger: this.logger,
|
|
3085
3583
|
disposeEarlyExited: (child) => {
|
|
3086
3584
|
try {
|
|
3087
|
-
_optionalChain([child, 'access',
|
|
3585
|
+
_optionalChain([child, 'access', _65 => _65.stdin, 'optionalAccess', _66 => _66.end, 'call', _67 => _67()]);
|
|
3088
3586
|
} catch (stdinErr) {
|
|
3089
3587
|
logWarn(
|
|
3090
3588
|
this.logger,
|
|
@@ -3109,7 +3607,8 @@ var DroidProcessManager = class {
|
|
|
3109
3607
|
}
|
|
3110
3608
|
);
|
|
3111
3609
|
if (!childProcess.stdout || !childProcess.stdin) {
|
|
3112
|
-
|
|
3610
|
+
childProcess.kill();
|
|
3611
|
+
throw new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)("Failed to get process stdio");
|
|
3113
3612
|
}
|
|
3114
3613
|
return new ManagedProcessImpl(
|
|
3115
3614
|
childProcess,
|
|
@@ -3155,21 +3654,88 @@ var DroidProcessManager = class {
|
|
|
3155
3654
|
};
|
|
3156
3655
|
}
|
|
3157
3656
|
invokeNodeSpawn(planned) {
|
|
3657
|
+
const stdio = planned.enableIpc ? ensureIpcStdio(planned.stdio) : _nullishCoalesce(planned.stdio, () => ( ["pipe", "pipe", "pipe"]));
|
|
3158
3658
|
const options = {
|
|
3159
3659
|
cwd: planned.expandedCwd,
|
|
3160
3660
|
env: planned.env,
|
|
3161
|
-
stdio
|
|
3661
|
+
stdio
|
|
3162
3662
|
};
|
|
3163
3663
|
if (planned.enableIpc) {
|
|
3164
3664
|
options.serialization = "json";
|
|
3165
3665
|
}
|
|
3166
|
-
|
|
3666
|
+
const spawnedAt = Date.now();
|
|
3667
|
+
let childProcess;
|
|
3668
|
+
try {
|
|
3669
|
+
childProcess = _child_process.spawn.call(void 0, planned.execPath, planned.args, options);
|
|
3670
|
+
} catch (error) {
|
|
3671
|
+
const failedAt = Date.now();
|
|
3672
|
+
this.logNativeProcessLifecycle({
|
|
3673
|
+
state: "spawn_error",
|
|
3674
|
+
pid: null,
|
|
3675
|
+
createdAt: spawnedAt,
|
|
3676
|
+
eventDate: new Date(failedAt).toISOString(),
|
|
3677
|
+
durationMs: failedAt - spawnedAt,
|
|
3678
|
+
errnoCode: getSpawnErrorCode(error)
|
|
3679
|
+
});
|
|
3680
|
+
throw error;
|
|
3681
|
+
}
|
|
3682
|
+
const pid = childProcess.pid;
|
|
3683
|
+
if (pid === void 0) {
|
|
3684
|
+
childProcess.once("error", (error) => {
|
|
3685
|
+
const failedAt = Date.now();
|
|
3686
|
+
this.logNativeProcessLifecycle({
|
|
3687
|
+
state: "spawn_error",
|
|
3688
|
+
pid: null,
|
|
3689
|
+
createdAt: spawnedAt,
|
|
3690
|
+
eventDate: new Date(failedAt).toISOString(),
|
|
3691
|
+
durationMs: failedAt - spawnedAt,
|
|
3692
|
+
errnoCode: getSpawnErrorCode(error)
|
|
3693
|
+
});
|
|
3694
|
+
});
|
|
3695
|
+
} else {
|
|
3696
|
+
childProcess.once("exit", (exitCode, signal) => {
|
|
3697
|
+
const exitedAt = Date.now();
|
|
3698
|
+
this.logNativeProcessLifecycle({
|
|
3699
|
+
state: "exited",
|
|
3700
|
+
pid,
|
|
3701
|
+
createdAt: spawnedAt,
|
|
3702
|
+
eventDate: new Date(exitedAt).toISOString(),
|
|
3703
|
+
durationMs: exitedAt - spawnedAt,
|
|
3704
|
+
exitCode,
|
|
3705
|
+
signal
|
|
3706
|
+
});
|
|
3707
|
+
});
|
|
3708
|
+
this.logNativeProcessLifecycle({
|
|
3709
|
+
state: "spawned",
|
|
3710
|
+
pid,
|
|
3711
|
+
createdAt: spawnedAt,
|
|
3712
|
+
eventDate: new Date(spawnedAt).toISOString()
|
|
3713
|
+
});
|
|
3714
|
+
}
|
|
3715
|
+
return childProcess;
|
|
3716
|
+
}
|
|
3717
|
+
/**
|
|
3718
|
+
* Emits the content-free native process record consumed by lifecycle
|
|
3719
|
+
* measurement harnesses. `createdAt` is the wall-clock lower bound captured
|
|
3720
|
+
* immediately before spawn; `eventDate` is the wall-clock observation time.
|
|
3721
|
+
*/
|
|
3722
|
+
logNativeProcessLifecycle(record) {
|
|
3723
|
+
try {
|
|
3724
|
+
this.logger.info(NATIVE_PROCESS_LIFECYCLE_MESSAGE, record);
|
|
3725
|
+
} catch (loggingError) {
|
|
3726
|
+
void loggingError;
|
|
3727
|
+
logWarn(
|
|
3728
|
+
defaultExecCoreDeps.logger,
|
|
3729
|
+
"[droid process] native lifecycle logger failed"
|
|
3730
|
+
);
|
|
3731
|
+
}
|
|
3167
3732
|
}
|
|
3168
3733
|
spawnChildProcess(config) {
|
|
3169
3734
|
const planned = this.prepareSpawn(config);
|
|
3170
3735
|
const childProcess = this.invokeNodeSpawn(planned);
|
|
3171
3736
|
if (!childProcess.stdout || !childProcess.stdin) {
|
|
3172
|
-
|
|
3737
|
+
childProcess.kill();
|
|
3738
|
+
throw new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)("Failed to get process stdio");
|
|
3173
3739
|
}
|
|
3174
3740
|
return {
|
|
3175
3741
|
logPrefix: planned.logPrefix,
|
|
@@ -3182,17 +3748,25 @@ var DroidProcessManager = class {
|
|
|
3182
3748
|
|
|
3183
3749
|
// src/exec-core/process-transport.ts
|
|
3184
3750
|
var ProcessTransport = (_class3 = class {
|
|
3185
|
-
|
|
3751
|
+
__init23() {this.managedProcess = null}
|
|
3186
3752
|
|
|
3187
3753
|
|
|
3188
3754
|
// Store handlers that may be registered before connect() is called
|
|
3189
|
-
|
|
3190
|
-
|
|
3755
|
+
__init24() {this.messageHandler = null}
|
|
3756
|
+
|
|
3757
|
+
__init25() {this.handleMessage = (frame) => {
|
|
3758
|
+
const message = decodeDroidMessage(frame, this.logger);
|
|
3759
|
+
if (message) _optionalChain([this, 'access', _70 => _70.messageHandler, 'optionalCall', _71 => _71(message)]);
|
|
3760
|
+
}}
|
|
3761
|
+
__init26() {this.errorHandler = null}
|
|
3191
3762
|
|
|
3192
|
-
|
|
3763
|
+
|
|
3764
|
+
constructor(options = {}, deps = defaultExecCoreDeps) {;_class3.prototype.__init23.call(this);_class3.prototype.__init24.call(this);_class3.prototype.__init25.call(this);_class3.prototype.__init26.call(this);
|
|
3193
3765
|
this.options = options;
|
|
3194
3766
|
const resolved = resolveExecCoreDeps(options.observability, deps);
|
|
3767
|
+
this.logger = resolved.logger;
|
|
3195
3768
|
this.metrics = resolved.metrics;
|
|
3769
|
+
this.environmentResolver = resolved.environmentResolver;
|
|
3196
3770
|
this.processManager = new DroidProcessManager(
|
|
3197
3771
|
{
|
|
3198
3772
|
observability: options.observability
|
|
@@ -3202,7 +3776,7 @@ var ProcessTransport = (_class3 = class {
|
|
|
3202
3776
|
}
|
|
3203
3777
|
async connect() {
|
|
3204
3778
|
if (this.managedProcess && this.managedProcess.isConnected) {
|
|
3205
|
-
throw new (0,
|
|
3779
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)("Transport already connected");
|
|
3206
3780
|
}
|
|
3207
3781
|
const config = {
|
|
3208
3782
|
execPath: this.options.droidExecPath,
|
|
@@ -3210,14 +3784,36 @@ var ProcessTransport = (_class3 = class {
|
|
|
3210
3784
|
mode: "stream-jsonrpc" /* StreamJsonRpc */,
|
|
3211
3785
|
cwd: this.options.cwd,
|
|
3212
3786
|
env: this.options.env,
|
|
3787
|
+
trustedEnv: {
|
|
3788
|
+
...this.options.runtimeSettingsAuthority ? this.environmentResolver.buildRuntimeSettingsAuthorityEnv(
|
|
3789
|
+
this.options.runtimeSettingsAuthority
|
|
3790
|
+
) : {},
|
|
3791
|
+
...this.options.trustedEnv
|
|
3792
|
+
},
|
|
3213
3793
|
extraArgs: this.options.droidExecExtraArgs,
|
|
3214
|
-
enableIpc: this.options.enableIpc
|
|
3794
|
+
enableIpc: this.options.enableIpc,
|
|
3795
|
+
stdio: this.options.stdio
|
|
3215
3796
|
};
|
|
3216
3797
|
const spawnStart = performance.now();
|
|
3217
3798
|
let spawnOutcome = "error";
|
|
3799
|
+
let managedProcess;
|
|
3218
3800
|
try {
|
|
3219
|
-
|
|
3801
|
+
if (process.platform === "win32") {
|
|
3802
|
+
managedProcess = await this.processManager.spawnWithWindowsRetry(config);
|
|
3803
|
+
} else {
|
|
3804
|
+
const spawned = this.processManager.spawn(config);
|
|
3805
|
+
managedProcess = spawned;
|
|
3806
|
+
if (spawned.childProcess.pid === void 0) {
|
|
3807
|
+
await spawned.waitForSpawn();
|
|
3808
|
+
}
|
|
3809
|
+
}
|
|
3220
3810
|
spawnOutcome = "success";
|
|
3811
|
+
} catch (error) {
|
|
3812
|
+
await _optionalChain([managedProcess, 'optionalAccess', _72 => _72.close, 'call', _73 => _73()]);
|
|
3813
|
+
if (error instanceof _chunkKAAWCHO4js.DroidConnectionEndedError) {
|
|
3814
|
+
_optionalChain([this, 'access', _74 => _74.errorHandler, 'optionalCall', _75 => _75(error)]);
|
|
3815
|
+
}
|
|
3816
|
+
throw error;
|
|
3221
3817
|
} finally {
|
|
3222
3818
|
this.metrics.recordDuration(
|
|
3223
3819
|
CLI_JSONRPC_CHILD_SPAWN_LATENCY_METRIC,
|
|
@@ -3225,8 +3821,15 @@ var ProcessTransport = (_class3 = class {
|
|
|
3225
3821
|
{ outcome: spawnOutcome, source: "process_transport" }
|
|
3226
3822
|
);
|
|
3227
3823
|
}
|
|
3824
|
+
try {
|
|
3825
|
+
_optionalChain([this, 'access', _76 => _76.options, 'access', _77 => _77.onSpawned, 'optionalCall', _78 => _78(managedProcess.childProcess)]);
|
|
3826
|
+
} catch (error) {
|
|
3827
|
+
await managedProcess.close();
|
|
3828
|
+
throw error;
|
|
3829
|
+
}
|
|
3830
|
+
this.managedProcess = managedProcess;
|
|
3228
3831
|
if (this.messageHandler) {
|
|
3229
|
-
this.managedProcess.onMessage(this.
|
|
3832
|
+
this.managedProcess.onMessage(this.handleMessage);
|
|
3230
3833
|
}
|
|
3231
3834
|
if (this.errorHandler) {
|
|
3232
3835
|
this.managedProcess.onError(this.errorHandler);
|
|
@@ -3234,14 +3837,14 @@ var ProcessTransport = (_class3 = class {
|
|
|
3234
3837
|
}
|
|
3235
3838
|
async send(message) {
|
|
3236
3839
|
if (!this.managedProcess) {
|
|
3237
|
-
throw new (0,
|
|
3840
|
+
throw new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)("Transport not connected");
|
|
3238
3841
|
}
|
|
3239
|
-
return this.managedProcess.send(message);
|
|
3842
|
+
return await this.managedProcess.send(JSON.stringify(message));
|
|
3240
3843
|
}
|
|
3241
3844
|
onMessage(handler) {
|
|
3242
3845
|
this.messageHandler = handler;
|
|
3243
3846
|
if (this.managedProcess) {
|
|
3244
|
-
this.managedProcess.onMessage(
|
|
3847
|
+
this.managedProcess.onMessage(this.handleMessage);
|
|
3245
3848
|
}
|
|
3246
3849
|
}
|
|
3247
3850
|
onError(handler) {
|
|
@@ -3257,18 +3860,192 @@ var ProcessTransport = (_class3 = class {
|
|
|
3257
3860
|
}
|
|
3258
3861
|
}
|
|
3259
3862
|
get isConnected() {
|
|
3260
|
-
return _nullishCoalesce(_optionalChain([this, 'access',
|
|
3863
|
+
return _nullishCoalesce(_optionalChain([this, 'access', _79 => _79.managedProcess, 'optionalAccess', _80 => _80.isConnected]), () => ( false));
|
|
3261
3864
|
}
|
|
3262
3865
|
getManagedProcess() {
|
|
3263
3866
|
return this.managedProcess;
|
|
3264
3867
|
}
|
|
3265
3868
|
}, _class3);
|
|
3266
3869
|
|
|
3870
|
+
// src/environment-session.ts
|
|
3871
|
+
|
|
3872
|
+
|
|
3873
|
+
// src/environment-launch/index.ts
|
|
3874
|
+
|
|
3875
|
+
|
|
3876
|
+
// src/environment-launch/errors.ts
|
|
3877
|
+
var EnvironmentLaunchError = class extends Error {
|
|
3878
|
+
|
|
3879
|
+
|
|
3880
|
+
|
|
3881
|
+
constructor(options) {
|
|
3882
|
+
super(
|
|
3883
|
+
options.cause instanceof Error ? options.cause.message : "Environment session startup failed",
|
|
3884
|
+
{ cause: options.cause }
|
|
3885
|
+
);
|
|
3886
|
+
this.name = "EnvironmentLaunchError";
|
|
3887
|
+
this.computerId = options.computerId;
|
|
3888
|
+
this.computerName = options.computerName;
|
|
3889
|
+
this.cleanupError = options.cleanupError;
|
|
3890
|
+
}
|
|
3891
|
+
};
|
|
3892
|
+
|
|
3893
|
+
// src/environment-launch/index.ts
|
|
3894
|
+
async function launchEnvironmentSession(options) {
|
|
3895
|
+
const timeoutMs = _nullishCoalesce(options.timeoutMs, () => ( 18e4));
|
|
3896
|
+
const pollIntervalMs = _nullishCoalesce(options.pollIntervalMs, () => ( 1e3));
|
|
3897
|
+
const controller = new AbortController();
|
|
3898
|
+
const cancel = () => controller.abort(_optionalChain([options, 'access', _81 => _81.signal, 'optionalAccess', _82 => _82.reason]));
|
|
3899
|
+
if (_optionalChain([options, 'access', _83 => _83.signal, 'optionalAccess', _84 => _84.aborted])) cancel();
|
|
3900
|
+
else _optionalChain([options, 'access', _85 => _85.signal, 'optionalAccess', _86 => _86.addEventListener, 'call', _87 => _87("abort", cancel, { once: true })]);
|
|
3901
|
+
const timer = setTimeout(
|
|
3902
|
+
() => controller.abort(new (0, _chunkKAAWCHO4js.EnvironmentComputerTimeoutError)()),
|
|
3903
|
+
timeoutMs
|
|
3904
|
+
);
|
|
3905
|
+
const signal = controller.signal;
|
|
3906
|
+
let createdComputerId;
|
|
3907
|
+
let computerName;
|
|
3908
|
+
function launchError(cause, cleanupError) {
|
|
3909
|
+
return new EnvironmentLaunchError({
|
|
3910
|
+
cause,
|
|
3911
|
+
computerId: createdComputerId,
|
|
3912
|
+
computerName,
|
|
3913
|
+
cleanupError
|
|
3914
|
+
});
|
|
3915
|
+
}
|
|
3916
|
+
try {
|
|
3917
|
+
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0 || !Number.isFinite(pollIntervalMs) || pollIntervalMs <= 0)
|
|
3918
|
+
throw new Error("Invalid environment launch configuration");
|
|
3919
|
+
const selection = await _chunkKAAWCHO4js.runWithAbort.call(void 0,
|
|
3920
|
+
signal,
|
|
3921
|
+
async () => await resolveEnvironment({ ...options, signal })
|
|
3922
|
+
);
|
|
3923
|
+
computerName = `environment-${_uuid.v4.call(void 0, )}`;
|
|
3924
|
+
signal.throwIfAborted();
|
|
3925
|
+
const createPromise = _chunkKAAWCHO4js.createOrRecoverComputer.call(void 0, {
|
|
3926
|
+
name: computerName,
|
|
3927
|
+
environmentId: selection.environment.id,
|
|
3928
|
+
keepWhenIdle: options.keepWhenIdle,
|
|
3929
|
+
request: options.request,
|
|
3930
|
+
serviceAccountId: options.serviceAccountId,
|
|
3931
|
+
signal: AbortSignal.timeout(timeoutMs)
|
|
3932
|
+
});
|
|
3933
|
+
const allocated = await _chunkKAAWCHO4js.runWithAbort.call(void 0, signal, async () => await createPromise).catch(
|
|
3934
|
+
(cause) => {
|
|
3935
|
+
if (signal.aborted && createdComputerId === void 0)
|
|
3936
|
+
void createPromise.then(
|
|
3937
|
+
(computer2) => _chunkKAAWCHO4js.createFactoryApi.call(void 0, options.request).deleteComputer({
|
|
3938
|
+
computerId: computer2.id,
|
|
3939
|
+
signal: AbortSignal.timeout(Math.min(timeoutMs, 5e3))
|
|
3940
|
+
})
|
|
3941
|
+
).catch(() => {
|
|
3942
|
+
});
|
|
3943
|
+
throw cause;
|
|
3944
|
+
}
|
|
3945
|
+
);
|
|
3946
|
+
createdComputerId = allocated.id;
|
|
3947
|
+
await _chunkKAAWCHO4js.runWithAbort.call(void 0, signal, async () => await _optionalChain([options, 'access', _88 => _88.onComputer, 'optionalCall', _89 => _89(allocated)]));
|
|
3948
|
+
const computer = await _chunkKAAWCHO4js.waitForEnvironmentComputer.call(void 0, {
|
|
3949
|
+
computer: allocated,
|
|
3950
|
+
timeoutMs,
|
|
3951
|
+
pollIntervalMs,
|
|
3952
|
+
now: options.now,
|
|
3953
|
+
sleep: options.sleep,
|
|
3954
|
+
signal,
|
|
3955
|
+
isReady: _chunkKAAWCHO4js.isEnvironmentComputerReady,
|
|
3956
|
+
onComputer: options.onComputer,
|
|
3957
|
+
request: options.request,
|
|
3958
|
+
serviceAccountId: options.serviceAccountId
|
|
3959
|
+
});
|
|
3960
|
+
const connection = await _chunkKAAWCHO4js.runWithAbort.call(void 0,
|
|
3961
|
+
signal,
|
|
3962
|
+
async () => await options.connect({ computer, signal })
|
|
3963
|
+
);
|
|
3964
|
+
const session = await _chunkKAAWCHO4js.runWithAbort.call(void 0,
|
|
3965
|
+
signal,
|
|
3966
|
+
async () => await options.startSession({ connection, computer, selection, signal })
|
|
3967
|
+
);
|
|
3968
|
+
return { session, computer, selection };
|
|
3969
|
+
} catch (cause) {
|
|
3970
|
+
if (createdComputerId !== void 0) {
|
|
3971
|
+
const cleanup = new AbortController();
|
|
3972
|
+
const cleanupTimer = setTimeout(
|
|
3973
|
+
() => cleanup.abort(new (0, _chunkKAAWCHO4js.EnvironmentComputerTimeoutError)()),
|
|
3974
|
+
Math.min(timeoutMs, 5e3)
|
|
3975
|
+
);
|
|
3976
|
+
try {
|
|
3977
|
+
const computerId = createdComputerId;
|
|
3978
|
+
await _chunkKAAWCHO4js.runWithAbort.call(void 0,
|
|
3979
|
+
cleanup.signal,
|
|
3980
|
+
async () => await _chunkKAAWCHO4js.createFactoryApi.call(void 0, options.request).deleteComputer({
|
|
3981
|
+
computerId,
|
|
3982
|
+
signal: cleanup.signal
|
|
3983
|
+
})
|
|
3984
|
+
);
|
|
3985
|
+
} catch (failure) {
|
|
3986
|
+
throw launchError(cause, failure);
|
|
3987
|
+
} finally {
|
|
3988
|
+
clearTimeout(cleanupTimer);
|
|
3989
|
+
}
|
|
3990
|
+
}
|
|
3991
|
+
throw launchError(cause);
|
|
3992
|
+
} finally {
|
|
3993
|
+
clearTimeout(timer);
|
|
3994
|
+
_optionalChain([options, 'access', _90 => _90.signal, 'optionalAccess', _91 => _91.removeEventListener, 'call', _92 => _92("abort", cancel)]);
|
|
3995
|
+
}
|
|
3996
|
+
}
|
|
3997
|
+
async function resolveEnvironment(options) {
|
|
3998
|
+
const http2 = _chunkKAAWCHO4js.createFactoryApi.call(void 0, options.request);
|
|
3999
|
+
const selector = options.environment;
|
|
4000
|
+
if ("id" in selector ? !selector.id.trim() : !selector.name.trim())
|
|
4001
|
+
throw new Error("Invalid environment selector");
|
|
4002
|
+
const context = {
|
|
4003
|
+
serviceAccountId: options.serviceAccountId,
|
|
4004
|
+
signal: options.signal
|
|
4005
|
+
};
|
|
4006
|
+
let environment;
|
|
4007
|
+
if ("id" in selector && context.serviceAccountId === void 0) {
|
|
4008
|
+
environment = _chunkKAAWCHO4js.SandboxEnvironmentSchema.parse(
|
|
4009
|
+
await http2.getEnvironment({
|
|
4010
|
+
...context,
|
|
4011
|
+
environmentId: selector.id
|
|
4012
|
+
})
|
|
4013
|
+
);
|
|
4014
|
+
if (environment.id !== selector.id)
|
|
4015
|
+
throw new Error("Environment lookup returned a different ID");
|
|
4016
|
+
} else {
|
|
4017
|
+
const matches = [];
|
|
4018
|
+
_optionalChain([options, 'access', _93 => _93.signal, 'optionalAccess', _94 => _94.throwIfAborted, 'call', _95 => _95()]);
|
|
4019
|
+
const page = await http2.listEnvironments(context);
|
|
4020
|
+
if (!page || typeof page !== "object" || !("environments" in page) || !Array.isArray(page.environments))
|
|
4021
|
+
throw new Error("Invalid environment list response");
|
|
4022
|
+
for (const item of page.environments) {
|
|
4023
|
+
const candidate = _chunkKAAWCHO4js.SandboxEnvironmentSchema.parse(item);
|
|
4024
|
+
if ("id" in selector ? candidate.id === selector.id : candidate.name === selector.name)
|
|
4025
|
+
matches.push(candidate);
|
|
4026
|
+
}
|
|
4027
|
+
if (matches.length !== 1)
|
|
4028
|
+
throw new Error(
|
|
4029
|
+
"id" in selector ? "Environment is not accessible" : "Environment name must match exactly one accessible environment"
|
|
4030
|
+
);
|
|
4031
|
+
environment = matches[0];
|
|
4032
|
+
}
|
|
4033
|
+
if (!environment) throw new Error("Environment is not accessible");
|
|
4034
|
+
if (!_chunkKAAWCHO4js.isSandboxEnvironmentLaunchable.call(void 0, environment)) {
|
|
4035
|
+
throw new Error("Environment is not ready to launch");
|
|
4036
|
+
}
|
|
4037
|
+
return {
|
|
4038
|
+
environment,
|
|
4039
|
+
source: _chunkKAAWCHO4js.getSandboxEnvironmentLaunchSource.call(void 0, environment),
|
|
4040
|
+
repositories: _chunkKAAWCHO4js.getSandboxEnvironmentLaunchRepositories.call(void 0, environment)
|
|
4041
|
+
};
|
|
4042
|
+
}
|
|
4043
|
+
|
|
3267
4044
|
// src/helpers.ts
|
|
3268
4045
|
function resolveApiKey(apiKey) {
|
|
3269
4046
|
const resolved = _nullishCoalesce(apiKey, () => ( process.env.FACTORY_API_KEY));
|
|
3270
4047
|
if (!resolved) {
|
|
3271
|
-
throw new (0,
|
|
4048
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
3272
4049
|
"No Factory API key found. Pass `apiKey` when creating the session, or set the FACTORY_API_KEY environment variable."
|
|
3273
4050
|
);
|
|
3274
4051
|
}
|
|
@@ -3286,7 +4063,10 @@ async function createTransport(options) {
|
|
|
3286
4063
|
...options.env,
|
|
3287
4064
|
FACTORY_API_KEY: resolveApiKey(options.apiKey),
|
|
3288
4065
|
FACTORY_UPSTREAM_CLIENT_TYPE: "sdk" /* SDK */,
|
|
3289
|
-
FACTORY_UPSTREAM_SDK:
|
|
4066
|
+
FACTORY_UPSTREAM_SDK: _chunkKAAWCHO4js.SDK_IDENTITY,
|
|
4067
|
+
// This helper owns the original SDK process, unlike the generic
|
|
4068
|
+
// ProcessTransport also used by daemon workers.
|
|
4069
|
+
FACTORY_EXEC_ORIGINAL_INVOCATION: "1"
|
|
3290
4070
|
},
|
|
3291
4071
|
observability: options.observability
|
|
3292
4072
|
});
|
|
@@ -3294,13 +4074,26 @@ async function createTransport(options) {
|
|
|
3294
4074
|
return processTransport;
|
|
3295
4075
|
}
|
|
3296
4076
|
function setupClientHandlers(client, options) {
|
|
4077
|
+
const sessionId = () => {
|
|
4078
|
+
const addressed = client.addressedSessionId;
|
|
4079
|
+
if (!addressed) {
|
|
4080
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
4081
|
+
"Received a prompt that no single session owns"
|
|
4082
|
+
);
|
|
4083
|
+
}
|
|
4084
|
+
return addressed;
|
|
4085
|
+
};
|
|
3297
4086
|
if (options.permissionHandler) {
|
|
3298
4087
|
const handler = options.permissionHandler;
|
|
3299
|
-
client.setPermissionHandler(
|
|
4088
|
+
client.setPermissionHandler(
|
|
4089
|
+
(event) => handler({ ...event.params, sessionId: sessionId() })
|
|
4090
|
+
);
|
|
3300
4091
|
}
|
|
3301
4092
|
if (options.askUserHandler) {
|
|
3302
4093
|
const handler = options.askUserHandler;
|
|
3303
|
-
client.setAskUserHandler(
|
|
4094
|
+
client.setAskUserHandler(
|
|
4095
|
+
(event) => handler({ ...event.params, sessionId: sessionId() })
|
|
4096
|
+
);
|
|
3304
4097
|
}
|
|
3305
4098
|
}
|
|
3306
4099
|
async function createConfiguredClient(options) {
|
|
@@ -3308,7 +4101,7 @@ async function createConfiguredClient(options) {
|
|
|
3308
4101
|
const client = new DroidClient({
|
|
3309
4102
|
transport,
|
|
3310
4103
|
observability: options.observability,
|
|
3311
|
-
getRequestAttribution: () =>
|
|
4104
|
+
getRequestAttribution: () => _chunkKAAWCHO4js.SDK_REQUEST_ATTRIBUTION
|
|
3312
4105
|
});
|
|
3313
4106
|
setupClientHandlers(client, options);
|
|
3314
4107
|
return { transport, client };
|
|
@@ -3319,7 +4112,7 @@ async function closeQuietly(resource) {
|
|
|
3319
4112
|
}
|
|
3320
4113
|
try {
|
|
3321
4114
|
await resource.close();
|
|
3322
|
-
} catch (
|
|
4115
|
+
} catch (e6) {
|
|
3323
4116
|
}
|
|
3324
4117
|
}
|
|
3325
4118
|
function buildInitParams(options) {
|
|
@@ -3361,7 +4154,7 @@ function buildInitParams(options) {
|
|
|
3361
4154
|
...options.disableBuiltinSkills !== void 0 && {
|
|
3362
4155
|
disableBuiltinSkills: options.disableBuiltinSkills
|
|
3363
4156
|
},
|
|
3364
|
-
tags:
|
|
4157
|
+
tags: _chunkKAAWCHO4js.withSdkTag.call(void 0, options.tags)
|
|
3365
4158
|
};
|
|
3366
4159
|
}
|
|
3367
4160
|
|
|
@@ -3372,15 +4165,21 @@ var _http = require('http'); var _http2 = _interopRequireDefault(_http);
|
|
|
3372
4165
|
var _mcpjs = require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
3373
4166
|
var _streamableHttpjs = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
3374
4167
|
|
|
3375
|
-
function tool(name, description, inputSchemaOrHandler,
|
|
4168
|
+
function tool(name, description, inputSchemaOrHandler, handlerOrOptions, maybeOptions) {
|
|
4169
|
+
const options = typeof handlerOrOptions === "function" ? maybeOptions : handlerOrOptions;
|
|
4170
|
+
const annotationFields = _optionalChain([options, 'optionalAccess', _96 => _96.annotations]) && {
|
|
4171
|
+
annotations: options.annotations
|
|
4172
|
+
};
|
|
3376
4173
|
if (typeof inputSchemaOrHandler === "function") {
|
|
3377
4174
|
const actualHandler = inputSchemaOrHandler;
|
|
3378
4175
|
return {
|
|
3379
4176
|
name,
|
|
3380
4177
|
description,
|
|
3381
|
-
handler: (input) => actualHandler(input)
|
|
4178
|
+
handler: (input) => actualHandler(input),
|
|
4179
|
+
...annotationFields
|
|
3382
4180
|
};
|
|
3383
4181
|
}
|
|
4182
|
+
const handler = typeof handlerOrOptions === "function" ? handlerOrOptions : void 0;
|
|
3384
4183
|
if (!handler) {
|
|
3385
4184
|
throw new Error(`Missing handler for SDK MCP tool "${name}"`);
|
|
3386
4185
|
}
|
|
@@ -3389,7 +4188,8 @@ function tool(name, description, inputSchemaOrHandler, handler) {
|
|
|
3389
4188
|
name,
|
|
3390
4189
|
description,
|
|
3391
4190
|
inputSchema: inputSchemaOrHandler,
|
|
3392
|
-
handler: (input) => handler(inputObjectSchema.parse(input))
|
|
4191
|
+
handler: (input) => handler(inputObjectSchema.parse(input)),
|
|
4192
|
+
...annotationFields
|
|
3393
4193
|
};
|
|
3394
4194
|
}
|
|
3395
4195
|
function isSdkMcpServer(server) {
|
|
@@ -3423,7 +4223,7 @@ function writeJsonError(res, statusCode, message, headers = {}) {
|
|
|
3423
4223
|
});
|
|
3424
4224
|
res.end(
|
|
3425
4225
|
JSON.stringify({
|
|
3426
|
-
jsonrpc:
|
|
4226
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION,
|
|
3427
4227
|
error: { code: -32603 /* INTERNAL_ERROR */, message },
|
|
3428
4228
|
id: null
|
|
3429
4229
|
})
|
|
@@ -3445,10 +4245,10 @@ var SdkMcpServer = (_class4 = class {
|
|
|
3445
4245
|
|
|
3446
4246
|
|
|
3447
4247
|
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
constructor(options) {;_class4.prototype.
|
|
4248
|
+
__init27() {this._httpServer = null}
|
|
4249
|
+
__init28() {this._url = null}
|
|
4250
|
+
__init29() {this._token = null}
|
|
4251
|
+
constructor(options) {;_class4.prototype.__init27.call(this);_class4.prototype.__init28.call(this);_class4.prototype.__init29.call(this);
|
|
3452
4252
|
this.name = options.name;
|
|
3453
4253
|
this.version = _nullishCoalesce(options.version, () => ( "1.0.0"));
|
|
3454
4254
|
this.tools = options.tools;
|
|
@@ -3499,7 +4299,7 @@ var SdkMcpServer = (_class4 = class {
|
|
|
3499
4299
|
if (!server) {
|
|
3500
4300
|
return;
|
|
3501
4301
|
}
|
|
3502
|
-
_optionalChain([server, 'access',
|
|
4302
|
+
_optionalChain([server, 'access', _97 => _97.closeAllConnections, 'optionalCall', _98 => _98()]);
|
|
3503
4303
|
server.close();
|
|
3504
4304
|
await _events.once.call(void 0, server, "close");
|
|
3505
4305
|
}
|
|
@@ -3515,7 +4315,8 @@ var SdkMcpServer = (_class4 = class {
|
|
|
3515
4315
|
description: sdkTool.description,
|
|
3516
4316
|
...sdkTool.inputSchema && {
|
|
3517
4317
|
inputSchema: sdkTool.inputSchema
|
|
3518
|
-
}
|
|
4318
|
+
},
|
|
4319
|
+
...sdkTool.annotations && { annotations: sdkTool.annotations }
|
|
3519
4320
|
},
|
|
3520
4321
|
async (input) => toCallToolResult(await sdkTool.handler(input))
|
|
3521
4322
|
);
|
|
@@ -3592,16 +4393,333 @@ async function startSdkMcpServers(servers) {
|
|
|
3592
4393
|
};
|
|
3593
4394
|
}
|
|
3594
4395
|
|
|
4396
|
+
// src/session-operations.ts
|
|
4397
|
+
function response(result) {
|
|
4398
|
+
return {
|
|
4399
|
+
type: "response",
|
|
4400
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
4401
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
4402
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
4403
|
+
id: "sdk-adapter",
|
|
4404
|
+
result
|
|
4405
|
+
};
|
|
4406
|
+
}
|
|
4407
|
+
function createDaemonSessionOperations(controller, initialSessionId, handlers) {
|
|
4408
|
+
let sessionId = initialSessionId;
|
|
4409
|
+
const ownedSessionIds = /* @__PURE__ */ new Set([initialSessionId]);
|
|
4410
|
+
const reportError = (error) => controller.emit("error", _chunkKAAWCHO4js.toError.call(void 0, error));
|
|
4411
|
+
const permission = async (request) => {
|
|
4412
|
+
if (request.sessionId !== sessionId && !request.associatedSessionIds.includes(sessionId))
|
|
4413
|
+
return;
|
|
4414
|
+
const selected = await _asyncNullishCoalesce(await _chunkKAAWCHO4js.resolvePermissionHandler.call(void 0,
|
|
4415
|
+
handlers.permissionHandler,
|
|
4416
|
+
request,
|
|
4417
|
+
reportError
|
|
4418
|
+
), async () => ( {
|
|
4419
|
+
selectedOption: "cancel" /* Cancel */
|
|
4420
|
+
}));
|
|
4421
|
+
try {
|
|
4422
|
+
await controller.respondToPermission({
|
|
4423
|
+
permissionId: request.requestId,
|
|
4424
|
+
sessionId,
|
|
4425
|
+
...selected
|
|
4426
|
+
});
|
|
4427
|
+
} catch (error) {
|
|
4428
|
+
reportError(error);
|
|
4429
|
+
}
|
|
4430
|
+
};
|
|
4431
|
+
const askUser = async (request) => {
|
|
4432
|
+
if (request.sessionId !== sessionId) return;
|
|
4433
|
+
const result = await _chunkKAAWCHO4js.resolveAskUserHandler.call(void 0,
|
|
4434
|
+
handlers.askUserHandler,
|
|
4435
|
+
request,
|
|
4436
|
+
reportError
|
|
4437
|
+
);
|
|
4438
|
+
if (!result && request.blocking === false) return;
|
|
4439
|
+
try {
|
|
4440
|
+
await controller.respondToAskUser({
|
|
4441
|
+
requestId: request.requestId,
|
|
4442
|
+
sessionId,
|
|
4443
|
+
result: _nullishCoalesce(result, () => ( { cancelled: true, answers: [] }))
|
|
4444
|
+
});
|
|
4445
|
+
} catch (error) {
|
|
4446
|
+
reportError(error);
|
|
4447
|
+
}
|
|
4448
|
+
};
|
|
4449
|
+
controller.on("permissionRequested" /* PermissionRequested */, permission);
|
|
4450
|
+
controller.on("askUserRequested" /* AskUserRequested */, askUser);
|
|
4451
|
+
const operations = {
|
|
4452
|
+
lifecycle: {
|
|
4453
|
+
shutdown: async () => {
|
|
4454
|
+
try {
|
|
4455
|
+
const results = await Promise.allSettled(
|
|
4456
|
+
[...ownedSessionIds].map((id) => controller.closeSession(id))
|
|
4457
|
+
);
|
|
4458
|
+
const failure = results.find(
|
|
4459
|
+
(result) => result.status === "rejected"
|
|
4460
|
+
);
|
|
4461
|
+
if (_optionalChain([failure, 'optionalAccess', _99 => _99.status]) === "rejected") throw _chunkKAAWCHO4js.toError.call(void 0, failure.reason);
|
|
4462
|
+
} finally {
|
|
4463
|
+
await operations.close();
|
|
4464
|
+
}
|
|
4465
|
+
},
|
|
4466
|
+
abort: (close) => {
|
|
4467
|
+
void close().catch(() => {
|
|
4468
|
+
});
|
|
4469
|
+
}
|
|
4470
|
+
},
|
|
4471
|
+
onNotification(callback, filter) {
|
|
4472
|
+
const listener = (event) => {
|
|
4473
|
+
if (event.sessionId !== sessionId || _optionalChain([filter, 'optionalAccess', _100 => _100.type]) !== void 0 && filter.type !== event.notification.type)
|
|
4474
|
+
return;
|
|
4475
|
+
try {
|
|
4476
|
+
callback({
|
|
4477
|
+
type: "notification",
|
|
4478
|
+
jsonrpc: _chunkKAAWCHO4js.JSONRPC_VERSION2,
|
|
4479
|
+
factoryApiVersion: _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION2,
|
|
4480
|
+
factoryProtocolVersion: _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION,
|
|
4481
|
+
method: "droid.session_notification" /* SESSION_NOTIFICATION */,
|
|
4482
|
+
params: { notification: event.notification }
|
|
4483
|
+
});
|
|
4484
|
+
} catch (e7) {
|
|
4485
|
+
}
|
|
4486
|
+
};
|
|
4487
|
+
controller.on("sessionNotification" /* SessionNotification */, listener);
|
|
4488
|
+
return () => controller.off("sessionNotification" /* SessionNotification */, listener);
|
|
4489
|
+
},
|
|
4490
|
+
onError(callback) {
|
|
4491
|
+
const disconnected = (code, reason) => callback(new (0, _chunkKAAWCHO4js.ConnectionClosedError)(code, reason));
|
|
4492
|
+
const exited = (event) => {
|
|
4493
|
+
if (event.sessionId === sessionId && event.notification.type === "session_process_exited" /* SESSION_PROCESS_EXITED */)
|
|
4494
|
+
callback(
|
|
4495
|
+
new (0, _chunkKAAWCHO4js.DroidConnectionEndedError)("Remote session process exited.")
|
|
4496
|
+
);
|
|
4497
|
+
};
|
|
4498
|
+
controller.on("error", callback);
|
|
4499
|
+
controller.on("disconnected" /* Disconnected */, disconnected);
|
|
4500
|
+
controller.on("sessionNotification" /* SessionNotification */, exited);
|
|
4501
|
+
return () => {
|
|
4502
|
+
controller.off("error", callback);
|
|
4503
|
+
controller.off("disconnected" /* Disconnected */, disconnected);
|
|
4504
|
+
controller.off("sessionNotification" /* SessionNotification */, exited);
|
|
4505
|
+
};
|
|
4506
|
+
},
|
|
4507
|
+
addUserMessage: async (params) => response(await controller.addUserMessage(sessionId, params)),
|
|
4508
|
+
interruptSession: async () => response(await controller.interruptSession(sessionId)),
|
|
4509
|
+
closeSession: async () => {
|
|
4510
|
+
await controller.closeSession(sessionId);
|
|
4511
|
+
return response({});
|
|
4512
|
+
},
|
|
4513
|
+
close: async () => {
|
|
4514
|
+
controller.off("permissionRequested" /* PermissionRequested */, permission);
|
|
4515
|
+
controller.off("askUserRequested" /* AskUserRequested */, askUser);
|
|
4516
|
+
controller.destroy();
|
|
4517
|
+
controller.getSessionStateManager().clear();
|
|
4518
|
+
},
|
|
4519
|
+
loadSession: async (params) => {
|
|
4520
|
+
ownedSessionIds.add(params.sessionId);
|
|
4521
|
+
const result = await controller.loadSession({
|
|
4522
|
+
...params,
|
|
4523
|
+
sessionOriginHint: params.sessionOriginHint,
|
|
4524
|
+
sessionSource: params.sessionSource
|
|
4525
|
+
});
|
|
4526
|
+
sessionId = params.sessionId;
|
|
4527
|
+
return response(result);
|
|
4528
|
+
},
|
|
4529
|
+
updateSessionSettings: async (params) => response(await controller.updateSessionSettings(sessionId, params)),
|
|
4530
|
+
addMcpServer: async (params) => response(await controller.addMcpServer({ ...params, sessionId })),
|
|
4531
|
+
removeMcpServer: async (params) => response(await controller.removeMcpServer({ ...params, sessionId })),
|
|
4532
|
+
toggleMcpServer: async (params) => response(await controller.toggleMcpServer({ ...params, sessionId })),
|
|
4533
|
+
listMcpServers: async () => response(await controller.listMcpServers(sessionId)),
|
|
4534
|
+
listMcpTools: async () => response(await controller.listMcpTools(sessionId)),
|
|
4535
|
+
refreshConnectorToolCatalog: async () => response(await controller.refreshConnectorToolCatalog()),
|
|
4536
|
+
authenticateMcpServer: async (params) => response(
|
|
4537
|
+
await controller.authenticateMcpServer({ ...params, sessionId })
|
|
4538
|
+
),
|
|
4539
|
+
listSkills: async (params) => response(await controller.listSkills(sessionId, params)),
|
|
4540
|
+
setSkillDisabled: async (skillName, disabled, settingsLevel) => response(
|
|
4541
|
+
await controller.setSkillDisabled({
|
|
4542
|
+
sessionId,
|
|
4543
|
+
skillName,
|
|
4544
|
+
disabled,
|
|
4545
|
+
settingsLevel
|
|
4546
|
+
})
|
|
4547
|
+
),
|
|
4548
|
+
getRewindInfo: async (params) => response(await controller.getRewindInfo(sessionId, params.messageId)),
|
|
4549
|
+
executeRewind: async (params) => response(await controller.executeRewind(sessionId, params)),
|
|
4550
|
+
compactSession: async (params) => response(
|
|
4551
|
+
await controller.compactSession(
|
|
4552
|
+
sessionId,
|
|
4553
|
+
params.customInstructions,
|
|
4554
|
+
params.mode
|
|
4555
|
+
)
|
|
4556
|
+
),
|
|
4557
|
+
forkSession: async (params) => response(await controller.forkSession(sessionId, params)),
|
|
4558
|
+
renameSession: async (params) => response(await controller.renameSession(sessionId, params.title)),
|
|
4559
|
+
listTools: async () => {
|
|
4560
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
4561
|
+
"listTools is not supported by remote sessions."
|
|
4562
|
+
);
|
|
4563
|
+
},
|
|
4564
|
+
getContextStats: async () => {
|
|
4565
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
4566
|
+
"getContextStats is not supported by remote sessions."
|
|
4567
|
+
);
|
|
4568
|
+
}
|
|
4569
|
+
};
|
|
4570
|
+
return operations;
|
|
4571
|
+
}
|
|
4572
|
+
|
|
4573
|
+
// src/environment-session.ts
|
|
4574
|
+
async function createEnvironmentSession(options, createHandle) {
|
|
4575
|
+
if (!options.environment)
|
|
4576
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)("An environment is required.");
|
|
4577
|
+
for (const key of [
|
|
4578
|
+
"execPath",
|
|
4579
|
+
"execArgs",
|
|
4580
|
+
"env",
|
|
4581
|
+
"transport",
|
|
4582
|
+
"machineId"
|
|
4583
|
+
]) {
|
|
4584
|
+
if (options[key] !== void 0)
|
|
4585
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
4586
|
+
`Option "${key}" is local-only and cannot be used with an environment.`
|
|
4587
|
+
);
|
|
4588
|
+
}
|
|
4589
|
+
const mcpServers = _optionalChain([options, 'access', _101 => _101.mcpServers, 'optionalAccess', _102 => _102.map, 'call', _103 => _103((server) => {
|
|
4590
|
+
if (server instanceof SdkMcpServer)
|
|
4591
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
4592
|
+
"In-process MCP servers cannot be used with an environment."
|
|
4593
|
+
);
|
|
4594
|
+
return server;
|
|
4595
|
+
})]);
|
|
4596
|
+
const apiKey = resolveApiKey(options.apiKey);
|
|
4597
|
+
const auth = { apiKey, baseUrl: options.baseUrl };
|
|
4598
|
+
const request = _chunkKAAWCHO4js.createApiRequest.call(void 0, auth);
|
|
4599
|
+
const api = _chunkKAAWCHO4js.createFactoryApi.call(void 0, request);
|
|
4600
|
+
const sessionId = _uuid.v4.call(void 0, );
|
|
4601
|
+
let startup;
|
|
4602
|
+
try {
|
|
4603
|
+
const launched = await launchEnvironmentSession({
|
|
4604
|
+
environment: options.environment,
|
|
4605
|
+
signal: options.abortSignal,
|
|
4606
|
+
request,
|
|
4607
|
+
connect: async ({ computer, signal }) => {
|
|
4608
|
+
if (!computer.relayClientUrl)
|
|
4609
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)("Computer has no relay URL.");
|
|
4610
|
+
const connectionConfig = {
|
|
4611
|
+
..._chunkKAAWCHO4js.DEFAULT_CONNECTION_CONFIG,
|
|
4612
|
+
..._chunkKAAWCHO4js.MACHINE_TYPE_CONFIG["computer" /* Computer */]
|
|
4613
|
+
};
|
|
4614
|
+
const connected = new (0, _chunkKAAWCHO4js.DaemonSessionController)({
|
|
4615
|
+
sessionStateManager: new (0, _chunkKAAWCHO4js.MultiSessionStateManager)(),
|
|
4616
|
+
config: {
|
|
4617
|
+
machineId: computer.id,
|
|
4618
|
+
machineType: "computer" /* Computer */,
|
|
4619
|
+
providerType: computer.providerType,
|
|
4620
|
+
isManaged: true,
|
|
4621
|
+
ensureRunning: async () => ({ wasRestarted: false }),
|
|
4622
|
+
trustedIdentity: _chunkKAAWCHO4js.trustedIdentityFromComputerResponse.call(void 0,
|
|
4623
|
+
computer,
|
|
4624
|
+
async () => {
|
|
4625
|
+
const fresh = _chunkKAAWCHO4js.parseResponse.call(void 0,
|
|
4626
|
+
await api.getComputer({
|
|
4627
|
+
computerId: computer.id,
|
|
4628
|
+
signal: AbortSignal.timeout(5e3)
|
|
4629
|
+
}),
|
|
4630
|
+
_chunkKAAWCHO4js.ComputerReadSchema
|
|
4631
|
+
);
|
|
4632
|
+
if (fresh.id !== computer.id)
|
|
4633
|
+
throw new (0, _chunkKAAWCHO4js.DroidClientError)(
|
|
4634
|
+
"Identity refresh returned a different Computer."
|
|
4635
|
+
);
|
|
4636
|
+
return fresh;
|
|
4637
|
+
}
|
|
4638
|
+
),
|
|
4639
|
+
url: computer.relayClientUrl,
|
|
4640
|
+
clientType: "sdk" /* SDK */,
|
|
4641
|
+
sdk: _chunkKAAWCHO4js.SDK_CLIENT_METADATA,
|
|
4642
|
+
getCredential: async () => ({ apiKey }),
|
|
4643
|
+
connectionTimeoutMs: connectionConfig.connectionTimeoutMs,
|
|
4644
|
+
requestTimeout: connectionConfig.requestTimeoutMs,
|
|
4645
|
+
maxPollAttempts: connectionConfig.maxPollAttempts,
|
|
4646
|
+
maxReconnectAttempts: connectionConfig.maxReconnectAttempts,
|
|
4647
|
+
reconnectInterval: connectionConfig.reconnectInitialDelayMs,
|
|
4648
|
+
maxReconnectDelay: connectionConfig.reconnectMaxDelayMs,
|
|
4649
|
+
reconnectBackoffFactor: connectionConfig.reconnectBackoffFactor,
|
|
4650
|
+
supportsTerminalRestoreOnLoad: false
|
|
4651
|
+
}
|
|
4652
|
+
});
|
|
4653
|
+
const operations = createDaemonSessionOperations(
|
|
4654
|
+
connected,
|
|
4655
|
+
sessionId,
|
|
4656
|
+
options
|
|
4657
|
+
);
|
|
4658
|
+
const cancel = () => connected.destroy();
|
|
4659
|
+
signal.addEventListener("abort", cancel, { once: true });
|
|
4660
|
+
startup = {
|
|
4661
|
+
operations,
|
|
4662
|
+
releaseAbort: () => signal.removeEventListener("abort", cancel)
|
|
4663
|
+
};
|
|
4664
|
+
await connected.attemptInitialConnection();
|
|
4665
|
+
signal.throwIfAborted();
|
|
4666
|
+
return { controller: connected, operations };
|
|
4667
|
+
},
|
|
4668
|
+
startSession: async ({ connection, computer, signal }) => {
|
|
4669
|
+
const { controller, operations } = connection;
|
|
4670
|
+
const initParams = buildInitParams({
|
|
4671
|
+
...options,
|
|
4672
|
+
machineId: computer.id,
|
|
4673
|
+
cwd: _nullishCoalesce(_nullishCoalesce(options.cwd, () => ( _optionalChain([computer, 'access', _104 => _104.clonedRepoDirectories, 'optionalAccess', _105 => _105[0]]))), () => ( "~")),
|
|
4674
|
+
mcpServers
|
|
4675
|
+
});
|
|
4676
|
+
controller.getSessionStateManager().markSessionLoading(sessionId, computer.id);
|
|
4677
|
+
const result = await controller.initializeSession({
|
|
4678
|
+
...initParams,
|
|
4679
|
+
sessionId,
|
|
4680
|
+
token: apiKey,
|
|
4681
|
+
sessionSource: initParams.sessionSource,
|
|
4682
|
+
sessionOriginHint: initParams.sessionOriginHint
|
|
4683
|
+
});
|
|
4684
|
+
signal.throwIfAborted();
|
|
4685
|
+
return createHandle({
|
|
4686
|
+
result,
|
|
4687
|
+
operations,
|
|
4688
|
+
computerId: computer.id,
|
|
4689
|
+
cwd: initParams.cwd,
|
|
4690
|
+
mcpServers
|
|
4691
|
+
});
|
|
4692
|
+
}
|
|
4693
|
+
});
|
|
4694
|
+
return launched.session;
|
|
4695
|
+
} catch (error) {
|
|
4696
|
+
await _optionalChain([startup, 'optionalAccess', _106 => _106.operations, 'access', _107 => _107.close, 'call', _108 => _108()]);
|
|
4697
|
+
throw error;
|
|
4698
|
+
} finally {
|
|
4699
|
+
_optionalChain([startup, 'optionalAccess', _109 => _109.releaseAbort, 'call', _110 => _110()]);
|
|
4700
|
+
}
|
|
4701
|
+
}
|
|
4702
|
+
|
|
3595
4703
|
// src/session.ts
|
|
3596
4704
|
var DroidSession = (_class5 = class _DroidSession {
|
|
3597
4705
|
/** @internal */
|
|
3598
|
-
constructor(client, sessionId, metadata, _runtime, cleanupCallbacks = []) {;_class5.prototype.
|
|
4706
|
+
constructor(client, sessionId, metadata, _runtime, cleanupCallbacks = []) {;_class5.prototype.__init30.call(this);_class5.prototype.__init31.call(this);_class5.prototype.__init32.call(this);_class5.prototype.__init33.call(this);_class5.prototype.__init34.call(this);_class5.prototype.__init35.call(this);
|
|
3599
4707
|
this._runtime = _runtime;
|
|
3600
4708
|
this._client = client;
|
|
3601
4709
|
this._sessionId = sessionId;
|
|
3602
4710
|
this._settings = metadata.settings;
|
|
3603
4711
|
this._cwd = metadata.cwd;
|
|
3604
4712
|
this._cleanupCallbacks = cleanupCallbacks;
|
|
4713
|
+
this._lifecycle = _nullishCoalesce(_runtime.lifecycle, () => ( {
|
|
4714
|
+
shutdown: async () => {
|
|
4715
|
+
await client.closeSession({ reason: "other" }).catch(() => {
|
|
4716
|
+
});
|
|
4717
|
+
await client.close();
|
|
4718
|
+
},
|
|
4719
|
+
abort: (close) => {
|
|
4720
|
+
void close();
|
|
4721
|
+
}
|
|
4722
|
+
}));
|
|
3605
4723
|
this._bindMetadataNotifications();
|
|
3606
4724
|
this._bindAbortSignal();
|
|
3607
4725
|
}
|
|
@@ -3610,16 +4728,20 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3610
4728
|
|
|
3611
4729
|
|
|
3612
4730
|
|
|
3613
|
-
__init23() {this._settingsRevision = 0}
|
|
3614
|
-
__init24() {this._status = "active"}
|
|
3615
4731
|
|
|
3616
|
-
|
|
3617
|
-
|
|
3618
|
-
|
|
3619
|
-
|
|
4732
|
+
__init30() {this._settingsRevision = 0}
|
|
4733
|
+
__init31() {this._status = "active"}
|
|
4734
|
+
|
|
4735
|
+
__init32() {this._cleanupAbortSignal = null}
|
|
4736
|
+
__init33() {this._cleanupCallbacks = []}
|
|
4737
|
+
__init34() {this._activeBridges = /* @__PURE__ */ new Set()}
|
|
4738
|
+
__init35() {this._notificationCleanups = /* @__PURE__ */ new Set()}
|
|
3620
4739
|
get id() {
|
|
3621
4740
|
return this._sessionId;
|
|
3622
4741
|
}
|
|
4742
|
+
get computerId() {
|
|
4743
|
+
return this._runtime.computerId;
|
|
4744
|
+
}
|
|
3623
4745
|
get settings() {
|
|
3624
4746
|
return this._settings;
|
|
3625
4747
|
}
|
|
@@ -3628,10 +4750,10 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3628
4750
|
}
|
|
3629
4751
|
async *stream(prompt, options) {
|
|
3630
4752
|
this._ensureNotClosed();
|
|
3631
|
-
yield*
|
|
4753
|
+
yield* _chunkKAAWCHO4js.streamFromClient.call(void 0,
|
|
3632
4754
|
{
|
|
3633
4755
|
onNotification: (handler) => this._client.onNotification((notification) => {
|
|
3634
|
-
const inner =
|
|
4756
|
+
const inner = _chunkKAAWCHO4js.extractInnerNotification.call(void 0, notification);
|
|
3635
4757
|
if (inner) handler(inner);
|
|
3636
4758
|
}),
|
|
3637
4759
|
onError: (handler) => this._client.onError(handler),
|
|
@@ -3657,16 +4779,14 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3657
4779
|
}
|
|
3658
4780
|
this._status = "closed";
|
|
3659
4781
|
this._releaseHandleSubscriptions();
|
|
3660
|
-
_optionalChain([this, 'access',
|
|
4782
|
+
_optionalChain([this, 'access', _111 => _111._cleanupAbortSignal, 'optionalCall', _112 => _112()]);
|
|
3661
4783
|
this._cleanupAbortSignal = null;
|
|
3662
4784
|
for (const bridge of this._activeBridges) {
|
|
3663
4785
|
bridge.signalDone();
|
|
3664
4786
|
bridge.release();
|
|
3665
4787
|
}
|
|
3666
4788
|
try {
|
|
3667
|
-
await this.
|
|
3668
|
-
});
|
|
3669
|
-
await this._client.close();
|
|
4789
|
+
await this._lifecycle.shutdown();
|
|
3670
4790
|
} finally {
|
|
3671
4791
|
const cleanups = this._cleanupCallbacks.splice(0);
|
|
3672
4792
|
await Promise.all(cleanups.map((cleanup) => cleanup()));
|
|
@@ -3675,14 +4795,14 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3675
4795
|
async updateSettings(params) {
|
|
3676
4796
|
this._ensureNotClosed();
|
|
3677
4797
|
const revision = this._settingsRevision;
|
|
3678
|
-
const result =
|
|
4798
|
+
const result = _chunkKAAWCHO4js.unwrapResponseResult.call(void 0,
|
|
3679
4799
|
await this._client.updateSessionSettings(params)
|
|
3680
4800
|
);
|
|
3681
4801
|
if (params.disabledToolIds !== void 0) {
|
|
3682
4802
|
this._runtime.loadParams.disabledToolIds = params.disabledToolIds;
|
|
3683
4803
|
}
|
|
3684
4804
|
if (this._settingsRevision === revision) {
|
|
3685
|
-
this._settings =
|
|
4805
|
+
this._settings = _chunkKAAWCHO4js.mergeSessionSettings.call(void 0, this._settings, params);
|
|
3686
4806
|
}
|
|
3687
4807
|
return result;
|
|
3688
4808
|
}
|
|
@@ -3699,27 +4819,32 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3699
4819
|
}
|
|
3700
4820
|
async addMcpServer(params) {
|
|
3701
4821
|
this._ensureNotClosed();
|
|
3702
|
-
return
|
|
4822
|
+
return _chunkKAAWCHO4js.unwrapResponseResult.call(void 0, await this._client.addMcpServer(params));
|
|
3703
4823
|
}
|
|
3704
4824
|
async removeMcpServer(params) {
|
|
3705
4825
|
this._ensureNotClosed();
|
|
3706
|
-
return
|
|
4826
|
+
return _chunkKAAWCHO4js.unwrapResponseResult.call(void 0, await this._client.removeMcpServer(params));
|
|
3707
4827
|
}
|
|
3708
4828
|
async toggleMcpServer(params) {
|
|
3709
4829
|
this._ensureNotClosed();
|
|
3710
|
-
return
|
|
4830
|
+
return _chunkKAAWCHO4js.unwrapResponseResult.call(void 0, await this._client.toggleMcpServer(params));
|
|
3711
4831
|
}
|
|
3712
4832
|
async listMcpServers() {
|
|
3713
4833
|
this._ensureNotClosed();
|
|
3714
|
-
return
|
|
4834
|
+
return _chunkKAAWCHO4js.unwrapResponseResult.call(void 0, await this._client.listMcpServers());
|
|
3715
4835
|
}
|
|
3716
4836
|
async listMcpTools() {
|
|
3717
4837
|
this._ensureNotClosed();
|
|
3718
|
-
return
|
|
4838
|
+
return _chunkKAAWCHO4js.unwrapResponseResult.call(void 0, await this._client.listMcpTools()).tools;
|
|
4839
|
+
}
|
|
4840
|
+
/** Refresh connector discovery. MCP configuration has its own lifecycle. */
|
|
4841
|
+
async refreshConnectorToolCatalog() {
|
|
4842
|
+
this._ensureNotClosed();
|
|
4843
|
+
_chunkKAAWCHO4js.unwrapResponseResult.call(void 0, await this._client.refreshConnectorToolCatalog());
|
|
3719
4844
|
}
|
|
3720
4845
|
async listTools(params = {}) {
|
|
3721
4846
|
this._ensureNotClosed();
|
|
3722
|
-
return
|
|
4847
|
+
return _chunkKAAWCHO4js.unwrapResponseResult.call(void 0, await this._client.listTools(params)).tools.map(
|
|
3723
4848
|
({ id: _protocolId, llmId, currentlyAllowed, ...tool2 }) => ({
|
|
3724
4849
|
...tool2,
|
|
3725
4850
|
id: llmId,
|
|
@@ -3729,17 +4854,17 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3729
4854
|
}
|
|
3730
4855
|
async authenticateMcpServer(params) {
|
|
3731
4856
|
this._ensureNotClosed();
|
|
3732
|
-
return
|
|
4857
|
+
return _chunkKAAWCHO4js.unwrapResponseResult.call(void 0,
|
|
3733
4858
|
await this._client.authenticateMcpServer(params)
|
|
3734
4859
|
);
|
|
3735
4860
|
}
|
|
3736
|
-
async listSkills() {
|
|
4861
|
+
async listSkills(params) {
|
|
3737
4862
|
this._ensureNotClosed();
|
|
3738
|
-
return
|
|
4863
|
+
return _chunkKAAWCHO4js.unwrapResponseResult.call(void 0, await this._client.listSkills(params));
|
|
3739
4864
|
}
|
|
3740
4865
|
async setSkillDisabled(params) {
|
|
3741
4866
|
this._ensureNotClosed();
|
|
3742
|
-
return
|
|
4867
|
+
return _chunkKAAWCHO4js.unwrapResponseResult.call(void 0,
|
|
3743
4868
|
await this._client.setSkillDisabled(
|
|
3744
4869
|
params.skillName,
|
|
3745
4870
|
params.disabled,
|
|
@@ -3749,34 +4874,41 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3749
4874
|
}
|
|
3750
4875
|
async getRewindInfo(params) {
|
|
3751
4876
|
this._ensureNotClosed();
|
|
3752
|
-
return
|
|
4877
|
+
return _chunkKAAWCHO4js.unwrapResponseResult.call(void 0, await this._client.getRewindInfo(params));
|
|
3753
4878
|
}
|
|
3754
4879
|
async rewind(params) {
|
|
3755
4880
|
const { session, result } = await this._runReplacement(
|
|
3756
|
-
() => this._client.executeRewind(params).then(
|
|
4881
|
+
() => this._client.executeRewind(params).then(_chunkKAAWCHO4js.unwrapResponseResult)
|
|
3757
4882
|
);
|
|
3758
4883
|
const { newSessionId: _newSessionId, ...metadata } = result;
|
|
3759
4884
|
return { session, ...metadata };
|
|
3760
4885
|
}
|
|
3761
4886
|
async compact(params) {
|
|
3762
4887
|
const { session, result } = await this._runReplacement(
|
|
3763
|
-
() => this._client.compactSession(_nullishCoalesce(params, () => ( {}))).then(
|
|
4888
|
+
() => this._client.compactSession(_nullishCoalesce(params, () => ( {}))).then(_chunkKAAWCHO4js.unwrapResponseResult),
|
|
4889
|
+
{ retainSourceWhenSameId: true }
|
|
4890
|
+
);
|
|
4891
|
+
return { session, removedCount: result.removedCount };
|
|
4892
|
+
}
|
|
4893
|
+
async handoff(params) {
|
|
4894
|
+
const { session, result } = await this._runReplacement(
|
|
4895
|
+
() => this._client.compactSession({ ...params, mode: "handoff" }).then(_chunkKAAWCHO4js.unwrapResponseResult)
|
|
3764
4896
|
);
|
|
3765
4897
|
return { session, removedCount: result.removedCount };
|
|
3766
4898
|
}
|
|
3767
4899
|
async fork(params = {}) {
|
|
3768
4900
|
const { session } = await this._runReplacement(
|
|
3769
|
-
() => this._client.forkSession(params).then(
|
|
4901
|
+
() => this._client.forkSession(params).then(_chunkKAAWCHO4js.unwrapResponseResult)
|
|
3770
4902
|
);
|
|
3771
4903
|
return session;
|
|
3772
4904
|
}
|
|
3773
4905
|
async getContextStats() {
|
|
3774
4906
|
this._ensureNotClosed();
|
|
3775
|
-
return
|
|
4907
|
+
return _chunkKAAWCHO4js.unwrapResponseResult.call(void 0, await this._client.getContextStats());
|
|
3776
4908
|
}
|
|
3777
4909
|
async rename(params) {
|
|
3778
4910
|
this._ensureNotClosed();
|
|
3779
|
-
|
|
4911
|
+
_chunkKAAWCHO4js.unwrapResponseResult.call(void 0, await this._client.renameSession(params));
|
|
3780
4912
|
}
|
|
3781
4913
|
onNotification(callback, filter) {
|
|
3782
4914
|
this._ensureNotClosed();
|
|
@@ -3790,13 +4922,13 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3790
4922
|
}
|
|
3791
4923
|
_ensureNotClosed() {
|
|
3792
4924
|
if (this._status === "replaced" && this._replacementSessionId) {
|
|
3793
|
-
throw new (0,
|
|
4925
|
+
throw new (0, _chunkKAAWCHO4js.SessionReplacedError)(
|
|
3794
4926
|
this._sessionId,
|
|
3795
4927
|
this._replacementSessionId
|
|
3796
4928
|
);
|
|
3797
4929
|
}
|
|
3798
4930
|
if (this._status !== "active") {
|
|
3799
|
-
throw new (0,
|
|
4931
|
+
throw new (0, _chunkKAAWCHO4js.ConnectionError)(
|
|
3800
4932
|
this._status === "replacing" ? "Session replacement is already in progress." : "Session has been closed. Create a new session to continue."
|
|
3801
4933
|
);
|
|
3802
4934
|
}
|
|
@@ -3804,11 +4936,11 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3804
4936
|
_beginReplacement() {
|
|
3805
4937
|
this._ensureNotClosed();
|
|
3806
4938
|
if (this._activeBridges.size > 0) {
|
|
3807
|
-
throw new (0,
|
|
4939
|
+
throw new (0, _chunkKAAWCHO4js.ConcurrentStreamError)(this._sessionId);
|
|
3808
4940
|
}
|
|
3809
4941
|
this._status = "replacing";
|
|
3810
4942
|
}
|
|
3811
|
-
async _runReplacement(operation) {
|
|
4943
|
+
async _runReplacement(operation, options) {
|
|
3812
4944
|
this._beginReplacement();
|
|
3813
4945
|
let result;
|
|
3814
4946
|
try {
|
|
@@ -3820,15 +4952,19 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3820
4952
|
throw error;
|
|
3821
4953
|
}
|
|
3822
4954
|
if (this._status !== "replacing") {
|
|
3823
|
-
throw new (0,
|
|
3824
|
-
cause: new (0,
|
|
4955
|
+
throw new (0, _chunkKAAWCHO4js.SessionReplacementError)(this._sessionId, result.newSessionId, {
|
|
4956
|
+
cause: new (0, _chunkKAAWCHO4js.ConnectionError)(
|
|
3825
4957
|
"Session closed while replacement was in progress."
|
|
3826
4958
|
),
|
|
3827
|
-
rollbackError: new (0,
|
|
4959
|
+
rollbackError: new (0, _chunkKAAWCHO4js.ConnectionError)(
|
|
3828
4960
|
"The source session was already closed."
|
|
3829
4961
|
)
|
|
3830
4962
|
});
|
|
3831
4963
|
}
|
|
4964
|
+
if (_optionalChain([options, 'optionalAccess', _113 => _113.retainSourceWhenSameId]) && result.newSessionId === this._sessionId) {
|
|
4965
|
+
this._status = "active";
|
|
4966
|
+
return { session: this, result };
|
|
4967
|
+
}
|
|
3832
4968
|
return {
|
|
3833
4969
|
session: await this._loadReplacement(result.newSessionId),
|
|
3834
4970
|
result
|
|
@@ -3836,18 +4972,18 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3836
4972
|
}
|
|
3837
4973
|
async _loadReplacement(replacementSessionId) {
|
|
3838
4974
|
try {
|
|
3839
|
-
const loadResult =
|
|
4975
|
+
const loadResult = _chunkKAAWCHO4js.unwrapResponseResult.call(void 0,
|
|
3840
4976
|
await this._client.loadSession({
|
|
3841
4977
|
...this._runtime.loadParams,
|
|
3842
4978
|
sessionId: replacementSessionId
|
|
3843
4979
|
})
|
|
3844
4980
|
);
|
|
3845
4981
|
if (this._status !== "replacing") {
|
|
3846
|
-
throw new (0,
|
|
4982
|
+
throw new (0, _chunkKAAWCHO4js.ConnectionError)(
|
|
3847
4983
|
"Session closed while replacement was loading."
|
|
3848
4984
|
);
|
|
3849
4985
|
}
|
|
3850
|
-
_optionalChain([this, 'access',
|
|
4986
|
+
_optionalChain([this, 'access', _114 => _114._cleanupAbortSignal, 'optionalCall', _115 => _115()]);
|
|
3851
4987
|
this._cleanupAbortSignal = null;
|
|
3852
4988
|
this._releaseHandleSubscriptions();
|
|
3853
4989
|
const cleanupCallbacks = this._cleanupCallbacks;
|
|
@@ -3864,12 +5000,12 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3864
5000
|
return replacement;
|
|
3865
5001
|
} catch (cause) {
|
|
3866
5002
|
if (this._status !== "replacing") {
|
|
3867
|
-
throw new (0,
|
|
5003
|
+
throw new (0, _chunkKAAWCHO4js.SessionReplacementError)(
|
|
3868
5004
|
this._sessionId,
|
|
3869
5005
|
replacementSessionId,
|
|
3870
5006
|
{
|
|
3871
5007
|
cause,
|
|
3872
|
-
rollbackError: new (0,
|
|
5008
|
+
rollbackError: new (0, _chunkKAAWCHO4js.ConnectionError)(
|
|
3873
5009
|
"The source session was closed before rollback."
|
|
3874
5010
|
)
|
|
3875
5011
|
}
|
|
@@ -3877,7 +5013,7 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3877
5013
|
}
|
|
3878
5014
|
let rollbackResult;
|
|
3879
5015
|
try {
|
|
3880
|
-
rollbackResult =
|
|
5016
|
+
rollbackResult = _chunkKAAWCHO4js.unwrapResponseResult.call(void 0,
|
|
3881
5017
|
await this._client.loadSession({
|
|
3882
5018
|
...this._runtime.loadParams,
|
|
3883
5019
|
sessionId: this._sessionId
|
|
@@ -3885,18 +5021,18 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3885
5021
|
);
|
|
3886
5022
|
} catch (rollbackError) {
|
|
3887
5023
|
await this._disposeAfterFailedRollback();
|
|
3888
|
-
throw new (0,
|
|
5024
|
+
throw new (0, _chunkKAAWCHO4js.SessionReplacementError)(
|
|
3889
5025
|
this._sessionId,
|
|
3890
5026
|
replacementSessionId,
|
|
3891
5027
|
{ cause, rollbackError }
|
|
3892
5028
|
);
|
|
3893
5029
|
}
|
|
3894
5030
|
if (this._status !== "replacing") {
|
|
3895
|
-
const rollbackError = new (0,
|
|
5031
|
+
const rollbackError = new (0, _chunkKAAWCHO4js.ConnectionError)(
|
|
3896
5032
|
"Session closed while replacement rollback was loading."
|
|
3897
5033
|
);
|
|
3898
5034
|
await this._disposeAfterFailedRollback();
|
|
3899
|
-
throw new (0,
|
|
5035
|
+
throw new (0, _chunkKAAWCHO4js.SessionReplacementError)(
|
|
3900
5036
|
this._sessionId,
|
|
3901
5037
|
replacementSessionId,
|
|
3902
5038
|
{ cause, rollbackError }
|
|
@@ -3905,24 +5041,24 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3905
5041
|
this._settings = rollbackResult.settings;
|
|
3906
5042
|
this._cwd = rollbackResult.cwd;
|
|
3907
5043
|
this._status = "active";
|
|
3908
|
-
throw new (0,
|
|
5044
|
+
throw new (0, _chunkKAAWCHO4js.SessionReplacementError)(this._sessionId, replacementSessionId, {
|
|
3909
5045
|
cause
|
|
3910
5046
|
});
|
|
3911
5047
|
}
|
|
3912
5048
|
}
|
|
3913
5049
|
_bindAbortSignal() {
|
|
3914
|
-
this._cleanupAbortSignal =
|
|
5050
|
+
this._cleanupAbortSignal = _chunkKAAWCHO4js.wireAbortSignal.call(void 0,
|
|
3915
5051
|
this._runtime.abortSignal,
|
|
3916
|
-
() =>
|
|
5052
|
+
() => this._lifecycle.abort(() => this.close())
|
|
3917
5053
|
);
|
|
3918
5054
|
}
|
|
3919
5055
|
_bindMetadataNotifications() {
|
|
3920
5056
|
const unsubscribe = this._client.onNotification((notification) => {
|
|
3921
|
-
const inner =
|
|
3922
|
-
if (_optionalChain([inner, 'optionalAccess',
|
|
3923
|
-
this._settings =
|
|
5057
|
+
const inner = _chunkKAAWCHO4js.extractInnerNotification.call(void 0, notification);
|
|
5058
|
+
if (_optionalChain([inner, 'optionalAccess', _116 => _116.type]) === "settings_updated" /* SETTINGS_UPDATED */) {
|
|
5059
|
+
this._settings = _chunkKAAWCHO4js.mergeSessionSettings.call(void 0, this._settings, inner.settings);
|
|
3924
5060
|
this._settingsRevision++;
|
|
3925
|
-
} else if (_optionalChain([inner, 'optionalAccess',
|
|
5061
|
+
} else if (_optionalChain([inner, 'optionalAccess', _117 => _117.type]) === "session_working_directory_changed" /* SESSION_WORKING_DIRECTORY_CHANGED */) {
|
|
3926
5062
|
this._cwd = inner.cwd;
|
|
3927
5063
|
}
|
|
3928
5064
|
});
|
|
@@ -3937,7 +5073,7 @@ var DroidSession = (_class5 = class _DroidSession {
|
|
|
3937
5073
|
}
|
|
3938
5074
|
async _disposeAfterFailedRollback() {
|
|
3939
5075
|
this._status = "closed";
|
|
3940
|
-
_optionalChain([this, 'access',
|
|
5076
|
+
_optionalChain([this, 'access', _118 => _118._cleanupAbortSignal, 'optionalCall', _119 => _119()]);
|
|
3941
5077
|
this._cleanupAbortSignal = null;
|
|
3942
5078
|
this._releaseHandleSubscriptions();
|
|
3943
5079
|
await closeQuietly(this._client);
|
|
@@ -3958,9 +5094,25 @@ function createReplacementLoadParams(options, mcpServers) {
|
|
|
3958
5094
|
};
|
|
3959
5095
|
}
|
|
3960
5096
|
async function createSession(options = {}) {
|
|
5097
|
+
if (options.environment) {
|
|
5098
|
+
return await createEnvironmentSession(
|
|
5099
|
+
options,
|
|
5100
|
+
({ result, operations, computerId, cwd, mcpServers }) => new DroidSession(
|
|
5101
|
+
operations,
|
|
5102
|
+
result.sessionId,
|
|
5103
|
+
{ settings: result.settings, cwd },
|
|
5104
|
+
{
|
|
5105
|
+
computerId,
|
|
5106
|
+
abortSignal: options.abortSignal,
|
|
5107
|
+
loadParams: createReplacementLoadParams(options, mcpServers),
|
|
5108
|
+
lifecycle: operations.lifecycle
|
|
5109
|
+
}
|
|
5110
|
+
)
|
|
5111
|
+
);
|
|
5112
|
+
}
|
|
3961
5113
|
const { client } = await createConfiguredClient(options);
|
|
3962
|
-
let cleanupInitAbortSignal = _optionalChain([options, 'access',
|
|
3963
|
-
} :
|
|
5114
|
+
let cleanupInitAbortSignal = _optionalChain([options, 'access', _120 => _120.abortSignal, 'optionalAccess', _121 => _121.aborted]) ? () => {
|
|
5115
|
+
} : _chunkKAAWCHO4js.wireAbortSignal.call(void 0, options.abortSignal, () => {
|
|
3964
5116
|
void closeQuietly(client);
|
|
3965
5117
|
});
|
|
3966
5118
|
let sdkMcpServers;
|
|
@@ -3970,7 +5122,7 @@ async function createSession(options = {}) {
|
|
|
3970
5122
|
...options,
|
|
3971
5123
|
mcpServers: sdkMcpServers.mcpServers
|
|
3972
5124
|
});
|
|
3973
|
-
const initResult =
|
|
5125
|
+
const initResult = _chunkKAAWCHO4js.unwrapResponseResult.call(void 0,
|
|
3974
5126
|
await client.initializeSession(initParams)
|
|
3975
5127
|
);
|
|
3976
5128
|
const session = new DroidSession(
|
|
@@ -3978,7 +5130,7 @@ async function createSession(options = {}) {
|
|
|
3978
5130
|
initResult.sessionId,
|
|
3979
5131
|
{
|
|
3980
5132
|
settings: initResult.settings,
|
|
3981
|
-
cwd: _nullishCoalesce(_optionalChain([initResult, 'access',
|
|
5133
|
+
cwd: _nullishCoalesce(_optionalChain([initResult, 'access', _122 => _122.worktree, 'optionalAccess', _123 => _123.path]), () => ( initParams.cwd))
|
|
3982
5134
|
},
|
|
3983
5135
|
{
|
|
3984
5136
|
abortSignal: options.abortSignal,
|
|
@@ -3995,15 +5147,15 @@ async function createSession(options = {}) {
|
|
|
3995
5147
|
return session;
|
|
3996
5148
|
} catch (error) {
|
|
3997
5149
|
cleanupInitAbortSignal();
|
|
3998
|
-
await _optionalChain([sdkMcpServers, 'optionalAccess',
|
|
5150
|
+
await _optionalChain([sdkMcpServers, 'optionalAccess', _124 => _124.cleanup, 'call', _125 => _125()]);
|
|
3999
5151
|
await closeQuietly(client);
|
|
4000
5152
|
throw error;
|
|
4001
5153
|
}
|
|
4002
5154
|
}
|
|
4003
5155
|
async function resumeSession(sessionId, options = {}) {
|
|
4004
5156
|
const { client } = await createConfiguredClient(options);
|
|
4005
|
-
let cleanupLoadAbortSignal = _optionalChain([options, 'access',
|
|
4006
|
-
} :
|
|
5157
|
+
let cleanupLoadAbortSignal = _optionalChain([options, 'access', _126 => _126.abortSignal, 'optionalAccess', _127 => _127.aborted]) ? () => {
|
|
5158
|
+
} : _chunkKAAWCHO4js.wireAbortSignal.call(void 0, options.abortSignal, () => {
|
|
4007
5159
|
void closeQuietly(client);
|
|
4008
5160
|
});
|
|
4009
5161
|
let sdkMcpServers;
|
|
@@ -4013,7 +5165,7 @@ async function resumeSession(sessionId, options = {}) {
|
|
|
4013
5165
|
options,
|
|
4014
5166
|
sdkMcpServers.mcpServers
|
|
4015
5167
|
);
|
|
4016
|
-
const loadResult =
|
|
5168
|
+
const loadResult = _chunkKAAWCHO4js.unwrapResponseResult.call(void 0,
|
|
4017
5169
|
await client.loadSession({ sessionId, ...replacementLoadParams })
|
|
4018
5170
|
);
|
|
4019
5171
|
const session = new DroidSession(
|
|
@@ -4032,7 +5184,7 @@ async function resumeSession(sessionId, options = {}) {
|
|
|
4032
5184
|
return session;
|
|
4033
5185
|
} catch (error) {
|
|
4034
5186
|
cleanupLoadAbortSignal();
|
|
4035
|
-
await _optionalChain([sdkMcpServers, 'optionalAccess',
|
|
5187
|
+
await _optionalChain([sdkMcpServers, 'optionalAccess', _128 => _128.cleanup, 'call', _129 => _129()]);
|
|
4036
5188
|
await closeQuietly(client);
|
|
4037
5189
|
throw error;
|
|
4038
5190
|
}
|
|
@@ -4046,13 +5198,15 @@ async function run(prompt, options = {}) {
|
|
|
4046
5198
|
...options,
|
|
4047
5199
|
includePartialMessages: false
|
|
4048
5200
|
})) {
|
|
4049
|
-
if (msg.type ===
|
|
4050
|
-
|
|
5201
|
+
if (msg.type === _chunkKAAWCHO4js.DroidMessageType.Result) {
|
|
5202
|
+
const computerId = session.computerId;
|
|
5203
|
+
return computerId === void 0 ? msg : { ...msg, computerId };
|
|
4051
5204
|
}
|
|
4052
5205
|
}
|
|
4053
5206
|
throw new Error("Stream completed without a result message");
|
|
4054
5207
|
} finally {
|
|
4055
|
-
await session.close()
|
|
5208
|
+
await session.close().catch(() => {
|
|
5209
|
+
});
|
|
4056
5210
|
}
|
|
4057
5211
|
}
|
|
4058
5212
|
|
|
@@ -4072,9 +5226,14 @@ var CR = 13;
|
|
|
4072
5226
|
var SPACE = 32;
|
|
4073
5227
|
var TAB = 9;
|
|
4074
5228
|
var PARSE_OVERSAMPLE = 20;
|
|
4075
|
-
function
|
|
5229
|
+
function readFileOrNull(filePath, read) {
|
|
4076
5230
|
try {
|
|
4077
|
-
|
|
5231
|
+
const fd = fs3.openSync(filePath, "r");
|
|
5232
|
+
try {
|
|
5233
|
+
return read(fd);
|
|
5234
|
+
} finally {
|
|
5235
|
+
fs3.closeSync(fd);
|
|
5236
|
+
}
|
|
4078
5237
|
} catch (e8) {
|
|
4079
5238
|
return null;
|
|
4080
5239
|
}
|
|
@@ -4086,46 +5245,92 @@ function parseJsonBuffer(buf) {
|
|
|
4086
5245
|
return null;
|
|
4087
5246
|
}
|
|
4088
5247
|
}
|
|
4089
|
-
|
|
5248
|
+
var SCAN_CHUNK_BYTES = 64 * 1024;
|
|
5249
|
+
var MAX_SCANNED_FILE_BYTES = 2 ** 31 - 1;
|
|
5250
|
+
function scratchChunk(scratch, size) {
|
|
5251
|
+
const want = Math.min(SCAN_CHUNK_BYTES, size === 0 ? 8192 : size);
|
|
5252
|
+
const current = scratch.chunk;
|
|
5253
|
+
if (current && current.length >= want) return current;
|
|
5254
|
+
const grown = Buffer.allocUnsafe(
|
|
5255
|
+
Math.min(SCAN_CHUNK_BYTES, Math.max(want, 2 * (_nullishCoalesce(_optionalChain([current, 'optionalAccess', _130 => _130.length]), () => ( 0)))))
|
|
5256
|
+
);
|
|
5257
|
+
scratch.chunk = grown;
|
|
5258
|
+
return grown;
|
|
5259
|
+
}
|
|
5260
|
+
function copyFirstLine(parts, chunk, end) {
|
|
5261
|
+
return Buffer.concat([...parts, chunk.subarray(0, end)]);
|
|
5262
|
+
}
|
|
5263
|
+
function scanSessionFile(fd, scratch) {
|
|
5264
|
+
const stats = fs3.fstatSync(fd);
|
|
5265
|
+
const size = stats.isFile() ? stats.size : 0;
|
|
5266
|
+
if (size > MAX_SCANNED_FILE_BYTES) return null;
|
|
5267
|
+
const chunk = scratchChunk(scratch, size);
|
|
4090
5268
|
let nonEmptyLineCount = 0;
|
|
4091
|
-
let
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
|
|
4106
|
-
|
|
4107
|
-
|
|
4108
|
-
|
|
5269
|
+
let lineHasContent = false;
|
|
5270
|
+
const firstLineParts = [];
|
|
5271
|
+
let firstLine;
|
|
5272
|
+
let pos = 0;
|
|
5273
|
+
for (; ; ) {
|
|
5274
|
+
const length = size === 0 ? chunk.length : Math.min(chunk.length, size - pos);
|
|
5275
|
+
if (length === 0) break;
|
|
5276
|
+
const bytesRead = fs3.readSync(fd, chunk, 0, length, null);
|
|
5277
|
+
if (bytesRead === 0) break;
|
|
5278
|
+
pos += bytesRead;
|
|
5279
|
+
let i = 0;
|
|
5280
|
+
while (i < bytesRead) {
|
|
5281
|
+
let lf;
|
|
5282
|
+
if (lineHasContent) {
|
|
5283
|
+
lf = chunk.indexOf(LF, i);
|
|
5284
|
+
if (lf === -1 || lf >= bytesRead) break;
|
|
5285
|
+
nonEmptyLineCount++;
|
|
5286
|
+
lineHasContent = false;
|
|
5287
|
+
} else {
|
|
5288
|
+
const ch = chunk[i];
|
|
5289
|
+
if (ch === CR || ch === SPACE || ch === TAB) {
|
|
5290
|
+
i++;
|
|
5291
|
+
continue;
|
|
5292
|
+
}
|
|
5293
|
+
if (ch !== LF) {
|
|
5294
|
+
lineHasContent = true;
|
|
5295
|
+
continue;
|
|
5296
|
+
}
|
|
5297
|
+
lf = i;
|
|
5298
|
+
}
|
|
5299
|
+
firstLine ??= copyFirstLine(firstLineParts, chunk, lf);
|
|
5300
|
+
i = lf + 1;
|
|
5301
|
+
}
|
|
5302
|
+
if (firstLine === void 0) {
|
|
5303
|
+
firstLineParts.push(Buffer.from(chunk.subarray(0, bytesRead)));
|
|
5304
|
+
}
|
|
5305
|
+
}
|
|
5306
|
+
if (lineHasContent) nonEmptyLineCount++;
|
|
5307
|
+
const [onlyPart] = firstLineParts;
|
|
5308
|
+
firstLine ??= onlyPart !== void 0 && firstLineParts.length === 1 ? onlyPart : Buffer.concat(firstLineParts);
|
|
5309
|
+
return { firstLine, nonEmptyLineCount };
|
|
4109
5310
|
}
|
|
4110
5311
|
function loadFavorites(sessionsDir) {
|
|
4111
|
-
const buf =
|
|
5312
|
+
const buf = readFileOrNull(
|
|
5313
|
+
path2.join(sessionsDir, FAVORITES_FILE),
|
|
5314
|
+
(fd) => fs3.readFileSync(fd)
|
|
5315
|
+
);
|
|
4112
5316
|
if (!buf) return /* @__PURE__ */ new Set();
|
|
4113
5317
|
const parsed = parseJsonBuffer(buf);
|
|
4114
5318
|
if (!Array.isArray(parsed)) return /* @__PURE__ */ new Set();
|
|
4115
5319
|
return new Set(parsed.filter((id) => typeof id === "string"));
|
|
4116
5320
|
}
|
|
4117
5321
|
function loadSettingsFile(directory, sessionId) {
|
|
4118
|
-
const buf =
|
|
4119
|
-
path2.join(directory, `${sessionId}${SETTINGS_SUFFIX}`)
|
|
5322
|
+
const buf = readFileOrNull(
|
|
5323
|
+
path2.join(directory, `${sessionId}${SETTINGS_SUFFIX}`),
|
|
5324
|
+
(fd) => fs3.readFileSync(fd)
|
|
4120
5325
|
);
|
|
4121
5326
|
if (!buf) return null;
|
|
4122
5327
|
const parsed = parseJsonBuffer(buf);
|
|
4123
5328
|
if (parsed === null) return null;
|
|
4124
|
-
const result =
|
|
5329
|
+
const result = _chunkKAAWCHO4js.SessionSettingsFileSchema.safeParse(parsed);
|
|
4125
5330
|
return result.success ? result.data : null;
|
|
4126
5331
|
}
|
|
4127
5332
|
function getMissionMetadataFromTags(settings) {
|
|
4128
|
-
if (!_optionalChain([settings, 'optionalAccess',
|
|
5333
|
+
if (!_optionalChain([settings, 'optionalAccess', _131 => _131.tags])) return {};
|
|
4129
5334
|
const missionTag = settings.tags.find(
|
|
4130
5335
|
(tag) => tag.name.startsWith(MISSION_TAG_PREFIX)
|
|
4131
5336
|
);
|
|
@@ -4133,17 +5338,19 @@ function getMissionMetadataFromTags(settings) {
|
|
|
4133
5338
|
(tag) => tag.name === DECOMP_SESSION_TYPE_TAG
|
|
4134
5339
|
);
|
|
4135
5340
|
return {
|
|
4136
|
-
decompMissionId: _optionalChain([missionTag, 'optionalAccess',
|
|
4137
|
-
decompSessionType: _optionalChain([roleTag, 'optionalAccess',
|
|
5341
|
+
decompMissionId: _optionalChain([missionTag, 'optionalAccess', _132 => _132.metadata, 'optionalAccess', _133 => _133[MISSION_ID_METADATA_KEY]]),
|
|
5342
|
+
decompSessionType: _optionalChain([roleTag, 'optionalAccess', _134 => _134.metadata, 'optionalAccess', _135 => _135[DECOMP_SESSION_TYPE_METADATA_KEY]])
|
|
4138
5343
|
};
|
|
4139
5344
|
}
|
|
4140
5345
|
function parseSessionFile(candidate, ctx) {
|
|
4141
|
-
const
|
|
4142
|
-
|
|
4143
|
-
|
|
5346
|
+
const scanned = readFileOrNull(
|
|
5347
|
+
candidate.sessionPath,
|
|
5348
|
+
(fd) => scanSessionFile(fd, ctx.scratch)
|
|
5349
|
+
);
|
|
5350
|
+
if (!scanned) return null;
|
|
4144
5351
|
const firstParsed = parseJsonBuffer(scanned.firstLine);
|
|
4145
5352
|
if (firstParsed === null) return null;
|
|
4146
|
-
const firstResult =
|
|
5353
|
+
const firstResult = _chunkKAAWCHO4js.SessionStartEventSchema.safeParse(firstParsed);
|
|
4147
5354
|
if (!firstResult.success) return null;
|
|
4148
5355
|
const summary = firstResult.data;
|
|
4149
5356
|
if (ctx.requiredCwd !== void 0 && (summary.cwd === void 0 || path2.resolve(summary.cwd) !== ctx.requiredCwd)) {
|
|
@@ -4151,9 +5358,9 @@ function parseSessionFile(candidate, ctx) {
|
|
|
4151
5358
|
}
|
|
4152
5359
|
const settingsName = `${candidate.sessionId}${SETTINGS_SUFFIX}`;
|
|
4153
5360
|
const settings = candidate.siblingNames.has(settingsName) ? loadSettingsFile(candidate.directory, candidate.sessionId) : null;
|
|
4154
|
-
if (_optionalChain([settings, 'optionalAccess',
|
|
5361
|
+
if (_optionalChain([settings, 'optionalAccess', _136 => _136.archivedAt])) return null;
|
|
4155
5362
|
const tagMeta = getMissionMetadataFromTags(settings);
|
|
4156
|
-
const decompSessionType = _nullishCoalesce(summary.decompSessionType, () => (
|
|
5363
|
+
const decompSessionType = _nullishCoalesce(summary.decompSessionType, () => ( _chunkKAAWCHO4js.SessionStartDecompSessionTypeSchema.safeParse(tagMeta.decompSessionType).data));
|
|
4157
5364
|
const messageCount = Math.max(0, scanned.nonEmptyLineCount - 1);
|
|
4158
5365
|
return {
|
|
4159
5366
|
id: candidate.sessionId,
|
|
@@ -4257,8 +5464,9 @@ async function listSessions(options = {}) {
|
|
|
4257
5464
|
projectCandidates.sort(byMtimeDesc);
|
|
4258
5465
|
legacyCandidates.sort(byMtimeDesc);
|
|
4259
5466
|
const parseLimit = options.limit !== void 0 && options.limit >= 0 ? options.limit + PARSE_OVERSAMPLE : void 0;
|
|
4260
|
-
const
|
|
4261
|
-
const
|
|
5467
|
+
const scratch = { chunk: void 0 };
|
|
5468
|
+
const ctx = { favorites, scratch };
|
|
5469
|
+
const legacyCtx = requiredCwd !== void 0 ? { favorites, scratch, requiredCwd } : ctx;
|
|
4262
5470
|
const projectSessions = parseUpTo(projectCandidates, ctx, parseLimit);
|
|
4263
5471
|
const legacySessions = parseUpTo(legacyCandidates, legacyCtx, parseLimit);
|
|
4264
5472
|
const byId = /* @__PURE__ */ new Map();
|
|
@@ -4282,10 +5490,10 @@ async function listModels(options = {}) {
|
|
|
4282
5490
|
const { includeDisabled, ...transportOptions } = options;
|
|
4283
5491
|
const { client } = await createConfiguredClient(transportOptions);
|
|
4284
5492
|
try {
|
|
4285
|
-
const
|
|
5493
|
+
const response2 = await client.listModels({
|
|
4286
5494
|
...includeDisabled !== void 0 && { includeDisabled }
|
|
4287
5495
|
});
|
|
4288
|
-
return
|
|
5496
|
+
return _chunkKAAWCHO4js.unwrapResponseResult.call(void 0, response2).models;
|
|
4289
5497
|
} finally {
|
|
4290
5498
|
await closeQuietly(client);
|
|
4291
5499
|
}
|
|
@@ -4740,5 +5948,54 @@ async function listModels(options = {}) {
|
|
|
4740
5948
|
|
|
4741
5949
|
|
|
4742
5950
|
|
|
4743
|
-
exports.AbortError = _chunkYSKO6SPTjs.AbortError; exports.AddMcpServerRequestParamsSchema = _chunkYSKO6SPTjs.AddMcpServerRequestParamsSchema; exports.AddMcpServerRequestSchema = _chunkYSKO6SPTjs.AddMcpServerRequestSchema; exports.AddMcpServerResponseSchema = _chunkYSKO6SPTjs.AddMcpServerResponseSchema; exports.AddMcpServerResultSchema = _chunkYSKO6SPTjs.AddMcpServerResultSchema; exports.AddUserMessageRequestParamsSchema = _chunkYSKO6SPTjs.AddUserMessageRequestParamsSchema; exports.AddUserMessageRequestSchema = _chunkYSKO6SPTjs.AddUserMessageRequestSchema; exports.AddUserMessageResponseSchema = _chunkYSKO6SPTjs.AddUserMessageResponseSchema; exports.AddUserMessageResultSchema = _chunkYSKO6SPTjs.AddUserMessageResultSchema; exports.ApplyPatchToolConfirmationDetailsSchema = _chunkYSKO6SPTjs.ApplyPatchToolConfirmationDetailsSchema; exports.AskUserCollectedAnswerSchema = _chunkYSKO6SPTjs.AskUserCollectedAnswerSchema; exports.AskUserConfirmationDetailsSchema = _chunkYSKO6SPTjs.AskUserConfirmationDetailsSchema; exports.AskUserQuestionSchema = _chunkYSKO6SPTjs.AskUserQuestionSchema; exports.AskUserRequestParamsSchema = _chunkYSKO6SPTjs.AskUserRequestParamsSchema; exports.AskUserRequestSchema = _chunkYSKO6SPTjs.AskUserRequestSchema; exports.AskUserResponseSchema = _chunkYSKO6SPTjs.AskUserResponseSchema; exports.AskUserResultSchema = _chunkYSKO6SPTjs.AskUserResultSchema; exports.AssistantMessageRetractedNotificationSchema = _chunkYSKO6SPTjs.AssistantMessageRetractedNotificationSchema; exports.AssistantTextCompleteNotificationSchema = _chunkYSKO6SPTjs.AssistantTextCompleteNotificationSchema; exports.AssistantTextDeltaNotificationSchema = _chunkYSKO6SPTjs.AssistantTextDeltaNotificationSchema; exports.AuthenticateMcpServerRequestParamsSchema = _chunkYSKO6SPTjs.AuthenticateMcpServerRequestParamsSchema; exports.AuthenticateMcpServerRequestSchema = _chunkYSKO6SPTjs.AuthenticateMcpServerRequestSchema; exports.AuthenticateMcpServerResponseSchema = _chunkYSKO6SPTjs.AuthenticateMcpServerResponseSchema; exports.AuthenticateMcpServerResultSchema = _chunkYSKO6SPTjs.AuthenticateMcpServerResultSchema; exports.AutonomyLevel = _chunkYSKO6SPTjs.AutonomyLevel; exports.AvailableModelConfigSchema = _chunkYSKO6SPTjs.AvailableModelConfigSchema; exports.Base64ImageSourceSchema = _chunkYSKO6SPTjs.Base64ImageSourceSchema; exports.BaseNotificationSchema = _chunkYSKO6SPTjs.BaseNotificationSchema; exports.BaseRequestSchema = _chunkYSKO6SPTjs.BaseRequestSchema; exports.BaseResponseFailureSchema = _chunkYSKO6SPTjs.BaseResponseFailureSchema; exports.BaseResponseSuccessSchema = _chunkYSKO6SPTjs.BaseResponseSuccessSchema; exports.CLI_JSONRPC_CHILD_SPAWN_LATENCY_METRIC = CLI_JSONRPC_CHILD_SPAWN_LATENCY_METRIC; exports.COMPACTION_TIMEOUT = _chunkYSKO6SPTjs.COMPACTION_TIMEOUT; exports.CancelMcpAuthRequestParamsSchema = _chunkYSKO6SPTjs.CancelMcpAuthRequestParamsSchema; exports.CancelMcpAuthRequestSchema = _chunkYSKO6SPTjs.CancelMcpAuthRequestSchema; exports.CancelMcpAuthResponseSchema = _chunkYSKO6SPTjs.CancelMcpAuthResponseSchema; exports.CancelMcpAuthResultSchema = _chunkYSKO6SPTjs.CancelMcpAuthResultSchema; exports.ChangeWorkingDirectoryRequestParamsSchema = _chunkYSKO6SPTjs.ChangeWorkingDirectoryRequestParamsSchema; exports.ChangeWorkingDirectoryRequestSchema = _chunkYSKO6SPTjs.ChangeWorkingDirectoryRequestSchema; exports.ChangeWorkingDirectoryResponseSchema = _chunkYSKO6SPTjs.ChangeWorkingDirectoryResponseSchema; exports.ChangeWorkingDirectoryResultSchema = _chunkYSKO6SPTjs.ChangeWorkingDirectoryResultSchema; exports.ClearMcpAuthRequestParamsSchema = _chunkYSKO6SPTjs.ClearMcpAuthRequestParamsSchema; exports.ClearMcpAuthRequestSchema = _chunkYSKO6SPTjs.ClearMcpAuthRequestSchema; exports.ClearMcpAuthResponseSchema = _chunkYSKO6SPTjs.ClearMcpAuthResponseSchema; exports.ClearMcpAuthResultSchema = _chunkYSKO6SPTjs.ClearMcpAuthResultSchema; exports.CliRequestOrNotificationSchema = _chunkYSKO6SPTjs.CliRequestOrNotificationSchema; exports.ClientDestroyedError = _chunkYSKO6SPTjs.ClientDestroyedError; exports.ClientRequestSchema = _chunkYSKO6SPTjs.ClientRequestSchema; exports.ClientUiSurface = _chunkYSKO6SPTjs.ClientUiSurface; exports.CloseSessionRequestParamsSchema = _chunkYSKO6SPTjs.CloseSessionRequestParamsSchema; exports.CloseSessionRequestSchema = _chunkYSKO6SPTjs.CloseSessionRequestSchema; exports.CloseSessionResponseSchema = _chunkYSKO6SPTjs.CloseSessionResponseSchema; exports.CloseSessionResultSchema = _chunkYSKO6SPTjs.CloseSessionResultSchema; exports.CompactSessionRequestParamsSchema = _chunkYSKO6SPTjs.CompactSessionRequestParamsSchema; exports.CompactSessionRequestSchema = _chunkYSKO6SPTjs.CompactSessionRequestSchema; exports.CompactSessionResponseSchema = _chunkYSKO6SPTjs.CompactSessionResponseSchema; exports.CompactSessionResultSchema = _chunkYSKO6SPTjs.CompactSessionResultSchema; exports.ComputeLimitExceededError = _chunkYSKO6SPTjs.ComputeLimitExceededError; exports.ComputerConnectAttemptTrigger = _chunkYSKO6SPTjs.ComputerConnectAttemptTrigger; exports.ComputerConnectStartType = _chunkYSKO6SPTjs.ComputerConnectStartType; exports.ComputerListResponseSchema = _chunkYSKO6SPTjs.ComputerListResponseSchema; exports.ComputerMetricSchema = _chunkYSKO6SPTjs.ComputerMetricSchema; exports.ComputerMetricsResponseSchema = _chunkYSKO6SPTjs.ComputerMetricsResponseSchema; exports.ComputerSchema = _chunkYSKO6SPTjs.ComputerSchema; exports.ConcurrentStreamError = _chunkYSKO6SPTjs.ConcurrentStreamError; exports.ConnectionClosedError = _chunkYSKO6SPTjs.ConnectionClosedError; exports.ConnectionError = _chunkYSKO6SPTjs.ConnectionError; exports.ConnectionFailureReason = _chunkYSKO6SPTjs.ConnectionFailureReason; exports.ContentBlockSchema = _chunkYSKO6SPTjs.ContentBlockSchema; exports.ContextBreakdownCategorySchema = _chunkYSKO6SPTjs.ContextBreakdownCategorySchema; exports.ContextBreakdownResultSchema = _chunkYSKO6SPTjs.GetContextBreakdownResultSchema; exports.ContextStatsAccuracy = _chunkYSKO6SPTjs.ContextStatsAccuracy; exports.ContextStatsSchema = _chunkYSKO6SPTjs.ContextStatsSchema; exports.CreateMessageNotificationSchema = _chunkYSKO6SPTjs.CreateMessageNotificationSchema; exports.CreateToolConfirmationDetailsSchema = _chunkYSKO6SPTjs.CreateToolConfirmationDetailsSchema; exports.DEFAULT_LOCAL_DAEMON_WS_URL = _chunkYSKO6SPTjs.DEFAULT_LOCAL_DAEMON_WS_URL; exports.DEFAULT_REQUEST_TIMEOUT = _chunkYSKO6SPTjs.DEFAULT_REQUEST_TIMEOUT; exports.DaemonAuthenticationMode = _chunkYSKO6SPTjs.DaemonAuthenticationMode; exports.DaemonClient = _chunkYSKO6SPTjs.DaemonClient; exports.DaemonClientMetaError = _chunkYSKO6SPTjs.MetaError; exports.DaemonDroidEvent = _chunkYSKO6SPTjs.DaemonDroidEvent; exports.DaemonRequestPermissionSchema = _chunkYSKO6SPTjs.DaemonRequestPermissionSchema; exports.DaemonSessionController = _chunkYSKO6SPTjs.DaemonSessionController; exports.DecompSessionType = _chunkYSKO6SPTjs.DecompSessionType; exports.DiscoveredIssueSchema = _chunkYSKO6SPTjs.DiscoveredIssueSchema; exports.DismissalRecordSchema = _chunkYSKO6SPTjs.DismissalRecordSchema; exports.DismissalType = _chunkYSKO6SPTjs.DismissalType; exports.DocumentBlockSchema = _chunkYSKO6SPTjs.DocumentBlockSchema; exports.DocumentSourceSchema = _chunkYSKO6SPTjs.DocumentSourceSchema; exports.DroidClient = DroidClient; exports.DroidClientError = _chunkYSKO6SPTjs.DroidClientError; exports.DroidClientEvent = DroidClientEvent; exports.DroidClientMethod = _chunkYSKO6SPTjs.DroidClientMethod; exports.DroidErrorType = _chunkYSKO6SPTjs.DroidErrorType; exports.DroidEvent = _chunkYSKO6SPTjs.DroidEvent; exports.DroidHookEventSchema = _chunkYSKO6SPTjs.DroidHookEventSchema; exports.DroidHookExecutionResultSchema = _chunkYSKO6SPTjs.DroidHookExecutionResultSchema; exports.DroidHookOutputSchema = _chunkYSKO6SPTjs.DroidHookOutputSchema; exports.DroidHookSpecificOutputSchema = _chunkYSKO6SPTjs.DroidHookSpecificOutputSchema; exports.DroidInteractionMode = _chunkYSKO6SPTjs.DroidInteractionMode; exports.DroidMessageType = _chunkYSKO6SPTjs.DroidMessageType; exports.DroidProcessManager = DroidProcessManager; exports.DroidProcessMode = DroidProcessMode; exports.DroidServerMethod = _chunkYSKO6SPTjs.DroidServerMethod; exports.DroidSession = DroidSession; exports.DroidWorkingState = _chunkYSKO6SPTjs.DroidWorkingState; exports.DroidWorkingStateChangedNotificationSchema = _chunkYSKO6SPTjs.DroidWorkingStateChangedNotificationSchema; exports.EditToolConfirmationDetailsSchema = _chunkYSKO6SPTjs.EditToolConfirmationDetailsSchema; exports.EmptyResultSchema = _chunkYSKO6SPTjs.EmptyResultSchema; exports.ErrorDetailSchema = _chunkYSKO6SPTjs.ErrorDetailSchema; exports.ErrorNotificationSchema = _chunkYSKO6SPTjs.ErrorNotificationSchema; exports.ExecToolInfoSchema = _chunkYSKO6SPTjs.ExecToolInfoSchema; exports.ExecuteRewindRequestParamsSchema = _chunkYSKO6SPTjs.ExecuteRewindRequestParamsSchema; exports.ExecuteRewindRequestSchema = _chunkYSKO6SPTjs.ExecuteRewindRequestSchema; exports.ExecuteRewindResponseSchema = _chunkYSKO6SPTjs.ExecuteRewindResponseSchema; exports.ExecuteRewindResultSchema = _chunkYSKO6SPTjs.ExecuteRewindResultSchema; exports.ExecuteToolConfirmationDetailsSchema = _chunkYSKO6SPTjs.ExecuteToolConfirmationDetailsSchema; exports.ExitSpecModeConfirmationDetailsSchema = _chunkYSKO6SPTjs.ExitSpecModeConfirmationDetailsSchema; exports.FACTORY_CLIENT_HEADER = _chunkYSKO6SPTjs.FACTORY_CLIENT_HEADER; exports.FACTORY_CLIENT_VERSION = _chunkYSKO6SPTjs.FACTORY_CLIENT_VERSION; exports.FACTORY_PROTOCOL_VERSION = _chunkYSKO6SPTjs.FACTORY_PROTOCOL_VERSION2; exports.FactoryDaemonTransport = _chunkYSKO6SPTjs.FactoryDaemonTransport; exports.FactoryDroidMessageRole = _chunkYSKO6SPTjs.FactoryDroidMessageRole; exports.FactoryDroidMessageSchema = _chunkYSKO6SPTjs.FactoryDroidMessageSchema; exports.FeatureStatus = _chunkYSKO6SPTjs.FeatureStatus; exports.FeatureSuccessState = _chunkYSKO6SPTjs.FeatureSuccessState; exports.FeatureSuccessStateSchema = _chunkYSKO6SPTjs.FeatureSuccessStateSchema; exports.ForkSessionRequestParamsSchema = _chunkYSKO6SPTjs.ForkSessionRequestParamsSchema; exports.ForkSessionRequestSchema = _chunkYSKO6SPTjs.ForkSessionRequestSchema; exports.ForkSessionResponseSchema = _chunkYSKO6SPTjs.ForkSessionResponseSchema; exports.ForkSessionResultSchema = _chunkYSKO6SPTjs.ForkSessionResultSchema; exports.GetContextStatsRequestParamsSchema = _chunkYSKO6SPTjs.GetContextStatsRequestParamsSchema; exports.GetContextStatsRequestSchema = _chunkYSKO6SPTjs.GetContextStatsRequestSchema; exports.GetContextStatsResponseSchema = _chunkYSKO6SPTjs.GetContextStatsResponseSchema; exports.GetContextStatsResultSchema = _chunkYSKO6SPTjs.ContextStatsSchema; exports.GetRewindInfoRequestParamsSchema = _chunkYSKO6SPTjs.GetRewindInfoRequestParamsSchema; exports.GetRewindInfoRequestSchema = _chunkYSKO6SPTjs.GetRewindInfoRequestSchema; exports.GetRewindInfoResponseSchema = _chunkYSKO6SPTjs.GetRewindInfoResponseSchema; exports.GetRewindInfoResultSchema = _chunkYSKO6SPTjs.GetRewindInfoResultSchema; exports.GitRepoInfoSchema = _chunkYSKO6SPTjs.GitRepoInfoSchema; exports.HandoffItemsDismissedEntrySchema = _chunkYSKO6SPTjs.HandoffItemsDismissedEntrySchema; exports.HandoffSchema = _chunkYSKO6SPTjs.HandoffSchema; exports.HookCommandSchema = _chunkYSKO6SPTjs.HookCommandSchema; exports.HookExecutionCompletedNotificationSchema = _chunkYSKO6SPTjs.HookExecutionCompletedNotificationSchema; exports.HookExecutionStartedNotificationSchema = _chunkYSKO6SPTjs.HookExecutionStartedNotificationSchema; exports.HookResultSchema = _chunkYSKO6SPTjs.HookResultSchema; exports.HttpHeaderSchema = _chunkYSKO6SPTjs.HttpHeaderSchema; exports.HttpMcpConfigSchema = _chunkYSKO6SPTjs.HttpMcpSchema; exports.IPC_DAEMON_URL = _chunkYSKO6SPTjs.IPC_DAEMON_URL; exports.ImageBlockSchema = _chunkYSKO6SPTjs.ImageBlockSchema; exports.InProcessDaemonClientTransport = _chunkYSKO6SPTjs.InProcessDaemonClientTransport; exports.InitializeSessionRequestParamsSchema = _chunkYSKO6SPTjs.InitializeSessionRequestParamsSchema; exports.InitializeSessionRequestSchema = _chunkYSKO6SPTjs.InitializeSessionRequestSchema; exports.InitializeSessionResponseSchema = _chunkYSKO6SPTjs.InitializeSessionResponseSchema; exports.InitializeSessionResultSchema = _chunkYSKO6SPTjs.InitializeSessionResultSchema2; exports.InteractiveCheckSchema = _chunkYSKO6SPTjs.InteractiveCheckSchema; exports.InterruptSessionRequestParamsSchema = _chunkYSKO6SPTjs.InterruptSessionRequestParamsSchema; exports.InterruptSessionRequestSchema = _chunkYSKO6SPTjs.InterruptSessionRequestSchema; exports.InterruptSessionResponseSchema = _chunkYSKO6SPTjs.InterruptSessionResponseSchema; exports.InterruptSessionResultSchema = _chunkYSKO6SPTjs.InterruptSessionResultSchema; exports.InvalidSessionCwdError = _chunkYSKO6SPTjs.InvalidSessionCwdError; exports.IpcDaemonClientTransport = _chunkYSKO6SPTjs.IpcDaemonClientTransport; exports.IssueSeverity = _chunkYSKO6SPTjs.IssueSeverity; exports.JSONRPC_VERSION = _chunkYSKO6SPTjs.JSONRPC_VERSION3; exports.JsonArraySchema = _chunkYSKO6SPTjs.JsonArraySchema; exports.JsonObjectSchema = _chunkYSKO6SPTjs.JsonObjectSchema; exports.JsonRpcEnvelopeSchema = _chunkYSKO6SPTjs.JsonRpcEnvelopeSchema; exports.JsonRpcErrorCode = _chunkYSKO6SPTjs.JsonRpcErrorCode; exports.JsonRpcErrorSchema = _chunkYSKO6SPTjs.JsonRpcErrorSchema; exports.JsonRpcMessageSchema = _chunkYSKO6SPTjs.JsonRpcMessageSchema; exports.JsonRpcMessageType = _chunkYSKO6SPTjs.JsonRpcMessageType; exports.JsonRpcNotificationSchema = _chunkYSKO6SPTjs.JsonRpcNotificationSchema; exports.JsonRpcRequestError = _chunkYSKO6SPTjs.JsonRpcRequestError; exports.JsonRpcRequestSchema = _chunkYSKO6SPTjs.JsonRpcRequestSchema; exports.JsonRpcResponseFailureSchema = _chunkYSKO6SPTjs.JsonRpcResponseFailureSchema; exports.JsonRpcResponseSchema = _chunkYSKO6SPTjs.JsonRpcResponseSchema; exports.JsonRpcResponseSuccessSchema = _chunkYSKO6SPTjs.JsonRpcResponseSuccessSchema; exports.JsonValueSchema = _chunkYSKO6SPTjs.JsonValueSchema; exports.KillWorkerSessionRequestParamsSchema = _chunkYSKO6SPTjs.KillWorkerSessionRequestParamsSchema; exports.KillWorkerSessionRequestSchema = _chunkYSKO6SPTjs.KillWorkerSessionRequestSchema; exports.KillWorkerSessionResponseSchema = _chunkYSKO6SPTjs.KillWorkerSessionResponseSchema; exports.KillWorkerSessionResultSchema = _chunkYSKO6SPTjs.KillWorkerSessionResultSchema; exports.LEGACY_FACTORY_API_VERSION = _chunkYSKO6SPTjs.LEGACY_FACTORY_API_VERSION2; exports.LOCAL_MACHINE_ID = _chunkYSKO6SPTjs.LOCAL_MACHINE_ID; exports.ListMcpRegistryRequestParamsSchema = _chunkYSKO6SPTjs.ListMcpRegistryRequestParamsSchema; exports.ListMcpRegistryRequestSchema = _chunkYSKO6SPTjs.ListMcpRegistryRequestSchema; exports.ListMcpRegistryResponseSchema = _chunkYSKO6SPTjs.ListMcpRegistryResponseSchema; exports.ListMcpRegistryResultSchema = _chunkYSKO6SPTjs.ListMcpRegistryResultSchema; exports.ListMcpServersRequestParamsSchema = _chunkYSKO6SPTjs.ListMcpServersRequestParamsSchema; exports.ListMcpServersRequestSchema = _chunkYSKO6SPTjs.ListMcpServersRequestSchema; exports.ListMcpServersResponseSchema = _chunkYSKO6SPTjs.ListMcpServersResponseSchema; exports.ListMcpServersResultSchema = _chunkYSKO6SPTjs.ListMcpServersResultSchema; exports.ListMcpToolsRequestParamsSchema = _chunkYSKO6SPTjs.ListMcpToolsRequestParamsSchema; exports.ListMcpToolsRequestSchema = _chunkYSKO6SPTjs.ListMcpToolsRequestSchema; exports.ListMcpToolsResponseSchema = _chunkYSKO6SPTjs.ListMcpToolsResponseSchema; exports.ListMcpToolsResultSchema = _chunkYSKO6SPTjs.ListMcpToolsResultSchema; exports.ListModelsOptionsSchema = _chunkYSKO6SPTjs.ListModelsOptionsSchema; exports.ListModelsResultSchema = _chunkYSKO6SPTjs.ListModelsResultSchema; exports.ListSkillsRequestParamsSchema = _chunkYSKO6SPTjs.ListSkillsRequestParamsSchema; exports.ListSkillsRequestSchema = _chunkYSKO6SPTjs.ListSkillsRequestSchema; exports.ListSkillsResponseSchema = _chunkYSKO6SPTjs.ListSkillsResponseSchema; exports.ListSkillsResultSchema = _chunkYSKO6SPTjs.ListSkillsResultSchema; exports.ListToolsRequestParamsSchema = _chunkYSKO6SPTjs.ListToolsRequestParamsSchema; exports.ListToolsRequestSchema = _chunkYSKO6SPTjs.ListToolsRequestSchema; exports.ListToolsResponseSchema = _chunkYSKO6SPTjs.ListToolsResponseSchema; exports.ListToolsResultSchema = _chunkYSKO6SPTjs.ListToolsResultSchema; exports.LoadSessionRequestParamsSchema = _chunkYSKO6SPTjs.LoadSessionRequestParamsSchema; exports.LoadSessionRequestSchema = _chunkYSKO6SPTjs.LoadSessionRequestSchema; exports.LoadSessionResponseSchema = _chunkYSKO6SPTjs.LoadSessionResponseSchema; exports.LoadSessionResultSchema = _chunkYSKO6SPTjs.LoadSessionResultSchema; exports.MACHINE_TYPE_WEBSOCKET_OVERRIDES = _chunkYSKO6SPTjs.MACHINE_TYPE_WEBSOCKET_OVERRIDES; exports.MANAGED_COMPUTER_MAX_RETRIES = _chunkYSKO6SPTjs.MANAGED_COMPUTER_MAX_RETRIES; exports.MCP_AUTH_TIMEOUT = _chunkYSKO6SPTjs.MCP_AUTH_TIMEOUT; exports.MachineTemplateBuildStatusSchema = _chunkYSKO6SPTjs.MachineTemplateBuildStatusSchema; exports.MachineTemplateListResponseSchema = _chunkYSKO6SPTjs.MachineTemplateListResponseSchema; exports.MachineTemplateSchema = _chunkYSKO6SPTjs.MachineTemplateSchema; exports.MachineType = _chunkYSKO6SPTjs.MachineType; exports.ManagedProcessImpl = ManagedProcessImpl; exports.McpAuthCompletedNotificationSchema = _chunkYSKO6SPTjs.McpAuthCompletedNotificationSchema; exports.McpAuthOutcome = _chunkYSKO6SPTjs.McpAuthOutcome; exports.McpAuthRequiredNotificationSchema = _chunkYSKO6SPTjs.McpAuthRequiredNotificationSchema; exports.McpHttpServerConfigFieldsSchema = _chunkYSKO6SPTjs.McpHttpServerConfigFieldsSchema; exports.McpRegistryServerSchema = _chunkYSKO6SPTjs.McpRegistryServerSchema; exports.McpServerConfigSchema = _chunkYSKO6SPTjs.McpServerConfigSchema; exports.McpServerStatus = _chunkYSKO6SPTjs.McpServerStatus; exports.McpServerStatusInfoSchema = _chunkYSKO6SPTjs.McpServerStatusInfoSchema; exports.McpServerType = _chunkYSKO6SPTjs.McpServerType; exports.McpSseServerConfigFieldsSchema = _chunkYSKO6SPTjs.McpSseServerConfigFieldsSchema; exports.McpStatus = _chunkYSKO6SPTjs.McpStatus; exports.McpStatusChangedNotificationSchema = _chunkYSKO6SPTjs.McpStatusChangedNotificationSchema; exports.McpStatusSummarySchema = _chunkYSKO6SPTjs.McpStatusSummarySchema; exports.McpStdioServerConfigFieldsSchema = _chunkYSKO6SPTjs.McpStdioServerConfigFieldsSchema; exports.McpToolConfirmationDetailsSchema = _chunkYSKO6SPTjs.McpToolConfirmationDetailsSchema; exports.McpToolInfoSchema = _chunkYSKO6SPTjs.McpToolInfoSchema; exports.McpToolInputSchemaSchema = _chunkYSKO6SPTjs.McpToolInputSchemaSchema; exports.MessageVisibility = _chunkYSKO6SPTjs.MessageVisibility; exports.Metric = _chunkYSKO6SPTjs.Metric; exports.MilestoneValidationTriggeredEntrySchema = _chunkYSKO6SPTjs.MilestoneValidationTriggeredEntrySchema; exports.MissionAcceptedEntrySchema = _chunkYSKO6SPTjs.MissionAcceptedEntrySchema; exports.MissionFeatureSchema = _chunkYSKO6SPTjs.MissionFeatureSchema; exports.MissionFeaturesChangedNotificationSchema = _chunkYSKO6SPTjs.MissionFeaturesChangedNotificationSchema; exports.MissionHeartbeatNotificationSchema = _chunkYSKO6SPTjs.MissionHeartbeatNotificationSchema; exports.MissionPausedEntrySchema = _chunkYSKO6SPTjs.MissionPausedEntrySchema; exports.MissionProgressEntryNotificationSchema = _chunkYSKO6SPTjs.MissionProgressEntryNotificationSchema; exports.MissionResumedEntrySchema = _chunkYSKO6SPTjs.MissionResumedEntrySchema; exports.MissionRunStartedEntrySchema = _chunkYSKO6SPTjs.MissionRunStartedEntrySchema; exports.MissionSnapshotSchema = _chunkYSKO6SPTjs.MissionStateSchema; exports.MissionState = _chunkYSKO6SPTjs.MissionState; exports.MissionStateChangedNotificationSchema = _chunkYSKO6SPTjs.MissionStateChangedNotificationSchema; exports.MissionWorkerCompletedNotificationSchema = _chunkYSKO6SPTjs.MissionWorkerCompletedNotificationSchema; exports.MissionWorkerStartedNotificationSchema = _chunkYSKO6SPTjs.MissionWorkerStartedNotificationSchema; exports.ModelInfoSchema = _chunkYSKO6SPTjs.ModelInfoSchema; exports.ModelMetadataSchema = _chunkYSKO6SPTjs.ModelMetadataSchema; exports.ModelProvider = _chunkYSKO6SPTjs.ModelProvider; exports.MultiMissionStateManager = _chunkYSKO6SPTjs.MultiMissionStateManager; exports.MultiSessionStateManager = _chunkYSKO6SPTjs.MultiSessionStateManager; exports.OtelTracing = _chunkYSKO6SPTjs.OtelTracing; exports.OutputFormatSchema = _chunkYSKO6SPTjs.OutputFormatSchema; exports.OutputFormatType = _chunkYSKO6SPTjs.OutputFormatType; exports.PermissionResolvedNotificationSchema = _chunkYSKO6SPTjs.PermissionResolvedNotificationSchema; exports.ProcessExitError = _chunkYSKO6SPTjs.ProcessExitError; exports.ProcessTransport = ProcessTransport; exports.ProgressLogEntrySchema = _chunkYSKO6SPTjs.ProgressLogEntrySchema; exports.ProgressLogEntryType = _chunkYSKO6SPTjs.ProgressLogEntryType; exports.ProposeMissionConfirmationDetailsSchema = _chunkYSKO6SPTjs.ProposeMissionConfirmationDetailsSchema; exports.ProtocolError = _chunkYSKO6SPTjs.ProtocolError; exports.QueuedUserMessageDisplayGroup = _chunkYSKO6SPTjs.QueuedUserMessageDisplayGroup; exports.QueuedUserMessageKind = _chunkYSKO6SPTjs.QueuedUserMessageKind; exports.REWIND_TIMEOUT = _chunkYSKO6SPTjs.REWIND_TIMEOUT; exports.ReasoningEffort = _chunkYSKO6SPTjs.ReasoningEffort; exports.RedactedThinkingBlockSchema = _chunkYSKO6SPTjs.RedactedThinkingBlockSchema; exports.RefreshComputerResponseSchema = _chunkYSKO6SPTjs.RefreshComputerResponseSchema; exports.RelayConnectionError = _chunkYSKO6SPTjs.RelayConnectionError; exports.RemoteSessionListResponseSchema = _chunkYSKO6SPTjs.RemoteSessionListResponseSchema; exports.RemoteSessionSchema = _chunkYSKO6SPTjs.RemoteSessionSchema; exports.RemoveMcpServerRequestParamsSchema = _chunkYSKO6SPTjs.RemoveMcpServerRequestParamsSchema; exports.RemoveMcpServerRequestSchema = _chunkYSKO6SPTjs.RemoveMcpServerRequestSchema; exports.RemoveMcpServerResponseSchema = _chunkYSKO6SPTjs.RemoveMcpServerResponseSchema; exports.RemoveMcpServerResultSchema = _chunkYSKO6SPTjs.RemoveMcpServerResultSchema; exports.RenameSessionRequestParamsSchema = _chunkYSKO6SPTjs.RenameSessionRequestParamsSchema; exports.RenameSessionRequestSchema = _chunkYSKO6SPTjs.RenameSessionRequestSchema; exports.RenameSessionResponseSchema = _chunkYSKO6SPTjs.RenameSessionResponseSchema; exports.RenameSessionResultSchema = _chunkYSKO6SPTjs.RenameSessionResultSchema; exports.RequestPermissionRequestParamsSchema = _chunkYSKO6SPTjs.RequestPermissionRequestParamsSchema; exports.RequestPermissionRequestSchema = _chunkYSKO6SPTjs.RequestPermissionRequestSchema; exports.RequestPermissionResponseSchema = _chunkYSKO6SPTjs.RequestPermissionResponseSchema; exports.RequestPermissionResultSchema = _chunkYSKO6SPTjs.RequestPermissionResultSchema; exports.RewindEvictedFileSchema = _chunkYSKO6SPTjs.RewindEvictedFileSchema; exports.RewindFileCreationSchema = _chunkYSKO6SPTjs.RewindFileCreationSchema; exports.RewindFileSnapshotSchema = _chunkYSKO6SPTjs.RewindFileSnapshotSchema; exports.SDK_TAG = _chunkYSKO6SPTjs.SDK_TAG; exports.SDK_VERSION = _chunkYSKO6SPTjs.SDK_VERSION; exports.SESSION_INIT_TIMEOUT = _chunkYSKO6SPTjs.SESSION_INIT_TIMEOUT; exports.SLACK_DELEGATION_MAX_RETRIES = _chunkYSKO6SPTjs.SLACK_DELEGATION_MAX_RETRIES; exports.SdkMcpServer = SdkMcpServer; exports.ServerRequestHandlerType = _chunkYSKO6SPTjs.ServerRequestHandlerType; exports.SessionError = _chunkYSKO6SPTjs.SessionError; exports.SessionMetadataSchema = _chunkYSKO6SPTjs.SessionMetadataSchema; exports.SessionNotFoundError = _chunkYSKO6SPTjs.SessionNotFoundError; exports.SessionNotificationParamsSchema = _chunkYSKO6SPTjs.SessionNotificationParamsSchema; exports.SessionNotificationPayloadSchema = _chunkYSKO6SPTjs.SessionNotificationPayloadSchema; exports.SessionNotificationSchema = _chunkYSKO6SPTjs.SessionNotificationSchema; exports.SessionNotificationSchemaList = _chunkYSKO6SPTjs.SessionNotificationSchemaList; exports.SessionNotificationType = _chunkYSKO6SPTjs.SessionNotificationType; exports.SessionPlatform = _chunkYSKO6SPTjs.SessionPlatform; exports.SessionReplacedError = _chunkYSKO6SPTjs.SessionReplacedError; exports.SessionReplacementError = _chunkYSKO6SPTjs.SessionReplacementError; exports.SessionSettingsFileSchema = _chunkYSKO6SPTjs.SessionSettingsFileSchema; exports.SessionSettingsSchema = _chunkYSKO6SPTjs.SessionSettingsSchema; exports.SessionSourceSchema = _chunkYSKO6SPTjs.SessionSourceSchema; exports.SessionStartEventSchema = _chunkYSKO6SPTjs.SessionStartEventSchema; exports.SessionTagSchema = _chunkYSKO6SPTjs.SessionTagSchema; exports.SessionTitleUpdatedNotificationSchema = _chunkYSKO6SPTjs.SessionTitleUpdatedNotificationSchema; exports.SessionTokenUsageChangedNotificationSchema = _chunkYSKO6SPTjs.SessionTokenUsageChangedNotificationSchema; exports.SetSkillDisabledRequestParamsSchema = _chunkYSKO6SPTjs.SetSkillDisabledRequestParamsSchema; exports.SetSkillDisabledRequestSchema = _chunkYSKO6SPTjs.SetSkillDisabledRequestSchema; exports.SetSkillDisabledResponseSchema = _chunkYSKO6SPTjs.SetSkillDisabledResponseSchema; exports.SetSkillDisabledResultSchema = _chunkYSKO6SPTjs.SetSkillDisabledResultSchema; exports.SettingsLevel = _chunkYSKO6SPTjs.SettingsLevel; exports.SettingsUpdatedNotificationSchema = _chunkYSKO6SPTjs.SettingsUpdatedNotificationSchema; exports.SettingsUpdatedPayloadSchema = _chunkYSKO6SPTjs.SettingsUpdatedPayloadSchema; exports.SkillDeviationSchema = _chunkYSKO6SPTjs.SkillDeviationSchema; exports.SkillFeedbackSchema = _chunkYSKO6SPTjs.SkillFeedbackSchema; exports.SkillInfoSchema = _chunkYSKO6SPTjs.SkillInfoSchema; exports.SkillLocation = _chunkYSKO6SPTjs.SkillLocation; exports.SkillResourceSchema = _chunkYSKO6SPTjs.SkillResourceSchema; exports.SpanAttribute = _chunkYSKO6SPTjs.SpanAttribute; exports.SpanEvent = _chunkYSKO6SPTjs.SpanEvent; exports.SpanName = _chunkYSKO6SPTjs.SpanName; exports.SseMcpConfigSchema = _chunkYSKO6SPTjs.SseMcpSchema; exports.StartMissionRunConfirmationDetailsSchema = _chunkYSKO6SPTjs.StartMissionRunConfirmationDetailsSchema; exports.StdioMcpConfigSchema = _chunkYSKO6SPTjs.StdioMcpSchema; exports.StreamStateTracker = _chunkYSKO6SPTjs.StreamStateTracker; exports.StructuredOutputErrorSchema = _chunkYSKO6SPTjs.StructuredOutputErrorSchema; exports.StructuredOutputNotificationSchema = _chunkYSKO6SPTjs.StructuredOutputNotificationSchema; exports.SubmitBugReportRequestParamsSchema = _chunkYSKO6SPTjs.SubmitBugReportRequestParamsSchema; exports.SubmitBugReportRequestSchema = _chunkYSKO6SPTjs.SubmitBugReportRequestSchema; exports.SubmitBugReportResponseSchema = _chunkYSKO6SPTjs.SubmitBugReportResponseSchema; exports.SubmitBugReportResultSchema = _chunkYSKO6SPTjs.SubmitBugReportResultSchema; exports.SubmitMcpAuthCodeRequestParamsSchema = _chunkYSKO6SPTjs.SubmitMcpAuthCodeRequestParamsSchema; exports.SubmitMcpAuthCodeRequestSchema = _chunkYSKO6SPTjs.SubmitMcpAuthCodeRequestSchema; exports.SubmitMcpAuthCodeResponseSchema = _chunkYSKO6SPTjs.SubmitMcpAuthCodeResponseSchema; exports.SubmitMcpAuthCodeResultSchema = _chunkYSKO6SPTjs.SubmitMcpAuthCodeResultSchema; exports.SuccessResultSchema = _chunkYSKO6SPTjs.SuccessResultSchema; exports.TestCaseSchema = _chunkYSKO6SPTjs.TestCaseSchema; exports.TestFileSchema = _chunkYSKO6SPTjs.TestFileSchema; exports.TestsSchema = _chunkYSKO6SPTjs.TestsSchema; exports.TextBlockSchema = _chunkYSKO6SPTjs.TextBlockSchema; exports.ThinkingBlockSchema = _chunkYSKO6SPTjs.ThinkingBlockSchema; exports.ThinkingTextCompleteNotificationSchema = _chunkYSKO6SPTjs.ThinkingTextCompleteNotificationSchema; exports.ThinkingTextDeltaNotificationSchema = _chunkYSKO6SPTjs.ThinkingTextDeltaNotificationSchema; exports.TimeoutError = _chunkYSKO6SPTjs.TimeoutError; exports.ToggleMcpServerRequestParamsSchema = _chunkYSKO6SPTjs.ToggleMcpServerRequestParamsSchema; exports.ToggleMcpServerRequestSchema = _chunkYSKO6SPTjs.ToggleMcpServerRequestSchema; exports.ToggleMcpServerResponseSchema = _chunkYSKO6SPTjs.ToggleMcpServerResponseSchema; exports.ToggleMcpServerResultSchema = _chunkYSKO6SPTjs.ToggleMcpServerResultSchema; exports.ToggleMcpToolRequestParamsSchema = _chunkYSKO6SPTjs.ToggleMcpToolRequestParamsSchema; exports.ToggleMcpToolRequestSchema = _chunkYSKO6SPTjs.ToggleMcpToolRequestSchema; exports.ToggleMcpToolResponseSchema = _chunkYSKO6SPTjs.ToggleMcpToolResponseSchema; exports.ToggleMcpToolResultSchema = _chunkYSKO6SPTjs.ToggleMcpToolResultSchema; exports.TokenUsageSchema = _chunkYSKO6SPTjs.TokenUsageSchema; exports.ToolCallNotificationSchema = _chunkYSKO6SPTjs.ToolCallNotificationSchema; exports.ToolConfirmationDetailsSchema = _chunkYSKO6SPTjs.ToolConfirmationDetailsSchema; exports.ToolConfirmationInfoSchema = _chunkYSKO6SPTjs.ToolConfirmationInfoSchema; exports.ToolConfirmationListItemSchema = _chunkYSKO6SPTjs.ToolConfirmationListItemSchema; exports.ToolConfirmationOutcome = _chunkYSKO6SPTjs.ToolConfirmationOutcome; exports.ToolConfirmationType = _chunkYSKO6SPTjs.ToolConfirmationType; exports.ToolProgressUpdateNotificationSchema = _chunkYSKO6SPTjs.ToolProgressUpdateNotificationSchema; exports.ToolProgressUpdateSchema = _chunkYSKO6SPTjs.ToolProgressUpdateSchema; exports.ToolResultBlockSchema = _chunkYSKO6SPTjs.ToolResultSchema; exports.ToolResultNotificationSchema = _chunkYSKO6SPTjs.ToolResultNotificationSchema; exports.ToolSelectionOverridesSchema = _chunkYSKO6SPTjs.ToolSelectionOverridesSchema; exports.ToolUseBlockSchema = _chunkYSKO6SPTjs.ToolUseSchema; exports.ToolUseSchema = _chunkYSKO6SPTjs.ToolUseSchema2; exports.TraceContextMetaSchema = _chunkYSKO6SPTjs.TraceContextMetaSchema; exports.TransportDirection = TransportDirection; exports.TunnelConnection = _chunkYSKO6SPTjs.TunnelConnection; exports.UpdateSessionSettingsRequestParamsSchema = _chunkYSKO6SPTjs.UpdateSessionSettingsRequestParamsSchema; exports.UpdateSessionSettingsRequestSchema = _chunkYSKO6SPTjs.UpdateSessionSettingsRequestSchema; exports.UpdateSessionSettingsResponseSchema = _chunkYSKO6SPTjs.UpdateSessionSettingsResponseSchema; exports.UpdateSessionSettingsResultSchema = _chunkYSKO6SPTjs.UpdateSessionSettingsResultSchema; exports.VerificationCommandSchema = _chunkYSKO6SPTjs.VerificationCommandSchema; exports.VerificationSchema = _chunkYSKO6SPTjs.VerificationSchema; exports.WINDOWS_JOB_OBJECT_ERROR_MARKER = WINDOWS_JOB_OBJECT_ERROR_MARKER; exports.WebSocketConnectionError = _chunkYSKO6SPTjs.WebSocketConnectionError; exports.WebSocketDaemonTransport = _chunkYSKO6SPTjs.WebSocketDaemonTransport; exports.WorkerCompletedEntrySchema = _chunkYSKO6SPTjs.WorkerCompletedEntrySchema; exports.WorkerFailedEntrySchema = _chunkYSKO6SPTjs.WorkerFailedEntrySchema; exports.WorkerPausedEntrySchema = _chunkYSKO6SPTjs.WorkerPausedEntrySchema; exports.WorkerSelectedFeatureEntrySchema = _chunkYSKO6SPTjs.WorkerSelectedFeatureEntrySchema; exports.WorkerStartedEntrySchema = _chunkYSKO6SPTjs.WorkerStartedEntrySchema; exports.WorkerStateInfoSchema = _chunkYSKO6SPTjs.WorkerStateInfoSchema; exports.__resetTransportLoggerForTests = __resetTransportLoggerForTests; exports.buildUserMessageContentBlocks = _chunkYSKO6SPTjs.buildUserMessageContentBlocks; exports.configureDaemonCoreDeps = _chunkYSKO6SPTjs.configureDaemonCoreDeps; exports.connectAndAuthenticate = _chunkYSKO6SPTjs.connectAndAuthenticate; exports.connectToDaemon = _chunkYSKO6SPTjs.connectToDaemon; exports.connectWithRetry = _chunkYSKO6SPTjs.connectWithRetry; exports.convertNotificationToStreamMessage = _chunkYSKO6SPTjs.convertNotificationToStreamMessage; exports.createComputer = _chunkYSKO6SPTjs.createComputer; exports.createResponseSchema = _chunkYSKO6SPTjs.createResponseSchema; exports.createSdkMcpServer = createSdkMcpServer; exports.createSession = createSession; exports.createWebSocketDaemonClient = _chunkYSKO6SPTjs.createWebSocketDaemonClient; exports.defaultDaemonCoreDeps = _chunkYSKO6SPTjs.defaultDaemonCoreDeps; exports.deleteComputer = _chunkYSKO6SPTjs.deleteComputer; exports.filterMessagesForUI = _chunkYSKO6SPTjs.filterMessagesForUI; exports.getComputer = _chunkYSKO6SPTjs.getComputer; exports.getComputerByName = _chunkYSKO6SPTjs.getComputerByName; exports.getComputerMetrics = _chunkYSKO6SPTjs.getComputerMetrics; exports.getMachineTemplate = _chunkYSKO6SPTjs.getMachineTemplate; exports.getPermissionToolInputForDisplay = _chunkYSKO6SPTjs.getPermissionToolInputForDisplay; exports.getQueuedUserMessageDisplayGroup = _chunkYSKO6SPTjs.getQueuedUserMessageDisplayGroup; exports.getQueuedUserMessageReviewPriority = _chunkYSKO6SPTjs.getQueuedUserMessageReviewPriority; exports.getSubagentCallingMetadata = _chunkYSKO6SPTjs.getSubagentCallingMetadata; exports.getToolResultBlocks = _chunkYSKO6SPTjs.getToolResultBlocks; exports.getToolResultToolUseId = _chunkYSKO6SPTjs.getToolResultToolUseId; exports.hasDecoupledInteractionSettings = _chunkYSKO6SPTjs.hasDecoupledInteractionSettings; exports.hasSubagentSessionTag = _chunkYSKO6SPTjs.hasSubagentSessionTag; exports.inspectJsonRpcEnvelope = _chunkYSKO6SPTjs.inspectJsonRpcEnvelope; exports.isDaemonQueuedMessageKind = _chunkYSKO6SPTjs.isDaemonQueuedMessageKind; exports.isPendingToolResultMarker = _chunkYSKO6SPTjs.isPendingToolResultMarker; exports.isPersistedHookMessage = _chunkYSKO6SPTjs.isPersistedHookMessage; exports.isReviewableQueuedMessageKind = _chunkYSKO6SPTjs.isReviewableQueuedMessageKind; exports.isTransportLoggingEnabled = isTransportLoggingEnabled; exports.listComputers = _chunkYSKO6SPTjs.listComputers; exports.listMachineTemplates = _chunkYSKO6SPTjs.listMachineTemplates; exports.listModels = listModels; exports.listRemoteSessions = _chunkYSKO6SPTjs.listRemoteSessions; exports.listSessions = listSessions; exports.logTransportMessage = logTransportMessage; exports.machineTypeToMachineConnectionType = _chunkYSKO6SPTjs.machineTypeToMachineConnectionType; exports.noopLogger = noopLogger; exports.orderMessagesByParentChain = _chunkYSKO6SPTjs.orderMessagesByParentChain; exports.recordComputerConnectSli = _chunkYSKO6SPTjs.recordComputerConnectSli; exports.refreshComputer = _chunkYSKO6SPTjs.refreshComputer; exports.repairParentChainCorruption = _chunkYSKO6SPTjs.repairParentChainCorruption; exports.resolveExecCoreDeps = resolveExecCoreDeps; exports.restartComputer = _chunkYSKO6SPTjs.restartComputer; exports.resumeSession = resumeSession; exports.retryInstallDeps = _chunkYSKO6SPTjs.retryInstallDeps; exports.retryWithLogger = _chunkYSKO6SPTjs.retryWithLogger; exports.run = run; exports.spawnWithWindowsJobObjectRetry = spawnWithWindowsJobObjectRetry; exports.sumTokenUsage = _chunkYSKO6SPTjs.sumTokenUsage; exports.summarizeSessionToolUsage = _chunkYSKO6SPTjs.summarizeSessionToolUsage; exports.toError = _chunkYSKO6SPTjs.toError; exports.tool = tool; exports.updateComputer = _chunkYSKO6SPTjs.updateComputer;
|
|
5951
|
+
|
|
5952
|
+
|
|
5953
|
+
|
|
5954
|
+
|
|
5955
|
+
|
|
5956
|
+
|
|
5957
|
+
|
|
5958
|
+
|
|
5959
|
+
|
|
5960
|
+
|
|
5961
|
+
|
|
5962
|
+
|
|
5963
|
+
|
|
5964
|
+
|
|
5965
|
+
|
|
5966
|
+
|
|
5967
|
+
|
|
5968
|
+
|
|
5969
|
+
|
|
5970
|
+
|
|
5971
|
+
|
|
5972
|
+
|
|
5973
|
+
|
|
5974
|
+
|
|
5975
|
+
|
|
5976
|
+
|
|
5977
|
+
|
|
5978
|
+
|
|
5979
|
+
|
|
5980
|
+
|
|
5981
|
+
|
|
5982
|
+
|
|
5983
|
+
|
|
5984
|
+
|
|
5985
|
+
|
|
5986
|
+
|
|
5987
|
+
|
|
5988
|
+
|
|
5989
|
+
|
|
5990
|
+
|
|
5991
|
+
|
|
5992
|
+
|
|
5993
|
+
|
|
5994
|
+
|
|
5995
|
+
|
|
5996
|
+
|
|
5997
|
+
|
|
5998
|
+
|
|
5999
|
+
|
|
6000
|
+
exports.AbortError = _chunkKAAWCHO4js.AbortError; exports.AddMcpServerRequestParamsSchema = _chunkKAAWCHO4js.AddMcpServerRequestParamsSchema; exports.AddMcpServerRequestSchema = _chunkKAAWCHO4js.AddMcpServerRequestSchema; exports.AddMcpServerResponseSchema = _chunkKAAWCHO4js.AddMcpServerResponseSchema; exports.AddMcpServerResultSchema = _chunkKAAWCHO4js.AddMcpServerResultSchema; exports.AddUserMessageRequestParamsSchema = _chunkKAAWCHO4js.AddUserMessageRequestParamsSchema; exports.AddUserMessageRequestSchema = _chunkKAAWCHO4js.AddUserMessageRequestSchema; exports.AddUserMessageResponseSchema = _chunkKAAWCHO4js.AddUserMessageResponseSchema; exports.AddUserMessageResultSchema = _chunkKAAWCHO4js.AddUserMessageResultSchema; exports.AnswerSessionElicitationResponseSchema = _chunkKAAWCHO4js.AnswerSessionElicitationResponseSchema; exports.ApplyPatchToolConfirmationDetailsSchema = _chunkKAAWCHO4js.ApplyPatchToolConfirmationDetailsSchema; exports.AskUserCollectedAnswerSchema = _chunkKAAWCHO4js.AskUserCollectedAnswerSchema; exports.AskUserConfirmationDetailsSchema = _chunkKAAWCHO4js.AskUserConfirmationDetailsSchema; exports.AskUserQuestionSchema = _chunkKAAWCHO4js.AskUserQuestionSchema; exports.AskUserRequestParamsSchema = _chunkKAAWCHO4js.AskUserRequestParamsSchema; exports.AskUserRequestSchema = _chunkKAAWCHO4js.AskUserRequestSchema; exports.AskUserResponseSchema = _chunkKAAWCHO4js.AskUserResponseSchema; exports.AskUserResultSchema = _chunkKAAWCHO4js.AskUserResultSchema; exports.AssistantMessageRetractedNotificationSchema = _chunkKAAWCHO4js.AssistantMessageRetractedNotificationSchema; exports.AssistantTextCompleteNotificationSchema = _chunkKAAWCHO4js.AssistantTextCompleteNotificationSchema; exports.AssistantTextDeltaNotificationSchema = _chunkKAAWCHO4js.AssistantTextDeltaNotificationSchema; exports.AuthenticateMcpServerRequestParamsSchema = _chunkKAAWCHO4js.AuthenticateMcpServerRequestParamsSchema; exports.AuthenticateMcpServerRequestSchema = _chunkKAAWCHO4js.AuthenticateMcpServerRequestSchema; exports.AuthenticateMcpServerResponseSchema = _chunkKAAWCHO4js.AuthenticateMcpServerResponseSchema; exports.AuthenticateMcpServerResultSchema = _chunkKAAWCHO4js.AuthenticateMcpServerResultSchema; exports.AutonomyLevel = _chunkKAAWCHO4js.AutonomyLevel; exports.AvailableModelConfigSchema = _chunkKAAWCHO4js.AvailableModelConfigSchema; exports.Base64ImageSourceSchema = _chunkKAAWCHO4js.Base64ImageSourceSchema; exports.BaseNotificationSchema = _chunkKAAWCHO4js.BaseNotificationSchema; exports.BaseRequestSchema = _chunkKAAWCHO4js.BaseRequestSchema; exports.BaseResponseFailureSchema = _chunkKAAWCHO4js.BaseResponseFailureSchema; exports.BaseResponseSuccessSchema = _chunkKAAWCHO4js.BaseResponseSuccessSchema; exports.CLI_JSONRPC_CHILD_SPAWN_LATENCY_METRIC = CLI_JSONRPC_CHILD_SPAWN_LATENCY_METRIC; exports.COMPACTION_TIMEOUT = _chunkKAAWCHO4js.COMPACTION_TIMEOUT; exports.CancelMcpAuthRequestParamsSchema = _chunkKAAWCHO4js.CancelMcpAuthRequestParamsSchema; exports.CancelMcpAuthRequestSchema = _chunkKAAWCHO4js.CancelMcpAuthRequestSchema; exports.CancelMcpAuthResponseSchema = _chunkKAAWCHO4js.CancelMcpAuthResponseSchema; exports.CancelMcpAuthResultSchema = _chunkKAAWCHO4js.CancelMcpAuthResultSchema; exports.ChangeWorkingDirectoryRequestParamsSchema = _chunkKAAWCHO4js.ChangeWorkingDirectoryRequestParamsSchema; exports.ChangeWorkingDirectoryRequestSchema = _chunkKAAWCHO4js.ChangeWorkingDirectoryRequestSchema; exports.ChangeWorkingDirectoryResponseSchema = _chunkKAAWCHO4js.ChangeWorkingDirectoryResponseSchema; exports.ChangeWorkingDirectoryResultSchema = _chunkKAAWCHO4js.ChangeWorkingDirectoryResultSchema; exports.ClearMcpAuthRequestParamsSchema = _chunkKAAWCHO4js.ClearMcpAuthRequestParamsSchema; exports.ClearMcpAuthRequestSchema = _chunkKAAWCHO4js.ClearMcpAuthRequestSchema; exports.ClearMcpAuthResponseSchema = _chunkKAAWCHO4js.ClearMcpAuthResponseSchema; exports.ClearMcpAuthResultSchema = _chunkKAAWCHO4js.ClearMcpAuthResultSchema; exports.CliRequestOrNotificationSchema = _chunkKAAWCHO4js.CliRequestOrNotificationSchema; exports.ClientDestroyedError = _chunkKAAWCHO4js.ClientDestroyedError; exports.ClientRequestSchema = _chunkKAAWCHO4js.ClientRequestSchema; exports.ClientUiSurface = _chunkKAAWCHO4js.ClientUiSurface; exports.CloseSessionRequestParamsSchema = _chunkKAAWCHO4js.CloseSessionRequestParamsSchema; exports.CloseSessionRequestSchema = _chunkKAAWCHO4js.CloseSessionRequestSchema; exports.CloseSessionResponseSchema = _chunkKAAWCHO4js.CloseSessionResponseSchema; exports.CloseSessionResultSchema = _chunkKAAWCHO4js.CloseSessionResultSchema; exports.CompactSessionRequestParamsSchema = _chunkKAAWCHO4js.CompactSessionRequestParamsSchema; exports.CompactSessionRequestSchema = _chunkKAAWCHO4js.CompactSessionRequestSchema; exports.CompactSessionResponseSchema = _chunkKAAWCHO4js.CompactSessionResponseSchema; exports.CompactSessionResultSchema = _chunkKAAWCHO4js.CompactSessionResultSchema; exports.ComputeLimitExceededError = _chunkKAAWCHO4js.ComputeLimitExceededError; exports.ComputerConnectAttemptTrigger = _chunkKAAWCHO4js.ComputerConnectAttemptTrigger; exports.ComputerConnectStartType = _chunkKAAWCHO4js.ComputerConnectStartType; exports.ComputerListResponseSchema = _chunkKAAWCHO4js.ComputerListResponseSchema; exports.ComputerMetricSchema = _chunkKAAWCHO4js.ComputerMetricSchema; exports.ComputerMetricsResponseSchema = _chunkKAAWCHO4js.ComputerMetricsResponseSchema; exports.ComputerSchema = _chunkKAAWCHO4js.ComputerSchema; exports.ConcurrentStreamError = _chunkKAAWCHO4js.ConcurrentStreamError; exports.ConnectionClosedError = _chunkKAAWCHO4js.ConnectionClosedError; exports.ConnectionError = _chunkKAAWCHO4js.ConnectionError; exports.ConnectionFailureReason = _chunkKAAWCHO4js.ConnectionFailureReason; exports.ContentBlockSchema = _chunkKAAWCHO4js.ContentBlockSchema; exports.ContextApiError = _chunkKAAWCHO4js.ContextApiError; exports.ContextBreakdownCategorySchema = _chunkKAAWCHO4js.ContextBreakdownCategorySchema; exports.ContextBreakdownResultSchema = _chunkKAAWCHO4js.GetContextBreakdownResultSchema; exports.ContextStatsAccuracy = _chunkKAAWCHO4js.ContextStatsAccuracy; exports.ContextStatsSchema = _chunkKAAWCHO4js.ContextStatsSchema; exports.CreateMessageNotificationSchema = _chunkKAAWCHO4js.CreateMessageNotificationSchema; exports.CreateToolConfirmationDetailsSchema = _chunkKAAWCHO4js.CreateToolConfirmationDetailsSchema; exports.DEFAULT_LOCAL_DAEMON_WS_URL = _chunkKAAWCHO4js.DEFAULT_LOCAL_DAEMON_WS_URL; exports.DEFAULT_REQUEST_TIMEOUT = _chunkKAAWCHO4js.DEFAULT_REQUEST_TIMEOUT; exports.DaemonAuthenticationMode = _chunkKAAWCHO4js.DaemonAuthenticationMode; exports.DaemonClient = _chunkKAAWCHO4js.DaemonClient; exports.DaemonClientMetaError = _chunkKAAWCHO4js.MetaError; exports.DaemonDroidEvent = _chunkKAAWCHO4js.DaemonDroidEvent; exports.DaemonRequestPermissionSchema = _chunkKAAWCHO4js.DaemonRequestPermissionSchema; exports.DaemonSessionController = _chunkKAAWCHO4js.DaemonSessionController; exports.DecompSessionType = _chunkKAAWCHO4js.DecompSessionType; exports.DiscoveredIssueSchema = _chunkKAAWCHO4js.DiscoveredIssueSchema; exports.DismissalRecordSchema = _chunkKAAWCHO4js.DismissalRecordSchema; exports.DismissalType = _chunkKAAWCHO4js.DismissalType; exports.DocumentBlockSchema = _chunkKAAWCHO4js.DocumentBlockSchema; exports.DocumentSourceSchema = _chunkKAAWCHO4js.DocumentSourceSchema; exports.DroidClient = DroidClient; exports.DroidClientError = _chunkKAAWCHO4js.DroidClientError; exports.DroidClientEvent = DroidClientEvent; exports.DroidClientMethod = _chunkKAAWCHO4js.DroidClientMethod; exports.DroidConnectionEndedError = _chunkKAAWCHO4js.DroidConnectionEndedError; exports.DroidErrorType = _chunkKAAWCHO4js.DroidErrorType; exports.DroidEvent = _chunkKAAWCHO4js.DroidEvent; exports.DroidHookEventSchema = _chunkKAAWCHO4js.DroidHookEventSchema; exports.DroidHookExecutionResultSchema = _chunkKAAWCHO4js.DroidHookExecutionResultSchema; exports.DroidHookOutputSchema = _chunkKAAWCHO4js.DroidHookOutputSchema; exports.DroidHookSpecificOutputSchema = _chunkKAAWCHO4js.DroidHookSpecificOutputSchema; exports.DroidInteractionMode = _chunkKAAWCHO4js.DroidInteractionMode; exports.DroidMessageType = _chunkKAAWCHO4js.DroidMessageType; exports.DroidProcessManager = DroidProcessManager; exports.DroidProcessMode = DroidProcessMode; exports.DroidServerMethod = _chunkKAAWCHO4js.DroidServerMethod; exports.DroidSession = DroidSession; exports.DroidWorkingState = _chunkKAAWCHO4js.DroidWorkingState; exports.DroidWorkingStateChangedNotificationSchema = _chunkKAAWCHO4js.DroidWorkingStateChangedNotificationSchema; exports.EditToolConfirmationDetailsSchema = _chunkKAAWCHO4js.EditToolConfirmationDetailsSchema; exports.EmptyResultSchema = _chunkKAAWCHO4js.EmptyResultSchema; exports.EnvironmentListResponseSchema = _chunkKAAWCHO4js.EnvironmentListResponseSchema; exports.EnvironmentSchema = _chunkKAAWCHO4js.EnvironmentSchema; exports.ErrorDetailSchema = _chunkKAAWCHO4js.ErrorDetailSchema; exports.ErrorNotificationSchema = _chunkKAAWCHO4js.ErrorNotificationSchema; exports.ExecToolInfoSchema = _chunkKAAWCHO4js.ExecToolInfoSchema; exports.ExecToolInfoWithSchemasSchema = _chunkKAAWCHO4js.ExecToolInfoWithSchemasSchema; exports.ExecuteRewindRequestParamsSchema = _chunkKAAWCHO4js.ExecuteRewindRequestParamsSchema; exports.ExecuteRewindRequestSchema = _chunkKAAWCHO4js.ExecuteRewindRequestSchema; exports.ExecuteRewindResponseSchema = _chunkKAAWCHO4js.ExecuteRewindResponseSchema; exports.ExecuteRewindResultSchema = _chunkKAAWCHO4js.ExecuteRewindResultSchema; exports.ExecuteToolConfirmationDetailsSchema = _chunkKAAWCHO4js.ExecuteToolConfirmationDetailsSchema; exports.ExitSpecModeConfirmationDetailsSchema = _chunkKAAWCHO4js.ExitSpecModeConfirmationDetailsSchema; exports.FACTORY_CLIENT_HEADER = _chunkKAAWCHO4js.FACTORY_CLIENT_HEADER; exports.FACTORY_CLIENT_VERSION = _chunkKAAWCHO4js.FACTORY_CLIENT_VERSION; exports.FACTORY_PROTOCOL_VERSION = _chunkKAAWCHO4js.FACTORY_PROTOCOL_VERSION; exports.FactoryDaemonTransport = _chunkKAAWCHO4js.FactoryDaemonTransport; exports.FactoryDroidMessageRole = _chunkKAAWCHO4js.FactoryDroidMessageRole; exports.FactoryDroidMessageSchema = _chunkKAAWCHO4js.FactoryDroidMessageSchema; exports.FeatureStatus = _chunkKAAWCHO4js.FeatureStatus; exports.FeatureSuccessState = _chunkKAAWCHO4js.FeatureSuccessState; exports.FeatureSuccessStateSchema = _chunkKAAWCHO4js.FeatureSuccessStateSchema; exports.ForkSessionRequestParamsSchema = _chunkKAAWCHO4js.ForkSessionRequestParamsSchema; exports.ForkSessionRequestSchema = _chunkKAAWCHO4js.ForkSessionRequestSchema; exports.ForkSessionResponseSchema = _chunkKAAWCHO4js.ForkSessionResponseSchema; exports.ForkSessionResultSchema = _chunkKAAWCHO4js.ForkSessionResultSchema; exports.GetContextStatsRequestParamsSchema = _chunkKAAWCHO4js.GetContextStatsRequestParamsSchema; exports.GetContextStatsRequestSchema = _chunkKAAWCHO4js.GetContextStatsRequestSchema; exports.GetContextStatsResponseSchema = _chunkKAAWCHO4js.GetContextStatsResponseSchema; exports.GetContextStatsResultSchema = _chunkKAAWCHO4js.ContextStatsSchema; exports.GetRewindInfoRequestParamsSchema = _chunkKAAWCHO4js.GetRewindInfoRequestParamsSchema; exports.GetRewindInfoRequestSchema = _chunkKAAWCHO4js.GetRewindInfoRequestSchema; exports.GetRewindInfoResponseSchema = _chunkKAAWCHO4js.GetRewindInfoResponseSchema; exports.GetRewindInfoResultSchema = _chunkKAAWCHO4js.GetRewindInfoResultSchema; exports.GitRepoInfoSchema = _chunkKAAWCHO4js.GitRepoInfoSchema; exports.HandoffItemsDismissedEntrySchema = _chunkKAAWCHO4js.HandoffItemsDismissedEntrySchema; exports.HandoffSchema = _chunkKAAWCHO4js.HandoffSchema; exports.HookCommandSchema = _chunkKAAWCHO4js.HookCommandSchema; exports.HookExecutionCompletedNotificationSchema = _chunkKAAWCHO4js.HookExecutionCompletedNotificationSchema; exports.HookExecutionStartedNotificationSchema = _chunkKAAWCHO4js.HookExecutionStartedNotificationSchema; exports.HookResultSchema = _chunkKAAWCHO4js.HookResultSchema; exports.HttpHeaderSchema = _chunkKAAWCHO4js.HttpHeaderSchema; exports.HttpMcpConfigSchema = _chunkKAAWCHO4js.HttpMcpSchema; exports.IPC_DAEMON_URL = _chunkKAAWCHO4js.IPC_DAEMON_URL; exports.ImageBlockSchema = _chunkKAAWCHO4js.ImageBlockSchema; exports.InProcessDaemonClientTransport = _chunkKAAWCHO4js.InProcessDaemonClientTransport; exports.InitializeSessionRequestParamsSchema = _chunkKAAWCHO4js.InitializeSessionRequestParamsSchema; exports.InitializeSessionRequestSchema = _chunkKAAWCHO4js.InitializeSessionRequestSchema; exports.InitializeSessionResponseSchema = _chunkKAAWCHO4js.InitializeSessionResponseSchema; exports.InitializeSessionResultSchema = _chunkKAAWCHO4js.InitializeSessionResultSchema2; exports.InteractiveCheckSchema = _chunkKAAWCHO4js.InteractiveCheckSchema; exports.InterruptSessionRequestParamsSchema = _chunkKAAWCHO4js.InterruptSessionRequestParamsSchema; exports.InterruptSessionRequestSchema = _chunkKAAWCHO4js.InterruptSessionRequestSchema; exports.InterruptSessionResponseSchema = _chunkKAAWCHO4js.InterruptSessionResponseSchema; exports.InterruptSessionResultSchema = _chunkKAAWCHO4js.InterruptSessionResultSchema; exports.InvalidSessionCwdError = _chunkKAAWCHO4js.InvalidSessionCwdError; exports.IpcDaemonClientTransport = _chunkKAAWCHO4js.IpcDaemonClientTransport; exports.IssueSeverity = _chunkKAAWCHO4js.IssueSeverity; exports.JSONRPC_VERSION = _chunkKAAWCHO4js.JSONRPC_VERSION; exports.JsonArraySchema = _chunkKAAWCHO4js.JsonArraySchema; exports.JsonObjectSchema = _chunkKAAWCHO4js.JsonObjectSchema; exports.JsonRpcEnvelopeSchema = _chunkKAAWCHO4js.JsonRpcEnvelopeSchema; exports.JsonRpcErrorCode = _chunkKAAWCHO4js.JsonRpcErrorCode; exports.JsonRpcErrorSchema = _chunkKAAWCHO4js.JsonRpcErrorSchema; exports.JsonRpcMessageSchema = _chunkKAAWCHO4js.JsonRpcMessageSchema; exports.JsonRpcMessageType = _chunkKAAWCHO4js.JsonRpcMessageType; exports.JsonRpcNotificationSchema = _chunkKAAWCHO4js.JsonRpcNotificationSchema; exports.JsonRpcRequestError = _chunkKAAWCHO4js.JsonRpcRequestError; exports.JsonRpcRequestSchema = _chunkKAAWCHO4js.JsonRpcRequestSchema; exports.JsonRpcResponseFailureSchema = _chunkKAAWCHO4js.JsonRpcResponseFailureSchema; exports.JsonRpcResponseSchema = _chunkKAAWCHO4js.JsonRpcResponseSchema; exports.JsonRpcResponseSuccessSchema = _chunkKAAWCHO4js.JsonRpcResponseSuccessSchema; exports.JsonValueSchema = _chunkKAAWCHO4js.JsonValueSchema; exports.KillWorkerSessionRequestParamsSchema = _chunkKAAWCHO4js.KillWorkerSessionRequestParamsSchema; exports.KillWorkerSessionRequestSchema = _chunkKAAWCHO4js.KillWorkerSessionRequestSchema; exports.KillWorkerSessionResponseSchema = _chunkKAAWCHO4js.KillWorkerSessionResponseSchema; exports.KillWorkerSessionResultSchema = _chunkKAAWCHO4js.KillWorkerSessionResultSchema; exports.LEGACY_FACTORY_API_VERSION = _chunkKAAWCHO4js.LEGACY_FACTORY_API_VERSION; exports.LOCAL_MACHINE_ID = _chunkKAAWCHO4js.LOCAL_MACHINE_ID; exports.ListMcpRegistryRequestParamsSchema = _chunkKAAWCHO4js.ListMcpRegistryRequestParamsSchema; exports.ListMcpRegistryRequestSchema = _chunkKAAWCHO4js.ListMcpRegistryRequestSchema; exports.ListMcpRegistryResponseSchema = _chunkKAAWCHO4js.ListMcpRegistryResponseSchema; exports.ListMcpRegistryResultSchema = _chunkKAAWCHO4js.ListMcpRegistryResultSchema; exports.ListMcpServersRequestParamsSchema = _chunkKAAWCHO4js.ListMcpServersRequestParamsSchema; exports.ListMcpServersRequestSchema = _chunkKAAWCHO4js.ListMcpServersRequestSchema; exports.ListMcpServersResponseSchema = _chunkKAAWCHO4js.ListMcpServersResponseSchema; exports.ListMcpServersResultSchema = _chunkKAAWCHO4js.ListMcpServersResultSchema; exports.ListMcpToolsRequestParamsSchema = _chunkKAAWCHO4js.ListMcpToolsRequestParamsSchema; exports.ListMcpToolsRequestSchema = _chunkKAAWCHO4js.ListMcpToolsRequestSchema; exports.ListMcpToolsResponseSchema = _chunkKAAWCHO4js.ListMcpToolsResponseSchema; exports.ListMcpToolsResultSchema = _chunkKAAWCHO4js.ListMcpToolsResultSchema; exports.ListModelsOptionsSchema = _chunkKAAWCHO4js.ListModelsOptionsSchema; exports.ListModelsResultSchema = _chunkKAAWCHO4js.ListModelsResultSchema; exports.ListSessionElicitationsResponseSchema = _chunkKAAWCHO4js.ListSessionElicitationsResponseSchema; exports.ListSkillsRequestParamsSchema = _chunkKAAWCHO4js.ListSkillsRequestParamsSchema; exports.ListSkillsRequestSchema = _chunkKAAWCHO4js.ListSkillsRequestSchema; exports.ListSkillsResponseSchema = _chunkKAAWCHO4js.ListSkillsResponseSchema; exports.ListSkillsResultSchema = _chunkKAAWCHO4js.ListSkillsResultSchema; exports.ListToolsRequestParamsSchema = _chunkKAAWCHO4js.ListToolsRequestParamsSchema; exports.ListToolsRequestSchema = _chunkKAAWCHO4js.ListToolsRequestSchema; exports.ListToolsResponseSchema = _chunkKAAWCHO4js.ListToolsResponseSchema; exports.ListToolsResponseWithSchemasSchema = _chunkKAAWCHO4js.ListToolsResponseWithSchemasSchema; exports.ListToolsResultSchema = _chunkKAAWCHO4js.ListToolsResultSchema; exports.ListToolsResultWithSchemasSchema = _chunkKAAWCHO4js.ListToolsResultWithSchemasSchema; exports.LoadSessionRequestParamsSchema = _chunkKAAWCHO4js.LoadSessionRequestParamsSchema; exports.LoadSessionRequestSchema = _chunkKAAWCHO4js.LoadSessionRequestSchema; exports.LoadSessionResponseSchema = _chunkKAAWCHO4js.LoadSessionResponseSchema; exports.LoadSessionResultSchema = _chunkKAAWCHO4js.LoadSessionResultSchema; exports.MACHINE_TYPE_WEBSOCKET_OVERRIDES = _chunkKAAWCHO4js.MACHINE_TYPE_WEBSOCKET_OVERRIDES; exports.MANAGED_COMPUTER_MAX_RETRIES = _chunkKAAWCHO4js.MANAGED_COMPUTER_MAX_RETRIES; exports.MCP_AUTH_TIMEOUT = _chunkKAAWCHO4js.MCP_AUTH_TIMEOUT; exports.MachineTemplateBuildStatusSchema = _chunkKAAWCHO4js.MachineTemplateBuildStatusSchema; exports.MachineTemplateListResponseSchema = _chunkKAAWCHO4js.MachineTemplateListResponseSchema; exports.MachineTemplateSchema = _chunkKAAWCHO4js.MachineTemplateSchema; exports.MachineType = _chunkKAAWCHO4js.MachineType; exports.ManagedProcessImpl = ManagedProcessImpl; exports.McpAuthCompletedNotificationSchema = _chunkKAAWCHO4js.McpAuthCompletedNotificationSchema; exports.McpAuthOutcome = _chunkKAAWCHO4js.McpAuthOutcome; exports.McpAuthRequiredNotificationSchema = _chunkKAAWCHO4js.McpAuthRequiredNotificationSchema; exports.McpHttpServerConfigFieldsSchema = _chunkKAAWCHO4js.McpHttpServerConfigFieldsSchema; exports.McpRegistryServerSchema = _chunkKAAWCHO4js.McpRegistryServerSchema; exports.McpServerConfigSchema = _chunkKAAWCHO4js.McpServerConfigSchema; exports.McpServerStatus = _chunkKAAWCHO4js.McpServerStatus; exports.McpServerStatusInfoSchema = _chunkKAAWCHO4js.McpServerStatusInfoSchema; exports.McpServerType = _chunkKAAWCHO4js.McpServerType; exports.McpSseServerConfigFieldsSchema = _chunkKAAWCHO4js.McpSseServerConfigFieldsSchema; exports.McpStatus = _chunkKAAWCHO4js.McpStatus; exports.McpStatusChangedNotificationSchema = _chunkKAAWCHO4js.McpStatusChangedNotificationSchema; exports.McpStatusSummarySchema = _chunkKAAWCHO4js.McpStatusSummarySchema; exports.McpStdioServerConfigFieldsSchema = _chunkKAAWCHO4js.McpStdioServerConfigFieldsSchema; exports.McpToolConfirmationDetailsSchema = _chunkKAAWCHO4js.McpToolConfirmationDetailsSchema; exports.McpToolInfoSchema = _chunkKAAWCHO4js.McpToolInfoSchema; exports.McpToolInputSchemaSchema = _chunkKAAWCHO4js.McpToolInputSchemaSchema; exports.MessageVisibility = _chunkKAAWCHO4js.MessageVisibility; exports.Metric = _chunkKAAWCHO4js.Metric; exports.MilestoneValidationTriggeredEntrySchema = _chunkKAAWCHO4js.MilestoneValidationTriggeredEntrySchema; exports.MissionAcceptedEntrySchema = _chunkKAAWCHO4js.MissionAcceptedEntrySchema; exports.MissionFeatureSchema = _chunkKAAWCHO4js.MissionFeatureSchema; exports.MissionFeaturesChangedNotificationSchema = _chunkKAAWCHO4js.MissionFeaturesChangedNotificationSchema; exports.MissionHeartbeatNotificationSchema = _chunkKAAWCHO4js.MissionHeartbeatNotificationSchema; exports.MissionPausedEntrySchema = _chunkKAAWCHO4js.MissionPausedEntrySchema; exports.MissionProgressEntryNotificationSchema = _chunkKAAWCHO4js.MissionProgressEntryNotificationSchema; exports.MissionResumedEntrySchema = _chunkKAAWCHO4js.MissionResumedEntrySchema; exports.MissionRunStartedEntrySchema = _chunkKAAWCHO4js.MissionRunStartedEntrySchema; exports.MissionSnapshotSchema = _chunkKAAWCHO4js.MissionStateSchema; exports.MissionState = _chunkKAAWCHO4js.MissionState; exports.MissionStateChangedNotificationSchema = _chunkKAAWCHO4js.MissionStateChangedNotificationSchema; exports.MissionWorkerCompletedNotificationSchema = _chunkKAAWCHO4js.MissionWorkerCompletedNotificationSchema; exports.MissionWorkerStartedNotificationSchema = _chunkKAAWCHO4js.MissionWorkerStartedNotificationSchema; exports.ModelInfoSchema = _chunkKAAWCHO4js.ModelInfoSchema; exports.ModelMetadataSchema = _chunkKAAWCHO4js.ModelMetadataSchema; exports.ModelProvider = _chunkKAAWCHO4js.ModelProvider; exports.MultiMissionStateManager = _chunkKAAWCHO4js.MultiMissionStateManager; exports.MultiSessionStateManager = _chunkKAAWCHO4js.MultiSessionStateManager; exports.OtelTracing = _chunkKAAWCHO4js.OtelTracing; exports.OutputFormatSchema = _chunkKAAWCHO4js.OutputFormatSchema; exports.OutputFormatType = _chunkKAAWCHO4js.OutputFormatType; exports.PermissionResolvedNotificationSchema = _chunkKAAWCHO4js.PermissionResolvedNotificationSchema; exports.PickOptionsRequestParamsSchema = _chunkKAAWCHO4js.PickOptionsRequestParamsSchema; exports.PickOptionsRequestSchema = _chunkKAAWCHO4js.PickOptionsRequestSchema; exports.PickOptionsResponseSchema = _chunkKAAWCHO4js.PickOptionsResponseSchema; exports.PickOptionsResultSchema = _chunkKAAWCHO4js.PickOptionsResultSchema; exports.PickOptionsRowSchema = _chunkKAAWCHO4js.PickOptionsRowSchema; exports.PickOptionsUnavailableError = _chunkKAAWCHO4js.PickOptionsUnavailableError; exports.ProcessExitError = _chunkKAAWCHO4js.ProcessExitError; exports.ProcessTransport = ProcessTransport; exports.ProgressLogEntrySchema = _chunkKAAWCHO4js.ProgressLogEntrySchema; exports.ProgressLogEntryType = _chunkKAAWCHO4js.ProgressLogEntryType; exports.ProposeMissionConfirmationDetailsSchema = _chunkKAAWCHO4js.ProposeMissionConfirmationDetailsSchema; exports.ProtocolError = _chunkKAAWCHO4js.ProtocolError; exports.QueuedUserMessageDisplayGroup = _chunkKAAWCHO4js.QueuedUserMessageDisplayGroup; exports.QueuedUserMessageKind = _chunkKAAWCHO4js.QueuedUserMessageKind; exports.REWIND_TIMEOUT = _chunkKAAWCHO4js.REWIND_TIMEOUT; exports.ReasoningEffort = _chunkKAAWCHO4js.ReasoningEffort; exports.RedactedThinkingBlockSchema = _chunkKAAWCHO4js.RedactedThinkingBlockSchema; exports.RefreshComputerResponseSchema = _chunkKAAWCHO4js.RefreshComputerResponseSchema; exports.RelayConnectionError = _chunkKAAWCHO4js.RelayConnectionError; exports.RemoteSessionListResponseSchema = _chunkKAAWCHO4js.RemoteSessionListResponseSchema; exports.RemoteSessionSchema = _chunkKAAWCHO4js.RemoteSessionSchema; exports.RemoveMcpServerRequestParamsSchema = _chunkKAAWCHO4js.RemoveMcpServerRequestParamsSchema; exports.RemoveMcpServerRequestSchema = _chunkKAAWCHO4js.RemoveMcpServerRequestSchema; exports.RemoveMcpServerResponseSchema = _chunkKAAWCHO4js.RemoveMcpServerResponseSchema; exports.RemoveMcpServerResultSchema = _chunkKAAWCHO4js.RemoveMcpServerResultSchema; exports.RenameSessionRequestParamsSchema = _chunkKAAWCHO4js.RenameSessionRequestParamsSchema; exports.RenameSessionRequestSchema = _chunkKAAWCHO4js.RenameSessionRequestSchema; exports.RenameSessionResponseSchema = _chunkKAAWCHO4js.RenameSessionResponseSchema; exports.RenameSessionResultSchema = _chunkKAAWCHO4js.RenameSessionResultSchema; exports.RequestCancelledError = _chunkKAAWCHO4js.RequestCancelledError; exports.RequestPermissionRequestParamsSchema = _chunkKAAWCHO4js.RequestPermissionRequestParamsSchema; exports.RequestPermissionRequestSchema = _chunkKAAWCHO4js.RequestPermissionRequestSchema; exports.RequestPermissionResponseSchema = _chunkKAAWCHO4js.RequestPermissionResponseSchema; exports.RequestPermissionResultSchema = _chunkKAAWCHO4js.RequestPermissionResultSchema; exports.RewindEvictedFileSchema = _chunkKAAWCHO4js.RewindEvictedFileSchema; exports.RewindFileCreationSchema = _chunkKAAWCHO4js.RewindFileCreationSchema; exports.RewindFileSnapshotSchema = _chunkKAAWCHO4js.RewindFileSnapshotSchema; exports.SDK_TAG = _chunkKAAWCHO4js.SDK_TAG; exports.SDK_VERSION = _chunkKAAWCHO4js.SDK_VERSION; exports.SESSION_INIT_TIMEOUT = _chunkKAAWCHO4js.SESSION_INIT_TIMEOUT; exports.SLACK_DELEGATION_MAX_RETRIES = _chunkKAAWCHO4js.SLACK_DELEGATION_MAX_RETRIES; exports.SdkMcpServer = SdkMcpServer; exports.ServerRequestHandlerType = _chunkKAAWCHO4js.ServerRequestHandlerType; exports.SessionArtifactAction = _chunkKAAWCHO4js.SessionArtifactAction; exports.SessionArtifactKind = _chunkKAAWCHO4js.SessionArtifactKind; exports.SessionArtifactProvider = _chunkKAAWCHO4js.SessionArtifactProvider; exports.SessionArtifactSchema = _chunkKAAWCHO4js.SessionArtifactSchema; exports.SessionArtifactSource = _chunkKAAWCHO4js.SessionArtifactSource; exports.SessionArtifactsSchema = _chunkKAAWCHO4js.SessionArtifactsSchema; exports.SessionElicitationSchema = _chunkKAAWCHO4js.SessionElicitationSchema; exports.SessionError = _chunkKAAWCHO4js.SessionError; exports.SessionMetadataSchema = _chunkKAAWCHO4js.SessionMetadataSchema; exports.SessionNotFoundError = _chunkKAAWCHO4js.SessionNotFoundError; exports.SessionNotificationParamsSchema = _chunkKAAWCHO4js.SessionNotificationParamsSchema; exports.SessionNotificationPayloadSchema = _chunkKAAWCHO4js.SessionNotificationPayloadSchema; exports.SessionNotificationSchema = _chunkKAAWCHO4js.SessionNotificationSchema; exports.SessionNotificationSchemaList = _chunkKAAWCHO4js.SessionNotificationSchemaList; exports.SessionNotificationType = _chunkKAAWCHO4js.SessionNotificationType; exports.SessionPlatform = _chunkKAAWCHO4js.SessionPlatform; exports.SessionReplacedError = _chunkKAAWCHO4js.SessionReplacedError; exports.SessionReplacementError = _chunkKAAWCHO4js.SessionReplacementError; exports.SessionSettingsFileSchema = _chunkKAAWCHO4js.SessionSettingsFileSchema; exports.SessionSettingsSchema = _chunkKAAWCHO4js.SessionSettingsSchema; exports.SessionSourceSchema = _chunkKAAWCHO4js.SessionSourceSchema; exports.SessionStartEventSchema = _chunkKAAWCHO4js.SessionStartEventSchema; exports.SessionTagSchema = _chunkKAAWCHO4js.SessionTagSchema; exports.SessionTitleUpdatedNotificationSchema = _chunkKAAWCHO4js.SessionTitleUpdatedNotificationSchema; exports.SessionTokenUsageChangedNotificationSchema = _chunkKAAWCHO4js.SessionTokenUsageChangedNotificationSchema; exports.SetSkillDisabledRequestParamsSchema = _chunkKAAWCHO4js.SetSkillDisabledRequestParamsSchema; exports.SetSkillDisabledRequestSchema = _chunkKAAWCHO4js.SetSkillDisabledRequestSchema; exports.SetSkillDisabledResponseSchema = _chunkKAAWCHO4js.SetSkillDisabledResponseSchema; exports.SetSkillDisabledResultSchema = _chunkKAAWCHO4js.SetSkillDisabledResultSchema; exports.SettingsLevel = _chunkKAAWCHO4js.SettingsLevel; exports.SettingsUpdatedNotificationSchema = _chunkKAAWCHO4js.SettingsUpdatedNotificationSchema; exports.SettingsUpdatedPayloadSchema = _chunkKAAWCHO4js.SettingsUpdatedPayloadSchema; exports.SkillDeviationSchema = _chunkKAAWCHO4js.SkillDeviationSchema; exports.SkillFeedbackSchema = _chunkKAAWCHO4js.SkillFeedbackSchema; exports.SkillInfoSchema = _chunkKAAWCHO4js.SkillInfoSchema; exports.SkillLocation = _chunkKAAWCHO4js.SkillLocation; exports.SkillResourceSchema = _chunkKAAWCHO4js.SkillResourceSchema; exports.SpanAttribute = _chunkKAAWCHO4js.SpanAttribute; exports.SpanEvent = _chunkKAAWCHO4js.SpanEvent; exports.SpanName = _chunkKAAWCHO4js.SpanName; exports.SseMcpConfigSchema = _chunkKAAWCHO4js.SseMcpSchema; exports.StartMissionRunConfirmationDetailsSchema = _chunkKAAWCHO4js.StartMissionRunConfirmationDetailsSchema; exports.StdioMcpConfigSchema = _chunkKAAWCHO4js.StdioMcpSchema; exports.StreamStateTracker = _chunkKAAWCHO4js.StreamStateTracker; exports.StructuredOutputErrorSchema = _chunkKAAWCHO4js.StructuredOutputErrorSchema; exports.StructuredOutputNotificationSchema = _chunkKAAWCHO4js.StructuredOutputNotificationSchema; exports.SubmitBugReportRequestParamsSchema = _chunkKAAWCHO4js.SubmitBugReportRequestParamsSchema; exports.SubmitBugReportRequestSchema = _chunkKAAWCHO4js.SubmitBugReportRequestSchema; exports.SubmitBugReportResponseSchema = _chunkKAAWCHO4js.SubmitBugReportResponseSchema; exports.SubmitBugReportResultSchema = _chunkKAAWCHO4js.SubmitBugReportResultSchema; exports.SubmitMcpAuthCodeRequestParamsSchema = _chunkKAAWCHO4js.SubmitMcpAuthCodeRequestParamsSchema; exports.SubmitMcpAuthCodeRequestSchema = _chunkKAAWCHO4js.SubmitMcpAuthCodeRequestSchema; exports.SubmitMcpAuthCodeResponseSchema = _chunkKAAWCHO4js.SubmitMcpAuthCodeResponseSchema; exports.SubmitMcpAuthCodeResultSchema = _chunkKAAWCHO4js.SubmitMcpAuthCodeResultSchema; exports.SuccessResultSchema = _chunkKAAWCHO4js.SuccessResultSchema; exports.TestCaseSchema = _chunkKAAWCHO4js.TestCaseSchema; exports.TestFileSchema = _chunkKAAWCHO4js.TestFileSchema; exports.TestsSchema = _chunkKAAWCHO4js.TestsSchema; exports.TextBlockSchema = _chunkKAAWCHO4js.TextBlockSchema; exports.ThinkingBlockSchema = _chunkKAAWCHO4js.ThinkingBlockSchema; exports.ThinkingTextCompleteNotificationSchema = _chunkKAAWCHO4js.ThinkingTextCompleteNotificationSchema; exports.ThinkingTextDeltaNotificationSchema = _chunkKAAWCHO4js.ThinkingTextDeltaNotificationSchema; exports.TimeoutError = _chunkKAAWCHO4js.TimeoutError; exports.ToggleMcpServerRequestParamsSchema = _chunkKAAWCHO4js.ToggleMcpServerRequestParamsSchema; exports.ToggleMcpServerRequestSchema = _chunkKAAWCHO4js.ToggleMcpServerRequestSchema; exports.ToggleMcpServerResponseSchema = _chunkKAAWCHO4js.ToggleMcpServerResponseSchema; exports.ToggleMcpServerResultSchema = _chunkKAAWCHO4js.ToggleMcpServerResultSchema; exports.ToggleMcpToolRequestParamsSchema = _chunkKAAWCHO4js.ToggleMcpToolRequestParamsSchema; exports.ToggleMcpToolRequestSchema = _chunkKAAWCHO4js.ToggleMcpToolRequestSchema; exports.ToggleMcpToolResponseSchema = _chunkKAAWCHO4js.ToggleMcpToolResponseSchema; exports.ToggleMcpToolResultSchema = _chunkKAAWCHO4js.ToggleMcpToolResultSchema; exports.TokenUsageSchema = _chunkKAAWCHO4js.TokenUsageSchema; exports.ToolCallNotificationSchema = _chunkKAAWCHO4js.ToolCallNotificationSchema; exports.ToolConfirmationDetailsSchema = _chunkKAAWCHO4js.ToolConfirmationDetailsSchema; exports.ToolConfirmationInfoSchema = _chunkKAAWCHO4js.ToolConfirmationInfoSchema; exports.ToolConfirmationListItemSchema = _chunkKAAWCHO4js.ToolConfirmationListItemSchema; exports.ToolConfirmationOutcome = _chunkKAAWCHO4js.ToolConfirmationOutcome; exports.ToolConfirmationType = _chunkKAAWCHO4js.ToolConfirmationType; exports.ToolJsonSchemaSchema = _chunkKAAWCHO4js.ToolJsonSchemaSchema; exports.ToolProgressUpdateNotificationSchema = _chunkKAAWCHO4js.ToolProgressUpdateNotificationSchema; exports.ToolProgressUpdateSchema = _chunkKAAWCHO4js.ToolProgressUpdateSchema; exports.ToolResultBlockSchema = _chunkKAAWCHO4js.ToolResultSchema; exports.ToolResultNotificationSchema = _chunkKAAWCHO4js.ToolResultNotificationSchema; exports.ToolResultSchemaDescriptorSchema = _chunkKAAWCHO4js.ToolResultSchemaDescriptorSchema; exports.ToolSchemasSchema = _chunkKAAWCHO4js.ToolSchemasSchema; exports.ToolSelectionOverridesSchema = _chunkKAAWCHO4js.ToolSelectionOverridesSchema; exports.ToolSourceSchema = _chunkKAAWCHO4js.ToolSourceSchema; exports.ToolUseBlockSchema = _chunkKAAWCHO4js.ToolUseSchema; exports.ToolUseSchema = _chunkKAAWCHO4js.ToolUseSchema2; exports.TraceContextMetaSchema = _chunkKAAWCHO4js.TraceContextMetaSchema; exports.TransportDirection = TransportDirection; exports.TunnelConnection = _chunkKAAWCHO4js.TunnelConnection; exports.UpdateSessionSettingsRequestParamsSchema = _chunkKAAWCHO4js.UpdateSessionSettingsRequestParamsSchema; exports.UpdateSessionSettingsRequestSchema = _chunkKAAWCHO4js.UpdateSessionSettingsRequestSchema; exports.UpdateSessionSettingsResponseSchema = _chunkKAAWCHO4js.UpdateSessionSettingsResponseSchema; exports.UpdateSessionSettingsResultSchema = _chunkKAAWCHO4js.UpdateSessionSettingsResultSchema; exports.VerificationCommandSchema = _chunkKAAWCHO4js.VerificationCommandSchema; exports.VerificationSchema = _chunkKAAWCHO4js.VerificationSchema; exports.WINDOWS_JOB_OBJECT_ERROR_MARKER = WINDOWS_JOB_OBJECT_ERROR_MARKER; exports.WebSocketConnectionError = _chunkKAAWCHO4js.WebSocketConnectionError; exports.WebSocketDaemonTransport = _chunkKAAWCHO4js.WebSocketDaemonTransport; exports.WorkerCompletedEntrySchema = _chunkKAAWCHO4js.WorkerCompletedEntrySchema; exports.WorkerFailedEntrySchema = _chunkKAAWCHO4js.WorkerFailedEntrySchema; exports.WorkerPausedEntrySchema = _chunkKAAWCHO4js.WorkerPausedEntrySchema; exports.WorkerSelectedFeatureEntrySchema = _chunkKAAWCHO4js.WorkerSelectedFeatureEntrySchema; exports.WorkerStartedEntrySchema = _chunkKAAWCHO4js.WorkerStartedEntrySchema; exports.WorkerStateInfoSchema = _chunkKAAWCHO4js.WorkerStateInfoSchema; exports.WorkstreamMachineTargetKind = _chunkKAAWCHO4js.MissionMachineTargetKind; exports.__resetTransportLoggerForTests = __resetTransportLoggerForTests; exports.answerRemoteSessionElicitation = _chunkKAAWCHO4js.answerRemoteSessionElicitation; exports.appendContextSession = _chunkKAAWCHO4js.appendContextSession; exports.buildUserMessageContentBlocks = _chunkKAAWCHO4js.buildUserMessageContentBlocks; exports.configureDaemonCoreDeps = _chunkKAAWCHO4js.configureDaemonCoreDeps; exports.connectAndAuthenticate = _chunkKAAWCHO4js.connectAndAuthenticate; exports.connectToDaemon = _chunkKAAWCHO4js.connectToDaemon; exports.connectWithRetry = _chunkKAAWCHO4js.connectWithRetry; exports.convertNotificationToStreamMessage = _chunkKAAWCHO4js.convertNotificationToStreamMessage; exports.createComputer = _chunkKAAWCHO4js.createComputer; exports.createContextDocument = _chunkKAAWCHO4js.createContextDocument; exports.createContextFile = _chunkKAAWCHO4js.createContextFile; exports.createContextSpace = _chunkKAAWCHO4js.createContextSpace; exports.createResponseSchema = _chunkKAAWCHO4js.createResponseSchema; exports.createSdkMcpServer = createSdkMcpServer; exports.createSession = createSession; exports.createWebSocketDaemonClient = _chunkKAAWCHO4js.createWebSocketDaemonClient; exports.defaultDaemonCoreDeps = _chunkKAAWCHO4js.defaultDaemonCoreDeps; exports.deleteComputer = _chunkKAAWCHO4js.deleteComputer; exports.deleteContextDocument = _chunkKAAWCHO4js.deleteContextDocument; exports.deleteContextFile = _chunkKAAWCHO4js.deleteContextFile; exports.filterMessagesForUI = _chunkKAAWCHO4js.filterMessagesForUI; exports.getComputer = _chunkKAAWCHO4js.getComputer; exports.getComputerByName = _chunkKAAWCHO4js.getComputerByName; exports.getComputerMetrics = _chunkKAAWCHO4js.getComputerMetrics; exports.getContextDocument = _chunkKAAWCHO4js.getContextDocument; exports.getContextDocumentByPath = _chunkKAAWCHO4js.getContextDocumentByPath; exports.getContextSession = _chunkKAAWCHO4js.getContextSession; exports.getContextSpace = _chunkKAAWCHO4js.getContextSpace; exports.getMachineTemplate = _chunkKAAWCHO4js.getMachineTemplate; exports.getPermissionToolInputForDisplay = _chunkKAAWCHO4js.getPermissionToolInputForDisplay; exports.getQueuedUserMessageDisplayGroup = _chunkKAAWCHO4js.getQueuedUserMessageDisplayGroup; exports.getQueuedUserMessageReviewPriority = _chunkKAAWCHO4js.getQueuedUserMessageReviewPriority; exports.getSubagentCallingMetadata = _chunkKAAWCHO4js.getSubagentCallingMetadata; exports.getToolResultBlocks = _chunkKAAWCHO4js.getToolResultBlocks; exports.getToolResultToolUseId = _chunkKAAWCHO4js.getToolResultToolUseId; exports.hasDecoupledInteractionSettings = _chunkKAAWCHO4js.hasDecoupledInteractionSettings; exports.hasSubagentSessionTag = _chunkKAAWCHO4js.hasSubagentSessionTag; exports.inspectJsonRpcEnvelope = _chunkKAAWCHO4js.inspectJsonRpcEnvelope; exports.isDaemonQueuedMessageKind = _chunkKAAWCHO4js.isDaemonQueuedMessageKind; exports.isDroidConnectionEnded = isDroidConnectionEnded; exports.isPendingToolResultMarker = _chunkKAAWCHO4js.isPendingToolResultMarker; exports.isPersistedHookMessage = _chunkKAAWCHO4js.isPersistedHookMessage; exports.isReviewableQueuedMessageKind = _chunkKAAWCHO4js.isReviewableQueuedMessageKind; exports.isTransportLoggingEnabled = isTransportLoggingEnabled; exports.listComputers = _chunkKAAWCHO4js.listComputers; exports.listContextDocuments = _chunkKAAWCHO4js.listContextDocuments; exports.listContextSessions = _chunkKAAWCHO4js.listContextSessions; exports.listContextSpaces = _chunkKAAWCHO4js.listContextSpaces; exports.listEnvironments = _chunkKAAWCHO4js.listEnvironments; exports.listMachineTemplates = _chunkKAAWCHO4js.listMachineTemplates; exports.listModels = listModels; exports.listRemoteSessionElicitations = _chunkKAAWCHO4js.listRemoteSessionElicitations; exports.listRemoteSessions = _chunkKAAWCHO4js.listRemoteSessions; exports.listSessions = listSessions; exports.logTransportMessage = logTransportMessage; exports.machineTypeToMachineConnectionType = _chunkKAAWCHO4js.machineTypeToMachineConnectionType; exports.noopLogger = noopLogger; exports.readContextFilePart = _chunkKAAWCHO4js.readContextFilePart; exports.readContextSessionRecords = _chunkKAAWCHO4js.readContextSessionRecords; exports.recordComputerConnectSli = _chunkKAAWCHO4js.recordComputerConnectSli; exports.refreshComputer = _chunkKAAWCHO4js.refreshComputer; exports.registerContextSession = _chunkKAAWCHO4js.registerContextSession; exports.resolveExecCoreDeps = resolveExecCoreDeps; exports.restartComputer = _chunkKAAWCHO4js.restartComputer; exports.resumeSession = resumeSession; exports.retryInstallDeps = _chunkKAAWCHO4js.retryInstallDeps; exports.retryWithLogger = _chunkKAAWCHO4js.retryWithLogger; exports.run = run; exports.spawnWithWindowsJobObjectRetry = spawnWithWindowsJobObjectRetry; exports.sumTokenUsage = _chunkKAAWCHO4js.sumTokenUsage; exports.summarizeSessionToolUsage = _chunkKAAWCHO4js.summarizeSessionToolUsage; exports.toError = _chunkKAAWCHO4js.toError; exports.tool = tool; exports.updateComputer = _chunkKAAWCHO4js.updateComputer; exports.updateContextDocument = _chunkKAAWCHO4js.updateContextDocument; exports.uploadContextFilePart = _chunkKAAWCHO4js.uploadContextFilePart; exports.withJsonRpcCodec = withJsonRpcCodec;
|
|
4744
6001
|
//# sourceMappingURL=node.js.map
|