@dualityinstitute/blink 0.0.1 → 0.0.2
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 +9 -8
- package/dist/cli.js +20 -4
- package/dist/electron/main.js +3 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ floating popup.
|
|
|
16
16
|
|
|
17
17
|
- macOS; Meeting audio capture requires macOS 26 or newer
|
|
18
18
|
- [Bun](https://bun.sh/) 1.0.17 or newer
|
|
19
|
-
- A Blink
|
|
19
|
+
- A Blink access token from [duality.institute/blink](https://www.duality.institute/blink)
|
|
20
20
|
|
|
21
21
|
The desktop app does not require OpenCode, Codex, Claude Code, or model
|
|
22
22
|
credentials on the Mac.
|
|
@@ -27,18 +27,19 @@ credentials on the Mac.
|
|
|
27
27
|
bunx @dualityinstitute/blink install
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
The terminal UI asks for the
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
The terminal UI asks for the access token, writes `~/.blink/config.json`, and
|
|
31
|
+
installs the global `blink` command. No DMG is required. Blink Cloud is reached
|
|
32
|
+
at its default URL, so only the token is needed.
|
|
33
33
|
|
|
34
34
|
For non-interactive installation:
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
bunx @dualityinstitute/blink install
|
|
38
|
-
--api-url https://blink.example.com \
|
|
39
|
-
--token blink_customer_token
|
|
37
|
+
bunx @dualityinstitute/blink install --token blink_customer_token
|
|
40
38
|
```
|
|
41
39
|
|
|
40
|
+
Pass `--api-url` as well to point the app at a different gateway, such as a
|
|
41
|
+
local one during development.
|
|
42
|
+
|
|
42
43
|
Then launch the menu-bar app:
|
|
43
44
|
|
|
44
45
|
```bash
|
|
@@ -148,7 +149,7 @@ and token totals are kept for billing.
|
|
|
148
149
|
|
|
149
150
|
| Key | Default | Purpose |
|
|
150
151
|
|---|---|---|
|
|
151
|
-
| `apiUrl` |
|
|
152
|
+
| `apiUrl` | Blink Cloud | Gateway base URL; override only for a self-hosted or local gateway |
|
|
152
153
|
| `accessToken` | Empty | Bearer token issued for Blink Cloud |
|
|
153
154
|
| `screenshotDir` | `~/blinkDir/` | Watched PNG directory |
|
|
154
155
|
| `hideFromCapture` | `true` | Enables privacy mode |
|
package/dist/cli.js
CHANGED
|
@@ -19961,7 +19961,8 @@ var CloudUsageSchema = exports_external.object({
|
|
|
19961
19961
|
answersUsed: exports_external.number().int().nonnegative(),
|
|
19962
19962
|
answersLimit: exports_external.number().int().nonnegative(),
|
|
19963
19963
|
periodStart: exports_external.string().min(1),
|
|
19964
|
-
periodEnd: exports_external.string().min(1)
|
|
19964
|
+
periodEnd: exports_external.string().min(1),
|
|
19965
|
+
cancelAtPeriodEnd: exports_external.boolean().default(false)
|
|
19965
19966
|
});
|
|
19966
19967
|
var CloudIdentitySchema = exports_external.object({
|
|
19967
19968
|
active: exports_external.literal(true),
|
|
@@ -19970,8 +19971,10 @@ var CloudIdentitySchema = exports_external.object({
|
|
|
19970
19971
|
});
|
|
19971
19972
|
var CloudPortalSchema = exports_external.object({ url: exports_external.url() });
|
|
19972
19973
|
function formatUsage(usage) {
|
|
19973
|
-
const
|
|
19974
|
-
|
|
19974
|
+
const date5 = usage.periodEnd.slice(0, 10);
|
|
19975
|
+
const ending = usage.cancelAtPeriodEnd || usage.status === "canceled";
|
|
19976
|
+
const suffix = ending ? `access ends ${date5}` : `renews ${date5}`;
|
|
19977
|
+
return `${usage.answersUsed} / ${usage.answersLimit} answers this period, ${suffix}`;
|
|
19975
19978
|
}
|
|
19976
19979
|
|
|
19977
19980
|
class CloudProtocolError extends Error {
|
|
@@ -20015,7 +20018,7 @@ function parseCloudEvent(line) {
|
|
|
20015
20018
|
import * as fs from "fs";
|
|
20016
20019
|
import * as os from "os";
|
|
20017
20020
|
import * as path from "path";
|
|
20018
|
-
var DEFAULT_API_URL = "
|
|
20021
|
+
var DEFAULT_API_URL = "https://blink-gateway.salmoncoast-a526f33c.northcentralus.azurecontainerapps.io";
|
|
20019
20022
|
var DEFAULTS = {
|
|
20020
20023
|
apiUrl: DEFAULT_API_URL,
|
|
20021
20024
|
accessToken: "",
|
|
@@ -20149,6 +20152,18 @@ function ungrant() {
|
|
|
20149
20152
|
}
|
|
20150
20153
|
console.log("Cleared. Blink asks for Microphone and Screen & System Audio Recording again next launch.");
|
|
20151
20154
|
}
|
|
20155
|
+
function resetGrantsAfterInstall() {
|
|
20156
|
+
if (process.platform !== "darwin")
|
|
20157
|
+
return;
|
|
20158
|
+
try {
|
|
20159
|
+
if (resetGrants()) {
|
|
20160
|
+
console.log("Cleared macOS permissions so Blink can request them fresh.");
|
|
20161
|
+
}
|
|
20162
|
+
} catch (error61) {
|
|
20163
|
+
console.log(`Could not reset macOS permissions automatically: ${error61 instanceof Error ? error61.message : String(error61)}`);
|
|
20164
|
+
console.log("Run `blink ungrant` if capture or the microphone is denied.");
|
|
20165
|
+
}
|
|
20166
|
+
}
|
|
20152
20167
|
function resetGrants() {
|
|
20153
20168
|
const result = spawnSync("tccutil", ["reset", "All", BLINK_BUNDLE_ID], {
|
|
20154
20169
|
encoding: "utf8"
|
|
@@ -20321,6 +20336,7 @@ async function install(args) {
|
|
|
20321
20336
|
throw new Error(`Global installation failed with code ${result.status ?? 1}`);
|
|
20322
20337
|
}
|
|
20323
20338
|
}
|
|
20339
|
+
resetGrantsAfterInstall();
|
|
20324
20340
|
outro(`Configured Blink Cloud in ${getConfigPath()}. Run \`blink\` to start.`);
|
|
20325
20341
|
}
|
|
20326
20342
|
async function configure(args) {
|
package/dist/electron/main.js
CHANGED
|
@@ -23061,7 +23061,7 @@ function date4(params) {
|
|
|
23061
23061
|
return _coercedDate(ZodDate, params);
|
|
23062
23062
|
}
|
|
23063
23063
|
// src/core/config.ts
|
|
23064
|
-
var DEFAULT_API_URL = "
|
|
23064
|
+
var DEFAULT_API_URL = "https://blink-gateway.salmoncoast-a526f33c.northcentralus.azurecontainerapps.io";
|
|
23065
23065
|
var DEFAULTS = {
|
|
23066
23066
|
apiUrl: DEFAULT_API_URL,
|
|
23067
23067
|
accessToken: "",
|
|
@@ -24817,7 +24817,8 @@ var CloudUsageSchema = exports_external.object({
|
|
|
24817
24817
|
answersUsed: exports_external.number().int().nonnegative(),
|
|
24818
24818
|
answersLimit: exports_external.number().int().nonnegative(),
|
|
24819
24819
|
periodStart: exports_external.string().min(1),
|
|
24820
|
-
periodEnd: exports_external.string().min(1)
|
|
24820
|
+
periodEnd: exports_external.string().min(1),
|
|
24821
|
+
cancelAtPeriodEnd: exports_external.boolean().default(false)
|
|
24821
24822
|
});
|
|
24822
24823
|
var CloudIdentitySchema = exports_external.object({
|
|
24823
24824
|
active: exports_external.literal(true),
|