@osfactory/har 0.47.0 → 0.48.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 +15 -0
- package/dist/index.js +26 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,6 +10,21 @@
|
|
|
10
10
|
|
|
11
11
|
HAR is an open-source, agent-agnostic framework for building multi-agent coding workflows. Run a fleet of coding agents in parallel on any repository, with deterministic validation gates, verifiable proof, and full observability across every agent, all extensible and customizable to your own workflow and tooling.
|
|
12
12
|
|
|
13
|
+
<table align="center">
|
|
14
|
+
<tr>
|
|
15
|
+
<td align="center">
|
|
16
|
+
<a href="https://youtu.be/XKl4ZzWy7mQ">
|
|
17
|
+
<img src="https://img.youtube.com/vi/XKl4ZzWy7mQ/maxresdefault.jpg" alt="HAR introduction demo" width="540">
|
|
18
|
+
</a>
|
|
19
|
+
</td>
|
|
20
|
+
</tr>
|
|
21
|
+
<tr>
|
|
22
|
+
<td align="center">
|
|
23
|
+
▶ <strong>Introduction demo</strong> — click the thumbnail to watch on YouTube
|
|
24
|
+
</td>
|
|
25
|
+
</tr>
|
|
26
|
+
</table>
|
|
27
|
+
|
|
13
28
|
Works with **Claude Code** · **Cursor** · **Codex** · any MCP agent.
|
|
14
29
|
|
|
15
30
|
## What's included out of the box
|
package/dist/index.js
CHANGED
|
@@ -28648,6 +28648,18 @@ function isControlEnabled() {
|
|
|
28648
28648
|
function normalizeUrl(url) {
|
|
28649
28649
|
return url.replace(/\/+$/, "");
|
|
28650
28650
|
}
|
|
28651
|
+
function resolvePortalUrl(explicit) {
|
|
28652
|
+
const candidates = [
|
|
28653
|
+
[explicit, "flag"],
|
|
28654
|
+
[process.env.HAR_PORTAL_URL, "env"],
|
|
28655
|
+
[readPortalCredentials()?.portalUrl, "saved"]
|
|
28656
|
+
];
|
|
28657
|
+
for (const [value, source] of candidates) {
|
|
28658
|
+
const url = normalizeUrl((value ?? "").trim());
|
|
28659
|
+
if (url) return { url, source };
|
|
28660
|
+
}
|
|
28661
|
+
return { url: DEFAULT_PORTAL_URL, source: "default" };
|
|
28662
|
+
}
|
|
28651
28663
|
function getPortalTarget() {
|
|
28652
28664
|
if (process.env.HAR_PORTAL_URL && process.env.HAR_PORTAL_TOKEN) {
|
|
28653
28665
|
return {
|
|
@@ -28671,12 +28683,13 @@ function getPortalTarget() {
|
|
|
28671
28683
|
}
|
|
28672
28684
|
return null;
|
|
28673
28685
|
}
|
|
28674
|
-
var DEFAULT_CONTROL_API_URL;
|
|
28686
|
+
var DEFAULT_CONTROL_API_URL, DEFAULT_PORTAL_URL;
|
|
28675
28687
|
var init_control_config = __esm({
|
|
28676
28688
|
"src/core/control-config.ts"() {
|
|
28677
28689
|
"use strict";
|
|
28678
28690
|
init_portal_credentials();
|
|
28679
28691
|
DEFAULT_CONTROL_API_URL = "http://localhost:3847";
|
|
28692
|
+
DEFAULT_PORTAL_URL = "https://har.kerno.io";
|
|
28680
28693
|
}
|
|
28681
28694
|
});
|
|
28682
28695
|
|
|
@@ -72841,7 +72854,10 @@ var controlCommand = {
|
|
|
72841
72854
|
).command(
|
|
72842
72855
|
"login",
|
|
72843
72856
|
"Log in to a har-portal (browser SSO) and store an ingest token",
|
|
72844
|
-
(y) => y.option("portal", {
|
|
72857
|
+
(y) => y.option("portal", {
|
|
72858
|
+
type: "string",
|
|
72859
|
+
describe: `Portal base URL (or HAR_PORTAL_URL; defaults to the last login, else ${DEFAULT_PORTAL_URL})`
|
|
72860
|
+
}).option("api-key", {
|
|
72845
72861
|
type: "string",
|
|
72846
72862
|
describe: "Store this ingest token directly instead of browser login"
|
|
72847
72863
|
}),
|
|
@@ -73167,13 +73183,16 @@ async function handleSync(argv) {
|
|
|
73167
73183
|
return finishCommand(1);
|
|
73168
73184
|
}
|
|
73169
73185
|
}
|
|
73186
|
+
var PORTAL_SOURCE_LABEL = {
|
|
73187
|
+
flag: "--portal",
|
|
73188
|
+
env: "HAR_PORTAL_URL",
|
|
73189
|
+
saved: "saved login",
|
|
73190
|
+
default: "default"
|
|
73191
|
+
};
|
|
73170
73192
|
async function handleLogin(argv) {
|
|
73171
73193
|
header("har control login");
|
|
73172
|
-
const portalUrl = (argv.portal
|
|
73173
|
-
|
|
73174
|
-
error("Provide --portal <url> (or set HAR_PORTAL_URL)");
|
|
73175
|
-
return finishCommand(1);
|
|
73176
|
-
}
|
|
73194
|
+
const { url: portalUrl, source } = resolvePortalUrl(argv.portal);
|
|
73195
|
+
info(`Portal: ${portalUrl} (${PORTAL_SOURCE_LABEL[source]})`);
|
|
73177
73196
|
if (argv.apiKey) {
|
|
73178
73197
|
writePortalCredentials({
|
|
73179
73198
|
portalUrl,
|