@hasna/todos 0.15.10 → 0.15.11
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/cloud-router.d.ts.map +1 -1
- package/dist/cli/index.js +445 -67
- package/dist/contracts.js +1 -1
- package/dist/index.js +2 -1
- package/dist/lib/plan-project-link-contract.d.ts +16 -1
- package/dist/lib/plan-project-link-contract.d.ts.map +1 -1
- package/dist/mcp/index.js +79 -77
- package/dist/mcp.js +1 -1
- package/dist/project-registration.js +2 -1
- package/dist/registry.js +1 -1
- package/dist/release-provenance.json +5 -5
- package/dist/server/index.js +3 -1
- package/dist/storage.js +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-router.d.ts","sourceRoot":"","sources":["../../src/cli/cloud-router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloud-router.d.ts","sourceRoot":"","sources":["../../src/cli/cloud-router.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -2123,7 +2123,7 @@ var package_default;
|
|
|
2123
2123
|
var init_package = __esm(() => {
|
|
2124
2124
|
package_default = {
|
|
2125
2125
|
name: "@hasna/todos",
|
|
2126
|
-
version: "0.15.
|
|
2126
|
+
version: "0.15.11",
|
|
2127
2127
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
2128
2128
|
type: "module",
|
|
2129
2129
|
main: "dist/index.js",
|
|
@@ -2269,7 +2269,7 @@ function isBlockingDependencyStatus(status) {
|
|
|
2269
2269
|
function isTerminalStatus(status) {
|
|
2270
2270
|
return status === "completed" || status === "failed" || status === "cancelled";
|
|
2271
2271
|
}
|
|
2272
|
-
var TASK_STATUSES, TASK_PRIORITIES, VersionConflictError, TaskNotFoundError, TaskNotStartableError, TaskReferenceAmbiguousError, ProjectNotFoundError, ResourceConflictError, PlanNotFoundError, LockError, AgentNotFoundError, IdentityAliasAmbiguousError, IdentityIdImmutableError, TaskListNotFoundError, DependencyCycleError, CompletionGuardError, DISPATCH_STATUSES, DispatchNotFoundError;
|
|
2272
|
+
var TASK_STATUSES, TASK_PRIORITIES, PLAN_STATUSES, VersionConflictError, TaskNotFoundError, TaskNotStartableError, TaskReferenceAmbiguousError, ProjectNotFoundError, ResourceConflictError, PlanNotFoundError, LockError, AgentNotFoundError, IdentityAliasAmbiguousError, IdentityIdImmutableError, TaskListNotFoundError, DependencyCycleError, CompletionGuardError, DISPATCH_STATUSES, DispatchNotFoundError;
|
|
2273
2273
|
var init_types = __esm(() => {
|
|
2274
2274
|
TASK_STATUSES = [
|
|
2275
2275
|
"pending",
|
|
@@ -2284,6 +2284,7 @@ var init_types = __esm(() => {
|
|
|
2284
2284
|
"high",
|
|
2285
2285
|
"critical"
|
|
2286
2286
|
];
|
|
2287
|
+
PLAN_STATUSES = ["active", "completed", "archived"];
|
|
2287
2288
|
VersionConflictError = class VersionConflictError extends Error {
|
|
2288
2289
|
taskId;
|
|
2289
2290
|
expectedVersion;
|
|
@@ -2822,6 +2823,405 @@ var init_redaction = __esm(() => {
|
|
|
2822
2823
|
REDACTION_PLACEHOLDER = String.raw`\[REDACTED(?:_[A-Z_]+)?\]`;
|
|
2823
2824
|
});
|
|
2824
2825
|
|
|
2826
|
+
// src/lib/plan-project-link-contract.ts
|
|
2827
|
+
import { createHash as createHash2 } from "crypto";
|
|
2828
|
+
function canonicalPlanProjectLinkJson(value) {
|
|
2829
|
+
if (value === null || typeof value !== "object")
|
|
2830
|
+
return JSON.stringify(value);
|
|
2831
|
+
if (Array.isArray(value))
|
|
2832
|
+
return `[${value.map(canonicalPlanProjectLinkJson).join(",")}]`;
|
|
2833
|
+
return `{${Object.entries(value).filter(([, item]) => item !== undefined).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => `${JSON.stringify(key)}:${canonicalPlanProjectLinkJson(item)}`).join(",")}}`;
|
|
2834
|
+
}
|
|
2835
|
+
function planProjectLinkDigest(value) {
|
|
2836
|
+
return createHash2("sha256").update(canonicalPlanProjectLinkJson(value)).digest("hex");
|
|
2837
|
+
}
|
|
2838
|
+
function normalizePlanProjectLinkIdempotencyKey(value) {
|
|
2839
|
+
const key = value?.trim() ?? "";
|
|
2840
|
+
if (key.length < 8 || key.length > 128 || !/^[A-Za-z0-9._:-]+$/.test(key)) {
|
|
2841
|
+
throw new PlanProjectLinkError("PLAN_PROJECT_LINK_IDEMPOTENCY_KEY_INVALID", "idempotency_key must be 8-128 ASCII letters, digits, dots, underscores, colons, or hyphens");
|
|
2842
|
+
}
|
|
2843
|
+
return key;
|
|
2844
|
+
}
|
|
2845
|
+
function planProjectLinkReceiptId(idempotencyKey) {
|
|
2846
|
+
return `pplr_${planProjectLinkDigest({ idempotency_key: idempotencyKey }).slice(0, 48)}`;
|
|
2847
|
+
}
|
|
2848
|
+
function planProjectLinkRollbackReceiptId(receiptId) {
|
|
2849
|
+
return `pplr_inverse_${planProjectLinkDigest({ accepted_receipt_id: receiptId }).slice(0, 38)}`;
|
|
2850
|
+
}
|
|
2851
|
+
function planProjectLinkRequestHash(planId, projectId) {
|
|
2852
|
+
return planProjectLinkDigest({ plan_id: planId, project_id: projectId });
|
|
2853
|
+
}
|
|
2854
|
+
function planProjectLinkResultDigest(plan, tasks) {
|
|
2855
|
+
return planProjectLinkDigest({
|
|
2856
|
+
plan_id: plan.id,
|
|
2857
|
+
plan_project_id: plan.project_id,
|
|
2858
|
+
tasks: tasks.map((task) => ({ id: task.id, plan_id: task.plan_id, project_id: task.project_id })).sort((left, right) => left.id.localeCompare(right.id))
|
|
2859
|
+
});
|
|
2860
|
+
}
|
|
2861
|
+
function assertPlanProjectLinkReceipt(value) {
|
|
2862
|
+
const receipt = value;
|
|
2863
|
+
if (!receipt || typeof receipt !== "object" || receipt.schema_version !== PLAN_PROJECT_LINK_SCHEMA_VERSION || typeof receipt.receipt_id !== "string" || typeof receipt.idempotency_key !== "string" || typeof receipt.plan_id !== "string" || typeof receipt.project_id !== "string" || !Array.isArray(receipt.task_ids) || receipt.task_ids.some((id) => typeof id !== "string") || !receipt.prior_task_project_ids || typeof receipt.prior_task_project_ids !== "object" || typeof receipt.result_digest !== "string") {
|
|
2864
|
+
throw new PlanProjectLinkError("PLAN_PROJECT_LINK_RECEIPT_NOT_FOUND", "Stored plan-project-link receipt is invalid");
|
|
2865
|
+
}
|
|
2866
|
+
return receipt;
|
|
2867
|
+
}
|
|
2868
|
+
function responseRecord(value, label) {
|
|
2869
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
2870
|
+
throw new Error(`${label} must be an object`);
|
|
2871
|
+
}
|
|
2872
|
+
return value;
|
|
2873
|
+
}
|
|
2874
|
+
function exactResponseKeys(value, expected, label) {
|
|
2875
|
+
const actual = Object.keys(value).sort();
|
|
2876
|
+
const wanted = [...expected].sort();
|
|
2877
|
+
if (actual.length !== wanted.length || actual.some((key, index) => key !== wanted[index])) {
|
|
2878
|
+
throw new Error(`${label} fields must be exactly: ${wanted.join(", ")}`);
|
|
2879
|
+
}
|
|
2880
|
+
}
|
|
2881
|
+
function responseString(value, label) {
|
|
2882
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
2883
|
+
throw new Error(`${label} must be a non-empty string`);
|
|
2884
|
+
}
|
|
2885
|
+
return value;
|
|
2886
|
+
}
|
|
2887
|
+
function responseNullableString(value, label) {
|
|
2888
|
+
if (value !== null && typeof value !== "string") {
|
|
2889
|
+
throw new Error(`${label} must be a string or null`);
|
|
2890
|
+
}
|
|
2891
|
+
return value;
|
|
2892
|
+
}
|
|
2893
|
+
function responseNumber(value, label) {
|
|
2894
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
2895
|
+
throw new Error(`${label} must be a finite number`);
|
|
2896
|
+
}
|
|
2897
|
+
return value;
|
|
2898
|
+
}
|
|
2899
|
+
function responseBoolean(value, label) {
|
|
2900
|
+
if (typeof value !== "boolean")
|
|
2901
|
+
throw new Error(`${label} must be a boolean`);
|
|
2902
|
+
return value;
|
|
2903
|
+
}
|
|
2904
|
+
function responseDateTime(value, label) {
|
|
2905
|
+
const timestamp = responseString(value, label);
|
|
2906
|
+
if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(timestamp) || !Number.isFinite(Date.parse(timestamp))) {
|
|
2907
|
+
throw new Error(`${label} must be an RFC 3339 date-time`);
|
|
2908
|
+
}
|
|
2909
|
+
return timestamp;
|
|
2910
|
+
}
|
|
2911
|
+
function responseNullableDateTime(value, label) {
|
|
2912
|
+
if (value === null)
|
|
2913
|
+
return null;
|
|
2914
|
+
return responseDateTime(value, label);
|
|
2915
|
+
}
|
|
2916
|
+
function responseOptionalNullableString(record, field, label) {
|
|
2917
|
+
if (field in record)
|
|
2918
|
+
responseNullableString(record[field], `${label}.${field}`);
|
|
2919
|
+
}
|
|
2920
|
+
function responseOptionalNullableDateTime(record, field, label) {
|
|
2921
|
+
if (field in record)
|
|
2922
|
+
responseNullableDateTime(record[field], `${label}.${field}`);
|
|
2923
|
+
}
|
|
2924
|
+
function responseStringArray(value, label) {
|
|
2925
|
+
if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
|
|
2926
|
+
throw new Error(`${label} must be an array of strings`);
|
|
2927
|
+
}
|
|
2928
|
+
return value;
|
|
2929
|
+
}
|
|
2930
|
+
function responseProjectSources(value, expectedProjectId) {
|
|
2931
|
+
if (!Array.isArray(value))
|
|
2932
|
+
throw new Error("project.sources must be an array");
|
|
2933
|
+
value.forEach((item, index) => {
|
|
2934
|
+
const label = `project.sources[${index}]`;
|
|
2935
|
+
const source = responseRecord(item, label);
|
|
2936
|
+
responseString(source.id, `${label}.id`);
|
|
2937
|
+
if (responseString(source.project_id, `${label}.project_id`) !== expectedProjectId) {
|
|
2938
|
+
throw new Error(`${label}.project_id must match project.id`);
|
|
2939
|
+
}
|
|
2940
|
+
responseString(source.type, `${label}.type`);
|
|
2941
|
+
responseString(source.name, `${label}.name`);
|
|
2942
|
+
responseString(source.uri, `${label}.uri`);
|
|
2943
|
+
responseNullableString(source.description, `${label}.description`);
|
|
2944
|
+
responseRecord(source.metadata, `${label}.metadata`);
|
|
2945
|
+
responseDateTime(source.created_at, `${label}.created_at`);
|
|
2946
|
+
responseDateTime(source.updated_at, `${label}.updated_at`);
|
|
2947
|
+
});
|
|
2948
|
+
}
|
|
2949
|
+
function responsePlan(value, expectedPlanId) {
|
|
2950
|
+
const plan = responseRecord(value, "plan");
|
|
2951
|
+
if (responseString(plan.id, "plan.id") !== expectedPlanId) {
|
|
2952
|
+
throw new Error(`plan.id must match requested plan ${expectedPlanId}`);
|
|
2953
|
+
}
|
|
2954
|
+
responseNullableString(plan.slug, "plan.slug");
|
|
2955
|
+
responseNullableString(plan.project_id, "plan.project_id");
|
|
2956
|
+
responseNullableString(plan.task_list_id, "plan.task_list_id");
|
|
2957
|
+
responseNullableString(plan.agent_id, "plan.agent_id");
|
|
2958
|
+
responseString(plan.name, "plan.name");
|
|
2959
|
+
responseNullableString(plan.description, "plan.description");
|
|
2960
|
+
if (typeof plan.status !== "string" || !PLAN_STATUSES.includes(plan.status)) {
|
|
2961
|
+
throw new Error(`plan.status must be one of: ${PLAN_STATUSES.join(", ")}`);
|
|
2962
|
+
}
|
|
2963
|
+
responseDateTime(plan.created_at, "plan.created_at");
|
|
2964
|
+
responseDateTime(plan.updated_at, "plan.updated_at");
|
|
2965
|
+
responseOptionalNullableString(plan, "machine_id", "plan");
|
|
2966
|
+
responseOptionalNullableDateTime(plan, "synced_at", "plan");
|
|
2967
|
+
return plan;
|
|
2968
|
+
}
|
|
2969
|
+
function responseProject(value, expectedProjectId) {
|
|
2970
|
+
const project = responseRecord(value, "project");
|
|
2971
|
+
if (responseString(project.id, "project.id") !== expectedProjectId) {
|
|
2972
|
+
throw new Error(`project.id must match requested project ${expectedProjectId}`);
|
|
2973
|
+
}
|
|
2974
|
+
responseString(project.name, "project.name");
|
|
2975
|
+
responseString(project.path, "project.path");
|
|
2976
|
+
responseNullableString(project.description, "project.description");
|
|
2977
|
+
responseNullableString(project.task_list_id, "project.task_list_id");
|
|
2978
|
+
responseNullableString(project.task_prefix, "project.task_prefix");
|
|
2979
|
+
responseNumber(project.task_counter, "project.task_counter");
|
|
2980
|
+
responseDateTime(project.created_at, "project.created_at");
|
|
2981
|
+
responseDateTime(project.updated_at, "project.updated_at");
|
|
2982
|
+
responseOptionalNullableString(project, "machine_id", "project");
|
|
2983
|
+
responseOptionalNullableDateTime(project, "synced_at", "project");
|
|
2984
|
+
if ("sources" in project && project.sources !== undefined) {
|
|
2985
|
+
responseProjectSources(project.sources, expectedProjectId);
|
|
2986
|
+
}
|
|
2987
|
+
return project;
|
|
2988
|
+
}
|
|
2989
|
+
function responseTasks(value, expectedPlanId) {
|
|
2990
|
+
if (!Array.isArray(value))
|
|
2991
|
+
throw new Error("tasks must be an array");
|
|
2992
|
+
const seen = new Set;
|
|
2993
|
+
return value.map((item, index) => {
|
|
2994
|
+
const task = responseRecord(item, `tasks[${index}]`);
|
|
2995
|
+
const taskId = responseString(task.id, `tasks[${index}].id`);
|
|
2996
|
+
if (seen.has(taskId))
|
|
2997
|
+
throw new Error(`tasks contains duplicate id ${taskId}`);
|
|
2998
|
+
seen.add(taskId);
|
|
2999
|
+
if (task.plan_id !== expectedPlanId) {
|
|
3000
|
+
throw new Error(`tasks[${index}].plan_id must match requested plan ${expectedPlanId}`);
|
|
3001
|
+
}
|
|
3002
|
+
const label = `tasks[${index}]`;
|
|
3003
|
+
responseNullableString(task.short_id, `${label}.short_id`);
|
|
3004
|
+
responseNullableString(task.project_id, `tasks[${index}].project_id`);
|
|
3005
|
+
responseNullableString(task.parent_id, `${label}.parent_id`);
|
|
3006
|
+
responseNullableString(task.task_list_id, `${label}.task_list_id`);
|
|
3007
|
+
responseString(task.title, `${label}.title`);
|
|
3008
|
+
responseNullableString(task.description, `${label}.description`);
|
|
3009
|
+
if (typeof task.status !== "string" || !TASK_STATUSES.includes(task.status)) {
|
|
3010
|
+
throw new Error(`${label}.status must be one of: ${TASK_STATUSES.join(", ")}`);
|
|
3011
|
+
}
|
|
3012
|
+
if (typeof task.priority !== "string" || !TASK_PRIORITIES.includes(task.priority)) {
|
|
3013
|
+
throw new Error(`${label}.priority must be one of: ${TASK_PRIORITIES.join(", ")}`);
|
|
3014
|
+
}
|
|
3015
|
+
for (const field of [
|
|
3016
|
+
"agent_id",
|
|
3017
|
+
"assigned_to",
|
|
3018
|
+
"session_id",
|
|
3019
|
+
"working_dir",
|
|
3020
|
+
"locked_by",
|
|
3021
|
+
"approved_by",
|
|
3022
|
+
"recurrence_rule",
|
|
3023
|
+
"recurrence_parent_id",
|
|
3024
|
+
"spawns_template_id",
|
|
3025
|
+
"reason",
|
|
3026
|
+
"spawned_from_session",
|
|
3027
|
+
"assigned_by",
|
|
3028
|
+
"created_by",
|
|
3029
|
+
"assigned_from_project",
|
|
3030
|
+
"task_type",
|
|
3031
|
+
"delegated_from",
|
|
3032
|
+
"runner_id",
|
|
3033
|
+
"current_step"
|
|
3034
|
+
]) {
|
|
3035
|
+
responseNullableString(task[field], `${label}.${field}`);
|
|
3036
|
+
}
|
|
3037
|
+
responseStringArray(task.tags, `${label}.tags`);
|
|
3038
|
+
responseRecord(task.metadata, `${label}.metadata`);
|
|
3039
|
+
for (const field of [
|
|
3040
|
+
"version",
|
|
3041
|
+
"cost_tokens",
|
|
3042
|
+
"cost_usd",
|
|
3043
|
+
"delegation_depth",
|
|
3044
|
+
"retry_count",
|
|
3045
|
+
"max_retries"
|
|
3046
|
+
]) {
|
|
3047
|
+
responseNumber(task[field], `${label}.${field}`);
|
|
3048
|
+
}
|
|
3049
|
+
for (const field of ["estimated_minutes", "actual_minutes", "confidence", "sla_minutes", "total_steps"]) {
|
|
3050
|
+
if (task[field] !== null)
|
|
3051
|
+
responseNumber(task[field], `${label}.${field}`);
|
|
3052
|
+
}
|
|
3053
|
+
responseBoolean(task.requires_approval, `${label}.requires_approval`);
|
|
3054
|
+
responseDateTime(task.created_at, `${label}.created_at`);
|
|
3055
|
+
responseDateTime(task.updated_at, `${label}.updated_at`);
|
|
3056
|
+
for (const field of [
|
|
3057
|
+
"locked_at",
|
|
3058
|
+
"started_at",
|
|
3059
|
+
"completed_at",
|
|
3060
|
+
"due_at",
|
|
3061
|
+
"approved_at",
|
|
3062
|
+
"retry_after",
|
|
3063
|
+
"runner_started_at",
|
|
3064
|
+
"runner_completed_at"
|
|
3065
|
+
]) {
|
|
3066
|
+
responseNullableDateTime(task[field], `${label}.${field}`);
|
|
3067
|
+
}
|
|
3068
|
+
responseOptionalNullableString(task, "machine_id", label);
|
|
3069
|
+
responseOptionalNullableDateTime(task, "synced_at", label);
|
|
3070
|
+
responseOptionalNullableDateTime(task, "archived_at", label);
|
|
3071
|
+
return task;
|
|
3072
|
+
});
|
|
3073
|
+
}
|
|
3074
|
+
function responseReceipt(value, expectation, planRevision, taskIds) {
|
|
3075
|
+
const receipt = responseRecord(value, "receipt");
|
|
3076
|
+
exactResponseKeys(receipt, [
|
|
3077
|
+
"schema_version",
|
|
3078
|
+
"receipt_id",
|
|
3079
|
+
"idempotency_key",
|
|
3080
|
+
"plan_id",
|
|
3081
|
+
"project_id",
|
|
3082
|
+
"prior_plan_project_id",
|
|
3083
|
+
"prior_task_project_ids",
|
|
3084
|
+
"task_ids",
|
|
3085
|
+
"task_count",
|
|
3086
|
+
"result_plan_revision",
|
|
3087
|
+
"result_digest",
|
|
3088
|
+
"rollback_supported",
|
|
3089
|
+
"created_at"
|
|
3090
|
+
], "receipt");
|
|
3091
|
+
if (receipt.schema_version !== PLAN_PROJECT_LINK_SCHEMA_VERSION) {
|
|
3092
|
+
throw new Error(`receipt.schema_version must be ${PLAN_PROJECT_LINK_SCHEMA_VERSION}`);
|
|
3093
|
+
}
|
|
3094
|
+
const expectedReceiptId = planProjectLinkReceiptId(expectation.idempotency_key);
|
|
3095
|
+
if (responseString(receipt.receipt_id, "receipt.receipt_id") !== expectedReceiptId) {
|
|
3096
|
+
throw new Error("receipt.receipt_id must match the deterministic apply receipt identity");
|
|
3097
|
+
}
|
|
3098
|
+
if (responseString(receipt.idempotency_key, "receipt.idempotency_key") !== expectation.idempotency_key) {
|
|
3099
|
+
throw new Error("receipt.idempotency_key must match the apply request");
|
|
3100
|
+
}
|
|
3101
|
+
if (responseString(receipt.plan_id, "receipt.plan_id") !== expectation.plan_id) {
|
|
3102
|
+
throw new Error("receipt.plan_id must match the requested plan");
|
|
3103
|
+
}
|
|
3104
|
+
if (responseString(receipt.project_id, "receipt.project_id") !== expectation.project_id) {
|
|
3105
|
+
throw new Error("receipt.project_id must match the requested project");
|
|
3106
|
+
}
|
|
3107
|
+
responseNullableString(receipt.prior_plan_project_id, "receipt.prior_plan_project_id");
|
|
3108
|
+
const priorTaskProjectIds = responseRecord(receipt.prior_task_project_ids, "receipt.prior_task_project_ids");
|
|
3109
|
+
for (const [taskId, projectId] of Object.entries(priorTaskProjectIds)) {
|
|
3110
|
+
responseString(taskId, "receipt.prior_task_project_ids key");
|
|
3111
|
+
responseNullableString(projectId, `receipt.prior_task_project_ids.${taskId}`);
|
|
3112
|
+
}
|
|
3113
|
+
if (!Array.isArray(receipt.task_ids) || receipt.task_ids.some((id) => typeof id !== "string" || id.length === 0)) {
|
|
3114
|
+
throw new Error("receipt.task_ids must be an array of non-empty strings");
|
|
3115
|
+
}
|
|
3116
|
+
const receiptTaskIds = receipt.task_ids;
|
|
3117
|
+
if (new Set(receiptTaskIds).size !== receiptTaskIds.length) {
|
|
3118
|
+
throw new Error("receipt.task_ids must not contain duplicates");
|
|
3119
|
+
}
|
|
3120
|
+
if (receiptTaskIds.length !== taskIds.length || receiptTaskIds.some((taskId, index) => taskId !== taskIds[index])) {
|
|
3121
|
+
throw new Error("receipt.task_ids must exactly match the response task identities");
|
|
3122
|
+
}
|
|
3123
|
+
const priorTaskIds = Object.keys(priorTaskProjectIds).sort();
|
|
3124
|
+
if (priorTaskIds.length !== taskIds.length || priorTaskIds.some((taskId, index) => taskId !== [...taskIds].sort()[index])) {
|
|
3125
|
+
throw new Error("receipt.prior_task_project_ids must exactly cover the response task identities");
|
|
3126
|
+
}
|
|
3127
|
+
if (!Number.isInteger(receipt.task_count) || receipt.task_count !== taskIds.length) {
|
|
3128
|
+
throw new Error("receipt.task_count must equal the response task count");
|
|
3129
|
+
}
|
|
3130
|
+
if (responseString(receipt.result_plan_revision, "receipt.result_plan_revision") !== planRevision) {
|
|
3131
|
+
throw new Error("receipt.result_plan_revision must equal plan.updated_at");
|
|
3132
|
+
}
|
|
3133
|
+
const resultDigest = responseString(receipt.result_digest, "receipt.result_digest");
|
|
3134
|
+
if (!/^[a-f0-9]{64}$/.test(resultDigest)) {
|
|
3135
|
+
throw new Error("receipt.result_digest must be a lowercase SHA-256 digest");
|
|
3136
|
+
}
|
|
3137
|
+
if (receipt.rollback_supported !== true) {
|
|
3138
|
+
throw new Error("receipt.rollback_supported must be true");
|
|
3139
|
+
}
|
|
3140
|
+
responseDateTime(receipt.created_at, "receipt.created_at");
|
|
3141
|
+
return receipt;
|
|
3142
|
+
}
|
|
3143
|
+
function assertPlanProjectLinkResponse(value, expectation) {
|
|
3144
|
+
const response = responseRecord(value, `${expectation.mode} response`);
|
|
3145
|
+
exactResponseKeys(response, ["mode", "action", "plan", "project", "tasks", "receipt"], `${expectation.mode} response`);
|
|
3146
|
+
if (response.mode !== expectation.mode) {
|
|
3147
|
+
throw new Error(`mode must be ${expectation.mode}`);
|
|
3148
|
+
}
|
|
3149
|
+
const allowedActions = expectation.mode === "plan" ? ["would_link", "already_linked"] : ["linked", "already_linked"];
|
|
3150
|
+
if (typeof response.action !== "string" || !allowedActions.includes(response.action)) {
|
|
3151
|
+
throw new Error(`action must be one of: ${allowedActions.join(", ")}`);
|
|
3152
|
+
}
|
|
3153
|
+
const plan = responsePlan(response.plan, expectation.plan_id);
|
|
3154
|
+
responseProject(response.project, expectation.project_id);
|
|
3155
|
+
const tasks = responseTasks(response.tasks, expectation.plan_id);
|
|
3156
|
+
const linkedResult = expectation.mode === "apply" || response.action === "already_linked";
|
|
3157
|
+
if (linkedResult) {
|
|
3158
|
+
if (plan.project_id !== expectation.project_id) {
|
|
3159
|
+
throw new Error("plan.project_id must match the requested project after linkage");
|
|
3160
|
+
}
|
|
3161
|
+
if (tasks.some((task) => task.project_id !== expectation.project_id)) {
|
|
3162
|
+
throw new Error("every task.project_id must match the requested project after linkage");
|
|
3163
|
+
}
|
|
3164
|
+
}
|
|
3165
|
+
if (expectation.mode === "plan") {
|
|
3166
|
+
if (response.receipt !== null)
|
|
3167
|
+
throw new Error("receipt must be null for a plan response");
|
|
3168
|
+
} else {
|
|
3169
|
+
if (!expectation.idempotency_key)
|
|
3170
|
+
throw new Error("apply validation requires the request idempotency key");
|
|
3171
|
+
const receipt = responseReceipt(response.receipt, expectation, plan.updated_at, tasks.map((task) => task.id));
|
|
3172
|
+
const expectedDigest = planProjectLinkResultDigest(plan, tasks);
|
|
3173
|
+
if (receipt.result_digest !== expectedDigest) {
|
|
3174
|
+
throw new Error("receipt.result_digest must match the returned plan and tasks");
|
|
3175
|
+
}
|
|
3176
|
+
}
|
|
3177
|
+
return value;
|
|
3178
|
+
}
|
|
3179
|
+
function assertPlanProjectLinkRollbackResponse(value, expectation) {
|
|
3180
|
+
const response = responseRecord(value, "rollback response");
|
|
3181
|
+
exactResponseKeys(response, [
|
|
3182
|
+
"schema_version",
|
|
3183
|
+
"action",
|
|
3184
|
+
"plan",
|
|
3185
|
+
"tasks",
|
|
3186
|
+
"accepted_receipt_id",
|
|
3187
|
+
"rollback_receipt_id",
|
|
3188
|
+
"restored_at"
|
|
3189
|
+
], "rollback response");
|
|
3190
|
+
if (response.schema_version !== PLAN_PROJECT_LINK_SCHEMA_VERSION) {
|
|
3191
|
+
throw new Error(`schema_version must be ${PLAN_PROJECT_LINK_SCHEMA_VERSION}`);
|
|
3192
|
+
}
|
|
3193
|
+
if (response.action !== "restored")
|
|
3194
|
+
throw new Error("action must be restored");
|
|
3195
|
+
const plan = responsePlan(response.plan, expectation.plan_id);
|
|
3196
|
+
responseTasks(response.tasks, expectation.plan_id);
|
|
3197
|
+
if (responseString(response.accepted_receipt_id, "accepted_receipt_id") !== expectation.receipt_id) {
|
|
3198
|
+
throw new Error("accepted_receipt_id must match the rollback request");
|
|
3199
|
+
}
|
|
3200
|
+
const expectedRollbackReceiptId = planProjectLinkRollbackReceiptId(expectation.receipt_id);
|
|
3201
|
+
if (responseString(response.rollback_receipt_id, "rollback_receipt_id") !== expectedRollbackReceiptId) {
|
|
3202
|
+
throw new Error("rollback_receipt_id must match the deterministic rollback receipt identity");
|
|
3203
|
+
}
|
|
3204
|
+
const restoredAt = responseDateTime(response.restored_at, "restored_at");
|
|
3205
|
+
if (plan.updated_at !== restoredAt) {
|
|
3206
|
+
throw new Error("restored_at must equal plan.updated_at");
|
|
3207
|
+
}
|
|
3208
|
+
return value;
|
|
3209
|
+
}
|
|
3210
|
+
var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1", PlanProjectLinkError;
|
|
3211
|
+
var init_plan_project_link_contract = __esm(() => {
|
|
3212
|
+
init_types();
|
|
3213
|
+
PlanProjectLinkError = class PlanProjectLinkError extends Error {
|
|
3214
|
+
code;
|
|
3215
|
+
details;
|
|
3216
|
+
constructor(code, message, details = {}) {
|
|
3217
|
+
super(message);
|
|
3218
|
+
this.code = code;
|
|
3219
|
+
this.details = details;
|
|
3220
|
+
this.name = "PlanProjectLinkError";
|
|
3221
|
+
}
|
|
3222
|
+
};
|
|
3223
|
+
});
|
|
3224
|
+
|
|
2825
3225
|
// src/pr-groups/types.ts
|
|
2826
3226
|
var PR_GROUP_LEDGER_SCHEMA_VERSION = 1, PR_GROUP_REPAIR_CYCLE_LIMIT = 2, PrGroupLedgerError;
|
|
2827
3227
|
var init_types2 = __esm(() => {
|
|
@@ -2838,9 +3238,9 @@ var init_types2 = __esm(() => {
|
|
|
2838
3238
|
});
|
|
2839
3239
|
|
|
2840
3240
|
// src/pr-groups/ledger.ts
|
|
2841
|
-
import { createHash as
|
|
3241
|
+
import { createHash as createHash3 } from "crypto";
|
|
2842
3242
|
function sha256(value) {
|
|
2843
|
-
return
|
|
3243
|
+
return createHash3("sha256").update(value).digest("hex");
|
|
2844
3244
|
}
|
|
2845
3245
|
function stableValue(value) {
|
|
2846
3246
|
if (Array.isArray(value))
|
|
@@ -5711,17 +6111,50 @@ async function cloudRollbackProjectTaskListEnsure(client, projectId, input) {
|
|
|
5711
6111
|
return requiredRemoteRoute(client, "/v1/projects/:id/task-list/rollback", () => client.transport.post(`/projects/${encodeURIComponent(projectId)}/task-list/rollback`, input), ["PROJECT_NOT_FOUND", "PROJECT_TASK_LIST_RECEIPT_NOT_FOUND"]);
|
|
5712
6112
|
}
|
|
5713
6113
|
async function cloudPlanPlanProjectLink(client, planId, projectId) {
|
|
5714
|
-
|
|
6114
|
+
const route = `/v1/plans/${encodeURIComponent(planId)}/project-link`;
|
|
6115
|
+
const response = await requiredRemoteRoute(client, "/v1/plans/:id/project-link", () => client.transport.get(`/plans/${encodeURIComponent(planId)}/project-link`, { query: { project_id: projectId } }), ["PLAN_PROJECT_LINK_PLAN_NOT_FOUND", "PLAN_PROJECT_LINK_PROJECT_NOT_FOUND"]);
|
|
6116
|
+
try {
|
|
6117
|
+
return assertPlanProjectLinkResponse(response, { mode: "plan", plan_id: planId, project_id: projectId });
|
|
6118
|
+
} catch (error) {
|
|
6119
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
6120
|
+
throw new Error(`REMOTE_API_INCOMPATIBLE: ${route} returned an invalid ${PLAN_PROJECT_LINK_SCHEMA_VERSION} plan response: ` + `${reason}; local SQLite fallback is disabled`, { cause: error });
|
|
6121
|
+
}
|
|
5715
6122
|
}
|
|
5716
6123
|
async function cloudApplyPlanProjectLink(client, planId, projectId, input) {
|
|
5717
|
-
|
|
6124
|
+
const route = `/v1/plans/${encodeURIComponent(planId)}/project-link`;
|
|
6125
|
+
const normalizedInput = {
|
|
6126
|
+
...input,
|
|
6127
|
+
idempotency_key: normalizePlanProjectLinkIdempotencyKey(input.idempotency_key)
|
|
6128
|
+
};
|
|
6129
|
+
const response = await requiredRemoteRoute(client, "/v1/plans/:id/project-link", () => client.transport.post(`/plans/${encodeURIComponent(planId)}/project-link`, { project_id: projectId, ...normalizedInput }), ["PLAN_PROJECT_LINK_PLAN_NOT_FOUND", "PLAN_PROJECT_LINK_PROJECT_NOT_FOUND"]);
|
|
6130
|
+
try {
|
|
6131
|
+
return assertPlanProjectLinkResponse(response, {
|
|
6132
|
+
mode: "apply",
|
|
6133
|
+
plan_id: planId,
|
|
6134
|
+
project_id: projectId,
|
|
6135
|
+
idempotency_key: normalizedInput.idempotency_key
|
|
6136
|
+
});
|
|
6137
|
+
} catch (error) {
|
|
6138
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
6139
|
+
throw new Error(`REMOTE_API_INCOMPATIBLE: ${route} returned an invalid ${PLAN_PROJECT_LINK_SCHEMA_VERSION} apply response: ` + `${reason}; local SQLite fallback is disabled`, { cause: error });
|
|
6140
|
+
}
|
|
5718
6141
|
}
|
|
5719
6142
|
async function cloudRollbackPlanProjectLink(client, planId, projectId, input) {
|
|
5720
|
-
|
|
6143
|
+
const route = `/v1/plans/${encodeURIComponent(planId)}/project-link/rollback`;
|
|
6144
|
+
const response = await requiredRemoteRoute(client, "/v1/plans/:id/project-link/rollback", () => client.transport.post(`/plans/${encodeURIComponent(planId)}/project-link/rollback`, { project_id: projectId, ...input }), [
|
|
5721
6145
|
"PLAN_PROJECT_LINK_PLAN_NOT_FOUND",
|
|
5722
6146
|
"PLAN_PROJECT_LINK_PROJECT_NOT_FOUND",
|
|
5723
6147
|
"PLAN_PROJECT_LINK_RECEIPT_NOT_FOUND"
|
|
5724
6148
|
]);
|
|
6149
|
+
try {
|
|
6150
|
+
return assertPlanProjectLinkRollbackResponse(response, {
|
|
6151
|
+
plan_id: planId,
|
|
6152
|
+
receipt_id: input.receipt_id
|
|
6153
|
+
});
|
|
6154
|
+
} catch (error) {
|
|
6155
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
6156
|
+
throw new Error(`REMOTE_API_INCOMPATIBLE: ${route} returned an invalid ${PLAN_PROJECT_LINK_SCHEMA_VERSION} rollback response: ` + `${reason}; local SQLite fallback is disabled`, { cause: error });
|
|
6157
|
+
}
|
|
5725
6158
|
}
|
|
5726
6159
|
async function cloudListPlans(client, projectId) {
|
|
5727
6160
|
const query = projectId ? { project_id: projectId } : {};
|
|
@@ -6396,6 +6829,7 @@ var UUID_RE, TRANSPORT_TOKENS, COMPLETION_EVIDENCE_FIELDS, completionCapabilityC
|
|
|
6396
6829
|
var init_cloud_router = __esm(() => {
|
|
6397
6830
|
init_types();
|
|
6398
6831
|
init_redaction();
|
|
6832
|
+
init_plan_project_link_contract();
|
|
6399
6833
|
init_http_client();
|
|
6400
6834
|
UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
6401
6835
|
TRANSPORT_TOKENS = {
|
|
@@ -12815,7 +13249,7 @@ __export(exports_event_hooks, {
|
|
|
12815
13249
|
emitLocalEventHooks: () => emitLocalEventHooks,
|
|
12816
13250
|
LOCAL_EVENT_TYPES: () => LOCAL_EVENT_TYPES
|
|
12817
13251
|
});
|
|
12818
|
-
import { createHash as
|
|
13252
|
+
import { createHash as createHash4, randomUUID } from "crypto";
|
|
12819
13253
|
import { appendFileSync, mkdirSync as mkdirSync4 } from "fs";
|
|
12820
13254
|
import { dirname as dirname4, resolve as resolve7 } from "path";
|
|
12821
13255
|
import { createConnection } from "net";
|
|
@@ -12882,7 +13316,7 @@ function buildEnvelope(type, payload, timestamp2 = new Date().toISOString()) {
|
|
|
12882
13316
|
payload: redactValue(payload ?? {}),
|
|
12883
13317
|
source: { package: "@hasna/todos", local_only: true }
|
|
12884
13318
|
};
|
|
12885
|
-
const digest =
|
|
13319
|
+
const digest = createHash4("sha256").update(canonicalEvent(base)).digest("hex");
|
|
12886
13320
|
return { ...base, integrity: { algorithm: "sha256", digest } };
|
|
12887
13321
|
}
|
|
12888
13322
|
function summarize(value) {
|
|
@@ -18096,7 +18530,7 @@ var init_boards = __esm(() => {
|
|
|
18096
18530
|
});
|
|
18097
18531
|
|
|
18098
18532
|
// src/lib/artifact-store.ts
|
|
18099
|
-
import { createHash as
|
|
18533
|
+
import { createHash as createHash5 } from "crypto";
|
|
18100
18534
|
import { existsSync as existsSync8, mkdirSync as mkdirSync5, readFileSync as readFileSync3, rmSync as rmSync2, statSync as statSync2, writeFileSync as writeFileSync3 } from "fs";
|
|
18101
18535
|
import { basename as basename2, dirname as dirname5, join as join7, resolve as resolve8 } from "path";
|
|
18102
18536
|
import { tmpdir as tmpdir3 } from "os";
|
|
@@ -18121,7 +18555,7 @@ function artifactStorePath(relativePath) {
|
|
|
18121
18555
|
return join7(artifactStoreRoot(), normalized);
|
|
18122
18556
|
}
|
|
18123
18557
|
function sha2562(buffer) {
|
|
18124
|
-
return
|
|
18558
|
+
return createHash5("sha256").update(buffer).digest("hex");
|
|
18125
18559
|
}
|
|
18126
18560
|
function isTextLike(buffer, path) {
|
|
18127
18561
|
if (buffer.includes(0))
|
|
@@ -22840,62 +23274,6 @@ var init_plan_artifacts = __esm(() => {
|
|
|
22840
23274
|
init_tasks();
|
|
22841
23275
|
});
|
|
22842
23276
|
|
|
22843
|
-
// src/lib/plan-project-link-contract.ts
|
|
22844
|
-
import { createHash as createHash5 } from "crypto";
|
|
22845
|
-
function canonicalPlanProjectLinkJson(value) {
|
|
22846
|
-
if (value === null || typeof value !== "object")
|
|
22847
|
-
return JSON.stringify(value);
|
|
22848
|
-
if (Array.isArray(value))
|
|
22849
|
-
return `[${value.map(canonicalPlanProjectLinkJson).join(",")}]`;
|
|
22850
|
-
return `{${Object.entries(value).filter(([, item]) => item !== undefined).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => `${JSON.stringify(key)}:${canonicalPlanProjectLinkJson(item)}`).join(",")}}`;
|
|
22851
|
-
}
|
|
22852
|
-
function planProjectLinkDigest(value) {
|
|
22853
|
-
return createHash5("sha256").update(canonicalPlanProjectLinkJson(value)).digest("hex");
|
|
22854
|
-
}
|
|
22855
|
-
function normalizePlanProjectLinkIdempotencyKey(value) {
|
|
22856
|
-
const key = value?.trim() ?? "";
|
|
22857
|
-
if (key.length < 8 || key.length > 128 || !/^[A-Za-z0-9._:-]+$/.test(key)) {
|
|
22858
|
-
throw new PlanProjectLinkError("PLAN_PROJECT_LINK_IDEMPOTENCY_KEY_INVALID", "idempotency_key must be 8-128 ASCII letters, digits, dots, underscores, colons, or hyphens");
|
|
22859
|
-
}
|
|
22860
|
-
return key;
|
|
22861
|
-
}
|
|
22862
|
-
function planProjectLinkReceiptId(idempotencyKey) {
|
|
22863
|
-
return `pplr_${planProjectLinkDigest({ idempotency_key: idempotencyKey }).slice(0, 48)}`;
|
|
22864
|
-
}
|
|
22865
|
-
function planProjectLinkRollbackReceiptId(receiptId) {
|
|
22866
|
-
return `pplr_inverse_${planProjectLinkDigest({ accepted_receipt_id: receiptId }).slice(0, 38)}`;
|
|
22867
|
-
}
|
|
22868
|
-
function planProjectLinkRequestHash(planId, projectId) {
|
|
22869
|
-
return planProjectLinkDigest({ plan_id: planId, project_id: projectId });
|
|
22870
|
-
}
|
|
22871
|
-
function planProjectLinkResultDigest(plan, tasks) {
|
|
22872
|
-
return planProjectLinkDigest({
|
|
22873
|
-
plan_id: plan.id,
|
|
22874
|
-
plan_project_id: plan.project_id,
|
|
22875
|
-
tasks: tasks.map((task) => ({ id: task.id, plan_id: task.plan_id, project_id: task.project_id })).sort((left, right) => left.id.localeCompare(right.id))
|
|
22876
|
-
});
|
|
22877
|
-
}
|
|
22878
|
-
function assertPlanProjectLinkReceipt(value) {
|
|
22879
|
-
const receipt = value;
|
|
22880
|
-
if (!receipt || typeof receipt !== "object" || receipt.schema_version !== PLAN_PROJECT_LINK_SCHEMA_VERSION || typeof receipt.receipt_id !== "string" || typeof receipt.idempotency_key !== "string" || typeof receipt.plan_id !== "string" || typeof receipt.project_id !== "string" || !Array.isArray(receipt.task_ids) || receipt.task_ids.some((id) => typeof id !== "string") || !receipt.prior_task_project_ids || typeof receipt.prior_task_project_ids !== "object" || typeof receipt.result_digest !== "string") {
|
|
22881
|
-
throw new PlanProjectLinkError("PLAN_PROJECT_LINK_RECEIPT_NOT_FOUND", "Stored plan-project-link receipt is invalid");
|
|
22882
|
-
}
|
|
22883
|
-
return receipt;
|
|
22884
|
-
}
|
|
22885
|
-
var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1", PlanProjectLinkError;
|
|
22886
|
-
var init_plan_project_link_contract = __esm(() => {
|
|
22887
|
-
PlanProjectLinkError = class PlanProjectLinkError extends Error {
|
|
22888
|
-
code;
|
|
22889
|
-
details;
|
|
22890
|
-
constructor(code, message, details = {}) {
|
|
22891
|
-
super(message);
|
|
22892
|
-
this.code = code;
|
|
22893
|
-
this.details = details;
|
|
22894
|
-
this.name = "PlanProjectLinkError";
|
|
22895
|
-
}
|
|
22896
|
-
};
|
|
22897
|
-
});
|
|
22898
|
-
|
|
22899
23277
|
// src/lib/plan-project-link.ts
|
|
22900
23278
|
async function exactPlanProjectLinkState(store, planId, projectId) {
|
|
22901
23279
|
const [plan, project] = await Promise.all([
|
package/dist/contracts.js
CHANGED
|
@@ -12379,7 +12379,7 @@ var init_tasks = __esm(() => {
|
|
|
12379
12379
|
// package.json
|
|
12380
12380
|
var package_default = {
|
|
12381
12381
|
name: "@hasna/todos",
|
|
12382
|
-
version: "0.15.
|
|
12382
|
+
version: "0.15.11",
|
|
12383
12383
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
12384
12384
|
type: "module",
|
|
12385
12385
|
main: "dist/index.js",
|
package/dist/index.js
CHANGED
|
@@ -12492,7 +12492,7 @@ var init_dispatches = __esm(() => {
|
|
|
12492
12492
|
// package.json
|
|
12493
12493
|
var package_default = {
|
|
12494
12494
|
name: "@hasna/todos",
|
|
12495
|
-
version: "0.15.
|
|
12495
|
+
version: "0.15.11",
|
|
12496
12496
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
12497
12497
|
type: "module",
|
|
12498
12498
|
main: "dist/index.js",
|
|
@@ -25321,6 +25321,7 @@ function scanSqliteIntegrity(db = getDatabase()) {
|
|
|
25321
25321
|
}
|
|
25322
25322
|
|
|
25323
25323
|
// src/lib/plan-project-link-contract.ts
|
|
25324
|
+
init_types();
|
|
25324
25325
|
import { createHash as createHash10 } from "crypto";
|
|
25325
25326
|
var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1";
|
|
25326
25327
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Plan, PlanProjectLinkReceipt, Task } from "../types/index.js";
|
|
1
|
+
import type { Plan, PlanProjectLinkReceipt, PlanProjectLinkResult, PlanProjectLinkRollbackResult, Task } from "../types/index.js";
|
|
2
2
|
export declare const PLAN_PROJECT_LINK_SCHEMA_VERSION: "todos.plan-project-link.v1";
|
|
3
3
|
export type PlanProjectLinkErrorCode = "PLAN_PROJECT_LINK_PLAN_NOT_FOUND" | "PLAN_PROJECT_LINK_PROJECT_NOT_FOUND" | "PLAN_PROJECT_LINK_PLAN_REVISION_CONFLICT" | "PLAN_PROJECT_LINK_PROJECT_REVISION_CONFLICT" | "PLAN_PROJECT_LINK_SCOPE_COLLISION" | "PLAN_PROJECT_LINK_IDEMPOTENCY_KEY_INVALID" | "PLAN_PROJECT_LINK_IDEMPOTENCY_CONFLICT" | "PLAN_PROJECT_LINK_RECEIPT_NOT_FOUND" | "PLAN_PROJECT_LINK_RESULT_DRIFT" | "PLAN_PROJECT_LINK_ROLLBACK_CONFLICT" | "PLAN_PROJECT_LINK_UNSUPPORTED";
|
|
4
4
|
export declare class PlanProjectLinkError extends Error {
|
|
@@ -14,4 +14,19 @@ export declare function planProjectLinkRollbackReceiptId(receiptId: string): str
|
|
|
14
14
|
export declare function planProjectLinkRequestHash(planId: string, projectId: string): string;
|
|
15
15
|
export declare function planProjectLinkResultDigest(plan: Pick<Plan, "id" | "project_id">, tasks: Task[]): string;
|
|
16
16
|
export declare function assertPlanProjectLinkReceipt(value: unknown): PlanProjectLinkReceipt;
|
|
17
|
+
type PlanProjectLinkResponseExpectation = {
|
|
18
|
+
mode: "plan" | "apply";
|
|
19
|
+
plan_id: string;
|
|
20
|
+
project_id: string;
|
|
21
|
+
idempotency_key?: string;
|
|
22
|
+
};
|
|
23
|
+
type PlanProjectLinkRollbackResponseExpectation = {
|
|
24
|
+
plan_id: string;
|
|
25
|
+
receipt_id: string;
|
|
26
|
+
};
|
|
27
|
+
/** Validate an untrusted HTTP plan/apply response before the CLI can report success. */
|
|
28
|
+
export declare function assertPlanProjectLinkResponse(value: unknown, expectation: PlanProjectLinkResponseExpectation): PlanProjectLinkResult;
|
|
29
|
+
/** Validate an untrusted HTTP rollback response before the CLI can report success. */
|
|
30
|
+
export declare function assertPlanProjectLinkRollbackResponse(value: unknown, expectation: PlanProjectLinkRollbackResponseExpectation): PlanProjectLinkRollbackResult;
|
|
31
|
+
export {};
|
|
17
32
|
//# sourceMappingURL=plan-project-link-contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-project-link-contract.d.ts","sourceRoot":"","sources":["../../src/lib/plan-project-link-contract.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plan-project-link-contract.d.ts","sourceRoot":"","sources":["../../src/lib/plan-project-link-contract.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,IAAI,EACJ,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,IAAI,EACL,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,gCAAgC,EAAG,4BAAqC,CAAC;AAEtF,MAAM,MAAM,wBAAwB,GAChC,kCAAkC,GAClC,qCAAqC,GACrC,0CAA0C,GAC1C,6CAA6C,GAC7C,mCAAmC,GACnC,2CAA2C,GAC3C,wCAAwC,GACxC,qCAAqC,GACrC,gCAAgC,GAChC,qCAAqC,GACrC,+BAA+B,CAAC;AAEpC,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,IAAI,EAAE,wBAAwB;IAEvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFhC,IAAI,EAAE,wBAAwB,EACvC,OAAO,EAAE,MAAM,EACN,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAKjD;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQnE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5D;AAED,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CASxF;AAED,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAQxG;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAsBnF;AAED,KAAK,kCAAkC,GAAG;IACxC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,KAAK,0CAA0C,GAAG;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA8RF,wFAAwF;AACxF,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,kCAAkC,GAC9C,qBAAqB,CA2CvB;AAED,sFAAsF;AACtF,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,0CAA0C,GACtD,6BAA6B,CA6B/B"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -18443,6 +18443,63 @@ var init_assignee_context = __esm(() => {
|
|
|
18443
18443
|
init_assignee_validation();
|
|
18444
18444
|
});
|
|
18445
18445
|
|
|
18446
|
+
// src/lib/plan-project-link-contract.ts
|
|
18447
|
+
import { createHash as createHash3 } from "crypto";
|
|
18448
|
+
function canonicalPlanProjectLinkJson(value) {
|
|
18449
|
+
if (value === null || typeof value !== "object")
|
|
18450
|
+
return JSON.stringify(value);
|
|
18451
|
+
if (Array.isArray(value))
|
|
18452
|
+
return `[${value.map(canonicalPlanProjectLinkJson).join(",")}]`;
|
|
18453
|
+
return `{${Object.entries(value).filter(([, item]) => item !== undefined).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => `${JSON.stringify(key)}:${canonicalPlanProjectLinkJson(item)}`).join(",")}}`;
|
|
18454
|
+
}
|
|
18455
|
+
function planProjectLinkDigest(value) {
|
|
18456
|
+
return createHash3("sha256").update(canonicalPlanProjectLinkJson(value)).digest("hex");
|
|
18457
|
+
}
|
|
18458
|
+
function normalizePlanProjectLinkIdempotencyKey(value) {
|
|
18459
|
+
const key = value?.trim() ?? "";
|
|
18460
|
+
if (key.length < 8 || key.length > 128 || !/^[A-Za-z0-9._:-]+$/.test(key)) {
|
|
18461
|
+
throw new PlanProjectLinkError("PLAN_PROJECT_LINK_IDEMPOTENCY_KEY_INVALID", "idempotency_key must be 8-128 ASCII letters, digits, dots, underscores, colons, or hyphens");
|
|
18462
|
+
}
|
|
18463
|
+
return key;
|
|
18464
|
+
}
|
|
18465
|
+
function planProjectLinkReceiptId(idempotencyKey) {
|
|
18466
|
+
return `pplr_${planProjectLinkDigest({ idempotency_key: idempotencyKey }).slice(0, 48)}`;
|
|
18467
|
+
}
|
|
18468
|
+
function planProjectLinkRollbackReceiptId(receiptId) {
|
|
18469
|
+
return `pplr_inverse_${planProjectLinkDigest({ accepted_receipt_id: receiptId }).slice(0, 38)}`;
|
|
18470
|
+
}
|
|
18471
|
+
function planProjectLinkRequestHash(planId, projectId) {
|
|
18472
|
+
return planProjectLinkDigest({ plan_id: planId, project_id: projectId });
|
|
18473
|
+
}
|
|
18474
|
+
function planProjectLinkResultDigest(plan, tasks) {
|
|
18475
|
+
return planProjectLinkDigest({
|
|
18476
|
+
plan_id: plan.id,
|
|
18477
|
+
plan_project_id: plan.project_id,
|
|
18478
|
+
tasks: tasks.map((task) => ({ id: task.id, plan_id: task.plan_id, project_id: task.project_id })).sort((left, right) => left.id.localeCompare(right.id))
|
|
18479
|
+
});
|
|
18480
|
+
}
|
|
18481
|
+
function assertPlanProjectLinkReceipt(value) {
|
|
18482
|
+
const receipt = value;
|
|
18483
|
+
if (!receipt || typeof receipt !== "object" || receipt.schema_version !== PLAN_PROJECT_LINK_SCHEMA_VERSION || typeof receipt.receipt_id !== "string" || typeof receipt.idempotency_key !== "string" || typeof receipt.plan_id !== "string" || typeof receipt.project_id !== "string" || !Array.isArray(receipt.task_ids) || receipt.task_ids.some((id) => typeof id !== "string") || !receipt.prior_task_project_ids || typeof receipt.prior_task_project_ids !== "object" || typeof receipt.result_digest !== "string") {
|
|
18484
|
+
throw new PlanProjectLinkError("PLAN_PROJECT_LINK_RECEIPT_NOT_FOUND", "Stored plan-project-link receipt is invalid");
|
|
18485
|
+
}
|
|
18486
|
+
return receipt;
|
|
18487
|
+
}
|
|
18488
|
+
var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1", PlanProjectLinkError;
|
|
18489
|
+
var init_plan_project_link_contract = __esm(() => {
|
|
18490
|
+
init_types();
|
|
18491
|
+
PlanProjectLinkError = class PlanProjectLinkError extends Error {
|
|
18492
|
+
code;
|
|
18493
|
+
details;
|
|
18494
|
+
constructor(code, message, details = {}) {
|
|
18495
|
+
super(message);
|
|
18496
|
+
this.code = code;
|
|
18497
|
+
this.details = details;
|
|
18498
|
+
this.name = "PlanProjectLinkError";
|
|
18499
|
+
}
|
|
18500
|
+
};
|
|
18501
|
+
});
|
|
18502
|
+
|
|
18446
18503
|
// src/pr-groups/types.ts
|
|
18447
18504
|
var PR_GROUP_LEDGER_SCHEMA_VERSION = 1, PR_GROUP_REPAIR_CYCLE_LIMIT = 2, PrGroupLedgerError;
|
|
18448
18505
|
var init_types3 = __esm(() => {
|
|
@@ -18459,9 +18516,9 @@ var init_types3 = __esm(() => {
|
|
|
18459
18516
|
});
|
|
18460
18517
|
|
|
18461
18518
|
// src/pr-groups/ledger.ts
|
|
18462
|
-
import { createHash as
|
|
18519
|
+
import { createHash as createHash4 } from "crypto";
|
|
18463
18520
|
function sha2562(value) {
|
|
18464
|
-
return
|
|
18521
|
+
return createHash4("sha256").update(value).digest("hex");
|
|
18465
18522
|
}
|
|
18466
18523
|
function stableValue(value) {
|
|
18467
18524
|
if (Array.isArray(value))
|
|
@@ -21203,6 +21260,7 @@ var UUID_RE, TRANSPORT_TOKENS, completionCapabilityCache, SERVER_MODE_CANDIDATES
|
|
|
21203
21260
|
var init_cloud_router = __esm(() => {
|
|
21204
21261
|
init_types();
|
|
21205
21262
|
init_redaction();
|
|
21263
|
+
init_plan_project_link_contract();
|
|
21206
21264
|
init_http_client();
|
|
21207
21265
|
UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
21208
21266
|
TRANSPORT_TOKENS = {
|
|
@@ -23608,12 +23666,12 @@ var init_local_notifications = __esm(() => {
|
|
|
23608
23666
|
});
|
|
23609
23667
|
|
|
23610
23668
|
// src/lib/local-encryption.ts
|
|
23611
|
-
import { createCipheriv, createDecipheriv, createHash as
|
|
23669
|
+
import { createCipheriv, createDecipheriv, createHash as createHash5, randomBytes, scryptSync, timingSafeEqual as timingSafeEqual2 } from "crypto";
|
|
23612
23670
|
function now3() {
|
|
23613
23671
|
return new Date().toISOString();
|
|
23614
23672
|
}
|
|
23615
23673
|
function sha2563(value) {
|
|
23616
|
-
return
|
|
23674
|
+
return createHash5("sha256").update(value).digest("hex");
|
|
23617
23675
|
}
|
|
23618
23676
|
function normalizeProfileName(value) {
|
|
23619
23677
|
const name = (value || DEFAULT_ENCRYPTION_PROFILE).trim();
|
|
@@ -25751,7 +25809,7 @@ var init_capacity_forecasts = __esm(() => {
|
|
|
25751
25809
|
});
|
|
25752
25810
|
|
|
25753
25811
|
// src/lib/audit-ledger.ts
|
|
25754
|
-
import { createHash as
|
|
25812
|
+
import { createHash as createHash6 } from "crypto";
|
|
25755
25813
|
function canonicalize(value) {
|
|
25756
25814
|
if (value === null || typeof value !== "object")
|
|
25757
25815
|
return JSON.stringify(value);
|
|
@@ -25761,7 +25819,7 @@ function canonicalize(value) {
|
|
|
25761
25819
|
return `{${Object.keys(object).sort().map((key) => `${JSON.stringify(key)}:${canonicalize(object[key])}`).join(",")}}`;
|
|
25762
25820
|
}
|
|
25763
25821
|
function hash(value) {
|
|
25764
|
-
return
|
|
25822
|
+
return createHash6("sha256").update(value).digest("hex");
|
|
25765
25823
|
}
|
|
25766
25824
|
function parsePayload2(value) {
|
|
25767
25825
|
if (!value)
|
|
@@ -35309,7 +35367,7 @@ var package_default;
|
|
|
35309
35367
|
var init_package = __esm(() => {
|
|
35310
35368
|
package_default = {
|
|
35311
35369
|
name: "@hasna/todos",
|
|
35312
|
-
version: "0.15.
|
|
35370
|
+
version: "0.15.11",
|
|
35313
35371
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
35314
35372
|
type: "module",
|
|
35315
35373
|
main: "dist/index.js",
|
|
@@ -36023,7 +36081,7 @@ var init_local_bridge = __esm(() => {
|
|
|
36023
36081
|
});
|
|
36024
36082
|
|
|
36025
36083
|
// src/lib/local-backups.ts
|
|
36026
|
-
import { createHash as
|
|
36084
|
+
import { createHash as createHash7 } from "crypto";
|
|
36027
36085
|
import { readFileSync as readFileSync8, writeFileSync as writeFileSync3 } from "fs";
|
|
36028
36086
|
import { dirname as dirname7, resolve as resolve12 } from "path";
|
|
36029
36087
|
import { mkdirSync as mkdirSync6 } from "fs";
|
|
@@ -36036,7 +36094,7 @@ function stableJson2(value) {
|
|
|
36036
36094
|
return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${stableJson2(record[key])}`).join(",")}}`;
|
|
36037
36095
|
}
|
|
36038
36096
|
function sha2564(value) {
|
|
36039
|
-
return
|
|
36097
|
+
return createHash7("sha256").update(stableJson2(value)).digest("hex");
|
|
36040
36098
|
}
|
|
36041
36099
|
function sqliteIntegrity(db) {
|
|
36042
36100
|
let quick = "unknown";
|
|
@@ -36686,7 +36744,7 @@ var init_onboarding_fixtures = __esm(() => {
|
|
|
36686
36744
|
});
|
|
36687
36745
|
|
|
36688
36746
|
// src/lib/local-snapshots.ts
|
|
36689
|
-
import { createHash as
|
|
36747
|
+
import { createHash as createHash8 } from "crypto";
|
|
36690
36748
|
function source(version) {
|
|
36691
36749
|
return {
|
|
36692
36750
|
packageName: "@hasna/todos",
|
|
@@ -36710,7 +36768,7 @@ function stable(value) {
|
|
|
36710
36768
|
return Object.fromEntries(Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => [key, stable(item)]));
|
|
36711
36769
|
}
|
|
36712
36770
|
function sha2565(value) {
|
|
36713
|
-
return
|
|
36771
|
+
return createHash8("sha256").update(JSON.stringify(stable(value))).digest("hex");
|
|
36714
36772
|
}
|
|
36715
36773
|
function latestTimestamp2(items, fallback) {
|
|
36716
36774
|
const timestamps = [];
|
|
@@ -37276,7 +37334,7 @@ var init_retrospectives = __esm(() => {
|
|
|
37276
37334
|
});
|
|
37277
37335
|
|
|
37278
37336
|
// src/lib/agent-replay-simulator.ts
|
|
37279
|
-
import { createHash as
|
|
37337
|
+
import { createHash as createHash9 } from "crypto";
|
|
37280
37338
|
function isObject(value) {
|
|
37281
37339
|
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
37282
37340
|
}
|
|
@@ -37297,7 +37355,7 @@ function stable2(value) {
|
|
|
37297
37355
|
return Object.fromEntries(Object.keys(value).sort().map((key) => [key, stable2(value[key])]));
|
|
37298
37356
|
}
|
|
37299
37357
|
function fingerprint2(value) {
|
|
37300
|
-
return
|
|
37358
|
+
return createHash9("sha256").update(JSON.stringify(stable2(value))).digest("hex");
|
|
37301
37359
|
}
|
|
37302
37360
|
function unpackFixture(input) {
|
|
37303
37361
|
if (!isObject(input))
|
|
@@ -37584,7 +37642,7 @@ __export(exports_local_extensions, {
|
|
|
37584
37642
|
getLocalExtension: () => getLocalExtension,
|
|
37585
37643
|
discoverLocalExtensions: () => discoverLocalExtensions
|
|
37586
37644
|
});
|
|
37587
|
-
import { createHash as
|
|
37645
|
+
import { createHash as createHash10, createVerify } from "crypto";
|
|
37588
37646
|
import { existsSync as existsSync13, readdirSync as readdirSync3, readFileSync as readFileSync9, statSync as statSync6 } from "fs";
|
|
37589
37647
|
import { basename as basename5, join as join11, resolve as resolve13 } from "path";
|
|
37590
37648
|
function isObject2(value) {
|
|
@@ -37670,7 +37728,7 @@ function parseJson(path) {
|
|
|
37670
37728
|
return JSON.parse(readFileSync9(path, "utf8"));
|
|
37671
37729
|
}
|
|
37672
37730
|
function sha2566(bytes) {
|
|
37673
|
-
return `sha256:${
|
|
37731
|
+
return `sha256:${createHash10("sha256").update(bytes).digest("hex")}`;
|
|
37674
37732
|
}
|
|
37675
37733
|
function compareVersions(a, b) {
|
|
37676
37734
|
const left = a.split(".").map((part) => Number.parseInt(part, 10) || 0);
|
|
@@ -38145,7 +38203,7 @@ function issueToTask(issue, opts) {
|
|
|
38145
38203
|
var init_github = () => {};
|
|
38146
38204
|
|
|
38147
38205
|
// src/db/inbox.ts
|
|
38148
|
-
import { createHash as
|
|
38206
|
+
import { createHash as createHash11 } from "crypto";
|
|
38149
38207
|
function parseMetadata3(value) {
|
|
38150
38208
|
if (!value)
|
|
38151
38209
|
return {};
|
|
@@ -38165,7 +38223,7 @@ function compactWhitespace(value) {
|
|
|
38165
38223
|
function fingerprintInboxInput(input) {
|
|
38166
38224
|
const sourceType = input.source_type || detectInboxSourceType(input.body, input.source_url);
|
|
38167
38225
|
const normalized = compactWhitespace(sanitizePreWriteText(input.body, "inbox.fingerprint")).slice(0, 8000);
|
|
38168
|
-
return
|
|
38226
|
+
return createHash11("sha256").update(`${sourceType}
|
|
38169
38227
|
${input.source_url || ""}
|
|
38170
38228
|
${normalized}`).digest("hex");
|
|
38171
38229
|
}
|
|
@@ -42365,10 +42423,10 @@ __export(exports_extract, {
|
|
|
42365
42423
|
EXTRACT_TAGS: () => EXTRACT_TAGS
|
|
42366
42424
|
});
|
|
42367
42425
|
import { existsSync as existsSync14, readFileSync as readFileSync10, statSync as statSync7 } from "fs";
|
|
42368
|
-
import { createHash as
|
|
42426
|
+
import { createHash as createHash12 } from "crypto";
|
|
42369
42427
|
import { relative as relative5, resolve as resolve14, join as join12 } from "path";
|
|
42370
42428
|
function stableHash(value) {
|
|
42371
|
-
return
|
|
42429
|
+
return createHash12("sha256").update(value).digest("hex");
|
|
42372
42430
|
}
|
|
42373
42431
|
function normalizePathForMatch(value) {
|
|
42374
42432
|
return value.replace(/\\/g, "/").replace(/^\.\//, "");
|
|
@@ -44092,13 +44150,13 @@ __export(exports_environment_snapshots, {
|
|
|
44092
44150
|
compareEnvironmentSnapshotFiles: () => compareEnvironmentSnapshotFiles,
|
|
44093
44151
|
captureEnvironmentSnapshot: () => captureEnvironmentSnapshot
|
|
44094
44152
|
});
|
|
44095
|
-
import { createHash as
|
|
44153
|
+
import { createHash as createHash13 } from "crypto";
|
|
44096
44154
|
import { existsSync as existsSync15, readFileSync as readFileSync11, statSync as statSync8 } from "fs";
|
|
44097
44155
|
import { hostname as hostname2, platform, arch } from "os";
|
|
44098
44156
|
import { dirname as dirname8, join as join14, resolve as resolve15 } from "path";
|
|
44099
44157
|
import { tmpdir as tmpdir3 } from "os";
|
|
44100
44158
|
function sha2567(value) {
|
|
44101
|
-
return
|
|
44159
|
+
return createHash13("sha256").update(value).digest("hex");
|
|
44102
44160
|
}
|
|
44103
44161
|
function fileRecord(root, relativePath) {
|
|
44104
44162
|
const path = join14(root, relativePath);
|
|
@@ -44689,62 +44747,6 @@ var init_cloud_client = __esm(() => {
|
|
|
44689
44747
|
init_config();
|
|
44690
44748
|
});
|
|
44691
44749
|
|
|
44692
|
-
// src/lib/plan-project-link-contract.ts
|
|
44693
|
-
import { createHash as createHash13 } from "crypto";
|
|
44694
|
-
function canonicalPlanProjectLinkJson(value) {
|
|
44695
|
-
if (value === null || typeof value !== "object")
|
|
44696
|
-
return JSON.stringify(value);
|
|
44697
|
-
if (Array.isArray(value))
|
|
44698
|
-
return `[${value.map(canonicalPlanProjectLinkJson).join(",")}]`;
|
|
44699
|
-
return `{${Object.entries(value).filter(([, item]) => item !== undefined).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => `${JSON.stringify(key)}:${canonicalPlanProjectLinkJson(item)}`).join(",")}}`;
|
|
44700
|
-
}
|
|
44701
|
-
function planProjectLinkDigest(value) {
|
|
44702
|
-
return createHash13("sha256").update(canonicalPlanProjectLinkJson(value)).digest("hex");
|
|
44703
|
-
}
|
|
44704
|
-
function normalizePlanProjectLinkIdempotencyKey(value) {
|
|
44705
|
-
const key = value?.trim() ?? "";
|
|
44706
|
-
if (key.length < 8 || key.length > 128 || !/^[A-Za-z0-9._:-]+$/.test(key)) {
|
|
44707
|
-
throw new PlanProjectLinkError("PLAN_PROJECT_LINK_IDEMPOTENCY_KEY_INVALID", "idempotency_key must be 8-128 ASCII letters, digits, dots, underscores, colons, or hyphens");
|
|
44708
|
-
}
|
|
44709
|
-
return key;
|
|
44710
|
-
}
|
|
44711
|
-
function planProjectLinkReceiptId(idempotencyKey) {
|
|
44712
|
-
return `pplr_${planProjectLinkDigest({ idempotency_key: idempotencyKey }).slice(0, 48)}`;
|
|
44713
|
-
}
|
|
44714
|
-
function planProjectLinkRollbackReceiptId(receiptId) {
|
|
44715
|
-
return `pplr_inverse_${planProjectLinkDigest({ accepted_receipt_id: receiptId }).slice(0, 38)}`;
|
|
44716
|
-
}
|
|
44717
|
-
function planProjectLinkRequestHash(planId, projectId) {
|
|
44718
|
-
return planProjectLinkDigest({ plan_id: planId, project_id: projectId });
|
|
44719
|
-
}
|
|
44720
|
-
function planProjectLinkResultDigest(plan, tasks) {
|
|
44721
|
-
return planProjectLinkDigest({
|
|
44722
|
-
plan_id: plan.id,
|
|
44723
|
-
plan_project_id: plan.project_id,
|
|
44724
|
-
tasks: tasks.map((task2) => ({ id: task2.id, plan_id: task2.plan_id, project_id: task2.project_id })).sort((left, right) => left.id.localeCompare(right.id))
|
|
44725
|
-
});
|
|
44726
|
-
}
|
|
44727
|
-
function assertPlanProjectLinkReceipt(value) {
|
|
44728
|
-
const receipt = value;
|
|
44729
|
-
if (!receipt || typeof receipt !== "object" || receipt.schema_version !== PLAN_PROJECT_LINK_SCHEMA_VERSION || typeof receipt.receipt_id !== "string" || typeof receipt.idempotency_key !== "string" || typeof receipt.plan_id !== "string" || typeof receipt.project_id !== "string" || !Array.isArray(receipt.task_ids) || receipt.task_ids.some((id) => typeof id !== "string") || !receipt.prior_task_project_ids || typeof receipt.prior_task_project_ids !== "object" || typeof receipt.result_digest !== "string") {
|
|
44730
|
-
throw new PlanProjectLinkError("PLAN_PROJECT_LINK_RECEIPT_NOT_FOUND", "Stored plan-project-link receipt is invalid");
|
|
44731
|
-
}
|
|
44732
|
-
return receipt;
|
|
44733
|
-
}
|
|
44734
|
-
var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1", PlanProjectLinkError;
|
|
44735
|
-
var init_plan_project_link_contract = __esm(() => {
|
|
44736
|
-
PlanProjectLinkError = class PlanProjectLinkError extends Error {
|
|
44737
|
-
code;
|
|
44738
|
-
details;
|
|
44739
|
-
constructor(code, message, details = {}) {
|
|
44740
|
-
super(message);
|
|
44741
|
-
this.code = code;
|
|
44742
|
-
this.details = details;
|
|
44743
|
-
this.name = "PlanProjectLinkError";
|
|
44744
|
-
}
|
|
44745
|
-
};
|
|
44746
|
-
});
|
|
44747
|
-
|
|
44748
44750
|
// src/db/plan-project-links.ts
|
|
44749
44751
|
function getPlanProjectLinkReceipt(receiptId, db) {
|
|
44750
44752
|
const d = db || getDatabase();
|
package/dist/mcp.js
CHANGED
|
@@ -41,7 +41,7 @@ var __require = import.meta.require;
|
|
|
41
41
|
// package.json
|
|
42
42
|
var package_default = {
|
|
43
43
|
name: "@hasna/todos",
|
|
44
|
-
version: "0.15.
|
|
44
|
+
version: "0.15.11",
|
|
45
45
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
46
46
|
type: "module",
|
|
47
47
|
main: "dist/index.js",
|
|
@@ -12382,7 +12382,7 @@ import { createHash as createHash5 } from "crypto";
|
|
|
12382
12382
|
// package.json
|
|
12383
12383
|
var package_default = {
|
|
12384
12384
|
name: "@hasna/todos",
|
|
12385
|
-
version: "0.15.
|
|
12385
|
+
version: "0.15.11",
|
|
12386
12386
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
12387
12387
|
type: "module",
|
|
12388
12388
|
main: "dist/index.js",
|
|
@@ -12525,6 +12525,7 @@ function normalizeAgentNameInput(name) {
|
|
|
12525
12525
|
init_creator_identity();
|
|
12526
12526
|
|
|
12527
12527
|
// src/lib/plan-project-link-contract.ts
|
|
12528
|
+
init_types();
|
|
12528
12529
|
import { createHash as createHash2 } from "crypto";
|
|
12529
12530
|
var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1";
|
|
12530
12531
|
|
package/dist/registry.js
CHANGED
|
@@ -12379,7 +12379,7 @@ var init_tasks = __esm(() => {
|
|
|
12379
12379
|
// package.json
|
|
12380
12380
|
var package_default = {
|
|
12381
12381
|
name: "@hasna/todos",
|
|
12382
|
-
version: "0.15.
|
|
12382
|
+
version: "0.15.11",
|
|
12383
12383
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
12384
12384
|
type: "module",
|
|
12385
12385
|
main: "dist/index.js",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"packageName": "@hasna/todos",
|
|
3
|
-
"packageVersion": "0.15.
|
|
3
|
+
"packageVersion": "0.15.11",
|
|
4
4
|
"repository": "https://github.com/hasna/todos.git",
|
|
5
|
-
"gitCommit": "
|
|
6
|
-
"gitTree": "
|
|
7
|
-
"sourceTreeSha256": "
|
|
8
|
-
"generatedAt": "2026-08-
|
|
5
|
+
"gitCommit": "a73c219329648d2563eac3ab8aadf2fbef81bbac",
|
|
6
|
+
"gitTree": "6e98d82151644a5b29f25aff5e329ccbe07fa85e",
|
|
7
|
+
"sourceTreeSha256": "ebbdb1e2ac3d4848f1dddc04c40e12d4ed40c8ac5a34297f5727e088dcbd6c86",
|
|
8
|
+
"generatedAt": "2026-08-08T08:13:06.000Z"
|
|
9
9
|
}
|
package/dist/server/index.js
CHANGED
|
@@ -70,7 +70,7 @@ var package_default;
|
|
|
70
70
|
var init_package = __esm(() => {
|
|
71
71
|
package_default = {
|
|
72
72
|
name: "@hasna/todos",
|
|
73
|
-
version: "0.15.
|
|
73
|
+
version: "0.15.11",
|
|
74
74
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
75
75
|
type: "module",
|
|
76
76
|
main: "dist/index.js",
|
|
@@ -1170,6 +1170,7 @@ function assertPlanProjectLinkReceipt(value) {
|
|
|
1170
1170
|
}
|
|
1171
1171
|
var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1", PlanProjectLinkError;
|
|
1172
1172
|
var init_plan_project_link_contract = __esm(() => {
|
|
1173
|
+
init_types();
|
|
1173
1174
|
PlanProjectLinkError = class PlanProjectLinkError extends Error {
|
|
1174
1175
|
code;
|
|
1175
1176
|
details;
|
|
@@ -62588,6 +62589,7 @@ var init_cloud_router = __esm(() => {
|
|
|
62588
62589
|
init_mode();
|
|
62589
62590
|
init_types();
|
|
62590
62591
|
init_redaction();
|
|
62592
|
+
init_plan_project_link_contract();
|
|
62591
62593
|
init_http_client();
|
|
62592
62594
|
UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
62593
62595
|
TRANSPORT_TOKENS = {
|
package/dist/storage.js
CHANGED
|
@@ -13462,6 +13462,7 @@ function scanSqliteIntegrity(db = getDatabase()) {
|
|
|
13462
13462
|
}
|
|
13463
13463
|
|
|
13464
13464
|
// src/lib/plan-project-link-contract.ts
|
|
13465
|
+
init_types();
|
|
13465
13466
|
import { createHash as createHash4 } from "crypto";
|
|
13466
13467
|
var PLAN_PROJECT_LINK_SCHEMA_VERSION = "todos.plan-project-link.v1";
|
|
13467
13468
|
|