comisai 1.0.16 → 1.0.18

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.
Files changed (90) hide show
  1. package/node_modules/@comis/agent/package.json +1 -1
  2. package/node_modules/@comis/channels/package.json +1 -1
  3. package/node_modules/@comis/cli/dist/wizard/non-interactive.js +1 -0
  4. package/node_modules/@comis/cli/dist/wizard/steps/01-detect-existing.js +2 -0
  5. package/node_modules/@comis/cli/dist/wizard/steps/07-gateway.js +9 -0
  6. package/node_modules/@comis/cli/dist/wizard/steps/10-write-config.js +2 -0
  7. package/node_modules/@comis/cli/dist/wizard/steps/12-finish.js +5 -2
  8. package/node_modules/@comis/cli/dist/wizard/types.d.ts +1 -0
  9. package/node_modules/@comis/cli/package.json +1 -1
  10. package/node_modules/@comis/core/dist/config/schema-gateway.d.ts +17 -2
  11. package/node_modules/@comis/core/dist/config/schema-gateway.js +11 -0
  12. package/node_modules/@comis/core/dist/config/schema.d.ts +60 -57
  13. package/node_modules/@comis/core/package.json +1 -1
  14. package/node_modules/@comis/daemon/dist/wiring/setup-gateway.js +34 -6
  15. package/node_modules/@comis/daemon/package.json +1 -1
  16. package/node_modules/@comis/gateway/package.json +1 -1
  17. package/node_modules/@comis/infra/package.json +1 -1
  18. package/node_modules/@comis/memory/package.json +1 -1
  19. package/node_modules/@comis/scheduler/package.json +1 -1
  20. package/node_modules/@comis/shared/package.json +1 -1
  21. package/node_modules/@comis/skills/package.json +1 -1
  22. package/node_modules/@comis/web/dist/android-chrome-192x192.png +0 -0
  23. package/node_modules/@comis/web/dist/android-chrome-512x512.png +0 -0
  24. package/node_modules/@comis/web/dist/apple-touch-icon.png +0 -0
  25. package/node_modules/@comis/web/dist/assets/agent-detail-BG9MGWWj.js +615 -0
  26. package/node_modules/@comis/web/dist/assets/agent-editor-C26Q_xCs.js +2173 -0
  27. package/node_modules/@comis/web/dist/assets/agent-list-LHCJ4rw2.js +504 -0
  28. package/node_modules/@comis/web/dist/assets/approvals-q9VH_IKr.js +54 -0
  29. package/node_modules/@comis/web/dist/assets/billing-view-CtYvBqTE.js +375 -0
  30. package/node_modules/@comis/web/dist/assets/channel-detail-CaInesJM.js +681 -0
  31. package/node_modules/@comis/web/dist/assets/channel-list-B8dj3O9a.js +323 -0
  32. package/node_modules/@comis/web/dist/assets/chat-console-CNmzl0JW.js +943 -0
  33. package/node_modules/@comis/web/dist/assets/config-editor-DX4ITw6y.js +1374 -0
  34. package/node_modules/@comis/web/dist/assets/context-dag-browser-BwiaF5tf.js +393 -0
  35. package/node_modules/@comis/web/dist/assets/context-engine-BZ5Am6hA.js +393 -0
  36. package/node_modules/@comis/web/dist/assets/delivery-view-OfBZof-m.js +392 -0
  37. package/node_modules/@comis/web/dist/assets/diagnostics-view-YFwCxgr2.js +231 -0
  38. package/node_modules/@comis/web/dist/assets/directive-DoeGSK_T.js +1 -0
  39. package/node_modules/@comis/web/dist/assets/extract-variables-BM5qyK-s.js +149 -0
  40. package/node_modules/@comis/web/dist/assets/ic-array-editor-B7m6x7-S.js +118 -0
  41. package/node_modules/@comis/web/dist/assets/ic-breadcrumb-CUMpp3BL.js +75 -0
  42. package/node_modules/@comis/web/dist/assets/ic-budget-segment-bar-BtJ6x5mN.js +64 -0
  43. package/node_modules/@comis/web/dist/assets/ic-chat-message-CFyDJd0z.js +352 -0
  44. package/node_modules/@comis/web/dist/assets/ic-confirm-dialog-CCDbB04e.js +110 -0
  45. package/node_modules/@comis/web/dist/assets/ic-connection-dot-CnT1b8xr.js +54 -0
  46. package/node_modules/@comis/web/dist/assets/ic-data-table-CKUNTxHw.js +277 -0
  47. package/node_modules/@comis/web/dist/assets/ic-delivery-row-GP5Fkygs.js +67 -0
  48. package/node_modules/@comis/web/dist/assets/ic-detail-panel-BF83r-if.js +116 -0
  49. package/node_modules/@comis/web/dist/assets/ic-empty-state-60l2ePhd.js +52 -0
  50. package/node_modules/@comis/web/dist/assets/ic-graph-canvas-C8FuSMe1.js +359 -0
  51. package/node_modules/@comis/web/dist/assets/ic-icon-xeGTVhVG.js +33 -0
  52. package/node_modules/@comis/web/dist/assets/ic-layer-waterfall-COvEYMg5.js +69 -0
  53. package/node_modules/@comis/web/dist/assets/ic-relative-time-3FqpjeAI.js +12 -0
  54. package/node_modules/@comis/web/dist/assets/ic-search-input-CSOxY9g7.js +92 -0
  55. package/node_modules/@comis/web/dist/assets/ic-select-Ce-Raudx.js +127 -0
  56. package/node_modules/@comis/web/dist/assets/ic-tabs-B7QtM_v8.js +95 -0
  57. package/node_modules/@comis/web/dist/assets/ic-tag-CPPUnDLF.js +33 -0
  58. package/node_modules/@comis/web/dist/assets/ic-time-range-picker-CypCT68y.js +93 -0
  59. package/node_modules/@comis/web/dist/assets/ic-tool-call-7MaXSsCW.js +146 -0
  60. package/node_modules/@comis/web/dist/assets/index-CEcM1R_C.js +2830 -0
  61. package/node_modules/@comis/web/dist/assets/index-CIJFuItj.css +1 -0
  62. package/node_modules/@comis/web/dist/assets/mcp-management-BNZPnpDn.js +582 -0
  63. package/node_modules/@comis/web/dist/assets/media-config-BBvTYxOX.js +314 -0
  64. package/node_modules/@comis/web/dist/assets/media-test-BkK3RCRK.js +496 -0
  65. package/node_modules/@comis/web/dist/assets/memory-inspector-1hDGCGat.js +1139 -0
  66. package/node_modules/@comis/web/dist/assets/message-center-CXefwsUu.js +785 -0
  67. package/node_modules/@comis/web/dist/assets/models-C1qcU_j3.js +894 -0
  68. package/node_modules/@comis/web/dist/assets/observability-types-D7jUtSde.js +1 -0
  69. package/node_modules/@comis/web/dist/assets/observe-view-C0VBhX4C.js +814 -0
  70. package/node_modules/@comis/web/dist/assets/pipeline-builder-DcUUIrm0.js +1496 -0
  71. package/node_modules/@comis/web/dist/assets/pipeline-history-DkfOQ6SW.js +317 -0
  72. package/node_modules/@comis/web/dist/assets/pipeline-history-detail-hyHgD0ai.js +287 -0
  73. package/node_modules/@comis/web/dist/assets/pipeline-list-BPW8hV-q.js +518 -0
  74. package/node_modules/@comis/web/dist/assets/pipeline-monitor-Bip16T7e.js +972 -0
  75. package/node_modules/@comis/web/dist/assets/scheduler-BGgwKd06.js +1182 -0
  76. package/node_modules/@comis/web/dist/assets/security-D15st4xx.js +1224 -0
  77. package/node_modules/@comis/web/dist/assets/session-detail-SGEYNJ0M.js +632 -0
  78. package/node_modules/@comis/web/dist/assets/session-key-parser-DPORMVyU.js +1 -0
  79. package/node_modules/@comis/web/dist/assets/session-list-6ybUTxbY.js +231 -0
  80. package/node_modules/@comis/web/dist/assets/setup-wizard-nT0tz9QP.js +853 -0
  81. package/node_modules/@comis/web/dist/assets/skills-D8yVfSUy.js +1051 -0
  82. package/node_modules/@comis/web/dist/assets/subagents-HHXMeHYo.js +193 -0
  83. package/node_modules/@comis/web/dist/assets/workspace-manager-BQlr10iH.js +785 -0
  84. package/node_modules/@comis/web/dist/comis-logo.png +0 -0
  85. package/node_modules/@comis/web/dist/favicon-16x16.png +0 -0
  86. package/node_modules/@comis/web/dist/favicon-32x32.png +0 -0
  87. package/node_modules/@comis/web/dist/favicon.ico +0 -0
  88. package/node_modules/@comis/web/dist/index.html +17 -0
  89. package/node_modules/@comis/web/package.json +29 -0
  90. package/package.json +15 -13
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@comis/agent",
3
3
  "private": true,
4
- "version": "1.0.16",
4
+ "version": "1.0.18",
5
5
  "author": "Moshe Anconina",
6
6
  "license": "Apache-2.0",
7
7
  "description": "AI agent executor, budget control, and session management for Comis",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@comis/channels",
3
3
  "private": true,
4
- "version": "1.0.16",
4
+ "version": "1.0.18",
5
5
  "author": "Moshe Anconina",
6
6
  "license": "Apache-2.0",
7
7
  "description": "Chat platform adapters — Discord, Telegram, Slack, WhatsApp, Signal, iMessage, IRC, LINE",
@@ -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");
@@ -69,11 +69,13 @@ function extractStateFromConfig(raw, envRecord = {}) {
69
69
  customIp = host;
70
70
  }
71
71
  if (port !== undefined) {
72
+ const webRaw = gatewayRaw["web"];
72
73
  gateway = {
73
74
  port,
74
75
  bindMode,
75
76
  ...(customIp !== undefined && { customIp }),
76
77
  authMethod: "token",
78
+ webEnabled: typeof webRaw?.["enabled"] === "boolean" ? webRaw["enabled"] : true,
77
79
  };
78
80
  }
79
81
  }
@@ -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 webLine = ` Web App: ${brand(`http://${host}:${state.gateway.port}`)}`;
68
- return `${wsLine}\n${webLine}\n${authLine}`;
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";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@comis/cli",
3
3
  "private": true,
4
- "version": "1.0.16",
4
+ "version": "1.0.18",
5
5
  "author": "Moshe Anconina",
6
6
  "license": "Apache-2.0",
7
7
  "description": "Command-line interface for the Comis AI agent platform",
@@ -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) */