@sayknow-cli/natives 0.3.16 → 0.4.1
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/native/index.d.ts +372 -2
- package/native/index.js +15 -1
- package/package.json +6 -6
package/native/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare class ComputerController {
|
|
|
12
12
|
keypress(expectedEpoch: number | undefined | null, keys: Array<string>): void
|
|
13
13
|
wait(expectedEpoch: number | undefined | null, ms: number): void
|
|
14
14
|
}
|
|
15
|
+
|
|
15
16
|
/**
|
|
16
17
|
* Long-lived macOS appearance observer.
|
|
17
18
|
*
|
|
@@ -51,6 +52,18 @@ export declare class MacOSPowerAssertion {
|
|
|
51
52
|
stop(): void
|
|
52
53
|
}
|
|
53
54
|
|
|
55
|
+
/** Retained no-follow authority for the SDK publication namespace. */
|
|
56
|
+
export declare class NativeRetainedBrokerPublication {
|
|
57
|
+
observe(): NativeBrokerPublicationObservation
|
|
58
|
+
heartbeat(heartbeatAt: string): NativeBrokerPublicationOperation
|
|
59
|
+
sync(): NativeBrokerPublicationOperation
|
|
60
|
+
/**
|
|
61
|
+
* Close discovery, owner record, lock directory, and SDK root in that
|
|
62
|
+
* order.
|
|
63
|
+
*/
|
|
64
|
+
close(): NativeBrokerPublicationOperation
|
|
65
|
+
}
|
|
66
|
+
|
|
54
67
|
/**
|
|
55
68
|
* In-process, session-independent lifecycle **control** server exposed to TS.
|
|
56
69
|
*
|
|
@@ -273,6 +286,82 @@ export declare class PtySession {
|
|
|
273
286
|
kill(): void
|
|
274
287
|
}
|
|
275
288
|
|
|
289
|
+
/** Retained trusted-root authority for Linux recovery artifacts. */
|
|
290
|
+
export declare class RecoveryFsRoot {
|
|
291
|
+
/** Return the stable identity of the retained root descriptor. */
|
|
292
|
+
identity(): RecoveryFsResult
|
|
293
|
+
/**
|
|
294
|
+
* Derive a retained child-directory capability from this root and exact
|
|
295
|
+
* identity evidence.
|
|
296
|
+
*/
|
|
297
|
+
retainManagedDirectory(relativePath: string, expectedDev: string, expectedIno: string): RecoveryFsRoot
|
|
298
|
+
/** Stat one existing regular, single-linked file without following links. */
|
|
299
|
+
stat(relativePath: string): RecoveryFsResult
|
|
300
|
+
/** Read one existing regular, single-linked file without following links. */
|
|
301
|
+
read(relativePath: string, maxBytes: number): RecoveryFsResult
|
|
302
|
+
/** Read one managed artifact with the managed-storage size bound. */
|
|
303
|
+
readManaged(relativePath: string): RecoveryFsResult
|
|
304
|
+
/**
|
|
305
|
+
* Create one previously absent regular, owner-only file and synchronously
|
|
306
|
+
* persist its contents. Existing entries are never replaced.
|
|
307
|
+
*/
|
|
308
|
+
create(relativePath: string, data: Uint8Array): RecoveryFsResult
|
|
309
|
+
/** Create one managed artifact with the managed-storage size bound. */
|
|
310
|
+
createManaged(relativePath: string, data: Uint8Array): RecoveryFsResult
|
|
311
|
+
/**
|
|
312
|
+
* Atomically replace one exact regular file with a newly written managed
|
|
313
|
+
* artifact. The destination must retain the supplied identity throughout
|
|
314
|
+
* authorization.
|
|
315
|
+
*/
|
|
316
|
+
replaceManaged(relativePath: string, data: Uint8Array, expectedDev: string, expectedIno: string, expectedSize: string, expectedMtimeNs: string, expectedCtimeNs: string, expectedSha256: string): RecoveryFsResult
|
|
317
|
+
/**
|
|
318
|
+
* Synchronously append one record to an exact retained managed file without
|
|
319
|
+
* replacing its inode or creating recovery copies.
|
|
320
|
+
*/
|
|
321
|
+
appendManaged(relativePath: string, data: Uint8Array, expectedDev: string, expectedIno: string, expectedSize: string, expectedMtimeNs: string, expectedCtimeNs: string, expectedSha256: string): RecoveryFsResult
|
|
322
|
+
/** Remove one exact managed regular file through retained authority. */
|
|
323
|
+
removeManaged(relativePath: string, expectedDev: string, expectedIno: string, expectedSize: string, expectedMtimeNs: string, expectedCtimeNs: string, expectedSha256: string): RecoveryFsResult
|
|
324
|
+
/**
|
|
325
|
+
* Create each absent directory component beneath the retained root with
|
|
326
|
+
* owner-only security. Existing components are re-opened no-follow.
|
|
327
|
+
*/
|
|
328
|
+
ensureManagedDirectory(relativePath: string): RecoveryFsResult
|
|
329
|
+
/**
|
|
330
|
+
* Move an exact managed file to an absent name entirely beneath this
|
|
331
|
+
* retained root. The source identity is rechecked after the no-replace
|
|
332
|
+
* rename, and the move is rolled back on a mismatch.
|
|
333
|
+
*/
|
|
334
|
+
renameManagedFileNoReplace(sourceRelativePath: string, destinationRelativePath: string, expectedDev: string, expectedIno: string, expectedSize: string, expectedMtimeNs: string, expectedCtimeNs: string, expectedSha256: string): RecoveryFsResult
|
|
335
|
+
/** Snapshot a managed directory tree entirely through the retained root. */
|
|
336
|
+
snapshotManagedTree(relativePath: string): NativeDirectoryTreeResult
|
|
337
|
+
/**
|
|
338
|
+
* Move an exact managed directory tree to an absent name through retained
|
|
339
|
+
* authority.
|
|
340
|
+
*/
|
|
341
|
+
renameManagedTreeNoReplace(sourceRelativePath: string, destinationRelativePath: string, expected: NativeDirectoryTreeSnapshot): RecoveryFsResult
|
|
342
|
+
/** Remove an exact managed directory tree through retained authority. */
|
|
343
|
+
removeManagedTree(relativePath: string, expected: NativeDirectoryTreeSnapshot): RecoveryFsResult
|
|
344
|
+
/**
|
|
345
|
+
* Atomically install an already-created regular file at an absent name.
|
|
346
|
+
* Both names remain relative to this retained root and are never resolved
|
|
347
|
+
* through a pathname after their parent descriptors are acquired.
|
|
348
|
+
*/
|
|
349
|
+
install(sourceRelativePath: string, destinationRelativePath: string): RecoveryFsResult
|
|
350
|
+
/**
|
|
351
|
+
* Synchronize the retained root directory, making a preceding create or
|
|
352
|
+
* install durable when the filesystem supports directory fsync.
|
|
353
|
+
*/
|
|
354
|
+
fsync(): RecoveryFsResult
|
|
355
|
+
/**
|
|
356
|
+
* Fsync one expected object relative to the retained root and prove
|
|
357
|
+
* identity.
|
|
358
|
+
*/
|
|
359
|
+
fsyncExpected(relativePath: string, directory: boolean, expectedDev: string, expectedIno: string, expectedSize: string, expectedMtimeNs: string, expectedSha256?: string | undefined | null): RecoveryFsResult
|
|
360
|
+
/** Verify owner-only directory security on the retained root descriptor. */
|
|
361
|
+
verifyOwnerOnlyDirectory(): RecoveryFsResult
|
|
362
|
+
close(): RecoveryFsResult
|
|
363
|
+
}
|
|
364
|
+
|
|
276
365
|
/** Persistent brush-core shell session. */
|
|
277
366
|
export declare class Shell {
|
|
278
367
|
/**
|
|
@@ -315,7 +404,7 @@ export declare class Shell {
|
|
|
315
404
|
* `packages/natives/native/index.js` (which derives the name from
|
|
316
405
|
* `package.json#version`).
|
|
317
406
|
*/
|
|
318
|
-
export declare function
|
|
407
|
+
export declare function __piNativesV0_4_1(): void
|
|
319
408
|
|
|
320
409
|
/**
|
|
321
410
|
* Apply conservative pre-execution rewrites to a bash command.
|
|
@@ -326,6 +415,15 @@ export declare function __piNativesV0_3_16(): void
|
|
|
326
415
|
*/
|
|
327
416
|
export declare function applyBashFixups(command: string): BashFixupResult
|
|
328
417
|
|
|
418
|
+
/**
|
|
419
|
+
* Apply owner-only security to the exact caller descriptor and its retained
|
|
420
|
+
* no-follow path. The descriptor is duplicated with close-on-exec and is never
|
|
421
|
+
* returned to JavaScript.
|
|
422
|
+
*/
|
|
423
|
+
export declare function applyOwnerOnlyFdSecurity(path: string, kind: "directory" | "file", callerFd: number): NativeOwnerOnlySecurityResult
|
|
424
|
+
|
|
425
|
+
export declare function applyOwnerOnlyPathSecurity(path: string, kind: "directory" | "file"): NativeOwnerOnlySecurityResult
|
|
426
|
+
|
|
329
427
|
/** Typed terminal acknowledgement result returned by acknowledgement promises. */
|
|
330
428
|
export interface AskSelectedAckOutcomeEvent {
|
|
331
429
|
status: string
|
|
@@ -535,6 +633,8 @@ export interface BuildInfo {
|
|
|
535
633
|
languageSet: string
|
|
536
634
|
}
|
|
537
635
|
|
|
636
|
+
export declare function canonicalExistingDirectoryIdentity(path: string | Uint8Array): NativeCanonicalDirectoryIdentity
|
|
637
|
+
|
|
538
638
|
/** Clipboard image payload encoded as PNG bytes. */
|
|
539
639
|
export interface ClipboardImage {
|
|
540
640
|
/** PNG-encoded image bytes. */
|
|
@@ -647,6 +747,29 @@ export declare enum Ellipsis {
|
|
|
647
747
|
*/
|
|
648
748
|
export declare function encodeSixel(bytes: Uint8Array, targetWidthPx: number, targetHeightPx: number): string
|
|
649
749
|
|
|
750
|
+
/**
|
|
751
|
+
* Remove an already durably planned detached directory only when a fresh
|
|
752
|
+
* descriptor-relative snapshot exactly equals the persisted snapshot. The
|
|
753
|
+
* caller-planned root remains in place while its opened descriptor is
|
|
754
|
+
* authoritative throughout recursive removal.
|
|
755
|
+
*/
|
|
756
|
+
export declare function exactRemoveDirectoryTree(path: string, snapshot: NativeDirectoryTreeSnapshot): NativeExactUnlinkResult
|
|
757
|
+
|
|
758
|
+
/**
|
|
759
|
+
* Restore only the detached object that still has the supplied platform
|
|
760
|
+
* identity. The detached and original paths must retain the same validated
|
|
761
|
+
* parent, and restoration never replaces an existing original path.
|
|
762
|
+
*/
|
|
763
|
+
export declare function exactRestore(detachedPath: string, originalPath: string, identity: NativeExactFileIdentity): NativeExactUnlinkResult
|
|
764
|
+
|
|
765
|
+
/**
|
|
766
|
+
* Delete only the regular file that still has the supplied platform identity.
|
|
767
|
+
*
|
|
768
|
+
* This never follows a symlink or reparse point in the target path and reports
|
|
769
|
+
* validation failures as typed results rather than deleting a replacement.
|
|
770
|
+
*/
|
|
771
|
+
export declare function exactUnlink(path: string, identity: NativeExactFileIdentity): NativeExactUnlinkResult
|
|
772
|
+
|
|
650
773
|
/**
|
|
651
774
|
* Execute a brush shell command.
|
|
652
775
|
*
|
|
@@ -1377,8 +1500,209 @@ export interface MinimizerResult {
|
|
|
1377
1500
|
outputBytes: number
|
|
1378
1501
|
}
|
|
1379
1502
|
|
|
1503
|
+
/** Evidence for one Linux POSIX ACL attribute. */
|
|
1504
|
+
export interface NativeAclAttributeEvidence {
|
|
1505
|
+
clear: string
|
|
1506
|
+
query: string
|
|
1507
|
+
}
|
|
1508
|
+
|
|
1509
|
+
/** Bounded Linux POSIX ACL evidence for an owner-only result. */
|
|
1510
|
+
export interface NativeAclEvidence {
|
|
1511
|
+
access: NativeAclAttributeEvidence
|
|
1512
|
+
default?: NativeAclAttributeEvidence
|
|
1513
|
+
}
|
|
1514
|
+
|
|
1515
|
+
/** Classification of a read-only retained-publication observation. */
|
|
1516
|
+
export interface NativeBrokerPublicationObservation {
|
|
1517
|
+
kind: string
|
|
1518
|
+
}
|
|
1519
|
+
|
|
1520
|
+
/** Result of a retained positional heartbeat write or sync. */
|
|
1521
|
+
export interface NativeBrokerPublicationOperation {
|
|
1522
|
+
kind: string
|
|
1523
|
+
}
|
|
1524
|
+
|
|
1380
1525
|
export declare function nativeBuildInfo(): BuildInfo
|
|
1381
1526
|
|
|
1527
|
+
/** Result of resolving an existing directory to its stable platform identity. */
|
|
1528
|
+
export type NativeCanonicalDirectoryIdentity =
|
|
1529
|
+
| { ok: true; platform: "posix" | "win32"; canonicalPath: string; code?: never }
|
|
1530
|
+
| {
|
|
1531
|
+
ok: false;
|
|
1532
|
+
platform?: never;
|
|
1533
|
+
canonicalPath?: never;
|
|
1534
|
+
code: "not_found" | "not_directory" | "not_utf8" | "network_unsupported" | "identity_unavailable" | "io_error";
|
|
1535
|
+
}
|
|
1536
|
+
|
|
1537
|
+
/**
|
|
1538
|
+
* A deterministic, no-follow description of a directory tree. `relative_path`
|
|
1539
|
+
* is UTF-8, uses `/` separators, and is empty only for the root entry.
|
|
1540
|
+
*/
|
|
1541
|
+
export interface NativeDirectoryTreeEntry {
|
|
1542
|
+
relativePath: string
|
|
1543
|
+
kind: string
|
|
1544
|
+
dev: string
|
|
1545
|
+
ino: string
|
|
1546
|
+
size: string
|
|
1547
|
+
mtimeNs: string
|
|
1548
|
+
ctimeNs: string
|
|
1549
|
+
sha256?: string
|
|
1550
|
+
}
|
|
1551
|
+
|
|
1552
|
+
export interface NativeDirectoryTreeResult {
|
|
1553
|
+
ok: boolean
|
|
1554
|
+
code?: string
|
|
1555
|
+
snapshot?: NativeDirectoryTreeSnapshot
|
|
1556
|
+
}
|
|
1557
|
+
|
|
1558
|
+
/**
|
|
1559
|
+
* Stable evidence returned by `snapshot_directory_tree` and consumed verbatim
|
|
1560
|
+
* by `exact_remove_directory_tree`.
|
|
1561
|
+
*/
|
|
1562
|
+
export interface NativeDirectoryTreeSnapshot {
|
|
1563
|
+
rootDev: string
|
|
1564
|
+
rootIno: string
|
|
1565
|
+
entries: Array<NativeDirectoryTreeEntry>
|
|
1566
|
+
}
|
|
1567
|
+
|
|
1568
|
+
/**
|
|
1569
|
+
* Caller-supplied identity and preauthorized quarantine evidence for exact
|
|
1570
|
+
* deletion.
|
|
1571
|
+
*/
|
|
1572
|
+
export interface NativeExactFileIdentity {
|
|
1573
|
+
dev: bigint
|
|
1574
|
+
ino: bigint
|
|
1575
|
+
size: bigint
|
|
1576
|
+
mtimeNs: bigint
|
|
1577
|
+
/**
|
|
1578
|
+
* When true, atomically detach a directory rather than deleting a regular
|
|
1579
|
+
* file.
|
|
1580
|
+
*/
|
|
1581
|
+
directory?: boolean
|
|
1582
|
+
/**
|
|
1583
|
+
* Keep a regular file in quarantine after its identity has been verified
|
|
1584
|
+
* instead of unlinking it. This makes cross-device retirement recoverable.
|
|
1585
|
+
*/
|
|
1586
|
+
detachOnly?: boolean
|
|
1587
|
+
/**
|
|
1588
|
+
* A caller-persisted, single-component no-replace quarantine destination.
|
|
1589
|
+
* Required for every exact deletion so authority survives a post-detach
|
|
1590
|
+
* crash.
|
|
1591
|
+
*/
|
|
1592
|
+
quarantineName?: string
|
|
1593
|
+
/**
|
|
1594
|
+
* SHA-256 of regular-file bytes. Required for regular-file deletion and
|
|
1595
|
+
* verified from the detached object before unlinking it.
|
|
1596
|
+
*/
|
|
1597
|
+
sha256?: string
|
|
1598
|
+
}
|
|
1599
|
+
|
|
1600
|
+
/** Typed result of an identity-bound regular-file deletion or directory detach. */
|
|
1601
|
+
export interface NativeExactUnlinkResult {
|
|
1602
|
+
ok: boolean
|
|
1603
|
+
code?: string
|
|
1604
|
+
detachedPath?: string
|
|
1605
|
+
retainedSuccessorPath?: string
|
|
1606
|
+
/**
|
|
1607
|
+
* An internal exchange-placeholder cleanup entry retained after cleanup
|
|
1608
|
+
* could not complete. This is never a canonical publisher successor and
|
|
1609
|
+
* remains recoverable only at this path.
|
|
1610
|
+
*/
|
|
1611
|
+
retainedPlaceholderPath?: string
|
|
1612
|
+
/**
|
|
1613
|
+
* A retained cleanup entry whose identity could not be verified. This is
|
|
1614
|
+
* neither a stale detached object nor a publisher successor.
|
|
1615
|
+
*/
|
|
1616
|
+
retainedUnknownPath?: string
|
|
1617
|
+
}
|
|
1618
|
+
|
|
1619
|
+
/** Result of applying or checking owner-only path security. */
|
|
1620
|
+
export type NativeOwnerOnlySecurityResult =
|
|
1621
|
+
| {
|
|
1622
|
+
ok: true;
|
|
1623
|
+
platform: "linux";
|
|
1624
|
+
kind: "file";
|
|
1625
|
+
protocol: "apply" | "verify";
|
|
1626
|
+
aclEvidence: {
|
|
1627
|
+
access: {
|
|
1628
|
+
clear: "cleared" | "already_absent" | "unsupported" | "not_run";
|
|
1629
|
+
query: "absent" | "unsupported";
|
|
1630
|
+
};
|
|
1631
|
+
default?: never;
|
|
1632
|
+
};
|
|
1633
|
+
code?: never;
|
|
1634
|
+
operation?: never;
|
|
1635
|
+
attribute?: never;
|
|
1636
|
+
}
|
|
1637
|
+
| {
|
|
1638
|
+
ok: true;
|
|
1639
|
+
platform: "linux";
|
|
1640
|
+
kind: "directory";
|
|
1641
|
+
protocol: "apply" | "verify";
|
|
1642
|
+
aclEvidence: {
|
|
1643
|
+
access: {
|
|
1644
|
+
clear: "cleared" | "already_absent" | "unsupported" | "not_run";
|
|
1645
|
+
query: "absent" | "unsupported";
|
|
1646
|
+
};
|
|
1647
|
+
default: {
|
|
1648
|
+
clear: "cleared" | "already_absent" | "unsupported" | "not_run";
|
|
1649
|
+
query: "absent" | "unsupported";
|
|
1650
|
+
};
|
|
1651
|
+
};
|
|
1652
|
+
code?: never;
|
|
1653
|
+
operation?: never;
|
|
1654
|
+
attribute?: never;
|
|
1655
|
+
}
|
|
1656
|
+
| {
|
|
1657
|
+
ok: true;
|
|
1658
|
+
platform?: never;
|
|
1659
|
+
kind?: never;
|
|
1660
|
+
protocol?: never;
|
|
1661
|
+
aclEvidence?: never;
|
|
1662
|
+
code?: never;
|
|
1663
|
+
operation?: never;
|
|
1664
|
+
attribute?: never;
|
|
1665
|
+
}
|
|
1666
|
+
| {
|
|
1667
|
+
ok: false;
|
|
1668
|
+
code: "acl_denied" | "acl_io_error" | "acl_present" | "acl_malformed" | "acl_unknown";
|
|
1669
|
+
operation: "clear" | "query";
|
|
1670
|
+
attribute: "access" | "default";
|
|
1671
|
+
platform?: never;
|
|
1672
|
+
kind?: never;
|
|
1673
|
+
protocol?: never;
|
|
1674
|
+
aclEvidence?: never;
|
|
1675
|
+
}
|
|
1676
|
+
| {
|
|
1677
|
+
ok: false;
|
|
1678
|
+
code: "acl_unavailable" | "acl_apply_failed" | "acl_verify_failed";
|
|
1679
|
+
operation?: never;
|
|
1680
|
+
attribute?: never;
|
|
1681
|
+
platform?: never;
|
|
1682
|
+
kind?: never;
|
|
1683
|
+
protocol?: never;
|
|
1684
|
+
aclEvidence?: never;
|
|
1685
|
+
}
|
|
1686
|
+
| {
|
|
1687
|
+
ok: false;
|
|
1688
|
+
code:
|
|
1689
|
+
| "not_found"
|
|
1690
|
+
| "not_directory"
|
|
1691
|
+
| "network_unsupported"
|
|
1692
|
+
| "reparse_point"
|
|
1693
|
+
| "identity_unavailable"
|
|
1694
|
+
| "identity_mismatch"
|
|
1695
|
+
| "owner_mismatch"
|
|
1696
|
+
| "mode_mismatch"
|
|
1697
|
+
| "io_error";
|
|
1698
|
+
operation?: never;
|
|
1699
|
+
attribute?: never;
|
|
1700
|
+
platform?: never;
|
|
1701
|
+
kind?: never;
|
|
1702
|
+
protocol?: never;
|
|
1703
|
+
aclEvidence?: never;
|
|
1704
|
+
}
|
|
1705
|
+
|
|
1382
1706
|
/** Bound endpoint info returned from [`NotificationServer::start`]. */
|
|
1383
1707
|
export interface NotificationEndpoint {
|
|
1384
1708
|
/** Bind host (loopback). */
|
|
@@ -1391,6 +1715,12 @@ export interface NotificationEndpoint {
|
|
|
1391
1715
|
sessionId: string
|
|
1392
1716
|
}
|
|
1393
1717
|
|
|
1718
|
+
/**
|
|
1719
|
+
* Acquire an immutable trusted-root descriptor. Linux is required; every
|
|
1720
|
+
* other platform returns a durable unsupported-platform result.
|
|
1721
|
+
*/
|
|
1722
|
+
export declare function openRecoveryFsRoot(path: string): RecoveryFsRoot
|
|
1723
|
+
|
|
1394
1724
|
/** Parsed Kitty keyboard protocol sequence result for a Kitty input sequence. */
|
|
1395
1725
|
export interface ParsedKittyResult {
|
|
1396
1726
|
/** Primary codepoint associated with the key. */
|
|
@@ -1495,9 +1825,27 @@ export declare function ptyTimeoutCount(): bigint
|
|
|
1495
1825
|
*/
|
|
1496
1826
|
export declare function readImageFromClipboard(): Promise<ClipboardImage | undefined | null>
|
|
1497
1827
|
|
|
1828
|
+
export interface RecoveryFsIdentity {
|
|
1829
|
+
dev: string
|
|
1830
|
+
ino: string
|
|
1831
|
+
size: string
|
|
1832
|
+
mtimeNs: string
|
|
1833
|
+
ctimeNs: string
|
|
1834
|
+
sha256?: string
|
|
1835
|
+
}
|
|
1836
|
+
|
|
1837
|
+
export interface RecoveryFsResult {
|
|
1838
|
+
ok: boolean
|
|
1839
|
+
code?: string
|
|
1840
|
+
identity?: RecoveryFsIdentity
|
|
1841
|
+
data?: Uint8Array
|
|
1842
|
+
}
|
|
1843
|
+
|
|
1844
|
+
export declare function renameNoReplacePath(sourcePath: string, destinationPath: string): NativeExactUnlinkResult
|
|
1845
|
+
|
|
1498
1846
|
/** A client reply forwarded to the TypeScript host for gate resolution. */
|
|
1499
1847
|
export interface ReplyEvent {
|
|
1500
|
-
/** The action id being answered
|
|
1848
|
+
/** The transient action/presentation id being answered, not a durable gate id. */
|
|
1501
1849
|
id: string
|
|
1502
1850
|
/** JSON-encoded `ReplyAnswer` (number, string, or `{selected,custom}`). */
|
|
1503
1851
|
answerJson: string
|
|
@@ -1507,6 +1855,12 @@ export interface ReplyEvent {
|
|
|
1507
1855
|
replyReceiptId: string
|
|
1508
1856
|
}
|
|
1509
1857
|
|
|
1858
|
+
/**
|
|
1859
|
+
* Retain the existing no-follow SDK publication objects after one-time
|
|
1860
|
+
* publication.
|
|
1861
|
+
*/
|
|
1862
|
+
export declare function retainBrokerPublication(agentDir: string): NativeRetainedBrokerPublication
|
|
1863
|
+
|
|
1510
1864
|
/**
|
|
1511
1865
|
* Search content for a pattern (one-shot, compiles pattern each time).
|
|
1512
1866
|
* For repeated searches with the same pattern, use [`grep`] with file filters.
|
|
@@ -1636,6 +1990,13 @@ export interface SliceResult {
|
|
|
1636
1990
|
*/
|
|
1637
1991
|
export declare function sliceWithWidth(line: string, startCol: number, length: number, strict: boolean | undefined | null, tabWidth: number): SliceResult
|
|
1638
1992
|
|
|
1993
|
+
/**
|
|
1994
|
+
* Capture a deterministic, descriptor-relative snapshot of a regular-file and
|
|
1995
|
+
* directory-only tree. Symlinks, special files, non-UTF-8 names, and topology
|
|
1996
|
+
* changes are rejected rather than followed.
|
|
1997
|
+
*/
|
|
1998
|
+
export declare function snapshotDirectoryTree(path: string): NativeDirectoryTreeResult
|
|
1999
|
+
|
|
1639
2000
|
export declare function summarizeCode(options: SummaryOptions): SummaryResult
|
|
1640
2001
|
|
|
1641
2002
|
export interface SummaryOptions {
|
|
@@ -1687,6 +2048,15 @@ export declare function truncateLinesToWidth(lines: Array<string>, maxWidth: num
|
|
|
1687
2048
|
|
|
1688
2049
|
export declare function truncateToWidth(text: string, maxWidth: number, ellipsisKind: Ellipsis | undefined | null, pad: boolean | undefined | null, tabWidth: number): string
|
|
1689
2050
|
|
|
2051
|
+
/**
|
|
2052
|
+
* Verify owner-only security for the exact caller descriptor and retained
|
|
2053
|
+
* no-follow path. The descriptor is duplicated with close-on-exec and is never
|
|
2054
|
+
* returned to JavaScript.
|
|
2055
|
+
*/
|
|
2056
|
+
export declare function verifyOwnerOnlyFdSecurity(path: string, kind: "directory" | "file", callerFd: number): NativeOwnerOnlySecurityResult
|
|
2057
|
+
|
|
2058
|
+
export declare function verifyOwnerOnlyPathSecurity(path: string, kind: "directory" | "file"): NativeOwnerOnlySecurityResult
|
|
2059
|
+
|
|
1690
2060
|
/**
|
|
1691
2061
|
* Calculate visible width of text, excluding ANSI escape sequences.
|
|
1692
2062
|
*
|
package/native/index.js
CHANGED
|
@@ -20,22 +20,30 @@ nativeBindings.initNativeCrashDiagnostics?.();
|
|
|
20
20
|
export const ComputerController = nativeBindings.ComputerController;
|
|
21
21
|
export const MacAppearanceObserver = nativeBindings.MacAppearanceObserver;
|
|
22
22
|
export const MacOSPowerAssertion = nativeBindings.MacOSPowerAssertion;
|
|
23
|
+
export const NativeRetainedBrokerPublication = nativeBindings.NativeRetainedBrokerPublication;
|
|
23
24
|
export const NotificationControlServer = nativeBindings.NotificationControlServer;
|
|
24
25
|
export const NotificationServer = nativeBindings.NotificationServer;
|
|
25
26
|
export const Process = nativeBindings.Process;
|
|
26
27
|
export const PtySession = nativeBindings.PtySession;
|
|
28
|
+
export const RecoveryFsRoot = nativeBindings.RecoveryFsRoot;
|
|
27
29
|
export const Shell = nativeBindings.Shell;
|
|
28
30
|
|
|
29
31
|
// functions
|
|
30
|
-
export const
|
|
32
|
+
export const __piNativesV0_4_1 = nativeBindings.__piNativesV0_4_1;
|
|
31
33
|
export const applyBashFixups = nativeBindings.applyBashFixups;
|
|
34
|
+
export const applyOwnerOnlyFdSecurity = nativeBindings.applyOwnerOnlyFdSecurity;
|
|
35
|
+
export const applyOwnerOnlyPathSecurity = nativeBindings.applyOwnerOnlyPathSecurity;
|
|
32
36
|
export const astEdit = nativeBindings.astEdit;
|
|
33
37
|
export const astGrep = nativeBindings.astGrep;
|
|
38
|
+
export const canonicalExistingDirectoryIdentity = nativeBindings.canonicalExistingDirectoryIdentity;
|
|
34
39
|
export const computerScreenshot = nativeBindings.computerScreenshot;
|
|
35
40
|
export const copyToClipboard = nativeBindings.copyToClipboard;
|
|
36
41
|
export const detectMacOSAppearance = nativeBindings.detectMacOSAppearance;
|
|
37
42
|
export const diffLines = nativeBindings.diffLines;
|
|
38
43
|
export const encodeSixel = nativeBindings.encodeSixel;
|
|
44
|
+
export const exactRemoveDirectoryTree = nativeBindings.exactRemoveDirectoryTree;
|
|
45
|
+
export const exactRestore = nativeBindings.exactRestore;
|
|
46
|
+
export const exactUnlink = nativeBindings.exactUnlink;
|
|
39
47
|
export const executeShell = nativeBindings.executeShell;
|
|
40
48
|
export const extractSegments = nativeBindings.extractSegments;
|
|
41
49
|
export const fuzzyFind = nativeBindings.fuzzyFind;
|
|
@@ -63,16 +71,22 @@ export const matchesKey = nativeBindings.matchesKey;
|
|
|
63
71
|
export const matchesKittySequence = nativeBindings.matchesKittySequence;
|
|
64
72
|
export const matchesLegacySequence = nativeBindings.matchesLegacySequence;
|
|
65
73
|
export const nativeBuildInfo = nativeBindings.nativeBuildInfo;
|
|
74
|
+
export const openRecoveryFsRoot = nativeBindings.openRecoveryFsRoot;
|
|
66
75
|
export const parseKey = nativeBindings.parseKey;
|
|
67
76
|
export const parseKittySequence = nativeBindings.parseKittySequence;
|
|
68
77
|
export const ptyTimeoutCount = nativeBindings.ptyTimeoutCount;
|
|
69
78
|
export const readImageFromClipboard = nativeBindings.readImageFromClipboard;
|
|
79
|
+
export const renameNoReplacePath = nativeBindings.renameNoReplacePath;
|
|
80
|
+
export const retainBrokerPublication = nativeBindings.retainBrokerPublication;
|
|
70
81
|
export const search = nativeBindings.search;
|
|
71
82
|
export const sliceWithWidth = nativeBindings.sliceWithWidth;
|
|
83
|
+
export const snapshotDirectoryTree = nativeBindings.snapshotDirectoryTree;
|
|
72
84
|
export const summarizeCode = nativeBindings.summarizeCode;
|
|
73
85
|
export const supportsLanguage = nativeBindings.supportsLanguage;
|
|
74
86
|
export const truncateLinesToWidth = nativeBindings.truncateLinesToWidth;
|
|
75
87
|
export const truncateToWidth = nativeBindings.truncateToWidth;
|
|
88
|
+
export const verifyOwnerOnlyFdSecurity = nativeBindings.verifyOwnerOnlyFdSecurity;
|
|
89
|
+
export const verifyOwnerOnlyPathSecurity = nativeBindings.verifyOwnerOnlyPathSecurity;
|
|
76
90
|
export const visibleWidth = nativeBindings.visibleWidth;
|
|
77
91
|
export const visibleWidths = nativeBindings.visibleWidths;
|
|
78
92
|
export const wrapTextWithAnsi = nativeBindings.wrapTextWithAnsi;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sayknow-cli/natives",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Native Rust bindings for grep, clipboard, image processing, syntax highlighting, PTY, and shell operations via N-API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://sayknow-cli.com",
|
|
@@ -61,11 +61,11 @@
|
|
|
61
61
|
"README.md"
|
|
62
62
|
],
|
|
63
63
|
"optionalDependencies": {
|
|
64
|
-
"@sayknow-cli/natives-darwin-arm64": "0.
|
|
65
|
-
"@sayknow-cli/natives-darwin-x64": "0.
|
|
66
|
-
"@sayknow-cli/natives-linux-arm64": "0.
|
|
67
|
-
"@sayknow-cli/natives-linux-x64": "0.
|
|
68
|
-
"@sayknow-cli/natives-win32-x64": "0.
|
|
64
|
+
"@sayknow-cli/natives-darwin-arm64": "0.4.1",
|
|
65
|
+
"@sayknow-cli/natives-darwin-x64": "0.4.1",
|
|
66
|
+
"@sayknow-cli/natives-linux-arm64": "0.4.1",
|
|
67
|
+
"@sayknow-cli/natives-linux-x64": "0.4.1",
|
|
68
|
+
"@sayknow-cli/natives-win32-x64": "0.4.1"
|
|
69
69
|
},
|
|
70
70
|
"exports": {
|
|
71
71
|
".": {
|