@wenrwa/marketplace-cli 0.4.4 → 0.4.6
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/dist/__tests__/bridge-activity-parser.test.d.ts +1 -0
- package/dist/__tests__/bridge-activity-parser.test.js +0 -0
- package/dist/__tests__/bridge-activity-tap.test.d.ts +1 -0
- package/dist/__tests__/bridge-activity-tap.test.js +178 -0
- package/dist/__tests__/bridge-api-client.test.d.ts +1 -0
- package/dist/__tests__/bridge-api-client.test.js +69 -0
- package/dist/__tests__/bridge-browser-driver.test.d.ts +1 -0
- package/dist/__tests__/bridge-browser-driver.test.js +379 -0
- package/dist/__tests__/bridge-browser-frames.test.d.ts +1 -0
- package/dist/__tests__/bridge-browser-frames.test.js +166 -0
- package/dist/__tests__/bridge-browser-idle.test.d.ts +1 -0
- package/dist/__tests__/bridge-browser-idle.test.js +259 -0
- package/dist/__tests__/bridge-browser-relay.test.d.ts +1 -0
- package/dist/__tests__/bridge-browser-relay.test.js +670 -0
- package/dist/__tests__/bridge-bundle-installer.test.d.ts +1 -0
- package/dist/__tests__/bridge-bundle-installer.test.js +126 -0
- package/dist/__tests__/bridge-cdp-client.test.d.ts +1 -0
- package/dist/__tests__/bridge-cdp-client.test.js +133 -0
- package/dist/__tests__/bridge-chromium-launcher.test.d.ts +1 -0
- package/dist/__tests__/bridge-chromium-launcher.test.js +202 -0
- package/dist/__tests__/bridge-command-browser-options.test.d.ts +1 -0
- package/dist/__tests__/bridge-command-browser-options.test.js +37 -0
- package/dist/__tests__/bridge-config-mcp.test.js +4 -0
- package/dist/__tests__/bridge-context-manifest-frame.test.d.ts +1 -0
- package/dist/__tests__/bridge-context-manifest-frame.test.js +125 -0
- package/dist/__tests__/bridge-context-writer.test.d.ts +1 -0
- package/dist/__tests__/bridge-context-writer.test.js +161 -0
- package/dist/__tests__/bridge-device-registration.test.d.ts +1 -0
- package/dist/__tests__/bridge-device-registration.test.js +33 -0
- package/dist/__tests__/bridge-folder-picker-runner.test.d.ts +1 -0
- package/dist/__tests__/bridge-folder-picker-runner.test.js +37 -0
- package/dist/__tests__/bridge-folder-picker.test.d.ts +1 -0
- package/dist/__tests__/bridge-folder-picker.test.js +66 -0
- package/dist/__tests__/bridge-folder-registry.test.d.ts +1 -0
- package/dist/__tests__/bridge-folder-registry.test.js +107 -0
- package/dist/__tests__/bridge-frame-pacer.test.d.ts +1 -0
- package/dist/__tests__/bridge-frame-pacer.test.js +102 -0
- package/dist/__tests__/bridge-install-bundle-frame.test.d.ts +1 -0
- package/dist/__tests__/bridge-install-bundle-frame.test.js +107 -0
- package/dist/__tests__/bridge-local-add-core.test.d.ts +1 -0
- package/dist/__tests__/bridge-local-add-core.test.js +48 -0
- package/dist/__tests__/bridge-local-path-validation-fs.test.d.ts +1 -0
- package/dist/__tests__/bridge-local-path-validation-fs.test.js +88 -0
- package/dist/__tests__/bridge-local-path-validation.test.d.ts +1 -0
- package/dist/__tests__/bridge-local-path-validation.test.js +45 -0
- package/dist/__tests__/bridge-login-status.test.d.ts +1 -0
- package/dist/__tests__/bridge-login-status.test.js +60 -0
- package/dist/__tests__/bridge-relay-client.test.d.ts +1 -0
- package/dist/__tests__/bridge-relay-client.test.js +283 -0
- package/dist/__tests__/bridge-relay-mode.test.d.ts +1 -0
- package/dist/__tests__/bridge-relay-mode.test.js +33 -0
- package/dist/__tests__/bridge-relay-pucc14.test.d.ts +1 -0
- package/dist/__tests__/bridge-relay-pucc14.test.js +230 -0
- package/dist/__tests__/bridge-server-local-endpoints.test.d.ts +1 -0
- package/dist/__tests__/bridge-server-local-endpoints.test.js +197 -0
- package/dist/__tests__/bridge-server.test.js +22 -0
- package/dist/__tests__/bridge-workspace-multirepo.test.d.ts +1 -0
- package/dist/__tests__/bridge-workspace-multirepo.test.js +317 -0
- package/dist/__tests__/devices.test.d.ts +1 -0
- package/dist/__tests__/devices.test.js +66 -0
- package/dist/__tests__/local.test.d.ts +1 -0
- package/dist/__tests__/local.test.js +147 -0
- package/dist/bridge/activityParser.d.ts +53 -0
- package/dist/bridge/activityParser.js +202 -0
- package/dist/bridge/apiClient.d.ts +56 -0
- package/dist/bridge/apiClient.js +50 -0
- package/dist/bridge/browserDriver.d.ts +98 -0
- package/dist/bridge/browserDriver.js +265 -0
- package/dist/bridge/browserFrames.d.ts +182 -0
- package/dist/bridge/browserFrames.js +179 -0
- package/dist/bridge/browserIdle.d.ts +75 -0
- package/dist/bridge/browserIdle.js +120 -0
- package/dist/bridge/bundleInstaller.d.ts +31 -0
- package/dist/bridge/bundleInstaller.js +127 -0
- package/dist/bridge/cdpClient.d.ts +47 -0
- package/dist/bridge/cdpClient.js +102 -0
- package/dist/bridge/chromiumLauncher.d.ts +45 -0
- package/dist/bridge/chromiumLauncher.js +113 -0
- package/dist/bridge/config.d.ts +3 -0
- package/dist/bridge/contextWriter.d.ts +31 -0
- package/dist/bridge/contextWriter.js +139 -0
- package/dist/bridge/deviceRegistration.d.ts +28 -0
- package/dist/bridge/deviceRegistration.js +19 -0
- package/dist/bridge/folderPicker.d.ts +34 -0
- package/dist/bridge/folderPicker.js +36 -0
- package/dist/bridge/folderPickerRunner.d.ts +3 -0
- package/dist/bridge/folderPickerRunner.js +25 -0
- package/dist/bridge/folderRegistry.d.ts +19 -0
- package/dist/bridge/folderRegistry.js +100 -0
- package/dist/bridge/framePacer.d.ts +61 -0
- package/dist/bridge/framePacer.js +79 -0
- package/dist/bridge/localAdd.d.ts +28 -0
- package/dist/bridge/localAdd.js +67 -0
- package/dist/bridge/localPathValidation.d.ts +20 -0
- package/dist/bridge/localPathValidation.js +58 -0
- package/dist/bridge/localPathValidationFs.d.ts +2 -0
- package/dist/bridge/localPathValidationFs.js +98 -0
- package/dist/bridge/loginStatus.d.ts +38 -0
- package/dist/bridge/loginStatus.js +56 -0
- package/dist/bridge/realPty.js +6 -2
- package/dist/bridge/relayClient.d.ts +166 -0
- package/dist/bridge/relayClient.js +517 -0
- package/dist/bridge/repoCheckout.d.ts +31 -0
- package/dist/bridge/repoCheckout.js +18 -0
- package/dist/bridge/server.d.ts +33 -0
- package/dist/bridge/server.js +98 -10
- package/dist/bridge/sessionManager.d.ts +18 -0
- package/dist/bridge/sessionManager.js +15 -1
- package/dist/commands/bridge.d.ts +21 -0
- package/dist/commands/bridge.js +194 -1
- package/dist/commands/devices.d.ts +9 -0
- package/dist/commands/devices.js +53 -0
- package/dist/commands/local.d.ts +9 -0
- package/dist/commands/local.js +141 -0
- package/dist/index.js +7 -1
- package/package.json +1 -1
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.localCommand = void 0;
|
|
40
|
+
/**
|
|
41
|
+
* lws-03 — `wen-market local add/list/remove`. The primary "folder attach"
|
|
42
|
+
* mechanism (PRD D3a): registers the cwd (or a given path) as a local
|
|
43
|
+
* workspace, idempotent by absolute path. The open arena create-modal
|
|
44
|
+
* live-detects additions via the bridge's /discovery poll (server.ts
|
|
45
|
+
* getLocalWorkspaces), no daemon restart needed.
|
|
46
|
+
*/
|
|
47
|
+
const commander_1 = require("commander");
|
|
48
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
49
|
+
const path = __importStar(require("path"));
|
|
50
|
+
const config_1 = require("../bridge/config");
|
|
51
|
+
const apiClient_1 = require("../bridge/apiClient");
|
|
52
|
+
const bridge_1 = require("./bridge");
|
|
53
|
+
const folderRegistry_1 = require("../bridge/folderRegistry");
|
|
54
|
+
const format_1 = require("../utils/format");
|
|
55
|
+
exports.localCommand = new commander_1.Command('local').description('Manage local workspaces registered to this machine (lws-03)');
|
|
56
|
+
exports.localCommand
|
|
57
|
+
.command('add')
|
|
58
|
+
.argument('[path]', 'Folder to register — defaults to the current directory', '.')
|
|
59
|
+
.description('Register a folder as a local workspace (idempotent by path)')
|
|
60
|
+
.action(async (pathArg) => {
|
|
61
|
+
const config = (0, config_1.loadBridgeConfig)();
|
|
62
|
+
if (!config) {
|
|
63
|
+
console.error(chalk_1.default.red('No Connect Token. Run: wen-market bridge --token <wm_ct_…> first (mint one in arena settings).'));
|
|
64
|
+
process.exit(1);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (!config.deviceId) {
|
|
68
|
+
console.error(chalk_1.default.red('This machine is not connected yet. Run `wen-market bridge` once (it connects automatically), then retry.'));
|
|
69
|
+
process.exit(1);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const absPath = path.resolve(pathArg);
|
|
73
|
+
const registry = (0, folderRegistry_1.loadFolderRegistry)();
|
|
74
|
+
const existing = (0, folderRegistry_1.findEntryByPath)(registry, absPath);
|
|
75
|
+
if (existing) {
|
|
76
|
+
// Idempotent: re-adding the same path is a no-op success, not an error.
|
|
77
|
+
console.log(chalk_1.default.dim(`Already registered: ${existing.name} (${existing.workspaceId}) → ${absPath}`));
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const name = path.basename(absPath);
|
|
81
|
+
try {
|
|
82
|
+
const result = await (0, apiClient_1.createLocalWorkspace)({ apiUrl: (0, bridge_1.bridgeApiUrl)(), connectToken: config.connectToken }, { name });
|
|
83
|
+
const updated = (0, folderRegistry_1.upsertEntry)(registry, absPath, {
|
|
84
|
+
workspaceId: result.workspace.id,
|
|
85
|
+
name: result.workspace.name,
|
|
86
|
+
addedAt: new Date().toISOString(),
|
|
87
|
+
});
|
|
88
|
+
(0, folderRegistry_1.saveFolderRegistry)(updated);
|
|
89
|
+
console.log(chalk_1.default.green(`✓ Registered local workspace "${result.workspace.name}" (${result.workspace.id}) → ${absPath}`));
|
|
90
|
+
console.log(chalk_1.default.dim('Open the arena create-modal — it will pick this up on its next poll.'));
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
if (err instanceof apiClient_1.BridgeApiError && err.status === 401) {
|
|
94
|
+
console.error(chalk_1.default.red(`This machine's connection was revoked: ${err.message} ` +
|
|
95
|
+
'Reconnect: mint a new Connect Token in arena settings, then `wen-market bridge --token <wm_ct_…>`.'));
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
console.error(chalk_1.default.red(err?.message || String(err)));
|
|
99
|
+
}
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
exports.localCommand
|
|
104
|
+
.command('list')
|
|
105
|
+
.description('List folders registered as local workspaces on this machine')
|
|
106
|
+
.action(() => {
|
|
107
|
+
const registry = (0, folderRegistry_1.loadFolderRegistry)();
|
|
108
|
+
const rows = Object.entries(registry.entries);
|
|
109
|
+
if (rows.length === 0) {
|
|
110
|
+
console.log('No local workspaces registered. Run `wen-market local add .` from a project folder.');
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
console.log((0, format_1.makeTable)(['Workspace ID', 'Name', 'Path'], rows.map(([p, entry]) => [entry.workspaceId, entry.name, p])));
|
|
114
|
+
});
|
|
115
|
+
exports.localCommand
|
|
116
|
+
.command('remove')
|
|
117
|
+
.argument('<target>', 'Folder path or workspace ID to remove')
|
|
118
|
+
.option('--delete', 'Also delete the workspace row server-side — NEVER touches project files')
|
|
119
|
+
.description('Remove a local workspace registration (registration only — project files are never touched)')
|
|
120
|
+
.action(async (target, opts) => {
|
|
121
|
+
const registry = (0, folderRegistry_1.loadFolderRegistry)();
|
|
122
|
+
const byPath = (0, folderRegistry_1.findEntryByPath)(registry, path.resolve(target));
|
|
123
|
+
const entry = byPath ? { path: path.resolve(target), ...byPath } : (0, folderRegistry_1.findEntryByWorkspaceId)(registry, target);
|
|
124
|
+
if (!entry) {
|
|
125
|
+
console.error(`${target} is not registered.`);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
(0, folderRegistry_1.saveFolderRegistry)((0, folderRegistry_1.removeEntryByPath)(registry, entry.path));
|
|
129
|
+
if (opts.delete) {
|
|
130
|
+
const config = (0, config_1.loadBridgeConfig)();
|
|
131
|
+
if (config) {
|
|
132
|
+
try {
|
|
133
|
+
await (0, apiClient_1.deleteWorkspace)({ apiUrl: (0, bridge_1.bridgeApiUrl)(), connectToken: config.connectToken }, entry.workspaceId);
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
console.log(chalk_1.default.yellow(`! Registration removed, but deleting the workspace row failed: ${err?.message || err}`));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
console.log(chalk_1.default.green(`✓ Registration removed for ${entry.name} (${entry.workspaceId}) — files untouched.`));
|
|
141
|
+
});
|
package/dist/index.js
CHANGED
|
@@ -15,11 +15,15 @@ const repo_1 = require("./commands/repo");
|
|
|
15
15
|
const prompts_1 = require("./commands/prompts");
|
|
16
16
|
const credits_1 = require("./commands/credits");
|
|
17
17
|
const bridge_1 = require("./commands/bridge");
|
|
18
|
+
const local_1 = require("./commands/local");
|
|
19
|
+
const devices_1 = require("./commands/devices");
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
21
|
+
const { version } = require('../package.json');
|
|
18
22
|
const program = new commander_1.Command();
|
|
19
23
|
program
|
|
20
24
|
.name('wen-market')
|
|
21
25
|
.description('Wenrwa Agent Marketplace CLI')
|
|
22
|
-
.version(
|
|
26
|
+
.version(version);
|
|
23
27
|
program.addCommand(auth_1.authCommand);
|
|
24
28
|
program.addCommand(workspace_1.workspaceCommand);
|
|
25
29
|
program.addCommand(bounty_1.bountyCommand);
|
|
@@ -34,4 +38,6 @@ program.addCommand(repo_1.repoCommand);
|
|
|
34
38
|
program.addCommand(prompts_1.promptsCommand);
|
|
35
39
|
program.addCommand(credits_1.creditsCommand);
|
|
36
40
|
program.addCommand(bridge_1.bridgeCommand);
|
|
41
|
+
program.addCommand(local_1.localCommand);
|
|
42
|
+
program.addCommand(devices_1.devicesCommand);
|
|
37
43
|
program.parse();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wenrwa/marketplace-cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"description": "CLI tool for the Wenrwa Agent Marketplace — monitor bounties, agents, workspaces, and treasury from your terminal",
|
|
5
5
|
"author": "Wenrwa <dev@wenrwa.com>",
|
|
6
6
|
"license": "MIT",
|