comisai 1.0.16 → 1.0.17
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/package.json +1 -1
- package/node_modules/@comis/channels/package.json +1 -1
- package/node_modules/@comis/cli/dist/wizard/non-interactive.js +1 -0
- package/node_modules/@comis/cli/dist/wizard/steps/01-detect-existing.js +4 -0
- package/node_modules/@comis/cli/dist/wizard/steps/07-gateway.js +9 -0
- package/node_modules/@comis/cli/dist/wizard/steps/10-write-config.js +2 -0
- package/node_modules/@comis/cli/dist/wizard/steps/12-finish.js +5 -2
- package/node_modules/@comis/cli/dist/wizard/types.d.ts +1 -0
- package/node_modules/@comis/cli/package.json +1 -1
- package/node_modules/@comis/core/dist/config/schema-gateway.d.ts +17 -2
- package/node_modules/@comis/core/dist/config/schema-gateway.js +11 -0
- package/node_modules/@comis/core/dist/config/schema.d.ts +60 -57
- package/node_modules/@comis/core/package.json +1 -1
- package/node_modules/@comis/daemon/dist/wiring/setup-gateway.js +34 -6
- 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/package.json +1 -1
- package/node_modules/@comis/web/dist/android-chrome-192x192.png +0 -0
- package/node_modules/@comis/web/dist/android-chrome-512x512.png +0 -0
- package/node_modules/@comis/web/dist/apple-touch-icon.png +0 -0
- package/node_modules/@comis/web/dist/assets/agent-detail-BG9MGWWj.js +615 -0
- package/node_modules/@comis/web/dist/assets/agent-editor-C26Q_xCs.js +2173 -0
- package/node_modules/@comis/web/dist/assets/agent-list-LHCJ4rw2.js +504 -0
- package/node_modules/@comis/web/dist/assets/approvals-q9VH_IKr.js +54 -0
- package/node_modules/@comis/web/dist/assets/billing-view-CtYvBqTE.js +375 -0
- package/node_modules/@comis/web/dist/assets/channel-detail-CaInesJM.js +681 -0
- package/node_modules/@comis/web/dist/assets/channel-list-B8dj3O9a.js +323 -0
- package/node_modules/@comis/web/dist/assets/chat-console-CNmzl0JW.js +943 -0
- package/node_modules/@comis/web/dist/assets/config-editor-DX4ITw6y.js +1374 -0
- package/node_modules/@comis/web/dist/assets/context-dag-browser-BwiaF5tf.js +393 -0
- package/node_modules/@comis/web/dist/assets/context-engine-BZ5Am6hA.js +393 -0
- package/node_modules/@comis/web/dist/assets/delivery-view-OfBZof-m.js +392 -0
- package/node_modules/@comis/web/dist/assets/diagnostics-view-YFwCxgr2.js +231 -0
- package/node_modules/@comis/web/dist/assets/directive-DoeGSK_T.js +1 -0
- package/node_modules/@comis/web/dist/assets/extract-variables-BM5qyK-s.js +149 -0
- package/node_modules/@comis/web/dist/assets/ic-array-editor-B7m6x7-S.js +118 -0
- package/node_modules/@comis/web/dist/assets/ic-breadcrumb-CUMpp3BL.js +75 -0
- package/node_modules/@comis/web/dist/assets/ic-budget-segment-bar-BtJ6x5mN.js +64 -0
- package/node_modules/@comis/web/dist/assets/ic-chat-message-CFyDJd0z.js +352 -0
- package/node_modules/@comis/web/dist/assets/ic-confirm-dialog-CCDbB04e.js +110 -0
- package/node_modules/@comis/web/dist/assets/ic-connection-dot-CnT1b8xr.js +54 -0
- package/node_modules/@comis/web/dist/assets/ic-data-table-CKUNTxHw.js +277 -0
- package/node_modules/@comis/web/dist/assets/ic-delivery-row-GP5Fkygs.js +67 -0
- package/node_modules/@comis/web/dist/assets/ic-detail-panel-BF83r-if.js +116 -0
- package/node_modules/@comis/web/dist/assets/ic-empty-state-60l2ePhd.js +52 -0
- package/node_modules/@comis/web/dist/assets/ic-graph-canvas-C8FuSMe1.js +359 -0
- package/node_modules/@comis/web/dist/assets/ic-icon-xeGTVhVG.js +33 -0
- package/node_modules/@comis/web/dist/assets/ic-layer-waterfall-COvEYMg5.js +69 -0
- package/node_modules/@comis/web/dist/assets/ic-relative-time-3FqpjeAI.js +12 -0
- package/node_modules/@comis/web/dist/assets/ic-search-input-CSOxY9g7.js +92 -0
- package/node_modules/@comis/web/dist/assets/ic-select-Ce-Raudx.js +127 -0
- package/node_modules/@comis/web/dist/assets/ic-tabs-B7QtM_v8.js +95 -0
- package/node_modules/@comis/web/dist/assets/ic-tag-CPPUnDLF.js +33 -0
- package/node_modules/@comis/web/dist/assets/ic-time-range-picker-CypCT68y.js +93 -0
- package/node_modules/@comis/web/dist/assets/ic-tool-call-7MaXSsCW.js +146 -0
- package/node_modules/@comis/web/dist/assets/index-CEcM1R_C.js +2830 -0
- package/node_modules/@comis/web/dist/assets/index-CIJFuItj.css +1 -0
- package/node_modules/@comis/web/dist/assets/mcp-management-BNZPnpDn.js +582 -0
- package/node_modules/@comis/web/dist/assets/media-config-BBvTYxOX.js +314 -0
- package/node_modules/@comis/web/dist/assets/media-test-BkK3RCRK.js +496 -0
- package/node_modules/@comis/web/dist/assets/memory-inspector-1hDGCGat.js +1139 -0
- package/node_modules/@comis/web/dist/assets/message-center-CXefwsUu.js +785 -0
- package/node_modules/@comis/web/dist/assets/models-C1qcU_j3.js +894 -0
- package/node_modules/@comis/web/dist/assets/observability-types-D7jUtSde.js +1 -0
- package/node_modules/@comis/web/dist/assets/observe-view-C0VBhX4C.js +814 -0
- package/node_modules/@comis/web/dist/assets/pipeline-builder-DcUUIrm0.js +1496 -0
- package/node_modules/@comis/web/dist/assets/pipeline-history-DkfOQ6SW.js +317 -0
- package/node_modules/@comis/web/dist/assets/pipeline-history-detail-hyHgD0ai.js +287 -0
- package/node_modules/@comis/web/dist/assets/pipeline-list-BPW8hV-q.js +518 -0
- package/node_modules/@comis/web/dist/assets/pipeline-monitor-Bip16T7e.js +972 -0
- package/node_modules/@comis/web/dist/assets/scheduler-BGgwKd06.js +1182 -0
- package/node_modules/@comis/web/dist/assets/security-D15st4xx.js +1224 -0
- package/node_modules/@comis/web/dist/assets/session-detail-SGEYNJ0M.js +632 -0
- package/node_modules/@comis/web/dist/assets/session-key-parser-DPORMVyU.js +1 -0
- package/node_modules/@comis/web/dist/assets/session-list-6ybUTxbY.js +231 -0
- package/node_modules/@comis/web/dist/assets/setup-wizard-nT0tz9QP.js +853 -0
- package/node_modules/@comis/web/dist/assets/skills-D8yVfSUy.js +1051 -0
- package/node_modules/@comis/web/dist/assets/subagents-HHXMeHYo.js +193 -0
- package/node_modules/@comis/web/dist/assets/workspace-manager-BQlr10iH.js +785 -0
- package/node_modules/@comis/web/dist/comis-logo.png +0 -0
- package/node_modules/@comis/web/dist/favicon-16x16.png +0 -0
- package/node_modules/@comis/web/dist/favicon-32x32.png +0 -0
- package/node_modules/@comis/web/dist/favicon.ico +0 -0
- package/node_modules/@comis/web/dist/index.html +17 -0
- package/node_modules/@comis/web/package.json +29 -0
- package/package.json +15 -13
|
@@ -230,6 +230,7 @@ export function buildNonInteractiveState(opts) {
|
|
|
230
230
|
authMethod: gatewayAuth,
|
|
231
231
|
...(gatewayToken !== undefined && { token: gatewayToken }),
|
|
232
232
|
...(gatewayPassword !== undefined && { password: gatewayPassword }),
|
|
233
|
+
webEnabled: true,
|
|
233
234
|
};
|
|
234
235
|
// Data directory
|
|
235
236
|
const dataDir = opts.dataDir ?? safePath(homedir(), ".comis", "data");
|
|
@@ -68,12 +68,16 @@ function extractStateFromConfig(raw, envRecord = {}) {
|
|
|
68
68
|
bindMode = "custom";
|
|
69
69
|
customIp = host;
|
|
70
70
|
}
|
|
71
|
+
// Recover gateway.web.enabled (default true) when reloading existing config
|
|
72
|
+
const webRaw = gatewayRaw["web"];
|
|
73
|
+
const webEnabled = webRaw && typeof webRaw["enabled"] === "boolean" ? webRaw["enabled"] : true;
|
|
71
74
|
if (port !== undefined) {
|
|
72
75
|
gateway = {
|
|
73
76
|
port,
|
|
74
77
|
bindMode,
|
|
75
78
|
...(customIp !== undefined && { customIp }),
|
|
76
79
|
authMethod: "token",
|
|
80
|
+
webEnabled,
|
|
77
81
|
};
|
|
78
82
|
}
|
|
79
83
|
}
|
|
@@ -91,6 +91,14 @@ export const gatewayStep = {
|
|
|
91
91
|
},
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
|
+
// 5b. Web dashboard prompt
|
|
95
|
+
const webEnabled = await prompter.confirm({
|
|
96
|
+
message: "Enable web dashboard? (served at /app/ on the gateway port)",
|
|
97
|
+
initialValue: state.gateway?.webEnabled ?? true,
|
|
98
|
+
});
|
|
99
|
+
if (webEnabled && bindMode === "loopback") {
|
|
100
|
+
prompter.log.info("Dashboard will bind to 127.0.0.1 only. For remote access, SSH-tunnel: `ssh -L 4766:localhost:4766 user@host`.");
|
|
101
|
+
}
|
|
94
102
|
// 6. Build config and update state
|
|
95
103
|
const config = {
|
|
96
104
|
port,
|
|
@@ -99,6 +107,7 @@ export const gatewayStep = {
|
|
|
99
107
|
authMethod: authMethod,
|
|
100
108
|
...(token !== undefined && { token }),
|
|
101
109
|
...(password !== undefined && { password }),
|
|
110
|
+
webEnabled,
|
|
102
111
|
};
|
|
103
112
|
return updateState(state, { gateway: config });
|
|
104
113
|
},
|
|
@@ -96,6 +96,8 @@ function buildConfigObject(state) {
|
|
|
96
96
|
else if (state.gateway.authMethod === "password") {
|
|
97
97
|
gatewayConfig.password = "${COMIS_GATEWAY_PASSWORD}";
|
|
98
98
|
}
|
|
99
|
+
// Web dashboard -- default true; wizard always sets this explicitly
|
|
100
|
+
gatewayConfig.web = { enabled: state.gateway.webEnabled };
|
|
99
101
|
config.gateway = gatewayConfig;
|
|
100
102
|
}
|
|
101
103
|
// Channels section
|
|
@@ -54,6 +54,9 @@ function buildGatewayInfo(state) {
|
|
|
54
54
|
host = "127.0.0.1";
|
|
55
55
|
}
|
|
56
56
|
const wsLine = ` WebSocket: ${brand(`ws://${host}:${state.gateway.port}/ws`)}`;
|
|
57
|
+
const dashboardLine = state.gateway.webEnabled
|
|
58
|
+
? ` Dashboard: ${brand(`http://${host}:${state.gateway.port}/app/`)}`
|
|
59
|
+
: undefined;
|
|
57
60
|
let authLine;
|
|
58
61
|
if (state.gateway.authMethod === "password") {
|
|
59
62
|
authLine = " Auth: Password auth (in ~/.comis/.env)";
|
|
@@ -64,8 +67,8 @@ function buildGatewayInfo(state) {
|
|
|
64
67
|
: "see file";
|
|
65
68
|
authLine = ` Token: ${tokenPreview} (in ~/.comis/.env)`;
|
|
66
69
|
}
|
|
67
|
-
const
|
|
68
|
-
return
|
|
70
|
+
const lines = [wsLine, dashboardLine, authLine].filter((l) => l !== undefined);
|
|
71
|
+
return lines.join("\n");
|
|
69
72
|
}
|
|
70
73
|
// ---------- Step Implementation ----------
|
|
71
74
|
export const finishStep = {
|
|
@@ -65,6 +65,7 @@ export type GatewayConfig = {
|
|
|
65
65
|
authMethod: "token" | "password";
|
|
66
66
|
token?: string;
|
|
67
67
|
password?: string;
|
|
68
|
+
webEnabled: boolean;
|
|
68
69
|
};
|
|
69
70
|
/** Auth method for providers that support both API keys and OAuth tokens. */
|
|
70
71
|
export type AuthMethod = "apikey" | "oauth";
|
|
@@ -29,9 +29,9 @@ export declare const GatewayTokenSchema: z.ZodObject<{
|
|
|
29
29
|
/** The secret value (min 32 chars; resolved at runtime if omitted; string or SecretRef) */
|
|
30
30
|
secret: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
31
31
|
source: z.ZodEnum<{
|
|
32
|
+
env: "env";
|
|
32
33
|
file: "file";
|
|
33
34
|
exec: "exec";
|
|
34
|
-
env: "env";
|
|
35
35
|
}>;
|
|
36
36
|
provider: z.ZodString;
|
|
37
37
|
id: z.ZodString;
|
|
@@ -48,6 +48,15 @@ export declare const GatewayRateLimitSchema: z.ZodObject<{
|
|
|
48
48
|
/** Maximum requests per window (default: 100) */
|
|
49
49
|
maxRequests: z.ZodDefault<z.ZodNumber>;
|
|
50
50
|
}, z.core.$strict>;
|
|
51
|
+
/**
|
|
52
|
+
* Web dashboard configuration. Controls whether the @comis/web SPA is mounted
|
|
53
|
+
* at /app/* alongside the gateway, sharing the same host/port/auth. When
|
|
54
|
+
* disabled, the daemon skips /app/*, /api, SSE, and the `/` -> `/app/` redirect.
|
|
55
|
+
*/
|
|
56
|
+
export declare const GatewayWebConfigSchema: z.ZodObject<{
|
|
57
|
+
/** Enable the web dashboard SPA (default: true) */
|
|
58
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
59
|
+
}, z.core.$strict>;
|
|
51
60
|
/**
|
|
52
61
|
* Gateway server configuration schema.
|
|
53
62
|
*
|
|
@@ -79,9 +88,9 @@ export declare const GatewayConfigSchema: z.ZodObject<{
|
|
|
79
88
|
/** The secret value (min 32 chars; resolved at runtime if omitted; string or SecretRef) */
|
|
80
89
|
secret: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
81
90
|
source: z.ZodEnum<{
|
|
91
|
+
env: "env";
|
|
82
92
|
file: "file";
|
|
83
93
|
exec: "exec";
|
|
84
|
-
env: "env";
|
|
85
94
|
}>;
|
|
86
95
|
provider: z.ZodString;
|
|
87
96
|
id: z.ZodString;
|
|
@@ -96,6 +105,11 @@ export declare const GatewayConfigSchema: z.ZodObject<{
|
|
|
96
105
|
/** Maximum requests per window (default: 100) */
|
|
97
106
|
maxRequests: z.ZodDefault<z.ZodNumber>;
|
|
98
107
|
}, z.core.$strict>>;
|
|
108
|
+
/** Web dashboard (mounted at /app/*, shares gateway host/port/auth) */
|
|
109
|
+
web: z.ZodDefault<z.ZodObject<{
|
|
110
|
+
/** Enable the web dashboard SPA (default: true) */
|
|
111
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
112
|
+
}, z.core.$strict>>;
|
|
99
113
|
/** Maximum JSON-RPC batch size (default: 50) */
|
|
100
114
|
maxBatchSize: z.ZodDefault<z.ZodNumber>;
|
|
101
115
|
/** WebSocket heartbeat interval in milliseconds (default: 30000) */
|
|
@@ -122,3 +136,4 @@ export type GatewayConfig = z.infer<typeof GatewayConfigSchema>;
|
|
|
122
136
|
export type GatewayTlsConfig = z.infer<typeof GatewayTlsConfigSchema>;
|
|
123
137
|
export type GatewayToken = z.infer<typeof GatewayTokenSchema>;
|
|
124
138
|
export type GatewayRateLimit = z.infer<typeof GatewayRateLimitSchema>;
|
|
139
|
+
export type GatewayWebConfig = z.infer<typeof GatewayWebConfigSchema>;
|
|
@@ -42,6 +42,15 @@ export const GatewayRateLimitSchema = z.strictObject({
|
|
|
42
42
|
/** Maximum requests per window (default: 100) */
|
|
43
43
|
maxRequests: z.number().int().positive().default(100),
|
|
44
44
|
});
|
|
45
|
+
/**
|
|
46
|
+
* Web dashboard configuration. Controls whether the @comis/web SPA is mounted
|
|
47
|
+
* at /app/* alongside the gateway, sharing the same host/port/auth. When
|
|
48
|
+
* disabled, the daemon skips /app/*, /api, SSE, and the `/` -> `/app/` redirect.
|
|
49
|
+
*/
|
|
50
|
+
export const GatewayWebConfigSchema = z.strictObject({
|
|
51
|
+
/** Enable the web dashboard SPA (default: true) */
|
|
52
|
+
enabled: z.boolean().default(true),
|
|
53
|
+
});
|
|
45
54
|
/**
|
|
46
55
|
* Gateway server configuration schema.
|
|
47
56
|
*
|
|
@@ -61,6 +70,8 @@ export const GatewayConfigSchema = z.strictObject({
|
|
|
61
70
|
tokens: z.array(GatewayTokenSchema).default([]),
|
|
62
71
|
/** Rate limiting settings */
|
|
63
72
|
rateLimit: GatewayRateLimitSchema.default(() => GatewayRateLimitSchema.parse({})),
|
|
73
|
+
/** Web dashboard (mounted at /app/*, shares gateway host/port/auth) */
|
|
74
|
+
web: GatewayWebConfigSchema.default(() => GatewayWebConfigSchema.parse({})),
|
|
64
75
|
/** Maximum JSON-RPC batch size (default: 50) */
|
|
65
76
|
maxBatchSize: z.number().int().positive().default(50),
|
|
66
77
|
/** WebSocket heartbeat interval in milliseconds (default: 30000) */
|