@openacp/cli 2026.328.2 → 2026.330.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{adapter-HGJENQCN.js → adapter-4U6MC5ZS.js} +4 -4
- package/dist/api-server-5VNYFWJE.js +7 -0
- package/dist/{api-server-WFB5K6FP.js → api-server-JLBDKCU4.js} +2 -2
- package/dist/{chunk-I53NEV3S.js → chunk-5WGVYX3C.js} +13 -3
- package/dist/chunk-5WGVYX3C.js.map +1 -0
- package/dist/{chunk-RXMWJHWH.js → chunk-5ZNBNIK3.js} +723 -217
- package/dist/chunk-5ZNBNIK3.js.map +1 -0
- package/dist/{chunk-6VR4GWOO.js → chunk-7RKPIM3E.js} +247 -70
- package/dist/chunk-7RKPIM3E.js.map +1 -0
- package/dist/{chunk-IXMIC4GQ.js → chunk-BTJHGSLM.js} +2 -2
- package/dist/{chunk-5TCXYDLR.js → chunk-CFUJGWOP.js} +2 -2
- package/dist/{chunk-43JVXFYP.js → chunk-GEOXPGCO.js} +2 -2
- package/dist/{chunk-JUFN4XMB.js → chunk-KDU3ZEWT.js} +2 -2
- package/dist/{chunk-QWP76EBW.js → chunk-MITTQMGZ.js} +16 -9
- package/dist/chunk-MITTQMGZ.js.map +1 -0
- package/dist/{chunk-QBEQJFGL.js → chunk-MPGEHTGE.js} +3 -3
- package/dist/{chunk-4B6PCWQP.js → chunk-PA6MNBG4.js} +6 -2
- package/dist/chunk-PA6MNBG4.js.map +1 -0
- package/dist/{chunk-VD3QSMVY.js → chunk-QWVHCTCA.js} +2 -2
- package/dist/{chunk-NT6FYV27.js → chunk-TMVTSWVH.js} +2 -2
- package/dist/chunk-UWH7KIAA.js +701 -0
- package/dist/chunk-UWH7KIAA.js.map +1 -0
- package/dist/{chunk-JOMDPFQ2.js → chunk-W4LK6WJP.js} +29 -4
- package/dist/chunk-W4LK6WJP.js.map +1 -0
- package/dist/{chunk-E2SLHZAC.js → chunk-YIGBJFJL.js} +6 -6
- package/dist/cli.js +63 -68
- package/dist/cli.js.map +1 -1
- package/dist/config-KN6NKKPF.js +20 -0
- package/dist/{config-editor-OU6PUY66.js → config-editor-76RVZS4B.js} +3 -3
- package/dist/context-NXXW62NJ.js +9 -0
- package/dist/{core-plugins-R2EVZAJV.js → core-plugins-OCHKGCIZ.js} +9 -9
- package/dist/{daemon-DTA6KYYY.js → daemon-XFEMMJSZ.js} +3 -3
- package/dist/doctor-AV6AUO22.js +9 -0
- package/dist/index.d.ts +104 -42
- package/dist/index.js +8 -8
- package/dist/{main-RRSX5SRL.js → main-L2M4NTJY.js} +38 -30
- package/dist/main-L2M4NTJY.js.map +1 -0
- package/dist/{plugin-installer-5XHORMLS.js → plugin-installer-VSTYZSXC.js} +2 -2
- package/dist/{setup-OI6A3OXW.js → setup-E6BNEYCS.js} +4 -5
- package/dist/setup-E6BNEYCS.js.map +1 -0
- package/dist/speech-SG62JYIF.js +9 -0
- package/dist/telegram-EAVRDNFU.js +7 -0
- package/dist/tunnel-HWJ27WDH.js +7 -0
- package/dist/{tunnel-service-I2NFUX3V.js → tunnel-service-ZMO4THKE.js} +88 -8
- package/dist/tunnel-service-ZMO4THKE.js.map +1 -0
- package/package.json +1 -1
- package/dist/api-server-DSUW637I.js +0 -7
- package/dist/chunk-4B6PCWQP.js.map +0 -1
- package/dist/chunk-6VR4GWOO.js.map +0 -1
- package/dist/chunk-I53NEV3S.js.map +0 -1
- package/dist/chunk-JOMDPFQ2.js.map +0 -1
- package/dist/chunk-QWP76EBW.js.map +0 -1
- package/dist/chunk-RXMWJHWH.js.map +0 -1
- package/dist/chunk-ZHGPZBS4.js +0 -49
- package/dist/chunk-ZHGPZBS4.js.map +0 -1
- package/dist/config-UCAFCS5W.js +0 -14
- package/dist/context-7MPU7RL5.js +0 -9
- package/dist/doctor-D723IB2I.js +0 -9
- package/dist/main-RRSX5SRL.js.map +0 -1
- package/dist/setup-OI6A3OXW.js.map +0 -1
- package/dist/speech-GB7PHVQZ.js +0 -9
- package/dist/telegram-UVIAXADE.js +0 -7
- package/dist/tunnel-4WNFC7GO.js +0 -7
- package/dist/tunnel-service-I2NFUX3V.js.map +0 -1
- /package/dist/{adapter-HGJENQCN.js.map → adapter-4U6MC5ZS.js.map} +0 -0
- /package/dist/{api-server-DSUW637I.js.map → api-server-5VNYFWJE.js.map} +0 -0
- /package/dist/{api-server-WFB5K6FP.js.map → api-server-JLBDKCU4.js.map} +0 -0
- /package/dist/{chunk-IXMIC4GQ.js.map → chunk-BTJHGSLM.js.map} +0 -0
- /package/dist/{chunk-5TCXYDLR.js.map → chunk-CFUJGWOP.js.map} +0 -0
- /package/dist/{chunk-43JVXFYP.js.map → chunk-GEOXPGCO.js.map} +0 -0
- /package/dist/{chunk-JUFN4XMB.js.map → chunk-KDU3ZEWT.js.map} +0 -0
- /package/dist/{chunk-QBEQJFGL.js.map → chunk-MPGEHTGE.js.map} +0 -0
- /package/dist/{chunk-VD3QSMVY.js.map → chunk-QWVHCTCA.js.map} +0 -0
- /package/dist/{chunk-NT6FYV27.js.map → chunk-TMVTSWVH.js.map} +0 -0
- /package/dist/{chunk-E2SLHZAC.js.map → chunk-YIGBJFJL.js.map} +0 -0
- /package/dist/{config-UCAFCS5W.js.map → config-KN6NKKPF.js.map} +0 -0
- /package/dist/{config-editor-OU6PUY66.js.map → config-editor-76RVZS4B.js.map} +0 -0
- /package/dist/{context-7MPU7RL5.js.map → context-NXXW62NJ.js.map} +0 -0
- /package/dist/{core-plugins-R2EVZAJV.js.map → core-plugins-OCHKGCIZ.js.map} +0 -0
- /package/dist/{daemon-DTA6KYYY.js.map → daemon-XFEMMJSZ.js.map} +0 -0
- /package/dist/{doctor-D723IB2I.js.map → doctor-AV6AUO22.js.map} +0 -0
- /package/dist/{plugin-installer-5XHORMLS.js.map → plugin-installer-VSTYZSXC.js.map} +0 -0
- /package/dist/{speech-GB7PHVQZ.js.map → speech-SG62JYIF.js.map} +0 -0
- /package/dist/{telegram-UVIAXADE.js.map → telegram-EAVRDNFU.js.map} +0 -0
- /package/dist/{tunnel-4WNFC7GO.js.map → tunnel-HWJ27WDH.js.map} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ConfigManager,
|
|
3
|
+
ConfigSchema,
|
|
4
|
+
OPENACP_DIR,
|
|
5
|
+
PLUGINS_DATA_DIR,
|
|
6
|
+
PLUGINS_DIR,
|
|
7
|
+
REGISTRY_PATH,
|
|
8
|
+
expandHome
|
|
9
|
+
} from "./chunk-W4LK6WJP.js";
|
|
10
|
+
import "./chunk-R6KZYF7D.js";
|
|
11
|
+
export {
|
|
12
|
+
ConfigManager,
|
|
13
|
+
ConfigSchema,
|
|
14
|
+
OPENACP_DIR,
|
|
15
|
+
PLUGINS_DATA_DIR,
|
|
16
|
+
PLUGINS_DIR,
|
|
17
|
+
REGISTRY_PATH,
|
|
18
|
+
expandHome
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=config-KN6NKKPF.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runConfigEditor
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MPGEHTGE.js";
|
|
4
4
|
import "./chunk-2R5XM3ES.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-W4LK6WJP.js";
|
|
6
6
|
import "./chunk-R6KZYF7D.js";
|
|
7
7
|
export {
|
|
8
8
|
runConfigEditor
|
|
9
9
|
};
|
|
10
|
-
//# sourceMappingURL=config-editor-
|
|
10
|
+
//# sourceMappingURL=config-editor-76RVZS4B.js.map
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
corePlugins
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-YIGBJFJL.js";
|
|
4
|
+
import "./chunk-CFUJGWOP.js";
|
|
5
5
|
import "./chunk-3EWTPOF7.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-PA6MNBG4.js";
|
|
7
|
+
import "./chunk-KDU3ZEWT.js";
|
|
8
8
|
import "./chunk-5OCGO27U.js";
|
|
9
9
|
import "./chunk-3NAFXVQM.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-UWH7KIAA.js";
|
|
11
|
+
import "./chunk-TMVTSWVH.js";
|
|
12
|
+
import "./chunk-5WGVYX3C.js";
|
|
13
13
|
import "./chunk-7ZCQF6QM.js";
|
|
14
14
|
import "./chunk-LGFWH3AE.js";
|
|
15
15
|
import "./chunk-IZ5UEZF7.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-MITTQMGZ.js";
|
|
17
17
|
import "./chunk-APS6UEFU.js";
|
|
18
18
|
import "./chunk-2KT6TROD.js";
|
|
19
19
|
export {
|
|
20
20
|
corePlugins
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=core-plugins-
|
|
22
|
+
//# sourceMappingURL=core-plugins-OCHKGCIZ.js.map
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
startDaemon,
|
|
11
11
|
stopDaemon,
|
|
12
12
|
writePidFile
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-QWVHCTCA.js";
|
|
14
|
+
import "./chunk-W4LK6WJP.js";
|
|
15
15
|
import "./chunk-R6KZYF7D.js";
|
|
16
16
|
export {
|
|
17
17
|
clearRunning,
|
|
@@ -26,4 +26,4 @@ export {
|
|
|
26
26
|
stopDaemon,
|
|
27
27
|
writePidFile
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=daemon-
|
|
29
|
+
//# sourceMappingURL=daemon-XFEMMJSZ.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,32 @@ import { EventEmitter } from 'node:events';
|
|
|
5
5
|
import { SetSessionConfigOptionResponse, ListSessionsResponse, LoadSessionResponse, ForkSessionResponse, PromptResponse as PromptResponse$1 } from '@agentclientprotocol/sdk';
|
|
6
6
|
import * as http from 'node:http';
|
|
7
7
|
|
|
8
|
+
type OutputMode = "low" | "medium" | "high";
|
|
9
|
+
/** @deprecated Use OutputMode instead */
|
|
10
|
+
type DisplayVerbosity = OutputMode;
|
|
11
|
+
declare const STATUS_ICONS: Record<string, string>;
|
|
12
|
+
declare const KIND_ICONS: Record<string, string>;
|
|
13
|
+
interface ViewerLinks {
|
|
14
|
+
file?: string;
|
|
15
|
+
diff?: string;
|
|
16
|
+
}
|
|
17
|
+
interface ToolCallMeta {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
kind?: string;
|
|
21
|
+
status?: string;
|
|
22
|
+
content?: unknown;
|
|
23
|
+
rawInput?: unknown;
|
|
24
|
+
viewerLinks?: ViewerLinks;
|
|
25
|
+
viewerFilePath?: string;
|
|
26
|
+
displaySummary?: string;
|
|
27
|
+
displayTitle?: string;
|
|
28
|
+
displayKind?: string;
|
|
29
|
+
}
|
|
30
|
+
interface ToolUpdateMeta extends ToolCallMeta {
|
|
31
|
+
status: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
8
34
|
interface Attachment {
|
|
9
35
|
type: 'image' | 'audio' | 'file';
|
|
10
36
|
filePath: string;
|
|
@@ -244,6 +270,7 @@ interface SessionRecord<P = Record<string, unknown>> {
|
|
|
244
270
|
lastActiveAt: string;
|
|
245
271
|
name?: string;
|
|
246
272
|
dangerousMode?: boolean;
|
|
273
|
+
outputMode?: OutputMode;
|
|
247
274
|
platform: P;
|
|
248
275
|
}
|
|
249
276
|
interface TelegramPlatformData {
|
|
@@ -514,39 +541,48 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
514
541
|
channels: z.ZodObject<{}, "strip", z.ZodObject<{
|
|
515
542
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
516
543
|
adapter: z.ZodOptional<z.ZodString>;
|
|
517
|
-
displayVerbosity: z.ZodOptional<z.
|
|
544
|
+
displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
545
|
+
outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
518
546
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
519
547
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
520
548
|
adapter: z.ZodOptional<z.ZodString>;
|
|
521
|
-
displayVerbosity: z.ZodOptional<z.
|
|
549
|
+
displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
550
|
+
outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
522
551
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
523
552
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
524
553
|
adapter: z.ZodOptional<z.ZodString>;
|
|
525
|
-
displayVerbosity: z.ZodOptional<z.
|
|
554
|
+
displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
555
|
+
outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
526
556
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{}, z.ZodObject<{
|
|
527
557
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
528
558
|
adapter: z.ZodOptional<z.ZodString>;
|
|
529
|
-
displayVerbosity: z.ZodOptional<z.
|
|
559
|
+
displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
560
|
+
outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
530
561
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
531
562
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
532
563
|
adapter: z.ZodOptional<z.ZodString>;
|
|
533
|
-
displayVerbosity: z.ZodOptional<z.
|
|
564
|
+
displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
565
|
+
outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
534
566
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
535
567
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
536
568
|
adapter: z.ZodOptional<z.ZodString>;
|
|
537
|
-
displayVerbosity: z.ZodOptional<z.
|
|
569
|
+
displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
570
|
+
outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
538
571
|
}, z.ZodTypeAny, "passthrough">>, "strip">, z.objectInputType<{}, z.ZodObject<{
|
|
539
572
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
540
573
|
adapter: z.ZodOptional<z.ZodString>;
|
|
541
|
-
displayVerbosity: z.ZodOptional<z.
|
|
574
|
+
displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
575
|
+
outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
542
576
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
543
577
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
544
578
|
adapter: z.ZodOptional<z.ZodString>;
|
|
545
|
-
displayVerbosity: z.ZodOptional<z.
|
|
579
|
+
displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
580
|
+
outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
546
581
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
547
582
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
548
583
|
adapter: z.ZodOptional<z.ZodString>;
|
|
549
|
-
displayVerbosity: z.ZodOptional<z.
|
|
584
|
+
displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
585
|
+
outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
550
586
|
}, z.ZodTypeAny, "passthrough">>, "strip">>;
|
|
551
587
|
agents: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
552
588
|
command: z.ZodString;
|
|
@@ -774,6 +810,7 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
774
810
|
}, z.ZodTypeAny, "passthrough">> | undefined;
|
|
775
811
|
} | undefined;
|
|
776
812
|
}>>>;
|
|
813
|
+
outputMode: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
|
|
777
814
|
}, "strip", z.ZodTypeAny, {
|
|
778
815
|
api: {
|
|
779
816
|
port: number;
|
|
@@ -801,7 +838,8 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
801
838
|
[k: string]: z.objectOutputType<{
|
|
802
839
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
803
840
|
adapter: z.ZodOptional<z.ZodString>;
|
|
804
|
-
displayVerbosity: z.ZodOptional<z.
|
|
841
|
+
displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
842
|
+
outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
805
843
|
}, z.ZodTypeAny, "passthrough">;
|
|
806
844
|
};
|
|
807
845
|
defaultAgent: string;
|
|
@@ -852,12 +890,14 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
852
890
|
}, z.ZodTypeAny, "passthrough">>;
|
|
853
891
|
};
|
|
854
892
|
};
|
|
893
|
+
outputMode?: "low" | "medium" | "high" | undefined;
|
|
855
894
|
}, {
|
|
856
895
|
channels: {} & {
|
|
857
896
|
[k: string]: z.objectInputType<{
|
|
858
897
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
859
898
|
adapter: z.ZodOptional<z.ZodString>;
|
|
860
|
-
displayVerbosity: z.ZodOptional<z.
|
|
899
|
+
displayVerbosity: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
900
|
+
outputMode: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
|
|
861
901
|
}, z.ZodTypeAny, "passthrough">;
|
|
862
902
|
};
|
|
863
903
|
defaultAgent: string;
|
|
@@ -883,6 +923,7 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
883
923
|
token?: string | undefined;
|
|
884
924
|
} | undefined;
|
|
885
925
|
} | undefined;
|
|
926
|
+
outputMode?: "low" | "medium" | "high" | undefined;
|
|
886
927
|
workspace?: {
|
|
887
928
|
baseDir?: string | undefined;
|
|
888
929
|
} | undefined;
|
|
@@ -1097,6 +1138,26 @@ declare class MiddlewareChain {
|
|
|
1097
1138
|
setErrorTracker(tracker: ErrorTracker): void;
|
|
1098
1139
|
}
|
|
1099
1140
|
|
|
1141
|
+
type TraceLayer = "acp" | "core" | "telegram";
|
|
1142
|
+
/**
|
|
1143
|
+
* Per-session debug trace logger. Writes JSONL files to <workingDirectory>/.log/.
|
|
1144
|
+
* Only active when OPENACP_DEBUG=true. Zero overhead when disabled.
|
|
1145
|
+
*
|
|
1146
|
+
* Note: Uses appendFileSync for simplicity. This blocks the event loop briefly per write,
|
|
1147
|
+
* which is acceptable for a debug-only tool. The DEBUG_ENABLED guard ensures zero overhead
|
|
1148
|
+
* in production.
|
|
1149
|
+
*/
|
|
1150
|
+
declare class DebugTracer {
|
|
1151
|
+
private sessionId;
|
|
1152
|
+
private workingDirectory;
|
|
1153
|
+
private dirCreated;
|
|
1154
|
+
private logDir;
|
|
1155
|
+
constructor(sessionId: string, workingDirectory: string);
|
|
1156
|
+
log(layer: TraceLayer, data: Record<string, unknown>): void;
|
|
1157
|
+
/** No-op cleanup — establishes the pattern for future async implementations */
|
|
1158
|
+
destroy(): void;
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1100
1161
|
interface AgentInstanceEvents {
|
|
1101
1162
|
agent_event: (event: AgentEvent) => void;
|
|
1102
1163
|
}
|
|
@@ -1114,6 +1175,7 @@ declare class AgentInstance extends TypedEmitter<AgentInstanceEvents> {
|
|
|
1114
1175
|
audio?: boolean;
|
|
1115
1176
|
};
|
|
1116
1177
|
middlewareChain?: MiddlewareChain;
|
|
1178
|
+
debugTracer: DebugTracer | null;
|
|
1117
1179
|
onPermissionRequest: (request: PermissionRequest) => Promise<string>;
|
|
1118
1180
|
private constructor();
|
|
1119
1181
|
private static spawnSubprocess;
|
|
@@ -1795,6 +1857,7 @@ interface ContextService {
|
|
|
1795
1857
|
interface ViewerStoreInterface {
|
|
1796
1858
|
storeFile(sessionId: string, filePath: string, content: string, workingDirectory: string): string | null;
|
|
1797
1859
|
storeDiff(sessionId: string, filePath: string, oldContent: string, newContent: string, workingDirectory: string): string | null;
|
|
1860
|
+
storeOutput(sessionId: string, label: string, output: string): string | null;
|
|
1798
1861
|
}
|
|
1799
1862
|
interface TunnelServiceInterface {
|
|
1800
1863
|
getPublicUrl(): string;
|
|
@@ -1803,15 +1866,22 @@ interface TunnelServiceInterface {
|
|
|
1803
1866
|
getStore(): ViewerStoreInterface;
|
|
1804
1867
|
fileUrl(entryId: string): string;
|
|
1805
1868
|
diffUrl(entryId: string): string;
|
|
1869
|
+
outputUrl(entryId: string): string;
|
|
1806
1870
|
}
|
|
1807
1871
|
|
|
1808
1872
|
declare class MessageTransformer {
|
|
1809
|
-
|
|
1810
|
-
|
|
1873
|
+
tunnelService?: TunnelServiceInterface;
|
|
1874
|
+
/** Cache rawInput from tool_call so it's available in tool_update (which often lacks it) */
|
|
1875
|
+
private toolRawInputCache;
|
|
1876
|
+
/** Cache viewer links generated from intermediate updates so completion events carry them */
|
|
1877
|
+
private toolViewerCache;
|
|
1878
|
+
constructor(tunnelService?: TunnelServiceInterface);
|
|
1811
1879
|
transform(event: AgentEvent, sessionContext?: {
|
|
1812
1880
|
id: string;
|
|
1813
1881
|
workingDirectory: string;
|
|
1814
1882
|
}): OutgoingMessage;
|
|
1883
|
+
/** Check if rawInput is a non-empty object (not null, not {}) */
|
|
1884
|
+
private isNonEmptyInput;
|
|
1815
1885
|
private enrichWithViewerLinks;
|
|
1816
1886
|
}
|
|
1817
1887
|
|
|
@@ -1953,6 +2023,7 @@ declare class SessionBridge {
|
|
|
1953
2023
|
private statusChangeHandler?;
|
|
1954
2024
|
private namedHandler?;
|
|
1955
2025
|
constructor(session: Session, adapter: IChannelAdapter, deps: BridgeDeps);
|
|
2026
|
+
private get tracer();
|
|
1956
2027
|
/** Send message to adapter, optionally running through message:outgoing middleware */
|
|
1957
2028
|
private sendMessage;
|
|
1958
2029
|
connect(): void;
|
|
@@ -1977,7 +2048,7 @@ interface TunnelEntry {
|
|
|
1977
2048
|
|
|
1978
2049
|
interface ViewerEntry {
|
|
1979
2050
|
id: string;
|
|
1980
|
-
type: 'file' | 'diff';
|
|
2051
|
+
type: 'file' | 'diff' | 'output';
|
|
1981
2052
|
filePath?: string;
|
|
1982
2053
|
content: string;
|
|
1983
2054
|
oldContent?: string;
|
|
@@ -1994,6 +2065,7 @@ declare class ViewerStore {
|
|
|
1994
2065
|
constructor(ttlMinutes?: number);
|
|
1995
2066
|
storeFile(sessionId: string, filePath: string, content: string, workingDirectory: string): string | null;
|
|
1996
2067
|
storeDiff(sessionId: string, filePath: string, oldContent: string, newContent: string, workingDirectory: string): string | null;
|
|
2068
|
+
storeOutput(sessionId: string, label: string, output: string): string | null;
|
|
1997
2069
|
get(id: string): ViewerEntry | undefined;
|
|
1998
2070
|
private cleanup;
|
|
1999
2071
|
private isPathAllowed;
|
|
@@ -2007,6 +2079,7 @@ declare class TunnelService {
|
|
|
2007
2079
|
private server;
|
|
2008
2080
|
private config;
|
|
2009
2081
|
private systemPort;
|
|
2082
|
+
private startError;
|
|
2010
2083
|
constructor(config: TunnelConfig);
|
|
2011
2084
|
start(): Promise<string>;
|
|
2012
2085
|
stop(): Promise<void>;
|
|
@@ -2020,9 +2093,11 @@ declare class TunnelService {
|
|
|
2020
2093
|
listTunnels(): TunnelEntry[];
|
|
2021
2094
|
getTunnel(port: number): TunnelEntry | null;
|
|
2022
2095
|
getPublicUrl(): string;
|
|
2096
|
+
getStartError(): string | undefined;
|
|
2023
2097
|
getStore(): ViewerStore;
|
|
2024
2098
|
fileUrl(entryId: string): string;
|
|
2025
2099
|
diffUrl(entryId: string): string;
|
|
2100
|
+
outputUrl(entryId: string): string;
|
|
2026
2101
|
}
|
|
2027
2102
|
|
|
2028
2103
|
interface SessionCreateParams {
|
|
@@ -2570,30 +2645,6 @@ declare class EntireProvider implements ContextProvider {
|
|
|
2570
2645
|
private buildTitle;
|
|
2571
2646
|
}
|
|
2572
2647
|
|
|
2573
|
-
type DisplayVerbosity = "low" | "medium" | "high";
|
|
2574
|
-
declare const STATUS_ICONS: Record<string, string>;
|
|
2575
|
-
declare const KIND_ICONS: Record<string, string>;
|
|
2576
|
-
interface ViewerLinks {
|
|
2577
|
-
file?: string;
|
|
2578
|
-
diff?: string;
|
|
2579
|
-
}
|
|
2580
|
-
interface ToolCallMeta {
|
|
2581
|
-
id: string;
|
|
2582
|
-
name: string;
|
|
2583
|
-
kind?: string;
|
|
2584
|
-
status?: string;
|
|
2585
|
-
content?: unknown;
|
|
2586
|
-
rawInput?: unknown;
|
|
2587
|
-
viewerLinks?: ViewerLinks;
|
|
2588
|
-
viewerFilePath?: string;
|
|
2589
|
-
displaySummary?: string;
|
|
2590
|
-
displayTitle?: string;
|
|
2591
|
-
displayKind?: string;
|
|
2592
|
-
}
|
|
2593
|
-
interface ToolUpdateMeta extends ToolCallMeta {
|
|
2594
|
-
status: string;
|
|
2595
|
-
}
|
|
2596
|
-
|
|
2597
2648
|
interface RenderedMessage<TComponents = unknown> {
|
|
2598
2649
|
body: string;
|
|
2599
2650
|
format: "html" | "markdown" | "plain" | "structured";
|
|
@@ -2861,6 +2912,7 @@ declare class TelegramAdapter extends MessagingAdapter {
|
|
|
2861
2912
|
private assistantTopicId;
|
|
2862
2913
|
private sendQueue;
|
|
2863
2914
|
private _sessionThreadIds;
|
|
2915
|
+
private outputModeResolver;
|
|
2864
2916
|
private draftManager;
|
|
2865
2917
|
private skillManager;
|
|
2866
2918
|
private fileService;
|
|
@@ -2876,12 +2928,22 @@ declare class TelegramAdapter extends MessagingAdapter {
|
|
|
2876
2928
|
private toCallbackData;
|
|
2877
2929
|
private fromCallbackData;
|
|
2878
2930
|
private setupRoutes;
|
|
2931
|
+
/**
|
|
2932
|
+
* Per-session serial dispatch queues.
|
|
2933
|
+
* SessionBridge fires sendMessage() as fire-and-forget, so multiple events
|
|
2934
|
+
* (tool_call, tool_update, text) can arrive concurrently. Without serialization,
|
|
2935
|
+
* fast handlers (tool_update) overtake slow ones (tool_call with draftManager.finalize),
|
|
2936
|
+
* causing out-of-order processing where a tool's completion update is processed before
|
|
2937
|
+
* its creation event. This queue ensures events are processed in the order they arrive.
|
|
2938
|
+
*/
|
|
2939
|
+
private _dispatchQueues;
|
|
2940
|
+
private getTracer;
|
|
2879
2941
|
sendMessage(sessionId: string, content: OutgoingMessage): Promise<void>;
|
|
2880
|
-
protected handleThought(sessionId: string,
|
|
2942
|
+
protected handleThought(sessionId: string, content: OutgoingMessage, _verbosity: DisplayVerbosity): Promise<void>;
|
|
2881
2943
|
protected handleText(sessionId: string, content: OutgoingMessage): Promise<void>;
|
|
2882
|
-
protected handleToolCall(sessionId: string, content: OutgoingMessage,
|
|
2883
|
-
protected handleToolUpdate(sessionId: string, content: OutgoingMessage,
|
|
2884
|
-
protected handlePlan(sessionId: string, content: OutgoingMessage,
|
|
2944
|
+
protected handleToolCall(sessionId: string, content: OutgoingMessage, _verbosity: DisplayVerbosity): Promise<void>;
|
|
2945
|
+
protected handleToolUpdate(sessionId: string, content: OutgoingMessage, _verbosity: DisplayVerbosity): Promise<void>;
|
|
2946
|
+
protected handlePlan(sessionId: string, content: OutgoingMessage, _verbosity: DisplayVerbosity): Promise<void>;
|
|
2885
2947
|
protected handleUsage(sessionId: string, content: OutgoingMessage, verbosity: DisplayVerbosity): Promise<void>;
|
|
2886
2948
|
protected handleAttachment(sessionId: string, content: OutgoingMessage): Promise<void>;
|
|
2887
2949
|
protected handleSessionEnd(sessionId: string, _content: OutgoingMessage): Promise<void>;
|
package/dist/index.js
CHANGED
|
@@ -15,16 +15,16 @@ import {
|
|
|
15
15
|
TypedEmitter,
|
|
16
16
|
nodeToWebReadable,
|
|
17
17
|
nodeToWebWritable
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-7RKPIM3E.js";
|
|
19
19
|
import {
|
|
20
20
|
getPidPath,
|
|
21
21
|
getStatus,
|
|
22
22
|
startDaemon,
|
|
23
23
|
stopDaemon
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-QWVHCTCA.js";
|
|
25
25
|
import {
|
|
26
26
|
runConfigEditor
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-MPGEHTGE.js";
|
|
28
28
|
import {
|
|
29
29
|
installAutoStart,
|
|
30
30
|
isAutoStartInstalled,
|
|
@@ -54,11 +54,11 @@ import {
|
|
|
54
54
|
splitMessage,
|
|
55
55
|
stripCodeFences,
|
|
56
56
|
truncateContent
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-5ZNBNIK3.js";
|
|
58
58
|
import "./chunk-AFKX424Q.js";
|
|
59
59
|
import {
|
|
60
60
|
DoctorEngine
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-GEOXPGCO.js";
|
|
62
62
|
import {
|
|
63
63
|
NotificationManager
|
|
64
64
|
} from "./chunk-7ZCQF6QM.js";
|
|
@@ -66,7 +66,7 @@ import {
|
|
|
66
66
|
ApiServer,
|
|
67
67
|
SSEManager,
|
|
68
68
|
StaticServer
|
|
69
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-BTJHGSLM.js";
|
|
70
70
|
import "./chunk-FNRSWA2K.js";
|
|
71
71
|
import "./chunk-ZSLHHQPQ.js";
|
|
72
72
|
import {
|
|
@@ -79,7 +79,7 @@ import {
|
|
|
79
79
|
import {
|
|
80
80
|
ContextManager,
|
|
81
81
|
EntireProvider
|
|
82
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-MITTQMGZ.js";
|
|
83
83
|
import "./chunk-APS6UEFU.js";
|
|
84
84
|
import {
|
|
85
85
|
GroqSTT,
|
|
@@ -97,7 +97,7 @@ import {
|
|
|
97
97
|
ConfigManager,
|
|
98
98
|
PLUGINS_DIR,
|
|
99
99
|
expandHome
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-W4LK6WJP.js";
|
|
101
101
|
import {
|
|
102
102
|
cleanupOldSessionLogs,
|
|
103
103
|
createChildLogger,
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
corePlugins
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-YIGBJFJL.js";
|
|
5
|
+
import "./chunk-CFUJGWOP.js";
|
|
6
6
|
import {
|
|
7
7
|
SettingsManager
|
|
8
8
|
} from "./chunk-MLF4W5R6.js";
|
|
9
9
|
import "./chunk-3EWTPOF7.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-PA6MNBG4.js";
|
|
11
|
+
import "./chunk-KDU3ZEWT.js";
|
|
12
12
|
import "./chunk-5OCGO27U.js";
|
|
13
13
|
import "./chunk-3NAFXVQM.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-UWH7KIAA.js";
|
|
15
|
+
import "./chunk-TMVTSWVH.js";
|
|
16
|
+
import "./chunk-5WGVYX3C.js";
|
|
17
17
|
import {
|
|
18
18
|
CommandRegistry,
|
|
19
19
|
OpenACPCore
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-7RKPIM3E.js";
|
|
21
21
|
import "./chunk-V2YZWYXT.js";
|
|
22
22
|
import "./chunk-566W6INH.js";
|
|
23
23
|
import "./chunk-7ZCQF6QM.js";
|
|
@@ -26,12 +26,15 @@ import "./chunk-ZSLHHQPQ.js";
|
|
|
26
26
|
import "./chunk-LGFWH3AE.js";
|
|
27
27
|
import "./chunk-OYSAN7UX.js";
|
|
28
28
|
import "./chunk-IZ5UEZF7.js";
|
|
29
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-MITTQMGZ.js";
|
|
30
30
|
import "./chunk-APS6UEFU.js";
|
|
31
31
|
import "./chunk-2KT6TROD.js";
|
|
32
32
|
import {
|
|
33
|
-
ConfigManager
|
|
34
|
-
|
|
33
|
+
ConfigManager,
|
|
34
|
+
OPENACP_DIR,
|
|
35
|
+
PLUGINS_DATA_DIR,
|
|
36
|
+
REGISTRY_PATH
|
|
37
|
+
} from "./chunk-W4LK6WJP.js";
|
|
35
38
|
import {
|
|
36
39
|
cleanupOldSessionLogs,
|
|
37
40
|
initLogger,
|
|
@@ -44,6 +47,9 @@ import {
|
|
|
44
47
|
PluginRegistry
|
|
45
48
|
} from "./chunk-W26AUH5B.js";
|
|
46
49
|
|
|
50
|
+
// src/main.ts
|
|
51
|
+
import path from "path";
|
|
52
|
+
|
|
47
53
|
// src/core/commands/session.ts
|
|
48
54
|
function registerSessionCommands(registry, _core) {
|
|
49
55
|
registry.register({
|
|
@@ -267,16 +273,11 @@ function registerSystemCommands(registry, core) {
|
|
|
267
273
|
|
|
268
274
|
// src/main.ts
|
|
269
275
|
import fs from "fs";
|
|
270
|
-
import path from "path";
|
|
271
|
-
import os from "os";
|
|
272
276
|
var RESTART_EXIT_CODE = 75;
|
|
273
277
|
var shuttingDown = false;
|
|
274
|
-
var OPENACP_DIR = path.join(os.homedir(), ".openacp");
|
|
275
|
-
var PLUGINS_DATA_DIR = path.join(OPENACP_DIR, "plugins", "data");
|
|
276
|
-
var REGISTRY_PATH = path.join(OPENACP_DIR, "plugins.json");
|
|
277
278
|
async function startServer(opts) {
|
|
278
279
|
if (process.argv.includes("--daemon-child")) {
|
|
279
|
-
const { writePidFile, readPidFile, getPidPath, shouldAutoStart } = await import("./daemon-
|
|
280
|
+
const { writePidFile, readPidFile, getPidPath, shouldAutoStart } = await import("./daemon-XFEMMJSZ.js");
|
|
280
281
|
if (!shouldAutoStart()) {
|
|
281
282
|
process.exit(0);
|
|
282
283
|
}
|
|
@@ -298,7 +299,7 @@ async function startServer(opts) {
|
|
|
298
299
|
const configManager = new ConfigManager();
|
|
299
300
|
const configExists = await configManager.exists();
|
|
300
301
|
if (!configExists) {
|
|
301
|
-
const { runSetup } = await import("./setup-
|
|
302
|
+
const { runSetup } = await import("./setup-E6BNEYCS.js");
|
|
302
303
|
const shouldStart = await runSetup(configManager, { settingsManager, pluginRegistry });
|
|
303
304
|
if (!shouldStart) process.exit(0);
|
|
304
305
|
}
|
|
@@ -311,7 +312,7 @@ async function startServer(opts) {
|
|
|
311
312
|
}
|
|
312
313
|
const isForegroundTTY = !!(process.stdout.isTTY && !process.env.NO_COLOR && config.runMode !== "daemon");
|
|
313
314
|
if (isForegroundTTY) {
|
|
314
|
-
const { printStartBanner } = await import("./setup-
|
|
315
|
+
const { printStartBanner } = await import("./setup-E6BNEYCS.js");
|
|
315
316
|
await printStartBanner();
|
|
316
317
|
}
|
|
317
318
|
let spinner;
|
|
@@ -358,7 +359,7 @@ async function startServer(opts) {
|
|
|
358
359
|
let pkgDir = path.join(nodeModulesDir, name);
|
|
359
360
|
if (!fs.existsSync(path.join(pkgDir, "package.json"))) {
|
|
360
361
|
let found = false;
|
|
361
|
-
const scopes = fs.readdirSync(nodeModulesDir).filter((d) => d.startsWith("@"));
|
|
362
|
+
const scopes = fs.existsSync(nodeModulesDir) ? fs.readdirSync(nodeModulesDir).filter((d) => d.startsWith("@")) : [];
|
|
362
363
|
for (const scope of scopes) {
|
|
363
364
|
const scopeDir = path.join(nodeModulesDir, scope);
|
|
364
365
|
const pkgs = fs.readdirSync(scopeDir);
|
|
@@ -485,13 +486,13 @@ async function startServer(opts) {
|
|
|
485
486
|
}
|
|
486
487
|
const isDaemon = process.argv.includes("--daemon-child");
|
|
487
488
|
if (isDaemon) {
|
|
488
|
-
const { removePidFile, getPidPath } = await import("./daemon-
|
|
489
|
+
const { removePidFile, getPidPath } = await import("./daemon-XFEMMJSZ.js");
|
|
489
490
|
removePidFile(getPidPath());
|
|
490
491
|
}
|
|
491
492
|
if (exitCode === RESTART_EXIT_CODE) {
|
|
492
493
|
if (isDaemon) {
|
|
493
494
|
const { spawn: spawnChild } = await import("child_process");
|
|
494
|
-
const { expandHome } = await import("./config-
|
|
495
|
+
const { expandHome } = await import("./config-KN6NKKPF.js");
|
|
495
496
|
const fs2 = await import("fs");
|
|
496
497
|
const pathMod = await import("path");
|
|
497
498
|
const cliPath = pathMod.resolve(process.argv[1]);
|
|
@@ -539,7 +540,15 @@ async function startServer(opts) {
|
|
|
539
540
|
ok("Config loaded");
|
|
540
541
|
ok("Dependencies checked");
|
|
541
542
|
const tunnelSvc = core.lifecycleManager.serviceRegistry.get("tunnel");
|
|
542
|
-
if (tunnelSvc)
|
|
543
|
+
if (tunnelSvc) {
|
|
544
|
+
const tunnelUrl = tunnelSvc.getPublicUrl();
|
|
545
|
+
const tunnelErr = tunnelSvc.getStartError();
|
|
546
|
+
if (tunnelErr) {
|
|
547
|
+
console.log(`\x1B[33m\u26A0\x1B[0m Tunnel failed (${tunnelErr}) \u2014 viewer links unavailable`);
|
|
548
|
+
} else {
|
|
549
|
+
ok(`Tunnel ready \u2192 ${tunnelUrl}`);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
543
552
|
for (const [name] of core.adapters) ok(`${name.charAt(0).toUpperCase() + name.slice(1)} connected`);
|
|
544
553
|
const apiPort = config.api?.port ?? 21420;
|
|
545
554
|
if (core.lifecycleManager.serviceRegistry.get("api-server")) ok(`API server on port ${apiPort}`);
|
|
@@ -555,7 +564,6 @@ async function autoRegisterBuiltinPlugins(settingsManager, pluginRegistry, confi
|
|
|
555
564
|
{ name: "@openacp/security", version: "1.0.0", description: "User access control and session limits" },
|
|
556
565
|
{ name: "@openacp/file-service", version: "1.0.0", description: "File storage and management" },
|
|
557
566
|
{ name: "@openacp/context", version: "1.0.0", description: "Conversation context management" },
|
|
558
|
-
{ name: "@openacp/usage", version: "1.0.0", description: "Token usage tracking and budget enforcement" },
|
|
559
567
|
{ name: "@openacp/speech", version: "1.0.0", description: "Text-to-speech and speech-to-text" },
|
|
560
568
|
{ name: "@openacp/notifications", version: "1.0.0", description: "Cross-session notification routing" },
|
|
561
569
|
{ name: "@openacp/tunnel", version: "1.0.0", description: "Expose local services via tunnel" },
|
|
@@ -574,12 +582,12 @@ async function autoRegisterBuiltinPlugins(settingsManager, pluginRegistry, confi
|
|
|
574
582
|
const pluginModules = await Promise.allSettled([
|
|
575
583
|
import("./security-2BA265LN.js"),
|
|
576
584
|
import("./file-service-HHB3JQIO.js"),
|
|
577
|
-
import("./context-
|
|
578
|
-
import("./speech-
|
|
585
|
+
import("./context-NXXW62NJ.js"),
|
|
586
|
+
import("./speech-SG62JYIF.js"),
|
|
579
587
|
import("./notifications-MO23S7S3.js"),
|
|
580
|
-
import("./tunnel-
|
|
581
|
-
import("./api-server-
|
|
582
|
-
import("./telegram-
|
|
588
|
+
import("./tunnel-HWJ27WDH.js"),
|
|
589
|
+
import("./api-server-5VNYFWJE.js"),
|
|
590
|
+
import("./telegram-EAVRDNFU.js")
|
|
583
591
|
]);
|
|
584
592
|
for (const result of pluginModules) {
|
|
585
593
|
if (result.status !== "fulfilled") continue;
|
|
@@ -643,4 +651,4 @@ export {
|
|
|
643
651
|
RESTART_EXIT_CODE,
|
|
644
652
|
startServer
|
|
645
653
|
};
|
|
646
|
-
//# sourceMappingURL=main-
|
|
654
|
+
//# sourceMappingURL=main-L2M4NTJY.js.map
|