@tapflowio/agent-core 0.9.0 → 0.9.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/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/machineId.d.ts +11 -0
- package/dist/utils/machineId.d.ts.map +1 -0
- package/dist/utils/machineId.js +21 -0
- package/dist/utils/machineId.js.map +1 -0
- package/dist/utils/power.d.ts +10 -5
- package/dist/utils/power.d.ts.map +1 -1
- package/dist/utils/power.js +12 -6
- package/dist/utils/power.js.map +1 -1
- package/dist/utils/relayUrl.d.ts +9 -0
- package/dist/utils/relayUrl.d.ts.map +1 -0
- package/dist/utils/relayUrl.js +18 -0
- package/dist/utils/relayUrl.js.map +1 -0
- package/package.json +3 -3
package/dist/utils/index.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export { createThroughputSampler } from './throughput.js';
|
|
|
7
7
|
export type { ThroughputSample } from './throughput.js';
|
|
8
8
|
export { createSleepBlocker } from './power.js';
|
|
9
9
|
export type { SleepBlocker } from './power.js';
|
|
10
|
+
export { getMachineId } from './machineId.js';
|
|
11
|
+
export { isLocalhostWss } from './relayUrl.js';
|
|
10
12
|
export { pickMaxSize } from './resolution.js';
|
|
11
13
|
export { parseSpsVui, rewriteSpsLowLatency, rewriteLowLatencySpsInFrame, } from './sps.js';
|
|
12
14
|
export type { SpsVuiInfo } from './sps.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACf,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACf,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/utils/index.js
CHANGED
|
@@ -3,6 +3,8 @@ export { registerStreamWs, disableNagle, sendBinaryWithBackpressure, createKeyfr
|
|
|
3
3
|
export { TFFE_MAGIC, HEADER_SIZE, CODEC_JPEG, CODEC_H264, hasEnvelope, writeEnvelopeHeader, readEnvelopeFlags, patchRelayedAt, } from './envelope.js';
|
|
4
4
|
export { createThroughputSampler } from './throughput.js';
|
|
5
5
|
export { createSleepBlocker } from './power.js';
|
|
6
|
+
export { getMachineId } from './machineId.js';
|
|
7
|
+
export { isLocalhostWss } from './relayUrl.js';
|
|
6
8
|
export { pickMaxSize } from './resolution.js';
|
|
7
9
|
export { parseSpsVui, rewriteSpsLowLatency, rewriteLowLatencySpsInFrame, } from './sps.js';
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACf,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACf,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { execFileSync } from 'child_process';
|
|
2
|
+
/**
|
|
3
|
+
* Stable per-machine id from the macOS IOPlatformUUID, used by the relay to dedup an agent's
|
|
4
|
+
* stale socket on re-register without false-positives. Unlike os.hostname() it's unique per Mac
|
|
5
|
+
* (two hosts can share a hostname), and it survives reboots/reconnects. macOS-only — returns
|
|
6
|
+
* undefined elsewhere (and on any failure), so callers fall back to the hostname.
|
|
7
|
+
*
|
|
8
|
+
* `platform`/`execFn` are injectable for tests.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getMachineId(platform?: NodeJS.Platform, execFn?: typeof execFileSync): string | undefined;
|
|
11
|
+
//# sourceMappingURL=machineId.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machineId.d.ts","sourceRoot":"","sources":["../../src/utils/machineId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,MAAM,GAAE,OAAO,YAA2B,GACzC,MAAM,GAAG,SAAS,CAQpB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { execFileSync } from 'child_process';
|
|
2
|
+
/**
|
|
3
|
+
* Stable per-machine id from the macOS IOPlatformUUID, used by the relay to dedup an agent's
|
|
4
|
+
* stale socket on re-register without false-positives. Unlike os.hostname() it's unique per Mac
|
|
5
|
+
* (two hosts can share a hostname), and it survives reboots/reconnects. macOS-only — returns
|
|
6
|
+
* undefined elsewhere (and on any failure), so callers fall back to the hostname.
|
|
7
|
+
*
|
|
8
|
+
* `platform`/`execFn` are injectable for tests.
|
|
9
|
+
*/
|
|
10
|
+
export function getMachineId(platform = process.platform, execFn = execFileSync) {
|
|
11
|
+
if (platform !== 'darwin')
|
|
12
|
+
return undefined;
|
|
13
|
+
try {
|
|
14
|
+
const out = execFn('ioreg', ['-rd1', '-c', 'IOPlatformExpertDevice'], { encoding: 'utf8' });
|
|
15
|
+
return out.match(/"IOPlatformUUID"\s*=\s*"([^"]+)"/)?.[1];
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=machineId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machineId.js","sourceRoot":"","sources":["../../src/utils/machineId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,WAA4B,OAAO,CAAC,QAAQ,EAC5C,SAA8B,YAAY;IAE1C,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAW,CAAA;QACrG,OAAO,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
|
package/dist/utils/power.d.ts
CHANGED
|
@@ -6,14 +6,19 @@ export interface SleepBlocker {
|
|
|
6
6
|
release(): void;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
|
-
* macOS-only host power assertion via `caffeinate
|
|
9
|
+
* macOS-only host power assertion via `caffeinate`, so the system doesn't
|
|
10
10
|
* idle-throttle (or sleep) the simulator/emulator while a session is active —
|
|
11
11
|
* the emulator's software H.264 encoder starves badly when the host idles
|
|
12
12
|
* (unattended/backgrounded Mac). Off macOS this is a complete no-op.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* Defaults to `-di`, which also prevents display sleep: when the display sleeps
|
|
15
|
+
* macOS parks the GPU, throttling the simulator render and encode pre-processing.
|
|
16
|
+
* Running an agent effectively dedicates the Mac to tapflow, so keeping the
|
|
17
|
+
* display awake is the right default. Set `TAPFLOW_ALLOW_DISPLAY_SLEEP` to fall
|
|
18
|
+
* back to plain `-i` (system sleep only) on a shared daily-driver Mac.
|
|
19
|
+
*
|
|
20
|
+
* Neither flag overrides battery CPU scaling. Partial but meaningful mitigation.
|
|
21
|
+
* `platform`/`spawnFn`/`env` are injectable for tests.
|
|
17
22
|
*/
|
|
18
|
-
export declare function createSleepBlocker(platform?: NodeJS.Platform, spawnFn?: typeof spawn): SleepBlocker;
|
|
23
|
+
export declare function createSleepBlocker(platform?: NodeJS.Platform, spawnFn?: typeof spawn, env?: NodeJS.ProcessEnv): SleepBlocker;
|
|
19
24
|
//# sourceMappingURL=power.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power.d.ts","sourceRoot":"","sources":["../../src/utils/power.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAGrC,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,OAAO,IAAI,IAAI,CAAA;IACf,yDAAyD;IACzD,OAAO,IAAI,IAAI,CAAA;CAChB;AAED
|
|
1
|
+
{"version":3,"file":"power.d.ts","sourceRoot":"","sources":["../../src/utils/power.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAGrC,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,OAAO,IAAI,IAAI,CAAA;IACf,yDAAyD;IACzD,OAAO,IAAI,IAAI,CAAA;CAChB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,OAAO,GAAE,OAAO,KAAa,EAC7B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,YAAY,CA0Bd"}
|
package/dist/utils/power.js
CHANGED
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
import { spawn } from 'child_process';
|
|
2
2
|
/**
|
|
3
|
-
* macOS-only host power assertion via `caffeinate
|
|
3
|
+
* macOS-only host power assertion via `caffeinate`, so the system doesn't
|
|
4
4
|
* idle-throttle (or sleep) the simulator/emulator while a session is active —
|
|
5
5
|
* the emulator's software H.264 encoder starves badly when the host idles
|
|
6
6
|
* (unattended/backgrounded Mac). Off macOS this is a complete no-op.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* Defaults to `-di`, which also prevents display sleep: when the display sleeps
|
|
9
|
+
* macOS parks the GPU, throttling the simulator render and encode pre-processing.
|
|
10
|
+
* Running an agent effectively dedicates the Mac to tapflow, so keeping the
|
|
11
|
+
* display awake is the right default. Set `TAPFLOW_ALLOW_DISPLAY_SLEEP` to fall
|
|
12
|
+
* back to plain `-i` (system sleep only) on a shared daily-driver Mac.
|
|
13
|
+
*
|
|
14
|
+
* Neither flag overrides battery CPU scaling. Partial but meaningful mitigation.
|
|
15
|
+
* `platform`/`spawnFn`/`env` are injectable for tests.
|
|
11
16
|
*/
|
|
12
|
-
export function createSleepBlocker(platform = process.platform, spawnFn = spawn) {
|
|
17
|
+
export function createSleepBlocker(platform = process.platform, spawnFn = spawn, env = process.env) {
|
|
13
18
|
let proc = null;
|
|
14
19
|
return {
|
|
15
20
|
acquire() {
|
|
16
21
|
if (proc || platform !== 'darwin')
|
|
17
22
|
return;
|
|
18
23
|
try {
|
|
19
|
-
const
|
|
24
|
+
const flag = env.TAPFLOW_ALLOW_DISPLAY_SLEEP ? '-i' : '-di';
|
|
25
|
+
const child = spawnFn('caffeinate', [flag], { stdio: 'ignore' });
|
|
20
26
|
proc = child;
|
|
21
27
|
// Drop the handle on any termination (missing binary, external kill, exit) so a
|
|
22
28
|
// later acquire() re-spawns. Guard on identity so a stale child's late event can't
|
package/dist/utils/power.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power.js","sourceRoot":"","sources":["../../src/utils/power.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAUrC
|
|
1
|
+
{"version":3,"file":"power.js","sourceRoot":"","sources":["../../src/utils/power.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAUrC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAA4B,OAAO,CAAC,QAAQ,EAC5C,UAAwB,KAAK,EAC7B,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,IAAI,GAAwB,IAAI,CAAA;IACpC,OAAO;QACL,OAAO;YACL,IAAI,IAAI,IAAI,QAAQ,KAAK,QAAQ;gBAAE,OAAM;YACzC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;gBAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;gBAChE,IAAI,GAAG,KAAK,CAAA;gBACZ,gFAAgF;gBAChF,mFAAmF;gBACnF,wBAAwB;gBACxB,MAAM,KAAK,GAAG,GAAS,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK;oBAAE,IAAI,GAAG,IAAI,CAAA,CAAC,CAAC,CAAA;gBAC7D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;gBACzB,KAAK,CAAC,KAAK,EAAE,CAAA;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,GAAG,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI,EAAE,CAAA;YACZ,IAAI,GAAG,IAAI,CAAA;QACb,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* True when the relay URL is a wss connection to localhost. In the all-in-one `tapflow start` setup
|
|
3
|
+
* the relay terminates TLS with a domain cert, but the co-located agent reaches it over wss://localhost
|
|
4
|
+
* — a cert that won't match localhost. localhost never leaves the machine, so MITM is impossible; the
|
|
5
|
+
* agent accepts the cert (rejectUnauthorized:false) only in this case. External relays keep full
|
|
6
|
+
* verification.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isLocalhostWss(url: string): boolean;
|
|
9
|
+
//# sourceMappingURL=relayUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relayUrl.d.ts","sourceRoot":"","sources":["../../src/utils/relayUrl.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQnD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* True when the relay URL is a wss connection to localhost. In the all-in-one `tapflow start` setup
|
|
3
|
+
* the relay terminates TLS with a domain cert, but the co-located agent reaches it over wss://localhost
|
|
4
|
+
* — a cert that won't match localhost. localhost never leaves the machine, so MITM is impossible; the
|
|
5
|
+
* agent accepts the cert (rejectUnauthorized:false) only in this case. External relays keep full
|
|
6
|
+
* verification.
|
|
7
|
+
*/
|
|
8
|
+
export function isLocalhostWss(url) {
|
|
9
|
+
try {
|
|
10
|
+
const u = new URL(url);
|
|
11
|
+
const host = u.hostname.replace(/^\[|\]$/g, ''); // strip IPv6 brackets ([::1] → ::1)
|
|
12
|
+
return u.protocol === 'wss:' && (host === 'localhost' || host === '127.0.0.1' || host === '::1');
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=relayUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relayUrl.js","sourceRoot":"","sources":["../../src/utils/relayUrl.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA,CAAC,oCAAoC;QACpF,OAAO,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,CAAC,CAAA;IAClG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tapflowio/agent-core",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "DeviceAgent interface, AgentRegistry, and shared utilities for tapflow agents",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tapflow",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"ws": "^8.21.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@types/node": "^20.
|
|
56
|
+
"@types/node": "^20.19.43",
|
|
57
57
|
"@types/ws": "^8.0.0",
|
|
58
58
|
"typescript": "^5.0.0",
|
|
59
|
-
"vitest": "^4.1.
|
|
59
|
+
"vitest": "^4.1.9"
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
62
62
|
"build": "tsc",
|