@hasna/todos 0.13.3 → 0.13.4
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 +43 -0
- package/dist/cli/cloud-router.d.ts.map +1 -1
- package/dist/cli/commands/agent-commands.d.ts.map +1 -1
- package/dist/cli/index.js +50 -10
- package/dist/contracts.js +1 -1
- package/dist/db/agent-names.d.ts +2 -1
- package/dist/db/agent-names.d.ts.map +1 -1
- package/dist/index.js +23 -9
- package/dist/lib/agent-name-normalize.d.ts +17 -0
- package/dist/lib/agent-name-normalize.d.ts.map +1 -0
- package/dist/mcp/index.js +39 -9
- package/dist/mcp.js +1 -1
- package/dist/registry.js +1 -1
- package/dist/release-provenance.json +5 -5
- package/dist/server/index.js +41 -11
- package/dist/storage/postgres-adapter.d.ts.map +1 -1
- package/dist/storage.js +22 -8
- package/package.json +1 -1
|
@@ -56,6 +56,49 @@ export interface TodosCliStorageModeResolution {
|
|
|
56
56
|
*/
|
|
57
57
|
export declare function resolveTodosCliStorageMode(env?: Env): TodosCliStorageModeResolution;
|
|
58
58
|
export declare function getTodosRemoteAuthorityConfigStatus(env?: Env): TodosRemoteAuthorityConfigStatus;
|
|
59
|
+
/** Accepts a mode token or throws. Injectable so both enum generations are testable. */
|
|
60
|
+
export type ModeNormalizer = (value: string) => unknown;
|
|
61
|
+
/**
|
|
62
|
+
* The token meaning "use the server" in the INSTALLED @hasna/contracts.
|
|
63
|
+
*
|
|
64
|
+
* This replaces a hardcoded `"cloud"` whose own comment said it "collapses when
|
|
65
|
+
* contracts lands the no-modes shape" — this is that collapse, done by deriving
|
|
66
|
+
* rather than by widening.
|
|
67
|
+
*
|
|
68
|
+
* Derived, never hardcoded, and that is load-bearing rather than tidy. The enum
|
|
69
|
+
* has already changed once and the two valid sets are DISJOINT: contracts
|
|
70
|
+
* <=0.8.5 accepts `cloud` plus the deprecated aliases and THROWS on
|
|
71
|
+
* `postgres`/`sqlite`; contracts after the placement-axis removal accepts ONLY
|
|
72
|
+
* `sqlite`/`postgres` and THROWS on everything else. A literal pinned here is a
|
|
73
|
+
* bet on which side of that change a machine is on, and the bet loses on one
|
|
74
|
+
* side or the other — and a todos CLI that cannot reach its own authority is
|
|
75
|
+
* how the fleet loses the ability to coordinate its own recovery.
|
|
76
|
+
*
|
|
77
|
+
* Probing goes through the library's own `normalizeStorageMode`, so the answer
|
|
78
|
+
* comes from the installed code rather than from our belief about it. It is the
|
|
79
|
+
* right discriminator precisely because it THROWS rather than returning a
|
|
80
|
+
* sentinel, which makes a try/catch probe exact instead of heuristic.
|
|
81
|
+
*
|
|
82
|
+
* SCOPE: this is the token handed to the contracts resolver. It is NOT the
|
|
83
|
+
* operator vocabulary — `VALID_STORAGE_MODES` still governs what a person may
|
|
84
|
+
* put in `HASNA_TODOS_STORAGE_MODE`, and that list is deliberately untouched
|
|
85
|
+
* here (tracked separately as todos b856fa08).
|
|
86
|
+
*/
|
|
87
|
+
export declare function serverStorageMode(normalize?: ModeNormalizer): string;
|
|
88
|
+
/**
|
|
89
|
+
* The env handed to the contracts resolver once the authority is known good.
|
|
90
|
+
*
|
|
91
|
+
* THREE keys, and only the first is this migration's business:
|
|
92
|
+
* - the storage mode, now DERIVED rather than the literal `"cloud"`
|
|
93
|
+
* - the API URL, with the `/v1` suffix stripped back off (the status object
|
|
94
|
+
* appends it; the client re-appends it, so it must not be doubled)
|
|
95
|
+
* - the API key, trimmed
|
|
96
|
+
* The URL rewrite and the key trim are orthogonal to the mode and are unchanged.
|
|
97
|
+
*
|
|
98
|
+
* Exported so the derived stamp is directly testable, rather than only
|
|
99
|
+
* observable through a constructed HTTP client.
|
|
100
|
+
*/
|
|
101
|
+
export declare function requireTodosRemoteAuthorityEnv(env: Env): Env;
|
|
59
102
|
/**
|
|
60
103
|
* Resolve the Todos HTTP storage client from the environment. Returns a ready
|
|
61
104
|
* client for an explicit remote mode, or `null` for local mode. A selected
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkDzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QA6erD"}
|
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.13.
|
|
2126
|
+
version: "0.13.4",
|
|
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",
|
|
@@ -4985,6 +4985,7 @@ var init_http_client = __esm(() => {
|
|
|
4985
4985
|
|
|
4986
4986
|
// src/cli/cloud-router.ts
|
|
4987
4987
|
import { resolveStorageClient } from "@hasna/contracts/client/storage";
|
|
4988
|
+
import { normalizeStorageMode } from "@hasna/contracts/mode";
|
|
4988
4989
|
import { resolve as resolvePath } from "path";
|
|
4989
4990
|
function cleanMode(value) {
|
|
4990
4991
|
const normalized = value?.trim().toLowerCase();
|
|
@@ -5106,13 +5107,27 @@ function getTodosRemoteAuthorityConfigStatus(env = process.env) {
|
|
|
5106
5107
|
local_fallback: false
|
|
5107
5108
|
};
|
|
5108
5109
|
}
|
|
5110
|
+
function serverStorageMode(normalize = normalizeStorageMode) {
|
|
5111
|
+
const useCache = normalize === normalizeStorageMode;
|
|
5112
|
+
if (useCache && cachedServerMode !== null)
|
|
5113
|
+
return cachedServerMode;
|
|
5114
|
+
for (const candidate of SERVER_MODE_CANDIDATES) {
|
|
5115
|
+
try {
|
|
5116
|
+
normalize(candidate);
|
|
5117
|
+
if (useCache)
|
|
5118
|
+
cachedServerMode = candidate;
|
|
5119
|
+
return candidate;
|
|
5120
|
+
} catch {}
|
|
5121
|
+
}
|
|
5122
|
+
throw new Error(`REMOTE_STORAGE_MODE_UNSUPPORTED: no known server storage mode is accepted by the installed ` + `@hasna/contracts (tried ${SERVER_MODE_CANDIDATES.join(", ")}); the storage-mode enum has changed. ` + `Add the new server token to SERVER_MODE_CANDIDATES in src/cli/cloud-router.ts; ` + `local SQLite fallback is disabled.`);
|
|
5123
|
+
}
|
|
5109
5124
|
function requireTodosRemoteAuthorityEnv(env) {
|
|
5110
5125
|
const status = getTodosRemoteAuthorityConfigStatus(env);
|
|
5111
5126
|
if (!status.ok)
|
|
5112
5127
|
throw new Error(status.issues[0]);
|
|
5113
5128
|
return {
|
|
5114
5129
|
...env,
|
|
5115
|
-
HASNA_TODOS_STORAGE_MODE:
|
|
5130
|
+
HASNA_TODOS_STORAGE_MODE: serverStorageMode(),
|
|
5116
5131
|
HASNA_TODOS_API_URL: status.v1_base_url.replace(/\/v1$/, ""),
|
|
5117
5132
|
HASNA_TODOS_API_KEY: env.HASNA_TODOS_API_KEY.trim()
|
|
5118
5133
|
};
|
|
@@ -6214,7 +6229,7 @@ async function cloudTimeline(client, options = {}) {
|
|
|
6214
6229
|
const limit = options.limit ?? 50;
|
|
6215
6230
|
return { entries: entries.slice(offset, offset + limit), total, limit, offset };
|
|
6216
6231
|
}
|
|
6217
|
-
var UUID_RE, TRANSPORT_TOKENS, COMPLETION_EVIDENCE_FIELDS, completionCapabilityCache, listTagsCapabilityCache, RELATION_HYDRATION_CONCURRENCY = 6, PRIORITY_RANK;
|
|
6232
|
+
var UUID_RE, TRANSPORT_TOKENS, COMPLETION_EVIDENCE_FIELDS, completionCapabilityCache, SERVER_MODE_CANDIDATES, cachedServerMode = null, listTagsCapabilityCache, RELATION_HYDRATION_CONCURRENCY = 6, PRIORITY_RANK;
|
|
6218
6233
|
var init_cloud_router = __esm(() => {
|
|
6219
6234
|
init_types();
|
|
6220
6235
|
init_redaction();
|
|
@@ -6238,6 +6253,7 @@ var init_cloud_router = __esm(() => {
|
|
|
6238
6253
|
"confidence"
|
|
6239
6254
|
];
|
|
6240
6255
|
completionCapabilityCache = new Map;
|
|
6256
|
+
SERVER_MODE_CANDIDATES = ["postgres", "cloud", "self_hosted"];
|
|
6241
6257
|
listTagsCapabilityCache = new Map;
|
|
6242
6258
|
PRIORITY_RANK = { critical: 0, high: 1, medium: 2, low: 3 };
|
|
6243
6259
|
});
|
|
@@ -26034,10 +26050,12 @@ var init_project_commands = __esm(() => {
|
|
|
26034
26050
|
init_output_redaction();
|
|
26035
26051
|
});
|
|
26036
26052
|
|
|
26037
|
-
// src/
|
|
26053
|
+
// src/lib/agent-name-normalize.ts
|
|
26038
26054
|
function normalizeAgentNameInput(name) {
|
|
26039
26055
|
return name.trim().toLowerCase();
|
|
26040
26056
|
}
|
|
26057
|
+
|
|
26058
|
+
// src/db/agent-names.ts
|
|
26041
26059
|
function hasGeneratedNumericSuffix(name) {
|
|
26042
26060
|
return NUMERIC_SUFFIX_RE.test(normalizeAgentNameInput(name));
|
|
26043
26061
|
}
|
|
@@ -26718,6 +26736,16 @@ __export(exports_agent_commands, {
|
|
|
26718
26736
|
});
|
|
26719
26737
|
import chalk5 from "chalk";
|
|
26720
26738
|
import { execSync as execSync2 } from "child_process";
|
|
26739
|
+
function resolveCloudAgentByNameOrId(agents, nameOrId) {
|
|
26740
|
+
const byId = agents.find((agent) => agent.id === nameOrId);
|
|
26741
|
+
if (byId)
|
|
26742
|
+
return byId;
|
|
26743
|
+
const target = normalizeAgentNameInput(nameOrId);
|
|
26744
|
+
const matches = agents.filter((agent) => normalizeAgentNameInput(agent.name) === target);
|
|
26745
|
+
if (matches.length === 0)
|
|
26746
|
+
return null;
|
|
26747
|
+
return matches.reduce((freshest, candidate) => new Date(candidate.last_seen_at).getTime() > new Date(freshest.last_seen_at).getTime() ? candidate : freshest);
|
|
26748
|
+
}
|
|
26721
26749
|
function registerAgentCommands(program2) {
|
|
26722
26750
|
program2.command("init <name>").description("Register an agents and get a short UUID").option("-d, --description <text>", "Agent description").action(async (name, opts) => {
|
|
26723
26751
|
const globalOpts = program2.opts();
|
|
@@ -26914,7 +26942,7 @@ Use ${chalk5.cyan(`--agent ${result.id}`)} on future commands.`);
|
|
|
26914
26942
|
const globalOpts = program2.opts();
|
|
26915
26943
|
const cloud = getTodosCloudClient();
|
|
26916
26944
|
const { getAgentByName: findByName } = await Promise.resolve().then(() => (init_agents(), exports_agents));
|
|
26917
|
-
const agent = cloud ? (await cloudListAgents(cloud)
|
|
26945
|
+
const agent = cloud ? resolveCloudAgentByNameOrId(await cloudListAgents(cloud), name) : findByName(name);
|
|
26918
26946
|
if (!agent) {
|
|
26919
26947
|
handleError(new Error(`Agent not found: ${name}`));
|
|
26920
26948
|
}
|
|
@@ -30853,7 +30881,7 @@ function createPostgresTodosStorageAdapter(options) {
|
|
|
30853
30881
|
agents: {
|
|
30854
30882
|
register: (input, context) => registerAgent2(input, store, context),
|
|
30855
30883
|
get: (id) => store.get("agents", id),
|
|
30856
|
-
getByName: async (name) => (await store.list("agents")
|
|
30884
|
+
getByName: async (name) => matchAgentByName(await store.list("agents"), name),
|
|
30857
30885
|
list: async (options2) => (await store.list("agents")).filter((agent) => options2?.include_archived || agent.status !== "archived").sort((a, b) => a.name.localeCompare(b.name)),
|
|
30858
30886
|
update: (id, input) => updateAgent2(id, input, store),
|
|
30859
30887
|
heartbeat: (idOrName, context) => heartbeatAgent(idOrName, store, context),
|
|
@@ -31914,15 +31942,27 @@ async function updatePlan2(id, input, store) {
|
|
|
31914
31942
|
}
|
|
31915
31943
|
return store.upsert("plans", { ...plan, ...patch, updated_at: new Date().toISOString() });
|
|
31916
31944
|
}
|
|
31945
|
+
function matchAgentByName(agents, name, options) {
|
|
31946
|
+
const target = normalizeAgentNameInput(name);
|
|
31947
|
+
if (!target)
|
|
31948
|
+
return null;
|
|
31949
|
+
const matches = agents.filter((agent) => normalizeAgentNameInput(agent.name) === target && (options?.includeArchived !== false || agent.status !== "archived"));
|
|
31950
|
+
if (matches.length === 0)
|
|
31951
|
+
return null;
|
|
31952
|
+
return matches.reduce((freshest, candidate) => new Date(candidate.last_seen_at).getTime() > new Date(freshest.last_seen_at).getTime() ? candidate : freshest);
|
|
31953
|
+
}
|
|
31917
31954
|
async function registerAgent2(input, store, context) {
|
|
31918
|
-
const
|
|
31955
|
+
const canonicalName = normalizeAgentNameInput(input.name);
|
|
31956
|
+
const existing = matchAgentByName(await store.list("agents"), canonicalName, {
|
|
31957
|
+
includeArchived: false
|
|
31958
|
+
});
|
|
31919
31959
|
if (existing && !input.force && existing.session_id && existing.session_id !== input.session_id) {
|
|
31920
|
-
return { conflict: true, message: `Agent name '${
|
|
31960
|
+
return { conflict: true, message: `Agent name '${canonicalName}' is already active` };
|
|
31921
31961
|
}
|
|
31922
31962
|
const timestamp2 = new Date().toISOString();
|
|
31923
31963
|
const agent = {
|
|
31924
31964
|
id: existing?.id ?? randomUUID3().slice(0, 8),
|
|
31925
|
-
name:
|
|
31965
|
+
name: canonicalName,
|
|
31926
31966
|
description: input.description ?? existing?.description ?? null,
|
|
31927
31967
|
role: input.role ?? existing?.role ?? null,
|
|
31928
31968
|
title: input.title ?? existing?.title ?? null,
|
|
@@ -31960,7 +32000,7 @@ async function resolveAgent(idOrName, store) {
|
|
|
31960
32000
|
const byId = await store.get("agents", idOrName);
|
|
31961
32001
|
if (byId)
|
|
31962
32002
|
return byId;
|
|
31963
|
-
return (await store.list("agents")
|
|
32003
|
+
return matchAgentByName(await store.list("agents"), idOrName);
|
|
31964
32004
|
}
|
|
31965
32005
|
async function heartbeatAgent(idOrName, store, context) {
|
|
31966
32006
|
const agent = await resolveAgent(idOrName, store);
|
package/dist/contracts.js
CHANGED
|
@@ -11900,7 +11900,7 @@ var init_tasks = __esm(() => {
|
|
|
11900
11900
|
// package.json
|
|
11901
11901
|
var package_default = {
|
|
11902
11902
|
name: "@hasna/todos",
|
|
11903
|
-
version: "0.13.
|
|
11903
|
+
version: "0.13.4",
|
|
11904
11904
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
11905
11905
|
type: "module",
|
|
11906
11906
|
main: "dist/index.js",
|
package/dist/db/agent-names.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Database } from "bun:sqlite";
|
|
2
|
+
import { normalizeAgentNameInput } from "../lib/agent-name-normalize.js";
|
|
2
3
|
export declare class InvalidAgentNameError extends Error {
|
|
3
4
|
readonly suggestions: string[];
|
|
4
5
|
constructor(name: string, reason: string, suggestions?: string[]);
|
|
@@ -8,7 +9,7 @@ export declare const GREEK_AGENT_NAMES: readonly ["athena", "apollo", "artemis",
|
|
|
8
9
|
export declare const NICE_AGENT_NAMES: readonly ["atlas", "aurora", "ember", "nova", "orion", "rhea", "selene", "sirius", "vesper", "zephyr"];
|
|
9
10
|
export declare const EXTENDED_AGENT_NAMES: readonly ["agrippa", "antonius", "aurelian", "aurelius", "camillus", "cassius", "celer", "cincinnatus", "corvus", "drusus", "fabius", "faustus", "flaccus", "gallus", "gaius", "horatius", "lucius", "lucullus", "marius", "marcellus", "maximus", "nerva", "pompey", "quintus", "regulus", "romulus", "scipio", "seneca", "sertorius", "sulla", "tacitus", "varro", "vitruvius", "plato", "socrates", "aristotle", "heraclitus", "democritus", "pythagoras", "hipparchus", "euclid", "archimedes", "zeno", "anaximander", "epictetus", "aeschylus", "sophocles", "euripides", "xenophon", "diogenes"];
|
|
10
11
|
export declare const PREFERRED_AGENT_NAMES: readonly ["caesar", "augustus", "marcus", "brutus", "cicero", "cato", "nero", "claudius", "tiberius", "hadrian", "trajan", "vespasian", "domitian", "caligula", "commodus", "livia", "julia", "octavia", "claudia", "agrippina", "cornelia", "valeria", "fulvia", "hortensia", "fabia", "athena", "apollo", "artemis", "hera", "iris", "hector", "achilles", "odysseus", "theseus", "pericles", "solon", "sophia", "thalia", "calliope", "clio", "phoebe", "daphne", "leonidas", "andromeda", "cassander", "atlas", "aurora", "ember", "nova", "orion", "rhea", "selene", "sirius", "vesper", "zephyr", "agrippa", "antonius", "aurelian", "aurelius", "camillus", "cassius", "celer", "cincinnatus", "corvus", "drusus", "fabius", "faustus", "flaccus", "gallus", "gaius", "horatius", "lucius", "lucullus", "marius", "marcellus", "maximus", "nerva", "pompey", "quintus", "regulus", "romulus", "scipio", "seneca", "sertorius", "sulla", "tacitus", "varro", "vitruvius", "plato", "socrates", "aristotle", "heraclitus", "democritus", "pythagoras", "hipparchus", "euclid", "archimedes", "zeno", "anaximander", "epictetus", "aeschylus", "sophocles", "euripides", "xenophon", "diogenes"];
|
|
11
|
-
export
|
|
12
|
+
export { normalizeAgentNameInput };
|
|
12
13
|
export declare function hasGeneratedNumericSuffix(name: string): boolean;
|
|
13
14
|
export declare function isGenericAgentName(name: string): boolean;
|
|
14
15
|
export declare function isBlockedAgentName(name: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-names.d.ts","sourceRoot":"","sources":["../../src/db/agent-names.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-names.d.ts","sourceRoot":"","sources":["../../src/db/agent-names.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;gBAEnB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,MAAM,EAAO;CAKrE;AAED,eAAO,MAAM,iBAAiB,yRA0BpB,CAAC;AAEX,eAAO,MAAM,iBAAiB,8NAqBpB,CAAC;AAEX,eAAO,MAAM,gBAAgB,wGAWnB,CAAC;AAEX,eAAO,MAAM,oBAAoB,wkBAmDvB,CAAC;AAEX,eAAO,MAAM,qBAAqB,soCAKxB,CAAC;AAsBX,OAAO,EAAE,uBAAuB,EAAE,CAAC;AAEnC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASxD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGxD;AAmFD,wBAAgB,iBAAiB,CAAC,aAAa,GAAE,QAAQ,CAAC,MAAM,CAAM,GAAG,MAAM,EAAE,CAUhF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,GAAE,QAAQ,CAAC,MAAM,CAAM,GAAG,MAAM,CAwB5F;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,WAAW,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,CAAC,CAAC;IAChB,iBAAiB,EAAE,CAAC,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,QAAQ,GAAG,sBAAsB,EAAE,CA8BnF"}
|
package/dist/index.js
CHANGED
|
@@ -12013,7 +12013,7 @@ var init_dispatches = __esm(() => {
|
|
|
12013
12013
|
// package.json
|
|
12014
12014
|
var package_default = {
|
|
12015
12015
|
name: "@hasna/todos",
|
|
12016
|
-
version: "0.13.
|
|
12016
|
+
version: "0.13.4",
|
|
12017
12017
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
12018
12018
|
type: "module",
|
|
12019
12019
|
main: "dist/index.js",
|
|
@@ -23896,6 +23896,11 @@ init_database();
|
|
|
23896
23896
|
init_identity_mapping();
|
|
23897
23897
|
init_storage_tombstones();
|
|
23898
23898
|
|
|
23899
|
+
// src/lib/agent-name-normalize.ts
|
|
23900
|
+
function normalizeAgentNameInput(name) {
|
|
23901
|
+
return name.trim().toLowerCase();
|
|
23902
|
+
}
|
|
23903
|
+
|
|
23899
23904
|
// src/db/agent-names.ts
|
|
23900
23905
|
class InvalidAgentNameError extends Error {
|
|
23901
23906
|
suggestions;
|
|
@@ -24040,9 +24045,6 @@ var RESERVED_GENERIC_NAMES = new Set([
|
|
|
24040
24045
|
]);
|
|
24041
24046
|
var NUMERIC_SUFFIX_RE = /[-_]\d+$/;
|
|
24042
24047
|
var ONE_WORD_NAME_RE = /^[a-z]+$/;
|
|
24043
|
-
function normalizeAgentNameInput(name) {
|
|
24044
|
-
return name.trim().toLowerCase();
|
|
24045
|
-
}
|
|
24046
24048
|
function hasGeneratedNumericSuffix(name) {
|
|
24047
24049
|
return NUMERIC_SUFFIX_RE.test(normalizeAgentNameInput(name));
|
|
24048
24050
|
}
|
|
@@ -25831,7 +25833,7 @@ function createPostgresTodosStorageAdapter(options) {
|
|
|
25831
25833
|
agents: {
|
|
25832
25834
|
register: (input, context) => registerAgent2(input, store, context),
|
|
25833
25835
|
get: (id) => store.get("agents", id),
|
|
25834
|
-
getByName: async (name) => (await store.list("agents")
|
|
25836
|
+
getByName: async (name) => matchAgentByName(await store.list("agents"), name),
|
|
25835
25837
|
list: async (options2) => (await store.list("agents")).filter((agent) => options2?.include_archived || agent.status !== "archived").sort((a, b) => a.name.localeCompare(b.name)),
|
|
25836
25838
|
update: (id, input) => updateAgent2(id, input, store),
|
|
25837
25839
|
heartbeat: (idOrName, context) => heartbeatAgent(idOrName, store, context),
|
|
@@ -26895,15 +26897,27 @@ async function updatePlan2(id, input, store) {
|
|
|
26895
26897
|
}
|
|
26896
26898
|
return store.upsert("plans", { ...plan, ...patch, updated_at: new Date().toISOString() });
|
|
26897
26899
|
}
|
|
26900
|
+
function matchAgentByName(agents, name, options) {
|
|
26901
|
+
const target = normalizeAgentNameInput(name);
|
|
26902
|
+
if (!target)
|
|
26903
|
+
return null;
|
|
26904
|
+
const matches = agents.filter((agent) => normalizeAgentNameInput(agent.name) === target && (options?.includeArchived !== false || agent.status !== "archived"));
|
|
26905
|
+
if (matches.length === 0)
|
|
26906
|
+
return null;
|
|
26907
|
+
return matches.reduce((freshest, candidate) => new Date(candidate.last_seen_at).getTime() > new Date(freshest.last_seen_at).getTime() ? candidate : freshest);
|
|
26908
|
+
}
|
|
26898
26909
|
async function registerAgent2(input, store, context) {
|
|
26899
|
-
const
|
|
26910
|
+
const canonicalName = normalizeAgentNameInput(input.name);
|
|
26911
|
+
const existing = matchAgentByName(await store.list("agents"), canonicalName, {
|
|
26912
|
+
includeArchived: false
|
|
26913
|
+
});
|
|
26900
26914
|
if (existing && !input.force && existing.session_id && existing.session_id !== input.session_id) {
|
|
26901
|
-
return { conflict: true, message: `Agent name '${
|
|
26915
|
+
return { conflict: true, message: `Agent name '${canonicalName}' is already active` };
|
|
26902
26916
|
}
|
|
26903
26917
|
const timestamp3 = new Date().toISOString();
|
|
26904
26918
|
const agent = {
|
|
26905
26919
|
id: existing?.id ?? randomUUID3().slice(0, 8),
|
|
26906
|
-
name:
|
|
26920
|
+
name: canonicalName,
|
|
26907
26921
|
description: input.description ?? existing?.description ?? null,
|
|
26908
26922
|
role: input.role ?? existing?.role ?? null,
|
|
26909
26923
|
title: input.title ?? existing?.title ?? null,
|
|
@@ -26941,7 +26955,7 @@ async function resolveAgent(idOrName, store) {
|
|
|
26941
26955
|
const byId = await store.get("agents", idOrName);
|
|
26942
26956
|
if (byId)
|
|
26943
26957
|
return byId;
|
|
26944
|
-
return (await store.list("agents")
|
|
26958
|
+
return matchAgentByName(await store.list("agents"), idOrName);
|
|
26945
26959
|
}
|
|
26946
26960
|
async function heartbeatAgent(idOrName, store, context) {
|
|
26947
26961
|
const agent = await resolveAgent(idOrName, store);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical agent-name normalisation, shared by every storage engine.
|
|
3
|
+
*
|
|
4
|
+
* Agent names are a case-INSENSITIVE identity: `fabricius`, `Fabricius` and
|
|
5
|
+
* `FABRICIUS` are one agent, not three. This module is the single source of
|
|
6
|
+
* truth for that rule.
|
|
7
|
+
*
|
|
8
|
+
* It lives in `lib/` and imports NOTHING on purpose. The rule is needed by both
|
|
9
|
+
* the SQLite engine (`db/agent-names.ts`) and the Postgres engine
|
|
10
|
+
* (`storage/postgres-adapter.ts`), and the Postgres adapter must not reach into
|
|
11
|
+
* `db/`, whose module graph loads `bun:sqlite` at import time. Duplicating the
|
|
12
|
+
* two lines instead is what let the engines drift apart in the first place
|
|
13
|
+
* (todos task 0bf5d979): SQLite normalised, Postgres compared with `===`, and
|
|
14
|
+
* one agent silently became two roster rows with divergent last_seen_at.
|
|
15
|
+
*/
|
|
16
|
+
export declare function normalizeAgentNameInput(name: string): string;
|
|
17
|
+
//# sourceMappingURL=agent-name-normalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-name-normalize.d.ts","sourceRoot":"","sources":["../../src/lib/agent-name-normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -4413,10 +4413,12 @@ var init_storage_tombstones = __esm(() => {
|
|
|
4413
4413
|
init_machines();
|
|
4414
4414
|
});
|
|
4415
4415
|
|
|
4416
|
-
// src/
|
|
4416
|
+
// src/lib/agent-name-normalize.ts
|
|
4417
4417
|
function normalizeAgentNameInput(name) {
|
|
4418
4418
|
return name.trim().toLowerCase();
|
|
4419
4419
|
}
|
|
4420
|
+
|
|
4421
|
+
// src/db/agent-names.ts
|
|
4420
4422
|
function hasGeneratedNumericSuffix(name) {
|
|
4421
4423
|
return NUMERIC_SUFFIX_RE.test(normalizeAgentNameInput(name));
|
|
4422
4424
|
}
|
|
@@ -20084,6 +20086,7 @@ var init_http_client = __esm(() => {
|
|
|
20084
20086
|
|
|
20085
20087
|
// src/cli/cloud-router.ts
|
|
20086
20088
|
import { resolveStorageClient } from "@hasna/contracts/client/storage";
|
|
20089
|
+
import { normalizeStorageMode } from "@hasna/contracts/mode";
|
|
20087
20090
|
import { resolve as resolvePath } from "path";
|
|
20088
20091
|
function cleanMode(value) {
|
|
20089
20092
|
const normalized = value?.trim().toLowerCase();
|
|
@@ -20205,13 +20208,27 @@ function getTodosRemoteAuthorityConfigStatus(env = process.env) {
|
|
|
20205
20208
|
local_fallback: false
|
|
20206
20209
|
};
|
|
20207
20210
|
}
|
|
20211
|
+
function serverStorageMode(normalize = normalizeStorageMode) {
|
|
20212
|
+
const useCache = normalize === normalizeStorageMode;
|
|
20213
|
+
if (useCache && cachedServerMode !== null)
|
|
20214
|
+
return cachedServerMode;
|
|
20215
|
+
for (const candidate of SERVER_MODE_CANDIDATES) {
|
|
20216
|
+
try {
|
|
20217
|
+
normalize(candidate);
|
|
20218
|
+
if (useCache)
|
|
20219
|
+
cachedServerMode = candidate;
|
|
20220
|
+
return candidate;
|
|
20221
|
+
} catch {}
|
|
20222
|
+
}
|
|
20223
|
+
throw new Error(`REMOTE_STORAGE_MODE_UNSUPPORTED: no known server storage mode is accepted by the installed ` + `@hasna/contracts (tried ${SERVER_MODE_CANDIDATES.join(", ")}); the storage-mode enum has changed. ` + `Add the new server token to SERVER_MODE_CANDIDATES in src/cli/cloud-router.ts; ` + `local SQLite fallback is disabled.`);
|
|
20224
|
+
}
|
|
20208
20225
|
function requireTodosRemoteAuthorityEnv(env) {
|
|
20209
20226
|
const status = getTodosRemoteAuthorityConfigStatus(env);
|
|
20210
20227
|
if (!status.ok)
|
|
20211
20228
|
throw new Error(status.issues[0]);
|
|
20212
20229
|
return {
|
|
20213
20230
|
...env,
|
|
20214
|
-
HASNA_TODOS_STORAGE_MODE:
|
|
20231
|
+
HASNA_TODOS_STORAGE_MODE: serverStorageMode(),
|
|
20215
20232
|
HASNA_TODOS_API_URL: status.v1_base_url.replace(/\/v1$/, ""),
|
|
20216
20233
|
HASNA_TODOS_API_KEY: env.HASNA_TODOS_API_KEY.trim()
|
|
20217
20234
|
};
|
|
@@ -20522,7 +20539,7 @@ async function cloudResolveTaskListRef(client, ref, projectId) {
|
|
|
20522
20539
|
}
|
|
20523
20540
|
throw new Error(`Task list not found: "${input}"`);
|
|
20524
20541
|
}
|
|
20525
|
-
var UUID_RE, TRANSPORT_TOKENS, completionCapabilityCache, listTagsCapabilityCache;
|
|
20542
|
+
var UUID_RE, TRANSPORT_TOKENS, completionCapabilityCache, SERVER_MODE_CANDIDATES, cachedServerMode = null, listTagsCapabilityCache;
|
|
20526
20543
|
var init_cloud_router = __esm(() => {
|
|
20527
20544
|
init_types();
|
|
20528
20545
|
init_redaction();
|
|
@@ -20538,6 +20555,7 @@ var init_cloud_router = __esm(() => {
|
|
|
20538
20555
|
hybrid: "http"
|
|
20539
20556
|
};
|
|
20540
20557
|
completionCapabilityCache = new Map;
|
|
20558
|
+
SERVER_MODE_CANDIDATES = ["postgres", "cloud", "self_hosted"];
|
|
20541
20559
|
listTagsCapabilityCache = new Map;
|
|
20542
20560
|
});
|
|
20543
20561
|
|
|
@@ -34553,7 +34571,7 @@ var package_default;
|
|
|
34553
34571
|
var init_package = __esm(() => {
|
|
34554
34572
|
package_default = {
|
|
34555
34573
|
name: "@hasna/todos",
|
|
34556
|
-
version: "0.13.
|
|
34574
|
+
version: "0.13.4",
|
|
34557
34575
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
34558
34576
|
type: "module",
|
|
34559
34577
|
main: "dist/index.js",
|
|
@@ -45358,7 +45376,7 @@ function createPostgresTodosStorageAdapter(options) {
|
|
|
45358
45376
|
agents: {
|
|
45359
45377
|
register: (input, context) => registerAgent2(input, store, context),
|
|
45360
45378
|
get: (id) => store.get("agents", id),
|
|
45361
|
-
getByName: async (name) => (await store.list("agents")
|
|
45379
|
+
getByName: async (name) => matchAgentByName(await store.list("agents"), name),
|
|
45362
45380
|
list: async (options2) => (await store.list("agents")).filter((agent) => options2?.include_archived || agent.status !== "archived").sort((a, b) => a.name.localeCompare(b.name)),
|
|
45363
45381
|
update: (id, input) => updateAgent2(id, input, store),
|
|
45364
45382
|
heartbeat: (idOrName, context) => heartbeatAgent(idOrName, store, context),
|
|
@@ -46419,15 +46437,27 @@ async function updatePlan2(id, input, store) {
|
|
|
46419
46437
|
}
|
|
46420
46438
|
return store.upsert("plans", { ...plan, ...patch, updated_at: new Date().toISOString() });
|
|
46421
46439
|
}
|
|
46440
|
+
function matchAgentByName(agents, name, options) {
|
|
46441
|
+
const target = normalizeAgentNameInput(name);
|
|
46442
|
+
if (!target)
|
|
46443
|
+
return null;
|
|
46444
|
+
const matches = agents.filter((agent) => normalizeAgentNameInput(agent.name) === target && (options?.includeArchived !== false || agent.status !== "archived"));
|
|
46445
|
+
if (matches.length === 0)
|
|
46446
|
+
return null;
|
|
46447
|
+
return matches.reduce((freshest, candidate) => new Date(candidate.last_seen_at).getTime() > new Date(freshest.last_seen_at).getTime() ? candidate : freshest);
|
|
46448
|
+
}
|
|
46422
46449
|
async function registerAgent2(input, store, context) {
|
|
46423
|
-
const
|
|
46450
|
+
const canonicalName = normalizeAgentNameInput(input.name);
|
|
46451
|
+
const existing = matchAgentByName(await store.list("agents"), canonicalName, {
|
|
46452
|
+
includeArchived: false
|
|
46453
|
+
});
|
|
46424
46454
|
if (existing && !input.force && existing.session_id && existing.session_id !== input.session_id) {
|
|
46425
|
-
return { conflict: true, message: `Agent name '${
|
|
46455
|
+
return { conflict: true, message: `Agent name '${canonicalName}' is already active` };
|
|
46426
46456
|
}
|
|
46427
46457
|
const timestamp4 = new Date().toISOString();
|
|
46428
46458
|
const agent = {
|
|
46429
46459
|
id: existing?.id ?? randomUUID3().slice(0, 8),
|
|
46430
|
-
name:
|
|
46460
|
+
name: canonicalName,
|
|
46431
46461
|
description: input.description ?? existing?.description ?? null,
|
|
46432
46462
|
role: input.role ?? existing?.role ?? null,
|
|
46433
46463
|
title: input.title ?? existing?.title ?? null,
|
|
@@ -46465,7 +46495,7 @@ async function resolveAgent3(idOrName, store) {
|
|
|
46465
46495
|
const byId = await store.get("agents", idOrName);
|
|
46466
46496
|
if (byId)
|
|
46467
46497
|
return byId;
|
|
46468
|
-
return (await store.list("agents")
|
|
46498
|
+
return matchAgentByName(await store.list("agents"), idOrName);
|
|
46469
46499
|
}
|
|
46470
46500
|
async function heartbeatAgent(idOrName, store, context) {
|
|
46471
46501
|
const agent = await resolveAgent3(idOrName, store);
|
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.13.
|
|
44
|
+
version: "0.13.4",
|
|
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",
|
package/dist/registry.js
CHANGED
|
@@ -11900,7 +11900,7 @@ var init_tasks = __esm(() => {
|
|
|
11900
11900
|
// package.json
|
|
11901
11901
|
var package_default = {
|
|
11902
11902
|
name: "@hasna/todos",
|
|
11903
|
-
version: "0.13.
|
|
11903
|
+
version: "0.13.4",
|
|
11904
11904
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
11905
11905
|
type: "module",
|
|
11906
11906
|
main: "dist/index.js",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"packageName": "@hasna/todos",
|
|
3
|
-
"packageVersion": "0.13.
|
|
3
|
+
"packageVersion": "0.13.4",
|
|
4
4
|
"repository": "https://github.com/hasna/todos.git",
|
|
5
|
-
"gitCommit": "
|
|
6
|
-
"gitTree": "
|
|
7
|
-
"sourceTreeSha256": "
|
|
8
|
-
"generatedAt": "2026-07-
|
|
5
|
+
"gitCommit": "c2c3517bab2321911c44285625ecaa58fcf606ff",
|
|
6
|
+
"gitTree": "f3acc3cc1322f240e911e1ab483a7a5ef88371cd",
|
|
7
|
+
"sourceTreeSha256": "445622ccd461d74a6c060130c1bccfa72b829d74b24b5358b0e36cb730eb8374",
|
|
8
|
+
"generatedAt": "2026-07-31T11:35:34.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.13.
|
|
73
|
+
version: "0.13.4",
|
|
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",
|
|
@@ -657,6 +657,11 @@ var init_types = __esm(() => {
|
|
|
657
657
|
};
|
|
658
658
|
});
|
|
659
659
|
|
|
660
|
+
// src/lib/agent-name-normalize.ts
|
|
661
|
+
function normalizeAgentNameInput(name) {
|
|
662
|
+
return name.trim().toLowerCase();
|
|
663
|
+
}
|
|
664
|
+
|
|
660
665
|
// src/lib/slugs.ts
|
|
661
666
|
function normalizeSlug(value) {
|
|
662
667
|
return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
|
|
@@ -1590,7 +1595,7 @@ function createPostgresTodosStorageAdapter(options) {
|
|
|
1590
1595
|
agents: {
|
|
1591
1596
|
register: (input, context) => registerAgent(input, store, context),
|
|
1592
1597
|
get: (id) => store.get("agents", id),
|
|
1593
|
-
getByName: async (name) => (await store.list("agents")
|
|
1598
|
+
getByName: async (name) => matchAgentByName(await store.list("agents"), name),
|
|
1594
1599
|
list: async (options2) => (await store.list("agents")).filter((agent) => options2?.include_archived || agent.status !== "archived").sort((a, b) => a.name.localeCompare(b.name)),
|
|
1595
1600
|
update: (id, input) => updateAgent(id, input, store),
|
|
1596
1601
|
heartbeat: (idOrName, context) => heartbeatAgent(idOrName, store, context),
|
|
@@ -2651,15 +2656,27 @@ async function updatePlan(id, input, store) {
|
|
|
2651
2656
|
}
|
|
2652
2657
|
return store.upsert("plans", { ...plan, ...patch, updated_at: new Date().toISOString() });
|
|
2653
2658
|
}
|
|
2659
|
+
function matchAgentByName(agents, name, options) {
|
|
2660
|
+
const target = normalizeAgentNameInput(name);
|
|
2661
|
+
if (!target)
|
|
2662
|
+
return null;
|
|
2663
|
+
const matches = agents.filter((agent) => normalizeAgentNameInput(agent.name) === target && (options?.includeArchived !== false || agent.status !== "archived"));
|
|
2664
|
+
if (matches.length === 0)
|
|
2665
|
+
return null;
|
|
2666
|
+
return matches.reduce((freshest, candidate) => new Date(candidate.last_seen_at).getTime() > new Date(freshest.last_seen_at).getTime() ? candidate : freshest);
|
|
2667
|
+
}
|
|
2654
2668
|
async function registerAgent(input, store, context) {
|
|
2655
|
-
const
|
|
2669
|
+
const canonicalName = normalizeAgentNameInput(input.name);
|
|
2670
|
+
const existing = matchAgentByName(await store.list("agents"), canonicalName, {
|
|
2671
|
+
includeArchived: false
|
|
2672
|
+
});
|
|
2656
2673
|
if (existing && !input.force && existing.session_id && existing.session_id !== input.session_id) {
|
|
2657
|
-
return { conflict: true, message: `Agent name '${
|
|
2674
|
+
return { conflict: true, message: `Agent name '${canonicalName}' is already active` };
|
|
2658
2675
|
}
|
|
2659
2676
|
const timestamp = new Date().toISOString();
|
|
2660
2677
|
const agent = {
|
|
2661
2678
|
id: existing?.id ?? randomUUID().slice(0, 8),
|
|
2662
|
-
name:
|
|
2679
|
+
name: canonicalName,
|
|
2663
2680
|
description: input.description ?? existing?.description ?? null,
|
|
2664
2681
|
role: input.role ?? existing?.role ?? null,
|
|
2665
2682
|
title: input.title ?? existing?.title ?? null,
|
|
@@ -2697,7 +2714,7 @@ async function resolveAgent(idOrName, store) {
|
|
|
2697
2714
|
const byId = await store.get("agents", idOrName);
|
|
2698
2715
|
if (byId)
|
|
2699
2716
|
return byId;
|
|
2700
|
-
return (await store.list("agents")
|
|
2717
|
+
return matchAgentByName(await store.list("agents"), idOrName);
|
|
2701
2718
|
}
|
|
2702
2719
|
async function heartbeatAgent(idOrName, store, context) {
|
|
2703
2720
|
const agent = await resolveAgent(idOrName, store);
|
|
@@ -16694,9 +16711,6 @@ var init_tasks = __esm(() => {
|
|
|
16694
16711
|
});
|
|
16695
16712
|
|
|
16696
16713
|
// src/db/agent-names.ts
|
|
16697
|
-
function normalizeAgentNameInput(name) {
|
|
16698
|
-
return name.trim().toLowerCase();
|
|
16699
|
-
}
|
|
16700
16714
|
function hasGeneratedNumericSuffix(name) {
|
|
16701
16715
|
return NUMERIC_SUFFIX_RE.test(normalizeAgentNameInput(name));
|
|
16702
16716
|
}
|
|
@@ -45032,6 +45046,7 @@ var init_http_client = __esm(() => {
|
|
|
45032
45046
|
|
|
45033
45047
|
// src/cli/cloud-router.ts
|
|
45034
45048
|
import { resolveStorageClient } from "@hasna/contracts/client/storage";
|
|
45049
|
+
import { normalizeStorageMode } from "@hasna/contracts/mode";
|
|
45035
45050
|
import { resolve as resolvePath } from "path";
|
|
45036
45051
|
function cleanMode(value) {
|
|
45037
45052
|
const normalized = value?.trim().toLowerCase();
|
|
@@ -45153,13 +45168,27 @@ function getTodosRemoteAuthorityConfigStatus(env = process.env) {
|
|
|
45153
45168
|
local_fallback: false
|
|
45154
45169
|
};
|
|
45155
45170
|
}
|
|
45171
|
+
function serverStorageMode(normalize = normalizeStorageMode) {
|
|
45172
|
+
const useCache = normalize === normalizeStorageMode;
|
|
45173
|
+
if (useCache && cachedServerMode !== null)
|
|
45174
|
+
return cachedServerMode;
|
|
45175
|
+
for (const candidate of SERVER_MODE_CANDIDATES) {
|
|
45176
|
+
try {
|
|
45177
|
+
normalize(candidate);
|
|
45178
|
+
if (useCache)
|
|
45179
|
+
cachedServerMode = candidate;
|
|
45180
|
+
return candidate;
|
|
45181
|
+
} catch {}
|
|
45182
|
+
}
|
|
45183
|
+
throw new Error(`REMOTE_STORAGE_MODE_UNSUPPORTED: no known server storage mode is accepted by the installed ` + `@hasna/contracts (tried ${SERVER_MODE_CANDIDATES.join(", ")}); the storage-mode enum has changed. ` + `Add the new server token to SERVER_MODE_CANDIDATES in src/cli/cloud-router.ts; ` + `local SQLite fallback is disabled.`);
|
|
45184
|
+
}
|
|
45156
45185
|
function requireTodosRemoteAuthorityEnv(env) {
|
|
45157
45186
|
const status = getTodosRemoteAuthorityConfigStatus(env);
|
|
45158
45187
|
if (!status.ok)
|
|
45159
45188
|
throw new Error(status.issues[0]);
|
|
45160
45189
|
return {
|
|
45161
45190
|
...env,
|
|
45162
|
-
HASNA_TODOS_STORAGE_MODE:
|
|
45191
|
+
HASNA_TODOS_STORAGE_MODE: serverStorageMode(),
|
|
45163
45192
|
HASNA_TODOS_API_URL: status.v1_base_url.replace(/\/v1$/, ""),
|
|
45164
45193
|
HASNA_TODOS_API_KEY: env.HASNA_TODOS_API_KEY.trim()
|
|
45165
45194
|
};
|
|
@@ -45470,7 +45499,7 @@ async function cloudResolveTaskListRef(client, ref, projectId) {
|
|
|
45470
45499
|
}
|
|
45471
45500
|
throw new Error(`Task list not found: "${input}"`);
|
|
45472
45501
|
}
|
|
45473
|
-
var UUID_RE, TRANSPORT_TOKENS, completionCapabilityCache, listTagsCapabilityCache;
|
|
45502
|
+
var UUID_RE, TRANSPORT_TOKENS, completionCapabilityCache, SERVER_MODE_CANDIDATES, cachedServerMode = null, listTagsCapabilityCache;
|
|
45474
45503
|
var init_cloud_router = __esm(() => {
|
|
45475
45504
|
init_types();
|
|
45476
45505
|
init_redaction();
|
|
@@ -45486,6 +45515,7 @@ var init_cloud_router = __esm(() => {
|
|
|
45486
45515
|
hybrid: "http"
|
|
45487
45516
|
};
|
|
45488
45517
|
completionCapabilityCache = new Map;
|
|
45518
|
+
SERVER_MODE_CANDIDATES = ["postgres", "cloud", "self_hosted"];
|
|
45489
45519
|
listTagsCapabilityCache = new Map;
|
|
45490
45520
|
});
|
|
45491
45521
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-adapter.d.ts","sourceRoot":"","sources":["../../src/storage/postgres-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"postgres-adapter.d.ts","sourceRoot":"","sources":["../../src/storage/postgres-adapter.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAYV,mBAAmB,EAYpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIL,KAAK,wBAAwB,EAE9B,MAAM,oBAAoB,CAAC;AAqB5B,MAAM,WAAW,wCAAwC;IACvD,MAAM,EAAE,wBAAwB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAuBD,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,wCAAwC,GAChD,mBAAmB,CAmJrB"}
|
package/dist/storage.js
CHANGED
|
@@ -12069,6 +12069,11 @@ init_database();
|
|
|
12069
12069
|
init_identity_mapping();
|
|
12070
12070
|
init_storage_tombstones();
|
|
12071
12071
|
|
|
12072
|
+
// src/lib/agent-name-normalize.ts
|
|
12073
|
+
function normalizeAgentNameInput(name) {
|
|
12074
|
+
return name.trim().toLowerCase();
|
|
12075
|
+
}
|
|
12076
|
+
|
|
12072
12077
|
// src/db/agent-names.ts
|
|
12073
12078
|
class InvalidAgentNameError extends Error {
|
|
12074
12079
|
suggestions;
|
|
@@ -12213,9 +12218,6 @@ var RESERVED_GENERIC_NAMES = new Set([
|
|
|
12213
12218
|
]);
|
|
12214
12219
|
var NUMERIC_SUFFIX_RE = /[-_]\d+$/;
|
|
12215
12220
|
var ONE_WORD_NAME_RE = /^[a-z]+$/;
|
|
12216
|
-
function normalizeAgentNameInput(name) {
|
|
12217
|
-
return name.trim().toLowerCase();
|
|
12218
|
-
}
|
|
12219
12221
|
function hasGeneratedNumericSuffix(name) {
|
|
12220
12222
|
return NUMERIC_SUFFIX_RE.test(normalizeAgentNameInput(name));
|
|
12221
12223
|
}
|
|
@@ -14004,7 +14006,7 @@ function createPostgresTodosStorageAdapter(options) {
|
|
|
14004
14006
|
agents: {
|
|
14005
14007
|
register: (input, context) => registerAgent2(input, store, context),
|
|
14006
14008
|
get: (id) => store.get("agents", id),
|
|
14007
|
-
getByName: async (name) => (await store.list("agents")
|
|
14009
|
+
getByName: async (name) => matchAgentByName(await store.list("agents"), name),
|
|
14008
14010
|
list: async (options2) => (await store.list("agents")).filter((agent) => options2?.include_archived || agent.status !== "archived").sort((a, b) => a.name.localeCompare(b.name)),
|
|
14009
14011
|
update: (id, input) => updateAgent2(id, input, store),
|
|
14010
14012
|
heartbeat: (idOrName, context) => heartbeatAgent(idOrName, store, context),
|
|
@@ -15068,15 +15070,27 @@ async function updatePlan2(id, input, store) {
|
|
|
15068
15070
|
}
|
|
15069
15071
|
return store.upsert("plans", { ...plan, ...patch, updated_at: new Date().toISOString() });
|
|
15070
15072
|
}
|
|
15073
|
+
function matchAgentByName(agents, name, options) {
|
|
15074
|
+
const target = normalizeAgentNameInput(name);
|
|
15075
|
+
if (!target)
|
|
15076
|
+
return null;
|
|
15077
|
+
const matches = agents.filter((agent) => normalizeAgentNameInput(agent.name) === target && (options?.includeArchived !== false || agent.status !== "archived"));
|
|
15078
|
+
if (matches.length === 0)
|
|
15079
|
+
return null;
|
|
15080
|
+
return matches.reduce((freshest, candidate) => new Date(candidate.last_seen_at).getTime() > new Date(freshest.last_seen_at).getTime() ? candidate : freshest);
|
|
15081
|
+
}
|
|
15071
15082
|
async function registerAgent2(input, store, context) {
|
|
15072
|
-
const
|
|
15083
|
+
const canonicalName = normalizeAgentNameInput(input.name);
|
|
15084
|
+
const existing = matchAgentByName(await store.list("agents"), canonicalName, {
|
|
15085
|
+
includeArchived: false
|
|
15086
|
+
});
|
|
15073
15087
|
if (existing && !input.force && existing.session_id && existing.session_id !== input.session_id) {
|
|
15074
|
-
return { conflict: true, message: `Agent name '${
|
|
15088
|
+
return { conflict: true, message: `Agent name '${canonicalName}' is already active` };
|
|
15075
15089
|
}
|
|
15076
15090
|
const timestamp2 = new Date().toISOString();
|
|
15077
15091
|
const agent = {
|
|
15078
15092
|
id: existing?.id ?? randomUUID3().slice(0, 8),
|
|
15079
|
-
name:
|
|
15093
|
+
name: canonicalName,
|
|
15080
15094
|
description: input.description ?? existing?.description ?? null,
|
|
15081
15095
|
role: input.role ?? existing?.role ?? null,
|
|
15082
15096
|
title: input.title ?? existing?.title ?? null,
|
|
@@ -15114,7 +15128,7 @@ async function resolveAgent(idOrName, store) {
|
|
|
15114
15128
|
const byId = await store.get("agents", idOrName);
|
|
15115
15129
|
if (byId)
|
|
15116
15130
|
return byId;
|
|
15117
|
-
return (await store.list("agents")
|
|
15131
|
+
return matchAgentByName(await store.list("agents"), idOrName);
|
|
15118
15132
|
}
|
|
15119
15133
|
async function heartbeatAgent(idOrName, store, context) {
|
|
15120
15134
|
const agent = await resolveAgent(idOrName, store);
|