@alook/cli 0.0.46 → 0.0.48

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/index.js CHANGED
@@ -14836,6 +14836,7 @@ var CalendarEventApiSchema = exports_external.object({
14836
14836
  description: exports_external.string().nullable(),
14837
14837
  scheduled_at: exports_external.string(),
14838
14838
  occurrence_at: exports_external.string(),
14839
+ collapsed_count: exports_external.number().nullable().optional(),
14839
14840
  repeat_interval: exports_external.string().nullable(),
14840
14841
  repeat_stop_at: exports_external.string().nullable(),
14841
14842
  last_triggered_at: exports_external.string().nullable(),
@@ -15053,6 +15054,21 @@ var WorkspaceFileReportSchema = exports_external.object({
15053
15054
  error: exports_external.string().optional(),
15054
15055
  path: exports_external.string()
15055
15056
  });
15057
+ var StudioMemberSchema = exports_external.object({
15058
+ name: exports_external.string().optional(),
15059
+ role: exports_external.enum(["leader", "researcher", "engineer", "assistant"]),
15060
+ runtime_id: exports_external.string().min(1, "runtime_id is required"),
15061
+ runtime_config: exports_external.object({ model: exports_external.string().max(100).optional() }).passthrough().optional(),
15062
+ description: exports_external.string().optional().default(""),
15063
+ instructions: exports_external.string().optional().default(""),
15064
+ avatar_url: exports_external.string().max(2000).nullable().optional(),
15065
+ email_handle: exports_external.string().max(30).optional()
15066
+ });
15067
+ var CreateStudioRequestSchema = exports_external.object({
15068
+ name: exports_external.string().max(100).optional(),
15069
+ scenario: exports_external.string().max(50).optional(),
15070
+ members: exports_external.array(StudioMemberSchema).min(1).max(4)
15071
+ }).refine((v) => v.members.some((m) => m.role === "leader"), { message: "at least one member must have the leader role" });
15056
15072
  // ../../node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare+workers-types@4.20260504.1_@opentelemetry+api@1.9.1_bun-types@1.3.13_kysely@0.28.16/node_modules/drizzle-orm/entity.js
15057
15073
  var entityKind = Symbol.for("drizzle:entityKind");
15058
15074
  var hasOwnEntityKind = Symbol.for("drizzle:hasOwnEntityKind");
@@ -16447,7 +16463,7 @@ var session = sqliteTable("session", {
16447
16463
  userAgent: text("userAgent"),
16448
16464
  createdAt: text("createdAt").notNull().$defaultFn(() => new Date().toISOString()),
16449
16465
  updatedAt: text("updatedAt").notNull().$defaultFn(() => new Date().toISOString())
16450
- });
16466
+ }, (t) => [index("idx_session_token_expires").on(t.token, t.expiresAt)]);
16451
16467
  var account = sqliteTable("account", {
16452
16468
  id: text("id").primaryKey().$defaultFn(() => nanoid3()),
16453
16469
  userId: text("userId").notNull().references(() => user.id, { onDelete: "cascade" }),
@@ -16717,7 +16733,10 @@ var taskMessage = sqliteTable("task_message", {
16717
16733
  input: text("input", { mode: "json" }),
16718
16734
  output: text("output").notNull().default(""),
16719
16735
  createdAt: text("created_at").notNull().$defaultFn(() => new Date().toISOString())
16720
- }, (t) => [index("idx_task_message_task_seq").on(t.taskId, t.seq)]);
16736
+ }, (t) => [
16737
+ index("idx_task_message_task_seq").on(t.taskId, t.seq),
16738
+ index("idx_task_message_task_created").on(t.taskId, t.createdAt)
16739
+ ]);
16721
16740
  var emails = sqliteTable("emails", {
16722
16741
  id: text("id").primaryKey().$defaultFn(() => nanoid3()),
16723
16742
  agentId: text("agent_id").notNull(),
@@ -16740,7 +16759,12 @@ var emails = sqliteTable("emails", {
16740
16759
  foreignKey({
16741
16760
  columns: [t.agentId, t.workspaceId],
16742
16761
  foreignColumns: [agent.id, agent.workspaceId]
16743
- }).onDelete("cascade")
16762
+ }).onDelete("cascade"),
16763
+ index("idx_emails_agent_ws_status").on(t.agentId, t.workspaceId, t.status),
16764
+ index("idx_emails_to_direction").on(t.toEmail, t.direction),
16765
+ index("idx_emails_from_direction").on(t.fromEmail, t.direction),
16766
+ index("idx_emails_message_id").on(t.messageId),
16767
+ index("idx_emails_created_at").on(t.createdAt)
16744
16768
  ]);
16745
16769
  var calendarEvent = sqliteTable("calendar_event", {
16746
16770
  id: text("id").primaryKey().$defaultFn(() => "ce_" + nanoid3()),
@@ -16904,6 +16928,9 @@ var workspaceFileRequest = sqliteTable("workspace_file_request", {
16904
16928
  // ../shared/src/db/queries/task.ts
16905
16929
  var DEFAULT_STALE_SECONDS = Number(process.env.ALOOK_STALE_DISPATCH_TIMEOUT_S) || 20;
16906
16930
  var DEFAULT_STALE_RUNNING_SECONDS = Number(process.env.ALOOK_STALE_RUNNING_TIMEOUT_S) || 3600;
16931
+ // ../shared/src/db/queries/task-message.ts
16932
+ var HIDDEN_STEP_TYPES = ["status", "log", "tool-result", "text"];
16933
+ var FIXED_PARAMS = 1 + HIDDEN_STEP_TYPES.length;
16907
16934
  // ../shared/src/utils/email.ts
16908
16935
  var DOMAIN = `@${process.env.ALOOK_DOMAIN || "alook.ai"}`;
16909
16936
  var RESERVED_HANDLES = new Set([
@@ -19124,7 +19151,7 @@ function calendarCommand() {
19124
19151
  return;
19125
19152
  }
19126
19153
  for (const ev of events) {
19127
- const repeatBadge = ev.repeat_interval ? ` [every ${ev.repeat_interval}${ev.repeat_stop_at ? ` until ${formatLocalDatetime(ev.repeat_stop_at)}` : ""}]` : "";
19154
+ const repeatBadge = ev.repeat_interval ? ` [every ${ev.repeat_interval}${ev.collapsed_count ? ` · ${ev.collapsed_count} occurrences` : ""}${ev.repeat_stop_at ? ` until ${formatLocalDatetime(ev.repeat_stop_at)}` : ""}]` : "";
19128
19155
  const descBadge = ev.description ? " [has description]" : "";
19129
19156
  console.log(`${ev.id} ${formatLocalDatetime(ev.scheduled_at)} ${ev.title}${repeatBadge}${descBadge}`);
19130
19157
  }
@@ -14553,6 +14553,7 @@ var CalendarEventApiSchema = exports_external.object({
14553
14553
  description: exports_external.string().nullable(),
14554
14554
  scheduled_at: exports_external.string(),
14555
14555
  occurrence_at: exports_external.string(),
14556
+ collapsed_count: exports_external.number().nullable().optional(),
14556
14557
  repeat_interval: exports_external.string().nullable(),
14557
14558
  repeat_stop_at: exports_external.string().nullable(),
14558
14559
  last_triggered_at: exports_external.string().nullable(),
@@ -14770,6 +14771,21 @@ var WorkspaceFileReportSchema = exports_external.object({
14770
14771
  error: exports_external.string().optional(),
14771
14772
  path: exports_external.string()
14772
14773
  });
14774
+ var StudioMemberSchema = exports_external.object({
14775
+ name: exports_external.string().optional(),
14776
+ role: exports_external.enum(["leader", "researcher", "engineer", "assistant"]),
14777
+ runtime_id: exports_external.string().min(1, "runtime_id is required"),
14778
+ runtime_config: exports_external.object({ model: exports_external.string().max(100).optional() }).passthrough().optional(),
14779
+ description: exports_external.string().optional().default(""),
14780
+ instructions: exports_external.string().optional().default(""),
14781
+ avatar_url: exports_external.string().max(2000).nullable().optional(),
14782
+ email_handle: exports_external.string().max(30).optional()
14783
+ });
14784
+ var CreateStudioRequestSchema = exports_external.object({
14785
+ name: exports_external.string().max(100).optional(),
14786
+ scenario: exports_external.string().max(50).optional(),
14787
+ members: exports_external.array(StudioMemberSchema).min(1).max(4)
14788
+ }).refine((v) => v.members.some((m) => m.role === "leader"), { message: "at least one member must have the leader role" });
14773
14789
  // ../../node_modules/.pnpm/drizzle-orm@0.45.2_@cloudflare+workers-types@4.20260504.1_@opentelemetry+api@1.9.1_bun-types@1.3.13_kysely@0.28.16/node_modules/drizzle-orm/entity.js
14774
14790
  var entityKind = Symbol.for("drizzle:entityKind");
14775
14791
  var hasOwnEntityKind = Symbol.for("drizzle:hasOwnEntityKind");
@@ -16164,7 +16180,7 @@ var session = sqliteTable("session", {
16164
16180
  userAgent: text("userAgent"),
16165
16181
  createdAt: text("createdAt").notNull().$defaultFn(() => new Date().toISOString()),
16166
16182
  updatedAt: text("updatedAt").notNull().$defaultFn(() => new Date().toISOString())
16167
- });
16183
+ }, (t) => [index("idx_session_token_expires").on(t.token, t.expiresAt)]);
16168
16184
  var account = sqliteTable("account", {
16169
16185
  id: text("id").primaryKey().$defaultFn(() => nanoid3()),
16170
16186
  userId: text("userId").notNull().references(() => user.id, { onDelete: "cascade" }),
@@ -16434,7 +16450,10 @@ var taskMessage = sqliteTable("task_message", {
16434
16450
  input: text("input", { mode: "json" }),
16435
16451
  output: text("output").notNull().default(""),
16436
16452
  createdAt: text("created_at").notNull().$defaultFn(() => new Date().toISOString())
16437
- }, (t) => [index("idx_task_message_task_seq").on(t.taskId, t.seq)]);
16453
+ }, (t) => [
16454
+ index("idx_task_message_task_seq").on(t.taskId, t.seq),
16455
+ index("idx_task_message_task_created").on(t.taskId, t.createdAt)
16456
+ ]);
16438
16457
  var emails = sqliteTable("emails", {
16439
16458
  id: text("id").primaryKey().$defaultFn(() => nanoid3()),
16440
16459
  agentId: text("agent_id").notNull(),
@@ -16457,7 +16476,12 @@ var emails = sqliteTable("emails", {
16457
16476
  foreignKey({
16458
16477
  columns: [t.agentId, t.workspaceId],
16459
16478
  foreignColumns: [agent.id, agent.workspaceId]
16460
- }).onDelete("cascade")
16479
+ }).onDelete("cascade"),
16480
+ index("idx_emails_agent_ws_status").on(t.agentId, t.workspaceId, t.status),
16481
+ index("idx_emails_to_direction").on(t.toEmail, t.direction),
16482
+ index("idx_emails_from_direction").on(t.fromEmail, t.direction),
16483
+ index("idx_emails_message_id").on(t.messageId),
16484
+ index("idx_emails_created_at").on(t.createdAt)
16461
16485
  ]);
16462
16486
  var calendarEvent = sqliteTable("calendar_event", {
16463
16487
  id: text("id").primaryKey().$defaultFn(() => "ce_" + nanoid3()),
@@ -16621,6 +16645,9 @@ var workspaceFileRequest = sqliteTable("workspace_file_request", {
16621
16645
  // ../shared/src/db/queries/task.ts
16622
16646
  var DEFAULT_STALE_SECONDS = Number(process.env.ALOOK_STALE_DISPATCH_TIMEOUT_S) || 20;
16623
16647
  var DEFAULT_STALE_RUNNING_SECONDS = Number(process.env.ALOOK_STALE_RUNNING_TIMEOUT_S) || 3600;
16648
+ // ../shared/src/db/queries/task-message.ts
16649
+ var HIDDEN_STEP_TYPES = ["status", "log", "tool-result", "text"];
16650
+ var FIXED_PARAMS = 1 + HIDDEN_STEP_TYPES.length;
16624
16651
  // ../shared/src/utils/email.ts
16625
16652
  var DOMAIN = `@${process.env.ALOOK_DOMAIN || "alook.ai"}`;
16626
16653
  var RESERVED_HANDLES = new Set([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alook/cli",
3
- "version": "0.0.46",
3
+ "version": "0.0.48",
4
4
  "description": "Alook CLI — Enable Your Person Colleague",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/alookai/alook#readme",