@hasna/todos 0.15.5 → 0.15.7
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/commands/task-commands.d.ts.map +1 -1
- package/dist/cli/index.js +3086 -1332
- package/dist/contracts.js +213 -3
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1950 -26
- package/dist/lib/comment-cursor.d.ts +40 -0
- package/dist/lib/comment-cursor.d.ts.map +1 -0
- package/dist/mcp/index.js +2096 -391
- package/dist/mcp.js +7 -3
- package/dist/project-registration/authority.d.ts +45 -0
- package/dist/project-registration/authority.d.ts.map +1 -0
- package/dist/project-registration/backend.d.ts +83 -0
- package/dist/project-registration/backend.d.ts.map +1 -0
- package/dist/project-registration/http.d.ts +24 -0
- package/dist/project-registration/http.d.ts.map +1 -0
- package/dist/project-registration/index.d.ts +8 -0
- package/dist/project-registration/index.d.ts.map +1 -0
- package/dist/project-registration/postgres.d.ts +30 -0
- package/dist/project-registration/postgres.d.ts.map +1 -0
- package/dist/project-registration/schema.d.ts +3 -0
- package/dist/project-registration/schema.d.ts.map +1 -0
- package/dist/project-registration/sqlite.d.ts +17 -0
- package/dist/project-registration/sqlite.d.ts.map +1 -0
- package/dist/project-registration/types.d.ts +155 -0
- package/dist/project-registration/types.d.ts.map +1 -0
- package/dist/project-registration.d.ts +2 -0
- package/dist/project-registration.d.ts.map +1 -0
- package/dist/project-registration.js +17689 -0
- package/dist/registry.d.ts +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +220 -3
- package/dist/release-provenance.json +5 -5
- package/dist/server/cloud.d.ts +3 -0
- package/dist/server/cloud.d.ts.map +1 -1
- package/dist/server/index.js +4386 -2681
- package/dist/server/v1.d.ts +2 -1
- package/dist/server/v1.d.ts.map +1 -1
- package/dist/storage.js +206 -0
- package/package.json +7 -3
package/dist/registry.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export interface TodosPackageSource {
|
|
|
12
12
|
version: string;
|
|
13
13
|
}
|
|
14
14
|
export interface TodosPackageExportContract {
|
|
15
|
-
subpath: "." | "./sdk" | "./mcp" | "./registry" | "./contracts" | "./storage" | "./testing";
|
|
15
|
+
subpath: "." | "./sdk" | "./mcp" | "./registry" | "./contracts" | "./storage" | "./testing" | "./project-registration";
|
|
16
16
|
import: string;
|
|
17
17
|
types: string;
|
|
18
18
|
description: string;
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAG7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,cAAc,CAAC;IAC5B,UAAU,EAAE,aAAa,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAG7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,cAAc,CAAC;IAC5B,UAAU,EAAE,aAAa,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EACH,GAAG,GACH,OAAO,GACP,OAAO,GACP,YAAY,GACZ,aAAa,GACb,WAAW,GACX,WAAW,GACX,wBAAwB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,CAAC,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,oBAAoB,EAAE,wBAAwB,CAAC;IAC/C,YAAY,EAAE,uBAAuB,CAAC;IACtC,SAAS,EAAE,sBAAsB,CAAC;IAClC,GAAG,EAAE,gBAAgB,CAAC;IACtB,YAAY,EAAE,yBAAyB,CAAC;CACzC;AAED,eAAO,MAAM,qBAAqB,EAAE,0BAA0B,EAyD7D,CAAC;AAUF,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,aAAa,CAc3F;AAED,eAAO,MAAM,cAAc,eAEzB,CAAC"}
|
package/dist/registry.js
CHANGED
|
@@ -39,6 +39,206 @@ var __export = (target, all) => {
|
|
|
39
39
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
40
40
|
var __require = import.meta.require;
|
|
41
41
|
|
|
42
|
+
// src/project-registration/schema.ts
|
|
43
|
+
function sqliteTodosProjectRegistrationSchemaSql() {
|
|
44
|
+
return `
|
|
45
|
+
CREATE TABLE IF NOT EXISTS todos_project_registration_receipts (
|
|
46
|
+
receipt_id TEXT PRIMARY KEY,
|
|
47
|
+
authority TEXT NOT NULL CHECK(authority = 'todos'),
|
|
48
|
+
route TEXT NOT NULL,
|
|
49
|
+
package_version TEXT NOT NULL,
|
|
50
|
+
authority_id TEXT NOT NULL,
|
|
51
|
+
tenant_id TEXT NOT NULL,
|
|
52
|
+
corpus_id TEXT NOT NULL,
|
|
53
|
+
operation_id TEXT NOT NULL,
|
|
54
|
+
step_id TEXT NOT NULL,
|
|
55
|
+
resource_kind TEXT NOT NULL CHECK(resource_kind IN ('project', 'task_list')),
|
|
56
|
+
direction TEXT NOT NULL CHECK(direction IN ('forward', 'inverse')),
|
|
57
|
+
target_selector TEXT NOT NULL,
|
|
58
|
+
idempotency_key TEXT NOT NULL,
|
|
59
|
+
request_digest TEXT NOT NULL,
|
|
60
|
+
precondition_digest TEXT NOT NULL,
|
|
61
|
+
normalized_call_digest TEXT NOT NULL,
|
|
62
|
+
outcome TEXT NOT NULL CHECK(outcome IN (
|
|
63
|
+
'accepted', 'duplicate_of_accepted', 'terminal_nonacceptance'
|
|
64
|
+
)),
|
|
65
|
+
reason TEXT,
|
|
66
|
+
target_id TEXT,
|
|
67
|
+
result_revision TEXT,
|
|
68
|
+
result_digest TEXT,
|
|
69
|
+
duplicate_of_receipt_id TEXT,
|
|
70
|
+
accepted_receipt_id TEXT,
|
|
71
|
+
created_by_operation INTEGER NOT NULL CHECK(created_by_operation IN (0, 1)),
|
|
72
|
+
created_at TEXT NOT NULL
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
CREATE INDEX IF NOT EXISTS idx_todos_project_registration_receipts_lookup
|
|
76
|
+
ON todos_project_registration_receipts (
|
|
77
|
+
authority_id, tenant_id, corpus_id, operation_id, step_id,
|
|
78
|
+
resource_kind, direction, idempotency_key
|
|
79
|
+
);
|
|
80
|
+
CREATE INDEX IF NOT EXISTS idx_todos_project_registration_receipts_step
|
|
81
|
+
ON todos_project_registration_receipts (
|
|
82
|
+
authority_id, tenant_id, corpus_id, operation_id, step_id,
|
|
83
|
+
resource_kind, direction, outcome
|
|
84
|
+
);
|
|
85
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_todos_project_registration_receipts_accepted_step
|
|
86
|
+
ON todos_project_registration_receipts (
|
|
87
|
+
authority_id, tenant_id, corpus_id, operation_id, step_id,
|
|
88
|
+
resource_kind, direction
|
|
89
|
+
)
|
|
90
|
+
WHERE outcome = 'accepted';
|
|
91
|
+
CREATE INDEX IF NOT EXISTS idx_todos_project_registration_receipts_target
|
|
92
|
+
ON todos_project_registration_receipts (
|
|
93
|
+
authority_id, tenant_id, corpus_id, resource_kind, target_id
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
CREATE TABLE IF NOT EXISTS todos_project_registration_bindings (
|
|
97
|
+
authority_id TEXT NOT NULL,
|
|
98
|
+
tenant_id TEXT NOT NULL,
|
|
99
|
+
corpus_id TEXT NOT NULL,
|
|
100
|
+
resource_kind TEXT NOT NULL CHECK(resource_kind IN ('project', 'task_list')),
|
|
101
|
+
target_selector TEXT NOT NULL,
|
|
102
|
+
operation_id TEXT NOT NULL,
|
|
103
|
+
step_id TEXT NOT NULL,
|
|
104
|
+
direction TEXT NOT NULL CHECK(direction = 'forward'),
|
|
105
|
+
idempotency_key TEXT NOT NULL,
|
|
106
|
+
request_digest TEXT NOT NULL,
|
|
107
|
+
precondition_digest TEXT NOT NULL,
|
|
108
|
+
normalized_call_digest TEXT NOT NULL,
|
|
109
|
+
state TEXT NOT NULL CHECK(state IN (
|
|
110
|
+
'pending', 'accepted', 'terminal_nonacceptance', 'removed'
|
|
111
|
+
)),
|
|
112
|
+
target_id TEXT,
|
|
113
|
+
accepted_receipt_id TEXT,
|
|
114
|
+
result_revision TEXT,
|
|
115
|
+
result_digest TEXT,
|
|
116
|
+
removed_receipt_id TEXT,
|
|
117
|
+
created_at TEXT NOT NULL,
|
|
118
|
+
updated_at TEXT NOT NULL,
|
|
119
|
+
PRIMARY KEY(
|
|
120
|
+
authority_id, tenant_id, corpus_id, resource_kind, target_selector
|
|
121
|
+
),
|
|
122
|
+
UNIQUE(accepted_receipt_id)
|
|
123
|
+
);
|
|
124
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_todos_project_registration_binding_target
|
|
125
|
+
ON todos_project_registration_bindings(
|
|
126
|
+
authority_id, tenant_id, corpus_id, resource_kind, target_id
|
|
127
|
+
)
|
|
128
|
+
WHERE target_id IS NOT NULL;
|
|
129
|
+
|
|
130
|
+
CREATE TRIGGER IF NOT EXISTS todos_project_registration_receipts_immutable_update
|
|
131
|
+
BEFORE UPDATE ON todos_project_registration_receipts
|
|
132
|
+
BEGIN
|
|
133
|
+
SELECT RAISE(ABORT, 'todos project registration receipts are immutable');
|
|
134
|
+
END;
|
|
135
|
+
|
|
136
|
+
CREATE TRIGGER IF NOT EXISTS todos_project_registration_receipts_immutable_delete
|
|
137
|
+
BEFORE DELETE ON todos_project_registration_receipts
|
|
138
|
+
BEGIN
|
|
139
|
+
SELECT RAISE(ABORT, 'todos project registration receipts are immutable');
|
|
140
|
+
END;
|
|
141
|
+
`;
|
|
142
|
+
}
|
|
143
|
+
function postgresTodosProjectRegistrationSchemaSql() {
|
|
144
|
+
return [
|
|
145
|
+
`CREATE TABLE IF NOT EXISTS todos_project_registration_receipts (
|
|
146
|
+
receipt_id text PRIMARY KEY,
|
|
147
|
+
authority text NOT NULL CHECK(authority = 'todos'),
|
|
148
|
+
route text NOT NULL,
|
|
149
|
+
package_version text NOT NULL,
|
|
150
|
+
authority_id text NOT NULL,
|
|
151
|
+
tenant_id text NOT NULL,
|
|
152
|
+
corpus_id text NOT NULL,
|
|
153
|
+
operation_id text NOT NULL,
|
|
154
|
+
step_id text NOT NULL,
|
|
155
|
+
resource_kind text NOT NULL CHECK(resource_kind IN ('project', 'task_list')),
|
|
156
|
+
direction text NOT NULL CHECK(direction IN ('forward', 'inverse')),
|
|
157
|
+
target_selector text NOT NULL,
|
|
158
|
+
idempotency_key text NOT NULL,
|
|
159
|
+
request_digest text NOT NULL,
|
|
160
|
+
precondition_digest text NOT NULL,
|
|
161
|
+
normalized_call_digest text NOT NULL,
|
|
162
|
+
outcome text NOT NULL CHECK(outcome IN (
|
|
163
|
+
'accepted', 'duplicate_of_accepted', 'terminal_nonacceptance'
|
|
164
|
+
)),
|
|
165
|
+
reason text,
|
|
166
|
+
target_id text,
|
|
167
|
+
result_revision text,
|
|
168
|
+
result_digest text,
|
|
169
|
+
duplicate_of_receipt_id text,
|
|
170
|
+
accepted_receipt_id text,
|
|
171
|
+
created_by_operation boolean NOT NULL,
|
|
172
|
+
created_at timestamptz NOT NULL
|
|
173
|
+
)`,
|
|
174
|
+
`CREATE INDEX IF NOT EXISTS todos_project_registration_receipts_lookup_idx
|
|
175
|
+
ON todos_project_registration_receipts (
|
|
176
|
+
authority_id, tenant_id, corpus_id, operation_id, step_id,
|
|
177
|
+
resource_kind, direction, idempotency_key
|
|
178
|
+
)`,
|
|
179
|
+
`CREATE INDEX IF NOT EXISTS todos_project_registration_receipts_step_idx
|
|
180
|
+
ON todos_project_registration_receipts (
|
|
181
|
+
authority_id, tenant_id, corpus_id, operation_id, step_id,
|
|
182
|
+
resource_kind, direction, outcome
|
|
183
|
+
)`,
|
|
184
|
+
`CREATE UNIQUE INDEX IF NOT EXISTS todos_project_registration_receipts_accepted_step_uidx
|
|
185
|
+
ON todos_project_registration_receipts (
|
|
186
|
+
authority_id, tenant_id, corpus_id, operation_id, step_id,
|
|
187
|
+
resource_kind, direction
|
|
188
|
+
)
|
|
189
|
+
WHERE outcome = 'accepted'`,
|
|
190
|
+
`CREATE INDEX IF NOT EXISTS todos_project_registration_receipts_target_idx
|
|
191
|
+
ON todos_project_registration_receipts (
|
|
192
|
+
authority_id, tenant_id, corpus_id, resource_kind, target_id
|
|
193
|
+
)`,
|
|
194
|
+
`CREATE TABLE IF NOT EXISTS todos_project_registration_bindings (
|
|
195
|
+
authority_id text NOT NULL,
|
|
196
|
+
tenant_id text NOT NULL,
|
|
197
|
+
corpus_id text NOT NULL,
|
|
198
|
+
resource_kind text NOT NULL CHECK(resource_kind IN ('project', 'task_list')),
|
|
199
|
+
target_selector text NOT NULL,
|
|
200
|
+
operation_id text NOT NULL,
|
|
201
|
+
step_id text NOT NULL,
|
|
202
|
+
direction text NOT NULL CHECK(direction = 'forward'),
|
|
203
|
+
idempotency_key text NOT NULL,
|
|
204
|
+
request_digest text NOT NULL,
|
|
205
|
+
precondition_digest text NOT NULL,
|
|
206
|
+
normalized_call_digest text NOT NULL,
|
|
207
|
+
state text NOT NULL CHECK(state IN (
|
|
208
|
+
'pending', 'accepted', 'terminal_nonacceptance', 'removed'
|
|
209
|
+
)),
|
|
210
|
+
target_id text,
|
|
211
|
+
accepted_receipt_id text UNIQUE,
|
|
212
|
+
result_revision text,
|
|
213
|
+
result_digest text,
|
|
214
|
+
removed_receipt_id text,
|
|
215
|
+
created_at timestamptz NOT NULL,
|
|
216
|
+
updated_at timestamptz NOT NULL,
|
|
217
|
+
PRIMARY KEY(
|
|
218
|
+
authority_id, tenant_id, corpus_id, resource_kind, target_selector
|
|
219
|
+
)
|
|
220
|
+
)`,
|
|
221
|
+
`CREATE UNIQUE INDEX IF NOT EXISTS todos_project_registration_binding_target_uidx
|
|
222
|
+
ON todos_project_registration_bindings(
|
|
223
|
+
authority_id, tenant_id, corpus_id, resource_kind, target_id
|
|
224
|
+
)
|
|
225
|
+
WHERE target_id IS NOT NULL`,
|
|
226
|
+
`CREATE OR REPLACE FUNCTION todos_project_registration_receipts_immutable()
|
|
227
|
+
RETURNS trigger
|
|
228
|
+
LANGUAGE plpgsql
|
|
229
|
+
AS $$
|
|
230
|
+
BEGIN
|
|
231
|
+
RAISE EXCEPTION 'todos project registration receipts are immutable';
|
|
232
|
+
END;
|
|
233
|
+
$$`,
|
|
234
|
+
`DROP TRIGGER IF EXISTS todos_project_registration_receipts_immutable
|
|
235
|
+
ON todos_project_registration_receipts`,
|
|
236
|
+
`CREATE TRIGGER todos_project_registration_receipts_immutable
|
|
237
|
+
BEFORE UPDATE OR DELETE ON todos_project_registration_receipts
|
|
238
|
+
FOR EACH ROW EXECUTE FUNCTION todos_project_registration_receipts_immutable()`
|
|
239
|
+
];
|
|
240
|
+
}
|
|
241
|
+
|
|
42
242
|
// src/db/migrations.ts
|
|
43
243
|
var MIGRATIONS;
|
|
44
244
|
var init_migrations = __esm(() => {
|
|
@@ -1644,6 +1844,11 @@ var init_migrations = __esm(() => {
|
|
|
1644
1844
|
INSERT OR IGNORE INTO _migrations (id) VALUES (68);
|
|
1645
1845
|
COMMIT;
|
|
1646
1846
|
PRAGMA foreign_keys = ON;
|
|
1847
|
+
`,
|
|
1848
|
+
`BEGIN;
|
|
1849
|
+
${sqliteTodosProjectRegistrationSchemaSql()}
|
|
1850
|
+
INSERT OR IGNORE INTO _migrations (id) VALUES (69);
|
|
1851
|
+
COMMIT;
|
|
1647
1852
|
`
|
|
1648
1853
|
];
|
|
1649
1854
|
});
|
|
@@ -2846,6 +3051,7 @@ function ensureSchema(db) {
|
|
|
2846
3051
|
)`);
|
|
2847
3052
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_api_keys_prefix ON api_keys(prefix)");
|
|
2848
3053
|
ensureIndex("CREATE INDEX IF NOT EXISTS idx_api_keys_active ON api_keys(revoked_at, expires_at)");
|
|
3054
|
+
db.exec(sqliteTodosProjectRegistrationSchemaSql());
|
|
2849
3055
|
ensureTable("pr_groups", `
|
|
2850
3056
|
CREATE TABLE pr_groups (
|
|
2851
3057
|
schema_version INTEGER NOT NULL DEFAULT 1,
|
|
@@ -12044,7 +12250,7 @@ var init_tasks = __esm(() => {
|
|
|
12044
12250
|
// package.json
|
|
12045
12251
|
var package_default = {
|
|
12046
12252
|
name: "@hasna/todos",
|
|
12047
|
-
version: "0.15.
|
|
12253
|
+
version: "0.15.7",
|
|
12048
12254
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
12049
12255
|
type: "module",
|
|
12050
12256
|
main: "dist/index.js",
|
|
@@ -12082,6 +12288,10 @@ var package_default = {
|
|
|
12082
12288
|
"./testing": {
|
|
12083
12289
|
types: "./dist/testing.d.ts",
|
|
12084
12290
|
import: "./dist/testing.js"
|
|
12291
|
+
},
|
|
12292
|
+
"./project-registration": {
|
|
12293
|
+
types: "./dist/project-registration.d.ts",
|
|
12294
|
+
import: "./dist/project-registration.js"
|
|
12085
12295
|
}
|
|
12086
12296
|
},
|
|
12087
12297
|
workspaces: [
|
|
@@ -12094,8 +12304,8 @@ var package_default = {
|
|
|
12094
12304
|
"README.md"
|
|
12095
12305
|
],
|
|
12096
12306
|
scripts: {
|
|
12097
|
-
build: "rm -rf dist dashboard/dist && cd dashboard && bun install --frozen-lockfile && bun run build && cd .. && bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/server/index.ts --outdir dist/server --target bun && bun build src/sdk/index.ts --outdir dist/sdk --target bun --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/index.ts src/mcp.ts src/registry.ts src/contracts.ts src/storage.ts src/testing.ts --outdir dist --target bun --external '@hasna/contracts' --external '@hasna/contracts/*' && tsc --emitDeclarationOnly --outDir dist",
|
|
12098
|
-
"build:server": "rm -rf dist && bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/server/index.ts --outdir dist/server --target bun && bun build src/sdk/index.ts --outdir dist/sdk --target bun --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/index.ts src/mcp.ts src/registry.ts src/contracts.ts src/storage.ts src/testing.ts --outdir dist --target bun --external '@hasna/contracts' --external '@hasna/contracts/*'",
|
|
12307
|
+
build: "rm -rf dist dashboard/dist && cd dashboard && bun install --frozen-lockfile && bun run build && cd .. && bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/server/index.ts --outdir dist/server --target bun && bun build src/sdk/index.ts --outdir dist/sdk --target bun --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/index.ts src/mcp.ts src/registry.ts src/contracts.ts src/storage.ts src/testing.ts src/project-registration.ts --outdir dist --target bun --external '@hasna/contracts' --external '@hasna/contracts/*' && tsc --emitDeclarationOnly --outDir dist",
|
|
12308
|
+
"build:server": "rm -rf dist && bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/server/index.ts --outdir dist/server --target bun && bun build src/sdk/index.ts --outdir dist/sdk --target bun --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/index.ts src/mcp.ts src/registry.ts src/contracts.ts src/storage.ts src/testing.ts src/project-registration.ts --outdir dist --target bun --external '@hasna/contracts' --external '@hasna/contracts/*'",
|
|
12099
12309
|
migrate: "bun run src/server/index.ts migrate",
|
|
12100
12310
|
"backfill:comment-redaction": "bun run src/server/index.ts redact-comments",
|
|
12101
12311
|
"generate:sdk": "bun run scripts/generate-sdk.ts",
|
|
@@ -23738,6 +23948,13 @@ var TODOS_PACKAGE_EXPORTS = [
|
|
|
23738
23948
|
types: "./dist/testing.d.ts",
|
|
23739
23949
|
description: "Test-store isolation helpers that keep a consumer's test suite off a shared todos store.",
|
|
23740
23950
|
stability: "stable"
|
|
23951
|
+
},
|
|
23952
|
+
{
|
|
23953
|
+
subpath: "./project-registration",
|
|
23954
|
+
import: "./dist/project-registration.js",
|
|
23955
|
+
types: "./dist/project-registration.d.ts",
|
|
23956
|
+
description: "Conditional Projects-to-Todos project and task-list registration authority.",
|
|
23957
|
+
stability: "stable"
|
|
23741
23958
|
}
|
|
23742
23959
|
];
|
|
23743
23960
|
function source8(version) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"packageName": "@hasna/todos",
|
|
3
|
-
"packageVersion": "0.15.
|
|
3
|
+
"packageVersion": "0.15.7",
|
|
4
4
|
"repository": "https://github.com/hasna/todos.git",
|
|
5
|
-
"gitCommit": "
|
|
6
|
-
"gitTree": "
|
|
7
|
-
"sourceTreeSha256": "
|
|
8
|
-
"generatedAt": "2026-08-
|
|
5
|
+
"gitCommit": "6ef5eb2227291a359af981c83ef65de91095c0fb",
|
|
6
|
+
"gitTree": "bd69c321f9e9bad133ceb8651951b6249275f0ed",
|
|
7
|
+
"sourceTreeSha256": "66e3e6e675918a3270ba06abecb416fe9c028316f2c53d61e753f29d38855318",
|
|
8
|
+
"generatedAt": "2026-08-07T15:16:11.000Z"
|
|
9
9
|
}
|
package/dist/server/cloud.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { type ApiKeyVerifier } from "@hasna/contracts/auth";
|
|
|
12
12
|
import { ApiKeyStore } from "@hasna/contracts/auth";
|
|
13
13
|
import type { TodosStorageAdapter } from "../storage/interfaces.js";
|
|
14
14
|
import { PrGroupLedger } from "../pr-groups/ledger.js";
|
|
15
|
+
import { type TodosProjectRegistrationAuthority } from "../project-registration/index.js";
|
|
15
16
|
import { type CommentRedactionBackfillOptions, type CommentRedactionBackfillResult } from "../storage/comment-redaction-backfill.js";
|
|
16
17
|
export declare const TODOS_APP_SLUG = "todos";
|
|
17
18
|
/** Resolve the remote DATABASE_URL from the supported env vars (in priority order). */
|
|
@@ -31,6 +32,8 @@ export declare function isCloudModeEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
|
31
32
|
export declare function getCloudStorageAdapter(): TodosStorageAdapter;
|
|
32
33
|
/** Transactionally fenced PR-group ledger backed by dedicated Postgres rows. */
|
|
33
34
|
export declare function getCloudPrGroupLedger(): PrGroupLedger;
|
|
35
|
+
/** Conditional singleton Projects → Todos registration authority on Postgres. */
|
|
36
|
+
export declare function getCloudProjectRegistrationAuthority(): TodosProjectRegistrationAuthority;
|
|
34
37
|
export declare function getApiKeyStore(): ApiKeyStore;
|
|
35
38
|
/**
|
|
36
39
|
* The framework-agnostic API-key verifier for `/v1`. Tokens are stateless,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/server/cloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAwB,MAAM,uBAAuB,CAAC;AAG1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/server/cloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAwB,MAAM,uBAAuB,CAAC;AAG1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKvD,OAAO,EAGL,KAAK,iCAAiC,EACvC,MAAM,kCAAkC,CAAC;AAQ1C,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACpC,MAAM,0CAA0C,CAAC;AAElD,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAOhG;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAO7F;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEzF;AAED,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEhF;AAsBD,4EAA4E;AAC5E,wBAAgB,sBAAsB,IAAI,mBAAmB,CAK5D;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,IAAI,aAAa,CAIrD;AAED,iFAAiF;AACjF,wBAAgB,oCAAoC,IAAI,iCAAiC,CAYxF;AAuBD,wBAAgB,cAAc,IAAI,WAAW,CAI5C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAejD;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBvD;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CAElE;AAED,uFAAuF;AACvF,wBAAsB,kCAAkC,IAAI,OAAO,CAAC,IAAI,CAAC,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAS9D;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,8BAA8B,CAAC,CAEzC;AAED,iEAAiE;AACjE,wBAAsB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAIlD;AAED,4BAA4B;AAC5B,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAShD"}
|