@hasna/todos 0.11.20 → 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 -193
- package/dist/db/pg-migrations.d.ts.map +1 -1
- package/dist/db/projects.d.ts +39 -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 +16 -0
- package/dist/db/tasks.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +180 -159
- package/dist/lib/search.d.ts +1 -1
- package/dist/lib/search.d.ts.map +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +194 -184
- package/dist/mcp/tools/agents.d.ts.map +1 -1
- package/dist/server/index.js +114 -100
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- 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, {
|
|
@@ -3788,161 +3949,6 @@ var init_projects = __esm(() => {
|
|
|
3788
3949
|
init_machines();
|
|
3789
3950
|
});
|
|
3790
3951
|
|
|
3791
|
-
// src/lib/sync-utils.ts
|
|
3792
|
-
import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync, readdirSync, statSync, writeFileSync } from "fs";
|
|
3793
|
-
import { join as join2 } from "path";
|
|
3794
|
-
function ensureDir2(dir) {
|
|
3795
|
-
if (!existsSync2(dir))
|
|
3796
|
-
mkdirSync2(dir, { recursive: true });
|
|
3797
|
-
}
|
|
3798
|
-
function listJsonFiles(dir) {
|
|
3799
|
-
if (!existsSync2(dir))
|
|
3800
|
-
return [];
|
|
3801
|
-
return readdirSync(dir).filter((f) => f.endsWith(".json"));
|
|
3802
|
-
}
|
|
3803
|
-
function readJsonFile(path) {
|
|
3804
|
-
try {
|
|
3805
|
-
return JSON.parse(readFileSync(path, "utf-8"));
|
|
3806
|
-
} catch {
|
|
3807
|
-
return null;
|
|
3808
|
-
}
|
|
3809
|
-
}
|
|
3810
|
-
function writeJsonFile(path, data) {
|
|
3811
|
-
writeFileSync(path, JSON.stringify(data, null, 2) + `
|
|
3812
|
-
`);
|
|
3813
|
-
}
|
|
3814
|
-
function readHighWaterMark(dir) {
|
|
3815
|
-
const path = join2(dir, ".highwatermark");
|
|
3816
|
-
if (!existsSync2(path))
|
|
3817
|
-
return 1;
|
|
3818
|
-
const val = parseInt(readFileSync(path, "utf-8").trim(), 10);
|
|
3819
|
-
return isNaN(val) ? 1 : val;
|
|
3820
|
-
}
|
|
3821
|
-
function writeHighWaterMark(dir, value) {
|
|
3822
|
-
writeFileSync(join2(dir, ".highwatermark"), String(value));
|
|
3823
|
-
}
|
|
3824
|
-
function getFileMtimeMs(path) {
|
|
3825
|
-
try {
|
|
3826
|
-
return statSync(path).mtimeMs;
|
|
3827
|
-
} catch {
|
|
3828
|
-
return null;
|
|
3829
|
-
}
|
|
3830
|
-
}
|
|
3831
|
-
function parseTimestamp(value) {
|
|
3832
|
-
if (typeof value !== "string")
|
|
3833
|
-
return null;
|
|
3834
|
-
const parsed = Date.parse(value);
|
|
3835
|
-
return Number.isNaN(parsed) ? null : parsed;
|
|
3836
|
-
}
|
|
3837
|
-
function appendSyncConflict(metadata, conflict, limit = 5) {
|
|
3838
|
-
const current = Array.isArray(metadata["sync_conflicts"]) ? metadata["sync_conflicts"] : [];
|
|
3839
|
-
const next = [conflict, ...current].slice(0, limit);
|
|
3840
|
-
return { ...metadata, sync_conflicts: next };
|
|
3841
|
-
}
|
|
3842
|
-
var HOME;
|
|
3843
|
-
var init_sync_utils = __esm(() => {
|
|
3844
|
-
HOME = process.env["HOME"] || process.env["USERPROFILE"] || "~";
|
|
3845
|
-
});
|
|
3846
|
-
|
|
3847
|
-
// src/lib/config.ts
|
|
3848
|
-
var exports_config = {};
|
|
3849
|
-
__export(exports_config, {
|
|
3850
|
-
loadConfig: () => loadConfig,
|
|
3851
|
-
getTaskPrefixConfig: () => getTaskPrefixConfig,
|
|
3852
|
-
getSyncAgentsFromConfig: () => getSyncAgentsFromConfig,
|
|
3853
|
-
getCompletionGuardConfig: () => getCompletionGuardConfig,
|
|
3854
|
-
getAgentTasksDir: () => getAgentTasksDir,
|
|
3855
|
-
getAgentTaskListId: () => getAgentTaskListId,
|
|
3856
|
-
getAgentPoolForProject: () => getAgentPoolForProject
|
|
3857
|
-
});
|
|
3858
|
-
import { existsSync as existsSync3 } from "fs";
|
|
3859
|
-
import { join as join3 } from "path";
|
|
3860
|
-
function getTodosGlobalDir() {
|
|
3861
|
-
const home = process.env["HOME"] || HOME;
|
|
3862
|
-
const newDir = join3(home, ".hasna", "todos");
|
|
3863
|
-
const legacyDir = join3(home, ".todos");
|
|
3864
|
-
if (!existsSync3(newDir) && existsSync3(legacyDir))
|
|
3865
|
-
return legacyDir;
|
|
3866
|
-
return newDir;
|
|
3867
|
-
}
|
|
3868
|
-
function getConfigPath() {
|
|
3869
|
-
return join3(getTodosGlobalDir(), "config.json");
|
|
3870
|
-
}
|
|
3871
|
-
function normalizeAgent(agent) {
|
|
3872
|
-
return agent.trim().toLowerCase();
|
|
3873
|
-
}
|
|
3874
|
-
function loadConfig() {
|
|
3875
|
-
if (cached)
|
|
3876
|
-
return cached;
|
|
3877
|
-
if (!existsSync3(getConfigPath())) {
|
|
3878
|
-
cached = {};
|
|
3879
|
-
return cached;
|
|
3880
|
-
}
|
|
3881
|
-
const config = readJsonFile(getConfigPath()) || {};
|
|
3882
|
-
if (typeof config.sync_agents === "string") {
|
|
3883
|
-
config.sync_agents = config.sync_agents.split(",").map((a) => a.trim()).filter(Boolean);
|
|
3884
|
-
}
|
|
3885
|
-
cached = config;
|
|
3886
|
-
return cached;
|
|
3887
|
-
}
|
|
3888
|
-
function getSyncAgentsFromConfig() {
|
|
3889
|
-
const config = loadConfig();
|
|
3890
|
-
const agents = config.sync_agents;
|
|
3891
|
-
if (Array.isArray(agents) && agents.length > 0)
|
|
3892
|
-
return agents.map(normalizeAgent);
|
|
3893
|
-
return null;
|
|
3894
|
-
}
|
|
3895
|
-
function getAgentTaskListId(agent) {
|
|
3896
|
-
const config = loadConfig();
|
|
3897
|
-
const key = normalizeAgent(agent);
|
|
3898
|
-
return config.agents?.[key]?.task_list_id || config.task_list_id || null;
|
|
3899
|
-
}
|
|
3900
|
-
function getAgentTasksDir(agent) {
|
|
3901
|
-
const config = loadConfig();
|
|
3902
|
-
const key = normalizeAgent(agent);
|
|
3903
|
-
return config.agents?.[key]?.tasks_dir || config.agent_tasks_dir || null;
|
|
3904
|
-
}
|
|
3905
|
-
function getTaskPrefixConfig() {
|
|
3906
|
-
const config = loadConfig();
|
|
3907
|
-
return config.task_prefix || null;
|
|
3908
|
-
}
|
|
3909
|
-
function getAgentPoolForProject(workingDir) {
|
|
3910
|
-
const config = loadConfig();
|
|
3911
|
-
if (workingDir && config.project_pools) {
|
|
3912
|
-
let bestKey = null;
|
|
3913
|
-
let bestLen = 0;
|
|
3914
|
-
for (const key of Object.keys(config.project_pools)) {
|
|
3915
|
-
if (workingDir.startsWith(key) && key.length > bestLen) {
|
|
3916
|
-
bestKey = key;
|
|
3917
|
-
bestLen = key.length;
|
|
3918
|
-
}
|
|
3919
|
-
}
|
|
3920
|
-
if (bestKey && config.project_pools[bestKey]) {
|
|
3921
|
-
return config.project_pools[bestKey];
|
|
3922
|
-
}
|
|
3923
|
-
}
|
|
3924
|
-
return config.agent_pool || null;
|
|
3925
|
-
}
|
|
3926
|
-
function getCompletionGuardConfig(projectPath) {
|
|
3927
|
-
const config = loadConfig();
|
|
3928
|
-
const global2 = { ...GUARD_DEFAULTS, ...config.completion_guard };
|
|
3929
|
-
if (projectPath && config.project_overrides?.[projectPath]?.completion_guard) {
|
|
3930
|
-
return { ...global2, ...config.project_overrides[projectPath].completion_guard };
|
|
3931
|
-
}
|
|
3932
|
-
return global2;
|
|
3933
|
-
}
|
|
3934
|
-
var cached = null, GUARD_DEFAULTS;
|
|
3935
|
-
var init_config = __esm(() => {
|
|
3936
|
-
init_sync_utils();
|
|
3937
|
-
GUARD_DEFAULTS = {
|
|
3938
|
-
enabled: false,
|
|
3939
|
-
min_work_seconds: 30,
|
|
3940
|
-
max_completions_per_window: 5,
|
|
3941
|
-
window_minutes: 10,
|
|
3942
|
-
cooldown_seconds: 60
|
|
3943
|
-
};
|
|
3944
|
-
});
|
|
3945
|
-
|
|
3946
3952
|
// src/lib/completion-guard.ts
|
|
3947
3953
|
function checkCompletionGuard(task, agentId, db, configOverride) {
|
|
3948
3954
|
let config;
|
|
@@ -4835,47 +4841,56 @@ function replaceTaskTags(taskId, tags, db) {
|
|
|
4835
4841
|
}
|
|
4836
4842
|
function createTask(input, db) {
|
|
4837
4843
|
const d = db || getDatabase();
|
|
4838
|
-
const id = uuid();
|
|
4839
4844
|
const timestamp = now();
|
|
4840
4845
|
const tags = input.tags || [];
|
|
4841
|
-
const shortId = input.project_id ? nextTaskShortId(input.project_id, d) : null;
|
|
4842
|
-
const title = shortId ? `${shortId}: ${input.title}` : input.title;
|
|
4843
4846
|
const assignedBy = input.assigned_by || input.agent_id;
|
|
4844
4847
|
const assignedFromProject = input.assigned_from_project || null;
|
|
4845
|
-
|
|
4846
|
-
|
|
4847
|
-
|
|
4848
|
-
|
|
4849
|
-
|
|
4850
|
-
|
|
4851
|
-
|
|
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
|
-
|
|
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
|
+
}
|
|
4879
4894
|
if (tags.length > 0) {
|
|
4880
4895
|
insertTaskTags(id, tags, d);
|
|
4881
4896
|
}
|
|
@@ -5961,7 +5976,6 @@ function getOverdueTasks(projectId, db) {
|
|
|
5961
5976
|
var init_tasks = __esm(() => {
|
|
5962
5977
|
init_types();
|
|
5963
5978
|
init_database();
|
|
5964
|
-
init_projects();
|
|
5965
5979
|
init_completion_guard();
|
|
5966
5980
|
init_audit();
|
|
5967
5981
|
init_recurrence();
|
|
@@ -25956,6 +25970,12 @@ var init_pg_migrations = __esm(() => {
|
|
|
25956
25970
|
CREATE INDEX IF NOT EXISTS idx_template_versions_template ON template_versions(template_id);
|
|
25957
25971
|
|
|
25958
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;
|
|
25959
25979
|
`
|
|
25960
25980
|
];
|
|
25961
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"}
|
package/dist/db/projects.d.ts
CHANGED
|
@@ -5,7 +5,19 @@ export declare function createProject(input: CreateProjectInput, db?: Database):
|
|
|
5
5
|
export declare function getProject(id: string, db?: Database): Project | null;
|
|
6
6
|
export declare function getProjectByPath(path: string, db?: Database): Project | null;
|
|
7
7
|
export declare function listProjects(db?: Database): Project[];
|
|
8
|
-
export declare function updateProject(id: string, input: Partial<Pick<Project, "name" | "description" | "task_list_id">>, db?: Database): Project;
|
|
8
|
+
export declare function updateProject(id: string, input: Partial<Pick<Project, "name" | "description" | "task_list_id" | "path">>, db?: Database): Project;
|
|
9
|
+
/**
|
|
10
|
+
* Rename a project: update name and/or task_list_id (slug).
|
|
11
|
+
* Cascades slug change to any task_list whose slug matched the old task_list_id.
|
|
12
|
+
* Validates new slug is unique if provided.
|
|
13
|
+
*/
|
|
14
|
+
export declare function renameProject(id: string, input: {
|
|
15
|
+
name?: string;
|
|
16
|
+
new_slug?: string;
|
|
17
|
+
}, db?: Database): {
|
|
18
|
+
project: Project;
|
|
19
|
+
task_lists_updated: number;
|
|
20
|
+
};
|
|
9
21
|
export declare function deleteProject(id: string, db?: Database): boolean;
|
|
10
22
|
export declare function addProjectSource(input: CreateProjectSourceInput, db?: Database): ProjectSource;
|
|
11
23
|
export declare function removeProjectSource(id: string, db?: Database): boolean;
|
|
@@ -13,4 +25,30 @@ export declare function listProjectSources(projectId: string, db?: Database): Pr
|
|
|
13
25
|
export declare function getProjectWithSources(id: string, db?: Database): Project | null;
|
|
14
26
|
export declare function nextTaskShortId(projectId: string, db?: Database): string | null;
|
|
15
27
|
export declare function ensureProject(name: string, path: string, db?: Database): Project;
|
|
28
|
+
export interface ProjectMachinePath {
|
|
29
|
+
id: string;
|
|
30
|
+
project_id: string;
|
|
31
|
+
machine_id: string;
|
|
32
|
+
path: string;
|
|
33
|
+
created_at: string;
|
|
34
|
+
updated_at: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Set (upsert) the local path for a project on the current machine.
|
|
38
|
+
* Safe to call at any time — idempotent if path hasn't changed.
|
|
39
|
+
*/
|
|
40
|
+
export declare function setMachineLocalPath(projectId: string, path: string, db?: Database): ProjectMachinePath;
|
|
41
|
+
/**
|
|
42
|
+
* Get the local path for a project on the current machine.
|
|
43
|
+
* Falls back to the project's global path if no override is set.
|
|
44
|
+
*/
|
|
45
|
+
export declare function getMachineLocalPath(projectId: string, db?: Database): string | null;
|
|
46
|
+
/**
|
|
47
|
+
* List all machine path overrides for a project.
|
|
48
|
+
*/
|
|
49
|
+
export declare function listMachineLocalPaths(projectId: string, db?: Database): ProjectMachinePath[];
|
|
50
|
+
/**
|
|
51
|
+
* Remove the local path override for a project on a specific machine (default: current).
|
|
52
|
+
*/
|
|
53
|
+
export declare function removeMachineLocalPath(projectId: string, machineId?: string, db?: Database): boolean;
|
|
16
54
|
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -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;
|
|
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
CHANGED
|
@@ -211,5 +211,21 @@ export declare function bulkUpdateTasks(taskIds: string[], updates: {
|
|
|
211
211
|
error: string;
|
|
212
212
|
}[];
|
|
213
213
|
};
|
|
214
|
+
/**
|
|
215
|
+
* Archive tasks matching the criteria. Archives completed/failed/cancelled tasks
|
|
216
|
+
* older than `olderThanDays` days. Returns count of archived tasks.
|
|
217
|
+
*/
|
|
218
|
+
export declare function archiveTasks(options: {
|
|
219
|
+
project_id?: string;
|
|
220
|
+
task_list_id?: string;
|
|
221
|
+
older_than_days?: number;
|
|
222
|
+
status?: TaskStatus[];
|
|
223
|
+
}, db?: Database): {
|
|
224
|
+
archived: number;
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* Unarchive (restore) a specific task.
|
|
228
|
+
*/
|
|
229
|
+
export declare function unarchiveTask(id: string, db?: Database): Task | null;
|
|
214
230
|
export declare function getOverdueTasks(projectId?: string, db?: Database): Task[];
|
|
215
231
|
//# sourceMappingURL=tasks.d.ts.map
|
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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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export { TodosClient, createClient } from "./sdk.js";
|
|
2
2
|
export type { TodosClientOptions } from "./sdk.js";
|
|
3
3
|
export { getDatabase, closeDatabase, resetDatabase, resolvePartialId, now, uuid } from "./db/database.js";
|
|
4
|
-
export { createTask, getTask, getTaskWithRelations, listTasks, countTasks, updateTask, deleteTask, startTask, completeTask, lockTask, unlockTask, addDependency, removeDependency, getTaskDependencies, getTaskDependents, getBlockingDeps, bulkUpdateTasks, bulkCreateTasks, cloneTask, getTaskStats, getTaskGraph, moveTask, getNextTask, claimNextTask, stealTask, claimOrSteal, logCost, getActiveWork, failTask, getTasksChangedSince, getStaleTasks, getStatus, decomposeTasks, setTaskStatus, setTaskPriority, redistributeStaleTasks, getOverdueTasks, } from "./db/tasks.js";
|
|
4
|
+
export { createTask, getTask, getTaskWithRelations, listTasks, countTasks, updateTask, deleteTask, startTask, completeTask, lockTask, unlockTask, addDependency, removeDependency, getTaskDependencies, getTaskDependents, getBlockingDeps, bulkUpdateTasks, bulkCreateTasks, cloneTask, getTaskStats, getTaskGraph, moveTask, getNextTask, claimNextTask, stealTask, claimOrSteal, logCost, getActiveWork, failTask, getTasksChangedSince, getStaleTasks, getStatus, decomposeTasks, setTaskStatus, setTaskPriority, redistributeStaleTasks, getOverdueTasks, archiveTasks, unarchiveTask, } from "./db/tasks.js";
|
|
5
5
|
export type { TaskGraphNode, TaskGraph, BulkCreateTaskInput, ActiveWorkItem, StatusSummary, DecomposeSubtaskInput } from "./db/tasks.js";
|
|
6
|
-
export { createProject, getProject, getProjectByPath, getProjectWithSources, listProjects, updateProject, deleteProject, ensureProject, nextTaskShortId, slugify, addProjectSource, removeProjectSource, listProjectSources, } from "./db/projects.js";
|
|
6
|
+
export { createProject, getProject, getProjectByPath, getProjectWithSources, listProjects, updateProject, deleteProject, ensureProject, nextTaskShortId, slugify, addProjectSource, removeProjectSource, listProjectSources, renameProject, setMachineLocalPath, getMachineLocalPath, listMachineLocalPaths, removeMachineLocalPath, } from "./db/projects.js";
|
|
7
|
+
export type { ProjectMachinePath } from "./db/projects.js";
|
|
7
8
|
export { createPlan, getPlan, listPlans, updatePlan, deletePlan, } from "./db/plans.js";
|
|
8
9
|
export { addComment, getComment, listComments, deleteComment, logProgress, } from "./db/comments.js";
|
|
9
10
|
export { registerAgent, isAgentConflict, releaseAgent, autoReleaseStaleAgents, getAgent, getAgentByName, listAgents, updateAgent, updateAgentActivity, deleteAgent, archiveAgent, unarchiveAgent, getDirectReports, getOrgChart, matchCapabilities, getCapableAgents, } from "./db/agents.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACrD,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAG1G,OAAO,EACL,UAAU,EACV,OAAO,EACP,oBAAoB,EACpB,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,eAAe,EACf,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,aAAa,EACb,SAAS,EACT,YAAY,EACZ,OAAO,EACP,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|