pynect 0.0.0-stage → 0.2.0

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.
Files changed (177) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +478 -2
  3. package/SECURITY.md +34 -0
  4. package/binding.gyp +60 -0
  5. package/dist/cli/codegen.d.ts +3 -0
  6. package/dist/cli/codegen.d.ts.map +1 -0
  7. package/dist/cli/codegen.js +543 -0
  8. package/dist/cli/codegen.js.map +1 -0
  9. package/dist/cli/sync.d.ts +3 -0
  10. package/dist/cli/sync.d.ts.map +1 -0
  11. package/dist/cli/sync.js +48 -0
  12. package/dist/cli/sync.js.map +1 -0
  13. package/dist/config/project.d.ts +57 -0
  14. package/dist/config/project.d.ts.map +1 -0
  15. package/dist/config/project.js +176 -0
  16. package/dist/config/project.js.map +1 -0
  17. package/dist/core/IsolatedWorker.d.ts +39 -0
  18. package/dist/core/IsolatedWorker.d.ts.map +1 -0
  19. package/dist/core/IsolatedWorker.js +178 -0
  20. package/dist/core/IsolatedWorker.js.map +1 -0
  21. package/dist/core/PyCallable.d.ts +67 -0
  22. package/dist/core/PyCallable.d.ts.map +1 -0
  23. package/dist/core/PyCallable.js +104 -0
  24. package/dist/core/PyCallable.js.map +1 -0
  25. package/dist/core/PyContext.d.ts +76 -0
  26. package/dist/core/PyContext.d.ts.map +1 -0
  27. package/dist/core/PyContext.js +239 -0
  28. package/dist/core/PyContext.js.map +1 -0
  29. package/dist/core/PyIterator.d.ts +84 -0
  30. package/dist/core/PyIterator.d.ts.map +1 -0
  31. package/dist/core/PyIterator.js +243 -0
  32. package/dist/core/PyIterator.js.map +1 -0
  33. package/dist/core/PyModule.d.ts +53 -0
  34. package/dist/core/PyModule.d.ts.map +1 -0
  35. package/dist/core/PyModule.js +162 -0
  36. package/dist/core/PyModule.js.map +1 -0
  37. package/dist/core/PyProxy.d.ts +75 -0
  38. package/dist/core/PyProxy.d.ts.map +1 -0
  39. package/dist/core/PyProxy.js +563 -0
  40. package/dist/core/PyProxy.js.map +1 -0
  41. package/dist/core/PyRuntime.d.ts +112 -0
  42. package/dist/core/PyRuntime.d.ts.map +1 -0
  43. package/dist/core/PyRuntime.js +546 -0
  44. package/dist/core/PyRuntime.js.map +1 -0
  45. package/dist/env/PackageInstaller.d.ts +232 -0
  46. package/dist/env/PackageInstaller.d.ts.map +1 -0
  47. package/dist/env/PackageInstaller.js +628 -0
  48. package/dist/env/PackageInstaller.js.map +1 -0
  49. package/dist/env/ProjectEnvironment.d.ts +63 -0
  50. package/dist/env/ProjectEnvironment.d.ts.map +1 -0
  51. package/dist/env/ProjectEnvironment.js +379 -0
  52. package/dist/env/ProjectEnvironment.js.map +1 -0
  53. package/dist/env/PyfigAdapter.d.ts +32 -0
  54. package/dist/env/PyfigAdapter.d.ts.map +1 -0
  55. package/dist/env/PyfigAdapter.js +10 -0
  56. package/dist/env/PyfigAdapter.js.map +1 -0
  57. package/dist/env/PythonDetector.d.ts +48 -0
  58. package/dist/env/PythonDetector.d.ts.map +1 -0
  59. package/dist/env/PythonDetector.js +182 -0
  60. package/dist/env/PythonDetector.js.map +1 -0
  61. package/dist/env/PythonProvisioner.d.ts +16 -0
  62. package/dist/env/PythonProvisioner.d.ts.map +1 -0
  63. package/dist/env/PythonProvisioner.js +42 -0
  64. package/dist/env/PythonProvisioner.js.map +1 -0
  65. package/dist/env/VenvManager.d.ts +55 -0
  66. package/dist/env/VenvManager.d.ts.map +1 -0
  67. package/dist/env/VenvManager.js +153 -0
  68. package/dist/env/VenvManager.js.map +1 -0
  69. package/dist/env/executables.d.ts +3 -0
  70. package/dist/env/executables.d.ts.map +1 -0
  71. package/dist/env/executables.js +14 -0
  72. package/dist/env/executables.js.map +1 -0
  73. package/dist/index.d.ts +182 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +393 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/native/NativeAddonLoader.d.ts +11 -0
  78. package/dist/native/NativeAddonLoader.d.ts.map +1 -0
  79. package/dist/native/NativeAddonLoader.js +75 -0
  80. package/dist/native/NativeAddonLoader.js.map +1 -0
  81. package/dist/plugins/Plugin.interface.d.ts +41 -0
  82. package/dist/plugins/Plugin.interface.d.ts.map +1 -0
  83. package/dist/plugins/Plugin.interface.js +12 -0
  84. package/dist/plugins/Plugin.interface.js.map +1 -0
  85. package/dist/plugins/PluginManager.d.ts +26 -0
  86. package/dist/plugins/PluginManager.d.ts.map +1 -0
  87. package/dist/plugins/PluginManager.js +174 -0
  88. package/dist/plugins/PluginManager.js.map +1 -0
  89. package/dist/plugins/builtin/NumpyPlugin.d.ts +17 -0
  90. package/dist/plugins/builtin/NumpyPlugin.d.ts.map +1 -0
  91. package/dist/plugins/builtin/NumpyPlugin.js +41 -0
  92. package/dist/plugins/builtin/NumpyPlugin.js.map +1 -0
  93. package/dist/plugins/builtin/PandasPlugin.d.ts +19 -0
  94. package/dist/plugins/builtin/PandasPlugin.d.ts.map +1 -0
  95. package/dist/plugins/builtin/PandasPlugin.js +57 -0
  96. package/dist/plugins/builtin/PandasPlugin.js.map +1 -0
  97. package/dist/plugins/builtin/TorchPlugin.d.ts +23 -0
  98. package/dist/plugins/builtin/TorchPlugin.d.ts.map +1 -0
  99. package/dist/plugins/builtin/TorchPlugin.js +50 -0
  100. package/dist/plugins/builtin/TorchPlugin.js.map +1 -0
  101. package/dist/plugins/index.d.ts +7 -0
  102. package/dist/plugins/index.d.ts.map +1 -0
  103. package/dist/plugins/index.js +12 -0
  104. package/dist/plugins/index.js.map +1 -0
  105. package/dist/serialization/DataFrameBridge.d.ts +141 -0
  106. package/dist/serialization/DataFrameBridge.d.ts.map +1 -0
  107. package/dist/serialization/DataFrameBridge.js +355 -0
  108. package/dist/serialization/DataFrameBridge.js.map +1 -0
  109. package/dist/serialization/MsgPackSerializer.d.ts +45 -0
  110. package/dist/serialization/MsgPackSerializer.d.ts.map +1 -0
  111. package/dist/serialization/MsgPackSerializer.js +242 -0
  112. package/dist/serialization/MsgPackSerializer.js.map +1 -0
  113. package/dist/serialization/NumpyBridge.d.ts +96 -0
  114. package/dist/serialization/NumpyBridge.d.ts.map +1 -0
  115. package/dist/serialization/NumpyBridge.js +323 -0
  116. package/dist/serialization/NumpyBridge.js.map +1 -0
  117. package/dist/serialization/Serializer.d.ts +78 -0
  118. package/dist/serialization/Serializer.d.ts.map +1 -0
  119. package/dist/serialization/Serializer.js +281 -0
  120. package/dist/serialization/Serializer.js.map +1 -0
  121. package/dist/types/addon.d.ts +131 -0
  122. package/dist/types/addon.d.ts.map +1 -0
  123. package/dist/types/addon.js +32 -0
  124. package/dist/types/addon.js.map +1 -0
  125. package/dist/types/config.d.ts +233 -0
  126. package/dist/types/config.d.ts.map +1 -0
  127. package/dist/types/config.js +60 -0
  128. package/dist/types/config.js.map +1 -0
  129. package/dist/types/index.d.ts +10 -0
  130. package/dist/types/index.d.ts.map +1 -0
  131. package/dist/types/index.js +12 -0
  132. package/dist/types/index.js.map +1 -0
  133. package/dist/types/python.d.ts +235 -0
  134. package/dist/types/python.d.ts.map +1 -0
  135. package/dist/types/python.js +7 -0
  136. package/dist/types/python.js.map +1 -0
  137. package/dist/utils/ErrorTranslator.d.ts +83 -0
  138. package/dist/utils/ErrorTranslator.d.ts.map +1 -0
  139. package/dist/utils/ErrorTranslator.js +210 -0
  140. package/dist/utils/ErrorTranslator.js.map +1 -0
  141. package/dist/utils/Locking.d.ts +3 -0
  142. package/dist/utils/Locking.d.ts.map +1 -0
  143. package/dist/utils/Locking.js +10 -0
  144. package/dist/utils/Locking.js.map +1 -0
  145. package/dist/utils/Logger.d.ts +27 -0
  146. package/dist/utils/Logger.d.ts.map +1 -0
  147. package/dist/utils/Logger.js +115 -0
  148. package/dist/utils/Logger.js.map +1 -0
  149. package/dist/utils/MemoryMonitor.d.ts +43 -0
  150. package/dist/utils/MemoryMonitor.d.ts.map +1 -0
  151. package/dist/utils/MemoryMonitor.js +143 -0
  152. package/dist/utils/MemoryMonitor.js.map +1 -0
  153. package/package.json +114 -4
  154. package/python/ast_inspector.py +248 -0
  155. package/python/error_handler.py +432 -0
  156. package/python/isolated_worker.py +94 -0
  157. package/python/pynect_dispatcher.py +382 -0
  158. package/python/pynect_runtime.py +574 -0
  159. package/python/serializer.py +373 -0
  160. package/python/type_inspector.py +315 -0
  161. package/scripts/build-native.js +50 -0
  162. package/scripts/cli.js +21 -0
  163. package/scripts/ensure-native.js +85 -0
  164. package/scripts/postinstall.js +40 -0
  165. package/scripts/pyfig.js +113 -0
  166. package/scripts/python-provisioner.js +23 -0
  167. package/scripts/smoke-python-boundary.js +103 -0
  168. package/src/native/NativeAddonLoader.ts +98 -0
  169. package/src/native/gil_guard.cpp +25 -0
  170. package/src/native/gil_guard.h +174 -0
  171. package/src/native/pynect_addon.cpp +942 -0
  172. package/src/native/python_bridge.cpp +904 -0
  173. package/src/native/python_bridge.h +263 -0
  174. package/src/native/thread_pool.cpp +375 -0
  175. package/src/native/thread_pool.h +185 -0
  176. package/src/native/type_converter.cpp +906 -0
  177. package/src/native/type_converter.h +271 -0
@@ -0,0 +1,233 @@
1
+ /**
2
+ * pynect - Core Configuration Types
3
+ * Full configuration interface for pynect runtime initialization.
4
+ */
5
+ import type { AutoSyncMode } from '../config/project';
6
+ export type LogLevel = 'silent' | 'error' | 'warn' | 'info' | 'debug';
7
+ export type ValidationMode = 'auto' | 'required' | 'off';
8
+ export interface DispatcherConfig {
9
+ /** Glob patterns restricting callable access when non-empty. */
10
+ include?: string[];
11
+ /** Glob patterns that always deny matching modules or callables. */
12
+ exclude?: string[];
13
+ /** Require complete parameter and return type hints. */
14
+ typedOnly?: boolean;
15
+ /** Require the @pynect.export decorator. */
16
+ exportedOnly?: boolean;
17
+ /** Validate with Pydantic when available, require it, or disable it. */
18
+ validation?: ValidationMode;
19
+ }
20
+ export interface VirtualenvConfig {
21
+ /**
22
+ * Must resolve to the repository-root `.venv` when provided.
23
+ * @deprecated Pynect now always uses the Pyfig-managed repository `.venv`.
24
+ */
25
+ path?: string;
26
+ /** @deprecated Declare Python dependencies in package.json pynect.requirements. */
27
+ packages?: string[];
28
+ /** @deprecated Use pynect sync or the root autoSync policy. */
29
+ autoInstall?: boolean;
30
+ /** @deprecated Configure uv through application-owned environment policy. */
31
+ pipIndexUrl?: string;
32
+ /** @deprecated Arbitrary install arguments are not accepted by project sync. */
33
+ pipArgs?: string[];
34
+ }
35
+ export interface GILConfig {
36
+ /**
37
+ * How often to release the GIL during long Python operations (microseconds).
38
+ * Lower values improve Node.js responsiveness at cost of Python throughput.
39
+ * Default: 5000 (5ms)
40
+ */
41
+ releaseInterval?: number;
42
+ /**
43
+ * Maximum time to wait for GIL acquisition before timing out (milliseconds).
44
+ * Default: 10000 (10s)
45
+ */
46
+ acquireTimeout?: number;
47
+ }
48
+ export interface ThreadPoolConfig {
49
+ /** Number of worker threads. Default: max(4, available CPU cores). */
50
+ size?: number;
51
+ /** Max queue depth before backpressure is applied. Default: 1000 */
52
+ maxQueueSize?: number;
53
+ /** Thread idle timeout before shrinking pool (ms). Default: 30000 */
54
+ idleTimeout?: number;
55
+ }
56
+ export interface IsolationConfig {
57
+ /** Enable the JSON-only child-process call surface. Default: false. */
58
+ enabled?: boolean;
59
+ /** Default hard timeout for isolated calls in milliseconds. Default: 30000. */
60
+ timeout?: number;
61
+ /** Working directory for the isolated Python worker. Default: process.cwd(). */
62
+ cwd?: string;
63
+ }
64
+ export interface MemoryConfig {
65
+ /** Maximum Python heap size (e.g. '2GB', '512MB'). Default: '2GB' */
66
+ limit?: string;
67
+ /** Trigger Python GC when heap exceeds this threshold. Default: '1GB' */
68
+ gcThreshold?: string;
69
+ /** Enable leak detection in debug builds. Default: false */
70
+ leakDetection?: boolean;
71
+ }
72
+ export interface ProfilingConfig {
73
+ /** Enable CPU profiling. Default: false */
74
+ enabled?: boolean;
75
+ /** Output file for profile data */
76
+ outputFile?: string;
77
+ /** Sampling interval (microseconds). Default: 1000 */
78
+ samplingInterval?: number;
79
+ }
80
+ export interface PynectConfig {
81
+ /** Shut down the shared runtime when the Node.js or Bun process exits. Default: true. */
82
+ autoShutdown?: boolean;
83
+ /** Preferred Python executable used to create or validate the project `.venv`. */
84
+ python?: string;
85
+ /**
86
+ * Python executable to check first as the base for the repository `.venv`.
87
+ * It must expose the CPython embedding development files; package and
88
+ * runtime operations still target the root `.venv` rather than this path.
89
+ * @deprecated Use python instead.
90
+ */
91
+ pythonPath?: string;
92
+ /** Accepted Python version range. Default: Pyfig's supported range. */
93
+ requiresPython?: string;
94
+ /** Repository root that owns `.venv`. Default: Pyfig project discovery. */
95
+ projectRoot?: string;
96
+ /** Allow Pyfig to install managed Python. Default: true. */
97
+ installPython?: boolean;
98
+ /** Allow Pyfig to install its pinned uv release. Default: true. */
99
+ installUv?: boolean;
100
+ /** Allow Pyfig to create the application-root `.venv`. Default: true. */
101
+ createVirtualEnvironment?: boolean;
102
+ /** @deprecated Use installPython instead. */
103
+ autoInstallPython?: boolean;
104
+ /** @deprecated Use installUv instead. */
105
+ autoInstallUv?: boolean;
106
+ /** @deprecated Use createVirtualEnvironment instead. */
107
+ autoCreateVirtualEnvironment?: boolean;
108
+ /** Managed Python version requested from uv. Default: '3.12'. */
109
+ managedPython?: string;
110
+ /** Pinned uv release used by the checksum-verified bootstrap. */
111
+ uvVersion?: string;
112
+ /** Synchronize the locked project environment when it is missing or stale. Default: 'never'. */
113
+ autoSync?: AutoSyncMode;
114
+ /** Project-relative Pynect lockfile. Default: 'pynect.lock'. */
115
+ lockfile?: string;
116
+ /**
117
+ * Legacy root `.venv` compatibility settings. Package provisioning now uses
118
+ * the application `pynect` manifest and `pynect sync`.
119
+ */
120
+ virtualenv?: VirtualenvConfig;
121
+ /**
122
+ * Thread pool configuration for Python execution.
123
+ */
124
+ threadPool?: ThreadPoolConfig;
125
+ /**
126
+ * Legacy shorthand for threadPool.size.
127
+ * @deprecated Use threadPool.size instead.
128
+ */
129
+ threadPoolSize?: number;
130
+ /**
131
+ * Memory configuration for Python heap.
132
+ */
133
+ memory?: MemoryConfig;
134
+ /**
135
+ * Legacy shorthand for memory.limit.
136
+ * @deprecated Use memory.limit instead.
137
+ */
138
+ memoryLimit?: string;
139
+ /**
140
+ * Log level for pynect internal logging.
141
+ * Default: 'warn'
142
+ */
143
+ logLevel?: LogLevel;
144
+ /**
145
+ * Profiling configuration.
146
+ */
147
+ profiling?: ProfilingConfig;
148
+ /**
149
+ * Legacy shorthand for profiling.enabled.
150
+ * @deprecated Use profiling.enabled instead.
151
+ */
152
+ enableProfiling?: boolean;
153
+ /**
154
+ * Maximum queue wait before a Python call begins, in milliseconds.
155
+ * This cannot interrupt running CPython code. Default: 0 (disabled).
156
+ */
157
+ callTimeout?: number;
158
+ /** Cooperative timeout for async Python execution. Sync code requires isolation for a hard timeout. */
159
+ executionTimeout?: number;
160
+ /** Optional process-isolated, JSON-only calls with hard termination. */
161
+ isolation?: IsolationConfig;
162
+ /** Callable selection and optional Pydantic validation policy. */
163
+ dispatcher?: DispatcherConfig;
164
+ /** Expose raw Python eval, exec, contexts, and native addon access. Default: false. */
165
+ allowUnsafeCode?: boolean;
166
+ /** Permit runtime pip package installation. Default: false. */
167
+ allowPackageInstall?: boolean;
168
+ /** Include Python tracebacks in JavaScript errors. Default: false. */
169
+ includeTracebacks?: boolean;
170
+ /**
171
+ * GIL (Global Interpreter Lock) management configuration.
172
+ */
173
+ gil?: GILConfig;
174
+ /**
175
+ * Additional Python sys.path entries.
176
+ * Inserted at sys.path[0] in order.
177
+ */
178
+ pythonPath_extra?: string[];
179
+ /**
180
+ * Environment variables to set for the Python interpreter.
181
+ */
182
+ env?: Record<string, string>;
183
+ /**
184
+ * Enable experimental features. Use with caution.
185
+ */
186
+ experimental?: {
187
+ /** Use SharedArrayBuffer for NumPy transfers. Default: true */
188
+ sharedArrayBuffer?: boolean;
189
+ /** Lazy attribute resolution. Default: true */
190
+ lazyResolution?: boolean;
191
+ };
192
+ }
193
+ /**
194
+ * Resolved and normalized configuration (all fields filled with defaults).
195
+ */
196
+ export interface ResolvedPynectConfig {
197
+ autoShutdown: boolean;
198
+ pythonExecutable: string;
199
+ pythonHome: string;
200
+ projectRoot: string;
201
+ requiresPython: string;
202
+ autoInstallPython: boolean;
203
+ autoInstallUv: boolean;
204
+ autoCreateVirtualEnvironment: boolean;
205
+ managedPython: string;
206
+ uvVersion: string;
207
+ autoSync: AutoSyncMode;
208
+ lockfile: string;
209
+ threadPoolSize: number;
210
+ maxQueueSize: number;
211
+ idleTimeout: number;
212
+ memoryLimit: string;
213
+ gcThreshold: string;
214
+ leakDetection: boolean;
215
+ logLevel: LogLevel;
216
+ callTimeout: number;
217
+ executionTimeout: number;
218
+ isolation: Required<IsolationConfig>;
219
+ dispatcher: Required<DispatcherConfig>;
220
+ allowUnsafeCode: boolean;
221
+ allowPackageInstall: boolean;
222
+ includeTracebacks: boolean;
223
+ gil: Required<GILConfig>;
224
+ profilingEnabled: boolean;
225
+ profilingFile?: string;
226
+ profilingSamplingInterval: number;
227
+ sharedArrayBuffer: boolean;
228
+ lazyResolution: boolean;
229
+ env: Record<string, string>;
230
+ pythonPathExtra: string[];
231
+ }
232
+ export declare function resolveConfig(config?: PynectConfig): ResolvedPynectConfig;
233
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /**
3
+ * pynect - Core Configuration Types
4
+ * Full configuration interface for pynect runtime initialization.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.resolveConfig = resolveConfig;
8
+ const os_1 = require("os");
9
+ function resolveConfig(config = {}) {
10
+ return {
11
+ autoShutdown: config.autoShutdown ?? true,
12
+ pythonExecutable: config.python ?? config.pythonPath ?? 'python3',
13
+ pythonHome: '',
14
+ projectRoot: config.projectRoot ?? process.cwd(),
15
+ requiresPython: config.requiresPython ?? '>=3.10.0 <4.0.0',
16
+ autoInstallPython: config.installPython ?? config.autoInstallPython ?? true,
17
+ autoInstallUv: config.installUv ?? config.autoInstallUv ?? true,
18
+ autoCreateVirtualEnvironment: config.createVirtualEnvironment ?? config.autoCreateVirtualEnvironment ?? true,
19
+ managedPython: config.managedPython ?? '3.12',
20
+ uvVersion: config.uvVersion ?? '0.13.6',
21
+ autoSync: config.autoSync ?? 'never',
22
+ lockfile: config.lockfile ?? 'pynect.lock',
23
+ threadPoolSize: config.threadPool?.size ?? config.threadPoolSize ?? Math.max(4, (0, os_1.availableParallelism)()),
24
+ maxQueueSize: config.threadPool?.maxQueueSize ?? 1000,
25
+ idleTimeout: config.threadPool?.idleTimeout ?? 30000,
26
+ memoryLimit: config.memory?.limit ?? config.memoryLimit ?? '2GB',
27
+ gcThreshold: config.memory?.gcThreshold ?? '1GB',
28
+ leakDetection: config.memory?.leakDetection ?? false,
29
+ logLevel: config.logLevel ?? 'warn',
30
+ callTimeout: config.callTimeout ?? 0,
31
+ executionTimeout: config.executionTimeout ?? 0,
32
+ isolation: {
33
+ enabled: config.isolation?.enabled ?? false,
34
+ timeout: config.isolation?.timeout ?? 30000,
35
+ cwd: config.isolation?.cwd ?? process.cwd(),
36
+ },
37
+ dispatcher: {
38
+ include: config.dispatcher?.include ?? [],
39
+ exclude: config.dispatcher?.exclude ?? [],
40
+ typedOnly: config.dispatcher?.typedOnly ?? false,
41
+ exportedOnly: config.dispatcher?.exportedOnly ?? false,
42
+ validation: config.dispatcher?.validation ?? 'auto',
43
+ },
44
+ allowUnsafeCode: config.allowUnsafeCode ?? false,
45
+ allowPackageInstall: config.allowPackageInstall ?? false,
46
+ includeTracebacks: config.includeTracebacks ?? false,
47
+ gil: {
48
+ releaseInterval: config.gil?.releaseInterval ?? 5000,
49
+ acquireTimeout: config.gil?.acquireTimeout ?? 10000,
50
+ },
51
+ profilingEnabled: config.profiling?.enabled ?? config.enableProfiling ?? false,
52
+ profilingFile: config.profiling?.outputFile,
53
+ profilingSamplingInterval: config.profiling?.samplingInterval ?? 1000,
54
+ sharedArrayBuffer: config.experimental?.sharedArrayBuffer ?? true,
55
+ lazyResolution: config.experimental?.lazyResolution ?? true,
56
+ env: config.env ?? {},
57
+ pythonPathExtra: config.pythonPath_extra ?? [],
58
+ };
59
+ }
60
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * pynect - Types Index
3
+ * Re-exports all public type definitions.
4
+ */
5
+ export type { PynectConfig, ResolvedPynectConfig, VirtualenvConfig, GILConfig, ThreadPoolConfig, MemoryConfig, ProfilingConfig, IsolationConfig, DispatcherConfig, LogLevel, } from './config';
6
+ export { resolveConfig } from './config';
7
+ export type { PyObjectId, PyTypeName, PyTypeInfo, PyParamInfo, PyMemberInfo, PyCallableInfo, PyClassInfo, PyModuleInspection, SerializedFormat, SerializedValue, SerializedMetadata, PyCallResult, PyErrorInfo, PyIteratorState, PyIteratorNext, DataFrameResult, SeriesResult, NumPyArrayResult, AttributePath, PyProxyInterface, } from './python';
8
+ export type { NativeAddon, AddonInitOptions, AddonImportResult, AddonAttributeResult, AddonCallOptions, AddonIteratorResult, AddonMemoryStats, AddonProfilingReport, PyCallOptions, } from './addon';
9
+ export { loadNativeAddon } from './addon';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACT,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,YAAY,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,cAAc,EACd,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ /**
3
+ * pynect - Types Index
4
+ * Re-exports all public type definitions.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.loadNativeAddon = exports.resolveConfig = void 0;
8
+ var config_1 = require("./config");
9
+ Object.defineProperty(exports, "resolveConfig", { enumerable: true, get: function () { return config_1.resolveConfig; } });
10
+ var addon_1 = require("./addon");
11
+ Object.defineProperty(exports, "loadNativeAddon", { enumerable: true, get: function () { return addon_1.loadNativeAddon; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAeH,mCAAyC;AAAhC,uGAAA,aAAa,OAAA;AAqCtB,iCAA0C;AAAjC,wGAAA,eAAe,OAAA"}
@@ -0,0 +1,235 @@
1
+ /**
2
+ * pynect - Python Object Type Definitions
3
+ * Core types for representing Python objects in TypeScript.
4
+ */
5
+ /**
6
+ * Unique identifier for a Python object in the CPython heap.
7
+ * Stored as a C-level pointer (opaque to JavaScript).
8
+ */
9
+ export type PyObjectId = number & {
10
+ readonly __brand: 'PyObjectId';
11
+ };
12
+ /**
13
+ * Python built-in type names.
14
+ */
15
+ export type PyTypeName = 'int' | 'float' | 'complex' | 'bool' | 'str' | 'bytes' | 'bytearray' | 'list' | 'tuple' | 'dict' | 'set' | 'frozenset' | 'NoneType' | 'function' | 'method' | 'builtin_function_or_method' | 'module' | 'type' | 'classmethod' | 'staticmethod' | 'property' | 'generator' | 'coroutine' | 'async_generator' | 'iterator' | 'DataFrame' | 'Series' | 'ndarray' | 'Tensor' | string;
16
+ /**
17
+ * Metadata about a Python object's type.
18
+ */
19
+ export interface PyTypeInfo {
20
+ typeName: PyTypeName;
21
+ moduleName?: string;
22
+ qualName?: string;
23
+ isCallable: boolean;
24
+ isIterable: boolean;
25
+ isAsyncIterable: boolean;
26
+ isAwaitable: boolean;
27
+ isClass: boolean;
28
+ isModule: boolean;
29
+ isNone: boolean;
30
+ isPrimitive: boolean;
31
+ isNumeric: boolean;
32
+ isSequence: boolean;
33
+ isMapping: boolean;
34
+ }
35
+ /**
36
+ * Parameter info from Python function introspection.
37
+ */
38
+ export interface PyParamInfo {
39
+ name: string;
40
+ type: string;
41
+ optional: boolean;
42
+ hasDefault: boolean;
43
+ defaultValue?: unknown;
44
+ kind: 'positional_only' | 'positional_or_keyword' | 'var_positional' | 'keyword_only' | 'var_keyword';
45
+ }
46
+ /**
47
+ * Member/attribute info for a Python class or module.
48
+ */
49
+ export interface PyMemberInfo {
50
+ name: string;
51
+ type: string;
52
+ isReadOnly: boolean;
53
+ docstring?: string;
54
+ }
55
+ /**
56
+ * Full introspection result for a Python callable.
57
+ */
58
+ export interface PyCallableInfo {
59
+ name: string;
60
+ qualName: string;
61
+ docstring: string;
62
+ parameters: PyParamInfo[];
63
+ returnType: string;
64
+ isMethod: boolean;
65
+ isClassMethod: boolean;
66
+ isStaticMethod: boolean;
67
+ isCoroutine: boolean;
68
+ isGenerator: boolean;
69
+ }
70
+ /**
71
+ * Full introspection result for a Python class.
72
+ */
73
+ export interface PyClassInfo {
74
+ name: string;
75
+ qualName: string;
76
+ docstring: string;
77
+ bases: string[];
78
+ members: PyMemberInfo[];
79
+ methods: PyCallableInfo[];
80
+ properties: PyMemberInfo[];
81
+ classMethods: PyCallableInfo[];
82
+ staticMethods: PyCallableInfo[];
83
+ }
84
+ /**
85
+ * Full introspection result for a Python module.
86
+ */
87
+ export interface PyModuleInspection {
88
+ name: string;
89
+ file?: string;
90
+ docstring: string;
91
+ version?: string;
92
+ functions: PyCallableInfo[];
93
+ classes: PyClassInfo[];
94
+ constants: PyMemberInfo[];
95
+ submodules: string[];
96
+ }
97
+ /**
98
+ * Serialized wire format for Python <-> JavaScript data transfer.
99
+ */
100
+ export type SerializedFormat = 'json' | 'msgpack' | 'numpy_array' | 'dataframe' | 'series' | 'pandas_dataframe' | 'pandas_series' | 'torch_tensor' | 'python_ref' | 'bytes' | 'none' | number;
101
+ export interface SerializedValue {
102
+ format: SerializedFormat;
103
+ data: Uint8Array | string | null | undefined;
104
+ metadata?: SerializedMetadata;
105
+ }
106
+ export interface SerializedMetadata {
107
+ /** For python_ref: the object ID */
108
+ objectId?: number;
109
+ /** For numpy_array: dtype, shape, strides */
110
+ dtype?: string;
111
+ shape?: number[];
112
+ strides?: number[];
113
+ order?: 'C' | 'F';
114
+ /** For numpy_array: item size in bytes (snake_case variant) */
115
+ itemsize?: number;
116
+ /** For pandas objects: column names, dtypes, index */
117
+ columns?: string[];
118
+ columnDtypes?: string[];
119
+ index?: unknown[];
120
+ indexName?: string;
121
+ /** For pandas: orient (split/records/index/columns/values) */
122
+ orient?: string;
123
+ /** For Series: series name */
124
+ name?: string;
125
+ /** For torch tensors */
126
+ device?: string;
127
+ requiresGrad?: boolean;
128
+ /** General */
129
+ length?: number;
130
+ size?: number;
131
+ itemSize?: number;
132
+ }
133
+ /**
134
+ * Result from a Python function call.
135
+ */
136
+ export interface PyCallResult {
137
+ success: boolean;
138
+ value?: SerializedValue;
139
+ error?: PyErrorInfo;
140
+ objectId?: PyObjectId;
141
+ isObject?: boolean;
142
+ }
143
+ /**
144
+ * Python exception information.
145
+ */
146
+ export interface PyErrorInfo {
147
+ /** Python exception class name, e.g. 'ValueError', 'FileNotFoundError' */
148
+ type: string;
149
+ /** Exception message */
150
+ message: string;
151
+ /** Full Python traceback */
152
+ traceback: string;
153
+ /** Exception module, e.g. 'builtins', 'pandas.errors' */
154
+ module?: string;
155
+ /** Chained exception */
156
+ cause?: PyErrorInfo;
157
+ }
158
+ /**
159
+ * Iterator state for Python iterators.
160
+ */
161
+ export interface PyIteratorState {
162
+ iteratorId: number;
163
+ objectId: PyObjectId;
164
+ done: boolean;
165
+ position: number;
166
+ }
167
+ /**
168
+ * Result from iterator next() call.
169
+ */
170
+ export interface PyIteratorNext {
171
+ done: boolean;
172
+ value?: SerializedValue;
173
+ error?: PyErrorInfo;
174
+ }
175
+ /**
176
+ * DataFrame representation after deserialization.
177
+ */
178
+ export interface DataFrameResult {
179
+ columns: string[];
180
+ /** Row data as array of column-keyed objects */
181
+ data: Record<string, unknown>[];
182
+ /** Alias for data - array of records (row objects) */
183
+ records: Record<string, unknown>[];
184
+ index: unknown[];
185
+ dtypes: Record<string, string>;
186
+ shape: [number, number];
187
+ }
188
+ /**
189
+ * Series representation after deserialization.
190
+ */
191
+ export interface SeriesResult {
192
+ name: string;
193
+ /** Series values */
194
+ data: unknown[];
195
+ /** Alias for data */
196
+ values: unknown[];
197
+ index: unknown[];
198
+ dtype: string;
199
+ length: number;
200
+ }
201
+ /**
202
+ * A typed array backed by numpy data.
203
+ */
204
+ export type NumpyTypedArray = Float32Array | Float64Array | Int8Array | Int16Array | Int32Array | BigInt64Array | Uint8Array | Uint16Array | Uint32Array | BigUint64Array;
205
+ /**
206
+ * NumPy array representation after deserialization.
207
+ * Contains the typed array data plus metadata (dtype, shape, ndim).
208
+ */
209
+ export interface NumPyArrayResult {
210
+ /** The underlying typed array */
211
+ data: NumpyTypedArray;
212
+ /** NumPy dtype string, e.g. 'float64' */
213
+ dtype: string;
214
+ /** Array shape */
215
+ shape: number[];
216
+ /** Number of dimensions */
217
+ ndim: number;
218
+ }
219
+ /**
220
+ * Attribute resolution path for lazy Proxy chains.
221
+ */
222
+ export type AttributePath = string[];
223
+ /**
224
+ * The core PyProxy interface - wraps any Python object.
225
+ * All properties return new PyProxy instances (lazy).
226
+ * Calling the proxy or awaiting it triggers the Python call.
227
+ */
228
+ export interface PyProxyInterface {
229
+ readonly _pyObjectId: PyObjectId;
230
+ readonly _path: AttributePath;
231
+ readonly _isResolved: boolean;
232
+ then(onfulfilled?: (value: unknown) => unknown, onrejected?: (reason: PyErrorInfo) => unknown): Promise<unknown>;
233
+ [key: string]: unknown;
234
+ }
235
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/types/python.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * pynect - Python Object Type Definitions
4
+ * Core types for representing Python objects in TypeScript.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/types/python.ts"],"names":[],"mappings":";AAAA;;;GAGG"}