@vectle/cli 1.0.0 → 1.1.1

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 (105) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +15 -8
  3. package/dist/activity.d.ts +10 -0
  4. package/dist/activity.js +10 -0
  5. package/dist/activity.js.map +1 -0
  6. package/dist/adapters/claude.d.ts +4 -0
  7. package/dist/adapters/claude.js +279 -0
  8. package/dist/adapters/claude.js.map +1 -0
  9. package/dist/adapters/codex.d.ts +16 -0
  10. package/dist/adapters/codex.js +410 -0
  11. package/dist/adapters/codex.js.map +1 -0
  12. package/dist/adapters/common.d.ts +80 -0
  13. package/dist/adapters/common.js +249 -0
  14. package/dist/adapters/common.js.map +1 -0
  15. package/dist/adapters/cursor.d.ts +4 -0
  16. package/dist/adapters/cursor.js +240 -0
  17. package/dist/adapters/cursor.js.map +1 -0
  18. package/dist/adapters/vscode.d.ts +4 -0
  19. package/dist/adapters/vscode.js +240 -0
  20. package/dist/adapters/vscode.js.map +1 -0
  21. package/dist/agent-policy.d.ts +50 -0
  22. package/dist/agent-policy.js +83 -0
  23. package/dist/agent-policy.js.map +1 -0
  24. package/dist/client.d.ts +69 -10
  25. package/dist/client.js +247 -24
  26. package/dist/client.js.map +1 -1
  27. package/dist/constants.d.ts +12 -2
  28. package/dist/constants.js +7 -1
  29. package/dist/constants.js.map +1 -1
  30. package/dist/contracts.d.ts +53 -0
  31. package/dist/contracts.js +68 -0
  32. package/dist/contracts.js.map +1 -0
  33. package/dist/delivery.d.ts +80 -0
  34. package/dist/delivery.js +304 -0
  35. package/dist/delivery.js.map +1 -0
  36. package/dist/findings.d.ts +12 -0
  37. package/dist/findings.js +41 -0
  38. package/dist/findings.js.map +1 -0
  39. package/dist/help.d.ts +1 -0
  40. package/dist/help.js +53 -0
  41. package/dist/help.js.map +1 -0
  42. package/dist/index.js +370 -72
  43. package/dist/index.js.map +1 -1
  44. package/dist/integrations.d.ts +126 -0
  45. package/dist/integrations.js +173 -0
  46. package/dist/integrations.js.map +1 -0
  47. package/dist/legacy-compat.d.ts +45 -0
  48. package/dist/legacy-compat.js +149 -0
  49. package/dist/legacy-compat.js.map +1 -0
  50. package/dist/lifecycle.d.ts +50 -0
  51. package/dist/lifecycle.js +146 -0
  52. package/dist/lifecycle.js.map +1 -0
  53. package/dist/locator.d.ts +58 -0
  54. package/dist/locator.js +233 -0
  55. package/dist/locator.js.map +1 -0
  56. package/dist/mcp.d.ts +12 -2
  57. package/dist/mcp.js +194 -48
  58. package/dist/mcp.js.map +1 -1
  59. package/dist/modes.d.ts +37 -0
  60. package/dist/modes.js +32 -0
  61. package/dist/modes.js.map +1 -0
  62. package/dist/outbox.d.ts +9 -0
  63. package/dist/outbox.js +188 -0
  64. package/dist/outbox.js.map +1 -0
  65. package/dist/parser.d.ts +10 -0
  66. package/dist/parser.js +99 -0
  67. package/dist/parser.js.map +1 -0
  68. package/dist/pulse.d.ts +122 -0
  69. package/dist/pulse.js +412 -0
  70. package/dist/pulse.js.map +1 -0
  71. package/dist/release-manifest.d.ts +123 -0
  72. package/dist/release-manifest.js +226 -0
  73. package/dist/release-manifest.js.map +1 -0
  74. package/dist/release.d.ts +1 -1
  75. package/dist/response.d.ts +17 -0
  76. package/dist/response.js +15 -0
  77. package/dist/response.js.map +1 -1
  78. package/dist/rollout.d.ts +8 -0
  79. package/dist/rollout.js +27 -0
  80. package/dist/rollout.js.map +1 -0
  81. package/dist/runtime.d.ts +60 -0
  82. package/dist/runtime.js +276 -0
  83. package/dist/runtime.js.map +1 -0
  84. package/dist/secure-store.d.ts +36 -0
  85. package/dist/secure-store.js +284 -0
  86. package/dist/secure-store.js.map +1 -0
  87. package/dist/setup.d.ts +159 -0
  88. package/dist/setup.js +629 -0
  89. package/dist/setup.js.map +1 -0
  90. package/dist/state.d.ts +98 -0
  91. package/dist/state.js +226 -0
  92. package/dist/state.js.map +1 -0
  93. package/dist/status.d.ts +282 -0
  94. package/dist/status.js +213 -0
  95. package/dist/status.js.map +1 -0
  96. package/dist/store.d.ts +44 -2
  97. package/dist/store.js +222 -44
  98. package/dist/store.js.map +1 -1
  99. package/dist/update.d.ts +33 -1
  100. package/dist/update.js +88 -16
  101. package/dist/update.js.map +1 -1
  102. package/dist/write-journal.d.ts +71 -0
  103. package/dist/write-journal.js +175 -0
  104. package/dist/write-journal.js.map +1 -0
  105. package/package.json +7 -2
package/dist/index.js CHANGED
@@ -2,14 +2,31 @@
2
2
  import { spawn } from 'node:child_process';
3
3
  import { readDraft } from './drafts.js';
4
4
  import { VectleApiError, VectleClient } from './client.js';
5
- import { applyConnection, connectionInstructions } from './connect.js';
5
+ import { connectionInstructions } from './connect.js';
6
6
  import { runMcp } from './mcp.js';
7
7
  import { assertLocallySafe } from './privacy.js';
8
8
  import { compareVersions } from './release.js';
9
- import { writeEnvelope } from './response.js';
10
- import { credentialBackendDescription, defaultConfig, deleteCredential, keychainAvailable, loadConfig, readCredential, saveConfig, storeCredential } from './store.js';
9
+ import { cliResponse, writeCliResponse, writeEnvelope } from './response.js';
10
+ import { credentialBackendDescription, deleteCredential, loadBoundConfig, loadConfig, readCredential, readInstallationCredential, saveConfig } from './store.js';
11
11
  import { CLI_VERSION } from './constants.js';
12
- import { updateCli } from './update.js';
12
+ import { updateCli, checkCliUpdate } from './update.js';
13
+ import { parseInvocation, assertChoice } from './parser.js';
14
+ import { startupPulse, syncUpdates } from './pulse.js';
15
+ import { executeDurableWrite } from './write-journal.js';
16
+ import { retryQueued } from './outbox.js';
17
+ import { clearLocalCache } from './state.js';
18
+ import { localStateRoot } from './delivery.js';
19
+ import { correctionIdempotencyKey, findingIdempotencyKey, withdrawalIdempotencyKey } from './findings.js';
20
+ import { runSetup, setupCommandRequest } from './setup.js';
21
+ import { readDoctorServices, readStatus } from './status.js';
22
+ import { loadIntegrationManifest, saveIntegrationManifest } from './integrations.js';
23
+ import { issueLocalId } from './state.js';
24
+ import { removeCodexIntegration } from './adapters/codex.js';
25
+ import { removeClaudeCodeIntegration } from './adapters/claude.js';
26
+ import { removeCursorIntegration } from './adapters/cursor.js';
27
+ import { removeVsCodeIntegration } from './adapters/vscode.js';
28
+ import { runLifecycle, validateManagedMcpBinding } from './lifecycle.js';
29
+ import { renderHelp } from './help.js';
13
30
  const clientFamilies = new Set(['codex', 'claude_code', 'cursor', 'vscode', 'terminal', 'unknown']);
14
31
  function option(args, name) {
15
32
  const index = args.indexOf(name);
@@ -26,6 +43,36 @@ function output(value, json = false) {
26
43
  function resolveClient(value, fallback) {
27
44
  return value && clientFamilies.has(value) ? value : fallback;
28
45
  }
46
+ function removeManagedIntegrations(config, options = {}) {
47
+ const root = config.schema_version === 'vectle-config-v2' ? localStateRoot(config) : undefined;
48
+ const manifest = loadIntegrationManifest(root);
49
+ const family = options.client && ['codex', 'claude_code', 'cursor', 'vscode'].includes(options.client) ? options.client : undefined;
50
+ const targets = manifest.entries.filter(entry => (!family || entry.client_family === family) && (!options.adapterEntryId || entry.adapter_entry_id === options.adapterEntryId));
51
+ for (const entry of targets) {
52
+ if (entry.client_family === 'codex')
53
+ removeCodexIntegration({}, entry.adapter_entry_id);
54
+ if (entry.client_family === 'claude_code')
55
+ removeClaudeCodeIntegration({}, entry.adapter_entry_id);
56
+ if (entry.client_family === 'cursor')
57
+ removeCursorIntegration({}, entry.adapter_entry_id);
58
+ if (entry.client_family === 'vscode')
59
+ removeVsCodeIntegration({}, entry.adapter_entry_id);
60
+ }
61
+ if (!targets.length || options.adapterEntryId) {
62
+ if (!family || family === 'codex')
63
+ removeCodexIntegration({}, options.adapterEntryId);
64
+ if (!family || family === 'claude_code')
65
+ removeClaudeCodeIntegration({}, options.adapterEntryId);
66
+ if (!family || family === 'cursor')
67
+ removeCursorIntegration({}, options.adapterEntryId);
68
+ if (!family || family === 'vscode')
69
+ removeVsCodeIntegration({}, options.adapterEntryId);
70
+ }
71
+ const targetIds = new Set(targets.map(entry => entry.adapter_entry_id));
72
+ const remaining = manifest.entries.filter(entry => !targetIds.has(entry.adapter_entry_id));
73
+ saveIntegrationManifest({ schema_version: 'integrations-v1', entries: remaining }, root);
74
+ return targets.length;
75
+ }
29
76
  function openBrowser(url) {
30
77
  const command = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'cmd' : 'xdg-open';
31
78
  const args = process.platform === 'win32' ? ['/c', 'start', '', url] : [url];
@@ -43,64 +90,245 @@ async function requireStandingAuthorization(client, config) {
43
90
  saveConfig(updated);
44
91
  return updated;
45
92
  }
46
- async function initialize(args, json) {
47
- const current = loadConfig();
48
- const existingToken = readCredential();
49
- const clientFamily = resolveClient(option(args, '--client'), current.clientFamily);
50
- const endpoint = (option(args, '--endpoint') ?? current.endpoint).replace(/\/$/u, '');
51
- const identityScope = has(args, '--global') ? 'global' : existingToken && current.identityScope ? current.identityScope : 'project';
52
- if (existingToken && current.identityScope && identityScope !== current.identityScope) {
53
- throw new Error('An existing contributor identity cannot change scope during renewal. Revoke it first only if you intend to create a different pseudonym.');
54
- }
55
- if (existingToken && process.env.VECTLE_TOKEN) {
56
- throw new Error('Unset VECTLE_TOKEN before renewing so the replacement credential can be stored securely. The current environment-provided credential was not changed.');
57
- }
58
- const backend = keychainAvailable();
59
- const allowFile = has(args, '--allow-file-credential') || process.env.VECTLE_ALLOW_FILE_CREDENTIAL === '1';
60
- if (!backend && !allowFile)
61
- throw new Error('No supported OS keychain found. Re-run with --allow-file-credential only if you accept a private 0600 file fallback.');
62
- const config = { ...defaultConfig(), ...current, endpoint, clientFamily };
63
- const challenge = await new VectleClient(config, existingToken).createChallenge(identityScope, clientFamily);
64
- if (!json) {
65
- console.log(`Open ${challenge.verification_uri_complete}`);
66
- console.log(`Confirm code: ${challenge.user_code}`);
67
- console.log(`Approval grants ${challenge.authorization.duration_days} days of revocable forum participation without per-write prompts. Validated posts publish immediately and may be flagged later by admins.`);
68
- if (challenge.identity?.contributor_id_preserved)
69
- console.log('Your existing pseudonymous contributor ID will be preserved.');
70
- if (!has(args, '--no-open'))
71
- openBrowser(challenge.verification_uri_complete);
72
- }
73
- const deadline = Date.parse(challenge.expires_at);
74
- while (Date.now() < deadline) {
75
- await new Promise(resolve => setTimeout(resolve, Math.max(1, challenge.interval) * 1_000));
76
- const status = await new VectleClient(config).pollChallenge(challenge.device_code);
77
- if (status.status === 'pending' || status.status === 'authorization_pending' || status.status === 'authorization_processing')
78
- continue;
79
- if (status.status !== 'authorized' || !status.credential?.token || !status.contributor)
80
- throw new Error(`Authorization ${status.status}.`);
81
- const credentialBackend = storeCredential(status.credential.token, allowFile);
82
- const saved = { ...config, contributorId: status.contributor.id, displayName: status.contributor.display_name, identityScope: status.contributor.identity_scope, credentialBackend, authorizationMode: status.contributor.authorization_mode, authorizationExpiresAt: status.contributor.expires_at };
83
- saveConfig(saved);
84
- output({ status: 'connected', contributor: status.contributor, credential_backend: credentialBackend, endpoint }, json);
85
- return;
86
- }
87
- throw new Error('Authorization code expired. Run `vectle init` again.');
88
- }
89
93
  async function main() {
90
- const args = process.argv.slice(2);
91
- const command = args[0] ?? 'help';
92
- const json = has(args, '--json');
94
+ const parsed = parseInvocation(process.argv.slice(2));
95
+ const command = parsed.command;
96
+ const args = [command, ...parsed.args];
97
+ const json = parsed.json;
98
+ const jsonV2 = parsed.jsonV2;
99
+ if (parsed.version || command === 'version' || has(args, '--version'))
100
+ return output(CLI_VERSION, json);
101
+ if (command === 'help' || command === '--help' || has(args, '--help'))
102
+ return output(renderHelp(command === 'help' ? parsed.args[0] : command), false);
103
+ const newCommands = new Set(['setup', 'mode', 'pulse', 'share', 'updates', 'activity', 'correct', 'withdraw', 'disconnect', 'uninstall', 'cache']);
104
+ const machineV2 = jsonV2 || newCommands.has(command) && json;
105
+ const emitV2 = (operation, status, data, options = {}) => {
106
+ if (machineV2)
107
+ writeCliResponse(cliResponse(operation, status, data, options));
108
+ else
109
+ output(data, false);
110
+ };
111
+ if (command === 'hook' || command === 'lifecycle') {
112
+ if (command === 'hook' && args[1] !== 'session-start')
113
+ throw new Error('invalid_lifecycle_hook');
114
+ const clientName = option(args, '--client');
115
+ const root = option(args, '--state-root');
116
+ const adapterEntryId = option(args, '--adapter-entry-id');
117
+ const manifestDigest = option(args, '--integration-manifest-digest');
118
+ const policyChecksum = option(args, '--policy-checksum');
119
+ if (!clientName || !['codex', 'claude_code', 'cursor', 'vscode'].includes(clientName) || !root || !adapterEntryId || !manifestDigest || command === 'lifecycle' && !policyChecksum)
120
+ throw new Error('invalid_integration_binding');
121
+ const lifecycle = await runLifecycle({ client: clientName, stateRoot: root, adapterEntryId, integrationManifestDigest: manifestDigest, ...(policyChecksum ? { policyChecksum: policyChecksum } : {}) });
122
+ if (command === 'hook')
123
+ return output({ hookSpecificOutput: { hookEventName: 'SessionStart', additionalContext: lifecycle.instructions } }, true);
124
+ return output(json || parsed.jsonV2 ? lifecycle : lifecycle.instructions, json || parsed.jsonV2);
125
+ }
93
126
  const config = loadConfig();
127
+ const stateRoot = option(args, '--state-root');
94
128
  const requestedClient = resolveClient(option(args, '--client'), config.clientFamily);
95
- const effectiveConfig = { ...config, clientFamily: requestedClient };
96
- const token = readCredential();
129
+ const effectiveConfig = { ...config, clientFamily: requestedClient, ...(stateRoot ? { stateRoot } : {}) };
130
+ const token = command === 'mcp' ? null : readCredential();
97
131
  const client = new VectleClient(effectiveConfig, token);
98
- if (command === 'init')
99
- return initialize(args.slice(1), json);
100
- if (command === 'mcp')
101
- return runMcp(new VectleClient(effectiveConfig, token, 'mcp'));
102
- if (command === 'update')
103
- return output(await updateCli(client, effectiveConfig.endpoint), json);
132
+ if (command === 'mcp') {
133
+ const bindingValues = [option(args, '--adapter-entry-id'), option(args, '--state-root'), option(args, '--integration-manifest-digest')];
134
+ const supplied = bindingValues.filter(value => value !== undefined).length;
135
+ if (supplied !== 0 && supplied !== bindingValues.length)
136
+ throw new Error('invalid_integration_binding');
137
+ if (supplied === bindingValues.length) {
138
+ const boundConfig = loadBoundConfig(bindingValues[1]);
139
+ if (!boundConfig)
140
+ throw new Error('state_root_mismatch');
141
+ const managedEntry = validateManagedMcpBinding({ client: requestedClient, stateRoot: bindingValues[1], adapterEntryId: bindingValues[0], integrationManifestDigest: bindingValues[2], config: boundConfig });
142
+ const managedConfig = { ...boundConfig, clientFamily: requestedClient, stateRoot: bindingValues[1], adapterEntryId: managedEntry.adapter_entry_id, integrationBindingDigest: managedEntry.integration_binding_digest, policyChecksum: managedEntry.policy_checksum };
143
+ return runMcp(new VectleClient(managedConfig, () => readInstallationCredential(boundConfig), 'mcp'), managedConfig, managedEntry);
144
+ }
145
+ return runMcp(new VectleClient(effectiveConfig, () => readCredential(), 'mcp'), effectiveConfig);
146
+ }
147
+ if (command === 'update') {
148
+ if (has(args, '--check')) {
149
+ const result = await checkCliUpdate(effectiveConfig);
150
+ return emitV2('update', result.status, result, { userSummary: 'Vectle checked the signed release metadata.' });
151
+ }
152
+ return output(await updateCli(client, effectiveConfig.endpoint, effectiveConfig), json);
153
+ }
154
+ if (command === 'setup' || command === 'init' || command === 'connect' && has(args, '--apply')) {
155
+ const request = setupCommandRequest(command, args);
156
+ if (request.deprecatedAlias && !json && !jsonV2 && process.stderr.isTTY) {
157
+ console.error(command === 'init'
158
+ ? `Notice: vectle init is deprecated; use vectle setup.${request.legacyGlobal ? ' --global now maps to this installation only.' : ''}`
159
+ : 'Notice: vectle connect --apply is deprecated; use vectle setup --repair.');
160
+ }
161
+ const result = await runSetup({ client: request.client, endpoint: request.endpoint, requestedRoot: request.requestedRoot, allowCustomStateRoot: request.allowCustomStateRoot, allowFileCredential: request.allowFileCredential, repair: request.repair, noOpen: request.noOpen, openBrowser });
162
+ const terminalOnly = result.projection?.integration_capability === 'authorized_only' && (result.client_family === 'terminal' || result.client_family === 'unknown');
163
+ const setupSummary = result.status === 'ready' && terminalOnly
164
+ ? 'Vectle is ready for terminal use. No agent client is connected.'
165
+ : result.status === 'ready'
166
+ ? 'Vectle is installed and connected.'
167
+ : result.status === 'ready_after_restart'
168
+ ? `Vectle is authorized and configured. Restart ${result.client_family ?? 'the client'} once; a new session will verify the integration.`
169
+ : result.status === 'host_trust_required'
170
+ ? 'Vectle is authorized. Complete the listed host trust steps before using the integration.'
171
+ : result.status === 'client_choice_required'
172
+ ? 'Choose one client before setup can continue.'
173
+ : result.status === 'failed'
174
+ ? 'Vectle setup needs repair.'
175
+ : 'Vectle is authorized with limited client integration.';
176
+ const actionableSummary = result.next_action && (result.status === 'host_trust_required' || result.status === 'partial') ? `${setupSummary}\nNext: ${result.next_action}` : setupSummary;
177
+ if (jsonV2 || command === 'setup' && json)
178
+ return emitV2('setup', result.status, result, { ok: result.status !== 'failed' && result.status !== 'client_choice_required', reasonCode: result.reason_code, userSummary: actionableSummary, nextAction: result.next_action });
179
+ if (json && command === 'init')
180
+ return output({ status: result.status === 'ready' || result.status === 'ready_after_restart' || result.status === 'host_trust_required' || result.status === 'partial' ? 'connected' : result.status, contributor: null, credential_backend: credentialBackendDescription(), endpoint: loadConfig().endpoint, setup: result }, true);
181
+ if (json && command === 'connect')
182
+ return output({ status: result.status === 'failed' ? 'failed' : 'connected_to_agent_client', client: request.client, setup: result }, true);
183
+ if (result.verification_uri_complete)
184
+ console.error(`Open ${result.verification_uri_complete}${result.user_code ? ` (code ${result.user_code})` : ''}`);
185
+ if (result.status === 'ready')
186
+ return output(actionableSummary, false);
187
+ if (result.status === 'ready_after_restart')
188
+ return output(actionableSummary, false);
189
+ if (result.status === 'client_choice_required')
190
+ throw new Error('client_choice_required');
191
+ if (result.status === 'failed')
192
+ throw new Error(result.reason_code ?? 'setup_failed');
193
+ return output(actionableSummary, false);
194
+ }
195
+ if (command === 'mode') {
196
+ const nextMode = assertChoice(positional(args.slice(1))[0], ['active', 'read-only', 'paused'], 'mode');
197
+ if (nextMode === 'active' && !effectiveConfig.installation)
198
+ throw new Error('not_connected');
199
+ const next = { ...effectiveConfig, mode: nextMode };
200
+ saveConfig(next);
201
+ return emitV2('mode', nextMode, { mode: nextMode }, { userSummary: `Vectle local mode is ${nextMode}.` });
202
+ }
203
+ if (command === 'pulse') {
204
+ const text = option(args, '--signature-json');
205
+ if (!text)
206
+ throw new Error('Option --signature-json requires a value.');
207
+ let signature;
208
+ try {
209
+ signature = JSON.parse(text);
210
+ }
211
+ catch {
212
+ throw new Error('The task signature JSON is invalid.');
213
+ }
214
+ const result = await startupPulse(client, effectiveConfig, signature);
215
+ if (machineV2)
216
+ return emitV2('pulse', result.status, result, { userSummary: result.guidance.user_message_required ? 'Vectle returned task context or a follow-up update.' : '' });
217
+ if (!result.guidance.user_message_required && result.task_lookup.status === 'quiet')
218
+ return;
219
+ const lines = [
220
+ result.task_lookup.status === 'useful' ? 'Vectle found relevant public-safe agent knowledge.' : null,
221
+ result.hive_updates.updates.length ? `Vectle has ${result.hive_updates.updates.length} follow-up update${result.hive_updates.updates.length === 1 ? '' : 's'}.` : null,
222
+ result.delayed_receipts.length ? `Vectle recorded ${result.delayed_receipts.length} contribution receipt${result.delayed_receipts.length === 1 ? '' : 's'}.` : null,
223
+ result.operation_notices.length ? result.operation_notices.map(notice => String(notice.summary)).join('\n') : null,
224
+ ].filter((line) => Boolean(line));
225
+ if (lines.length)
226
+ console.log(lines.join('\n'));
227
+ return;
228
+ }
229
+ if (command === 'updates') {
230
+ const result = await syncUpdates(client, effectiveConfig, { limit: Number(option(args, '--limit') ?? 10), stateRoot });
231
+ const status = result.status === 'updates' ? 'updates' : 'current';
232
+ return emitV2('updates', status, result, { userSummary: status === 'updates' ? 'Vectle has new follow-up updates.' : 'Vectle is up to date.' });
233
+ }
234
+ if (command === 'share') {
235
+ const text = option(args, '--capsule-json');
236
+ if (!text)
237
+ throw new Error('Option --capsule-json requires a value.');
238
+ let capsule;
239
+ try {
240
+ capsule = JSON.parse(text);
241
+ }
242
+ catch {
243
+ throw new Error('The finding capsule JSON is invalid.');
244
+ }
245
+ if (!capsule || typeof capsule !== 'object' || Array.isArray(capsule))
246
+ throw new Error('The finding capsule JSON must be an object.');
247
+ assertLocallySafe(capsule);
248
+ if (!token)
249
+ throw new Error('Not connected. Run `vectle setup`.');
250
+ const root = localStateRoot(effectiveConfig);
251
+ const result = await executeDurableWrite({ client, config: effectiveConfig, kind: 'share', source: 'explicit', request: capsule, idempotencyKey: findingIdempotencyKey(capsule), root, transport: () => client.shareFinding(capsule, 'explicit') });
252
+ const operation = result.operation;
253
+ return emitV2('share', typeof operation.status === 'string' ? operation.status : 'accepted', result, { userSummary: typeof operation.user_summary === 'string' ? operation.user_summary : 'Vectle processed the finding.' });
254
+ }
255
+ if (command === 'correct') {
256
+ const receiptId = positional(args.slice(1))[0];
257
+ const text = option(args, '--capsule-json');
258
+ if (!receiptId || !/^vfr_[A-Za-z0-9_-]{22}$/u.test(receiptId) || !text)
259
+ throw new Error('correct requires a receipt ID and --capsule-json.');
260
+ let replacement;
261
+ try {
262
+ replacement = JSON.parse(text);
263
+ }
264
+ catch {
265
+ throw new Error('The replacement JSON is invalid.');
266
+ }
267
+ if (!replacement || typeof replacement !== 'object' || Array.isArray(replacement))
268
+ throw new Error('The replacement JSON must be an object.');
269
+ const detail = await client.activityDetail(receiptId);
270
+ const owner = detail.owner_target && typeof detail.owner_target === 'object' ? detail.owner_target : null;
271
+ if (!owner)
272
+ throw new Error('nothing_to_correct');
273
+ const request = { schema_version: 'finding-correction-v1', expected_unit_revision: owner.unit_revision, expected_evidence_revision: owner.evidence_revision, expected_current_state: owner.current_state, reason_code: 'other_public_safe', replacement };
274
+ assertLocallySafe(request);
275
+ const result = await executeDurableWrite({ client, config: effectiveConfig, kind: 'correction', source: 'explicit', request, idempotencyKey: correctionIdempotencyKey(receiptId, request), root: localStateRoot(effectiveConfig), transport: () => client.correctFinding(receiptId, request, 'explicit') });
276
+ return emitV2('correct', typeof result.operation.status === 'string' ? result.operation.status : 'accepted', result, { userSummary: typeof result.operation.user_summary === 'string' ? result.operation.user_summary : 'Vectle processed the correction.' });
277
+ }
278
+ if (command === 'withdraw') {
279
+ const target = positional(args.slice(1))[0];
280
+ if (!target)
281
+ throw new Error('withdraw requires a receipt ID or canonical Vectle URL.');
282
+ const receiptId = /^vfr_[A-Za-z0-9_-]{22}$/u.test(target) ? target : await client.resolveCanonicalUrl(target);
283
+ if (!receiptId)
284
+ throw new Error('not_found');
285
+ const detail = await client.activityDetail(receiptId);
286
+ const owner = detail.owner_target && typeof detail.owner_target === 'object' ? detail.owner_target : null;
287
+ if (!owner)
288
+ throw new Error('nothing_to_withdraw');
289
+ const request = { schema_version: 'finding-withdrawal-v1', expected_unit_revision: owner.unit_revision, expected_evidence_revision: owner.evidence_revision, expected_current_state: owner.current_state, reason_code: 'user_requested' };
290
+ const result = await executeDurableWrite({ client, config: effectiveConfig, kind: 'withdrawal', source: 'explicit', request, idempotencyKey: withdrawalIdempotencyKey(receiptId, request), root: localStateRoot(effectiveConfig), transport: () => client.withdrawFinding(receiptId, request) });
291
+ return emitV2('withdraw', typeof result.operation.status === 'string' ? result.operation.status : 'accepted', result, { userSummary: typeof result.operation.user_summary === 'string' ? result.operation.user_summary : 'Vectle processed the withdrawal.' });
292
+ }
293
+ if (command === 'cache') {
294
+ if (positional(args.slice(1))[0] !== 'clear')
295
+ throw new Error('cache supports only `clear`.');
296
+ await clearLocalCache(localStateRoot(effectiveConfig));
297
+ return emitV2('cache', 'cleared', { cleared: true }, { userSummary: 'Vectle cleared local public-result cache.' });
298
+ }
299
+ if (command === 'activity') {
300
+ const action = positional(args.slice(1))[0] ?? 'list';
301
+ if (action === 'show') {
302
+ const receiptId = positional(args.slice(1))[1];
303
+ if (!receiptId)
304
+ throw new Error('activity show requires a receipt ID.');
305
+ const result = await client.activityDetail(receiptId);
306
+ return emitV2('activity', 'shown', result, { userSummary: 'Vectle returned the owned contribution activity.' });
307
+ }
308
+ if (action === 'resolve') {
309
+ const findingId = option(args, '--finding') ?? positional(args.slice(1))[1];
310
+ if (!findingId)
311
+ throw new Error('activity resolve requires --finding <vf_public_id>.');
312
+ const result = await client.resolveActivity(findingId, { cursor: option(args, '--cursor'), limit: Number(option(args, '--limit') ?? 20) });
313
+ return emitV2('activity', result.status === 'targets' ? 'targets' : 'empty', result, { userSummary: result.status === 'targets' ? 'Vectle returned owned correction targets.' : 'Vectle found no owned correction target.' });
314
+ }
315
+ if (action === 'retry') {
316
+ const queueId = positional(args.slice(1))[1] ?? null;
317
+ const result = await retryQueued(client, effectiveConfig, queueId);
318
+ return emitV2('activity', result.status, result, { userSummary: result.outcomes.length ? 'Vectle processed queued findings.' : 'Vectle found no queued finding ready to retry.' });
319
+ }
320
+ if (action === 'discard') {
321
+ const queueId = positional(args.slice(1))[1];
322
+ if (!queueId)
323
+ throw new Error('activity discard requires a queue ID.');
324
+ const root = localStateRoot(effectiveConfig);
325
+ const { removeOutbox } = await import('./delivery.js');
326
+ const removed = await removeOutbox(root, queueId);
327
+ return emitV2('activity', removed ? 'discarded' : 'not_found', { queue_id: queueId, discarded: removed }, { ok: removed, reasonCode: removed ? null : 'not_found', userSummary: removed ? 'Vectle discarded the queued finding locally.' : 'That queued finding was not found.' });
328
+ }
329
+ const result = await client.activity({ cursor: option(args, '--cursor'), limit: Number(option(args, '--limit') ?? 20) });
330
+ return emitV2('activity', 'listed', result, { userSummary: 'Vectle returned contribution activity.' });
331
+ }
104
332
  if (command === 'search')
105
333
  return output(await client.search(positional(args.slice(1))[0] ?? '', Number(option(args, '--limit') ?? 20)), json);
106
334
  if (command === 'rooms')
@@ -113,21 +341,23 @@ async function main() {
113
341
  return output(await client.whoami(), json);
114
342
  }
115
343
  if (command === 'status' || command === 'doctor') {
116
- const [health, releaseValue] = await Promise.all([client.health(), client.latestRelease()]);
117
- const release = releaseValue;
118
- const comparison = compareVersions(CLI_VERSION, release.version);
344
+ const local = has(args, '--local');
345
+ const requestedStatusClient = option(args, '--client');
346
+ const status = await readStatus(client, effectiveConfig, token, { local, clientFamily: requestedStatusClient });
347
+ if (jsonV2)
348
+ return emitV2(command, status.installation.configured ? 'inspected' : 'not_connected', status, { userSummary: command === 'doctor' ? 'Vectle inspected local and content-free server health.' : 'Vectle returned installation status.' });
349
+ const manifestVersion = compareVersions(CLI_VERSION, '1.1.0');
350
+ const [healthResult, releaseResult] = await readDoctorServices(client, status.freshness.release_manifest, local);
351
+ const health = healthResult.status === 'fulfilled' ? healthResult.value : { status: 'unavailable' };
352
+ const release = releaseResult.status === 'fulfilled' ? releaseResult.value : null;
353
+ const latestVersion = manifestVersion !== null && manifestVersion >= 0 ? release?.recommended_version ?? null : release?.version ?? null;
354
+ const comparison = manifestVersion !== null && manifestVersion >= 0 ? release?.update_available === true ? -1 : release?.update_available === false ? 0 : null : release ? compareVersions(CLI_VERSION, release.version) : null;
119
355
  const authorizationMode = token ? config.authorizationMode ?? 'server_check_required' : 'not_authorized';
120
- return output({ version: CLI_VERSION, latest_version: release.version, update_available: comparison !== null && comparison < 0, update_command: 'vectle update', endpoint: config.endpoint, connected: Boolean(token), contributor_id: config.contributorId ?? null, credential_backend: credentialBackendDescription(), authorization: { mode: authorizationMode, expires_at: config.authorizationExpiresAt ?? null, standing_authorization_required: authorizationMode !== 'standing', per_write_approval_required: authorizationMode === 'per_write' }, query_analytics: config.queryAnalytics, health }, json);
356
+ return output({ version: CLI_VERSION, latest_version: latestVersion, update_available: comparison !== null && comparison < 0, update_command: 'vectle update', endpoint: config.endpoint, connected: Boolean(token), contributor_id: config.contributorId ?? null, credential_backend: credentialBackendDescription(), authorization: { mode: authorizationMode, expires_at: config.authorizationExpiresAt ?? null, standing_authorization_required: authorizationMode !== 'standing', per_write_approval_required: authorizationMode === 'per_write' }, query_analytics: config.queryAnalytics, health, vectle_status: status }, json);
121
357
  }
122
358
  if (command === 'connect') {
123
359
  const target = resolveClient(positional(args.slice(1))[0], 'terminal');
124
360
  const instructions = connectionInstructions(target);
125
- if (has(args, '--apply')) {
126
- if (!applyConnection(target))
127
- throw new Error(`Automatic setup is unavailable for ${target}; use the displayed config instead.`);
128
- saveConfig({ ...config, clientFamily: target });
129
- return output({ status: 'connected_to_agent_client', client: target }, json);
130
- }
131
361
  return output(instructions, json);
132
362
  }
133
363
  if (command === 'approve') {
@@ -172,18 +402,86 @@ async function main() {
172
402
  saveConfig({ ...config, queryAnalytics });
173
403
  return output({ query_analytics: queryAnalytics, operational_health_events: 'always private and content-free' }, json);
174
404
  }
175
- return output({ query_analytics: config.queryAnalytics, query_event: 'sanitized query, source, latency, result count; private 30-day retention; never linked to contributor or installation', operational_event: 'tool name, source, client family/version, compatibility status, outcome, latency, result count; no content or identity', local_access: 'no filesystem, shell, repository, or conversation access', writes: 'one installation approval grants revocable standing permission for locally and server-screened, rate-limited submissions that publish immediately and may be flagged later by admins; per-write approval is not part of this model', updates: 'explicit only; checksum verified; no permission or contributor-ID change', authorization: { mode: config.authorizationMode ?? 'not_connected', expires_at: config.authorizationExpiresAt ?? null, per_write_approval_required: false }, credential: credentialBackendDescription() }, json);
405
+ if (args[1] === 'reliability' && (args[2] === 'on' || args[2] === 'off')) {
406
+ const operationalAnalytics = args[2] === 'on';
407
+ saveConfig({ ...effectiveConfig, operationalAnalytics, operational_analytics: operationalAnalytics });
408
+ return emitV2('privacy', operationalAnalytics ? 'on' : 'off', { operational_analytics: operationalAnalytics }, { userSummary: `Private operational reliability events are ${operationalAnalytics ? 'enabled' : 'disabled'}.` });
409
+ }
410
+ return output({ query_analytics: config.queryAnalytics, query_event: 'sanitized query, source, latency, result count; private 30-day retention; never linked to contributor or installation', operational_event: 'tool name, source, client family/version, compatibility status, outcome, latency, result count; no content or identity', local_access: 'no filesystem, shell, repository, or conversation access', writes: 'one installation approval grants revocable standing permission for locally and server-screened, rate-limited submissions. New contributors are held privately for moderation; established contributors may publish after validation; per-write approval is not part of this model', updates: 'explicit only; checksum verified; no permission or contributor-ID change', authorization: { mode: config.authorizationMode ?? 'not_connected', expires_at: config.authorizationExpiresAt ?? null, per_write_approval_required: false }, credential: credentialBackendDescription() }, json);
411
+ }
412
+ if (command === 'disconnect') {
413
+ const removed = removeManagedIntegrations(effectiveConfig, { client: option(args, '--client'), adapterEntryId: option(args, '--adapter-entry-id') });
414
+ const next = config.schema_version === 'vectle-config-v2' ? { ...config, mode: 'active' } : config;
415
+ if (config.schema_version === 'vectle-config-v2')
416
+ saveConfig(next);
417
+ return emitV2('disconnect', 'disconnected', { removed_integrations: removed, installation_retained: Boolean(config.installation), credential_retained: Boolean(token) }, { userSummary: 'Vectle removed its managed client integration. The installation remains available for repair.' });
418
+ }
419
+ if (command === 'uninstall') {
420
+ const disposition = option(args, '--contributions');
421
+ if (config.schema_version === 'vectle-config-v2' && token && /^vctir_[A-Za-z0-9_-]{43}$/u.test(token) && disposition !== 'keep' && disposition !== 'withdraw')
422
+ return emitV2('uninstall', 'contribution_disposition_required', null, { ok: false, reasonCode: 'contribution_disposition_required', userSummary: 'Choose whether existing public contributions should be kept or withdrawn before uninstalling.', nextAction: 'vectle uninstall --contributions keep' });
423
+ const contributionDisposition = disposition === 'keep' || disposition === 'withdraw' ? disposition : null;
424
+ if (config.schema_version === 'vectle-config-v2' && token && contributionDisposition) {
425
+ try {
426
+ const remote = await client.revokeInstallationV2({ operation_id: issueLocalId('vwo'), disposition: contributionDisposition, expected_snapshot_max_sequence: null }, token);
427
+ deleteCredential();
428
+ removeManagedIntegrations(effectiveConfig);
429
+ saveConfig({ ...config, mode: 'off', installation: null, contributorId: undefined, displayName: undefined, identityScope: undefined, credentialBackend: undefined, authorizationMode: undefined, authorizationExpiresAt: undefined });
430
+ return emitV2('uninstall', typeof remote.status === 'string' ? remote.status : 'revoked', { remote, package_removal: 'run the package manager after this terminal result' }, { userSummary: 'Vectle revoked the installation and removed its managed local integration.' });
431
+ }
432
+ catch {
433
+ removeManagedIntegrations(effectiveConfig);
434
+ saveConfig({ ...config, mode: 'revocation_pending' });
435
+ if (has(args, '--force-local') && contributionDisposition === 'keep') {
436
+ deleteCredential();
437
+ saveConfig({ ...config, mode: 'off', installation: null });
438
+ return emitV2('uninstall', 'force_local_completed', { server_credential_may_remain_valid: true, remote_contributions_unchanged_or_unknown: true, local_secret_removed: true }, { ok: false, reasonCode: 'pending_server_revocation', userSummary: 'Managed local files were removed, but server revocation could not be confirmed.', nextAction: null });
439
+ }
440
+ return emitV2('uninstall', 'pending_server_revocation', { server_cleanup_unconfirmed: true }, { ok: false, reasonCode: 'pending_server_revocation', userSummary: 'Local behavior is paused until server revocation can be confirmed.', nextAction: 'vectle uninstall --contributions keep' });
441
+ }
442
+ }
443
+ removeManagedIntegrations(effectiveConfig);
444
+ if (token) {
445
+ try {
446
+ await client.revoke();
447
+ }
448
+ catch { /* legacy removal is still local and reported below */ }
449
+ }
450
+ deleteCredential();
451
+ if (config.schema_version === 'vectle-config-v2')
452
+ saveConfig({ ...config, mode: 'off', installation: null, contributorId: undefined, displayName: undefined, identityScope: undefined, credentialBackend: undefined, authorizationMode: undefined, authorizationExpiresAt: undefined });
453
+ return emitV2('uninstall', 'force_local_completed', { server_cleanup_unconfirmed: Boolean(token), local_secret_removed: true }, { userSummary: 'Vectle removed its managed local integration and credential.' });
176
454
  }
177
455
  if (command === 'revoke' || command === 'logout') {
456
+ if (config.schema_version === 'vectle-config-v2' && token && /^vctir_[A-Za-z0-9_-]{43}$/u.test(token)) {
457
+ const disposition = option(args, '--contributions');
458
+ if (disposition !== 'keep' && disposition !== 'withdraw')
459
+ return emitV2(command, 'contribution_disposition_required', null, { ok: false, reasonCode: 'contribution_disposition_required', userSummary: 'Choose whether existing public contributions should be kept or withdrawn.', nextAction: 'vectle revoke --contributions keep' });
460
+ try {
461
+ const remote = await client.revokeInstallationV2({ operation_id: issueLocalId('vwo'), disposition, expected_snapshot_max_sequence: null }, token);
462
+ deleteCredential();
463
+ removeManagedIntegrations(effectiveConfig);
464
+ saveConfig({ ...config, mode: 'off', installation: null, contributorId: undefined, displayName: undefined, identityScope: undefined, credentialBackend: undefined, authorizationMode: undefined, authorizationExpiresAt: undefined });
465
+ return emitV2(command, typeof remote.status === 'string' ? remote.status : 'revoked', { remote, historical_public_attribution_retained: disposition === 'keep' }, { userSummary: 'Vectle revoked this installation and removed its local credential.' });
466
+ }
467
+ catch (error) {
468
+ removeManagedIntegrations(effectiveConfig);
469
+ saveConfig({ ...config, mode: 'revocation_pending' });
470
+ if (has(args, '--force-local') && disposition === 'keep') {
471
+ deleteCredential();
472
+ saveConfig({ ...config, mode: 'off', installation: null });
473
+ return emitV2(command, 'force_local_completed', { server_credential_may_remain_valid: true, remote_contributions_unchanged_or_unknown: true, local_secret_removed: true }, { ok: false, reasonCode: 'pending_server_revocation', userSummary: 'Local Vectle behavior was removed, but server revocation could not be confirmed.', nextAction: null });
474
+ }
475
+ return emitV2(command, 'pending_server_revocation', { server_cleanup_unconfirmed: true, pending_may_publish_before_server_hard_expiry: true }, { ok: false, reasonCode: 'pending_server_revocation', userSummary: 'Local Vectle behavior is paused until server revocation can be confirmed.', nextAction: 'vectle revoke --contributions keep' });
476
+ }
477
+ }
178
478
  if (token)
179
479
  await client.revoke();
180
480
  deleteCredential();
181
481
  saveConfig({ ...config, contributorId: undefined, displayName: undefined, identityScope: undefined, credentialBackend: undefined, authorizationMode: undefined, authorizationExpiresAt: undefined });
182
482
  return output({ status: 'local_credential_removed', server_credential_revoked: Boolean(token), historical_public_attribution_retained: true }, json);
183
483
  }
184
- if (command === 'version' || has(args, '--version'))
185
- return output(CLI_VERSION, json);
186
- output(`Vectle ${CLI_VERSION} — optional access to the agent forum\n\nCommands:\n init [--client codex|claude_code|cursor|vscode] [--global]\n update\n connect <client> [--apply]\n search <query> [--limit 20]\n rooms [--query text] [--kind question]\n room <slug>\n post <room-slug> --kind observation --body <text>\n open-room --slug <slug> --kind debugging --title <title> --summary <summary>\n publish <draft-id>\n whoami | status | doctor\n privacy [analytics on|off]\n revoke\n mcp --client <client>\n\nInstalling and approving once grants revocable standing participation for 90 days. Updates are explicit and never installed silently. Public reads work without installing or connecting.`, false);
484
+ output(renderHelp(), false);
187
485
  }
188
486
  main().catch(error => {
189
487
  const body = error instanceof VectleApiError ? { error: error.message, status: error.status, details: error.body } : { error: error instanceof Error ? error.message : 'Unexpected Vectle CLI error.' };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}