@hasna/todos 0.11.21 → 0.11.22
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/cli/index.js +213 -200
- package/dist/db/pg-migrations.d.ts.map +1 -1
- package/dist/db/projects.d.ts.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/tasks.d.ts.map +1 -1
- package/dist/index.js +180 -166
- package/dist/mcp/index.js +194 -191
- package/dist/server/index.js +114 -107
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -3165,6 +3165,12 @@ var init_schema = __esm(() => {
|
|
|
3165
3165
|
ALTER TABLE tasks ADD COLUMN archived_at TEXT;
|
|
3166
3166
|
CREATE INDEX IF NOT EXISTS idx_tasks_archived ON tasks(archived_at) WHERE archived_at IS NOT NULL;
|
|
3167
3167
|
INSERT OR IGNORE INTO _migrations (id) VALUES (43);
|
|
3168
|
+
`,
|
|
3169
|
+
`
|
|
3170
|
+
DROP INDEX IF EXISTS idx_tasks_short_id;
|
|
3171
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_tasks_short_id ON tasks(short_id, machine_id) WHERE short_id IS NOT NULL AND machine_id IS NOT NULL;
|
|
3172
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_short_id_lookup ON tasks(short_id) WHERE short_id IS NOT NULL;
|
|
3173
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (44);
|
|
3168
3174
|
`
|
|
3169
3175
|
];
|
|
3170
3176
|
});
|
|
@@ -3544,6 +3550,161 @@ var init_types = __esm(() => {
|
|
|
3544
3550
|
};
|
|
3545
3551
|
});
|
|
3546
3552
|
|
|
3553
|
+
// src/lib/sync-utils.ts
|
|
3554
|
+
import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync, readdirSync, statSync, writeFileSync } from "fs";
|
|
3555
|
+
import { join as join2 } from "path";
|
|
3556
|
+
function ensureDir2(dir) {
|
|
3557
|
+
if (!existsSync2(dir))
|
|
3558
|
+
mkdirSync2(dir, { recursive: true });
|
|
3559
|
+
}
|
|
3560
|
+
function listJsonFiles(dir) {
|
|
3561
|
+
if (!existsSync2(dir))
|
|
3562
|
+
return [];
|
|
3563
|
+
return readdirSync(dir).filter((f) => f.endsWith(".json"));
|
|
3564
|
+
}
|
|
3565
|
+
function readJsonFile(path) {
|
|
3566
|
+
try {
|
|
3567
|
+
return JSON.parse(readFileSync(path, "utf-8"));
|
|
3568
|
+
} catch {
|
|
3569
|
+
return null;
|
|
3570
|
+
}
|
|
3571
|
+
}
|
|
3572
|
+
function writeJsonFile(path, data) {
|
|
3573
|
+
writeFileSync(path, JSON.stringify(data, null, 2) + `
|
|
3574
|
+
`);
|
|
3575
|
+
}
|
|
3576
|
+
function readHighWaterMark(dir) {
|
|
3577
|
+
const path = join2(dir, ".highwatermark");
|
|
3578
|
+
if (!existsSync2(path))
|
|
3579
|
+
return 1;
|
|
3580
|
+
const val = parseInt(readFileSync(path, "utf-8").trim(), 10);
|
|
3581
|
+
return isNaN(val) ? 1 : val;
|
|
3582
|
+
}
|
|
3583
|
+
function writeHighWaterMark(dir, value) {
|
|
3584
|
+
writeFileSync(join2(dir, ".highwatermark"), String(value));
|
|
3585
|
+
}
|
|
3586
|
+
function getFileMtimeMs(path) {
|
|
3587
|
+
try {
|
|
3588
|
+
return statSync(path).mtimeMs;
|
|
3589
|
+
} catch {
|
|
3590
|
+
return null;
|
|
3591
|
+
}
|
|
3592
|
+
}
|
|
3593
|
+
function parseTimestamp(value) {
|
|
3594
|
+
if (typeof value !== "string")
|
|
3595
|
+
return null;
|
|
3596
|
+
const parsed = Date.parse(value);
|
|
3597
|
+
return Number.isNaN(parsed) ? null : parsed;
|
|
3598
|
+
}
|
|
3599
|
+
function appendSyncConflict(metadata, conflict, limit = 5) {
|
|
3600
|
+
const current = Array.isArray(metadata["sync_conflicts"]) ? metadata["sync_conflicts"] : [];
|
|
3601
|
+
const next = [conflict, ...current].slice(0, limit);
|
|
3602
|
+
return { ...metadata, sync_conflicts: next };
|
|
3603
|
+
}
|
|
3604
|
+
var HOME;
|
|
3605
|
+
var init_sync_utils = __esm(() => {
|
|
3606
|
+
HOME = process.env["HOME"] || process.env["USERPROFILE"] || "~";
|
|
3607
|
+
});
|
|
3608
|
+
|
|
3609
|
+
// src/lib/config.ts
|
|
3610
|
+
var exports_config = {};
|
|
3611
|
+
__export(exports_config, {
|
|
3612
|
+
loadConfig: () => loadConfig,
|
|
3613
|
+
getTaskPrefixConfig: () => getTaskPrefixConfig,
|
|
3614
|
+
getSyncAgentsFromConfig: () => getSyncAgentsFromConfig,
|
|
3615
|
+
getCompletionGuardConfig: () => getCompletionGuardConfig,
|
|
3616
|
+
getAgentTasksDir: () => getAgentTasksDir,
|
|
3617
|
+
getAgentTaskListId: () => getAgentTaskListId,
|
|
3618
|
+
getAgentPoolForProject: () => getAgentPoolForProject
|
|
3619
|
+
});
|
|
3620
|
+
import { existsSync as existsSync3 } from "fs";
|
|
3621
|
+
import { join as join3 } from "path";
|
|
3622
|
+
function getTodosGlobalDir() {
|
|
3623
|
+
const home = process.env["HOME"] || HOME;
|
|
3624
|
+
const newDir = join3(home, ".hasna", "todos");
|
|
3625
|
+
const legacyDir = join3(home, ".todos");
|
|
3626
|
+
if (!existsSync3(newDir) && existsSync3(legacyDir))
|
|
3627
|
+
return legacyDir;
|
|
3628
|
+
return newDir;
|
|
3629
|
+
}
|
|
3630
|
+
function getConfigPath() {
|
|
3631
|
+
return join3(getTodosGlobalDir(), "config.json");
|
|
3632
|
+
}
|
|
3633
|
+
function normalizeAgent(agent) {
|
|
3634
|
+
return agent.trim().toLowerCase();
|
|
3635
|
+
}
|
|
3636
|
+
function loadConfig() {
|
|
3637
|
+
if (cached)
|
|
3638
|
+
return cached;
|
|
3639
|
+
if (!existsSync3(getConfigPath())) {
|
|
3640
|
+
cached = {};
|
|
3641
|
+
return cached;
|
|
3642
|
+
}
|
|
3643
|
+
const config = readJsonFile(getConfigPath()) || {};
|
|
3644
|
+
if (typeof config.sync_agents === "string") {
|
|
3645
|
+
config.sync_agents = config.sync_agents.split(",").map((a) => a.trim()).filter(Boolean);
|
|
3646
|
+
}
|
|
3647
|
+
cached = config;
|
|
3648
|
+
return cached;
|
|
3649
|
+
}
|
|
3650
|
+
function getSyncAgentsFromConfig() {
|
|
3651
|
+
const config = loadConfig();
|
|
3652
|
+
const agents = config.sync_agents;
|
|
3653
|
+
if (Array.isArray(agents) && agents.length > 0)
|
|
3654
|
+
return agents.map(normalizeAgent);
|
|
3655
|
+
return null;
|
|
3656
|
+
}
|
|
3657
|
+
function getAgentTaskListId(agent) {
|
|
3658
|
+
const config = loadConfig();
|
|
3659
|
+
const key = normalizeAgent(agent);
|
|
3660
|
+
return config.agents?.[key]?.task_list_id || config.task_list_id || null;
|
|
3661
|
+
}
|
|
3662
|
+
function getAgentTasksDir(agent) {
|
|
3663
|
+
const config = loadConfig();
|
|
3664
|
+
const key = normalizeAgent(agent);
|
|
3665
|
+
return config.agents?.[key]?.tasks_dir || config.agent_tasks_dir || null;
|
|
3666
|
+
}
|
|
3667
|
+
function getTaskPrefixConfig() {
|
|
3668
|
+
const config = loadConfig();
|
|
3669
|
+
return config.task_prefix || null;
|
|
3670
|
+
}
|
|
3671
|
+
function getAgentPoolForProject(workingDir) {
|
|
3672
|
+
const config = loadConfig();
|
|
3673
|
+
if (workingDir && config.project_pools) {
|
|
3674
|
+
let bestKey = null;
|
|
3675
|
+
let bestLen = 0;
|
|
3676
|
+
for (const key of Object.keys(config.project_pools)) {
|
|
3677
|
+
if (workingDir.startsWith(key) && key.length > bestLen) {
|
|
3678
|
+
bestKey = key;
|
|
3679
|
+
bestLen = key.length;
|
|
3680
|
+
}
|
|
3681
|
+
}
|
|
3682
|
+
if (bestKey && config.project_pools[bestKey]) {
|
|
3683
|
+
return config.project_pools[bestKey];
|
|
3684
|
+
}
|
|
3685
|
+
}
|
|
3686
|
+
return config.agent_pool || null;
|
|
3687
|
+
}
|
|
3688
|
+
function getCompletionGuardConfig(projectPath) {
|
|
3689
|
+
const config = loadConfig();
|
|
3690
|
+
const global2 = { ...GUARD_DEFAULTS, ...config.completion_guard };
|
|
3691
|
+
if (projectPath && config.project_overrides?.[projectPath]?.completion_guard) {
|
|
3692
|
+
return { ...global2, ...config.project_overrides[projectPath].completion_guard };
|
|
3693
|
+
}
|
|
3694
|
+
return global2;
|
|
3695
|
+
}
|
|
3696
|
+
var cached = null, GUARD_DEFAULTS;
|
|
3697
|
+
var init_config = __esm(() => {
|
|
3698
|
+
init_sync_utils();
|
|
3699
|
+
GUARD_DEFAULTS = {
|
|
3700
|
+
enabled: false,
|
|
3701
|
+
min_work_seconds: 30,
|
|
3702
|
+
max_completions_per_window: 5,
|
|
3703
|
+
window_minutes: 10,
|
|
3704
|
+
cooldown_seconds: 60
|
|
3705
|
+
};
|
|
3706
|
+
});
|
|
3707
|
+
|
|
3547
3708
|
// src/db/projects.ts
|
|
3548
3709
|
var exports_projects = {};
|
|
3549
3710
|
__export(exports_projects, {
|
|
@@ -3725,13 +3886,6 @@ function nextTaskShortId(projectId, db) {
|
|
|
3725
3886
|
const project = getProject(projectId, d);
|
|
3726
3887
|
if (!project || !project.task_prefix)
|
|
3727
3888
|
return null;
|
|
3728
|
-
const prefix = project.task_prefix;
|
|
3729
|
-
const prefixLen = prefix.length + 2;
|
|
3730
|
-
const maxRow = d.query(`SELECT MAX(CAST(SUBSTR(short_id, ?) AS INTEGER)) as max_counter FROM tasks WHERE short_id LIKE ?`).get(prefixLen, `${prefix}-%`);
|
|
3731
|
-
const syncedMax = maxRow?.max_counter ?? 0;
|
|
3732
|
-
if (syncedMax >= (project.task_counter ?? 0)) {
|
|
3733
|
-
d.run("UPDATE projects SET task_counter = ?, updated_at = ? WHERE id = ?", [syncedMax, now(), projectId]);
|
|
3734
|
-
}
|
|
3735
3889
|
d.run("UPDATE projects SET task_counter = task_counter + 1, updated_at = ? WHERE id = ?", [now(), projectId]);
|
|
3736
3890
|
const updated = getProject(projectId, d);
|
|
3737
3891
|
const padded = String(updated.task_counter).padStart(5, "0");
|
|
@@ -3795,161 +3949,6 @@ var init_projects = __esm(() => {
|
|
|
3795
3949
|
init_machines();
|
|
3796
3950
|
});
|
|
3797
3951
|
|
|
3798
|
-
// src/lib/sync-utils.ts
|
|
3799
|
-
import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync, readdirSync, statSync, writeFileSync } from "fs";
|
|
3800
|
-
import { join as join2 } from "path";
|
|
3801
|
-
function ensureDir2(dir) {
|
|
3802
|
-
if (!existsSync2(dir))
|
|
3803
|
-
mkdirSync2(dir, { recursive: true });
|
|
3804
|
-
}
|
|
3805
|
-
function listJsonFiles(dir) {
|
|
3806
|
-
if (!existsSync2(dir))
|
|
3807
|
-
return [];
|
|
3808
|
-
return readdirSync(dir).filter((f) => f.endsWith(".json"));
|
|
3809
|
-
}
|
|
3810
|
-
function readJsonFile(path) {
|
|
3811
|
-
try {
|
|
3812
|
-
return JSON.parse(readFileSync(path, "utf-8"));
|
|
3813
|
-
} catch {
|
|
3814
|
-
return null;
|
|
3815
|
-
}
|
|
3816
|
-
}
|
|
3817
|
-
function writeJsonFile(path, data) {
|
|
3818
|
-
writeFileSync(path, JSON.stringify(data, null, 2) + `
|
|
3819
|
-
`);
|
|
3820
|
-
}
|
|
3821
|
-
function readHighWaterMark(dir) {
|
|
3822
|
-
const path = join2(dir, ".highwatermark");
|
|
3823
|
-
if (!existsSync2(path))
|
|
3824
|
-
return 1;
|
|
3825
|
-
const val = parseInt(readFileSync(path, "utf-8").trim(), 10);
|
|
3826
|
-
return isNaN(val) ? 1 : val;
|
|
3827
|
-
}
|
|
3828
|
-
function writeHighWaterMark(dir, value) {
|
|
3829
|
-
writeFileSync(join2(dir, ".highwatermark"), String(value));
|
|
3830
|
-
}
|
|
3831
|
-
function getFileMtimeMs(path) {
|
|
3832
|
-
try {
|
|
3833
|
-
return statSync(path).mtimeMs;
|
|
3834
|
-
} catch {
|
|
3835
|
-
return null;
|
|
3836
|
-
}
|
|
3837
|
-
}
|
|
3838
|
-
function parseTimestamp(value) {
|
|
3839
|
-
if (typeof value !== "string")
|
|
3840
|
-
return null;
|
|
3841
|
-
const parsed = Date.parse(value);
|
|
3842
|
-
return Number.isNaN(parsed) ? null : parsed;
|
|
3843
|
-
}
|
|
3844
|
-
function appendSyncConflict(metadata, conflict, limit = 5) {
|
|
3845
|
-
const current = Array.isArray(metadata["sync_conflicts"]) ? metadata["sync_conflicts"] : [];
|
|
3846
|
-
const next = [conflict, ...current].slice(0, limit);
|
|
3847
|
-
return { ...metadata, sync_conflicts: next };
|
|
3848
|
-
}
|
|
3849
|
-
var HOME;
|
|
3850
|
-
var init_sync_utils = __esm(() => {
|
|
3851
|
-
HOME = process.env["HOME"] || process.env["USERPROFILE"] || "~";
|
|
3852
|
-
});
|
|
3853
|
-
|
|
3854
|
-
// src/lib/config.ts
|
|
3855
|
-
var exports_config = {};
|
|
3856
|
-
__export(exports_config, {
|
|
3857
|
-
loadConfig: () => loadConfig,
|
|
3858
|
-
getTaskPrefixConfig: () => getTaskPrefixConfig,
|
|
3859
|
-
getSyncAgentsFromConfig: () => getSyncAgentsFromConfig,
|
|
3860
|
-
getCompletionGuardConfig: () => getCompletionGuardConfig,
|
|
3861
|
-
getAgentTasksDir: () => getAgentTasksDir,
|
|
3862
|
-
getAgentTaskListId: () => getAgentTaskListId,
|
|
3863
|
-
getAgentPoolForProject: () => getAgentPoolForProject
|
|
3864
|
-
});
|
|
3865
|
-
import { existsSync as existsSync3 } from "fs";
|
|
3866
|
-
import { join as join3 } from "path";
|
|
3867
|
-
function getTodosGlobalDir() {
|
|
3868
|
-
const home = process.env["HOME"] || HOME;
|
|
3869
|
-
const newDir = join3(home, ".hasna", "todos");
|
|
3870
|
-
const legacyDir = join3(home, ".todos");
|
|
3871
|
-
if (!existsSync3(newDir) && existsSync3(legacyDir))
|
|
3872
|
-
return legacyDir;
|
|
3873
|
-
return newDir;
|
|
3874
|
-
}
|
|
3875
|
-
function getConfigPath() {
|
|
3876
|
-
return join3(getTodosGlobalDir(), "config.json");
|
|
3877
|
-
}
|
|
3878
|
-
function normalizeAgent(agent) {
|
|
3879
|
-
return agent.trim().toLowerCase();
|
|
3880
|
-
}
|
|
3881
|
-
function loadConfig() {
|
|
3882
|
-
if (cached)
|
|
3883
|
-
return cached;
|
|
3884
|
-
if (!existsSync3(getConfigPath())) {
|
|
3885
|
-
cached = {};
|
|
3886
|
-
return cached;
|
|
3887
|
-
}
|
|
3888
|
-
const config = readJsonFile(getConfigPath()) || {};
|
|
3889
|
-
if (typeof config.sync_agents === "string") {
|
|
3890
|
-
config.sync_agents = config.sync_agents.split(",").map((a) => a.trim()).filter(Boolean);
|
|
3891
|
-
}
|
|
3892
|
-
cached = config;
|
|
3893
|
-
return cached;
|
|
3894
|
-
}
|
|
3895
|
-
function getSyncAgentsFromConfig() {
|
|
3896
|
-
const config = loadConfig();
|
|
3897
|
-
const agents = config.sync_agents;
|
|
3898
|
-
if (Array.isArray(agents) && agents.length > 0)
|
|
3899
|
-
return agents.map(normalizeAgent);
|
|
3900
|
-
return null;
|
|
3901
|
-
}
|
|
3902
|
-
function getAgentTaskListId(agent) {
|
|
3903
|
-
const config = loadConfig();
|
|
3904
|
-
const key = normalizeAgent(agent);
|
|
3905
|
-
return config.agents?.[key]?.task_list_id || config.task_list_id || null;
|
|
3906
|
-
}
|
|
3907
|
-
function getAgentTasksDir(agent) {
|
|
3908
|
-
const config = loadConfig();
|
|
3909
|
-
const key = normalizeAgent(agent);
|
|
3910
|
-
return config.agents?.[key]?.tasks_dir || config.agent_tasks_dir || null;
|
|
3911
|
-
}
|
|
3912
|
-
function getTaskPrefixConfig() {
|
|
3913
|
-
const config = loadConfig();
|
|
3914
|
-
return config.task_prefix || null;
|
|
3915
|
-
}
|
|
3916
|
-
function getAgentPoolForProject(workingDir) {
|
|
3917
|
-
const config = loadConfig();
|
|
3918
|
-
if (workingDir && config.project_pools) {
|
|
3919
|
-
let bestKey = null;
|
|
3920
|
-
let bestLen = 0;
|
|
3921
|
-
for (const key of Object.keys(config.project_pools)) {
|
|
3922
|
-
if (workingDir.startsWith(key) && key.length > bestLen) {
|
|
3923
|
-
bestKey = key;
|
|
3924
|
-
bestLen = key.length;
|
|
3925
|
-
}
|
|
3926
|
-
}
|
|
3927
|
-
if (bestKey && config.project_pools[bestKey]) {
|
|
3928
|
-
return config.project_pools[bestKey];
|
|
3929
|
-
}
|
|
3930
|
-
}
|
|
3931
|
-
return config.agent_pool || null;
|
|
3932
|
-
}
|
|
3933
|
-
function getCompletionGuardConfig(projectPath) {
|
|
3934
|
-
const config = loadConfig();
|
|
3935
|
-
const global2 = { ...GUARD_DEFAULTS, ...config.completion_guard };
|
|
3936
|
-
if (projectPath && config.project_overrides?.[projectPath]?.completion_guard) {
|
|
3937
|
-
return { ...global2, ...config.project_overrides[projectPath].completion_guard };
|
|
3938
|
-
}
|
|
3939
|
-
return global2;
|
|
3940
|
-
}
|
|
3941
|
-
var cached = null, GUARD_DEFAULTS;
|
|
3942
|
-
var init_config = __esm(() => {
|
|
3943
|
-
init_sync_utils();
|
|
3944
|
-
GUARD_DEFAULTS = {
|
|
3945
|
-
enabled: false,
|
|
3946
|
-
min_work_seconds: 30,
|
|
3947
|
-
max_completions_per_window: 5,
|
|
3948
|
-
window_minutes: 10,
|
|
3949
|
-
cooldown_seconds: 60
|
|
3950
|
-
};
|
|
3951
|
-
});
|
|
3952
|
-
|
|
3953
3952
|
// src/lib/completion-guard.ts
|
|
3954
3953
|
function checkCompletionGuard(task, agentId, db, configOverride) {
|
|
3955
3954
|
let config;
|
|
@@ -4842,47 +4841,56 @@ function replaceTaskTags(taskId, tags, db) {
|
|
|
4842
4841
|
}
|
|
4843
4842
|
function createTask(input, db) {
|
|
4844
4843
|
const d = db || getDatabase();
|
|
4845
|
-
const id = uuid();
|
|
4846
4844
|
const timestamp = now();
|
|
4847
4845
|
const tags = input.tags || [];
|
|
4848
|
-
const shortId = input.project_id ? nextTaskShortId(input.project_id, d) : null;
|
|
4849
|
-
const title = shortId ? `${shortId}: ${input.title}` : input.title;
|
|
4850
4846
|
const assignedBy = input.assigned_by || input.agent_id;
|
|
4851
4847
|
const assignedFromProject = input.assigned_from_project || null;
|
|
4852
|
-
|
|
4853
|
-
|
|
4854
|
-
|
|
4855
|
-
|
|
4856
|
-
|
|
4857
|
-
|
|
4858
|
-
|
|
4859
|
-
|
|
4860
|
-
|
|
4861
|
-
|
|
4862
|
-
|
|
4863
|
-
|
|
4864
|
-
|
|
4865
|
-
|
|
4866
|
-
|
|
4867
|
-
|
|
4868
|
-
|
|
4869
|
-
|
|
4870
|
-
|
|
4871
|
-
|
|
4872
|
-
|
|
4873
|
-
|
|
4874
|
-
|
|
4875
|
-
|
|
4876
|
-
|
|
4877
|
-
|
|
4878
|
-
|
|
4879
|
-
|
|
4880
|
-
|
|
4881
|
-
|
|
4882
|
-
|
|
4883
|
-
|
|
4884
|
-
|
|
4885
|
-
|
|
4848
|
+
let id = uuid();
|
|
4849
|
+
for (let attempt = 0;attempt < 3; attempt++) {
|
|
4850
|
+
try {
|
|
4851
|
+
d.run(`INSERT INTO tasks (id, short_id, project_id, parent_id, plan_id, task_list_id, title, description, status, priority, agent_id, assigned_to, session_id, working_dir, tags, metadata, version, created_at, updated_at, due_at, estimated_minutes, requires_approval, approved_by, approved_at, recurrence_rule, recurrence_parent_id, spawns_template_id, reason, spawned_from_session, assigned_by, assigned_from_project, task_type)
|
|
4852
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
4853
|
+
id,
|
|
4854
|
+
null,
|
|
4855
|
+
input.project_id || null,
|
|
4856
|
+
input.parent_id || null,
|
|
4857
|
+
input.plan_id || null,
|
|
4858
|
+
input.task_list_id || null,
|
|
4859
|
+
input.title,
|
|
4860
|
+
input.description || null,
|
|
4861
|
+
input.status || "pending",
|
|
4862
|
+
input.priority || "medium",
|
|
4863
|
+
input.agent_id || null,
|
|
4864
|
+
input.assigned_to || null,
|
|
4865
|
+
input.session_id || null,
|
|
4866
|
+
input.working_dir || null,
|
|
4867
|
+
JSON.stringify(tags),
|
|
4868
|
+
JSON.stringify(input.metadata || {}),
|
|
4869
|
+
timestamp,
|
|
4870
|
+
timestamp,
|
|
4871
|
+
input.due_at || null,
|
|
4872
|
+
input.estimated_minutes || null,
|
|
4873
|
+
input.requires_approval ? 1 : 0,
|
|
4874
|
+
null,
|
|
4875
|
+
null,
|
|
4876
|
+
input.recurrence_rule || null,
|
|
4877
|
+
input.recurrence_parent_id || null,
|
|
4878
|
+
input.spawns_template_id || null,
|
|
4879
|
+
input.reason || null,
|
|
4880
|
+
input.spawned_from_session || null,
|
|
4881
|
+
assignedBy || null,
|
|
4882
|
+
assignedFromProject || null,
|
|
4883
|
+
input.task_type || null
|
|
4884
|
+
]);
|
|
4885
|
+
break;
|
|
4886
|
+
} catch (e) {
|
|
4887
|
+
if (attempt < 2 && e?.message?.includes("UNIQUE constraint failed: tasks.id")) {
|
|
4888
|
+
id = uuid();
|
|
4889
|
+
continue;
|
|
4890
|
+
}
|
|
4891
|
+
throw e;
|
|
4892
|
+
}
|
|
4893
|
+
}
|
|
4886
4894
|
if (tags.length > 0) {
|
|
4887
4895
|
insertTaskTags(id, tags, d);
|
|
4888
4896
|
}
|
|
@@ -5968,7 +5976,6 @@ function getOverdueTasks(projectId, db) {
|
|
|
5968
5976
|
var init_tasks = __esm(() => {
|
|
5969
5977
|
init_types();
|
|
5970
5978
|
init_database();
|
|
5971
|
-
init_projects();
|
|
5972
5979
|
init_completion_guard();
|
|
5973
5980
|
init_audit();
|
|
5974
5981
|
init_recurrence();
|
|
@@ -25963,6 +25970,12 @@ var init_pg_migrations = __esm(() => {
|
|
|
25963
25970
|
CREATE INDEX IF NOT EXISTS idx_template_versions_template ON template_versions(template_id);
|
|
25964
25971
|
|
|
25965
25972
|
INSERT INTO _migrations (id) VALUES (39) ON CONFLICT DO NOTHING;
|
|
25973
|
+
`,
|
|
25974
|
+
`
|
|
25975
|
+
DROP INDEX IF EXISTS idx_tasks_short_id;
|
|
25976
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_tasks_short_id ON tasks(short_id, machine_id) WHERE short_id IS NOT NULL AND machine_id IS NOT NULL;
|
|
25977
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_short_id_lookup ON tasks(short_id) WHERE short_id IS NOT NULL;
|
|
25978
|
+
INSERT INTO _migrations (id) VALUES (40) ON CONFLICT DO NOTHING;
|
|
25966
25979
|
`
|
|
25967
25980
|
];
|
|
25968
25981
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-migrations.d.ts","sourceRoot":"","sources":["../../src/db/pg-migrations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pg-migrations.d.ts","sourceRoot":"","sources":["../../src/db/pg-migrations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,EA6mBjC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAKhI,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAyBD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,kBAAkB,EACzB,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAcT;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAIpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAc5E;AAED,wBAAgB,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CAKrD;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,cAAc,GAAG,MAAM,CAAC,CAAC,EAC/E,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CA6BT;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,EAAE,CAAC,EAAE,QAAQ,GACZ;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAuClD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAIhE;AAWD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,CAW9F;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAItE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,EAAE,CAIpF;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAM/E;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"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"}
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,eAAO,MAAM,UAAU,UAuuBtB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA8BhD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAwX/C;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA4BnD"}
|
package/dist/db/tasks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/db/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,IAAI,EACJ,cAAc,EACd,UAAU,EACV,YAAY,EAEZ,UAAU,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/db/tasks.ts"],"names":[],"mappings":"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"}
|