@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.
- package/README.md +353 -0
- package/dist/api.d.ts +660 -0
- package/dist/api.js +1157 -0
- package/dist/api.js.map +1 -0
- package/dist/background-worker.d.ts +6 -0
- package/dist/background-worker.js +101 -0
- package/dist/background-worker.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +940 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.js +36 -0
- package/dist/config.js.map +1 -0
- package/dist/help-pointer.d.ts +11 -0
- package/dist/help-pointer.js +10 -0
- package/dist/help-pointer.js.map +1 -0
- package/dist/identity.d.ts +40 -0
- package/dist/identity.js +193 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/local-pull.d.ts +45 -0
- package/dist/local-pull.js +173 -0
- package/dist/local-pull.js.map +1 -0
- package/dist/lockfile.d.ts +16 -0
- package/dist/lockfile.js +78 -0
- package/dist/lockfile.js.map +1 -0
- package/dist/mcp-server.d.ts +43 -0
- package/dist/mcp-server.js +3159 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/response-shaper.d.ts +60 -0
- package/dist/response-shaper.js +893 -0
- package/dist/response-shaper.js.map +1 -0
- package/dist/slots.d.ts +65 -0
- package/dist/slots.js +128 -0
- package/dist/slots.js.map +1 -0
- package/dist/sync/diff.d.ts +17 -0
- package/dist/sync/diff.js +152 -0
- package/dist/sync/diff.js.map +1 -0
- package/dist/sync/hash.d.ts +11 -0
- package/dist/sync/hash.js +18 -0
- package/dist/sync/hash.js.map +1 -0
- package/dist/sync/index.d.ts +24 -0
- package/dist/sync/index.js +22 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/manifest.d.ts +29 -0
- package/dist/sync/manifest.js +59 -0
- package/dist/sync/manifest.js.map +1 -0
- package/dist/sync/match.d.ts +29 -0
- package/dist/sync/match.js +153 -0
- package/dist/sync/match.js.map +1 -0
- package/dist/sync/paginate.d.ts +16 -0
- package/dist/sync/paginate.js +34 -0
- package/dist/sync/paginate.js.map +1 -0
- package/dist/sync/preview.d.ts +16 -0
- package/dist/sync/preview.js +179 -0
- package/dist/sync/preview.js.map +1 -0
- package/dist/sync/pull.d.ts +23 -0
- package/dist/sync/pull.js +126 -0
- package/dist/sync/pull.js.map +1 -0
- package/dist/sync/push.d.ts +27 -0
- package/dist/sync/push.js +116 -0
- package/dist/sync/push.js.map +1 -0
- package/dist/sync/resolve.d.ts +19 -0
- package/dist/sync/resolve.js +42 -0
- package/dist/sync/resolve.js.map +1 -0
- package/dist/sync/types.d.ts +70 -0
- package/dist/sync/types.js +6 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/sync/walk.d.ts +12 -0
- package/dist/sync/walk.js +155 -0
- package/dist/sync/walk.js.map +1 -0
- package/dist/wait-cli.d.ts +46 -0
- package/dist/wait-cli.js +280 -0
- package/dist/wait-cli.js.map +1 -0
- package/dist/worker.d.ts +14 -0
- package/dist/worker.js +252 -0
- package/dist/worker.js.map +1 -0
- 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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"}
|
package/dist/slots.d.ts
ADDED
|
@@ -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
|