@wirecat/cli-core 0.325.0 → 0.327.0

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.
Files changed (164) hide show
  1. package/README.md +6 -5
  2. package/dist/cli/bot/admins.js +2 -2
  3. package/dist/cli/bot/admins.js.map +1 -1
  4. package/dist/cli/bot/api.js +1 -1
  5. package/dist/cli/bot/api.js.map +1 -1
  6. package/dist/cli/bot/command.js +3 -3
  7. package/dist/cli/bot/command.js.map +1 -1
  8. package/dist/cli/bot/mcp.d.ts +0 -3
  9. package/dist/cli/bot/mcp.d.ts.map +1 -1
  10. package/dist/cli/bot/mcp.js +7 -20
  11. package/dist/cli/bot/mcp.js.map +1 -1
  12. package/dist/cli/bot/messages.d.ts.map +1 -1
  13. package/dist/cli/bot/messages.js +7 -7
  14. package/dist/cli/bot/messages.js.map +1 -1
  15. package/dist/cli/bot/moderation.d.ts.map +1 -1
  16. package/dist/cli/bot/moderation.js +3 -3
  17. package/dist/cli/bot/moderation.js.map +1 -1
  18. package/dist/cli/bot/port.d.ts +10 -4
  19. package/dist/cli/bot/port.d.ts.map +1 -1
  20. package/dist/cli/bot/setup.js +3 -3
  21. package/dist/cli/bot/setup.js.map +1 -1
  22. package/dist/cli/bot/store.js +1 -1
  23. package/dist/cli/bot/store.js.map +1 -1
  24. package/dist/cli/commands-command.js +1 -1
  25. package/dist/cli/commands-command.js.map +1 -1
  26. package/dist/cli/config-command.d.ts.map +1 -1
  27. package/dist/cli/config-command.js +1 -1
  28. package/dist/cli/config-command.js.map +1 -1
  29. package/dist/cli/context.d.ts +13 -0
  30. package/dist/cli/context.d.ts.map +1 -1
  31. package/dist/cli/context.js +6 -2
  32. package/dist/cli/context.js.map +1 -1
  33. package/dist/cli/effects.d.ts +4 -2
  34. package/dist/cli/effects.d.ts.map +1 -1
  35. package/dist/cli/effects.js +6 -3
  36. package/dist/cli/effects.js.map +1 -1
  37. package/dist/cli/index.d.ts +3 -4
  38. package/dist/cli/index.d.ts.map +1 -1
  39. package/dist/cli/index.js +2 -3
  40. package/dist/cli/index.js.map +1 -1
  41. package/dist/cli/meeting-preparation-command.js +1 -1
  42. package/dist/cli/meeting-preparation-command.js.map +1 -1
  43. package/dist/cli/messenger/account-sessions-command.js +1 -1
  44. package/dist/cli/messenger/account-sessions-command.js.map +1 -1
  45. package/dist/cli/messenger/archive-commands.js +1 -1
  46. package/dist/cli/messenger/archive-commands.js.map +1 -1
  47. package/dist/cli/messenger/ask.d.ts +1 -1
  48. package/dist/cli/messenger/ask.d.ts.map +1 -1
  49. package/dist/cli/messenger/ask.js +3 -1
  50. package/dist/cli/messenger/ask.js.map +1 -1
  51. package/dist/cli/messenger/complete-command.js +1 -1
  52. package/dist/cli/messenger/complete-command.js.map +1 -1
  53. package/dist/cli/messenger/doctor-command.js +1 -1
  54. package/dist/cli/messenger/doctor-command.js.map +1 -1
  55. package/dist/cli/messenger/flood-command.js +1 -1
  56. package/dist/cli/messenger/flood-command.js.map +1 -1
  57. package/dist/cli/messenger/mcp-command.js +1 -1
  58. package/dist/cli/messenger/mcp-command.js.map +1 -1
  59. package/dist/cli/messenger/messages-delete-command.d.ts +1 -1
  60. package/dist/cli/messenger/messages-delete-command.d.ts.map +1 -1
  61. package/dist/cli/messenger/messages-delete-command.js +10 -5
  62. package/dist/cli/messenger/messages-delete-command.js.map +1 -1
  63. package/dist/cli/messenger/models-command.d.ts.map +1 -1
  64. package/dist/cli/messenger/models-command.js +2 -2
  65. package/dist/cli/messenger/models-command.js.map +1 -1
  66. package/dist/cli/messenger/records-command.d.ts.map +1 -1
  67. package/dist/cli/messenger/records-command.js +5 -5
  68. package/dist/cli/messenger/records-command.js.map +1 -1
  69. package/dist/cli/messenger/replies-command.js +1 -1
  70. package/dist/cli/messenger/replies-command.js.map +1 -1
  71. package/dist/cli/messenger/schedule-command.js +1 -1
  72. package/dist/cli/messenger/schedule-command.js.map +1 -1
  73. package/dist/cli/messenger/serve-relay.d.ts +5 -0
  74. package/dist/cli/messenger/serve-relay.d.ts.map +1 -1
  75. package/dist/cli/messenger/serve-relay.js +38 -33
  76. package/dist/cli/messenger/serve-relay.js.map +1 -1
  77. package/dist/cli/messenger/server-command.js +1 -1
  78. package/dist/cli/messenger/server-command.js.map +1 -1
  79. package/dist/cli/messenger/topics-command.d.ts.map +1 -1
  80. package/dist/cli/messenger/topics-command.js +2 -2
  81. package/dist/cli/messenger/topics-command.js.map +1 -1
  82. package/dist/cli/program.js +5 -1
  83. package/dist/cli/program.js.map +1 -1
  84. package/dist/cli/runs/command.d.ts.map +1 -1
  85. package/dist/cli/runs/command.js +1 -1
  86. package/dist/cli/runs/command.js.map +1 -1
  87. package/dist/cli/skill-command.d.ts.map +1 -1
  88. package/dist/cli/skill-command.js +2 -1
  89. package/dist/cli/skill-command.js.map +1 -1
  90. package/dist/cli/upgrade-command.js +1 -1
  91. package/dist/cli/upgrade-command.js.map +1 -1
  92. package/dist/mcp/agent.d.ts +68 -0
  93. package/dist/mcp/agent.d.ts.map +1 -0
  94. package/dist/mcp/agent.js +201 -0
  95. package/dist/mcp/agent.js.map +1 -0
  96. package/dist/mcp/bot/server.d.ts +11 -20
  97. package/dist/mcp/bot/server.d.ts.map +1 -1
  98. package/dist/mcp/bot/server.js +39 -82
  99. package/dist/mcp/bot/server.js.map +1 -1
  100. package/dist/mcp/index.d.ts +2 -1
  101. package/dist/mcp/index.d.ts.map +1 -1
  102. package/dist/mcp/index.js +2 -1
  103. package/dist/mcp/index.js.map +1 -1
  104. package/dist/output.d.ts +3 -1
  105. package/dist/output.d.ts.map +1 -1
  106. package/dist/output.js +5 -2
  107. package/dist/output.js.map +1 -1
  108. package/dist/services/searches.d.ts +1 -1
  109. package/dist/services/searches.d.ts.map +1 -1
  110. package/dist/store/document-transfer/digest.d.ts +2 -0
  111. package/dist/store/document-transfer/digest.d.ts.map +1 -0
  112. package/dist/store/document-transfer/digest.js +3 -0
  113. package/dist/store/document-transfer/digest.js.map +1 -0
  114. package/dist/store/document-transfer/index.d.ts +7 -0
  115. package/dist/store/document-transfer/index.d.ts.map +1 -0
  116. package/dist/store/document-transfer/index.js +115 -0
  117. package/dist/store/document-transfer/index.js.map +1 -0
  118. package/dist/store/document-transfer/model.d.ts +69 -0
  119. package/dist/store/document-transfer/model.d.ts.map +1 -0
  120. package/dist/store/document-transfer/model.js +2 -0
  121. package/dist/store/document-transfer/model.js.map +1 -0
  122. package/dist/store/index.d.ts +2 -0
  123. package/dist/store/index.d.ts.map +1 -1
  124. package/dist/store/index.js +1 -0
  125. package/dist/store/index.js.map +1 -1
  126. package/dist/store/sqlite/document-transfer/apply.d.ts +4 -0
  127. package/dist/store/sqlite/document-transfer/apply.d.ts.map +1 -0
  128. package/dist/store/sqlite/document-transfer/apply.js +179 -0
  129. package/dist/store/sqlite/document-transfer/apply.js.map +1 -0
  130. package/dist/store/sqlite/document-transfer/people.d.ts +10 -0
  131. package/dist/store/sqlite/document-transfer/people.d.ts.map +1 -0
  132. package/dist/store/sqlite/document-transfer/people.js +75 -0
  133. package/dist/store/sqlite/document-transfer/people.js.map +1 -0
  134. package/dist/store/sqlite/document-transfer/plan.d.ts +12 -0
  135. package/dist/store/sqlite/document-transfer/plan.d.ts.map +1 -0
  136. package/dist/store/sqlite/document-transfer/plan.js +195 -0
  137. package/dist/store/sqlite/document-transfer/plan.js.map +1 -0
  138. package/dist/store/sqlite/document-transfer/snapshot.d.ts +10 -0
  139. package/dist/store/sqlite/document-transfer/snapshot.d.ts.map +1 -0
  140. package/dist/store/sqlite/document-transfer/snapshot.js +183 -0
  141. package/dist/store/sqlite/document-transfer/snapshot.js.map +1 -0
  142. package/dist/store/sqlite/manifest.d.ts.map +1 -1
  143. package/dist/store/sqlite/manifest.js +1 -0
  144. package/dist/store/sqlite/manifest.js.map +1 -1
  145. package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
  146. package/dist/store/sqlite/migrations.generated.js +6 -0
  147. package/dist/store/sqlite/migrations.generated.js.map +1 -1
  148. package/dist/store/sqlite/schema/document-index-pending.d.ts +40 -0
  149. package/dist/store/sqlite/schema/document-index-pending.d.ts.map +1 -0
  150. package/dist/store/sqlite/schema/document-index-pending.js +6 -0
  151. package/dist/store/sqlite/schema/document-index-pending.js.map +1 -0
  152. package/dist/store/sqlite/schema/document-transfers.d.ts +104 -0
  153. package/dist/store/sqlite/schema/document-transfers.d.ts.map +1 -0
  154. package/dist/store/sqlite/schema/document-transfers.js +10 -0
  155. package/dist/store/sqlite/schema/document-transfers.js.map +1 -0
  156. package/dist/store/sqlite/schema.d.ts +2 -39
  157. package/dist/store/sqlite/schema.d.ts.map +1 -1
  158. package/dist/store/sqlite/schema.js +2 -4
  159. package/dist/store/sqlite/schema.js.map +1 -1
  160. package/package.json +3 -3
  161. package/dist/mcp/bot/tools.d.ts +0 -49
  162. package/dist/mcp/bot/tools.d.ts.map +0 -1
  163. package/dist/mcp/bot/tools.js +0 -244
  164. package/dist/mcp/bot/tools.js.map +0 -1
@@ -0,0 +1,75 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { ownerPerson } from "../actors.js";
3
+ import { stateOfThing, thingOf } from "../things.js";
4
+ export const planPeople = (database, snapshot, mappings, bindings, conflicts) => {
5
+ const creatable = new Set();
6
+ let people = 0, identities = 0;
7
+ for (const external of snapshot.external) {
8
+ if (!external.person)
9
+ continue;
10
+ const matched = external.person.identities.flatMap((identity) => {
11
+ const row = database
12
+ .prepare("SELECT i.id,l.person_id FROM identities i LEFT JOIN identity_links l ON l.identity_id=i.id WHERE i.provider=? AND i.external_id=?")
13
+ .get(String(identity.provider), String(identity.external_id));
14
+ if (row && row.person_id == null)
15
+ conflicts.add(`a destination identity has no person for ${external.reference}`);
16
+ if (!row) {
17
+ identities++;
18
+ creatable.add(`identity:${String(identity.id)}`);
19
+ return [];
20
+ }
21
+ mappings.set(`identity:${String(identity.id)}`, { type: "identity", id: Number(row.id) });
22
+ return row.person_id == null ? [] : [Number(row.person_id)];
23
+ });
24
+ let selected = mappings.get(external.key);
25
+ const binding = bindings[external.reference];
26
+ if (binding !== undefined)
27
+ selected = thingOf(database, binding);
28
+ else if (external.owner)
29
+ selected = ownerPerson(database);
30
+ else if (new Set(matched).size === 1)
31
+ selected = { type: "person", id: matched[0] };
32
+ if (selected && (selected.type !== "person" || stateOfThing(database, selected) !== "available"))
33
+ selected = undefined;
34
+ if (new Set(matched).size > 1 || (selected && matched.some((id) => id !== selected.id)))
35
+ conflicts.add(`source identities disagree with the destination person for ${external.reference}`);
36
+ if (selected)
37
+ mappings.set(external.key, selected);
38
+ else if (binding === undefined) {
39
+ creatable.add(external.key);
40
+ people++;
41
+ }
42
+ }
43
+ return { creatable, people, identities };
44
+ };
45
+ export const copyPeople = (database, snapshot, mappings, now) => {
46
+ for (const external of snapshot.external) {
47
+ if (!external.person)
48
+ continue;
49
+ let person = mappings.get(external.key);
50
+ if (!person) {
51
+ const row = database
52
+ .prepare("INSERT INTO persons (name,owner,created_at,updated_at) VALUES (?,0,?,?) RETURNING id")
53
+ .get(external.person.name, now(), now());
54
+ person = { type: "person", id: Number(row?.id) };
55
+ mappings.set(external.key, person);
56
+ }
57
+ for (const identity of external.person.identities) {
58
+ let row = database
59
+ .prepare("SELECT i.id,l.person_id FROM identities i LEFT JOIN identity_links l ON l.identity_id=i.id WHERE i.provider=? AND i.external_id=?")
60
+ .get(String(identity.provider), String(identity.external_id));
61
+ if (row && Number(row.person_id) !== person.id)
62
+ throw new CliError("configuration_error", "an identity belongs to another destination person; the transfer was rolled back");
63
+ if (!row)
64
+ row = database
65
+ .prepare("INSERT INTO identities (provider,external_id,name,username,bot,created_at,updated_at) VALUES (?,?,?,?,?,?,?) RETURNING id")
66
+ .get(String(identity.provider), String(identity.external_id), identity.name ?? null, identity.username ?? null, identity.bot ?? null, identity.created_at ?? now(), identity.updated_at ?? now());
67
+ if (!database.prepare("SELECT identity_id FROM identity_links WHERE identity_id=?").get(Number(row?.id)))
68
+ database
69
+ .prepare("INSERT INTO identity_links (identity_id,person_id,method,confidence,author,source,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?)")
70
+ .run(Number(row?.id), person.id, identity.link_method ?? "transfer", identity.link_confidence ?? 1, identity.link_author ?? "owner", identity.link_source ?? null, identity.link_created_at ?? now(), identity.link_updated_at ?? now());
71
+ mappings.set(`identity:${String(identity.id)}`, { type: "identity", id: Number(row?.id) });
72
+ }
73
+ }
74
+ };
75
+ //# sourceMappingURL=people.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"people.js","sourceRoot":"","sources":["../../../../src/store/sqlite/document-transfer/people.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { DocumentTransferPreview, TransferSnapshot } from "../../document-transfer/model.js";
2
+ import type { CacheDatabase } from "../../driver.js";
3
+ import { type Thing } from "../things.js";
4
+ export interface TransferPlan {
5
+ preview: DocumentTransferPreview;
6
+ mappings: Map<string, Thing>;
7
+ collectionId?: number;
8
+ snapshotHash: string;
9
+ bindingsHash: string;
10
+ }
11
+ export declare const planTransfer: (database: CacheDatabase, snapshot: TransferSnapshot, sourceKey: string, bindings: Record<string, string>) => TransferPlan;
12
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../../src/store/sqlite/document-transfer/plan.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAGpD,OAAO,EAAgB,KAAK,KAAK,EAAW,MAAM,cAAc,CAAA;AAGhE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,uBAAuB,CAAA;IAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,YAAY,aACb,aAAa,YACb,gBAAgB,aACf,MAAM,YACP,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC/B,YAmLF,CAAA"}
@@ -0,0 +1,195 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { digest } from "../../document-transfer/digest.js";
3
+ import { ownerPerson } from "../actors.js";
4
+ import { canonicalTagNamed } from "../tags.js";
5
+ import { stateOfThing, thingOf } from "../things.js";
6
+ import { planPeople } from "./people.js";
7
+ export const planTransfer = (database, snapshot, sourceKey, bindings) => {
8
+ const mappings = new Map();
9
+ const missing = new Set(), conflicts = new Set();
10
+ const snapshotHash = digest(snapshot);
11
+ const bindingsHash = digest(Object.entries(bindings).sort(([a], [b]) => a.localeCompare(b)));
12
+ const collection = String(snapshot.collection.external_id);
13
+ const targets = database
14
+ .prepare("SELECT * FROM accounts WHERE provider='folder' AND name=? ORDER BY id LIMIT 2")
15
+ .all(String(snapshot.collection.name));
16
+ if (targets.length > 1)
17
+ conflicts.add("the destination has duplicate document collection identities");
18
+ const target = targets[0];
19
+ if (!target && database.prepare("SELECT id FROM accounts WHERE provider='folder' AND external_id=?").get(collection))
20
+ conflicts.add("source collection identity is held by another destination collection");
21
+ const hasReceipts = database
22
+ .prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='document_annotation_transfers'")
23
+ .get();
24
+ const receipt = hasReceipts &&
25
+ database
26
+ .prepare("SELECT * FROM document_annotation_transfers WHERE source_key=? AND collection=?")
27
+ .get(sourceKey, collection);
28
+ if (receipt && (receipt.snapshot_hash !== snapshotHash || receipt.bindings_hash !== bindingsHash))
29
+ conflicts.add("the source or binding decisions changed after a completed transfer; keep the original store selected");
30
+ if (target && target.scope !== snapshot.collection.scope)
31
+ conflicts.add("the destination collection has a different scope or an organization binding");
32
+ for (const entity of snapshot.entities) {
33
+ if (entity.kind !== "document" || !target)
34
+ continue;
35
+ const existing = database
36
+ .prepare("SELECT * FROM documents WHERE account_id=? AND external_id=?")
37
+ .get(Number(target.id), String(entity.values.external_id));
38
+ if (!existing)
39
+ continue;
40
+ mappings.set(entity.key, { type: "document", id: Number(existing.id) });
41
+ for (const field of ["body", "content_hash", "deleted_at", "revision"])
42
+ if (existing[field] !== entity.values[field])
43
+ conflicts.add(`destination content differs for ${entity.key}`);
44
+ for (const revision of entity.revisions) {
45
+ const row = database
46
+ .prepare("SELECT body FROM document_revisions WHERE document_id=? AND revision=?")
47
+ .get(Number(existing.id), Number(revision.revision));
48
+ if (row && row.body !== revision.body)
49
+ conflicts.add(`destination revision differs for ${entity.key}`);
50
+ }
51
+ }
52
+ if (receipt && receipt.snapshot_hash === snapshotHash && receipt.bindings_hash === bindingsHash)
53
+ for (const [key, value] of Object.entries(JSON.parse(String(receipt.reference_map))))
54
+ mappings.set(key, value);
55
+ const personPlan = planPeople(database, snapshot, mappings, bindings, conflicts);
56
+ const knownBindings = new Set(snapshot.external.map((item) => item.reference));
57
+ for (const key of Object.keys(bindings))
58
+ if (!knownBindings.has(key))
59
+ throw new CliError("validation_error", "a transfer binding names a reference outside the source annotation graph");
60
+ for (const external of snapshot.external) {
61
+ let found = mappings.get(external.key);
62
+ if (personPlan.creatable.has(external.key) && bindings[external.reference] === undefined)
63
+ continue;
64
+ if (external.key === `account:${String(snapshot.collection.id)}` && bindings[external.reference] === undefined) {
65
+ if (target)
66
+ mappings.set(external.key, { type: "account", id: Number(target.id) });
67
+ continue;
68
+ }
69
+ const binding = bindings[external.reference];
70
+ if (binding !== undefined)
71
+ found = thingOf(database, binding);
72
+ else if (external.owner)
73
+ found = ownerPerson(database);
74
+ else if (external.bot) {
75
+ const bot = database.prepare("SELECT id,kind FROM bots WHERE name=?").get(external.bot.name);
76
+ if (bot && bot.kind !== external.bot.kind)
77
+ conflicts.add(`destination bot kind differs for ${external.reference}`);
78
+ if (bot)
79
+ found = { type: "bot", id: Number(bot.id) };
80
+ // A new author handle is created without copying credentials, settings or metadata.
81
+ else
82
+ continue;
83
+ }
84
+ else if (external.collection && external.external_id) {
85
+ const row = database
86
+ .prepare("SELECT d.id FROM documents d JOIN accounts a ON a.id=d.account_id WHERE a.provider='folder' AND a.name=? AND d.external_id=? AND d.deleted_at IS NULL")
87
+ .get(external.collection, external.external_id);
88
+ if (row)
89
+ found = { type: "document", id: Number(row.id) };
90
+ }
91
+ else if (["message", "chat", "identity", "email", "email_thread"].includes(external.kind))
92
+ found = thingOf(database, external.reference);
93
+ if (found?.type === "document" && external.document_fingerprint) {
94
+ const content = database.prepare("SELECT body,content_hash,deleted_at FROM documents WHERE id=?").get(found.id);
95
+ if (!content || digest(content) !== external.document_fingerprint)
96
+ conflicts.add(`destination evidence content differs for ${external.reference}`);
97
+ }
98
+ if (found && found.type === external.kind && stateOfThing(database, found) === "available")
99
+ mappings.set(external.key, found);
100
+ else
101
+ missing.add(external.reference);
102
+ }
103
+ const organization = snapshot.collection.organization_id == null
104
+ ? null
105
+ : mappings.get(`organization:${String(snapshot.collection.organization_id)}`)?.id;
106
+ if (target && target.organization_id !== organization)
107
+ conflicts.add("the destination collection has a different organization binding");
108
+ for (const tagging of snapshot.taggings) {
109
+ const tag = canonicalTagNamed(database, String(tagging.tag_name));
110
+ if (tag && tag.name !== tagging.tag_name)
111
+ conflicts.add(`destination vocabulary resolves source tag ${String(tagging.tag_id)} to another canonical label`);
112
+ if (tag && tag.kind !== tagging.tag_kind)
113
+ conflicts.add(`destination tag kind differs for source tag ${String(tagging.tag_id)}`);
114
+ const subject = mappings.get(`${String(tagging.taggable_type)}:${String(tagging.taggable_id)}`);
115
+ if (!subject)
116
+ continue;
117
+ const existing = tag &&
118
+ database
119
+ .prepare("SELECT source,main FROM taggings WHERE tag_id=? AND taggable_type=? AND taggable_id=?")
120
+ .get(Number(tag.id), subject.type, subject.id);
121
+ if (existing && (existing.source !== tagging.source || existing.main !== tagging.main))
122
+ conflicts.add(`destination tag assignment differs for ${subject.type}:${subject.id}`);
123
+ if (tagging.main === 1) {
124
+ const main = database
125
+ .prepare("SELECT tag_id FROM taggings WHERE taggable_type=? AND taggable_id=? AND main=1")
126
+ .get(subject.type, subject.id);
127
+ if (main && Number(main.tag_id) !== Number(tag?.id))
128
+ conflicts.add(`destination primary topic differs for ${subject.type}:${subject.id}`);
129
+ }
130
+ }
131
+ for (const alias of snapshot.aliases) {
132
+ const sourceTag = snapshot.taggings.find((tagging) => tagging.tag_id === alias.aliasable_id);
133
+ const named = canonicalTagNamed(database, String(alias.name));
134
+ const targetTag = sourceTag && canonicalTagNamed(database, String(sourceTag.tag_name));
135
+ if (named && named.id !== targetTag?.id)
136
+ conflicts.add(`destination alias conflicts with source tag ${String(alias.aliasable_id)}`);
137
+ if (targetTag && alias.display === 1) {
138
+ const displayed = database
139
+ .prepare("SELECT name_folded FROM aliases WHERE aliasable_type='tag' AND aliasable_id=? AND account_id IS NULL AND display=1")
140
+ .get(targetTag.id);
141
+ if (displayed && displayed.name_folded !== alias.name_folded)
142
+ conflicts.add(`destination display alias conflicts with source tag ${String(alias.aliasable_id)}`);
143
+ }
144
+ }
145
+ const counts = {
146
+ documents: snapshot.entities.filter((item) => item.kind === "document").length,
147
+ notes: snapshot.entities.filter((item) => item.kind === "note").length,
148
+ memories: snapshot.entities.filter((item) => item.kind === "memory").length,
149
+ facts: snapshot.entities.filter((item) => item.kind === "fact").length,
150
+ tags: snapshot.taggings.length,
151
+ links: snapshot.links.length,
152
+ people: personPlan.people,
153
+ identities: personPlan.identities,
154
+ authors: snapshot.external.filter((item) => item.bot && !mappings.has(item.key)).length,
155
+ aliases: snapshot.aliases.length,
156
+ };
157
+ if (receipt && conflicts.size === 0) {
158
+ for (const [key, value] of Object.entries(JSON.parse(String(receipt.reference_map)))) {
159
+ if (stateOfThing(database, value) === "unavailable")
160
+ conflicts.add("a transferred destination record is missing");
161
+ mappings.set(key, value);
162
+ }
163
+ }
164
+ const fingerprint = digest({
165
+ sourceKey,
166
+ snapshotHash,
167
+ bindingsHash,
168
+ collection: target?.id ?? null,
169
+ mappings: [...mappings.entries()].sort(([a], [b]) => a.localeCompare(b)),
170
+ conflicts: [...conflicts],
171
+ missing: [...missing],
172
+ });
173
+ return {
174
+ preview: {
175
+ fingerprint,
176
+ source_documents: snapshot.entities
177
+ .filter((entity) => entity.kind === "document")
178
+ .map((entity) => ({
179
+ external_id: String(entity.values.external_id),
180
+ content_hash: entity.values.content_hash == null ? null : String(entity.values.content_hash),
181
+ }))
182
+ .sort((a, b) => a.external_id.localeCompare(b.external_id)),
183
+ counts,
184
+ missing_bindings: [...missing].sort(),
185
+ conflicts: [...conflicts].sort(),
186
+ already_transferred: Boolean(receipt) && conflicts.size === 0 && missing.size === 0,
187
+ ready: conflicts.size === 0 && missing.size === 0,
188
+ },
189
+ mappings,
190
+ snapshotHash,
191
+ bindingsHash,
192
+ ...(target ? { collectionId: Number(target.id) } : {}),
193
+ };
194
+ };
195
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/store/sqlite/document-transfer/plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { TransferSnapshot } from "../../document-transfer/model.js";
2
+ import type { CacheDatabase } from "../../driver.js";
3
+ export declare const TRANSFER_TABLES: {
4
+ readonly document: "documents";
5
+ readonly note: "notes";
6
+ readonly memory: "memories";
7
+ readonly fact: "facts";
8
+ };
9
+ export declare const transferSnapshot: (database: CacheDatabase, collection: string) => TransferSnapshot;
10
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../src/store/sqlite/document-transfer/snapshot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,gBAAgB,EAEjB,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAIpD,eAAO,MAAM,eAAe;aAAK,QAAQ,EAAE,WAAW;aAAE,IAAI,EAAE,OAAO;aAAE,MAAM,EAAE,UAAU;aAAE,IAAI,EAAE,OAAO;CAAW,CAAA;AAiBnH,eAAO,MAAM,gBAAgB,aAAc,aAAa,cAAc,MAAM,KAAG,gBA+K3E,CAAA"}
@@ -0,0 +1,183 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { digest } from "../../document-transfer/digest.js";
3
+ import { referenceOfThing, storedThing } from "../things.js";
4
+ import { read } from "../transaction.js";
5
+ export const TRANSFER_TABLES = { document: "documents", note: "notes", memory: "memories", fact: "facts" };
6
+ const MAX_ENTITIES = 1000;
7
+ const MAX_AUXILIARY = 10000;
8
+ const MAX_BYTES = 16 * 1024 * 1024;
9
+ const keyOf = (type, id) => `${String(type)}:${String(id)}`;
10
+ const isAnnotation = (type) => type === "note" || type === "memory" || type === "fact";
11
+ const valuesOf = (row) => Object.fromEntries(Object.entries(row).map(([key, value]) => {
12
+ if (value !== null && typeof value !== "string" && typeof value !== "number")
13
+ throw new CliError("configuration_error", "the source contains an unsupported annotation value");
14
+ return [key, value];
15
+ }));
16
+ export const transferSnapshot = (database, collection) => read(database, () => {
17
+ const accounts = database
18
+ .prepare("SELECT * FROM accounts WHERE provider='folder' AND name=? ORDER BY id LIMIT 2")
19
+ .all(collection);
20
+ if (accounts.length > 1)
21
+ throw new CliError("configuration_error", "the source has duplicate document collection identities; select a repaired copy before transferring");
22
+ const account = accounts[0];
23
+ if (!account)
24
+ throw new CliError("not_found", "the source store does not hold the requested document collection");
25
+ if (!database.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='facts'").get())
26
+ throw new CliError("configuration_error", "the source store needs schema 2 or newer; upgrade a separate copy before transferring");
27
+ let bytes = 0;
28
+ const bounded = (row) => {
29
+ const values = valuesOf(row);
30
+ bytes += Buffer.byteLength(JSON.stringify(values));
31
+ if (bytes > MAX_BYTES)
32
+ throw new CliError("validation_error", "annotation transfer exceeds its 16 MiB snapshot limit");
33
+ return values;
34
+ };
35
+ const entities = new Map();
36
+ const links = new Map();
37
+ const taggings = new Map();
38
+ const dependencies = new Map();
39
+ const depend = (type, id) => {
40
+ if (type != null && id != null)
41
+ dependencies.set(keyOf(type, id), { type: String(type), id: Number(id) });
42
+ };
43
+ const add = (kind, row) => {
44
+ const key = keyOf(kind, row.id);
45
+ if (entities.has(key))
46
+ return;
47
+ if (entities.size >= MAX_ENTITIES)
48
+ throw new CliError("validation_error", "annotation transfer exceeds 1000 document and annotation records");
49
+ const values = bounded(row);
50
+ entities.set(key, { key, kind, values, revisions: [] });
51
+ };
52
+ for (const row of database
53
+ .prepare("SELECT * FROM documents WHERE account_id=? ORDER BY id LIMIT 1001")
54
+ .all(Number(account.id)))
55
+ add("document", row);
56
+ for (const entity of entities.values()) {
57
+ const { kind, values } = entity;
58
+ for (const [child, subject] of [
59
+ ["note", "notable"],
60
+ ["memory", "subject"],
61
+ ["fact", "subject"],
62
+ ]) {
63
+ for (const row of database
64
+ .prepare(`SELECT * FROM ${TRANSFER_TABLES[child]} WHERE ${subject}_type=? AND ${subject}_id=? ORDER BY id LIMIT 1001`)
65
+ .all(kind, Number(values.id)))
66
+ add(child, row);
67
+ }
68
+ for (const row of database
69
+ .prepare("SELECT * FROM links WHERE (from_type=? AND from_id=?) OR (to_type=? AND to_id=?) ORDER BY id LIMIT 10001")
70
+ .all(kind, Number(values.id), kind, Number(values.id))) {
71
+ if (links.has(String(row.id)))
72
+ continue;
73
+ if (links.size >= MAX_AUXILIARY)
74
+ throw new CliError("validation_error", "annotation transfer exceeds 10000 relationships");
75
+ links.set(String(row.id), bounded(row));
76
+ for (const side of ["from", "to"]) {
77
+ const type = row[`${side}_type`], id = row[`${side}_id`];
78
+ depend(type, id);
79
+ if (isAnnotation(type)) {
80
+ const related = database.prepare(`SELECT * FROM ${TRANSFER_TABLES[type]} WHERE id=?`).get(Number(id));
81
+ if (related)
82
+ add(type, related);
83
+ }
84
+ }
85
+ }
86
+ for (const row of database
87
+ .prepare("SELECT g.*,t.name AS tag_name,t.kind AS tag_kind FROM taggings g JOIN tags t ON t.id=g.tag_id WHERE g.taggable_type=? AND g.taggable_id=? ORDER BY g.id LIMIT 10001")
88
+ .all(kind, Number(values.id))) {
89
+ if (taggings.size >= MAX_AUXILIARY)
90
+ throw new CliError("validation_error", "annotation transfer exceeds 10000 tag assignments");
91
+ taggings.set(String(row.id), bounded(row));
92
+ depend(row.author_type, row.author_id);
93
+ }
94
+ for (const prefix of ["notable", "subject", "author", "confirmed_by"])
95
+ depend(values[`${prefix}_type`], values[`${prefix}_id`]);
96
+ if (values.project_id != null)
97
+ depend("project", values.project_id);
98
+ if (kind === "memory" || kind === "fact")
99
+ for (const next of database
100
+ .prepare(`SELECT * FROM ${TRANSFER_TABLES[kind]} WHERE supersedes_id=? ORDER BY id LIMIT 1001`)
101
+ .all(Number(values.id)))
102
+ add(kind, next);
103
+ if (values.supersedes_id != null) {
104
+ depend(kind, values.supersedes_id);
105
+ const previous = database.prepare(`SELECT * FROM ${TRANSFER_TABLES[kind]} WHERE id=?`).get(values.supersedes_id);
106
+ if (previous)
107
+ add(kind, previous);
108
+ }
109
+ if (kind === "document" || kind === "note") {
110
+ const table = kind === "document" ? "document_revisions" : "note_revisions";
111
+ const rows = database
112
+ .prepare(`SELECT * FROM ${table} WHERE ${kind}_id=? ORDER BY id LIMIT 10001`)
113
+ .all(Number(values.id));
114
+ if (rows.length > MAX_AUXILIARY)
115
+ throw new CliError("validation_error", "annotation transfer exceeds 10000 revisions on one record");
116
+ entity.revisions = rows.map(bounded);
117
+ }
118
+ }
119
+ if (account.organization_id != null)
120
+ depend("organization", account.organization_id);
121
+ const external = [];
122
+ const aliases = [];
123
+ for (const tag of new Set([...taggings.values()].map((item) => Number(item.tag_id))))
124
+ for (const alias of database
125
+ .prepare("SELECT * FROM aliases WHERE aliasable_type='tag' AND aliasable_id=? AND account_id IS NULL ORDER BY id LIMIT 10001")
126
+ .all(tag)) {
127
+ if (aliases.length >= MAX_AUXILIARY)
128
+ throw new CliError("validation_error", "annotation transfer exceeds 10000 label aliases");
129
+ aliases.push(bounded(alias));
130
+ }
131
+ for (const [key, thing] of dependencies) {
132
+ if (entities.has(key))
133
+ continue;
134
+ const reference = referenceOfThing(database, storedThing(thing.type, thing.id)) ?? key;
135
+ const item = { key, reference, kind: thing.type };
136
+ if (thing.type === "person") {
137
+ const person = database.prepare("SELECT name,owner FROM persons WHERE id=?").get(thing.id);
138
+ if (person) {
139
+ item.owner = person.owner === 1;
140
+ item.person = {
141
+ name: person.name == null ? null : String(person.name),
142
+ identities: database
143
+ .prepare("SELECT i.id,i.provider,i.external_id,i.name,i.username,i.bot,i.created_at,i.updated_at,l.method AS link_method,l.confidence AS link_confidence,l.author AS link_author,l.source AS link_source,l.created_at AS link_created_at,l.updated_at AS link_updated_at FROM identities i JOIN identity_links l ON l.identity_id=i.id WHERE l.person_id=? ORDER BY i.id LIMIT 10001")
144
+ .all(thing.id)
145
+ .map(bounded),
146
+ };
147
+ if (item.person.identities.length > MAX_AUXILIARY)
148
+ throw new CliError("validation_error", "annotation transfer exceeds 10000 identities for one person");
149
+ }
150
+ }
151
+ if (thing.type === "identity") {
152
+ const identity = database.prepare("SELECT person_id FROM identity_links WHERE identity_id=?").get(thing.id);
153
+ if (identity?.person_id != null)
154
+ depend("person", identity.person_id);
155
+ }
156
+ if (thing.type === "bot") {
157
+ const bot = database.prepare("SELECT name,kind FROM bots WHERE id=?").get(thing.id);
158
+ if (bot)
159
+ item.bot = { name: String(bot.name), kind: String(bot.kind) };
160
+ }
161
+ if (thing.type === "document") {
162
+ const doc = database
163
+ .prepare("SELECT a.name AS collection,d.external_id,d.body,d.content_hash,d.deleted_at FROM documents d JOIN accounts a ON a.id=d.account_id WHERE d.id=? AND a.provider='folder'")
164
+ .get(thing.id);
165
+ if (doc) {
166
+ item.collection = String(doc.collection);
167
+ item.external_id = String(doc.external_id);
168
+ const content = bounded({ body: doc.body, content_hash: doc.content_hash, deleted_at: doc.deleted_at });
169
+ item.document_fingerprint = digest(content);
170
+ }
171
+ }
172
+ external.push(item);
173
+ }
174
+ return {
175
+ collection: bounded(account),
176
+ entities: [...entities.values()].sort((a, b) => a.key.localeCompare(b.key)),
177
+ links: [...links.values()].sort((a, b) => Number(a.id) - Number(b.id)),
178
+ taggings: [...taggings.values()].sort((a, b) => Number(a.id) - Number(b.id)),
179
+ external: external.sort((a, b) => a.key.localeCompare(b.key)),
180
+ aliases,
181
+ };
182
+ });
183
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../src/store/sqlite/document-transfer/snapshot.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,4FAA4F;AAC5F,eAAO,MAAM,QAAQ,EAAE,aAAa,EAwBnC,CAAA;AAED,eAAO,MAAM,mBAAmB,cACpB,aAAa,EAAE,cACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,KAClD,SAAS,EAeX,CAAA"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,4FAA4F;AAC5F,eAAO,MAAM,QAAQ,EAAE,aAAa,EAyBnC,CAAA;AAED,eAAO,MAAM,mBAAmB,cACpB,aAAa,EAAE,cACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,KAClD,SAAS,EAeX,CAAA"}
@@ -24,6 +24,7 @@ export const MANIFEST = [
24
24
  { name: "20261016205235_version-18-places", version: 18, minCompatible: 1 },
25
25
  { name: "20261017000856_version-19-mail-sender-score", version: 19, minCompatible: 1 },
26
26
  { name: "20261017095620_version-20-poll-votes", version: 20, minCompatible: 1 },
27
+ { name: "20261017141028_version-21-document-annotation-transfers", version: 21, minCompatible: 1 },
27
28
  ];
28
29
  export const generatedMigrations = (manifest = MANIFEST, generated = GENERATED) => {
29
30
  const migrations = [];
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/store/sqlite/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/store/sqlite/manifest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.generated.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/migrations.generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,EA0f7D,CAAA"}
1
+ {"version":3,"file":"migrations.generated.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/migrations.generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,EAggB7D,CAAA"}
@@ -504,6 +504,12 @@ export const GENERATED = [
504
504
  "CREATE TABLE `poll_votes` (\n\t`id` integer PRIMARY KEY,\n\t`chat_id` integer NOT NULL,\n\t`message_external_id` text NOT NULL,\n\t`identity_id` integer NOT NULL,\n\t`answers` text NOT NULL,\n\t`voted_at` integer NOT NULL,\n\t`created_at` integer NOT NULL,\n\t`updated_at` integer NOT NULL,\n\tCONSTRAINT `fk_poll_votes_chat_id_chats_id_fk` FOREIGN KEY (`chat_id`) REFERENCES `chats`(`id`),\n\tCONSTRAINT `fk_poll_votes_identity_id_identities_id_fk` FOREIGN KEY (`identity_id`) REFERENCES `identities`(`id`),\n\tCONSTRAINT `poll_votes_chat_id_message_external_id_identity_id_unique` UNIQUE(`chat_id`,`message_external_id`,`identity_id`)\n);",
505
505
  "CREATE INDEX `poll_votes_by_identity_id` ON `poll_votes` (`identity_id`);"
506
506
  ]
507
+ },
508
+ {
509
+ "name": "20261017141028_version-21-document-annotation-transfers",
510
+ "statements": [
511
+ "CREATE TABLE `document_annotation_transfers` (\n\t`source_key` text NOT NULL,\n\t`collection` text NOT NULL,\n\t`snapshot_hash` text NOT NULL,\n\t`bindings_hash` text NOT NULL,\n\t`reference_map` text NOT NULL,\n\t`created_at` integer NOT NULL,\n\tCONSTRAINT `document_annotation_transfers_pk` PRIMARY KEY(`source_key`, `collection`)\n);"
512
+ ]
507
513
  }
508
514
  ];
509
515
  //# sourceMappingURL=migrations.generated.js.map