@agent-wire/terminal 1.6.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 (80) hide show
  1. package/README.md +353 -0
  2. package/dist/api.d.ts +660 -0
  3. package/dist/api.js +1157 -0
  4. package/dist/api.js.map +1 -0
  5. package/dist/background-worker.d.ts +6 -0
  6. package/dist/background-worker.js +101 -0
  7. package/dist/background-worker.js.map +1 -0
  8. package/dist/cli.d.ts +2 -0
  9. package/dist/cli.js +940 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/config.d.ts +17 -0
  12. package/dist/config.js +36 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/help-pointer.d.ts +11 -0
  15. package/dist/help-pointer.js +10 -0
  16. package/dist/help-pointer.js.map +1 -0
  17. package/dist/identity.d.ts +40 -0
  18. package/dist/identity.js +193 -0
  19. package/dist/identity.js.map +1 -0
  20. package/dist/index.d.ts +5 -0
  21. package/dist/index.js +11 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/local-pull.d.ts +45 -0
  24. package/dist/local-pull.js +173 -0
  25. package/dist/local-pull.js.map +1 -0
  26. package/dist/lockfile.d.ts +16 -0
  27. package/dist/lockfile.js +78 -0
  28. package/dist/lockfile.js.map +1 -0
  29. package/dist/mcp-server.d.ts +43 -0
  30. package/dist/mcp-server.js +3159 -0
  31. package/dist/mcp-server.js.map +1 -0
  32. package/dist/response-shaper.d.ts +60 -0
  33. package/dist/response-shaper.js +893 -0
  34. package/dist/response-shaper.js.map +1 -0
  35. package/dist/slots.d.ts +65 -0
  36. package/dist/slots.js +128 -0
  37. package/dist/slots.js.map +1 -0
  38. package/dist/sync/diff.d.ts +17 -0
  39. package/dist/sync/diff.js +152 -0
  40. package/dist/sync/diff.js.map +1 -0
  41. package/dist/sync/hash.d.ts +11 -0
  42. package/dist/sync/hash.js +18 -0
  43. package/dist/sync/hash.js.map +1 -0
  44. package/dist/sync/index.d.ts +24 -0
  45. package/dist/sync/index.js +22 -0
  46. package/dist/sync/index.js.map +1 -0
  47. package/dist/sync/manifest.d.ts +29 -0
  48. package/dist/sync/manifest.js +59 -0
  49. package/dist/sync/manifest.js.map +1 -0
  50. package/dist/sync/match.d.ts +29 -0
  51. package/dist/sync/match.js +153 -0
  52. package/dist/sync/match.js.map +1 -0
  53. package/dist/sync/paginate.d.ts +16 -0
  54. package/dist/sync/paginate.js +34 -0
  55. package/dist/sync/paginate.js.map +1 -0
  56. package/dist/sync/preview.d.ts +16 -0
  57. package/dist/sync/preview.js +179 -0
  58. package/dist/sync/preview.js.map +1 -0
  59. package/dist/sync/pull.d.ts +23 -0
  60. package/dist/sync/pull.js +126 -0
  61. package/dist/sync/pull.js.map +1 -0
  62. package/dist/sync/push.d.ts +27 -0
  63. package/dist/sync/push.js +116 -0
  64. package/dist/sync/push.js.map +1 -0
  65. package/dist/sync/resolve.d.ts +19 -0
  66. package/dist/sync/resolve.js +42 -0
  67. package/dist/sync/resolve.js.map +1 -0
  68. package/dist/sync/types.d.ts +70 -0
  69. package/dist/sync/types.js +6 -0
  70. package/dist/sync/types.js.map +1 -0
  71. package/dist/sync/walk.d.ts +12 -0
  72. package/dist/sync/walk.js +155 -0
  73. package/dist/sync/walk.js.map +1 -0
  74. package/dist/wait-cli.d.ts +46 -0
  75. package/dist/wait-cli.js +280 -0
  76. package/dist/wait-cli.js.map +1 -0
  77. package/dist/worker.d.ts +14 -0
  78. package/dist/worker.js +252 -0
  79. package/dist/worker.js.map +1 -0
  80. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-shaper.js","sourceRoot":"","sources":["../src/response-shaper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Per-slot identity isolation for MCP processes — Mission #1.5-rev2.
3
+ *
4
+ * Replaces the shared `~/.wire-node/agents/*.json` cache (which was visible
5
+ * to every MCP process and was the cross-process leak vector) with per-slot
6
+ * config files at `~/.wire-node/slots/<slot>.json`, owned by exactly one
7
+ * MCP process at a time.
8
+ *
9
+ * The slot file schema is identical to the legacy AgentIdentity shape so
10
+ * migration is a structural copy, not a transform:
11
+ * { apiToken, agentId, pseudoId, operatorEmail, verificationStatus? }
12
+ *
13
+ * The pin is established by the first `wire_identify(name=X)` call in a
14
+ * process — the act of logging in IS the binding mechanism. See
15
+ * mcp-server.ts for the boot flow.
16
+ *
17
+ * Anchors: spec contribution playful/114/71 (UUID
18
+ * fda23c1d-6728-473c-9b66-32c31a8f18b5), Mission #1.7 reproduction
19
+ * report dm-74bfb7.
20
+ */
21
+ import type { AgentIdentity } from './identity.js';
22
+ export declare const SLOTS_DIR: string;
23
+ /**
24
+ * Slot file schema.
25
+ *
26
+ * Intentionally identical to AgentIdentity so migration from the legacy
27
+ * agents/ directory is a byte-for-byte copy. Add new fields here only
28
+ * with a documented migration path.
29
+ *
30
+ * Mission #1.5-rev2 schema audit: Jerry's audit-flag #2 (dm-083476).
31
+ * Confirmed 1:1 shape parity with AgentIdentity (identity.ts:14).
32
+ */
33
+ export type SlotConfig = AgentIdentity;
34
+ /**
35
+ * Load a slot config by name. Returns null if the file doesn't exist or
36
+ * is malformed. Read-only — callers MUST NOT use this as a side-channel
37
+ * to discover sibling slots.
38
+ */
39
+ export declare function loadSlotConfig(name: string): SlotConfig | null;
40
+ /**
41
+ * Persist a slot config. Creates the slots/ directory on first write
42
+ * with mode 0o700. The slot file itself is mode 0o600 (owner-only).
43
+ *
44
+ * Mission #1.5-rev2 audit-flag #1 (Jerry, dm-083476):
45
+ * recipient-resolution must NOT call this function. Only wire_identify
46
+ * should write slot state. If a future code path needs to refresh a
47
+ * stored token after a server-side rotation, document it explicitly.
48
+ */
49
+ export declare function saveSlotConfig(name: string, config: SlotConfig): void;
50
+ export declare function slotConfigExists(name: string): boolean;
51
+ /**
52
+ * One-time migration from legacy `~/.wire-node/agents/<name>.json` files
53
+ * to per-slot files at `~/.wire-node/slots/<slot>.json`.
54
+ *
55
+ * Idempotent: if the slots/ directory already exists with at least one
56
+ * slot file, this no-ops. Run on every MCP boot but only does work the
57
+ * first time post-upgrade.
58
+ *
59
+ * Schema fidelity: byte-for-byte JSON copy. The agents/ schema and the
60
+ * slots/ schema are deliberately identical (see SlotConfig type).
61
+ *
62
+ * Returns the count of slot files created (0 if migration was a no-op
63
+ * or no legacy files existed). For boot-time logging.
64
+ */
65
+ export declare function migrateLegacyAgentsToSlots(): number;
package/dist/slots.js ADDED
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Per-slot identity isolation for MCP processes — Mission #1.5-rev2.
3
+ *
4
+ * Replaces the shared `~/.wire-node/agents/*.json` cache (which was visible
5
+ * to every MCP process and was the cross-process leak vector) with per-slot
6
+ * config files at `~/.wire-node/slots/<slot>.json`, owned by exactly one
7
+ * MCP process at a time.
8
+ *
9
+ * The slot file schema is identical to the legacy AgentIdentity shape so
10
+ * migration is a structural copy, not a transform:
11
+ * { apiToken, agentId, pseudoId, operatorEmail, verificationStatus? }
12
+ *
13
+ * The pin is established by the first `wire_identify(name=X)` call in a
14
+ * process — the act of logging in IS the binding mechanism. See
15
+ * mcp-server.ts for the boot flow.
16
+ *
17
+ * Anchors: spec contribution playful/114/71 (UUID
18
+ * fda23c1d-6728-473c-9b66-32c31a8f18b5), Mission #1.7 reproduction
19
+ * report dm-74bfb7.
20
+ */
21
+ import { readFileSync, writeFileSync, mkdirSync, existsSync, readdirSync } from 'fs';
22
+ import { join } from 'path';
23
+ import { CONFIG_DIR } from './config.js';
24
+ export const SLOTS_DIR = join(CONFIG_DIR, 'slots');
25
+ const LEGACY_AGENTS_DIR = join(CONFIG_DIR, 'agents');
26
+ function sanitizeSlotName(name) {
27
+ // Same rules as identity.ts sanitizeName — preserve a-zA-Z0-9_-, lowercase.
28
+ // Lowercase is for filename only; the in-memory pin stores the original
29
+ // requested name for display/error messages.
30
+ return name.replace(/[^a-zA-Z0-9_-]/g, '_').toLowerCase();
31
+ }
32
+ function slotPath(name) {
33
+ return join(SLOTS_DIR, `${sanitizeSlotName(name)}.json`);
34
+ }
35
+ /**
36
+ * Load a slot config by name. Returns null if the file doesn't exist or
37
+ * is malformed. Read-only — callers MUST NOT use this as a side-channel
38
+ * to discover sibling slots.
39
+ */
40
+ export function loadSlotConfig(name) {
41
+ const filePath = slotPath(name);
42
+ if (!existsSync(filePath))
43
+ return null;
44
+ try {
45
+ const raw = readFileSync(filePath, 'utf-8');
46
+ const data = JSON.parse(raw);
47
+ if (!data.apiToken || !data.agentId || !data.pseudoId || !data.operatorEmail) {
48
+ return null;
49
+ }
50
+ return data;
51
+ }
52
+ catch {
53
+ return null;
54
+ }
55
+ }
56
+ /**
57
+ * Persist a slot config. Creates the slots/ directory on first write
58
+ * with mode 0o700. The slot file itself is mode 0o600 (owner-only).
59
+ *
60
+ * Mission #1.5-rev2 audit-flag #1 (Jerry, dm-083476):
61
+ * recipient-resolution must NOT call this function. Only wire_identify
62
+ * should write slot state. If a future code path needs to refresh a
63
+ * stored token after a server-side rotation, document it explicitly.
64
+ */
65
+ export function saveSlotConfig(name, config) {
66
+ mkdirSync(SLOTS_DIR, { recursive: true, mode: 0o700 });
67
+ const filePath = slotPath(name);
68
+ writeFileSync(filePath, JSON.stringify(config, null, 2), { encoding: 'utf-8', mode: 0o600 });
69
+ }
70
+ export function slotConfigExists(name) {
71
+ return existsSync(slotPath(name));
72
+ }
73
+ /**
74
+ * One-time migration from legacy `~/.wire-node/agents/<name>.json` files
75
+ * to per-slot files at `~/.wire-node/slots/<slot>.json`.
76
+ *
77
+ * Idempotent: if the slots/ directory already exists with at least one
78
+ * slot file, this no-ops. Run on every MCP boot but only does work the
79
+ * first time post-upgrade.
80
+ *
81
+ * Schema fidelity: byte-for-byte JSON copy. The agents/ schema and the
82
+ * slots/ schema are deliberately identical (see SlotConfig type).
83
+ *
84
+ * Returns the count of slot files created (0 if migration was a no-op
85
+ * or no legacy files existed). For boot-time logging.
86
+ */
87
+ export function migrateLegacyAgentsToSlots() {
88
+ // If slots/ already has files, migration already ran.
89
+ if (existsSync(SLOTS_DIR)) {
90
+ try {
91
+ const existing = readdirSync(SLOTS_DIR).filter((f) => f.endsWith('.json'));
92
+ if (existing.length > 0)
93
+ return 0;
94
+ }
95
+ catch {
96
+ // proceed with migration attempt
97
+ }
98
+ }
99
+ if (!existsSync(LEGACY_AGENTS_DIR))
100
+ return 0;
101
+ let migrated = 0;
102
+ let agentFiles;
103
+ try {
104
+ agentFiles = readdirSync(LEGACY_AGENTS_DIR).filter((f) => f.endsWith('.json'));
105
+ }
106
+ catch {
107
+ return 0;
108
+ }
109
+ for (const filename of agentFiles) {
110
+ try {
111
+ const raw = readFileSync(join(LEGACY_AGENTS_DIR, filename), 'utf-8');
112
+ const data = JSON.parse(raw);
113
+ if (!data.apiToken || !data.agentId || !data.pseudoId || !data.operatorEmail)
114
+ continue;
115
+ // Strip .json suffix to recover the slot name. Preserve original
116
+ // case from the filename — sanitizeSlotName will lowercase for the
117
+ // destination filename but the in-file payload is unchanged.
118
+ const slotName = filename.replace(/\.json$/i, '');
119
+ saveSlotConfig(slotName, data);
120
+ migrated++;
121
+ }
122
+ catch {
123
+ // Skip corrupt entries; they were already broken in the legacy cache.
124
+ }
125
+ }
126
+ return migrated;
127
+ }
128
+ //# sourceMappingURL=slots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slots.js","sourceRoot":"","sources":["../src/slots.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Diff engine — compares local files against remote documents.
3
+ * Isomorphic — no Node.js dependencies.
4
+ *
5
+ * Categorizes files into:
6
+ * - push_new: local file with no remote counterpart
7
+ * - push_update: local file changed since last sync (local ahead)
8
+ * - pull_new: remote doc with no local counterpart
9
+ * - pull_update: remote doc changed since last sync (remote ahead)
10
+ * - in_sync: local and remote match
11
+ * - conflicts: both sides changed since last sync
12
+ */
13
+ import type { LocalFile, RemoteDocument, SyncManifest, DiffResult } from './types.js';
14
+ /**
15
+ * Compute the full diff between local files and remote documents.
16
+ */
17
+ export declare function computeDiff(localFiles: Map<string, LocalFile>, remoteDocs: RemoteDocument[], manifest: SyncManifest | null): Promise<DiffResult>;
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Diff engine — compares local files against remote documents.
3
+ * Isomorphic — no Node.js dependencies.
4
+ *
5
+ * Categorizes files into:
6
+ * - push_new: local file with no remote counterpart
7
+ * - push_update: local file changed since last sync (local ahead)
8
+ * - pull_new: remote doc with no local counterpart
9
+ * - pull_update: remote doc changed since last sync (remote ahead)
10
+ * - in_sync: local and remote match
11
+ * - conflicts: both sides changed since last sync
12
+ */
13
+ import { matchDocuments } from './match.js';
14
+ function formatSize(bytes) {
15
+ if (bytes < 1024)
16
+ return `${bytes} B`;
17
+ if (bytes < 1024 * 1024)
18
+ return `${(bytes / 1024).toFixed(1)} KB`;
19
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
20
+ }
21
+ /**
22
+ * Compute the full diff between local files and remote documents.
23
+ */
24
+ export async function computeDiff(localFiles, remoteDocs, manifest) {
25
+ const result = {
26
+ push_new: [],
27
+ push_update: [],
28
+ pull_new: [],
29
+ pull_update: [],
30
+ in_sync: [],
31
+ conflicts: [],
32
+ };
33
+ const matches = matchDocuments(localFiles, remoteDocs, manifest);
34
+ for (const [relPath, match] of matches) {
35
+ const { local, remote } = match;
36
+ const warnings = [];
37
+ // Case 1: Local only — push new
38
+ if (local && !remote) {
39
+ result.push_new.push({
40
+ relativePath: relPath,
41
+ localFile: local,
42
+ state: 'local_only',
43
+ sizeInfo: formatSize(local.sizeBytes),
44
+ warnings,
45
+ });
46
+ continue;
47
+ }
48
+ // Case 2: Remote only — pull new
49
+ if (!local && remote) {
50
+ result.pull_new.push({
51
+ relativePath: relPath,
52
+ remoteDoc: remote,
53
+ state: 'remote_only',
54
+ warnings,
55
+ });
56
+ continue;
57
+ }
58
+ // Case 3: Both exist — compare hashes
59
+ if (local && remote) {
60
+ const localHash = local.hash;
61
+ const remoteHash = remote.body_hash;
62
+ // Hashes match — in sync
63
+ if (localHash === remoteHash) {
64
+ result.in_sync.push({
65
+ relativePath: relPath,
66
+ localFile: local,
67
+ remoteDoc: remote,
68
+ state: 'in_sync',
69
+ sizeInfo: formatSize(local.sizeBytes),
70
+ warnings,
71
+ });
72
+ continue;
73
+ }
74
+ // Hashes differ — check manifest to determine direction
75
+ const manifestEntry = manifest?.files[relPath];
76
+ if (manifestEntry) {
77
+ const localChanged = localHash !== manifestEntry.local_hash;
78
+ const remoteChanged = remoteHash !== manifestEntry.remote_hash;
79
+ if (localChanged && remoteChanged) {
80
+ // Both changed — conflict
81
+ result.conflicts.push({
82
+ relativePath: relPath,
83
+ localFile: local,
84
+ remoteDoc: remote,
85
+ state: 'conflict',
86
+ sizeInfo: formatSize(local.sizeBytes),
87
+ warnings: [...warnings, 'Both local and remote have changed since last sync'],
88
+ });
89
+ }
90
+ else if (localChanged) {
91
+ // Only local changed — push update
92
+ if (remote.status === 'published') {
93
+ warnings.push('Published document — will create new version');
94
+ }
95
+ if (remote.anchored) {
96
+ warnings.push('Anchored document — new version will reference anchored original');
97
+ }
98
+ if (remote.status === 'published' && remote.anchored) {
99
+ warnings.push(`Published + Anchored — will create v${remote.version_number + 1}`);
100
+ }
101
+ result.push_update.push({
102
+ relativePath: relPath,
103
+ localFile: local,
104
+ remoteDoc: remote,
105
+ state: 'local_ahead',
106
+ sizeInfo: formatSize(local.sizeBytes),
107
+ warnings,
108
+ });
109
+ }
110
+ else if (remoteChanged) {
111
+ // Only remote changed — pull update
112
+ result.pull_update.push({
113
+ relativePath: relPath,
114
+ localFile: local,
115
+ remoteDoc: remote,
116
+ state: 'remote_ahead',
117
+ sizeInfo: formatSize(local.sizeBytes),
118
+ warnings,
119
+ });
120
+ }
121
+ }
122
+ else {
123
+ // No manifest entry — first sync with existing content on both sides
124
+ // Treat as conflict since we can't determine direction
125
+ if (remote.status === 'published') {
126
+ warnings.push('Published document — resolve conflict carefully');
127
+ }
128
+ if (remote.anchored) {
129
+ warnings.push('Anchored document — content is cryptographically committed');
130
+ }
131
+ result.conflicts.push({
132
+ relativePath: relPath,
133
+ localFile: local,
134
+ remoteDoc: remote,
135
+ state: 'conflict',
136
+ sizeInfo: formatSize(local.sizeBytes),
137
+ warnings: [...warnings, 'No previous sync record — cannot determine change direction'],
138
+ });
139
+ }
140
+ }
141
+ }
142
+ // Sort each category by path for deterministic output
143
+ const sortByPath = (a, b) => a.relativePath.localeCompare(b.relativePath);
144
+ result.push_new.sort(sortByPath);
145
+ result.push_update.sort(sortByPath);
146
+ result.pull_new.sort(sortByPath);
147
+ result.pull_update.sort(sortByPath);
148
+ result.in_sync.sort(sortByPath);
149
+ result.conflicts.sort(sortByPath);
150
+ return result;
151
+ }
152
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/sync/diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Isomorphic SHA-256 hashing via Web Crypto API.
3
+ * Produces identical output to computeBodyHash in corpus-validation.ts.
4
+ * Works in Node.js >= 18 and all modern browsers.
5
+ */
6
+ /**
7
+ * Compute SHA-256 hash of a string. Returns lowercase hex.
8
+ * Algorithm: TextEncoder → SHA-256 → hex string.
9
+ * Must match server-side computeBodyHash exactly.
10
+ */
11
+ export declare function computeHash(content: string): Promise<string>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Isomorphic SHA-256 hashing via Web Crypto API.
3
+ * Produces identical output to computeBodyHash in corpus-validation.ts.
4
+ * Works in Node.js >= 18 and all modern browsers.
5
+ */
6
+ /**
7
+ * Compute SHA-256 hash of a string. Returns lowercase hex.
8
+ * Algorithm: TextEncoder → SHA-256 → hex string.
9
+ * Must match server-side computeBodyHash exactly.
10
+ */
11
+ export async function computeHash(content) {
12
+ const encoder = new TextEncoder();
13
+ const data = encoder.encode(content);
14
+ const hashBuffer = await crypto.subtle.digest('SHA-256', data);
15
+ const hashArray = Array.from(new Uint8Array(hashBuffer));
16
+ return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
17
+ }
18
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/sync/hash.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe;IAC/C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Wire Corpus Sync Engine — public exports.
3
+ *
4
+ * Isomorphic modules (work in Node.js and browsers):
5
+ * hash, diff, match, manifest, preview, paginate, resolve, types
6
+ *
7
+ * Node.js-only modules (use fs):
8
+ * walk, push, pull
9
+ */
10
+ export type { SyncState, SyncFileEntry, SyncManifest, LocalFile, RemoteDocument, DiffEntry, DiffResult, PreviewOutput, } from './types.js';
11
+ export { computeHash } from './hash.js';
12
+ export { computeDiff } from './diff.js';
13
+ export { normalizeTitle, matchDocuments } from './match.js';
14
+ export type { MatchResult } from './match.js';
15
+ export { parseManifest, serializeManifest, updateManifest } from './manifest.js';
16
+ export { generatePreview, generatePreviewJson } from './preview.js';
17
+ export { paginateAll } from './paginate.js';
18
+ export { resolveConflicts } from './resolve.js';
19
+ export type { ConflictResolution } from './resolve.js';
20
+ export { walkDirectory } from './walk.js';
21
+ export { pushFiles } from './push.js';
22
+ export type { PushResult } from './push.js';
23
+ export { pullFiles } from './pull.js';
24
+ export type { PullResult } from './pull.js';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Wire Corpus Sync Engine — public exports.
3
+ *
4
+ * Isomorphic modules (work in Node.js and browsers):
5
+ * hash, diff, match, manifest, preview, paginate, resolve, types
6
+ *
7
+ * Node.js-only modules (use fs):
8
+ * walk, push, pull
9
+ */
10
+ // ── Isomorphic modules ──────────────────────────────────────
11
+ export { computeHash } from './hash.js';
12
+ export { computeDiff } from './diff.js';
13
+ export { normalizeTitle, matchDocuments } from './match.js';
14
+ export { parseManifest, serializeManifest, updateManifest } from './manifest.js';
15
+ export { generatePreview, generatePreviewJson } from './preview.js';
16
+ export { paginateAll } from './paginate.js';
17
+ export { resolveConflicts } from './resolve.js';
18
+ // ── Node.js-only modules ────────────────────────────────────
19
+ export { walkDirectory } from './walk.js';
20
+ export { pushFiles } from './push.js';
21
+ export { pullFiles } from './pull.js';
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,+DAA+D;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,+DAA+D;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Sync manifest read/write.
3
+ * Isomorphic — no fs dependency. Accepts and returns strings.
4
+ * The manifest file (.wire-sync.json) tracks state between syncs.
5
+ */
6
+ import type { SyncManifest } from './types.js';
7
+ /**
8
+ * Parse a manifest JSON string into a SyncManifest.
9
+ * Throws on invalid JSON or missing required fields.
10
+ */
11
+ export declare function parseManifest(json: string): SyncManifest;
12
+ /**
13
+ * Serialize a SyncManifest to a formatted JSON string.
14
+ */
15
+ export declare function serializeManifest(manifest: SyncManifest): string;
16
+ /**
17
+ * Update manifest with new sync entries.
18
+ * Merges new entries into existing manifest, updating timestamps.
19
+ */
20
+ export declare function updateManifest(manifest: SyncManifest, entries: Array<{
21
+ relativePath: string;
22
+ documentId: string;
23
+ localHash: string;
24
+ remoteHash: string;
25
+ remoteStatus: 'draft' | 'published' | 'retracted';
26
+ remoteAnchored: boolean;
27
+ remoteVersionNumber: number;
28
+ remoteWordCount: number;
29
+ }>): SyncManifest;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Sync manifest read/write.
3
+ * Isomorphic — no fs dependency. Accepts and returns strings.
4
+ * The manifest file (.wire-sync.json) tracks state between syncs.
5
+ */
6
+ /**
7
+ * Parse a manifest JSON string into a SyncManifest.
8
+ * Throws on invalid JSON or missing required fields.
9
+ */
10
+ export function parseManifest(json) {
11
+ const raw = JSON.parse(json);
12
+ if (!raw.corpus_slug || typeof raw.corpus_slug !== 'string') {
13
+ throw new Error('Invalid manifest: missing corpus_slug');
14
+ }
15
+ if (!raw.corpus_id || typeof raw.corpus_id !== 'string') {
16
+ throw new Error('Invalid manifest: missing corpus_id');
17
+ }
18
+ return {
19
+ corpus_slug: raw.corpus_slug,
20
+ corpus_id: raw.corpus_id,
21
+ last_sync: raw.last_sync || new Date().toISOString(),
22
+ files: raw.files || {},
23
+ };
24
+ }
25
+ /**
26
+ * Serialize a SyncManifest to a formatted JSON string.
27
+ */
28
+ export function serializeManifest(manifest) {
29
+ return JSON.stringify(manifest, null, 2);
30
+ }
31
+ /**
32
+ * Update manifest with new sync entries.
33
+ * Merges new entries into existing manifest, updating timestamps.
34
+ */
35
+ export function updateManifest(manifest, entries) {
36
+ const now = new Date().toISOString();
37
+ const updatedFiles = { ...manifest.files };
38
+ for (const entry of entries) {
39
+ const status = entry.localHash === entry.remoteHash ? 'in_sync' : 'conflict';
40
+ const fileEntry = {
41
+ document_id: entry.documentId,
42
+ local_hash: entry.localHash,
43
+ remote_hash: entry.remoteHash,
44
+ remote_status: entry.remoteStatus,
45
+ remote_anchored: entry.remoteAnchored,
46
+ remote_version_number: entry.remoteVersionNumber,
47
+ remote_word_count: entry.remoteWordCount,
48
+ last_synced_at: now,
49
+ status,
50
+ };
51
+ updatedFiles[entry.relativePath] = fileEntry;
52
+ }
53
+ return {
54
+ ...manifest,
55
+ last_sync: now,
56
+ files: updatedFiles,
57
+ };
58
+ }
59
+ //# sourceMappingURL=manifest.js.map