@oh-my-pi/pi-natives 18.1.4 → 18.1.6

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 CHANGED
@@ -98,6 +98,65 @@ export declare class DiffStream {
98
98
  finish(context?: number | undefined | null): Promise<DiffStreamResult>
99
99
  }
100
100
 
101
+ /** One edit tool call's streaming session. */
102
+ export declare class EditSession {
103
+ /**
104
+ * Open a session. `onPreview` (optional) receives every settled preview
105
+ * batch; batches are delivered one at a time, in generation order.
106
+ */
107
+ constructor(store: EditStore, policy: EditPolicy, onPreview?: ((error: Error | null, batch: EditPreviewBatch) => void) | undefined | null)
108
+ /** Append a raw streamed argument fragment. */
109
+ push(delta: string): void
110
+ /** Replace the buffer with the complete argument JSON (no-delta path). */
111
+ setArgsJson(argsJson: string): void
112
+ /** Arguments are complete; triggers the final untrimmed preview. */
113
+ finish(): void
114
+ /**
115
+ * Stage and apply the finished edit through `writer`. Never rejects for
116
+ * engine failures: those come back as `isError` outcomes carrying the
117
+ * model-facing message.
118
+ */
119
+ apply(request: EditApplyRequest, writer: (error: Error | null, request: EditWriteRequest) => Promise<EditWriteResponse>): Promise<EditApplyOutcome>
120
+ /** Stop the preview pump and release buffers. */
121
+ close(): void
122
+ }
123
+
124
+ /** Session-scoped snapshots, clipboard registers, and the no-op loop guard. */
125
+ export declare class EditStore {
126
+ constructor()
127
+ /**
128
+ * Record `text` (any line endings) as the current snapshot of
129
+ * `absolutePath` and return its 4-hex tag.
130
+ */
131
+ recordSnapshot(absolutePath: string, text: string, seenLines?: Array<number> | undefined | null): string
132
+ /**
133
+ * Read `absolutePath` from disk and record it; null when the file is
134
+ * unreadable or larger than 4 MiB.
135
+ */
136
+ recordSnapshotFile(absolutePath: string, seenLines?: Array<number> | undefined | null): string | null
137
+ /** Merge displayed lines into the snapshot tagged `tag`. */
138
+ recordSeenLines(absolutePath: string, tag: string, lines: Array<number>): void
139
+ /**
140
+ * Merge the lines a hashline-formatted `body` displays into the
141
+ * snapshot tagged `tag`.
142
+ */
143
+ recordSeenLinesFromBody(absolutePath: string, tag: string, body: string): void
144
+ /** Latest recorded text for `absolutePath`. */
145
+ headText(absolutePath: string): string | null
146
+ /** Latest recorded tag for `absolutePath`. */
147
+ headHash(absolutePath: string): string | null
148
+ /** Recorded text of `absolutePath` tagged `hash`. */
149
+ byHashText(absolutePath: string, hash: string): string | null
150
+ /**
151
+ * Displayed lines recorded for the snapshot tagged `hash`; null when no
152
+ * provenance was recorded.
153
+ */
154
+ seenLines(absolutePath: string, hash: string): Array<number> | null
155
+ invalidate(absolutePath: string): void
156
+ relocate(from: string, to: string): void
157
+ clear(): void
158
+ }
159
+
101
160
  /**
102
161
  * Process-owned cross-platform advisory lock.
103
162
  *
@@ -175,19 +234,18 @@ export declare class MacAppearanceObserver {
175
234
  }
176
235
 
177
236
  /**
178
- * Long-lived macOS power assertion.
237
+ * Long-lived cross-platform power assertion.
179
238
  *
180
- * On macOS this acquires one or more `IOKit` assertions that prevent the
181
- * requested sleep modes until the handle is stopped or dropped. On other
182
- * platforms it is a no-op handle so the caller can keep one cross-platform
183
- * code path.
239
+ * macOS uses `IOKit`, Linux holds login1 and desktop `ScreenSaver` inhibitors,
240
+ * and Windows holds thread-affine execution state until the handle is stopped
241
+ * or dropped. Other platforms return a no-op handle.
184
242
  */
185
- export declare class MacOSPowerAssertion {
243
+ export declare class PowerAssertion {
186
244
  /**
187
- * Acquire a macOS power assertion. On non-macOS platforms returns a
188
- * no-op handle so callers can stay cross-platform.
245
+ * Acquire a power assertion. Unsupported platforms return a no-op handle
246
+ * so callers can stay cross-platform.
189
247
  */
190
- static start(options?: MacOSPowerAssertionOptions | undefined | null): MacOSPowerAssertion
248
+ static start(options?: PowerAssertionOptions | undefined | null): PowerAssertion
191
249
  /**
192
250
  * Release every assertion held by this handle. Safe to call multiple
193
251
  * times; subsequent calls are a no-op.
@@ -381,7 +439,7 @@ export declare class VcsGitRepo {
381
439
  /** List worktrees. */
382
440
  worktrees(signal?: unknown | undefined | null): Promise<Array<VcsWorktreeEntry>>
383
441
  /** Add worktree. */
384
- worktreeAdd(path: string, refName: string, detach: boolean, signal?: unknown | undefined | null): Promise<undefined>
442
+ worktreeAdd(path: string, refName: string, options: VcsWorktreeAddOptions, signal?: unknown | undefined | null): Promise<VcsWorktreeAddResult>
385
443
  /** Remove worktree. */
386
444
  worktreeRemove(path: string, force: boolean, signal?: unknown | undefined | null): Promise<boolean>
387
445
  /** Prune worktrees. */
@@ -573,7 +631,7 @@ export declare function __ompInstallTokioRuntime(): void
573
631
  * `packages/natives/native/index.js` (which derives the name from
574
632
  * `package.json#version`).
575
633
  */
576
- export declare function __piNativesV18_1_4(): void
634
+ export declare function __piNativesV18_1_6(): void
577
635
 
578
636
  /**
579
637
  * Apply ast-grep rewrite rules to matching files; honors `dryRun` and returns
@@ -1136,6 +1194,169 @@ export interface DiffStreamResult {
1136
1194
  */
1137
1195
  export declare function diffWords(oldText: string, newText: string): Array<DiffChange>
1138
1196
 
1197
+ /**
1198
+ * Whole-call apply outcome. `is_error` carries the model-facing failure in
1199
+ * `text` with no files.
1200
+ */
1201
+ export interface EditApplyOutcome {
1202
+ text: string
1203
+ files: Array<EditFileOutcome>
1204
+ isError: boolean
1205
+ }
1206
+
1207
+ /** Apply-time knobs. */
1208
+ export interface EditApplyRequest {
1209
+ lspBatchId?: string
1210
+ lspFlush: boolean
1211
+ }
1212
+
1213
+ /**
1214
+ * Auto-generated-file guard: the rejection message when `absolutePath`
1215
+ * (displayed as `displayPath`) must not be edited, else null. Missing or
1216
+ * unreadable files are editable.
1217
+ */
1218
+ export declare function editAutoGeneratedMessage(absolutePath: string, displayPath: string): string | null
1219
+
1220
+ /** Tool description markdown for `mode`. */
1221
+ export declare function editDescription(mode: string): string
1222
+
1223
+ /** Numbered unified diff plus the first changed line. */
1224
+ export interface EditDiffResult {
1225
+ diff: string
1226
+ firstChangedLine?: number
1227
+ }
1228
+
1229
+ /** Numbered unified diff between two texts (`generateDiffString`). */
1230
+ export declare function editDiffString(oldText: string, newText: string, path?: string | undefined | null): EditDiffResult
1231
+
1232
+ /** A destructive file operation a payload declares. */
1233
+ export interface EditFileOpIntent {
1234
+ /** `delete` | `move`. */
1235
+ kind: string
1236
+ path: string
1237
+ to?: string
1238
+ }
1239
+
1240
+ /** One file's apply outcome. */
1241
+ export interface EditFileOutcome {
1242
+ /** Absolute path. */
1243
+ path: string
1244
+ displayPath: string
1245
+ /** `create` | `update` | `delete`. */
1246
+ op: string
1247
+ moveTo?: string
1248
+ diff: string
1249
+ firstChangedLine?: number
1250
+ oldText?: string
1251
+ newText?: string
1252
+ snapshotsPruned: boolean
1253
+ diagnosticsJson?: string
1254
+ /** Engine warnings (already rendered into `text`). */
1255
+ warnings: Array<string>
1256
+ /** Model-facing text for this file. */
1257
+ text: string
1258
+ /** The file parsed before the edit and no longer does. */
1259
+ parseRegressed: boolean
1260
+ }
1261
+
1262
+ /** One file's streamed diff preview. */
1263
+ export interface EditFilePreview {
1264
+ /** Display path as authored (after suffix recovery). */
1265
+ path: string
1266
+ /** Numbered unified diff; mutually exclusive with `error`. */
1267
+ diff?: string
1268
+ firstChangedLine?: number
1269
+ /** Model-facing error text. */
1270
+ error?: string
1271
+ /** `create` | `update` | `delete`. */
1272
+ op?: string
1273
+ rename?: string
1274
+ }
1275
+
1276
+ /** Lark grammar for `mode`, when it has a custom wire format. */
1277
+ export declare function editGrammar(mode: string): string | null
1278
+
1279
+ /**
1280
+ * Inspect `argsJson` (the JSON-serialized, possibly partial tool args)
1281
+ * without touching the filesystem.
1282
+ */
1283
+ export declare function editInspect(mode: string, argsJson: string): EditInspection
1284
+
1285
+ /**
1286
+ * Static projection of a payload: target paths, per-file digests, and
1287
+ * delete/move intents.
1288
+ */
1289
+ export interface EditInspection {
1290
+ paths: Array<string>
1291
+ entries: Array<EditMatcherEntry>
1292
+ fileOps: Array<EditFileOpIntent>
1293
+ }
1294
+
1295
+ /** `(path, added-lines digest)` for stream matchers. */
1296
+ export interface EditMatcherEntry {
1297
+ path: string
1298
+ digest: string
1299
+ }
1300
+
1301
+ /** Session-wide policy; TypeScript builds it once per tool call. */
1302
+ export interface EditPolicy {
1303
+ cwd: string
1304
+ /** `replace` | `patch` | `apply_patch` | `hashline` | `sloppy`. */
1305
+ mode: string
1306
+ allowFuzzy: boolean
1307
+ fuzzyThreshold: number
1308
+ enforceSeenLines: boolean
1309
+ blockAutoGenerated: boolean
1310
+ planActive: boolean
1311
+ /** Root of the `local://` artifact sandbox; null when the session has none. */
1312
+ localSandboxRoot?: string
1313
+ /** Cached vault roots; null when the vault protocol is disabled. */
1314
+ vaultRoots?: Array<EditVaultRoot>
1315
+ homeDir: string
1316
+ /** The payload is a verbatim custom-format string, not JSON. */
1317
+ rawInput: boolean
1318
+ }
1319
+
1320
+ /** A batch of previews for one session generation. */
1321
+ export interface EditPreviewBatch {
1322
+ /** Monotonically increasing per session. */
1323
+ generation: number
1324
+ /** False for the final untrimmed pass after `finish()`. */
1325
+ streaming: boolean
1326
+ files: Array<EditFilePreview>
1327
+ }
1328
+
1329
+ /** A cached `vault://` root. */
1330
+ export interface EditVaultRoot {
1331
+ /** Vault name; `_` is the active vault. */
1332
+ name: string
1333
+ root: string
1334
+ }
1335
+
1336
+ /** Host write request; the host owns the bytes. */
1337
+ export interface EditWriteRequest {
1338
+ /** Absolute path. */
1339
+ path: string
1340
+ displayPath: string
1341
+ /** `create` | `update` | `delete` | `move`. */
1342
+ op: string
1343
+ /** Absolute destination for `move` (write `content` there, delete `path`). */
1344
+ moveTo?: string
1345
+ /** Final bytes as text; null for `delete`. */
1346
+ content?: string
1347
+ /** Last write of this call and the LSP batch requested a flush. */
1348
+ flushLsp: boolean
1349
+ lspBatchId?: string
1350
+ }
1351
+
1352
+ /** Host write response. */
1353
+ export interface EditWriteResponse {
1354
+ /** Text actually persisted (a bridge may reformat); empty for deletes. */
1355
+ written: string
1356
+ /** `FileDiagnosticsResult` serialized by the host; opaque here. */
1357
+ diagnosticsJson?: string
1358
+ }
1359
+
1139
1360
  /** Ellipsis strategy for [`truncate_to_width`]. */
1140
1361
  export declare enum Ellipsis {
1141
1362
  /** Use a single Unicode ellipsis character ("…"). */
@@ -1231,6 +1452,9 @@ export declare function execReplace(argv: Array<string>): void
1231
1452
  */
1232
1453
  export declare function executeShell(options: ShellExecuteOptions, onChunk?: ((error: Error | null, chunk: string) => void) | undefined | null): Promise<ShellRunResult>
1233
1454
 
1455
+ /** Locate `<SM:EDIT path="…">` payloads the model emitted as plain text. */
1456
+ export declare function extractInlineSloppyRegions(text: string): Array<InlineSloppyRegion>
1457
+
1234
1458
  /**
1235
1459
  * Extract the before/after slices around an overlay region.
1236
1460
  *
@@ -1487,6 +1711,30 @@ export interface GrepResult {
1487
1711
  skippedOversized?: number
1488
1712
  }
1489
1713
 
1714
+ /**
1715
+ * Count canonical hashline op header shapes (`PUT N.=M:`, `CUT N*`, …) in
1716
+ * a payload; empty when it carries no hashline ops.
1717
+ */
1718
+ export declare function hashlineCountOps(input: string): Array<HashlineOpCount>
1719
+
1720
+ /** 4-hex hashline content tag for `text`. */
1721
+ export declare function hashlineFileHash(text: string): string
1722
+
1723
+ /** `[path#TAG]` section header. */
1724
+ export declare function hashlineFormatHeader(path: string, tag: string): string
1725
+
1726
+ /** `N:line` numbered display rows starting at `startLine` (default 1). */
1727
+ export declare function hashlineFormatNumberedLines(text: string, startLine?: number | undefined | null): string
1728
+
1729
+ /** Count of one canonical hashline op header shape in a payload. */
1730
+ export interface HashlineOpCount {
1731
+ label: string
1732
+ count: number
1733
+ }
1734
+
1735
+ /** Strip hashline display prefixes (`N:` / `+N:` …) from pasted rows. */
1736
+ export declare function hashlineStripPrefixes(lines: Array<string>): Array<string>
1737
+
1490
1738
  /**
1491
1739
  * Quick check if content matches a pattern.
1492
1740
  *
@@ -1560,6 +1808,13 @@ export interface HtmlToMarkdownOptions {
1560
1808
  skipImages?: boolean
1561
1809
  }
1562
1810
 
1811
+ /** One stray sloppy payload region inside prose (UTF-16 offsets). */
1812
+ export interface InlineSloppyRegion {
1813
+ start: number
1814
+ end: number
1815
+ payload: string
1816
+ }
1817
+
1563
1818
  /**
1564
1819
  * Invalidate the walker scan cache.
1565
1820
  *
@@ -1772,30 +2027,6 @@ export declare function macOSCheckSpelling(text: string): Promise<Array<Spelling
1772
2027
  */
1773
2028
  export declare function macOSCompleteWord(text: string, start: number, length: number): Promise<Array<string>>
1774
2029
 
1775
- /**
1776
- * Options for starting a macOS power assertion.
1777
- *
1778
- * Each boolean maps to a `caffeinate(8)` flag and a corresponding `IOKit`
1779
- * `IOPMAssertion` type. Multiple flags can be combined; when set, one
1780
- * assertion is taken per flag and all are released together when the
1781
- * handle is stopped or dropped.
1782
- *
1783
- * If every flag is unset (or omitted), the handle behaves as if `idle`
1784
- * were `true` — preserving the historical default of `caffeinate -i`.
1785
- */
1786
- export interface MacOSPowerAssertionOptions {
1787
- /** Human-readable reason shown in macOS power diagnostics. */
1788
- reason?: string
1789
- /** `caffeinate -i`: prevent the system from idle-sleeping. */
1790
- idle?: boolean
1791
- /** `caffeinate -s`: prevent the system from sleeping (AC power only). */
1792
- system?: boolean
1793
- /** `caffeinate -u`: declare the user is active (wakes the display). */
1794
- user?: boolean
1795
- /** `caffeinate -d`: prevent the display from idle-sleeping. */
1796
- display?: boolean
1797
- }
1798
-
1799
2030
  /** Whether the host can use Apple's native spelling service. */
1800
2031
  export declare function macOSSpellCheckerAvailable(): boolean
1801
2032
 
@@ -1955,6 +2186,9 @@ export interface NodeSpan {
1955
2186
  kind: string
1956
2187
  }
1957
2188
 
2189
+ /** Decode notebook JSON into the editable cell-marker text. */
2190
+ export declare function notebookToEditableText(json: string, displayPath: string): string
2191
+
1958
2192
  /** Parsed Kitty keyboard protocol sequence result for a Kitty input sequence. */
1959
2193
  export interface ParsedKittyResult {
1960
2194
  /** Primary codepoint associated with the key. */
@@ -2033,6 +2267,30 @@ export interface PointerOptions {
2033
2267
  deliveryMode?: string
2034
2268
  }
2035
2269
 
2270
+ /**
2271
+ * Options for starting a power assertion.
2272
+ *
2273
+ * Each boolean maps to a `caffeinate(8)` flag and the closest corresponding
2274
+ * platform capability. Multiple flags can be combined; when set, one
2275
+ * assertion is taken per flag and all are released together when the
2276
+ * handle is stopped or dropped.
2277
+ *
2278
+ * If every flag is unset (or omitted), the handle behaves as if `idle`
2279
+ * were `true` — preserving the historical default of `caffeinate -i`.
2280
+ */
2281
+ export interface PowerAssertionOptions {
2282
+ /** Human-readable reason shown in platform power diagnostics. */
2283
+ reason?: string
2284
+ /** `caffeinate -i`: prevent the system from idle-sleeping. */
2285
+ idle?: boolean
2286
+ /** `caffeinate -s`: prevent the system from sleeping (AC power only). */
2287
+ system?: boolean
2288
+ /** `caffeinate -u`: declare the user is active (wakes the display). */
2289
+ user?: boolean
2290
+ /** `caffeinate -d`: prevent the display from idle-sleeping. */
2291
+ display?: boolean
2292
+ }
2293
+
2036
2294
  /** Current state of a process reference. */
2037
2295
  export declare enum ProcessStatus {
2038
2296
  /** The referenced process is still running. */
@@ -2589,6 +2847,24 @@ export interface VcsStatusSummary {
2589
2847
  /** Validate hunk selections. */
2590
2848
  export declare function vcsValidateHunkSelections(rawDiff: string, selections: Array<VcsHunkSelection>): Array<VcsHunkSelectionError>
2591
2849
 
2850
+ /** Worktree creation options. */
2851
+ export interface VcsWorktreeAddOptions {
2852
+ detach: boolean
2853
+ clone: boolean
2854
+ backend?: IsoBackendKind
2855
+ /**
2856
+ * Carry the source checkout's uncommitted changes into the new worktree
2857
+ * (target must be the source `HEAD`).
2858
+ */
2859
+ keepChanges?: boolean
2860
+ }
2861
+
2862
+ /** Worktree creation outcome. */
2863
+ export interface VcsWorktreeAddResult {
2864
+ clonedWith?: IsoBackendKind
2865
+ cloneError?: string
2866
+ }
2867
+
2592
2868
  /** One worktree listing row. */
2593
2869
  export interface VcsWorktreeEntry {
2594
2870
  path: string
package/native/index.js CHANGED
@@ -21,11 +21,13 @@ export const AudioCapture = nativeBindings.AudioCapture;
21
21
  export const AudioPlayback = nativeBindings.AudioPlayback;
22
22
  export const DesktopSession = adaptDesktopSession(nativeBindings.DesktopSession);
23
23
  export const DiffStream = nativeBindings.DiffStream;
24
+ export const EditSession = nativeBindings.EditSession;
25
+ export const EditStore = nativeBindings.EditStore;
24
26
  export const FileLock = nativeBindings.FileLock;
25
27
  export const HighlightStream = nativeBindings.HighlightStream;
26
28
  export const LiveWebRtcPeer = nativeBindings.LiveWebRtcPeer;
27
29
  export const MacAppearanceObserver = nativeBindings.MacAppearanceObserver;
28
- export const MacOSPowerAssertion = nativeBindings.MacOSPowerAssertion;
30
+ export const PowerAssertion = nativeBindings.PowerAssertion;
29
31
  export const Process = nativeBindings.Process;
30
32
  export const PtySession = nativeBindings.PtySession;
31
33
  export const Shell = nativeBindings.Shell;
@@ -36,7 +38,7 @@ export const VcsRepo = nativeBindings.VcsRepo;
36
38
 
37
39
  // functions
38
40
  export const __ompInstallTokioRuntime = nativeBindings.__ompInstallTokioRuntime;
39
- export const __piNativesV18_1_4 = nativeBindings.__piNativesV18_1_4;
41
+ export const __piNativesV18_1_6 = nativeBindings.__piNativesV18_1_6;
40
42
  export const astEdit = nativeBindings.astEdit;
41
43
  export const astGrep = nativeBindings.astGrep;
42
44
  export const astMatch = nativeBindings.astMatch;
@@ -49,16 +51,27 @@ export const deviceCheckGenerateToken = nativeBindings.deviceCheckGenerateToken;
49
51
  export const diffLineRuns = nativeBindings.diffLineRuns;
50
52
  export const diffLines = nativeBindings.diffLines;
51
53
  export const diffWords = nativeBindings.diffWords;
54
+ export const editAutoGeneratedMessage = nativeBindings.editAutoGeneratedMessage;
55
+ export const editDescription = nativeBindings.editDescription;
56
+ export const editDiffString = nativeBindings.editDiffString;
57
+ export const editGrammar = nativeBindings.editGrammar;
58
+ export const editInspect = nativeBindings.editInspect;
52
59
  export const enclosingBlockBoundaries = nativeBindings.enclosingBlockBoundaries;
53
60
  export const encodeSixel = nativeBindings.encodeSixel;
54
61
  export const execReplace = nativeBindings.execReplace;
55
62
  export const executeShell = nativeBindings.executeShell;
63
+ export const extractInlineSloppyRegions = nativeBindings.extractInlineSloppyRegions;
56
64
  export const extractSegments = nativeBindings.extractSegments;
57
65
  export const fuzzyFind = nativeBindings.fuzzyFind;
58
66
  export const getSupportedLanguages = nativeBindings.getSupportedLanguages;
59
67
  export const getWorkProfile = nativeBindings.getWorkProfile;
60
68
  export const glob = nativeBindings.glob;
61
69
  export const grep = nativeBindings.grep;
70
+ export const hashlineCountOps = nativeBindings.hashlineCountOps;
71
+ export const hashlineFileHash = nativeBindings.hashlineFileHash;
72
+ export const hashlineFormatHeader = nativeBindings.hashlineFormatHeader;
73
+ export const hashlineFormatNumberedLines = nativeBindings.hashlineFormatNumberedLines;
74
+ export const hashlineStripPrefixes = nativeBindings.hashlineStripPrefixes;
62
75
  export const hasMatch = nativeBindings.hasMatch;
63
76
  export const highlightCode = nativeBindings.highlightCode;
64
77
  export const htmlToMarkdown = nativeBindings.htmlToMarkdown;
@@ -81,6 +94,7 @@ export const matchesKittySequence = nativeBindings.matchesKittySequence;
81
94
  export const matchesLegacySequence = nativeBindings.matchesLegacySequence;
82
95
  export const mmrRerankIndices = nativeBindings.mmrRerankIndices;
83
96
  export const nodeChainAt = nativeBindings.nodeChainAt;
97
+ export const notebookToEditableText = nativeBindings.notebookToEditableText;
84
98
  export const parseKey = nativeBindings.parseKey;
85
99
  export const parseKittySequence = nativeBindings.parseKittySequence;
86
100
  export const pdfToMarkdown = nativeBindings.pdfToMarkdown;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oh-my-pi/pi-natives",
3
- "version": "18.1.4",
3
+ "version": "18.1.6",
4
4
  "description": "Native Rust bindings for PDF conversion, audio, WebRTC, grep, clipboard, image processing, syntax highlighting, PTY, and shell operations via N-API",
5
5
  "type": "module",
6
6
  "homepage": "https://omp.sh",
@@ -98,10 +98,10 @@
98
98
  }
99
99
  },
100
100
  "optionalDependencies": {
101
- "@oh-my-pi/pi-natives-linux-x64": "18.1.4",
102
- "@oh-my-pi/pi-natives-linux-arm64": "18.1.4",
103
- "@oh-my-pi/pi-natives-darwin-x64": "18.1.4",
104
- "@oh-my-pi/pi-natives-darwin-arm64": "18.1.4",
105
- "@oh-my-pi/pi-natives-win32-x64": "18.1.4"
101
+ "@oh-my-pi/pi-natives-linux-x64": "18.1.6",
102
+ "@oh-my-pi/pi-natives-linux-arm64": "18.1.6",
103
+ "@oh-my-pi/pi-natives-darwin-x64": "18.1.6",
104
+ "@oh-my-pi/pi-natives-darwin-arm64": "18.1.6",
105
+ "@oh-my-pi/pi-natives-win32-x64": "18.1.6"
106
106
  }
107
107
  }