comisai 1.0.15 → 1.0.16
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/node_modules/@comis/agent/dist/bootstrap/types.d.ts +1 -1
- package/node_modules/@comis/agent/dist/bridge/pi-event-bridge.js +12 -11
- package/node_modules/@comis/agent/dist/context-engine/constants.d.ts +11 -0
- package/node_modules/@comis/agent/dist/context-engine/constants.js +11 -0
- package/node_modules/@comis/agent/dist/context-engine/index.d.ts +1 -1
- package/node_modules/@comis/agent/dist/context-engine/index.js +1 -1
- package/node_modules/@comis/agent/dist/context-engine/llm-compaction.js +32 -18
- package/node_modules/@comis/agent/dist/executor/cache-break-diff-writer.d.ts +2 -0
- package/node_modules/@comis/agent/dist/executor/cache-break-diff-writer.js +36 -0
- package/node_modules/@comis/agent/dist/executor/executor-post-execution.d.ts +12 -0
- package/node_modules/@comis/agent/dist/executor/executor-post-execution.js +117 -27
- package/node_modules/@comis/agent/dist/executor/executor-prompt-runner.d.ts +1 -0
- package/node_modules/@comis/agent/dist/executor/executor-prompt-runner.js +16 -4
- package/node_modules/@comis/agent/dist/executor/executor-stream-setup.js +17 -1
- package/node_modules/@comis/agent/dist/executor/executor-tool-assembly.js +27 -1
- package/node_modules/@comis/agent/dist/executor/session-snapshot-cleanup.js +3 -1
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/index.d.ts +2 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/index.js +2 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body-injector.d.ts +9 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/request-body-injector.js +65 -3
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/stub-filter-injector.d.ts +28 -0
- package/node_modules/@comis/agent/dist/executor/stream-wrappers/stub-filter-injector.js +63 -0
- package/node_modules/@comis/agent/dist/executor/tool-deferral.d.ts +18 -1
- package/node_modules/@comis/agent/dist/executor/tool-deferral.js +275 -133
- package/node_modules/@comis/agent/dist/executor/ttl-guard.d.ts +6 -0
- package/node_modules/@comis/agent/dist/executor/ttl-guard.js +8 -0
- package/node_modules/@comis/agent/package.json +1 -1
- package/node_modules/@comis/channels/dist/shared/typing-controller.d.ts +7 -0
- package/node_modules/@comis/channels/dist/shared/typing-controller.js +33 -0
- package/node_modules/@comis/channels/package.json +1 -1
- package/node_modules/@comis/cli/dist/commands/daemon.js +116 -28
- package/node_modules/@comis/cli/package.json +1 -1
- package/node_modules/@comis/core/dist/config/schema-agent.d.ts +10 -0
- package/node_modules/@comis/core/dist/config/schema-agent.js +8 -0
- package/node_modules/@comis/core/dist/config/schema-skills.d.ts +16 -2
- package/node_modules/@comis/core/dist/config/schema-skills.js +9 -2
- package/node_modules/@comis/core/dist/config/schema.d.ts +6 -3
- package/node_modules/@comis/core/package.json +1 -1
- package/node_modules/@comis/daemon/package.json +1 -1
- package/node_modules/@comis/gateway/package.json +1 -1
- package/node_modules/@comis/infra/package.json +1 -1
- package/node_modules/@comis/memory/package.json +1 -1
- package/node_modules/@comis/scheduler/package.json +1 -1
- package/node_modules/@comis/shared/package.json +1 -1
- package/node_modules/@comis/skills/dist/builtin/platform/gateway-tool.d.ts +1 -1
- package/node_modules/@comis/skills/package.json +1 -1
- package/package.json +12 -12
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
import { execFile, spawn } from "node:child_process";
|
|
13
13
|
import { existsSync, readFileSync, writeFileSync, unlinkSync, mkdirSync, openSync } from "node:fs";
|
|
14
14
|
import * as os from "node:os";
|
|
15
|
+
import { createInterface } from "node:readline";
|
|
15
16
|
import { promisify } from "node:util";
|
|
17
|
+
import chalk from "chalk";
|
|
16
18
|
import { safePath } from "@comis/core";
|
|
17
19
|
import { withClient } from "../client/rpc-client.js";
|
|
18
20
|
import { success, error, info, warn } from "../output/format.js";
|
|
@@ -23,6 +25,63 @@ const PID_FILE = safePath(COMIS_DIR, "daemon.pid");
|
|
|
23
25
|
const LOG_FILE = safePath(COMIS_DIR, "daemon.log");
|
|
24
26
|
/** Max time to wait for daemon gateway to become ready (ms). */
|
|
25
27
|
const READY_TIMEOUT_MS = 15_000;
|
|
28
|
+
// ---------- Log formatting ----------
|
|
29
|
+
const PINO_LEVELS = {
|
|
30
|
+
10: { label: "TRACE", color: chalk.gray },
|
|
31
|
+
20: { label: "DEBUG", color: chalk.gray },
|
|
32
|
+
30: { label: "INFO", color: chalk.cyan },
|
|
33
|
+
40: { label: "WARN", color: chalk.yellow },
|
|
34
|
+
50: { label: "ERROR", color: chalk.red },
|
|
35
|
+
60: { label: "FATAL", color: chalk.bgRed.white },
|
|
36
|
+
};
|
|
37
|
+
const PINO_META_KEYS = new Set([
|
|
38
|
+
"level", "time", "pid", "hostname", "name", "msg", "module",
|
|
39
|
+
"levelValue", "instanceId",
|
|
40
|
+
]);
|
|
41
|
+
function formatPinoLine(line) {
|
|
42
|
+
const trimmed = line.trim();
|
|
43
|
+
if (!trimmed.startsWith("{"))
|
|
44
|
+
return line;
|
|
45
|
+
let record;
|
|
46
|
+
try {
|
|
47
|
+
record = JSON.parse(trimmed);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return line;
|
|
51
|
+
}
|
|
52
|
+
if (typeof record["level"] !== "number" && typeof record["level"] !== "string")
|
|
53
|
+
return line;
|
|
54
|
+
const levelNum = typeof record["level"] === "number"
|
|
55
|
+
? record["level"]
|
|
56
|
+
: ({ trace: 10, debug: 20, info: 30, warn: 40, error: 50, fatal: 60 }[record["level"]] ?? 30);
|
|
57
|
+
const levelInfo = PINO_LEVELS[levelNum] ?? { label: String(record["level"]), color: chalk.white };
|
|
58
|
+
const time = record["time"]
|
|
59
|
+
? new Date(record["time"]).toLocaleTimeString()
|
|
60
|
+
: "";
|
|
61
|
+
const mod = record["module"] ? `[${record["module"]}]` : "";
|
|
62
|
+
const msg = record["msg"] ?? "";
|
|
63
|
+
const extra = {};
|
|
64
|
+
for (const [k, v] of Object.entries(record)) {
|
|
65
|
+
if (!PINO_META_KEYS.has(k))
|
|
66
|
+
extra[k] = v;
|
|
67
|
+
}
|
|
68
|
+
const extraStr = Object.keys(extra).length > 0
|
|
69
|
+
? chalk.gray(` ${JSON.stringify(extra)}`)
|
|
70
|
+
: "";
|
|
71
|
+
return `${chalk.dim(time)} ${levelInfo.color(levelInfo.label.padEnd(5))} ${chalk.blue(mod)} ${msg}${extraStr}`;
|
|
72
|
+
}
|
|
73
|
+
function formatLogOutput(raw) {
|
|
74
|
+
return raw
|
|
75
|
+
.split("\n")
|
|
76
|
+
.map((line) => (line.trim() ? formatPinoLine(line) : line))
|
|
77
|
+
.join("\n");
|
|
78
|
+
}
|
|
79
|
+
function pipeFormatted(child) {
|
|
80
|
+
if (!child.stdout)
|
|
81
|
+
return;
|
|
82
|
+
const rl = createInterface({ input: child.stdout });
|
|
83
|
+
rl.on("line", (line) => console.log(formatPinoLine(line)));
|
|
84
|
+
}
|
|
26
85
|
/** Interval between readiness polls (ms). */
|
|
27
86
|
const READY_POLL_MS = 500;
|
|
28
87
|
/**
|
|
@@ -533,40 +592,48 @@ async function handleDaemonLogs(options) {
|
|
|
533
592
|
}
|
|
534
593
|
}
|
|
535
594
|
async function streamSystemdLogs(scope, options) {
|
|
536
|
-
const jArgs = ["--unit=comis", "--no-pager", `-n${options.lines}
|
|
595
|
+
const jArgs = ["--unit=comis", "--no-pager", `-n${options.lines}`, "--output=cat"];
|
|
537
596
|
if (scope === "systemd-user")
|
|
538
597
|
jArgs.push("--user");
|
|
539
598
|
if (options.follow)
|
|
540
599
|
jArgs.push("--follow");
|
|
541
600
|
if (options.follow) {
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
error(
|
|
545
|
-
|
|
546
|
-
|
|
601
|
+
if (options.raw) {
|
|
602
|
+
const child = spawn("journalctl", jArgs, { stdio: "inherit" });
|
|
603
|
+
child.on("error", (err) => {
|
|
604
|
+
error(`Failed to read logs: ${err.message}`);
|
|
605
|
+
process.exit(1);
|
|
606
|
+
});
|
|
607
|
+
}
|
|
608
|
+
else {
|
|
609
|
+
const child = spawn("journalctl", jArgs, { stdio: ["ignore", "pipe", "inherit"] });
|
|
610
|
+
child.on("error", (err) => {
|
|
611
|
+
error(`Failed to read logs: ${err.message}`);
|
|
612
|
+
process.exit(1);
|
|
613
|
+
});
|
|
614
|
+
pipeFormatted(child);
|
|
615
|
+
}
|
|
547
616
|
return;
|
|
548
617
|
}
|
|
549
|
-
|
|
550
|
-
// then fall back to sudo for system-scope journals.
|
|
551
|
-
try {
|
|
552
|
-
const { stdout } = await exec("journalctl", jArgs, { timeout: 10_000 });
|
|
618
|
+
const printOutput = (stdout) => {
|
|
553
619
|
if (stdout.trim()) {
|
|
554
|
-
console.log(stdout);
|
|
620
|
+
console.log(options.raw ? stdout : formatLogOutput(stdout));
|
|
555
621
|
}
|
|
556
622
|
else {
|
|
557
623
|
info("No logs found");
|
|
558
624
|
}
|
|
625
|
+
};
|
|
626
|
+
// Try journalctl directly first (works when user is in systemd-journal group),
|
|
627
|
+
// then fall back to sudo for system-scope journals.
|
|
628
|
+
try {
|
|
629
|
+
const { stdout } = await exec("journalctl", jArgs, { timeout: 10_000 });
|
|
630
|
+
printOutput(stdout);
|
|
559
631
|
}
|
|
560
632
|
catch {
|
|
561
633
|
// eslint-disable-next-line no-restricted-syntax -- CLI bootstrap before SecretManager
|
|
562
634
|
if (scope === "systemd" && process.getuid?.() !== 0) {
|
|
563
635
|
const { stdout } = await exec("sudo", ["journalctl", ...jArgs], { timeout: 10_000 });
|
|
564
|
-
|
|
565
|
-
console.log(stdout);
|
|
566
|
-
}
|
|
567
|
-
else {
|
|
568
|
-
info("No logs found");
|
|
569
|
-
}
|
|
636
|
+
printOutput(stdout);
|
|
570
637
|
}
|
|
571
638
|
else {
|
|
572
639
|
throw new Error("Failed to read journal logs");
|
|
@@ -577,11 +644,21 @@ function streamPm2Logs(options) {
|
|
|
577
644
|
const args = ["logs", "comis", "--lines", options.lines];
|
|
578
645
|
if (!options.follow)
|
|
579
646
|
args.push("--nostream");
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
error(
|
|
583
|
-
|
|
584
|
-
|
|
647
|
+
if (options.raw) {
|
|
648
|
+
const child = spawn("pm2", args, { stdio: "inherit" });
|
|
649
|
+
child.on("error", (err) => {
|
|
650
|
+
error(`Failed to read logs: ${err.message}`);
|
|
651
|
+
process.exit(1);
|
|
652
|
+
});
|
|
653
|
+
}
|
|
654
|
+
else {
|
|
655
|
+
const child = spawn("pm2", args, { stdio: ["ignore", "pipe", "inherit"] });
|
|
656
|
+
child.on("error", (err) => {
|
|
657
|
+
error(`Failed to read logs: ${err.message}`);
|
|
658
|
+
process.exit(1);
|
|
659
|
+
});
|
|
660
|
+
pipeFormatted(child);
|
|
661
|
+
}
|
|
585
662
|
}
|
|
586
663
|
async function streamDirectLogs(options) {
|
|
587
664
|
// eslint-disable-next-line no-restricted-syntax -- CLI bootstrap before SecretManager
|
|
@@ -594,16 +671,26 @@ async function streamDirectLogs(options) {
|
|
|
594
671
|
const args = ["-n", options.lines, logPath];
|
|
595
672
|
if (options.follow) {
|
|
596
673
|
args.unshift("-f");
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
error(
|
|
600
|
-
|
|
601
|
-
|
|
674
|
+
if (options.raw) {
|
|
675
|
+
const child = spawn("tail", args, { stdio: "inherit" });
|
|
676
|
+
child.on("error", (err) => {
|
|
677
|
+
error(`Failed to read logs: ${err.message}`);
|
|
678
|
+
process.exit(1);
|
|
679
|
+
});
|
|
680
|
+
}
|
|
681
|
+
else {
|
|
682
|
+
const child = spawn("tail", args, { stdio: ["ignore", "pipe", "inherit"] });
|
|
683
|
+
child.on("error", (err) => {
|
|
684
|
+
error(`Failed to read logs: ${err.message}`);
|
|
685
|
+
process.exit(1);
|
|
686
|
+
});
|
|
687
|
+
pipeFormatted(child);
|
|
688
|
+
}
|
|
602
689
|
return;
|
|
603
690
|
}
|
|
604
691
|
const { stdout } = await exec("tail", args, { timeout: 5_000 });
|
|
605
692
|
if (stdout.trim()) {
|
|
606
|
-
console.log(stdout);
|
|
693
|
+
console.log(options.raw ? stdout : formatLogOutput(stdout));
|
|
607
694
|
}
|
|
608
695
|
else {
|
|
609
696
|
info("No logs found");
|
|
@@ -634,5 +721,6 @@ export function registerDaemonCommand(program) {
|
|
|
634
721
|
.description("Show daemon logs")
|
|
635
722
|
.option("-f, --follow", "Follow log output")
|
|
636
723
|
.option("-n, --lines <n>", "Number of lines to show", "50")
|
|
724
|
+
.option("--raw", "Show raw JSON output without formatting")
|
|
637
725
|
.action(handleDaemonLogs);
|
|
638
726
|
}
|
|
@@ -737,6 +737,10 @@ export declare const AgentConfigSchema: z.ZodObject<{
|
|
|
737
737
|
"multi-zone": "multi-zone";
|
|
738
738
|
single: "single";
|
|
739
739
|
}>>;
|
|
740
|
+
/** Advanced cache optimization options for interactive sessions. */
|
|
741
|
+
advancedCacheOptimization: z.ZodDefault<z.ZodObject<{
|
|
742
|
+
enableRecentZonePromotion: z.ZodDefault<z.ZodBoolean>;
|
|
743
|
+
}, z.core.$strip>>;
|
|
740
744
|
/** Gemini explicit cache configuration (CachedContent lifecycle). */
|
|
741
745
|
geminiCache: z.ZodDefault<z.ZodObject<{
|
|
742
746
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -1102,6 +1106,9 @@ export declare const PerAgentConfigSchema: z.ZodObject<{
|
|
|
1102
1106
|
"multi-zone": "multi-zone";
|
|
1103
1107
|
single: "single";
|
|
1104
1108
|
}>>;
|
|
1109
|
+
advancedCacheOptimization: z.ZodDefault<z.ZodObject<{
|
|
1110
|
+
enableRecentZonePromotion: z.ZodDefault<z.ZodBoolean>;
|
|
1111
|
+
}, z.core.$strip>>;
|
|
1105
1112
|
geminiCache: z.ZodDefault<z.ZodObject<{
|
|
1106
1113
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1107
1114
|
maxActiveCaches: z.ZodDefault<z.ZodNumber>;
|
|
@@ -1773,6 +1780,9 @@ export declare const AgentsMapSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
|
1773
1780
|
"multi-zone": "multi-zone";
|
|
1774
1781
|
single: "single";
|
|
1775
1782
|
}>>;
|
|
1783
|
+
advancedCacheOptimization: z.ZodDefault<z.ZodObject<{
|
|
1784
|
+
enableRecentZonePromotion: z.ZodDefault<z.ZodBoolean>;
|
|
1785
|
+
}, z.core.$strip>>;
|
|
1776
1786
|
geminiCache: z.ZodDefault<z.ZodObject<{
|
|
1777
1787
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1778
1788
|
maxActiveCaches: z.ZodDefault<z.ZodNumber>;
|
|
@@ -574,6 +574,14 @@ export const AgentConfigSchema = z.strictObject({
|
|
|
574
574
|
* 'auto' resolves to 'single' for direct Anthropic and 'multi-zone' for Bedrock/Vertex.
|
|
575
575
|
* 'multi-zone' places breakpoints across system, tools, and messages. */
|
|
576
576
|
cacheBreakpointStrategy: z.enum(["auto", "multi-zone", "single"]).default("single"),
|
|
577
|
+
/** Advanced cache optimization options for interactive sessions. */
|
|
578
|
+
advancedCacheOptimization: z.object({
|
|
579
|
+
/** When true, the recent-zone message breakpoint may be promoted from
|
|
580
|
+
* "short" (5m) to "long" (1h) TTL when observed inter-turn gaps
|
|
581
|
+
* consistently exceed 5 minutes. Prevents repeated cache rewrite costs
|
|
582
|
+
* in slow-cadence channels like Telegram. Default: true. */
|
|
583
|
+
enableRecentZonePromotion: z.boolean().default(true),
|
|
584
|
+
}).default(() => ({ enableRecentZonePromotion: true })),
|
|
577
585
|
/** Gemini explicit cache configuration (CachedContent lifecycle). */
|
|
578
586
|
geminiCache: GeminiCacheConfigSchema.default(() => GeminiCacheConfigSchema.parse({})),
|
|
579
587
|
/** When true, only content inside <final> blocks reaches users (streaming + non-streaming). Default: false. */
|
|
@@ -23,7 +23,14 @@ export declare const PromptSkillsConfigSchema: z.ZodObject<{
|
|
|
23
23
|
* per-deployment without a rebuild.
|
|
24
24
|
*/
|
|
25
25
|
declare const ToolDiscoverySchema: z.ZodObject<{
|
|
26
|
-
/** Minimum BM25 score
|
|
26
|
+
/** Minimum BM25 score as FRACTION OF TOP MATCH (0..1). Default 0.8.
|
|
27
|
+
* As of 2026-04-23, BM25 scores are normalized to [0, 1] before this floor
|
|
28
|
+
* applies, matching the semantics of minHybridScore. A value of 0.8 means
|
|
29
|
+
* "return only tools scoring >= 80% of the top match". Values > 1.0 fail
|
|
30
|
+
* validation at config load (stale raw-score overrides would produce zero
|
|
31
|
+
* matches under the new normalized semantics; fail-fast surfaces the
|
|
32
|
+
* error immediately per AGENTS.md §3.4). See design §5.6:
|
|
33
|
+
* .planning/design/discover-tools-bm25-fallback-fix.md */
|
|
27
34
|
minBm25Score: z.ZodDefault<z.ZodNumber>;
|
|
28
35
|
/** Minimum combined score (0..1 normalized) for hybrid mode. Default 0.35. */
|
|
29
36
|
minHybridScore: z.ZodDefault<z.ZodNumber>;
|
|
@@ -115,7 +122,14 @@ export declare const SkillsConfigSchema: z.ZodObject<{
|
|
|
115
122
|
}, z.core.$strict>>;
|
|
116
123
|
/** discover_tools score-floor thresholds (BM25 + hybrid). */
|
|
117
124
|
toolDiscovery: z.ZodDefault<z.ZodObject<{
|
|
118
|
-
/** Minimum BM25 score
|
|
125
|
+
/** Minimum BM25 score as FRACTION OF TOP MATCH (0..1). Default 0.8.
|
|
126
|
+
* As of 2026-04-23, BM25 scores are normalized to [0, 1] before this floor
|
|
127
|
+
* applies, matching the semantics of minHybridScore. A value of 0.8 means
|
|
128
|
+
* "return only tools scoring >= 80% of the top match". Values > 1.0 fail
|
|
129
|
+
* validation at config load (stale raw-score overrides would produce zero
|
|
130
|
+
* matches under the new normalized semantics; fail-fast surfaces the
|
|
131
|
+
* error immediately per AGENTS.md §3.4). See design §5.6:
|
|
132
|
+
* .planning/design/discover-tools-bm25-fallback-fix.md */
|
|
119
133
|
minBm25Score: z.ZodDefault<z.ZodNumber>;
|
|
120
134
|
/** Minimum combined score (0..1 normalized) for hybrid mode. Default 0.35. */
|
|
121
135
|
minHybridScore: z.ZodDefault<z.ZodNumber>;
|
|
@@ -93,8 +93,15 @@ const ExecSandboxSchema = z.strictObject({
|
|
|
93
93
|
* per-deployment without a rebuild.
|
|
94
94
|
*/
|
|
95
95
|
const ToolDiscoverySchema = z.strictObject({
|
|
96
|
-
/** Minimum BM25 score
|
|
97
|
-
|
|
96
|
+
/** Minimum BM25 score as FRACTION OF TOP MATCH (0..1). Default 0.8.
|
|
97
|
+
* As of 2026-04-23, BM25 scores are normalized to [0, 1] before this floor
|
|
98
|
+
* applies, matching the semantics of minHybridScore. A value of 0.8 means
|
|
99
|
+
* "return only tools scoring >= 80% of the top match". Values > 1.0 fail
|
|
100
|
+
* validation at config load (stale raw-score overrides would produce zero
|
|
101
|
+
* matches under the new normalized semantics; fail-fast surfaces the
|
|
102
|
+
* error immediately per AGENTS.md §3.4). See design §5.6:
|
|
103
|
+
* .planning/design/discover-tools-bm25-fallback-fix.md */
|
|
104
|
+
minBm25Score: z.number().min(0).max(1).default(0.8),
|
|
98
105
|
/** Minimum combined score (0..1 normalized) for hybrid mode. Default 0.35. */
|
|
99
106
|
minHybridScore: z.number().min(0).max(1).default(0.35),
|
|
100
107
|
});
|
|
@@ -54,6 +54,9 @@ export declare const AppConfigSchema: z.ZodObject<{
|
|
|
54
54
|
"multi-zone": "multi-zone";
|
|
55
55
|
single: "single";
|
|
56
56
|
}>>;
|
|
57
|
+
advancedCacheOptimization: z.ZodDefault<z.ZodObject<{
|
|
58
|
+
enableRecentZonePromotion: z.ZodDefault<z.ZodBoolean>;
|
|
59
|
+
}, z.core.$strip>>;
|
|
57
60
|
geminiCache: z.ZodDefault<z.ZodObject<{
|
|
58
61
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
59
62
|
maxActiveCaches: z.ZodDefault<z.ZodNumber>;
|
|
@@ -1619,8 +1622,8 @@ export declare const AppConfigSchema: z.ZodObject<{
|
|
|
1619
1622
|
defaultUseMarkdownIR: z.ZodDefault<z.ZodBoolean>;
|
|
1620
1623
|
defaultReplyMode: z.ZodDefault<z.ZodEnum<{
|
|
1621
1624
|
off: "off";
|
|
1622
|
-
all: "all";
|
|
1623
1625
|
first: "first";
|
|
1626
|
+
all: "all";
|
|
1624
1627
|
}>>;
|
|
1625
1628
|
perChannel: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1626
1629
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -1671,8 +1674,8 @@ export declare const AppConfigSchema: z.ZodObject<{
|
|
|
1671
1674
|
}>>;
|
|
1672
1675
|
replyMode: z.ZodDefault<z.ZodEnum<{
|
|
1673
1676
|
off: "off";
|
|
1674
|
-
all: "all";
|
|
1675
1677
|
first: "first";
|
|
1678
|
+
all: "all";
|
|
1676
1679
|
}>>;
|
|
1677
1680
|
replyModeByChatType: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
1678
1681
|
dm: "dm";
|
|
@@ -1682,8 +1685,8 @@ export declare const AppConfigSchema: z.ZodObject<{
|
|
|
1682
1685
|
forum: "forum";
|
|
1683
1686
|
}>, z.ZodEnum<{
|
|
1684
1687
|
off: "off";
|
|
1685
|
-
all: "all";
|
|
1686
1688
|
first: "first";
|
|
1689
|
+
all: "all";
|
|
1687
1690
|
}>>>;
|
|
1688
1691
|
}, z.core.$strict>>>;
|
|
1689
1692
|
}, z.core.$strict>>;
|
|
@@ -21,7 +21,7 @@ import type { RpcCall } from "./cron-tool.js";
|
|
|
21
21
|
export declare const GATEWAY_ACTIONS: readonly ["read", "patch", "apply", "restart", "schema", "status", "history", "diff", "rollback", "env_set", "env_list"];
|
|
22
22
|
export type GatewayAction = typeof GATEWAY_ACTIONS[number];
|
|
23
23
|
declare const GatewayToolParams: import("@sinclair/typebox").TObject<{
|
|
24
|
-
action: import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<"
|
|
24
|
+
action: import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<"status" | "read" | "patch" | "apply" | "restart" | "schema" | "history" | "diff" | "rollback" | "env_set" | "env_list">[]>;
|
|
25
25
|
section: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
26
26
|
key: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
27
27
|
value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnknown>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "comisai",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.16",
|
|
4
4
|
"author": "Moshe Anconina",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"description": "Security-first AI agent platform — connects AI agents to Discord, Telegram, Slack, WhatsApp, and more",
|
|
@@ -115,17 +115,17 @@
|
|
|
115
115
|
"@comis/daemon"
|
|
116
116
|
],
|
|
117
117
|
"dependencies": {
|
|
118
|
-
"@comis/shared": "1.0.
|
|
119
|
-
"@comis/core": "1.0.
|
|
120
|
-
"@comis/infra": "1.0.
|
|
121
|
-
"@comis/memory": "1.0.
|
|
122
|
-
"@comis/gateway": "1.0.
|
|
123
|
-
"@comis/skills": "1.0.
|
|
124
|
-
"@comis/scheduler": "1.0.
|
|
125
|
-
"@comis/agent": "1.0.
|
|
126
|
-
"@comis/channels": "1.0.
|
|
127
|
-
"@comis/cli": "1.0.
|
|
128
|
-
"@comis/daemon": "1.0.
|
|
118
|
+
"@comis/shared": "1.0.16",
|
|
119
|
+
"@comis/core": "1.0.16",
|
|
120
|
+
"@comis/infra": "1.0.16",
|
|
121
|
+
"@comis/memory": "1.0.16",
|
|
122
|
+
"@comis/gateway": "1.0.16",
|
|
123
|
+
"@comis/skills": "1.0.16",
|
|
124
|
+
"@comis/scheduler": "1.0.16",
|
|
125
|
+
"@comis/agent": "1.0.16",
|
|
126
|
+
"@comis/channels": "1.0.16",
|
|
127
|
+
"@comis/cli": "1.0.16",
|
|
128
|
+
"@comis/daemon": "1.0.16",
|
|
129
129
|
"@agentclientprotocol/sdk": "^0.15.0",
|
|
130
130
|
"@clack/core": "^1.1.0",
|
|
131
131
|
"@clack/prompts": "^1.1.0",
|