@agent-workspace/cli 0.8.2 → 0.9.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.
@@ -1,5 +1,8 @@
1
1
  /**
2
2
  * awp status — rich workspace overview
3
+ * Supports --json flag for machine-readable output (agent-friendly)
3
4
  */
4
- export declare function statusCommand(): Promise<void>;
5
+ export declare function statusCommand(options?: {
6
+ json?: boolean;
7
+ }): Promise<void>;
5
8
  //# sourceMappingURL=status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAyMnD"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAqDA;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmP/E"}
@@ -8,39 +8,50 @@ import { listContracts } from "../lib/contract.js";
8
8
  import { listProjects, listTasks } from "../lib/project.js";
9
9
  /**
10
10
  * awp status — rich workspace overview
11
+ * Supports --json flag for machine-readable output (agent-friendly)
11
12
  */
12
- export async function statusCommand() {
13
+ export async function statusCommand(options) {
13
14
  const root = await requireWorkspaceRoot();
14
15
  const info = await inspectWorkspace(root);
15
16
  const now = new Date();
16
- console.log(`AWP Workspace: ${info.manifest.name} (v${AWP_VERSION})`);
17
- if (info.manifest.agent.did) {
18
- console.log(`DID: ${info.manifest.agent.did}`);
19
- }
20
- console.log(`Root: ${info.root}`);
21
- // Projects
17
+ const jsonMode = options?.json ?? false;
18
+ // Initialize structured data
19
+ const statusData = {
20
+ workspace: {
21
+ name: info.manifest.name,
22
+ awp: AWP_VERSION,
23
+ did: info.manifest.agent.did,
24
+ root: info.root,
25
+ },
26
+ projects: [],
27
+ activeTasks: [],
28
+ reputation: [],
29
+ contracts: { total: 0, byStatus: {} },
30
+ knowledge: { artifactCount: 0, memoryLogCount: 0 },
31
+ health: { status: "healthy", warnings: [] },
32
+ };
33
+ // --- Collect Projects ---
22
34
  const projects = await listProjects(root);
23
35
  const activeProjects = projects.filter((p) => p.frontmatter.status === "active" || p.frontmatter.status === "paused");
24
- if (activeProjects.length > 0) {
25
- console.log("");
26
- console.log("--- Projects ---");
27
- for (const p of activeProjects) {
28
- const fm = p.frontmatter;
29
- const slug = fm.id.replace("project:", "");
30
- const tasks = `${fm.completedCount}/${fm.taskCount} tasks`;
31
- const deadline = fm.deadline ? `deadline: ${fm.deadline.split("T")[0]}` : "";
32
- console.log(` ${slug.padEnd(24)} ${fm.status.toUpperCase().padEnd(10)} ${tasks.padEnd(14)} ${deadline}`);
33
- }
34
- }
35
- // Active tasks across all projects
36
- const allTasks = [];
36
+ for (const p of activeProjects) {
37
+ const fm = p.frontmatter;
38
+ statusData.projects.push({
39
+ slug: fm.id.replace("project:", ""),
40
+ title: fm.title,
41
+ status: fm.status,
42
+ taskCount: fm.taskCount,
43
+ completedCount: fm.completedCount,
44
+ deadline: fm.deadline,
45
+ });
46
+ }
47
+ // --- Collect Active Tasks ---
37
48
  for (const p of activeProjects) {
38
49
  const pSlug = p.frontmatter.id.replace("project:", "");
39
50
  const tasks = await listTasks(root, pSlug);
40
51
  for (const t of tasks) {
41
52
  const tfm = t.frontmatter;
42
53
  if (tfm.status === "in-progress" || tfm.status === "blocked" || tfm.status === "review") {
43
- allTasks.push({
54
+ statusData.activeTasks.push({
44
55
  projectSlug: pSlug,
45
56
  taskSlug: tfm.id.split("/")[1],
46
57
  status: tfm.status,
@@ -51,80 +62,50 @@ export async function statusCommand() {
51
62
  }
52
63
  }
53
64
  }
54
- if (allTasks.length > 0) {
55
- console.log("");
56
- console.log("--- Active Tasks ---");
57
- for (const t of allTasks) {
58
- const assignee = t.assigneeSlug ? `@${t.assigneeSlug}` : "unassigned";
59
- const due = t.deadline ? `due ${t.deadline.split("T")[0]}` : "";
60
- const blocked = t.status === "blocked" && t.blockedBy.length > 0
61
- ? `blocked by: ${t.blockedBy.map((b) => b.split("/").pop()).join(", ")}`
62
- : "";
63
- const extra = blocked || due;
64
- console.log(` ${t.taskSlug.padEnd(24)} ${t.status.toUpperCase().padEnd(14)} ${assignee.padEnd(20)} ${extra}`);
65
- }
66
- }
67
- // Reputation
65
+ // --- Collect Reputation ---
68
66
  const profiles = await listProfiles(root);
69
- if (profiles.length > 0) {
70
- console.log("");
71
- console.log("--- Reputation ---");
72
- for (const p of profiles) {
73
- const fm = p.frontmatter;
74
- const slug = fm.id.replace("reputation:", "");
75
- const parts = [];
76
- // Top dimension scores
77
- for (const [name, dim] of Object.entries(fm.dimensions || {})) {
78
- const decayed = computeDecayedScore(dim, now);
79
- parts.push(`${name}: ${decayed.toFixed(2)}`);
80
- }
81
- for (const [name, dim] of Object.entries(fm.domainCompetence || {})) {
82
- const decayed = computeDecayedScore(dim, now);
83
- parts.push(`${name}: ${decayed.toFixed(2)}`);
84
- }
85
- console.log(` ${slug.padEnd(20)} ${parts.join(" ")}`);
67
+ for (const p of profiles) {
68
+ const fm = p.frontmatter;
69
+ const dimensions = {};
70
+ const domainCompetence = {};
71
+ for (const [name, dim] of Object.entries(fm.dimensions || {})) {
72
+ dimensions[name] = computeDecayedScore(dim, now);
86
73
  }
87
- }
88
- // Contracts
89
- const contracts = await listContracts(root);
90
- if (contracts.length > 0) {
91
- const statusCounts = {};
92
- for (const c of contracts) {
93
- const s = c.frontmatter.status;
94
- statusCounts[s] = (statusCounts[s] || 0) + 1;
74
+ for (const [name, dim] of Object.entries(fm.domainCompetence || {})) {
75
+ domainCompetence[name] = computeDecayedScore(dim, now);
95
76
  }
96
- const summary = Object.entries(statusCounts)
97
- .map(([s, n]) => `${n} ${s}`)
98
- .join(", ");
99
- console.log("");
100
- console.log("--- Contracts ---");
101
- console.log(` ${summary}`);
77
+ statusData.reputation.push({
78
+ slug: fm.id.replace("reputation:", ""),
79
+ agentName: fm.agentName,
80
+ dimensions,
81
+ domainCompetence,
82
+ });
83
+ }
84
+ // --- Collect Contracts ---
85
+ const contracts = await listContracts(root);
86
+ statusData.contracts.total = contracts.length;
87
+ for (const c of contracts) {
88
+ const s = c.frontmatter.status;
89
+ statusData.contracts.byStatus[s] = (statusData.contracts.byStatus[s] || 0) + 1;
102
90
  }
103
- // Knowledge
104
- let artifactCount = 0;
91
+ // --- Collect Knowledge ---
105
92
  try {
106
93
  const artDir = join(root, ARTIFACTS_DIR);
107
94
  const files = await readdir(artDir);
108
- artifactCount = files.filter((f) => f.endsWith(".md")).length;
95
+ statusData.knowledge.artifactCount = files.filter((f) => f.endsWith(".md")).length;
109
96
  }
110
97
  catch {
111
98
  // no artifacts dir
112
99
  }
113
- let memoryCount = 0;
114
100
  try {
115
101
  const memDir = join(root, MEMORY_DIR);
116
102
  const files = await readdir(memDir);
117
- memoryCount = files.filter((f) => f.endsWith(".md")).length;
103
+ statusData.knowledge.memoryLogCount = files.filter((f) => f.endsWith(".md")).length;
118
104
  }
119
105
  catch {
120
106
  // no memory dir
121
107
  }
122
- if (artifactCount > 0 || memoryCount > 0) {
123
- console.log("");
124
- console.log("--- Knowledge ---");
125
- console.log(` ${artifactCount} artifact(s), ${memoryCount} memory log(s)`);
126
- }
127
- // Health checks
108
+ // --- Health Checks ---
128
109
  const warnings = [];
129
110
  // Check required files
130
111
  const allRequired = info.files.required.every((f) => f.exists && f.valid);
@@ -154,24 +135,89 @@ export async function statusCommand() {
154
135
  }
155
136
  }
156
137
  // Check task deadlines
157
- for (const t of allTasks) {
158
- if (t.deadline &&
159
- t.status !== "completed" &&
160
- t.status !== "cancelled" &&
161
- new Date(t.deadline) < now) {
138
+ for (const t of statusData.activeTasks) {
139
+ if (t.deadline && t.status !== "completed" && new Date(t.deadline) < now) {
162
140
  warnings.push(`Task "${t.taskSlug}" is past deadline`);
163
141
  }
164
142
  }
143
+ statusData.health.warnings = warnings;
144
+ statusData.health.status = warnings.length === 0 ? "healthy" : "warnings";
145
+ // --- Output ---
146
+ if (jsonMode) {
147
+ console.log(JSON.stringify(statusData, null, 2));
148
+ return;
149
+ }
150
+ // Human-readable output
151
+ console.log(`AWP Workspace: ${statusData.workspace.name} (v${statusData.workspace.awp})`);
152
+ if (statusData.workspace.did) {
153
+ console.log(`DID: ${statusData.workspace.did}`);
154
+ }
155
+ console.log(`Root: ${statusData.workspace.root}`);
156
+ // Projects
157
+ if (statusData.projects.length > 0) {
158
+ console.log("");
159
+ console.log("--- Projects ---");
160
+ for (const p of statusData.projects) {
161
+ const tasks = `${p.completedCount}/${p.taskCount} tasks`;
162
+ const deadline = p.deadline ? `deadline: ${p.deadline.split("T")[0]}` : "";
163
+ console.log(` ${p.slug.padEnd(24)} ${p.status.toUpperCase().padEnd(10)} ${tasks.padEnd(14)} ${deadline}`);
164
+ }
165
+ }
166
+ // Active tasks
167
+ if (statusData.activeTasks.length > 0) {
168
+ console.log("");
169
+ console.log("--- Active Tasks ---");
170
+ for (const t of statusData.activeTasks) {
171
+ const assignee = t.assigneeSlug ? `@${t.assigneeSlug}` : "unassigned";
172
+ const due = t.deadline ? `due ${t.deadline.split("T")[0]}` : "";
173
+ const blocked = t.status === "blocked" && t.blockedBy.length > 0
174
+ ? `blocked by: ${t.blockedBy.map((b) => b.split("/").pop()).join(", ")}`
175
+ : "";
176
+ const extra = blocked || due;
177
+ console.log(` ${t.taskSlug.padEnd(24)} ${t.status.toUpperCase().padEnd(14)} ${assignee.padEnd(20)} ${extra}`);
178
+ }
179
+ }
180
+ // Reputation
181
+ if (statusData.reputation.length > 0) {
182
+ console.log("");
183
+ console.log("--- Reputation ---");
184
+ for (const r of statusData.reputation) {
185
+ const parts = [];
186
+ for (const [name, score] of Object.entries(r.dimensions)) {
187
+ parts.push(`${name}: ${score.toFixed(2)}`);
188
+ }
189
+ for (const [name, score] of Object.entries(r.domainCompetence)) {
190
+ parts.push(`${name}: ${score.toFixed(2)}`);
191
+ }
192
+ console.log(` ${r.slug.padEnd(20)} ${parts.join(" ")}`);
193
+ }
194
+ }
195
+ // Contracts
196
+ if (statusData.contracts.total > 0) {
197
+ const summary = Object.entries(statusData.contracts.byStatus)
198
+ .map(([s, n]) => `${n} ${s}`)
199
+ .join(", ");
200
+ console.log("");
201
+ console.log("--- Contracts ---");
202
+ console.log(` ${summary}`);
203
+ }
204
+ // Knowledge
205
+ if (statusData.knowledge.artifactCount > 0 || statusData.knowledge.memoryLogCount > 0) {
206
+ console.log("");
207
+ console.log("--- Knowledge ---");
208
+ console.log(` ${statusData.knowledge.artifactCount} artifact(s), ${statusData.knowledge.memoryLogCount} memory log(s)`);
209
+ }
210
+ // Health
165
211
  console.log("");
166
212
  console.log("--- Health ---");
167
- if (warnings.length === 0 && allRequired) {
213
+ if (statusData.health.status === "healthy") {
168
214
  console.log(" [PASS] All systems nominal");
169
215
  }
170
216
  else {
171
217
  if (allRequired) {
172
218
  console.log(" [PASS] All required files present");
173
219
  }
174
- for (const w of warnings) {
220
+ for (const w of statusData.health.warnings) {
175
221
  console.log(` [WARN] ${w}`);
176
222
  }
177
223
  }
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * awp sync — Workspace synchronization commands.
3
+ *
4
+ * Manages remote workspaces, pulls/pushes artifacts and reputation
5
+ * signals between AWP workspaces.
6
+ */
7
+ export declare function syncRemoteAddCommand(name: string, url: string, options: {
8
+ transport?: string;
9
+ }): Promise<void>;
10
+ export declare function syncRemoteListCommand(): Promise<void>;
11
+ export declare function syncRemoteRemoveCommand(name: string): Promise<void>;
12
+ export declare function syncPullCommand(remote: string, options: {
13
+ slug?: string;
14
+ tag?: string;
15
+ dryRun?: boolean;
16
+ noAutoMerge?: boolean;
17
+ }): Promise<void>;
18
+ export declare function syncPushCommand(remote: string, options: {
19
+ slug?: string;
20
+ dryRun?: boolean;
21
+ }): Promise<void>;
22
+ export declare function syncDiffCommand(remote: string, options: {
23
+ direction?: string;
24
+ }): Promise<void>;
25
+ export declare function syncStatusCommand(remoteName?: string): Promise<void>;
26
+ export declare function syncPullSignalsCommand(remote: string, options: {
27
+ since?: string;
28
+ }): Promise<void>;
29
+ export declare function syncPushSignalsCommand(remote: string): Promise<void>;
30
+ export declare function syncConflictsCommand(): Promise<void>;
31
+ export declare function syncResolveCommand(slug: string, options: {
32
+ accept?: string;
33
+ }): Promise<void>;
34
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,OAAO,CAAC,IAAI,CAAC,CAgBf;AAID,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAa3D;AAID,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUzE;AAID,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAChF,OAAO,CAAC,IAAI,CAAC,CA4Cf;AAID,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3C,OAAO,CAAC,IAAI,CAAC,CAmCf;AAID,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,OAAO,CAAC,IAAI,CAAC,CAuBf;AAID,wBAAsB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B1E;AAID,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAWf;AAID,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW1E;AAID,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAmB1D;AAID,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,IAAI,CAAC,CAgBf"}
@@ -0,0 +1,238 @@
1
+ /**
2
+ * awp sync — Workspace synchronization commands.
3
+ *
4
+ * Manages remote workspaces, pulls/pushes artifacts and reputation
5
+ * signals between AWP workspaces.
6
+ */
7
+ import { SyncEngine, addRemote, removeRemote, listRemotes, loadSyncState, listConflicts, resolveConflict, } from "@agent-workspace/sync";
8
+ import { requireWorkspaceRoot } from "../lib/cli-utils.js";
9
+ // --- awp sync remote add ---
10
+ export async function syncRemoteAddCommand(name, url, options) {
11
+ const root = await requireWorkspaceRoot();
12
+ const transport = (options.transport || "local-fs");
13
+ if (transport !== "local-fs" && transport !== "git-remote") {
14
+ console.error(`Error: Unknown transport "${transport}". Valid: local-fs, git-remote`);
15
+ process.exit(1);
16
+ }
17
+ try {
18
+ await addRemote(root, name, { url, transport });
19
+ console.log(`Remote "${name}" added (${transport}: ${url})`);
20
+ }
21
+ catch (err) {
22
+ console.error(`Error: ${err.message}`);
23
+ process.exit(1);
24
+ }
25
+ }
26
+ // --- awp sync remote list ---
27
+ export async function syncRemoteListCommand() {
28
+ const root = await requireWorkspaceRoot();
29
+ const remotes = await listRemotes(root);
30
+ if (Object.keys(remotes).length === 0) {
31
+ console.log("No remotes configured. Use 'awp sync remote add <name> <url>' to add one.");
32
+ return;
33
+ }
34
+ for (const [name, remote] of Object.entries(remotes)) {
35
+ const lastSync = remote.lastSync ? new Date(remote.lastSync).toLocaleString() : "never";
36
+ console.log(` ${name}\t${remote.transport}\t${remote.url}\t(last sync: ${lastSync})`);
37
+ }
38
+ }
39
+ // --- awp sync remote remove ---
40
+ export async function syncRemoteRemoveCommand(name) {
41
+ const root = await requireWorkspaceRoot();
42
+ try {
43
+ await removeRemote(root, name);
44
+ console.log(`Remote "${name}" removed.`);
45
+ }
46
+ catch (err) {
47
+ console.error(`Error: ${err.message}`);
48
+ process.exit(1);
49
+ }
50
+ }
51
+ // --- awp sync pull ---
52
+ export async function syncPullCommand(remote, options) {
53
+ const root = await requireWorkspaceRoot();
54
+ const engine = new SyncEngine(root);
55
+ const syncOptions = {
56
+ slugPattern: options.slug,
57
+ tag: options.tag,
58
+ dryRun: options.dryRun,
59
+ noAutoMerge: options.noAutoMerge,
60
+ };
61
+ try {
62
+ const result = await engine.pull(remote, syncOptions);
63
+ if (options.dryRun) {
64
+ console.log("Dry run — no changes applied:\n");
65
+ }
66
+ if (result.imported.length > 0) {
67
+ console.log(` Imported: ${result.imported.join(", ")}`);
68
+ }
69
+ if (result.updated.length > 0) {
70
+ console.log(` Updated: ${result.updated.join(", ")}`);
71
+ }
72
+ if (result.conflicts.length > 0) {
73
+ console.log(` Conflicts: ${result.conflicts.join(", ")}`);
74
+ }
75
+ if (result.skipped.length > 0) {
76
+ console.log(` Skipped: ${result.skipped.join(", ")}`);
77
+ }
78
+ const total = result.imported.length + result.updated.length;
79
+ if (total === 0 && result.conflicts.length === 0) {
80
+ console.log("Already up to date.");
81
+ }
82
+ else if (!options.dryRun) {
83
+ console.log(`\nPulled ${total} artifact(s) from "${remote}".`);
84
+ if (result.conflicts.length > 0) {
85
+ console.log(`${result.conflicts.length} conflict(s) — use 'awp sync conflicts' to review.`);
86
+ }
87
+ }
88
+ }
89
+ catch (err) {
90
+ console.error(`Error: ${err.message}`);
91
+ process.exit(1);
92
+ }
93
+ }
94
+ // --- awp sync push ---
95
+ export async function syncPushCommand(remote, options) {
96
+ const root = await requireWorkspaceRoot();
97
+ const engine = new SyncEngine(root);
98
+ const syncOptions = {
99
+ slugPattern: options.slug,
100
+ dryRun: options.dryRun,
101
+ };
102
+ try {
103
+ const result = await engine.push(remote, syncOptions);
104
+ if (options.dryRun) {
105
+ console.log("Dry run — no changes applied:\n");
106
+ }
107
+ if (result.updated.length > 0) {
108
+ console.log(` Pushed: ${result.updated.join(", ")}`);
109
+ }
110
+ if (result.conflicts.length > 0) {
111
+ console.log(` Conflicts: ${result.conflicts.join(", ")}`);
112
+ }
113
+ if (result.skipped.length > 0) {
114
+ console.log(` Skipped: ${result.skipped.join(", ")}`);
115
+ }
116
+ if (result.updated.length === 0 && result.conflicts.length === 0) {
117
+ console.log("Nothing to push.");
118
+ }
119
+ else if (!options.dryRun) {
120
+ console.log(`\nPushed ${result.updated.length} artifact(s) to "${remote}".`);
121
+ }
122
+ }
123
+ catch (err) {
124
+ console.error(`Error: ${err.message}`);
125
+ process.exit(1);
126
+ }
127
+ }
128
+ // --- awp sync diff ---
129
+ export async function syncDiffCommand(remote, options) {
130
+ const root = await requireWorkspaceRoot();
131
+ const engine = new SyncEngine(root);
132
+ const direction = (options.direction || "pull");
133
+ try {
134
+ const entries = await engine.diff(remote, direction);
135
+ if (entries.length === 0) {
136
+ console.log(`No differences with "${remote}" (${direction}).`);
137
+ return;
138
+ }
139
+ for (const entry of entries) {
140
+ const versions = `v${entry.localVersion ?? "?"} → v${entry.remoteVersion ?? "?"}`;
141
+ console.log(` ${entry.action.padEnd(14)} ${entry.slug.padEnd(30)} ${versions}`);
142
+ }
143
+ console.log(`\n${entries.length} difference(s).`);
144
+ }
145
+ catch (err) {
146
+ console.error(`Error: ${err.message}`);
147
+ process.exit(1);
148
+ }
149
+ }
150
+ // --- awp sync status ---
151
+ export async function syncStatusCommand(remoteName) {
152
+ const root = await requireWorkspaceRoot();
153
+ const remotes = await listRemotes(root);
154
+ if (Object.keys(remotes).length === 0) {
155
+ console.log("No remotes configured.");
156
+ return;
157
+ }
158
+ const names = remoteName ? [remoteName] : Object.keys(remotes);
159
+ for (const name of names) {
160
+ const remote = remotes[name];
161
+ if (!remote) {
162
+ console.error(`Remote "${name}" not found.`);
163
+ continue;
164
+ }
165
+ const state = await loadSyncState(root, name);
166
+ const artifactCount = Object.keys(state.artifacts).length;
167
+ const lastSync = state.lastSync ? new Date(state.lastSync).toLocaleString() : "never";
168
+ console.log(`Remote: ${name}`);
169
+ console.log(` URL: ${remote.url}`);
170
+ console.log(` Transport: ${remote.transport}`);
171
+ console.log(` Last sync: ${lastSync}`);
172
+ console.log(` Artifacts: ${artifactCount} tracked`);
173
+ console.log(` Signals: ${state.signals.signalCount} synced`);
174
+ console.log();
175
+ }
176
+ }
177
+ // --- awp sync pull-signals ---
178
+ export async function syncPullSignalsCommand(remote, options) {
179
+ const root = await requireWorkspaceRoot();
180
+ const engine = new SyncEngine(root);
181
+ try {
182
+ const imported = await engine.pullSignals(remote, options.since);
183
+ console.log(`Imported ${imported} reputation signal(s) from "${remote}".`);
184
+ }
185
+ catch (err) {
186
+ console.error(`Error: ${err.message}`);
187
+ process.exit(1);
188
+ }
189
+ }
190
+ // --- awp sync push-signals ---
191
+ export async function syncPushSignalsCommand(remote) {
192
+ const root = await requireWorkspaceRoot();
193
+ const engine = new SyncEngine(root);
194
+ try {
195
+ const pushed = await engine.pushSignals(remote);
196
+ console.log(`Pushed ${pushed} reputation signal(s) to "${remote}".`);
197
+ }
198
+ catch (err) {
199
+ console.error(`Error: ${err.message}`);
200
+ process.exit(1);
201
+ }
202
+ }
203
+ // --- awp sync conflicts ---
204
+ export async function syncConflictsCommand() {
205
+ const root = await requireWorkspaceRoot();
206
+ const conflicts = await listConflicts(root);
207
+ if (conflicts.length === 0) {
208
+ console.log("No pending conflicts.");
209
+ return;
210
+ }
211
+ for (const c of conflicts) {
212
+ console.log(` ${c.artifact}`);
213
+ console.log(` Remote: ${c.remote}`);
214
+ console.log(` Local: v${c.localVersion} Remote: v${c.remoteVersion}`);
215
+ console.log(` Detected: ${new Date(c.detectedAt).toLocaleString()}`);
216
+ console.log(` Reason: ${c.reason}`);
217
+ console.log();
218
+ }
219
+ console.log(`${conflicts.length} conflict(s). Use 'awp sync resolve <slug> --accept <mode>' to resolve.`);
220
+ }
221
+ // --- awp sync resolve ---
222
+ export async function syncResolveCommand(slug, options) {
223
+ const root = await requireWorkspaceRoot();
224
+ const mode = (options.accept || "local");
225
+ if (!["local", "remote", "merged"].includes(mode)) {
226
+ console.error(`Error: Invalid mode "${mode}". Valid: local, remote, merged`);
227
+ process.exit(1);
228
+ }
229
+ try {
230
+ await resolveConflict(root, slug, mode);
231
+ console.log(`Conflict for "${slug}" resolved (${mode}).`);
232
+ }
233
+ catch (err) {
234
+ console.error(`Error: ${err.message}`);
235
+ process.exit(1);
236
+ }
237
+ }
238
+ //# sourceMappingURL=sync.js.map