@robbeverhelst/do 1.371.0 → 1.373.0

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 (2) hide show
  1. package/dist/do.js +295 -155
  2. package/package.json +1 -1
package/dist/do.js CHANGED
@@ -14420,7 +14420,7 @@ var configError = (message) => new CliError("config", message, EXIT.CONFIG);
14420
14420
 
14421
14421
  // src/meta.ts
14422
14422
  var CLI_NAME = "do";
14423
- var VERSION = "1.371.0";
14423
+ var VERSION = "1.373.0";
14424
14424
  var API_PREFIX = "/api/v1";
14425
14425
  var DEFAULT_API_URL = "http://localhost:3001";
14426
14426
 
@@ -19367,159 +19367,6 @@ var NODE_RECEIPT_ABOUT_VALUES = [
19367
19367
  ];
19368
19368
  var MONEY_RECEIPT_ABOUT_VALUES = RECEIPT_KINDS[MONEY_RECEIPT_NODE_TYPE].about;
19369
19369
 
19370
- // ../../packages/schema/src/visibility.ts
19371
- var NODE_VISIBILITY_VALUES = ["space", "owner"];
19372
- var SENSITIVE_SCOPE_GROUPS = {
19373
- health: ["health:read", "health:write", "health:export"],
19374
- journal: ["journal:read", "journal:write", "journal:export"],
19375
- documents: ["documents:private"],
19376
- finance: ["finance:read", "finance:write"],
19377
- family_tree: ["people:family-tree"]
19378
- };
19379
- var SENSITIVE_GROUP_VALUES = Object.keys(SENSITIVE_SCOPE_GROUPS);
19380
- var SENSITIVE_SCOPE_VALUES = Object.values(SENSITIVE_SCOPE_GROUPS).flat();
19381
- var HEALTH_NODE_TYPES = {
19382
- health_condition: { group: "health", forced: true },
19383
- health_episode: { group: "health", forced: true },
19384
- health_encounter: { group: "health", forced: true },
19385
- health_medication: { group: "health", forced: true },
19386
- health_lab_panel: { group: "health", forced: true }
19387
- };
19388
- var JOURNAL_NODE_TYPES = {
19389
- journal_day: { group: "journal", forced: true },
19390
- journal_entry: { group: "journal", forced: true },
19391
- journal_recap: { group: "journal", forced: true }
19392
- };
19393
- var FOOD_NODE_TYPES = {
19394
- meal_log: { group: "health", forced: true },
19395
- food_trial: { group: "health", forced: true },
19396
- food_week_read: { group: "health", forced: true }
19397
- };
19398
- var FAMILY_TREE_NODE_TYPES = {
19399
- family_tree: { group: "family_tree", forced: true }
19400
- };
19401
- var OWNER_ONLY_NODE_TYPES = {
19402
- ...FAMILY_TREE_NODE_TYPES,
19403
- ...FOOD_NODE_TYPES,
19404
- ...HEALTH_NODE_TYPES,
19405
- ...JOURNAL_NODE_TYPES
19406
- };
19407
- var OPTIONAL_OWNER_NODE_TYPES = {
19408
- recipe: { group: "health", forced: false },
19409
- document: { group: "documents", forced: false },
19410
- money_account: { group: "finance", forced: false },
19411
- journal_milestone: { group: "journal", forced: false },
19412
- money_goal: { group: "finance", forced: false },
19413
- money_recurring: { group: "finance", forced: false }
19414
- };
19415
- var NODE_TYPE_WALLS = {
19416
- ...OPTIONAL_OWNER_NODE_TYPES,
19417
- ...OWNER_ONLY_NODE_TYPES
19418
- };
19419
- var SCOPE_GROUP = new Map(SENSITIVE_GROUP_VALUES.flatMap((group) => SENSITIVE_SCOPE_GROUPS[group].map((scope) => [scope, group])));
19420
- function isSensitiveScope(scope) {
19421
- return SCOPE_GROUP.has(scope);
19422
- }
19423
- var PRIVATE_ACCESS_SCOPE = "private:*";
19424
-
19425
- // ../../packages/schema/src/contracts/common.ts
19426
- var ulidSchema = string2().length(26).regex(/^[0-9A-HJKMNP-TV-Z]{26}$/, "must be a valid ULID");
19427
- var nodeSchema = createSelectSchema(nodes, {
19428
- createdAt: exports_coerce.date(),
19429
- updatedAt: exports_coerce.date(),
19430
- deletedAt: exports_coerce.date().nullable(),
19431
- sortOrder: number2().int().nonnegative().default(0),
19432
- createdByUserId: string2().nullable().default(null),
19433
- createdByAgentId: string2().nullable().default(null),
19434
- updatedByUserId: string2().nullable().default(null),
19435
- updatedByAgentId: string2().nullable().default(null),
19436
- visibility: _enum2(NODE_VISIBILITY_VALUES).default("space"),
19437
- ownerUserId: string2().nullable().default(null)
19438
- });
19439
- var createNodeInputSchema = createInsertSchema(nodes, {
19440
- id: ulidSchema,
19441
- type: string2().min(1),
19442
- title: string2().min(1),
19443
- parentId: ulidSchema.nullish(),
19444
- sortOrder: number2().int().nonnegative().optional(),
19445
- displayKind: string2().min(1).default("default")
19446
- }).omit({
19447
- tenantId: true,
19448
- createdAt: true,
19449
- updatedAt: true,
19450
- deletedAt: true,
19451
- createdByUserId: true,
19452
- createdByAgentId: true,
19453
- updatedByUserId: true,
19454
- updatedByAgentId: true,
19455
- visibility: true,
19456
- ownerUserId: true
19457
- });
19458
- var TRASH_RETENTION_DAYS = 30;
19459
- var TRASH_RETENTION_MS = TRASH_RETENTION_DAYS * 24 * 60 * 60 * 1000;
19460
- var loginInputSchema = object({
19461
- email: string2().email(),
19462
- password: string2().min(1)
19463
- });
19464
- var loginResultSchema = object({
19465
- token: string2(),
19466
- user: object({ id: ulidSchema, email: string2().email() }),
19467
- tenantId: ulidSchema,
19468
- onboardingCompleted: boolean2()
19469
- });
19470
- var googleIdTokenInputSchema = object({
19471
- idToken: string2().min(1)
19472
- });
19473
- var registerInputSchema = object({
19474
- email: string2().email(),
19475
- password: string2().min(8)
19476
- });
19477
- var authResultSchema = object({
19478
- token: string2(),
19479
- onboardingCompleted: boolean2()
19480
- });
19481
- var oauthIdentitySchema = createSelectSchema(oauthIdentities, {
19482
- createdAt: exports_coerce.date()
19483
- });
19484
- var spaceSchema = createSelectSchema(tenants, {
19485
- createdAt: exports_coerce.date(),
19486
- updatedAt: exports_coerce.date(),
19487
- deletedAt: exports_coerce.date().nullable(),
19488
- address: string2().nullable().default(null)
19489
- }).omit({
19490
- gaardHouseUrl: true,
19491
- awayFrom: true,
19492
- awayUntil: true,
19493
- lastTaskNumber: true,
19494
- lastProjectNumber: true
19495
- });
19496
- var backdropIdSchema = string2().trim().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "a backdrop id is lowercase words joined by dashes").max(40);
19497
- var spaceAddressSchema = string2().trim().max(200).transform((line) => line || null).nullable();
19498
- var updateSpaceInputSchema = object({
19499
- name: string2().trim().min(1).max(120).optional(),
19500
- backdrop: backdropIdSchema.nullable().optional(),
19501
- address: spaceAddressSchema.optional()
19502
- }).strict().refine((input) => input.name !== undefined || input.backdrop !== undefined || input.address !== undefined, { message: "nothing to update" });
19503
- var setSpaceAddressInputSchema = object({ address: spaceAddressSchema }).strict();
19504
- var spaceAddressViewSchema = object({ address: string2().nullable() });
19505
- var onboardingResultSchema = object({ onboardingCompleted: boolean2() });
19506
- var authMethodsSchema = object({
19507
- hasPassword: boolean2(),
19508
- google: object({
19509
- connected: boolean2(),
19510
- email: string2().nullable()
19511
- })
19512
- });
19513
- var setPasswordInputSchema = object({
19514
- currentPassword: string2().optional(),
19515
- newPassword: string2().min(8)
19516
- });
19517
- var startLinkResultSchema = object({ authorizationUrl: string2().url() });
19518
- var linkGoogleInputSchema = object({
19519
- code: string2().min(1),
19520
- state: string2().min(1)
19521
- });
19522
-
19523
19370
  // ../../packages/schema/src/contracts/post-cards.ts
19524
19371
  var line2 = string2().trim().min(1).max(200);
19525
19372
  var words = string2().trim().max(2000);
@@ -19816,6 +19663,263 @@ var POST_CARD_DATA = {
19816
19663
  catchup: postCardCatchupSchema
19817
19664
  };
19818
19665
 
19666
+ // ../../packages/schema/src/contracts/agent-asks.ts
19667
+ var askKindSchema = _enum2([
19668
+ "approval",
19669
+ "question",
19670
+ "draft",
19671
+ "checkin",
19672
+ "review",
19673
+ "decision"
19674
+ ]);
19675
+ var askStateSchema = _enum2(["open", "answered", "expired", "snoozed", "delegated"]);
19676
+ var askOnExpireSchema = _enum2(["ask_again", "safe_default", "drop"]);
19677
+ var askViaSchema = _enum2(["do", "push", "mirror"]);
19678
+ var line3 = string2().trim().min(1).max(200);
19679
+ var words2 = string2().trim().min(1).max(2000);
19680
+ var askBodySchema = object({
19681
+ code: string2().min(1).max(4000).optional(),
19682
+ why: words2.optional(),
19683
+ yes: line3.optional(),
19684
+ no: line3.optional(),
19685
+ options: array(object({ label: line3, sub: line3.optional() })).min(1).max(12).optional(),
19686
+ multi: boolean2().optional(),
19687
+ submit: line3.optional(),
19688
+ draft: string2().trim().min(1).max(8000).optional(),
19689
+ items: array(object({ title: line3, meta: line3.optional(), done: boolean2().optional() })).min(1).max(20).optional(),
19690
+ rateLabel: line3.optional(),
19691
+ acts: array(object({
19692
+ label: line3,
19693
+ primary: boolean2().optional(),
19694
+ href: string2().trim().min(1).max(2000).optional()
19695
+ })).min(1).max(6).optional()
19696
+ });
19697
+ var askAnswerSchema = discriminatedUnion("kind", [
19698
+ object({ kind: literal("yes") }),
19699
+ object({ kind: literal("no") }),
19700
+ object({
19701
+ kind: literal("pick"),
19702
+ picked: array(number2().int().nonnegative()).min(1).max(12)
19703
+ }),
19704
+ object({ kind: literal("act"), index: number2().int().nonnegative() }),
19705
+ object({ kind: literal("send"), text: string2().trim().min(1).max(8000) }),
19706
+ object({
19707
+ kind: literal("checkin"),
19708
+ done: array(boolean2()).max(20),
19709
+ rating: number2().int().min(1).max(10).nullable()
19710
+ })
19711
+ ]);
19712
+ var askAnchorSchema = object({
19713
+ type: _enum2(["task", "project", "habit", "note"]),
19714
+ id: string2().min(1).max(64)
19715
+ });
19716
+ var askExpirySchema = object({
19717
+ at: exports_iso.datetime({ offset: true }),
19718
+ windowS: number2().int().positive().max(7 * 24 * 3600).optional(),
19719
+ onExpire: askOnExpireSchema.default("drop"),
19720
+ note: words2.optional()
19721
+ });
19722
+ var agentAskSchema = object({
19723
+ askId: string2().min(1).max(100),
19724
+ threadId: string2().min(1).max(64),
19725
+ kind: askKindSchema,
19726
+ from: postCardWhoSchema.optional(),
19727
+ title: line3,
19728
+ detail: words2.optional(),
19729
+ risk: literal("high").optional(),
19730
+ expires: askExpirySchema.optional(),
19731
+ aboutToday: boolean2().default(false),
19732
+ anchor: askAnchorSchema.optional(),
19733
+ ...askBodySchema.shape
19734
+ });
19735
+ var echoAskSchema = object({
19736
+ id: string2(),
19737
+ threadId: string2(),
19738
+ postId: string2().nullable(),
19739
+ kind: askKindSchema,
19740
+ state: askStateSchema,
19741
+ from: postCardWhoSchema,
19742
+ title: string2(),
19743
+ detail: string2().nullable(),
19744
+ risk: literal("high").nullable(),
19745
+ body: askBodySchema,
19746
+ expiresAt: string2().nullable(),
19747
+ windowS: number2().int().nullable(),
19748
+ onExpire: askOnExpireSchema,
19749
+ expireNote: string2().nullable(),
19750
+ snoozedUntil: string2().nullable(),
19751
+ delegatedTo: string2().nullable(),
19752
+ delegatedToName: string2().nullable().default(null),
19753
+ answer: askAnswerSchema.nullable(),
19754
+ answeredAt: string2().nullable(),
19755
+ answeredVia: askViaSchema.nullable(),
19756
+ aboutToday: boolean2(),
19757
+ anchor: askAnchorSchema.nullable(),
19758
+ createdAt: string2()
19759
+ });
19760
+ var echoAsksSchema = object({ asks: array(echoAskSchema) });
19761
+ var echoAsksQuerySchema = object({
19762
+ since: exports_iso.datetime({ offset: true }).optional()
19763
+ });
19764
+ var answerEchoAskInputSchema = object({ answer: askAnswerSchema });
19765
+ var echoAskAnsweredSchema = object({ ask: echoAskSchema });
19766
+ var ASK_SNOOZE_MAX_MS = 7 * 24 * 3600 * 1000;
19767
+ var snoozeEchoAskInputSchema = object({ until: exports_iso.datetime({ offset: true }) });
19768
+ var delegateEchoAskInputSchema = object({ agentId: string2().min(1).nullable() });
19769
+
19770
+ // ../../packages/schema/src/visibility.ts
19771
+ var NODE_VISIBILITY_VALUES = ["space", "owner"];
19772
+ var SENSITIVE_SCOPE_GROUPS = {
19773
+ health: ["health:read", "health:write", "health:export"],
19774
+ journal: ["journal:read", "journal:write", "journal:export"],
19775
+ documents: ["documents:private"],
19776
+ finance: ["finance:read", "finance:write"],
19777
+ family_tree: ["people:family-tree"]
19778
+ };
19779
+ var SENSITIVE_GROUP_VALUES = Object.keys(SENSITIVE_SCOPE_GROUPS);
19780
+ var SENSITIVE_SCOPE_VALUES = Object.values(SENSITIVE_SCOPE_GROUPS).flat();
19781
+ var HEALTH_NODE_TYPES = {
19782
+ health_condition: { group: "health", forced: true },
19783
+ health_episode: { group: "health", forced: true },
19784
+ health_encounter: { group: "health", forced: true },
19785
+ health_medication: { group: "health", forced: true },
19786
+ health_lab_panel: { group: "health", forced: true }
19787
+ };
19788
+ var JOURNAL_NODE_TYPES = {
19789
+ journal_day: { group: "journal", forced: true },
19790
+ journal_entry: { group: "journal", forced: true },
19791
+ journal_recap: { group: "journal", forced: true }
19792
+ };
19793
+ var FOOD_NODE_TYPES = {
19794
+ meal_log: { group: "health", forced: true },
19795
+ food_trial: { group: "health", forced: true },
19796
+ food_week_read: { group: "health", forced: true }
19797
+ };
19798
+ var FAMILY_TREE_NODE_TYPES = {
19799
+ family_tree: { group: "family_tree", forced: true }
19800
+ };
19801
+ var OWNER_ONLY_NODE_TYPES = {
19802
+ ...FAMILY_TREE_NODE_TYPES,
19803
+ ...FOOD_NODE_TYPES,
19804
+ ...HEALTH_NODE_TYPES,
19805
+ ...JOURNAL_NODE_TYPES
19806
+ };
19807
+ var OPTIONAL_OWNER_NODE_TYPES = {
19808
+ recipe: { group: "health", forced: false },
19809
+ document: { group: "documents", forced: false },
19810
+ money_account: { group: "finance", forced: false },
19811
+ journal_milestone: { group: "journal", forced: false },
19812
+ money_goal: { group: "finance", forced: false },
19813
+ money_recurring: { group: "finance", forced: false }
19814
+ };
19815
+ var NODE_TYPE_WALLS = {
19816
+ ...OPTIONAL_OWNER_NODE_TYPES,
19817
+ ...OWNER_ONLY_NODE_TYPES
19818
+ };
19819
+ var SCOPE_GROUP = new Map(SENSITIVE_GROUP_VALUES.flatMap((group) => SENSITIVE_SCOPE_GROUPS[group].map((scope) => [scope, group])));
19820
+ function isSensitiveScope(scope) {
19821
+ return SCOPE_GROUP.has(scope);
19822
+ }
19823
+ var PRIVATE_ACCESS_SCOPE = "private:*";
19824
+
19825
+ // ../../packages/schema/src/contracts/common.ts
19826
+ var ulidSchema = string2().length(26).regex(/^[0-9A-HJKMNP-TV-Z]{26}$/, "must be a valid ULID");
19827
+ var nodeSchema = createSelectSchema(nodes, {
19828
+ createdAt: exports_coerce.date(),
19829
+ updatedAt: exports_coerce.date(),
19830
+ deletedAt: exports_coerce.date().nullable(),
19831
+ sortOrder: number2().int().nonnegative().default(0),
19832
+ createdByUserId: string2().nullable().default(null),
19833
+ createdByAgentId: string2().nullable().default(null),
19834
+ updatedByUserId: string2().nullable().default(null),
19835
+ updatedByAgentId: string2().nullable().default(null),
19836
+ visibility: _enum2(NODE_VISIBILITY_VALUES).default("space"),
19837
+ ownerUserId: string2().nullable().default(null)
19838
+ });
19839
+ var createNodeInputSchema = createInsertSchema(nodes, {
19840
+ id: ulidSchema,
19841
+ type: string2().min(1),
19842
+ title: string2().min(1),
19843
+ parentId: ulidSchema.nullish(),
19844
+ sortOrder: number2().int().nonnegative().optional(),
19845
+ displayKind: string2().min(1).default("default")
19846
+ }).omit({
19847
+ tenantId: true,
19848
+ createdAt: true,
19849
+ updatedAt: true,
19850
+ deletedAt: true,
19851
+ createdByUserId: true,
19852
+ createdByAgentId: true,
19853
+ updatedByUserId: true,
19854
+ updatedByAgentId: true,
19855
+ visibility: true,
19856
+ ownerUserId: true
19857
+ });
19858
+ var TRASH_RETENTION_DAYS = 30;
19859
+ var TRASH_RETENTION_MS = TRASH_RETENTION_DAYS * 24 * 60 * 60 * 1000;
19860
+ var loginInputSchema = object({
19861
+ email: string2().email(),
19862
+ password: string2().min(1)
19863
+ });
19864
+ var loginResultSchema = object({
19865
+ token: string2(),
19866
+ user: object({ id: ulidSchema, email: string2().email() }),
19867
+ tenantId: ulidSchema,
19868
+ onboardingCompleted: boolean2()
19869
+ });
19870
+ var googleIdTokenInputSchema = object({
19871
+ idToken: string2().min(1)
19872
+ });
19873
+ var registerInputSchema = object({
19874
+ email: string2().email(),
19875
+ password: string2().min(8)
19876
+ });
19877
+ var authResultSchema = object({
19878
+ token: string2(),
19879
+ onboardingCompleted: boolean2()
19880
+ });
19881
+ var oauthIdentitySchema = createSelectSchema(oauthIdentities, {
19882
+ createdAt: exports_coerce.date()
19883
+ });
19884
+ var spaceSchema = createSelectSchema(tenants, {
19885
+ createdAt: exports_coerce.date(),
19886
+ updatedAt: exports_coerce.date(),
19887
+ deletedAt: exports_coerce.date().nullable(),
19888
+ address: string2().nullable().default(null)
19889
+ }).omit({
19890
+ gaardHouseUrl: true,
19891
+ awayFrom: true,
19892
+ awayUntil: true,
19893
+ lastTaskNumber: true,
19894
+ lastProjectNumber: true
19895
+ });
19896
+ var backdropIdSchema = string2().trim().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "a backdrop id is lowercase words joined by dashes").max(40);
19897
+ var spaceAddressSchema = string2().trim().max(200).transform((line) => line || null).nullable();
19898
+ var updateSpaceInputSchema = object({
19899
+ name: string2().trim().min(1).max(120).optional(),
19900
+ backdrop: backdropIdSchema.nullable().optional(),
19901
+ address: spaceAddressSchema.optional()
19902
+ }).strict().refine((input) => input.name !== undefined || input.backdrop !== undefined || input.address !== undefined, { message: "nothing to update" });
19903
+ var setSpaceAddressInputSchema = object({ address: spaceAddressSchema }).strict();
19904
+ var spaceAddressViewSchema = object({ address: string2().nullable() });
19905
+ var onboardingResultSchema = object({ onboardingCompleted: boolean2() });
19906
+ var authMethodsSchema = object({
19907
+ hasPassword: boolean2(),
19908
+ google: object({
19909
+ connected: boolean2(),
19910
+ email: string2().nullable()
19911
+ })
19912
+ });
19913
+ var setPasswordInputSchema = object({
19914
+ currentPassword: string2().optional(),
19915
+ newPassword: string2().min(8)
19916
+ });
19917
+ var startLinkResultSchema = object({ authorizationUrl: string2().url() });
19918
+ var linkGoogleInputSchema = object({
19919
+ code: string2().min(1),
19920
+ state: string2().min(1)
19921
+ });
19922
+
19819
19923
  // ../../packages/schema/src/contracts/agent-gateway.ts
19820
19924
  var AGENT_GATEWAY_VERSION = 1;
19821
19925
  var AGENT_GATEWAY_MAX_FRAME_BYTES = 1024 * 1024;
@@ -20118,6 +20222,29 @@ var promptAnswerFrameSchema = frame("prompt.answer", {
20118
20222
  memberId: string2().min(1),
20119
20223
  threadId: ulidSchema
20120
20224
  });
20225
+ var askAnswerFrameSchema = frame("ask.answer", {
20226
+ askId: string2().min(1),
20227
+ answer: askAnswerSchema,
20228
+ memberId: string2().min(1),
20229
+ threadId: ulidSchema,
20230
+ via: askViaSchema
20231
+ });
20232
+ var askExpiredFrameSchema = frame("ask.expired", {
20233
+ askId: string2().min(1),
20234
+ threadId: ulidSchema,
20235
+ applied: askOnExpireSchema
20236
+ });
20237
+ var askSnoozedFrameSchema = frame("ask.snoozed", {
20238
+ askId: string2().min(1),
20239
+ threadId: ulidSchema,
20240
+ until: exports_iso.datetime({ offset: true })
20241
+ });
20242
+ var askDelegatedFrameSchema = frame("ask.delegated", {
20243
+ askId: string2().min(1),
20244
+ threadId: ulidSchema,
20245
+ memberId: string2().min(1),
20246
+ to: object({ id: string2().min(1), name: string2().min(1) }).nullable()
20247
+ });
20121
20248
  var confirmationOutcomeFrameSchema = frame("confirmation.outcome", {
20122
20249
  confirmationId: string2().min(1),
20123
20250
  memberId: string2().min(1),
@@ -20153,6 +20280,10 @@ var agentGatewayServerFrameSchema = discriminatedUnion("type", [
20153
20280
  threadsFrameSchema,
20154
20281
  messageFrameSchema,
20155
20282
  promptAnswerFrameSchema,
20283
+ askAnswerFrameSchema,
20284
+ askExpiredFrameSchema,
20285
+ askSnoozedFrameSchema,
20286
+ askDelegatedFrameSchema,
20156
20287
  interruptFrameSchema,
20157
20288
  confirmationOutcomeFrameSchema,
20158
20289
  ackFrameSchema,
@@ -20172,6 +20303,10 @@ var promptCloseFrameSchema = frame("prompt.close", {
20172
20303
  optionId: string2().optional(),
20173
20304
  expired: boolean2()
20174
20305
  });
20306
+ var askFrameSchema = frame("ask", { ask: agentAskSchema });
20307
+ var askAnswerAckFrameSchema = frame("ask.answer.ack", { askId: string2().min(1) });
20308
+ var askExpiredAckFrameSchema = frame("ask.expired.ack", { askId: string2().min(1) });
20309
+ var askDelegatedAckFrameSchema = frame("ask.delegated.ack", { askId: string2().min(1) });
20175
20310
  var attachmentTranscriptFrameSchema = frame("attachment.transcript", {
20176
20311
  attachmentId: ulidSchema,
20177
20312
  text: string2().trim().min(1).max(AGENT_TRANSCRIPT_MAX)
@@ -20186,6 +20321,10 @@ var agentGatewayClientFrameSchema = discriminatedUnion("type", [
20186
20321
  typingFrameSchema,
20187
20322
  promptFrameSchema,
20188
20323
  promptCloseFrameSchema,
20324
+ askFrameSchema,
20325
+ askAnswerAckFrameSchema,
20326
+ askExpiredAckFrameSchema,
20327
+ askDelegatedAckFrameSchema,
20189
20328
  attachmentTranscriptFrameSchema
20190
20329
  ]);
20191
20330
  var SERVER_FRAME_TYPES = new Set(agentGatewayServerFrameSchema.options.map((o) => o.shape.type.value));
@@ -27687,6 +27826,7 @@ var echoPostSchema = object({
27687
27826
  brief: briefSchema.nullable().default(null),
27688
27827
  card: postCardSchema.nullable().default(null),
27689
27828
  digestKey: string2().nullable().default(null),
27829
+ relayOfPostId: string2().nullable().default(null),
27690
27830
  context: echoPostContextSchema.nullable().default(null)
27691
27831
  });
27692
27832
  var threadPushSchema = _enum2(["needs_you", "all", "off"]);
@@ -51504,7 +51644,7 @@ function parseDailyNote(path, day, text) {
51504
51644
  else
51505
51645
  rating = Number(low);
51506
51646
  }
51507
- let body = null;
51647
+ let body;
51508
51648
  let hasCheck = false;
51509
51649
  let title = null;
51510
51650
  if (summary !== null) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robbeverhelst/do",
3
- "version": "1.371.0",
3
+ "version": "1.373.0",
4
4
  "private": false,
5
5
  "description": "do — the agent-drivable CLI over the public /api/v1 surface",
6
6
  "homepage": "https://github.com/robbeverhelst/do/tree/main/apps/cli",