@hasna/todos 0.15.24 → 0.15.26
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/ai-tools.d.ts.map +1 -1
- package/dist/cli/cloud-router.d.ts +7 -0
- package/dist/cli/cloud-router.d.ts.map +1 -1
- package/dist/cli/commands/task-manifest-commands.d.ts +3 -0
- package/dist/cli/commands/task-manifest-commands.d.ts.map +1 -0
- package/dist/cli/index.js +785 -28
- package/dist/contracts.js +7 -2
- package/dist/index.js +22 -8
- package/dist/mcp/index.js +17 -3
- package/dist/mcp.js +7 -2
- package/dist/project-registration.js +7 -2
- package/dist/registry.js +7 -2
- package/dist/release-provenance.json +5 -5
- package/dist/server/index.js +81 -67
- package/dist/task-manifest/plan-slug.d.ts +11 -0
- package/dist/task-manifest/plan-slug.d.ts.map +1 -0
- package/dist/task-manifest/postgres.d.ts.map +1 -1
- package/dist/task-manifest/sqlite.d.ts.map +1 -1
- package/dist/task-manifest.js +9 -3
- package/package.json +7 -2
package/dist/contracts.js
CHANGED
|
@@ -12658,7 +12658,7 @@ var init_tasks = __esm(() => {
|
|
|
12658
12658
|
// package.json
|
|
12659
12659
|
var package_default = {
|
|
12660
12660
|
name: "@hasna/todos",
|
|
12661
|
-
version: "0.15.
|
|
12661
|
+
version: "0.15.26",
|
|
12662
12662
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
12663
12663
|
type: "module",
|
|
12664
12664
|
main: "dist/index.js",
|
|
@@ -12707,7 +12707,8 @@ var package_default = {
|
|
|
12707
12707
|
}
|
|
12708
12708
|
},
|
|
12709
12709
|
workspaces: [
|
|
12710
|
-
"dashboard"
|
|
12710
|
+
"dashboard",
|
|
12711
|
+
"ai"
|
|
12711
12712
|
],
|
|
12712
12713
|
files: [
|
|
12713
12714
|
"dist",
|
|
@@ -12730,6 +12731,8 @@ var package_default = {
|
|
|
12730
12731
|
"dev:serve": "bun run src/server/index.ts",
|
|
12731
12732
|
"verify:release": "bun run scripts/verify-public-release.ts --mode=review",
|
|
12732
12733
|
"verify:release-review": "bun run scripts/verify-npm-release-agent-review.ts",
|
|
12734
|
+
"verify:attested-container-candidate": "bun run scripts/attested-container-candidate.ts verify",
|
|
12735
|
+
"test:attested-container-candidate": "bun test scripts/attested-container-candidate.test.ts",
|
|
12733
12736
|
"issue:release-review": "bun run scripts/issue-npm-release-agent-review.ts",
|
|
12734
12737
|
prepublishOnly: "bun run scripts/verify-public-release.ts --mode=publish",
|
|
12735
12738
|
postinstall: "mkdir -p $HOME/.hasna/todos $HOME/.hasna/todos/training 2>/dev/null || true"
|
|
@@ -12776,12 +12779,14 @@ var package_default = {
|
|
|
12776
12779
|
zod: "^3.24.2"
|
|
12777
12780
|
},
|
|
12778
12781
|
overrides: {
|
|
12782
|
+
ajv: "8.20.0",
|
|
12779
12783
|
"fast-uri": "3.1.2"
|
|
12780
12784
|
},
|
|
12781
12785
|
devDependencies: {
|
|
12782
12786
|
"@types/bun": "^1.2.4",
|
|
12783
12787
|
"@types/react": "^18.3.18",
|
|
12784
12788
|
"bun-types": "1.3.9",
|
|
12789
|
+
"hasna-deployment-contracts": "npm:@hasna/contracts@0.10.4",
|
|
12785
12790
|
typescript: "^5.7.3"
|
|
12786
12791
|
}
|
|
12787
12792
|
};
|
package/dist/index.js
CHANGED
|
@@ -12771,7 +12771,7 @@ var init_dispatches = __esm(() => {
|
|
|
12771
12771
|
// package.json
|
|
12772
12772
|
var package_default = {
|
|
12773
12773
|
name: "@hasna/todos",
|
|
12774
|
-
version: "0.15.
|
|
12774
|
+
version: "0.15.26",
|
|
12775
12775
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
12776
12776
|
type: "module",
|
|
12777
12777
|
main: "dist/index.js",
|
|
@@ -12820,7 +12820,8 @@ var package_default = {
|
|
|
12820
12820
|
}
|
|
12821
12821
|
},
|
|
12822
12822
|
workspaces: [
|
|
12823
|
-
"dashboard"
|
|
12823
|
+
"dashboard",
|
|
12824
|
+
"ai"
|
|
12824
12825
|
],
|
|
12825
12826
|
files: [
|
|
12826
12827
|
"dist",
|
|
@@ -12843,6 +12844,8 @@ var package_default = {
|
|
|
12843
12844
|
"dev:serve": "bun run src/server/index.ts",
|
|
12844
12845
|
"verify:release": "bun run scripts/verify-public-release.ts --mode=review",
|
|
12845
12846
|
"verify:release-review": "bun run scripts/verify-npm-release-agent-review.ts",
|
|
12847
|
+
"verify:attested-container-candidate": "bun run scripts/attested-container-candidate.ts verify",
|
|
12848
|
+
"test:attested-container-candidate": "bun test scripts/attested-container-candidate.test.ts",
|
|
12846
12849
|
"issue:release-review": "bun run scripts/issue-npm-release-agent-review.ts",
|
|
12847
12850
|
prepublishOnly: "bun run scripts/verify-public-release.ts --mode=publish",
|
|
12848
12851
|
postinstall: "mkdir -p $HOME/.hasna/todos $HOME/.hasna/todos/training 2>/dev/null || true"
|
|
@@ -12889,12 +12892,14 @@ var package_default = {
|
|
|
12889
12892
|
zod: "^3.24.2"
|
|
12890
12893
|
},
|
|
12891
12894
|
overrides: {
|
|
12895
|
+
ajv: "8.20.0",
|
|
12892
12896
|
"fast-uri": "3.1.2"
|
|
12893
12897
|
},
|
|
12894
12898
|
devDependencies: {
|
|
12895
12899
|
"@types/bun": "^1.2.4",
|
|
12896
12900
|
"@types/react": "^18.3.18",
|
|
12897
12901
|
"bun-types": "1.3.9",
|
|
12902
|
+
"hasna-deployment-contracts": "npm:@hasna/contracts@0.10.4",
|
|
12898
12903
|
typescript: "^5.7.3"
|
|
12899
12904
|
}
|
|
12900
12905
|
};
|
|
@@ -40423,6 +40428,12 @@ function parseTodosTaskManifestBindingLookup(input) {
|
|
|
40423
40428
|
return parsed.data;
|
|
40424
40429
|
}
|
|
40425
40430
|
|
|
40431
|
+
// src/task-manifest/plan-slug.ts
|
|
40432
|
+
function taskManifestPlanSlug(manifest, planId) {
|
|
40433
|
+
const base = normalizeSlug(manifest.plan.key) || normalizeSlug(manifest.plan.name) || "plan";
|
|
40434
|
+
return `${base}-${planId}`;
|
|
40435
|
+
}
|
|
40436
|
+
|
|
40426
40437
|
// src/task-manifest/backend.ts
|
|
40427
40438
|
var UUID_PATTERN2 = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
40428
40439
|
function validateTaskManifestBindingLookupRows(rows, tenantId, planId) {
|
|
@@ -40773,7 +40784,7 @@ class SqliteTodosTaskManifestBackend {
|
|
|
40773
40784
|
}
|
|
40774
40785
|
}
|
|
40775
40786
|
this.db.query(`INSERT INTO plans (id, project_id, name, description, status, task_list_id, slug, created_at, updated_at)
|
|
40776
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(input.graph.plan_id, manifest.project_id, manifest.plan.name, manifest.plan.description ?? null, manifest.plan.status ?? "active", manifest.task_list_id ?? null,
|
|
40787
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(input.graph.plan_id, manifest.project_id, manifest.plan.name, manifest.plan.description ?? null, manifest.plan.status ?? "active", manifest.task_list_id ?? null, taskManifestPlanSlug(manifest, input.graph.plan_id), input.now, input.now);
|
|
40777
40788
|
fault(faults, "after_plan_write");
|
|
40778
40789
|
for (const task3 of manifest.tasks) {
|
|
40779
40790
|
const taskId = input.graph.task_ids[task3.key];
|
|
@@ -40996,7 +41007,7 @@ class SqliteTodosTaskManifestBackend {
|
|
|
40996
41007
|
throw new TodosTaskManifestError("TODOS_TASK_MANIFEST_COMPENSATION_REFUSED", "Compensation refused: graph changed since apply", { actualReadback });
|
|
40997
41008
|
}
|
|
40998
41009
|
const plan = this.db.query("SELECT project_id, name, description, status, task_list_id, slug FROM plans WHERE id = ? LIMIT 1").get(applyResult.graph.plan_id);
|
|
40999
|
-
if (!plan || plan["project_id"] !== manifest.project_id || plan["name"] !== manifest.plan.name || plan["description"] !== (manifest.plan.description ?? null) || plan["status"] !== (manifest.plan.status ?? "active") || plan["task_list_id"] !== (manifest.task_list_id ?? null) || plan["slug"] !==
|
|
41010
|
+
if (!plan || plan["project_id"] !== manifest.project_id || plan["name"] !== manifest.plan.name || plan["description"] !== (manifest.plan.description ?? null) || plan["status"] !== (manifest.plan.status ?? "active") || plan["task_list_id"] !== (manifest.task_list_id ?? null) || plan["slug"] !== taskManifestPlanSlug(manifest, applyResult.graph.plan_id)) {
|
|
41000
41011
|
throw new TodosTaskManifestError("TODOS_TASK_MANIFEST_COMPENSATION_REFUSED", "Compensation refused: plan changed since apply");
|
|
41001
41012
|
}
|
|
41002
41013
|
for (const task3 of manifest.tasks) {
|
|
@@ -41194,7 +41205,7 @@ function taskPayload2(manifest, task3, taskId, planId, now4) {
|
|
|
41194
41205
|
function planPayload(input) {
|
|
41195
41206
|
return {
|
|
41196
41207
|
id: input.graph.plan_id,
|
|
41197
|
-
slug:
|
|
41208
|
+
slug: taskManifestPlanSlug(input.manifest, input.graph.plan_id),
|
|
41198
41209
|
project_id: input.manifest.project_id,
|
|
41199
41210
|
task_list_id: input.manifest.task_list_id ?? null,
|
|
41200
41211
|
agent_id: null,
|
|
@@ -43178,11 +43189,14 @@ function resolveAdapter(options) {
|
|
|
43178
43189
|
const client = getTodosCloudClient(options.env);
|
|
43179
43190
|
return client ? createHttpTodosAiReadAdapter(client) : createLocalTodosAiReadAdapter(options.database);
|
|
43180
43191
|
}
|
|
43181
|
-
function resolvePermission(options) {
|
|
43192
|
+
function resolvePermission(options, profile) {
|
|
43182
43193
|
if (options.workspacePermission)
|
|
43183
43194
|
return options.workspacePermission;
|
|
43184
43195
|
const path = options.workspacePath ?? process.cwd();
|
|
43185
|
-
return (permission) =>
|
|
43196
|
+
return (permission, tool) => {
|
|
43197
|
+
const check = checkWorkspacePermission({ path, tool: permission });
|
|
43198
|
+
return check.allowed || profile === "minimal" && tool === "get_task" && permission === "read" && check.status.matched_root === null && check.status.profile.preset === "restricted";
|
|
43199
|
+
};
|
|
43186
43200
|
}
|
|
43187
43201
|
function configuredProfileIsKnown(value) {
|
|
43188
43202
|
if (value === undefined || value.trim() === "")
|
|
@@ -43194,7 +43208,7 @@ function createTodosAiToolSource(options = {}) {
|
|
|
43194
43208
|
const adapter = resolveAdapter(options);
|
|
43195
43209
|
const configuredProfile = options.env ? options.env["TODOS_PROFILE"] : process.env["TODOS_PROFILE"];
|
|
43196
43210
|
const profile = options.accessProfile ?? resolveAccessProfile(configuredProfile ?? "minimal");
|
|
43197
|
-
const permission = resolvePermission(options);
|
|
43211
|
+
const permission = resolvePermission(options, profile);
|
|
43198
43212
|
const enabled = new Set(TODOS_AI_READ_TOOL_NAMES.filter((name) => shouldRegisterToolForProfile2(name, profile) && permission(name === "get_task" ? "read" : "list", name)));
|
|
43199
43213
|
const hostAllowsUpdate = (options.accessProfile !== undefined || configuredProfileIsKnown(configuredProfile)) && shouldRegisterToolForProfile2("update_task", profile) && permission("write", "update_task");
|
|
43200
43214
|
const approvalVerifier = options.approvalVerifier ?? adapter.verifyApproval;
|
package/dist/mcp/index.js
CHANGED
|
@@ -35803,7 +35803,7 @@ var package_default;
|
|
|
35803
35803
|
var init_package = __esm(() => {
|
|
35804
35804
|
package_default = {
|
|
35805
35805
|
name: "@hasna/todos",
|
|
35806
|
-
version: "0.15.
|
|
35806
|
+
version: "0.15.26",
|
|
35807
35807
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
35808
35808
|
type: "module",
|
|
35809
35809
|
main: "dist/index.js",
|
|
@@ -35852,7 +35852,8 @@ var init_package = __esm(() => {
|
|
|
35852
35852
|
}
|
|
35853
35853
|
},
|
|
35854
35854
|
workspaces: [
|
|
35855
|
-
"dashboard"
|
|
35855
|
+
"dashboard",
|
|
35856
|
+
"ai"
|
|
35856
35857
|
],
|
|
35857
35858
|
files: [
|
|
35858
35859
|
"dist",
|
|
@@ -35875,6 +35876,8 @@ var init_package = __esm(() => {
|
|
|
35875
35876
|
"dev:serve": "bun run src/server/index.ts",
|
|
35876
35877
|
"verify:release": "bun run scripts/verify-public-release.ts --mode=review",
|
|
35877
35878
|
"verify:release-review": "bun run scripts/verify-npm-release-agent-review.ts",
|
|
35879
|
+
"verify:attested-container-candidate": "bun run scripts/attested-container-candidate.ts verify",
|
|
35880
|
+
"test:attested-container-candidate": "bun test scripts/attested-container-candidate.test.ts",
|
|
35878
35881
|
"issue:release-review": "bun run scripts/issue-npm-release-agent-review.ts",
|
|
35879
35882
|
prepublishOnly: "bun run scripts/verify-public-release.ts --mode=publish",
|
|
35880
35883
|
postinstall: "mkdir -p $HOME/.hasna/todos $HOME/.hasna/todos/training 2>/dev/null || true"
|
|
@@ -35921,12 +35924,14 @@ var init_package = __esm(() => {
|
|
|
35921
35924
|
zod: "^3.24.2"
|
|
35922
35925
|
},
|
|
35923
35926
|
overrides: {
|
|
35927
|
+
ajv: "8.20.0",
|
|
35924
35928
|
"fast-uri": "3.1.2"
|
|
35925
35929
|
},
|
|
35926
35930
|
devDependencies: {
|
|
35927
35931
|
"@types/bun": "^1.2.4",
|
|
35928
35932
|
"@types/react": "^18.3.18",
|
|
35929
35933
|
"bun-types": "1.3.9",
|
|
35934
|
+
"hasna-deployment-contracts": "npm:@hasna/contracts@0.10.4",
|
|
35930
35935
|
typescript: "^5.7.3"
|
|
35931
35936
|
}
|
|
35932
35937
|
};
|
|
@@ -51825,6 +51830,13 @@ var init_schema2 = __esm(() => {
|
|
|
51825
51830
|
}).strict();
|
|
51826
51831
|
});
|
|
51827
51832
|
|
|
51833
|
+
// src/task-manifest/plan-slug.ts
|
|
51834
|
+
function taskManifestPlanSlug(manifest, planId) {
|
|
51835
|
+
const base = normalizeSlug(manifest.plan.key) || normalizeSlug(manifest.plan.name) || "plan";
|
|
51836
|
+
return `${base}-${planId}`;
|
|
51837
|
+
}
|
|
51838
|
+
var init_plan_slug = () => {};
|
|
51839
|
+
|
|
51828
51840
|
// src/task-manifest/backend.ts
|
|
51829
51841
|
function validateTaskManifestBindingLookupRows(rows, tenantId, planId) {
|
|
51830
51842
|
if (rows.length === 0) {
|
|
@@ -51961,6 +51973,7 @@ function postgresTodosTaskManifestSchemaSql(tenantId = "default") {
|
|
|
51961
51973
|
var sqliteTails;
|
|
51962
51974
|
var init_sqlite2 = __esm(() => {
|
|
51963
51975
|
init_canonical();
|
|
51976
|
+
init_plan_slug();
|
|
51964
51977
|
init_backend();
|
|
51965
51978
|
init_types5();
|
|
51966
51979
|
sqliteTails = new WeakMap;
|
|
@@ -52061,7 +52074,7 @@ function taskPayload2(manifest, task3, taskId, planId, now4) {
|
|
|
52061
52074
|
function planPayload(input) {
|
|
52062
52075
|
return {
|
|
52063
52076
|
id: input.graph.plan_id,
|
|
52064
|
-
slug:
|
|
52077
|
+
slug: taskManifestPlanSlug(input.manifest, input.graph.plan_id),
|
|
52065
52078
|
project_id: input.manifest.project_id,
|
|
52066
52079
|
task_list_id: input.manifest.task_list_id ?? null,
|
|
52067
52080
|
agent_id: null,
|
|
@@ -52610,6 +52623,7 @@ class PostgresTodosTaskManifestBackend {
|
|
|
52610
52623
|
}
|
|
52611
52624
|
var init_postgres3 = __esm(() => {
|
|
52612
52625
|
init_canonical();
|
|
52626
|
+
init_plan_slug();
|
|
52613
52627
|
init_backend();
|
|
52614
52628
|
init_postgres_sync();
|
|
52615
52629
|
init_types5();
|
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.26",
|
|
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",
|
|
@@ -90,7 +90,8 @@ var package_default = {
|
|
|
90
90
|
}
|
|
91
91
|
},
|
|
92
92
|
workspaces: [
|
|
93
|
-
"dashboard"
|
|
93
|
+
"dashboard",
|
|
94
|
+
"ai"
|
|
94
95
|
],
|
|
95
96
|
files: [
|
|
96
97
|
"dist",
|
|
@@ -113,6 +114,8 @@ var package_default = {
|
|
|
113
114
|
"dev:serve": "bun run src/server/index.ts",
|
|
114
115
|
"verify:release": "bun run scripts/verify-public-release.ts --mode=review",
|
|
115
116
|
"verify:release-review": "bun run scripts/verify-npm-release-agent-review.ts",
|
|
117
|
+
"verify:attested-container-candidate": "bun run scripts/attested-container-candidate.ts verify",
|
|
118
|
+
"test:attested-container-candidate": "bun test scripts/attested-container-candidate.test.ts",
|
|
116
119
|
"issue:release-review": "bun run scripts/issue-npm-release-agent-review.ts",
|
|
117
120
|
prepublishOnly: "bun run scripts/verify-public-release.ts --mode=publish",
|
|
118
121
|
postinstall: "mkdir -p $HOME/.hasna/todos $HOME/.hasna/todos/training 2>/dev/null || true"
|
|
@@ -159,12 +162,14 @@ var package_default = {
|
|
|
159
162
|
zod: "^3.24.2"
|
|
160
163
|
},
|
|
161
164
|
overrides: {
|
|
165
|
+
ajv: "8.20.0",
|
|
162
166
|
"fast-uri": "3.1.2"
|
|
163
167
|
},
|
|
164
168
|
devDependencies: {
|
|
165
169
|
"@types/bun": "^1.2.4",
|
|
166
170
|
"@types/react": "^18.3.18",
|
|
167
171
|
"bun-types": "1.3.9",
|
|
172
|
+
"hasna-deployment-contracts": "npm:@hasna/contracts@0.10.4",
|
|
168
173
|
typescript: "^5.7.3"
|
|
169
174
|
}
|
|
170
175
|
};
|
|
@@ -12661,7 +12661,7 @@ import { createHash as createHash6 } from "crypto";
|
|
|
12661
12661
|
// package.json
|
|
12662
12662
|
var package_default = {
|
|
12663
12663
|
name: "@hasna/todos",
|
|
12664
|
-
version: "0.15.
|
|
12664
|
+
version: "0.15.26",
|
|
12665
12665
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
12666
12666
|
type: "module",
|
|
12667
12667
|
main: "dist/index.js",
|
|
@@ -12710,7 +12710,8 @@ var package_default = {
|
|
|
12710
12710
|
}
|
|
12711
12711
|
},
|
|
12712
12712
|
workspaces: [
|
|
12713
|
-
"dashboard"
|
|
12713
|
+
"dashboard",
|
|
12714
|
+
"ai"
|
|
12714
12715
|
],
|
|
12715
12716
|
files: [
|
|
12716
12717
|
"dist",
|
|
@@ -12733,6 +12734,8 @@ var package_default = {
|
|
|
12733
12734
|
"dev:serve": "bun run src/server/index.ts",
|
|
12734
12735
|
"verify:release": "bun run scripts/verify-public-release.ts --mode=review",
|
|
12735
12736
|
"verify:release-review": "bun run scripts/verify-npm-release-agent-review.ts",
|
|
12737
|
+
"verify:attested-container-candidate": "bun run scripts/attested-container-candidate.ts verify",
|
|
12738
|
+
"test:attested-container-candidate": "bun test scripts/attested-container-candidate.test.ts",
|
|
12736
12739
|
"issue:release-review": "bun run scripts/issue-npm-release-agent-review.ts",
|
|
12737
12740
|
prepublishOnly: "bun run scripts/verify-public-release.ts --mode=publish",
|
|
12738
12741
|
postinstall: "mkdir -p $HOME/.hasna/todos $HOME/.hasna/todos/training 2>/dev/null || true"
|
|
@@ -12779,12 +12782,14 @@ var package_default = {
|
|
|
12779
12782
|
zod: "^3.24.2"
|
|
12780
12783
|
},
|
|
12781
12784
|
overrides: {
|
|
12785
|
+
ajv: "8.20.0",
|
|
12782
12786
|
"fast-uri": "3.1.2"
|
|
12783
12787
|
},
|
|
12784
12788
|
devDependencies: {
|
|
12785
12789
|
"@types/bun": "^1.2.4",
|
|
12786
12790
|
"@types/react": "^18.3.18",
|
|
12787
12791
|
"bun-types": "1.3.9",
|
|
12792
|
+
"hasna-deployment-contracts": "npm:@hasna/contracts@0.10.4",
|
|
12788
12793
|
typescript: "^5.7.3"
|
|
12789
12794
|
}
|
|
12790
12795
|
};
|
package/dist/registry.js
CHANGED
|
@@ -12658,7 +12658,7 @@ var init_tasks = __esm(() => {
|
|
|
12658
12658
|
// package.json
|
|
12659
12659
|
var package_default = {
|
|
12660
12660
|
name: "@hasna/todos",
|
|
12661
|
-
version: "0.15.
|
|
12661
|
+
version: "0.15.26",
|
|
12662
12662
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
12663
12663
|
type: "module",
|
|
12664
12664
|
main: "dist/index.js",
|
|
@@ -12707,7 +12707,8 @@ var package_default = {
|
|
|
12707
12707
|
}
|
|
12708
12708
|
},
|
|
12709
12709
|
workspaces: [
|
|
12710
|
-
"dashboard"
|
|
12710
|
+
"dashboard",
|
|
12711
|
+
"ai"
|
|
12711
12712
|
],
|
|
12712
12713
|
files: [
|
|
12713
12714
|
"dist",
|
|
@@ -12730,6 +12731,8 @@ var package_default = {
|
|
|
12730
12731
|
"dev:serve": "bun run src/server/index.ts",
|
|
12731
12732
|
"verify:release": "bun run scripts/verify-public-release.ts --mode=review",
|
|
12732
12733
|
"verify:release-review": "bun run scripts/verify-npm-release-agent-review.ts",
|
|
12734
|
+
"verify:attested-container-candidate": "bun run scripts/attested-container-candidate.ts verify",
|
|
12735
|
+
"test:attested-container-candidate": "bun test scripts/attested-container-candidate.test.ts",
|
|
12733
12736
|
"issue:release-review": "bun run scripts/issue-npm-release-agent-review.ts",
|
|
12734
12737
|
prepublishOnly: "bun run scripts/verify-public-release.ts --mode=publish",
|
|
12735
12738
|
postinstall: "mkdir -p $HOME/.hasna/todos $HOME/.hasna/todos/training 2>/dev/null || true"
|
|
@@ -12776,12 +12779,14 @@ var package_default = {
|
|
|
12776
12779
|
zod: "^3.24.2"
|
|
12777
12780
|
},
|
|
12778
12781
|
overrides: {
|
|
12782
|
+
ajv: "8.20.0",
|
|
12779
12783
|
"fast-uri": "3.1.2"
|
|
12780
12784
|
},
|
|
12781
12785
|
devDependencies: {
|
|
12782
12786
|
"@types/bun": "^1.2.4",
|
|
12783
12787
|
"@types/react": "^18.3.18",
|
|
12784
12788
|
"bun-types": "1.3.9",
|
|
12789
|
+
"hasna-deployment-contracts": "npm:@hasna/contracts@0.10.4",
|
|
12785
12790
|
typescript: "^5.7.3"
|
|
12786
12791
|
}
|
|
12787
12792
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"packageName": "@hasna/todos",
|
|
3
|
-
"packageVersion": "0.15.
|
|
3
|
+
"packageVersion": "0.15.26",
|
|
4
4
|
"repository": "https://github.com/hasna/todos.git",
|
|
5
|
-
"gitCommit": "
|
|
6
|
-
"gitTree": "
|
|
7
|
-
"sourceTreeSha256": "
|
|
8
|
-
"generatedAt": "2026-08-
|
|
5
|
+
"gitCommit": "34751c1061a1947a6744a6258edc3a35e2c44e5f",
|
|
6
|
+
"gitTree": "c475638e8e15e320c77788bb801751180b96360a",
|
|
7
|
+
"sourceTreeSha256": "86687d0033f4f9f66be50d537891bbf47cfeee33518b064df796d1c04b42c987",
|
|
8
|
+
"generatedAt": "2026-08-10T21:23:08.000Z"
|
|
9
9
|
}
|