unfairly 0.8.2 → 0.8.3
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/CHANGELOG.md +6 -0
- package/README.md +3 -1
- package/dist/cmd/pace.d.ts +22 -1
- package/dist/cmd/pace.d.ts.map +1 -1
- package/dist/cmd/pace.js +60 -27
- package/dist/cmd/pace.js.map +1 -1
- package/dist/pace/device.d.ts +3 -0
- package/dist/pace/device.d.ts.map +1 -1
- package/dist/pace/device.js +1 -0
- package/dist/pace/device.js.map +1 -1
- package/dist/pace/enroll.d.ts +80 -0
- package/dist/pace/enroll.d.ts.map +1 -0
- package/dist/pace/enroll.js +138 -0
- package/dist/pace/enroll.js.map +1 -0
- package/dist/pace-runtime.d.ts +2 -0
- package/dist/pace-runtime.d.ts.map +1 -0
- package/dist/pace-runtime.js +67 -0
- package/dist/pace-runtime.js.map +1 -0
- package/package.json +4 -3
- package/plugin/.mcp.json +1 -1
- package/plugin/README.md +3 -7
- package/plugin/gemini/gemini-extension.json +1 -1
- package/plugin/mcp.json +1 -1
- package/plugin/runtime/unfairly-intelligence.mjs +5513 -0
- package/plugin/scripts/capture.cjs +30 -8
- package/plugin/skills/find-company-playbook/SKILL.md +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enroll.js","sourceRoot":"","sources":["../../src/pace/enroll.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pace-runtime.d.ts","sourceRoot":"","sources":["../src/pace-runtime.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The runtime bundled inside the Unfairly plugin (plugins/ai-pace/runtime), so
|
|
3
|
+
* installing the plugin from an AI client's plugin store is the whole install:
|
|
4
|
+
* no npm, no terminal. Hooks call it as `node unfairly-intelligence.mjs <command>`.
|
|
5
|
+
*
|
|
6
|
+
* connect <source> <event> first-run connection; prints the SessionStart message
|
|
7
|
+
* await-approval background: claims the credential once the person approves, then syncs
|
|
8
|
+
* capture <source> <event> record a hook event (reads the hook payload on stdin)
|
|
9
|
+
*/
|
|
10
|
+
import { spawn } from "node:child_process";
|
|
11
|
+
import os from "node:os";
|
|
12
|
+
import { runPaceCapture, runPaceSync } from "./cmd/pace.js";
|
|
13
|
+
import { readOrCreatePaceDevice } from "./pace/device.js";
|
|
14
|
+
import { acquireApprovalLock, awaitApproval, ensureEnrolled, releaseApprovalLock, sessionStartOutput } from "./pace/enroll.js";
|
|
15
|
+
const DEFAULT_API = "https://app.unfairly.ai";
|
|
16
|
+
const apiUrl = () => (process.env.UNFAIRLY_API_URL ?? DEFAULT_API).replace(/\/$/, "");
|
|
17
|
+
async function connect(source, event) {
|
|
18
|
+
const device = await readOrCreatePaceDevice();
|
|
19
|
+
if (device.paused)
|
|
20
|
+
return;
|
|
21
|
+
const platform = os.platform();
|
|
22
|
+
const arch = os.arch();
|
|
23
|
+
if ((platform !== "darwin" && platform !== "linux" && platform !== "win32") || (arch !== "x64" && arch !== "arm64"))
|
|
24
|
+
return;
|
|
25
|
+
const state = await ensureEnrolled({
|
|
26
|
+
apiUrl: apiUrl(),
|
|
27
|
+
installationId: device.installation_id,
|
|
28
|
+
platform,
|
|
29
|
+
arch,
|
|
30
|
+
// The calling client identifies itself; probing every installed tool is too slow for a session start.
|
|
31
|
+
clients: [source],
|
|
32
|
+
orgHint: process.env.UNFAIRLY_ORG,
|
|
33
|
+
});
|
|
34
|
+
const output = sessionStartOutput(state, event === "sessionStart" ? "sessionStart" : "SessionStart");
|
|
35
|
+
if (output)
|
|
36
|
+
process.stdout.write(`${output}\n`);
|
|
37
|
+
if (state.status === "waiting") {
|
|
38
|
+
// Watch for the approval in the background so the machine connects while
|
|
39
|
+
// this session is still open. Detached, so the session never waits on it.
|
|
40
|
+
const child = spawn(process.execPath, [process.argv[1], "await-approval"], { detached: true, stdio: "ignore", env: process.env });
|
|
41
|
+
child.on("error", () => undefined);
|
|
42
|
+
child.unref();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async function awaitApprovalAndSync() {
|
|
46
|
+
if (!(await acquireApprovalLock()))
|
|
47
|
+
return;
|
|
48
|
+
try {
|
|
49
|
+
if (await awaitApproval({ apiUrl: apiUrl() }))
|
|
50
|
+
await runPaceSync();
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
await releaseApprovalLock();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async function main() {
|
|
57
|
+
const [command, source = "unknown", event = "Unknown"] = process.argv.slice(2);
|
|
58
|
+
if (command === "connect")
|
|
59
|
+
await connect(source, event);
|
|
60
|
+
else if (command === "await-approval")
|
|
61
|
+
await awaitApprovalAndSync();
|
|
62
|
+
else if (command === "capture")
|
|
63
|
+
await runPaceCapture(source, event);
|
|
64
|
+
}
|
|
65
|
+
// Telemetry must never break the person's AI session.
|
|
66
|
+
main().catch(() => undefined).finally(() => process.exit(0));
|
|
67
|
+
//# sourceMappingURL=pace-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pace-runtime.js","sourceRoot":"","sources":["../src/pace-runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unfairly",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
4
4
|
"description": "CLI + stdio MCP + library SDK for the Unfairly multiplayer context layer — sync vaults, run agents, emit events",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"unfairly",
|
|
@@ -53,8 +53,9 @@
|
|
|
53
53
|
"build": "tsc && chmod +x dist/index.js",
|
|
54
54
|
"dev": "tsx src/index.ts",
|
|
55
55
|
"test": "vitest run",
|
|
56
|
-
"prepack": "npm run build && node scripts/stage-intelligence-plugin.mjs",
|
|
57
|
-
"prepublishOnly": "npm run build"
|
|
56
|
+
"prepack": "npm run build && node scripts/bundle-plugin-runtime.mjs && node scripts/stage-intelligence-plugin.mjs",
|
|
57
|
+
"prepublishOnly": "npm run build",
|
|
58
|
+
"bundle:plugin-runtime": "node scripts/bundle-plugin-runtime.mjs"
|
|
58
59
|
},
|
|
59
60
|
"dependencies": {
|
|
60
61
|
"@modelcontextprotocol/sdk": "^1.0.4",
|
package/plugin/.mcp.json
CHANGED
package/plugin/README.md
CHANGED
|
@@ -2,15 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
The Unfairly plugin is the portable workflow component for Unfairly Intelligence, backed by the existing `unfairly` CLI. Its root Agent Plugins manifest carries the shared skills and MCP definition. Codex/ChatGPT Work use the OpenAI extension, Claude Code uses the Claude compatibility manifest, Cursor uses the native Cursor overlay, and Gemini CLI loads the nested `gemini/` extension. All lifecycle hooks call the compatibility command `unfairly pace capture` and emit the same content-free event contract. Employee-facing commands use `unfairly intelligence`.
|
|
4
4
|
|
|
5
|
-
The plugin
|
|
5
|
+
The plugin carries its own bundled runtime (`runtime/unfairly-intelligence.mjs`, generated from `cli/src/pace-runtime.ts` by `npm run bundle:plugin-runtime` in `cli/`), so installing the plugin is the whole install. Hooks call `scripts/capture.cjs`, which prefers the bundled runtime and falls back to a runtime placed by `npx unfairly` or a global `unfairly`. Identity, redaction, Git enrichment, durable local spooling, upload, and policy live in the shared CLI core.
|
|
6
6
|
|
|
7
|
-
Employees install it through the
|
|
7
|
+
Employees install it from their AI client's plugin screen, using the public marketplace `Unfairly-AI/unfairly-intelligence` (built from this directory by `scripts/build-intelligence-marketplace.mjs`). An administrator sends them `https://intelligence.unfairly.ai/install?org=<org-id>`, which walks through each client and shows the Claude managed-settings snippet for pushing it to everyone. On the first session start the plugin prints a link; the employee approves the machine in the browser (choosing the organization if they belong to several), and the machine receives its own revocable collector credential. A background poller picks up the approval within a few seconds, so the same session connects, and the first sync uploads the last 90 days of sessions after fetching the approved-repository list. After that, session summaries upload at every session start and end.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
npx unfairly@latest
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
The command places a version-pinned runtime and marketplace under `~/.unfairly`, activates every detected hook-capable client, and confirms enrollment with the Intelligence API. No global npm install or administrator permission is required. A newly installed AI client is picked up the next time the command runs. `unfairly intelligence install` is the explicit repair/reinstall command.
|
|
9
|
+
The terminal path still works: `npx unfairly@latest setup --org <org-id>` installs and enrolls, and `unfairly intelligence backfill --days 90` uploads past sessions from the local transcripts.
|
|
14
10
|
|
|
15
11
|
Before activation, inspect the exact contract with `unfairly intelligence policy`. Use `unfairly intelligence status` to see enabled clients, queue depth, policy/runtime/plugin versions, attestation expiry, and last upload. Collection can be stopped without losing installation identity with `unfairly intelligence pause` and restarted with `unfairly intelligence resume`. `unfairly intelligence uninstall` removes only tracked Unfairly-managed files and local Intelligence state.
|
|
16
12
|
|