@robbeverhelst/do 1.30.0 → 1.32.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.
- package/dist/do.js +758 -643
- package/package.json +1 -1
package/dist/do.js
CHANGED
|
@@ -21248,7 +21248,357 @@ var presetInstallResultSchema = exports_external.object({
|
|
|
21248
21248
|
nodeCount: exports_external.number().int().nonnegative()
|
|
21249
21249
|
});
|
|
21250
21250
|
var MS_PER_DAY = 24 * 60 * 60 * 1000;
|
|
21251
|
-
// ../../packages/schema/src/presets/
|
|
21251
|
+
// ../../packages/schema/src/presets/features/areas.ts
|
|
21252
|
+
var areaBundleDefs = [
|
|
21253
|
+
{
|
|
21254
|
+
key: "life-setup",
|
|
21255
|
+
name: "Life Setup",
|
|
21256
|
+
description: "Nine areas of responsibility to organise your whole life.",
|
|
21257
|
+
icon: "\uD83C\uDF31",
|
|
21258
|
+
color: "#34d399",
|
|
21259
|
+
areas: [
|
|
21260
|
+
{ title: "Health", color: "green", icon: "heart-pulse" },
|
|
21261
|
+
{ title: "Finances", color: "amber", icon: "wallet" },
|
|
21262
|
+
{ title: "Career", color: "blue", icon: "briefcase" },
|
|
21263
|
+
{ title: "Relationships", color: "rose", icon: "users" },
|
|
21264
|
+
{ title: "Home", color: "teal", icon: "house" },
|
|
21265
|
+
{ title: "Personal Growth", color: "purple", icon: "sprout" },
|
|
21266
|
+
{ title: "Recreation", color: "amber", icon: "gamepad-2" },
|
|
21267
|
+
{ title: "Admin", color: "slate", icon: "file-text" },
|
|
21268
|
+
{ title: "Community", color: "red", icon: "hand-heart" }
|
|
21269
|
+
]
|
|
21270
|
+
},
|
|
21271
|
+
{
|
|
21272
|
+
key: "student-life",
|
|
21273
|
+
name: "Student Life",
|
|
21274
|
+
description: "Keep coursework, exams and the rest of life in balance.",
|
|
21275
|
+
icon: "\uD83C\uDF93",
|
|
21276
|
+
color: "#38bdf8",
|
|
21277
|
+
areas: [
|
|
21278
|
+
{ title: "Coursework", color: "blue", icon: "book-open" },
|
|
21279
|
+
{ title: "Exams", color: "red", icon: "graduation-cap" },
|
|
21280
|
+
{ title: "Finances", color: "amber", icon: "wallet" },
|
|
21281
|
+
{ title: "Social", color: "rose", icon: "users" },
|
|
21282
|
+
{ title: "Health", color: "green", icon: "heart-pulse" },
|
|
21283
|
+
{ title: "Career Prep", color: "purple", icon: "briefcase" }
|
|
21284
|
+
]
|
|
21285
|
+
},
|
|
21286
|
+
{
|
|
21287
|
+
key: "founder",
|
|
21288
|
+
name: "Founder",
|
|
21289
|
+
description: "The hats a founder wears, as areas to steward.",
|
|
21290
|
+
icon: "\uD83D\uDE80",
|
|
21291
|
+
color: "#a78bfa",
|
|
21292
|
+
areas: [
|
|
21293
|
+
{ title: "Product", color: "purple", icon: "box" },
|
|
21294
|
+
{ title: "Sales", color: "green", icon: "trending-up" },
|
|
21295
|
+
{ title: "Fundraising", color: "amber", icon: "banknote" },
|
|
21296
|
+
{ title: "Team", color: "blue", icon: "users" },
|
|
21297
|
+
{ title: "Finances", color: "slate", icon: "wallet" },
|
|
21298
|
+
{ title: "Personal", color: "rose", icon: "heart" }
|
|
21299
|
+
]
|
|
21300
|
+
},
|
|
21301
|
+
{
|
|
21302
|
+
key: "new-parent",
|
|
21303
|
+
name: "New Parent",
|
|
21304
|
+
description: "Stay on top of life with a newborn.",
|
|
21305
|
+
icon: "\uD83C\uDF7C",
|
|
21306
|
+
color: "#f472b6",
|
|
21307
|
+
areas: [
|
|
21308
|
+
{ title: "Baby Care", color: "rose", icon: "baby" },
|
|
21309
|
+
{ title: "Health", color: "green", icon: "heart-pulse" },
|
|
21310
|
+
{ title: "Home", color: "teal", icon: "house" },
|
|
21311
|
+
{ title: "Finances", color: "amber", icon: "wallet" },
|
|
21312
|
+
{ title: "Relationship", color: "purple", icon: "heart" },
|
|
21313
|
+
{ title: "Self-care", color: "blue", icon: "sparkles" }
|
|
21314
|
+
]
|
|
21315
|
+
}
|
|
21316
|
+
];
|
|
21317
|
+
var areaPresets = areaBundleDefs.map((def) => ({
|
|
21318
|
+
key: def.key,
|
|
21319
|
+
entity: "area",
|
|
21320
|
+
name: def.name,
|
|
21321
|
+
description: def.description,
|
|
21322
|
+
icon: def.icon,
|
|
21323
|
+
color: def.color,
|
|
21324
|
+
category: "Life Setup",
|
|
21325
|
+
featured: def.key === "life-setup",
|
|
21326
|
+
recipe: {
|
|
21327
|
+
nodes: def.areas.map((area, index2) => ({
|
|
21328
|
+
ref: `area-${index2}`,
|
|
21329
|
+
kind: "area",
|
|
21330
|
+
title: area.title,
|
|
21331
|
+
color: area.color,
|
|
21332
|
+
icon: area.icon
|
|
21333
|
+
}))
|
|
21334
|
+
}
|
|
21335
|
+
}));
|
|
21336
|
+
|
|
21337
|
+
// ../../packages/schema/src/presets/features/automations.ts
|
|
21338
|
+
var automationPresets = [
|
|
21339
|
+
{
|
|
21340
|
+
key: "auto-low-stock-groceries",
|
|
21341
|
+
entity: "automation",
|
|
21342
|
+
name: "Low stock \u2192 add to groceries",
|
|
21343
|
+
description: "When an inventory item runs low, make a task to restock it.",
|
|
21344
|
+
icon: "\uD83E\uDD6B",
|
|
21345
|
+
color: "#34d399",
|
|
21346
|
+
category: "Automations",
|
|
21347
|
+
recipe: {
|
|
21348
|
+
nodes: [
|
|
21349
|
+
{
|
|
21350
|
+
ref: "automation",
|
|
21351
|
+
kind: "automation",
|
|
21352
|
+
name: "Low stock \u2192 add to groceries",
|
|
21353
|
+
trigger: { entity: "inventory", action: "updated" },
|
|
21354
|
+
condition: { path: "value.lowStock", op: "eq", value: true },
|
|
21355
|
+
action: { type: "create_task", title: "Restock low groceries", priority: "medium" }
|
|
21356
|
+
}
|
|
21357
|
+
]
|
|
21358
|
+
}
|
|
21359
|
+
},
|
|
21360
|
+
{
|
|
21361
|
+
key: "auto-habit-missed-nudge",
|
|
21362
|
+
entity: "automation",
|
|
21363
|
+
name: "Habit missed 3\xD7 \u2192 nudge",
|
|
21364
|
+
description: "Get a gentle nudge when you miss a habit three times.",
|
|
21365
|
+
icon: "\uD83D\uDD14",
|
|
21366
|
+
color: "#fb7185",
|
|
21367
|
+
category: "Automations",
|
|
21368
|
+
recipe: {
|
|
21369
|
+
nodes: [
|
|
21370
|
+
{
|
|
21371
|
+
ref: "automation",
|
|
21372
|
+
kind: "automation",
|
|
21373
|
+
name: "Habit missed 3\xD7 \u2192 nudge",
|
|
21374
|
+
trigger: { entity: "habits", action: "updated" },
|
|
21375
|
+
condition: { path: "value.missedStreak", op: "eq", value: 3 },
|
|
21376
|
+
action: {
|
|
21377
|
+
type: "notify",
|
|
21378
|
+
title: "Don't break the chain",
|
|
21379
|
+
body: "You've missed this habit three times \u2014 jump back in today."
|
|
21380
|
+
}
|
|
21381
|
+
}
|
|
21382
|
+
]
|
|
21383
|
+
}
|
|
21384
|
+
},
|
|
21385
|
+
{
|
|
21386
|
+
key: "auto-task-overdue-bump",
|
|
21387
|
+
entity: "automation",
|
|
21388
|
+
name: "Task overdue \u2192 bump priority",
|
|
21389
|
+
description: "When a task goes overdue, raise a high-priority follow-up.",
|
|
21390
|
+
icon: "\u23F0",
|
|
21391
|
+
color: "#f59e0b",
|
|
21392
|
+
category: "Automations",
|
|
21393
|
+
recipe: {
|
|
21394
|
+
nodes: [
|
|
21395
|
+
{
|
|
21396
|
+
ref: "automation",
|
|
21397
|
+
kind: "automation",
|
|
21398
|
+
name: "Task overdue \u2192 bump priority",
|
|
21399
|
+
trigger: { entity: "tasks", action: "updated" },
|
|
21400
|
+
condition: { path: "value.overdue", op: "eq", value: true },
|
|
21401
|
+
action: { type: "create_task", title: "Reprioritise overdue task", priority: "high" }
|
|
21402
|
+
}
|
|
21403
|
+
]
|
|
21404
|
+
}
|
|
21405
|
+
},
|
|
21406
|
+
{
|
|
21407
|
+
key: "auto-weekly-review",
|
|
21408
|
+
entity: "automation",
|
|
21409
|
+
name: "Weekly review reminder",
|
|
21410
|
+
description: "Reschedule your weekly review a week out each time you finish it.",
|
|
21411
|
+
icon: "\uD83D\uDDD3\uFE0F",
|
|
21412
|
+
color: "#34d399",
|
|
21413
|
+
category: "Automations",
|
|
21414
|
+
recipe: {
|
|
21415
|
+
nodes: [
|
|
21416
|
+
{
|
|
21417
|
+
ref: "automation",
|
|
21418
|
+
kind: "automation",
|
|
21419
|
+
name: "Weekly review reminder",
|
|
21420
|
+
trigger: { entity: "tasks", action: "updated" },
|
|
21421
|
+
condition: { path: "value.title", op: "contains", value: "Weekly Review" },
|
|
21422
|
+
action: { type: "schedule_task", offsetMinutes: 10080 }
|
|
21423
|
+
}
|
|
21424
|
+
]
|
|
21425
|
+
}
|
|
21426
|
+
},
|
|
21427
|
+
{
|
|
21428
|
+
key: "auto-finished-book-rate",
|
|
21429
|
+
entity: "automation",
|
|
21430
|
+
name: "Finished book \u2192 rate it",
|
|
21431
|
+
description: "When you finish a book, make a task to rate it.",
|
|
21432
|
+
icon: "\uD83D\uDCDA",
|
|
21433
|
+
color: "#f59e0b",
|
|
21434
|
+
category: "Automations",
|
|
21435
|
+
recipe: {
|
|
21436
|
+
nodes: [
|
|
21437
|
+
{
|
|
21438
|
+
ref: "automation",
|
|
21439
|
+
kind: "automation",
|
|
21440
|
+
name: "Finished book \u2192 rate it",
|
|
21441
|
+
trigger: { entity: "books", action: "updated" },
|
|
21442
|
+
condition: { path: "value.status", op: "eq", value: "finished" },
|
|
21443
|
+
action: {
|
|
21444
|
+
type: "create_task",
|
|
21445
|
+
title: "Rate the book you just finished",
|
|
21446
|
+
priority: "low"
|
|
21447
|
+
}
|
|
21448
|
+
}
|
|
21449
|
+
]
|
|
21450
|
+
}
|
|
21451
|
+
}
|
|
21452
|
+
];
|
|
21453
|
+
|
|
21454
|
+
// ../../packages/schema/src/presets/features/challenges.ts
|
|
21455
|
+
var challengePresetDefs = [
|
|
21456
|
+
{
|
|
21457
|
+
key: "challenge-75-hard",
|
|
21458
|
+
name: "75 Hard",
|
|
21459
|
+
description: "75 days of two workouts, water, reading and a clean diet.",
|
|
21460
|
+
icon: "\uD83D\uDD25",
|
|
21461
|
+
color: "#fb7185",
|
|
21462
|
+
metric: "habits.checked_in",
|
|
21463
|
+
target: 75,
|
|
21464
|
+
durationDays: 75
|
|
21465
|
+
},
|
|
21466
|
+
{
|
|
21467
|
+
key: "challenge-no-sugar",
|
|
21468
|
+
name: "30-Day No Sugar",
|
|
21469
|
+
description: "Cut added sugar for 30 days.",
|
|
21470
|
+
icon: "\uD83C\uDF6D",
|
|
21471
|
+
color: "#f472b6",
|
|
21472
|
+
metric: "habits.checked_in",
|
|
21473
|
+
target: 30,
|
|
21474
|
+
durationDays: 30
|
|
21475
|
+
},
|
|
21476
|
+
{
|
|
21477
|
+
key: "challenge-couch-to-5k",
|
|
21478
|
+
name: "Couch-to-5K",
|
|
21479
|
+
description: "Run your first 5K in nine weeks.",
|
|
21480
|
+
icon: "\uD83C\uDFC3",
|
|
21481
|
+
color: "#34d399",
|
|
21482
|
+
metric: "habits.checked_in",
|
|
21483
|
+
target: 27,
|
|
21484
|
+
durationDays: 63
|
|
21485
|
+
},
|
|
21486
|
+
{
|
|
21487
|
+
key: "challenge-dry-january",
|
|
21488
|
+
name: "Dry January",
|
|
21489
|
+
description: "An alcohol-free month to reset.",
|
|
21490
|
+
icon: "\uD83D\uDEAB",
|
|
21491
|
+
color: "#38bdf8",
|
|
21492
|
+
metric: "habits.checked_in",
|
|
21493
|
+
target: 31,
|
|
21494
|
+
durationDays: 31
|
|
21495
|
+
},
|
|
21496
|
+
{
|
|
21497
|
+
key: "challenge-meditation",
|
|
21498
|
+
name: "31-Day Meditation",
|
|
21499
|
+
description: "Sit every day for a month.",
|
|
21500
|
+
icon: "\uD83E\uDDD8",
|
|
21501
|
+
color: "#a78bfa",
|
|
21502
|
+
metric: "habits.checked_in",
|
|
21503
|
+
target: 31,
|
|
21504
|
+
durationDays: 31
|
|
21505
|
+
},
|
|
21506
|
+
{
|
|
21507
|
+
key: "challenge-no-spend",
|
|
21508
|
+
name: "No-Spend Month",
|
|
21509
|
+
description: "Thirty days of buying only the essentials.",
|
|
21510
|
+
icon: "\uD83D\uDCB8",
|
|
21511
|
+
color: "#f59e0b",
|
|
21512
|
+
metric: "habits.checked_in",
|
|
21513
|
+
target: 30,
|
|
21514
|
+
durationDays: 30
|
|
21515
|
+
}
|
|
21516
|
+
];
|
|
21517
|
+
var challengePresets = challengePresetDefs.map((def) => ({
|
|
21518
|
+
key: def.key,
|
|
21519
|
+
entity: "challenge",
|
|
21520
|
+
name: def.name,
|
|
21521
|
+
description: def.description,
|
|
21522
|
+
icon: def.icon,
|
|
21523
|
+
color: def.color,
|
|
21524
|
+
category: "Challenges",
|
|
21525
|
+
featured: def.key === "challenge-couch-to-5k",
|
|
21526
|
+
recipe: {
|
|
21527
|
+
nodes: [
|
|
21528
|
+
{
|
|
21529
|
+
ref: "challenge",
|
|
21530
|
+
kind: "challenge",
|
|
21531
|
+
title: def.name,
|
|
21532
|
+
description: def.description,
|
|
21533
|
+
metric: def.metric,
|
|
21534
|
+
target: def.target,
|
|
21535
|
+
durationDays: def.durationDays
|
|
21536
|
+
}
|
|
21537
|
+
]
|
|
21538
|
+
}
|
|
21539
|
+
}));
|
|
21540
|
+
|
|
21541
|
+
// ../../packages/schema/src/presets/features/contacts.ts
|
|
21542
|
+
var contactCircleDefs = [
|
|
21543
|
+
{
|
|
21544
|
+
key: "inner-circle",
|
|
21545
|
+
name: "Inner Circle",
|
|
21546
|
+
description: "The people you check in with weekly.",
|
|
21547
|
+
cadence: "every week",
|
|
21548
|
+
tag: "1w"
|
|
21549
|
+
},
|
|
21550
|
+
{
|
|
21551
|
+
key: "close-friends",
|
|
21552
|
+
name: "Close Friends",
|
|
21553
|
+
description: "Friends worth a message every couple of weeks.",
|
|
21554
|
+
cadence: "every 2 weeks",
|
|
21555
|
+
tag: "2w"
|
|
21556
|
+
},
|
|
21557
|
+
{
|
|
21558
|
+
key: "keep-warm",
|
|
21559
|
+
name: "Keep Warm",
|
|
21560
|
+
description: "People to keep warm with a monthly hello.",
|
|
21561
|
+
cadence: "every month",
|
|
21562
|
+
tag: "1m"
|
|
21563
|
+
},
|
|
21564
|
+
{
|
|
21565
|
+
key: "network",
|
|
21566
|
+
name: "Network",
|
|
21567
|
+
description: "Professional contacts to touch base with quarterly.",
|
|
21568
|
+
cadence: "every 3 months",
|
|
21569
|
+
tag: "3m"
|
|
21570
|
+
},
|
|
21571
|
+
{
|
|
21572
|
+
key: "birthday-only",
|
|
21573
|
+
name: "Birthday Only",
|
|
21574
|
+
description: "People you reach out to on their birthday.",
|
|
21575
|
+
cadence: "on their birthday",
|
|
21576
|
+
tag: "birthday"
|
|
21577
|
+
}
|
|
21578
|
+
];
|
|
21579
|
+
var contactPresets = contactCircleDefs.map((def) => ({
|
|
21580
|
+
key: def.key,
|
|
21581
|
+
entity: "contact",
|
|
21582
|
+
name: def.name,
|
|
21583
|
+
description: def.description,
|
|
21584
|
+
icon: "\uD83D\uDC65",
|
|
21585
|
+
color: "#38bdf8",
|
|
21586
|
+
category: "Keep in Touch",
|
|
21587
|
+
featured: def.key === "inner-circle",
|
|
21588
|
+
recipe: {
|
|
21589
|
+
nodes: [
|
|
21590
|
+
{
|
|
21591
|
+
ref: "contact",
|
|
21592
|
+
kind: "contact",
|
|
21593
|
+
title: def.name,
|
|
21594
|
+
notes: `Keep-in-touch circle \u2014 reach out ${def.cadence}. Rename to a person and set their cadence.`,
|
|
21595
|
+
tags: ["keep-in-touch", def.tag]
|
|
21596
|
+
}
|
|
21597
|
+
]
|
|
21598
|
+
}
|
|
21599
|
+
}));
|
|
21600
|
+
|
|
21601
|
+
// ../../packages/schema/src/presets/features/habits.ts
|
|
21252
21602
|
var habitPresets = [
|
|
21253
21603
|
{
|
|
21254
21604
|
key: "drink-water",
|
|
@@ -21318,6 +21668,29 @@ var habitPresets = [
|
|
|
21318
21668
|
]
|
|
21319
21669
|
}
|
|
21320
21670
|
},
|
|
21671
|
+
{
|
|
21672
|
+
key: "run-100km",
|
|
21673
|
+
entity: "habit",
|
|
21674
|
+
name: "Run 100 km",
|
|
21675
|
+
description: "Log kilometres toward a 100 km challenge.",
|
|
21676
|
+
icon: "\uD83C\uDFC3",
|
|
21677
|
+
color: "#34d399",
|
|
21678
|
+
category: "Fitness",
|
|
21679
|
+
displayKind: "goal-ring",
|
|
21680
|
+
recipe: {
|
|
21681
|
+
nodes: [
|
|
21682
|
+
{
|
|
21683
|
+
ref: "habit",
|
|
21684
|
+
kind: "habit",
|
|
21685
|
+
title: "Run 100 km",
|
|
21686
|
+
measurementType: "quantitative",
|
|
21687
|
+
targetValue: 100,
|
|
21688
|
+
targetUnit: "km",
|
|
21689
|
+
period: "month"
|
|
21690
|
+
}
|
|
21691
|
+
]
|
|
21692
|
+
}
|
|
21693
|
+
},
|
|
21321
21694
|
{
|
|
21322
21695
|
key: "read",
|
|
21323
21696
|
entity: "habit",
|
|
@@ -21430,263 +21803,199 @@ var habitPresets = [
|
|
|
21430
21803
|
}
|
|
21431
21804
|
},
|
|
21432
21805
|
{
|
|
21433
|
-
key: "
|
|
21806
|
+
key: "weight",
|
|
21434
21807
|
entity: "habit",
|
|
21435
|
-
name: "
|
|
21436
|
-
description: "
|
|
21437
|
-
icon: "\
|
|
21438
|
-
color: "#
|
|
21439
|
-
category: "
|
|
21440
|
-
displayKind: "
|
|
21808
|
+
name: "Weight",
|
|
21809
|
+
description: "Log your weight to watch the trend.",
|
|
21810
|
+
icon: "\u2696\uFE0F",
|
|
21811
|
+
color: "#38bdf8",
|
|
21812
|
+
category: "Health",
|
|
21813
|
+
displayKind: "trend-chart",
|
|
21441
21814
|
recipe: {
|
|
21442
21815
|
nodes: [
|
|
21443
21816
|
{
|
|
21444
21817
|
ref: "habit",
|
|
21445
21818
|
kind: "habit",
|
|
21446
|
-
title: "
|
|
21447
|
-
measurementType: "
|
|
21448
|
-
targetValue:
|
|
21819
|
+
title: "Weight",
|
|
21820
|
+
measurementType: "quantitative",
|
|
21821
|
+
targetValue: 70,
|
|
21822
|
+
targetUnit: "kg",
|
|
21449
21823
|
period: "day"
|
|
21450
21824
|
}
|
|
21451
21825
|
]
|
|
21452
21826
|
}
|
|
21453
21827
|
},
|
|
21454
21828
|
{
|
|
21455
|
-
key: "
|
|
21829
|
+
key: "mood",
|
|
21456
21830
|
entity: "habit",
|
|
21457
|
-
name: "
|
|
21458
|
-
description: "
|
|
21459
|
-
icon: "\uD83D\
|
|
21460
|
-
color: "#
|
|
21461
|
-
category: "
|
|
21462
|
-
displayKind: "
|
|
21831
|
+
name: "Mood",
|
|
21832
|
+
description: "Rate your mood 1\u20135 and track how it moves.",
|
|
21833
|
+
icon: "\uD83D\uDE42",
|
|
21834
|
+
color: "#a78bfa",
|
|
21835
|
+
category: "Mindfulness",
|
|
21836
|
+
displayKind: "trend-chart",
|
|
21463
21837
|
recipe: {
|
|
21464
21838
|
nodes: [
|
|
21465
21839
|
{
|
|
21466
21840
|
ref: "habit",
|
|
21467
21841
|
kind: "habit",
|
|
21468
|
-
title: "
|
|
21469
|
-
measurementType: "
|
|
21470
|
-
targetValue:
|
|
21842
|
+
title: "Mood",
|
|
21843
|
+
measurementType: "quantitative",
|
|
21844
|
+
targetValue: 5,
|
|
21845
|
+
targetUnit: "/5",
|
|
21471
21846
|
period: "day"
|
|
21472
21847
|
}
|
|
21473
21848
|
]
|
|
21474
21849
|
}
|
|
21475
21850
|
},
|
|
21476
21851
|
{
|
|
21477
|
-
key: "
|
|
21852
|
+
key: "sleep-duration",
|
|
21478
21853
|
entity: "habit",
|
|
21479
|
-
name: "
|
|
21480
|
-
description: "
|
|
21481
|
-
icon: "\
|
|
21482
|
-
color: "#
|
|
21483
|
-
category: "
|
|
21484
|
-
displayKind: "
|
|
21854
|
+
name: "Sleep",
|
|
21855
|
+
description: "Log hours slept and watch the trend.",
|
|
21856
|
+
icon: "\uD83D\uDE34",
|
|
21857
|
+
color: "#818cf8",
|
|
21858
|
+
category: "Health",
|
|
21859
|
+
displayKind: "trend-chart",
|
|
21485
21860
|
recipe: {
|
|
21486
21861
|
nodes: [
|
|
21487
21862
|
{
|
|
21488
21863
|
ref: "habit",
|
|
21489
21864
|
kind: "habit",
|
|
21490
|
-
title: "
|
|
21491
|
-
measurementType: "
|
|
21492
|
-
targetValue:
|
|
21865
|
+
title: "Sleep",
|
|
21866
|
+
measurementType: "duration",
|
|
21867
|
+
targetValue: 8,
|
|
21868
|
+
targetUnit: "h",
|
|
21493
21869
|
period: "day"
|
|
21494
21870
|
}
|
|
21495
21871
|
]
|
|
21496
21872
|
}
|
|
21497
21873
|
},
|
|
21498
21874
|
{
|
|
21499
|
-
key: "
|
|
21500
|
-
entity: "habit",
|
|
21501
|
-
name: "Floss",
|
|
21502
|
-
description: "Floss once a day.",
|
|
21503
|
-
icon: "\uD83E\uDDB7",
|
|
21504
|
-
color: "#38bdf8",
|
|
21505
|
-
category: "Health",
|
|
21506
|
-
recipe: {
|
|
21507
|
-
nodes: [
|
|
21508
|
-
{ ref: "habit", kind: "habit", title: "Floss", measurementType: "binary", period: "day" }
|
|
21509
|
-
]
|
|
21510
|
-
}
|
|
21511
|
-
},
|
|
21512
|
-
{
|
|
21513
|
-
key: "morning-sunlight",
|
|
21875
|
+
key: "no-smoking",
|
|
21514
21876
|
entity: "habit",
|
|
21515
|
-
name: "
|
|
21516
|
-
description: "
|
|
21517
|
-
icon: "\
|
|
21518
|
-
color: "#
|
|
21519
|
-
category: "
|
|
21877
|
+
name: "No Smoking",
|
|
21878
|
+
description: "Stay smoke-free, one day at a time.",
|
|
21879
|
+
icon: "\uD83D\uDEAD",
|
|
21880
|
+
color: "#fb7185",
|
|
21881
|
+
category: "Abstinence",
|
|
21882
|
+
displayKind: "abstinence-streak",
|
|
21520
21883
|
recipe: {
|
|
21521
21884
|
nodes: [
|
|
21522
21885
|
{
|
|
21523
21886
|
ref: "habit",
|
|
21524
21887
|
kind: "habit",
|
|
21525
|
-
title: "
|
|
21526
|
-
measurementType: "
|
|
21888
|
+
title: "No Smoking",
|
|
21889
|
+
measurementType: "negative",
|
|
21890
|
+
targetValue: 0,
|
|
21527
21891
|
period: "day"
|
|
21528
21892
|
}
|
|
21529
21893
|
]
|
|
21530
21894
|
}
|
|
21531
21895
|
},
|
|
21532
21896
|
{
|
|
21533
|
-
key: "
|
|
21897
|
+
key: "no-alcohol",
|
|
21534
21898
|
entity: "habit",
|
|
21535
|
-
name: "
|
|
21536
|
-
description: "
|
|
21537
|
-
icon: "\uD83D\
|
|
21538
|
-
color: "#
|
|
21539
|
-
category: "
|
|
21899
|
+
name: "No Alcohol",
|
|
21900
|
+
description: "Keep the day alcohol-free.",
|
|
21901
|
+
icon: "\uD83D\uDEAB",
|
|
21902
|
+
color: "#fb7185",
|
|
21903
|
+
category: "Abstinence",
|
|
21904
|
+
displayKind: "abstinence-streak",
|
|
21540
21905
|
recipe: {
|
|
21541
21906
|
nodes: [
|
|
21542
21907
|
{
|
|
21543
21908
|
ref: "habit",
|
|
21544
21909
|
kind: "habit",
|
|
21545
|
-
title: "
|
|
21546
|
-
measurementType: "
|
|
21547
|
-
targetValue:
|
|
21548
|
-
targetUnit: "notes",
|
|
21910
|
+
title: "No Alcohol",
|
|
21911
|
+
measurementType: "negative",
|
|
21912
|
+
targetValue: 0,
|
|
21549
21913
|
period: "day"
|
|
21550
21914
|
}
|
|
21551
21915
|
]
|
|
21552
21916
|
}
|
|
21553
|
-
}
|
|
21554
|
-
];
|
|
21555
|
-
var shoppingItems2 = (...titles) => titles.map((title) => ({ title }));
|
|
21556
|
-
var listPresetDefs = [
|
|
21557
|
-
{
|
|
21558
|
-
key: "watchlist",
|
|
21559
|
-
name: "Watchlist",
|
|
21560
|
-
description: "Films and shows to watch.",
|
|
21561
|
-
icon: "\uD83C\uDFAC",
|
|
21562
|
-
color: "#a78bfa",
|
|
21563
|
-
category: "Entertainment",
|
|
21564
|
-
title: "Watchlist",
|
|
21565
|
-
items: ["Dune: Part Two", "The Bear", "Severance"]
|
|
21566
|
-
},
|
|
21567
|
-
{
|
|
21568
|
-
key: "groceries",
|
|
21569
|
-
name: "Groceries",
|
|
21570
|
-
description: "A weekly grocery run.",
|
|
21571
|
-
icon: "\uD83D\uDED2",
|
|
21572
|
-
color: "#34d399",
|
|
21573
|
-
category: "Food",
|
|
21574
|
-
title: "Groceries",
|
|
21575
|
-
items: ["Milk", "Eggs", "Bread", "Bananas", "Coffee", "Spinach"]
|
|
21576
|
-
},
|
|
21577
|
-
{
|
|
21578
|
-
key: "packing-list",
|
|
21579
|
-
name: "Packing List",
|
|
21580
|
-
description: "Don't forget the essentials.",
|
|
21581
|
-
icon: "\uD83E\uDDF3",
|
|
21582
|
-
color: "#38bdf8",
|
|
21583
|
-
category: "Travel",
|
|
21584
|
-
title: "Packing List",
|
|
21585
|
-
items: ["Passport", "Charger", "Toothbrush", "Headphones", "Adapter"]
|
|
21586
|
-
},
|
|
21587
|
-
{
|
|
21588
|
-
key: "wishlist",
|
|
21589
|
-
name: "Wishlist",
|
|
21590
|
-
description: "Things you'd love to have.",
|
|
21591
|
-
icon: "\u2B50",
|
|
21592
|
-
color: "#f59e0b",
|
|
21593
|
-
category: "Shopping",
|
|
21594
|
-
title: "Wishlist",
|
|
21595
|
-
items: ["New running shoes", "Standing desk", "E-reader"]
|
|
21596
|
-
},
|
|
21597
|
-
{
|
|
21598
|
-
key: "gift-ideas",
|
|
21599
|
-
name: "Gift Ideas",
|
|
21600
|
-
description: "Presents to remember.",
|
|
21601
|
-
icon: "\uD83C\uDF81",
|
|
21602
|
-
color: "#fb7185",
|
|
21603
|
-
category: "Gifts",
|
|
21604
|
-
title: "Gift Ideas",
|
|
21605
|
-
items: ["Mom \u2014 gardening gloves", "Dad \u2014 coffee beans", "Sam \u2014 board game"]
|
|
21606
21917
|
},
|
|
21607
21918
|
{
|
|
21608
|
-
key: "
|
|
21609
|
-
|
|
21610
|
-
|
|
21611
|
-
|
|
21919
|
+
key: "no-sugar",
|
|
21920
|
+
entity: "habit",
|
|
21921
|
+
name: "No Sugar",
|
|
21922
|
+
description: "Skip the added sugar today.",
|
|
21923
|
+
icon: "\uD83C\uDF6D",
|
|
21612
21924
|
color: "#fb7185",
|
|
21613
|
-
category: "
|
|
21614
|
-
|
|
21615
|
-
|
|
21616
|
-
|
|
21617
|
-
|
|
21618
|
-
|
|
21619
|
-
|
|
21620
|
-
|
|
21621
|
-
|
|
21622
|
-
|
|
21623
|
-
|
|
21624
|
-
|
|
21625
|
-
|
|
21626
|
-
|
|
21627
|
-
|
|
21628
|
-
|
|
21629
|
-
|
|
21630
|
-
|
|
21631
|
-
|
|
21632
|
-
|
|
21633
|
-
|
|
21634
|
-
|
|
21635
|
-
|
|
21636
|
-
|
|
21637
|
-
|
|
21638
|
-
|
|
21639
|
-
|
|
21640
|
-
|
|
21641
|
-
|
|
21642
|
-
|
|
21643
|
-
|
|
21644
|
-
|
|
21645
|
-
|
|
21646
|
-
|
|
21647
|
-
|
|
21648
|
-
|
|
21649
|
-
|
|
21650
|
-
category: "Reading",
|
|
21651
|
-
displayKind: MEDIA_SHELF_DISPLAY_KIND,
|
|
21652
|
-
recipe: {
|
|
21653
|
-
nodes: [
|
|
21654
|
-
{
|
|
21655
|
-
ref: "list",
|
|
21656
|
-
kind: "shopping_list",
|
|
21657
|
-
title: "Books to Read",
|
|
21658
|
-
displayKind: MEDIA_SHELF_DISPLAY_KIND,
|
|
21659
|
-
items: booksToRead.map((book) => ({
|
|
21660
|
-
title: book.title,
|
|
21661
|
-
facet: { author: book.author, status: "to-read" }
|
|
21662
|
-
}))
|
|
21663
|
-
}
|
|
21664
|
-
]
|
|
21665
|
-
}
|
|
21666
|
-
};
|
|
21667
|
-
var shoppingListPresets = [
|
|
21668
|
-
booksToReadPreset,
|
|
21669
|
-
...listPresetDefs.map((def) => ({
|
|
21670
|
-
key: def.key,
|
|
21671
|
-
entity: "list",
|
|
21672
|
-
name: def.name,
|
|
21673
|
-
description: def.description,
|
|
21674
|
-
icon: def.icon,
|
|
21675
|
-
color: def.color,
|
|
21676
|
-
category: def.category,
|
|
21677
|
-
featured: def.key === "groceries",
|
|
21925
|
+
category: "Abstinence",
|
|
21926
|
+
displayKind: "abstinence-streak",
|
|
21927
|
+
recipe: {
|
|
21928
|
+
nodes: [
|
|
21929
|
+
{
|
|
21930
|
+
ref: "habit",
|
|
21931
|
+
kind: "habit",
|
|
21932
|
+
title: "No Sugar",
|
|
21933
|
+
measurementType: "negative",
|
|
21934
|
+
targetValue: 0,
|
|
21935
|
+
period: "day"
|
|
21936
|
+
}
|
|
21937
|
+
]
|
|
21938
|
+
}
|
|
21939
|
+
},
|
|
21940
|
+
{
|
|
21941
|
+
key: "floss",
|
|
21942
|
+
entity: "habit",
|
|
21943
|
+
name: "Floss",
|
|
21944
|
+
description: "Floss once a day.",
|
|
21945
|
+
icon: "\uD83E\uDDB7",
|
|
21946
|
+
color: "#38bdf8",
|
|
21947
|
+
category: "Health",
|
|
21948
|
+
recipe: {
|
|
21949
|
+
nodes: [
|
|
21950
|
+
{ ref: "habit", kind: "habit", title: "Floss", measurementType: "binary", period: "day" }
|
|
21951
|
+
]
|
|
21952
|
+
}
|
|
21953
|
+
},
|
|
21954
|
+
{
|
|
21955
|
+
key: "morning-sunlight",
|
|
21956
|
+
entity: "habit",
|
|
21957
|
+
name: "Morning Sunlight",
|
|
21958
|
+
description: "Get daylight early to set your clock.",
|
|
21959
|
+
icon: "\uD83C\uDF05",
|
|
21960
|
+
color: "#f59e0b",
|
|
21961
|
+
category: "Health",
|
|
21678
21962
|
recipe: {
|
|
21679
21963
|
nodes: [
|
|
21680
21964
|
{
|
|
21681
|
-
ref: "
|
|
21682
|
-
kind: "
|
|
21683
|
-
title:
|
|
21684
|
-
|
|
21965
|
+
ref: "habit",
|
|
21966
|
+
kind: "habit",
|
|
21967
|
+
title: "Morning Sunlight",
|
|
21968
|
+
measurementType: "binary",
|
|
21969
|
+
period: "day"
|
|
21685
21970
|
}
|
|
21686
21971
|
]
|
|
21687
21972
|
}
|
|
21688
|
-
}
|
|
21973
|
+
},
|
|
21974
|
+
{
|
|
21975
|
+
key: "gratitude",
|
|
21976
|
+
entity: "habit",
|
|
21977
|
+
name: "Gratitude (3)",
|
|
21978
|
+
description: "Note three things you're grateful for.",
|
|
21979
|
+
icon: "\uD83D\uDE4F",
|
|
21980
|
+
color: "#a78bfa",
|
|
21981
|
+
category: "Mindfulness",
|
|
21982
|
+
recipe: {
|
|
21983
|
+
nodes: [
|
|
21984
|
+
{
|
|
21985
|
+
ref: "habit",
|
|
21986
|
+
kind: "habit",
|
|
21987
|
+
title: "Gratitude (3)",
|
|
21988
|
+
measurementType: "quantitative",
|
|
21989
|
+
targetValue: 3,
|
|
21990
|
+
targetUnit: "notes",
|
|
21991
|
+
period: "day"
|
|
21992
|
+
}
|
|
21993
|
+
]
|
|
21994
|
+
}
|
|
21995
|
+
}
|
|
21689
21996
|
];
|
|
21997
|
+
|
|
21998
|
+
// ../../packages/schema/src/presets/features/inventory.ts
|
|
21690
21999
|
var pantryStaples = [
|
|
21691
22000
|
{ title: "Rice", category: "Grains", unit: "kg", threshold: 1 },
|
|
21692
22001
|
{ title: "Pasta", category: "Grains", unit: "boxes", threshold: 2 },
|
|
@@ -21721,274 +22030,145 @@ var inventoryPresets = [
|
|
|
21721
22030
|
}
|
|
21722
22031
|
}
|
|
21723
22032
|
];
|
|
21724
|
-
|
|
21725
|
-
|
|
21726
|
-
|
|
21727
|
-
|
|
21728
|
-
description: "Start the day with intention.",
|
|
21729
|
-
icon: "\uD83C\uDF05",
|
|
21730
|
-
color: "#f59e0b",
|
|
21731
|
-
category: "Daily",
|
|
21732
|
-
displayKind: "routine-checklist",
|
|
21733
|
-
steps: ["Make the bed", "Drink a glass of water", "Stretch", "Plan the day"]
|
|
21734
|
-
},
|
|
21735
|
-
{
|
|
21736
|
-
key: "evening-wind-down",
|
|
21737
|
-
name: "Evening Wind-Down",
|
|
21738
|
-
description: "Ease into a restful night.",
|
|
21739
|
-
icon: "\uD83C\uDF19",
|
|
21740
|
-
color: "#818cf8",
|
|
21741
|
-
category: "Daily",
|
|
21742
|
-
steps: ["Dim the lights", "Tidy up", "Read a few pages", "Lights out"]
|
|
21743
|
-
},
|
|
21744
|
-
{
|
|
21745
|
-
key: "deep-work-block",
|
|
21746
|
-
name: "Deep Work Block",
|
|
21747
|
-
description: "Set up for focused, distraction-free work.",
|
|
21748
|
-
icon: "\uD83C\uDFAF",
|
|
21749
|
-
color: "#a78bfa",
|
|
21750
|
-
category: "Work",
|
|
21751
|
-
steps: ["Silence notifications", "Pick one task", "Start a 50-min timer", "Take a break"]
|
|
21752
|
-
},
|
|
21753
|
-
{
|
|
21754
|
-
key: "gym-session",
|
|
21755
|
-
name: "Gym Session",
|
|
21756
|
-
description: "A repeatable workout flow.",
|
|
21757
|
-
icon: "\uD83C\uDFCB\uFE0F",
|
|
21758
|
-
color: "#fb7185",
|
|
21759
|
-
category: "Fitness",
|
|
21760
|
-
steps: ["Warm up", "Main lifts", "Accessory work", "Cool down & stretch"]
|
|
21761
|
-
},
|
|
21762
|
-
{
|
|
21763
|
-
key: "weekly-review",
|
|
21764
|
-
name: "Weekly Review",
|
|
21765
|
-
description: "Close the week and set up the next.",
|
|
21766
|
-
icon: "\uD83D\uDDD3\uFE0F",
|
|
21767
|
-
color: "#34d399",
|
|
21768
|
-
category: "Work",
|
|
21769
|
-
steps: ["Clear the inbox", "Review last week", "Check goals", "Plan next week"]
|
|
21770
|
-
},
|
|
21771
|
-
{
|
|
21772
|
-
key: "leaving-the-house",
|
|
21773
|
-
name: "Leaving the House",
|
|
21774
|
-
description: "Never forget the essentials.",
|
|
21775
|
-
icon: "\uD83D\uDEAA",
|
|
21776
|
-
color: "#38bdf8",
|
|
21777
|
-
category: "Daily",
|
|
21778
|
-
steps: ["Keys", "Wallet", "Phone", "Lock the door"]
|
|
21779
|
-
},
|
|
21780
|
-
{
|
|
21781
|
-
key: "skincare-routine",
|
|
21782
|
-
name: "Skincare AM/PM",
|
|
21783
|
-
description: "A simple morning and night skincare flow.",
|
|
21784
|
-
icon: "\uD83E\uDDF4",
|
|
21785
|
-
color: "#f472b6",
|
|
21786
|
-
category: "Self-care",
|
|
21787
|
-
steps: ["Cleanse", "Treat", "Moisturise", "SPF (AM only)"]
|
|
21788
|
-
},
|
|
21789
|
-
{
|
|
21790
|
-
key: "shutdown-ritual",
|
|
21791
|
-
name: "Shutdown Ritual",
|
|
21792
|
-
description: "End the workday cleanly.",
|
|
21793
|
-
icon: "\uD83D\uDD0C",
|
|
21794
|
-
color: "#a78bfa",
|
|
21795
|
-
category: "Work",
|
|
21796
|
-
steps: ["Review what got done", "Note tomorrow's top task", "Close all tabs", "Step away"]
|
|
21797
|
-
}
|
|
21798
|
-
];
|
|
21799
|
-
var routinePresets = routinePresetDefs.map((def) => ({
|
|
21800
|
-
key: def.key,
|
|
21801
|
-
entity: "routine",
|
|
21802
|
-
name: def.name,
|
|
21803
|
-
description: def.description,
|
|
21804
|
-
icon: def.icon,
|
|
21805
|
-
color: def.color,
|
|
21806
|
-
category: def.category,
|
|
21807
|
-
...def.displayKind ? { displayKind: def.displayKind } : {},
|
|
21808
|
-
featured: def.key === "morning-routine",
|
|
21809
|
-
recipe: {
|
|
21810
|
-
nodes: [
|
|
21811
|
-
{
|
|
21812
|
-
ref: "routine",
|
|
21813
|
-
kind: "routine",
|
|
21814
|
-
title: def.name,
|
|
21815
|
-
steps: def.steps.map((title) => ({ title }))
|
|
21816
|
-
}
|
|
21817
|
-
]
|
|
21818
|
-
}
|
|
21819
|
-
}));
|
|
21820
|
-
var areaBundleDefs = [
|
|
21821
|
-
{
|
|
21822
|
-
key: "life-setup",
|
|
21823
|
-
name: "Life Setup",
|
|
21824
|
-
description: "Nine areas of responsibility to organise your whole life.",
|
|
21825
|
-
icon: "\uD83C\uDF31",
|
|
21826
|
-
color: "#34d399",
|
|
21827
|
-
areas: [
|
|
21828
|
-
{ title: "Health", color: "green", icon: "heart-pulse" },
|
|
21829
|
-
{ title: "Finances", color: "amber", icon: "wallet" },
|
|
21830
|
-
{ title: "Career", color: "blue", icon: "briefcase" },
|
|
21831
|
-
{ title: "Relationships", color: "rose", icon: "users" },
|
|
21832
|
-
{ title: "Home", color: "teal", icon: "house" },
|
|
21833
|
-
{ title: "Personal Growth", color: "purple", icon: "sprout" },
|
|
21834
|
-
{ title: "Recreation", color: "amber", icon: "gamepad-2" },
|
|
21835
|
-
{ title: "Admin", color: "slate", icon: "file-text" },
|
|
21836
|
-
{ title: "Community", color: "red", icon: "hand-heart" }
|
|
21837
|
-
]
|
|
21838
|
-
},
|
|
21839
|
-
{
|
|
21840
|
-
key: "student-life",
|
|
21841
|
-
name: "Student Life",
|
|
21842
|
-
description: "Keep coursework, exams and the rest of life in balance.",
|
|
21843
|
-
icon: "\uD83C\uDF93",
|
|
21844
|
-
color: "#38bdf8",
|
|
21845
|
-
areas: [
|
|
21846
|
-
{ title: "Coursework", color: "blue", icon: "book-open" },
|
|
21847
|
-
{ title: "Exams", color: "red", icon: "graduation-cap" },
|
|
21848
|
-
{ title: "Finances", color: "amber", icon: "wallet" },
|
|
21849
|
-
{ title: "Social", color: "rose", icon: "users" },
|
|
21850
|
-
{ title: "Health", color: "green", icon: "heart-pulse" },
|
|
21851
|
-
{ title: "Career Prep", color: "purple", icon: "briefcase" }
|
|
21852
|
-
]
|
|
21853
|
-
},
|
|
22033
|
+
|
|
22034
|
+
// ../../packages/schema/src/presets/features/lists.ts
|
|
22035
|
+
var shoppingItems2 = (...titles) => titles.map((title) => ({ title }));
|
|
22036
|
+
var listPresetDefs = [
|
|
21854
22037
|
{
|
|
21855
|
-
key: "
|
|
21856
|
-
name: "
|
|
21857
|
-
description: "
|
|
21858
|
-
icon: "\
|
|
22038
|
+
key: "watchlist",
|
|
22039
|
+
name: "Watchlist",
|
|
22040
|
+
description: "Films and shows to watch.",
|
|
22041
|
+
icon: "\uD83C\uDFAC",
|
|
21859
22042
|
color: "#a78bfa",
|
|
21860
|
-
|
|
21861
|
-
|
|
21862
|
-
|
|
21863
|
-
{ title: "Fundraising", color: "amber", icon: "banknote" },
|
|
21864
|
-
{ title: "Team", color: "blue", icon: "users" },
|
|
21865
|
-
{ title: "Finances", color: "slate", icon: "wallet" },
|
|
21866
|
-
{ title: "Personal", color: "rose", icon: "heart" }
|
|
21867
|
-
]
|
|
22043
|
+
category: "Entertainment",
|
|
22044
|
+
title: "Watchlist",
|
|
22045
|
+
items: ["Dune: Part Two", "The Bear", "Severance"]
|
|
21868
22046
|
},
|
|
21869
22047
|
{
|
|
21870
|
-
key: "
|
|
21871
|
-
name: "
|
|
21872
|
-
description: "
|
|
21873
|
-
icon: "\
|
|
21874
|
-
color: "#
|
|
21875
|
-
|
|
21876
|
-
|
|
21877
|
-
|
|
21878
|
-
|
|
21879
|
-
{ title: "Finances", color: "amber", icon: "wallet" },
|
|
21880
|
-
{ title: "Relationship", color: "purple", icon: "heart" },
|
|
21881
|
-
{ title: "Self-care", color: "blue", icon: "sparkles" }
|
|
21882
|
-
]
|
|
21883
|
-
}
|
|
21884
|
-
];
|
|
21885
|
-
var areaPresets = areaBundleDefs.map((def) => ({
|
|
21886
|
-
key: def.key,
|
|
21887
|
-
entity: "area",
|
|
21888
|
-
name: def.name,
|
|
21889
|
-
description: def.description,
|
|
21890
|
-
icon: def.icon,
|
|
21891
|
-
color: def.color,
|
|
21892
|
-
category: "Life Setup",
|
|
21893
|
-
featured: def.key === "life-setup",
|
|
21894
|
-
recipe: {
|
|
21895
|
-
nodes: def.areas.map((area, index2) => ({
|
|
21896
|
-
ref: `area-${index2}`,
|
|
21897
|
-
kind: "area",
|
|
21898
|
-
title: area.title,
|
|
21899
|
-
color: area.color,
|
|
21900
|
-
icon: area.icon
|
|
21901
|
-
}))
|
|
21902
|
-
}
|
|
21903
|
-
}));
|
|
21904
|
-
var projectPresetDefs = [
|
|
22048
|
+
key: "groceries",
|
|
22049
|
+
name: "Groceries",
|
|
22050
|
+
description: "A weekly grocery run.",
|
|
22051
|
+
icon: "\uD83D\uDED2",
|
|
22052
|
+
color: "#34d399",
|
|
22053
|
+
category: "Food",
|
|
22054
|
+
title: "Groceries",
|
|
22055
|
+
items: ["Milk", "Eggs", "Bread", "Bananas", "Coffee", "Spinach"]
|
|
22056
|
+
},
|
|
21905
22057
|
{
|
|
21906
|
-
key: "
|
|
21907
|
-
name: "
|
|
21908
|
-
description: "
|
|
22058
|
+
key: "packing-list",
|
|
22059
|
+
name: "Packing List",
|
|
22060
|
+
description: "Don't forget the essentials.",
|
|
21909
22061
|
icon: "\uD83E\uDDF3",
|
|
21910
22062
|
color: "#38bdf8",
|
|
21911
|
-
category: "
|
|
21912
|
-
|
|
21913
|
-
|
|
21914
|
-
{
|
|
21915
|
-
key: "job-search",
|
|
21916
|
-
name: "Job Search",
|
|
21917
|
-
description: "Run a focused job hunt.",
|
|
21918
|
-
icon: "\uD83D\uDCBC",
|
|
21919
|
-
color: "#a78bfa",
|
|
21920
|
-
category: "Career",
|
|
21921
|
-
milestones: ["Update CV", "Build a target list", "Apply", "Interview prep", "Negotiate offer"]
|
|
22063
|
+
category: "Travel",
|
|
22064
|
+
title: "Packing List",
|
|
22065
|
+
items: ["Passport", "Charger", "Toothbrush", "Headphones", "Adapter"]
|
|
21922
22066
|
},
|
|
21923
22067
|
{
|
|
21924
|
-
key: "
|
|
21925
|
-
name: "
|
|
21926
|
-
description: "
|
|
21927
|
-
icon: "\
|
|
22068
|
+
key: "wishlist",
|
|
22069
|
+
name: "Wishlist",
|
|
22070
|
+
description: "Things you'd love to have.",
|
|
22071
|
+
icon: "\u2B50",
|
|
21928
22072
|
color: "#f59e0b",
|
|
21929
|
-
category: "
|
|
21930
|
-
|
|
22073
|
+
category: "Shopping",
|
|
22074
|
+
title: "Wishlist",
|
|
22075
|
+
items: ["New running shoes", "Standing desk", "E-reader"]
|
|
21931
22076
|
},
|
|
21932
22077
|
{
|
|
21933
|
-
key: "
|
|
21934
|
-
name: "
|
|
21935
|
-
description: "
|
|
21936
|
-
icon: "\
|
|
21937
|
-
color: "#
|
|
21938
|
-
category: "
|
|
21939
|
-
|
|
22078
|
+
key: "gift-ideas",
|
|
22079
|
+
name: "Gift Ideas",
|
|
22080
|
+
description: "Presents to remember.",
|
|
22081
|
+
icon: "\uD83C\uDF81",
|
|
22082
|
+
color: "#fb7185",
|
|
22083
|
+
category: "Gifts",
|
|
22084
|
+
title: "Gift Ideas",
|
|
22085
|
+
items: ["Mom \u2014 gardening gloves", "Dad \u2014 coffee beans", "Sam \u2014 board game"]
|
|
21940
22086
|
},
|
|
21941
22087
|
{
|
|
21942
|
-
key: "
|
|
21943
|
-
name: "
|
|
21944
|
-
description: "
|
|
21945
|
-
icon: "\uD83C\
|
|
22088
|
+
key: "restaurants-to-try",
|
|
22089
|
+
name: "Restaurants to Try",
|
|
22090
|
+
description: "Where to eat next.",
|
|
22091
|
+
icon: "\uD83C\uDF7D\uFE0F",
|
|
21946
22092
|
color: "#fb7185",
|
|
21947
|
-
category: "
|
|
21948
|
-
|
|
21949
|
-
|
|
21950
|
-
"Invite guests",
|
|
21951
|
-
"Book venue",
|
|
21952
|
-
"Order food",
|
|
21953
|
-
"Day-of run sheet"
|
|
21954
|
-
]
|
|
22093
|
+
category: "Food",
|
|
22094
|
+
title: "Restaurants to Try",
|
|
22095
|
+
items: ["Corner ramen spot", "New taqueria", "That rooftop place"]
|
|
21955
22096
|
},
|
|
21956
22097
|
{
|
|
21957
|
-
key: "
|
|
21958
|
-
name: "
|
|
21959
|
-
description: "
|
|
21960
|
-
icon: "\
|
|
22098
|
+
key: "places-to-travel",
|
|
22099
|
+
name: "Places to Travel",
|
|
22100
|
+
description: "Your someday-soon map.",
|
|
22101
|
+
icon: "\u2708\uFE0F",
|
|
22102
|
+
color: "#38bdf8",
|
|
22103
|
+
category: "Travel",
|
|
22104
|
+
title: "Places to Travel",
|
|
22105
|
+
items: ["Lisbon", "Kyoto", "Patagonia"]
|
|
22106
|
+
},
|
|
22107
|
+
{
|
|
22108
|
+
key: "home-maintenance",
|
|
22109
|
+
name: "Home Maintenance",
|
|
22110
|
+
description: "Keep the house in shape.",
|
|
22111
|
+
icon: "\uD83C\uDFE0",
|
|
21961
22112
|
color: "#f59e0b",
|
|
21962
|
-
category: "
|
|
21963
|
-
|
|
21964
|
-
|
|
21965
|
-
"Daily practice",
|
|
21966
|
-
"Build a project",
|
|
21967
|
-
"Get feedback",
|
|
21968
|
-
"Teach someone"
|
|
21969
|
-
]
|
|
22113
|
+
category: "Home",
|
|
22114
|
+
title: "Home Maintenance",
|
|
22115
|
+
items: ["Change HVAC filter", "Clean gutters", "Test smoke alarms", "Descale kettle"]
|
|
21970
22116
|
}
|
|
21971
22117
|
];
|
|
21972
|
-
var
|
|
21973
|
-
|
|
21974
|
-
|
|
21975
|
-
|
|
21976
|
-
|
|
21977
|
-
|
|
21978
|
-
|
|
21979
|
-
|
|
21980
|
-
|
|
22118
|
+
var booksToRead = [
|
|
22119
|
+
{ title: "Atomic Habits", author: "James Clear" },
|
|
22120
|
+
{ title: "Deep Work", author: "Cal Newport" },
|
|
22121
|
+
{ title: "The Pragmatic Programmer", author: "Andrew Hunt" }
|
|
22122
|
+
];
|
|
22123
|
+
var booksToReadPreset = {
|
|
22124
|
+
key: "books-to-read",
|
|
22125
|
+
entity: "library",
|
|
22126
|
+
name: "Books to Read",
|
|
22127
|
+
description: "Your reading queue \u2014 covers, status and ratings.",
|
|
22128
|
+
icon: "\uD83D\uDCDA",
|
|
22129
|
+
color: "#f59e0b",
|
|
22130
|
+
category: "Reading",
|
|
22131
|
+
displayKind: MEDIA_SHELF_DISPLAY_KIND,
|
|
21981
22132
|
recipe: {
|
|
21982
22133
|
nodes: [
|
|
21983
22134
|
{
|
|
21984
|
-
ref: "
|
|
21985
|
-
kind: "
|
|
21986
|
-
title:
|
|
21987
|
-
|
|
22135
|
+
ref: "list",
|
|
22136
|
+
kind: "shopping_list",
|
|
22137
|
+
title: "Books to Read",
|
|
22138
|
+
displayKind: MEDIA_SHELF_DISPLAY_KIND,
|
|
22139
|
+
items: booksToRead.map((book) => ({
|
|
22140
|
+
title: book.title,
|
|
22141
|
+
facet: { author: book.author, status: "to-read" }
|
|
22142
|
+
}))
|
|
21988
22143
|
}
|
|
21989
22144
|
]
|
|
21990
22145
|
}
|
|
21991
|
-
}
|
|
22146
|
+
};
|
|
22147
|
+
var shoppingListPresets = [
|
|
22148
|
+
booksToReadPreset,
|
|
22149
|
+
...listPresetDefs.map((def) => ({
|
|
22150
|
+
key: def.key,
|
|
22151
|
+
entity: "list",
|
|
22152
|
+
name: def.name,
|
|
22153
|
+
description: def.description,
|
|
22154
|
+
icon: def.icon,
|
|
22155
|
+
color: def.color,
|
|
22156
|
+
category: def.category,
|
|
22157
|
+
featured: def.key === "groceries",
|
|
22158
|
+
recipe: {
|
|
22159
|
+
nodes: [
|
|
22160
|
+
{
|
|
22161
|
+
ref: "list",
|
|
22162
|
+
kind: "shopping_list",
|
|
22163
|
+
title: def.title,
|
|
22164
|
+
items: shoppingItems2(...def.items)
|
|
22165
|
+
}
|
|
22166
|
+
]
|
|
22167
|
+
}
|
|
22168
|
+
}))
|
|
22169
|
+
];
|
|
22170
|
+
|
|
22171
|
+
// ../../packages/schema/src/presets/features/meals.ts
|
|
21992
22172
|
var recipeNode = (def) => ({
|
|
21993
22173
|
ref: def.ref,
|
|
21994
22174
|
kind: "recipe",
|
|
@@ -22186,265 +22366,197 @@ var mealPresets = [
|
|
|
22186
22366
|
}
|
|
22187
22367
|
}
|
|
22188
22368
|
];
|
|
22189
|
-
|
|
22369
|
+
|
|
22370
|
+
// ../../packages/schema/src/presets/features/projects.ts
|
|
22371
|
+
var projectPresetDefs = [
|
|
22190
22372
|
{
|
|
22191
|
-
key: "
|
|
22192
|
-
name: "
|
|
22193
|
-
description: "
|
|
22194
|
-
|
|
22195
|
-
|
|
22373
|
+
key: "plan-a-trip",
|
|
22374
|
+
name: "Plan a Trip",
|
|
22375
|
+
description: "From idea to itinerary.",
|
|
22376
|
+
icon: "\uD83E\uDDF3",
|
|
22377
|
+
color: "#38bdf8",
|
|
22378
|
+
category: "Personal",
|
|
22379
|
+
milestones: ["Pick dates & destination", "Book flights", "Book stay", "Plan itinerary", "Pack"]
|
|
22196
22380
|
},
|
|
22197
22381
|
{
|
|
22198
|
-
key: "
|
|
22199
|
-
name: "
|
|
22200
|
-
description: "
|
|
22201
|
-
|
|
22202
|
-
|
|
22382
|
+
key: "job-search",
|
|
22383
|
+
name: "Job Search",
|
|
22384
|
+
description: "Run a focused job hunt.",
|
|
22385
|
+
icon: "\uD83D\uDCBC",
|
|
22386
|
+
color: "#a78bfa",
|
|
22387
|
+
category: "Career",
|
|
22388
|
+
milestones: ["Update CV", "Build a target list", "Apply", "Interview prep", "Negotiate offer"]
|
|
22203
22389
|
},
|
|
22204
22390
|
{
|
|
22205
|
-
key: "
|
|
22206
|
-
name: "
|
|
22207
|
-
description: "
|
|
22208
|
-
|
|
22209
|
-
|
|
22391
|
+
key: "move-house",
|
|
22392
|
+
name: "Move House",
|
|
22393
|
+
description: "Keep a move from overwhelming you.",
|
|
22394
|
+
icon: "\uD83D\uDCE6",
|
|
22395
|
+
color: "#f59e0b",
|
|
22396
|
+
category: "Home",
|
|
22397
|
+
milestones: ["Declutter", "Book movers", "Pack room by room", "Change address", "Unpack"]
|
|
22210
22398
|
},
|
|
22211
22399
|
{
|
|
22212
|
-
key: "
|
|
22213
|
-
name: "
|
|
22214
|
-
description: "
|
|
22215
|
-
|
|
22216
|
-
|
|
22400
|
+
key: "side-project",
|
|
22401
|
+
name: "Launch a Side Project",
|
|
22402
|
+
description: "Ship something on the side.",
|
|
22403
|
+
icon: "\uD83D\uDEE0\uFE0F",
|
|
22404
|
+
color: "#34d399",
|
|
22405
|
+
category: "Career",
|
|
22406
|
+
milestones: ["Define the MVP", "Build it", "Test with users", "Launch", "Gather feedback"]
|
|
22217
22407
|
},
|
|
22218
22408
|
{
|
|
22219
|
-
key: "
|
|
22220
|
-
name: "
|
|
22221
|
-
description: "
|
|
22222
|
-
|
|
22223
|
-
|
|
22409
|
+
key: "plan-an-event",
|
|
22410
|
+
name: "Plan an Event",
|
|
22411
|
+
description: "Pull off a gathering without the stress.",
|
|
22412
|
+
icon: "\uD83C\uDF89",
|
|
22413
|
+
color: "#fb7185",
|
|
22414
|
+
category: "Personal",
|
|
22415
|
+
milestones: [
|
|
22416
|
+
"Set date & budget",
|
|
22417
|
+
"Invite guests",
|
|
22418
|
+
"Book venue",
|
|
22419
|
+
"Order food",
|
|
22420
|
+
"Day-of run sheet"
|
|
22421
|
+
]
|
|
22422
|
+
},
|
|
22423
|
+
{
|
|
22424
|
+
key: "learn-a-skill",
|
|
22425
|
+
name: "Learn a Skill",
|
|
22426
|
+
description: "Go from beginner to capable.",
|
|
22427
|
+
icon: "\uD83D\uDCDA",
|
|
22428
|
+
color: "#f59e0b",
|
|
22429
|
+
category: "Growth",
|
|
22430
|
+
milestones: [
|
|
22431
|
+
"Pick a resource",
|
|
22432
|
+
"Daily practice",
|
|
22433
|
+
"Build a project",
|
|
22434
|
+
"Get feedback",
|
|
22435
|
+
"Teach someone"
|
|
22436
|
+
]
|
|
22224
22437
|
}
|
|
22225
22438
|
];
|
|
22226
|
-
var
|
|
22439
|
+
var projectPresets = projectPresetDefs.map((def) => ({
|
|
22227
22440
|
key: def.key,
|
|
22228
|
-
entity: "
|
|
22441
|
+
entity: "project",
|
|
22229
22442
|
name: def.name,
|
|
22230
|
-
description: def.description,
|
|
22231
|
-
icon:
|
|
22232
|
-
color:
|
|
22233
|
-
category:
|
|
22234
|
-
featured: def.key === "
|
|
22443
|
+
description: def.description,
|
|
22444
|
+
icon: def.icon,
|
|
22445
|
+
color: def.color,
|
|
22446
|
+
category: def.category,
|
|
22447
|
+
featured: def.key === "plan-a-trip",
|
|
22235
22448
|
recipe: {
|
|
22236
22449
|
nodes: [
|
|
22237
22450
|
{
|
|
22238
|
-
ref: "
|
|
22239
|
-
kind: "
|
|
22451
|
+
ref: "project",
|
|
22452
|
+
kind: "project",
|
|
22240
22453
|
title: def.name,
|
|
22241
|
-
|
|
22242
|
-
tags: ["keep-in-touch", def.tag]
|
|
22454
|
+
milestones: def.milestones.map((title) => ({ title }))
|
|
22243
22455
|
}
|
|
22244
22456
|
]
|
|
22245
22457
|
}
|
|
22246
22458
|
}));
|
|
22247
|
-
|
|
22459
|
+
|
|
22460
|
+
// ../../packages/schema/src/presets/features/routines.ts
|
|
22461
|
+
var routinePresetDefs = [
|
|
22248
22462
|
{
|
|
22249
|
-
key: "
|
|
22250
|
-
name: "
|
|
22251
|
-
description: "
|
|
22252
|
-
icon: "\
|
|
22253
|
-
color: "#
|
|
22254
|
-
|
|
22255
|
-
|
|
22256
|
-
|
|
22463
|
+
key: "morning-routine",
|
|
22464
|
+
name: "Morning Routine",
|
|
22465
|
+
description: "Start the day with intention.",
|
|
22466
|
+
icon: "\uD83C\uDF05",
|
|
22467
|
+
color: "#f59e0b",
|
|
22468
|
+
category: "Daily",
|
|
22469
|
+
displayKind: "routine-checklist",
|
|
22470
|
+
steps: ["Make the bed", "Drink a glass of water", "Stretch", "Plan the day"]
|
|
22257
22471
|
},
|
|
22258
22472
|
{
|
|
22259
|
-
key: "
|
|
22260
|
-
name: "
|
|
22261
|
-
description: "
|
|
22262
|
-
icon: "\uD83C\
|
|
22263
|
-
color: "#
|
|
22264
|
-
|
|
22265
|
-
|
|
22266
|
-
durationDays: 30
|
|
22473
|
+
key: "evening-wind-down",
|
|
22474
|
+
name: "Evening Wind-Down",
|
|
22475
|
+
description: "Ease into a restful night.",
|
|
22476
|
+
icon: "\uD83C\uDF19",
|
|
22477
|
+
color: "#818cf8",
|
|
22478
|
+
category: "Daily",
|
|
22479
|
+
steps: ["Dim the lights", "Tidy up", "Read a few pages", "Lights out"]
|
|
22267
22480
|
},
|
|
22268
22481
|
{
|
|
22269
|
-
key: "
|
|
22270
|
-
name: "
|
|
22271
|
-
description: "
|
|
22272
|
-
icon: "\uD83C\
|
|
22482
|
+
key: "deep-work-block",
|
|
22483
|
+
name: "Deep Work Block",
|
|
22484
|
+
description: "Set up for focused, distraction-free work.",
|
|
22485
|
+
icon: "\uD83C\uDFAF",
|
|
22486
|
+
color: "#a78bfa",
|
|
22487
|
+
category: "Work",
|
|
22488
|
+
steps: ["Silence notifications", "Pick one task", "Start a 50-min timer", "Take a break"]
|
|
22489
|
+
},
|
|
22490
|
+
{
|
|
22491
|
+
key: "gym-session",
|
|
22492
|
+
name: "Gym Session",
|
|
22493
|
+
description: "A repeatable workout flow.",
|
|
22494
|
+
icon: "\uD83C\uDFCB\uFE0F",
|
|
22495
|
+
color: "#fb7185",
|
|
22496
|
+
category: "Fitness",
|
|
22497
|
+
steps: ["Warm up", "Main lifts", "Accessory work", "Cool down & stretch"]
|
|
22498
|
+
},
|
|
22499
|
+
{
|
|
22500
|
+
key: "weekly-review",
|
|
22501
|
+
name: "Weekly Review",
|
|
22502
|
+
description: "Close the week and set up the next.",
|
|
22503
|
+
icon: "\uD83D\uDDD3\uFE0F",
|
|
22273
22504
|
color: "#34d399",
|
|
22274
|
-
|
|
22275
|
-
|
|
22276
|
-
durationDays: 63
|
|
22505
|
+
category: "Work",
|
|
22506
|
+
steps: ["Clear the inbox", "Review last week", "Check goals", "Plan next week"]
|
|
22277
22507
|
},
|
|
22278
22508
|
{
|
|
22279
|
-
key: "
|
|
22280
|
-
name: "
|
|
22281
|
-
description: "
|
|
22282
|
-
icon: "\uD83D\
|
|
22509
|
+
key: "leaving-the-house",
|
|
22510
|
+
name: "Leaving the House",
|
|
22511
|
+
description: "Never forget the essentials.",
|
|
22512
|
+
icon: "\uD83D\uDEAA",
|
|
22283
22513
|
color: "#38bdf8",
|
|
22284
|
-
|
|
22285
|
-
|
|
22286
|
-
durationDays: 31
|
|
22514
|
+
category: "Daily",
|
|
22515
|
+
steps: ["Keys", "Wallet", "Phone", "Lock the door"]
|
|
22287
22516
|
},
|
|
22288
22517
|
{
|
|
22289
|
-
key: "
|
|
22290
|
-
name: "
|
|
22291
|
-
description: "
|
|
22292
|
-
icon: "\uD83E\
|
|
22293
|
-
color: "#
|
|
22294
|
-
|
|
22295
|
-
|
|
22296
|
-
durationDays: 31
|
|
22518
|
+
key: "skincare-routine",
|
|
22519
|
+
name: "Skincare AM/PM",
|
|
22520
|
+
description: "A simple morning and night skincare flow.",
|
|
22521
|
+
icon: "\uD83E\uDDF4",
|
|
22522
|
+
color: "#f472b6",
|
|
22523
|
+
category: "Self-care",
|
|
22524
|
+
steps: ["Cleanse", "Treat", "Moisturise", "SPF (AM only)"]
|
|
22297
22525
|
},
|
|
22298
22526
|
{
|
|
22299
|
-
key: "
|
|
22300
|
-
name: "
|
|
22301
|
-
description: "
|
|
22302
|
-
icon: "\uD83D\
|
|
22303
|
-
color: "#
|
|
22304
|
-
|
|
22305
|
-
|
|
22306
|
-
durationDays: 30
|
|
22527
|
+
key: "shutdown-ritual",
|
|
22528
|
+
name: "Shutdown Ritual",
|
|
22529
|
+
description: "End the workday cleanly.",
|
|
22530
|
+
icon: "\uD83D\uDD0C",
|
|
22531
|
+
color: "#a78bfa",
|
|
22532
|
+
category: "Work",
|
|
22533
|
+
steps: ["Review what got done", "Note tomorrow's top task", "Close all tabs", "Step away"]
|
|
22307
22534
|
}
|
|
22308
22535
|
];
|
|
22309
|
-
var
|
|
22536
|
+
var routinePresets = routinePresetDefs.map((def) => ({
|
|
22310
22537
|
key: def.key,
|
|
22311
|
-
entity: "
|
|
22538
|
+
entity: "routine",
|
|
22312
22539
|
name: def.name,
|
|
22313
22540
|
description: def.description,
|
|
22314
22541
|
icon: def.icon,
|
|
22315
22542
|
color: def.color,
|
|
22316
|
-
category:
|
|
22317
|
-
|
|
22543
|
+
category: def.category,
|
|
22544
|
+
...def.displayKind ? { displayKind: def.displayKind } : {},
|
|
22545
|
+
featured: def.key === "morning-routine",
|
|
22318
22546
|
recipe: {
|
|
22319
22547
|
nodes: [
|
|
22320
22548
|
{
|
|
22321
|
-
ref: "
|
|
22322
|
-
kind: "
|
|
22549
|
+
ref: "routine",
|
|
22550
|
+
kind: "routine",
|
|
22323
22551
|
title: def.name,
|
|
22324
|
-
|
|
22325
|
-
metric: def.metric,
|
|
22326
|
-
target: def.target,
|
|
22327
|
-
durationDays: def.durationDays
|
|
22552
|
+
steps: def.steps.map((title) => ({ title }))
|
|
22328
22553
|
}
|
|
22329
22554
|
]
|
|
22330
22555
|
}
|
|
22331
22556
|
}));
|
|
22332
|
-
|
|
22333
|
-
|
|
22334
|
-
|
|
22335
|
-
entity: "automation",
|
|
22336
|
-
name: "Low stock \u2192 add to groceries",
|
|
22337
|
-
description: "When an inventory item runs low, make a task to restock it.",
|
|
22338
|
-
icon: "\uD83E\uDD6B",
|
|
22339
|
-
color: "#34d399",
|
|
22340
|
-
category: "Automations",
|
|
22341
|
-
recipe: {
|
|
22342
|
-
nodes: [
|
|
22343
|
-
{
|
|
22344
|
-
ref: "automation",
|
|
22345
|
-
kind: "automation",
|
|
22346
|
-
name: "Low stock \u2192 add to groceries",
|
|
22347
|
-
trigger: { entity: "inventory", action: "updated" },
|
|
22348
|
-
condition: { path: "value.lowStock", op: "eq", value: true },
|
|
22349
|
-
action: { type: "create_task", title: "Restock low groceries", priority: "medium" }
|
|
22350
|
-
}
|
|
22351
|
-
]
|
|
22352
|
-
}
|
|
22353
|
-
},
|
|
22354
|
-
{
|
|
22355
|
-
key: "auto-habit-missed-nudge",
|
|
22356
|
-
entity: "automation",
|
|
22357
|
-
name: "Habit missed 3\xD7 \u2192 nudge",
|
|
22358
|
-
description: "Get a gentle nudge when you miss a habit three times.",
|
|
22359
|
-
icon: "\uD83D\uDD14",
|
|
22360
|
-
color: "#fb7185",
|
|
22361
|
-
category: "Automations",
|
|
22362
|
-
recipe: {
|
|
22363
|
-
nodes: [
|
|
22364
|
-
{
|
|
22365
|
-
ref: "automation",
|
|
22366
|
-
kind: "automation",
|
|
22367
|
-
name: "Habit missed 3\xD7 \u2192 nudge",
|
|
22368
|
-
trigger: { entity: "habits", action: "updated" },
|
|
22369
|
-
condition: { path: "value.missedStreak", op: "eq", value: 3 },
|
|
22370
|
-
action: {
|
|
22371
|
-
type: "notify",
|
|
22372
|
-
title: "Don't break the chain",
|
|
22373
|
-
body: "You've missed this habit three times \u2014 jump back in today."
|
|
22374
|
-
}
|
|
22375
|
-
}
|
|
22376
|
-
]
|
|
22377
|
-
}
|
|
22378
|
-
},
|
|
22379
|
-
{
|
|
22380
|
-
key: "auto-task-overdue-bump",
|
|
22381
|
-
entity: "automation",
|
|
22382
|
-
name: "Task overdue \u2192 bump priority",
|
|
22383
|
-
description: "When a task goes overdue, raise a high-priority follow-up.",
|
|
22384
|
-
icon: "\u23F0",
|
|
22385
|
-
color: "#f59e0b",
|
|
22386
|
-
category: "Automations",
|
|
22387
|
-
recipe: {
|
|
22388
|
-
nodes: [
|
|
22389
|
-
{
|
|
22390
|
-
ref: "automation",
|
|
22391
|
-
kind: "automation",
|
|
22392
|
-
name: "Task overdue \u2192 bump priority",
|
|
22393
|
-
trigger: { entity: "tasks", action: "updated" },
|
|
22394
|
-
condition: { path: "value.overdue", op: "eq", value: true },
|
|
22395
|
-
action: { type: "create_task", title: "Reprioritise overdue task", priority: "high" }
|
|
22396
|
-
}
|
|
22397
|
-
]
|
|
22398
|
-
}
|
|
22399
|
-
},
|
|
22400
|
-
{
|
|
22401
|
-
key: "auto-weekly-review",
|
|
22402
|
-
entity: "automation",
|
|
22403
|
-
name: "Weekly review reminder",
|
|
22404
|
-
description: "Reschedule your weekly review a week out each time you finish it.",
|
|
22405
|
-
icon: "\uD83D\uDDD3\uFE0F",
|
|
22406
|
-
color: "#34d399",
|
|
22407
|
-
category: "Automations",
|
|
22408
|
-
recipe: {
|
|
22409
|
-
nodes: [
|
|
22410
|
-
{
|
|
22411
|
-
ref: "automation",
|
|
22412
|
-
kind: "automation",
|
|
22413
|
-
name: "Weekly review reminder",
|
|
22414
|
-
trigger: { entity: "tasks", action: "updated" },
|
|
22415
|
-
condition: { path: "value.title", op: "contains", value: "Weekly Review" },
|
|
22416
|
-
action: { type: "schedule_task", offsetMinutes: 10080 }
|
|
22417
|
-
}
|
|
22418
|
-
]
|
|
22419
|
-
}
|
|
22420
|
-
},
|
|
22421
|
-
{
|
|
22422
|
-
key: "auto-finished-book-rate",
|
|
22423
|
-
entity: "automation",
|
|
22424
|
-
name: "Finished book \u2192 rate it",
|
|
22425
|
-
description: "When you finish a book, make a task to rate it.",
|
|
22426
|
-
icon: "\uD83D\uDCDA",
|
|
22427
|
-
color: "#f59e0b",
|
|
22428
|
-
category: "Automations",
|
|
22429
|
-
recipe: {
|
|
22430
|
-
nodes: [
|
|
22431
|
-
{
|
|
22432
|
-
ref: "automation",
|
|
22433
|
-
kind: "automation",
|
|
22434
|
-
name: "Finished book \u2192 rate it",
|
|
22435
|
-
trigger: { entity: "books", action: "updated" },
|
|
22436
|
-
condition: { path: "value.status", op: "eq", value: "finished" },
|
|
22437
|
-
action: {
|
|
22438
|
-
type: "create_task",
|
|
22439
|
-
title: "Rate the book you just finished",
|
|
22440
|
-
priority: "low"
|
|
22441
|
-
}
|
|
22442
|
-
}
|
|
22443
|
-
]
|
|
22444
|
-
}
|
|
22445
|
-
}
|
|
22446
|
-
];
|
|
22447
|
-
var presetCatalog = [
|
|
22557
|
+
|
|
22558
|
+
// ../../packages/schema/src/presets/features/index.ts
|
|
22559
|
+
var featurePresets = [
|
|
22448
22560
|
...habitPresets,
|
|
22449
22561
|
...shoppingListPresets,
|
|
22450
22562
|
...inventoryPresets,
|
|
@@ -22456,6 +22568,9 @@ var presetCatalog = [
|
|
|
22456
22568
|
...challengePresets,
|
|
22457
22569
|
...automationPresets
|
|
22458
22570
|
];
|
|
22571
|
+
|
|
22572
|
+
// ../../packages/schema/src/presets/catalog.ts
|
|
22573
|
+
var presetCatalog = featurePresets;
|
|
22459
22574
|
var presetsByKey = new Map(presetCatalog.map((preset) => [preset.key, preset]));
|
|
22460
22575
|
// ../../node_modules/.bun/ulidx@2.4.1/node_modules/ulidx/dist/node/index.js
|
|
22461
22576
|
import crypto from "crypto";
|
|
@@ -22709,7 +22824,7 @@ function parseCapture2(input) {
|
|
|
22709
22824
|
|
|
22710
22825
|
// src/meta.ts
|
|
22711
22826
|
var CLI_NAME = "do";
|
|
22712
|
-
var VERSION = "1.
|
|
22827
|
+
var VERSION = "1.32.0";
|
|
22713
22828
|
var API_PREFIX = "/api/v1";
|
|
22714
22829
|
var DEFAULT_API_URL = "http://localhost:3001";
|
|
22715
22830
|
|